@media (max-width: 1500px) {
    .event-listing .event-listing__state-filter {
        display: none;
    }
}

@media (max-width: 1250px) {
    .home-links__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .news-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .inside-container {
        width: calc(100% - 120px);
    }

    .flex-image-text-grid {
        flex-direction: column;
    }

    .flex-image-text-grid.is-image-right {
        flex-direction: column-reverse;
    }

    .flex-image-text-copy {
        width: 100%;
    }

    .flex-image-text-media {
        width: 100%;
        min-height: unset;
    }

    .flex-image-text-badge {
        width: 180px;
        height: 180px;
        top: -40px;
        right: -40px;
    }

    .ui-button {
        padding-left: 20px;
        padding-right: 20px;
    }

    .page-info-panel__box {
        grid-gap: 40px;
    }

    .event-detail__layout {
        grid-template-columns: 1fr 0.7fr;
        grid-gap: 40px;
    }

    .account-page__layout {
        grid-template-columns: 1fr;
    }

    .account-page, .account-settings-page, .account-subpage {
        padding-bottom: 0;
    }
    .registration-slot-grid{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}



@media (prefers-reduced-motion: reduce) {
    .inside-front--app .inside-sidebar {
        transition: none;
    }
}

@media (max-width: 900px) {
    :root {
        --text-nav: 11px;
        --text-tag: 12px;
        --text-ui: 13px;
        --text-button: 15px;
        --text-body: 17px;
        --text-card: 17px;
        --text-intro: 17px;
        --text-news-title: 20px;
        --text-section-title: 22px;
        --text-feature-title: 28px;
        --text-page-title: 36px;
        --line-nav: 18.98px;
        --line-ui: 24px;
        --nav-icon-size: 50px;

        --space-1: 4px;
        --space-2: 6px;
        --space-3: 8px;
        --space-4: 10px;
        --space-5: 15px;
        --space-6: 20px;
        --space-7: 25px;
        --space-8: 30px;
        --space-9: 35px;
        --space-10: 40px;
        --space-section: 45px;
        --button-height: 35px;
        --registration-radius: 20px;

    }

    body.mobile-menu-open {
        overflow: hidden;
    }

    .inside-front--app .inside-shell {
        width: 100%;
        margin-left: 0;
    }

    /* Header mobile : logo / recherche / notifications / burger */
    .inside-front--app .front-header {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 10000;
        width: 100%;
        padding: 0 7.5vw;
        align-items: center;
        gap: var(--space-2);
    }

    .inside-front--app .front-header__left {
        display: flex;
        flex: 1;
        align-items: center;
        gap: var(--space-2);
        min-width: 0;
    }

    .front-mobile-brand {
        display: flex;
        flex: 0 0 50px;
        width: 50px;
        align-items: center;
        text-decoration: none;
    }

    .front-mobile-brand svg {
        display: block;
        width: 50px;
        height: auto;
    }

    .inside-front--app .front-actions {
        flex: 0 0 auto;
        min-width: 0;
        justify-content: flex-start;
        gap: var(--space-2);
        margin-left: 0;
        margin-top: 15px;
    }

    /* Vraie recherche INSIDE : bouton rond puis champ au clic. */
    .inside-front--app .inside-global-search {
        flex: 0 0 var(--button-height);
        width: var(--button-height);
        min-width: 0;
        transition: width .25s ease, flex-basis .25s ease;
        margin-left: auto;
    }

    .inside-front--app .inside-global-search__field {
        width: 100%;
    }

    .inside-front--app .inside-global-search__input {
        width: 100%;
        padding-right: var(--button-height);
        padding-left: 0;
        border-color: transparent;
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s ease, padding .25s ease, border-color .2s ease;
    }

    .inside-front--app .inside-global-search__button {
        background: var(--color-grey-200);
        color: var(--color-grey-900);

    }

    .inside-front--app .inside-global-search.is-open {
        flex: 1 1 auto;
        width: 100%;
    }

    .inside-front--app .inside-global-search.is-open .inside-global-search__input {
        padding-right: var(--button-height);
        padding-left: var(--space-5);
        border-color: var(--color-grey-300);
        opacity: 1;
        pointer-events: auto;
    }

    .inside-front--app .inside-global-search.is-open .inside-global-search__button {
        background: transparent;
        color: var(--color-red);
    }

    .inside-front--app .front-header.is-search-open .front-mobile-brand {
        display: none;
    }

    .inside-front--app .inside-global-search__suggestions {
        position: fixed;
        top: calc(var(--header-height) + var(--space-2));
        right: var(--space-4);
        left: var(--space-4);
        width: auto;
        max-height: calc(100dvh - var(--header-height) - var(--space-6));
    }

    /* Un seul acces au compte en mobile : celui du drawer. */
    .inside-front--app .front-account-menu  span{
        display: none;
    }
    .inside-front--app .front-account-menu  .front-pill{
        height: 35px;
        width: 35px;
        padding: 0;
    }
    /* Notifications toujours visibles. */
    .inside-front--app .front-notification-menu .front-pill {
        position: relative;
        display: grid;
        width: var(--button-height);
        height: var(--button-height);
        padding: 0;
        place-items: center;
        border-radius: var(--radius-pill);
    }

    .inside-front--app .front-notification-menu .front-pill > span:not(.icon-mask) {
        display: none;
    }

    .inside-front--app .front-notification-menu .front-pill b {
        position: absolute;
        top: -4px;
        right: -4px;
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        font-size: 10px;
        line-height: 18px;
    }

    .inside-front--app .front-notification-dropdown {
        position: fixed;
        top: calc(var(--header-height) + var(--space-3));
        right: var(--space-4);
        left: var(--space-4);
        width: auto;
        max-height: calc(100dvh - var(--header-height) - var(--space-6));
        padding: var(--space-6);
        overflow-y: auto;
    }

    .inside-front--app .front-notification-dropdown::before {
        display: none;
    }

    /* Burger */
    .inside-menu-toggle {
        display: grid;
        padding: 0;
        place-content: center;
        gap: 8px;
        border: 0;
        border-radius: var(--radius-pill);
        background: transparent;
        cursor: pointer;
        margin-left: 15px;
    }

    .inside-menu-toggle span {
        display: block;
        width: 24px;
        height: 1px;
        background: var(--color-grey-900);
    }

    /* Sidebar desktop reutilisee comme drawer a droite. */
    .inside-front--app .inside-sidebar {
        inset: 0 0 0 auto;
        transform: translateX(100%);
        visibility: hidden;
        transition: transform .25s ease, visibility .25s ease;
        z-index: 10001;
        width: 100%;
        padding: 30px 7.5vw 100px 7.5vw;
    }

    .inside-front--app .inside-sidebar.is-open {
        transform: translateX(0);
        visibility: visible;
    }

    .inside-front--app .inside-sidebar .inside-sidebar__brand{
        width: 164px;
        height: 51px;
    }
    .inside-front--app :is(.top-round, .top-round-2, .btm-round, .btm-round-2) {
        display: none;
    }


    .front-menu-item{
        width: 100%;
    }
    .front-menu-link{
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        align-items: center;
        gap: 10px;
    }
    .front-menu-link .front-menu-icon svg{
        transform: scale(0.7);

    }
    .front-nav{
        width: 100%;
    }
    .front-menu{
        margin-top: 40px;
    }
    .front-menu-label{
        width: auto;
        font-size: var(--text-button);
    }


    /* Overlay du drawer */
    .inside-menu-overlay {
        position: fixed;
        inset: 0;
        z-index: 999;
        padding: 0;
        border: 0;
        background: rgba(63, 68, 74, .35);
        opacity: 0;
        visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
    }

    .inside-menu-overlay.is-open {
        opacity: 1;
        visibility: visible;
    }

    .inside-container {
        width: calc(100% - 15vw);
    }

    .home-links__grid {
        grid-template-columns: 1fr;
    }

    .home-feature__content {
        padding-inline: var(--space-6);
    }

    .inside-sidebar__rule {
        display: none;
    }

    .inside-front {
        padding-top: 80px;
    }

    .home-intro__copy {
        margin-top: 15px;
    }

    .inside-front--app .front-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 10000;
        box-shadow: 10px 10px 19px 2px rgba(0, 0, 0, 0.04);
        -webkit-box-shadow: 10px 10px 19px 2px rgba(0, 0, 0, 0.04);
        -moz-box-shadow: 10px 10px 19px 2px rgba(0, 0, 0, 0.04);
    }

    .news-section__header .text-link {
        display: none;
    }

    .home-intro {
        padding-top: 35px;
    }

    .front-page-header {
        padding-top: 35px;
    }

    .page-subnav {
        margin-top: var(--space-5);
    }

    .home-feature__eyebrow {
        padding: 30px 15px 15px;
    }

    .home-feature__badge {
        position: absolute;
        z-index: 2;
        right: 10px;
        bottom: 10px;
        height: 120px;
        width: auto;
    }

    .home-feature__button {
        margin-top: 25px;
    }

    .ui-button--md {
        height: auto;
    }

    .ui-button {
        padding: 8px 16px;
        font-size: var(--text-tag);
        width: fit-content;
    }

    .home-feature__card {
        padding-bottom: 130px;
    }

    .icon-arrow-long {
        width: 30px;
    }

    .news-section__header {
        margin-bottom: 20px;
    }

    .home-feature {
        padding-bottom: 0;
    }

    .front-footer__inner {
        padding-top: 25px;
        display: block;
    }

    .front-footer__links {
        margin-top: 5px;
    }

    /*.news-section {*/
    /*    padding-bottom: 0;*/
    /*}*/

    .inside-front--app .inside-global-search__button svg {
        height: 16px;
        width: auto;
    }

    .flex-image-text-grid {
        grid-gap: 40px;
    }

    .flex-image-text-badge {
        width: 110px;
        height: 110px;
        top: -40px;
        right: -18px;
    }

    .page-two-column-intro__grid {
        display: block;
    }

    .page-two-column-intro__aside {
        margin-top: var(--space-7);
    }

    .page-two-column-intro__info {
        padding: 0 0 var(--space-5);
        margin-bottom: var(--space-5);
    }

    .registration-summary__row {
        padding: var(--space-7) 0;
        display: block;
    }

    .registration-summary__content {
        margin: 15px 0;
    }

    .page-info-panel__box {
        display: block;
        padding: var(--space-7);
    }

    .page-info-panel__side {
        min-height: unset;
    }

    .page-info-panel__media {
        display: none;
    }

    .page-info-panel__summary {
        padding: 12px 0;
    }

    .page-info-panel__plus::before, .page-info-panel__plus::after {
        width: 13px;
    }

    .page-timeline__item {
        display: block;
        padding: var(--space-6) 0;
    }

    .page-timeline__year {
        margin-bottom: 10px;
    }

    .page-timeline__index {
        display: none;
    }

    .page-quote__box {
        padding: 20px;
    }

    .photo-news-galleries__sort {
        display: none;
    }

    .photo-gallery-card {
        display: block;
        padding: var(--space-6);
    }

    .photo-gallery-card__media-grid {
        min-height: unset;
        margin-top: 20px;
    }

    .photo-gallery-card__content {
        padding: 0;
    }

    .photo-gallery-card__arrow {
        padding-top: 0;
    }

    .grid-header {
        display: block;
    }

    .front-page-header .text-link {
        margin-bottom: var(--space-6);
    }
    .inside-news-gallery:has(> .inside-news-gallery__item:nth-child(3)){
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 15px;
    }
    .inside-front--app .front-header .front-actions{
        margin-top: 0;
    }
    .icon-mask{
        width: 16px;
    }
    .text-link{
        gap: 10px;
    }
    .event-card{
        display: block;
        padding: var(--space-7);
        min-height: unset;
    }
    .no-img-card{
        display: none;
    }
    .event-card__content{
        padding: 0;
    }
    .event-card__media{
        height: auto;
        margin-bottom: var(--space-5);
    }
    .event-card__title{
        margin-top: 12px;
    }
    .event-card__meta-item{
        font-size: var(--text-ui);
    }
    .icon-location,
    .icon-date{
        width: 11px;
    }
    .inside-sidebar{
        padding: 30px 45px 20px;
        align-items: flex-start;

    }
    .news-card-lead{
        display: block;
        padding: var(--space-6);
    }
    .news-card-lead .news-card__body{
        padding-left: 0;
        padding-right: 0;
        padding-bottom: 0;
    }
    .news-card-lead .news-card__arrow{
        margin-top: 20px;
    }
    .grid-news-filter-date{
        display: block;
        margin-bottom: var(--space-7);
    }
    .news-empty {
        min-height: unset;
        padding: 20px;
    }
    .event-detail__hero{
        height: 60vw;
        margin-bottom: var(--space-section);
    }
    .event-detail__back{
        margin-bottom: 20px;
    }
    .event-detail__status{

        bottom: unset;
        left: unset;
        top: 15px;
        right: 15px;
    }

    .inside-logo--desktop {
        display: none;
    }

    .inside-logo--mobile-menu,
    .front-mobile-brand {
        display: flex;
        align-items: center;
    }

    .inside-logo--mobile-menu svg,
    .front-mobile-brand svg {
        display: block;
        width: 100%;
        height: auto;
    }
    .flex-block--login .front-access-card{
        display: block;
        margin-top: 0;
        padding: 0;
        background: transparent;
    }

    .inside-front,
    .inside-shell{
        min-height: unset;
    }

    .front-access-panel{
        margin-top: 20px;
        padding: 20px;
    }
    .flex-block--login .front-access-panel{
        background: var(--color-grey-200);

    }
    .inside-front--public .inside-sidebar__brand{
        left: 7.5vw;
        width: 120px;
    }
    .inside-front--public{
        padding-top: 100px;
    }
    .inside-sidebar__close {
        position: absolute;
        top: 51px;
        right: 7.5vw;

        width: 35px;
        height: 35px;

        padding: 0;

        display: grid;
        place-content: center;

        border: 0;
        border-radius: var(--radius-pill);

        background: transparent;

        cursor: pointer;

        z-index: 2;
    }

    .inside-sidebar__close span {
        position: absolute;

        width: 24px;
        height: 1px;

        background: var(--color-grey-900);
    }

    .inside-sidebar__close span:first-child {
        transform: rotate(45deg);
    }

    .inside-sidebar__close span:last-child {
        transform: rotate(-45deg);
    }
    .event-practical__row{
        display: block;
        padding: 12px 0;
    }
    .event-practical__icon{
        margin-top: 0;
    }
    .event-practical__icon .icon-mask{
        width: 13px;
        margin-bottom: 0px;
    }
    .event-practical__icon .icon-mask.icon-profile{
        width: 19px;
    }
    .event-program__row{
        padding: 15px 0;
        display: block;
    }
    .event-detail__section{
        margin-top: var(--space-section);
    }
    .event-registration-card-desktop{
        display: none;
    }
    .event-registration-card-mobile{
        display: block;
    }
    .event-detail__layout{
        display: block;
    }
    .event-registration-card{
        padding: 20px;
        margin-top: 20px;
    }
    .event-registration-card__button{
        margin-top: 20px;
    }
    .event-detail__section-title{
        margin-bottom: 15px;
    }
    .event-program__time{
        margin-bottom: 5px;
    }
    .event-detail{
        padding-top: 35px;
        padding-bottom: var(--space-section);
    }
    .registration-modal__scroll{
        padding: 40px 25px 40px 25px;
    }
    .registration-modal__close{
        top: 13px;
        right: 13px;
    }
    .registration-modal__body{
        margin-top: 20px;
    }
    .event-form-step-progress{
        margin-bottom: 25px;
    }
    .event-form-step-panel, .event-form-no-step{
        grid-template-columns: 1fr;
        column-gap: 10px;
        row-gap: 10px;
    }
    .registration-guest-row__fields{
        grid-template-columns: 1fr;
        grid-gap: 10px;
    }
    .registration-radio-card{
        padding: 12px;
    }
    .registration-button{
        padding: 8px 14px;
    }
    .registration-button__arrow {
        width: 22px;
    }
    .event-practical__icon{
        display: none;
    }
    .registration-field > label, .registration-guest-row__fields .registration-field > label{
        font-size: var(--text-ui);
    }
    .registration-control{
        min-height: unset;
        padding: 6px 14px;
        border-radius: 6px;
        font-size: var(--text-ui);
    }
    .event-form-step-nav{
        margin-top: 40px;
    }
    .registration-boolean__text, .registration-radio-card__text{
        font-size: var(--text-ui);
    }
    .registration-form-block, .registration-heading, .registration-message, .registration-divider, .registration-recap, .registration-alert{
        grid-column: unset;
    }
    .registration-recap{
        display: block;
    }
    .registration-button{
        font-size: var(--text-ui);
    }
    .registration-button .registration-button__arrow{
        display: none;
    }
    .registration-recap__check{
        margin-top: 10px;
        gap: 6px;
    }
    .registration-form-block + .registration-form-block{
        display: none;
    }
    .registration-modal__close{
        width: 30px;
        height: 30px;
    }
    .registration-modal__close svg{
        width: 12px;
        height: 12px;
    }
    .registration-recap-block__title,
    .registration-choice-block__title,
    .registration-guests-block__title,
    .registration-slot-block__title{
        margin-bottom: 15px;
        margin-top: 5px;
    }
    .registration-guest-group__label{
        font-size: var(--text-ui);
    }
    .registration-guest-group__head{
        min-height: unset;
        padding: 7px 13px 7px 13px;
    }
    .event-practical__value{
        margin-top: 5px;
    }
    .account-page__main{
        display: block;
    }
    .account-registration-card{
        display: block;
    }
    .front-notification-preview.is-unread::before{
        left: -10px;
        top: 22px;
    }
    .account-empty-state, .account-notifications__empty, .account-registrations__empty{
        flex-wrap: wrap;
    }
    .account-empty-state .account-notification-item__icon{
        display: none;
    }
    .account-notification-item time{
        position: absolute;
        top: 18px;
        right: 0;
        font-size: 12px;
    }
    .account-notification-item__icon, .account-list-row__icon{
        display: none;
    }
    .account-list-row__title strong,
    .account-notification-item__content strong{
        max-width: 80%;
        margin-bottom: 5px;
    }
    .account-list-row__copy p{
        font-size: var(--text-button);
    }
    .account-notification-item{
        display: block;
        padding: 25px 0;
    }
    .account-notification-item__unread{
        position: absolute;
        left: -13px;
        top: 25px;
        width: 6px;
        height: 6px;
    }
    .account-registrations{
        margin-top: var(--space-section);
    }
    .account-profile-card{
        padding: var(--space-6);
    }
    .account-registration-card__body{
        padding: var(--space-6);
    }
    .account-registration-card__meta{
        font-size: var(--text-ui);
    }
    .not-read{
        display: none;
    }
    .account-subpage__heading{
        display: block;
    }
    .mark-read{
        margin-top: 15px;
    }
    .account-registration-card__media{
        display: none;
    }

    .news-page__filters,
    .event-listing__categories {
        display: none;
    }

    .news-page__filters-mobile,
    .event-listing__categories-mobile {
        display: block;
        width: 100%;
        position: relative;
    }

    .mobile-filter-select,
    .mobile-filter-select .event-listing__state-select {
        width: 100%;
    }

    .news-page__filters-mobile {
        margin-bottom: 10px;
    }
    .event-listing__state-select{
        width: 100%;
    }
    .event-listing .event-listing__state-filter{
        /*display: flex;*/
    }
    .event-listing__filters{
        /*display: grid;*/
        /*grid-template-columns: 1fr 1fr;*/
        /*grid-gap: 10px;*/
        margin-bottom: var(--space-7);
    }
    .news-card__body p{
        margin-top: 5px;
    }
    .news-card__body{
        padding-top: 10px;
    }
    .news-card__arrow{
        margin-top: -4px;
    }
    .home-link-card__icon{
        width: 50px;
        height: 50px;
        flex: 0 0 50px;
    }
    .home-link-card{
        padding: var(--space-6);
    }
    body .inside-search-page{
        width: calc(100% - 15vw);
    }
    body .inside-search-result__icon{
        display: none;
    }
    body .inside-search-result{
        grid-template-columns: 1fr auto;
    }
    .account-list-row__action span{
        background-color: var(--color-red);
    }
    .registration-slot-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));

    }
    .inside-front--public .inside-sidebar,
    .inside-front--public .inside-sidebar__brand{
        position: absolute;
    }
    .inside-front--public .event-detail{
        padding-top: 0;
    }
    .account-form-grid, .account-data-list{
        grid-template-columns: 1fr;
        grid-gap: 10px;
    }
    .account-field label{
        font-size: var(--text-ui);
    }
    .account-field input, .account-field select{
        height: auto;
        padding: 8px 12px;
    }
    .account-field input, .account-field select{
        color: var(--color-grey-900);
    }
    .account-form{
        gap: 0;
    }
    .notification-preference-block{
        gap: 20px;
        padding: 10px 0;
    }
    .notification-preference-fixed span{
        display: none;
    }
    .account-form-actions{
        padding-top: 20px;
    }
    .account-form--security{
        gap: 10px;
    }
    .registration-boolean__marker, .registration-choice-card__marker, .registration-radio-card__marker{
        flex: 0 0 15px;
        width: 15px;
        height: 15px;
    }
    .account-list-row__copy img{
        margin-top: 12px!important;
    }
    .registration-recap__checks{
        margin-top: 12px;
    }
    .registration-radio-card{
        min-height: auto;
    }
    .registration-radio-card,
    .registration-boolean-card{
        gap: 8px;
    }
    .registration-boolean-card__title{
        font-size: var(--text-ui);
    }
    .registration-field > label.registration-boolean-card{
        /*align-items: center;*/
    }
    .registration-boolean-card__marker{
        /*margin-top: 0;*/
    }
    .registration-option-card__marker, .registration-choice-card--checkbox .registration-choice-card__marker, .registration-boolean-card__marker{
        flex: 0 0 15px;
        width: 15px;
        height: 15px;
    }
    .registration-boolean__input:checked + .registration-boolean__marker, .registration-choice-card__input:checked + .registration-choice-card__marker, .registration-radio-card__input:checked + .registration-radio-card__marker{
        border-color: var(--color-red);
    }
    .registration-boolean-card__help{
        font-size: var(--text-nav);
    }
    .registration-boolean-card__copy{
        gap: 2px;
    }
    .registration-option-card__marker::after, .registration-choice-card--checkbox .registration-choice-card__marker::after, .registration-boolean-card__marker::after{
        inset: 0;
    }
    .registration-field > label.registration-boolean-card{
        margin: 5px 0;
    }
    .registration-recap__field{
        font-size: var(--text-ui);
    }
    .acces-bo{
        display: none;
    }
}
