/* WiseBled — Responsive global : pas de scroll horizontal */

html {
    overflow-x: clip;
    -webkit-text-size-adjust: 100%;
}

body {
    overflow-x: clip;
    max-width: 100%;
    min-width: 0;
}

main[role="main"] {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
}

img,
svg,
canvas {
    max-width: 100%;
    height: auto;
}

video {
    max-width: 100%;
}

.page-home .hero-video-frame .hero-video,
.page-home .demo-video-player-wrap .demo-video-player {
    width: 100%;
    height: 100%;
    max-width: 100%;
}

#site-header.site-chrome-header {
    width: 100%;
    max-width: 100%;
    left: 0;
    right: 0;
}

/* Wrappers pleine page */
.mesh-bg,
.auth-mesh,
.insc-mesh,
.pricing-mesh,
.pay-mesh,
.contact-mesh,
.feat-mesh-wrap,
.about-mesh,
.legal-mesh,
.site-chrome-footer {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

.page-home .mesh-bg {
    overflow-x: clip;
    overflow-y: clip;
    isolation: isolate;
}

/* Grilles Tailwind : éviter le débordement des colonnes */
.grid > *,
[class*="grid-cols"] > * {
    min-width: 0;
}

.max-w-7xl,
.max-w-6xl,
.max-w-5xl,
.max-w-4xl,
.max-w-3xl,
.max-w-2xl,
.max-w-xl {
    width: 100%;
    box-sizing: border-box;
}

/* Sections & sliders */
.section-block,
.marquee-section,
.partners-slider,
.section-partners,
.footer-partners-slider,
.demo-video-shell,
.hero-video-panel {
    max-width: 100%;
}

.marquee-section,
.partners-slider,
.footer-partners-slider-viewport {
    overflow-x: clip;
}

/* Hero accueil */
.page-home .hero-visual-wrap {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.page-home .hero-video-panel,
.page-home .hero-video-split {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.page-home .hero-video-side {
    min-width: 0;
    overflow-wrap: anywhere;
}

.page-home #hero .grid {
    width: 100%;
    max-width: 100%;
}

.page-home .section-title,
.page-home h1 {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Décorations qui sortent du viewport */
@media (max-width: 1023px) {
    .page-home .float-card,
    .page-home .hero-ring,
    .page-features .feat-hero-float {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .page-home .orb {
        opacity: 0.45;
    }
    .page-home .orb-1 {
        width: min(280px, 70vw);
        height: min(280px, 70vw);
        top: -60px;
        left: -40px;
    }
    .page-home .orb-2 {
        width: min(220px, 55vw);
        height: min(220px, 55vw);
        right: -50px;
    }
    .page-home .orb-3 {
        width: min(180px, 45vw);
        height: min(180px, 45vw);
        left: 10%;
    }
    .page-home .aurora-layer {
        inset: -8% -4%;
    }
    .page-home .mobile-visual-wrap {
        overflow: hidden;
        max-width: 100%;
        margin-inline: auto;
    }
    .page-home .mobile-orbit {
        display: none;
    }
    .cursor-glow {
        display: none !important;
    }
}

/* Curseur halo : désactivé tactile */
@media (hover: none), (pointer: coarse) {
    .cursor-glow {
        display: none !important;
    }
}

/* Menu mobile : pas de dépassement (éviter 100vw = scroll parasite) */
.site-chrome-nav .nav-panel,
#nav-panel {
    width: min(20.5rem, 92vw);
    max-width: 100%;
}
.site-chrome-nav .nav-panel-body {
    -webkit-overflow-scrolling: touch;
}

/* Sliders partenaires / marquee : contenu large, pas de scroll page */
.partners-slider-viewport,
.partners-slider,
.section-partners,
.marquee-section {
    overflow-x: clip;
}

.page-home .partners-slider-viewport {
    width: 100%;
    max-width: 100%;
}

/* Pages publiques — coquilles & grilles */
.page-home .mesh-bg,
.page-features .feat-mesh-wrap,
.page-features .features-body,
.page-pricing .pricing-mesh,
.page-contact .contact-mesh,
.page-inscription .insc-mesh,
.page-connexion .auth-mesh,
.page-paiement .pay-mesh,
.page-about .about-mesh,
.page-legal .legal-mesh {
    width: 100%;
    max-width: 100%;
}

.page-features .features-layout,
.page-features .features-main,
.page-features .feat-section-panel,
.page-features .feat-overview,
.page-pricing .pricing-cards,
.page-pricing .pricing-table-wrap,
.page-contact .contact-layout,
.page-inscription .insc-wrap,
.page-inscription .insc-layout,
.page-inscription .insc-card,
.page-inscription .insc-wizard,
.page-connexion .auth-wrap,
.page-connexion .auth-layout,
.page-paiement .pay-wrap,
.page-paiement .pay-mesh > .max-w-2xl,
.page-paiement .pay-mesh > .max-w-3xl,
.page-about .about-hero,
.page-about .about-mission,
.page-about .about-cases,
.page-legal .legal-hero,
.page-legal .legal-prose-wrap {
    max-width: 100%;
    min-width: 0;
}

/* Flex / grilles dans le contenu principal */
main[role="main"] .flex > *:not([class*="shrink-0"]):not(.shrink-0) {
    min-width: 0;
}

main[role="main"] h1,
main[role="main"] .section-title {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Footer */
.site-chrome-footer,
.site-chrome-footer .max-w-7xl,
.site-chrome-footer .grid > * {
    max-width: 100%;
    min-width: 0;
}

/* Tableaux comparatifs (tarifs) : scroll horizontal local uniquement */
.page-pricing .pricing-table-wrap {
    -webkit-overflow-scrolling: touch;
}

/* TOC mobile fonctionnalités : scroll local */
.page-features .features-toc-mobile-wrap {
    max-width: 100%;
    overflow-x: clip;
}

/* Footer */
.site-chrome-footer .footer-partners-slider {
    max-width: 100%;
}

/* Pages internes — orbes décoratifs */
@media (max-width: 767px) {
    .page-features .feat-orb,
    .page-contact .contact-orb,
    .page-pricing .pricing-orb,
    .page-inscription .insc-orb,
    .page-connexion .auth-orb {
        opacity: 0.4;
    }
}

.page-features .feat-mesh-wrap,
.page-contact .contact-mesh,
.page-pricing .pricing-mesh,
.page-inscription .insc-mesh,
.page-connexion .auth-mesh,
.page-paiement .pay-mesh,
.page-about .about-mesh,
.page-legal .legal-mesh {
    overflow-x: clip;
}

/* Pages publiques — renforts mobile */
@media (max-width: 639px) {
    .page-contact .contact-hero,
    .page-pricing .pricing-hero,
    .page-features .features-hero,
    .page-paiement .pay-hero,
    .page-about .about-hero,
    .page-legal .legal-hero {
        padding-top: clamp(3.5rem, 12vw, 4.5rem);
        padding-bottom: 1.75rem;
    }
    .page-contact .contact-form-panel,
    .page-contact .contact-side-panel,
    .page-paiement .pay-summary,
    .page-paiement .pay-panel {
        padding: 1.15rem 1rem;
        border-radius: 1.15rem;
    }
    .page-about .case-study-card {
        padding: 1.15rem;
    }
    .page-about .case-study-card .flex.items-start.justify-between {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.65rem;
    }
    .page-legal .legal-prose-cta {
        flex-direction: column;
    }
    .page-legal .legal-prose-cta .btn-glow,
    .page-legal .legal-prose-cta .btn-ghost {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .page-paiement .pay-orb {
        width: min(280px, 75vw);
        height: min(280px, 75vw);
    }
}

/* Cartes avec effet shine / glow */
.glow-ring,
.shine-card,
.tilt-card {
    max-width: 100%;
}

/* Boutons & formulaires */
input,
select,
textarea,
button {
    max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
    .marquee-track,
    .partners-slider-track,
    .footer-partners-slider-track {
        animation: none !important;
        transform: none !important;
    }
}
