/* =============================================================================
   # GRDC : Liste de mots-clé
========================================================================== */

.keywordList.filter{
    margin-bottom: 64px;
    scroll-margin-top: 124px;

    ul{
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 24px;

        @media(max-width: 1024px){
            grid-template-columns: 1fr;
            gap: 16px;
        }

        li .filterOption{
            display: flex;
            justify-content: space-between;
            padding: 24px;
            border: 1px solid var(--color-background_alt);
            border-radius: 12px;
            background-color: var(--color-background);
            gap: 12px;
            position: relative;
            transition: background-color 0.3s, border-color 0.3s;

            font-weight: 500;
            font-size: 1.6rem;
            color: var(--color-primary);
            text-decoration: none;

            .keywordImg {
                height: 80px;

                @media(max-width: 1024px){
                    height: 40px;
                }

                img {
                    height: 100%;
                    width: auto;
                }
            }

            p{
                text-align: right;
                line-height: 1.2;
            }
        }

        li.seeAll {
            grid-column: Span 4;

            @media(max-width: 1024px){
                grid-column: 1;
            }

            .filterOption{
                justify-content: center;
                align-items: center;
                padding: 20px 24px;
            }
        }

        li[data-index*="1"] {
            order: 1;
        }
        li[data-index*="2"] {
            order: 2;
        }
        li[data-index*="3"] {
            order: 3;
        }
        li[data-index*="4"] {
            order: 4;
        }

        li .filterOption:hover,
        li .filterOption.active{
            background-color: var(--color-primary_light);
            border-color: var(--color-primary);
        }
    }

}

/* Variantes de thèmes */

.aujourd-hui-demains {
    .keywordList.filter ul li:not(.seeAll) .filterOption{
        &:before{
            content: "";
            width: 40px;
            height: 10px;
            display: block;
            position: absolute;
            bottom: 24px;
            right: 24px;
            background-color: var(--color-theme-accent);
        }

        &.active:before{
            background-color: var(--color-primary);
        }
    }
}

/* =============================================================================
   # NEWL : Inscriptions
   ========================================================================== */

/* version solo en top de liste */
.newsletterSmartSubMulti.solo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 32px 0;

    label {
        cursor: pointer;
        font-size: 1.6rem;
        line-height: 1.6rem;
        color: var(--color-text);
    }

    .checkbox_subscribe {
        display: flex;
        align-items: center;
        cursor:pointer;
        position: relative;

        input {
            opacity: 0;
            margin: 0;
            position: absolute;
            width: 40px;
            height: 100%;

            &:focus + .toggle_switch {
                outline: 2px color-mix(in srgb, var(--color-primary) 30%, transparent 70%) solid;
                border-radius: 15px;
            }
        }

        .toggle_switch {
            position: relative;
            display: inline-block;
            margin-right: 12px;

            .under_toggle {
                position: relative;
                z-index: 0;
                width: 40px;
                height: 20px;
                border-radius: calc(infinity * 1px);
                transition: position ease .5s,background-color ease .5s;
                background-color: var(--color-primary_medium);

                &:after {
                    content: 'X';
                    position: absolute;
                    right: 10px;
                    top: 2px;
                    color: var(--color-primary);
                    font-size: 1.2rem;
                    z-index: 1;
                    line-height: 16px;
                }
            }

            .toggle {
                position: absolute;
                top: 2px;
                left: 2px;
                z-index: 2;
                width: 16px;
                height: 16px;
                border-radius: 10px;
                background-color: var(--color-invariant_white);
                transition: left ease .5s,background-color ease .5s;
            }
        }
    }

    .checkbox_subscribe input:checked + .toggle_switch{

        .under_toggle {
            background-color: var(--color-tertiary);

            &:after {
                content: '';
                width: 10px;
                height: 6px;
                top: 4px;
                right: calc(100% - 18px);
                border-bottom: 1px solid var(--color-invariant_white);
                border-left: 1px solid var(--color-invariant_white);
                transform: rotate(-45deg);
            }
        }

        .toggle {
            left: 22px;
        }
    }
}

.newsletterSmartSubMulti.solo ~ .notification {
    background-color: var(--color-primary);
    color: white;
    font-size: 1.2rem;
    position: fixed;
    top: -40px;
    width: calc(100% - 32px);
    text-align: center;
    padding: 5px;
    border-radius: 6px;
    animation: popInSolo 3s;
    max-width: 1024px;
    z-index: 99;
    left: 50%;
    transform: translateX(-50%);
}

.notification {
    background-color: var(--color-primary);
    color: white;
    font-size: 1.2rem;
    position: absolute;
    top: -40px;
    width: calc(100% - 40px);
    text-align: center;
    padding: 5px;
    border-radius: 6px;
    animation: popIn 3s;
}

.newsletterSmartSubMulti.solo ~ .notification.add,
.notification.add{background-color:var(--color-tertiary);}
.newsletterSmartSubMulti.solo ~ .notification.del,
.notification.del{background-color:#ed6200;}

@keyframes popInSolo {
  0% { top: -40px; opacity: 0; }
  30%, 80% { top: 134px; opacity: 1; }
  100% { top: -40px; opacity: 0; }
}

@keyframes popIn {
    0% { top: -40px; opacity: 0; }
    30%, 80% { top: 20px; opacity: 1; }
    100% { top: -40px; opacity: 0; }
  }


/* =============================================================================
   # GRDC : Module / ContentList
   ========================================================================== */


/* Modèle 1 */
.contentList2.agendaNews{
    padding: 0 0 30px 0;
    margin-top: 50px;

    .headerModel01 {
        margin-bottom: 50px;

        .title {
            color: #004494;
            font-size: 3rem;
            font-weight: 800;
            display: block;
            line-height: 3rem;
            margin-bottom: 20px;
            border-bottom: rgba(124, 124, 124, 0.42) solid 1px;
            padding-bottom: 20px;
            position: relative;
        }
    }
    .headerModel01 .title:after {
        content: "";
        height: 40px;
        width: 39px;
        background: url(/files/fr/images/observatoire/arrow-icon.png);
        position: absolute;
        right: 40px;
        bottom: -11px;
    }

    .modContent{
        article {
            margin-bottom: 30px;

            a {
                display: flex;
                align-items: center;
                text-decoration: none;

                h2 {
                    font-size: 2rem;
                    line-height: 1.7;
                    color: #004494;
                    margin-bottom: 3px;
                }

                &:hover h2{
                    color: #e2001a;
                }                

                &:before {
                    content: "";
                    height: 120px;
                    min-width: 120px;
                    border-radius: 150px;
                    position: relative;
                    display: block;
                    background-color: #e8ecf5;
                    margin-right: 25px;
                    background-repeat: no-repeat;
                    background-position: center;
                }
                .readMore {
                    font-size: 1.4rem;
                    text-decoration: underline;
                    padding: 12px 12px 12px 0;
                    margin-top: auto;
                    margin-bottom: -12px;
                    color: var(--color-primary);
                    font-weight: 500;
                }
                &:hover .readMore {
                    text-decoration: none;
                }
            }
            &.etudes a:before {
                background-image: url(/files/fr/images/observatoire/book-icon.png);
            }
    
            &.publications a:before {
                background-image: url(/files/fr/images/observatoire/calendar-icon.png);
            }
        }
    }
}

.aujourd-hui-demains .contentList2.agendaNews .headerModel01 .title:after {
    background: url(/files/fr/images/aujourdhuiEtDemain/Vector.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position-y: 100%;
    right: 0;
    bottom: 0;
    width: 43.31px;
}

.section_bottom .contentList2.agendaNews{
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;

    @media (max-width: 1024px){
        width: 90%;
    }
}


/* Modèle 2 */

.GRDC_List_Model2{
    margin: 0 0 30px 0;
}

.GRDC_List_Model2 .corps {
    padding: 18px;
}

.GRDC_List_Model2 .corps h2 {
    font-size: 2rem;
    line-height: 2.6rem;
}

.GRDC_List_Model2 .corps p {
    font-size: 1.2rem;
    line-height: 1.8rem;
}

.GRDC_List_Model2 .infoContent {
    font-size: 1.2rem;
}

/* =============================================================================
   # GSOC : modules
   ========================================================================== */

   .section_aside .mod {
    margin-bottom: 48px;
}

.section_aside .mod .mod_header{
    display: flex;
    align-items: center;
    padding: 12px 0;
}

.section_aside .mod .mod_header .title {
    display: block;
    font-size: 1.6rem;
    font-weight: bold;
    padding: 0 20px 0 0;
}


/* GSOC_topMostView */

.GSOC_topMostView {
    position: relative;
    border: 2px solid #dbebff;
}

.GSOC_topMostView .title small{
    display: block;
    font-size: 1.16rem; 
    font-weight: normal;
}

.GSOC_topMostView i{
    width: 64px;
    text-align: center;
    font-size: 2.2rem;
    color: #125db5;
}

.GSOC_topMostView .GetMostViewed{
    background-color: #f1f7ff;
}


.GSOC_topMostView .topMost > div:hover{    
    background-color: #DBEBFF;
    font-weight: 600;
}

.GSOC_topMostView .topMost > div {
    white-space: nowrap;
    display: flex;
    align-items: center;
    transition: background-color .3s ease;
}

.GSOC_topMostView .topMost > div:not(:last-child) {
    border-bottom: 1px solid #e5e5e5; 
}

.GSOC_topMostView .topMost .num {
    width: 48px;
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center; 
    color: #125db5;
}

.GSOC_topMostView .topMost .objectlinker-text {
    width: calc(100% - 34px); 
    font-size: 1.2rem; 
    white-space: normal; 
    padding: 8px 12px 8px 0;
}


/* GSOC_topMostRate */

.GSOC_topMostRate {
    position: relative;
    border: 2px solid #ffe2e5;
}

.GSOC_topMostRate i{
    width: 64px;
    text-align: center;
    font-size: 1.8rem;
    color: #e2001a;
}

.GSOC_topMostRate .PlugBestRated{
    background-color: #fff4f5;
}

.GSOC_topMostRate .topMost a{    
    display: flex;
    align-items: center;
    transition: background-color .3s ease;
}

.GSOC_topMostRate .topMost a:hover{    
    background-color: #ffe2e5;
    font-weight: 600;
}

.GSOC_topMostRate .topMost > div {
    white-space: nowrap;
}

.GSOC_topMostRate .topMost > div:not(:last-child) {
    border-bottom: 1px solid #e5e5e5; 
}

.GSOC_topMostRate .topMost .num {
    width: 48px;
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center; 
    color: #e2001a;
}

.GSOC_topMostRate .topMost .objectlinker-text {
    width: calc(100% - 34px); 
    font-size: 1.2rem; 
    white-space: normal; 
    padding: 8px 12px 8px 0;
}


/* =============================================================================
   # GRDC : modules
   ========================================================================== */

/* GRDC_webPoll*/

.GRDC_webPoll {
    border: 2px solid #dbebff;
}

.GRDC_webPoll .mod_header {
    display: flex;
    align-items: center;
    padding: 12px 0;
}

.GRDC_webPoll .title {
    display: block;
    font-size: 1.6rem;
    font-weight: bold;
} 

.GRDC_webPoll i{
    width: 64px;
    text-align: center;
    font-size: 1.8rem;
    color: #125db5;
}

.GRDC_webPoll .voteContent{
    padding: 15px 20px;
}

.GRDC_webPoll .voteContent h2{
    font-size: 1.4rem;
    line-height: 2.2rem;
}

.GRDC_webPoll .msgBox {
    margin-top: 10px;
    margin-bottom: 16px;
} 

.GRDC_webPoll .reponse {
    font-size: 1.4rem;
} 

.GRDC_webPoll .percent {
    font-size: 1.4rem;
    line-height: 1rem;
} 

.GRDC_webPoll .total {
    margin: 16px 0;
    font-size: 1.4rem;
}


/* GRDC_ContentEvent */

.GRDC_ContentEvent, .GRDC_List_Model3 {
    border: 2px solid #fdeec8;
}

.GRDC_ContentEvent i, .GRDC_List_Model3 i{
    width: 64px;
    text-align: center;
    font-size: 1.8rem;
    color: #e9bb48;
}

.GRDC_ContentEvent .modContent, .GRDC_List_Model3 .modContent{
    padding: 10px 20px;
}

.GRDC_ContentEvent .event, .GRDC_List_Model3 .event {
    display: flex;
}

.GRDC_ContentEvent .event:not(:last-child), .GRDC_List_Model3 .event:not(:last-child){
    margin-bottom: 8px;
}

.GRDC_ContentEvent .date {
    width: 60px;
}

.GRDC_ContentEvent .top {
    display: flex;
    align-items: center;
}

.GRDC_ContentEvent .start,
.GRDC_ContentEvent .end, 
.GRDC_List_Model3 .start {
    flex-grow: 1;
    background: #fff3d5;
    padding: 5px 12px;
    margin-right: 4px;
}

.GRDC_ContentEvent .dayDate {
    display: block;
    text-align: center;
    font-weight: bold;
    font-size: 2rem;
    color: #845f00;
    line-height: 2.4rem;
}

.GRDC_ContentEvent .monthDate, 
.GRDC_ContentEvent .yearDate {
    display: block;
    text-align: center;
    text-transform: uppercase;
    line-height: 1.3rem;
    color: #8a6a18;
    font-size: 1rem;
}

.GRDC_List_Model3 .fullDate::first-line {
    text-align: center;
    font-weight: bold;
    font-size: 2rem;
    color: #845f00;
    line-height: 2.4rem;
}

.GRDC_List_Model3 .fullDate {
    display: block;
    text-align: center;
    text-transform: uppercase;
    line-height: 1.3rem;
    color: #8a6a18;
    font-size: 1rem;
    max-width: 27px;
    word-break: keep-all;
}

.GRDC_ContentEvent .text, 
.GRDC_List_Model3 .text {
    width: calc(100% - 110px);
    font-size: 1.2rem;
    margin-left: 4px;
}

.GRDC_ContentEvent .localisation {
    display: block;
    font-weight: 600;
}

/* GRDC_ContentList2 */

div[data-type="module"][data-app="GRDC_ContentList2"] article.highlight {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: end;
    aspect-ratio: 32 / 15;
    padding: 32px;
    margin-bottom: 48px;
    border-radius: 12px;
    background-color: var(--color-background);
    overflow: hidden;
    cursor: pointer;

    @media(max-width: 1024px){
        aspect-ratio: auto;
        padding: 0;
        border: 1px solid var(--color-decoration);
    }

    .tag{
        position: absolute;
        top: 32px;
        left: 32px;
        padding: 4px 10px;
        border-radius: 4px;
        background-color: var(--color-background);
        font-size: 1.4rem;
        line-height: 2rem;
        font-weight: 600;
        color: var(--color-primary);

        @media(max-width: 1024px){
            top: 16px;
            left: 16px;
        }
    }

    figure {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: color-mix(in srgb, var(--color-primary) 08%, transparent 92%);

        @media(max-width: 1024px){
            aspect-ratio: 32 / 15;
            position: relative;
        }

        img{
            position: relative;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
    }

    .content {
        position: relative;
        max-width: 490px;
        padding: 32px;
        border-radius: 8px;
        background-color: var(--color-background);
        overflow: auto;
        max-height: calc(100% - 28px - 24px);

        .heading .infos {
            display: flex;
            padding: 8px 0;
            gap: 20px;
            margin-bottom: 16px;
            color: var(--color-text_light);
            line-height: 2.4rem;
            border-bottom: 1px solid var(--color-decoration);
            border-top: 1px solid var(--color-decoration);
        }

        .text{
            margin-top: 24px;

            p:not(:first-child){
                margin-top: 12px;
            }
        }

        .btn{
            margin-top: 24px;
        }
    }
}

.GRDC_List_Model7{
    display: flex;
    flex-direction: column;
    gap: 64px;
    padding: 80px 0;
    background-color: var(--color-primary);

    .constrain > .title-h2{
        color: var(--color-background);
    }
}

.GRDC_List_Model8{
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 80px 0;
    border-top: 4px solid var(--color-primary);

    .list{
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 24px;

        @media screen and (max-width: 999px) {
            grid-template-columns: 1fr 1fr;
        }
    }

    .btn{
        margin-top: 16px;
        align-self: center;
    }
}

/* ========================================================================== */
/*   # Bloc HTML Module   */
/* ========================================================================== */

/* ----- Bloc Sticky Observatoire ----- */

.blocSticky {
    z-index: 1;
    background: #F39323;
    width: 190px;
    position: fixed;
    top: 335px;
    right: 0;
    font-size: 1.3rem;
    font-weight: 500;
    padding: 16px;
    border-radius: 12px 0 0 12px;
    color: #003471;
    text-align: center;
}

    .blocSticky img {
        width: 26px;
    }

    .blocSticky p {
        margin-bottom: 8px !important;
        line-height: 1.4rem;
    }

    .blocSticky .btn {
        border-radius: 6px;
        background-color: white;
        color: #f39323;
        font-weight: 500;
        padding: 2px 8px;
        width: 100%;
        text-align: center;
        border: 2px solid white;
        transition: background-color 0.3s, color 0.3s;
    }

        .blocSticky .btn:hover {
            background-color: #f39323;
            color: white;
        }

@media (max-width: 1404px){
    .blocSticky {
        top: unset;
        bottom: 16px;
        right: 50%;
        transform: translateX(50%);
        border-radius: 12px;
        width: calc(100% - 32px);
        max-width: 340px;
    }

        .blocSticky p {
            display: inline;
            position: relative;
            top: -8px;
            margin-left: 4px;
        }

        .blocSticky br {
            display: none;
        }

}

/* ----- Bloc Filtres de Médiathèque ----- */

.thematiques-filter {
    display: flex;
    gap: 32px;
    margin-bottom: 48px;

    @media screen and (max-width: 999px) {
        flex-direction: column;
    }

    & > div{
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
        min-height: 180px;
        padding: 36px 40px;
        border-radius: 12px;
        overflow: hidden;
        outline: 0 solid transparent;
        outline-offset: 0;
        cursor: pointer;
        transition-duration: 0.3s;

        font-family: var(--font-secondary);

        &:after{
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            display: block;
            width: 100%;
            height: 100%;
            backdrop-filter: blur(6px);
            transition-duration: 0.3s;
        }

        &:before{
            content: "";
            position: absolute;
            right: 34px;
            bottom: 30px;
            display: block;
            width: 32px;
            height: 25px;
            background-image: url(../images/arrow_sharp.svg);
            background-size: contain;
            opacity: 0;
            transition: transform 0.3s;
            z-index: 1;
        }

        img {
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 100%;
            object-fit: cover;
            background-position: center;
        }

        p{
            position: relative;
            max-width: 200px;
            color: var(--color-invariant_white);
            z-index: 1;

            line-height: 1.2;

            &.title{
                max-width: 225px;

                font-size: 2.4rem;
                font-weight: 500;
                line-height: initial;

                a{
                    text-decoration: none;
                }
            }

            .tip {
                padding: 0 2px;
                background: var(--color-invariant_white);
                position: relative;

                &:after {
                  content: "?";
                  font-size: 1.4rem;
                  position: absolute;
                  background: var(--color-invariant_white);
                  width: 17px;
                  text-align: center;
                  border-radius: 30px;
                  display: block;
                  position: absolute;
                  top: 0;
                  right: -20px;
                }
              }
        }

        &.mcm{
            background-color: color-mix(in srgb, var(--color-primary) 50%, black 50%);

            &:after{
                background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 70%, transparent 30%) 0%, color-mix(in srgb, var(--color-primary) 80%, transparent 20%) 29%, transparent 100%);
            }

            body.\/mediatheque\/la-mediatheque-credit-mutuel &:after,
            &:hover:after{
                backdrop-filter: none;
            }

            body.\/mediatheque\/la-mediatheque-credit-mutuel &{
                outline: 8px solid var(--color-primary);
                outline-offset: 4px;

                &:before{
                    opacity: 1;
                }
            }

            &:hover{
                outline: 8px solid color-mix(in srgb, var(--color-primary) 30%, transparent 70%);
            }

            &:hover:before{
                transform: rotate(-90deg);
                opacity: 1;
            }

            .tip {
                color: var(--color-primary);
              }

        }

        &.cm3d{
            background-color: color-mix(in srgb, var(--color-secondary) 50%, black 50%);

            &:after{
                background: linear-gradient(90deg, color-mix(in srgb, var(--color-secondary) 70%, transparent 30%) 0%, color-mix(in srgb, var(--color-secondary) 80%, transparent 20%) 29%, transparent 100%);
            }

            body.\/mediatheque\/votre-mediatheque-privee-cm3d &:after,
            &:hover:after{
                backdrop-filter: none;
            }

            body.\/mediatheque\/votre-mediatheque-privee-cm3d &{
                outline: 8px solid var(--color-secondary);
                outline-offset: 4px;

                &:before{
                    opacity: 1;
                }
            }

            &:hover{
                outline: 8px solid color-mix(in srgb, var(--color-secondary) 30%, transparent 70%);
            }

            &:hover:before{
                transform: rotate(-90deg);
                opacity: 1;
            }

            .tip {
                color: var(--color-secondary);
              }
        }
    }
}

/* ----- Bloc accès à CM3D pour liste de contenus ----- */

.cm3d-inline {
    grid-column: span 3;
    padding: 48px 56px;
    border-radius: 20px;
    background-size: cover;
    background-position: center;

    @media screen and (max-width: 999px) {
        grid-column: span 2;
    }

    .content{
        max-width: 370px;

        p{
            font-family: var(--font-secondary);
            font-size: 2.4rem;
            line-height: 3rem;
            color: var(--color-invariant_white);
        }

        .btn{
            margin-top: 24px;
            background-color: var(--color-secondary);

            &:hover{
                outline-color: color-mix(in srgb, var(--color-invariant_white) 30%, transparent 70%);
            }
        }
    }
}

/* ----- Bloc de recherche de fin de page ----- */

.search_bloc {
    max-width: 875px;
    padding: 80px;
    margin: 0 auto 80px auto;
    border: 8px solid var(--color-primary_medium);
    background: var(--color-primary_light);
    border-radius: 8px;

    text-align: center;

    @media screen and (max-width: 999px) {
        margin: 0 24px 80px 24px;
    }

    .field_search{
        position: relative;
        display: flex;
        gap: 8px;
        max-width: 560px;
        margin: 48px auto 0 auto;

        .icon_search {
            position: absolute;
            top: 14px;
            left: 16px;

            font-size: 1.4rem;
            color: var(--color-decoration);
        }

        input[type="text"] {
            padding: 10px 10px 10px 40px;
            height: auto;
            border-radius: 5px;
            border: 1px solid var(--color-text_light);

            font-family: var(--font-secondary);
            font-size: 1.6rem;

            &::placeholder{
                color: var(--color-text_light);
            }
        }
    }
}

/* ----- Bloc d'intro de newsletter ----- */

.introNewsList {
    padding-top: 20px;

    @media(max-width: 1024px){
        padding-top: 0;
    }

    figure {
        max-width: 400px;
        margin: 0 auto;
        width: 100%;

        img {
            width: 100%;
          }
    }
}