/* -------------------------------------
 :: Reset
------------------------------------- */
body {
  margin: 0;
  padding: 0;
}

.tot-teaser :where(*, *::before, *::after) {
  box-sizing: border-box;
}

/* -------------------------------------
 :: Common
------------------------------------- */
.tot-teaser {
  display: grid;
  place-content: center;
  position: relative;
  min-width: 320px;
  width: 100%;
  aspect-ratio: 375/600;
  margin: 0 auto;
  color: #151515;
  background: url("../images/bg_mosaic_sp.webp") no-repeat center/cover;
  font-size: clamp(10px, calc(14 / 375 * 100vw), 16px);
  font-weight: 500;
  line-height: 2;
}
@media screen and (min-width: 769px) {
  .tot-teaser {
    aspect-ratio: unset;
    min-height: 720px;
    background-image: url("../images/bg_mosaic_pc.webp");
  }
}

.tot-teaser::before,
.tot-teaser::after {
  content: "";
  display: block;
  position: absolute;
  background: #F7F7F7;
  width: 66.4vw;
  aspect-ratio: 249/117;
}
@media screen and (min-width: 769px) {
  .tot-teaser::before,
  .tot-teaser::after {
    width: min(38.0555555556vw, 548px);
    aspect-ratio: 548/317;
  }
}

.tot-teaser::before {
  left: 0;
  top: 0;
  -webkit-clip-path: polygon(0 0, 100% 0, 0 100%);
          clip-path: polygon(0 0, 100% 0, 0 100%);
}

.tot-teaser::after {
  right: 0;
  bottom: 0;
  -webkit-clip-path: polygon(0 100%, 100% 0, 100% 100%);
          clip-path: polygon(0 100%, 100% 0, 100% 100%);
}

.tot-teaser img {
  width: 100%;
  height: auto;
}

.tot-teaser__comingsoon {
  width: 73.3333333333vw;
  margin-inline: auto;
}
@media screen and (min-width: 769px) {
  .tot-teaser__comingsoon {
    width: 500px;
  }
}
