@charset "UTF-8";
* {
  list-style: none;
  margin: 0px;
  padding: 0px;
  font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: #333;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  background: transparent;
}

main, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

img {
  display: block;
  width: 100%;
}

a {
  text-decoration: none;
}

.wrapper {
  max-width: 640px;
  margin: 0 auto;
}

/* ============================
共通パーツ
===============================*/
.button-reserve {
  position: relative;
}
.button-reserve > div {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 20.7%;
  border-radius: 3%/14.5%;
  border: solid 1px #009544;
  overflow: hidden;
  box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4);
  background-image: url(../images/button_reserve-bg.png);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center center;
}
.button-reserve span {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  line-height: 1;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.1em;
}
.button-reserve.gray > div {
  border: solid 1px #aaa;
  background-image: url(../images/button_reserve-bg-g.png);
}

/* ============================
ヘッダー
===============================*/
header .header-fixed {
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 60px;
  left: 0;
  top: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
  padding: 0 60px 0 0;
  transition: background 0.3s;
}
header .header-fixed.nomenu {
  padding-right: 10px;
}
header .header-fixed.scroll {
  background: rgba(255, 255, 255, 0.85);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
}
header .header-fixed .top-h1 {
  width: 45%;
  max-width: 140px;
  margin: 0 auto;
}
header .header-fixed a {
  display: flex;
  justify-content: center;
  align-items: center;
}
header .header-fixed a.logo {
  width: 45%;
  max-width: 110px;
  margin: 0 auto 0 4%;
}
header .header-fixed a.button {
  position: relative;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding-right: 1em;
  font-size: min(3.5vw, 15px);
  line-height: 1;
  font-weight: bold;
  color: #fff;
  background-color: #59454E;
}
header .header-fixed a.button::after {
  position: absolute;
  content: "";
  right: 5%;
  top: calc(50% - 8px);
  width: 11px;
  height: 15px;
  background-image: url(../images/arrow2.svg);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
header .header-fixed .button-p {
  width: 48%;
  max-width: 170px;
  height: 36px;
}
header .header-fixed .menu-trigger {
  position: absolute;
  width: 26px;
  height: 19px;
  right: 17px;
  top: 20px;
}
header .header-fixed .menu-trigger span {
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #2a323a;
  transition: all 0.3s 0.2s;
}
header .header-fixed .menu-trigger span:nth-of-type(1) {
  top: 0;
}
header .header-fixed .menu-trigger span:nth-of-type(2) {
  top: 9px;
}
header .header-fixed .menu-trigger span:nth-of-type(3) {
  top: 18px;
}
header .header-fixed.active {
  background-color: #fff;
  box-shadow: none;
  transition: unset;
}
header .header-fixed.active .menu-trigger span:nth-of-type(1) {
  top: 9px;
  transform: rotate(-45deg);
}
header .header-fixed.active .menu-trigger span:nth-of-type(2) {
  opacity: 0;
}
header .header-fixed.active .menu-trigger span:nth-of-type(3) {
  top: 9px;
  transform: rotate(45deg);
}
header nav {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  height: 100vh;
  background-color: #fff;
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
}
header nav ul li {
  border-bottom: 1px solid #aaa;
}
header nav ul li:first-child {
  border-top: 1px solid #aaa;
  margin-top: 60px;
}
header nav ul li a {
  position: relative;
  display: block;
  padding: 15px 25px 15px 15px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 1;
  font-weight: bold;
}
header nav ul li a small {
  font-size: 90%;
}
header nav ul li a::after {
  position: absolute;
  content: "";
  right: 15px;
  top: calc(50% - 6px);
  width: 6px;
  height: 12px;
  background-image: url(../images/arrow.svg);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
header nav ul li.small {
  margin-top: 8px;
  border: none;
}
header nav ul li.small a {
  font-size: 12px;
  font-weight: normal;
  text-decoration: underline;
  padding: 4px 15px;
}
header nav ul li.small a::after {
  display: none;
}

.mainVisual {
  position: relative;
  height: 0;
  margin-bottom: 20px;
  background-image: url(../images/hd_img_240801.jpg);
  background-repeat: no-repeat;
  background-color: #e6ecef;
}
.mainVisual .mainTxt {
  position: absolute;
  width: 100%;
  left: 0;
}
.mainVisual .mainTxt span {
  display: block;
  margin-left: 4%;
  font-size: min(3.3vw, 21px);
  line-height: 1;
  font-weight: normal;
  color: #59454E;
  letter-spacing: 0.1em;
  transform-origin: left center;
  transform: scale(0.8);
}
.mainVisual .tag {
  position: absolute;
  left: 4%;
  display: inline-block;
  padding: min(1vw, 6px);
  font-family: "Shippori Mincho", serif;
  font-size: min(4.5vw, 25px);
  line-height: 1;
  color: #59454E;
}
.mainVisual.header-preopen {
  padding-top: calc(142% + 60px);
  background-size: 100% auto;
  background-position: right bottom -10vw;
}
.mainVisual.header-preopen .mainTxt {
  top: calc(18% + 50px);
}
.mainVisual.header-preopen .header-grandopen {
  position: absolute;
  left: 0;
  top: 60px;
}
.mainVisual.header-preopen .header-catch {
  position: absolute;
  left: 0;
  bottom: 10%;
}
.mainVisual.header-preopen .tag:nth-of-type(1) {
  top: 45%;
}
.mainVisual.header-preopen .tag:nth-of-type(2) {
  top: 51%;
}
.mainVisual.header-preopen .tag:nth-of-type(3) {
  top: 57%;
}
.mainVisual.header-preopen .credit {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 4.5%;
  text-align: center;
  font-size: min(2.5vw, 14px);
  line-height: 1;
  letter-spacing: 0.05em;
}
.mainVisual.header-open {
  padding-top: calc(142% + 60px);
  background-size: 100% auto;
  background-position: right bottom;
}
.mainVisual.header-open .mainTxt {
  top: calc(18% + 50px);
}
.mainVisual.header-open .header-grandopen {
  position: absolute;
  left: 0;
  top: 60px;
}
.mainVisual.header-open .header-catch {
  position: absolute;
  left: 0;
  bottom: 10%;
}
.mainVisual.header-open .tag:nth-of-type(1) {
  top: 32%;
}
.mainVisual.header-open .tag:nth-of-type(2) {
  top: 38%;
}
.mainVisual.header-open .tag:nth-of-type(3) {
  top: 44%;
}
.mainVisual.header-open .credit {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 4.5%;
  text-align: center;
  font-size: min(2.5vw, 14px);
  font-weight: normal;
  line-height: 1;
  letter-spacing: 0.05em;
}
.mainVisual.header-comingsoon {
  min-height: calc(100vh - 95px - 150vw);
  padding-top: 150%;
  margin: 0;
  background-size: cover;
  background-position: 70% bottom;
}
.mainVisual.header-comingsoon .csTxt {
  position: absolute;
  left: 0;
  top: 5%;
  width: 100%;
  text-align: center;
  font-size: min(5vw, 30px);
  line-height: 1;
  letter-spacing: 0.5em;
  color: #888;
}
.mainVisual.header-comingsoon .mainTxt {
  top: auto;
  bottom: 17%;
}
.mainVisual.header-comingsoon .mainTxt span {
  margin-top: 2%;
  font-size: min(4vw, 25px);
}
.mainVisual.header-comingsoon .header-bottom-logo {
  position: absolute;
  width: 40%;
  max-width: 200px;
  left: 50%;
  bottom: 5%;
  transform: translateX(-50%);
}

.breadcrumb {
  width: 95%;
  margin: 70px auto 20px;
  font-size: 0;
  line-height: 1.6;
}
.breadcrumb li {
  display: inline-block;
  font-size: 11px;
  color: #333;
}
.breadcrumb li a {
  color: #666;
}
.breadcrumb li a:hover {
  text-decoration: underline;
}
.breadcrumb li + li::before {
  display: inline-block;
  content: "＞";
  margin: 0 0.5em;
  color: #666;
}

.mainVisual + .breadcrumb {
  margin-top: -10px;
}

.bannerArea a {
  display: block;
  margin: 0 auto 20px;
}
.bannerArea a.bannerGrandopen {
  width: 95%;
}
.bannerArea a.bannerCampain {
  width: 95%;
}
.bannerArea a.bannerReserve {
  margin: 40px auto 50px;
  width: 75%;
  text-align: center;
  line-height: 1;
}
.bannerArea a.bannerReserve > span {
  position: relative;
  display: inline-block;
  margin-bottom: 10px;
  padding: 0 0.5em 0 1em;
  font-size: min(4.5vw, 29px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.bannerArea a.bannerReserve > span::before, .bannerArea a.bannerReserve > span::after {
  position: absolute;
  content: "";
  width: 1px;
  height: 100%;
  top: 0;
  background-color: #666;
}
.bannerArea a.bannerReserve > span::before {
  left: 0;
  transform: rotate(-30deg);
}
.bannerArea a.bannerReserve > span:after {
  right: 0;
  transform: rotate(30deg);
}
.bannerArea a.bannerReserve .button-reserve {
  width: 100%;
}
.bannerArea a.bannerReserve .button-reserve span {
  font-size: min(5.5vw, 35px);
}
.bannerArea a.bannerTaiken {
  width: 95%;
  padding: 0 0 6%;
  border: solid 1px #ccc;
}
.bannerArea a.bannerTaiken h2 {
  position: relative;
  margin-bottom: 5%;
  padding-top: 5%;
}
.bannerArea a.bannerTaiken h2::before {
  content: "";
  position: absolute;
  z-index: 1;
  right: 0;
  top: 0;
  width: 27%;
  height: 0;
  padding-top: 27%;
  background-color: #59454E;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%);
          clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.bannerArea a.bannerTaiken h2 .h2-main {
  position: relative;
  z-index: 2;
  display: block;
  padding-right: 10%;
  text-align: center;
  font-size: min(11.8vw, 75px);
  line-height: 1.2;
  font-weight: normal;
  color: #59454E;
  letter-spacing: 0.1em;
}
.bannerArea a.bannerTaiken h2 .h2-main small {
  display: block;
  font-size: min(7.7vw, 49px);
  color: #59454E;
  letter-spacing: 0.2em;
}
.bannerArea a.bannerTaiken h2 .h2-sub {
  position: absolute;
  z-index: 2;
  right: -3.5%;
  top: 0;
  padding-top: 0.3em;
  text-align: center;
  font-size: min(3.4vw, 22px);
  line-height: 1.3;
  font-weight: normal;
  color: #fff;
  letter-spacing: 0.2em;
  transform: rotate(45deg);
  transform-origin: left top;
}
.bannerArea a.bannerTaiken .tour-photo {
  width: 85%;
  margin: 0 auto 5%;
}
.bannerArea a.bannerTaiken .tour-price {
  display: flex;
  justify-content: center;
  align-items: center;
}
.bannerArea a.bannerTaiken .tour-price span {
  flex-shrink: 0;
  display: inline-block;
  padding: 0.7em;
  font-size: min(3.8vw, 24px);
  line-height: 1;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.05em;
  background-color: #9B8F95;
}
.bannerArea a.bannerTaiken .tour-price img {
  width: 53%;
  margin-left: 5%;
}
.bannerArea a.bannerTaiken .tour-text {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: strech;
  width: 85%;
  margin: 5% auto;
}
.bannerArea a.bannerTaiken .tour-text span {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(3.4vw, 20px);
  line-height: 1.3;
  box-sizing: border-box;
  padding: 0.3em;
  border: solid 1px #59454E;
}
.bannerArea a.bannerTaiken .tour-text span:nth-of-type(1) {
  width: 60%;
}
.bannerArea a.bannerTaiken .tour-text span:nth-of-type(2) {
  width: 40%;
  color: #fff;
  background-color: #59454E;
}
.bannerArea a.bannerTaiken .tour-text p {
  width: 100%;
  margin-top: 0.5em;
  font-size: min(3.4vw, 20px);
  line-height: 1.3;
}
.bannerArea a.bannerTaiken .tour-time {
  width: 88%;
  margin: 0 auto;
  text-align: center;
  border-top: solid 1px #aaa;
}
.bannerArea a.bannerTaiken .tour-time h3 {
  padding: 5% 0;
  font-size: min(4.8vw, 31px);
  line-height: 1;
  font-weight: bold;
  color: #666;
  letter-spacing: 0.1em;
}
.bannerArea a.bannerTaiken .tour-time p {
  font-size: min(3.5vw, 22px);
  line-height: 1;
  font-weight: normal;
}
.bannerArea a.bannerTaiken .tour-time p.date {
  padding: 5% 0;
  color: #59454E;
}
.bannerArea a.bannerTaiken .tour-time p.date span {
  display: inline-block;
  margin: 0 0.3em;
  font-size: min(6vw, 38px);
  color: #59454E;
}
.bannerArea a.bannerTaiken .tour-time p.date span b {
  font-family: "Oswald", sans-serif;
  font-size: min(8vw, 50px);
  font-weight: 400;
  color: #59454E;
}
.bannerArea a.bannerTaiken .tour-time p.date span small {
  display: inline-block;
  margin-left: 0.2em;
  font-size: min(3.5vw, 22px);
  color: #59454E;
  font-weight: bold;
}
.bannerArea a.bannerTaiken .tour-button {
  padding-top: 5%;
  text-align: center;
}
.bannerArea a.bannerTaiken .tour-button .button-reserve {
  display: inline-block;
  vertical-align: middle;
  width: 37%;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
}
.bannerArea a.bannerTaiken .tour-button .button-reserve span {
  font-size: min(3vw, 19px);
}
.bannerArea a.bannerTaiken .tour-button > span {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.2em;
  font-size: min(3.3vw, 21px);
  line-height: 1;
}

section + .bannerArea {
  margin-top: 40px;
}

/* ============================
flow
===============================*/
.sec-flow {
  margin-bottom: 20px;
  padding-top: 40px;
}
.sec-flow h2 {
  margin-bottom: 20px;
  text-align: center;
  line-height: 1;
}
.sec-flow h2 .h2-sub {
  position: relative;
  display: inline-block;
  margin-bottom: 10px;
  padding: 0 0.5em 0 1em;
  font-size: min(3.5vw, 22px);
  line-height: 1;
  font-weight: normal;
  color: #59454E;
}
.sec-flow h2 .h2-sub::before, .sec-flow h2 .h2-sub::after {
  position: absolute;
  content: "";
  width: 1px;
  height: 100%;
  top: 0;
  background-color: #333;
}
.sec-flow h2 .h2-sub::before {
  left: 0;
  transform: rotate(-30deg);
}
.sec-flow h2 .h2-sub:after {
  right: 0;
  transform: rotate(30deg);
}
.sec-flow h2 .h2-main {
  display: block;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-flow ol {
  width: 90%;
  margin: 0 auto;
}
.sec-flow ol li {
  border: solid 1px #aaa;
}
.sec-flow ol li h3 {
  padding: 3%;
  font-size: min(3.5vw, 20px);
  line-height: 1;
  font-weight: normal;
  color: #59454E;
}
.sec-flow ol li h3 span {
  display: inline-block;
  margin-right: 0.7em;
  padding-right: 0.7em;
  color: #59454E;
  border-right: solid 1px #59454E;
}
.sec-flow ol li p {
  padding: 12px 3%;
  font-size: min(3.3vw, 15px);
  line-height: 1.7;
}
.sec-flow ol li p a {
  text-decoration: underline;
}
.sec-flow ol .arrow {
  display: block;
  width: 22px;
  height: 17px;
  margin: 15px auto;
  background-image: url(../images/ico_arrow.svg);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

/* ============================
problem
===============================*/
.sec-problem {
  margin-top: 40px;
  padding: 40px 0 0;
}
.sec-problem.sec-problem2 {
  padding-bottom: 42%;
  background-image: url(../images/problem_img-2.jpg);
  background-size: 100% auto;
  background-position: center bottom;
  background-repeat: no-repeat;
}
.sec-problem.sec-problem2 > img {
  width: 31%;
  margin-top: 39%;
  margin-left: 13%;
}
.sec-problem.sec-problem2 + .sec-about {
  margin-top: 0;
}
.sec-problem.sec-problem2 + .sec-about .first {
  padding-top: 5%;
}
.sec-problem.sec-problem3 {
  padding-top: 15%;
  padding-bottom: 50%;
  background-image: url(../images/problem_img-3.jpg);
  background-size: 100% auto;
  background-position: center bottom;
  background-repeat: no-repeat;
  background-color: #eaeef2;
}
.sec-problem.sec-problem3 > img {
  width: 31%;
  margin-top: 37%;
  margin-left: 13%;
}
.sec-problem.sec-problem3 + .sec-about {
  margin-top: 0;
}
.sec-problem.sec-problem3 + .sec-about .first {
  padding-top: 5%;
}
.sec-problem.sec-problem3 h2 {
  padding: 0 0 0 18%;
  background: none;
}
.sec-problem.sec-problem3 h2::before {
  right: auto;
  left: 7%;
}
.sec-problem h2 {
  position: relative;
  padding: 7% 0 9% 55%;
  font-size: min(5.5vw, 30px);
  line-height: 1.7;
  font-weight: normal;
  color: #444;
  letter-spacing: 0.1em;
  background-image: url(../images/problem_img.jpg);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 68% auto;
}
.sec-problem h2::before {
  position: absolute;
  content: "";
  width: 8%;
  height: 1px;
  right: 47%;
  top: 25%;
  background-color: #888;
}
.sec-problem ul {
  width: 90%;
  margin: 0 auto;
  padding: 5% 0;
}
.sec-problem ul li {
  position: relative;
  padding: 2.5% 0 2.5% 7%;
  font-size: min(3.8vw, 22px);
  line-height: 1.3;
  letter-spacing: 0.05em;
}
.sec-problem ul li::before {
  position: absolute;
  content: "";
  width: 4vw;
  max-width: 23px;
  height: 4vw;
  max-height: 23px;
  left: 0;
  top: 50%;
  transform: translateY(-60%);
  background-image: url(../images/point-check.svg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
.sec-problem > div {
  position: relative;
  height: 0;
  padding-top: 145%;
  background-image: url(../images/hd_img2.jpg);
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
}
.sec-problem > div p {
  position: absolute;
  z-index: 2;
  width: 100%;
  left: 0;
  top: 12%;
  text-align: center;
  font-size: min(3.7vw, 23px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.sec-problem > div > img {
  position: absolute;
  z-index: 2;
}
.sec-problem > div > img.logo {
  width: 40%;
  left: 12%;
  top: 28%;
}
.sec-problem > div > img.catch {
  width: 80%;
  left: 10%;
  bottom: 5%;
}

/* ============================
about
===============================*/
.sec-about {
  margin-top: 40px;
}
.sec-about .first {
  margin-bottom: 15%;
  padding-bottom: 40px;
  background-color: #f7f7f7;
}
.sec-about .first h2 {
  margin-bottom: 1.5em;
  padding-top: 1.5em;
  text-align: center;
  font-size: min(7vw, 40px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.05em;
}
.sec-about .first p {
  width: 80%;
  margin: 0 auto 30px;
  line-height: 2.2;
  font-size: 14px;
}
.sec-about .blockBox {
  margin: 0 0 50px 0;
}
.sec-about .blockBox h2, .sec-about .blockBox h3 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
}
.sec-about .blockBox h2 .number, .sec-about .blockBox h3 .number {
  position: relative;
  display: block;
  width: 17%;
  height: 0;
  margin: 0 2% 0 5%;
  padding-top: 17%;
  border-radius: 50%;
  border: solid 1px #666;
}
.sec-about .blockBox h2 .number::after, .sec-about .blockBox h3 .number::after {
  position: absolute;
  content: "";
  width: 8%;
  height: calc(100% + 4px);
  left: 46%;
  top: -2px;
  background: linear-gradient(to bottom, #fff 4px, transparent 4px);
  transform: rotate(20deg);
}
.sec-about .blockBox h2 .number span, .sec-about .blockBox h3 .number span {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 90%;
  padding-bottom: 10%;
  left: 0;
  top: 0;
  text-align: center;
  font-family: "Shippori Mincho", serif;
  font-size: min(11vw, 70px);
  line-height: 1;
  font-weight: normal;
}
.sec-about .blockBox h2 .number span::before, .sec-about .blockBox h2 .number span::after, .sec-about .blockBox h3 .number span::before, .sec-about .blockBox h3 .number span::after {
  position: absolute;
  content: "";
  width: 8%;
  height: calc(100% + 4px);
  left: 46%;
  top: -2px;
  background: linear-gradient(to bottom, #fff 4px, transparent 4px);
}
.sec-about .blockBox h2 .number > span::before, .sec-about .blockBox h3 .number > span::before {
  transform: rotate(92deg);
}
.sec-about .blockBox h2 .number > span::after, .sec-about .blockBox h3 .number > span::after {
  transform: rotate(164deg);
}
.sec-about .blockBox h2 .number > span > span::before, .sec-about .blockBox h3 .number > span > span::before {
  transform: rotate(236deg);
}
.sec-about .blockBox h2 .number > span > span::after, .sec-about .blockBox h3 .number > span > span::after {
  transform: rotate(308deg);
}
.sec-about .blockBox h2 .text, .sec-about .blockBox h3 .text {
  display: flex;
  align-items: center;
  width: 68%;
  min-height: min(17vw, 109px);
  padding-left: 8%;
  font-size: min(4.5vw, 29px);
  line-height: 1.4;
  font-weight: normal;
  color: #fff;
  background-color: #59454E;
  border-radius: 12.5% 0 0 12.5%/50% 0 0 50%;
}
.sec-about .blockBox p {
  padding: 0 0 0 5%;
  width: 70%;
  line-height: 2.2;
  font-size: 14px;
}
.sec-about .blockBox > img {
  width: 70%;
  margin: 20px 0 0 auto;
}

/* ============================
efficacy
===============================*/
.sec-efficacy > h2 {
  margin-bottom: 30px;
  text-align: center;
  line-height: 1;
  font-size: 5.5vw;
  letter-spacing: 0.1em;
}
.sec-efficacy .efficacyBox {
  margin: 0 auto 40px;
  padding: 30px 0 20px 0;
  width: 90%;
  background-image: url(../images/about_bg2.svg);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: left top;
}
.sec-efficacy .efficacyBox h2, .sec-efficacy .efficacyBox h3 {
  margin: 0 0 30px 5%;
  font-size: min(5.8vw, 29px);
  line-height: 1.3;
  font-weight: normal;
  letter-spacing: 0.05em;
}
.sec-efficacy .efficacyBox p {
  margin: 0 auto;
  width: 90%;
  line-height: 2;
  font-size: clamp(12px, 3.3vw, 14px);
  font-size: min(3.3vw, 14px);
}

/* ============================
attraction
===============================*/
.sec-attraction {
  margin-top: 30px;
  padding: 30px 0 40px;
}
.sec-attraction h2 {
  width: 90%;
  margin: 0 auto 1em;
  font-size: min(7vw, 36px);
  line-height: 1.8;
  font-weight: normal;
  letter-spacing: 0.05em;
  color: #59454E;
}
.sec-attraction .blockBox {
  margin: 0 auto 50px auto;
}
.sec-attraction .blockBox:last-child {
  margin-bottom: 0;
}
.sec-attraction .blockBox h3 {
  margin-bottom: 25px;
  font-size: 0;
  line-height: 1;
}
.sec-attraction .blockBox h3 span {
  display: inline-block;
  margin-top: 15px;
  padding: 0.5em min(5vw, 20px);
  font-size: min(4.5vw, 21px);
  line-height: 1;
  font-weight: normal;
  color: #fff;
  background-color: #59454E;
}
.sec-attraction .blockBox h3 span:first-child {
  margin-top: 0;
}
.sec-attraction .blockBox h3 span sup {
  display: inline-block;
  vertical-align: top;
  font-size: 10px;
  color: #fff;
}
.sec-attraction .blockBox p {
  margin: 0 auto 25px auto;
  width: 90%;
  line-height: 2.2;
  font-size: 14px;
}
.sec-attraction .blockBox p.note {
  margin-top: 15px;
  font-size: 11px;
  line-height: 1.5;
}

/* ============================
price
===============================*/
.sec-price {
  margin-bottom: 20px;
  padding-top: 40px;
}
.sec-price h2 {
  margin-bottom: 20px;
  text-align: center;
  line-height: 1;
}
.sec-price h2 .h2-sub {
  position: relative;
  display: inline-block;
  padding: 0 0.5em 0 1em;
  font-size: min(4vw, 25px);
  line-height: 1;
  font-weight: normal;
  color: #000;
}
.sec-price h2 .h2-sub::before, .sec-price h2 .h2-sub::after {
  position: absolute;
  content: "";
  width: 1px;
  height: 100%;
  top: 0;
  background-color: #333;
}
.sec-price h2 .h2-sub::before {
  left: 0;
  transform: rotate(-30deg);
}
.sec-price h2 .h2-sub:after {
  right: 0;
  transform: rotate(30deg);
}
.sec-price h2 .h2-main {
  display: block;
  margin-bottom: 15px;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-price table {
  table-layout: fixed;
  border-collapse: separate;
  width: 95%;
  margin: 0 auto 10px;
}
.sec-price table th {
  padding: 5px 0;
  text-align: center;
  font-size: min(3.3vw, 21px);
  line-height: 1;
  font-weight: bold;
  color: #fff;
  background-color: #59454E;
}
.sec-price table th:nth-of-type(1) {
  width: 18%;
}
.sec-price table th:nth-of-type(2) {
  width: 55%;
}
.sec-price table th:nth-of-type(3) {
  width: 25%;
}
.sec-price table td {
  font-size: min(3vw, 19px);
  line-height: 1.4;
  font-weight: bold;
}
.sec-price table td small {
  display: block;
  transform: scale(0.8);
}
.sec-price table td:nth-of-type(1) {
  position: relative;
  padding-left: 0.5em;
  background-color: #ddd;
}
.sec-price table td:nth-of-type(1)::after {
  position: absolute;
  content: "";
  width: 12%;
  height: 100%;
  left: 100%;
  top: 0;
  background-image: url(../images/price-arrow.svg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center center;
}
.sec-price table td:nth-of-type(2) {
  border: solid 1px #aaa;
}
.sec-price table td:nth-of-type(3) {
  text-align: center;
  font-weight: normal;
  border: solid 1px #aaa;
}
.sec-price table.price2 {
  display: block;
  width: 96%;
}
.sec-price table.price2 tr {
  display: flex;
  justify-content: center;
  align-items: stretch;
}
.sec-price table.price2 tr.recommended {
  position: relative;
}
.sec-price table.price2 tr.recommended::after {
  position: absolute;
  content: "";
  width: calc(100% + 7px);
  height: calc(100% + 10px);
  left: -2px;
  top: -5px;
  border: solid 3px #f6638a;
  box-sizing: border-box;
}
.sec-price table.price2 tr.recommended th {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-right: 2px;
  box-sizing: border-box;
  background-color: #F6638A;
  writing-mode: vertical-rl;
}
.sec-price table.price2 tr.recommended th::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 3px;
  left: 0;
  top: -3px;
  background-color: #F6638A;
}
.sec-price table.price2 tr.recommended th::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 3px;
  left: 0;
  bottom: -3px;
  background-color: #F6638A;
}
.sec-price table.price2 tr + tr {
  margin-top: 2%;
}
.sec-price table.price2 th {
  display: block;
  font-size: min(3vw, 19px);
}
.sec-price table.price2 th:nth-of-type(1) {
  width: 4%;
  margin-right: 1%;
  background-color: #fff;
}
.sec-price table.price2 th:nth-of-type(2) {
  width: 17%;
}
.sec-price table.price2 th:nth-of-type(3) {
  width: 48%;
}
.sec-price table.price2 th:nth-of-type(4) {
  width: 30%;
}
.sec-price table.price2 td {
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-size: min(3vw, 19px);
}
.sec-price table.price2 td small {
  margin-top: 0.3em;
  transform: none;
  font-size: min(2.6vw, 16px);
}
.sec-price table.price2 td:nth-of-type(1) {
  align-items: flex-start;
  width: 17%;
  border: none;
}
.sec-price table.price2 td:nth-of-type(2) {
  align-items: center;
  width: 46%;
  margin-left: 1%;
  margin-right: 1%;
  box-sizing: border-box;
  border: solid 1px #aaa;
}
.sec-price table.price2 td:nth-of-type(3) {
  align-items: center;
  width: 30%;
  padding: 0.5em 0;
  box-sizing: border-box;
  border: solid 1px #aaa;
}
.sec-price table + table {
  margin-top: 15px;
}
.sec-price p {
  width: 94%;
  margin: 3px auto 0;
  box-sizing: border-box;
  padding-left: 1em;
  font-size: 10px;
  line-height: 1.4;
  text-indent: -1em;
}

/* ============================
faqArea
===============================*/
.sec-faq {
  margin: 0 0 20px 0;
  padding-top: 40px;
}
.sec-faq h2 {
  margin-bottom: 20px;
  text-align: center;
  line-height: 1;
}
.sec-faq h2 .h2-main {
  display: block;
  margin-bottom: 15px;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-faq .faq_item {
  margin: 0 auto 5px auto;
  width: 95%;
}
.sec-faq .faq_item dt {
  position: relative;
  padding: 15px 30px 15px 45px;
  background-color: #59454E;
  transition: 0.5s;
}
.sec-faq .faq_item dt div {
  position: absolute;
  top: 20%;
  left: 10px;
  width: 27px;
  font-family: "Shippori Mincho", serif;
  font-size: 28px;
  line-height: 1;
  color: #fff;
}
.sec-faq .faq_item dt h3 {
  font-size: 13px;
  font-weight: normal;
  color: #ffffff;
}
.sec-faq .faq_item dt::before, .sec-faq .faq_item dt::after {
  position: absolute;
  content: "";
  right: 10px;
  top: 50%;
  width: 13px;
  height: 1px;
  background-color: #ffffff;
  transition: transform 0.3s;
}
.sec-faq .faq_item dt::after {
  transform: rotate(90deg);
}
.sec-faq .faq_item dt.active::after {
  transform: rotate(0);
}
.sec-faq .faq_item dd {
  display: none;
  padding: 15px 20px;
  background-color: #EFEFEF;
}
.sec-faq .faq_item dd p {
  line-height: 1.6;
  font-size: 12px;
}
.sec-faq .faq_item dd p a {
  font-weight: bold;
  color: #000;
  text-decoration: underline;
}
.sec-faq .faq_item dd ul {
  margin: 10px 0 0 0;
  padding-left: 0.5em;
}
.sec-faq .faq_item dd li {
  margin: 3px 0 0 0;
  line-height: 1.6;
  font-size: 12px;
}
.sec-faq .faq_item dd li a {
  font-weight: bold;
  color: #000;
  text-decoration: underline;
}

/* ============================
access
===============================*/
.sec-access {
  width: 90%;
  margin: 0 auto 40px;
  padding-top: 20px;
}
.sec-access h2 {
  margin-bottom: 30px;
  text-align: center;
  line-height: 1;
}
.sec-access h2 .h2-main {
  display: block;
  margin-bottom: 15px;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-access .map {
  margin-bottom: 30px;
  width: 100%;
  height: 60vw;
  max-height: 300px;
}
.sec-access .map iframe {
  width: 100%;
  height: 100%;
}
.sec-access .text {
  margin: 15px 0;
}
.sec-access .text p {
  font-size: clamp(12px, 3.3vw, 14px);
  font-size: min(3.3vw, 14px);
  line-height: 1.7;
}
.sec-access dl div {
  position: relative;
  padding: 0.7em 0;
  font-size: 12px;
  line-height: 1.5;
  border-top: solid 1px #ccc;
}
.sec-access dl div:last-child {
  border-bottom: solid 1px #ccc;
}
.sec-access dl dt {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 6em;
  height: 100%;
  line-height: 1.4;
  color: #000;
  background-color: #EAEAEB;
}
.sec-access dl dd {
  padding-left: 7em;
}
.sec-access dl dd + dd {
  margin-top: 0.3em;
}

.sec-column {
  width: 80%;
  margin: 0 auto;
}
.sec-column a {
  display: block;
  margin-bottom: 30px;
}
.sec-column h3 {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.4;
  font-weight: bold;
}

/* ============================
point
===============================*/
.sec-point {
  padding: 8% 0 110%;
  text-align: center;
  background-color: #eaeef2;
  background-image: url(../images/point-img.jpg);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center bottom;
}
.sec-point .text1 {
  margin-bottom: 6%;
  font-size: min(3.4vw, 21px);
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.sec-point .text2 {
  font-size: min(4.6vw, 29px);
  line-height: 2;
  letter-spacing: 0.05em;
}
.sec-point ul {
  display: inline-block;
  margin: 6% 0 8%;
}
.sec-point ul li {
  position: relative;
  padding-left: min(5.5vw, 35px);
  text-align: left;
  font-size: min(4.3vw, 27px);
  line-height: 2;
  text-decoration: underline;
}
.sec-point ul li::before {
  position: absolute;
  content: "";
  width: 4vw;
  max-width: 25px;
  height: 4vw;
  max-height: 25px;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  background-image: url(../images/point-check.svg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
.sec-point img {
  width: 45%;
  margin: 10% auto 0;
}

footer {
  padding: 15px 0;
  text-align: center;
  background: #7F8489;
}
footer p {
  margin-bottom: 5px;
  font-size: 10px;
  line-height: 1.2;
  color: #fff;
}
footer li {
  display: inline-block;
  margin: 0 5px;
}
footer li a {
  font-size: 13px;
  line-height: 1;
  color: #fff;
  text-decoration: underline;
}

.root_company {
  min-height: calc(100vh - 220px);
  padding: 40px 0 40px;
}
.root_company img {
  width: 180px;
  margin: 0 auto 40px;
}
.root_company h1 {
  margin-bottom: 30px;
  text-align: center;
  font-size: 13px;
  line-height: 1;
  font-weight: bold;
}
.root_company table {
  border-collapse: collapse;
  width: 90%;
  margin: 0 auto;
  border: solid 1px #aaa;
}
.root_company table th, .root_company table td {
  text-align: left;
  font-size: 12px;
  line-height: 1.5;
  font-weight: normal;
  border: solid 1px #aaa;
}
.root_company table th {
  padding: 5px 10px;
  text-align: center;
  background: #efefef;
}
.root_company table td {
  padding: 10px;
  line-height: 1.5;
}
.root_company table ul li + li {
  margin-top: 0.7em;
}
.root_company table ul a {
  text-decoration: underline;
}

.root_privacy {
  padding: 40px 0 40px;
  /* sec3 */
}
.root_privacy h3 {
  margin-bottom: 1em;
  text-align: center;
  font-weight: normal;
  font-size: 15px;
}
.root_privacy h4, .root_privacy h5 {
  margin-bottom: 0.5em;
  font-weight: normal;
  font-size: 12px;
}
.root_privacy p {
  line-height: 1.6;
  font-size: 12px;
}
.root_privacy li {
  line-height: 1.6;
  font-size: 12px;
  position: relative;
  padding: 0 0 0 1em;
}
.root_privacy li:before {
  content: "・";
  position: absolute;
  left: -0.5em;
}
.root_privacy > div, .root_privacy section {
  margin: 0 auto 26px auto;
  width: 90%;
}
.root_privacy .sec3 > p, .root_privacy .sec3 ul {
  margin-bottom: 12px;
}
.root_privacy .sec5 > p, .root_privacy .sec5 ul {
  margin-bottom: 12px;
}
.root_privacy .sec9 p {
  margin-bottom: 12px;
}

.root_transactions {
  padding: 40px 0 40px;
}
.root_transactions h3 {
  margin-bottom: 1.5em;
  text-align: center;
  font-weight: normal;
  font-size: 15px;
}
.root_transactions table {
  margin: 0 auto;
  border-collapse: collapse;
  border: 1px solid #9ba0a3;
  width: 90%;
}
.root_transactions table tr {
  border-bottom: 1px solid #9ba0a3;
}
.root_transactions table th, .root_transactions table td {
  display: block;
  padding: 0.5em 0 0.5em 1em;
  box-sizing: border-box;
  width: 100%;
  text-align: left;
  font-weight: normal;
  font-size: 12px;
  color: #2a323a;
}
.root_transactions table th {
  border-bottom: 1px solid #9ba0a3;
  background-color: #efefef;
}
.root_transactions li {
  position: relative;
  padding: 0 0 0 1em;
}
.root_transactions li:before {
  content: "・";
  display: block;
  position: absolute;
  left: -0.2em;
}

.root_terms {
  padding: 40px 0 40px;
}
.root_terms h3 {
  margin-bottom: 1.5em;
  text-align: center;
  font-weight: normal;
  font-size: 15px;
}
.root_terms p, .root_terms li {
  line-height: 1.6;
  font-size: 12px;
}
.root_terms h4 {
  margin-bottom: 0.5em;
  font-weight: bold;
  font-size: 12px;
}
.root_terms h5 {
  margin-bottom: 0.5em;
  font-weight: normal;
  font-size: 12px;
}
.root_terms section {
  margin: 0 auto 26px auto;
  width: 90%;
}
.root_terms section > div {
  margin: 0 0 20px 0;
}
.root_terms section > div > ul, .root_terms section > div p {
  margin-bottom: 15px;
}
.root_terms li {
  position: relative;
  padding: 0 0 0 3em;
  margin-bottom: 0.3em;
}
.root_terms li span {
  position: absolute;
  top: 0px;
  left: -0.5em;
}

.admissionArea {
  margin: 0 0 20px 0;
  padding: 40px 0 40px;
}
.admissionArea h2 {
  margin-bottom: 20px;
  text-align: center;
  line-height: 1;
}
.admissionArea h2 .h2-main {
  display: block;
  margin-bottom: 15px;
  text-align: center;
  font-size: min(4.5vw, 29px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.admissionArea p {
  margin: 0 0 20px 0;
}
.admissionArea p img {
  width: 100%;
}
.admissionArea p.admissionpText {
  margin: 0 auto 20px;
  width: 95%;
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
}
.admissionArea p.admissionpText span {
  color: #F6638A;
}
.admissionArea p.caution {
  margin: 0 auto 20px auto;
  padding: 10px 0px 10px 10px;
  box-sizing: border-box;
  border: 1px solid #F6638A;
  width: 90%;
  font-size: 12px;
  color: #F6638A;
}
.admissionArea table {
  margin: 0 auto 20px auto;
  border-collapse: collapse;
  width: 90%;
}
.admissionArea tr {
  border-top: 1px solid #A5A5A5;
}
.admissionArea tr:last-of-type {
  border-bottom: 1px solid #A5A5A5;
}
.admissionArea th {
  padding: 8px 5px 8px 15px;
  width: 30%;
  background-color: #EAEAEB;
  text-align: left;
  font-size: 11px;
  line-height: 1.4;
  /* necessary */
}
.admissionArea th span {
  font-weight: normal;
  font-size: 11px;
}
.admissionArea th span small {
  display: block;
  margin-top: 5px;
  font-size: 10px;
}
.admissionArea th.necessary span {
  display: block;
  position: relative;
}
.admissionArea th.necessary span:after {
  content: "";
  display: block;
  position: absolute;
  top: 5px;
  right: 5px;
  width: 10px;
  height: 10px;
  background-image: url(../images/ico_necessary.svg);
  background-repeat: no-repeat;
  background-size: cover;
}
.admissionArea td {
  padding: 8px 0 8px 10px;
  /* textBox */
}
.admissionArea td.textBox input {
  padding: 5px 5px;
  border: 1px solid #A5A5A5;
  box-sizing: border-box;
  width: 100%;
  /*background-color: #F7F8F8;*/
  background-color: #ffeff9;
  font-size: 16px;
}
.admissionArea td.textBox ::placeholder {
  color: #9FA0A0;
}
.admissionArea td select {
  padding: 5px 5px;
  border: 1px solid #9FA0A0;
  box-sizing: border-box;
  width: 136px;
  /*background-color: #F7F8F8;*/
  background-color: #ffeff9;
  font-size: 16px;
  /*color: #9FA0A0;*/
}
.admissionArea td.birth {
  padding-top: 1px;
}
.admissionArea td.birth select {
  padding: 5px 5px;
  border: 1px solid #9FA0A0;
  box-sizing: border-box;
  width: 45%;
  max-width: 90px;
  background-color: #ffeff9;
  font-size: 16px;
  margin-top: 5px;
}
.admissionArea td.birth select:nth-of-type(1) {
  width: 92%;
  max-width: 190px;
}
.admissionArea td label {
  margin: 0 10px 0 0;
  line-height: 1.5;
  font-size: 16px;
  color: #000000;
}
.admissionArea td label input {
  margin: 0 5px 0 0;
  border: 1px solid #231815;
  vertical-align: middle;
}
.admissionArea td.schedule select:first-of-type {
  width: 60%;
}
.admissionArea td.schedule select:nth-of-type(2) {
  width: 35%;
}
.admissionArea td small {
  display: block;
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.5;
}
.admissionArea td textarea {
  width: 100%;
  font-size: 14px;
  line-height: 1.6;
}
.admissionArea .privacy {
  margin: 30px 0;
  text-align: center;
}
.admissionArea .privacy a {
  text-decoration: underline;
  font-size: 12px;
}
.admissionArea .agree {
  margin-bottom: 30px;
  text-align: center;
  font-size: 12px;
}
.admissionArea button {
  display: block;
  width: 65%;
  margin: 0 auto;
  border: none;
  background-color: transparent;
}
.admissionArea button .button-reserve span {
  font-size: min(5vw, 32px);
}
.admissionArea.confirm {
  padding: 60px 0 40px 0;
  /* button */
}
.admissionArea.confirm .btnFlex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 30px auto 0;
  width: 95%;
}
.admissionArea.confirm button {
  width: 45%;
}
.admissionArea.confirm button .button-reserve span {
  font-size: min(4vw, 26px);
}
.admissionArea.confirm .sending {
  display: none;
  padding-top: 3%;
}
.admissionArea.confirm .sending p {
  text-align: center;
  font-size: min(4.5vw, 22px);
  font-weight: bold;
}
.admissionArea.complete {
  padding: 100px 0 40px 0;
}
.admissionArea.complete .txt1 {
  width: 90%;
  margin: 40px auto 40px;
  text-align: center;
  font-size: 15px;
  line-height: 1.8;
}
.admissionArea.complete .txt2 {
  width: 90%;
  margin: 40px auto 20px;
  font-size: 15px;
  line-height: 1.8;
}
.admissionArea.complete ul {
  width: 90%;
  margin: 0 auto 40px;
  box-sizing: border-box;
  padding: 20px;
  background-color: #F9F8FB;
}
.admissionArea.complete ul h3 {
  margin-bottom: 10px;
  font-size: 15px;
  font-weight: bold;
}
.admissionArea.complete ul li {
  margin-top: 10px;
  padding-left: 1em;
  font-size: 14px;
  line-height: 1.5;
  text-indent: -1em;
}
.admissionArea.complete .button-reserve {
  display: block;
  width: 65%;
  max-width: 300px;
  margin: 40px auto 60px;
}
.admissionArea.complete .logoLink {
  display: block;
  margin: 0 auto;
  width: 40%;
  max-width: 200px;
}

.modaal-container {
  background-color: #6A6F75 !important;
}
.modaal-container h2 {
  font-size: 15px;
  font-weight: bold;
  color: #fff;
  margin-bottom: 20px;
}
.modaal-container .inner > p {
  margin-bottom: 15px;
}
.modaal-container p, .modaal-container span {
  display: block;
  line-height: 1.6;
  font-weight: bold;
  font-size: 12px;
  color: #ffffff;
}
.modaal-container li {
  display: flex;
  flex-wrap: wrap;
  margin-top: 5px;
}
.modaal-container li span {
  width: 1.8em;
}
.modaal-container li p {
  width: 90%;
}
.modaal-container ul {
  margin: 0 0 40px 0;
}
.modaal-container .credit {
  text-align: right;
}

.modaal-wrapper .modaal-close {
  box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.6);
  background-color: #6A6F75 !important;
}
.modaal-wrapper h2 {
  max-width: 300px;
}

body.soldout header .header-fixed .button-p {
  display: none;
}
body.soldout .bannerArea a.bannerCampain {
  position: relative;
  pointer-events: none;
}
body.soldout .bannerArea a.bannerCampain::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: rgba(0, 0, 0, 0.5);
}
body.soldout .bannerArea a.bannerCampain::after {
  position: absolute;
  content: "SOLD OUT";
  display: block;
  width: 100%;
  left: 0;
  top: 50%;
  text-align: center;
  font-size: min(10vw, 64px);
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.05em;
  transform: translateY(-50%) rotate(-10deg);
}
body.soldout .bannerArea a.bannerReserve {
  position: relative;
  pointer-events: none;
}
body.soldout .bannerArea a.bannerReserve > span {
  display: none;
}
body.soldout .bannerArea a.bannerReserve::before {
  display: block;
  content: "大変恐れ入りますが\a現在、入会は受け付けておりません";
  white-space: pre;
  margin-bottom: 0.5em;
  font-size: min(4vw, 20px);
  line-height: 1.5;
}
body.soldout .bannerArea a.bannerReserve .button-reserve {
  position: relative;
}
body.soldout .bannerArea a.bannerReserve .button-reserve > div {
  border: none;
  box-shadow: none;
}
body.soldout .bannerArea a.bannerReserve .button-reserve::after {
  position: absolute;
  z-index: 2;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: rgba(0, 0, 0, 0.5);
  border-radius: 3%/14.5%;
}
body.soldout .bannerArea a.bannerTaiken {
  position: relative;
  pointer-events: none;
}
body.soldout .bannerArea a.bannerTaiken::before {
  position: absolute;
  z-index: 3;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: rgba(0, 0, 0, 0.5);
}
body.soldout .bannerArea a.bannerTaiken::after {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  z-index: 3;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  content: "大変恐れ入りますが\a現在、入会は受け付けておりません";
  white-space: pre;
  text-align: center;
  font-size: min(5vw, 30px);
  font-weight: bold;
  color: #fff;
  line-height: 1.6;
}

.sec-schedule {
  padding-top: 80px;
}
.sec-schedule h2 {
  text-align: center;
  font-size: min(5.5vw, 26px);
  line-height: 1.6;
  margin-bottom: 1em;
}
.sec-schedule table {
  width: 90%;
  border: solid 1px #aaa;
  margin: 0 auto 40px;
  border-collapse: collapse;
  table-layout: fixed;
}
.sec-schedule th, .sec-schedule td {
  border: solid 1px #aaa;
  text-align: center;
  line-height: 1;
}
.sec-schedule th {
  padding: 0.5em;
  color: #000;
  font-size: min(3.3vw, 16px);
  font-weight: bold;
}
.sec-schedule tr:first-child th {
  padding: 2px 2px 0;
  background-color: #59454E;
  color: #fff;
}
.sec-schedule tr:first-child th span {
  display: block;
  padding: 0.5em 0.2em;
  color: #fff;
  font-size: min(3.7vw, 18px);
}
.sec-schedule tr:nth-of-type(2n) {
  background-color: #f1eeef;
}
.sec-schedule td {
  padding: 0.5em;
  font-size: min(3.7vw, 18px);
}
.sec-schedule .linkBtn {
  margin-bottom: 50px;
  text-align: center;
}
.sec-schedule .linkBtn a {
  display: inline-block;
  padding: 0.5em 1em;
  font-size: min(4vw, 20px);
  line-height: 1;
  font-weight: bold;
  background-color: #59454E;
  color: #fff;
}

.sec-news {
  margin-top: 10%;
}
.sec-news h2 {
  margin-bottom: 1em;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-news dl {
  width: 90%;
  margin: 0 auto;
  border-top: solid 1px #aaa;
}
.sec-news dl:first-child {
  border: none;
}
.sec-news dl div {
  padding: 12px 5px;
  border-bottom: solid 1px #aaa;
}
.sec-news dl div .news-date {
  margin-bottom: 8px;
  font-size: min(3vw, 12px);
  line-height: 1;
  color: #666;
}
.sec-news dl div .news-title a {
  display: block;
  font-size: min(3.3vw, 14px);
  line-height: 1.6;
  font-weight: bold;
}
.sec-news ul {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 95%;
  margin: 40px auto 60px;
}
.sec-news ul li {
  width: 30px;
  height: 30px;
  margin: 0 8px;
  font-size: 16px;
  line-height: 1;
}
.sec-news ul li a {
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #888;
}
.sec-news ul li a.active {
  font-weight: bold;
  color: #000;
  pointer-events: none;
}
.sec-news ul li.next.hide, .sec-news ul li.prev.hide {
  visibility: hidden;
}
.sec-news ul li.next a, .sec-news ul li.prev a {
  position: relative;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-color: #59454E;
}
.sec-news ul li.next a::before, .sec-news ul li.prev a::before {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border-top: solid 1px #fff;
  top: 50%;
}
.sec-news ul li.prev a::before {
  border-left: solid 1px #fff;
  right: calc(50% - 2px);
  transform: translate(50%, -50%) rotate(-45deg);
}
.sec-news ul li.next a::before {
  border-right: solid 1px #fff;
  left: calc(50% - 2px);
  transform: translate(-50%, -50%) rotate(45deg);
}

.sec-news-article {
  width: 90%;
  margin: 40px auto 40px;
}
.sec-news-article h1 {
  margin-bottom: 1em;
  padding-bottom: 1em;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
  border-bottom: solid 1px #aaa;
}
.sec-news-article .news-date {
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 1;
  color: #666;
}
.sec-news-article .news-title {
  margin-bottom: 30px;
  font-size: 16px;
  line-height: 1.6;
  font-weight: bold;
}
.sec-news-article .news-text {
  margin-top: 1.5em;
  font-size: 14px;
  line-height: 1.8;
}
.sec-news-article .news-text a {
  text-decoration: underline;
  word-break: break-all;
}
.sec-news-article .news-textarea p {
  margin-top: 1.5em;
  font-size: 14px;
  line-height: 1.8;
}
.sec-news-article .news-textarea p a {
  text-decoration: underline;
  word-break: break-all;
}

.sec-news .linkButton, .sec-news-article .linkButton {
  margin: 30px auto 0;
  text-align: center;
}
.sec-news .linkButton a, .sec-news-article .linkButton a {
  position: relative;
  display: inline-block;
  padding: 1em 4em 1em 3em;
  text-align: center;
  font-size: min(3.3vw, 14px);
  line-height: 1;
  font-weight: bold;
  color: #fff;
  background-color: #59454E;
}
.sec-news .linkButton a::after, .sec-news-article .linkButton a::after {
  position: absolute;
  content: "→";
  right: 1em;
}

.sec-vision {
  margin-top: 15%;
}
.sec-vision h2 {
  margin-bottom: 1em;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1.8;
  font-weight: normal;
  letter-spacing: 0.05em;
}
.sec-vision p {
  width: 90%;
  margin: 0 auto;
  font-size: min(3.7vw, 16px);
  line-height: 1.8;
}
.sec-vision p + p {
  margin-top: 1.5em;
}

.sec-uservoice {
  margin-bottom: 10%;
  padding-top: 15%;
}
.sec-uservoice h2 {
  margin-bottom: 1em;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-uservoice .uservoice {
  width: 90%;
  margin: 0 auto;
  padding: min(8%, 30px) 0 10px;
  border-bottom: 1px solid #ccc;
}
.sec-uservoice .uservoice::after {
  display: block;
  content: "";
  clear: both;
}
.sec-uservoice .uservoice h3 {
  color: #59454E;
  font-size: min(4.5vw, 20px);
  margin-bottom: 20px;
}
.sec-uservoice .uservoice p {
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.8;
}
.sec-uservoice .uservoice img {
  float: right;
  width: 35%;
  max-width: 140px;
  margin-left: 6%;
  margin-bottom: 20px;
}
.sec-uservoice .linkButton {
  margin-bottom: 40px;
}

.sec-column {
  margin-top: 15%;
  margin-bottom: 60px;
}
.sec-column h2 {
  margin-bottom: 1em;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.sec-column ul {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 90%;
  margin: 30px auto 0;
}
.sec-column ul li {
  width: 47%;
  margin-bottom: 30px;
}
.sec-column ul li a {
  display: block;
}
.sec-column ul li a img {
  height: 25vw;
  max-height: 160px;
  object-fit: cover;
}
.sec-column ul li a h3 {
  margin-top: 10px;
  font-size: min(3.3vw, 15px);
  font-weight: normal;
  line-height: 1.4;
}
.sec-column ul.single {
  width: 80%;
}
.sec-column ul.single li {
  width: 100%;
}
.sec-column ul.single li a img {
  height: 45vw;
  max-height: 288px;
}
.sec-column .linkButton {
  margin: 0 auto;
  text-align: center;
}
.sec-column .linkButton a {
  position: relative;
  display: inline-block;
  padding: 1em 4em 1em 3em;
  text-align: center;
  font-size: min(3.3vw, 14px);
  line-height: 1;
  font-weight: bold;
  color: #fff;
  background-color: #59454E;
}
.sec-column .linkButton a::after {
  position: absolute;
  content: "→";
  right: 1em;
}

.shoplistArea {
  margin: 0 0 20% 0;
  padding-top: 5%;
}
.shoplistArea h2 {
  margin-bottom: 1.5em;
  text-align: center;
  font-size: min(5.5vw, 35px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.shoplistArea > h3 {
  width: 42%;
  max-width: 215px;
  margin: 30px 0 20px;
  background-color: #f0f0f0;
}
.shoplistArea > h3 a {
  display: block;
  padding: 0.3em 0 0.3em 0.5em;
  font-family: "Shippori Mincho", serif;
  font-size: min(5.5vw, 29px);
  line-height: 1;
  font-weight: normal;
  color: #333;
}
.shoplistArea li {
  border-bottom: 1px solid #ccc;
}
.shoplistArea li:first-of-type {
  border-top: 1px solid #ccc;
}
.shoplistArea li > a {
  display: block;
  font-size: min(3.7vw, 18px);
  padding: 1em;
  position: relative;
}
.shoplistArea li > a span {
  display: inline-block;
  margin-left: 10px;
  font-size: 10px;
  color: #6a6f75;
}
.shoplistArea li > a span.red {
  font-size: 12px;
  font-weight: bold;
  color: #f6638a;
}
.shoplistArea li > a img {
  width: 6px;
  height: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 15px;
}
.shoplistArea li > a[href]::after {
  position: absolute;
  content: "";
  width: 6px;
  height: 12px;
  top: calc(50% - 6px);
  right: 15px;
  background-image: url(../images/arrow3.svg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
.shoplistArea li > a.open img {
  transform: translateY(-50%) rotate(90deg);
}

.header-column {
  padding-top: min(25%, 120px);
}
.header-column h1 {
  text-align: center;
  font-size: min(5.5vw, 32px);
  line-height: 1;
  font-weight: normal;
  letter-spacing: 0.1em;
}
.header-column h1 span {
  display: block;
  width: 9em;
  margin: 1em auto 0;
  padding: 0.15em 0;
  font-size: 70%;
  border: solid 1px #aaa;
}
.header-column + .breadcrumb {
  margin-top: 40px;
}

.column .columnList h2 {
  width: 90%;
  margin: 0 auto 1.5em;
  padding-bottom: 0.5em;
  text-align: center;
  font-size: min(5vw, 20px);
  letter-spacing: 0.1em;
  border-bottom: solid 1px #aaa;
}
.column .columnFv {
  margin-top: 40px;
}
.column .columnFv img {
  display: block;
  width: 100%;
}
.column .columnFv + .breadcrumb {
  margin-top: 40px;
}
.column .columnItem .columnTitle {
  padding: 0 5%;
  margin: 30px 0 40px;
}
.column .columnItem .columnTitle h2 {
  font-size: min(4.5vw, 22px);
  font-weight: bold;
}
.column .columnItem .columnTitle .snsBtn {
  padding: 10px 0;
}
.column .columnItem .columnTitle .snsBtn li {
  display: inline-block;
  height: 20px;
}
.column .columnItem .columnDate {
  font-size: 13px;
}
.column .columnItem .columnCont {
  padding: 0 5%;
  box-sizing: border-box;
}
.column .columnItem .columnCont h3 {
  padding-left: 0.8em;
  margin: 3em 0 2em;
  font-size: min(4.2vw, 18px);
  line-height: 1.5;
  border-left: 1px solid #000;
}
.column .columnItem .columnCont h4 {
  font-size: min(3.7vw, 15px);
  line-height: 1.5;
  margin: 2.5em 0 1.5em;
}
.column .columnItem .columnCont p {
  font-size: min(3.7vw, 15px);
  line-height: 1.7;
}
.column .columnItem .columnCont p:first-child {
  margin-top: 4em;
}
.column .columnItem .columnCont p + p {
  margin-top: 1.5em;
}
.column .columnItem .columnCont a {
  color: #428bca;
  text-decoration: underline;
}
.column .columnItem .columnCont .columnToc {
  padding: 15px;
  margin: 40px 0 50px;
  border: 1px solid #ddd;
}
.column .columnItem .columnCont .columnToc h3 {
  font-size: 14px;
  color: #999;
  padding: 0 0 15px;
  margin: 0;
  border: none;
}
.column .columnItem .columnCont .columnToc li {
  font-size: 14px;
  line-height: 1.5;
}
.column .columnItem .columnCont .columnToc li + li {
  margin-top: 15px;
}
.column .columnItem .columnCont .columnToc a {
  display: block;
  color: #428bca;
  padding-left: 1.5em;
  text-indent: -1.5em;
}
.column .columnItem .columnCont .columnToc a span:first-child {
  display: inline-block;
  width: 1.5em;
  text-indent: 0;
  color: #428bca;
}
.column .columnGotop {
  margin: 50px 0 80px;
  text-align: center;
  font-size: min(4vw, 16px);
  line-height: 1;
  font-weight: bold;
}
.column .columnRel {
  text-align: center;
  border-bottom: 1px solid #000;
  padding-bottom: 1em;
  margin: 30px 0;
}
.column .columnRel img {
  height: 18.4px;
}
.column .columns {
  display: flex;
  padding: 0 5% 5%;
  justify-content: space-between;
  flex-wrap: wrap;
}
.column .columns .columns-article {
  width: 47.5%;
  margin-bottom: 10%;
}
.column .columns .columns-article img {
  display: block;
  width: 100%;
  height: auto;
}
.column .columns .columns-article h3 {
  font-size: min(3.4vw, 15px);
  font-weight: bold;
  line-height: 1.4;
  border-bottom: 1px solid #ccc;
  padding: 0.8em 0;
  margin-bottom: 0.8em;
}
.column .columns .columns-article p {
  font-size: min(3vw, 13px);
  line-height: 1.5;
}

@media screen and (min-width: 640px) {
  header .header-fixed {
    width: 640px;
    left: calc(50% - 320px);
  }
  header nav {
    left: calc(50% - 320px);
  }
  .mainVisual.header-preopen {
    background-position: right bottom -64px;
  }
}