/* Mobile: 390px et écrans compacts — une colonne, contrôles tactiles. */
@media(max-width:767px){
    .shop-product img{max-height:360px}
    body.has-mobile-social{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
    .social-section{position:fixed;z-index:90;left:0;right:0;bottom:0;padding:5px 8px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(5,5,5,.96)}
    .social-section .shell{width:100%;padding:0}.social-section .kicker,.social-section h2{display:none}
    .social-section .external-link-grid{display:flex;justify-content:space-evenly;align-items:center;gap:.25rem}
    .social-section .external-link-grid a{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:0;color:#fff}
    .social-section .social-provider-icon{display:block;width:24px;height:24px}
    .social-section .has-provider-icon .social-icon-default{display:none}
    .social-section .external-link-grid a>span{display:none}
    .button-row .button{
        flex:1 1 100%;
    }

    .gallery-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .site-header #site-nav>a{
        min-height:46px;
    }

    .site-header .language-switcher{
        padding-top:.75rem;
        border-top:1px solid var(--line);
    }

    .event-detail{
        padding-top:1rem;
    }

    .history-grid:not(.history-expanded) .history-item-older{
        display:none;
    }

    .history-toggle{
        display:flex;
    }
}


/* Tablette: 768px, portrait et paysage — vraie grille intermédiaire. */
@media(min-width:768px){
    .shop-content{max-width:none}
    .shop-products{grid-template-columns:repeat(2,minmax(0,1fr))}
    .section{
        padding:6rem 0;
    }

    .nav-toggle{
        display:none;
    }

    .site-header #site-nav,
    .site-header #site-nav.open{
        position:static;
        display:flex;
        padding:0;
        background:none;
        border:0;
    }

    .site-header #site-nav>a{
        font-size:.85rem;
    }

    .highlight-grid,
    .next-concert,
    .culture-grid,
    .contact-grid,
    .event-detail{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .concert-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .gallery-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .site-footer .shell{
        display:flex;
        justify-content:space-between;
        gap:2rem;
        align-items:center;
    }
}


/* Desktop: 1024px — largeur exploitée, trois colonnes où pertinent. */
@media(min-width:1024px){
    .site-header #site-nav>a{
        font-size:.95rem;
    }

    .highlight-grid{
        grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);
    }

    .next-concert{
        grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr);
        padding:1.4rem;
    }

    .upcoming-grid,
    .history-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .gallery-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .culture-grid{
        grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    }

    /*
     * Section "Le groupe" :
     * réduction spécifique du gros texte sur desktop.
     * Les h2 des autres sections ne sont pas affectés.
     */
    .culture-copy h2{
        font-size:clamp(2rem,3vw,3rem);
        line-height:1.05;
    }

    /*
     * Texte éditorial :
     * légèrement plus grand que l'ancien .82rem
     * pour conserver une bonne lisibilité.
     */
    .culture-copy .editorial{
        font-size:.9rem;
        line-height:1.55;
    }
}


/* Grand desktop: 1440px — respiration contrôlée par le shell. */
@media(min-width:1440px){
    .shop-products{grid-template-columns:repeat(4,minmax(0,1fr))}
    :root{
        --shell:1320px;
    }

    .section{
        padding:7rem 0;
    }

    .concert-grid{
        gap:1.4rem;
    }

    .gallery-grid{
        gap:1.2rem;
    }
}


/* Très grand écran: 1920px — contenu plafonné, aucune zone démesurée. */
@media(min-width:1920px){
    :root{
        --shell:1480px;
    }

    .highlight-grid,
    .next-concert{
        gap:3rem;
    }
}
