@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  padding: 0;
  margin: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
  border: 0;
}

input, select, textarea {
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
  content: none;
}

table {
  border-spacing: 0;
  border-collapse: collapse;
}

/* =====================
  base
===================== */
* {
  box-sizing: border-box;
}

* {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  font-family: "Hiragino Sans", "ヒラギノ角ゴシック", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 1.6rem;
  color: #2C2C2C;
}
@media screen and (max-width: 1023.9px) {
  body.is-menu {
    height: 100svh;
    overflow: hidden;
  }
}

img {
  display: inline-block;
  width: 100%;
  max-width: 100%;
  vertical-align: bottom;
}

a {
  color: #2C2C2C;
  text-decoration: none;
  cursor: pointer;
}

.wrapper {
  overflow: hidden;
}
@media screen and (max-width: 749.9px) {
  .wrapper {
    padding-top: 15.2vw;
  }
}
@media screen and (min-width: 750px) {
  .wrapper {
    position: relative;
  }
  .wrapper::after {
    position: fixed;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100vh;
    margin: auto;
    content: "";
    background: url("../images/bg__01@2x.png") bottom left/cover no-repeat;
  }
}

@media screen and (min-width: 750px) {
  .sp {
    display: none !important;
  }
}

@media screen and (max-width: 749.9px) {
  .pc {
    display: none !important;
  }
}

.l-aside {
  position: fixed;
  right: min(46px, 2.754491018vw);
  bottom: min(84px, 5.0299401198vw);
  width: min(344px, 20.5988023952vw);
}
@media screen and (max-width: 749.9px) {
  .l-aside {
    top: 0;
    right: -100vw;
    z-index: 999;
    width: 64.8vw;
    height: 100dvh;
    padding: 28.2666666667vw 9.8666666667vw 12.6666666667vw;
    overflow-y: auto;
    background: #fff;
    transition: transform 0.3s ease;
    transform: translateX(0);
  }
  .is-menu .l-aside {
    transform: translateX(-100vw);
  }
  .l-aside__bg {
    position: fixed;
    inset: 0;
    z-index: 888;
    display: block;
    margin: auto;
    pointer-events: none;
    background: #000;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .is-menu .l-aside__bg {
    pointer-events: auto;
    opacity: 0.8;
  }
}
.l-aside__banner {
  display: block;
}
.l-aside__btn-area {
  margin-top: min(30px, 1.7964071856vw);
}
@media screen and (max-width: 749.9px) {
  .l-aside__btn-area {
    margin-top: 13.0666666667vw;
  }
}
.l-aside .c-link-btn__01 {
  width: min(320px, 19.1616766467vw);
  height: min(70px, 4.1916167665vw);
  margin: 0 auto;
}
@media screen and (max-width: 749.9px) {
  .l-aside .c-link-btn__01 {
    width: 45.0666666667vw;
    height: 12.5333333333vw;
  }
}
.l-aside__nav__item {
  font-size: 3.2vw;
  letter-spacing: 0.95em;
}
.l-aside__nav__item:not(:first-of-type) {
  margin-top: 4em;
}

.l-container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
}
@media screen and (min-width: 750px) {
  .l-container {
    max-width: min(750px, 33.91018vw);
    margin-top: min(60px, 3.5928143713vw);
    overflow: hidden;
    background: #fff;
    border-radius: min(130px, 7.7844311377vw) 0 0;
  }
}

.l-footer {
  padding: min(50px, 6.6666666667vw) 0 0;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .l-footer {
    padding: min(50px, 2.994011976vw) 0 0;
  }
}
.l-footer__sns__icon {
  display: block;
  width: min(62px, 8.2666666667vw);
  margin: 0 auto;
}
@media screen and (min-width: 750px) {
  .l-footer__sns__icon {
    width: min(62px, 3.7125748503vw);
  }
}
.l-footer__logo__link {
  display: block;
  width: min(246px, 32.8vw);
  margin: min(30px, 4vw) auto 0;
}
@media screen and (min-width: 750px) {
  .l-footer__logo__link {
    width: min(246px, 14.7305389222vw);
    margin: min(30px, 1.7964071856vw) auto 0;
  }
}
.l-footer__copy {
  width: min(675px, 90vw);
  padding-bottom: min(10px, 1.3333333333vw);
  margin: min(20px, 2.6666666667vw) auto 0;
}
@media screen and (min-width: 750px) {
  .l-footer__copy {
    width: min(675px, 33.419162vw);
    padding-bottom: min(10px, 0.5988023952vw);
    margin: min(20px, 1.1976047904vw) auto 0;
  }
}

.l-header {
  position: fixed;
  z-index: 1000;
  display: block;
  width: 100%;
  height: 15.2vw;
}
@media screen and (max-width: 749.9px) {
  .l-header {
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 0 5.0666666667vw;
    background: #fff;
    box-shadow: 0 7px 28px rgba(0, 0, 0, 0.12);
  }
}
@media screen and (min-width: 750px) {
  .l-header {
    top: min(85px, 5.0898203593vw);
    left: min(69px, 4.1317365269vw);
    width: min(338px, 20.2395209581vw);
    height: min(458px, 27.4251497006vw);
  }
}
.l-header__logo {
  display: flex;
  align-items: center;
  width: 32vw;
}
@media screen and (min-width: 750px) {
  .l-header__logo {
    width: min(314px, 18.8023952096vw);
  }
}
.l-header__logo__link {
  display: block;
}
.l-header__contents {
  display: flex;
  gap: 1.2vw;
  align-items: center;
  justify-content: space-between;
  width: 38.1333333333vw;
}
.l-header__contents.sp {
  height: 15.2vw;
}
@media screen and (min-width: 750px) {
  .l-header__contents.sp {
    height: 0;
  }
}
.l-header .c-link-btn__01 {
  width: 25.8666666667vw;
  height: 10.8vw;
  border-radius: 5.4666666667vw;
}
.l-header .c-link-btn__01__icon {
  right: 2vw;
  width: 1.8666666667vw;
  height: 2.4vw;
}
.l-header__menu {
  position: relative;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 11.0666666667vw;
  height: 10.8vw;
  padding: 0;
  background: #464646;
  border: none;
  border-radius: 50% 0 0 50%;
}
.l-header__menu__icon {
  position: relative;
  width: 4.8vw;
  height: 2.8vw;
}
.l-header__menu__icon::before, .l-header__menu__icon::after {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 0.2rem;
  margin: auto;
  content: "";
  background: #fff;
  transition: transform 0.3s ease;
}
.l-header__menu__icon::before {
  transform: translateY(-0.9333333333vw);
}
.is-menu .l-header__menu__icon::before {
  transform: rotate(45deg);
}
.l-header__menu__icon::after {
  transform: translateY(0.9333333333vw);
}
.is-menu .l-header__menu__icon::after {
  transform: rotate(-45deg);
}
@media screen and (min-width: 750px) {
  .l-header__nav {
    margin-top: min(122px, 7.3053892216vw);
  }
  .l-header__nav__item {
    font-size: min(24px, 1.4371257485vw);
    letter-spacing: 0.95em;
  }
  .l-header__nav__item:not(:first-of-type) {
    margin-top: 1.8em;
  }
  .l-header__nav__link {
    transition: color 0.3s ease;
  }
  .l-header__nav__link:hover {
    color: rgb(120.5, 120.5, 120.5);
  }
}

.l-section__inner {
  padding: 0 2rem;
}

.c-link-btn__area {
  width: min(600px, 80vw);
  margin: min(70px, 9.3333333333vw) auto 0;
}
@media screen and (min-width: 750px) {
  .c-link-btn__area {
    width: min(600px, 29.928144vw);
    margin: min(70px, 4.1916167665vw) auto 0;
  }
}
.c-link-btn__01 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(600px, 80vw);
  height: min(109px, 14.5333333333vw);
  font-size: min(24px, 3.2vw);
  color: #2C2C2C;
  background: #fff;
  border: 1px solid #2C2C2C;
  border-radius: min(55px, 7.3333333333vw);
}
@media screen and (min-width: 750px) {
  .c-link-btn__01 {
    width: min(600px, 28.928144vw);
    height: min(109px, 6.5269461078vw);
    font-size: min(24px, 1.4371257485vw);
    border-radius: min(55px, 3.2934131737vw);
    transition: background 0.3s ease;
  }
  .c-link-btn__01:hover {
    background: rgb(222.5, 222.5, 222.5);
  }
}
.c-link-btn__01__icon {
  position: absolute;
  top: 0;
  right: min(32px, 4.2666666667vw);
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(14px, 1.8666666667vw);
  height: min(18px, 2.4vw);
  margin: auto;
  transform: rotate(-90deg);
}
@media screen and (min-width: 750px) {
  .c-link-btn__01__icon {
    right: min(32px, 1.9161676647vw);
    width: min(14px, 0.8383233533vw);
    height: min(18px, 1.0778443114vw);
    transition: transform 0.3s ease;
  }
  .c-link-btn__01:hover .c-link-btn__01__icon {
    transform: rotate(-90deg) translateY(40%);
  }
}
.c-link-btn__01__icon svg {
  fill: #2c2c2c;
}
.c-link-btn__01:not(:first-of-type) {
  margin-top: min(27px, 3.6vw);
}
@media screen and (min-width: 750px) {
  .c-link-btn__01:not(:first-of-type) {
    margin-top: min(27px, 1.6167664671vw);
  }
}
.c-link-btn__01--blk {
  color: #fff;
  background: #4B4B4B;
  border-color: #4B4B4B;
}
@media screen and (min-width: 750px) {
  .c-link-btn__01--blk:hover {
    background: rgb(100.5, 100.5, 100.5);
  }
}
.c-link-btn__01--blk .c-link-btn__01__icon svg {
  fill: #fff;
}

.c-mv {
  position: relative;
}
@media screen and (max-width: 749.9px) {
  .c-mv {
    padding-bottom: 107.7333333333vw;
  }
}
@media screen and (max-width: 749.9px) {
  .c-mv::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    width: 83.0666666667vw;
    height: 100%;
    content: "";
    background: url("../images/bg__mv@2x.png") top left/cover no-repeat;
  }
}
.c-mv__01 {
  padding-left: 5.0666666667vw;
}
@media screen and (min-width: 750px) {
  .c-mv__01 {
    padding-left: 3.8rem;
  }
}
.c-mv__02 {
  width: 60.6666666667vw;
  margin-top: 15.4666666667vw;
}
@media screen and (max-width: 749.9px) {
  .c-mv__02 {
    padding-left: 10vw;
  }
}
@media screen and (min-width: 750px) {
  .c-mv__02 {
    width: 60rem;
    margin: 22rem auto 0;
  }
}

.c-title__h2 {
  font-size: 3.4rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.c-title__h2 + * {
  margin-top: 8rem;
}

.p-index__concept {
  position: relative;
  margin-top: -87.6vw;
}
@media screen and (max-width: 749.9px) {
  .p-index__concept {
    padding-bottom: 19.6vw;
  }
}
@media screen and (min-width: 750px) {
  .p-index__concept {
    width: min(724px, 33.91018vw);
    margin-top: min(220px, 13.1736526946vw);
  }
}
.p-index__about {
  width: 80%;
  margin: 0 auto;
}
.p-index__price {
  width: 80%;
  margin: min(200px, 26.6666666667vw) auto 0;
}
@media screen and (min-width: 750px) {
  .p-index__price {
    margin: min(200px, 11.9760479042vw) auto 0;
  }
}
.p-index__access {
  position: relative;
  width: 96.5333333333%;
  margin: min(186px, 24.8vw) 0 0;
}
@media screen and (min-width: 750px) {
  .p-index__access {
    margin: min(186px, 11.1377245509vw) 0 0;
  }
}
.p-index__access__map {
  position: absolute;
  bottom: min(97px, 12.9333333333vw);
  left: min(75px, 3.491018vw);
  width: 69.7333333333%;
  height: min(511px, 68.1333333333vw);
}
@media screen and (min-width: 750px) {
  .p-index__access__map {
    bottom: min(97px, 1.808383vw);
    left: min(75px, 3.491018vw);
    height: min(511px, 28.598802vw);
  }
}
.p-index__access__map iframe {
  width: 100%;
  height: 100%;
}

.u-bg__grey {
  padding: 19.6vw 0 10.2666666667vw;
  background: #F2F2F2;
}
@media screen and (min-width: 750px) {
  .u-bg__grey {
    padding: 13.2rem 0 6.6rem;
    margin-top: 10.6rem;
  }
}