@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background: #fff;
   color: #222;
   font-family: "Noto Sans JP", sans-serif;
   font-weight: 400;
   font-style: normal;
   font-size: 16px;
   line-height: 35px;
   letter-spacing: 0;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
}

/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt-mincho {
   font-family: "游明朝", YuMincho, 'Noto Serif JP', "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
   font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
   font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

.fnt-zen-old-mincho {
   font-family: "Zen Old Mincho", serif;
   font-weight: 700;
   font-style: normal;
}

.fnt-yuji-syuku {
   font-family: "Yuji Syuku", serif;
   font-weight: 400;
   font-style: normal;
}

.fnt-afacad {
   font-family: "Afacad", sans-serif;
   font-optical-sizing: auto;
   font-weight: 700;
   font-style: normal;
}

/*=============================================
   main
*=============================================*/
main {
   clear: both;
   width: 100%;
   position: relative;
   box-sizing: border-box;
}

@media only screen and (max-width: 767px) {
   main {
      overflow: hidden;
   }
}

@media only screen and (min-width: 768px) {
   main {
      padding-left: 300px;
   }
}

/* -- -- */
@media only screen and (max-width: 767px) {

   .wrap,
   .wrap-sp {
      width: 86.8vw;
      box-sizing: border-box;
      margin: 0 auto;
      position: relative;
   }

   img {
      width: 100%;
      height: auto;
   }
}

@media only screen and (min-width: 768px) {
   .wrap {
      width: 77%;
      box-sizing: border-box;
      position: relative;
      margin: 0 auto;
      padding: 0;
   }

   img {
      width: auto;
      max-width: 100%;
      height: auto;
   }
}

.non-over a:hover {
   opacity: 1;
}

.non-over a:hover img {
   opacity: 1;
}

/*=============================================
   header
*=============================================*/
header {
   box-sizing: border-box;
   position: relative;
   z-index: 100;
}

@media only screen and (max-width: 767px) {
   header .logo {
      font-size: 4.8vw;
      letter-spacing: 0.2em;
      line-height: 1.5;
      text-align: center;
   }

   header .logo a {
      display: block;
      padding: 4vw 5.6vw 4vw 70.6vw;
      position: relative;
   }

   header .logo h3 {
      font-size: 6.4vw;
      letter-spacing: -0.075em;
      position: absolute;
      top: 50%;
      left: 5.6vw;
      transform: translateY(-50%);
      text-align: left;
   }

   #menu-toggle {
      width: 100%;
      height: 100vh;
      background: #fff;
      box-sizing: border-box;
      overflow-y: auto;
      position: fixed;
      top: 0;
      left: 0;
      padding: 10vw 9.6vw 150px;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s linear;
      z-index: 3;
   }

   #menu-toggle .close_btn {
      width: 6.4vw;
      position: absolute;
      top: 4.8vw;
      right: 4.8vw;
   }

   #menu-toggle .nav {
      width: max-content;
      font-weight: 600;
      font-size: 5.4vw;
      letter-spacing: 0.1em;
      line-height: 2;
      margin: 0 auto;
   }

   #menu-toggle .nav a {
      display: block;
      padding-left: 8vw;
   }

   #menu-toggle .nav a.current {
      background: url("../img/shared/nav-current-icon.png") no-repeat center left/6.4vw auto;
   }
   #menu-toggle .nav .accordion summary{
      padding-left: 8vw;
      font-weight: 400;
      font-size: 4vw;
   }

   #menu-toggle .nav .accordion li{
      font-weight: 400;
      font-size: 3.6vw;
      line-height: 2em;
   }
   #menu-toggle .bnr1 {
      padding-top: 10vw;
   }

   #menu-toggle .bnr2 {
      padding-top: 3.2vw;
   }

   .navOpen #menu-toggle {
      opacity: 1;
      visibility: visible;
   }
}

@media only screen and (min-width: 768px) {
   header {
      width: 300px;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
   }

   header .logo {
      text-align: center;
      font-size: 30px;
      letter-spacing: 0.1em;
      line-height: 46px;
      padding: 20px 0 0;
   }

   header .logo h3 {
      font-size: 30px;
      padding-bottom: 20px;
   }

   #menu-toggle {
      background-color: #fff;
      max-height: 100vh;
      overflow-y: auto;
      position: sticky;
      top: 0;
      padding: 20px 0;
      box-sizing: border-box;
   }

   #menu-toggle::-webkit-scrollbar {
      width: 5px;
   }

   #menu-toggle .inner {
      width: 200px;
      margin: 0 auto;
   }

   #menu-toggle .nav {
      font-weight: 600;
      font-size: 18px;
      line-height: 40px;
      letter-spacing: 0.1em;
      padding-left: 36px;
   }

   #menu-toggle .nav li{
      margin-bottom: 13px;
   }

   #menu-toggle .nav a {
      display: block;
      padding-left: 25px;
      transition: 0s;
      line-height: 28px;
   }

   #menu-toggle .nav a:hover,
   #menu-toggle .nav a.current {
      background: url("../img/shared/nav-current-icon.png") no-repeat left center/15px auto;
   }

   #menu-toggle .nav .accordion summary{
      font-weight: 400;
      font-size: 14px;
   }

   #menu-toggle .nav .accordion li{
      font-weight: 400;
      font-size: 12px;
      line-height: 25px;
   }

   #menu-toggle .bnr1 {
      padding-top: 0;
   }

   #menu-toggle .text {
      font-size: 12px;
      line-height: 14px;
      letter-spacing: 0.05em;
      text-align: center;
      border: 1px solid #000;
      margin-top: 30px;
      padding: 16px 0 17px;
   }

   #menu-toggle .text h3 {
      font-weight: 400;
      font-size: 14px;
      line-height: 18px;
   }

   #menu-toggle .text .tel {
      font-size: 24px;
      letter-spacing: 0;
      line-height: 50px;
      background: url("../img/shared/icon-tel.png") no-repeat center left 14px/12px auto;
      padding: 2px 0 0 20px;
   }

   #menu-toggle .text .txt-link {
      padding: 3px 0 14px;
   }

   #menu-toggle .text .txt-link a:hover {
      text-decoration: underline;
   }

   #menu-toggle .bnr2 {
      padding-top: 0;
   }

   body.has_nav #menu-toggle {
      overflow-y: auto;
   }

   body.has_nav #menu-toggle:hover::-webkit-scrollbar-track {
      box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
   }

   body.has_nav #menu-toggle:hover::-webkit-scrollbar-thumb {
      background-color: darkgrey;
      outline: none;
   }
}

/*=============================================
   section
*=============================================*/
#key {
   box-sizing: border-box;
   position: relative;
}

.key-slider {
   width: 100%;
   height: 100%;
}

.key-slider .slick-list,
.key-slider .slick-track,
.key-slider .slick-slide {
   width: 100%;
   height: 100%;
}

@media only screen and (max-width: 767px) {
   #key h1 {
      color: #fff;
      font-weight: 300;
      font-size: 12px;
      line-height: 19px;
      letter-spacing: 0.2em;
      position: absolute;
      top: 1.6vw;
      left: 3.3vw;
      right: 3.3vw;
   }

   #key .photo {
      height: 94vw;
   }

   #key .key-catch {
      position: absolute;
      top: 12vw;
      right: 4vw;
   }

   #key .key-catch h2 {
      font-size: 12.8vw;
      letter-spacing: 0;
      line-height: 1;
   }

   #key .key-catch h3 {
      font-weight: 700;
      font-size: 4vw;
      letter-spacing: 0.2em;
      line-height: 1.5;
      padding-top: 2vw;
   }

   #key .key-catch1 {
      text-align: right;
      padding: 3vw 6.6vw 0 0;
   }

   #key .key-catch1 h2 {
      font-size: 6vw;
      letter-spacing: 0;
      line-height: 1.2;
   }

   #key .key-catch1 h2 strong {
      font-weight: inherit;
      font-size: 8vw;
   }

   #key .key-catch1 h2 span {
      font-size: 7vw;
   }
}

@media only screen and (min-width: 768px) {
   #key h1 {
      color: #fff;
      font-weight: 300;
      font-size: 12px;
      line-height: 18px;
      letter-spacing: 0.2em;
      text-align: right;
      position: absolute;
      top: 10px;
      left: 10px;
      right: 10px;
   }

   #key .photo {
      height: 760px;
      margin-left: 4%;
   }

   #key .key-catch {
      position: absolute;
      top: 92px;
      right: 3.46%;
   }

   #key .key-catch h2 {
      font-size: 98px;
      letter-spacing: 0;
      line-height: 1;
   }

   #key .key-catch h3 {
      font-weight: 700;
      font-size: 26px;
      letter-spacing: 0.2em;
      line-height: 40px;
      padding-top: 6px;
   }

   #key .key-catch1 {
      text-align: right;
      padding: 10px 6.1% 0 0;
   }

   #key .key-catch1 h2 {
      font-size: 52px;
      letter-spacing: -0.15em;
      line-height: 80px;
   }

   #key .key-catch1 h2 strong {
      font-weight: inherit;
      font-size: 80px;
   }

   #key .key-catch1 h2 span {
      font-size: 70px;
   }
}

/* -- -- */
section {
   position: relative;
}

/*=============================================
   footer
*=============================================*/
footer {
   box-sizing: border-box;
   position: relative;
}

@media only screen and (max-width: 767px) {
   footer {
      padding-bottom: 16vw;
   }

   footer .wrap {
      width: 93.6vw;
   }

   footer .logo {
      font-size: 8vw;
      letter-spacing: 0.2em;
      line-height: 1.5;
      text-align: center;
   }

   footer .logo h3 {
      font-size: 5.3vw;
      letter-spacing: 0.025em;
   }

   footer .logo img {
      width: 60vw;
   }

   footer .text {
      text-align: center;
      padding-top: 8vw;
   }

   footer .text h3 {
      background-color: #b72e00;
      color: #fff;
      border-radius: 50px;
      font-size: 6.6vw;
      line-height: 1.5;
      letter-spacing: 0.1em;
      text-align: center;
      padding-bottom: 1vw;
   }

   footer .text .tel {
      padding: 4vw 0;
   }

   footer .text .tel a {
      display: inline-block;
      font-size: 12.8vw;
      line-height: 1;
      letter-spacing: 0;
      background: url("../img/shared/icon-tel.png") no-repeat top 4vw left/6.4vw auto;
      padding-left: 8vw;
   }

   footer .text .note {
      font-size: 13px;
      letter-spacing: 0;
      line-height: 20px;
      text-align: left;
   }

   footer .info {
      line-height: 26px;
      letter-spacing: 0.025em;
      padding-top: 18vw;
   }

   footer .info dl {
      display: table;
      width: 100%;
      border-bottom: 1px solid #222;
      padding: 18px 0;
   }

   footer .info dl:first-child {
      padding-top: 0;
   }

   footer .info dl>* {
      display: table-cell;
      vertical-align: top;
   }

   footer .info dl dt {
      width: 26vw;
   }

   footer .bnr {
      padding-top: 14vw;
   }

   footer nav {
      display: none;
   }

   footer .copyright {
      font-size: 13px;
      letter-spacing: 0.15em;
      line-height: 25px;
      text-align: center;
      padding: 18vw 0 13.4vw;
   }

   .pagetop {
      width: 8vw;
      bottom: 20vw;
      right: 4vw;
   }
}

@media only screen and (min-width: 768px) {
   footer {
      padding: 92px 0 20px;
   }

   footer .wrap {
      display: flex;
      flex-wrap: wrap;
      gap: 40px;
      width: auto;
      padding: 0 4%;
   }

   footer .col-l {
      width: 220px;
      padding-top: 2px;
   }
   footer .info{
      max-width: 600px;
   }
   footer .col-r {
      width: calc(100% - 260px);
   }

   footer .logo {
      font-size: 30px;
      letter-spacing: 0.2em;
      line-height: 30px;
   }

   footer .logo h3 {
      font-size: 20px;
      letter-spacing: -0.075em;
      padding-bottom: 13px;
   }

   footer .logo img {
      padding: 10px 0;
   }

   footer .text {
      font-size: 14px;
      line-height: 20px;
      letter-spacing: 0.05em;
      text-align: center;
      padding-top: 52px;
   }

   footer .text h3 {
      background-color: #b72e00;
      color: #fff;
      border-radius: 50px;
      font-size: 16px;
      line-height: 30px;
      letter-spacing: 0.1em;
      text-align: center;
   }

   footer .text .tel {
      font-size: 28px;
      letter-spacing: 0;
      line-height: 56px;
      background: url("../img/shared/icon-tel.png") no-repeat top 24px left 9px/15px auto;
      padding: 2px 0 0 25px;
   }

   footer .text .note {
      text-align: left;
      margin-right: -15px;
      padding-top: 0;
   }

   footer .bnr {
      padding-top: 50px;
   }

   footer .info {
      line-height: 28px;
   }

   footer .info dl {
      display: table;
      width: 100%;
      border-bottom: 1px solid #222;
      padding: 27px 0;
   }

   footer .info dl:first-child {
      padding-top: 0;
   }

   footer .info dl>* {
      display: table-cell;
      vertical-align: top;
   }

   footer .info dl dt {
      width: 135px;
   }

   footer nav {
      padding-top: 90px;
   }

   footer nav ul {
      display: flex;
      flex-wrap: wrap;
      gap: 20px 26px;
      margin-right: -30px;
   }

   footer nav a {
      display: inline-block;
      letter-spacing: 0.1em;
      border-bottom: 3px solid transparent;
      position: relative;
   }

   footer nav a:hover,
   footer nav a.current {
      border-bottom-color: #f33300;
   }

   footer .copyright {
      font-size: 14px;
      line-height: 20px;
      letter-spacing: 0.14em;
      text-align: center;
      padding: 72px 0 71px;
   }

   footer address {
      padding-top: 10px;
   }

   footer .cookies-link a:hover {
      text-decoration: underline;
   }

   footer #socialbuttons {
      padding-bottom: 17px;
   }

   .pagetop {
      width: 50px;
      right: 20px;
      bottom: 20px;
   }
}

@media only screen and (min-width: 1440px) {
   footer .wrap {
      gap: 0px;
   }

   footer .col-l {
      width: 381px;
   }

   footer .col-l>* {
      max-width: 220px;
   }

   footer .col-r {
      width: 700px;
   }
   
}

/*=============================================
   css for ie 11 
*=============================================*/
#fixed-pc {
   position: fixed;
   top: 50%;
   right: 0;
   transform: translateY(-50%);
   opacity: 0;
   visibility: hidden;
   transition: all 0.3s;
   z-index: 1;

}

.has_nav #fixed-pc {
   visibility: visible;
   opacity: 1;
}

#fixed-pc ul {
   display: flex;
   flex-direction: column;
   gap: 20px;
}

#fixed-sp {
   width: 100%;
   background: #b72e00;
   color: #fff;
   box-sizing: border-box;
   position: fixed;
   bottom: 0;
   left: 0;
   z-index: 101;
   opacity: 1;
   visibility: visible;
   text-align: center;
}

#fixed-sp.visible {
   opacity: 1;
   visibility: visible;
}

#fixed-sp ul {
   display: flex;
   text-align: center;
}

#fixed-sp ul li {
   position: relative;
}

#fixed-sp ul li+li:after {
   content: '';
   width: 0;
   height: 100%;
   border-left: 0.4vw solid #fff;
   position: absolute;
   top: 0;
   left: 0;
}

#fixed-sp ul li:nth-child(1) {
   width: 62.5vw;
}

#fixed-sp ul li:nth-child(2) {
   width: 21.3vw;
}

#fixed-sp ul li:nth-child(3) {
   width: 16.1vw;
}

.navOpen #fixed-sp {
   display: none;
}

/* iPhone X */
@media only screen and (max-width: 767px) and (min-device-width: 375px) and (min-device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + 16vw);
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 20vw);
   }
}

/* iPhone XR */
@media only screen and (max-width: 767px) and (min-device-width: 414px) and (min-device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + 16vw);
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 20vw);
   }
}

/* iPhone 11 */
@media only screen and (max-width: 767px) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + 16vw);
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 20vw);
   }
}

@media only screen and (max-width: 767px) and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + 16vw);
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 20vw);
   }
}

@media only screen and (max-width: 767px) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + 16vw);
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 20vw);
   }
}

/* --- --- */
/*=============================================
   Custom
*=============================================*/
/* -- --*/
.pc {
   display: none;
}

.sp {
   display: block;
}

@media only screen and (min-width: 768px) {
   .pc {
      display: block;
   }

   .sp {
      display: none;
   }
}

/* -- --*/
.bg-parallax {
   min-height: inherit;
   position: relative;
}

.img-parallax {
   display: none;
}

@media only screen and (max-width: 1200px) {
   .bg-parallax {
      background: transparent !important;
      position: relative;
   }

   .img-parallax {
      display: block;
      clip: rect(0, auto, auto, 0);
      margin-bottom: 0;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      z-index: -1;
   }

   .img-parallax img {
      width: 100%;
      height: 100vh !important;
      position: fixed;
      top: 0;
      left: 0;
      padding: 0;
      margin: 0;
      object-fit: cover;
      z-index: 99;
   }
}

/* -- -- */
.shadow-img {
   box-shadow: 0px 0px 10px rgba(4, 0, 0, 0.29);
}

.cl-red {
   color: #b72e00;
}

.cl-orange {
   color: #b72e00;
}

.cl-green {
   color: #567f57;
}

.cl-purple {
   color: #584172;
}

.txt-c {
   text-align: center;
}

.txt-r {
   text-align: right;
}

a {
   transition: all 0.3s;
}

a img {
   transition: all 0.3s;
}

a:hover {
   text-decoration: none;
}

@media only screen and (min-width: 768px) {
   a:hover img {
      opacity: 0.7;
   }
}

/* -- -- */
#socialbuttons {
   display: flex;
   justify-content: center;
   margin: 0 auto;
}

.social-facebook {
   width: 95px;
   overflow: hidden;
   display: flex !important;
   justify-content: center;
}

/* -- slick -- */
.slick-arrow {
   display: block;
   width: 52px;
   height: 52px;
   border: 0;
   font-size: 0;
   cursor: pointer;
}

.slick-arrow:hover {
   opacity: 0.7;
}

.slick-arrow:hover {
   opacity: 0.8;
}

.slick-dots {
   display: flex;
   align-items: center;
   gap: 10px;
}

.slick-dots li {
   display: block;
   font-size: 0;
   width: 10px;
   height: 10px;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   cursor: pointer;
   position: relative;
}

.slick-dots button {
   font-size: 0;
   background: #cecece;
   display: block;
   width: 100%;
   height: 100%;
   -webkit-appearance: none;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   cursor: pointer;
   border-radius: 50%;
   border: 0;
}

.slick-dots .slick-active button {
   background: #ff4000;
}

.slick-dots li:hover button {
   opacity: 0.7;
}

.dots-number .slick-dots {
   gap: 30px;
}

.dots-number .slick-dots li {
   width: 30px;
   height: 30px;
}

.dots-number .slick-dots li button {
   background: transparent;
   border: 1px solid transparent;
   font-family: 'Shippori Mincho', serif;
   font-weight: 500;
   font-size: 20px;
   line-height: 24px;
   letter-spacing: 0;
   color: #000;
   padding-bottom: 2px;
}

.dots-number .slick-dots li.slick-active button {
   border-color: #000;
}

/* -- -- */
.button {
   position: relative;
}

.button a {
   position: relative;
}

@media only screen and (max-width: 767px) {
   .button a {
      display: inline-block;
      color: #222;
      font-family: "Zen Old Mincho", serif;
      font-weight: 400;
      font-style: normal;
      font-size: 5vw;
      line-height: 1.5;
      letter-spacing: 0.2em;
      border-bottom: 1px solid;
      padding: 0 4vw 2vw;
   }

   .button a:after {
      content: '';
      display: inline-block;
      vertical-align: baseline;
      width: 3vw;
      height: 3vw;
      background: url('../img/shared/btn-arrow.png') no-repeat center left / auto 100%;
      margin-left: 2vw;
      transition: all 0.3s;
   }

   .button a:hover:after {
      transform: translateX(5px);
   }

   .button.white a {
      color: #fff;
   }

   .button.white a:after {
      background-image: url('../img/shared/btn-arrow-white.png');
   }
}

@media only screen and (min-width: 768px) {
   .button a {
      display: inline-block;
      color: #222;
      font-family: "Zen Old Mincho", serif;
      font-weight: 700;
      font-style: normal;
      font-size: 20px;
      line-height: 30px;
      letter-spacing: 0.025em;
      border-bottom: 1px solid;
      padding: 0 24px 9px 8px;
   }

   .button a:after {
      content: '';
      display: inline-block;
      vertical-align: baseline;
      width: 10px;
      height: 10px;
      background: url('../img/shared/btn-arrow.png') no-repeat center left / auto 10px;
      margin-left: 10px;
      transition: all 0.3s;
   }

   .button a:hover:after {
      transform: translateX(5px);
   }

   .button.white a {
      color: #fff;
   }

   .button.white a:after {
      background-image: url('../img/shared/btn-arrow-white.png');
   }
}

/* -- -- */
.list-menu {
   line-height: 20px;
   text-align: left;
}

.list-menu h3 {
   border-bottom: 2px double #222;
   padding-bottom: 12px;
}

.list-menu dl {
   display: flex;
   flex-wrap: wrap;
   gap: 0;
   letter-spacing: 0.1em;
   border-bottom: 1px solid #222;
}

.list-menu dl dt {
   flex: 1 0 60%;
}

.list-menu dl dd {
   align-self: flex-end;
   text-align: right;
}

@media only screen and (max-width: 767px) {
   .list-menu h4 {
      text-align: center;
      font-size: 4.8vw;
      line-height: 1.5;
      letter-spacing: 0.1em;
      border-bottom: 3px double #222;
      padding-bottom: 4vw;
   }
}

@media only screen and (min-width: 768px) {
   .list-menu {
      display: flex;
      flex-wrap: wrap;
   }

   .list-menu h4 {
      text-align: center;
      font-size: 24px;
      line-height: 28px;
      letter-spacing: 0.1em;
      border-bottom: 3px double #222;
      padding-bottom: 18px;
   }
}

/* -- -- */
.d-flex {
   display: flex;
   flex-wrap: wrap;
}

/* -- -- */
.fadeup {
   opacity: 0;
   transform: translate(0px, 10px);
}

.fadeup[style*="visible"] {
   opacity: 1;
   transform: translate(0px, 0px);
   transition-delay: 300ms;
   transition-duration: 2000ms;
}

.fade-in-right {
   opacity: 0;
   transform: translate(-20px, 0px);
}

.fade-in-right[style*="visible"] {
   opacity: 1;
   transform: translate(0px, 0px);
   transition-delay: 300ms;
   transition-duration: 2000ms;
}

.fade-in-left {
   opacity: 0;
   transform: translate(20px, 0px);
}

.fade-in-left[style*="visible"] {
   opacity: 1;
   transform: translate(0px, 0px);
   transition-delay: 300ms;
   transition-duration: 2000ms;
}

/* --- --- */
.bd-ra10 {
   border-radius: 10px;
}

/* --- --- */
.hvr-sweep-to-right {
   position: relative;
   z-index: 1;
}

.hvr-sweep-to-right:before {
   content: "";
   position: absolute;
   z-index: -1;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   background: #b1aeab;
   -webkit-transform: scaleX(0);
   transform: scaleX(0);
   -webkit-transform-origin: 0 50%;
   transform-origin: 0 50%;
   -webkit-transition-property: transform;
   transition-property: transform;
   -webkit-transition-duration: 0.3s;
   transition-duration: 0.3s;
   -webkit-transition-timing-function: ease-out;
   transition-timing-function: ease-out;
}

.hvr-sweep-to-right:hover {
   color: #000;
}

.hvr-sweep-to-right:hover:before {
   -webkit-transform: scaleX(1);
   transform: scaleX(1);
}

/* --- --- */
@media only screen and (max-width: 767px) {
   .h-48 {
      font-size: 12.8vw;
      line-height: 1.25;
      letter-spacing: 0.2em;
   }

   .h-80 {
      font-size: 12.8vw;
      line-height: 1.25;
      letter-spacing: 0.1em;
   }
}

@media only screen and (min-width: 768px) {
   .h-48 {
      font-size: 48px;
      line-height: 52px;
      letter-spacing: 0.2em;
   }

   .h-80 {
      font-size: 80px;
      /* letter-spacing: 0.1em; */
      line-height: 90px;
   }
}

.header-btn{
   display: flex;
   padding: 5px 10px;
   background-color: #222;
   color: #fff;
   border: 2px solid #b72e00;
   font-size: 13px;
   font-weight: 700;
   line-height: 1.4;
   position: absolute;
   top: 3.2vw;
   left: 15px;
   width: 180px;
   z-index: 1;
   transition: all 0.3s;
}
.header-btn:hover{
   opacity: 0.8;
}
.header-btn i{
   position: absolute;
   width: 10px;
   display: block;
   right: 10px;
   top: calc(50% - 9px);
   line-height: 1;
}

@media only screen and (min-width: 768px) {
   .header-btn{
      width: 370px;
      height: 47px;
      top: 20px;
      left: 318px;
      font-size: 16px;
      letter-spacing: 0.5px;
      padding: 0 0 0 22px;
      justify-content: flex-start;
      align-items: center;
   }
   .header-btn i{
      width: 12px;
      right: 15px;
   }
}
.nav-link{
   margin-top: 30px;
}
.nav-link li{
   margin-bottom: 10px;
}
.nav-link li a{
   display: flex;
   justify-content: center;
   align-items: center;
   position: relative;
   background-color: #ededed;
   font-weight: 600;
   font-size: 16px;
   padding: 5px 35px 5px 0;
   transition: all 0.3s;
}
.nav-link li a:hover{
   opacity: 0.8;
}
.nav-link li a i{
   display: block;
   position: absolute;
   width: 15px;
   height: 15px;
   line-height: 15px;
   right: 15px;
   top: calc(50% - 7.5px);
}
#menu-toggle .bnr2{
   display: block;
   margin-top: 10px;
}
@media only screen and (min-width: 768px) {
   .nav-link li a{
      font-weight: 300;
      font-size: 14px;
      line-height: 23px;
      justify-content: flex-start;
      padding: 5px 0 5px 10px;
   }
}

.btn-global{
   display: flex;
   justify-content: center;
   align-items: center;
   position: relative;
   background-color: #b72e00;
   font-weight: 700;
   font-size: 16px;
   padding: 5px 0;
   transition: all 0.3s;
}
.btn-global.btn-white{
   background-color: #fff;
   color: #b72e00;
}
.btn-global:hover{
   opacity: 0.8;
}
.btn-global i{
   display: block;
   position: absolute;
   width: 9px;
   height: 12px;
   line-height: 12px;
   right: 15px;
   top: calc(50% - 9px);
}
.df{
   display: flex;
   justify-content: space-between;
}
@media only screen and (min-width: 768px) {
   .df-pc{
      display: flex;
      justify-content: space-between;
   }
   .btn-global{
      font-size: 24px;
   }
}
@media only screen and (max-width: 767px) {
   .df-sp{
      display: flex;
      justify-content: space-between;
   }
}

.footer-bnr-sp{
   margin: 42px auto 0;
   width: 285px;
}
.footer-bnr-sp a, .footer-bnr-pc a{
   display: block;
}
.footer-bnr-sp p, .footer-bnr-pc p{
   margin-bottom: 10px;
}
.footer-bnr-pc{
   margin-top: 46px;
}

@media only screen and (min-width: 768px) {
   footer .nav-link{
      display: flex;
      margin-top: 10px;
   }
   footer .nav-link li{
      margin-right: 15px;
   }
   footer .nav-link li:nth-child(1) a{
      width: 200px;
   }
   footer .nav-link li:nth-child(2) a{
      width: 260px;
   }
}