﻿@charset "UTF-8";

/*----------------------------------------
ヘッダーcss
-----------------------------------------*/
.skip {
  /* アクセシビリティ このページの本文へ移動用 */
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.header {
  position: fixed;
  top: 0;
  width: 100%;
  height: var(--header-height);
  z-index: 99;
  filter: drop-shadow(1px 1px 30px rgba(0, 0, 0, 0.5));
  transform: translateZ(0);
  transition: 0.3s ease-in;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.65) 100%);
}

.header:has(.-active),
.header.change-color:has(.-active) {
  background: #222;
}

.header .header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  padding-left: var(--inner-padding-LR);
  /* padding-right: var(--inner-padding-LR); */
}

.logo {
  max-width: 200px;
  width: 100%;

  img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}

.header .logo {
  max-width: 460px;

  a {
    display: block;
    padding: 3.5% 5% 4% 0;
    transition: 0.3s ease-in 0s;
    max-height: var(--header-height);
  }
}

.header .logo a img {
  object-position: left;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.header .header_pickup_link {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header .logo_other a {
  display: block;
  max-width: 200px;
  width: 35vw;
  max-height: var(--header-height);
}

.header .logo_other a img {
  object-position: left;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hamburger {
  display: block;
  margin-left: auto;
  position: relative;
  width: 90px;
  height: 72px;
  border: none;
  padding: 10px;
  background-color: transparent;
}

.hamburger.-active .hamburger__line {
  background-color: transparent;
}

.hamburger.-active .hamburger__line::before {
  top: 0;
  transform: rotate(45deg);
}

.hamburger.-active .hamburger__line::after {
  top: 0;
  transform: rotate(-45deg);
}

.hamburger__line {
  display: block;
  height: 2px;
  width: 45%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* background-color: #494949; */
  transition: 0.4s;
}

.hamburger__line:before,
.hamburger__line:after {
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
  /* background-color: #494949; */
  background-color: #fff;
  transition: inherit;
}

.hamburger__line:before {
  top: -4.5px;
}

.hamburger__line:after {
  top: 4.5px;
}

.hamburger__text {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

/* .header.change-color {
  background: unset;
} */

.header__nav-area {
  position: absolute;
  top: var(--header-height);
  left: 0;
  display: none;
  width: 100%;
  height: auto;
  /* min-height: 300px; */
  visibility: hidden;
  transition: 0.4s;
  overflow: hidden;
  animation: fadeout 0.5s ease-in-out forwards;
  transition: 0.35s ease-in-out;
  color: #fff;
  background: linear-gradient(-120deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0.95) 100%);
  backdrop-filter: blur(12px);
}

.header__nav-area.-active {
  visibility: visible;
  display: block;
  animation: fadein 0.5s ease-in-out forwards;
  transition: 0.35s ease-in-out;
}

header:has(.-active) .change-logo a {
  opacity: 1;
  transition: 0.3s ease-in 0s;
}

.header__nav-area .inner_wide {
  padding: 40px var(--inner-padding-LR);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.main_navi {
  width: 60%;
}

.header__nav-area .main_navi .navi_tit {
  color: #888;
  margin-right: 2em;
}

.header__subnav-area {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 40px var(--inner-padding-LR);
}

/* ナビゲーション */
.main_navi .navi_item {
  position: relative;
  /* display: flex; */
  margin-bottom: 1.5rem;
}

.main_navi .navi_item:last-child {
  margin-bottom: 0;
}

.main_navi .navi_item:has(.titOnly) {
  align-items: center;
}

.main_navi .navi_item:has(.titOnly):after {
  content: "";
  height: 1px;
  flex-grow: 1;
  background-color: #666;
  transform: translate(0, -50%);
}

.header__subnav-area .category_tit {
  margin-bottom: 0.5em;
  font-size: 2rem;
  font-family: var(--font-family-en);
  color: #666666;
  line-height: 1;
  letter-spacing: 0.015em;
}

.header__subnav-area .main_navi {
  width: 50%;
}

.header__subnav-area .contactContainer {
  width: 40%;
}

.header__subnav-area .buttonContainer {
  width: 100%;
}

.main_navi .subNavi {
  /* width: calc(100% - 9em); */
  margin-top: 1.5em;
  margin-left: 1em;
  /* display: flex;
  flex-wrap: wrap;
  justify-content: start; */
}

.main_navi .subNavi>* {
  margin-right: 3%;
  margin-bottom: 0.75em;
  min-width: 30%;
  /* font-size: 1.125rem; */
}

.main_navi .subNavi.column3>* {
  margin-right: 3%;
  width: 30%;
}

.main_navi .subNavi.column2>* {
  margin-right: 7%;
  width: 46%;
}

.main_navi .subNavi.column2>*:last-child {
  margin-right: 0;
}

@keyframes fadein {
  0% {
    opacity: 0;
    -moz-opacity: 0;
    filter: alpha(opacity=0);
    visibility: visible;
  }

  100% {
    opacity: 1;
    -moz-opacity: 1;
    filter: alpha(opacity=100);
    visibility: visible;
  }
}

@keyframes fadeout {
  0% {
    opacity: 1;
    -moz-opacity: 1;
    filter: alpha(opacity=100);
    visibility: visible;
  }

  100% {
    opacity: 0;
    -moz-opacity: 0;
    filter: alpha(opacity=0);
    visibility: hidden;
  }
}

.header .button_view {
  margin: 20px 0;
  width: 100%;
  max-width: none;
}


/* フローティング要素 */

.floatingContainer {
  position: fixed;
  margin-bottom: var(--inner-padding-LR);
  right: var(--inner-padding-LR);
  bottom: 0;
  z-index: 10;
  color: #fff;

  .bgColor_gold {
    background: unset;
  }

  .button_view {
    font-size: 1.105rem;
    margin: 0;
    padding: var(--inner-padding-LR) 2vw;
    text-align: center;
    letter-spacing: 0;
    text-align: center;

    .textContainer {
      margin: auto;
    }
  }

  .contactContainer_tel {
    text-align: center;
    margin-top: 4vw;

    .textContainer {
      font-size: 1.05rem;
    }

    .contact_number {
      width: 56%;
    }

    .contactContainer_tel_wrap {
      display: flex;
      justify-content: space-between;
      align-items: center;

      .contact_number {
        margin-top: 1vw;
      }

      .caption {
        font-size: 3vw !important;
        letter-spacing: 0;
        line-height: 1.3;
        width: 39%;
        margin-left: auto;
        text-align: left;
      }
    }

  }
}



/* ページトップボタン */
.btnTotop {
  position: fixed;
  top: calc(100vh - 40px);
  right: 20px;
  /* bottom: 40px; */
  z-index: 20;
  width: 60px;
  transform: translate(0, -100%);
  transition: 3ms ease-in;
}

.btnTotop:hover,
.btnTotop:hover img {
  filter: brightness(1.15);
}

.btnTotop.change-position {
  position: absolute;
  top: -20px;
  bottom: unset;
  transform: translate(0, -100%);
  transition: 3ms ease-in;
}


.contactContainer .contactContainer_tel {
  /* border-left: 0.5px solid #fff; */
  /* background: rgba(0, 0, 0, 0.75); */
  /* padding: 0 24px 32px; */
  width: 100%;
  /* text-align: center; */

  span,
  a {
    display: block;
  }

  .contact_number {
    max-width: 260px;
    width: 70%;
    margin: 10px 0 0;
    display: inline-block;
  }

  .caption {
    display: inline-block;
  }
}

/*----------------------------------------
フッターcss
-----------------------------------------*/
footer {
  position: relative;
  margin-top: -1px;
  z-index: 2;
}

.footerContainer {
  position: relative;
  color: #fff;
  background: url(/assets/img/common/fotter_bg_img.webp) center center;
  background-size: cover;
}

.footerContainer::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgb(51, 51, 51) 0%, rgb(80, 80, 80) 50%, rgb(51, 51, 51) 100%);
}

.footerContainer .inner_wide {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 80px var(--inner-padding-LR);
}

.footerContainer .inner_wide .footerCopyCountainer {
  width: 55%;
}

.footerContainer .inner_wide .contactContainer {
  width: 40%;
}

.footerContainer .flex_colum2 {
  width: 100%;
  display: flex;
  justify-content: space-between;

  .contactContainer_tel {
    width: 70%;
  }

  .mapContainer {
    position: relative;
    width: 28%;
    text-align: center;
    border: 1px solid #fff;
    background: rgba(255, 255, 255, 0.05);

    p {
      font-size: 0.84rem;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    .textContainer {
      font-size: 1rem;
    }

    img {
      display: block;
      margin: 0 auto;
      width: 2.55em;
      height: 2.55em;
    }
  }
}

.footerCopyCountainer {
  .footerCopy_entext {
    font-size: 1.25rem;
    margin-left: -1.25em;
    margin-bottom: 1.5em;
    font-weight: bold;
  }

  .footerCopy_subtext {
    font-size: 1.55rem;
    line-height: 2.05;
    letter-spacing: 0.25em;
  }

  .footerCopy_maintext {
    font-size: 2.75rem;
    font-weight: bold;
    letter-spacing: 0.1em;
  }

  span {
    display: block;
  }

}

.footerContainer>.flex.column2 .copo_info_inner {
  max-width: calc(var(--innerWide-maxWidth) / 2);
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: auto;
}

.footerContainer .buttonContainer .button_view {
  position: relative;
  margin-left: auto;
  /* max-width: 400px; */
  width: 100%;
  background: linear-gradient(90deg, rgba(51, 51, 51, 0.4) 0, rgba(0, 0, 0, 0.5) 100%);

  .viewContainer {
    margin-left: 4em;
  }

}

.footerContainer .contactContainer .textContainer {
  font-size: 1.15rem;
}

.footerContainer>.flex.column2 .sitemap {
  max-width: calc(var(--innerWide-maxWidth) / 2 + 1em);
  margin-right: auto;
  padding-left: var(--inner-padding-LR);
}

.logoContainer {
  padding: var(--inner-padding-LR);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #000;

  .copyrightContainer {
    display: flex;
    width: fit-content;
    flex-wrap: wrap;
    align-items: center;
    text-align: right;

    .sitemapList {
      display: flex;
      width: fit-content;
      margin-left: auto;
      line-height: 1.25;

      /* li {
        margin-bottom: 0.5em;
      } */

      li+li {
        position: relative;
        margin-left: 1em;
        padding-left: 0.5em;

        &::before {
          content: "";
          position: absolute;
          top: 50%;
          left: 0em;
          width: 0.5em;
          height: 100%;
          border-left: 1px solid #999999;
          transform: translate(-50%, -50%) skew(-15deg);
        }
      }
    }

    .copy {
      margin-top: -0.05em;
      margin-left: 2em;
    }

    &,
    p {
      font-size: 0.75rem;
      letter-spacing: 0;
    }
  }
}

.footerContainer .sitemap_wrap .main_navi .subNavi {
  font-size: 0.95rem;
}

.footerContainer a:hover {
  opacity: 0.8;
}

.copyright_wrap {
  margin-top: 0;
  padding: 1em;
  color: #fff;
}

.footerContainer .button_view {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  border-image: linear-gradient(90deg, #fff 0, #4d4d4d 100%) 1;
}

.footerContainer .copyright {
  font-size: 0.75em;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

@media only screen and (max-width: 1350px) {
  .global-navigation ul>* a {
    font-size: 1vw;
  }

  .footerContainer>.flex.column2 .sitemap {
    padding-left: 0;
  }

  /* .main_navi .subNavi.column2>* {
    width: 100%;
  } */
}

@media only screen and (max-width: 1200px) {
  .global-navigation {
    width: 100%;
  }

  /* ナビゲーション */
  .main_navi .navi_item {
    flex-wrap: wrap;
  }

  .main_navi .subNavi {
    width: 100%;
  }

  .footerCopyCountainer {
    .footerCopy_maintext {
      font-size: 4vw;
    }
  }

  .footerCopyCountainer {
    .footerCopy_entext {
      margin-left: -0.5em;
    }
  }
}

@media only screen and (max-width: 959px) {
  .header .logo_other a {
    width: 25vw;
  }

  .global-navigation ul>* a {
    font-size: 1.25vw;
  }

  .footerCopyCountainer {
    .footerCopy_subtext {
      font-size: 2.45vw;
    }
  }

  .logoContainer {
    .copyrightContainer {

      .sitemapList {
        margin-left: auto;
        margin-bottom: 0.5em;
      }

      .copy {
        width: 100%;
      }
    }
  }

}

/*==========================================================================================
ここからSP
==========================================================================================*/
@media only screen and (max-width: 767px) {

  /*----------------------------------------
  ヘッターcss
  -----------------------------------------*/
  .header {
    height: var(--header-height);
  }

  .header .header__inner {
    padding-left: var(--inner-padding-LR);
    padding-right: var(--inner-padding-LR);
  }

  .header__nav-area {
    height: calc(100vh - var(--header-height));
    overflow: scroll;
  }

  .hamburger {
    width: 8vw;
    height: 10vw;
    padding: 4vw;
  }

  .hamburger__line {
    width: 80%;
  }

  .header__subnav-area {
    flex-wrap: wrap;
    height: auto;
  }

  .header .logo {
    width: 85%;
    max-width: unset;
  }

  .header .logo a {
    width: 100%;
    max-width: unset;
    height: 100%;
    padding: 2vw 4vw 2vw 0;
  }

  .header .logo img {
    display: inline-block;
    width: 100%;
    height: 100%;
    object-position: left;
    object-fit: contain;
  }

  .header .logo_other a {
    /* width: 10vw;
    margin-right: 0.75em; */
    width: 90%;
    max-width: unset;
    margin: 15vw auto 4vw;
  }


  .header__nav-area::after {
    width: 100%;
  }

  .header__nav-area {
    background: linear-gradient(0deg, rgb(57, 57, 57) 0%, rgb(69, 69, 69) 100%);
  }

  .header .main_navi .subNavi.column3>* {
    margin-right: 2%;
    width: 48%;
  }

  /* ナビゲーション */
  .main_navi {
    width: 100%;
  }

  .header .contactContainer {
    width: 100%;
  }

  .main_navi .navi_item .navi_tit {
    width: 100%;
    display: flex;
    align-items: center;
  }

  .main_navi .navi_item .navi_tit:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #666;
    transform: translate(0, -50%);
    margin: 0.2em 0 0 0.5em;
  }

  .main_navi .navi_item:has(.titOnly):after {
    content: none;
  }

  .main_navi .subNavi {
    width: 100%;
  }

  .floatingContainer {
    width: 100vw;
    margin-bottom: 0;
    right: 0;
    bottom: 0;
    background: #000;
    /* padding: var(--inner-padding-LR) var(--inner-padding-LR) 6vw; */

    .buttonContainer {
      width: 100%;
      display: flex;
      justify-content: space-between;
      margin: 0;

      &>* {
        /* width: calc(100% / 3); */
        width: 100%;
        display: flex;
        flex-direction: column;
        position: relative;
        text-align: center;
        border-right: 1px solid #fff;

        &:last-child {
          border-right: unset;
        }

        /* border: 1px solid #fff; */
        /* background: rgba(255, 255, 255, 0.1); */
        a {
          position: relative;
          align-items: center;
          align-content: center;
          width: 100%;
          padding: 2vw;
          height: 100%;
        }
      }

      .textContainer,
      p,
      span {
        display: block;
        font-size: 0.8rem;
        margin-top: 0.25em;
        color: #fff;
      }

      img {
        display: block;
        margin: 0 auto;
        width: 1.75em;
        height: 1.75em;
      }

      .contactContainer_tel {
        margin-top: 0;

        .contact_number {
          width: 100%;
        }
      }

    }


  }

  .btnTotop {
    top: calc(100vh - 8vw);
    right: 3vw;
    width: 14vw;
  }

  /*----------------------------------------
  フッターcss
  -----------------------------------------*/
  .footerContainer .copo_info_wrap .sitetit {
    font-size: 3rem;
  }

  .footerContainer .main_navi .subNavi.column3>* {
    margin-right: 5%;
    width: 45%;
  }

  .footerContainer .inner_wide {
    flex-wrap: wrap;
    flex-direction: column;
    padding: 18vw var(--inner-padding-LR) 10vw;
  }

  .footerContainer .inner_wide .footerCopyCountainer,
  .footerContainer .inner_wide .contactContainer {
    width: 100%;
  }

  .contactContainer .contactContainer_tel {
    border-left: unset;
    padding: 0;
    width: 100%;
    text-align: center;
  }

  .footerCopyCountainer {
    .footerCopy_entext {
      font-size: 3.5vw;
      margin-left: -0.5em;
    }

    .footerCopy_subtext {
      font-size: 5vw;
    }

    .footerCopy_maintext {
      margin-top: 1vw;
      font-size: 7.65vw;
      letter-spacing: 0.05em;
    }
  }

  .logoContainer {
    text-align: center;

    .logo {
      margin: auto;
    }
  }

  .logoContainer {
    & .copyrightContainer {

      &,
      p {
        text-align: center;
      }
    }
  }

  .footerContainer {
    position: relative;
    color: #fff;
    background: url(/assets/img/common/fotter_bg_img_sp.webp) center center;
    background-size: cover;
  }


  .contactContainer,
  .logoContainer {
    flex-wrap: wrap;
  }

  .footerContainer .buttonContainer .button_view {
    margin: 0 auto;
  }

  .contactContainer>* {
    width: 100%;
    padding: 12vw 0 10vw;
  }

  .footerContainer>.flex.column2 .copo_info_inner {
    max-width: unset;
  }

  .footerContainer>.flex.column2 .sitemap {
    padding-left: 0;
    max-width: unset;
  }

  .footer_content .main_navi .column3>li {
    width: 45%;
    margin-right: 5%;
  }

  .footerContainer .sitemap_wrap .main_navi .subNavi li {
    line-height: 1.425;
    margin-bottom: 5px;
  }

  .footerContainer .contactContainer .contactContainer_tel,
  .footerContainer .contactContainer .contact_number,
  .footerContainer .contactContainer .caption {
    padding-bottom: 0;
    margin-left: 0;
    text-align: left;
  }

  .contactContainer .contactContainer_tel .contact_number {
    max-width: unset;
    width: 100%;
  }

  .footerContainer .flex_colum2 {
    padding: 0;

    .contactContainer_tel {
      width: 70%;
    }

    .mapContainer {
      width: 23%;

      .textContainer {
        font-size: 0.75rem;
      }

    }
  }

  .logoContainer {
    margin-top: 1.15em;
    padding: 6vw var(--inner-padding-LR);

    .copyrightContainer {
      margin-top: 6vw;
      font-size: 0.9rem;

      .sitemapList {
        margin: 2vw auto 0;
        flex-wrap: wrap;

        li {
          width: 100%;
          margin-bottom: 1.25em;
        }

        li+li {
          &::before {
            content: none;
          }
        }
      }

      .copy {
        margin: 0 auto;
      }

      /* &,
    p {
      font-size: 0.75rem;
    } */
    }
  }

}