*,
*::before,
*::after {
  margin: 0;
  padding: 0;
}

/*
    prevents caret from appearing in chrome
    when non-input elements are clicked on 
*/
*:not(input) {
  cursor: default;
  -webkit-user-select: none;
  /* Chrome all / Safari all */
  -moz-user-select: none;
  /* Firefox all */
  -ms-user-select: none;
  /* IE 10+ */
  user-select: none;
}

body {
  --accordion-categoryHeader: hsl(212, 100%, 45%);
  --accordion-programHeader: hsl(212, 100%, 70%);
  --accordion-contentBox1: #ddd;
  --accordion-contentBox2: #bbb;

  /* --text-color: black; */
}

body.dark {
  --accordion-categoryHeader: hsl(212, 100%, 10%);
  --accordion-programHeader: hsl(212, 100%, 5%);
  --accordion-contentBox1: #444;
  --accordion-contentBox2: #111;
  /* --text-color: white; */
}


.accordion-container {
  display: flex;
  flex-direction: column;
  width: 80%;
  max-width: 700px;
  min-width: 500px;
  height: 90vh;
  overflow: auto;
  padding: 20px;
  margin: 0 auto;
  color: var(--text-color);
}

.accordion-container.hide {
  display: none;
}

.accordion-container .container {
  position: relative;
  margin: 3px 0;
}

.accordion-container .container.category {
  /* width: 90%; */
  flex-shrink: 3;
}

.accordion-container .contentBox1,
.accordion-container .contentBox2 {
  margin: 0 auto;
  /* background: #ddd; */
  height: 0;
  overflow: hidden;
  transition: all .5s;
  border-radius: 0 0 10px 10px;
  flex-shrink: 3;
}

.accordion-container .contentBox1 {
  display: flex;
  flex-direction: column;
  background: var(--accordion-contentBox1);
  flex-shrink: 2;
  color: var(--text-color);
}

.accordion-container .contentBox1 p {
  padding: 10px 20px;
  font-size: 14px;
  height: fit-content;
  max-height: 100px;
  color: var(--text-color);
}

.accordion-container .contentBox2 p {
  padding: 10px 20px;
}

.accordion-container .contentBox2 {
  background: var(--accordion-contentBox2);
  padding: 0 10px;
  display: flex;
  align-items: flex-start;
  /* align-self: flex-start; */
}

.accordion-container .contentBox2 .imgDiv {
  flex-direction: column;
  justify-content: space-between;
  height: 100px;
  max-width: 160px;
  text-align: center;
  padding: 5px;
}

.accordion-container .contentBox2 img {
  height: 90%;
}

.accordion-container .contentBox2 a {
  display: inline-block;
  color: var(--text-color);
  padding: 3px 5px;
  background-color: grey;
  border: none;
  outline: none;
  cursor: pointer;
  background-color: var(--accordion-contentBox2);
  white-space: nowrap;
  font-size: 15px;
}

.container.program {
  width: 97%;
  right: 0;
  margin: 3px auto;
}

.container.program:first-of-type {
  margin-top: 6px;
}

/* 
      A fixed height gives a smoother transition, 
      height: fit-content makes the transition choppy
*/
.accordion-container input:checked~.contentBox1 {
  /* padding: 20px 0px 20px 0px; */
  height: 420px;
  max-height: 420px;
}

.accordion-container input:checked~.contentBox2 {
  /* padding: 20px 0px 20px 0px; */
  height: 120px;
}

.accordion-container label {
  position: relative;
  display: flex;
  font-weight: 500;
  letter-spacing: .5px;
}

.accordion-container span {
  /* content: '\276F'; */
  position: absolute;
  top: 13px;
  right: 20px;
  width: 15px;
  height: 15px;
  transition: transform .35s;
  border: 3px solid rgb(200, 200, 200);
  border-width: 0 3px 3px 0;
  transform: rotate(-45deg);
  cursor: pointer;
}

.accordion-container span:hover {
  border-color: white;
  border-width: 0 4px 4px 0;
}

.accordion-container .title {
  position: relative;
  padding: 10px;
  cursor: pointer;
  color: #fff;
  border-radius: 10px;
}

.accordion-container .title.category {
  background: var(--accordion-categoryHeader);
}

.accordion-container .title.program {
  background: var(--accordion-programHeader);
}

.accordion-container input:checked~.title {
  border-radius: 10px 10px 0 0;
}

.accordion-container input:checked~span {
  transform: rotate(45deg);
  top: 10px;
}

.accordion-container input {
  display: none
}


.accordion-container .arrow_container {
  /* height: 100%; */
  background: rgba(50, 0, 0, .3);
  position: absolute;
  z-index: 100;
  width: 40px;
  top: 0;
  border-radius: 0 10px 10px 0;
  height: 40px;
  right: 0;
}

#portfolioIntro {
  --portfolioIntro-topMargin: 400px;

  position: absolute;
  top: var(--portfolioIntro-topMargin);
  left: 0;
  right: 0;
  height: calc(100vh - var(--portfolioIntro-topMargin) - 50px);
  width: 80%;
  max-width: 700px;
  min-width: 500px;
  margin: 0 auto;
  padding: 20px;

  overflow: auto;

  z-index: 50;
  color: var(--text-color);
  background-color: blue;

}

.portfolioText {
  width: 100%;
  height: 100%;
  background-color: orange;
}

@media screen and (max-width: 530px) {
  .accordion-container {
    min-width: 94.34vw;
    padding: 3.774vw;
  }
  
  #portfolioIntro {
    --portfolioIntro-topMargin: calc(75.472vw + 20px);
    /* height: calc(100vh - var(--portfolioIntro-topMargin) - 9.434vw); */
    height: calc(100vh - var(--portfolioIntro-topMargin) - 4vw);
    min-width: 94.34vw;
    padding: 3.774vw;
  }

  .accordion-container .container {
    margin: .566vw 0;
  }

  .accordion-container .contentBox1,
  .accordion-container .contentBox2 {
    border-radius: 0 0 1.887vw 1.887vw;
  }

  .accordion-container .contentBox1 p {
    padding: 1.887vw 3.774vw;
    font-size: 2.642vw;
    max-height: 18.868vw;
  }

  .accordion-container .contentBox2 p {
    padding: 1.887vw 3.774vw;
  }

  .accordion-container .contentBox2 {
    padding: 0 1.887vw;
  }

  .accordion-container .contentBox2 .imgDiv {
    height: 18.868vw;
    width: 30.189vw;
    padding: 0.943vw;
  }

  .accordion-container .contentBox2 a {
    padding: .566vw 0.943vw;
    font-size: 2.83vw;
  }

  .container.program {
    margin: .566vw auto;
  }

  .container.program:first-of-type {
    margin-top: 1.132vw;
  }

  /* 
      A fixed height gives a smoother transition, 
      height: fit-content makes the transition choppy
  */
  .accordion-container input:checked~.contentBox1 {
    height: 83.019vw;
    max-height: 83.019vw;
  }

  .accordion-container input:checked~.contentBox2 {
    height: 22.642vw;
  }

  .accordion-container label {
    letter-spacing: .0945vw;
  }

  .accordion-container span {
    top: 2.453vw;
    right: 3.774vw;
    width: 2.83vw;
    height: 2.83vw;
    border-width: 0 .566vw .566vw 0;
  }

  .accordion-container span:hover {
    border-width: 0 0.755vw 0.755vw 0;
  }

  .accordion-container .title {
    padding: 1.887vw;
    border-radius: 1.887vw;
    font-size: 3.4vw;
  }

  .accordion-container input:checked~.title {
    border-radius: 1.887vw 1.887vw 0 0;
  }

  .accordion-container input:checked~span {
    top: 1.887vw;
  }

}