.row {
  width: 90%;
  max-width: 71.25rem;
  margin: 0 auto;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.slogan {
  display: none;
  visibility: hidden;
}


/**********
HEADER
*/

header {
  position: relative;
  margin-bottom: -30vw;
  font-size: 0.8em;
  color: rgba(255, 255, 255, 1.0);
}

.backlink {
  margin: 1.0em 0.5em 0 0;
}

header p {
  color: rgba(33, 33, 33, 1.0);
  text-shadow: 0.03em 0.03em 0.1em rgba(255, 255, 255, 0.8);
}

h1 {
  position: absolute;
  top: 25vw;
  left: 5vw;
}

header .flex-info {
  position: absolute;
  top: 0.25rem;
  right: 1.25rem;
  text-align: center;
}

/*
header .flex-info a {
  color: rgba(255, 255, 255, 1.0);
  text-shadow: 0.03em 0.03em 0.1em rgba(33, 33, 33, 0.8);
}
*/

header .flex-info li {
  list-style: none;
  margin-left: -2.75em;
}

.no {
  display: none;
  visibility: hidden;
}

header .flex-info li a {
  display: block;
  padding: 0 0.35em;
  margin-bottom: 0.35em;
  background-color: rgba(255, 255, 255, 1.0);
  border-radius: 0.15em;
  box-shadow: 0.03em 0.03em 0.1em rgba(33, 33, 33, 0.5);
}

header .flex-info li a:hover {
  color: rgba(0, 0, 0, 1.0);
  background-color: rgba(255, 255, 255, 1.0);
}

header .flex-info li a.active {
  color: rgba(255, 255, 255, 1.0);
  background-color: rgba(61, 109, 175, 1.0);
}




/**********
MAIN
*/

main .row:first-of-type {
  padding-top: 35vw;
}

main {
  background-image: url(../../img/bg-01.png);
  background-size: contain;
  background-position: right 0;
  background-repeat: no-repeat;
}

.side {
  font-size: 2.0rem;
}

.flex-box {
  display: flex;
  gap: 1.0rem;
  justify-content: flex-start;
}

.circled {
  border-radius: 50%;
}


/*** Carousel ***/
.carousel-container {
  display: flex;
  overflow-x: auto;
}

.carousel-slide {
  flex: 1 0 30%;
}

@media (max-width: 600px) {

  .carousel-slide {
    flex: 1 0 90%;
  }

}

.carousel-container {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 5px 0px, rgba(0, 0, 0, 0.1) 0px 0px 1px 0px;
}

.carousel-slide {
  flex: 1 0 10%;
  scroll-snap-align: center;
  font-size: 0.75em;
}

.carousel-slide img {
  max-height: 350px;
  border: solid 0.5rem #000000;
}

@media (max-width: 600px) {

  video {
    max-width: 100%;
  }

  .carousel-slide {
    flex: 1 0 10%;
  }

  .carousel-slide img {
    max-height: 200px;
  }

}

.carousel-container::-webkit-scrollbar {
  height: 8px;
}

.carousel-container::-webkit-scrollbar-thumb {
  background: #29AB87;
}

.carousel-container::-webkit-scrollbar-track {
  background: #b1b3b399;
}

.carousel-container::-webkit-scrollbar-track-piece:start {
  background: #29AB87;
}






/**********
FOOTER
*/

footer {
  text-align: center;
  font-size: 0.9em;
}

footer .flex-info {
  padding: 0.15rem;

}

/**********
      max 460px / 28.75em
*/

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

  h1,
  h2:first-of-type {
    max-width: 60%;
  }


}



/**********
      min 460px / 28.75em
*/

@media screen and (min-width: 460px) {

  .circled {
    shape-outside: circle(50% at 50% 50%);
    clip-path: circle(50%);
    margin: 1em;
    float: left;
  }

  footer .backlink::before {
    content: "Sponsored by";
  }

}



/*
      min 600px / 37.5em
**********/

@media all and (min-width: 600px) {

  header::before {
    position: fixed;
    position: absolute;
    top: 33vw;
    left: -16vw;
    content: "Thailand – Phuket – Patong Beach";
    transform: rotate(-90deg);
    font-size: 1.15em;
    color: rgba(0, 0, 0, 1.0);
    text-shadow: 0.03em 0.03em 0.05em rgba(255, 255, 255, 0.8);
  }

}



/*
      min 720px / 45em
**********/

@media all and (min-width: 720px) {

  header::before {
    left: -14vw;
  }

}



/*
      min 750px / 46.875em
**********/

@media all and (min-width: 750px) {

  header::before {
    left: -13vw;
  }

}


/*
      min 850px / 53.125em
**********/

@media all and (min-width: 850px) {

  header::before {
    left: -12vw;
  }

}



/*
      min 900px / 56.25em
**********/

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

  header h1 {
    top: 10vw;
  }

  header .flex-info {
    display: flex;
    gap: 1.0em;
  }

  .flex-box-1 {
    display: flex;
    gap: 3.0em;
    justify-content: space-between;
  }

  .flex-box-1 .flex-item:last-of-type {
    margin-top: 3em;
  }

  .flex-box-2 {
    clear: left;
    display: flex;
    flex-wrap: wrap-reverse;
    gap: 1.0rem;
    justify-content: space-between;
  }

  .flex-item {
    display: flow-root;
    width: 48%;
  }

  header::before {
    left: -11vw;
  }

}



/*
      min 980px / 61.25em
**********/

@media screen and (min-width: 980px) {

  header::before {
    left: -8vw;
  }

}



/*
      min 1024px / 64em
**********/

@media screen and (min-width: 1024px) {

  header::before {

    left: -10vw;
  }

}



/*
      min 1280px / 67.5em
**********/

@media screen and (min-width: 1280px) {

  h1 {

    left: 20vw;
  }

  header::before {

    left: -13vw;
    font-size: 2.0em;
  }

}