@charset "UTF-8";
/* CSS Document */
@media screen and (max-width: 1024px) {}
@media screen and (max-width: 768px) {}
@media screen and (max-width: 568px) {}
@media screen and (max-width: 425px) {}
html {
  font-size: 62.5%;
}
body {
  font-size: 1.4em;
}
a {
  color: currentColor;
  text-decoration: none;
}
div#header {
  width: 100%;
  height: 95vh;
  background-color: rgba(30, 30, 30, 1);
  padding: 5vh 0 0;
}
#head_photo {
  width: 90%;
  height: 90vh;
  margin: 0 0 0 10%;
  position: relative;
}
.slide {
  background-size: cover;
  background-position: center center;
  width: 100%;
  height: 100%;
}
div#rogo {
  width: 20%;
  position: absolute;
  bottom: 15%;
  left: 5%;
}
#header h2 {
  position: absolute;
  top: 0;
  -moz-transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform-origin: right top;
  left: -11.7em;
  letter-spacing: .1em;
  color: #FFF;
  font-size: 13px;
  font-family: 'Playfair Display', serif;
}
@media screen and (max-width: 768px) {
  div#rogo {
    width: 40%;
    position: absolute;
    bottom: 15%;
    left: 5%;
  }
}
@media screen and (max-width: 425px) {
  div#rogo {
    width: 50%;
    position: absolute;
    bottom: 15%;
    left: 5%;
  }
}
/*▽▽▽▽ハンバーガー▽▽▽▽*/
#nav-drawer {
  position: relative;
}
/*チェックボックス等は非表示に*/
.nav-unshown {
  display: none;
}
/*アイコンのスペース*/
#nav-open {
  display: inline-block;
  width: 30px;
  height: 22px;
  vertical-align: middle;
}
/*ハンバーガーアイコンをCSSだけで表現*/
#nav-open span, #nav-open span:before, #nav-open span:after {
  position: absolute;
  height: 3px; /*線の太さ*/
  width: 25px; /*長さ*/
  border-radius: 3px;
  background: #ffffff9c;
  display: block;
  content: '';
  cursor: pointer;
}
#nav-open span:before {
  bottom: -8px;
}
#nav-open span:after {
  bottom: -16px;
}
/*閉じる用の薄黒カバー*/
#nav-close {
  display: none; /*はじめは隠しておく*/
  position: fixed;
  z-index: 99;
  top: 0; /*全体に広がるように*/
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0;
  transition: .3s ease-in-out;
}
/*中身*/
#nav-content {
  overflow: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999; /*最前面に*/
  width: 90%; /*右側に隙間を作る*/
  max-width: 330px; /*最大幅*/
  height: 100%;
  background: rgba(255, 255, 255, 0.7);
  transition: .3s ease-in-out; /*滑らかに表示*/
  -webkit-transform: translateX(-105%);
  transform: translateX(-105%); /*左に隠しておく*/
}
/*チェックが入ったらもろもろ表示*/
#nav-input:checked ~ #nav-close {
  display: block; /*カバーを表示*/
  opacity: .5;
}
#nav-input:checked ~ #nav-content {
  -webkit-transform: translateX(0%);
  transform: translateX(0%); /*中身を表示*/
  box-shadow: 6px 0 25px rgba(0, 0, 0, .15);
}
#nav-drawer {
  position: fixed;
  top: 1%;
  right: 1%;
  z-index: 10;
  display: none;
}
#nav-content ul {
  width: 100%;
  margin: auto;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
}
#nav-content ul li {
  margin: auto;
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-size: 1.6rem;
  width: 100%;
}
#nav-content li a {
  display: block;
  width: 100%;
  transition: 0.3s;
}
#nav-content li a:hover {
  background: rgba(245, 165, 165, 0.74);
}
@media screen and (max-width: 568px) {
  #nav-drawer {
    position: fixed;
    top: 1%;
    right: 1%;
    z-index: 10;
    display: block;
  }
}
.menuWrapper {
  position: relative;
  z-index: 101;
  width: 30px;
  height: 30px;
}
#menuButton {
  overflow: hidden;
  display: block;
  position: relative;
  z-index: 0;
  width: 30px;
  height: 30px;
  cursor: pointer;
}
#menuButton span, #menuButton::before, #menuButton::after {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 30px;
  height: 3px;
  margin: auto;
  background: #FFF;
}
#menuButton span {
  overflow: hidden;
  z-index: 1;
  color: #FFF;
}
#menuButton::before {
  z-index: 2;
  transform: translate(0, -10px);
  content: "";
}
#menuButton::after {
  z-index: 2;
  transform: translate(0, 10px);
  content: "";
}
#menuButton span {
  opacity: 1;
  transition: opacity 150ms 50ms;
}
#menuButton::before, #menuButton::after {
  transition: transform 200ms;
}
#menuButton.active span {
  opacity: 0;
  transition: opacity 150ms;
}
#menuButton.active::before {
  transform: rotate(45deg);
}
#menuButton.active::after {
  transform: rotate(-45deg);
}
/*▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
共通事項
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼*/
div.wrapper {
  width: 100%;
  background-color: rgba(30, 30, 30, 1);
}
.contents {
  max-width: 1024px;
  width: 100%;
  margin: auto;
}
.flex {
  display: flex;
}
.wrap {
  flex-wrap: wrap;
}
/*▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
メニュー
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼*/
nav#menu {
  color: #FFF;
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  letter-spacing: 0.1em;
  border-top: solid 1px rgba(255, 255, 255, 0.5);
  border-bottom: solid 1px rgba(255, 255, 255, 0.5);
  background: #1f1f1f;
}
.is-fixed div#menubox {
  width: 100%;
  max-width: 1024px;
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  padding: 5px 0;
}
#menu ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  width: 100%;
  max-width: 1024px;
  margin: auto;
}
nav#menu.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
  background: rgba(255, 255, 255, 0.8);
  color: #1f1f1f;
}
nav#menu.is-fixed ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  width: 70%;
  max-width: 70%;
  margin: auto;
}
h1 {
  z-index: 3;
  letter-spacing: 0.1em;
  font-family: 'Playfair Display', serif;
  font-size: 0px;
  transition: 0.3s;
}
nav#menu.is-fixed h1 {
  z-index: 3;
  font-size: 3.2rem;
  width: 30%;
}
@media screen and (max-width: 1024px) {
  .is-fixed div#menubox {
    width: 90%;
    max-width: 1024px;
    margin: auto;
    display: flex;
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 768px) {
  .is-fixed li {
    width: 33.33333%;
    text-align: center;
    margin: 1px 0;
    transition: 0.3s;
    font-size: 1.3rem;
  }
  nav#menu.is-fixed h1 {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 568px) {
  nav#menu ul {
    display: none !important;
  }
}
/*▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
ニュース
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼*/
div#newcontent {
  /* margin: 80px 0 0; */
  color: #FFF;
  display: flex;
  flex-wrap: wrap;
  padding: 80px 0;
}
.cont {
  position: relative;
  width: 50%;
  height: 40vh;
}
.cont_photo {
  width: 80%;
  height: 90%;
  position: absolute;
  right: 0;
  top: 0;
  background-size: cover;
  background-position: center center;
}
.cont_text_wrap {
  border: solid 1px rgba(255, 255, 255, 0.65);
  position: absolute;
  left: 5%;
  bottom: 0;
  padding: 15px 25px;
}
.cont:nth-child(2) {
  margin: 0;
  margin: 70px 0px 0px 0;
}
.cont:nth-child(2) .cont_photo {
  width: 75%;
  height: 100%;
}
.cont:nth-child(2) .cont_text_wrap {
  /* right: 60%; */
  left: 15%;
  width: 40%;
  max-width: 240px;
  bottom: -20%;
  font-size: 13px;
}
.cont:nth-child(3) {
  margin: 20px 0;
}
.cont:nth-child(3) .cont_photo {
  width: 80%;
  height: 90%;
  margin: 0 9% 0 0;
}
.cont:nth-child(3) .cont_text_wrap {
  bottom: -9%;
  left: 0;
  max-width: 240px;
}
.cont:nth-child(4) {
  display: none;
}
@media screen and (max-width: 568px) {
  .cont {
    position: relative;
    width: 100%;
    height: auto;
  }
  .cont a {
    display: block;
  }
  .cont_photo {
    width: 100%;
    height: 33.333vh;
    position: relative;
    right: 0;
    top: 0;
    background-size: cover;
    background-position: center center;
  }
  p.cont_title {
    max-width: 240px;
  }
  .cont_text_wrap {
    border: none;
    position: relative;
    left: 0%;
    bottom: 0%;
    padding: 15px 25px;
  }
  .cont:nth-child(2) {
    margin: 0;
    margin: 2% 0px 2% 0;
  }
  .cont:nth-child(2) .cont_photo {
    width: 100%;
    height: 33.333vh;
    position: relative;
    left: 0;
  }
  .cont:nth-child(2) .cont_text_wrap {
    /* right: 60%; */
    right: 0% !important;
    bottom: 0%;
    font-size: 13px;
    left: auto;
    width: auto;
    max-width: unset;
  }
  .cont:nth-child(3) {
    margin: 0;
  }
  .cont:nth-child(3) .cont_photo {
    width: 100%;
    height: 33.333vh;
    position: relative;
    margin: 0;
  }
  .cont:nth-child(3) .cont_text_wrap {
    bottom: 0%;
    left: 0%;
    max-width: unset;
  }
}
/*about*/
#about h3 {
  font-size: 4.8vw;
  font-size: 6rem;
  font-family: 'Playfair Display', serif;
  color: #e2e2e2;
  letter-spacing: 0.1em;
}
div#about {
  margin: 50px auto;
  overflow: hidden;
}
#about h4 {
  display: block;
  margin: auto 5%;
  color: #444;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 3.3rem;
  width: 50%;
}
#about h5 {
  display: block;
  margin: auto 5%;
  color: #444;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 3.3rem;
  width: 55%;
}
div#firstblock, div#secandblock {
  display: flex;
  flex-wrap: wrap;
  margin: auto auto 5%;
}
#secandblock .photobig {
  background-size: cover;
  background-position: center center;
  width: 34.3%;
  display: flex;
}
.photobig img {
  width: calc(100% + ((100vw - 1024px) / 2));
  display: block;
  margin: 0;
  padding: 0;
}
.photobig {
  background-size: cover;
  background-position: center center;
  width: 39.3%;
}
.photobig img {
  width: calc(100% + ((100vw - 1024px) / 2));
  display: block;
  padding: 0;
}
#secandblock .photobig img {
  margin: auto 0 auto calc((-100vw + 1024px) / 2);
}
div#thirdblock {
  display: flex;
  /*flex-flow: row-reverse;*/
}
#thirdblock.contents h6 {
  font-family: 'Playfair Display', serif;
  font-size: 2.7rem;
  display: block;
  margin: auto;
  color: #444;
}
@media screen and (max-width: 1024px) {
  .photobig {
    width: 40%;
  }
  .photobig img {
    width: 100%;
  }
  #secandblock .photobig img {
    margin: auto 0 auto 0;
  }
}
@media screen and (max-width: 568px) {
  #about h3 {
    font-size: 4.8vw;
    font-size: 4.3rem;
    font-family: 'Playfair Display', serif;
    color: #e2e2e2;
    letter-spacing: 0.1em;
    margin: 5%;
  }
  div#firstblock, div#secandblock {
    flex-flow: wrap;
  }
  #about h4 {
    display: block;
    margin: auto 5%;
    color: #444;
    font-size: 1.5rem;
    letter-spacing: 0.1em;
    line-height: 3.3rem;
    width: 100%;
  }
  #about h5 {
    display: block;
    margin: auto 5%;
    color: #444;
    font-size: 1.5rem;
    letter-spacing: 0.1em;
    line-height: 3.3rem;
    width: 100%;
  }
  .photobig {
    width: 100%;
  }
  #secandblock .photobig {
    display: none !important;
  }
  #thirdblock.contents h6 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    margin: 5% 5%;
  }
  #about h4 br, #about h5 br {
    display: none;
  }
  div#thirdblock {
    display: flex;
    flex-flow: wrap-reverse;
  }
  #thirdblock .photobig {
    width: 100%;
  }
}
/*▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
フッター
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼*/
footer {
  background-color: rgb(244, 244, 244);
}
footer .contents {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
footer h6 {
  color: #f4f4f4;
  position: absolute;
  top: -1.05em;
  font-size: 6rem;
  font-family: 'Playfair Display', serif;
  letter-spacing: 0.1em;
}
.foot_left {
  width: 60%;
  display: flex;
  flex-wrap: wrap;
  font-size: 1.3rem;
  margin: 30px 0px 30px 10%;
  font-family: 'Playfair Display', serif;
  letter-spacing: 0.1em;
  line-height: 2rem;
}
.f_midashi {
  width: 15%;
  text-align: right;
  margin: 0 2% 0 0px;
}
.f_link {
  width: 81%;
  border-left: solid 1px #979797;
  padding: 0 0 0 1%;
  margin: 0 0 1% 0;
}
.foot_right {
  width: 30%;
  display: flex;
  justify-content: flex-end;
  margin: 30px 0px 30px;
  flex-wrap: wrap;
}
footer .foot_right a {
  display: block;
  width: 15%;
  max-width: 25px;
  margin: 0 3px 0;
}
.f_link a {
  margin: 0 5px 0 5px;
  color: currentColor;
  text-decoration: none;
}
.foot_right p {
  font-size: 1.3rem;
  text-align: right;
}
a.yoyaku {
  width: 100% !important;
  max-width: 100% !important;
  font-size: 1.3rem;
  text-align: right;
}
@media screen and (max-width: 1024px) {
  footer .contents {
    width: 90%;
    margin: auto;
  }
}
@media screen and (max-width: 768px) {
  .foot_left {
    width: 60%;
    display: block;
    font-size: 1.3rem;
    margin: 30px 0px 30px 10%;
    line-height: 1.8rem;
  }
  .f_midashi {
    width: 15%;
    text-align: left;
    margin: 0 0 0 0px;
  }
}
@media screen and (max-width: 568px) {
  .foot_right {
    width: 100%;
    display: block;
    justify-content: flex-end;
    margin: 0px 0px 30px;
    flex-wrap: wrap;
    text-align: center;
    border-top: solid 1px #444;
    padding: 20px 0 0 0;
  }
  .foot_right p {
    font-size: 1.3rem;
    text-align: center;
  }
  .foot_left {
    width: 100%;
    display: block;
    font-size: 1.3rem;
    margin: 0px 0px 30px 0;
    line-height: 1.8rem;
    padding-top: 30px;
  }
  footer .foot_right a {
    display: inline-block;
    width: 15%;
    max-width: 25px;
    margin: 0 3px 0;
  }
  a.yoyaku {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 1.3rem;
    text-align: center;
  }
}