:root {
    --colour-curly-wig: #d2ff65;
    --colour-duskdark: #7b2bff;
    --colour-firedot: #d93912;
    --colour-tablelands: #413035;
    --colour-blue-mountains-ash: #e3f0E8;
    --colour-sweet-wattle: #fafff0;
    --colour-mountain-devil: #f9d7f4;

    --colour-black: #000000;
    --colour-white: #ffffff;
}

.program-outer {
    margin: 100px 24px 82px 24px;
    padding-bottom: 15vh;
}

/* program */
.program-title-desc {
    margin-bottom: 30px;
}

.program-title-desc h1 {
    margin-bottom: 20px;
}

.day {
    margin-bottom: 58px;
}

.day h2 {
    margin-bottom: 26px;
}

.time {
    margin-bottom: 12px;
}

.time h5 {
    margin-bottom: 4px;
}

.time > div {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 265px));
    gap: 12px;
}

.session-tile {
    height: 216px;
    border: solid 1px #000000;

    display: grid;
    grid-template-rows: auto minmax(44px, 88px) 20px;

    color: var(--colour-black);

    overflow-wrap: break-word;

    transition: background-color 0.15s ease, color 0.15s ease;
}

.session-tile:hover,
.session-tile.selected {
    background-color: var(--stream-bg);
    color: var(--stream-text);
}

.session-tile[hidden] {
    display: none !important;
}

.time > div > a:has(.session-tile[hidden]) {
    display: none !important;
}

.session-tile-main {
    display: flex;
    flex-direction: column;
    padding: 10px 12px 10px 12px;
}

.session-tile-title {
    overflow-wrap: break-word;
    min-height: 50%;
}


.session-tile-artists {
    padding-top: 6px;
}

.session-tile-artists h4 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}


.session-tile-image {
    max-height: 88px;
    max-width: 100%;
    overflow: hidden;
}



.session-tile-artists{
    display: flex;
}

.session-featured-image {
    width: 100%;
    height: 100%;
    border-top: #000000 1px solid;
    object-fit: cover;
}

.session-tile-bottom-bar {
    min-height: 20px;
    border-top: #000000 1px solid;
    display: flex;
    justify-content: space-between;
}

.village-sector {
    display: flex;
    justify-content: center;
    padding-left: 4px;
}

.village-sector div {
    display: flex;
    justify-content: flex-start;
}

.session-tile-bottom-bar .village-sector h6 {
    padding: 3px;
    padding-right: 12px;
}

.session-tile-bottom-bar .village-sector svg {
    margin-top: 4.5px;
    margin-bottom: 3px;
}

.session-tile-bottom-bar .village-sector svg {
    fill: currentColor;
}

.session-tile-bottom-bar .repeat-icon {
    border-left: #000000 1px solid;
    padding: 4px;
}

.session-tile-bottom-bar .repeat-icon path {
    fill: currentColor;
}

/* session page */
.event-background img {
    position: fixed;
    top: 0;
    right: 0;
    width: 50vw;
    height: 100vh;
    z-index: -2;
    object-fit: cover;
    object-position: center;
}

.session-page-title-container{
    display: flex;
    height: 100vh;
    justify-content: center;
    align-items: center;
}

.session-page-title {
    padding-left: 24px;
    padding-right: 24px;
    text-align: center;
    color: var(--colour-white);
    font-size:68px;
    filter: drop-shadow(0px 0px 10px var(--colour-firedot));
}

.session-back-button-container{
    position: absolute;
    top: 75px;
    right: 25px;
    padding: 8px;
}

#session-back-button{
    stroke: var(--colour-white);
}

.session-content-block {
    margin: 0 75px 100px 75px;
    border: 1px solid black;
    padding: 50px 50px 75px 50px;
}

.session-block-flex {
    display: grid;
    grid-template-columns: 50% 50%;
    justify-items: center;
    align-items: top;
    text-align: center;
}

.session-page-details p {
    margin: 1em 0 1em 0;
}

session-page-access p{
    margin: 1em 0 1em 0;
}

.session-sector-stream {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    margin-top: 7px;
}

.session-sector-stream div{
    display: flex;
    flex-wrap: nowrap;
}

.session-sector-stream svg{
    margin-top: 2px;
    margin-bottom: 3px;
    margin-right: 5px;
    fill: currentColor;
}

.session-page-artist-specs {
    text-align: center;
    padding: 60px 0 40px 0;
}

.session-page-ticket-button{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 20px 0 50px 0;
}

#ticket-button {
    color: var(--colour-white);
    background-color: var(--colour-firedot);
    text-align: center;
    padding: 10px 40px;
    border-radius: 40px;
    margin-bottom: 8px;
    font: inherit;
    cursor: pointer;
}

#ticket-button:hover {
    -webkit-box-shadow: inset 0 0 20px var(--colour-mountain-devil);
    -moz-box-shadow: inset 0 0 20px var(--colour-mountain-devil);
    box-shadow: inset 0 0 20px var(--colour-mountain-devil);
}

.session-page-artists h2 {
    margin-top: 10px;
    margin-bottom: 6px;
}

.session-page-artists h6 {
    margin-bottom: 15px;
}

.session-page-artists p {
    margin-bottom: 10px;
}

.session-page-artists img{
    object-fit: cover;
    width: 100%;
    height: 400px;
    margin-bottom: 15px;
}

.session-page-artists-single {
    margin-bottom: 40px;
}

/* for session headings with an svg icon in front */
.session-headings-icon {
    display: flex;
    gap: 4px;
}

.village-location-icon {
    margin: -4px 1px 0 0;
}

.session-headings-icon path {
    fill: currentColor;
}

.venue-address h5 {
    margin: 5px 0 20px 0;
}

.session-page-venue h2 {
    margin-top: 10px;
}

.session-page-venue img {
    margin: 20px 0 20px 0;
}

/* other sessions tiles*/
.other-session-tile-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 177px));
    margin-top: 20px;
}

.other-session-tile {
    min-height: 216px;
    border: solid 1px currentColor;
    margin-right: 12px;
    margin-bottom: 12px;

    display: grid;
    grid-template-rows: auto minmax(20px, 30px);

    color: currentColor;

    overflow-wrap: break-word;

    transition: background-color 0.15s ease, color 0.15s ease;
}

.other-session-tile:hover {
    background-color: var(--colour-sweet-wattle);
    color: var(--colour-black);
}

.other-session-tile-main {
    display: flex;
    flex-direction: column;
    padding-left: 12px;
    padding-top: 10px;
}

.other-session-tile-bottom-bar {
    min-height: 20px;
    border-top: currentColor 1px solid;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.other-village-sector {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 4px;
    padding-top: 2px;
}

.other-village-sector div {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
}

.other-session-tile-bottom-bar .other-village-sector svg {
    margin-top: 2px;
    margin-bottom: 2px;
    margin-right: 3px;
    fill: currentColor;
}

.other-session-tile-bottom-bar .repeat-icon {
    border-left: currentColor 1px solid;
}

.other-session-tile-bottom-bar .repeat-icon path {
    fill: currentColor;
}

/* filters and sundial */
#split-right-program {
    overflow: hidden;

    background-image: url(/assets/images/P1011489.JPG);
    background-size: cover;
    background-attachment: fixed;
}

.filters{
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin-bottom: 100px;
}

.filter-label {
    font-family: "HAL Timezone";
    letter-spacing: 4%;
    line-height: 135%;
    font-weight: 400;
    font-size: 28px;
}

.filter-select{
    font-family: "HAL Timezone";
    letter-spacing: 4%;
    line-height: 135%;
    font-weight: 400;
    font-size: 20px;
    background-color: var(--colour-sweet-wattle);
    width: 8vw;
}

#sundial-outer{
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    height: 90vh;
}

.sundial-div{
    overflow: visible;
}

/* mobile */
@media (width <= 600px) {
    /* program */
    #split-right-program, #sundial{
        display: none;
    }

    .split{
        width: 100%;
        padding-bottom: 30vh;
    }

    .program-outer{
        overflow-x: hidden;
        margin: 10vh 24px 82px 24px;
    }

    .program-title-desc {
        margin-bottom: 24px;
    }

    .filters{
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        margin-bottom: 48px;
        padding-bottom: 0px
    }

    .filters div{
        padding-bottom: 12px;
    }

    .filter-label {
        font-size: 28px;
    }

    .filter-select{
        font-size: 18px;
        min-width: 12vw;
        width: auto;
    }

    .time > div {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(210px, auto));
    }

    .session-tile {
        min-height: 236px;
    }

    .session-tile-main {
        display: flex;
        flex-direction: column;
        align-content: space-around;
        padding-left: 12px;
        padding-top: 10px;
    }

    .session-block-flex{
        grid-template-columns: 100%;
        row-gap: 34px;
    }

    .session-tile-title {
        min-height: 50%;
    }
    
    .session-tile-title h3 {
        font-size: 24px;
    }

    .session-tile-artists h4 {
        font-size: 16px;
    }

    .session-tile-image {
        height: 128px;
    }

    .session-tile-bottom-bar .village-sector h6 {
        font-size: 14px;
    }

    /* session */
    #split-left-session{
        display: none;
    }

    .event-background img {
        width: 100vw;
    }

    .session-back-button-container{
        top: 70px;
    }

    .session-page-title {
        padding-left: 6vw;
        padding-right: 6vw;
        text-align: center;
        color: var(--colour-white);
        filter: drop-shadow(0px 0px 10px var(--colour-firedot));
        font-size: 48px;
    }

    .session-content-block {
        margin: 100px 20px 60px 20px;
        padding: 24px 24px 30px 24px;
    }

    .session-page-artist-specs {
        text-align: center;
        padding: 65px 0 40px 0;
    }

    .session-page-artists {
        display: grid;
        grid-template-columns: repeat(1, auto); /* exact px value of min mix tbc, per janey's look over */
    }

    .session-page-artists div{
        margin-bottom: 12px;
    }

}

/* foldable */
@media (600px <= width <= 900px) {
    /* program */
    #sundial{
    transform: scale(1);
    }

    .program-title-desc {
        margin-bottom: 24px;
    }

    .filters{
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        margin-bottom: 48px;
        padding-bottom: 0px
    }

    .filters div{
        padding-bottom: 12px;
    }

    .filter-label {
        font-size: 18px;
    }

    .filter-select{
        font-size: 18px;
        min-width: 12vw;
        width: auto;
    }

    .time > div {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(210px, auto));
    }

    .session-tile {
        margin-right: 0px;
        margin-bottom: 12px;
    }

    .session-tile-main {
        display: flex;
        flex-direction: column;
        align-content: space-around;
        padding-left: 12px;
        padding-top: 10px;
    }

    .session-tile-title {
        min-height: 50%;
    }
    
    .session-tile-title h3 {
        font-size: 24px;
    }

    .session-tile-artists h4 {
        font-size: 16px;
    }

    .session-tile-image {
        height: 128px;
    }

    .session-tile-bottom-bar .village-sector h6 {
        font-size: 14px;
    }

    /* session */
    .session-block-flex {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }

}

/* laptop */
@media (900px <= width <= 1440px) {
    /* program */
    .program-outer{
        margin: 100px 24px 82px 24px;
    }
    /* session */
    .session-block-flex {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }
}