/* ============================================================
   Zoanthus Lab - Mobile carousel V21
   Objectif : desktop intact, mobile lisible, carrousels explicites.
   Toutes les rÃ¨gles sont limitÃ©es au mobile.
   ============================================================ */

@media (max-width: 820px){
  body#module-zoaicp-lab .zl-shell{width:calc(100% - 20px);display: flex;flex-direction: column;align-items: center;justify-content: center;text-align: center;} 
  body#module-zoaicp-lab .zl-section-split{padding:36px 0;}
  body#module-zoaicp-lab .zl-section-head{margin-bottom:18px;}
  body#module-zoaicp-lab .zl-section-head h2,
  body#module-zoaicp-lab .zl-step h2,
  body#module-zoaicp-lab .zl-oligo h2{
    font-size:clamp(1.78rem,8.2vw,2.55rem);
    line-height:1.03;
    letter-spacing:-.045em;
  }
  body#module-zoaicp-lab .zl-section-head p,
  body#module-zoaicp-lab .zl-step p,
  body#module-zoaicp-lab .zl-oligo p{
    font-size:.94rem;
    line-height:1.62;
  }

  /* Hero compact : on garde la promesse et on Ã©vite la sensation de superposition. */
  body#module-zoaicp-lab .zl-hero-with-coral{padding-top:28px;}
  body#module-zoaicp-lab .zl-hero-with-coral .zl-hero-grid{gap:18px;}
  body#module-zoaicp-lab .zl-hero-with-coral .zl-hero-grid:before{
    height:132px;
    border-width:5px;
    border-radius:18px;
    box-shadow:0 16px 38px rgba(20,36,69,.10);
  }
  body#module-zoaicp-lab .zl-hero h1{
    max-width:9.2ch;
    margin:.85rem 0;
    font-size:clamp(2.55rem,12vw,3.6rem);
    line-height:.94;
  }
  body#module-zoaicp-lab .zl-lead{font-size:.95rem;line-height:1.65;}
  body#module-zoaicp-lab .zl-actions,
  body#module-zoaicp-lab .zl-reef-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:18px 0 12px;
  }
  body#module-zoaicp-lab .zl-actions .zl-btn,
  body#module-zoaicp-lab .zl-reef-actions .zl-btn{
    min-height:46px;
    padding:0 12px;
    font-size:.82rem;
  }
  body#module-zoaicp-lab .zl-trust-row{
    flex-wrap:nowrap;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x proximity;
    padding:0 2px 8px;
    -webkit-overflow-scrolling:touch;
  }
  body#module-zoaicp-lab .zl-trust-row span{
    flex:0 0 auto;
    scroll-snap-align:start;
    font-size:.78rem;
    padding:.45rem .7rem;
  }

  /* Bande rÃ©cif plus courte sur mobile. */
  body#module-zoaicp-lab .zl-reef-break{min-height:420px;padding:52px 0;}
  body#module-zoaicp-lab .zl-reef-content h2{font-size:clamp(2rem,9.6vw,3rem);line-height:1;}
  body#module-zoaicp-lab .zl-reef-content p{font-size:.94rem;line-height:1.62;}

  /* Avantages : les cartes deviennent pilotÃ©es par JS. */
  body#module-zoaicp-lab .zl-card{border-radius:24px;padding:20px;min-height:0;}
  body#module-zoaicp-lab .zl-card:hover{transform:none;}
  body#module-zoaicp-lab .zl-lottie,

  /* Aqua Manager : les gros blocs deviennent de vraies slides mesurÃ©es en JS. */
  body#module-zoaicp-lab .zl-feature-showcase .zl-shell{width:100%;}
  body#module-zoaicp-lab .zl-feature-row,
  body#module-zoaicp-lab .zl-feature-row-reverse{
    padding:0;
    border:1px solid rgba(21,36,59,.09);
    border-radius:26px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 50px rgba(20,36,69,.08);
    overflow:hidden;
  }
  body#module-zoaicp-lab .zl-feature-row + .zl-feature-row{border-top:1px solid rgba(21,36,59,.09);}
  body#module-zoaicp-lab .zl-feature-row-reverse .zl-feature-media,
  body#module-zoaicp-lab .zl-feature-row-reverse .zl-feature-copy{order:initial;}
  body#module-zoaicp-lab .zl-feature-media::before,
  body#module-zoaicp-lab .zl-feature-showcase::before,
  body#module-zoaicp-lab .zl-feature-showcase::after{display:none;}
  body#module-zoaicp-lab .zl-feature-bubble-wide,
  body#module-zoaicp-lab .zl-feature-row-reverse .zl-feature-bubble-wide,
  body#module-zoaicp-lab .zl-feature-bubble-modal{
    border:0;
    border-radius:0;
    padding:0;
    box-shadow:none;
    background:#fff;
  }
  body#module-zoaicp-lab .zl-feature-bubble img{
    width:100%;
    height:215px;
    object-fit:cover;
    object-position:top center;
    border-radius:0;
  }
  body#module-zoaicp-lab .zl-feature-copy{padding:18px 18px 20px;}
  body#module-zoaicp-lab .zl-feature-copy h2{font-size:1.48rem;line-height:1.06;margin:8px 0 10px;}
  body#module-zoaicp-lab .zl-feature-copy p{font-size:.9rem;line-height:1.55;margin-bottom:12px;}
  body#module-zoaicp-lab .zl-feature-copy ul{gap:7px;}
  body#module-zoaicp-lab .zl-feature-copy li{font-size:.82rem;line-height:1.42;padding-left:18px;}
  body#module-zoaicp-lab .zl-feature-copy li::before{width:7px;height:7px;top:.48rem;box-shadow:0 0 0 4px rgba(54,199,201,.12);}
  body#module-zoaicp-lab .zl-feature-media-combo{min-height:auto;display:block;}
  body#module-zoaicp-lab .zl-feature-media-combo .zl-feature-bubble-modal{position:relative;width:100%;}
  body#module-zoaicp-lab .zl-feature-phone-card{
    position:relative;
    width:62%;
    max-width:210px;
    margin:-34px auto 14px;
    border-radius:24px;
    padding:7px;
  }
  body#module-zoaicp-lab .zl-feature-phone-card img{border-radius:18px;}

  /* Kits : tabs conservÃ©s, cartes pilotÃ©es par JS. */
  body#module-zoaicp-lab .zl-kits-benefits{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 auto 18px;}
  body#module-zoaicp-lab .zl-kits-benefits span{width:auto;min-height:34px;font-size:.76rem;padding:0 9px;}
  body#module-zoaicp-lab .zl-kits-toggle{
    position:sticky;
    top:55px;
    z-index:10;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:0 0 18px;
    padding:6px;
    border-radius:999px;
    background:rgba(255,255,255,.78);
    border:1px solid rgba(21,36,59,.08);
    backdrop-filter:blur(12px);
  }
  body#module-zoaicp-lab .zl-kits-tab{min-height:42px;padding:0 10px;font-size:.82rem;box-shadow:none;width:auto;}
  body#module-zoaicp-lab .zl-kit-card,
  body#module-zoaicp-lab .zl-kit-featured{order:initial!important;border-radius:26px;box-shadow:0 18px 50px rgba(20,36,69,.08);}
  body#module-zoaicp-lab .zl-kit-media{min-height:180px;padding:28px 18px 8px;}
  body#module-zoaicp-lab .zl-kit-media img,
  body#module-zoaicp-lab .zl-kit-media-bundle img{max-height:170px;}
  body#module-zoaicp-lab .zl-kit-body{padding:18px;}
  body#module-zoaicp-lab .zl-kit-body h3{font-size:1.42rem;}
  body#module-zoaicp-lab .zl-kit-subtitle{min-height:auto;font-size:.9rem;line-height:1.52;margin-bottom:12px;}
  body#module-zoaicp-lab .zl-kit-list{gap:7px;margin-bottom:16px;}
  body#module-zoaicp-lab .zl-kit-list li{font-size:.82rem;line-height:1.4;}
  body#module-zoaicp-lab .zl-kit-price strong{font-size:2rem;}
  body#module-zoaicp-lab .zl-bundle-callout{padding:18px;border-radius:24px;margin-bottom:18px;}
  body#module-zoaicp-lab .zl-bundle-callout h3{font-size:1.45rem;}
  body#module-zoaicp-lab .zl-bundle-callout p{font-size:.9rem;line-height:1.55;}

  /* Mobile section. */
  body#module-zoaicp-lab .zl-phone-shot{border-radius:24px;padding:9px;}
  body#module-zoaicp-lab .zl-phone-shot img{border-radius:18px;}

  /* CommunautÃ© compacte. */
  body#module-zoaicp-lab .zl-community-box-v2{padding:22px;border-radius:28px;gap:18px;}
  body#module-zoaicp-lab .zl-community-preview-v2{min-height:auto;}
  body#module-zoaicp-lab .zl-community-window{border-radius:22px;padding:8px;box-shadow:0 18px 48px rgba(20,36,69,.16);}
  body#module-zoaicp-lab .zl-community-window-top{min-height:30px;padding:0 8px;}
  body#module-zoaicp-lab .zl-community-screen{border-radius:16px;}
  body#module-zoaicp-lab .zl-community-screen img{aspect-ratio:16/9;}
  body#module-zoaicp-lab .zl-community-note{display:none;}

  /* Oligo plus court. */
  body#module-zoaicp-lab .zl-oligo-box-rich{display:block!important;padding:22px;border-radius:26px;}
  body#module-zoaicp-lab .zl-oligo-copy p{font-size:.92rem;line-height:1.58;}
  body#module-zoaicp-lab .zl-oligo-media{width:100%;height:185px;aspect-ratio:auto;margin:18px 0;border-radius:20px;border-width:6px;transform:none;}
  body#module-zoaicp-lab .zl-oligo-box-rich .zl-btn{width:100%;min-height:48px;}

  /* FAQ plus lisible. */
  body#module-zoaicp-lab .zl-faq-intro{padding:20px;border-radius:24px;}
  body#module-zoaicp-lab .zl-faq-intro h3{font-size:1.42rem;}
  body#module-zoaicp-lab .zl-faq-intro p{font-size:.9rem;line-height:1.55;}
  body#module-zoaicp-lab .zl-faq-list{gap:10px;}
  body#module-zoaicp-lab .zl-faq-list summary{padding:15px 16px;font-size:.92rem;}
  body#module-zoaicp-lab .zl-faq-list details div{padding:0 16px 16px;}
  body#module-zoaicp-lab .zl-faq-list p{font-size:.9rem;line-height:1.55;}

  /* Le JS prend le contrÃ´le des carrousels : pas de scroll natif visible. */
  body#module-zoaicp-lab .zl-mc{
    position:relative;
    overflow:hidden;
    width:100%;
    touch-action:pan-y pinch-zoom;
  }
  body#module-zoaicp-lab .zl-mc-track{
    display:flex;
    align-items:flex-start;
    gap:0;
    will-change:transform;
    transition:transform .34s cubic-bezier(.2,.8,.2,1), height .22s ease;
  }
  body#module-zoaicp-lab .zl-mc.is-dragging .zl-mc-track{transition:none;}
  body#module-zoaicp-lab .zl-mc-slide{
    flex:0 0 100%;
    width:100%;
    min-width:100%;
    box-sizing:border-box;
    padding:4px 3px 10px;
    opacity:.42;
    transform:scale(.965);
    transition:opacity .28s ease, transform .28s ease;
  }
  body#module-zoaicp-lab .zl-mc-slide.is-active{opacity:1;transform:scale(1);}
  body#module-zoaicp-lab .zl-mc-slide > *{height:auto!important;min-height:0!important;}
  body#module-zoaicp-lab .zl-mc-slide .zl-reveal{opacity:1!important;transform:none!important;}
  body#module-zoaicp-lab .zl-mc-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:10px auto 0;
  }
  body#module-zoaicp-lab .zl-mc-btn{
    width:40px;
    height:40px;
    border-radius:999px;
    border:1px solid rgba(21,36,59,.10);
    background:#fff;
    color:var(--zl-navy);
    box-shadow:0 12px 28px rgba(20,36,69,.10);
    font-weight:950;
    display:grid;
    place-items:center;
    cursor:pointer;
  }
  body#module-zoaicp-lab .zl-mc-dots{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:62px;
  }
  body#module-zoaicp-lab .zl-mc-dot{
    width:8px;
    height:8px;
    border-radius:999px;
    border:0;
    padding:0;
    background:rgba(54,199,201,.35);
    cursor:pointer;
    transition:width .2s ease, background .2s ease;
  }
  body#module-zoaicp-lab .zl-mc-dot.is-active{
    width:24px;
    background:linear-gradient(135deg,var(--zl-primary),#18b982);
  }
  body#module-zoaicp-lab .zl-mc-hint{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:max-content;
    max-width:calc(100% - 20px);
    min-height:32px;
    padding:0 13px;
    margin:8px auto 0;
    border-radius:999px;
    background:rgba(20,36,69,.86);
    color:#fff;
    font-size:11px;
    font-weight:950;
    box-shadow:0 12px 28px rgba(20,36,69,.16);
    pointer-events:none;
  }
  body#module-zoaicp-lab .zl-mc-hint:before,
  body#module-zoaicp-lab .zl-mc-hint:after{
    content:'';
    width:18px;
    height:1px;
    background:rgba(255,255,255,.55);
  }
  body#module-zoaicp-lab .zl-mc-hint span{
    display:inline-block;
    animation:zlMcHint 1.45s ease-in-out infinite;
  }
  @keyframes zlMcHint{
    0%,100%{transform:translateX(0);opacity:.76;}
    50%{transform:translateX(7px);opacity:1;}
  }

  /* Ancien indice V20 : dÃ©sactivÃ© si encore prÃ©sent dans le cache. */
  body#module-zoaicp-lab .zl-card-grid::after,
  body#module-zoaicp-lab .zl-mobile-grid::after,
  body#module-zoaicp-lab .zl-kit-grid::after,
  body#module-zoaicp-lab .zl-feature-showcase .zl-shell::after,
  body#module-zoaicp-lab .zl-benefits::after,
  body#module-zoaicp-lab .zl-mobile-section::after,
  body#module-zoaicp-lab .zl-kits::after,
  body#module-zoaicp-lab .zl-feature-showcase::after{
    content:none!important;
    display:none!important;
  }
}

@media (max-width:420px){
  body#module-zoaicp-lab .zl-actions,
  body#module-zoaicp-lab .zl-reef-actions{grid-template-columns:1fr;}
}

@media (max-width:820px) and (prefers-reduced-motion:reduce){
  body#module-zoaicp-lab .zl-mc-track,
  body#module-zoaicp-lab .zl-mc-slide,
  body#module-zoaicp-lab .zl-mc-hint span{transition:none!important;animation:none!important;}
}

/* ============================================================
   V21.1 â€” correctifs carrousels mobiles
   - ignore les Ã©lÃ©ments cachÃ©s / dÃ©coratifs
   - bloque les dÃ©bordements horizontaux
   - hauteur recalculÃ©e proprement par slide active
   ============================================================ */
@media (max-width: 820px){
  body#module-zoaicp-lab .zl-mc,
  body#module-zoaicp-lab .zl-mc *{
    box-sizing:border-box;
  }

  body#module-zoaicp-lab .zl-mc{
    max-width:100%;
    overflow:hidden !important;
  }

  body#module-zoaicp-lab .zl-mc-track{
    width:100%;
    min-width:0;
  }

  body#module-zoaicp-lab .zl-mc-slide{
    flex:0 0 100% !important;
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    overflow:hidden;
    padding:4px 8px 12px;
  }

  body#module-zoaicp-lab .zl-mc-slide > *,
  body#module-zoaicp-lab .zl-mc-slide .zl-kit-card,
  body#module-zoaicp-lab .zl-mc-slide .zl-card,
  body#module-zoaicp-lab .zl-mc-slide .zl-phone-shot,
  body#module-zoaicp-lab .zl-mc-slide .zl-shot,
  body#module-zoaicp-lab .zl-mc-slide .zl-feature-row{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  body#module-zoaicp-lab .zl-mc-slide .zl-kit-card{
    flex:0 0 auto !important;
  }

  body#module-zoaicp-lab .zl-mc-slide .zl-kit-cta,
  body#module-zoaicp-lab .zl-mc-slide .zl-btn{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }

  body#module-zoaicp-lab .zl-mc-slide .zl-kit-list,
  body#module-zoaicp-lab .zl-mc-slide .zl-feature-copy ul{
    min-width:0;
  }

  body#module-zoaicp-lab .zl-mc-slide .zl-kit-list li,
  body#module-zoaicp-lab .zl-mc-slide .zl-feature-copy li{
    overflow-wrap:anywhere;
  }

  /* Les cartes de dÃ©coration du hero ne doivent jamais devenir des slides. */
  body#module-zoaicp-lab .zl-floating-card{
    display:none !important;
  }

  /* Navigation plus comprÃ©hensible, sans prendre trop de place. */
  body#module-zoaicp-lab .zl-mc-nav{
    margin-top:8px;
  }

  body#module-zoaicp-lab .zl-mc-counter{
    min-width:44px;
    text-align:center;
    color:var(--zl-muted);
    font-size:.78rem;
    font-weight:950;
  }

  body#module-zoaicp-lab .zl-mc-hint{
    margin:8px auto 0;
    width:max-content;
    max-width:calc(100% - 32px);
  }

  body#module-zoaicp-lab .zl-mc-hint span{
    font-size:10px;
    white-space:nowrap;
  }

  body#module-zoaicp-lab .zl-mc-btn.is-disabled{
    opacity:.35;
    pointer-events:none;
  }
}

/* ============================================================
   Correctif hero mobile multilingue
   Empêche le dépassement horizontal en allemand / langues longues
   ============================================================ */

@media (max-width: 820px) {
  body#module-zoaicp-lab,
  body#module-zoaicp-lab .zl-page {
    overflow-x: hidden !important;
  }

  body#module-zoaicp-lab .zl-hero-with-coral,
  body#module-zoaicp-lab .zl-hero-with-coral .zl-shell,
  body#module-zoaicp-lab .zl-hero-grid,
  body#module-zoaicp-lab .zl-hero-copy,
  body#module-zoaicp-lab .zl-hero-media {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body#module-zoaicp-lab .zl-hero-copy {
    overflow: hidden;
  }

  body#module-zoaicp-lab .zl-hero h1 {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.15rem, 10.8vw, 3.15rem) !important;
    line-height: .98 !important;
    letter-spacing: -0.055em;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }

  body#module-zoaicp-lab .zl-pill {
    max-width: 100%;
    white-space: normal;
    text-align: center;
    justify-content: center;
    line-height: 1.25;
  }

  body#module-zoaicp-lab .zl-lead {
    max-width: 100%;
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  body#module-zoaicp-lab .zl-actions {
    width: 100%;
    max-width: 100%;
  }

  body#module-zoaicp-lab .zl-actions .zl-btn {
    min-width: 0;
    white-space: normal;
    text-align: center;
    line-height: 1.15;
  }

  body#module-zoaicp-lab .zl-trust-row {
    max-width: 100%;
  }

  body#module-zoaicp-lab .zl-trust-row span {
    white-space: nowrap;
  }
}

@media (max-width: 420px) {
  body#module-zoaicp-lab .zl-hero h1 {
    font-size: clamp(2rem, 10.2vw, 2.85rem) !important;
    letter-spacing: -0.06em;
  }

  body#module-zoaicp-lab .zl-actions {
    grid-template-columns: 1fr !important;
  }
}