/*
* Prefixed by https://autoprefixer.github.io
* PostCSS: v7.0.29,
* Autoprefixer: v9.7.6
* Browsers: last 4 version
*/


/* SPACING */
.umb-grid .grid-section {
    max-width: 1200px;
}

main {
    padding-top: 50px;
}

.intro {
    margin-bottom: 0;
}

.publishinfo {
    display: flex;
    gap: 36px;
    margin: 0 auto 12px auto;
    max-width: 1200px;
}

@media screen and (min-width: 1300px) {
    main {
        padding-top: 100px;
    }

    .intro {
        margin-bottom: 64px;
    }
}


/***** Navigation *****/
body:not(.menu) .mainNav a.logo {
    background-image: none;
}

body:not(.menu) .mainNav {
    max-width: unset;
    margin: 0 calc(3vw - 6px);
    margin-bottom: -180px;
}

    body:not(.menu) .mainNav.stickyShowTop {
        margin-bottom: -120px;
    }

    body:not(.menu) .mainNav a {
        border: none;
    }

@media screen and (min-width: 1050px) and (min-height: 600px) {
    body:not(.menu) .mainNav:not(.stickyShowTop) a.logo {
        display: none;
    }
}


/***** HERO INTRO *****/
.heroWrapper {
    width: 100%;
    overflow: hidden;
}

/* Hero media */
.heroMedia {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-flex: 10;
    -ms-flex: 10 1 680px;
    flex: 10 1 680px;
    position: relative;
    min-height: 450px;
    overflow: hidden;
    border-bottom: 4px solid #000;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    background: #000;
}

@media (orientation: portrait) {
    .heroMedia {
        height: calc(100vh - (min(max(18px,4vw),20px) * 3 + 64px)); /* full height - font * 1.5 line height x2  + padding x2 */
    }
}

.heroMedia .photo-heroIntro,
.heroMedia .photo-heroIntroRefPrev,
.heroMedia .photo-heroIntroRefNext {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    height: 100%;
    width: 100%;
    -webkit-filter: none;
    filter: none;
    background: #fff;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
}

.heroMedia .photo-heroIntroRefPrev,
.heroMedia .photo-heroIntroRefNext {
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
}

.heroMedia picture {
    height: 100%;
}

    .heroMedia picture:last-of-type::before {
        content: "";
        display: block;
        position: absolute;
        z-index: 1;
        height: 100%;
        width: 100%;
        background-color: rgba(0,0,0,0.4);
        opacity: 1;
        -webkit-transition: opacity 2s;
        -o-transition: opacity 2s;
        transition: opacity 2s;
    }

    .heroMedia picture img {
        height: 100% !important;
        max-width: unset !important;
        max-height: unset !important;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: 50% 50%;
        object-position: 50% 50%;
    }

.heroMedia .header {
    z-index: 1;
    -webkit-box-flex: 0;
    -ms-flex: 0 1 90%;
    flex: 0 1 90%;
    padding: 0;
    margin: 0 5%;
    color: #fff;
    text-align: center;
    transform: translate3d(0, 0, 0);
    -webkit-transition: transform 0.7s linear;
    -o-transition: transform 0.7s linear;
    transition: transform 0.7s linear;
}

    .heroMedia .header h1 {
        color: #fff;
        font-size: 40px;
        font-size: calc(40px + 2.8vw);
        font-weight: 900;
        line-height: 1.1em;
        text-align: center;
        text-transform: uppercase;
    }

    .heroMedia .header span {
        color: #fff;
    }
/*
    .heroMedia.fade h1 {
        transform: translate3d(0, -100vh, 0);
    }
    .heroMedia.fade picture:last-of-type::before {
        transform: translate3d(0, -100vh, 0);
    }
    */
@media screen and (max-height: 740px) and (max-width: 1000px) {
    .heroMedia .header {
        margin: 70px 5% 0 5%;
        pointer-events: none;
    }
}



@media screen and (min-width: 1050px) and (min-height: 600px) {
    .heroWrapper {
        height: 100vh;
        max-height: -webkit-fill-available;
        min-height: 400px;
        display: grid;
        grid-template-columns: auto 300px;
    }

    .heroMedia {
        height: 100%;
        border-right: 8px solid #000;
        border-bottom: 8px solid #000;
    }

        .heroMedia .header {
            -webkit-box-flex: 0;
            -ms-flex: 0 1 70%;
            flex: 0 1 70%;
            margin: 0 calc(5% + 60px) 0 5%;
        }

            .heroMedia .header h1 {
                font-size: 47px;
                font-size: calc(47px + 2.8vw);
            }
}

@media screen and (min-width: 1300px) and (min-height: 750px) {
    .heroWrapper {
        grid-template-columns: auto 400px;
    }
}


/* Video hero */
@media screen and (max-width: 1050px) {
    .heroWrapper.video .heroMedia {
        height: 100vw;
        min-height: 300px;
    }
}

@media screen and (min-width: 1050px) and (min-height: 750px) {
    .heroWrapper.video .heroMedia {
        height: unset;
        max-height: 100vh;
    }
}

.heroWrapper.video h1,
.heroWrapper.video .icon-scroll {
    visibility: hidden;
}



/* Hero sidemenu */
.heroSide {
    width: 100%;
    min-height: 375px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    border-bottom: 4px solid #000;
    background: #f8f8f8;
    background-size: 200% 100%;
    background-position: 0 0;
    font-size: 20px;
    color: #000;
    overflow: hidden;
}

    .heroSide .content {
        position: relative;
        padding-bottom: 100px;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        font-weight: 500;
    }

    .heroSide .episode {
        display: block;
        padding: 32px 0;
        font-size: 22px;
        font-size: calc(22px + 0.6vw);
        font-weight: 600;
        text-transform: uppercase;
        text-align: center;
    }

        .heroSide .episode .episodeNum {
            display: block;
        }

    .heroSide nav {
        display: -ms-grid;
        display: grid;
        grid-template-areas: ". prev . next ." ". pod pod pod ." ". main main main ." ". related related related .";
        -ms-grid-columns: 1fr auto auto auto 1fr;
        grid-template-columns: 1fr auto auto auto 1fr;
        margin-top: -3.5em;
    }

@media screen and (max-width: 1050px) and (min-height: 600px) and (max-height: 800px) {
    .heroSide nav {
        grid-template-rows: 0px auto;
    }
}

.heroSide a:not(.logo) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 18px;
    font-size: calc(18px + 0.12vw);
    line-height: 1.5;
    color: #000;
    text-decoration: none;
}

    .heroSide a:not(.logo) svg {
        height: 24px;
        width: 24px;
    }

.heroSide a.next,
.heroSide a.prev {
    -ms-grid-row: 1;
    -ms-grid-column: 4;
    grid-area: next;
    -ms-grid-column-align: start;
    justify-self: start;
    height: 22px;
    height: min(max(24px,4vw),36px);
}

    .heroSide a.next svg,
    .heroSide a.prev svg {
        height: 24px;
        height: min(max(24px,4vw),36px);
        width: 24px;
        width: min(max(24px,4vw),36px);
        -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
    }

.heroSide a.prev {
    -ms-grid-row: 1;
    -ms-grid-column: 2;
    grid-area: prev;
    -ms-grid-column-align: end;
    justify-self: end;
}

    .heroSide a.prev svg {
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }

.heroSide a.main {
    -ms-grid-row: 3;
    -ms-grid-column: 3;
    grid-area: main;
    margin-bottom: 16px;
}

.heroSide a.pod {
    -ms-grid-row: 2;
    -ms-grid-column: 3;
    grid-area: pod;
    margin-top: 64px;
    margin-bottom: 16px;
}

.heroSide a.related {
    -ms-grid-row: 4;
    -ms-grid-column: 3;
    grid-area: related;
    margin-bottom: 16px;
}

.heroSide a.map {
    -ms-grid-row: 5;
    -ms-grid-column: 3;
    grid-area: map;
    margin-bottom: 32px;
}

    .heroSide a.main svg,
    .heroSide a.pod svg,
    .heroSide a.related svg,
    .heroSide a.map svg {
        margin-right: 8px;
    }

.heroSide .subt {
    display: block;
    margin-bottom: 32px;
    padding: 0 10px;
    text-align: center;
}

.heroSide [data-scroll] {
    position: absolute;
    bottom: calc(22px + 1vh);
    left: 50%;
    height: 50px;
    width: 50px;
    margin-top: 20px;
    margin-left: -25px;
    background: rgba(0,0,0,0.1);
    border-radius: 50%;
    text-align: center;
}

    .heroSide [data-scroll] svg {
        height: 26px;
        width: 26px;
        margin: 0 auto;
    }

@media screen and (min-width: 999px) and (max-height: 850px) {
    .heroSide a[data-scroll] {
        display: none !important;
    }
}


.heroSide .logo {
    display: none;
}

    .heroSide .logo svg {
        position: relative;
        z-index: 1002;
    }

@media screen and (min-width: 1050px) and (min-height: 600px) {
    .heroSide {
        border-bottom-width: 2px;
    }

        .heroSide .logo {
            display: block;
            width: 100%;
            max-width: 100%;
            max-height: 40%;
        }

            .heroSide .logo svg {
                height: auto;
                max-height: 33vh;
                width: calc(100% - 40px);
                padding: 20px;
                background: #000;
            }

        .heroSide .content {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
            -ms-flex-direction: column;
            flex-direction: column;
            -webkit-box-pack: center;
            -ms-flex-pack: center;
            justify-content: center;
            height: 77vw;
            max-height: 60%;
            padding-bottom: 0;
        }

        .heroSide .episode {
            padding-top: 0;
        }

        .heroSide a.pod {
            margin-top: 64px;
        }

        .heroSide a.map {
            margin-bottom: 64px;
        }
}



/***** CONTENT *****/
.intro .column {
    max-width: unset;
}

@media screen and (min-width: 1300px) {
    main .intro p {
        max-width: calc(1200px - 470px + ((100vw - 1200px)/2));
        -ms-flex-item-align: start;
        align-self: flex-start;
    }
}



/***** PART *****/
.part {
    padding-top: 32px;
}

main .part_num {
    display: block;
}

    main .part_num span {
        display: inline-block;
        padding: 0 16px; /* TODO */
        background: #f8f8f8;
        line-height: 56px; /* TODO */
        font-style: normal;
        font-size: 20px;
        font-weight: 700;
        text-transform: uppercase;
    }

/*
main .part header {
    padding-bottom: 32px;
}
*/
main .part .part_intro,
main .part header blockquote {
    margin: -5% 0 32px 0;
    padding: 0;
    line-height: 1.5;
}


@media screen and (min-width: 1000px) {
    .part {
        padding-top: 64px;
    }

    main .part.left .part_intro,
    main .part.left header blockquote {
        margin: -5% auto 32px auto;
        max-width: 800px;
    }

    main .part.right .part_intro,
    main .part.right header blockquote {
        margin: -5% 20vw 32px 0;
        width: 85%;
    }
}


/***** END *****/
.end {
    position: relative;
    padding: 32px 32px 64px 0;
    margin: 0 10%;
}

@media screen and (min-width: 700px) {
    .end {
        padding: 32px 32px 64px 0;
    }
}


@media screen and (min-width: 1000px) {
    .end {
        max-width: calc(1200px - 4vw); /* calc(1200px - max(26px, 4vw)); ?? */
        margin: 0 auto;
        padding: 64px 64px 128px 0;
    }
}

.end::before {
    content: "";
    display: block;
    height: 70%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    border-top: calc(4px + 0.2vw) solid #000;
    border-right: calc(4px + 0.2vw) solid #000;
}

.end p {
    font-size: 22px;
    font-size: calc(22px + 0.11vw);
}

    .end p:last-of-type:after {
        content: "";
        display: inline-block;
        margin-left: 0.5em;
        background: grey;
        height: 24px;
        width: 24px;
        margin-bottom: 6px;
        vertical-align: middle;
    }


/* Next/prev animation */
.mainNav.prev a,
.heroSide.prev,
.mainNav.next a,
.heroSide.next,
.heroMedia.next .photo-heroIntro
.heroMedia.next .photo-heroIntroRefNext
.heroMedia.prev .photo-heroIntro
.heroMedia.prev .photo-heroIntroRefPrev {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
}

@media screen and (min-width: 1000px) {
    .mainNav.prev a,
    .heroSide.prev,
    .mainNav.next a,
    .heroSide.next,
    .heroMedia.next .photo-heroIntro
    .heroMedia.next .photo-heroIntroRefNext
    .heroMedia.prev .photo-heroIntro
    .heroMedia.prev .photo-heroIntroRefPrev {
        -webkit-animation-duration: 2s;
        animation-duration: 2s;
    }
}


.mainNav.prev a,
.heroSide.prev {
    -webkit-animation-name: prevColor;
    animation-name: prevColor;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

.mainNav.next a,
.heroSide.next {
    -webkit-animation-name: nextColor;
    animation-name: nextColor;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

@-webkit-keyframes prevColor {
    0% {
        background-position: -100% 0;
    }

    100% {
        background-position: 0 0;
    }
}

@keyframes prevColor {
    0% {
        background-position: -100% 0;
    }

    100% {
        background-position: 0 0;
    }
}

@-webkit-keyframes nextColor {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: 0 0;
    }
}

@keyframes nextColor {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: 0 0;
    }
}

.heroMedia.next .photo-heroIntro {
    -webkit-animation-name: nextHero;
    animation-name: nextHero;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

.heroMedia.next .photo-heroIntroRefNext {
    -webkit-animation-name: nextRefHero;
    animation-name: nextRefHero;
}

.heroMedia.prev .photo-heroIntro {
    -webkit-animation-name: prevHero;
    animation-name: prevHero;
}

.heroMedia.prev .photo-heroIntroRefPrev {
    -webkit-animation-name: prevRefHero;
    animation-name: prevRefHero;
}

@-webkit-keyframes nextHero {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }

    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}

@keyframes nextHero {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }

    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}

@-webkit-keyframes nextRefHero {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }

    100% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
}

@keyframes nextRefHero {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }

    100% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
}

@-webkit-keyframes prevHero {
    0% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }

    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}

@keyframes prevHero {
    0% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }

    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}

@-webkit-keyframes prevRefHero {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }

    100% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
}

@keyframes prevRefHero {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }

    100% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
}

@media screen and (min-width: 1200px) {

    body:not(.forside) aside.kart::before {
        content: "";
        display: block;
        position: absolute;
        bottom: -10px;
        left: calc(100% - 431px);
        z-index: 2;
        width: 69px;
        height: 40px;
        border-left: 2px solid rgba(200,0,0,0.04);
        border-right: 2px solid rgba(0,0,0,0.04);
    }
}



/* Podcast playing */
body.podFrame {
    overflow: hidden;
}

.podFrame > *:not(.podcast):not(.podcast_tab) {
    display: none;
}

#podFrame {
    display: none;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

    #podFrame iframe {
        height: 100%;
        width: 100%;
    }

.podFrame #podFrame {
    display: block;
}

.podFrame .podcast {
    display: grid;
    top: 100%;
    margin: 0;
    padding: 20px calc(max(40px, 10%) + 3vw) 20px calc(max(34px, 8%) + 3vw);
    transform: translate3d(0, 100%, 0);
    transition: transform 1s;
}

    .podFrame .podcast.sticky {
        transform: translate3d(0, 0, 0);
    }

.podcast_tab {
    display: none;
    position: fixed;
    bottom: 0;
    right: 20px;
    z-index: 1;
    background: #000;
    padding: 16px;
}

    .podcast_tab svg {
        height: 32px;
    }

        .podcast_tab svg path {
            fill: #fff;
        }