@layer base, component;

* {
  min-width: 1px;
  min-height: 1px;
  box-sizing: border-box;
}

@layer base {
  html {
    font-size: 0.625rem;
  }

  @font-face {
    font-family: 'Inter';
    src: url(fonts/inter-v19-latin-regular.woff2) format('woff2');
  }

  html,
  body {
    height: 100dvh;
    width: 100%;
    margin: 0%;
    opacity: 1;
    transition: opacity 1s ease-in-out;
    background-size: cover;
    background-attachment: fixed;
    /*background-color: white;*/
    background: linear-gradient(to right, #01574b 0%,  #012a3d 100%);
    color: white;
    overflow-x: hidden;
    font-family: 'Inter', sans-serif;
    /*font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;*/
  }

  .contentWrapper {
    max-width: 100%;
  }

  .teal {
    background: linear-gradient(to right, #01574b 0%,  #012a3d 100%);
  }

  .burgundy {
    background: linear-gradient(to right, #65063e 0%, #3d0128 100%);
  }

  .additionalNav {
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin-left: 0%;
    background: none !important;
  }

  /* Override global link color for additionalNav */
  .additionalNav a {
      text-decoration: none;
      color: black !important;  /* Force black text */
      font-size: 18px;
      font-weight: bold;
      padding: 10px 15px;
      transition: color 0.3s ease-in-out;
  }

  .additionalNav a:hover {
      color: #595ca9 !important;  /* Force hover effect */
  }

  /* Highlight the active page */
  .additionalNav a.active {
      color: #595ca9 !important;
      border-bottom: 3px solid rgb(86, 36, 166);
  }

  /*LINK STUFF*/
  a:link {
    color: white;
    background-color: transparent;
    text-decoration: none;
  }

  a:visited {
    color: #ffffff;
    background-color: transparent;
    text-decoration: none;
  }

  a:hover {
    /*color: #595ca9;*/
    background-color: transparent;
    /*text-decoration: underline;*/
  }

  a:active {
    color: #595ca9;
    background-color: transparent;
    text-decoration: underline;
  }

  .events {
    align-self: center;
  }

  h1, h2, h3, h4, h5, h6 {
    color: white;
    text-align: left;
  }

  h1 {
    font-size: 3em;
    color: black;
    text-align: center;
    font-weight: bold;
  }

  h2 {
    font-size: 3em;
    text-align: center;
    /*color: white;*/
    color: black;
    padding-top: 2%;
    margin-bottom: 4em;
  }

  h3 {
    font-size: 2em;
    margin-bottom: 1em;
    display: block;
  }

  h4 {
    font-size: 2em;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    color: black;
  }

  h5 {
    font-size: 2em;
  }

  .centered {
    text-align: center;
    align-content: center;
    align-self: center;
    
  }

  .left {
    text-align: left;
  }
  

  img {
    object-fit: contain;
    object-position: center;
    /*user-drag: none;*/
    pointer-events: none;
  }

  p {
    font-size: 1.8em;
  }
}

.boxTitle {
  display: flex;
  justify-content: left;
  font-size: 3em;
  font-weight: bold;
}


.boxSubtitle {
  display: flex;
  font-size: 2em;
  margin-bottom: 3em;
  display: block;
  justify-content: left;
  color: white;
}


.headerModel {
  position: relative;
  display: flex;
  flex-direction: row;
  /*max-height: 500px;*/
  max-height: 30em;
  justify-content: center;
  justify-content: top;
  margin-right: 5%;
  margin-bottom: 2%;
  /*user-drag: none;*/
}

.error {
  position: relative;
  display: flex;
  align-self: center;
  flex-direction: row;
  max-width: 80%;
  justify-content: center;
  justify-content: top;
  margin-bottom: 1%;
  margin-top: 1%;
  /*user-drag: none;*/
  padding-bottom: 5%;
}

.SmallModelSide {

  display: flex;
  align-items: right;
  min-width: 30%;
  object-fit: cover; 
  margin-left: 10em;
}

.SmallModelSideBranding {
  display: flex;
  align-items: right !important;
  /*max-width: 40%;*/
  max-width: 45%;
  height: 100% !important; 
  object-fit: cover; 
  height: 100%; 
  object-fit: cover; 
  margin-left: 10em;
}

.SmallModelTop {
  display: flex;
  flex-direction: row;
  max-height: 15em;
  justify-content: top;
  margin-top: -13em;
}


.containerRow {
  display: flex;
  flex-direction: row;
  justify-content: center;
  max-width: min(120rem, 80vw);
  margin: 30px auto;
  min-width: 30rem;
  gap: 20px;
  flex: 1 1 100%;
  align-items: stretch;
}

.containerColumn {
  display: flex;
  flex-direction: column;
  align-items: center;
  width:100%;
  max-width: min(120rem, 80vw);
  margin: 30px auto;
  min-width: 30rem;
  gap: 20px;
  flex: 1 1 100%;
}

.chopContent {
  margin-top: -30px;
  padding-top: 50px;
  padding-bottom: 150px;
  background-color: white;
  align-items: center;
}

.infoBox {
  justify-content: center;
  color: rgb(0, 0, 0);
  background-color: #8d058d;
  border-radius: 2.5rem;
  padding: 2.2rem 3.2rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.infoBoxWide {
  justify-content: center;
  color: rgb(0, 0, 0);
  background-color: #8d058d;
  border-radius: 2.5rem;
  padding: 2.2rem 3.2rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.infoBox.nextToEachOther.gray {
  padding: 0rem;
  padding-left: 2.2rem;
  flex: 1; /* Takes available space */
  height: 100%;
  align-items: stretch;
}

.infoBox.branding.gray {
  padding: 0rem;
  padding-left: 2.2rem;
  padding-right: 2.2rem;
  padding-bottom: 3rem;
  flex: 1; /* Takes available space */
  height: 100%;
  align-items: stretch;
}

.infoBoxChild {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.infoBox h4 {
  margin-top: 1em;
}

.gray {
  background-color: #ececec;
}

.white {
  color: rgb(0, 0, 0);
  background-color: rgb(255, 255, 255);
}


.black {
  background-color: #000000;
  color:white;
}

.photo{
  max-height: 20em;
  max-width: 30em;
  border-collapse: separate;
  border-radius: 20px; /* rounded corners*/
}

.titleContainer{
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center; 
  gap: 2px;
}

.moreInfoButton {
  text-align: center;
  color: black;
  font-weight: bold;
  background-color: white;
  border-radius: 1.3em;
  /*padding: 1em 1.5em;*/
  padding-top: 1em;
  padding-bottom: 1em;
  padding-left: 0.6em;
  padding-right: 0.6em;
  margin-right: 1em;
  margin-top: 2em;
  width: 105%;

  left: 50%;
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);

  font-size: 2em;
  text-decoration: none;
  display: block;
  position: relative;
  padding-right: 3em;
  
}

.moreInfoButton::after {
  content: '';
  position: absolute;
  height: calc(100% - 2rem);
  aspect-ratio: 1/1;
  right: 1rem;
  background-color: black;
  border-radius: 100%;
  /*max-height: 35px;*/
  max-height: 30px;
  
  margin: 0;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  

   /* Add the image inside the black circle */
   background-image: url('../IMG/icons_generic/newbutton.png'); 
   background-size: cover; /* fills the circle */
   background-position: center; /* Centers the image */
   background-repeat: no-repeat; /* no image repetition */
}

.moreInfoButton:hover {
  background-color: #3d407e;
}

.moving-gradient {
  background-size: 300% 100%;
  background-image: linear-gradient(90deg, rgb(255, 255, 255), rgb(255, 255, 255), rgb(202, 203, 255), rgb(126, 129, 225));
  box-shadow: rgb(180, 180, 180) 0px 4px 15px 0px;
}
 
.moving-gradient:hover {
  transition: 0.4s ease-in-out;
  background-position: 100% 0px;
}

.moving-gradient-white {
  background-size: 300% 100%;
  background-image: linear-gradient(90deg, #595ca9,#595ca9, rgb(255, 255, 255), rgb(200, 200, 200));
  box-shadow: rgb(180, 180, 180) 0px 4px 15px 0px;
}
 
.moving-gradient-white:hover {
  transition: 0.4s ease-in-out;
  background-position: 100% 0px;
  color: black;
} 
 

.moreInfoButtonBlack {
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgb(255, 255, 255);
  font-weight: bold;
  font-size: 1.5em;
  background-color: rgb(0, 0, 0);
  border-radius: 0.8em; /* rounded corners*/
  padding-left:1.0em;
  padding-right:1.0em;
  margin-right: 1em;
  margin-top: 2em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  width:min-content;
}

/* Style for the room number text */
.moreInfoBlackRoom {
  color: white;
  font-size: 1.3em;
  text-align: center;
  font-weight: bold;
}

.downloadButton {
  margin-top: 4em;
  text-align: center;
  color: rgb(255, 255, 255);
  font-weight: bold;
  background-color:#595ca9;
  border-radius: 1.3em;
  margin-bottom: 1.5em;
  width: 100%;
  font-size: 2em;
  text-decoration: none;
  display: block;
  position: relative;

  padding-top: 1em;
  padding-bottom: 1em;
  padding-left: 0.6em;
  padding-right: 0.6em;
  
  margin-top: 2em;
  left: 50%;
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  padding-right: 3em;
}

.downloadButton::after {
  content: '';
  position: absolute;
  height: calc(100% - 1.5rem);
  aspect-ratio: 1/1;
  right: 2rem;
  background-color: #595ca9;
  top: 0.75rem;
  border-radius: 100%;

  height: calc(100% - 2rem);
  right: 1rem;
  margin: 0;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);

   /* Add the image inside the black circle */
   background-image: url('../IMG/icons_generic/download.png'); 
   background-size: cover; /* fills the circle */
   background-position: center; /* Centers the image */
   background-repeat: no-repeat; /* no image repetition */
}

.button-container {
  display: flex;
  flex-direction:row;
  margin-top: 6em;
  gap:1.5em;
}

.show-more-button {
  width: 9em;
  font-size: 1.5em;
}

.show-all-button {
  width: 9em;
  font-size: 1.5em;
}




.nextToEachOther {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
}
.nextToEachOtherLeft {
  display: flex;
  flex-direction: row;
  justify-content: start;
  background-color:#b35391;
}

.nextToEachOtherBranding {
  display: flex;
  flex-direction: row;
  justify-content: center;
  left: 0%;
  -ms-transform: translateX(0%);
  transform: translateX(-25%);
  width: 100%;
}

.Left {
  justify-content: left
}

.nextToEachOtherPhotos {
  display: flex;
  flex-direction: row;
  gap:2.5em;
  margin-bottom: -10em;
}

.nextToEachOtherPhotos a img {
  width: 100%;
  max-width: 30em; /* Or whatever size you want */
  height: auto;
}

.text {
  
  display:flex;
  flex-direction:column;
  justify-content: left;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  list-style: none;
  flex: 1 1 auto;
}

.textBlack {
  color: #000000;
  list-style: none;
  padding: 0;
  margin-top: 20px;
}

.textGray {
  color:#848282;
}

.bold {
font-weight: bolder;
}

.SmallGapBottom {
  margin-bottom: 1.5em;
  padding-bottom: 0em;
}

.TinyGapBottom {
  margin-bottom: 0em;
  padding-bottom: 0em;
}

.BigGapBottom {
  margin-bottom: 7em;
}

.MassiveGapBottom {
  margin-bottom: 18em;
}

.GapTop {
  margin-top: 3em;
  padding-top: 10em;
}


.MediumGapTop {
  margin-top: 4em;
  padding-top: 1em;
}

.Closer {
  margin-bottom: -1em;
}

.titleFlexContainer {
  display: flex; 
  flex-direction: row; 
  align-items: left;
  gap: 4px;
  max-height: 4em;
  align-items: center;
}


.hidden {
  display: none;
}

.container {
  flex: 1;
}

.violet {
  background-color:#595ca9;
  color: white;
}

.policy-list {
  display: flex;
  justify-content: center;
  border-top: 0.1em #ffffff solid;
  padding-top: 0.5em;
  width: 50%;
  min-width: 400px;
}

/*Here's the stuff related for the vocabulary page in specific*/
 #categoryFilters {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 0.5rem;
    font-size: 1.5em;
  }

  #categoryFilters label {
    background-color: #595ca9;
    border: 1px solid #ccc;
    padding: 0.3rem 0.7rem;
    border-radius: 5px;
    cursor: pointer;
    color:#ccc;
    font-weight: bolder;
    font-size: 1em;
  }

  #categoryFilters input[type="checkbox"] {
    margin-right: 0.5em;
    accent-color: #282953;
    
  }

  #searchInput {
    padding: 0.5rem;
    font-size: 1.5em;
    width: 20em;
    border-radius: 8px;
  }

  #sortSelect {
    padding: 0.5rem;
    font-size: 1.5rem;
    margin-top: 0.5em;
    width: 20em;
    border-radius: 8px;
    margin-bottom: 1em;
  }
  #sortSelect:hover {
    override-colors:  #595ca9;
  }


  button {
    text-align: center;
    color: white;
    font-weight: bold;
    background-color: #595ca9;
    border-radius: 8px;
    width:max-content;
    font-size: 1.5em;
    display: block;
    position: relative;
    cursor:pointer;
    margin-bottom: 0.2em;
  }

  button:hover {
    background-color:#282953;
  }

  #vocabList {
    padding-top: 5em;
  }

  .term {
    background: white;
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 8px;
    border-left: 0.4em solid #595ca9;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    font-size: 1.5em;
  }

   .term strong {
    font-size: 1em;
    color: #595ca9;
  }

  .term em {
    font-style: normal;
    font-size: 1em;
    color: #4c4c4c;
    margin-left: 0.5em;
    margin-right: 0.5em;
  }

  .term span {
    display: block;
    margin-top: 0.5rem;
    line-height: 1.4;
  }

  .infoBox.branding {
    width: 100% !important;
  }

@media only screen and (max-width: 1450px) {

  .h5 {
    justify-content: center;
  }
  p {
    padding: 0.0em;
    font-size: 1.5em;
  }

  .infoBox {
    width: 48%;
    margin-bottom: 5em;
  }

  .infoBox.nextToEachOther.white {
    width: 100%;
  }

  .nextToEachOtherPhotos {
    flex-direction: row;
    width: 100%;
    margin-bottom: -10em;
  }

  .containerRow {
    flex-wrap: wrap;
    align-items: center;
  }

  .SmallModelTop {
    margin-top: -9em;
  }
  
}


@media only screen and (max-width: 1239px) {

  h3 {
    font-size: 1.7em;
    margin-bottom: 1em;
    display: block;
  }

  .moreInfoButtonBlack {
    height: 2em;
    margin-bottom: 1em;
  }

  .textGray {
    font-size: 1.3em;
  }

  .downloadButton {
    width:100%;
    font-size: 1.6em;
  }

  .infoBox.branding {
    width: 100% !important;
  }

}

/*THIS MEDIA ONLY IS MAINLY FOR THE BRANDING PAGE*/
@media only screen and (max-width: 1080px)
{
    
  .downloadButton.branding {
    margin-top: 0em;
  }

  .boxTitle.branding {
        font-size: 2em;
        /*margin-top: 0.5em;*/
        margin-top: 0.5em;
  }

  .SmallGapBottom.branding {
    margin-bottom: 0em;
    padding-bottom: 0em;
  }

}

@media only screen and (max-width: 900px)
{

  /* Increase body font size for readability */
  body {
    font-size: 4rem;
  }

    .contentWrapper {
      font-size: clamp(0.2em, 2vw, 0.3em);
      text-align: center;
    }
    
      .headerModel {
        scale: 100%;
        margin-bottom: 4em;
      }


      .SmallModelSide {
        max-width:50%;
        justify-content: center;
        margin-left: 0%;
        align-self: center;
      }

      .SmallModelTop {
        scale: 100%;
        display: flex;
        flex-direction: column;
        justify-content: top;
        margin-bottom: -3em;
        margin-top: -5em;
      }

      .SmallModelSideBranding {
        display: none;
      }

      h1 {
          font-size: 2.6rem; 
          margin-left: 0.5em;
          
      }

      .infoBox.nextToEachOther.gray {
        padding-right: 2em;
      }

      .textBlack {
        text-align: center;
        align-self: center;
        max-width: 90%;
      }
      
      .textGray {
        text-align: center;
        font-size: 1.3em;
      }

      .boxTitle {
        font-size: 2em;
        justify-content: center;
      }

      .boxTitle {
        font-size: 2em;
      }

      .moreInfoButtonBlack {
        font-size: 1.2em;

      }
    
      .downloadButton {
        width:100%;
      }

      .boxSubtitle {
        font-size: 2rem;
        margin-left: 0.5em;
      }
  
      /* Adjust button sizes */
      .moreInfoButton {
        font-size: 1.6em;   
      }

      .moreInfoButtonBlack {
        height: 40px;
        min-width: 50px;
      }

      .button-container {
        flex-direction:column;
        margin-top: 4em;
        gap:1em;
      }

      .show-more-button {
        font-size: 1.2em;
      }

      .show-all-button {
        font-size: 1.2em;
      }

      .containerRow {
          flex-direction: column;
          align-items: center;
      }
      
      .infoBox {
          width: 100%;
          margin-bottom: 1em;
      }

      .infoBoxChild {
        align-items: center;
        justify-content: center;
      }

      .nextToEachOther {
        flex-direction: column;
      }

      /*.nextToEachOtherBranding {
        flex-direction: column;
        -ms-transform: translateX(0%);
        transform: translateX(0%);
      }*/
      
     
      .nextToEachOtherPhotos {
        flex-direction: column;
        margin-bottom: -8em;
      }
      

      .text {
        justify-content: center;
        align-items: center;
        margin-left: 0rem;
        margin-right: 0rem;
      }
   
      .centered.textBlack.BigGapBottom {
        justify-self: center;
        margin-left: 2em;
        margin-right: 2em;
      }

}

      

@media only screen and (max-width: 700px) {

  body {
    text-align: center;
    font-size: clamp(3.5em, 1vw, 1.1em);
  }

  .containerRow {
    flex-direction: column;
  }

  .chopContent {
    font-size: clamp(0.9em, 2vw, 1.1em);
  }

  .nextToEachOther {
    flex-direction: column;
    align-items: center;
  }

  .text {
    align-items: center;
  }

  h2 {
    font-size: 3em;
  }


  .boxSubtitle {
    font-size: 1.5em;
  }

 
}

/*Small Screens (566px and below) */
@media (max-width: 566px) {

  .policy-list {
    min-width: 300px;
  }
}

@media only screen and (max-width: 435px /* 477px */) {


  h1 {
    justify-content: center;
    text-align: center;
    align-items: center;
    align-content: center;
  }

  h2 {
    font-size: 3em;
  }

  .headerModel {
    margin-top: -4em;
    scale: 70%;
  }
 
  .h5 {
    justify-content: center;
  }

  .SmallModelTop {
    scale: 80%;
  }


  .additionalNav {
    gap: 5px;
  }

  .downloadButton {
    font-size: 1.4em;
  }

}

@media only screen and (max-width: 320px) {


}