@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap");
/* ----------------------------------------------------------------------
SCSSフォルダからの自動生成
リセットCSSここから
---------------------------------------------------------------------- */
/***
	外部CSS
	The new CSS reset - version 1.7.3 (last updated 7.8.2022)
	GitHub page: https://github.com/elad2412/the-new-css-reset
***/
/* displayプロパティを除いて、ブラウザから取得されるデフォルトのスタイルを使用しない */
*:where(:not(html, iframe, canvas, img, svg, video, audio, input, textarea, select):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}

ol,
ul,
menu {
  list-style: none;
}

img {
  max-width: 100%;
}

table {
  border-collapse: collapse;
}

input,
textarea {
  -webkit-user-select: auto;
}

textarea {
  white-space: revert;
}

meter {
  -webkit-appearance: revert;
  -moz-appearance: revert;
       appearance: revert;
}

:where([hidden]) {
  display: none;
}

/***
	ここからTMSオリジナル
***/
* {
  font-family: "Noto Sans JP", Helvetica, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", Meiryo, Arial, sans-serif;
}

/* 英数字はすべて折り返し */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
  word-break: break-all;
}

label {
  cursor: pointer;
}

input[type=text],
input[type=number],
input[type=tel],
input[type=date] {
  min-width: 80px;
  padding: 5px 10px;
  box-sizing: border-box;
}

select {
  padding: 5px 10px;
}

a,
button {
  cursor: pointer;
}

textarea {
  width: calc(100% - 20px);
  height: 3em;
}

::-moz-placeholder {
  color: unset;
}

::placeholder {
  color: unset;
}

/* ドラッグ禁止 */
:where([draggable=true]) {
  -webkit-user-drag: none;
}

/* summary detailの▼を消す */
summary {
  display: block;
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

input[type=submit],
button {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

/* 基本設定 */
:root {
  --main-w: 410px;
  --left-w: max(44% - 205px, 410px);
  --right-w: calc(100% - 410px - max(44% - 205px, 410px));
  --primary-color: #239d68;
}

html {
  scroll-behavior: smooth;
}

body {
  font-size: min(3.9vw, 16px);
  text-align: left;
  background: #fbe7e3;
}

img {
  width: 100%;
  height: auto;
}

a {
  color: #0071bc;
  text-decoration: underline;
}
@media (hover: hover) {
  a:hover {
    text-decoration: none;
  }
}

rt {
  font-size: 0.5em;
}

/* 共通パーツ */
.btn {
  width: 100%;
  max-width: 380px;
}
.btn.disabled {
  opacity: 0.5;
  pointer-events: none;
}
.btn a {
  color: #fff;
  font-size: min(4.4vw, 18px);
  text-decoration: none;
  width: 100%;
  background: #ea8872 url("../images/s_exlink_03.svg") no-repeat 93% center/20px auto;
  border: solid 3px #fff;
  border-radius: 50vh;
  box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
  box-sizing: border-box;
  display: block;
  padding: min(3.6vw, 15px) min(8.6vw, 35px);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
@media (hover: hover) {
  .btn a:hover {
    background-color: #e36346;
  }
}

a.ex {
  background: url("../images/s_exlink_02.svg") no-repeat right center/0.8em auto;
  padding-right: 1.1em;
}

/* パーツ別のCSS */
.info {
  color: #fff;
  text-align: center;
  width: 100%;
  background: var(--primary-color);
  margin: 0 0 10px;
  padding: 5px 0;
}
.info.end {
  background: #444;
}

/* 公開前のテキスト */
.message {
  text-align: center;
  padding: min(4.8vw, 20px) 0 0;
  font-size: min(4.3vw, 18px);
}

main {
  width: 100%;
  max-width: var(--main-w);
  background: #fff;
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  margin: 0 0 0 var(--left-w);
}
main.open {
  overflow: hidden;
}
@media screen and (min-width: 841px) and (max-width: 1240px) {
  main {
    margin: 0;
  }
}
@media screen and (max-width: 840px) {
  main {
    margin: 0 auto;
    overflow: hidden;
  }
}
main .mainv {
  text-align: center;
  width: 100%;
  background: url("../images/mainv_bg.jpg") no-repeat center top/100% auto;
  aspect-ratio: 75/145;
  position: relative;
}
main .mainv .shusai {
  font-size: min(3.6vw, 15px);
  padding: 5px 0 0;
}
main .mainv h1 {
  width: min(85.1vw, 351px);
  position: absolute;
  top: min(42.6vw, 175px);
  left: min(3.1vw, 13px);
  z-index: 2;
}
main .mainv .img1 {
  width: min(48.2vw, 198px);
  position: absolute;
  top: min(19.5vw, 80px);
  right: max(-2.4vw, -10px);
  z-index: 1;
}
main .mainv .img2 {
  width: min(37.1vw, 152px);
  position: absolute;
  top: min(103.6vw, 425px);
  left: max(-3.2vw, -13px);
  z-index: 1;
}
main .mainv .date {
  width: min(48.7vw, 200px);
  position: absolute;
  top: min(109.7vw, 450px);
  left: min(26.8vw, 110px);
  z-index: 2;
}
main .mainv .price {
  width: min(36.8vw, 151px);
  position: absolute;
  top: min(162vw, 660px);
  left: min(5.6vw, 23px);
}
main h2 {
  color: var(--primary-color);
  font-size: min(5.3vw, 22px);
  text-align: center;
  line-height: 1.4;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: min(7.3vw, 30px);
  position: relative;
  z-index: 1;
}
main .roundInner {
  background: url("../images/h2_bg.svg") no-repeat center 1.8em/54.8% auto;
}
main .whiteWrap {
  width: min(89.7vw, 370px);
  background: #fff;
  border-radius: min(7.31vw, 30px);
  margin: auto;
  padding: min(7.31vw, 30px);
  box-sizing: border-box;
}
main #point {
  background: #ffffba;
  padding: 0 0 min(7.3vw, 30px);
  position: relative;
}
main #point .lead {
  width: min(73.1vw, 300px);
  margin: 0 auto min(12.1vw, 50px);
}
main #point .try {
  width: min(24.3vw, 100px);
  position: absolute;
  top: min(37.8vw, 155px);
  right: min(2.4vw, 10px);
}
main #point h2 img:first-child {
  width: min(36.5vw, 150px);
}
main #point h2 img:last-child {
  width: min(40.9vw, 168px);
}
main #point .whiteWrap {
  transform: translateY(max(-5.3vw, -22px));
}
main #point .whiteWrap .slider {
  margin-top: min(4.8vw, 20px);
}
main #point .whiteWrap .slider .prev,
main #point .whiteWrap .slider .next {
  width: min(8.5vw, 35px);
  cursor: pointer;
  position: absolute;
  top: 50%;
  z-index: 1;
}
@media (hover: hover) {
  main #point .whiteWrap .slider .prev:hover,
main #point .whiteWrap .slider .next:hover {
    opacity: 0.8;
  }
}
main #point .whiteWrap .slider .prev {
  left: 0;
  transform: translate(-120%, -70%);
}
main #point .whiteWrap .slider .next {
  right: 0;
  transform: translate(120%, -70%) rotate(180deg);
}
main #point .whiteWrap img {
  border-radius: min(6vw, 25px);
}
main #point .whiteWrap .text {
  margin: 10px 0 0;
}
main #flow {
  background: #ffffba;
  padding: 0 0 min(7.3vw, 30px);
}
main #flow h2 img:first-child {
  width: min(30.7vw, 120px);
}
main #flow h2 img:last-child {
  width: min(25.5vw, 105px);
}
main #flow .whiteWrap {
  transform: translateY(max(-5.3vw, -22px));
}
main #flow ol {
  counter-reset: num;
  position: relative;
  background: url("../images/s_dot_green.svg") repeat-y min(4.3vw, 18px) 0/3px 10px;
}
main #flow ol li:not(:last-child) {
  margin: 0 0 min(9.7vw, 40px);
}
main #flow ol li .title {
  color: var(--primary-color);
  font-size: min(4.8vw, 20px);
  font-weight: bold;
  margin: 0 0 min(4.8vw, 20px);
  display: flex;
  align-items: center;
  -moz-column-gap: min(2.4vw, 10px);
       column-gap: min(2.4vw, 10px);
}
main #flow ol li .title span {
  width: min(8.5vw, 35px);
  height: min(8.5vw, 35px);
  background: var(--primary-color);
  border-radius: 50vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
main #flow ol li .title span img {
  width: auto;
  height: min(2.8vw, 12px);
}
main #flow ol li > *:not(.title) {
  margin-left: min(11.2vw, 46px);
}
main #flow ol li .image {
  margin-bottom: min(4.8vw, 20px);
}
main #flow ol li .image img {
  border-radius: min(6vw, 25px);
}
main #flow ol li .youtube {
  margin: min(2.4vw, 10px) 0 0;
}
main #flow ol li .youtube .ballon {
  text-align: right;
  transform: translateX(min(10.2vw, 42px));
}
main #flow ol li .youtube .ballon img {
  width: min(48.7vw, 200px);
}
main #flow ol li .youtube iframe {
  width: 100%;
}
main #flow ol li .youtube .link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}
main #flow ol li .youtube .link img {
  width: 0.4em;
  height: auto;
}
main #overview {
  padding: 0 0 min(7.3vw, 30px);
}
main #overview .roundInner {
  background-color: #ffffba;
  margin-bottom: min(12.1vw, 50px);
}
main #overview .roundInner h2 {
  gap: min(4.8vw, 20px);
}
main #overview .roundInner h2 img:first-child {
  width: min(47.8vw, 196px);
}
main #overview .roundInner h2 img:last-child {
  width: min(31.2vw, 128px);
}
main #overview dl {
  margin: 0 10px min(3.6vw, 10px);
  line-height: 1.7;
  display: grid;
  grid-template-columns: auto 1fr;
  row-gap: min(4.8vw, 20px);
}
main #overview dl dt {
  color: var(--primary-color);
  min-width: 4em;
  font-size: min(2.9vw, 12px);
  font-weight: bold;
  border-bottom: solid 1px #c8e6d9;
  padding-right: min(4.8vw, 20px);
}
main #overview dl dd {
  font-size: min(3.6vw, 15px);
  border-bottom: solid 1px #c8e6d9;
  padding-bottom: min(4.8vw, 20px);
}
main #overview dl dd p:not(:last-child) {
  margin-bottom: min(2.4vw, 10px);
}
main #overview dl dd .ex {
  color: #000;
}
main #overview dl dd .btn a {
  color: var(--primary-color);
  border: solid 2px var(--primary-color);
  background-color: #fff;
  background-image: url(../images/s_exlink_01.svg);
  box-shadow: none;
}
main #overview dl dd .btn a:hover {
  color: #fff;
  background: var(--primary-color);
}
main #overview dl dd .grid {
  display: grid;
  grid-template-columns: auto auto 1fr;
}
main #overview dl dd .grid .col24 {
  grid-column: 2/4;
}
main #overview dl dd .grid .row25 {
  grid-row: 2/5;
}
main #overview .shusai {
  font-size: min(3.6vw, 15px);
  margin: 0 10px min(4.8vw, 20px);
}
main #overview .caution {
  color: #464646;
  font-size: min(3.6vw, 15px);
  margin: 0 10px;
}
main #entry {
  margin: 0 min(3.6vw, 15px) min(12.1vw, 50px);
}
main #entry h2 {
  color: #fff;
  font-size: min(3.6vw, 15px);
  background: #666464;
  margin: 0 0 min(3.6vw, 15px);
  padding: min(3.6vw, 15px);
}
main #entry dl {
  border: solid 1px #666464;
  margin: 0 0 min(8.5vw, 35px);
  position: relative;
}
main #entry dl:not(:last-of-type)::after {
  content: "";
  width: 0;
  height: 0;
  border-top: solid min(3.7vw, 13px) #666464;
  border-right: solid min(3.7vw, 13px) transparent;
  border-left: solid min(3.7vw, 13px) transparent;
  transform: translateX(-50%);
  display: block;
  position: absolute;
  bottom: max(-6vw, -25px);
  left: 50%;
}
main #entry dl dt {
  color: #fff;
  font-size: min(3.6vw, 15px);
  text-align: center;
  background: #666464;
  padding: min(1.2vw, 5px);
}
main #entry dl dd {
  padding: min(2.4vw, 10px);
}

footer {
  color: #666464;
  font-size: min(2.9vw, 12px);
  text-align: center;
  padding: min(12.1vw, 50px);
}

#leftMenu {
  width: var(--left-w);
  background-image: url("../images/body_bg_lt.png"), url("../images/body_bg_lb.png");
  background-repeat: no-repeat;
  background-position: left top, left 70%;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
@media screen and (max-width: 1240px) {
  #leftMenu {
    display: none;
  }
}
#leftMenu .logoArea {
  width: 100%;
  position: relative;
}
#leftMenu .logoArea .date {
  position: absolute;
  top: -18%;
  left: calc(50% + 15px);
}
#leftMenu .logoArea .date img {
  max-width: 190px;
}
#leftMenu .logoArea .logo {
  max-width: 305px;
  margin: 0 auto;
}
#leftMenu .logoArea .logo img {
  max-width: 350px;
}
#leftMenu ul {
  background: url("../images/s_dot_pink.svg") repeat-x left top/auto 2px;
  margin: 15px 0 0;
}
#leftMenu ul li {
  background: url("../images/s_dot_pink.svg") repeat-x left bottom/auto 2px;
}
#leftMenu ul li a {
  color: #323232;
  text-decoration: none;
  background: url("../images/s_caret_down.svg") no-repeat right center/auto 5px;
  display: block;
  padding: 10px 25px 10px 0;
}
@media (hover: hover) {
  #leftMenu ul li a:hover {
    color: #666;
    cursor: pointer;
  }
}

#rightMenu {
  min-width: 400px;
  width: var(--right-w);
  background-image: url("../images/body_bg_rt.png"), url("../images/body_bg_rb.png");
  background-repeat: no-repeat;
  background-position: right top, right bottom;
  padding: 0 0 180px;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
@media screen and (max-width: 1240px) {
  #rightMenu {
    width: calc(100% - var(--main-w));
  }
}
@media screen and (max-width: 840px) {
  #rightMenu {
    display: none;
  }
}
#rightMenu dl {
  font-size: 14px;
  display: grid;
  grid-template-columns: auto 1fr;
  -moz-column-gap: 0.5em;
       column-gap: 0.5em;
}
#rightMenu dl dt {
  color: #323232;
}
#rightMenu dl dd {
  margin: 0 0 30px;
}
#rightMenu dl dd > p {
  margin: 0 0 10px;
}
#rightMenu dl dd iframe {
  width: 100%;
}
#rightMenu dl dd .movie {
  margin-top: 15px 0 0;
}
#rightMenu dl dd .movie .check {
  color: #ea8872;
  text-align: center;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0.7em;
  margin: 0 0 5px;
}
#rightMenu dl dd .movie .check::before, #rightMenu dl dd .movie .check::after {
  content: "";
  width: 1.5em;
  height: 1.5em;
  border-top: solid 2px #ea8872;
  display: block;
}
#rightMenu dl dd .movie .check::before {
  transform: rotate(45deg) translateY(35%);
}
#rightMenu dl dd .movie .check::after {
  transform: rotate(-45deg) translateY(35%);
}
#rightMenu dl dd .movie a {
  color: var(--primary-color);
  font-size: min(2.9vw, 12px);
  text-decoration: none;
  background: #fff;
  box-shadow: 5px 2px 10px rgba(0, 0, 0, 0.25);
  border-radius: 10px;
  overflow: hidden;
  display: grid;
  align-items: center;
  grid-template-columns: 157px 1fr;
  gap: 10px;
  transition: 0.3s;
}
@media (hover: hover) {
  #rightMenu dl dd .movie a:hover {
    transform: translateY(-4px);
    box-shadow: 5px 3px 20px rgba(0, 0, 0, 0.15);
  }
}
#rightMenu dl dd .caret {
  background: url("../images/s_caret_right.svg") no-repeat left center/0.4em auto;
  padding-left: 1em;
}
#rightMenu .couple {
  width: auto;
  pointer-events: none;
  position: fixed;
  bottom: 120px;
  right: 40px;
}
#rightMenu .qr {
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  text-align: right;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  position: fixed;
  bottom: 20px;
  right: 20px;
}
#rightMenu .qr p:first-child {
  background: url("../images/s_caret_right_w.svg") no-repeat right center/5px auto;
  padding: 0 10px 0 0;
}

@media screen and (max-width: 840px) {
  .menu {
    width: min(19.5vw, 80px);
    height: min(17.8vw, 73px);
    background: url("../images/header_bg_menu.svg") no-repeat top right/100% auto;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 11;
  }
}
@media screen and (max-width: 840px) and (min-width: 410px) {
  .menu {
    right: calc(50% - var(--main-w) / 2);
  }
}
@media screen and (max-width: 840px) {
  .menu .hum {
    width: 6.3vw;
    max-width: 26px;
    height: min(5.8vw, 24px);
    position: relative;
    transform: translate(min(1.2vw, 5px), max(-1.2vw, -5px));
  }
  .menu .hum::before, .menu .hum::after {
    content: "";
    width: 100%;
    border-top: solid 3px #fff;
    display: block;
    transition: 0.3s;
    position: absolute;
  }
  .menu .hum::before {
    height: 1.7vw;
    max-height: 7px;
    border-bottom: solid 3px #fff;
    top: 0;
    left: 0;
  }
  .menu .hum::after {
    height: 0;
    bottom: 0;
    right: 0;
  }
}
@media screen and (max-width: 840px) {
  .menu.open .hum {
    transform: translate(10px, -5px);
  }
  .menu.open .hum::before {
    height: 0;
    transform: rotate(45deg) translate(3px);
    transform-origin: top left;
    border-bottom: none;
  }
  .menu.open .hum::after {
    transform: rotate(-45deg);
    transform-origin: top left;
  }
}
@media screen and (max-width: 840px) {
  @-webkit-keyframes clip {
    0% {
      -webkit-clip-path: ellipse(0 0 at 100% 0);
              clip-path: ellipse(0 0 at 100% 0);
    }
    100% {
      -webkit-clip-path: ellipse(150% 150% at 100% 0);
              clip-path: ellipse(150% 150% at 100% 0);
    }
  }
  @keyframes clip {
    0% {
      -webkit-clip-path: ellipse(0 0 at 100% 0);
              clip-path: ellipse(0 0 at 100% 0);
    }
    100% {
      -webkit-clip-path: ellipse(150% 150% at 100% 0);
              clip-path: ellipse(150% 150% at 100% 0);
    }
  }
}
@media screen and (max-width: 840px) {
  .spNavi {
    width: 100%;
    background: #fbe7e3;
    max-width: var(--main-w);
    transform: translateX(-50%);
    position: fixed;
    top: 0;
    left: 50%;
    bottom: 0;
    z-index: 10;
    transition: 0.3s;
  }
  .spNavi.open {
    -webkit-animation: clip 1s ease forwards;
            animation: clip 1s ease forwards;
  }
  .spNavi ul {
    width: min(68.2vw, 280px);
    margin: min(17vw, 70px) auto 0;
    display: flex;
    flex-direction: column;
    gap: min(3.6vw, 15px);
  }
  .spNavi ul li a {
    color: #000;
    text-decoration: none;
    background: #fff url("../images/s_caret_down.svg") no-repeat 90% center/0.8em auto;
    border-radius: 50vh;
    display: block;
    padding: min(2.4vw, 10px) min(4.8vw, 20px);
  }
  .spNavi .image {
    text-align: right;
    padding: 3vw 6vw;
  }
  .spNavi .image img {
    max-width: min(23.1vw, 95px);
  }
  .spNavi .btn {
    margin: 0 auto;
  }
  .spNavi .btn a {
    text-decoration: none;
    max-width: min(85.3vw, 350px);
    margin: 0 auto;
  }
}
/*# sourceMappingURL=style.css.map */