@charset "UTF-8";
/*----------------------------------------------------------
 Reset
------------------------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=M+PLUS+2:wght@400;500;700&family=Noto+Sans+JP:wght@700&family=Roboto:wght@400;500&display=swap");
body, div, section, article, aside, nav,
h1, h2, h3, h4, h5, h6,
span, time, figure, figcaption,
p, blockquote, pre, address, code,
dl, dt, dd, ol, ul, li,
fieldset, form, legend, button,
table, tbody, thead, tfoot, tr, th, td {
  margin: 0;
  padding: 0;
  line-height: 1.75;
  word-break: break-all;
}

header, main, aside, footer, section {
  display: block;
}

h1, h2, h3, h4, h5, h6, th, td, small {
  font-size: 100%;
}

ul, ol {
  list-style: none;
}

img {
  border: 0;
  vertical-align: bottom;
  max-width: 100%;
}

table {
  border-collapse: collapse;
}

input,
select {
  vertical-align: middle;
}

em {
  font-style: normal;
}

button {
  background: none;
  border: none;
}

input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
  outline-offset: -2px;
}

/*----------------------------------------------------
	setting
----------------------------------------------------*/
/*
  mixin
*/
.contents {
  width: 1080px;
  margin: 0 auto;
}
a.tel{pointer-events: none;}
@media screen and (max-width: 960px) {
  .contents {
    width: auto;
    margin: 0 16px;
  }
  a.tel{pointer-events: auto;}
}

/*----------------------------------------------------
	basic
----------------------------------------------------*/
body {
  min-width: 1080px;
  padding-top: 72px;
  color: #231815;
  font-size: 16px;
  font-size: 1rem;
  font-family: 'M PLUS 2', sans-serif;
  line-height: 2;
}
@media screen and (max-width: 960px) {
  body {
    min-width: 0;
    padding-top: 0;
    font-size: 12px;
    font-size: 0.75rem;
  }
}

@media screen and (max-width: 960px) {
  html, body {
    height: 100%;
  }
}

* {
  box-sizing: border-box;
}

a:link {
  color: #231815;
  text-decoration: none;
}
a:visited {
  color: #231815;
}
a:hover {
  color: #231815;
}
a:active {
  color: #231815;
}

*[data-show="sp"] {
  display: none !important;
}
@media screen and (max-width: 960px) {
  *[data-show="sp"] {
    display: block !important;
  }
}

@media screen and (max-width: 960px) {
  *[data-show="pc"] {
    display: none !important;
  }
}

/*----------------------------------------------------
	layout
----------------------------------------------------*/
/*----------------------------------------------------
	header
----------------------------------------------------*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 72px;
  background: #fff;
  z-index: 1000;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.header__logo {
  order: 1;
  flex-shrink: 0;
  margin-right: 36px;
  padding-left: 17px;
  padding-left: calc((100% - 1080px) / 2 + 17px);
}
.header-nav {
  position: relative;
  margin: 0 auto;
  z-index: 100;
}
@media screen and (min-width: 769px) {
  .header .checkbox-toggle {
    display: none;
  }
  .header .menu {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    order: 2;
  }
  .header .menu > div {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
  }
  .header .menu > div > div {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
  }
}
@media screen and (max-width: 960px) {
  .header {
    position: absolute;
    height: auto;
    background: transparent;
    z-index: 1000;
  }
  .header-inner {
    align-items: flex-start;
  }
  .header__logo {
    position: absolute;
    top: 5px;
    left: 6px;
    width: 110px;
    height: 41px;
    margin: 0;
    padding: 9px 6px;
    background: #231815 url(../img/share/logo_footer.svg) center no-repeat;
    background-size: 100px auto;
    z-index: 101;
  }
  .header__logo a {
    display: block;
    width: 100%;
    height: 100%;
  }
  .header__logo img {
    display: none;
  }
}

/*----------------------------------------------------
	nav
----------------------------------------------------*/
.nav {
  position: relative;
  z-index: 1;
  order: 3;
  margin-left: auto;
  height: 100%;
}
.nav-title {
  display: none;
}
.nav__logo {
  display: none;
}
.nav-list {
  display: flex;
  justify-content: space-between;
  height: 100%;
  font-family: Impact, sans-serif;
  font-weight: normal;
  font-size: 18px;
  font-size: 1.125rem;
}
.nav-list li:not(.booking) {
  margin-left: 50px;
}
.nav-list li:not(.booking) a {
  display: flex;
  align-items: center;
  height: 100%;
  transition: .5s;
}
.nav-list li:not(.booking) a:hover {
  opacity: .7;
}
.nav-list li:not(.booking) a > span:last-child {
  display: none;
  font-family: 'M PLUS 2', sans-serif;
  font-weight: bold;
  color: #0091DA;
  font-size: 14px;
  font-size: 0.875rem;
  letter-spacing: -0.02em;
}
.nav-list li:not(.booking) .letter {
  transform-origin: center center 25px;
}
.nav-list li:not(.booking) .letter.out {
  transform: rotateX(90deg);
  transition: 0.32s cubic-bezier(0.6, 0, 0.7, 0.2);
}
.nav-list li:not(.booking) .letter.in {
  transition: 0.38s ease;
}
.nav-list li:not(.booking) .letter.behind {
  transform: rotateX(-90deg);
}
.nav-sns {
  order: 2;
  display: flex;
}
.nav-sns li:first-of-type{ margin-right: .3em;}
.nav-sns a img{width: 30px; display: block;}
@media screen and (min-width: 769px) {
  .nav-list li:not(.booking) a > span {
    transition: .5s;
  }
  .nav-list li:not(.booking) a > span:last-child {
    position: absolute;
    display: block;
    opacity: 0;
    transition: .5s;
  }
  .nav-list li:not(.booking) a:hover > span {
    opacity: 0;
  }
  .nav-list li:not(.booking) a:hover > span:last-child {
    opacity: 1;
  }
  .nav-list li.booking {
    height: 100%;
    width: calc((100vw - 1080px) / 2 + 305px);
    position: relative; left: 20px;
  }
  .nav-list li.booking a {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    padding-left: 46px;
    background: #80A6BB;
    color: #fff;
    transition: ease .2s;
    clip-path: polygon(30px 0%, 100% 0, 100% 100%, 0% 100%);
  }
  .nav-list li.booking a span {
    position: relative;
    z-index: 2;
    left: 0;
    display: flex;
    align-items: center;
    text-shadow: 1px 1px 0 #231815,-1px 1px 0 #231815,1px -1px 0 #231815,-1px -1px 0 #231815;
    transition: ease .2s;
    line-height: 1;
  }
  .nav-list li.booking a span:before {
    content: "";
    display: block;
    width: 23.56px;
    height: 27.2px;
    margin-right: 16px;
    background: url(../img/icon/booking.svg) no-repeat;
    background-size: contain;
  }
  .nav-list li.booking a:before {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    display: block;
    width: calc((100vw - 1080px) / 2 + 305px);
    height: 100%;
    background: #231815;
    transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
    transform: scale(0, 1);
    transform-origin: right top;
    z-index: 2;
  }
  .nav-list li.booking a:hover span {
    left: 20px;
  }
  .nav-list li.booking a:hover:before {
    transform-origin: left top;
    transform: scale(1, 1);
  }
}
@media screen and (max-width: 960px) {
  .nav {
    position: static;
    z-index: 1000;
  }
  .nav-list {
    display: block;
    height: auto;
    margin-bottom: 40px;
    font-size: 20px;
    font-size: 1.25rem;
  }
  .nav-list li a {
    color: #BABBBC;
  }
  .nav-list li:not(.booking) {
    margin-left: 0;
    margin-bottom: 40px;
  }
  .nav-list li:not(.booking) a {
    color: #BABBBC;
  }
  .nav-list li.booking {
    position: relative; left: 0;
  }
  .nav-booking {
    position: absolute;
    top: 62px;
    right: 6px;
    order: 3;
    width: 100%;
    text-align: right;
    z-index: 0;
    display: none !important;
  }
  .nav__logo {
    position: fixed;
    top: 5px;
    left: 6px;
    display: block;
    width: 110px;
    height: 41px;
    z-index: 100;
  }
  .nav__logo a {
    display: block;
    width: 100%;
    height: 100%;
  }
  .nav-sns[data-show="sp"]{display: flex!important;}
  .nav-sns a{
    display: inline-block;
  }
  .nav-sns li:first-of-type{ margin-right: auto; margin-bottom: 10px; }
  .nav-sns a img{width: 45px;}
}

@media screen and (max-width: 960px) {
  .checkbox-toggle {
    position: fixed;
    top: 5px;
    right: 6px;
    z-index: 2;
    display: block;
    width: 41px;
    height: 41px;
    opacity: 0;
    z-index: 2000;
  }
  .checkbox-toggle:checked + .hamburger > div {
    transform: rotate(180deg);
  }
  .checkbox-toggle:checked + .hamburger > div:before, .checkbox-toggle:checked + .hamburger > div:after {
    top: 0;
    transform: rotate(90deg);
    opacity: 0;
  }
  .checkbox-toggle:checked + .hamburger > div:after {
    opacity: 0;
  }
  .checkbox-toggle:checked ~ .menu {
    pointer-events: auto;
    visibility: visible;
    z-index: 99;
  }
  .checkbox-toggle:checked ~ .menu > div {
    transform: scale(1);
    transition-duration: 0.75s;
  }
  .checkbox-toggle:checked ~ .menu > div > div {
    opacity: 1;
    transition: opacity 0.4s ease 0.4s;
  }

  .hamburger {
    position: fixed;
    top: 5px;
    right: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    padding: 0.5em 1em;
    background: #231815;
    font-size: 0;
    backface-visibility: hidden;
    transition: box-shadow 0.4s ease;
    z-index: 100;
  }
  .hamburger > div {
    position: relative;
    flex: none;
    width: 100%;
    width: calc(45px / 2);
    height: 2px;
    background: #fff;
    transition: all 0.4s ease;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .hamburger > div:before, .hamburger > div:after {
    content: '';
    position: absolute;
    z-index: 1;
    top: -7px;
    left: 0;
    width: 100%;
    height: 2px;
    background: inherit;
    transition: all 0.4s ease;
  }
  .hamburger > div:after {
    top: 7px;
  }
  .hamburger.active > div {
    transform: rotate(180deg);
  }
  .hamburger.active > div:before, .hamburger.active > div:after {
    top: 0;
    transform: rotate(90deg);
    opacity: 0;
  }
  .hamburger.active > div:after {
    opacity: 0;
  }

  .menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    visibility: hidden;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    outline: 1px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 0;
  }
  .menu > div {
    width: 500vw;
    height: 500vw;
    color: #fff;
    background: #231815;
    border-radius: 50%;
    transition: all 0.4s ease;
    flex: none;
    transform: scale(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .menu > div > div {
    text-align: center;
    max-width: 90vw;
    max-height: 100vh;
    opacity: 0;
    transition: opacity 0.4s ease;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .menu.active {
    pointer-events: auto;
    visibility: visible;
    z-index: 99;
  }
  .menu.active > div {
    transform: scale(1);
    transition-duration: 0.75s;
  }
  .menu.active > div > div {
    opacity: 1;
    transition: opacity 0.4s ease 0.4s;
  }
}
/*----------------------------------------------------
	main
----------------------------------------------------*/
.page {
  width: 100%;
}

.main {
  position: relative;
  z-index: 1;
}

.wrap {
  width: 100%;
  overflow: hidden;
}

/*----------------------------------------------------
	footer
----------------------------------------------------*/
.footer {
  padding-bottom: 7px;
  background: #231815;
  text-align: center;
}
.footer__logo {
  padding: 20px 0;
}
.footer__sns {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}
.footer__sns li{ margin: 0 .25em;}
.footer__sns img{ width: 30px;}
.footer__address {
  margin-bottom: calc(25px - (((14px * 1.35) - 14px) / 2));
  font-size: 14px;
  font-size: 0.875rem;
  color: #BABBBC;
  line-height: 1.35;
}
.footer__address a {
  color: #BABBBC;
}
.footer .copyright {
  color: #fff;
  font-size: 12px;
  font-size: 0.75rem;
}
@media screen and (max-width: 960px) {
  .footer__logo {
    padding: 20px 0 14px;
  }
  .footer__sns {
    margin-bottom: 16px;
  }
  .footer__address {
    margin-bottom: 16px;
    font-size: 11px;
    font-size: 0.6875rem;
  }
  .footer .copyright {
    padding-bottom: 8px;
    font-size: 9px;
    font-size: 0.5625rem;
  }
  .footer__sns img{ width: 40px;}
}

/*----------------------------------------------------
	0.basic
----------------------------------------------------*/
.is-left {
  text-align: left;
}

.is-center {
  text-align: center;
}

.is-right {
  text-align: right;
}

/* コンテンツ */
/* ページタイトル */
.main-header {
  padding: 26px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.main-header-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 60px;
  font-size: 3.75rem;
  font-family: Impact, sans-serif;
  font-weight: normal;
  line-height: 1;
  color: #fff;
}
.main-header-title__ruby {
  position: relative;
  display: inline-block;
  margin-bottom: 10px;
  padding: 6px 26px;
  padding-top: calc(6px - (((16px * 1.75) - 16px) / 2));
  padding-bottom: calc(6px - (((16px * 1.75) - 16px) / 2));
  font-size: 16px;
  font-size: 1rem;
  letter-spacing: 0.01em;
  font-family: 'M PLUS 2', sans-serif;
  color: #fff;
}
.main-header-title__ruby:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
  transform: skew(-15deg);
}

/* タイトル */
.title-l2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 25px;
  font-size: 60px;
  font-size: 3.75rem;
  font-family: Impact, sans-serif;
  font-weight: normal;
  line-height: 1;
}
.title-l2__ruby {
  position: relative;
  display: inline-block;
  margin-bottom: 10px;
  padding: 6px 26px;
  padding-top: calc(6px - (((16px * 1.75) - 16px) / 2));
  padding-bottom: calc(6px - (((16px * 1.75) - 16px) / 2));
  font-size: 16px;
  font-size: 1rem;
  letter-spacing: 0.01em;
  font-family: 'M PLUS 2', sans-serif;
  color: #80A6BB;
}
.title-l2__ruby:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid #80A6BB;
  transform: skew(-15deg);
}
.title-l2__text {
  line-height: 1;
  font-weight: normal;
}
.title-l2__text span {
  line-height: 1;
}
.title-l2.-s {
  margin-bottom: calc(30px - (((40px * 1.75) - 40px) / 2));
  font-size: 40px;
  font-size: 2.5rem;
}
.title-l2.-s .title-l2__ruby {
  margin-bottom: 6px;
}
@media screen and (max-width: 960px) {
  .title-l2 {
    margin-bottom: 15px;
    font-size: 35px;
    font-size: 2.1875rem;
  }
  .title-l2__ruby {
    margin-bottom: 5px;
    font-size: 11px;
    font-size: 0.6875rem;
  }
  .title-l2.-s {
    margin-bottom: calc(15px - (((27px * 1.75) - 27px) / 2));
    font-size: 27px;
    font-size: 1.6875rem;
  }
}

/* テキスト */
.m-text--blue {
  color: #0091DA;
}

/* リスト */
.list-ul {
  margin-bottom: 2em;
}
.list-ul li {
  padding-left: 1em;
}
.list-ul li:before {
  content: "・";
  margin-left: -1em;
}

.list-ol {
  margin-bottom: 2em;
}
.list-ol li {
  counter-increment: entry-ol;
  margin-bottom: 10px;
  padding-left: 1em;
}
.list-ol li:before {
  content: counter(entry-ol);
  margin-right: .2em;
  margin-left: -.8em;
}

.access-address {
  padding: 10px;
  background: #736357;
  color: #fff;
  text-align: center;
  font-size: 23px;
  font-size: 1.4375rem;
}
.access .googlemap {
  position: relative;
  width: 100%;
  height: 600px;
  overflow: hidden;
}
.access .googlemap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 960px) {
  .access {
    /* ---------------------------SP */
  }
  .access-address {
    font-size: 18px;
    font-size: 1.125rem;
  }
  .access .googlemap {
    height: 300px;
  }
}

/*----------------------------------------------------
	top page
----------------------------------------------------*/
@media screen and (max-width: 960px) {
  .-top .nav-booking {
    display: block !important;
  }
}

.loading {
  background: #80A6BB;
  display: block;
  content: "";
  position: fixed;
  z-index: 1001;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  animation-duration: .8s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  animation-name: PageAnime-rtl;
}

@keyframes PageAnime-rtl {
  0% {
    transform-origin: right;
    transform: scaleX(0);
  }
  50% {
    transform-origin: right;
    transform: scaleX(1);
  }
  50.001% {
    transform-origin: left;
  }
  100% {
    transform-origin: left;
    transform: scaleX(0);
  }
}
body.-top .page {
  opacity: 0;
}
body.-loaded .page {
  animation-name: PageAnime-content;
  animation-duration: 0.55s;
  animation-delay: 0.55s;
  animation-fill-mode: forwards;
  opacity: 0;
  pointer-events: auto;
}

@keyframes PageAnime-content {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*
  slider
*/
.mainvisual {
  position: relative;
  overflow: hidden;
}
.mainvisual-text {
  position: absolute;
  right: 0;
  top: 29%;
  z-index: 100;
  width: 50%;
}
.mainvisual-text:after {
  position: absolute;
  bottom: 10px;
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: left top;
}
.mainvisual-text__img {
  position: relative;
  width: 420px;
  line-height: 1;
  margin-bottom: -25px;
}
.mainvisual-text__img span {
  display: block;
}
.mainvisual-text__img .logo {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  text-align: center;
}
.mainvisual-text__img .catch {
  position: relative;
  z-index: 1;
  padding-left: 15px;
}
.mainvisual-text__img .catch img {
  height: 59.5px;
}
.mainvisual-text__logo {
  position: relative;
  font-family: 'Bebas Neue', sans-serif;
  letter-spacing: -0.025em;
  font-size: 96px;
  font-size: 6rem;
  font-style: italic;
  font-weight: normal;
  color: #fff;
  text-shadow: 5px 0px 1px black, 10px 0px 0px black;
  line-height: 1;
}
.mainvisual-text__logo span {
  line-height: 1;
  opacity: 0;
}
.mainvisual-text__logo span.endAnime {
  opacity: 1;
}
.mainvisual-text.-isAnimated:after {
  transform-origin: right top;
  transform: scale(1, 1);
}
@media screen and (max-width: 960px) {
  .mainvisual {
    padding-top: 135.63%;
    z-index: 1;
  }
  .mainvisual .slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .mainvisual .slider * {
    height: 100%;
  }
  .mainvisual .slider img {
    object-fit: cover;
  }
  .mainvisual-text {
    top: 31.11%;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  .mainvisual-text:after {
    bottom: 4px;
    right: 0;
    width: 91.41%;
    height: 1px;
  }
  .mainvisual-text__img {
    width: auto;
    margin-bottom: 0;
  }
  .mainvisual-text__img .logo {
    bottom: 0;
    max-width: 100px;
    width: 17.34%;
  }
  .mainvisual-text__img .catch {
    padding-left: 1em;
    margin-bottom: -10px;
    text-align: center;
  }
  .mainvisual-text__img .catch img {
    width: 64.06%;
    height: 30px;
    height: auto;
    margin: 0 auto;
  }
  .mainvisual-text__logo {
    letter-spacing: -0.02em;
    font-size: 15vw;
    text-align: center;
  }
}

.slick-dots {
  position: absolute;
  bottom: 35px;
  display: flex;
  justify-content: center;
  width: 100%;
}
.slick-dots li {
  width: 10px;
  height: 10px;
  margin: 0 25px;
}
.slick-dots li button {
  display: block;
  width: 10px;
  height: 10px;
  border: 1px solid #fff;
  border-radius: 100%;
  font-size: 0;
  line-height: 0;
}
.slick-dots li.slick-active button {
  background: #fff;
  border: 1px solid transparent;
}
@media screen and (max-width: 960px) {
  .slick-dots {
    height: auto !important;
  }
  .slick-dots li {
    height: 10px !important;
    margin: 0 19px;
  }
  .slick-dots li button {
    height: 10px !important;
  }
}

/*
  about
*/
.top-about {
  position: relative;
  padding-top: 50px;
  padding-bottom: 330px;
  background: rgba(0, 0, 0, 0.8);
  color: #fff;
}
.top-about:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/top/wave.webp) no-repeat;
  background-size: cover;
}
.top-about .contents {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
}
.top-about-textBox {
  width: 435px;
  margin-bottom: -22px;
}
.top-about-textBox p {
  line-height: 1.75;
  font-weight: 500;
}
.top-about__img {
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.top-about__img img {
  position: absolute;
  bottom: 0;
  max-width: unset;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-about__img.-imgL {
  position: absolute;
  bottom: -22px;
  width: 42.71%;
  height: 56.57%;
}
.top-about__img.-imgL img {
  right: 0;
  object-position: right;
}
.top-about__img.-imgR {
  position: absolute;
  top: 6.13%;
  right: 0;
  width: 50%;
  height: 83.18%;
}
.top-about__img.-imgR img {
  left: 0;
  object-position: left;
}
@media screen and (max-width: 960px) {
  .top-about {
    padding-top: 28px;
    padding-bottom: 45px;
  }
  .top-about:before {
    background-size: auto 100%;
  }
  .top-about .contents {
    display: block;
  }
  .top-about-textBox {
    width: auto;
    margin-bottom: 0;
  }
  .top-about__img {
    position: relative;
    z-index: 2;
    overflow: hidden;
  }
  .top-about__img img {
    object-fit: cover;
  }
  .top-about__img.-imgL {
    position: relative;
    width: 70.94%;
    height: auto;
    padding-top: 55%;
  }
  .top-about__img.-imgR {
    position: relative;
    width: 79.22%;
    height: auto;
    padding-top: 67.66%;
    margin-left: auto;
  }
}

.top-lesson {
  position: relative;
}
.top-lesson:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/top/wave.webp) no-repeat;
  background-size: cover;
}
.top-lesson .contents {
  position: relative;
  z-index: 1;
}
.top-lesson-header {
  padding: 40px 0;
  text-align: center;
}
.top-lesson-header p {
  line-height: 1.75;
  font-weight: 500;
}
.top-lesson-contents {
  position: relative;
  padding-bottom: 80px;
  background: url(../img/top/img_lesson.webp) no-repeat;
  background-size: cover;
}
.top-lesson-contents .bg {
  position: absolute;
  z-index: 1;
  width: 100%;
  height: 100%;
  animation: bg-animation 10s infinite;
  background: linear-gradient(to right, #DEF0F5, #89CFDC);
  mix-blend-mode: multiply;
}
@keyframes bg-animation {
  0% {
    opacity: 1.0;
  }
  10% {
    opacity: 0.8;
  }
  20% {
    opacity: 0.6;
  }
  30% {
    opacity: 0.4;
  }
  40% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.1;
  }
  60% {
    opacity: 0.2;
  }
  70% {
    opacity: 0.4;
  }
  80% {
    opacity: 0.6;
  }
  90% {
    opacity: 0.8;
  }
  100% {
    opacity: 1.0;
  }
}
.top-lesson-contents .contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.top-lesson-contents-section {
  position: relative;
  padding: 1px;
  background: #000;
  text-align: center;
}
.top-lesson-contents-section .inner {
  width: 100%;
  height: 100%;
  background: #fff;
}
.top-lesson-contents-section .price {
  margin-bottom: calc(25px - (((1rem * 1.75) - 1rem) / 2));
}
.top-lesson-contents-section .price dt {
  letter-spacing: 0.01em;
}
.top-lesson-contents-section .price dd {
  font-size: 22px;
  font-size: 1.375rem;
  letter-spacing: 0.01em;
  font-weight: 500;
  color: #0091DA;
}
.top-lesson-contents-section .text {
  padding: 15px 0;
  padding-top: calc(15px - (((16px * 1.75) - 16px) / 2));
  background: #D5E8FF;
}
.top-lesson-contents-section:not(.option) {
  width: calc(100% / 3 - 22px);
  margin-top: -17px;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0% 25%);
}
.top-lesson-contents-section:not(.option) .inner {
  display: flex;
  flex-direction: column;
  padding: 20% 0 0;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0% 25%);
}
.top-lesson-contents-section:not(.option) .text {
  height: 100%;
  padding-bottom: 20%;
}
.top-lesson-contents-section.option {
  max-width: 916px;
  width: 84.81%;
  margin: 40px auto 0;
  clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
}
.top-lesson-contents-section.option .inner {
  position: relative;
  clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
}
.top-lesson-contents-section.option .inner:after {
  position: absolute;
  top: 5px;
  right: 20px;
  content: "";
  display: block;
  width: 202px;
  height: 152px;
  background: url(../img/top/img_option.png) no-repeat;
  background-size: contain;
}
.top-lesson-contents-section.option .top-lesson-contents-section-header {
  display: flex;
  align-items: center;
  padding: 20px 68px 17px;
}
.top-lesson-contents-section.option .top-lesson-contents-section-header .title-l2 {
  margin-bottom: 0;
}
.top-lesson-contents-section.option .top-lesson-contents-section-header .price {
  margin-left: 68px;
  margin-bottom: 0;
}
.top-lesson-contents-section.option .text {
  width: 100%;
  display: flex;
  justify-content: center;
  text-align: left;
  padding-right: 100px;
}
@media screen and (max-width: 960px) {
  .top-lesson-header {
    padding: 38px 0 32px;
  }
  .top-lesson-header p {
    text-align: left;
  }
  .top-lesson-contents {
    padding: 0;
    background-image: url(../img/top/img_lesson_sp.webp);
  }
  .top-lesson-contents .contents {
    display: block;
    padding: 18px 13.44% 70px;
  }
  .top-lesson-contents-section .price {
    margin-bottom: calc(15px - (((1rem * 1.75) - 1rem) / 2));
  }
  .top-lesson-contents-section .price dd {
    font-size: 15px;
    font-size: 0.9375rem;
  }
  .top-lesson-contents-section .text {
    padding: 10px 0;
    padding-top: calc(10px - (((11px * 1.75) - 11px) / 2));
  }
  .top-lesson-contents-section:not(.option) {
    width: 100%;
    margin: 0 0 23px;
  }
  .top-lesson-contents-section.option {
    width: 100%;
    margin: 40px auto 0;
    clip-path: none;
  }
  .top-lesson-contents-section.option .inner {
    clip-path: none;
  }
  .top-lesson-contents-section.option .inner:after {
    display: none;
  }
  .top-lesson-contents-section.option .top-lesson-contents-section-header {
    display: block;
    padding: 20px 20px 30px;
  }
  .top-lesson-contents-section.option .top-lesson-contents-section-header .title-l2 {
    margin-bottom: 14px;
  }
  .top-lesson-contents-section.option .top-lesson-contents-section-header .price {
    margin: 0;
  }
  .top-lesson-contents-section.option .text {
    position: relative;
    width: 100%;
    display: block;
    padding: 23.5px 13px 13px;
  }
  .top-lesson-contents-section.option .text:after {
    position: absolute;
    content: "";
    display: block;
    top: -33px;
    left: 6px;
    width: 80px;
    height: 60px;
    background: url(../img/top/img_option.png) no-repeat;
    background-size: contain;
  }
}

.top-information {
  position: relative;
  padding-top: 40px;
  padding-bottom: 60px;
  background: rgba(0, 0, 0, 0.8);
}
.top-information:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/top/wave.webp) no-repeat;
  background-size: cover;
}
.top-information .contents {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  padding: 0 38px;
}
.top-information-address {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(50% - 20px);
  margin-right: 20px;
  color: #fff;
}
.top-information-address a {
  color: #fff;
}
.top-information-address .title-l2__ruby {
  color: #fff;
}
.top-information-address .title-l2__ruby:before {
  border-color: #fff;
}
.top-information-address .map {
  margin-top: 20px;
}
.top-information-address .map iframe {
  width: 100%;
  width: 368px;
  height: 163px;
  border: 0;
  filter: grayscale(100%);
}
.top-information-about {
  width: 50%;
  padding-top: calc(24px - (((16px * 1.75) - 16px) / 2));
  background: #fff;
  border: 1px solid #000;
}
.top-information-about .title-l2 {
  color: #80A6BB;
}
.top-information-about .text {
  display: flex;
  flex-wrap: wrap;
  padding: 40px 35px;
  padding-top: calc(40px - (((16px * 1.75) - 16px) / 2));
  padding-bottom: calc(40px - (((16px * 1.75) - 16px) / 2));
  background: #D5E8FF;
  font-weight: 500;
  color: #035688;
}
.top-information-about .text dt {
  width: 4em;
}
.top-information-about .text dd {
  width: calc(100% - 4em);
  padding-left: 1em; position: relative;
}
.top-information-about .text dd:before {
  content: "：";
  position: absolute; top: 0; left: 0; display: block;
}
@media screen and (max-width: 960px) {
  .top-information {
    padding-top: 27.5px;
    padding-bottom: 25px;
  }
  .top-information .contents {
    display: block;
    margin: 0;
    padding: 0 16px;
  }
  .top-information-address {
    width: 100%;
    display: block;
    margin: 0 0 27px;
    color: #fff;
  }
  .top-information-address .map {
    margin-top: 15px;
  }
  .top-information-address .map iframe {
    width: 100%;
    height: 44.21%;
  }
  .top-information-about {
    width: 100%;
    padding-top: 10px;
  }
  .top-information-about .text {
    margin-top: 12.5px;
    padding: 16px 12.5px;
  }
  .top-information-about .text dd {
    text-indent: -1em;
    padding-left: 1em;
  }
}

.top-instagram {
  position: relative;
  padding: 30px 0 25px;
  background: #fff;
}
.top-instagram:before {
  position: absolute;
  top: 45px;
  left: 0;
  content: "";
  display: block;
  width: calc((100% - 1080px) / 2 + 56px);
  height: 1px;
  background: #80A6BB;
}
.top-instagram .title-l2 {
  display: inline-flex;
  margin-right: auto;
}
.top-instagram__list {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}
.top-instagram__list li {
  width: calc(100% / 4 - 8px);
}
.top-instagram .text {
  text-align: right;
}
.top-instagram .text a {
  color: #0091DA;
  text-decoration: underline;
}
.top-instagram .text a:hover {
  text-decoration: none;
}
/*youtube*/
.top-youtube .contents{
  display: flex; justify-content: space-between;
  padding-bottom: 80px;
}
.top-youtube .contents a.official-channel{
  font-size: 1rem; font-weight: bold; font-family: 'M PLUS 2', sans-serif; display: block; position: relative;
  margin-top: 10px; background: #80a6bb; border-radius: 100px; padding: 10px 20px 13px 45px; color: #fff; line-height: 1;
  transition: .3s;
}
.top-youtube .contents a.official-channel:before{
  content: url('../img/icon/youtube_w.svg'); display: inline-block; width: 20px;
  position: absolute; top: 51%; left: 15px; transform: translateY(-50%);
}
.top-youtube .contents a.official-channel:hover{
  background: #035688;
}
.top-youtube .contents span.channel-link{
   opacity: 0; transition: 1s; transition-delay: .5s;
}
.top-youtube.-isAnimated .contents span.channel-link{
  opacity: 1;
}
.top-youtube .contents .sec-block{
  width: 100%; max-width: 640px;
}
.top-youtube .contents .sec-block:before{
  content: '';
  position: absolute; width: 40.3%; background: #80A6BB;
  height: 1px; top: 30.3%; right: 100%;
}
.top-youtube .contents .video{
  width: 100%; position: relative;
  padding-bottom: 56.25%; height: 0;
}
.top-youtube .contents .video iframe{
  display: block; width: 100%; height: 100%; position: absolute; top: 0; left: 0;
}
@media screen and (max-width: 960px) {
  .top-instagram {
    padding: 18px 22.5px 22px;
  }
  .top-instagram .contents {
    margin: 0;
  }
  .top-instagram .title-l2 {
    display: flex;
    margin-right: auto;
  }
  .top-instagram__list {
    flex-wrap: wrap;
    margin-bottom: 10px;
  }
  .top-instagram__list li {
    width: calc(100% / 2 - 3.5px);
    margin-bottom: 10px;
  }
  /*youtube*/
  .top-youtube .contents{
    display: flex; flex-direction: column;
    padding-bottom: 40px;
  }
  .top-youtube .contents a.official-channel{
    font-size: 1rem; font-weight: bold; font-family: 'M PLUS 2', sans-serif; display: block; position: relative;
    margin-top: 10px; background: #80a6bb; border-radius: 100px; padding: 10px 20px 13px 45px; color: #fff; line-height: 1;
    transition: .3s;
  }
  .top-youtube .contents a.official-channel:before{
    content: url('../img/icon/youtube_w.svg'); display: inline-block; width: 20px;
    position: absolute; top: 51%; left: 15px; transform: translateY(-50%);
  }
  .top-youtube .contents a.official-channel:hover{
    background: #035688;
  }
  .top-youtube .contents span.channel-link{
     opacity: 0; transition: 1s; transition-delay: .5s;
  }
  .top-youtube.-isAnimated .contents span.channel-link{
    opacity: 1;
  }
  .top-youtube .contents .sec-block{
    width: 100%; max-width: none;
  }
  .top-youtube .contents .sec-block:before{
    display: none;
  }
  .top-youtube .contents .video{
    width: 100%; position: relative;
    padding-bottom: 56.25%; height: 0;
  }
  .top-youtube .contents .video iframe{
    display: block; width: 100%; height: 100%; position: absolute; top: 0; left: 0;
  }
}

.fixed-img {
  position: sticky;
  top: 0;
  z-index: 0;
  width: 100%;
  height: 290px;
  background: url(../img/top/img_fixed.webp) center no-repeat;
  background-size: cover;
}
.fixed-img > div {
  position: absolute;
  z-index: 1;
  width: 100%;
  height: 100%;
  animation: bg-animation 10s infinite;
  background: linear-gradient(to right, #DEF0F5, #89CFDC);
  mix-blend-mode: multiply;
}
.fixed-img img {
  display: none;
}
@media screen and (max-width: 960px) {
  .fixed-img {
    height: 150px;
    background-image: url(../img/top/img_fixed_sp.webp);
  }
}

.top-booking {
  position: relative;
  text-align: center;
  background: #80A6BB;
}
.top-booking .contents {
  position: relative;
  max-width: 1056px;
  overflow: hidden;
}
.top-booking .contents:before {
  content: "";
  display: block;
  position: absolute;
  top: -1px;
  width: 100%;
  height: calc(100% + 2px);
  background: #fff;
  clip-path: polygon(10.1% 0%, 100% 0%, 89.7% 100%, 0% 100%);
}
.top-booking .contents .inner {
  position: relative;
  z-index: 100;
  padding: 34px 0 70px;
}
.top-booking .contents .inner:before, .top-booking .contents .inner:after {
  content: "";
  display: block;
  position: absolute;
  width: 160px;
  height: 240px;
  background-size: contain;
  background-repeat: no-repeat;
}
.top-booking .contents .inner:before {
  left: -3px;
  bottom: -14px;
  background-image: url(../img/top/triangre_l.svg);
}
.top-booking .contents .inner:after {
  right: -21px;
  top: -2px;
  background-image: url(../img/top/triangre_r.svg);
}
.top-booking__btn {
  max-width: 700px;
  margin: 20px auto 0;
}
.top-booking__btn a {
  display: block;
}
.top-booking__btn a:hover {
  transition-timing-function: cubic-bezier(0.6, 4, 0.3, 0.8);
  animation: gelatine 0.5s 1;
}
@keyframes gelatine {
  from,to {
    transform: scale(1, 1);
  }
  25% {
    transform: scale(0.9, 1.1);
  }
  50% {
    transform: scale(1.1, 0.9);
  }
  75% {
    transform: scale(0.95, 1.05);
  }
  from,to {
    transform: scale(1, 1);
  }
  25% {
    transform: scale(0.9, 1.1);
  }
  50% {
    transform: scale(1.1, 0.9);
  }
  75% {
    transform: scale(0.95, 1.05);
  }
}
@media screen and (max-width: 960px) {
  .top-booking {
    background: #fff;
  }
  .top-booking .contents {
    margin: 0 auto;
  }
  .top-booking .contents:before {
    display: none;
  }
  .top-booking .contents .inner {
    position: relative;
    z-index: 100;
    padding: 30px 10px 64px;
  }
  .top-booking .contents .inner:before, .top-booking .contents .inner:after {
    width: 71px;
    height: 86.5px;
  }
  .top-booking .contents .inner:before {
    left: 0;
    bottom: 0;
    clip-path: polygon(0 0, 0 100%, 50% 100%);
    background: #D5E8FF;
  }
  .top-booking .contents .inner:after {
    right: 0;
    top: 0;
    clip-path: polygon(50% 0%, 100% 100%, 100% 0);
    background: #D8DBFF;
  }
  .top-booking__btn {
    margin-top: 10px;
  }
}

/*----------------------------------------------------
	form page
----------------------------------------------------*/
/*
  form
*/
body.-form .main-header {
  padding-top: 70px;
  margin-bottom: 25px;
  background-image: url(../img/booking/title.webp);
}
body.-form .page {
  background: url(../img/top/wave.webp);
  background-size: cover;
}
body.-form .contents {
  padding-bottom: 50px;
}

#booking-calender{
  max-width: 953px;
  width: 100%;
  margin: 0 auto 30px;
  padding-bottom: 30px;
  border-bottom: 1px solid #ccc;
  position: relative;
}
#booking-calender:before{
  content:'▼'; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); color: #999;
}

.form-parts--name {
  width: 290px;
}
.form-parts--mail {
  width: 460px;
}
.form-parts--tel {
  width: 80px;
  margin: 0 10px;
}
.form-parts--tel:first-child {
  margin-left: 0;
}
.form-parts--short {
  width: 80px;
  margin-right: 12px;
}
.form-parts--select {
  margin-left: 12px;
}
/*.form-parts--select.no-select {
  color: #B1B1B1;
}*/
.form-parts--radio {
  position: relative;
}
.form-parts--radio input[type="radio"] {
  display: none;
}
.form-parts--radio input[type="radio"]:checked + label:before {
  border-color: #0097E0;
}
.form-parts--radio input[type="radio"]:checked + label:after {
  position: absolute;
  top: 5px;
  left: 4px;
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  background: #0097E0;
  border-radius: 100%;
}
.form-parts--radio label:before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 15px;
  border: 1px solid #B3B3B3;
  border-radius: 100%;
}
.form-parts--checkbox {
  position: relative;
}
.form-parts--checkbox input[type="checkbox"] {
  display: none;
}
.form-parts--checkbox input[type="checkbox"]:checked + label:before {
  background: #0097E0;
}
.form-parts--checkbox input[type="checkbox"]:checked + label:after {
  position: absolute;
  top: 6px;
  left: 5px;
  content: "";
  display: block;
  width: 12px;
  height: 7px;
  border-left: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(-45deg);
}
.form-parts--checkbox label:before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 15px;
  border: 1px solid #B3B3B3;
  border-radius: 6px;
  background: #F9F9F9;
}
.form-table {
  max-width: 953px;
  width: 100%;
  margin: 0 auto 25px;
  font-family: "a-otf-ud-shin-go-pr6n", sans-serif;
}
.form-table tr, .form-table th, .form-table td {
  display: block;
}
.form-table td {
  display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap;
}
.form-table tr {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-bottom: 5px;
}
.form-table th, .form-table td {
  padding: 20px 40px;
  border: 1px solid #999;
}
.form-table th {
  width: 32.53%;
  padding: 30px 40px;
  padding-right: 20px;
  background: #231815;
  color: #fff;
  text-align: left;
  line-height: 1;
  font-weight: 500;
}
.form-table th small {
  display: inline-block;
  font-weight: 300;
  font-size: 12px;
}
.form-table th span {
  display: block;
  font-weight: 300;
  font-size: 12px;
}
.form-table td {
  width: calc(100% - 32.53% - 3px);
  background: #fff;
  font-family: "kozuka-gothic-pr6n", sans-serif;
}
.form-table input[type="text"],
.form-table input[type="email"],
.form-table input[type="tel"],
.form-table textarea,
.form-table select {
  background: #F9F9F9;
  border: 1px solid #B3B3B3;
  border-radius: 2px;
  padding: 10px 20px;
}
.form-table input[type="text"]::placeholder,
.form-table input[type="email"]::placeholder,
.form-table input[type="tel"]::placeholder,
.form-table select::placeholder {
  color: #aaa;
}
.form-table input[type="text"]:focus::placeholder,
.form-table input[type="email"]:focus::placeholder,
.form-table input[type="tel"]:focus::placeholder,
.form-table select:focus::placeholder {
  color: transparent;
}
.form-table input[type="text"]:invalid,
.form-table input[type="email"]:invalid,
.form-table input[type="tel"]:invalid,
.form-table textarea:invalid,
.form-table select:invalid{
  background-color: #FFDCE4;
}
.form-table .hankaku{
  ime-mode:disabled;
}
.form-table select {
  margin-right: 12px;
}
.form-table label {
  position: relative;
  display: flex;
  align-items: center;
}
.form-table textarea{
  width: 100%; height: 150px;
}
.form-table-group > dt {
  margin-bottom: 20px;
  color: #0097E0;
  font-weight: 500;
}
.form-table-group > dd {
  margin-bottom: 25px;
  padding-left: 60px;
  padding-bottom: 25px;
  border-bottom: 1px solid #B3B3B3;
}
.form-table-group > dd.radio {margin-bottom: 0; padding-left: 0;}
.form-table-group > dd:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.form-table-group > dd ul {
  display: flex;
}
.form-table-group > dd ul li + li {
  margin-left: 34px;
}
.form-table-group > dd dl dt {
  float: left;
  clear: left;
  margin-top: .2em;
  margin-bottom: 30px;
}
.form-table-group > dd dl dd {
  display: flex;
  align-items: center;
  margin-bottom: 30px;
}
.form-table tr:last-child .form-table-group {
  margin-top: 25px;
  padding-top: 25px;
  border-top: 1px solid #B3B3B3;
}
/*送信確認*/
.confirm .form-table td{display: flex; align-items: center; flex-wrap: wrap;}
.form-table-group dl.group-set{
  display: flex; align-items: center; flex-wrap: wrap;
}
.form-table-group dl.group-set > dt{
  width: 30%;
  float: none; margin: 0;
}
.form-table-group dl.group-set > dd{
  width: 70%;
  float: none; margin: 0;
}
.form-att {
  margin-left: 26px;
  color: #0097E0;
  font-size: 12px;
}
.form-att a{ color:#d40000;}
.form-link {
  margin-bottom: 18px;
  text-align: center;
}
.form-link a {
  color: #0097E0;
  text-decoration: underline;
}
/*.form-btn{position: relative;}
.form-btn.check:before{
  content:'';
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10; background: rgba(255,255,255,.75);
}*/

.form-btn__btn {
  position: relative;
  display: block;
  width: 310px;
  margin: 0 auto;
  text-align: center;
  color: #fff;
  border: 1px solid #C8DADF;
  border-radius: 6px;
  background: #231815;
  overflow: hidden;
}
.form-btn__btn:after {
  position: absolute;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  content: "";
  display: block;
  width: 6px;
  height: 9px;
  background: url(../img/icon/arrow.svg) center no-repeat;
  background-size: contain;
  transition: .3s;
}
.form-btn__btn:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  background: #0097E0;
  width: 100%;
  height: 100%;
  transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: right top;
}
.form-btn__btn input {
  position: relative;
  padding: 28px 0; line-height: 1;
  z-index: 1;
  width: 100%;
  height: 100%;
  background: transparent;
  border: 0;
  font-family: "a-otf-ud-shin-go-pr6n", sans-serif;
  font-size: 16px;
  font-size: 1rem;
  text-align: center;
  color: #fff;
  cursor: pointer;
}
.form-btn__btn:hover {
  cursor: pointer;
}
.form-btn__btn:hover:before {
  transform-origin: left top;
  transform: scale(1, 1);
}
.form-btn__btn:hover:after {
  right: 34px;
}
#button-set{
  display: flex; justify-content: center;
}
#button-set .form-btn{margin: 0 10px;}
.form-btn__btn.back:after {
  position: absolute;
  top: 50%;
  left: 40px;
  transform: translateY(-50%) rotateZ(180deg);
  content: "";
  display: block;
  width: 6px;
  height: 9px;
  background: url(../img/icon/arrow.svg) center no-repeat;
  background-size: contain;
  transition: .3s;
}
.form-btn__btn.back:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  background: #0097E0;
  width: 100%;
  height: 100%;
  transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: left top;
}
.form-btn__btn.back input {
  color: #fff;
  cursor: pointer;
}
.form-btn__btn.back:hover {
  cursor: pointer;
}
.form-btn__btn.back:hover:before {
  transform-origin: right top;
  transform: scale(1, 1);
}
.form-btn__btn.back:hover:after {
  left: 34px;
}

.form-notes{
  max-width: 953px;
  width: 100%;
  margin: 0 auto 25px;
  background: rgba(255,255,255,.75);
}
.form-notes h3{
  text-align: center; font-size: 120%; margin: 0 0 10px; background: #231815; color: #fff; padding: 10px 0; letter-spacing: .1em;
}
.form-notes ul{ padding: 20px 40px;}
.form-notes ul li{ margin-bottom: 10px;}
.form-notes ul .red{color:#d40000;}
.form-notes ul li .return-home{ text-align: center; margin-top: 15px;}
.form-notes ul li .return-home a{
  color: #0091DA;
  text-decoration: underline;
}
.form-notes ul li .return-home a:hover{text-decoration: none;}
@media screen and (max-width: 960px) {
  
#button-set{
  display: flex; justify-content: space-between;
  width: 100%;
}
#button-set .form-btn{margin: 0 auto;width: 48%;}
#button-set .form-btn__btn{width: 100%;}
#button-set .form-btn__btn input{padding: 20px 0;}
.form-notes ul{ padding: 20px 20px;}
.form-notes ul li .return-home{margin-top: 15px; font-weight: bold; font-size: 120%;}
  
  .form-parts--name, .form-parts--mail {
    width: 100%;
  }
  .form-parts--tel {
    width: 50px;
    margin: 0 5px;
  }
  .form-parts--tel:first-child {
    margin-left: 0;
  }
  .form-parts--short {
    width: 80px;
    margin-right: 12px;
  }
  .form-parts--select {
    margin-left: 12px;
  }
  .form-parts--select.no-select {
    color: #B1B1B1;
  }
  .form-parts--radio {
    position: relative;
  }
  .form-parts--radio input[type="radio"]:checked + label:after {
    top: 4px;
    left: 3px;
    width: 14px;
    height: 14px;
  }
  .form-parts--radio label:before {
    width: 18px;
    height: 18px;
    margin-right: 15px;
  }
  .form-parts--checkbox {
    position: relative;
  }
  .form-parts--checkbox input[type="checkbox"] {
    display: none;
  }
  .form-parts--checkbox input[type="checkbox"]:checked + label:before {
    background: #0097E0;
  }
  .form-parts--checkbox input[type="checkbox"]:checked + label:after {
    position: absolute;
    top: 6px;
    left: 5px;
    content: "";
    display: block;
    width: 12px;
    height: 7px;
    border-left: 3px solid #fff;
    border-bottom: 3px solid #fff;
    transform: rotate(-45deg);
  }
  .form-parts--checkbox label:before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    margin-right: 15px;
    border: 1px solid #B3B3B3;
    border-radius: 6px;
    background: #F9F9F9;
  }
  .form-table {
    max-width: 100%;
    margin: 0 auto 25px;
  }
  .form-table th, .form-table td {
    padding: 10px;
  }
  .form-table th small,
  .form-table th span {
    font-size: 10px;
    font-size: 0.625rem;
  }
  .form-table input[type="text"],
  .form-table input[type="email"],
  .form-table input[type="tel"],
  .form-table select {
    padding: 10px 5px;
  }
  .form-table input[type="text"]::placeholder,
  .form-table input[type="email"]::placeholder,
  .form-table input[type="tel"]::placeholder,
  .form-table select::placeholder {
    font-size: 10px;
  }
  .form-table-group > dt {
    margin-bottom: 15px;
  }
  .form-table-group > dd {
    padding-left: 0px;
  }
  .form-table-group > dd ul {
    display: block;
  }
  .form-table-group > dd ul li {
    margin-bottom: 10px;
  }
  .form-table-group > dd ul li + li {
    margin-left: 0;
  }
  .form-table-group > dd dl dt {
    margin-top: .5em;
    margin-bottom: 20px;
  }
  .form-table-group > dd dl dd {
    display: block;
    margin-bottom: 20px;
  }
  .form-att {
    clear: left;
    margin-left: 0px;
  }
  .form .hasDatepicker {
    margin-bottom: 10px;
  }
  .form .hasDatepicker + .form-parts--select {
    margin: 0;
  }
}

/*----------------------------------------------------
	animation
----------------------------------------------------*/
.js-text-animation {
  z-index: 3;
  overflow: hidden;
}
.js-text-animation span {
  display: inline-block;
  transform: translate3d(0, 200px, 0);
  will-change: transform;
}
.js-text-animation span:nth-child(1) {
  transition-delay: 0ms !important;
}
.js-text-animation span:nth-child(2) {
  transition-delay: 50ms !important;
}
.js-text-animation span:nth-child(3) {
  transition-delay: 100ms !important;
}
.js-text-animation span:nth-child(4) {
  transition-delay: 150ms !important;
}
.js-text-animation span:nth-child(5) {
  transition-delay: 200ms !important;
}
.js-text-animation span:nth-child(6) {
  transition-delay: 250ms !important;
}
.js-text-animation span:nth-child(7) {
  transition-delay: 300ms !important;
}
.js-text-animation span:nth-child(8) {
  transition-delay: 350ms !important;
}
.js-text-animation span:nth-child(9) {
  transition-delay: 400ms !important;
}
.js-text-animation span:nth-child(10) {
  transition-delay: 450ms !important;
}
.js-text-animation span:nth-child(11) {
  transition-delay: 500ms !important;
}
.js-text-animation span:nth-child(12) {
  transition-delay: 550ms !important;
}
.js-text-animation span:nth-child(13) {
  transition-delay: 600ms !important;
}
.js-text-animation span:nth-child(14) {
  transition-delay: 650ms !important;
}
.js-text-animation span:nth-child(15) {
  transition-delay: 700ms !important;
}
.js-text-animation span:nth-child(16) {
  transition-delay: 750ms !important;
}
.js-text-animation span:nth-child(17) {
  transition-delay: 800ms !important;
}
.js-text-animation span:nth-child(18) {
  transition-delay: 850ms !important;
}
.js-text-animation span:nth-child(19) {
  transition-delay: 900ms !important;
}
.js-text-animation span:nth-child(20) {
  transition-delay: 950ms !important;
}
.js-text-animation--up span {
  transform: translate3d(0, -200px, 0);
  transition: transform 0.8s cubic-bezier(0.6, 0, 0.2, 1);
}
.js-text-animation--middle span, .js-text-animation.-isAnimated span {
  transform: translate3d(0, 0, 0);
  transition: transform 0.8s cubic-bezier(0.6, 0, 0.2, 1);
}

.rotating-text {
  font-size: 36px;
}
.rotating-text p {
  display: inline-flex;
  margin: 0;
  vertical-align: top;
}
.rotating-text p .word {
  position: absolute;
  display: flex;
  opacity: 0;
}
.rotating-text p .word .letter {
  transform-origin: center center 25px;
}
.rotating-text p .word .letter.out {
  transform: rotateX(90deg);
  transition: 0.32s cubic-bezier(0.6, 0, 0.7, 0.2);
}
.rotating-text p .word .letter.in {
  transition: 0.38s ease;
}
.rotating-text p .word .letter.behind {
  transform: rotateX(-90deg);
}

.js-scroll-wrap {
  overflow: hidden;
}

.js-scroll {
  opacity: 0;
  transition: 1s;
}
.js-scroll.-isAnimated {
  opacity: 1;
}

.js-fadeIn {
  transform: translate3d(0, 30px, 0);
  transition: 1s;
  opacity: 0;
}
.js-fadeIn.-isAnimated {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

.js-topDownGroup > * {
  opacity: 0;
  transition: 1s;
}
.js-topDownGroup .-isAnimated {
  opacity: 1;
}

/* 上下のアニメーション*/
.-topDownText {
  overflow: hidden;
}

/* 上から降りてくる */
.slideAnimeDownUp {
  animation-name: slideTextY100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextY100 {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.slideAnimeUpDown {
  animation-name: slideTextY-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

span.slideAnimeDownUp {
  display: block;
}

@keyframes slideTextY-100 {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.-isFadeIn {
  opacity: 0;
  transition: 1s ease-in-out;
}
.-isFadeIn.-isAnimated {
  opacity: 1;
}

@keyframes SlideInR {
  0% {
    opacity: 0;
    transform: translateX(100%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes SlideInL {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.-slideIn {
  opacity: 0;
}
.-slideIn.-isAnimated.-fromR {
  animation: SlideInR 1s;
  animation-fill-mode: forwards;
}
.-slideIn.-isAnimated.-fromL {
  animation: SlideInL 1s;
  animation-fill-mode: forwards;
}

/*# sourceMappingURL=common.css.map */
