/* 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 {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  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; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

a {
  color: black;
  text-decoration: none; }

.in_460 {
  display: none; }
  @media screen and (max-width: 460px) {
    .in_460 {
      display: block; } }

.in_767 {
  display: none; }
  @media screen and (max-width: 767px) {
    .in_767 {
      display: block; } }

.in_1023 {
  display: none; }
  @media screen and (max-width: 1023px) {
    .in_1023 {
      display: block; } }

.out_460 {
  display: block; }
  @media screen and (max-width: 460px) {
    .out_460 {
      display: none; } }

.out_767 {
  display: block; }
  @media screen and (max-width: 767px) {
    .out_767 {
      display: none; } }

.out_1023 {
  display: block; }
  @media screen and (max-width: 1023px) {
    .out_1023 {
      display: none; } }

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  font-family: "Shippori Mincho", serif;
  position: relative; }

#loading {
  display: block;
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0px;
  left: 0px;
  background: #fff;
  z-index: 102; }

@keyframes logoScale {
  0% {
    opacity: 0; }
  50% {
    opacity: .4; }
  100% {
    opacity: 1; } }
  #loading #loader {
    position: absolute;
    height: auto;
    z-index: 101;
    transform: translate(-50%, -50%);
    top: 45%;
    left: 50%;
    width: 100%; }
    #loading #loader #loader_logo {
      animation-name: logoScale;
      animation-duration: 1s;
      animation-timing-function: ease-in-out;
      width: 15%;
      margin: 0 auto 20px;
      display: block;
      z-index: 1;
      min-width: 100px; }
    #loading #loader p {
      color: #4d4d4d;
      font-size: 20px;
      letter-spacing: .5rem;
      text-align: center;
      animation-name: logoScale;
      animation-duration: 1.2s;
      animation-timing-function: ease-in-out;
      z-index: 2; }

header {
  width: 100%;
  height: 100px;
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 100;
  background-color: rgba(255, 255, 255, 0.712); }
  @media screen and (max-width: 767px) {
    header {
      background-color: inherit; } }
  header .header_inner {
    width: calc(100% - 40px);
    display: flex;
    justify-content: space-between;
    padding: 0px 20px 0px 10px; }
  header .header-right {
    padding: 10px 0px;
    z-index: 101; }
    header .header-right .logo {
      width: 90px; }
  header .pc-menu {
    display: -webkit-box;
    /* old Android */
    display: -moz-box;
    /* Firefox */
    display: -webkit-flex;
    /* Safari etc. */
    display: -ms-flexbox;
    /* IE10        */
    display: flex;
    justify-content: space-between;
    align-items: center; }
    @media screen and (max-width: 767px) {
      header .pc-menu {
        display: none; } }
    header .pc-menu li {
      border-right: 1px solid #000; }
      header .pc-menu li:last-child {
        border: none; }
    header .pc-menu a {
      margin: 0px 20px;
      transition: .3s;
      position: relative;
      font-size: 18px; }
      header .pc-menu a::after {
        position: absolute;
        bottom: -5px;
        left: -1px;
        content: '';
        width: 100%;
        height: 1px;
        background: #000;
        transform: scale(0, 1);
        transform-origin: right top;
        transition: transform .2s; }
      header .pc-menu a:hover::after {
        transform-origin: left top;
        transform: scale(1, 1); }
  header #js-btn {
    position: relative;
    width: 30px;
    height: 25px;
    cursor: pointer;
    z-index: 99;
    display: none;
    margin: 30px 10px; }
    @media screen and (max-width: 767px) {
      header #js-btn {
        display: block; } }
    header #js-btn .inner_line {
      display: block;
      position: absolute;
      right: 0px;
      width: 30px;
      height: 1px;
      background-color: #000;
      transition: .5s; }
    header #js-btn #line1 {
      top: 0px; }
    header #js-btn #line2 {
      top: 12px; }
    header #js-btn #line3 {
      bottom: 0px; }
  header #nav {
    transition: .5s;
    width: 100%;
    background-color: #ffffff;
    height: 100vh;
    z-index: 90;
    position: fixed;
    display: block;
    transform: translateX(100%);
    top: 0px; }
    header #nav ul {
      transition: transform .5s .1s;
      transform: translate(-50%, -50%);
      position: absolute;
      top: 50%;
      left: 50%; }
      header #nav ul li {
        margin: 0 auto 37.8px;
        width: 100%;
        max-width: 182px; }
        header #nav ul li a {
          color: #000;
          cursor: pointer;
          position: relative;
          font-weight: bold; }
        header #nav ul li a::after {
          position: absolute;
          bottom: -5px;
          left: -1px;
          content: '';
          width: 100%;
          height: 1px;
          background: #000;
          transform: scale(0, 1);
          transform-origin: right top;
          transition: transform .2s; }
        header #nav ul li a:hover::after {
          transform-origin: left top;
          transform: scale(1, 1); }

.is-active #js-btn #line1 {
  transform: rotate(-45deg);
  top: 15px !important; }

.is-active #js-btn #line2 {
  opacity: 0; }

.is-active #js-btn #line3 {
  transform: rotate(45deg);
  top: 15px !important; }

.is-active #nav {
  transform: translateX(0px); }

#page_top {
  width: 60px;
  height: 60px;
  position: fixed;
  right: 20px;
  bottom: 0; }
  @media screen and (max-width: 767px) {
    #page_top {
      right: 10px; } }

#page_top a {
  position: relative;
  display: block;
  width: 60px;
  height: 60px;
  text-decoration: none;
  opacity: .5;
  transition: .3s; }
  #page_top a:hover {
    opacity: 1;
    transition: .3s; }
  #page_top a::after, #page_top a::before {
    content: '';
    width: 30px;
    height: 1.3px;
    background-color: #000;
    position: absolute;
    display: block;
    top: 50%;
    transition: .3s; }
  #page_top a::after {
    transform: rotate(50deg);
    right: 6px; }
  #page_top a::before {
    transform: rotate(-50deg);
    left: 6px; }

footer {
  width: calc(100% - 100px);
  padding: 80px 50px;
  background-color: #000;
  color: #ffffff;
  font-size: 12px;
  text-align: center; }
  @media screen and (max-width: 767px) {
    footer {
      width: 100%;
      padding: 80px 0px; } }

.kv-wrapper {
  width: 100%;
  margin-bottom: 20px; }
  .kv-wrapper .kv-container {
    width: 85%;
    height: 80vh;
    margin: 100px auto 3vh; }
    @media screen and (max-width: 767px) {
      .kv-wrapper .kv-container {
        width: 100%;
        height: 100vh;
        margin: 0px; } }
  .kv-wrapper .swiper-container {
    width: 100%;
    height: 100%; }
    .kv-wrapper .swiper-container .swiper-text {
      color: #ffffff;
      text-align: center;
      font-size: 20px;
      position: absolute;
      letter-spacing: .5rem;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 99;
      width: 90%; }
      @media screen and (max-width: 767px) {
        .kv-wrapper .swiper-container .swiper-text {
          font-size: 16px; } }
      @media screen and (max-width: 460px) {
        .kv-wrapper .swiper-container .swiper-text {
          font-size: 3.7vw; } }
    .kv-wrapper .swiper-container .swiper-wrapper .swiper-slide .is-pc {
      display: block; }
      @media screen and (max-width: 767px) {
        .kv-wrapper .swiper-container .swiper-wrapper .swiper-slide .is-pc {
          display: none; } }
    .kv-wrapper .swiper-container .swiper-wrapper .swiper-slide .is-sp {
      display: none; }
      @media screen and (max-width: 767px) {
        .kv-wrapper .swiper-container .swiper-wrapper .swiper-slide .is-sp {
          display: block; } }
    .kv-wrapper .swiper-container .swiper-wrapper .swiper-slide img {
      width: 100%;
      height: 100%;
      object-fit: cover; }

@keyframes zoom {
  from {
    transform: scale(1.5); }
  to {
    transform: scale(1); } }
    .kv-wrapper .swiper-container .swiper-slide-prev img,
    .kv-wrapper .swiper-container .swiper-slide-active img,
    .kv-wrapper .swiper-container .swiper-slide-duplicate-active img {
      animation-name: zoom;
      animation-duration: 12s; }
    .kv-wrapper .swiper-container .swiper-button-white {
      display: flex; }
      @media screen and (max-width: 767px) {
        .kv-wrapper .swiper-container .swiper-button-white {
          display: none; } }

@keyframes slide {
  0% {
    transform: translateY(-70px); }
  100% {
    transform: translateY(-60px); } }

.kv-wrapper .arrow {
  display: block;
  height: 120px;
  width: 50px;
  position: relative;
  margin: 0 auto;
  animation-iteration-count: infinite;
  animation-name: slide;
  animation-duration: 1.5s;
  z-index: 101; }
  @media screen and (max-width: 767px) {
    .kv-wrapper .arrow {
      margin: 20px auto 0px; } }
  .kv-wrapper .arrow span {
    display: block;
    height: 100%;
    width: 1px;
    margin: 0 auto;
    background-color: #242424; }
    .kv-wrapper .arrow span::after, .kv-wrapper .arrow span::before {
      content: '';
      position: absolute;
      display: block;
      bottom: -2px;
      height: 15px;
      width: 1px;
      background-color: #242424;
      transform: rotate(45deg); }
    .kv-wrapper .arrow span::after {
      right: 40%;
      transform: rotate(45deg); }
    .kv-wrapper .arrow span::before {
      left: 40%;
      transform: rotate(-45deg); }

.kv_bottom {
  padding-bottom: 100px; }
  @media screen and (max-width: 767px) {
    .kv_bottom {
      width: 95%;
      margin: 0 auto; } }
  .kv_bottom .button {
    max-width: 425px;
    width: 80%;
    padding: 20px 0px;
    text-align: center;
    color: #C69E6E;
    border: #C69E6E 1.5px solid;
    border-radius: 2px;
    margin: 20px auto 0px;
    display: block;
    cursor: pointer;
    transition: .3s;
    font-size: 25px; }
    @media screen and (max-width: 767px) {
      .kv_bottom .button {
        width: 98%; } }
    .kv_bottom .button:hover {
      background-color: #e6d9ca;
      color: #ffffff;
      border: #e6d9ca 1.5px solid; }
  .kv_bottom p {
    color: #000;
    font-size: 18px;
    text-align: center;
    line-height: 1.7; }
    @media screen and (max-width: 767px) {
      .kv_bottom p {
        font-size: 15px; } }
    @media screen and (max-width: 460px) {
      .kv_bottom p {
        font-size: 14.5px; } }
  .kv_bottom .is_sp {
    display: none; }
    @media screen and (max-width: 767px) {
      .kv_bottom .is_sp {
        display: block; } }
  .kv_bottom .is_pc {
    display: block; }
    @media screen and (max-width: 767px) {
      .kv_bottom .is_pc {
        display: none; } }

.section_default {
  width: 90%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 100px 0px;
  position: relative; }
  @media screen and (max-width: 767px) {
    .section_default {
      width: 95%; } }
  .section_default .attention {
    font-size: 14px;
    color: dimgrey;
    text-align: right; }
  .section_default-inner {
    display: flex;
    justify-content: flex-end; }
    @media screen and (max-width: 767px) {
      .section_default-inner {
        display: block;
        width: 100%; } }
  .section_default-title {
    color: #000;
    font-size: 23px;
    line-height: 1.7;
    margin-top: 20px;
    width: 15%; }
    @media screen and (max-width: 767px) {
      .section_default-title {
        width: 100%;
        text-align: center;
        margin-bottom: 30px; } }
  .section_default-image {
    width: 80%;
    margin-left: 3%; }
    @media screen and (max-width: 767px) {
      .section_default-image {
        width: 100%;
        margin: 0 auto; } }
    .section_default-image .block {
      margin-bottom: 30px; }
      .section_default-image .block img {
        width: 100%;
        margin-bottom: 10px; }
      .section_default-image .block p {
        text-align: right; }
  .section_default .button_content {
    margin-top: 30px; }
    .section_default .button_content .button {
      max-width: 425px;
      width: 80%;
      padding: 20px 0px;
      text-align: center;
      color: #C69E6E;
      border: #C69E6E 1.5px solid;
      border-radius: 2px;
      margin: 0 auto;
      display: block;
      cursor: pointer;
      transition: .3s;
      font-size: 25px; }
      @media screen and (max-width: 767px) {
        .section_default .button_content .button {
          width: 98%; } }
      .section_default .button_content .button:hover {
        background-color: #e6d9ca;
        color: #ffffff;
        border: #e6d9ca 1.5px solid; }
    @media screen and (max-width: 767px) {
      .section_default .button_content .long-length {
        font-size: 5vw; } }
  .section_default .text_conetnt {
    margin-top: 30px; }
    .section_default .text_conetnt p {
      color: #000;
      font-size: 18px;
      letter-spacing: .2rem;
      text-align: center;
      line-height: 1.7; }
      @media screen and (max-width: 767px) {
        .section_default .text_conetnt p {
          font-size: 15px; } }
      @media screen and (max-width: 460px) {
        .section_default .text_conetnt p {
          font-size: 14.5px; } }
      .section_default .text_conetnt p .is_sp {
        display: none; }
        @media screen and (max-width: 767px) {
          .section_default .text_conetnt p .is_sp {
            display: block; } }
  .section_default .section_access {
    display: flex;
    align-items: center; }
    @media screen and (max-width: 767px) {
      .section_default .section_access {
        justify-content: space-between; } }
    .section_default .section_access .logo {
      width: 100px;
      margin-right: 20px; }
    .section_default .section_access p {
      color: #000;
      font-size: 15px;
      letter-spacing: .2rem;
      text-align: left;
      line-height: 1.5;
      margin-bottom: 20px; }
      .section_default .section_access p a {
        text-decoration: underline; }
      .section_default .section_access p .is_sp {
        display: none; }
        @media screen and (max-width: 767px) {
          .section_default .section_access p .is_sp {
            display: block; } }
  .section_default .map {
    height: 450px; }
    @media screen and (max-width: 767px) {
      .section_default .map {
        height: 200px; } }
  .section_default_insta iframe {
    height: 33vw;
    margin-bottom: 30px; }
    @media screen and (max-width: 767px) {
      .section_default_insta iframe {
        height: 47vw; } }
  .section_default_insta .flex_inner::after {
    content: '';
    display: block;
    clear: both; }
  .section_default_insta .flex_inner a {
    display: flex;
    align-items: center;
    height: 20px;
    cursor: pointer;
    float: right;
    position: relative; }
    .section_default_insta .flex_inner a::after {
      content: '';
      display: block;
      position: absolute;
      bottom: -5px;
      left: -1px;
      content: '';
      width: 100%;
      height: 1px;
      background: #000;
      transform: scale(0, 1);
      transform-origin: right top;
      transition: transform .2s; }
    .section_default_insta .flex_inner a:hover::after {
      transform-origin: left top;
      transform: scale(1, 1); }
    .section_default_insta .flex_inner a img {
      width: 18px;
      margin: 0px 0px 0px 8px; }

.no-top {
  padding-top: 0px; }

.fixed_active {
  width: 273px;
  top: 45%;
  left: 7%;
  position: fixed;
  opacity: 1;
  transition: .3s; }

.fixed_end {
  width: 273px;
  opacity: 0; }
