/* GRID */
.master-grid {
    width: 100%;
    position: relative;
    padding-top: calc(100vw * 20 / var(--page-width));
    margin-bottom: calc(100vw * 80 / var(--page-width));
    -webkit-grid-gap: var(--padding-general);
    grid-gap: var(--padding-general);
}

.master-grid:before {
    content: "";
    display: block;
    width: 79.6vw;
    height: 2px;
    background-color: var(--color-black);
    position: absolute;
    top: 0;
    left: 9.7vw;
}

.master-grid > .title {
    -webkit-grid-column: 2 / span 10;
    grid-column: 2 / span 10;
    margin-bottom: calc(100vw * 6 / var(--page-width));
}

/* THUMBNAIL */
.master-entry {
    -webkit-grid-column: span 6;
    grid-column: span 6;
}

.short-courses-grid .master-entry {
    -webkit-grid-column: span 3;
    grid-column: span 3;
}

.master-entry a {
    position: relative;
    display: block;
}

.master-entry .master-entry-title {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-width: calc(100vw * 526 / var(--page-width));
    padding: calc(100vw * 20 / var(--page-width))
        calc(100vw * 13 / var(--page-width));
    color: var(--color-white);
    z-index: 1;
    display: flex;
    flex-direction: column;
}

.master-entry .master-entry-title h3 {
    margin-bottom: calc(100vw * 12 / var(--page-width));
}

.short-courses-grid .master-entry .master-entry-title h3 {
    font-size: var(--font-size-t1);
    line-height: var(--line-height-t1);
}

.master-entry .image {
    position: relative;
    width: 100%;
    border-radius: calc(100vw * 5 / var(--page-width));
    overflow: hidden;
}

.master-entry .image:after {
    content: "";
    display: block;
    width: 100%;
    position: relative;
    padding-bottom: 78.6%;
}

.short-courses-grid .master-entry .image:after {
    padding-bottom: 125%;
}

.master-entry .image > * {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.master-entry .image .hover {
    display: none;
}

.master-entry a:hover .image .hover {
    display: block;
}

.master-entry .image picture {
    position: relative;
    width: 100%;
    height: 100%;
}

.master-entry .image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.master-entry .programme-schedule {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    text-transform: uppercase;
    align-items: flex-end;
    justify-content: space-between;
    color: var(--color-white);
    padding: calc(100vw * 16 / var(--page-width))
        calc(100vw * 12 / var(--page-width));
}

.master-entry .programme-schedule > span.font-size-m1 {
    border: 1px solid var(--color-white);
    padding: calc(100vw * 2 / var(--page-width))
        calc(100vw * 8 / var(--page-width)) calc(100vw * 1 / var(--page-width));
    border-radius: calc(100vw * 30 / var(--page-width));
    margin-bottom: calc(100vw * 8 / var(--page-width));
}

.master-entry:hover .programme-schedule > span.font-size-m1 {
    background-color: var(--color-white);
    color: var(--color-black);
}

/* OFFERS */
.offers .title {
    -webkit-grid-column: 2 / span 5;
    grid-column: 2 / span 5;
}

.offers .grid12 > .text {
    padding-top: calc(100vw * 10 / var(--page-width));
}

.offers .element:hover {
    color: var(--color-black);
}

/* TEXT */
.text.block .title {
    -webkit-grid-column: span 10;
    grid-column: span 10;
}

.text.block .content {
    -webkit-grid-column: span 5;
    grid-column: span 5;
}

/* VISUAL * TEXT */
.visual-text .inner {
    padding-bottom: 0;
}

.visual-text .inner .visual-text-content .text {
    padding-right: 0;
}

/* RESPONSIVE */
@media only screen and (max-width: 740px) {
    .master-grid > .title {
        font-size: var(--font-size-h2);
        line-height: var(--line-height-h2);
        letter-spacing: var(--letter-spacing-h2);
        margin-bottom: calc(100vw * 20 / var(--page-width));
        -webkit-grid-column: span 12;
        grid-column: span 12;
    }

    .master-grid:before {
        position: relative;
        width: 100%;
        -webkit-grid-column: span 12;
        grid-column: span 12;
        left: 0;
        margin-bottom: calc(100vw * 8 / var(--page-width));
    }

    .master-entry {
        -webkit-grid-column: span 12;
        grid-column: span 12;
    }

    .short-courses-grid .master-entry {
        -webkit-grid-column: span 6;
        grid-column: span 6;
    }

    .master-entry h3 {
        font-size: var(--font-size-t1);
        line-height: var(--line-height-t1);
        letter-spacing: 0;
    }

    .master-entry .programme-schedule {
        justify-content: space-between;
    }

    .master-entry .programme-schedule > * {
        width: auto;
    }

    .master-archive-text {
        margin-top: var(--padding-general);
    }

    .master-archive-text .text {
        -webkit-grid-column: span 12;
        grid-column: span 12;
        font-size: var(--font-size-body);
        line-height: var(--line-height-body);
    }

    .offers .title {
        -webkit-grid-column: span 12;
        grid-column: span 12;
    }

    .offers .element .element-title {
        font-size: var(--font-size-h2);
        line-height: var(--line-height-h2);
        letter-spacing: var(--letter-spacing-h2);
    }

    .text.block .content {
        -webkit-grid-column: span 10;
        grid-column: span 10;
    }
}
