@charset "utf-8";

.title {
  display: flex;
  justify-content: center;
  align-items: center;
}

h1 {
  margin: 0;
  font-size: clamp(1.4rem, 2rem, 2.8rem);
  writing-mode: vertical-rl;
  letter-spacing: 20px;
  line-height: 3;
}

.spend-container {
  width: 90%;
  max-width: 1300px;
  margin: 0 auto;
  margin-bottom: 15rem;
}

.content {
  margin-bottom: 15rem;
}

.content img {
  width: 45%;
  height: auto;
  margin: 0 auto 5rem;
}

.content h2,
.content p {
  text-align: center;
}

.content h2::after {
  content: "";
  display: block;
  width: 200px;
  height: 1px;
  background-color: #b2b2b2;
  margin: 2rem auto;
}




/* １日目・２日目 設定 */
.dayOne h2,
.dayTwo h2 {
  writing-mode: vertical-lr;
  background: repeating-linear-gradient(90deg, #444, #444 2px, #505050 2px, #505050 5px);
  opacity: 0.8;
  color: white;
  text-align: center;
  letter-spacing: 1rem;
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  padding: 0 4rem;
}

/* time-schedule */
.timeSchedule {
  margin: 3rem auto 0;
  border-top: 1px solid #2a2a2a;
  width: 75%;
  height: calc(70vh - 3rem);
  flex-shrink: 0;
  position: relative;
  padding: 2rem 5rem;
}

.timeSchedule li {
  position: relative;
}

/* 横スクロール */
.horizontal_scroll {
  --sticky-container-height: 100vh;
  height: var(--sticky-container-height);
  min-height: 100vh;
}

.horizontal_scroll .sticky {
  position: sticky;
  top: 15%;
  min-height: 100vh;
}

.horizontal_scroll .scroller {
  display: flex;
  overflow: auto;
}

.horizontal_scroll .scroller.nobar {
  overflow: hidden;
}

/* 時間の上に●センター配置 */
.time-dot {
  --dot: 10px;
  --dot-gap: 10px;
}

.time-dot span.time {
  position: relative;
  display: inline-block;
}

.time-dot span.time::after {
  content: "";
  position: absolute;
  top: calc(-1 * var(--dot-gap));
  left: 50%;
  transform: translate(-50%, -150%);
  width: var(--dot);
  height: var(--dot);
  background: black;
  border-radius: 50%;
}

/* 詳しく見るボタン */
.linkbtn a {
  display: inline-block;
  width: 100%;
  max-width: 200px;
  background-color: #fff;
  border: 1px solid #505050;
  text-align: center;
  transition: 0.7s;
  cursor: pointer;
  position: absolute;
  bottom: 7%;
  left: 85%;
  transform: translate(-85%, 7%);
}

.linkbtn a:hover {
  color: white;
  background-color: #505050;
  transition: 0.7s;
}



/* 1日目 */
.actOne,
.actThree,
.actFive,
.actSeven,
.actNine,
.actEleven {
  background-image: url(../img/optional/02.png);
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: cover;
  background-color: rgba(255, 255, 255, 0);
}

.actTitle {
  line-height: 3;
  font-weight: bold;
}

.time-dot li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.time-dot .schbox {
  width: 100%;
}


/* 15:00 */
.actOne img {
  width: 60%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  background-color: #fff;
  padding: .5rem;
  margin: 3rem auto;
}

/* 15:30 */
.actTwo img {
  width: 50%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  padding: .5rem;
  margin: 3rem auto;
}

/* 16:30 */
.actThree .imgOne {
  width: 50%;
  height: auto;
  object-fit: cover;
  position: absolute;
  top: 7%;
  left: 85%;
  transform: translate(-85%, 7%);
}

.actThree .imgTwo {
  width: 45%;
  height: auto;
  border: 5px solid white;
  object-fit: cover;
  position: absolute;
  bottom: 15%;
  left: 15%;
  transform: translate(-15%, 15%);
}

/* 17:30 */
.actFour .txt {
  margin-bottom: 3rem;
}

.actFour .imgOne {
  width: 60%;
  height: auto;
  object-fit: cover;
  position: absolute;
  top: 20%;
  left: 25%;
  transform: translate(-25%, 20%);
}

.actFour .imgTwo {
  width: 35%;
  height: auto;
  border: 5px solid white;
  object-fit: cover;
  background-color: transparent;
  position: absolute;
  bottom: 5%;
  left: 85%;
  transform: translate(-85%, 5%);
}

/* 18:00 */
.actFive .imgOne {
  width: 50%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  background-color: white;
  padding: .5rem;
  position: absolute;
  top: 13%;
  left: 10%;
  transform: translate(-10%, 13%);
}

.actFive .imgTwo {
  width: 25%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  background-color: white;
  padding: .5rem;
  position: absolute;
  top: 13%;
  left: 80%;
  transform: translate(-80%, 13%);
}

.actFive .imgThree {
  width: 30%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  background-color: white;
  padding: .5rem;
  position: absolute;
  bottom: 30%;
  left: 90%;
  transform: translate(-90%, 30%);
}

.actFive .txt {
  position: absolute;
  bottom: 7%;
  left: 3%;
  transform: translate(3%, 7%);
}


/* 21:00 */
.actSix img,
.actSeven img {
  width: 60%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  padding: .5rem;
  margin: 3rem auto;
}

.actSeven img {
  width: 65%;
  background-color: white;
}



/* 2日目 */
/* 6:00 */
.actEight img,
.actNine img,
.actTen img,
.actEleven img {
  width: 60%;
  height: auto;
  object-fit: cover;
  border: 1px solid #b2b2b2;
  padding: .5rem;
  margin: 3rem auto;
}

/* 8:00 */
.actNine img {
  width: 50%;
  background-color: white;
}



/* ご近所さん */
.contentadd h3 {
  text-align: center;
}

.contentadd h3::after {
  content: "";
  display: block;
  width: 200px;
  height: 1px;
  background-color: #b2b2b2;
  margin: 2rem auto 5rem;
}

.neighbors {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 10rem;
}

.neighborOne,
.neighborTwo {
  flex: 1 1 40%;
  max-width: 40%;
}

.neighborOne img,
.neighborTwo img {
  width: 100%;
  height: auto;
  padding: 10px;
  border: 1px solid #b2b2b2;
  object-fit: cover;
}

.neighborOne img:hover,
.neighborTwo img:hover {
  opacity: 0.7;
}

.description {
  font-size: clamp(1.2rem, 2vw, 1.4rem);
}






/* フッター */
.flex2 li:nth-of-type(5):hover {
  color: white;
}

.flex2 :nth-of-type(5)::after {
  content: "";
  display: block;
  width: 110px;
  height: 1px;
  background-color: #b2b2b2;
}




/* レスポンシブ設定 */
@media (max-width: 800px) {
  .scroll {
    display: none;
  }

  .title {
    width: 100%;
    border: none;
    margin: 0 auto 5rem;
    height: 70vh;
  }

  .title h1 {
    margin: 0 auto;
  }

  .spend-container {
    width: 85%;
    margin: 0 auto 5rem;
  }

  .content h2 {
    font-size: 1.4rem;
    line-height: 1.5;
  }

  .content h2::after {
    width: 100px;
  }

  .content {
    margin-bottom: 10rem;
  }

  .content p {
    font-size: 1.3rem;
    text-align: left;
  }

  .content img {
    width: 75%;
    height: auto;
    margin-bottom: 2rem;
  }

  .dayOne h2,
  .dayTwo h2 {
    padding: 1rem;
  }

  .timeSchedule {
    width: 80%;
    height: calc(60vh - 3rem);
    padding: 1rem;
    margin-top: 1.5rem;
  }

  .time-dot {
    --dot: 5px;
    --dot-gap: 5px;
  }

  .horizontal_scroll .sticky {
    min-height: 5rem;
    margin-bottom: 8rem;
  }

  .actOne img,
  .actTwo img {
    width: 90%;
    padding: 3px;
    margin: 1rem auto;
  }

  .actTitle {
    line-height: 1.8;
  }

  .timeSchedule .txt {
    font-size: 1.3rem;
    line-height: 1.5;
  }

  .linkbtn {
    width: 50%;
    font-size: 1rem;
    position: absolute;
    bottom: 1%;
    right: 10%;
  }

  .actThree .imgOne,
  .actFour .imgOne,
  .actFive .imgTwo,
  .actSix img,
  .actSeven img,
  .actEight img,
  .actNine img,
  .actTen img,
  .actEleven img {
    width: 90%;
    height: auto;
    position: unset;
    transform: unset;
    margin: 1rem auto;
    border: 1px solid #b2b2b2;
    padding: 3px;
  }

  .actThree .imgTwo,
  .actFour .imgTwo,
  .actFive .imgOne,
  .actFive .imgThree {
    display: none;
  }

  .actFive .txt {
    bottom: 13%;
  }

  .neighbors {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }

  .neighborOne, .neighborTwo {
    max-width: 80%;
}

  .neighborOne img,
  .neighborTwo img {
    padding: 5px;
  }

  .contentadd h3::after {
    margin: 1rem auto 2.5rem;
  }

}