@charset "UTF-8";

/* --------------------------------
	common
-------------------------------- */
figure {
  padding-top: 20px;
}

#main p {
  font-size: min(22px, 4.5vw);
  padding-top: 20px !important;
}
#main p.attention {
  padding-top: 0px !important;
  margin-bottom: 2em !important;
}

#sec03 .toshop.smallpad {
  padding-top: 0 !important;
}

.marker {
  background-color: #eef58e;
  padding: 0 2px;
  line-height: 1;
  font-weight: unset !important;
}

#sec02 {
  padding-bottom: 40px;
  padding-top: 40px;
  background-color: #abd8bc;
}

#sec03 {
  background-color: #fff;
  padding-bottom: 60px;
}

.btn .coming-soon {
  color: #f6e59e;
}

#main section:not(#offer) h2 {
  font-size: min(30px, 5.5vw);
  font-family:
    "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic",
    YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  text-align: center;
  line-height: 1.4;
  font-weight: 400;
}
#main h2 img {
  padding-bottom: 20px;
}

#main section:not(#sec09) h3 {
  color: #ff5353;
  font-size: 36px;
  font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
  padding-top: 40px;
  text-align: center;
  line-height: 1.4;
}

@media (max-width: 768px) {
  #sec02,
  #sec03,
  #sec04,
  #sec05 {
    padding-bottom: 3rem;
    padding-top: 3rem;
  }
  #sec03 {
    padding-top: 1rem;
  }
  #main h2 {
    font-size: 5.5vw;
  }
  #main h3 {
    font-size: 6vw;
    padding-top: 2rem;
  }
  figure {
    padding-top: 1rem;
  }

  #main p {
    padding-top: 1rem !important;
  }
}

/* --------------------------------
	#cover 
-------------------------------- */
#cover {
  position: relative;
  display: inline-block;
  line-height: 0;
  margin: 0;
  padding: 0;
}

#cover img {
  display: block;
  width: 100%;
  height: auto;
}

.cover-text {
  position: absolute;
  bottom: -3%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  white-space: nowrap;
  text-align: center;
  font-size: min(23px, 4.5vw);
  color: #e7336e;
  padding-bottom: 15px;

  box-sizing: border-box;
}

.cover-text a {
  display: inline-flex;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid #e7336e;
  padding-bottom: 15px;
}

.cover-text a .arrow {
  font-size: 12px;
  margin-left: 0.3em;
}

.cover-link {
  margin: 1em 0;
}

@media (max-width: 768px) {
  .cover-text {
    padding-bottom: 8px;
  }
}

/* --------------------------------
	#sec01
-------------------------------- */

.talk-block {
  display: flex;
  align-items: center;
  margin: 20px 0;
}

.talk-block.reverse {
  flex-direction: row-reverse;
}

.speaker-photo {
  width: 90px;
  height: auto;
  object-fit: cover;
  flex-shrink: 0;
}

.speech-bubble {
  flex: 1;
  font-size: min(22px, 4.5vw);
  background-color: #fff;
  /*      border: 1px solid #ccc;*/
  padding: 10px 15px;
  border-radius: 10px;
}

#sec02 h2 {
  margin-top: -1.5em;
  font-weight: 500 !important;
  color: unset !important;
  padding-bottom: 0.8em;
  background: url(../img/draw.svg) center bottom / 90% auto no-repeat;
}

#sec01 p {
  padding-top: 0 !important;
  padding-bottom: 20px;
}

@media (max-width: 768px) {
  #sec01 {
    padding-bottom: 1rem;
  }
}

/* --------------------------------
	speech-bubble
-------------------------------- */
.reverse .speech-bubble {
  position: relative;
  display: inline-block;
  margin-right: 16px;
  padding: 17px 16px;
  border-radius: 25px;
  background-color: #ffffff;
  text-align: left;
  font-size: min(21px, 4.5vw);
  line-height: 1.7;
  color: #000000;
  letter-spacing: 0.1em;
}

.reverse .speech-bubble::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 8px 0 8px 16px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
  transform: skew(0, -10deg);
  transform-origin: left;
}

.speech-bubble {
  position: relative;
  display: inline-block;
  margin-left: 16px;
  padding: 17px 16px;
  border-radius: 25px;
  background-color: #ffffff;
  text-align: left;
  font-size: min(21px, 4.5vw);
  line-height: 1.7;
  color: #000000;
  letter-spacing: 0.1em;
}

.speech-bubble::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  border-style: solid;
  border-width: 8px 16px 8px 0;
  border-color: transparent #ffffff transparent transparent;
  translate: -100% -50%;
  transform: skew(0, -10deg);
  transform-origin: right;
}

/* --------------------------------
	#sec09
-------------------------------- */

#sec09 {
	padding-top: min(80px, 4rem);
	padding-bottom: min(80px, 4rem);
}

