@charset "UTF-8";
/*---------------------
base
---------------------*/
html {
  color: #000;
  scroll-behavior: smooth;
  scroll-padding-top: 130px;
}
@media screen and (max-width: 960px) {
  html {
    scroll-padding-top: 100px;
  }
}

body {
  font-size: min(1.3888888889vw, 1.25rem);
  line-height: min(1.7361111111vw, 1.5625rem);
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Noto Sans JP", sans-serif;
  font-weight: 300;
  background-color: #fff;
  position: relative;
  letter-spacing: 4px;
}
@media screen and (max-width: 960px) {
  body {
    font-size: min(4.1025641026vw, 16px);
    line-height: min(8.2051282051vw, 32px);
    height: auto;
  }
}

main {
  overflow-x: clip;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  main {
    margin-top: 10px;
  }
}

section {
  margin: 0 auto;
}

a {
  text-decoration: none;
  color: #000;
}

a:focus {
  outline: none;
}

a:hover {
  opacity: 0.6;
}

a:active {
  color: #ccc;
}

ul,
ol,
dl,
dt,
dd,
li {
  list-style: none;
}

/*---------------------
Reset
---------------------*/
/*
  Josh's Custom CSS Reset
  https://www.joshwcomeau.com/css/custom-css-reset/
*/
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

html,
body {
  height: 100%;
}

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

#root,
#__next {
  isolation: isolate;
}

/*---------------------
contents
---------------------*/
.Wrap {
  position: relative;
}

@media screen and (max-width: 960px) {
  .Logo {
    z-index: 981;
    width: calc(100% - 60px);
    background-color: #fff;
  }
}
@media screen and (max-width: 960px) {
  .Logo__head {
    border-radius: 0;
    margin: auto;
    padding: 15px 0 0 7px;
  }
}
@media screen and (max-width: 960px) {
  .Logo__img {
    height: 40px;
    width: auto;
  }
  .Logo__img--foot {
    margin: 0 auto;
  }
}

.Page {
  width: 100%;
  margin: 40px auto 0;
  padding: 0 min(15%, 210px);
}
@media screen and (max-width: 960px) {
  .Page {
    padding: 0 min(5.1282051282vw, 20px) 40px;
    margin: 0 auto;
  }
}

.Section__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 960px) {
  .Section__inner {
    flex-direction: column;
    padding: 0 min(5.1282051282vw, 20px);
  }
}
.Section__left {
  padding-left: 85px;
}
@media screen and (max-width: 960px) {
  .Section__left {
    padding-left: 0;
    width: 100%;
  }
}
.Section__title {
  width: 100%;
  margin: auto;
}
.Section__title--sub {
  color: #4C79D9;
  font-size: 1.3125rem;
  line-height: 1.84;
  font-weight: 600;
  letter-spacing: 7.56px;
}
@media screen and (max-width: 960px) {
  .Section__title--sub {
    font-size: min(4.6153846154vw, 1.125rem);
    letter-spacing: 6.48px;
  }
}
.Section__title--text {
  font-size: min(3.0555555556vw, 2.75rem);
  line-height: min(5.5555555556vw, 5rem);
  font-weight: 600;
  letter-spacing: 15.84px;
}
@media screen and (max-width: 960px) {
  .Section__title--text {
    font-size: min(6.1538461538vw, 1.5rem);
    line-height: 1.8;
    letter-spacing: 8px;
  }
}
@media screen and (max-width: 960px) {
  .Section__text {
    font-size: min(5.1282051282vw, 1.25rem);
    line-height: 1.25;
    margin-top: 30px;
  }
}
.Section__link {
  position: relative;
  padding: 0 7px;
  font-weight: 600;
}
@media screen and (max-width: 960px) {
  .Section__link {
    font-size: min(5.1282051282vw, 1.25rem);
  }
}
.Section__link--wrap {
  text-align: right;
}
.Section__link--arrow {
  width: 16px;
  height: 13px;
  margin-left: 10px;
  background: url(assets/img/ico/ico-arrow.svg) no-repeat;
  display: inline-block;
  filter: invert(59%) sepia(66%) saturate(4116%) hue-rotate(201deg) brightness(87%) contrast(95%);
}
@media screen and (max-width: 960px) {
  .Section__link--arrow {
    width: 14px;
    height: 8px;
    background-size: contain;
    margin-bottom: 3px;
  }
}
.Section__link::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  border-bottom: 4px solid #E69774;
}

.Content__title {
  font-size: min(1.6666666667vw, 1.5rem);
  line-height: 1.84;
  font-weight: 600;
  letter-spacing: 8.64px;
  position: relative;
}
.Content__title::after {
  content: "";
  position: absolute;
  height: 2px;
  width: 45px;
  background-color: #E69774;
  left: 0;
  bottom: -5px;
}
@media screen and (max-width: 960px) {
  .Content__title {
    font-size: min(4.6153846154vw, 1.125rem);
    line-height: 1.84;
    letter-spacing: 6.48px;
  }
  .Content__title::after {
    bottom: -8px;
  }
}
.Content__img-wrap {
  overflow: hidden;
  position: relative;
  /*
    &::before {
      animation: img-wrap 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
      background: #fff;
      content: '';
      inset: 0;
      pointer-events: none;
      position: absolute;
      z-index: 1;
    }

    @keyframes img-wrap {
      100% {
        transform: translateX(100%);
      }
    }
  */
}

.Common-contact__wrap {
  background-color: #4C79D9;
  width: calc(100% - 127px);
  border-radius: 0 100px 0 0;
  padding: 80px 0 115px 127px;
}
@media screen and (max-width: 960px) {
  .Common-contact__wrap {
    width: calc(100vw - 20px);
    padding: 30px 20px 40px;
  }
}
.Common-contact__inner {
  display: flex;
  padding: 0 90px 0 85px;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 960px) {
  .Common-contact__inner {
    flex-direction: column;
    padding: 0;
  }
}
@media screen and (max-width: 960px) {
  .Common-contact__left {
    margin-bottom: 30px;
  }
}
.Common-contact__right {
  width: 33%;
}
@media screen and (max-width: 960px) {
  .Common-contact__right {
    width: 100%;
  }
}
.Common-contact__title, .Common-contact__text {
  color: #fff;
}
.Common-contact__text {
  margin-top: 12px;
}
@media screen and (max-width: 960px) {
  .Common-contact__text {
    margin-top: 20px;
  }
}
@media screen and (max-width: 960px) {
  .Common-contact__btn {
    margin: 0 auto;
  }
}

.Fadein {
  opacity: 0;
  transform: translate(0, 0);
  transition: all 1.5s;
}
.Fadein--bottom {
  transform: translate(0, 100px);
}
.Fadein--scroll {
  opacity: 1 !important;
  transform: translate(0, 0) !important;
}

/* 画像を覆うオーバーレイのアニメーション */
.Fadein-img-container {
  position: relative;
  display: block;
  /* 画像のサイズに合わせるため、必要に応じて高さを指定するか、中の画像に高さを設定 */
  /* 例: height: 100%; */
  overflow: hidden;
}
.Fadein-img-container::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  z-index: 1;
  transform: translateX(0);
  transition: transform 1.5s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
}
.Fadein-img-container--scroll::before {
  transform: translateX(100%);
}
.Fadein-img-container img {
  width: 100%;
  height: auto;
  display: block;
}

.Table-cont {
  width: 100%;
  max-width: 1000px;
  margin: 20px auto 0;
}
.Table-cont__wrap {
  width: 83.5%;
  margin: 60px 0 auto auto;
}
@media screen and (max-width: 960px) {
  .Table-cont__wrap {
    width: 100%;
    margin-top: 45px;
  }
}
.Table-cont__inner {
  width: 100%;
  border-collapse: collapse;
}
@media screen and (max-width: 960px) {
  .Table-cont__inner {
    width: 100%;
    margin: 30px auto 0;
    position: relative;
  }
}
.Table-cont__list {
  line-height: 2.3125rem;
  letter-spacing: 7.2px;
  display: flex;
}
@media screen and (max-width: 960px) {
  .Table-cont__list {
    letter-spacing: 4px;
    line-height: 2rem;
  }
  .Table-cont__list.has-map .Table-cont__item, .Table-cont__list.has-map .Table-cont__desc {
    padding-bottom: 0;
    border-bottom: none;
  }
  .Table-cont__list.has-map .Table-cont__map {
    position: absolute;
    left: 0;
    width: 100%;
    aspect-ratio: 16/9;
    border: 0;
    z-index: 1;
    margin: 30px 0;
  }
  .Table-cont__list.has-map + .Table-cont__list .Table-cont__item {
    border-top: 2px solid #4C79D9;
  }
  .Table-cont__list.has-map + .Table-cont__list .Table-cont__desc {
    border-top: 1px solid #000;
  }
}
.Table-cont__item, .Table-cont__desc {
  padding: 21px 0;
}
@media screen and (max-width: 960px) {
  .Table-cont__item, .Table-cont__desc {
    padding: 26px 0;
  }
}
.Table-cont__item {
  border-bottom: 2px solid #4C79D9;
  text-align: center;
  width: 20%;
  font-weight: 600;
}
@media screen and (max-width: 960px) {
  .Table-cont__item {
    width: 60%;
    font-size: min(4.6153846154vw, 1.125rem);
    letter-spacing: 6.48px;
  }
}
.Table-cont__desc {
  border-bottom: 1px solid #000;
  padding-left: 100px;
  width: 80%;
  letter-spacing: 7.2px;
}
.Table-cont__desc p {
  line-height: 1.84;
}
@media screen and (max-width: 960px) {
  .Table-cont__desc {
    width: 100%;
    padding-left: 28px;
    line-height: 1.84;
    letter-spacing: 5.76px;
  }
  .Table-cont__desc p {
    letter-spacing: 5.76px;
  }
}
.Table-cont__map {
  margin-top: 20px;
  aspect-ratio: 191/82;
  border: 0;
  width: 100%;
}
@media screen and (max-width: 960px) {
  .Table-cont__map {
    aspect-ratio: 16/9;
  }
}

.Pankuzu {
  font-size: min(1.3888888889vw, 1.25rem);
  line-height: 1.18;
  letter-spacing: normal;
  color: #4C79D9;
  margin: -55px 55px 10px auto;
  text-align: right;
}
@media screen and (max-width: 960px) {
  .Pankuzu {
    margin: 90px min(5.1282051282vw, 20px) 0;
    font-size: min(3.5897435897vw, 0.875rem);
  }
}
.Pankuzu__link {
  color: #4C79D9;
}

.Error {
  margin: 65px auto 90px;
}
.Error__wrap {
  position: relative;
  padding: 100px 0;
}
.Error__info {
  line-height: 2.3125rem;
  text-align: center;
  margin-bottom: 30px;
}
@media screen and (max-width: 960px) {
  .Error__info {
    font-size: min(5.1282051282vw, 20px);
  }
}
.Error__link {
  text-align: center;
}

.Br-pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .Br-pc {
    display: none;
  }
}

.Br-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .Br-sp {
    display: block;
  }
}

.Space-pc {
  padding-left: 1rem;
}
@media screen and (max-width: 767px) {
  .Space-pc {
    padding-left: 0;
  }
}

/*-------------------------------------------
Header
-------------------------------------------*/
.Header-PC {
  width: 100%;
  margin: 23px auto 15px;
  padding-left: 30px;
}
@media screen and (max-width: 960px) {
  .Header-PC {
    display: none;
  }
}
.Header-PC__inner {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.Header-SP {
  display: flex;
  position: fixed;
  height: 60px;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 980;
  background-color: #fff;
}
@media print, screen and (min-width: 961px) {
  .Header-SP {
    display: none;
  }
}
@media screen and (max-width: 960px) {
  .Header-SP__inner {
    display: flex;
    align-items: center;
  }
}

.Drawer {
  position: absolute;
  right: 0;
  top: 0;
  z-index: 980;
}
.Drawer__check {
  top: 0;
}
.Drawer__hidden {
  display: none;
}
.Drawer__open {
  height: 60px;
  width: 60px;
  justify-content: center;
  position: relative;
  z-index: 990;
  cursor: pointer;
  background-color: #4C79D9;
  display: inline-flex;
}
.Drawer__open::after {
  content: "MENU";
  position: absolute;
  color: #fff;
  font-size: min(2.5641025641vw, 0.625rem);
  letter-spacing: 3.2px;
  margin-right: -3.2px;
  bottom: 5px;
}
.Drawer__bar, .Drawer__bar::before, .Drawer__bar::after {
  content: "";
  display: block;
  height: 2px;
  width: 26px;
  border-radius: 3px;
  background: #fff;
  transition: 0.4s;
  position: absolute;
}
.Drawer__bar {
  margin-top: 26px;
}
.Drawer__bar::before {
  bottom: 10px;
}
.Drawer__bar::after {
  top: 10px;
}
.Drawer__nav {
  background-color: #4C79D9;
  position: fixed;
  z-index: 980;
  top: 60px;
  left: 0;
  width: 100%;
  height: auto;
  transition: all 0.3s;
  transform: translateY(-100%);
  overflow: auto;
}
.Drawer__outer {
  background: inherit;
}
.Drawer__wrap {
  display: block;
  top: 80px;
  width: 100%;
  padding: 100px min(3.8461538462vw, 15px) 0;
}
.Drawer__list {
  width: 100%;
  max-width: 175px;
  margin: 50px auto 55px;
}
.Drawer__item {
  padding-bottom: 26px;
  letter-spacing: 7.92px;
  font-weight: 600;
  font-size: min(5.641025641vw, 1.375rem);
  line-height: 40px;
}
.Drawer__item--btn {
  position: relative;
  width: 100%;
  background-color: #fff;
  border-radius: 46px;
  padding: 15px 0;
  display: flex;
  align-items: center;
  height: 52px;
}
.Drawer__item--btn::before {
  position: absolute;
  content: "";
  width: 29px;
  height: 23px;
  background: url(assets/img/ico/ico-mail.svg) no-repeat;
  left: 24px;
  display: inline-block;
}
.Drawer__link {
  color: #fff;
  display: block;
  font-size: min(5.641025641vw, 1.375rem);
  line-height: min(10.2564102564vw, 2.5rem);
  position: relative;
  margin-left: 32px;
  font-weight: 600;
}
.Drawer__link::before {
  position: absolute;
  content: "";
  left: -32px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: #E69774;
  top: 50%;
  transform: translateY(-50%);
}
.Drawer__link--btn {
  color: #4C79D9;
  font-size: min(4.1025641026vw, 1rem);
  font-weight: 600;
  padding-left: 70px;
  letter-spacing: normal;
  display: block;
  height: 100%;
  padding: 8px 0 8px 70px;
}
.Drawer__btn {
  width: 100%;
  height: auto;
}

#Drawer__check:checked {
  z-index: 900;
}

#Drawer__check:checked ~ .Drawer__open {
  padding: 0;
}
#Drawer__check:checked ~ .Drawer__open::after {
  content: "CLOSE";
  color: #fff;
}
#Drawer__check:checked ~ .Drawer__open .Drawer__bar {
  background: transparent;
}
#Drawer__check:checked ~ .Drawer__open .Drawer__bar::before {
  bottom: 0;
  transform: rotate(45deg);
  background-color: #fff;
}
#Drawer__check:checked ~ .Drawer__open .Drawer__bar::after {
  top: 0;
  transform: rotate(-45deg);
  background-color: #fff;
}

#Drawer__check:checked ~ .Drawer {
  background-color: #F9F8F4;
}

#Drawer__check:checked ~ .Drawer__nav {
  transform: translateY(0);
}

#Drawer__check:checked ~ .Nav-sp-bg {
  right: 0;
  display: block;
  opacity: 0;
  -webkit-animation: fadeIn 0.3s ease-in-out forwards;
          animation: fadeIn 0.3s ease-in-out forwards;
}

.Nav-sp-bg {
  position: fixed;
  display: none;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  top: 0;
  right: -100%;
  transition: all 0.3s;
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.Sidebar {
  border-radius: 0 20px 20px 0;
  background: #FFF;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  position: fixed;
  bottom: 15%;
  width: 127px;
  padding: 40px 0;
  letter-spacing: normal;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 4;
}
@media screen and (max-width: 960px) {
  .Sidebar {
    display: none;
  }
}
.Sidebar__list {
  display: flex;
  flex-direction: column;
}
.Sidebar__item {
  font-weight: 600;
  position: relative;
  padding: 20px 0 5px;
  margin: auto;
  width: 100%;
  display: flex;
  justify-content: center;
}
.Sidebar__item:after {
  border-right: #4C79D9 1px solid;
  content: "";
  position: absolute;
  width: 45px;
  height: 32px;
  bottom: -2px;
  transform: translate(-20%, 5%) rotate(65deg);
}
.Sidebar__item:first-child {
  padding-top: 0;
}
.Sidebar__item:nth-last-child(2)::after, .Sidebar__item:nth-last-child(1)::after {
  border: none;
}
.Sidebar__item:last-child {
  padding: 22px 0 0;
}
.Sidebar__text {
  -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
  text-orientation: upright;
  white-space: nowrap;
  z-index: 5;
}
.Sidebar__btn {
  z-index: 5;
}

/*-------------------------------------------
Footer
-------------------------------------------*/
.Footer {
  background-color: #fff;
  padding-top: 85px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .Footer {
    padding-top: min(10.2564102564vw, 40px);
  }
}
.Footer__logo {
  margin-bottom: 30px;
}
@media screen and (max-width: 960px) {
  .Footer__logo {
    margin-bottom: 0;
  }
}
.Footer__detail {
  margin-left: 100px;
  color: #000;
}
@media screen and (max-width: 960px) {
  .Footer__detail {
    margin-left: 0;
    font-size: min(3.0769230769vw, 0.75rem);
    letter-spacing: 2.4px;
    text-align: center;
  }
}

.Copyright {
  background-color: #4C79D9;
  width: 100%;
}
.Copyright__text {
  color: #fff;
  font-size: 0.875rem;
  text-align: center;
  font-weight: 300;
  line-height: 1.875rem;
  letter-spacing: 2.8px;
  padding: 6px 0;
}
@media screen and (max-width: 960px) {
  .Copyright__text {
    font-size: min(2.5641025641vw, 0.625rem);
  }
}

/*-------------------------------------------
Btn
-------------------------------------------*/
.Btn {
  display: flex;
  border-radius: 15px;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  padding: 20px;
  max-width: 330px;
}
.Btn:hover {
  opacity: 0.7;
  transition: 0.3s;
}
@media (hover: hover) {
  .Btn:hover {
    opacity: 0.7;
    transition: 0.3s;
  }
}
@media (hover: none) {
  .Btn:active {
    opacity: 0.7;
    transition: 0.3s;
  }
}
.Btn__link {
  color: #000;
  font-weight: 600;
}
@media screen and (max-width: 960px) {
  .Btn__link {
    font-size: min(5.1282051282vw, 1.25rem);
  }
}
.Btn__link--arrow {
  width: 16px;
  height: 13px;
  margin-left: 10px;
  background: url(assets/img/ico/ico-arrow.svg) no-repeat;
  display: inline-block;
  filter: invert(69%) sepia(54%) saturate(573%) hue-rotate(321deg) brightness(99%) contrast(83%);
}

/*-------------------------------------------
Nav
-------------------------------------------*/
.Nav__inner {
  display: flex;
  justify-content: space-between;
  max-width: 1000px;
  width: 100%;
  margin: 0 auto 110px;
}
@media screen and (max-width: 960px) {
  .Nav__inner {
    flex-direction: column-reverse;
    min-width: 100%;
    margin-bottom: 15px;
  }
}
.Nav__left {
  width: 42%;
}
@media screen and (max-width: 960px) {
  .Nav__left {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: auto;
  }
}
.Nav__tel {
  position: relative;
  padding-left: 27px;
  line-height: 1.875rem;
}
.Nav__tel::before {
  content: "";
  position: absolute;
  background: url(assets/img/ico/ico-tel.svg) no-repeat;
  width: 20px;
  height: 20px;
  margin-top: 7px;
  left: 0;
}
@media screen and (max-width: 960px) {
  .Nav__tel::before {
    width: 13px;
    height: 13px;
    left: 40px;
    margin-top: 7px;
    background-size: contain;
  }
}
@media screen and (max-width: 960px) {
  .Nav__tel {
    line-height: min(6.4102564103vw, 1.5625rem);
  }
}
.Nav__tel a[href^="tel:"] {
  pointer-events: none;
}
.Nav__zipcode, .Nav__address {
  line-height: 1.875rem;
}
@media screen and (max-width: 960px) {
  .Nav__zipcode, .Nav__address {
    line-height: min(4.6153846154vw, 1.125rem);
  }
}
.Nav__right {
  width: 50%;
  margin: auto 0;
}
@media screen and (max-width: 960px) {
  .Nav__right {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 25px;
  }
}
.Nav__list--foot {
  display: grid;
  grid-template-columns: 30% 55%;
  gap: 20px 75px;
  color: #000;
}
@media screen and (max-width: 960px) {
  .Nav__list--foot {
    grid-template-columns: 1fr;
  }
}
.Nav__item {
  flex: 1 1 auto;
}
@media print, screen and (min-width: 961px) {
  .Nav__item--foot:nth-child(1) {
    order: 1;
  }
}
@media print, screen and (min-width: 961px) {
  .Nav__item--foot:nth-child(2) {
    order: 3;
  }
}
@media print, screen and (min-width: 961px) {
  .Nav__item--foot:nth-child(3) {
    order: 5;
  }
}
@media print, screen and (min-width: 961px) {
  .Nav__item--foot:nth-child(4) {
    order: 2;
  }
}
@media print, screen and (min-width: 961px) {
  .Nav__item--foot:nth-child(5) {
    order: 4;
  }
}
.Nav__link--foot {
  position: relative;
  margin-left: 32px;
}
.Nav__link--foot::before {
  position: absolute;
  content: "";
  left: -32px;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background-color: #E69774;
  margin-top: 5px;
}

@media screen and (max-width: 960px) {
  _::-webkit-full-page-media,
_:future,
:root .Nav__tel:before {
    left: 33px;
  }
}
/*---------------------
top page
---------------------*/
.Mv {
  margin-bottom: 70px;
  position: relative;
}
@media screen and (max-width: 960px) {
  .Mv {
    margin: 0 auto 35px;
    padding-top: 90px;
  }
}
.Mv--hidden {
  display: none;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
.Mv--visible {
  display: block;
  opacity: 1;
}
.Mv__img {
  width: 100vw;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-top: 1px;
}
@media screen and (max-width: 960px) {
  .Mv__img {
    width: auto;
    height: 100%;
  }
}
.Mv__photo {
  display: block;
  width: 100vw;
  height: 100vh;
  max-width: 100%;
  max-height: 100%;
  align-self: center;
  -o-object-fit: cover;
     object-fit: cover;
  will-change: transform;
  transform: scale(1.1) translateX(0);
}
.Mv__photo.active {
  -webkit-animation: zoomfade 7s linear forwards;
          animation: zoomfade 7s linear forwards;
}
@-webkit-keyframes zoomfade {
  0% {
    transform: scale(1.1) translateX(0);
  }
  100% {
    transform: scale(1.1) translateX(-4%);
  }
}
@keyframes zoomfade {
  0% {
    transform: scale(1.1) translateX(0);
  }
  100% {
    transform: scale(1.1) translateX(-4%);
  }
}
.Mv__catch {
  position: absolute;
  top: -60px;
  right: 0;
  width: 100%;
  z-index: 4;
}
@media screen and (max-width: 960px) {
  .Mv__catch {
    display: flex;
    top: 85px;
    align-items: flex-start;
    flex-direction: row;
    -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
  }
}
.Mv__text {
  position: absolute;
  background-color: #fff;
  padding: 14px 10px;
  font-size: min(4.0277777778vw, 3.625rem);
  line-height: min(4.7222222222vw, 4.25rem);
  font-weight: 600;
  font-feature-settings: initial;
  -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
  white-space: nowrap;
  letter-spacing: 8.64px;
}
@media screen and (max-width: 960px) {
  .Mv__text {
    font-size: min(8.9743589744vw, 2.1875rem);
    line-height: 1.18;
    margin-right: 0;
    margin-left: 0;
    padding: 10px;
    text-align: left;
    letter-spacing: 0.15em;
    font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Noto Sans JP", sans-serif;
    -ms-writing-mode: unset;
        writing-mode: unset;
  }
}
.Mv__text--1 {
  right: 9%;
}
@media screen and (max-width: 960px) {
  .Mv__text--1 {
    margin-left: 10px;
    margin-bottom: 0;
    right: 7%;
    min-height: calc(min(10.7692307692vw, 2.625rem) * 8);
  }
}
.Mv__text--2 {
  right: calc(9% + min(4.0277777778vw, 3.625rem) + 20px + min(2.4305555556vw, 35px));
}
@media screen and (max-width: 960px) {
  .Mv__text--2 {
    margin-top: 0;
    margin-right: 0;
    min-height: calc(min(10.7692307692vw, 2.625rem) * 5);
    right: calc(7% + min(8.9743589744vw, 2.1875rem) + 20px + 10px);
  }
}

.Top-company {
  width: calc(100% - 127px);
  margin: 0 0 85px auto;
}
@media screen and (max-width: 960px) {
  .Top-company {
    width: 100%;
  }
}
.Top-company__left {
  width: 50%;
}
@media screen and (max-width: 960px) {
  .Top-company__left {
    width: 100%;
  }
}
.Top-company__text {
  margin: 30px auto;
}
@media screen and (max-width: 960px) {
  .Top-company__text {
    margin: min(10.2564102564vw, 40px) auto min(7.6923076923vw, 30px);
  }
}
.Top-company__right {
  width: 46%;
}
@media screen and (max-width: 960px) {
  .Top-company__right {
    display: none;
  }
}
.Top-company__img {
  width: 100%;
}
@media screen and (max-width: 960px) {
  .Top-company__img {
    width: 100vw;
  }
}
.Top-company__img--sp {
  display: none;
}
@media screen and (max-width: 960px) {
  .Top-company__img--sp {
    display: block;
    margin-top: 20px;
  }
}

.Top-business {
  margin-bottom: 86px;
}
@media screen and (max-width: 960px) {
  .Top-business {
    margin-bottom: 55px;
  }
}
.Top-business__wrap {
  width: 100%;
  margin: 0 auto;
  padding: 0 127px;
}
@media screen and (max-width: 960px) {
  .Top-business__wrap {
    padding: 0;
  }
}
.Top-business__img {
  width: 100%;
}
.Top-business__inner {
  margin: 55px 0;
}
@media screen and (max-width: 960px) {
  .Top-business__inner {
    margin: 25px 0 45px;
  }
}
.Top-business__right {
  width: 52%;
}
@media screen and (max-width: 960px) {
  .Top-business__right {
    width: 100%;
  }
}
.Top-business__text {
  margin-bottom: 30px;
}

.Top-contact__title--sub {
  filter: invert(69%) sepia(54%) saturate(573%) hue-rotate(321deg) brightness(99%) contrast(83%);
}

.Top-recruit {
  position: relative;
  overflow: hidden;
  width: 100vw;
  height: auto;
  padding: 75px 0;
  margin-top: 85px;
  background: url(assets/img/bg/bg_top-recruit.jpg) no-repeat center center/cover;
}
.Top-recruit::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  background: #fff;
  transform: translateX(0%);
  transition: transform 2s cubic-bezier(0.4, 0, 0.2, 1);
}
.Top-recruit.Top-recruit--animate::before {
  transform: translateX(100%);
}
@media screen and (max-width: 960px) {
  .Top-recruit {
    padding: 0;
    margin: 80px auto 40px;
    background: none;
  }
  .Top-recruit::before {
    transform: none;
    transition: none;
    width: 0%;
  }
}
@media screen and (max-width: 960px) {
  .Top-recruit__img {
    background: url(assets/img/bg/bg_top-recruit.jpg) no-repeat bottom right/cover;
    width: 100%;
    height: 100%;
    aspect-ratio: 1/1;
  }
}
.Top-recruit__wrap {
  width: 100%;
  margin: 0 auto;
  padding: 0 127px;
}
@media screen and (max-width: 960px) {
  .Top-recruit__wrap {
    padding: 26px min(5.1282051282vw, 20px) 30px;
    background: #fff;
  }
}
.Top-recruit__inner {
  background-color: #fff;
  border-radius: 30px;
  margin: 0 auto 0 0;
  padding: 50px 90px 65px 85px;
  width: 65%;
  z-index: 1;
  position: relative;
}
@media screen and (max-width: 960px) {
  .Top-recruit__inner {
    width: 100%;
    padding: 0;
    border-radius: 0;
  }
}
.Top-recruit__text {
  margin: 30px 0 40px;
}

@-webkit-keyframes slideWhiteLayer {
  from {
    left: -127px;
  }
  to {
    left: 100%;
  }
}

@keyframes slideWhiteLayer {
  from {
    left: -127px;
  }
  to {
    left: 100%;
  }
}
/*---------------------
business page
---------------------*/
.Business {
  width: 100vw;
  padding-left: 135px;
  margin: 30px calc(50% - 50vw) 100px;
  /*
  &__img {
    width: 100%;

    &--pc {

      @include m.mq(xd) {
        display: none;
      }
    }

    &--sp {
      display: none;

      @include m.mq(xd) {
        display: block;
      }
    }
  }
  */
}
@media screen and (max-width: 960px) {
  .Business {
    padding-left: 0;
    margin-bottom: 0;
  }
}
.Business__wrap {
  display: flex;
  position: relative;
}
@media screen and (max-width: 960px) {
  .Business__wrap {
    height: auto;
  }
}
.Business__wrap--odd {
  border-radius: 0 50px 0 0;
  background-color: #F7DBCF;
}
@media screen and (max-width: 960px) {
  .Business__wrap--odd {
    flex-direction: column;
  }
  .Business__wrap--odd .Business__right {
    background-color: #F7DBCF;
    padding: 20px;
  }
}
.Business__wrap--odd .Fadein-img-container::before {
  background: #F7DBCF;
}
@media screen and (max-width: 960px) {
  .Business__wrap--odd .Fadein-img-container {
    overflow: hidden;
    border-radius: 0 50px 0 0;
  }
}
.Business__wrap--even {
  border-radius: 50px 0 0 0;
  background-color: #A7BCEB;
}
@media screen and (max-width: 960px) {
  .Business__wrap--even {
    flex-direction: column-reverse;
  }
  .Business__wrap--even .Business__left {
    background-color: #A7BCEB;
    padding: 20px;
  }
  .Business__wrap--even .Fadein-img-container img {
    margin: auto 0 auto auto;
  }
}
.Business__wrap--even .Fadein-img-container::before {
  background: #A7BCEB;
}
.Business__wrap--even .Business__inner--left {
  z-index: 1;
}
.Business__left, .Business__right {
  width: 50%;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 960px) {
  .Business__left, .Business__right {
    width: 100%;
    position: relative;
  }
}
.Business__inner {
  position: absolute;
  background-color: #fff;
  padding: 25px 20px 40px 30px;
  width: 54%;
}
@media screen and (max-width: 960px) {
  .Business__inner {
    width: 100%;
    padding: 10px 25px 15px;
  }
}
.Business__inner--left {
  left: 127px;
}
@media screen and (max-width: 960px) {
  .Business__inner--left {
    margin: auto;
    position: static;
  }
}
.Business__inner--right {
  right: 127px;
}
@media screen and (max-width: 960px) {
  .Business__inner--right {
    margin: auto;
    position: static;
  }
}
@media screen and (max-width: 960px) {
  .Business .Fadein-img-container img {
    width: 65%;
  }
}
.Business__img-wrap {
  width: 100%;
}
.Business__text {
  margin-top: 25px;
  font-size: min(1.25vw, 1.125rem);
  line-height: 1.38;
  letter-spacing: 3.6px;
}
@media screen and (max-width: 960px) {
  .Business__text {
    font-size: min(4.1025641026vw, 1rem);
    line-height: 1.56;
    letter-spacing: 3.2px;
  }
}

/*---------------------
company page
---------------------*/
.Company__bg {
  width: 100vw;
  background: url(assets/img/bg/bg_company_top_pc.png) no-repeat top center/cover;
  margin: 0 calc(50% - 50vw);
  position: relative;
  overflow: hidden;
}
.Company__bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 1;
  -webkit-animation: slideOut 2s linear forwards;
          animation: slideOut 2s linear forwards;
}
@media screen and (max-width: 960px) {
  .Company__bg::before {
    -webkit-animation: slideOut 1s linear forwards;
            animation: slideOut 1s linear forwards;
  }
}
@media screen and (max-width: 960px) {
  .Company__bg {
    background: #fff;
  }
}
.Company__title {
  width: 100%;
  margin: 0 auto auto;
  padding: 75px min(15%, 210px) 0;
}
@media screen and (max-width: 960px) {
  .Company__title {
    padding: 0 0 0 20px;
  }
}
.Company__message {
  margin: 70px auto 0 0;
  padding: 45px min(15%, 210px) 50px;
  color: #fff;
}
@media screen and (max-width: 960px) {
  .Company__message {
    margin: 5px auto 0;
    padding: 30% 20px 40px;
    background: url(assets/img/bg/bg_company_top_sp.png) no-repeat top center/cover;
  }
}
.Company__message--title:after {
  bottom: -15px;
}
.Company__text {
  width: 61%;
  margin-top: 45px;
  font-weight: 600;
  line-height: 1.5625rem;
  max-width: 800px;
}
@media screen and (max-width: 960px) {
  .Company__text {
    width: 100%;
  }
}
.Company__overview {
  margin-top: 75px;
}
@media screen and (max-width: 960px) {
  .Company__overview {
    margin-top: 50px;
  }
}

@-webkit-keyframes slideOut {
  0% {
    transform: translateX(0);
    /* 最初は左端に配置 */
  }
  100% {
    transform: translateX(100%);
    /* 完全に右側に移動して消える */
  }
}

@keyframes slideOut {
  0% {
    transform: translateX(0);
    /* 最初は左端に配置 */
  }
  100% {
    transform: translateX(100%);
    /* 完全に右側に移動して消える */
  }
}
/*---------------------
recruit page
---------------------*/
.Recruit__intro {
  display: flex;
  margin: 50px calc(50% - 50vw) auto auto;
  padding-right: 35px;
  justify-content: space-between;
  position: relative;
}
.Recruit__intro::after {
  content: "";
  position: absolute;
  bottom: -10px;
  height: 10px;
  width: 63%;
  background-color: #E69774;
}
@media screen and (max-width: 960px) {
  .Recruit__intro::after {
    display: none;
  }
}
@media screen and (max-width: 960px) {
  .Recruit__intro {
    flex-direction: column;
    padding-right: 0;
    margin: 30px auto 0;
  }
}
.Recruit__left {
  width: 42%;
  /* Swiperのフェードエフェクトのためのスタイル */
}
@media screen and (max-width: 960px) {
  .Recruit__left {
    width: 100%;
  }
}
.Recruit__img {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.Recruit__img::before {
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
  background: #fff;
  transform: translateX(0%);
  transition: transform 2s cubic-bezier(0.4, 0, 0.2, 1);
}
.Recruit__img.active::before {
  transform: translateX(100%);
}
.Recruit__photo {
  width: 100%;
}
.Recruit__right {
  width: 55%;
  position: relative;
}
@media screen and (max-width: 960px) {
  .Recruit__right {
    width: 100%;
  }
}
.Recruit__text {
  font-size: 1.125rem;
  line-height: 1.5625rem;
  letter-spacing: 3.6px;
}
@media screen and (max-width: 960px) {
  .Recruit__text {
    font-size: min(4.1025641026vw, 1rem);
    line-height: 1.56;
  }
}

@-webkit-keyframes Recruit__img {
  100% {
    transform: translateX(100%);
  }
}

@keyframes Recruit__img {
  100% {
    transform: translateX(100%);
  }
}
.Recruitment {
  margin: 90px auto;
}
@media screen and (max-width: 960px) {
  .Recruitment {
    margin: 50px auto 10px;
  }
}
.Recruitment__wrap:not(:first-of-type) {
  margin-top: 120px;
}
@media screen and (max-width: 960px) {
  .Recruitment__wrap:not(:first-of-type) {
    margin-top: 90px;
  }
}
.Recruitment__desc:nth-child(odd) {
  border-bottom: 2px solid #4C79D9;
  text-align: center;
  width: 20%;
  font-weight: 600;
  padding-left: 0;
}
@media screen and (max-width: 960px) {
  .Recruitment__desc:nth-child(odd) {
    width: 56.5%;
    font-size: min(4.6153846154vw, 1.125rem);
    letter-spacing: 6.48px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
.Recruitment__none {
  margin-top: 45px;
  text-align: center;
}

/*---------------------
contact page
---------------------*/
.Contact {
  margin-top: 40px;
}
.Contact__link {
  color: #4C79D9;
  padding-right: 25px;
  position: relative;
  text-decoration: underline;
  line-height: 2.125rem;
}
.Contact__link::after {
  content: "";
  position: absolute;
  background: url(assets/img/ico/ico-link.svg) no-repeat;
  width: 15px;
  height: 15px;
  margin: 7px 0 auto 2px;
}
.Contact__complete {
  margin: 65px auto 90px;
}
@media screen and (max-width: 960px) {
  .Contact__complete {
    margin: min(8.9743589744vw, 35px) auto min(12.8205128205vw, 50px);
  }
}
.Contact__complete--heading {
  text-align: center;
  font-weight: 600;
  line-height: 37px;
  letter-spacing: 7.2px;
}
.Contact__complete--separator {
  width: 14px;
  height: 14px;
  border-radius: 9999px;
  background-color: #E69774;
  display: block;
  margin: 22px auto 30px;
}
.Contact__complete--text {
  line-height: 2.3125rem;
  text-align: center;
  margin-bottom: 30px;
}
@media screen and (max-width: 960px) {
  .Contact__complete--text {
    margin-bottom: min(8.9743589744vw, 35px);
  }
}
.Contact__complete--wrap {
  text-align: center;
}

.grecaptcha-badge {
  bottom: 80px !important;
}
@media screen and (max-width: 767px) {
  .grecaptcha-badge {
    bottom: 60px !important;
  }
}

/*---------------------
privacy page
---------------------*/
.Privacy {
  width: 100%;
  max-width: 1000px;
  margin: 20px auto 0;
  margin: 40px auto 10px;
}
@media screen and (max-width: 960px) {
  .Privacy {
    margin-bottom: 0;
  }
}
.Privacy__block {
  margin-bottom: 1.5625rem;
}
.Privacy__block:last-child {
  margin-bottom: 0;
}
.Privacy__title {
  font-weight: 300;
  font-size: min(1.3888888889vw, 1.25rem);
}
@media screen and (max-width: 960px) {
  .Privacy__title {
    font-size: min(4.1025641026vw, 16px);
  }
}
.Privacy__text {
  line-height: 1.5625rem;
}
.Privacy__item {
  list-style: disc;
  margin-left: min(2.0833333333vw, 1.875rem);
}
@media screen and (max-width: 960px) {
  .Privacy__item {
    margin-left: min(6.4102564103vw, 1.5625rem);
  }
}
.Privacy__link {
  text-decoration: underline;
}

/*---------------------
contact page(cf7)
---------------------*/
.CF7 {
  /* 確認・戻る・送信ボタン */
  /* 送信完了画面 */
}
.CF7__form, .CF7__formConfirm {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}
.CF7__form_group {
  width: 61%;
  margin-bottom: 25px;
}
@media screen and (max-width: 960px) {
  .CF7__form_group {
    width: 100%;
  }
}
.CF7__form_group--textarea {
  width: 100%;
  margin-bottom: 35px;
}
.CF7__form_label {
  font-weight: 600;
  letter-spacing: 7.2px;
  line-height: 1.84;
}
@media screen and (max-width: 960px) {
  .CF7__form_label {
    font-size: min(4.6153846154vw, 1.125rem);
    letter-spacing: 6.48px;
  }
}
.CF7__form_flag {
  color: #E69774;
  letter-spacing: 2.6px;
  margin-left: 1.25rem;
}
@media screen and (max-width: 960px) {
  .CF7__form_flag {
    letter-spacing: 2.34px;
  }
}
.CF7__form_control {
  margin-top: 10px;
}
.CF7__form_frame {
  width: 61%;
  height: 48px;
  border-radius: 7px;
  border: 1px solid #727272;
  background: #fff;
  box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.25) inset;
  padding: 5px 10px;
  width: 100%;
}
.CF7__form_frame:focus {
  border: #727272 solid 1px;
  outline: #727272 solid 2px;
}
.CF7__form_frame--detail {
  width: 100%;
  height: 295px;
}
.CF7__form_consent {
  display: flex;
  justify-content: center;
  margin-bottom: 30px;
}
.CF7__form_consent input[type=checkbox] {
  display: none;
}
.CF7__form_consent .CF7__form_control {
  margin-top: 0;
}
@media screen and (max-width: 960px) {
  .CF7__form_consent .CF7__form_control {
    font-size: min(4.6153846154vw, 1.125rem);
  }
  .CF7__form_consent .CF7__form_control .wpcf7-list-item {
    margin: 0;
  }
}
.CF7__form_btn {
  width: 154px;
}
.CF7__form_btn::before {
  content: "";
  position: absolute;
  background: url(assets/img/ico/ico-arrow.svg) no-repeat;
  width: 16px;
  height: 13px;
  filter: invert(59%) sepia(66%) saturate(4116%) hue-rotate(201deg) brightness(87%) contrast(95%);
}
.CF7__form_btn::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 154px;
  height: 4px;
  left: 0;
}
@media print, screen and (min-width: 961px) {
  .CF7__form_btn:has(.CF7__form_confirm:not([disabled])), .CF7__form_btn:has(.CF7__form_back), .CF7__form_btn:has(.CF7__form_submit) {
    opacity: 1;
    transition: opacity 0.5s linear;
  }
  .CF7__form_btn:has(.CF7__form_confirm:not([disabled])):hover, .CF7__form_btn:has(.CF7__form_back):hover, .CF7__form_btn:has(.CF7__form_submit):hover {
    opacity: 0.6;
  }
  .CF7__form_btn:has(.CF7__form_confirm[disabled]) {
    opacity: 1;
    transition: none;
    pointer-events: none;
  }
}
@media screen and (max-width: 960px) {
  .CF7__form_btn:active, .CF7__form_btn:focus {
    opacity: 0.3;
  }
}
.CF7__form_btn--wrap {
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 960px) {
  .CF7__form_btn--wrap {
    flex-direction: column;
  }
}
.CF7__form_btn--confirm, .CF7__form_btn--back, .CF7__form_btn--submit {
  position: relative;
  padding: 0;
}
@media screen and (max-width: 960px) {
  .CF7__form_btn--confirm, .CF7__form_btn--back, .CF7__form_btn--submit {
    margin: 0 auto;
  }
}
.CF7__form_btn--confirm::before, .CF7__form_btn--submit::before {
  right: 7px;
  margin-top: 11px;
}
.CF7__form_btn--confirm::after, .CF7__form_btn--submit::after {
  background-color: #E69774;
}
.CF7__form_btn--back::before {
  rotate: 180deg;
  left: 10px;
  margin-top: 8px;
}
.CF7__form_btn--back::after {
  background-color: #4C79D9;
}
.CF7__formConfirm_btn {
  gap: 50px;
}
@media screen and (max-width: 960px) {
  .CF7__formConfirm_btn {
    gap: 25px;
  }
}
.CF7__form_confirm, .CF7__form_back, .CF7__form_submit {
  background-color: #fff;
  border: none;
  font-weight: 600;
  letter-spacing: 4px;
  padding: 0 17px 10px;
}
@media screen and (max-width: 960px) {
  .CF7__form_confirm, .CF7__form_back, .CF7__form_submit {
    border-radius: 44px;
    font-size: min(5.1282051282vw, 1.25rem);
  }
}
.CF7__form_confirm:hover, .CF7__form_back:hover, .CF7__form_submit:hover {
  cursor: pointer;
}
.CF7__form_confirm:not([disabled]), .CF7__form_back:not([disabled]), .CF7__form_submit:not([disabled]) {
  color: #000;
}
.CF7__form_confirm:not([disabled]):hover, .CF7__form_back:not([disabled]):hover, .CF7__form_submit:not([disabled]):hover {
  opacity: 0.6;
  cursor: pointer;
}
.CF7__form_confirm, .CF7__form_submit {
  padding: 0 40px 10px 18px;
}
.CF7__form_confirm {
  /* 確認ボタン非活性時 */
}
.CF7__form_confirm[disabled] {
  cursor: default;
}
.CF7__form_back {
  padding: 0 10px 10px 48px;
}
@media screen and (max-width: 767px) {
  .CF7__form_back {
    width: 100%;
    max-width: 360px;
  }
}
.CF7__formConfirm_txt {
  margin-bottom: min(5.1282051282vw, 20px);
}
.CF7__formThanks_ttl, .CF7__formThanks_txt {
  text-align: center;
}
.CF7__formThanks_ttl {
  font-size: 24px;
  font-weight: 700;
}
.CF7__formThanks_txt {
  -webkit-margin-before: 1em;
          margin-block-start: 1em;
}

/* 入力欄、セレクトボックス */
.CF7__form:is(input[type=text],
input[type=email],
input[type=tel],
textarea,
select) {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #f7f7f7;
  border: none;
  padding-inline: 1.5em;
  padding-block: 0.625em;
  resize: vertical;
}

.CF7__form:is(input[type=text],
input[type=email],
input[type=tel],
textarea) {
  inline-size: 100%;
}

.CF7__form:is(input[type=text],
input[type=email],
input[type=tel],
textarea)::-moz-placeholder {
  color: #ccc;
}

.CF7__form:is(input[type=text],
input[type=email],
input[type=tel],
textarea):-ms-input-placeholder {
  color: #ccc;
}

.CF7__form:is(input[type=text],
input[type=email],
input[type=tel],
textarea)::placeholder {
  color: #ccc;
}

/* フォーカス時のスタイル */
.CF7__form:is(input[type=text],
input[type=email],
input[type=tel],
textarea,
select):focus-visible {
  outline: 1px solid #4C79D9;
}

/* オリジナルのラジオボタンとチェックボックスを作成 */
/*
.CF7__form:is(input[type="radio"],
  input[type="checkbox"],
  input[type="checkbox"]) {
  background-color: #fff;
  block-size: 1px;
  border: none;
  inline-size: 1px;
  margin-block-end: 3px;
  position: relative;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

.CF7__form input[type="radio"] {
  border-radius: 50%;
}

.CF7__form input[type="date"] {
  position: relative;

  &:after {
    content: "";
    color: #fff;
    padding: 5px;
    width: 23px;
    height: 24px;
    background: url(assets/img/ico/ico_calendar.svg) no-repeat;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
  }

  &::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    height: auto;
    color: transparent;
    background: transparent;
    z-index: 100;
  }
}
*/
/* フォーカス時はlabelタグにアウトラインを適用 */
.CF7__form label:has(:where(input[type=radio], input[type=checkbox]):focus-visible) {
  outline: 2px solid #005fcc;
  outline-offset: 2px;
}

/* チェック時のスタイルは擬似要素で再現 */
.CF7__form :where(input[type=radio], input[type=checkbox]):checked::before {
  content: "";
  inset-block-start: 2px;
  inset-inline-start: 2px;
  position: absolute;
}

/*
.CF7__form :where(input[type="radio"]):checked::before {
  background-color: #37952f;
  block-size: 10px;
  border-radius: 50%;
  inline-size: 10px;
}
*/
/* ラジオボタン押下時の背景色
.CF7__form :where(input[type="radio"]):checked~.wpcf7-list-item-label,
.CF7__form :where(input[type="checkbox"]):checked~.wpcf7-list-item-label {
  background-color: #CBEDD5;
  width: 100%;
  border-radius: 5px;
}

.CF7__form :where(input[type="radio"]):checked~.wpcf7-list-item-label:after {
  background-color: c.$blu;
  block-size: m.rem(20);
  inline-size: m.rem(20);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 26px;
  border-radius: 50%;
}
*/
.CF7__form :where(input[type=checkbox]):checked ~ .wpcf7-list-item-label:after {
  block-size: 9px;
  -webkit-border-after: 2px solid #4C79D9;
          border-block-end: 2px solid #4C79D9;
  -webkit-border-start: 2px solid #4C79D9;
          border-inline-start: 2px solid #4C79D9;
  inline-size: 18px;
  rotate: -50deg;
  position: absolute;
  top: 0.6875rem;
  left: 0.375rem;
}
@media screen and (max-width: 960px) {
  .CF7__form :where(input[type=checkbox]):checked ~ .wpcf7-list-item-label:after {
    top: 50%;
    left: 0.75rem;
    transform: translateY(-100%);
  }
}

.wpcf7-list-item-label {
  display: inline-flex;
  align-items: center;
  position: relative;
  width: 100%;
  letter-spacing: 1px;
}
.wpcf7-list-item-label::before, .wpcf7-list-item-label::after {
  content: "";
}
.wpcf7-list-item-label:before {
  background-color: #fff;
  border: 1px solid #CACACA;
  display: inline-block;
  inline-size: 1.8125rem;
  block-size: 1.8125rem;
  -webkit-margin-end: 0.625rem;
          margin-inline-end: 0.625rem;
  border-radius: 5px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25) inset;
}
@media screen and (max-width: 767px) {
  .wpcf7-list-item-label:before {
    padding: 10px;
  }
}

.wpcf7-check-mark {
  block-size: 11px;
  -webkit-border-after: 2px solid #000;
          border-block-end: 2px solid #000;
  -webkit-border-start: 2px solid #000;
          border-inline-start: 2px solid #000;
  inline-size: 15px;
  rotate: -50deg;
  position: absolute;
  top: 0.5em;
  left: 0.5em;
}

@media screen and (max-width: 767px) {
  .wpcf7-acceptance {
    margin-bottom: 0;
  }
}

/* バリデーションメッセージ */
.wpcf7-not-valid-tip {
  color: #f00;
  font-size: 0.75rem;
  line-height: 1.5rem;
}

/* 確認画面とメッセージ、スピナーを非表示 */
.CF7__formConfirm,
.wpcf7-response-output,
.CF7__formConfirm .wpcf7-spinner {
  display: none;
}

/* apple限定 */
@media print, screen and (min-width: 961px) {
  _::-webkit-full-page-media,
_:future,
:root .CF7__form_btn--confirm::before,
.CF7__form_btn--submit::before {
    margin-top: 7px;
  }
  _::-webkit-full-page-media,
_:future,
:root .CF7__form_btn--back::before {
    margin-top: 4px;
  }
}
/*
_::-webkit-full-page-media,
_:future,
:root .CF7__form select {
  color: c.$blk;
}

_::-webkit-full-page-media,
_:future,
:root .CF7__form input[type="date"] {
  width: 390px;
  color: c.$blk;

  @include m.mq(sp) {
    width: 100%;
    min-width: 200px;
    margin-left: 0;
  }
}
*/

:-ms-input-placeholder {
  color: #ccc !important;
}

::-moz-placeholder {
  color: #ccc;
  opacity: 1;
}

::placeholder {
  color: #ccc;
  opacity: 1;
}

:focus:-ms-input-placeholder {
  color: transparent;
}

:focus::-moz-placeholder {
  color: transparent;
}

:focus::placeholder {
  color: transparent;
}

/*
.CF7__form_arrow {
  position: relative;
  width: 46%;

  @include m.mq(sp) {
    width: 70%;
  }

  &::after {
    position: absolute;
    top: 17px;
    right: 17px;
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 10px solid transparent;
    border-left: 10px solid transparent;
    border-top: 18px solid #707070;
    border-bottom: 0;
    pointer-events: none;
  }
}

select {
  -webkit-appearance: none;
  appearance: none;
}
*/
/*-------------------------------------------
Swiper
-------------------------------------------*/
.swiper {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.swiper__mv {
  height: calc(100vh - 138px);
}
.swiper__mv::before {
  position: absolute;
  content: "";
  background: url(assets/img/mv/img_top_frame.svg) no-repeat top center/cover;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  z-index: 2;
}
@media screen and (max-width: 960px) {
  .swiper__mv {
    height: calc(100vh - 155px);
  }
  .swiper__mv::before {
    background: url(assets/img/mv/img_top_frame_sp.svg) no-repeat top center/contain;
  }
}

.swiper-wrapper {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  display: flex;
  box-sizing: content-box;
}

.swiper-slide {
  text-align: center;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  /* スライドが縮小されないように */
  width: 100%;
  /* スライドが1枚ずつ表示されるように */
  height: 100%;
  /* スライドが高さ100%になるように */
  position: relative;
  transition-property: transform;
  opacity: 0;
  /* 初期状態で非表示 */
  transition: opacity 1s ease;
  /* フェード用のトランジション */
}

.swiper-slide-active {
  opacity: 1;
  /* アクティブなスライドを表示 */
}

.swiper-progressbar {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  background: #fff;
  z-index: 3;
  overflow: hidden;
}
@media screen and (max-width: 960px) {
  .swiper-progressbar {
    height: 5px;
  }
}
.swiper-progressbar span {
  display: block;
  width: 0%;
  height: 100%;
  background: #4C79D9;
}
.swiper-progressbar__recruit {
  position: relative;
}
.swiper-progressbar__recruit span {
  background: #E69774;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  transition-timing-function: linear;
}
.swiper-progressbar__recruit--pc {
  display: block;
}
@media screen and (max-width: 960px) {
  .swiper-progressbar__recruit--pc {
    display: none;
  }
}
.swiper-progressbar__recruit--sp {
  display: none;
}
@media screen and (max-width: 960px) {
  .swiper-progressbar__recruit--sp {
    display: block;
  }
}

@-webkit-keyframes progress {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}

@keyframes progress {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}
.swiper-pagination {
  position: relative !important;
  text-align: left !important;
  margin: 10px 0 40px;
  top: 0;
  left: 0;
}
@media screen and (max-width: 960px) {
  .swiper-pagination {
    margin: 25px 0;
    text-align: center !important;
  }
}

.swiper-pagination-bullet {
  margin: 0 12px 0 0 !important;
  display: inline-block;
  width: 16px !important;
  height: 16px !important;
  background-color: #ccc;
  border-radius: 50%;
  margin: 0 5px;
}
.swiper-pagination-bullet:last-child {
  margin-right: 0 !important;
}

.swiper-pagination-bullet-active {
  background: #4C79D9 !important;
}

.swiper-pagination-horizontal {
  bottom: auto !important;
}

/*-------------------------------------------
Headerをスクロールしたとき上に固定するためJSで付けるクラス
-------------------------------------------*/
.fixed {
  background-color: #fff;
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 990;
}/*# sourceMappingURL=style.css.map */