@charset "utf-8";
html {
  font-size: 62.5%
}

body {
  backface-visibility: hidden;
  color: #1E1D1C;
  font-family: "Noto Serif JP", "Times New Roman", YuMincho, "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: 1.6rem;
  font-weight: 300;
  letter-spacing: .1em;
  margin: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow-x: hidden;
}

h1, h2, h3, h4, p {
  font-weight: 300;
  margin: 0;
  padding: 0
}

main {
  display: block
}

a img, img {
  width: 100%
}

input, textarea {
  font-family: "Noto Serif JP", "Times New Roman", YuMincho, "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: 1.8rem
}

.form-control {
  font-size: 1.5rem
}



.ff_serif {
  font-family: "Noto Serif JP", "Times New Roman", YuMincho, "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.ff_sans {
    font-family: "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-serif;
}

.ff_cormorant {
    font-family: "Cormorant Infant"
  }

.fw_300 {
  font-weight: 300
}

.fw_400 {
  font-weight: 400
}

.fw_500 {
  font-weight: 500
}

.fw_600 {
  font-weight: 600
}

.fw_700 {
  font-weight: 700
}

.br_lt_1200 {
  display: block
}

.br_lt_768 {
  display: block
}

.br_gte_768 {
  display: none
}

.br_gte_1200 {
  display: none
}

@media (min-width:768px) {
  .br_lt_768 {
    display: none
  }
  .br_gte_768 {
    display: block
  }
}

@media (min-width:1200px) {
  .br_lt_1200 {
    display: none
  }
  .br_gte_1200 {
    display: block
  }
}

.asterisk_list, .circle_list, .square_list {
  margin-bottom: 0;
  margin-left: 1.2em;
  padding-left: 0
}

.asterisk_list li, .circle_list li, .square_list li {
  list-style-type: none;
  position: relative
}

.asterisk_list li:before, .circle_list li:before, .square_list li:before {
  color: #706963;
  content: "・";
  display: inline-block;
  left: 0;
  margin-left: -1.2em;
  position: absolute;
  text-align: right;
  top: 0;
  width: 1em
}

.asterisk_list li:before {
  content: "※"
}

.square_list li:before {
  content: "■"
}

[data-scrollanimate=anim_fadein], [data-scrollanimateoff].anim_fadein {
  visibility: hidden;
  opacity: 0
}

[data-scrollanimate=anim_fadeout], [data-scrollanimateoff].anim_fadeout {
  visibility: visible;
  opacity: 1
}

[data-scrollanimate=anim_fadeinup], [data-scrollanimateoff].anim_fadeinup {
  visibility: hidden;
  opacity: 0;
  transform: translateY(80px)
}

.anim_fadein {
  animation: fadein_animation 1s linear 0ms forwards
}

@keyframes fadein_animation {
  0% {
    visibility: hidden;
    opacity: 0
  }
  50% {
    visibility: visible;
    opacity: .5
  }
  100% {
    visibility: visible;
    opacity: 1
  }
}

.anim_fadeout {
  animation: fadeout_animation .5s linear 0ms forwards
}

@keyframes fadeout_animation {
  0% {
    visibility: visible;
    opacity: 1
  }
  50% {
    visibility: hidden;
    opacity: .5
  }
  100% {
    visibility: hidden;
    opacity: 0
  }
}

.anim_fadeinup {
  animation: fadeinup_animation 1s linear .25s forwards
}

@keyframes fadeinup_animation {
  0% {
    visibility: hidden;
    opacity: 0;
    transform: translateY(80px)
  }
  100% {
    visibility: visible;
    opacity: 1;
    transform: translateY(0)
  }
}

.parallax-mirror {
  display: none
}

header {
  background-color: #1E1D1C;
  border-top: 3px solid #706963;
  height: 48px
}

.header_logo>a, .header_logo>div {
  align-items: center;
  display: flex;
  height: 45px;
  justify-content: center;
  margin: 0 auto 0 0;
  width: 140px;
}

.header_logo img {
  height: 35px;
  width: auto
}

.header_button {
  display: block;
  height: 45px;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: 0;
  width: 45px;
  z-index: 1032
}

.header_button_inner {
  height: 15.5px;
  left: 50%;
  overflow: hidden;
  position: absolute;
  transform: translate(-50%, -50%);
  transition-duration: 375ms;
  top: 50%;
  width: 46%
}

.header_button_inner div, .header_button_inner div>span {
  left: 0;
  overflow: hidden;
  position: absolute;
  transition-duration: 375ms;
  width: 100%
}

.header_button_inner div {
  height: 1px
}

.header_button_inner div>span {
  background: rgba(255, 255, 255, 1);
  display: block;
  height: 100%;
  top: 0
}

.header_button_inner div>span>span {
  background: rgba(255, 255, 255, 1);
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%
}

.header_button_inner>div:nth-child(1) {
  top: 0
}

.header_button_inner>div:nth-child(2) {
  margin: -1px 0 0;
  top: 50%
}

.header_button_inner>div:nth-child(3) {
  margin: -2px 0 0;
  top: 100%
}

.header_button_inner>div:nth-child(1)>span>span {
  right: -100%
}

.header_button_inner>div:nth-child(3)>span>span {
  left: -100%
}

.header_button[aria-expanded=true] .header_button_inner {
  height: 50%
}

.header_button[aria-expanded=true] .header_button_inner>div:nth-child(1) {
  margin: -1px 0 0;
  top: 50%;
  transform: rotate(-45deg) translate3d(0, 0, 0)
}

.header_button[aria-expanded=true] .header_button_inner>div:nth-child(3) {
  margin: -1px 0 0;
  top: 50%;
  transform: rotate(45deg) translate3d(0, 0, 0)
}

.header_button[aria-expanded=true] .header_button_inner div>span {
  background: rgba(90, 160, 214, 0)
}

.header_button[aria-expanded=true] .header_button_inner>div:nth-child(1)>span>span {
  animation: header_button_on1 375ms ease-in-out 625ms forwards
}

@keyframes header_button_on1 {
  0% {
    right: -100%
  }
  100% {
    right: 0
  }
}

.header_button[aria-expanded=true] .header_button_inner>div:nth-child(3)>span>span {
  animation: header_button_on0 375ms ease-in-out 375ms forwards
}

@keyframes header_button_on0 {
  0% {
    left: -100%
  }
  100% {
    left: 0
  }
}

.side_menu {
  height: 100vh;
  height: 100dvh;
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 1031
}

.side_menu_inner {
  height: 100%;
  position: relative;
  width: 100%
}

.side_menu_bg {
  left: 0;
  position: absolute;
  top: 0
}

.side_menu_bg.side_menu_off {
  opacity: 0
}

.side_menu_bg.side_menu_off, .side_menu_bg.side_menu_on {
  background-color: #706963;
  height: 100%!important;
  margin: 0!important;
  width: 100%!important
}

.side_menu_bg.side_menu_on {
  animation: menu_animation_on 625ms ease-in-out forwards
}

@keyframes menu_animation_on {
  0% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}

.side_menu_bg.side_menu_off {
  animation: menu_animation_off .5s ease-in-out forwards
}

@keyframes menu_animation_off {
  0% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

.side_menu_contents_outer {
  height: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
  position: absolute;
  width: 100%;
  -ms-overflow-style: none;
  scrollbar-width: none
}

.side_menu_contents_outer::-webkit-scrollbar {
  display: none
}

.side_menu_bg.side_menu_on+.side_menu_contents_outer {
  animation: side_menu_animation_on 1s ease-in-out forwards
}

@keyframes side_menu_animation_on {
  0%, 50% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}

.side_menu_bg.side_menu_off+.side_menu_contents_outer {
  animation: side_menu_animation_off .5s ease-in-out forwards
}

@keyframes side_menu_animation_off {
  0% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

.side_menu_contents {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: auto;
  width: 100%
}

.side_menu_contents a {
  color: #fff;
  display: block;
  font-size: 1.843rem;
  letter-spacing: .1em;
  line-height: 5rem
}

.side_menu_contents a:hover {
  color: #1E1D1C;
  text-decoration: none
}

footer {
  background-color: #1E1D1C;
  color: #706963;
  padding-bottom: 40px;
  position: relative
}

footer img {
  width: auto
}

#footer_logo {
  border-bottom: 3px solid #706963;
  padding: 0 0 18.5px
}

main#error+footer #footer_logo {
  border-bottom: none;
  padding: 0;
}

#footer_logo img {
  height: 75px
}

#footer_sns {
  margin: 20px auto 0;
  width: 200px
}

#footer_sns a {
  display: block;
  height: 32px
}

#footer_sns a:hover {
  text-decoration: none
}

#footer_sns a img {
  height: 100%;
  vertical-align: top
}

.footer_inquiry {
  font-size: 1.1rem;
  letter-spacing: .1em;
  line-height: 1.9rem;
  padding: 0 0 60px
}

.footer_inquiry .footer_inquiry_label {
  line-height: 2.6rem
}

.footer_inquiry .corp_name {
  font-size: 1.4rem;
  line-height: 2.8rem;
  margin: 0 auto 10px
}

#copyright {
  /*bottom:26px;*/
  bottom: 14px;
  color: #fff;
  font-size: 1rem;
  position: absolute;
  transform: scale(.7);
  transform-origin: left center;
  width: 142.857%
}

#page_top {
  bottom: 16px;
  height: 29px;
  opacity: 0;
  position: fixed;
  right: 12px;
  width: 29px;
  z-index: 3;
}

#page_top a {
  display: block
}

#page_top a:hover {
  text-decoration: none
}

main#error #top_panels {
  align-items: center;
  display: flex;
  height: calc(100vh - 11.5rem);
  justify-content: center;
  margin: 0;
  padding-top: 4.8rem;
}

main#error #top_panels>div a {
  color: #706963;
  text-decoration: none
}

main#error #top_panels>div a:hover {
  opacity: .8;
  text-decoration: underline
}

main#error+[data-scrollanimate=anim_fadein] {
  animation: none;
  opacity: 1;
  visibility: visible
}

@media (min-width:768px) {
  .parallax-mirror {
    display: block
  }
  header {
    height: 70px
  }
  .header_logo {
    max-width: 75.5px;
    padding: 8.5px 8.5px 8.5px 17px
  }
  .header_logo a {
    height: 50px;
    width: 140px
  }
  .header_logo img {
    height: 50px
  }
  .header_menu_outer {
    margin-right: 6px;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%)
  }
  .header_menu_outer li {
    font-size: 1.2rem;
    letter-spacing: .1em
  }
  .header_menu_outer li a {
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 50%, rgba(229, 221, 214, .3) 50%);
    background-position: 0 0;
    background-size: 200% auto;
    color: #fff;
    padding: .5rem 13.5px;
    transition: .3s
  }
  .header_menu_outer li a:hover {
    background-position: -100% 0
  }
  .header_button {
    display: none
  }
  .header_button[aria-expanded=true] {
    display: block
  }
  #copyright {
    /*bottom:24px*/
    bottom: 16px;
  }
  #page_top {
    height: 41px;
    width: 41px
  }
  main#error #top_panels {
    padding-top: 7rem;
  }
}



