@charset "UTF-8";
@import url(/css/root.css);
/* ----------------------------------------------

基本設定

------------------------------------------------*/
* {
  box-sizing: border-box;
  line-height: 1.5;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
  color: var(--mainblack);
}

p {
  text-align: justify;
  font-weight: normal;
}

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

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

picture {
  display: block;
}

.en,
.en * {
  font-family: "Source Serif 4", serif;
}

.yugo,
.yugo * {
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
}

/*見切れ画像の処理*/
.cut_off {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cut_off.cover img {
  -o-object-fit: cover;
     object-fit: cover;
  max-width: unset;
  height: 100%;
}
.cut_off.contain img {
  -o-object-fit: contain;
     object-fit: contain;
  max-width: unset;
  height: 100%;
}

/*1行テキストの処理*/
span.br {
  display: block;
  font-weight: normal;
}
span.br.mb {
  margin-bottom: 1.25em;
}

/*hoverするとボーダーが出る*/
.hov_border {
  /*hoverするとボーダーが消える*/
}
.hov_border a:not(:has(.txt)) {
  position: relative;
}
.hov_border a:not(:has(.txt))::after {
  content: "";
  background: var(--maincol);
  width: 100%;
  height: 1px;
  transition: transform 0.5s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform-origin: right top;
  transform: scale(0, 1);
  position: absolute;
  bottom: 0;
  left: 0;
}
.hov_border a .txt {
  position: relative;
}
.hov_border a .txt::after {
  content: "";
  background: var(--maincol);
  width: 100%;
  height: 1px;
  transition: transform 0.5s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform-origin: right top;
  transform: scale(0, 1);
  position: absolute;
  bottom: 0;
  left: 0;
}
.hov_border a:hover:not(:has(.txt))::after {
  transform: scale(1, 1);
}
.hov_border a:hover .txt::after {
  transform: scale(1, 1);
  transform-origin: left top;
}
.hov_border.no_border a:not(:has(.txt))::after {
  transform: scale(1, 1);
  transform-origin: left top !important;
}
.hov_border.no_border a .txt::after {
  transform: scale(1, 1);
  transform-origin: left top !important;
}
.hov_border.no_border a:hover:not(:has(.txt))::after {
  transform: scale(0, 1);
  transform-origin: right top !important;
}
.hov_border.no_border a:hover .txt::after {
  transform: scale(0, 1);
  transform-origin: right top !important;
}
.hov_border.white a .txt::after {
  background: #fff;
}
.hov_border.blue a .txt::after {
  background: var(--mainblue);
}

.l-container {
  overflow: hidden;
  padding: 0;
  margin: 0;
  background: var(--beige01);
}

.l-contents {
  position: relative;
  z-index: 1;
  margin-bottom: var(--m50);
}

h1.none {
  display: none !important;
}

.wrapper {
  margin-left: auto;
  margin-right: auto;
  width: 90%;
  max-width: 1300px;
}

/*ボタン設定*/
.c-button__link {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  grid-gap: var(--m10);
  padding: var(--m8_12) var(--m35);
  transition: all 0.5s;
  border-radius: var(--m10px);
  background-color: var(--accentcol02);
  border: 1px solid rgba(0, 0, 0, 0);
}
.c-button__link:not(:has(.c-button__arrow)) {
  justify-content: center;
}
.c-button__text {
  font-size: var(--fs18_20);
  font-weight: 500;
  color: #fff;
}
.c-button__text.big {
  font-size: var(--fs20_26);
}
.c-button__text.input {
  width: 100%;
  height: 100%;
  text-align: center;
}
.c-button__text.green {
  color: var(--maincol) !important;
}

.c-title {
  position: relative;
  z-index: 1;
  text-align: center;
}
.c-title__en {
  font-size: var(--fs32_50);
  color: var(--gray01);
  line-height: 1;
  margin-bottom: var(--m40);
  display: block;
  letter-spacing: 0.2em;
}
.c-title__jp {
  font-size: var(--fs16_18);
  color: var(--gray01);
  display: block;
}
.c-title.left {
  text-align: left;
}

/*gsapの機能*/
.l-container .rect {
  position: relative;
  overflow: hidden;
}
.l-container .rect .curtain {
  width: 100%;
  height: 100%;
  position: absolute;
  background-color: var(--maincol);
  top: 0;
  left: 0;
  z-index: 10;
}

/*ヘッダー*/
.p-header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 1000;
}
.p-header__inner {
  padding: var(--m40) 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all 0.5s;
}
.p-header__logo {
  width: 50%;
  max-width: 70px;
  margin-left: 4.0625vw;
}
.p-header.scroll_h .p-header__inner {
  padding: 10px 0;
}

.c-modal {
  min-width: unset;
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  display: flex;
  z-index: 1000;
}
.c-modal__bg {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  transform: translateX(0);
  transition: background-color 0.5s;
  background-color: rgba(0, 0, 0, 0.65);
}
.c-modal__inner {
  margin-left: auto;
  padding: var(--m80) 0;
  width: 100%;
  max-width: 468px;
  background: var(--white);
  overflow: scroll;
  position: relative;
  display: flex;
  flex-direction: column;
  transition: transform 0.8s;
  background-color: var(--mainblack);
}
.c-modal__inner.close {
  transform: translateX(150%);
}
.c-modal__logo {
  margin: 0 auto var(--m40);
  width: 90%;
  max-width: 158px;
}
.c-modal__mainMenu {
  margin-bottom: var(--m40);
}
.c-modal__list {
  width: 90%;
  max-width: 330px;
  margin: 0 auto var(--m40);
}
.c-modal__list__link {
  display: block;
}
.c-modal__list__link.popUl {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  grid-gap: var(--m10);
  cursor: pointer;
}
.c-modal__list__link.popUl .c-modal__list__text {
  order: 1;
}
.c-modal__list__link.popUl::after {
  content: "";
  display: inline-block;
  width: 11px;
  aspect-ratio: 7.8/11.5;
  background: url(/images/arrow_menu.svg) center/100% no-repeat;
  transform: rotate(90deg);
  order: 2;
}
.c-modal__list__text {
  font-weight: 400;
  font-size: var(--fs20_22);
  color: #fff;
  letter-spacing: 0.1em;
}
.c-modal__list__popList {
  width: 100%;
  order: 3;
  display: none;
}
.c-modal__list__popText {
  font-size: var(--fs14_16);
  text-decoration: underline;
  display: flex;
  align-items: center;
  grid-gap: 0.5rem;
  color: #fff;
  margin-bottom: 1em;
}
.c-modal__list__popText::after {
  content: "";
  display: inline-block;
  width: var(--fs14_17);
  aspect-ratio: 1/1;
  background: url(/images/icon_blank.svg) center/100% no-repeat;
}
.c-modal.open {
  opacity: 1;
}
.c-modal.open .bg {
  background-color: rgba(0, 0, 0, 0.8);
}
.c-modal.nav_none {
  transform: translateX(150%);
  opacity: 0;
}

/*ハンバーガーメニュー*/
.p-hamMenu {
  cursor: pointer;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  margin-right: 1.25vw;
}
.p-hamMenu__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
  grid-gap: 4px;
  transition: all 0.5s;
}
.p-hamMenu__inner::before, .p-hamMenu__inner::after {
  content: "";
  right: 0;
  transition: all 0.5s;
  display: block;
  width: 100%;
  height: 1px;
  transform-origin: center;
  background-color: var(--mainblack);
}
.p-hamMenu__inner.open {
  grid-gap: 0;
}
.p-hamMenu__inner.open .p-hamMenu__bar {
  display: none;
}
.p-hamMenu__inner.open.rotate::before {
  transform: translateY(50%) rotate(45deg);
  background-color: #fff;
}
.p-hamMenu__inner.open.rotate::after {
  transform: translateY(-50%) rotate(-45deg);
  background-color: #fff;
}

/*フッター*/
.p-footer {
  border-top: 1px solid var(--beige02);
  padding-top: var(--m40);
  padding-bottom: var(--m55);
}
.p-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  grid-gap: var(--m70) 0;
  width: 90%;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
}
.p-footer__address {
  width: 50%;
}
.p-footer__company {
  display: flex;
  align-items: center;
  grid-gap: var(--m24) var(--m20);
}
.p-footer__logo {
  width: 100px;
}
.p-footer__comName {
  font-size: var(--fs16);
  margin-bottom: 0.75em;
}
.p-footer__add {
  font-size: var(--fs14);
}
.p-footer__flex {
  display: flex;
  flex-wrap: wrap;
  grid-gap: 0 1rem;
  font-size: var(--fs14);
}
.p-footer__companyList {
  margin-top: var(--m20);
  margin-left: calc(100px + var(--m20));
}
.p-footer__comLink__link {
  font-size: var(--fs14_16);
  text-decoration: underline;
  display: flex;
  align-items: center;
  grid-gap: 0.5rem;
  color: var(--mainblack);
}
.p-footer__comLink__link::after {
  content: "";
  display: inline-block;
  width: var(--fs14_17);
  aspect-ratio: 1/1;
  background: url(/images/icon_blank.svg) center/100% no-repeat;
}
.p-footer__menu {
  width: 50%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  grid-gap: var(--m24) var(--m35);
  margin-top: var(--m24);
}
.p-footer__menu__list__link {
  display: flex;
  align-items: center;
  grid-gap: 8px;
}
.p-footer__menu__list__link::before {
  content: "";
  display: inline-block;
  width: 8px;
  aspect-ratio: 8/11;
  background: url(/images/arrow_menu.svg) center/100% no-repeat;
}
.p-footer__menu__list__text {
  font-size: var(--fs14_16);
  color: var(--gray01);
  font-weight: 600;
}
.p-footer__copy {
  width: 100%;
  text-align: center;
}
.p-footer__copy small {
  font-size: var(--fs12);
  color: var(--gray01);
  font-weight: 400;
}

/*p-topReturn*/
.p-topReturn {
  width: var(--fs42_60);
  aspect-ratio: 1/1;
  margin-left: auto;
  z-index: 300;
  transition: all 0.5s;
}
.p-topReturn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: var(--maincol);
  transition: all 0.5s;
}
.p-topReturn__image {
  width: 40%;
  aspect-ratio: 24/20;
  background: url(/images/arrow_return.svg) center/100% no-repeat;
}
.p-topReturn.return_hide {
  opacity: 0;
  z-index: -10;
  transform: translateY(110%);
}
.p-topReturn.return_fixed {
  position: fixed;
  bottom: 0;
  right: 0;
  opacity: 1;
  transform: translateY(0%);
}

/*パンくず*/
.p-breadcrumb {
  padding: var(--m50) 0;
  background-color: var(--red02);
}
.p-breadcrumb__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  grid-gap: 0.5rem;
}
.p-breadcrumb__list {
  font-size: var(--fs12_16);
  display: flex;
  align-items: center;
}
.p-breadcrumb__list * {
  font-size: var(--fs12_16);
}
.p-breadcrumb__list:not(:last-of-type)::after {
  content: ">";
  display: inline-block;
  font-size: var(--fs12_16);
  margin-left: 0.5rem;
}

.c-radioCheck {
  display: flex;
  grid-gap: 0.5rem;
  align-items: center;
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  padding: var(--m14px) var(--m30) var(--m14px) var(--m14px);
  border: 1px solid var(--beige04);
  border-radius: 8px;
  transition: all 0.5s;
  background-color: var(--beige04);
}
.c-radioCheck .txt {
  font-size: var(--fs14_16);
}
.c-radioCheck .inp_rdo,
.c-radioCheck .inp_chk {
  display: none;
}
.c-radioCheck .rdo,
.c-radioCheck .chk {
  position: relative;
}
.c-radioCheck .rdo::before,
.c-radioCheck .chk::before {
  content: "";
  display: flex;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  border: 2px solid var(--gray02);
  position: relative;
  background-color: var(--white);
}
.c-radioCheck .chk::after {
  content: "";
  display: inline-block;
  width: 130%;
  aspect-ratio: 181/135;
  background: url(/images/check_only.svg) center/100% no-repeat;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-30%, -60%);
  transition: opacity 0.5s;
  opacity: 0;
}
.c-radioCheck .rdo::before {
  border-radius: 100%;
}
.c-radioCheck .rdo::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  transition: background-color 0.5s;
  transition: all 0.5s;
  opacity: 0;
  background-color: var(--maincol);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.c-radioCheck .inp_rdo:checked + .rdo::after, .c-radioCheck .inp_rdo:checked + .chk::after,
.c-radioCheck .inp_chk:checked + .rdo::after,
.c-radioCheck .inp_chk:checked + .chk::after {
  opacity: 1;
}

.c-inputCheck .inp_rdo,
.c-inputCheck .inp_chk,
.c-inputCheck .rdo_inp_round {
  display: none;
}
.c-inputCheck .inp_rdo:checked + .rdo .check::before, .c-inputCheck .inp_rdo:checked + .chk .check::before, .c-inputCheck .inp_rdo:checked + .rdo_round .check::before, .c-inputCheck .inp_rdo:checked + .rdo .check::after, .c-inputCheck .inp_rdo:checked + .chk .check::after, .c-inputCheck .inp_rdo:checked + .rdo_round .check::after,
.c-inputCheck .inp_chk:checked + .rdo .check::before,
.c-inputCheck .inp_chk:checked + .chk .check::before,
.c-inputCheck .inp_chk:checked + .rdo_round .check::before,
.c-inputCheck .inp_chk:checked + .rdo .check::after,
.c-inputCheck .inp_chk:checked + .chk .check::after,
.c-inputCheck .inp_chk:checked + .rdo_round .check::after,
.c-inputCheck .rdo_inp_round:checked + .rdo .check::before,
.c-inputCheck .rdo_inp_round:checked + .chk .check::before,
.c-inputCheck .rdo_inp_round:checked + .rdo_round .check::before,
.c-inputCheck .rdo_inp_round:checked + .rdo .check::after,
.c-inputCheck .rdo_inp_round:checked + .chk .check::after,
.c-inputCheck .rdo_inp_round:checked + .rdo_round .check::after {
  opacity: 1;
}
.c-inputCheck .rdo,
.c-inputCheck .chk {
  display: flex;
  grid-gap: 0.5rem;
  align-items: center;
  position: relative;
}
.c-inputCheck .rdo .check,
.c-inputCheck .chk .check {
  content: "";
  display: flex;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background-color: #fff;
  border: 2px solid #c9caca;
  position: relative;
}
.c-inputCheck .chk .check::before {
  content: "";
  display: inline-block;
  width: 130%;
  aspect-ratio: 181/135;
  background: url(/images/check_only.svg) center/100% no-repeat;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-30%, -60%);
  transition: opacity 0.5s;
  opacity: 0;
}
.c-inputCheck .rdo .check {
  border-radius: 100%;
}
.c-inputCheck .rdo .check::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  transition: background-color 0.5s;
  transition: all 0.5s;
  opacity: 0;
  background-color: var(--maincol);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#contents .swiper-pagination {
  position: static;
  font-size: 20px;
  display: flex;
  align-items: center;
  grid-gap: 1em;
  width: -moz-fit-content;
  width: fit-content;
}
#contents .swiper-button-next,
#contents .swiper-rtl .swiper-button-prev,
#contents .swiper-button-prev,
#contents .swiper-rtl .swiper-button-next {
  position: static;
  width: 16px;
  height: auto;
  aspect-ratio: 16/6;
  margin: 0;
}
#contents .swiper-button-next::after,
#contents .swiper-rtl .swiper-button-prev::after,
#contents .swiper-button-prev::after,
#contents .swiper-rtl .swiper-button-next::after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  background: url(/images/arrow_swiper.svg) center/100% no-repeat;
}
#contents .swiper-button-prev,
#contents .swiper-rtl .swiper-button-next {
  transform: scaleX(-1);
}

/*電話番号*/
.c-telArea {
  width: 100%;
  text-align: center;
}
.c-telArea__link {
  display: flex;
  justify-content: center;
  align-items: baseline;
  grid-gap: var(--m16);
}
.c-telArea__image {
  width: 10%;
  max-width: 30px;
  aspect-ratio: 98/128;
  background: url(/images/icon_tel.svg) center/100% no-repeat;
}
.c-telArea__text {
  font-size: var(--fs32_40);
  font-weight: 800;
  color: var(--maincol);
  line-height: 1;
}
.c-telArea__subText {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  grid-gap: 1em;
}
.c-telArea__subText__line {
  font-size: var(--fs14_18);
  font-weight: 500;
}

/*ページネーション*/
.c-pagenation {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  grid-gap: var(--m16) 0.5rem;
}
.c-pagenation * {
  font-size: var(--fs14_18);
  font-weight: 500;
}
.c-pagenation li {
  border-radius: 5px;
  border: 1px solid var(--maincol);
}
.c-pagenation li.prev a, .c-pagenation li.next a {
  width: 4em;
  aspect-ratio: unset;
  min-height: 2em;
}
.c-pagenation li span {
  background-color: var(--maincol);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 100%;
  aspect-ratio: 1/1;
}
.c-pagenation li a {
  height: 100%;
  aspect-ratio: 1/1;
  width: 2em;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.5s;
}

.p-subPage__header {
  min-height: 300px;
  background: linear-gradient(to bottom, rgba(51, 51, 51, 0.75), rgba(51, 51, 51, 0.75)), url(/images/slider01.jpg) center/cover no-repeat;
}

.p-thanks {
  margin-bottom: var(--m100);
}
.p-thanks .logo {
  margin: 0 auto var(--m50);
  text-align: center;
  width: 90%;
  max-width: var(--m200);
}
.p-thanks h4 {
  text-align: center;
  font-size: var(--fs18_24);
  font-weight: bold;
  margin-bottom: var(--m35);
}
.p-thanks .thanks_p {
  font-size: var(--fs14_16);
  text-align: center;
  margin-bottom: var(--m32);
}
.p-thanks address {
  margin: 0 auto var(--m40);
  padding: var(--m32) var(--m16_50);
  text-align: center;
  max-width: 900px;
  border-top: 1px solid var(--maincol);
  border-bottom: 1px solid var(--maincol);
}
.p-thanks address .name {
  display: block;
  text-align: center;
  font-size: var(--fs16_18);
  font-weight: 500;
  margin-bottom: 0.25em;
}
.p-thanks address .add {
  display: block;
  text-align: center;
  font-size: var(--fs14_16);
  margin-bottom: 1rem;
}
.p-thanks .text {
  margin-bottom: var(--m35);
}
.p-thanks .text .br {
  text-align: center;
  font-size: var(--fs14_16);
}
.p-thanks .c-button {
  max-width: 500px;
  margin: 0 auto;
}

/* ----------------------------------------------
  画面幅調整
  ------------------------------------------------*/
@media all and (min-width: 621px) {
  .sp_only {
    display: none !important;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}
@media all and (min-width: 769px) {
  .tab_under {
    display: none !important;
  }
  .l-container a img {
    transition: all 0.3s;
  }
  .l-container a:hover img {
    opacity: 0.8;
  }
  /*ボタン設定*/
  .c-button__link:hover {
    background-color: #fff;
    border-color: var(--accentcol02);
  }
  .c-button__link:hover .c-button__text {
    color: var(--accentcol);
  }
  .p-topReturn a:hover {
    background-color: var(--accentcol);
  }
  .input_bt:hover {
    background-color: var();
  }
  /*ページネーション*/
  .c-pagenation li a:hover {
    background-color: var(--maincol);
    color: #fff;
  }
  /*spフロートメニュー*/
  .spCv {
    display: none !important;
  }
}
@media all and (min-width: 1025px) {
  .pc_under {
    display: none !important;
  }
}
@media all and (max-width: 768px), all and (min-width: 1025px) {
  .fullTb {
    display: none !important;
  }
}
@media all and (min-width: 621px) and (max-width: 768px) {
  .tab_only {
    display: none !important;
  }
}
@media all and (max-width: 1024px) {
  .pc_only {
    display: none !important;
  }
  /*フッター*/
  .p-footer__address {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .p-footer__menu {
    width: 100%;
    justify-content: center;
  }
}
@media all and (max-width: 768px) {
  .tab_over {
    display: none !important;
  }
  .p-header__topArea__inner {
    width: 100%;
  }
  /*spフロートメニュー*/
  .spCv {
    transition: opacity 0.5s;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    z-index: 900;
    position: relative;
    grid-gap: var(--m20);
  }
  .spCv__bt {
    flex: 1;
  }
  .spCv__bt a {
    display: flex;
    align-items: center;
    justify-content: center;
    grid-gap: var(--m16);
    padding: var(--m20);
    height: 100%;
    width: 100%;
    border-radius: 0;
  }
  .spCv__bt a .c-button__text {
    font-size: var(--fs16_18);
    color: #fff;
    line-height: 1;
    font-weight: 500;
  }
  .spCv__bt a.search {
    background-color: var(--maincol);
  }
  .spCv.jsfix {
    position: fixed;
    bottom: 0;
    opacity: 1;
    width: 100%;
    /* background-color: unset; */
  }
  .spCv.opa {
    opacity: 0;
  }
  .spCv.none {
    display: none !important;
  }
  /*p-topReturn*/
  .p-topReturn.return_fixed {
    bottom: 6%;
  }
}
/* ----------------------------------------------
  SP設定
  ------------------------------------------------*/
@media all and (max-width: 620px) {
  .sp_over {
    display: none !important;
  }
  /*フッター*/
  .p-footer__company {
    flex-direction: column;
  }
  .p-footer__companyList {
    margin-left: 0;
    text-align: center;
  }
  .p-footer__menu {
    width: 100%;
    justify-content: center;
  }
  .c-radioCheck {
    width: 100%;
  }
  .p-subPage__header {
    min-height: 150px;
  }
}