*{
  box-sizing: border-box;
}

body{
  background-color: black;
  color: white;
  font-family: "Helvetica";
  text-transform: uppercase;
  margin: 0;
}

h2{
  font-size: 2rem;
  color: white;
  mix-blend-mode: difference;
  margin-left: 1rem;
  margin-right: 1rem;
}

/* main menu */

.frontpage-wrapper{
  display: flex;
  justify-content: space-around;
  align-items: center;
  width: 100vw;
  height: 100vh;
  margin: 0;
  box-sizing: border-box;
}

#main-menu{
  /* border: 1px dashed black; */
  /* min-width: 500px;
   */
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;

  position: sticky;
  top: 0px;
  z-index: 1;
  mix-blend-mode: difference;
}

#main-menu h1{
  flex: 1;
  margin-left: 1rem;
  margin-right: 1rem;
  color: white;
  mix-blend-mode: difference;
  font-size: 3rem;
  z-index: 1;
  padding: 100px 5px;
  text-align: center;
}

#logo-title-wrapper{
  background-image: url('./assets/imgs/POINTCONTACT_LOGO_WHITE.svg');
  background-repeat: no-repeat;
  background-size: 300px 300px;
  background-position: center;
}

nav ul{
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: baseline;
  list-style-type: none;
  flex 3;
}

nav li{
  /* border: 1px solid white; */
  color: white;
  padding: 0;
  text-align: center;
  margin: 0 1rem;
  display: block;
  transition: color .5s, background-color .5s, border .5s;
  mix-blend-mode: difference;
  background-color: black;
}

nav li:hover, nav li:focus{
  color: black;
  background-color: white;
  /* border: 1px solid black; */
}

nav li a{
  color: inherit;
  text-decoration: none;
  display: inline-block;
  /* height: 100%;
  width: 100%; */
}

/* /////////////////////// */
/* ALBUM PREVIEW DROP DOWN */
/* /////////////////////// */
nav ul li ol{
  /* position relative to parent element, and remove from normal flow */
  position: absolute;
  padding: 0;


  /* set up flex container */
  display: flex;
  flex-direction: column;

  /* fade in/out */
  visibility: hidden;
  opacity: 0;
  transition: opacity .5s, visibility .5s;
  width: inherit;
}


nav ul li ol li{
  text-align: left;
  margin-left: 0;
  margin-right: 0;
  background-color: white;
  color: black;
  font-size: 1.5rem;
  cursor: pointer;
  padding: .4rem;
  /* position: relative;
  margin-left: 0; */
}

nav ul li ol li:hover,nav ul li ol li:focus{
  background-color: black;
  color: white;
  /* position: relative;
  margin-left: 0; */
}

.selected{
  background: black;
  color: white;
  font-weight: bold;
}

.selected a{
  color: white;
  font-weight: bold;
}

.selected::before{
  position: absolute;
  color:white;
  right: 0;
  /* content: "now playing"; */
}

/* ////////////// */
/* CONTACT BUTTON */
/* ////////////// */
.contact-button-container{
  mix-blend-mode: difference;
  position: fixed;
  top: 2rem;
  left: 2rem;
  z-index: 2;
}

.contact-button-container a{
  border: 1px solid white;
  color: white;
  text-decoration: none;
  text-transform: uppercase;
  padding: 1rem;
  text-align: center;
  background-color: black;
  transition: .5s;
  font-weight: bold;
}

.contact-button-container a:hover{
  background-color: white;
  color: black;
}

/* ////////////////// */
/* AUDIO CONTROLS MENU*/
/* ////////////////// */
.audio-controls-menu-container{
  box-sizing: border-box;
  width: 100%;
  display: flex;
  justify-content: center;

  position: fixed;
  bottom: 0px;
  left: 0;
  z-index: 1;

  /* mix-blend-mode: difference; */
}

.audio-controls-menu {
  border: 1px solid white;
  box-sizing: border-box;
  /* width: 100%; */
  min-width: 750px;

  transition: .5s;


  display: flex;
  justify-content: space-between;
  align-items: center;

  background-color:rgb(0,0,0,40%);


}

.audio-controls-menu:has(.pause){
  /* background-color:rgb(0,0,0,50%); */
}

.audio-controls-menu-container:has(.play){
  /* mix-blend-mode: normal; */
  /* mix-blend-mode: difference; */
}

.audio-controls-menu:has(.pause){
  /* background-color: rgb(255,255,255,50%);; */

}

.audio-controls-menu-container:has(.pause){
  /* mix-blend-mode: normal; */
  /* mix-blend-mode: difference; */
}

/* now-playing */
div:has(> .now-playing-container) {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: .75rem;
  /* flex: 2 1 auto; */
}

.now-playing-container{
  text-align: center;
}

.now-playing-container p{
  margin: .25rem 0;
  /* mix-blend-mode: difference; */
  color: white;
  font-style: italic;
}
.now-playing-container p:nth-of-type(1){
  font-style: normal;
  font-weight: bold;
  /* mix-blend-mode: normal; */
}

.audio-controls-menu input{
  width: 100%;
}

/* play-pause button */
.play-pause-button {
  width: 40px;
  height: 40px;
  box-sizing: border-box;
  /* mix-blend-mode: difference; */
  transition: 0.25s ease;
  border-color: transparent white;
  margin: 1rem;
  cursor: pointer;
}

.play-pause-button.play {
  border-width: 20px 0px 20px 40px;
  border-style: solid;
}

.play-pause-button.pause {
  /* transition: 0.25s ease; */
  border-width: 0px 0px 0px 35px;
  border-style: double;
}

/* sliders */
div[class|="slider-container"]{
  margin: 0 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

div[class|="slider-container"] p{
  margin: 0;
}

.album-cover{
  width: 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .25s;
}

.album-cover a img{
  width: 75px;
  height: 75px;
  transition: .25s;
}

.album-cover .popup{
  color: white;
  text-align: center;
  border: 1px solid white;
  padding: .4rem;
  position: absolute;
  top: -70px;
  width: 100px;
  font-size: .9rem;
  display: none;
  opacity: 0;
  transition: opacity .25s;
  transition-delay: .25s;
}


.audio-controls-menu:hover a img{
  width: 100px;
  height: 100px;
}

.audio-controls-menu .album-cover:hover .popup{
  display: block;
  opacity: 100%;
}


/* section overview */
section{
  /* border: 1px solid black; */
  margin-top: 5rem;
  margin-left: 2rem;
  margin-right: 2rem;
  position: relative;
  padding-bottom: 3rem;
  min-height: 100vh;
}

section h2{
  text-align: center;
  padding-top: 2rem;
}

.section-bg{
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  background-color: black;
  opacity: .33;
  z-index: -1;
  border-radius: 20px;
}



/* ////////////// */
/* ABOUT section  */
/* ////////////// */

/* structure hierarchy:         */
/* div.img-set-grid-------------*/
/* |-> div.img-set--------------*/
/*    |-> div.img-row-container-*/
/*      |-> div.img-row---------*/
/*        |->div.img-container--*/

/* defines the grid for whole section, onto which each individual image set is laid out */
.img-set-grid{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin-left: 5rem;
  margin-right: 5rem;
}

.img-set{
  /* width: 50%; */
  margin-bottom: 5rem;
  margin-top: 5rem;
  border-top: 1px solid white;
}

.img-row-container{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  width: 100%;
  /* display: flex;
  flex-direction: column; */
}

/* img row (contains img-container)*/
.img-row {
  display: flex;
  justify-content: space-around;
  box-sizing: border-box;
  width: 100%;
  /* height: 350px; */
  height: 500px;
  grid-column: 1/4;

  /* flex settings for this container within its parent */
  flex: initial;
}

/* img container (contained within img-row) */
.img-container {
  overflow: hidden;
  border: 1px dashed white;
  transition: 0.5s;

  /* position images centrally along vertical axis: */
  display: flex;
  justify-content: center;
  align-items: stretch;

  /* flex settings for this container within its parent */
  flex: 1;
  margin: 10px;

  position: relative;
}

/* hover effects for img-containers */
.img-row .img-container:hover {
  transition: 0.5s;
  flex: 4 1 20%;
}

.img-container img {
  width: 100%;
  object-fit: cover;
  padding: 1px;
  border: 1px dashed black;
  transition: 0.5s;
  mix-blend-mode: normal;
}

.img-container video{
  width: 100%;
  object-fit: cover;
}

.portrait{
  height: 1000px;
}

.img-set-caption{
  font-size: 1.25rem;
  text-align: center;
  border-top: 2px solid white;
  border-bottom: 2px solid white;
  padding-top: .5rem;
  padding-bottom: .5rem;
  position: sticky;
  /* top: 10px; */
  top: 4.75rem;
  z-index: 1;
  mix-blend-mode: difference;
}

/* special cases for layouts: */
#amsterdam2019-row-container .img-row:nth-child(1){
  grid-column: 1/3;
  grid-row: 1;
}
#amsterdam2019-row-container .img-row:nth-child(2){
  grid-column: 3/4;
  grid-row: 1/3;
}
#amsterdam2019-row-container .img-row:nth-child(3){
  grid-column: 1/3;
  grid-row: 2;
}

#london2023-row-container .img-row:nth-child(1){
  grid-column: 1/4;
  grid-row: 1;
}
#london2023-row-container .img-row:nth-child(2){
  grid-column: 1/2;
  grid-row: 2/4;
}
#london2023-row-container .img-row:nth-child(3){
  grid-column: 2/4;
  grid-row: 2;
}
#london2023-row-container .img-row:nth-child(4){
  grid-column: 2/4;
  grid-row: 3;
}

#dornbirn2024-row-container .img-row:nth-child(1){
  grid-column: 1/3;
  grid-row: 1;
}
#dornbirn2024-row-container .img-row:nth-child(2){
  grid-column: 3/4;
  grid-row: 1/3;
}
#dornbirn2024-row-container .img-row:nth-child(3){
  grid-column: 1/3;
  grid-row: 2;
}
#dornbirn2024-row-container .img-row:nth-child(4){
  grid-column: 1/4;
  grid-row: 3;
}
#dornbirn2024-row-container .img-row:nth-child(5){
  grid-column: 1/4;
  grid-row: 4;
}


div[class|="arrow"]{
  grid-column: 2/2;

  width: 300px;
  height: 20px;
  /* height: 200px; */

  /* border-style: solid;
  border-color: transparent transparent transparent white;
  border-width: 100px 0px 100px 300px; */
  border-top: 15px dashed white;

  margin-top: 1rem;

  mix-blend-mode: difference;
}

div.arrow-right{
  transform: rotate(45deg);
}

div.arrow-left{
  transform: rotate(135deg);
}

/* ////////////////////////////////// */
/* layout of img-sets on img-set-grid */
/* ////////////////////////////////// */
#somerset2016{
  grid-column: 1/3;
  grid-row: 1;
}

#first-arrow{
  grid-row: 2;
}

#london2018{
  grid-column: 2/4;
  grid-row: 3;
}

#second-arrow{
  grid-row: 4;
}

#amsterdam2019{
  grid-column: 1/3;
  grid-row: 4;
}

#third-arrow{
  grid-row: 5;
}

#london2023{
  grid-column: 2/4;
  grid-row: 6;
}

#fourth-arrow{
  grid-row: 7;
}

#dornbirn2024{
  grid-column: 1/3;
  grid-row: 8;
}

#fifth-arrow{
  grid-row: 9;
}

#london2025{
  grid-column: 2/4;
  grid-row: 10;
}


/* ////////////// */
/* LIVE section */
/* ////////////// */

#live a{
  text-decoration: none;
  padding: 5px;
  display: inline-block;
  transition: .25s;
  color: black;
  background-color: white;
  border: 1px solid black;
  box-sizing: border-box;
}

#live a:hover,
#live a:focus{
  color: white;
  background-color: black;
  border: 1px solid white;
}

.events-list-inner{
  margin: 0 50px;
  mix-blend-mode: difference;
}

.event{
  border-bottom: 1px dashed white;
  display: grid;
  grid-template-columns: repeat(1fr, 4);
  padding: .5rem;

  /* margin: 0 .5rem; */
}

.event-date{
  padding: 5px;
  grid-column: 1/2;
}

.event-location{
  padding: 5px;
  grid-column: 2/3;
}

.event-venue{
  padding: 5px;
  grid-column: 3/4;
}

.event-tickets{
  grid-column: 4/5;
}

#live-cta{
  padding: 1rem;
  text-align: center;
  mix-blend-mode: difference;
}

#p5-container {
  position: fixed;
  left: 0;
  top: 0;
  z-index: -1;
}

/* ////////////////////////////// */
/* adjustments for small screens: */
/* ////////////////////////////// */


@media (max-width: 1230px) {
  /* basically, we want to turn the image timeline
  into a much more scrollable thing:
  - image rows should take up the entire width of the screen,
  - they should contain probably no more than 3 images
  - we should adjust the resizing animations so that
  we don't get weird touch/hover conflicts
  - larger text for titles
  - might have to reconfigure other stuff, but we'll start with that*/
  .img-set-grid{
    margin-left: 2rem;
    margin-right: 2rem;
  }

  #somerset2016,#london2018,#amsterdam2019,#london2023,#dornbirn2024,#london2025{
    grid-column: 1/4;
  }
}

/* We only want these hover effects to happen on a large screen.
Otherwise, we want to toggle visibility with touches, as below*/
@media (min-width: 1025px) {
  nav ul li:hover ol, nav ul li:focus ol, nav ul li:active ol{
    /* fade in/out */
    opacity: 1;
    visibility: visible;
  }

  .mobile-menu-text{
    display: none;
  }
}

@media (max-width: 1025px) {
  /* ////// */
  /* GENERAL*/
  /* ////// */
  h1{
    /* font-size: 4rem; */
    margin: 0rem;
  }

  h2{
    font-size: 1.3rem;
    margin-bottom: .7rem;
  }

  h3{
    font-size: .8rem;
  }

  /* //////// */
  /* MAIN MENU*/
  /* //////// */
  #main-menu{
    flex-direction: column;
    max-width: 100%;
    /* min-width: 80%; */
  }

  #main-menu h1{
    font-size: 2rem;
    z-index: 1;
    padding: 100px 5px;
    text-align: center;
  }

  #logo-title-wrapper{
    background-image: url('./assets/imgs/POINTCONTACT_LOGO_WHITE.svg');
    background-repeat: no-repeat;
    background-size: 200px 200px;
    background-position: center;
  }

  nav ul{
    flex-direction: column;
    align-items: center;
  }

  /* ////////////// */
  /* CONTACT BUTTON */
  /* ////////////// */
  .contact-button-container{
    /* font-size: 1.75rem; */
    position: relative;
    top: 0;
    left: 0;
    margin-top: 1rem;
  }

  .contact-button-container a{
    font-size: 1.25rem;
    border: none;
  }

  .audio-controls-menu{
    /* grow in flex container to fill screen on narrow screens: */
    flex-grow: 1;
  }

  /* album preview drop down menu */
  nav ul li ol{
    /* want this to be more of a popup/modal on a small screen */
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: white;
    z-index: 5;
    mix-blend-mode: normal;
  }

  .showing{
    visibility: visible;
    opacity: 1;
  }

  .hidden{
    visibility: hidden;
    opacity: 0;
  }

  .mobile-menu-text{
    display: block;
    color: black;
  }

  nav ul li ol li{
    width: 100%;
    text-align: center;
    padding: .75rem;
    mix-blend-mode: normal;
    border: 1px solid black;
    /* font-size: 1.5rem; */
    font-size: 1rem;
  }
  nav ul li ol p{
    font-size: .75rem;
  }

  .audio-controls-menu-container{
    max-width: 100vw;
  }

  .audio-controls-menu{
    min-width: initial;
    max-width: 100%;
  }

  .audio-controls-menu p{
    font-size: .75rem;
  }

  div:has(> .now-playing-container) {
    flex: 2 1 auto;
    margin: 2px 0;
    align-items: stretch;
  }

  .now-playing-container p {
    margin: 1px 0;
  }

  /* play-pause button */
  .play-pause-button {
    width: 20px;
    height: 20px;
  }

  .play-pause-button.play {
    border-width: 10px 0px 10px 20px;
  }

  .play-pause-button.pause {
    border-width: 0px 0px 0px 20px;
  }

  .album-cover{
    display: none;
    /* width: 70px;
    height: 70px; */
  }

  .audio-controls-menu .slider-container-volume{
    display: none;
  }

  section{
    margin: 5rem 0rem;
  }

  .img-set-grid{
    margin-top: 1rem;
    margin-left: .5rem;
    margin-right: .5rem;
  }
  .img-set{
    margin-top: 1rem;
  }
  .img-row{
    height: 50vh;
  }
  .portrait{
    height: 100vh;
  }

  .img-container{
    margin: 4px;
  }

  .img-set-caption{
    font-size: 1rem;
    top: 1rem;
  }

  .events-list-inner{
    margin: 0 .5rem;
  }



  /* #p5-container{
  display: none;
  } */

}
