@charset "UTF-8";
@font-face {
  font-family: "Medio";
  src: url("../font/medio.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
.mt-0 {
  margin-top: 0 !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.ml-0 {
  margin-left: 0 !important;
}

.mr-0 {
  margin-right: 0 !important;
}

.mx-0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.p-0 {
  padding: 0 !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pl-0 {
  padding-left: 0 !important;
}

.pr-0 {
  padding-right: 0 !important;
}

.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.mt-1 {
  margin-top: 0.25rem !important;
}

.mb-1 {
  margin-bottom: 0.25rem !important;
}

.ml-1 {
  margin-left: 0.25rem !important;
}

.mr-1 {
  margin-right: 0.25rem !important;
}

.mx-1 {
  margin-left: 0.25rem !important;
  margin-right: 0.25rem !important;
}

.my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}

.p-1 {
  padding: 0.25rem !important;
}

.pt-1 {
  padding-top: 0.25rem !important;
}

.pb-1 {
  padding-bottom: 0.25rem !important;
}

.pl-1 {
  padding-left: 0.25rem !important;
}

.pr-1 {
  padding-right: 0.25rem !important;
}

.px-1 {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}

.py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}

.mt-2 {
  margin-top: 0.5rem !important;
}

.mb-2 {
  margin-bottom: 0.5rem !important;
}

.ml-2 {
  margin-left: 0.5rem !important;
}

.mr-2 {
  margin-right: 0.5rem !important;
}

.mx-2 {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

.my-2 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.pt-2 {
  padding-top: 0.5rem !important;
}

.pb-2 {
  padding-bottom: 0.5rem !important;
}

.pl-2 {
  padding-left: 0.5rem !important;
}

.pr-2 {
  padding-right: 0.5rem !important;
}

.px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.mt-3 {
  margin-top: 1rem !important;
}

.mb-3 {
  margin-bottom: 1rem !important;
}

.ml-3 {
  margin-left: 1rem !important;
}

.mr-3 {
  margin-right: 1rem !important;
}

.mx-3 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.my-3 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.p-3 {
  padding: 1rem !important;
}

.pt-3 {
  padding-top: 1rem !important;
}

.pb-3 {
  padding-bottom: 1rem !important;
}

.pl-3 {
  padding-left: 1rem !important;
}

.pr-3 {
  padding-right: 1rem !important;
}

.px-3 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.py-3 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.mt-4 {
  margin-top: 1.5rem !important;
}

.mb-4 {
  margin-bottom: 1.5rem !important;
}

.ml-4 {
  margin-left: 1.5rem !important;
}

.mr-4 {
  margin-right: 1.5rem !important;
}

.mx-4 {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}

.my-4 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.p-4 {
  padding: 1.5rem !important;
}

.pt-4 {
  padding-top: 1.5rem !important;
}

.pb-4 {
  padding-bottom: 1.5rem !important;
}

.pl-4 {
  padding-left: 1.5rem !important;
}

.pr-4 {
  padding-right: 1.5rem !important;
}

.px-4 {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}

.py-4 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.mt-5 {
  margin-top: 3rem !important;
}

.mb-5 {
  margin-bottom: 3rem !important;
}

.ml-5 {
  margin-left: 3rem !important;
}

.mr-5 {
  margin-right: 3rem !important;
}

.mx-5 {
  margin-left: 3rem !important;
  margin-right: 3rem !important;
}

.my-5 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.p-5 {
  padding: 3rem !important;
}

.pt-5 {
  padding-top: 3rem !important;
}

.pb-5 {
  padding-bottom: 3rem !important;
}

.pl-5 {
  padding-left: 3rem !important;
}

.pr-5 {
  padding-right: 3rem !important;
}

.px-5 {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}

.py-5 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.mb {
  margin-bottom: 1em !important;
}

.mt {
  margin-top: 1em !important;
}

.pt-290 {
  padding-top: 290px !important;
}

.w-100 {
  width: 100% !important;
}

.h-auto {
  height: auto !important;
}

.section-pd {
  padding-top: 120px;
  padding-bottom: 120px;
  /*@media (max-width: $container-max-width){
    padding-top: calc($section-pd/$container-max-width*100%);
    padding-bottom: calc($section-pd/$container-max-width*100%);
  }*/
}

.section-pdr {
  padding-top: 120px;
  padding-bottom: 120px;
}
@media (max-width: 1320px) {
  .section-pdr {
    padding-top: 9.0909090909%;
    padding-bottom: 9.0909090909%;
  }
}

.section-pt {
  padding-top: 120px !important;
}

.section-pb {
  padding-bottom: 120px !important;
}

.section-mt {
  margin-top: 120px !important;
}

.section-mb {
  margin-bottom: 120px !important;
}

.d-none {
  display: none;
}

.d-block {
  display: block;
}

.d-inline {
  display: inline;
}

.d-flex {
  display: flex;
}

.d-grid {
  display: grid;
}

.d-ib {
  display: inline-block;
}

.flex-wrap {
  flex-wrap: wrap;
}

.justify-content-center {
  justify-content: center;
}

.justify-content-between {
  justify-content: space-between;
}

.align-items-center {
  align-items: center;
}

.text-center {
  text-align: center !important;
}

.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.nowrap {
  white-space: nowrap !important;
}

@media (max-width: 480px) {
  .text-left-xs {
    text-align: left !important;
  }
}

@media (max-width: 480px) {
  .text-center-xs {
    text-align: center !important;
  }
}

@media (max-width: 480px) {
  .text-right-xs {
    text-align: right !important;
  }
}

@media (max-width: 576px) {
  .text-left-sm {
    text-align: left !important;
  }
}

@media (max-width: 576px) {
  .text-center-sm {
    text-align: center !important;
  }
}

@media (max-width: 576px) {
  .text-right-sm {
    text-align: right !important;
  }
}

@media (max-width: 768px) {
  .text-left-md {
    text-align: left !important;
  }
}

@media (max-width: 768px) {
  .text-center-md {
    text-align: center !important;
  }
}

@media (max-width: 768px) {
  .text-right-md {
    text-align: right !important;
  }
}

@media (max-width: 992px) {
  .text-left-lg {
    text-align: left !important;
  }
}

@media (max-width: 992px) {
  .text-center-lg {
    text-align: center !important;
  }
}

@media (max-width: 992px) {
  .text-right-lg {
    text-align: right !important;
  }
}

@media (max-width: 1200px) {
  .text-left-xl {
    text-align: left !important;
  }
}

@media (max-width: 1200px) {
  .text-center-xl {
    text-align: center !important;
  }
}

@media (max-width: 1200px) {
  .text-right-xl {
    text-align: right !important;
  }
}

@media (max-width: 1400px) {
  .text-left-xxl {
    text-align: left !important;
  }
}

@media (max-width: 1400px) {
  .text-center-xxl {
    text-align: center !important;
  }
}

@media (max-width: 1400px) {
  .text-right-xxl {
    text-align: right !important;
  }
}

@media (max-width: 480px) {
  .hidden-xs {
    display: none !important;
  }
}

@media (min-width: 480px) {
  .visible-xs {
    display: none !important;
  }
}

@media (max-width: 576px) {
  .hidden-sm {
    display: none !important;
  }
}

@media (min-width: 576px) {
  .visible-sm {
    display: none !important;
  }
}

@media (max-width: 768px) {
  .hidden-md {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .visible-md {
    display: none !important;
  }
}

@media (max-width: 992px) {
  .hidden-lg {
    display: none !important;
  }
}

@media (min-width: 992px) {
  .visible-lg {
    display: none !important;
  }
}

@media (max-width: 1200px) {
  .hidden-xl {
    display: none !important;
  }
}

@media (min-width: 1200px) {
  .visible-xl {
    display: none !important;
  }
}

@media (max-width: 1400px) {
  .hidden-xxl {
    display: none !important;
  }
}

@media (min-width: 1400px) {
  .visible-xxl {
    display: none !important;
  }
}

@media (max-width: 480px) {
  .d-xs-none {
    display: none;
  }
  .d-xs-block {
    display: block;
  }
  .d-xs-flex {
    display: flex;
  }
}
@media (max-width: 576px) {
  .d-sm-none {
    display: none;
  }
  .d-sm-block {
    display: block;
  }
  .d-sm-flex {
    display: flex;
  }
}
@media (max-width: 768px) {
  .d-md-none {
    display: none;
  }
  .d-md-block {
    display: block;
  }
  .d-md-flex {
    display: flex;
  }
}
@media (max-width: 992px) {
  .d-lg-none {
    display: none;
  }
  .d-lg-block {
    display: block;
  }
  .d-lg-flex {
    display: flex;
  }
}
@media (max-width: 1200px) {
  .d-xl-none {
    display: none;
  }
  .d-xl-block {
    display: block;
  }
  .d-xl-flex {
    display: flex;
  }
}
@media (max-width: 1400px) {
  .d-xxl-none {
    display: none;
  }
  .d-xxl-block {
    display: block;
  }
  .d-xxl-flex {
    display: flex;
  }
}
.fs-xs {
  font-size: 0.75em !important;
}

.fs-s {
  font-size: 0.875em !important;
}

.grecaptcha-badge {
  visibility: hidden;
}

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: clamp(1rem, 1.5867158672vw, 1.15rem);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  font-size: 1rem;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  line-height: 1.6;
  color: #231815;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

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

p {
  text-align: justify;
  line-height: 2;
  margin-bottom: 1em;
}

ol {
  padding: 0 0 0 1.1em;
  margin-top: 1em;
  margin-bottom: 1em;
}

ul {
  padding: 0 0 0 1.1em;
  margin-top: 1em;
  margin-bottom: 1em;
  list-style-type: disc;
}
ul .normal li + li {
  margin-top: 0.5em;
}

.lead {
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  line-height: 1.5;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  font-weight: normal;
  text-align: center;
  margin-bottom: 1em;
}
.lead.lead--2x {
  font-size: 2.25rem;
}
@media (max-width: 480px) {
  .lead {
    font-size: 1.25rem;
  }
  .lead.lead--2x {
    font-size: 1.75rem;
  }
}

.ttl1 {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
  font-size: 3.125rem;
  letter-spacing: 0.2em;
  font-family: "Medio", serif;
  font-weight: normal;
  line-height: 1.3;
  width: 100%;
  height: 100vh;
  max-height: 600px;
  padding: 0 0 0 1em;
  overflow: hidden;
}
.ttl1.ttl1--s {
  height: 300px;
  justify-content: flex-end;
  padding-bottom: 2rem;
}
.ttl1::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/bg-wrapper.webp");
  background-size: cover;
  background-position: center;
  z-index: -1;
  mask-image: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-image: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);
}
.ttl1::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 180px);
  z-index: 0;
}

.ttl1__en {
  font-size: 1em;
}

.ttl1__ja {
  display: block;
  font-size: 1rem;
  margin-top: 0.5em;
  letter-spacing: 0.2em;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}

@media (max-width: 768px) {
  .ttl1 {
    font-size: 2.5rem;
  }
}
@media (max-width: 480px) {
  .ttl1 {
    font-size: 1.875rem;
  }
}
.ttl2 {
  text-align: center;
  font-size: 3.75rem;
  letter-spacing: 0.2em;
  margin-bottom: 1em;
  font-family: "Medio", serif;
  font-weight: normal;
  line-height: 1.3;
}

.ttl2__ja {
  display: block;
  font-size: 0.75rem;
  margin-top: 0.5em;
  letter-spacing: 0.2em;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}

.ttl2--wh {
  color: #fff;
}

@media (max-width: 480px) {
  .ttl2 {
    font-size: 2.5rem;
  }
}
.ttl3 {
  display: block;
  position: relative;
  font-size: 1.125rem;
  font-weight: normal;
  line-height: 1.3;
  padding: 0.3em 0;
  margin-bottom: 0.5em;
}
.ttl3::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #e9e9e9;
}

.btn {
  position: relative;
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1em;
  padding: 1em 0;
  font-size: 1.125rem;
  font-weight: normal;
  text-decoration: none;
  letter-spacing: 0.1em;
}
.btn span {
  position: relative;
}
.btn span::before {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  display: block;
  width: 0%;
  height: 1px;
  background-color: #231815;
  transition: width 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
@media (hover: hover) {
  .btn:hover span::before {
    width: 100%;
  }
}

.btn--wh {
  color: #fff;
}
.btn--wh span::before {
  background-color: #ffffff;
}

.btn--ro::after {
  content: "";
  display: inline-block;
  width: 3em;
  height: 3em;
  aspect-ratio: 1;
  background-image: url("data:image/svg+xml,%3Csvg%20id='arrow'%20data-name='arrow'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2070%2070'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:none;stroke:%23231815;%7D%3C/style%3E%3C/defs%3E%3Cpath%20class='cls-1'%20d='M26,34.92h16'/%3E%3Cpath%20class='cls-1'%20d='M37.4,29.92l5,5-5,5'/%3E%3Cpath%20class='cls-1'%20d='M35,2c18.23,0,33,14.77,33,33s-14.77,33-33,33S2,53.22,2,35,16.77,2,35,2Z'/%3E%3C/svg%3E");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.btn--ro.btn--wh::after {
  background-image: url("data:image/svg+xml,%3Csvg id='arrow' data-name='arrow' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 70'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; stroke: %23fff; %7D %3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M26,34.92h16'/%3E%3Cpath class='cls-1' d='M37.4,29.92l5,5-5,5'/%3E%3Cpath class='cls-1' d='M35,2c18.23,0,33,14.77,33,33s-14.77,33-33,33S2,53.22,2,35,16.77,2,35,2Z'/%3E%3C/svg%3E");
}
@media (hover: hover) {
  .btn--ro:hover::after {
    transform: scale(1.1);
  }
}

.btn2 {
  position: relative;
  display: block;
  align-items: center;
  padding: 0.3em;
  font-size: 1.5rem;
  font-weight: normal;
  text-decoration: none;
  letter-spacing: 0.2em;
  color: #fff;
  background-image: url(../images/btn2-bg-1.webp);
  background-size: auto;
  background-position: center;
  background-repeat: no-repeat;
  height: 5em;
  width: 100%;
  max-width: 700px;
}

.btn2__bg--2 {
  background-image: url(../images/btn2-bg-2.webp);
}

.btn2__bg--bk {
  background-color: #231815;
  background-image: none;
}

.btn2__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: rgba(30, 30, 30, 0.62);
  border: 1px solid #fff;
}
.btn2__inner::after {
  content: "";
  display: block;
  width: 2.2em;
  height: 2.2em;
  aspect-ratio: 1;
  background-image: url("data:image/svg+xml,%3Csvg id='arrow' data-name='arrow' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 70'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; stroke: %23fff; %7D %3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M26,34.92h16'/%3E%3Cpath class='cls-1' d='M37.4,29.92l5,5-5,5'/%3E%3Cpath class='cls-1' d='M35,2c18.23,0,33,14.77,33,33s-14.77,33-33,33S2,53.22,2,35,16.77,2,35,2Z'/%3E%3C/svg%3E");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin: 1em 1em 1em 0;
  transition: transform 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.btn2__txt {
  flex: 1;
  display: block;
  color: #fff;
  line-height: 1.2;
  padding: 0 0.5em;
  text-align: center;
}

.btn2__txt-sub {
  font-size: 0.6em;
}

@media (hover: hover) {
  .btn2:hover .btn2__inner::after {
    transform: scale(1.1);
  }
}
@media (max-width: 480px) {
  .btn2 {
    font-size: 1rem;
  }
}
.btn3 {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  font-size: 1.125rem;
  font-weight: normal;
  text-decoration: none;
  letter-spacing: 0.1em;
}
.btn3::before {
  display: inline-block;
  content: "\e908";
  font-family: "icomoon";
  font-size: inherit;
  padding: 0 0.5em 0 0;
}
.btn3::after {
  position: absolute;
  bottom: 0.2em;
  right: 0;
  display: block;
  content: "";
  width: calc(100% - 1.5em);
  height: 1px;
  background-color: #231815;
  transition: width 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
@media (hover: hover) {
  .btn3:hover::after {
    width: 0;
  }
}

.btn4 {
  position: relative;
  display: inline-block;
  padding: 0.4em 1em;
  font-size: 0.8em;
  font-weight: normal;
  text-decoration: none;
  background-color: #231815;
  border: 1px solid #231815;
  color: #fff;
  transition: background-color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99), color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.btn4::after {
  display: inline-block;
  content: "\e908";
  font-family: "icomoon";
  font-size: 1em;
  padding: 0 0 0 0.4em;
}
.btn4:hover {
  background-color: transparent;
  color: #231815;
}
.btn4.btn4--ext::after {
  display: inline-block;
  content: "\ea3b";
  font-family: "icomoon";
  font-size: 0.8em;
  padding: 0;
}

.btn5 {
  position: relative;
  display: inline-block;
  padding: 0.4em 0em;
  font-size: 1em;
  font-weight: normal;
  text-decoration: none;
  border-top: 1px solid #231815;
  border-bottom: 1px solid #231815;
  transition: background-color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99), color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.btn5::after {
  display: inline-block;
  content: "\e908";
  font-family: "icomoon";
  font-size: 1em;
  padding: 0 0 0 0.4em;
}
.btn5:hover {
  background-color: #231815;
  color: #fff;
}
.btn5.btn5--ext::after {
  display: inline-block;
  content: "\ea3b";
  font-family: "icomoon";
  font-size: 0.8em;
  padding: 0;
}

.btn-cta {
  position: relative;
  display: block;
  margin: 1em auto;
  text-align: center;
  max-width: 70%;
  padding: 0.5em 2em 0.5em 1em !important;
  font-size: 1.3em !important;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  font-weight: normal;
  text-decoration: none;
  background-color: #231815;
  border: 1px solid #231815;
  color: #fff;
  transition: background-color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99), color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
  cursor: pointer;
}
.btn-cta::after {
  position: absolute;
  top: 50%;
  right: 0.5em;
  transform: translateY(-50%);
  display: inline-block;
  content: "\e908";
  font-family: "icomoon";
  font-size: 1em;
  padding: 0 0 0 0.4em;
}
.btn-cta:hover {
  background-color: transparent;
  color: #231815;
}
@media (max-width: 576px) {
  .btn-cta {
    max-width: 100%;
  }
}
@media (max-width: 480px) {
  .btn-cta {
    font-size: 1.2em;
  }
}

.btn6 {
  position: relative;
  display: inline-block;
  line-height: 1.3;
  text-align: center;
  padding: 1em;
  font-size: 1.125rem;
  font-weight: normal;
  text-decoration: none;
  letter-spacing: 0.1em;
  border: 1px solid #231815;
  width: 100%;
  max-width: 70%;
}
@media (max-width: 576px) {
  .btn6 {
    max-width: 100%;
  }
}

@font-face {
  font-family: "icomoon";
  src: url("../font/icomoon.ttf?e2q68y") format("truetype"), url("../font/icomoon.woff?e2q68y") format("woff"), url("../font/icomoon.svg?e2q68y#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
i, .icomoon-liga {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Enable Ligatures ================ */
  letter-spacing: 0;
  -ms-font-feature-settings: "liga" 1;
  font-feature-settings: "liga";
  font-variant-ligatures: discretionary-ligatures;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-info2:before {
  content: "\e919";
}

.icon-help:before {
  content: "\e91a";
}

.icon-arrow-up3:before {
  content: "\e902";
}

.icon-arrow-right3:before {
  content: "\e903";
}

.icon-arrow-down3:before {
  content: "\e904";
}

.icon-arrow-left3:before {
  content: "\e905";
}

.icon-angle-up:before {
  content: "\e907";
}

.icon-angle-right:before {
  content: "\e908";
}

.icon-angle-down:before {
  content: "\e909";
}

.icon-angle-left:before {
  content: "\e90a";
}

.icon-angle-up2:before {
  content: "\e91c";
}

.icon-angle-right2:before {
  content: "\e91d";
}

.icon-angle-down2:before {
  content: "\e91e";
}

.icon-angle-left2:before {
  content: "\e91f";
}

.icon-fax:before {
  content: "\e90c";
}

.icon-camera:before {
  content: "\e90f";
}

.icon-connection:before {
  content: "\e91b";
}

.icon-file-text:before {
  content: "\e922";
}

.icon-file-empty:before {
  content: "\e924";
}

.icon-file-picture:before {
  content: "\e927";
}

.icon-cart:before {
  content: "\e93a";
}

.icon-envelop:before {
  content: "\e945";
}

.icon-envelop3:before {
  content: "\e920";
}

.icon-envelop3:before {
  content: "\e920";
}

.icon-paper-plane:before {
  content: "\e901";
}

.icon-alarm:before {
  content: "\e950";
}

.icon-calendar:before {
  content: "\e953";
}

.icon-display:before {
  content: "\e956";
}

.icon-download:before {
  content: "\e960";
}

.icon-database:before {
  content: "\e964";
}

.icon-bubble:before {
  content: "\e96b";
}

.icon-bubble2:before {
  content: "\e96e";
}

.icon-enlarge:before {
  content: "\e989";
}

.icon-enlarge2:before {
  content: "\e98b";
}

.icon-cog:before {
  content: "\e994";
}

.icon-cog1:before {
  content: "\e995";
}

.icon-bin:before {
  content: "\e9ac";
}

.icon-cloud:before {
  content: "\e9c1";
}

.icon-cloud-download:before {
  content: "\e9c2";
}

.icon-cloud-upload:before {
  content: "\e9c3";
}

.icon-cloud-check:before {
  content: "\e9c4";
}

.icon-attachment:before {
  content: "\e9cd";
}

.icon-cancel-circle:before {
  content: "\ea0d";
}

.icon-blocked:before {
  content: "\ea0e";
}

.icon-cross:before {
  content: "\ea0f";
}

.icon-checkmark:before {
  content: "\ea10";
}

.icon-arrow-up-left2:before {
  content: "\ea39";
}

.icon-arrow-up2:before {
  content: "\ea3a";
}

.icon-arrow-up-right2:before {
  content: "\ea3b";
}

.icon-arrow-right2:before {
  content: "\ea3c";
}

.icon-arrow-down-right2:before {
  content: "\ea3d";
}

.icon-arrow-down2:before {
  content: "\ea3e";
}

.icon-arrow-down-left2:before {
  content: "\ea3f";
}

.icon-arrow-left2:before {
  content: "\ea40";
}

.icon-circle-up:before {
  content: "\ea41";
}

.icon-circle-right:before {
  content: "\ea42";
}

.icon-circle-down:before {
  content: "\ea43";
}

.icon-circle-left:before {
  content: "\ea44";
}

.icon-circle-right2:before {
  content: "\e921";
}

.icon-circle-right21:before {
  content: "\e923";
}

.icon-circle-down2:before {
  content: "\e926";
}

.icon-circle-left2:before {
  content: "\e928";
}

.icon-checkbox-unchecked:before {
  content: "\ea53";
}

.icon-appleinc:before {
  content: "\eabe";
}

.icon-android:before {
  content: "\eac0";
}

.icon-command:before {
  content: "\ea4e";
}

.icon-ctrl:before {
  content: "\ea50";
}

.icon-checkbox-checked:before {
  content: "\ea52";
}

.icon-edge:before {
  content: "\eadc";
}

.icon-home:before {
  content: "\e906";
}

.icon-home2:before {
  content: "\e90b";
}

.icon-home3:before {
  content: "\e90d";
}

.icon-office:before {
  content: "\e90e";
}

.icon-pencil:before {
  content: "\e910";
}

.icon-free-dial:before {
  content: "\e911";
}

.icon-image:before {
  content: "\e912";
}

.icon-music:before {
  content: "\e913";
}

.icon-film:before {
  content: "\e914";
}

.icon-files-empty:before {
  content: "\e925";
}

.icon-stack:before {
  content: "\e92e";
}

.icon-folder:before {
  content: "\e92f";
}

.icon-folder-open:before {
  content: "\e930";
}

.icon-phone:before {
  content: "\e942";
}

.icon-phone2:before {
  content: "\e915";
}

.icon-location:before {
  content: "\e947";
}

.icon-location2:before {
  content: "\e948";
}

.icon-mobile:before {
  content: "\e958";
}

.icon-mobile2:before {
  content: "\e959";
}

.icon-tablet:before {
  content: "\e95a";
}

.icon-upload:before {
  content: "\e961";
}

.icon-undo:before {
  content: "\e965";
}

.icon-redo:before {
  content: "\e966";
}

.icon-spinner11:before {
  content: "\e984";
}

.icon-search:before {
  content: "\e986";
}

.icon-zoom-in:before {
  content: "\e987";
}

.icon-zoom-out:before {
  content: "\e988";
}

.icon-lock:before {
  content: "\e98f";
}

.icon-unlocked:before {
  content: "\e990";
}

.icon-stats-dots:before {
  content: "\e99b";
}

.icon-stats-bars:before {
  content: "\e99c";
}

.icon-switch:before {
  content: "\e9b6";
}

.icon-list-numbered:before {
  content: "\e9b9";
}

.icon-list:before {
  content: "\e9ba";
}

.icon-list2:before {
  content: "\e9bb";
}

.icon-tree:before {
  content: "\e9bc";
}

.icon-sphere:before {
  content: "\e9c9";
}

.icon-link:before {
  content: "\e9cb";
}

.icon-plus:before {
  content: "\ea0a";
}

.icon-minus:before {
  content: "\ea0b";
}

.icon-info:before {
  content: "\ea0c";
}

.icon-volume-high:before {
  content: "\ea26";
}

.icon-volume-medium:before {
  content: "\ea27";
}

.icon-volume-low:before {
  content: "\ea28";
}

.icon-volume-mute:before {
  content: "\ea29";
}

.icon-volume-mute2:before {
  content: "\ea2a";
}

.icon-loop2:before {
  content: "\ea2e";
}

.icon-infinite:before {
  content: "\ea2f";
}

.icon-shift:before {
  content: "\ea4f";
}

.icon-opt:before {
  content: "\ea51";
}

.icon-radio-checked:before {
  content: "\ea54";
}

.icon-radio-checked2:before {
  content: "\ea55";
}

.icon-radio-unchecked:before {
  content: "\ea56";
}

.icon-line:before {
  content: "\e916";
}

.icon-line2:before {
  content: "\e917";
}

.icon-facebook:before {
  content: "\ea90";
}

.icon-facebook2:before {
  content: "\ea91";
}

.icon-instagram:before {
  content: "\ea92";
}

.icon-twitter:before {
  content: "\ea96";
}

.icon-play:before {
  content: "\e929";
}

.icon-youtube:before {
  content: "\ea9d";
}

.icon-play1:before {
  content: "\e918";
}

.icon-youtube2:before {
  content: "\ea9e";
}

.icon-finder:before {
  content: "\eabf";
}

.icon-windows8:before {
  content: "\eac2";
}

.icon-file-pdf:before {
  content: "\eadf";
}

.icon-file-word:before {
  content: "\eae1";
}

.icon-file-excel:before {
  content: "\eae2";
}

.menu {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 101;
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s cubic-bezier(0.12, 1.03, 0.58, 0.99), visibility 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
  overflow-y: auto;
}

@media (min-width: 769px) {
  .menu--show .menu {
    opacity: 1;
    visibility: visible;
  }
}
.menu__header {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  width: 100%;
}

.menu__body {
  display: flex;
  flex-direction: column;
  gap: 5rem;
}

.menu__body-1 {
  flex: 1;
}

.menu__body-2 {
  flex: 1;
}

.menu__sns {
  display: flex;
  list-style: none;
  justify-content: flex-end;
  padding: 0;
  margin: 0;
  font-size: 1.875rem;
  gap: 0.5em;
  margin: 0.5em 0;
}

.menu__sns-item {
  line-height: 1;
}

.menu__link {
  display: flex;
  justify-content: flex-end;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.75rem;
  gap: 3em;
}

.menu__link-item {
  letter-spacing: 0.1em;
}

@media (max-width: 1200px) {
  .menu__body {
    gap: 0;
  }
}
.popup-menu__button {
  display: flex;
  position: fixed;
  justify-content: center;
  align-items: center;
  top: 10px;
  right: 1rem;
  margin: 0;
  width: 70px;
  height: 40px;
  transition: 0.5s;
  z-index: 105;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: none;
}
.popup-menu__button .popup-menu__button-buns {
  position: relative;
  display: block;
  width: 60%;
  height: 45%;
  list-style: none;
  padding: 0;
  transition: 0.5s all;
  color: #fff;
}
.popup-menu__button .popup-menu__button-bun {
  position: absolute;
  display: block;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, white 35%, white 65%, rgba(255, 255, 255, 0) 100%);
  transition: 0.5s all;
  left: 0;
}
.popup-menu__button .popup-menu__button-bun:nth-child(1) {
  top: 0;
}
.popup-menu__button .popup-menu__button-bun:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
.popup-menu__button .popup-menu__button-bun:nth-child(3) {
  top: 100%;
}
.popup-menu__button.popup-menu--toggled .popup-menu__button-bun {
  background-color: #231815;
}
.popup-menu__button.popup-menu--toggled .popup-menu__button-bun:nth-child(1) {
  transform: rotate(45deg) translateY(-50%) translateZ(0);
  top: 50%;
}
.popup-menu__button.popup-menu--toggled .popup-menu__button-bun:nth-child(2) {
  opacity: 0;
}
.popup-menu__button.popup-menu--toggled .popup-menu__button-bun:nth-child(3) {
  transform: rotate(-45deg) translateY(-50%) translateZ(0);
  top: 50%;
}
.popup-menu__button:hover .popup-menu__button-buns {
  width: 70%;
}

@media (max-width: 768px) {
  .popup-menu__button {
    top: 10px;
    right: 10px;
    width: 70px;
    height: 40px;
  }
}
@media (max-width: 480px) {
  .popup-menu__button {
    top: 10px;
    right: 10px;
    width: 60px;
    height: 40px;
  }
}
.popup-menu {
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 101;
  height: 100%;
  width: 100%;
  overflow-y: scroll;
  padding: 2em;
  opacity: 0;
  transition: 0.5s;
  visibility: hidden;
  background: #fff;
}

.popup-menu__2 {
  margin: 2rem 0;
}

.popup-menu__3 {
  margin: 2rem 0;
}

.popup-menu__sns {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin: 0;
  padding: 0;
  font-size: 1.875rem;
  list-style: none;
  line-height: 1;
}

@media (max-width: 768px) {
  .menu--show .popup-menu {
    opacity: 1;
    visibility: visible;
  }
}
.popup-menu__items {
  padding: 2em 0 0 0;
  list-style: none;
}

.popup-menu__item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  font-size: 1.5rem;
  letter-spacing: 0.1em;
}

.popup-menu__item-link {
  color: #000;
  padding: 0.85rem 0;
  font-weight: 300;
  display: block;
  transition: 0.5s;
}
.popup-menu__item-link:last-child {
  border: none;
}

.popup-menu--dropdown > .popup-menu__item-link {
  position: relative;
}

.popup-menu__open-button {
  position: absolute;
  display: block;
  right: 0;
  top: 50%;
  width: 1em;
  height: 1em;
  transform: translateY(-50%);
}
.popup-menu__open-button::before, .popup-menu__open-button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #231815;
}
.popup-menu__open-button::after {
  transition: 0.2s transform cubic-bezier(0.12, 1.03, 0.58, 0.99);
  transform: rotate(90deg);
}
.popup-menu__sub--show .popup-menu__open-button::after {
  transform: rotate(0deg);
}

.popup-menu__sub {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.popup-menu__sub > .popup-menu__sub-items {
  min-height: 0;
  padding-bottom: 0;
}

.popup-menu__sub--show .popup-menu__sub {
  grid-template-rows: 1fr;
}
.popup-menu__sub--show .popup-menu__sub > .popup-menu__sub-items {
  padding-bottom: 1rem;
}

.popup-menu__sub-items {
  padding-bottom: 1rem;
  list-style: none;
  margin: 0;
}

.popup-menu__sub-item {
  position: relative;
  font-size: 1rem;
  letter-spacing: 0.1em;
}
.popup-menu__sub-item:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 0.4em;
  height: 1px;
  background-color: #231815;
}

.popup-menu__sub-link {
  font-size: 1.3em;
  display: block;
  height: 100%;
  padding: 0.5em 1em;
}

.animate__fadeInUpSmall {
  animation-name: fadeInUpSmall;
  animation-timing-function: cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

@keyframes fadeInUpSmall {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.imgtxt {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
}
.imgtxt.imgtxt--rev {
  flex-direction: row;
}

.imgtxt__1 {
  flex: 0 0 30%;
}

.imgtxt__2 {
  flex: 1;
  padding: 0 20% 0 0;
}
.imgtxt--rev .imgtxt__2 {
  padding: 0 0 0 20%;
}

.imgtxt__img {
  display: block;
}

@media (max-width: 768px) {
  .imgtxt {
    flex-direction: column-reverse;
    align-items: flex-end;
  }
  .imgtxt__1 {
    width: 50%;
    flex: 0 0 auto;
  }
  .imgtxt__2 {
    width: 100%;
    flex: 0 0 auto;
    margin-bottom: 2rem;
  }
  .imgtxt--rev .imgtxt__2 {
    padding: 0 20% 0 0;
  }
}
.imgtxt2 {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  padding: 0;
  list-style: none;
  margin: 0;
  border: 1px solid #231815;
}

.imgtxt2__1 {
  flex: 0 0 60%;
}

.imgtxt2__2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 3rem;
  flex: 1;
}

.imgtxt2__header {
  display: block;
}

.imgtxt2__ttl {
  font-size: 1.5em;
  font-weight: normal;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  letter-spacing: 0.1em;
  padding-bottom: 1em;
  margin-bottom: 1em;
  border-bottom: 1px solid #231815;
}

.imgtxt2__body {
  display: block;
}

.imgtxt2__img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  width: 100%;
  height: 100%;
}

@media (max-width: 768px) {
  .imgtxt2 {
    flex-direction: column;
  }
  .imgtxt2 .imgtxt2__1 {
    flex: 0 0 100%;
  }
  .imgtxt2 .imgtxt2__2 {
    flex: 0 0 100%;
  }
}
@media (max-width: 480px) {
  .imgtxt2__2 {
    padding: 2rem;
  }
}
.imgttl {
  position: relative;
  margin: 0 0 100px 0;
  display: flex;
  flex-direction: row-reverse;
  min-height: 600px;
}
.imgttl.imgttl--rev {
  flex-direction: row;
}

.imgttl__1 {
  flex: 0 0 36%;
  min-width: 215px;
  display: flex;
  flex-direction: column;
}

.imgttl__2 {
  position: relative;
  flex: 1;
}

.imgttl__ttl {
  position: relative;
  display: flex;
  flex-direction: column-reverse;
  justify-content: center;
  writing-mode: vertical-rl;
  text-align: left;
  font-size: 1.6875rem;
  padding: 3.75rem 11% 3.75rem 11%;
  letter-spacing: 0.2em;
}

.imgttl__ttl-no-img {
  position: absolute;
  top: -60px;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
}

.imgttl__ttl-main {
  display: inline-block;
  font-size: 3em;
  white-space: nowrap;
  letter-spacing: 0.2em;
}

.imgttl__desc {
  text-align: center;
  padding: 0 5.4% 3.75rem 5.4%;
}

.imgttl__media {
  width: calc(100% + (100vw - 1320px) / 2 + 2rem);
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  overflow: hidden;
}
@media (max-width: 1320px) {
  .imgttl__media {
    width: calc(100% + 2rem);
  }
}
.imgttl--rev .imgttl__media {
  right: auto;
  left: 0;
}

.imgttl__img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
  width: 100%;
  height: 100%;
}

@media (max-width: 1320px) {
  .imgttl__media {
    width: calc(100% + 2rem);
  }
}
@media (max-width: 768px) {
  .imgttl {
    flex-direction: column;
    margin-bottom: 2rem;
    min-height: initial;
  }
  .imgttl.imgttl--rev {
    flex-direction: column;
  }
  .imgttl__1 {
    width: 100%;
    flex: 0 0 auto;
    padding: 0;
    margin-bottom: 2rem;
  }
  .imgttl__2 {
    width: 100%;
    flex: 0 0 auto;
  }
  .imgttl__ttl {
    padding: 0;
    writing-mode: horizontal-tb;
    flex-direction: column;
  }
  .imgttl__ttl-no-img {
    position: relative;
    top: initial;
    left: initial;
    transform: initial;
  }
  .imgttl__media {
    position: relative;
    width: 100%;
  }
  .imgttl__img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
  }
  .imgttl__desc {
    text-align: justify;
    padding: 0 0 0 1em;
  }
}
.flow {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  max-width: 1320px;
}

.flow__item {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 2rem;
  padding: 0;
}
.flow__item.flow__item--rev {
  flex-direction: row-reverse;
}

.flow__item + .flow__item {
  position: relative;
  padding-top: 100px;
}
.flow__item + .flow__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: auto;
  aspect-ratio: 300/110;
  background-image: url("../images/ico-scroll-down.svg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
  animation: aniScrollDown 2s infinite;
}
@media (max-width: 576px) {
  .flow__item + .flow__item::before {
    width: 15%;
    min-width: 60px;
  }
}
.flow--no-arrow .flow__item + .flow__item {
  padding-top: 0;
}
.flow--no-arrow .flow__item + .flow__item::before {
  display: none;
}

@keyframes aniScrollDown {
  0% {
    transform: translateX(-50%) translateY(0);
  }
  100% {
    transform: translateX(-50%) translateY(10px);
  }
}
.flow__1 {
  display: flex;
  flex: 0 0 50%;
  padding: 8rem 0 2rem 1rem;
}
.flow__item--rev .flow__1 {
  padding: 8rem 1rem 2rem 0;
}

.flow__2 {
  position: relative;
  display: flex;
  flex: 0 0 40%;
  padding: 0 0 5rem 0;
}

.flow__content {
  position: relative;
}
.flow__content::before {
  display: block;
  content: "";
  position: absolute;
  top: -3rem;
  left: 0;
  width: 100vw;
  height: 1px;
  background-color: #aaaaaa;
  z-index: 0;
}
.flow__item--rev .flow__content::before {
  left: auto;
  right: 0;
}

.flow__ttl {
  display: grid;
  align-items: center;
  grid-template-columns: 5em 1fr;
  grid-template-rows: auto auto;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  margin-bottom: 1em;
}

.flow__ttl-no {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  height: 100%;
  grid-column: 1;
  grid-row: 1/3;
  padding-right: 1em;
}
.flow__ttl-no.flow__ico-bar {
  position: relative;
}
.flow__ttl-no.flow__ico-bar::before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 30%;
  width: 1px;
  height: 150%;
  background-color: #231815;
}

.flow__ttl-sub {
  display: block;
  grid-column: 2;
  grid-row: 1;
  font-size: 1rem;
  margin-top: 1em;
}

.flow__ttl-main {
  display: block;
  grid-column: 2;
  grid-row: 2;
  margin-top: 1em;
}

.flow__desc {
  margin-top: 2em;
  padding: 0 0 0 10%;
}

.flow__media {
  width: 100%;
  height: 100%;
}

.flow__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.flow--short .flow__img {
  height: auto;
}

@media (max-width: 768px) {
  .flow__item {
    flex-direction: column-reverse;
    margin-bottom: 3rem;
  }
  .flow__item.flow__item--rev {
    flex-direction: column-reverse;
  }
  .flow--no-arrow .flow__item + .flow__item {
    padding-top: 100px;
  }
  .flow__1 {
    flex: 0 0 100%;
    padding: 0;
  }
  .flow__item--rev .flow__1 {
    padding: 0;
    justify-content: flex-end;
  }
  .flow__2 {
    flex: 0 0 100%;
    padding: 0;
    margin-bottom: 2rem;
  }
  .flow__item--rev .flow__2 {
    justify-content: flex-end;
  }
  .flow__content {
    width: 80%;
    padding: 0 1rem 0 1rem;
  }
  .flow__content::before {
    display: none;
  }
  .flow__media {
    width: 80%;
    aspect-ratio: 1;
  }
  .flow--short .flow__media {
    aspect-ratio: initial;
  }
}
@media (max-width: 576px) {
  .flow__ttl-no.flow__ico-bar::before {
    width: 120%;
    height: 1px;
    top: 50%;
    bottom: auto;
    left: auto;
    right: 1.5em;
  }
  .flow__media {
    aspect-ratio: 2/3;
  }
  .flow--short .flow__media {
    aspect-ratio: initial;
  }
}
@media (max-width: 480px) {
  .flow__ttl {
    font-size: 1.25rem;
  }
  .flow__ttl-no {
    grid-row: 1;
  }
  .flow__ttl-no.flow__ico-bar::before {
    display: none;
  }
  .flow__ttl-sub {
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    font-size: 0.9375rem;
  }
  .flow__ttl-main {
    grid-column: 1/3;
    grid-row: 2;
  }
  .flow__content {
    width: 100%;
  }
  .flow__desc {
    padding: 0;
  }
}
.notebox {
  display: block;
  padding: 2em;
  border: 1px solid #231815;
  margin: 2em auto;
  max-width: 768px;
}

.notebox__ttl {
  display: block;
  font-size: 1rem;
  text-align: center;
  letter-spacing: 0.1em;
  font-weight: normal;
  font-family: "Medio", serif;
  line-height: 1;
  margin-bottom: 2em;
}
.notebox__ttl span {
  display: inline-block;
  position: relative;
}
.notebox__ttl span::before, .notebox__ttl span:after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: calc(100% + 0.5em);
  width: 2em;
  height: 1px;
  background-color: #231815;
}
.notebox__ttl span:after {
  right: auto;
  left: calc(100% + 0.5em);
}

.movie {
  position: relative;
  display: block;
  overflow: hidden;
}
.movie::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 1;
  opacity: 1;
  transition: opacity 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.movie:hover::before {
  opacity: 0.5;
}
.movie::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50%;
  max-width: 200px;
  aspect-ratio: 1;
  background-image: url("../images/ico-play.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 2;
  opacity: 1;
  transition: opacity 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.movie:hover::after {
  opacity: 0.5;
}

.movie__img {
  display: block;
  transform: scale(1);
  transition: transform 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
@media (hover: hover) {
  .movie:hover .movie__img {
    transform: scale(1.05);
  }
}

.voice {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0;
}

.voice__item {
  display: grid;
  grid-template-columns: 25% 1fr;
  gap: 0 3rem;
  padding: 3rem;
  background-color: #fff;
  border-radius: 1rem;
  box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1);
}

.voice__item + .voice__item {
  margin-top: 4rem;
}
@media (max-width: 992px) {
  .voice__item + .voice__item {
    margin-top: 4.8484848485%;
  }
}
@media (max-width: 768px) {
  .voice__item + .voice__item {
    margin-top: 2rem;
  }
}

.voice__face {
  display: block;
  grid-column: 1;
  grid-row: 1/3;
}

.voice__face-img {
  display: block;
  border-radius: 1rem;
  margin-bottom: 0.5rem;
}

.voice__name {
  display: block;
  font-size: 0.8em;
  margin: 0.5em 0;
  text-align: center;
}

.voice__ttl {
  font-size: 1.5rem;
  margin-bottom: 0.8em;
  grid-column: 2;
  grid-row: 1;
}

.voice__desc {
  grid-column: 2;
  grid-row: 2;
}

@media (max-width: 768px) {
  .voice__item {
    gap: 0 2rem;
    padding: 2rem;
    border-radius: 1rem;
  }
  .voice--v2 .voice__item {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1rem;
  }
  .voice--v2 .voice__face {
    grid-column: 1;
    grid-row: 1;
  }
  .voice--v2 .voice__name {
    margin: 0.5em 0;
    text-align: right;
  }
  .voice--v2 .voice__ttl {
    grid-column: 1;
    grid-row: 2;
    margin-bottom: 0;
  }
  .voice--v2 .voice__desc {
    grid-column: 1;
    grid-row: 3;
    margin-top: 0;
  }
}
@media (max-width: 576px) {
  .voice__face {
    grid-column: 1;
    grid-row: 1;
  }
  .voice__name {
    font-size: 0.6em;
  }
  .voice__ttl {
    font-size: 1.25rem;
    align-self: center;
  }
  .voice__desc {
    margin-top: 1rem;
    grid-column: 1/3;
    grid-row: 2;
  }
}
@media (max-width: 480px) {
  .voice__item {
    grid-template-columns: 35% 1fr;
    gap: 0 1rem;
    padding: 1rem;
  }
  .voice__ttl {
    font-size: 1.125rem;
  }
}
.work {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
}
.work.work--rev {
  flex-direction: row-reverse;
}

.work__1 {
  width: 50%;
}

.work__2 {
  width: 50%;
  padding: 3rem 0 0 8%;
}
.work--rev .work__2 {
  padding: 3rem 8% 0 0;
}

.work__media {
  display: block;
  position: relative;
  overflow: hidden;
}

.work__img {
  display: block;
  transform: scale(1);
  transition: transform 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.work__movie {
  font-size: 1.5rem;
}

@media (hover: hover) {
  a.work__media:hover {
    cursor: pointer;
  }
  a.work__media:hover .work__img {
    transform: scale(1.05);
  }
}
.work__ttl {
  font-size: 2.5rem;
  font-weight: normal;
  line-height: 1.3;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #aaaaaa;
  margin-bottom: 0.5em;
}

.work__ttl-sub {
  display: block;
  font-size: 0.5em;
  margin-bottom: 0.5em;
}

.work__ttl-main {
  display: block;
  font-size: 1em;
}

.work__info {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.5em;
}
.work__info dt {
  position: relative;
  padding: 0 1.5em 0 0;
}
.work__info dt:after {
  display: inline-block;
  position: absolute;
  right: 0;
  top: 0.2em;
  content: ":";
  line-height: 1;
}
.work__info dd {
  padding: 0 0 0 0.5em;
}

.work__voice {
  display: block;
  margin-top: 4em;
}
.work__voice dt {
  font-size: 1.5rem;
  line-height: 1.3;
  font-weight: normal;
  margin-bottom: 0.5em;
}

.work__staff {
  display: block;
  margin-top: 2em;
  padding: 1.5em;
  background-color: #f5f5f5;
  font-size: 0.875rem;
}
.work__staff dt {
  font-size: 1.4em;
  line-height: 1.3;
  font-weight: normal;
  margin-bottom: 0.5em;
}

@media (max-width: 768px) {
  .work {
    flex-direction: column;
  }
  .work.work--rev {
    flex-direction: column;
  }
  .work__1 {
    width: 100%;
    margin-bottom: 0;
  }
  .work__2 {
    width: 100%;
    padding: 0;
    margin-top: 5%;
  }
  .work--rev .work__2 {
    padding: 0;
  }
  .work__voice {
    margin-top: clamp(2rem, 6%, 4rem);
  }
}
@media (max-width: 576px) {
  .work__ttl {
    font-size: 1.5rem;
  }
  .work__voice dt {
    font-size: 1.25rem;
  }
  .work__staff dt {
    font-size: 1.125rem;
  }
}
.work-swiper {
  width: 100%;
  margin-bottom: 10px;
}
.work-swiper .swiper-slide {
  aspect-ratio: 1;
  position: relative;
  overflow: hidden;
}
.work-swiper .swiper-slide img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.work-swiper .swiper-button-next,
.work-swiper .swiper-button-prev {
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.work-swiper .swiper-button-next::after,
.work-swiper .swiper-button-prev::after {
  font-size: 20px;
}

.work-thumbs {
  width: 100%;
  padding: 10px 0;
  margin: 0 auto 0 0;
}
.work-thumbs .swiper-slide {
  width: 25%;
  height: 100%;
  aspect-ratio: 1;
  position: relative;
  cursor: pointer;
  overflow: hidden;
  background-color: #000;
}
.work-thumbs .swiper-slide img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.6;
  transition: opacity 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.work-thumbs .swiper-slide-thumb-active img {
  opacity: 1;
}

.article {
  display: block;
}

.article__date {
  display: block;
  font-size: 1rem;
  margin-bottom: 0.5em;
  color: #aaaaaa;
}

.article__body {
  display: block;
}

.column {
  width: 100%;
  margin: 0 auto;
  background-color: #fff;
}

.column__list {
  display: flex;
  flex-direction: column;
  list-style: none;
  padding: 0;
  font-size: 1rem;
}

.column__item {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  padding: 1rem 6rem 1rem 0;
}
.column__item:not(:first-child) {
  border-top: 1px solid #e9e9e9;
}
.column__item::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0, -50%);
  width: 3rem;
  height: 3rem;
  background-image: url("data:image/svg+xml,%3Csvg%20id='arrow'%20data-name='arrow'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2070%2070'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:none;stroke:%23231815;%7D%3C/style%3E%3C/defs%3E%3Cpath%20class='cls-1'%20d='M26,34.92h16'/%3E%3Cpath%20class='cls-1'%20d='M37.4,29.92l5,5-5,5'/%3E%3Cpath%20class='cls-1'%20d='M35,2c18.23,0,33,14.77,33,33s-14.77,33-33,33S2,53.22,2,35,16.77,2,35,2Z'/%3E%3C/svg%3E");
  transition: transform 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.column__item:hover::after {
  transform: translate(5px, -50%);
}

.column__media {
  flex: 0 0 40%;
  margin-right: 2rem;
  overflow: hidden;
}

.column__img {
  display: block;
  transition: transform 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.column__ttl {
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  letter-spacing: 0.1em;
  flex: 1;
  line-height: 2;
}

.column__link {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  text-indent: -9999em;
  z-index: 1;
}

@media (hover: hover) {
  .column__item:hover .column__img {
    transform: scale(1.05);
  }
}
@media (max-width: 768px) {
  .column__item {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 576px) {
  .column {
    padding: 2rem 2rem;
  }
  .column__item {
    padding-right: 4rem;
  }
}
@media (max-width: 480px) {
  .column {
    padding: 2rem 1rem;
  }
}
.cta {
  display: grid;
  grid-template-columns: 68% 32%;
}

.cta__catch {
  grid-column: 1/3;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-family: "M PLUS Rounded 1c", "UDShinMGoPro", sans-serif;
  font-weight: normal;
  letter-spacing: 0.1em;
  line-height: 1.3;
  border: 1px solid #231815;
  padding: 0.8em 1em;
  margin-bottom: 1.5em;
  text-align: center;
}

.cta__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  grid-column: 1;
  grid-row: 2;
  padding: 1em 1em;
}

.cta__ttl {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3em;
  font-size: 3.125rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  line-height: 1.3;
  margin-bottom: 1em;
  white-space: nowrap;
}

.cta__ttl-sub {
  display: inline-block;
  font-size: 0.4em;
}

.cta__desc {
  margin-bottom: 1em;
}

.cta__btn {
  text-align: center;
}

.cta__media {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: 2rem;
}

@media (max-width: 768px) {
  .cta {
    grid-template-columns: 100%;
  }
  .cta__catch {
    grid-column: 1;
    grid-row: 1;
    font-size: 1.125rem;
  }
  .cta__body {
    grid-column: 1;
    grid-row: 3;
    padding: 0;
  }
  .cta__ttl {
    align-items: center;
    font-size: 2.5rem;
    margin-top: 1em;
  }
  .cta__desc {
    margin-bottom: 1em;
  }
  .cta__media {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 0;
  }
  .cta__img {
    width: 80%;
  }
}
@media (max-width: 576px) {
  .cta__ttl {
    font-size: 1.875rem;
  }
  .cta__img {
    width: 100%;
  }
}
.series {
  display: grid;
  grid-template-columns: 70% 30%;
  grid-template-rows: auto 1fr;
}

.series__header {
  display: block;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
}

.series__body {
  display: flex;
  justify-content: center;
  align-items: center;
  grid-column: 1;
  grid-row: 2;
  background-image: url("../images/bg-series-1.webp");
  background-size: 100% 100%;
  background-position: top center;
  background-repeat: no-repeat;
}
.series--bg-2 .series__body {
  background-image: url("../images/bg-series-2.webp");
}
.series--bg-3 .series__body {
  background-image: url("../images/bg-series-3.webp");
}
.series--bg-4 .series__body {
  background-image: url("../images/bg-series-4.webp");
}

.series__ttl {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  letter-spacing: 0.15em;
  line-height: 1.3;
}

.series__ttl-no {
  display: block;
  padding: 0.8em 0 0.8em 0.8em;
  line-height: 1;
  border-left: 1px solid #231815;
  border-top: 1px solid #231815;
}

.series__ttl-main {
  display: block;
  padding: 0 0 0 0.5em;
  font-weight: 500;
}

.series__catch {
  text-align: right;
  padding-right: 1em;
}

.series__side {
  grid-column: 2;
  grid-row: 1/3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 0 0 2rem;
}

.series__list {
  list-style: none;
  padding: 2rem 0;
  margin: 0;
}

.series__item {
  padding: 0.5rem;
}
.series__item > img {
  display: block;
}

.series__btn {
  text-align: center;
}

@media (max-width: 768px) {
  .series {
    grid-template-columns: 100%;
    grid-template-rows: auto;
  }
  .series__side {
    grid-column: 1;
    grid-row: 3;
    flex-direction: column;
    align-items: center;
    padding: 1rem 0 0 0;
  }
  .series__catch {
    margin-bottom: 1em;
  }
  .series__list {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0;
    margin-bottom: 0.5em;
  }
  .series__btn {
    text-align: center;
  }
  .series__btn a {
    padding-left: 2em;
    padding-right: 2em;
  }
}
@media (max-width: 576px) {
  .series__ttl {
    font-size: 1.25rem;
    margin-bottom: 0.5em;
  }
  .series__catch {
    font-size: 0.875rem;
  }
}
.table {
  font-size: 1rem;
}

.table th, .table td {
  padding: 0.5em 1em;
  font-weight: normal;
}

.table--no-style th, .table--no-style td {
  vertical-align: top;
  text-align: left;
  font-weight: normal;
  padding-right: 1em;
}

.table--row-style th, .table--row-style td {
  vertical-align: middle;
  text-align: left;
  padding: 0.5em 0.5em 0.5em 0;
}

.table--full {
  width: 100%;
}

.table--stripe thead tr {
  background-color: #e9e9e9;
}
.table--stripe tbody tr:nth-child(even) {
  background-color: #e9e9e9;
}
.table--stripe tbody tr:nth-child(odd) {
  background-color: #ffffff;
}

.table--nowrap th, .table--nowrap td {
  white-space: nowrap;
}

.table--th-pd th {
  padding: 1em 2em;
}
@media (max-width: 576px) {
  .table--th-pd th {
    padding: 1em 0.5em;
  }
}

.table--td-pd td {
  padding: 1em 2em;
}
@media (max-width: 576px) {
  .table--td-pd td {
    padding: 1em 0.5em;
  }
}

.table--th-nowrap th {
  white-space: nowrap;
}

.table--td-nowrap td {
  white-space: nowrap;
}

.table--th-normal th {
  font-weight: normal;
}

.table--th-middle th {
  vertical-align: middle !important;
}

@media (max-width: 576px) {
  .table--th-80-sp th {
    width: 80px;
  }
}

@media (max-width: 768px) {
  .table--th-min-140-md th {
    min-width: 140px;
  }
}

@media (min-width: 993px) {
  .table--th-min-140-lg th {
    min-width: 140px;
  }
}

.table--grid {
  border-collapse: collapse;
}
.table--grid th, .table--grid td {
  border: 1px solid #e9e9e9;
  padding: 0.5em 1em;
}

.table--line {
  border-collapse: collapse;
}
.table--line th, .table--line td {
  border: 1px solid #e9e9e9;
  padding: 0.5em 1em;
}

.table--h-line {
  border-collapse: collapse;
}
.table--h-line th, .table--h-line td {
  border-bottom: 1px solid #e9e9e9;
  padding: 0.5em 1em;
}

.table--h-dash-line {
  border-collapse: collapse;
}
.table--h-dash-line th, .table--h-dash-line td {
  border-bottom: 1px dashed #e9e9e9;
  padding: 0.5em 1em;
}

.table--th-text-right th {
  text-align: right;
}

.table--td-text-right td {
  text-align: right;
}

.table--text-right th, .table--text-right td {
  text-align: right;
}

.table--text-left th, .table--text-left td {
  text-align: left;
}

.table--text-center th, .table--text-center td {
  text-align: center;
}

.table--text-top th, .table--text-top td {
  vertical-align: top;
}

.table--text-line-height-s th, .table--text-line-height-s td {
  line-height: 1.4;
}

@media (max-width: 576px) {
  .table--sm-1col {
    display: block;
  }
  .table--sm-1col tr, .table--sm-1col th, .table--sm-1col td, .table--sm-1col tbody {
    display: block;
  }
  .table--sm-1col th, .table--sm-1col td {
    line-height: 1.3;
    text-align: left;
  }
  .table--sm-1col th {
    border-bottom: none;
    padding: 0.5em 0.3em;
  }
  .table--sm-1col td {
    padding: 0 0.3em 0.7em 1em;
    line-height: 1.8;
  }
  .table--sm-1col td:last-child {
    border-bottom: none;
  }
  .table--sm-1col tr + tr {
    margin-top: 1em;
  }
}

.table--p05em th, .table--p05em td {
  padding: 0.5em;
}

.table--pd-lr th, .table--pd-lr td {
  padding-left: 0.5em;
  padding-right: 0.5em;
}

.table--st1 {
  border-collapse: collapse;
}
.table--st1 th, .table--st1 td {
  padding: 1em 1.5em;
}
.table--st1 th {
  text-align: left;
  border-bottom: 2px solid #1e1e1e;
  white-space: nowrap;
  vertical-align: top;
}
.table--st1 td {
  text-align: left;
  border-bottom: 2px solid #e9e9e9;
}
@media (max-width: 576px) {
  .table--st1 th, .table--st1 td {
    padding: 0.3em 1em;
  }
}

@media (max-width: 576px) {
  .table-responsive-sm {
    display: block;
    width: 100%;
    overflow-x: auto;
  }
  .table-responsive-sm > .table {
    border: 1px solid #e9e9e9;
  }
  .table--td-p0-lr-sp td {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (max-width: 768px) {
  .table-responsive-md {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-md > .table {
    border: 1px solid #e9e9e9;
    min-width: 768px;
  }
}
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-responsive > .table {
  border: 1px solid #e9e9e9;
}

.container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 1rem;
}

.container--s {
  max-width: 1120px;
}

.container--s2 {
  max-width: 900px;
}

.l-kodawari {
  display: block;
  padding: 0;
  margin: 0;
  list-style: none;
}

.l-kodawari__item:not(:last-child) {
  margin-bottom: 150px;
}

@media (max-width: 768px) {
  .l-kodawari__item:not(:last-child) {
    margin-bottom: 50px;
  }
}
.l-list {
  display: block;
  list-style: none;
  padding: 0;
  margin: 0;
}
.l-list > li + li {
  margin-top: 120px;
}
@media (max-width: 992px) {
  .l-list > li + li {
    margin-top: clamp(2rem, 9.0909090909%, 9.0909090909%);
  }
}

.l-grid {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin: 0;
  list-style: none;
  grid-template-columns: 1fr;
}
.l-grid.l-grid--gap-2x {
  gap: 2rem;
}
.l-grid.l-grid--gap-3x {
  gap: 3rem;
}

.l-grid__item {
  display: block;
}

.l-grid--2col {
  grid-template-columns: repeat(2, 1fr);
}

.l-grid--3col {
  grid-template-columns: repeat(3, 1fr);
}

.l-grid--4col {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 768px) {
  .l-grid--md-1col {
    grid-template-columns: repeat(1, 1fr);
  }
}
@media (max-width: 576px) {
  .l-grid--sm-1col {
    grid-template-columns: repeat(1, 1fr);
  }
}
.acc {
  list-style: none;
  padding: 0;
}

.acc__item {
  border-bottom: 1px solid #e9e9e9;
}
.acc__item:first-child {
  border-top: 1px solid #e9e9e9;
}

.acc__btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1em;
  cursor: pointer;
  background: none;
  border: none;
  text-align: left;
  transition: background-color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.acc__btn[aria-expanded=true] .acc__btn-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
@media (hover: hover) {
  .acc__btn:hover {
    background-color: #e9e9e9;
  }
}

.acc__btn-icon {
  position: relative;
  width: 20px;
  height: 20px;
  transition: transform 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.acc__btn-icon::before, .acc__btn-icon::after {
  content: "";
  position: absolute;
  background-color: #231815;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.acc__btn-icon::before {
  width: 1em;
  height: 1px;
}
.acc__btn-icon::after {
  width: 1px;
  height: 1em;
  transition: transform 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.acc__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99), margin-bottom 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
  padding: 0 1em;
  background-color: #f8f8f8;
}
.acc__content.acc--is-open {
  max-height: 10000px;
}

.list--normal li + li {
  margin-top: 0.5em;
}

dl.list--large dt {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}
dl.list--large dt .list__ico {
  flex-shrink: 0;
  width: 5rem;
}
dl.list--large dt .list__ico-img {
  display: block;
  width: 100%;
  height: auto;
}
dl.list--large dd {
  padding: 0 0 0 6rem;
  margin-bottom: 2rem;
}

.card {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding: 0;
  list-style: none;
}
@media (max-width: 992px) {
  .card.card--2col-lg {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 576px) {
  .card.card--1col-sm {
    grid-template-columns: repeat(1, 1fr);
  }
}
@media (max-width: 768px) {
  .card {
    gap: 1.5rem;
  }
}

.card__item {
  position: relative;
}

.card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 330/300;
  background-color: #fff;
}

.card__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 2s cubic-bezier(0.12, 1.03, 0.58, 0.99);
  transform: scale(1.1);
}
.card__item:hover .card__img {
  transform: scale(1.2);
}

.card__models {
  padding: 1rem;
  color: #fff;
  text-align: center;
  background-color: #000;
  font-size: 1.125rem;
  line-height: 0;
  letter-spacing: 0.2em;
}

.card__body {
  display: flex;
  flex-direction: column;
  padding: 1.5rem 0.7rem;
  background-color: #979797;
  color: #fff;
  overflow: hidden;
}

.card__logo {
  display: block;
  height: 3.5rem;
}

.card__logo--m {
  padding: 0 1rem;
}

.card__logo--s {
  padding: 0 2rem;
}

.card__logo--xs {
  padding: 0 3rem;
}

.card__logo-img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.card__ruby {
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.3;
  letter-spacing: 0.1em;
  padding: 1em 0;
}

.card__btn {
  position: relative;
  display: inline-block;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1;
  letter-spacing: 0.2em;
  font-family: "Medio", serif;
  font-weight: normal;
}
.card__btn::after {
  content: "";
  position: absolute;
  bottom: -0.2em;
  left: 50%;
  transform: translateX(-50%);
  width: 120%;
  height: 1px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 3%, rgb(255, 255, 255) 25%, rgb(255, 255, 255) 76%, rgba(255, 255, 255, 0) 97%, rgba(255, 255, 255, 0) 100%);
  z-index: 2;
  transition: width 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.card__item:hover .card__btn::after {
  width: 400%;
}

.card__footer {
  padding: 0;
  text-align: center;
}

.card__link {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  text-indent: -9999em;
}

.card2 {
  display: block;
  font-size: 16px;
  box-shadow: 0 0 1.5em -0.5em rgba(0, 0, 0, 0.3);
  border-radius: 0.5em;
  position: relative;
}

.card2__1 {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  background-color: #000;
}

.card2__2 {
  position: relative;
  display: block;
  width: 100%;
  min-height: 5em;
  overflow: hidden;
  padding: 1em 2em 1em 1em;
  line-height: 1.5;
  background-color: rgba(255, 255, 255, 0.7);
}
.card2__2::after {
  content: "";
  position: absolute;
  right: 0.7em;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2em;
  height: 1.2em;
  background-image: url("../images/ico-angle-r.svg");
  background-size: contain;
  background-repeat: no-repeat;
  transition: 1s transform cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.card2__img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 1s transform cubic-bezier(0.12, 1.03, 0.58, 0.99), 1s opacity cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.card2__link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  text-indent: -9999em;
}

@media (hover: hover) {
  .card2:hover .card2__img {
    transform: scale(1.04);
    opacity: 0.8;
  }
  .card2:hover .card2__2::after {
    transform: translate(0.3em, -50%);
  }
}
.card3 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-size: 1rem;
}

.card3__media {
  display: block;
}

.card3__img {
  display: block;
}

.card3__ttl {
  display: block;
  line-height: 1.3;
  padding: 1em;
  border: 1px solid #231815;
  text-align: center;
}

.card3__desc {
  display: block;
  line-height: 1.3;
  font-size: 0.85em;
}

.feature {
  display: block;
  font-size: 1rem;
  padding: 5rem;
  background-color: #fff;
  border-radius: 3rem;
}

.feature__ttl {
  display: block;
  margin-bottom: 2rem;
}

.feature__ttl-no {
  display: block;
  font-size: 2.5em;
  font-weight: normal;
  font-family: "Medio", serif;
  line-height: 1;
  margin-bottom: 0.2em;
}

.feature__ttl-txt {
  position: relative;
  display: block;
  font-size: 1.5em;
  padding-left: 0.8em;
  line-height: 1.5;
}
.feature__ttl-txt::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 2px;
  height: 85%;
  background-color: #aaaaaa;
  transform: translateY(-50%);
}

.feature__media {
  display: block;
  margin-bottom: 2rem;
}

.feature__img {
  display: block;
  width: 100%;
  max-width: auto;
}

.feature__body {
  display: flex;
  flex-direction: row;
  gap: 3rem;
}

.feature__body-1 {
  flex: 0 0 40%;
}

.feature__body-2 {
  flex: 1;
}

@media (max-width: 768px) {
  .feature {
    padding: 3rem;
    border-radius: 2rem;
  }
  .feature__ttl {
    margin-bottom: 1.5rem;
  }
  .feature__ttl-no {
    font-size: 2.5em;
  }
  .feature__body {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2rem;
  }
  .feature__body-1 {
    width: 100%;
  }
  .feature__body-2 {
    width: 60%;
  }
}
@media (max-width: 576px) {
  .feature {
    padding: 2rem;
    border-radius: 2rem;
  }
  .feature__media {
    margin-bottom: 1rem;
  }
  .feature__body-2 {
    width: 80%;
  }
}
@media (max-width: 480px) {
  .feature {
    padding: 2rem 1rem;
  }
  .feature__ttl-txt {
    font-size: 1.2em;
  }
}
.hero {
  position: relative;
  display: block;
  width: 100%;
  height: 100vh;
  max-height: 800px;
}

.hero__content {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-align: left;
  position: absolute;
  z-index: 2;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.hero__text {
  color: #fff;
  writing-mode: vertical-rl;
  font-size: 2rem;
  letter-spacing: 0.2em;
  line-height: 2;
  margin: 0 auto;
}

.hero__text-1 {
  display: inline-block;
}

.hero__text-2 {
  display: inline-block;
  text-indent: 1.5em;
}

.hero__media {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.hero__media .hero__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  z-index: 2;
  animation: randomOpacity 27s infinite;
}
@keyframes randomOpacity {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0.39;
  }
  35% {
    opacity: 0.2;
  }
  45% {
    opacity: 0.35;
  }
  60% {
    opacity: 0.15;
  }
  75% {
    opacity: 0.39;
  }
  85% {
    opacity: 0.25;
  }
  100% {
    opacity: 0;
  }
}

.hero .swiper {
  height: 100%;
}
.hero .swiper-wrapper {
  height: 100%;
}
.hero .swiper {
  position: relative;
  z-index: 0;
}
.hero .swiper-slide {
  height: 100%;
  width: 100%;
  overflow: hidden;
  opacity: 0;
  z-index: 2;
}
.hero .swiper-slide .hero__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
  display: block;
  transform: scale(1.05);
  transition: transform 4s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.hero .swiper-slide-active {
  opacity: 1;
}
.hero .swiper-slide-active .hero__img {
  transform: scale(1);
}
.hero .swiper-slide-prev .hero__img {
  transform: scale(1);
  transition: none;
}
.hero .swiper-slide.swiper-slide-duplicate-active .hero__img {
  transform: scale(1);
}
.hero .swiper-slide.swiper-slide-duplicate .hero__img {
  transform: scale(1.05);
}
@media (max-width: 768px) {
  .hero .swiper-slide .hero__img {
    transition: transform 4s cubic-bezier(0.12, 1.03, 0.58, 0.99), object-position 4s;
    transition: transform 4s cubic-bezier(0.12, 1.03, 0.58, 0.99), object-position 4s, -o-object-position 4s;
  }
  .hero .swiper-slide .hero__img.hero__img--1 {
    -o-object-position: 20% 50%;
       object-position: 20% 50%;
  }
  .hero .swiper-slide .hero__img.hero__img--2 {
    -o-object-position: 70% 50%;
       object-position: 70% 50%;
  }
  .hero .swiper-slide .hero__img.hero__img--3 {
    -o-object-position: 40% 50%;
       object-position: 40% 50%;
  }
  .hero .swiper-slide .hero__img.hero__img--4 {
    -o-object-position: 40% 50%;
       object-position: 40% 50%;
  }
  .hero .swiper-slide .hero__img.hero__img--5 {
    -o-object-position: 60% 50%;
       object-position: 60% 50%;
  }
  .hero .swiper-slide-active .hero__img.hero__img--1 {
    -o-object-position: 70% 50%;
       object-position: 70% 50%;
  }
  .hero .swiper-slide-active .hero__img.hero__img--2 {
    -o-object-position: 20% 50%;
       object-position: 20% 50%;
  }
  .hero .swiper-slide-active .hero__img.hero__img--3 {
    -o-object-position: 50% 50%;
       object-position: 50% 50%;
  }
  .hero .swiper-slide-active .hero__img.hero__img--4 {
    -o-object-position: 90% 50%;
       object-position: 90% 50%;
  }
  .hero .swiper-slide-active .hero__img.hero__img--5 {
    -o-object-position: 5% 50%;
       object-position: 5% 50%;
  }
}

a.link {
  display: inline-block;
  position: relative;
}
a.link::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0.2em;
  right: 0;
  width: 100%;
  height: 1px;
  background: #231815;
  transition: 0.5s width cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
@media (hover: hover) {
  a.link:hover::after {
    width: 0%;
  }
}

.from {
  display: block;
}

.form__group {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  gap: 3rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #e9e9e9;
}

.form__label {
  flex: 0 0 40%;
}

.form__control-wrap {
  flex: 1;
}

.form__required {
  display: inline-block;
  line-height: 1;
  padding: 0.3em 0.4em;
  margin-left: 1em;
  font-size: 0.7em;
  background-color: #000;
  color: #fff;
}

.form__note {
  color: #aaaaaa;
  font-size: 0.8em;
}

.form__btn {
  margin-top: 2rem;
  text-align: center;
}

@media (max-width: 576px) {
  .form__group {
    flex-direction: column;
    gap: 1rem;
  }
}
.wpcf7-form {
  display: block;
}

.wpcf7-response-output {
  padding: 1em !important;
  text-align: center;
  margin: 1em 0 !important;
  border: none !important;
}
form.invalid .wpcf7-response-output {
  background-color: #cc1b2d;
  color: #fff;
}

.wpcf7-not-valid-tip {
  display: block;
  margin-bottom: 0.5em;
  color: #cc1b2d;
}

.wpcf7-form-control {
  display: inline-block;
  width: 100%;
  font-size: 1rem;
  padding: 0.4em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}
.wpcf7-form-control--s {
  width: 40%;
}

.privacy {
  list-style: none;
  padding: 0;
  margin: 0;
}
.privacy .privacy__item {
  margin-bottom: 3rem;
}
.privacy .privacy__item:last-child {
  margin-bottom: 0;
}
.privacy .privacy__ttl {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e5e5e5;
}

.pager-wrap {
  display: block;
  margin: 3rem auto;
}

.wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}
.wp-pagenavi > * {
  display: inline-block;
  text-align: center;
  padding: 1em;
  line-height: 1;
}
.wp-pagenavi > a {
  display: block;
  background-color: rgba(233, 233, 233, 0);
  transition: 1s background-color cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
@media (hover: hover) {
  .wp-pagenavi > a:hover {
    background-color: #e9e9e9;
  }
}
.wp-pagenavi .current {
  text-decoration: underline;
}

.pager {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 3rem auto;
  max-width: 500px;
}

.pager__item {
  flex: 1;
  display: block;
  text-align: center;
}

.pager__link {
  display: block;
  padding: 1em;
  background-color: rgba(233, 233, 233, 0);
  transition: 1s background-color cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.pager__link:hover {
  background-color: #e9e9e9;
}

.pager__link--current {
  text-decoration: underline;
}

/*
Breadcrumb NavXT

  <div class="breadcrumb"><div class="breadcrumb__inner">
    <span property="itemListElement" typeof="ListItem">
      <a property="item" typeof="WebPage" href="" class="home">
        <span property="name">TOP</span>
      </a>
      <meta property="position" content="1" />
    </span>
    <i class="icon-angle-right"></i>
    <span property="itemListElement" typeof="ListItem">
      <a property="item" typeof="WebPage" href="" class="taxonomy category">
        <span property="name">スタッフブログ</span>
      </a>
      <meta property="position" content="2" />
    </span>
    <i class="icon-angle-right"></i>
    <span property="itemListElement" typeof="ListItem">
      <span property="name" class="post post-post current-item">この記事</span>
      <meta property="url" content="" />
      <meta property="position" content="3" />
    </span>
  </div></div>

*/
.breadcrumb {
  display: block;
  font-size: 0.75rem;
  line-height: 1.2;
  margin: 0.5rem 0;
  color: #666666;
}
.breadcrumb i {
  font-size: 0.8em;
}

.breadcrumb__inner {
  display: block;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 1em;
}

.bg-wall-1 {
  background-image: url("../images/bg-wall-1.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.bg-wall-2 {
  background-image: url("../images/bg-wall-2.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.bg-wall-3 {
  background-image: url("../images/bg-wall-3.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.bg-wall-4 {
  background-image: url("../images/bg-wall-4.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.bg-wall-5 {
  background-image: url("../images/bg-wall-5.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.bg-wall-6 {
  position: relative;
  background-color: #f1f1f1;
  overflow: hidden;
}
.bg-wall-6::before, .bg-wall-6::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}
.bg-wall-6::before {
  top: 0;
  left: 0;
  background-image: url("../images/bg-wall-6-u.webp");
  padding-top: 42.4%;
}
.bg-wall-6::after {
  bottom: 0;
  right: 0;
  padding-top: 28%;
  background-image: url("../images/bg-wall-6-l.webp");
}
.bg-wall-6 > * {
  position: relative;
  z-index: 2;
}

.bg-nextpage-1 {
  position: relative;
  background-image: url("../images/bg-nextpage-1.webp");
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  color: #fff;
}
.bg-nextpage-1::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  z-index: 0;
}
.bg-nextpage-1 > div {
  position: relative;
}

.bg-dark-gray {
  background-color: #262626;
}

.bg-plant {
  background-image: url("../images/bg-plant.webp");
  background-size: auto;
  background-position: top center;
  background-repeat: repeat-y;
}

.bg-sunbeams {
  background-image: url("../images/bg-sunbeams-2.webp");
  background-size: auto;
  background-position: top center;
  background-repeat: repeat-y;
}

.bg-dariseki {
  background-image: url("../images/bg-dairiseki.webp");
  background-size: auto;
  background-position: top center;
  background-repeat: repeat;
}

.bg-smoke {
  background-image: url("../images/bg-smoke.webp");
  background-size: auto;
  background-position: top center;
  background-repeat: repeat-x;
  padding-top: 290px;
}
@media (max-width: 992px) {
  .bg-smoke {
    background-size: 200% auto;
    padding-top: 21.9696969697%;
  }
}

.bg-smoke-2 {
  background-image: linear-gradient(to top, #fff, transparent 10rem), url("../images/bg-smoke-2.webp"), url("../images/bg-smoke-2.webp");
  background-size: 100% 10rem, auto, auto;
  background-position: bottom, left top, left 130%;
  background-repeat: no-repeat, repeat-x, repeat-x;
  padding-top: 480px;
  padding-bottom: 480px;
  margin-top: -300px;
}
@media (max-width: 992px) {
  .bg-smoke-2 {
    padding-top: 36.3636363636%;
    padding-bottom: 36.3636363636%;
    margin-top: -22.7272727273%;
  }
}
@media (max-width: 768px) {
  .bg-smoke-2 {
    background-image: linear-gradient(to top, #fff, transparent 5rem), url("../images/bg-smoke-2.webp"), url("../images/bg-smoke-2.webp");
    background-size: 100% 5rem, 200% auto, 200% auto;
  }
}
@media (max-width: 576px) {
  .bg-smoke-2 {
    background-position: bottom, left top, left 130%;
  }
}
@media (max-width: 480px) {
  .bg-smoke-2 {
    background-position: bottom, left top, left 120%;
  }
}

.bg-smoke-3 {
  background-color: #f4f1f9;
  background-image: linear-gradient(to left, #fff 0%, #fff 50%, transparent 100%), linear-gradient(to top, #fff, transparent 10rem), url("../images/bg-smoke-2.webp"), url("../images/bg-smoke-2.webp");
  background-size: 60% 100%, 100% 10rem, auto, auto;
  background-position: right top, bottom, left top, left 130%;
  background-repeat: no-repeat, no-repeat, repeat-x, repeat-x;
  padding-top: 250px;
  padding-bottom: 250px;
}
@media (max-width: 992px) {
  .bg-smoke-3 {
    padding-top: 18.9393939394%;
    padding-bottom: 18.9393939394%;
  }
}
@media (max-width: 768px) {
  .bg-smoke-3 {
    background-image: linear-gradient(to left, #fff 0%, #fff 50%, transparent 100%), linear-gradient(to top, #fff, transparent 50%), url("../images/bg-smoke-2.webp"), url("../images/bg-smoke-2.webp");
    background-size: 60% 100%, 100% 5rem, 200% auto, 200% auto;
  }
}
@media (max-width: 576px) {
  .bg-smoke-3 {
    background-position: right top, bottom, left top, left 130%;
  }
}
@media (max-width: 480px) {
  .bg-smoke-3 {
    background-position: right top, bottom, left top, left 120%;
  }
}

.bg-blue-light {
  background-image: linear-gradient(to bottom, #fff, transparent 5rem), linear-gradient(#ecf2fd, #ecf2fd);
  background-size: 100% 5rem, auto;
  background-position: top, top;
  background-repeat: no-repeat, no-repeat;
}

.bg-blue {
  background-color: #005099;
  color: #fff;
}

.bg-white {
  background-color: #fff;
}

.bg-gray {
  background-color: #f1f1f1;
}

.loader {
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 999;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 0.5s ease-out, visibility 0.5s ease-out;
  background-image: url(../images/bg-wall-6-sp.webp);
}
@media (min-width: 769px) {
  .loader {
    background-image: url(../images/bg-wall-6.webp);
  }
}

@keyframes rotateInX {
  0% {
    transform: rotateX(-90deg) scale(1.1);
    opacity: 0.5;
  }
  30% {
    transform: rotateX(0deg) scale(1);
    opacity: 1;
  }
  100% {
    transform: rotateX(0deg) scale(0.8);
  }
}
@media (max-width: 576px) {
  @keyframes rotateInX {
    0% {
      transform: rotateX(-90deg) scale(1.1) translateY(-40px);
      opacity: 0.5;
    }
    30% {
      transform: rotateX(0deg) scale(1) translateY(-40px);
      opacity: 1;
    }
    100% {
      transform: rotateX(0deg) scale(0.8) translateY(-40px);
    }
  }
}
.loader__logo {
  width: 70%;
  max-width: 460px;
  animation: rotateInX 2s forwards;
}

.loader__logo-img {
  width: 100%;
}

.loader--hidden {
  opacity: 0;
  visibility: hidden;
}

.header {
  display: flex;
  justify-content: space-between;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 10px 20px;
  z-index: 100;
  background-color: rgba(35, 24, 21, 0);
  transition: background-color 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99), padding 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}

.scrolled header {
  background-image: linear-gradient(to right, rgba(35, 24, 21, 0.4) 80px, rgba(35, 24, 21, 0) 300px), linear-gradient(to left, rgba(35, 24, 21, 0.4) 40px, rgba(35, 24, 21, 0) 150px);
}

.logo {
  width: 120px;
  line-height: 0;
}

.logo__link {
  display: block;
  width: 100%;
  height: 100%;
}

.logo__img {
  width: 100%;
  transform: scale(1.4);
  transform-origin: top left;
  transition: transform 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.scrolled .logo__img {
  transform: scale(1);
}

.wrapper {
  padding: 0;
  margin: 0;
}

.about {
  position: relative;
  margin: 100px 0;
  background: #fff;
  display: flex;
  flex-direction: row-reverse;
}

.about__1 {
  width: 36%;
  min-width: 215px;
  display: flex;
  flex-direction: column;
}

.about__2 {
  position: relative;
  flex: 1;
}

.about__ttl {
  display: flex;
  flex-direction: column-reverse;
  justify-content: center;
  writing-mode: vertical-lr;
  text-align: left;
  font-size: 1.6875rem;
  padding: 3.75rem 5.4% 3.75rem 11%;
}

.about__ttl-sub {
  display: inline-block;
  font-size: 1em;
  white-space: nowrap;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}

.about__ttl-main {
  display: inline-block;
  font-size: 3em;
  white-space: nowrap;
  letter-spacing: 0.2em;
}

.about__desc {
  text-align: center;
  padding: 0 5.4% 3.75rem 5.4%;
}

.about__media {
  width: calc(100% + (100vw - 1320px) / 2 + 2rem);
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  overflow: hidden;
}
@media (max-width: 1320px) {
  .about__media {
    width: calc(100% + 2rem);
  }
}

.about__img {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
  width: 100%;
  height: 100%;
}

@media (max-width: 1320px) {
  .about__media {
    width: calc(100% + 2rem);
  }
}
@media (max-width: 768px) {
  .about__img {
    -o-object-position: 30% center;
       object-position: 30% center;
  }
}
@media (max-width: 480px) {
  .about__1 {
    width: 36%;
    min-width: 180px;
    display: flex;
    flex-direction: column;
    padding: 2rem 0;
  }
  .about__ttl {
    font-size: 1.25rem;
    padding: 0;
  }
  .about__desc {
    font-size: 0.875rem;
    padding: 0;
  }
}
.section-title {
  font-size: 2.5rem;
  margin-bottom: 1em;
  letter-spacing: 0.1em;
}

.subtitle {
  font-size: 1.2rem;
  margin-bottom: 0.5em;
}

.description {
  font-size: 1rem;
  color: #666;
}

.concept {
  position: relative;
  padding: 7.5rem 0;
  background: url("../images/concept-bg.webp") center/cover no-repeat fixed;
  background-position: center 0;
  color: #fff;
  overflow: hidden;
  text-align: center;
  will-change: background-position;
}
@media (max-width: 768px) {
  .concept::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(35, 24, 21, 0.3);
    z-index: 0;
  }
}

.concept__content {
  display: inline-block;
  position: relative;
  z-index: 2;
  margin: 0 auto;
}

.concept__header {
  margin-bottom: 1.875rem;
}

.concept__body {
  display: flex;
  gap: 3.75rem;
  align-items: flex-start;
}

.concept__catch {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  writing-mode: vertical-rl;
  font-size: 1.6875rem;
  letter-spacing: 0.2em;
  line-height: 2;
  white-space: nowrap;
}

.concept__catch span {
  display: inline-block;
}

.concept__catch span:not(:first-child) {
  text-indent: 1em;
}

.concept__desc {
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 2.4;
  padding-top: 3.75rem;
  padding-left: 1rem;
  padding-right: 1rem;
}

.concept__desc p + p {
  margin-top: 2em;
}

.concept__images {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.concept__img {
  position: absolute;
  overflow: hidden;
}

.concept__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.concept__img--1 {
  width: auto;
  height: 50%;
  aspect-ratio: 270/390;
  top: -1rem;
  right: 115%;
}

.concept__img--2 {
  width: auto;
  height: 35%;
  aspect-ratio: 390/270;
  top: 0;
  left: 115%;
}

.concept__img--3 {
  width: auto;
  height: 30%;
  aspect-ratio: 450/240;
  top: calc(100% - 100px);
  right: 100%;
}

.concept__img--4 {
  width: auto;
  height: 30%;
  aspect-ratio: 370/245;
  top: calc(100% - 200px);
  left: calc(100% + 130px);
}

@media (max-width: 576px) {
  .concept {
    background-attachment: scroll;
  }
  .concept__body {
    flex-direction: column;
    gap: 1.875rem;
  }
  .concept__catch {
    align-self: center;
    font-size: 2.25rem;
  }
  .concept__desc {
    padding: 0 1em;
  }
  .concept__images {
    display: none;
  }
}
.photos {
  display: block;
  width: 100%;
  overflow: hidden;
}

.photos__list {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  list-style: none;
}

.photos__item {
  display: flex;
  width: 100%;
}

.photos__item--2 {
  justify-content: flex-end;
  margin-top: -30%;
}

.photos__item--3 {
  justify-content: flex-start;
  margin-top: -5%;
}

.photos__item--4 {
  justify-content: flex-end;
  margin-top: -32%;
  transform: translateX(5%);
}

.photos__media {
  display: block;
  position: relative;
  overflow: hidden;
  height: auto;
  opacity: 0;
  transform: translateY(30px);
}

.photos__media--1 {
  width: 55%;
  aspect-ratio: 690/480;
}

.photos__media--2 {
  width: 30%;
  aspect-ratio: 460/650;
  justify-content: flex-end;
}

.photos__media--3 {
  width: 35%;
  aspect-ratio: 500/640;
  justify-content: flex-end;
}

.photos__media--4 {
  width: 60%;
  aspect-ratio: 870/520;
  justify-content: flex-end;
}

.photos__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 10%;
     object-position: 50% 10%;
}

@media (max-width: 576px) {
  .photos__item--2 {
    margin-top: 0;
  }
  .photos__item--3 {
    margin-top: -40%;
  }
  .photos__item--4 {
    margin-top: 0;
  }
  .photos__media--1 {
    width: 80%;
  }
  .photos__media--2 {
    width: 45%;
  }
  .photos__media--3 {
    width: 50%;
  }
  .photos__media--4 {
    width: 85%;
    aspect-ratio: 300/180;
  }
}
section#lineup {
  position: relative;
}

.lineup__bg-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.5s ease-out;
}
.lineup__bg-container.visible {
  opacity: 1;
}

.lineup__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  opacity: 0;
  transition: opacity 0.5s ease-out;
}
.lineup__bg.active {
  opacity: 1;
}
.lineup__bg--1 {
  background-image: url("../images/bg-wall-1.webp");
}
.lineup__bg--2 {
  background-image: url("../images/bg-wall-2.webp");
}
.lineup__bg--3 {
  background-image: url("../images/bg-wall-3.webp");
}

.lineup-section {
  margin-bottom: 100px;
}

.lineup {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  min-height: 100vh;
}

.lineup__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 13.6%;
  padding: 0 3.4090909091% 0 0;
  position: relative;
}

.lineup__body {
  width: 79%;
  padding-top: 80px;
}
@media (max-width: 1320px) {
  .lineup__body {
    padding-top: 6.0606060606%;
  }
}

.lineup__no {
  padding-bottom: 1rem;
}

.lineup__ttl {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  font-size: 1.875rem;
  writing-mode: vertical-rl;
  text-align: left;
  font-weight: bold;
}

.lineup__ttl-sub {
  display: block;
  font-size: 0.6666666667em;
  letter-spacing: 0.15em;
}

.lineup__ttl-main {
  display: block;
  font-size: 1em;
  letter-spacing: 0.15em;
  margin-right: 0.2em;
}

@media (max-width: 768px) {
  .lineup__ttl {
    font-size: 1.5rem;
  }
  .lineup__header {
    width: 15%;
    padding: 0 0 0 1.2121212121%;
  }
}
@media (max-width: 576px) {
  .lineup__bg {
    background-attachment: scroll;
  }
  .lineup__ttl {
    font-size: 1.25rem;
  }
}
@media (max-width: 480px) {
  .lineup__ttl {
    font-size: 1.125rem;
  }
}
.rinen {
  display: flex;
  flex-direction: row;
  justify-content: center;
  background-color: #fff;
  padding: 3.75rem 0;
}

.rinen__content {
  position: relative;
  width: 520px;
}

.rinen__inner {
  padding: 0 13.4615384615%;
}

.rinen__header {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 120px 0;
}

.rinen__ttl {
  display: flex;
  font-size: 2.25rem;
  letter-spacing: 0.2em;
  flex-direction: column;
  writing-mode: vertical-rl;
  text-align: left;
}
.rinen__ttl span:not(:first-child) {
  text-indent: 2em;
}

.rinen__body {
  font-size: 1rem;
  letter-spacing: 0.05em;
  line-height: 2;
  padding-bottom: 120px;
}
.rinen__body p {
  text-align: center;
}

.rinen__media {
  position: absolute;
  width: calc((100vw - 100%) / 2);
  height: 100%;
}

.rinen__media--1 {
  top: 0;
  right: 100%;
}

.rinen__media--2 {
  top: 0;
  left: 100%;
}

.rinen__img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

@media (max-width: 768px) {
  .rinen {
    flex-direction: column;
  }
  .rinen__content {
    width: 100%;
  }
  .rinen__media {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 375/160;
  }
  .rinen__media--1 {
    padding-right: 8%;
  }
  .rinen__media--2 {
    padding-left: 8%;
  }
  .rinen__header {
    padding: 15.625% 0;
  }
  .rinen__body {
    padding-bottom: 15.625%;
  }
}
@media (max-width: 576px) {
  .rinen__inner {
    padding: 0 1rem;
  }
  .rinen__ttl {
    font-size: 1.5rem;
  }
  .rinen__body {
    font-size: 0.875rem;
  }
}
.option {
  position: relative;
  padding: 120px 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.option__header {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  color: #fff;
  z-index: 2;
}

.option__ttl {
  position: relative;
  display: block;
  font-size: 4.375rem;
  padding-right: 5%;
}
.option__ttl::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background-color: #fff;
}

.option__ttl-main-en {
  display: block;
  letter-spacing: 0.2em;
  font-family: "Medio", serif;
  font-weight: normal;
  line-height: 1;
}

.option__ttl-sub-en {
  display: block;
  font-size: 1.375rem;
  letter-spacing: 0.2em;
  font-family: "Medio", serif;
  font-weight: normal;
  line-height: 1.2;
}

.option__ttl-ja {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-align: left;
  margin-top: 1em;
}

.option__catch {
  display: block;
  font-size: 1.375rem;
  letter-spacing: 0.2em;
  line-height: 1.2;
  padding-left: 5%;
}

.option__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.option__bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1;
}

.option__bg-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.option__bg-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.option__body {
  position: absolute;
  bottom: 9.8484848485%;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 3;
  overflow: hidden;
}

.option__slide {
  display: flex;
  gap: 20px;
  padding: 0 20px;
  cursor: grab;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  touch-action: pan-y pinch-zoom;
  position: relative;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}
.option__slide::-webkit-scrollbar {
  display: none;
}
.option__slide.grabbing {
  cursor: grabbing;
}

.option__item {
  flex: 0 0 250px;
  width: 250px;
  height: auto;
  list-style: none;
}
.option__item:nth-child(odd) {
  padding-top: 2rem;
}

.option__media {
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  border: 1px solid #fff;
  overflow: hidden;
}

.option__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
}

@media (max-width: 768px) {
  .option__header {
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .option__ttl {
    font-size: 3.75rem;
    padding-right: initial;
    padding-bottom: 2rem;
  }
  .option__ttl::after {
    top: initial;
    right: initial;
    bottom: 0;
    left: 0;
    width: 60%;
    height: 1px;
  }
  .option__ttl-sub-en {
    font-size: 1.25rem;
    letter-spacing: 0.3em;
  }
  .option__ttl-ja {
    font-size: 1.125rem;
  }
  .option__catch {
    font-size: 1.25rem;
    padding-left: 0;
    padding-top: 2rem;
  }
  .option__item {
    flex: 0 0 30%;
    width: 30%;
  }
  .option__item:nth-child(odd) {
    padding-top: 1.5rem;
  }
}
@media (max-width: 576px) {
  .option__item {
    flex: 0 0 150px;
    width: 150px;
  }
  .option__item:nth-child(odd) {
    padding-top: 1rem;
  }
}
.vr {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
.vr::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: -1;
}

.vr__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
}

.vr-container {
  display: flex;
  justify-content: flex-end;
  max-width: 1320px;
  margin: 0 auto;
  height: 100%;
}

.vr-content {
  display: inline-flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  color: #fff;
}

.vr__header .ttl2 {
  text-align: left;
}

.vr__body .lead {
  text-align: left;
}

.vr__footer {
  margin-top: 2rem;
}

@media (max-width: 576px) {
  .vr-container {
    justify-content: center;
  }
  .vr-content {
    justify-content: center;
    align-items: center;
  }
  .vr__header .ttl2 {
    text-align: center;
  }
  .vr__body .lead {
    text-align: center;
  }
  .vr__body p {
    text-align: center;
  }
}
.works {
  position: relative;
  padding: 0;
  background: #fff;
  display: flex;
  flex-direction: row-reverse;
}

.works__1 {
  width: 36%;
  display: flex;
  flex-direction: column;
  padding: 0 5.4%;
}

.works__2 {
  position: relative;
  width: 64%;
}

.works__ttl {
  display: flex;
  flex-direction: column-reverse;
  justify-content: center;
  writing-mode: vertical-rl;
  text-align: left;
  font-size: 2.25rem;
  padding: 0 0 3.125rem 0;
  line-height: 2;
  letter-spacing: 0.2em;
}

.works__desc {
  text-align: center;
  padding: 0 0 3.125rem 0;
}

.works__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  list-style: none;
}

.works__item {
  display: block;
}

.works__media {
  width: calc(100% + (100vw - 1320px) / 2 + 2rem);
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
}
@media (max-width: 1320px) {
  .works__media {
    width: calc(100% + 2rem);
  }
}

.works__img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  width: 100%;
  height: 100%;
}

@media (max-width: 768px) {
  .works {
    flex-direction: column-reverse;
  }
  .works__1 {
    width: 100%;
    padding: 0;
  }
  .works__2 {
    width: 100%;
  }
  .works__media {
    position: static;
    width: 100%;
  }
  .works__ttl {
    padding: 3.125rem 0 3.125rem 0;
  }
}
.news {
  width: 100%;
  max-width: 950px;
  margin: 0 auto;
  background-color: #fff;
  padding: 2rem 4rem;
}

.news__list {
  display: flex;
  flex-direction: column;
  list-style: none;
  padding: 0;
  font-size: 1rem;
}

.news__item {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  padding: 1rem 6rem 1rem 0;
}
.news__item:not(:first-child) {
  border-top: 1px solid #e9e9e9;
}
.news__item::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0, -50%);
  width: 3rem;
  height: 3rem;
  background-image: url("data:image/svg+xml,%3Csvg%20id='arrow'%20data-name='arrow'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2070%2070'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:none;stroke:%23231815;%7D%3C/style%3E%3C/defs%3E%3Cpath%20class='cls-1'%20d='M26,34.92h16'/%3E%3Cpath%20class='cls-1'%20d='M37.4,29.92l5,5-5,5'/%3E%3Cpath%20class='cls-1'%20d='M35,2c18.23,0,33,14.77,33,33s-14.77,33-33,33S2,53.22,2,35,16.77,2,35,2Z'/%3E%3C/svg%3E");
  transition: transform 0.5s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.news__item:hover::after {
  transform: translate(5px, -50%);
}

.news__date {
  font-family: "Medio", serif;
  white-space: nowrap;
  padding: 0 2rem 0 0;
  letter-spacing: 0.15em;
  width: 8em;
}

.news__ttl {
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  letter-spacing: 0.1em;
  flex: 1;
  line-height: 2;
}

.news__link {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  text-indent: -9999em;
  z-index: 1;
}

@media (max-width: 768px) {
  .news__item {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 576px) {
  .news {
    padding: 2rem 2rem;
  }
  .news__item {
    padding-right: 4rem;
  }
}
@media (max-width: 480px) {
  .news {
    padding: 2rem 1rem;
  }
}
.nextpage {
  position: relative;
  display: flex;
  justify-content: center;
  z-index: 5;
}

.nextpage__inner {
  position: relative;
  display: block;
  padding: 120px 0;
  color: #fff;
}

.nextpage__header {
  display: flex;
  align-items: center;
  font-size: 2.25rem;
  writing-mode: vertical-rl;
  letter-spacing: 0.2em;
  line-height: 2;
  text-align: left;
}

.nextpage__footer {
  margin-top: 2rem;
  text-align: center;
}

@media (max-width: 480px) {
  .nextpage__header {
    font-size: 1.875rem;
  }
}
.bnlink {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bnlink__item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50%;
  padding: 5.5% 7%;
}

.bnlink__bg--1 {
  background-image: url(../images/bg-bnlink-1.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.bnlink__bg--2 {
  background-image: url(../images/bg-bnlink-2.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

@media (max-width: 900px) {
  .bnlink {
    flex-direction: column;
  }
  .bnlink__item {
    width: 100%;
  }
}
@media (max-width: 768px) {
  .bnlink__item {
    padding: 3rem;
  }
}
@media (max-width: 480px) {
  .bnlink__item {
    padding: 2rem;
  }
}
.contact {
  color: #fff;
  padding: 3rem 5%;
}

.contact__msg {
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 1em;
}

.contact__list {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 5%;
}

.contact__item {
  display: block;
  flex: 1;
  min-width: 0;
  width: 100%;
  font-size: 1.875rem;
}

.contact__link {
  display: block;
  border: 1px solid #fff;
  padding: 10px;
}

.contact__link-inner {
  display: flex;
}

.contact__link-1 {
  display: flex;
  align-items: center;
  line-height: 1;
  padding: 0.6em;
  font-size: 1.1em;
  border-right: 1px solid #fff;
}

.contact__link-2 {
  display: flex;
  flex: 1;
  justify-content: center;
  align-items: center;
  line-height: 1;
  letter-spacing: 0.1em;
  padding: 0.6em;
}

.contact__link-2-inner {
  display: inline-flex;
  flex-direction: column;
}

.contact__link-txt {
  white-space: nowrap;
}
.contact__item--tel .contact__link-txt {
  font-family: "Medio", serif;
  letter-spacing: 0.2em;
}

.contact__link-txt-sub {
  font-size: 0.5em;
  margin-top: 0.6em;
}

@media (max-width: 992px) {
  .contact__item {
    font-size: 1.5rem;
  }
}
@media (max-width: 768px) {
  .contact__list {
    flex-direction: column;
    gap: 2rem;
    align-items: center;
  }
  .contact__item {
    font-size: 1.875rem;
    max-width: 500px;
  }
  .contact__link-1 {
    padding: 1em;
  }
  .contact__link-2 {
    padding: 1em;
  }
}
@media (max-width: 576px) {
  .contact__list {
    gap: 1rem;
  }
  .contact__item {
    font-size: 1.75rem;
  }
  .contact__link-1 {
    padding: 0.8em;
  }
  .contact__link-2 {
    padding: 0.8em;
  }
}
@media (max-width: 480px) {
  .contact__msg {
    font-size: 1.25rem;
  }
  .contact__item {
    font-size: 1.125rem;
  }
}
.contact--v2.contact {
  padding: 0;
  max-width: 880px;
  margin: 0 auto;
}
.contact--v2 .contact__item {
  font-size: 1.75rem;
}
.contact--v2 .contact__link {
  border-color: #231815;
  padding: 0.3em 0.3em 0.3em 0.1em;
  background-color: #231815;
}
.contact--v2 .contact__link-1 {
  padding: 0.3em 0.6em;
  font-size: 1.1em;
}
.contact--v2 .contact__link-2 {
  padding: 0.3em 0.6em;
}
@media (max-width: 768px) {
  .contact--v2 .contact__list {
    flex-direction: column;
    gap: 1rem;
    align-items: center;
  }
  .contact--v2 .contact__item {
    font-size: 1.5rem;
  }
}
@media (max-width: 576px) {
  .contact--v2.contact {
    padding: 0 1rem;
  }
  .contact--v2 .contact__list {
    gap: 1rem;
  }
  .contact--v2 .contact__item {
    font-size: 1.5rem;
  }
}
@media (max-width: 480px) {
  .contact--v2.contact {
    padding: 0;
  }
  .contact--v2 .contact__msg {
    font-size: 1.25rem;
  }
  .contact--v2 .contact__item {
    font-size: 1.125rem;
  }
}

.sitemap {
  display: flex;
  justify-content: center;
}

.sitemap__block {
  padding: 0 2rem;
  border-left: 1px solid #444;
}

.sitemap__block:last-child {
  border-right: 1px solid #444;
}

.sitemap__body {
  display: flex;
}

.sitemap__ttl {
  font-size: 2rem;
  font-family: "Medio", serif;
  font-weight: normal;
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
  padding: 0;
  margin: 0 0 1em 0;
  color: #444444;
}

.sitemap__list {
  display: flex;
  flex-direction: column;
  font-size: 15px;
  letter-spacing: 0.1em;
  width: 100%;
  white-space: nowrap;
}

.sitemap__list + .sitemap__list {
  margin-left: 2rem;
}

.sitemap__item {
  position: relative;
  display: block;
  padding: 0 0 0 0.6em;
  line-height: 1.3;
}
.sitemap__item::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 0.3em;
  height: 1px;
  background-color: #fff;
}

.sitemap__item + .sitemap__item {
  margin-top: 1em;
}

.sitemap__link {
  display: block;
  text-decoration: none;
  width: 100%;
  height: 100%;
  transition: background-color 1s cubic-bezier(0.12, 1.03, 0.58, 0.99), color 1s cubic-bezier(0.12, 1.03, 0.58, 0.99);
}
.sitemap__link:hover {
  background-color: #fff;
  color: #231815;
}

.sitemap--v2 .sitemap__item::before {
  background-color: #231815;
}

@media (max-width: 1200px) {
  .sitemap {
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .sitemap__block {
    width: 47%;
    border: none;
    padding: 0;
    margin-bottom: 2rem;
  }
  .sitemap__block:last-child {
    border-right: none;
  }
  .sitemap__ttl {
    border-bottom: 1px solid #444;
    line-height: 1.3;
  }
  .sitemap__body {
    justify-content: center;
  }
  .sitemap__list {
    width: auto;
  }
}
.pageend {
  display: flex;
  justify-content: space-between;
  color: #fff;
  padding: 0 3% 2rem 3%;
}

.pageend__1 {
  width: 35%;
  max-width: 530px;
}

.pageend__2 {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
}

.pageend__content {
  display: grid;
  grid-template-columns: auto auto;
}

.pageend__logo {
  display: block;
}

.pageend__sns {
  display: flex;
  grid-column: 1/3;
  justify-content: flex-end;
  list-style: none;
  padding: 1rem 0;
  margin: 0;
  gap: 1rem;
  font-size: 1.5rem;
}

.pageend__sns-item {
  line-height: 1;
}

.pageend__link {
  display: flex;
  justify-content: end;
  list-style: none;
  padding: 0;
  margin: 0 5% 0 0;
  font-size: 0.8125rem;
}

.pageend__link-item {
  padding: 0 1rem;
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.pageend__link-item a {
  text-decoration: none;
  color: inherit;
}
.pageend__link-item a:hover {
  text-decoration: underline;
}

.pageend__link-item + .pageend__link-item {
  border-left: 1px solid #fff;
}

.pageend__copyright {
  justify-content: end;
  font-size: 0.8125rem;
  line-height: 1;
  letter-spacing: 0.1em;
}

@media (max-width: 1200px) {
  .pageend {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #fff;
    padding: 2rem 3%;
  }
  .pageend__1 {
    width: 100%;
    margin-bottom: 2rem;
  }
  .pageend__2 {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .pageend__content {
    grid-template-columns: auto;
  }
  .pageend__link {
    justify-content: center;
    margin: 0;
  }
  .pageend__sns {
    grid-column: 1/2;
    justify-content: center;
    margin-bottom: 1rem;
  }
  .pageend__copyright {
    margin-top: 1.6rem;
    text-align: center;
  }
}
.footer {
  padding: 0;
  margin: 0;
  background-color: #1e1e1e;
  color: #fff;
}

.footer__inner {
  padding: 120px;
}

.prof {
  display: flex;
  justify-content: space-between;
}

.prof__1 {
  flex: 0 0 36%;
}

.prof__2 {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  flex: 1;
  flex: 0 0 56%;
}

.prof__header {
  display: flex;
  flex-direction: column;
  font-size: 2.5rem;
  margin-bottom: 3rem;
}

.prof__position {
  font-size: 0.4em;
  font-weight: normal;
}

.prof__name {
  font-size: 1em;
  font-weight: bold;
}

.prof__name-en {
  font-size: 0.4em;
  font-weight: normal;
}

.prof__body {
  font-size: 1rem;
}

@media (max-width: 576px) {
  .prof {
    flex-direction: column;
  }
  .prof__header {
    margin-top: 3rem;
  }
  .prof__1 {
    width: 80%;
    flex: 0 0 auto;
  }
  .prof__2 {
    width: 100%;
    padding: 0;
    flex: 0 0 auto;
  }
}/*# sourceMappingURL=style.css.map */