@charset "UTF-8";

/* RESET */
html { box-sizing: border-box; scroll-behavior: smooth; }
*, *:before, *:after{ box-sizing: inherit; }
article, aside, details, figcaption, figure, footer, header, nav, section { display: block; }
body, h1, figure { margin: 0; overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
img { border: none; max-width: 100vw; height: auto; }

p { word-break: keep-all; overflow: hidden; }

/* loading */
.loading {
  position: fixed; top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 10;
  /*background-color: #a82421;*/
  background: url(../images/old-back.png) left top repeat-x;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeOut 1.5s 4.5s forwards;
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    visibility: hidden;
  }
}
.loading-box { }
.loading-logo {
  opacity: 0;
  animation: logo-fade 6s 0.5s forwards;
  margin-bottom: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.loading-text {
  opacity: 0;
  animation: logo-fade 6s 0.5s forwards;
  color: #000;
  font-size: 26px;
  text-align: center;
}
.loading-text img {
  max-width: 80%;
}

@keyframes logo-fade {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }

  60% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 0;
  }
}
@media screen and (max-width:600px) {
  .loading-box {
    width: 90%;
    margin: 0 auto;
  }
  .loading-logo,
  .loading-logo img {
    width: 100%;
  }
  .loading-text {
    font-size: 20px;
  }
}

/* function flex */
.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.flex.wrap {
  flex-wrap: wrap;
}

/* layout */
#layout {
  font-size: 16px;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 2px;
  line-height: 160%;
}

/* jQuery スクロールフェードイン */
@media not print {
  .scrIn.js {
    opacity: 0;
  }
}
.scrIn.js.active {
  transition: all ease-in 2s;
  opacity: 1 !important;
}

/* header */
header {
  width: 100%;
  height: 100vh;
  background: url(../images/head-back.png) center left repeat-x;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 80px solid #002940;
}
.head-box { width: 489px; }
h1 {
  width: 489px;
  margin-bottom: 40px;
}
.open {
  font-family: "Merriweather", serif;
  color: #ffffff;
  font-size: 26px;
  text-align: center;
}
.arrow-down {
  position: absolute;
  bottom: 2em;
  left: 50%;
  color: #fff;
  width: 2em;
  height: 2em;
  border-top: 0.1em solid currentColor;
  border-right: 0.1em solid currentColor;
  transform: translateX(-50%) rotate(135deg);
  animation: blink 2s ease-in-out infinite alternate;
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@media screen and (max-width:600px) {
  .head-box {
    width: 90%;
    margin: 0 auto;
  }
  h1 {
    width: 100%;
  }
  h1 img {
    width: 100%;
    max-width: 489px;
  }
  .open {
    font-size: 20px;
  }
}

/* main */
main {
}
section { position: relative; }
/*
.greeting::before {
  position: absolute; top: 0; left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  display: block;
  content: "";
  width: 1px;
  height: 150px;
  background: #1b2b3a;
}
*/
.greeting {
  /*padding-top: 170px;*/
  line-height: 240%;
  text-align: center;
  background: url(../images/back-greeting.png) bottom repeat-x;
  border-top: 10px solid #002940;
  border-bottom: 80px solid #002940;
  border-right: 80px solid #002940;
  border-left: 80px solid #002940;
}
.greeting h2 {
  margin-top: 80px;
  margin-bottom: 40px;
  line-height: 150%;
}
.greeting p { margin-bottom: 40px; }

.scroll-area {
  width: 100%;
  height: auto;
  overflow: auto;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
}
.scroll-area::-webkit-scrollbar { display: none; }
.scroll-box {
  width: 100vw;
  height: 100vh;
  scroll-snap-align: start;
  align-items: center;
  justify-content: center;
  overflow: auto;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
}
.area-umi {
  background-image: url(../images/back-umi.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center bottom;
  background-attachment: fixed;
}
.area-ofuro {
  background: url(../images/back-ofuro.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}
.area-tatami {
  background: url(../images/back-ryori.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}
_::-webkit-full-page-media, _:future, :root .area-umi, :root .area-ofuro, :root .area-tatami {
  background-attachment: initial!important;
}
.scroll-logo {
  position: relative;
  width: 50%;
  height: 100vh;
}
.scroll-logo img {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.scroll-text {
  position: relative;
  width: 50%;
  height: 100vh;
  background: rgba(255, 255, 255, 0.7);
  color: #455769;
  font-size: 24px;
  line-height: 240%;
}
.scroll-text p {
  position: absolute; top: 50%; left: 20%;
  transform: translate(-20%, -50%);
}
.scroll-logo-sticky {
  position: sticky;
  top: 0;
  left: 0;
}
.scroll-logo-sticky + .scroll-area {
  margin-top: -100vh;
}
.scroll-logo-sticky img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
}

.grand-open {
  width: 100%;
  padding: 20px 0 0 0;
  background: #002940 url(../images/logomark-kanon.png) 25% 20px no-repeat;
  color: #ffffff;
}
.grand-open-content {
  width: 70%;
  margin: 0 auto;
  padding: 60px 0 80px 0;
  background-size: cover;
  align-items: flex-end;
  justify-content: space-between;
}
.grand-open-left::before {
  display: block;
  content: "";
  width: 40px;
  height: 8px;
  background: #ffffff;
  margin-bottom: 40px;
}
.grand-open-left {
  width: 60%;
  padding-top: 40px;
}
.open-text {
  margin: 0 0 40px 0;
  font-size: 24px;
}
.open-big {
  font-size: 36px;
  line-height: 100%;
}
.italic {
  font-style: italic;
}
.open-text p,
.pre-open-text p {
  margin: 0.5em 0;
}
.pre-open-text {
  margin: 0 0 40px 0;
  font-size: 20px;
}
.pre-open-text p.text-right {
  margin-left: 3em;
}
.info ul {
  margin: 0;
  padding: 0;
  list-style: none;
  justify-content: space-between;
}
.info ul li {
  width: 46%;
  margin: 0 0 20px 0;
  padding-bottom: 20px;
  border-bottom: solid 1px #ffffff;
  word-break: keep-all;
}
.info ul li.indent {
  text-indent: -1em;
  padding-left: 1em;
}
.info ul li.bottom {
  border-bottom: none;
}
.info ul li::first-letter {
  font-size: 22px;
}
.tsume {
  letter-spacing: -0.02em;
}
.grand-open-right {
  width: 35%;
}
.grand-open-right img {
  width: 100%;
  border-top-left-radius: 40px;
}

@media screen and (max-width:960px) {
  .grand-open-content {
    width: 90%;
  }
}

@media screen and (max-width:640px) {
  header,
  .greeting {
    border: none;
  }
  .greeting {
    padding: 20px 4% 20px 4%;
    line-height: 160%;
    text-align: left;
    background-size: 150%;
  }
  .greeting p {
    margin-bottom: 20px;
  }
  .greeting .off {
    display: none;
  }
  .scroll-logo,
  .scroll-text {
    width: 100%;
    height: 50%;
  }
  .scroll-logo img {
    width: 40%;
  }
  .scroll-text {
    font-size: 20px;
    line-height: 160%;
  }
  .scroll-text p { width: 100%; padding: 0 4%; }
  .scroll-logo-sticky + .scroll-area {
    margin-top: 0;
  }
  .scroll-logo-sticky img {
    transform: translateY(10%) translateX(-50%);
  }
  .grand-open {
    background-size: 90%;
  }
  .grand-open-left {
    width: 100%;
  }
  .pre-open-text p.text-right {
    margin-left: 1em;
  }
  .grand-open-right {
    width: 90%;
    margin: 0 auto;
  }
}

#reserve-button {
  width: fit-content;
  margin: 30px auto 0 auto;
  padding: 12px 20px;
  color: #fff;
  font-size: 24px;
  font-family: sans-serif;
  background: #156082;
  border: 1px solid #055072;
  border-radius: 12px;
  animation: reserveb 3s ease-in-out infinite alternate;
}
@keyframes reserveb {
    0% { background: #156082; }
    100% { background: #3580a2; }
}
#reserve-button a:hover {
  text-shadow: 0px 0px 4px #ccc;
}

/* footer */
.foot-box {
  width: 55%;
  margin: 0 auto;
  padding: 10px 0 40px 0;
  color: #455769;
  justify-content: space-between;
}
.foot-address {
  width: 50%;
}
.yago {
  font-size: 18px;
}
.foot-logo {
  width: 50%;
  padding-top: 20px;
  text-align: right;
}
.foot-logo img {
  width: 100%;
  max-width: 300px;
}

@media screen and (max-width:960px) {
  .foot-box {
    width: 90%;
  }
}

@media screen and (max-width:640px) {
  .foot-address {
    width: 100%;
  }
  .foot-logo {
    width: 100%;
    padding-top: 40px;
    text-align: left;
  }
}

@media print {
  .loading {
    display: none;
  }
  .greeting {
    padding-bottom: 1em;
    border: 4px;
    page-break-after: always;
  }
  .scroll-logo-sticky {
    position: relative;
  }
  .grand-open {
    /*background: none;
    color: #000;/
  }
  .grand-open-content {
    width: 90%;
  }
}
