@charset "UTF-8";
/*----------------------------------------

	index CSS

	- common

-----------------------------------------*/

html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

@media screen and (min-width:768px) {
  a[href *="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

/*----------------------------------------
	common
-----------------------------------------*/

a.link {
  text-decoration: underline;
  transition: 0.3s;
}

a.link:hover {
  text-decoration: none;
  opacity: 0.7;
}

.ind01 {
  text-indent: -1em;
  padding-left: 1em;
}

.ind02 {
  padding-left: 2em;
  text-indent: -2em;
}

.indent-clear {
  text-indent: inherit;
  padding-left: 1em;
}

.list-attention {
  font-size: 14px;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .list-attention {
    font-size: 18px;
  }
}

.mw1920 {
  max-width: 1920px;
  margin: 0 auto;
}

.mw1480 {
  max-width: 1480px;
  margin: 0 auto;
}

.mw1400 {
  max-width: 1400px;
  margin: 0 auto;
}

.mw1320 {
  max-width: 1320px;
  margin: 0 auto;
}

.mw1200 {
  max-width: 1200px;
  margin: 0 auto;
}

.mw1140 {
  max-width: 1140px;
  margin: 0 auto;
}

.mw1176 {
  max-width: 1176px;
  margin: 0 auto;
}

.mw1096 {
  max-width: 1096px;
  margin: 0 auto;
}

.mw1080 {
  max-width: 1080px;
  margin: 0 auto;
}

.mw1040 {
  max-width: 1040px;
  margin: 0 auto;
}

.mw980 {
  max-width: 980px;
  margin: 0 auto;
}

.mw960 {
  max-width: 960px;
  margin: 0 auto;
}

.mw900 {
  max-width: 900px;
  margin: 0 auto;
}

.mw800 {
  max-width: 800px;
  margin: 0 auto;
}

.mw780 {
  max-width: 780px;
  margin: 0 auto;
}

.mw720 {
  max-width: 720px;
  margin: 0 auto;
}

.mw650 {
  max-width: 650px;
  margin: 0 auto;
}

.mw400 {
  max-width: 400px;
  margin: 0 auto;
}

.ttl-lv1 {
  font-size: 30px;
}

.ttl-lv2 {
  font-size: 22px;
  line-height: 1.5;
}

.ttl-lv4 {
  font-size: 18px;
}

@media screen and (min-width: 768px) {
  .ttl-lv1 {
    font-size: 40px;
  }

  .ttl-lv2 {
    font-size: 34px;
  }

  .ttl-lv4 {
    font-size: 24px;
  }
}

.ttl-bd {
  background: #4E386C;
  color: #ffffff;
  padding: 0.5em;
}

.fc-white {
  color: #ffffff;
}

.fc-purple {
  color: #4E386C;
}

.bg-gray {
  background: #E8EEEE;
}

.btn-linkWrapper {
  line-height: 1;
}

.btn-linkWrapper .btn-link--icon {
  margin-top: -0.2em;
}

/*btn-link*/
.btn-link {
  position: relative;
  width: 100%;
  min-width: 280px;
  font-size: 14px;
  line-height: 1.5;
  padding: 1em 1em 1em 1.4em;
  border-radius: 5px;
  display: inline-block;
  background: #4E386C;
  color: #ffffff;
}

.btn-link a:link,
.btn-link a:visited {
  color: #ffffff;
}

.btn-link--icon {
  display: block;
  position: absolute;
  top: 50%;
  right: 1.2em;
  bottom: 0;
  width: 10px;
  height: 10px;
  overflow: hidden;
}

.btn-link--icon:before,
.btn-link--icon:after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url(../images/btn_arrow.svg);
}

.btn-link--icon:after {
  transform: translate(-100%, 100%);
}

.btn-link--icon-b {
  display: block;
  position: absolute;
  top: 50%;
  right: 1.2em;
  bottom: 0;
  width: 12px;
  height: 12px;
  overflow: hidden;
}

.btn-link--icon-b:before,
.btn-link--icon-b:after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url(../images/btn_arrow_b.svg);
}

.btn-link--icon-b:after {
  transform: translate(-100%, 100%);
}

.btn-link__txt-s {
  font-size: 11px;
}

.btn-link--icon02:after {
  transition-delay: 0s;
}

@media screen and (min-width: 768px) {
  .btn-link:hover {
    color: #ffffff;
  }

  a:hover .btn-link--icon:before,
  a:hover .btn-link--icon:after {
    background: url(../images/btn_arrow.svg);
  }

  a:hover .btn-link--icon-b:before,
  a:hover .btn-link--icon-b:after {
    background: url(../images/btn_arrow_b.svg);
  }

  a:hover .btn-link--icon:before,
  a:hover .btn-link--icon-b:before {
    transition-duration: 0.6s;
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -ms-transition-duration: 0.6s;
    -ms-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition-duration: 0.6s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -moz-transition-duration: 0.6s;
    -moz-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transform: translate(100%, -100%);
  }

  a:hover .btn-link--icon:after,
  a:hover .btn-link--icon-b:after {
    transform: translate(0, 0);
    transition-duration: 1s;
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -ms-transition-duration: 1s;
    -ms-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition-duration: 1s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -moz-transition-duration: 1s;
    -moz-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-delay: 0.3s;
    -webkit-transition-delay: 0.3s;
  }

  .btn-link__txt-s {
    font-size: 12px;
  }

  .btn-link--icon {
    margin-top: -0.3em;
  }

  .btn-link--icon-b {
    width: 14px;
    height: 14px;
  }
}

/*----------------------------------------
	cmn-header
-----------------------------------------*/

.cmn-header__Wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  transition: all 0.2s cubic-bezier(0.37, 0, 0.63, 1);
  background: transparent;
  z-index: 1000;
  padding: 1em 0 0 1em;
}

.cmn-header__inner {
  position: relative;
  opacity: 0;
}

.cmn-header.on .cmn-header__inner {
  opacity: 1;
}

.cmn-header__logoIcon {
  width: auto;
  height: 46px;
  z-index: 100;
  transition: 0.3s;
}

.cmn-header__logoTtl {
  font-size: 12px;
  color: #ffffff;
  padding-top: 0.5em;
}

.cmn-header__snsWrapper {
  line-height: 1;
}

.cmn-header__sns a {
  display: inline-block;
}

.cmn-header__sns:nth-of-type(2),
.cmn-header__sns:nth-of-type(3) {
  margin-left: 1.2em;
}

.cmn-header__sns:nth-of-type(3) {
  margin-right: 1.3em;
}

.cmn-header__other {
  line-height: 1;
}

.cmn-header__other a {
  position: relative;
  border: 1px solid #ffffff;
  font-size: 13px;
  border-radius: 5px;
  padding: 0.7em 2.45em 0.8em 1em;
  display: inline-block;
  white-space: nowrap;
  color: #ffffff;
}

.cmn-header__other:nth-of-type(2) {
  margin-left: 0.65em;
}

.cmn-header__other .btn-link--icon {
  .cmn-header.fixed .cmn-header__logoIcon margin-top: -0.4em;
}


/*fixed*/
.cmn-header.fixed .cmn-header__Wrapper {
  background: rgba(255, 255, 255, 0.6);
  padding-bottom: 1.3em;
}

.cmn-header.fixed .cmn-header__logoIcon {
  height: 20px;
}

.cmn-header.fixed .cmn-header__logoTtl {
  font-size: 8px;
}

.cmn-header.fixed #gnavBtn,
.cmn-header.fixed .cmn-header__ttl,
.cmn-header.fixed .cmn-header__sns,
.cmn-header.fixed .cmn-header__other {
  filter: brightness(10%);
}

@media screen and (min-width: 768px) {
  .cmn-header__Wrapper {
    padding: 1.4em 4em 0 2em;
  }

  .cmn-header__linkWrapper {
    padding-right: 1em;
  }

  .cmn-header__snsWrapper {
    margin-top: 0.4em;
  }

  .cmn-header__sns:nth-of-type(2),
  .cmn-header__sns:nth-of-type(3) {
    margin-left: 1.2em;
  }

  .cmn-header__sns:nth-of-type(3) {
    margin-right: 1.3em;
  }

  .cmn-header__sns a {
    width: 24px;
    line-height: 1;
  }

  .cmn-header.fixed .cmn-header__Wrapper {
    padding: 1em 4em 1em 2em;
  }

  .cmn-header.fixed .cmn-header__inner {
    align-items: center;
  }

  .cmn-header.fixed .cmn-header__logo {
    margin-top: 0.5em;
  }
}

@media screen and (min-width: 992px) {
  .cmn-header__Wrapper {
    padding: 1.9em 5.4em 0 2.7em;
  }

  .cmn-header__linkWrapper {
    padding-right: 0;
  }

  .cmn-header.fixed .cmn-header__Wrapper {
    padding: 0.5em 4em 0.5em 2em;
  }

  .cmn-header__sns:nth-of-type(2),
  .cmn-header__sns:nth-of-type(3) {
    margin-left: 1.6em;
  }

  .cmn-header__sns:nth-of-type(3) {
    margin-right: 1.7em;
  }

  .cmn-header.fixed .cmn-header__linkWrapper {
    padding-right: 1em;
  }
}

@media screen and (min-width: 1399px) {
  .cmn-header__logoImg {
    height: 32px;
  }

  .cmn-header__ttl {
    text-align: center;
  }

  .cmn-header__ttl a {
    transition: 0.3s;
  }

  .cmn-header__ttl a:hover {
    opacity: 0.6;
  }

  .cmn-header__logoIcon {
    height: 52px;
  }

  .cmn-header__logoTtl {
    height: 24px;
  }

  .cmn-header.fixed .cmn-header__logoIcon {
    height: 24px;
  }

  .cmn-header.fixed .cmn-header__logoTtl {
    height: 20px;
  }
}

@media screen and (min-width: 1199px) {
  .cmn-header__logoIcon {
    height: 52px;
  }

  .cmn-header__logoTtl {
    height: 28px;
  }
}

@media screen and (min-width: 1399px) {
  .cmn-header__logoTtl {
    height: 32px;
  }
}


@media only screen and (min-width: 768px) and (max-width: 1399px) {
  .cmn-header__logoImg {
    padding-top: 0.4em;
  }
}

@media screen and (max-width: 768px) {
  .cmn-header__logo {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3000;
    padding-top: 1em;
    padding-left: 1em;
  }

  .cmn-header__snsWrapper {
    padding-right: 3em;
  }
}

/*----------------------------------------
	gnav
-----------------------------------------*/

.menu-icon span:before,
.menu-icon:after,
.menu-icon:before,
.menu-icon span {
  display: block;
  position: absolute;
  top: 50%;
  left: 0.125em;
  background-color: #ffffff;
  width: 0.75em;
  height: 0.07em;
  border-radius: 0;
}

.menu-icon {
  font-size: 3.2rem;
  width: 1em;
  height: 1em;
  display: inline-block;
  position: relative;
  background-color: transparent;
  border: 0;
  padding: 0;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  touch-action: manipulation;
  cursor: pointer;
}

.menu-icon span {
  margin-top: -0.025em;
}

.menu-icon:before {
  content: "";
  margin-top: -0.275em;
}

.menu-icon:after {
  content: "";
  margin-top: 0.225em;
  left: 0.125em;
  width: 0.25em;
}

.menu-icon:before,
.menu-icon:after {
  transition: 0.2s ease 0.2s;
}

.menu-icon span {
  transition: 0;
  transition-delay: 0.4s;
  width: 0.5em;
}

.menu-icon span:before {
  content: "";
  transition: inherit;
  left: 0;
  top: 0;
  width: 0.5em;
}

.menu-icon.is-active:before,
.menu-icon.is-active:after {
  transition: 0.2s ease;
  width: 0;
}

.menu-icon.is-active span {
  transform: rotate(45deg);
  transition: 0.2s ease 0.4s;
  width: 0.75em;
  left: 0;
}

.menu-icon.is-active span:before {
  transform: rotate(-90deg);
  width: 0.75em;
}

/* 閉じた状態（= #gnavBtn が is-active じゃない）になったら span を即消す */
.cmn-header:has(#gnavBtn:not(.is-active)) #gnavBtn.menu-icon span {
  color: #ffffff;
  transition: none !important;
}

#gnav {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  display: none;
  z-index: 1500;
}

#gnav.is-active {
  z-index: 3100;
}

.gnav__inner {
  position: relative;
  height: 100%;
}

#gnav .cmn-gmenu-link__inner {
  position: relative;
  height: 100%;
  overflow-y: auto;
  -ms-overflow-style: none;
  /* IE, Edge 対応 */
  scrollbar-width: none;
  -webkit-overflow-scrolling: auto;
}

#gnav .cmn-gmenu-link__inner::-webkit-scrollbar {
  display: none;
}

.gnav__logo {
  z-index: 3100;
  opacity: 0;
  transition: 0.3s;
}

.gnav__logo.is-active {
  opacity: 1;
}

.gnav__logo a {
  display: inline-block;
}

.gnav__btn {
  opacity: 0;
  transition: 0.4s;
}

.gnav__btn.is-active {
  opacity: 1;
}

.gnav__btn .btn-link {
  color: #ffffff;
}

.gnav_bg {
  position: fixed;
  top: 0;
  left: 0;
  background: #ffffff;
  width: 100%;
  height: 100%;
  z-index: 3;
}

#gnavBtn {
  position: fixed;
  top: 0;
  right: 0;
  width: 44px;
  height: 44px;
  z-index: 4000;
  cursor: pointer;
  background: transparent;
  display: block;
  margin-top: 0.15em;
  transition: 0.2s cubic-bezier(0.37, 0, 0.63, 1)
}

#gnavBtn.is-active.menu-icon span:before,
#gnavBtn.is-active.menu-icon:after,
#gnavBtn.is-active.menu-icon:before,
#gnavBtn.is-active.menu-icon span {
  background: #222222;
}

.cmn-header__gnav {
  padding: 1em 0;
}

.cmn-header__gnav li a {
  position: relative;
  padding: 1em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  font-size: 14px;
  line-height: 1.4;
  color: #222222;
  border-bottom: 1px solid #C7C7C7;
}

.cmn-header__gnav li:nth-of-type(1) a {
  border-top: 1px solid #C7C7C7;
}

.cmn-header__gnav li a:hover {
  background: rgba(78, 56, 108, 0.1);
}

.cmn-header__gnav>ul>li>a>span:nth-of-type(n+2) {
  text-align: left;
  width: 10em;
  font-size: 11px;
}

.cmn-header__gnav li {
  transform: translateY(-10px);
  opacity: 0;
}

.cmn-header__gnav.is-active li {
  transform: translateY(0);
  opacity: 1;
  transition: 1.2s cubic-bezier(.215, .61, .355, 1);
}

.cmn-header__gnav.is-active li:nth-of-type(1) {
  transition-delay: 0.3s;
}

.cmn-header__gnav.is-active li:nth-of-type(2) {
  transition-delay: 0.4s;
}

.cmn-header__gnav.is-active li:nth-of-type(3) {
  transition-delay: 0.5s;
}

.cmn-header__gnav.is-active li:nth-of-type(4) {
  transition-delay: 0.6s;
}

.cmn-header__gnav.is-active li:nth-of-type(5) {
  transition-delay: 0.7s;
}

.cmn-header__gnav.is-active li:nth-of-type(6) {
  transition-delay: 0.8s;
}

.cmn-header__gnav.is-active li:nth-of-type(7) {
  transition-delay: 0.8s;
}

.cmn-header__gnav.is-active li:nth-of-type(8) {
  transition-delay: 0.8s;
}

#gnav .l-drawer__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  z-index: -1;
  transform: translateX(100%);
  background: #ffffff;
}

#gnav.is-active .l-drawer__bg {
  transform: translateX(0);
  transition: transform .5s cubic-bezier(.5, 0, 0, 1), opacity .6s cubic-bezier(.5, 0, 0, 1);
}

#gnav.is-close .l-drawer__bg {
  transform: translateX(100%);
}

@media screen and (min-width:768px) {
  #gnavBtn {
    margin-top: 0.5em;
  }

  .cmn-header.fixed #gnavBtn {
    margin-top: 0.3em;
  }

  .cmn-header__gnav li a {
    line-height: 1.6;
  }
}

@media screen and (min-width:992px) {
  #gnav {
    width: 50%;
  }
}

@media screen and (min-width:1199px) {
  #gnav {
    width: 30%;
  }

  #gnavBtn {
    margin-top: 0.9em;
    margin-right: 1em;
  }
}

.cmn-gmenu-link-col-wrapper {
  position: relative;
  width: 100%;
  margin-bottom: auto;
  margin-right: 4.5em;
}

.cmn-header__gnav>ul {
  justify-content: flex-end;
  margin: 2em 0 0 0;
}

@media screen and (min-width: 1199px) {
  .cmn-header__gnav>ul {
    margin: 1em 0 0 0;
  }
}

/*----------------------------------------
	kv
-----------------------------------------*/

.kv {
  position: relative;
  overflow: hidden;
}

.kv__inner {
  position: relative;
}

.kv__txtWrapper {
  position: absolute;
  width: 100%;
  bottom: 0;
  right: 0;
  z-index: 100;
}

.kv__pic {
  aspect-ratio: 375 / 600;
}

/*kv__pic01*/
.kv__pic .kv__pic01 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  filter: blur(10px);
  transform: scale(1.05);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, rgb(0, 0, 0) 0 20%, rgba(0, 0, 0, 0) 45%);
  mask-image: radial-gradient(circle at 100% 100%, rgb(0, 0, 0) 0 20%, rgba(0, 0, 0, 0) 45%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: 100% 100%;
  mask-position: 100% 100%;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  opacity: 0;
  transition: mask-size 2s cubic-bezier(0.45, 0, 0.55, 1), transform 3s cubic-bezier(.42, 0, .58, 1), filter 2.5s cubic-bezier(.42, 0, .58, 1), opacity 1s cubic-bezier(.42, 0, .58, 1);
  ;
}

.kv.on .kv__pic .kv__pic01 {
  opacity: 1;
  filter: blur(0);
  transform: scale(1);
  -webkit-mask-size: 350% 350%;
  mask-size: 350% 350%;
}

.kv.on .kv__pic .kv__pic01 img {
  position: relative;
  object-fit: cover;
  object-position: 0 0;
}

.kv__txt {
  color: #ffffff;
  font-size: 3.5vw;
  line-height: 1.5;
}

.kv .btn-linkWrapper {
  width: 100%;
}

.kv .btn-link {
  font-size: 1.1em;
  color: #ffffff;
}

.kv .btn-link .btn-link__txt-s {
  font-size: 0.8em;
}

.kv__txt__inner {
  margin-bottom: 5vh;
}


/*fade*/
.kv .kv__txt_fade {
  filter: blur(5px);
  opacity: 0;
  transition: 1.2s ease 0.6s;
}

.kv.on .kv__txt_fade {
  filter: blur(0);
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .kv__pic {
    aspect-ratio: 1320 / 750;
  }

  .kv__txt {
    font-size: 1.5vw;
    line-height: 1.62;
  }

  .kv__txt {
    top: 15%;
    right: 5%;
    left: inherit;
  }

  .kv__txt__inner {
    width: 50vw;
    margin-bottom: 4vh;
    padding-right: 2vw;
  }

  .kv__pic .kv__pic01 {
    margin-top: 0;
  }

  .kv__txt__inner span:nth-of-type(2) {
    margin-top: 1.3em;
  }

  .kv .btn-linkWrapper {
    width: inherit;
  }

  .kv .btn-link {
    font-size: 0.8em;
  }

  .kv .btn-link .btn-link__txt-s {
    font-size: 0.7em;
  }
}

@media screen and (min-width: 992px) {
  .kv__txt__inner {
    width: 50vw;
    margin-bottom: 4vh;
    padding-right: 4vw;
  }

  .kv .btn-link {
    font-size: 0.8em;
  }

  .kv .btn-link .btn-link__txt-s {
    font-size: 0.7em;
  }
}

@media screen and (min-width: 1199px) {
  .kv__pic {
    aspect-ratio: 1200 / 650;
  }

  .kv__txt__inner {
    width: 50vw;
    margin-bottom: 7vh;
    padding-right: 4vw;
  }

  .kv .btn-link {
    width: 26vw;
    padding: 1.2em 1em 1.2em 1.4em;
  }

  .kv .btn-link {
    font-size: 0.95em;
  }
}

@media screen and (min-width: 1599px) {
  .kv__txt__inner {
    width: 50vw;
    margin-bottom: 9vh;
    padding-right: 6vw;
  }

  .kv .btn-link {
    width: 27vw;
    max-width: 400px;
    font-size: 1.2em;
  }

  .kv .btn-link .btn-link__txt-s {
    font-size: 0.7em;
  }
}


/*----------------------------------------
	kv-lv2
-----------------------------------------*/

.kv-lv2 {
  position: relative;
  overflow: hidden;
}

.kv-lv2:before {
  content: '';
  width: 100%;
  height: 30%;
  position: absolute;
  top: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 100%);
  z-index: 1;
  opacity: 0;
  transition: 1s;
  transition-delay: 0.5s;
}

.kv-lv2:after {
  content: '';
  width: 100%;
  height: 30%;
  position: absolute;
  bottom: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 100%);
  z-index: 1;
  opacity: 0;
  transition: 1s;
  transition-delay: 0.5s;
}

.kv-lv2.on:before,
.kv-lv2.on:after {
  opacity: 1;
}


.kv-lv2__ttlWrapper {
  position: absolute;
  width: 100%;
  bottom: 0;
  right: 0;
  z-index: 100;
}

.kv-lv2__pic {
  aspect-ratio: 630 / 480;
}

/*kv__pic01*/
.kv-lv2__pic .kv-lv2__pic01 {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  filter: blur(10px);
  transform: scale(1.05);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, rgb(0, 0, 0) 0 20%, rgba(0, 0, 0, 0) 45%);
  mask-image: radial-gradient(circle at 100% 100%, rgb(0, 0, 0) 0 20%, rgba(0, 0, 0, 0) 45%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: 100% 100%;
  mask-position: 100% 100%;
  -webkit-mask-size: 130% 130%;
  mask-size: 130% 130%;
  opacity: 0;
  transition: mask-size 1.5s cubic-bezier(0.45, 0, 0.55, 1), transform 1s cubic-bezier(.42, 0, .58, 1), filter 1s cubic-bezier(.42, 0, .58, 1), opacity 0.5s cubic-bezier(.42, 0, .58, 1);
  ;
}

.kv-lv2.on .kv-lv2__pic .kv-lv2__pic01 {
  opacity: 1;
  filter: blur(0);
  transform: scale(1);
  -webkit-mask-size: 350% 350%;
  mask-size: 350% 350%;
}

.kv-lv2.on .kv-lv2__pic .kv-lv2__pic01 img {
  position: absolute;
  object-fit: cover;
  object-position: center bottom;
  width: 100%;
  height: 100%;
}

.kv-lv2__txt__inner {
  margin-bottom: 2vh;
}

.kv-lv2__ttl {
  color: #ffffff;
  font-size: 24px;
  line-height: 1.3;
  letter-spacing: 0.07em;
}

.kv-lv2__ttl>span {
  display: block;
  font-size: 12px;
  letter-spacing: 0.05em;
}

.kv-lv2__ttl-sub {
  font-size: 16px;
}

/*fade*/
.kv-lv2 .kv-lv2__txt_fade {
  filter: blur(5px);
  opacity: 0;
  transition: 1.2s ease 0.6s;
}

.kv-lv2.on .kv-lv2__txt_fade {
  filter: blur(0);
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .kv-lv2:before {
    height: 50%;
  }

  .kv-lv2:after {
    height: 50%;
  }


  .kv-lv2__ttl>span {
    font-size: 16px;
  }

  .kv-lv2__pic {
    aspect-ratio: 1320 / 600;
  }

  .kv-lv2__txt__inner {
    margin: 0 0 6vh 7vw;
  }

  .kv-lv2__ttl {
    font-size: 40px;
    line-height: 1.6;
  }


  .kv-lv2__ttl-sub {
    font-size: 24px;
  }

  .kv-lv2__ttlWrapper {
    position: absolute;
    width: 100%;
    bottom: 0;
    left: 0;
  }

  .kv-lv2.on .kv-lv2__pic .kv-lv2__pic01 img {
    object-position: left bottom;
  }
}

@media screen and (max-width: 768px) {

  /*kv__pic01*/
  .kv-lv2__pic .kv-lv2__slide {
    /*position: absolute;
    bottom: 0;
    left: 0;*/
    width: 100%;
    height: 100%;
    filter: blur(10px);
    -webkit-mask-image: radial-gradient(circle at 100% 100%, rgb(0, 0, 0) 0 20%, rgba(0, 0, 0, 0) 45%);
    mask-image: radial-gradient(circle at 100% 100%, rgb(0, 0, 0) 0 20%, rgba(0, 0, 0, 0) 45%);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 100% 100%;
    mask-position: 100% 100%;
    -webkit-mask-size: 130% 130%;
    mask-size: 130% 130%;
    opacity: 0;
    transition: mask-size 1.5s cubic-bezier(0.45, 0, 0.55, 1), filter 1s cubic-bezier(.42, 0, .58, 1), opacity 0.5s cubic-bezier(.42, 0, .58, 1);
    ;
  }

  .kv-lv2.on .kv-lv2__pic .kv-lv2__slide {
    opacity: 1;
    filter: blur(0);
    -webkit-mask-size: 350% 350%;
    mask-size: 350% 350%;
  }

  .kv-lv2.on .kv-lv2__pic .kv-lv2__slide img {
    position: relative;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center bottom;
  }
}


/*slick*/
.slick-img img {
  width: 100%;
}

@keyframes zoomUp {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.15);
    /* 拡大率 */
  }
}

.add-animation {
  animation: zoomUp 10s linear 0s normal both;
}


/*----------------------------------------
	top-sec-intro
-----------------------------------------*/

.top-sec-intro {
  position: relative;
  padding: 26.5% 0 20%;
}

.top-sec-intro__txtWrapper {
  font-size: 14px;
  padding: 19% 13.5% 0;
  line-height: 3.2
}

.top-sec-intro__txtWrapper p+p {
  padding-top: 3.2em;
}

.top-sec-intro__ttl-sub02 {
  margin: -7% 0 0 37%;
}

@media only screen and (min-width: 768px) {
  .top-sec-intro {
    padding: 12% 0 9%;
  }

  .top-sec-intro__inner {
    position: relative;
    display: flex;
  }

  .top-sec-intro__ttl {
    width: 50%;
  }

  .top-sec-intro__txtWrapper {
    width: 50%;
    font-size: 18px;
    padding: 0 5% 0 5%;
    line-height: 3;
    margin-top: -2em;
  }

  .top-sec-intro__ttl-sub01 {
    margin: 0 0 0 20%;
  }

  .top-sec-intro__txtWrapper p+p {
    padding-top: 2em;
  }
}

@media only screen and (min-width: 992px) {
  .top-sec-intro {
    padding: 15% 0 9%;
  }
}


/*----------------------------------------
	sec-grid
-----------------------------------------*/

/* =========================
  Grid
========================= */
.sec-top-menu__grid {
  display: grid;
  gap: 15px;
}

/* =========================
  Common
========================= */
.sec-top-menu__grid-item {
  position: relative;
  overflow: hidden;
  border-radius: 3px;
  width: 100%;
}

.sec-top-menu__grid-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  margin-top: -20px;
}

.sec-top-menu__grid-item.wide img {
  width: 100%;
  height: auto;
}

.sec-top-menu__grid-item.tall img {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 160%;
}

.sec-top-menu__ttl {
  position: absolute;
  background: rgba(78, 56, 108, 0.8);
  width: 100%;
  font-size: 13px;
  font-weight: bold;
  bottom: 0;
  left: 0;
  padding: 0.5em 1em;
  z-index: 1;
  color: #ffffff;
}

.sec-top-menu__grid-item.no-link {
  cursor: pointer;
}

.sec-top-menu__grid-item.no-link .sec-top-menu__ttl {
  background: linear-gradient(to top, rgba(75, 75, 75, 1) 0%, rgba(75, 75, 75, 0.8) 30%, rgba(75, 75, 75, 0.4) 60%, rgba(75, 75, 75, 0) 100%);
  transition: 0.3s;
  letter-spacing: -0.03em;
}

.sec-top-menu__grid-item.no-link:hover .sec-top-menu__ttl {
  opacity: 0 !important;
}

.sec-top-menu__grid-item.no-link .sec-top-menu__ttl-q {
  color: #ffffff;
  background: rgba(78, 56, 108, 0.8);
}

.sec-top-menu__grid-item.no-link .sec-top-menu__ttl-a {
  position: absolute;
  background: rgba(78, 56, 108, 0.8);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  transition: 0.4s;
  opacity: 0;
  color: #ffffff;
  font-size: 14px;
}

.sec-top-menu__grid-item.no-link:hover .sec-top-menu__ttl-a {
  opacity: 1;
}

.sec-top-menu__grid-item.no-link .sec-top-menu__ttl-a span {
  transform: translateY(-5px);
  transition: 0.5s;
  line-height: 1.6;
  display: block;
}

.sec-top-menu__grid-item.no-link:hover .sec-top-menu__ttl-a span {
  transform: translateY(0);
}

.sec-top-menu__grid-item .sec-top-menu__ttl {
  opacity: 0;
  transition: 1s;
}

.sec-top-menu__grid-item.fade_t.fade_in .sec-top-menu__ttl {
  opacity: 1;
}

/* =========================
  PC (769px+)
  ベースは「正方形マス」
  4列 × 2行 のマス構造

  マス配置：
  [ 1 ][ 2 ][ 3 ][ 3 ]
  [ 4 ][ 4 ][ 3 ][ 3 ]

  → 右(3)は 2×2マス = 必ず正方形
========================= */
@media (min-width: 769px) {
  .sec-top-menu__grid {
    gap: 10px;
  }

  .sec-top-menu__grid {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-auto-rows: 1fr;
    /* 正方形マス */
  }

  /* 左上1 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(1) {
    grid-area: 1 / 1 / 2 / 2;
  }

  /* 左上2 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(2) {
    grid-area: 1 / 2 / 2 / 3;
  }

  /* 右（2×2マス = 正方形） */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(3) {
    grid-area: 1 / 3 / 3 / 5;
  }

  /* 左下（横2マス） */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(4) {
    grid-area: 2 / 1 / 3 / 3;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(5) {
    grid-area: 3 / 1 / 3 / 3;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(6) {
    grid-area: 3 / 3 / 4 / 4;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(7) {
    grid-area: 3 / 4 / 4 / 5;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(8) {
    grid-area: 4 / 1 / 5 / 2;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(9) {
    grid-area: 4 / 2 / 5 / 3;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(10) {
    grid-area: 4 / 3 / 4 / 5;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(11) {
    grid-area: 5 / 1 / 7 / 3;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(12) {
    grid-area: 5 / 3 / 5 / 5;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(13) {
    grid-area: 6 / 3 / 7 / 4;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(14) {
    grid-area: 6 / 4 / 7 / 5;
  }

  /* 正方形マスの高さ基準を作る（高さ決定用ダミー） */
  .sec-top-menu__grid::before {
    content: "";
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    padding-top: 100%;
  }

  .sec-top-menu__grid-item.tall img {
    top: 0;
    left: 0;
    transform: none;
  }

  .sec-top-menu__grid__pic {
    transform: scale(1);
    transition: transform .3s ease;
  }

  .sec-top-menu__grid-item:hover .sec-top-menu__grid__pic {
    transform: scale(1.02);
    opacity: .85;
  }

  .sec-top-menu__ttl {
    font-size: 15px;
    padding: 0.5em 0.5em;
    line-height: 1.4;
  }

  .sec-top-menu__grid-item.no-link .sec-top-menu__ttl-a {
    font-size: 18px;
  }
}

@media (min-width: 992px) {
  .sec-top-menu__grid {
    gap: 20px;
  }

  .sec-top-menu__ttl {
    font-size: 18px;
    padding: 0.5em 1em;
    line-height: 1.6;
  }
}

/* =========================
  SP (<=768px)
  [ 1 ][ 2 ]
  [   3   ]
  [   4   ]
========================= */
@media (max-width: 768px) {
  .sec-top-menu__grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    /* ★これを追加 */
  }

  /* 上2つは正方形 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(1) {
    grid-area: 1 / 1 / 2 / 2;
    aspect-ratio: 1 / 1;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(2) {
    grid-area: 1 / 2 / 2 / 3;
    aspect-ratio: 1 / 1;
  }

  /* 横100%（正方形にしない） */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(3) {
    grid-area: 2 / 1 / 3 / 3;
    aspect-ratio: 2 / 1;
    /* ← 横長 */
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(4) {
    grid-area: 3 / 1 / 4 / 3;
    aspect-ratio: 2 / 1;
    /* ← 横長 */
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(5) {
    grid-area: 4 / 1 / 5 / 3;
    aspect-ratio: 2 / 1;
  }

  /* 6 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(6) {
    grid-area: 5 / 1 / 6 / 2;
  }

  /* 7 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(7) {
    grid-area: 5 / 2 / 6 / 3;
  }

  /* 6 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(8) {
    grid-area: 6 / 1 / 7 / 2;
  }

  /* 7 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(9) {
    grid-area: 6 / 2 / 7 / 3;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(10) {
    grid-area: 7 / 1 / 8 / 3;
    aspect-ratio: 2 / 1;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(11) {
    grid-area: 8 / 1 / 9 / 3;
    aspect-ratio: 2 / 1;
  }

  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(12) {
    grid-area: 9 / 1 / 10 / 3;
    aspect-ratio: 2 / 1;
  }

  /* 6 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(13) {
    grid-area: 10 / 1 / 11 / 2;
  }

  /* 7 */
  .sec-top-menu__grid .sec-top-menu__grid-item:nth-child(14) {
    grid-area: 10 / 2 / 11 / 3;
  }
}


/*----------------------------------------
	sec-top-step
-----------------------------------------*/

.sec-top-step {
  background: #E8EEEE;
  padding: 10% 0 12%;
}

.sec-top-step__colWrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-top: 2em;
}

.sec-top-step__col {
  position: relative;
  display: flex;
  align-items: center;
  background: #ffffff;
  min-height: 60px;
  margin-bottom: 3em;
  border-radius: 0 3px 3px 0;
}

.sec-top-step__col:last-child {
  margin-bottom: 0;
}

.sec-top-step__col::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -28px;
  width: 0;
  height: 0;
  border-left: 16px solid transparent;
  border-right: 16px solid transparent;
  border-top: 10px solid #b0bec5;
  transform: translateX(-50%);
}

.sec-top-step__col:last-child::after {
  display: none;
}

.sec-top-step__col__ttl-sub {
  position: absolute;
  left: 0;
  top: 0;
  background: #4e386c;
  color: #fff;
  font-size: 12px;
  line-height: 1.1;
  text-align: center;
  height: 60px;
  padding: 0 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 3px 0 0 3px;
}

.sec-top-step__col__ttl-sub span {
  font-size: 20px;
}

.sec-top-step__col__ttl-sub::after {
  content: "";
  position: absolute;
  top: 0;
  right: -17px;
  width: 0;
  height: 0;
  border-top: 30px solid transparent;
  border-bottom: 30px solid transparent;
  border-left: 18px solid #4e386c;
}

.sec-top-step__col__ttl {
  width: 100%;
  text-align: center;
  font-weight: bold;
  color: #4e386c;
  font-size: 16px;
}

@media screen and (min-width: 769px) {
  .sec-top-step {
    padding: 9% 0 10%;
  }

  .sec-top-step__colWrapper {
    margin-top: 5em;
  }

  .sec-top-step__col {
    min-height: 56px;
    margin-bottom: 5em;
  }

  .sec-top-step__col::after {
    bottom: -3em;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 18px solid #b0bec5;
  }

  .sec-top-step__col__ttl-sub {
    height: 56px;
    font-size: 13px;
    padding: 0 18px;
  }

  .sec-top-step__col__ttl-sub::after {
    border-top: 28px solid transparent;
    border-bottom: 28px solid transparent;
    border-left: 18px solid #4e386c;
  }

  .sec-top-step__col__ttl {
    font-size: 16px;
  }
}


/*----------------------------------------
	tbl01
-----------------------------------------*/

.tbl01 dl {
  width: 100%;
  overflow: hidden;
  border-bottom: 1px solid #C7C7C7;
}

.tbl01 dt {
  position: relative;
  font-weight: normal;
  width: 37%;
  text-align: left;
  padding: 1em 0 1em 0;
  font-size: 14px;
  line-height: 1.6;
}

.tbl01 dt:before {
  content: '';
  position: absolute;
  top: 0;
  right: -400%;
  border-top: 1px solid #C7C7C7;
  width: 500%;
  height: 1px;
}

.tbl01 dd {
  font-weight: normal;
  width: 63%;
  text-align: left;
  padding: 0 0 1em;
  font-size: 14px;
  line-height: 1.6;
}

.tbl01 dd {
  padding: 1em 0;
}

.tbl01__line {
  border-top: 1px solid #C7C7C7;
}

@media screen and (min-width: 768px) {
  .tbl01 dt {
    width: 23%;
    font-size: 16px;
    padding: 1.5em 1.5em 1em 0;
  }

  .tbl01 dd {
    width: 77%;
    font-size: 16px;
    padding: 1.5em 0 1.5em 0;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .tbl01 dt {
    width: 30%;
    font-size: 14px;
  }

  .tbl01 dd {
    width: 70%;
    font-size: 14px;
  }
}

/*----------------------------------------
	sec-top-desc
-----------------------------------------*/

.sec-top-desc {
  padding: 10% 0 0;
}

@media screen and (min-width: 769px) {
  .sec-top-desc {
    padding: 8% 0 0;
  }
}

/*----------------------------------------
	sec-other-link
-----------------------------------------*/

.sec-other-link-colWrapper {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 10px;
}

.sec-other-link-col {
  position: relative;
  overflow: hidden;
}

.sec-other-link-col a {
  display: flex;
  align-items: center;
  border: 1px solid #C7C7C7;
  border-radius: 3px;
  font-size: 14px;
}

.sec-other-link-col__pic {
  max-width: 120px;
  width: 33%;
}

.sec-other-link-col__txt {
  padding-left: 1em;
  width: 67%;
}

.sec-other-link-col .btn-link--icon {
  filter: brightness(0);
}

.sec-other-link .btn-link {
  margin: 5em 0;
  color: #ffffff;
}

@media screen and (min-width: 769px) {
  .sec-other-link .btn-link {
    min-width: inherit;
    max-width: 400px;
    margin: 6em auto;
    padding: 2em 1em;
    display: block;
  }

  .sec-other-link-colWrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .sec-other-link-col a {
    font-size: 16px;
  }

  .sec-other-link-col__pic {
    position: relative;
    max-width: 120px;
    width: 30%;
    aspect-ratio: 1/1;
    overflow: hidden;
  }

  .sec-other-link-col__pic img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
  }

  .sec-other-link-col a {
    transition: 0.3s;
  }

  .sec-other-link-col a:hover {
    opacity: 0.6;
  }

  .sec-other-link-col a img {
    transform: scale(1);
    transition: 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
  }

  .sec-other-link-col a:hover img {
    transform: scale(1.05);
  }

  .sec-other-link-col__txt {
    padding-left: 3em;
    width: 70%;
  }
}

@media screen and (min-width: 992px) {
  .sec-other-link__inner {
    display: flex;
    flex-direction: column-reverse;
    padding-top: 11em;
  }

  .sec-other-link .btn-link {
    min-width: inherit;
    max-width: 400px;
    margin: 6em auto 0;
    padding: 2em 1em;
    display: block;
  }
}

/*----------------------------------------
	sec-interview-list
-----------------------------------------*/

.sec-interview-list-colWrapper {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 10px;
  padding-top: 10%;
}

.sec-interview-list__intro {
  padding: 5em 0 0;
}

.sec-interview-list__intro .ttl-lv2 {
  letter-spacing: 0.1em;
  line-height: 2;
}

.sec-interview-list-col {
  position: relative;
  overflow: hidden;
}

.sec-interview-list-col a {
  display: flex;
  align-items: end;
  border: 1px solid #C7C7C7;
  border-radius: 3px;
}

.sec-interview-list-col__pic {
  width: 35%;
  position: relative;
  aspect-ratio: 3/5;
  overflow: hidden;
}

.sec-interview-list-col__pic img {
  position: absolute;
  inset: 0;
  width: auto;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  max-width: inherit;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.sec-interview-list-col__txtWrapper {
  padding: 1em 1em 1em 1em;
  flex: 1;
  min-width: 0;
}

.sec-interview-list-col__ttl {
  font-size: 15px;
  border-bottom: 1px solid #C7C7C7;
  padding: 0 0 0.5em;
  margin: 0 0 0.5em;
  line-height: 1.5;
}

.sec-interview-list-col__ttl span {
  display: block;
}

.sec-interview-list-col__ttl02 {
  font-size: 14px;
  line-height: 1.6;
}

.sec-interview-list-col__txt {
  font-size: 12px;
  line-height: 1.8;
}

.sec-interview-list-col__txt span {
  display: block;
}

.sec-interview-list-col .btn-link--icon-b {
  filter: brightness(0);
  top: 0;
  right: 0;
  margin: 1em 1em 0 0;
}

.sec-interview-list .btn-link {
  padding: 2em 1em;
  color: #ffffff;
}

@media screen and (min-width: 640px) {
  .sec-interview-list-colWrapper {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
  }

  .sec-interview-list-col__pic {
    max-width: 265px;
    width: 40%;
    aspect-ratio: 4 / 5;
  }

  .sec-interview-list-col__ttl {
    font-size: 18px;
  }

  .sec-interview-list-col__ttl02 {
    font-size: 16px;
  }

  .sec-interview-list-col__txt {
    font-size: 14px;
  }

  .sec-interview-list-col a {
    transition: 0.3s;
  }

  .sec-interview-list-col a:hover {
    opacity: 0.6;
  }

  .sec-interview-list-col a img {
    scale: 1;
    transition: 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
  }

  .sec-interview-list-col a:hover img {
    scale: 1.05;
  }
}

@media screen and (min-width: 992px) {
  .sec-interview-list__intro {
    padding: 5em 0 0;
  }

  .sec-interview-list-colWrapper {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .sec-interview-list-col__pic {
    aspect-ratio: 3 / 5;
  }

  .sec-interview-list-col__ttl {
    font-size: 1.6vw;
  }

  .sec-interview-list-col__ttl02 {
    font-size: 1.4vw;
  }

  .sec-interview-list-col__txt {
    font-size: 1.3vw;
  }
}

@media screen and (min-width: 1199px) {
  .sec-interview-list-col__pic {
    width: 50%;
    aspect-ratio: 265/285;
  }

  .sec-interview-list-col__pic img {
    width: 100%;
    height: auto;
  }

  .sec-interview-list-col__ttl {
    font-size: 18px;
  }

  .sec-interview-list-col__ttl02 {
    font-size: 16px;
  }

  .sec-interview-list-col__txt {
    font-size: 14px;
  }
}

/*----------------------------------------
	sec-interview-detail
-----------------------------------------*/

.sec-interview-detail {
  background: #E8EEEE;
  padding: 0 0 5em;
}

.sec-interview-detail .ttl-lv2 {
  letter-spacing: 0.01em;
  line-height: 1.8;
}

.sec-interview-detail_profile {
  background: #4E386C;
  border-radius: 3px;
  display: inline-block;
  color: #ffffff;
  padding: 1.2em 1em;
  width: 100%;
}

.sec-interview-detail__profile__ttl {
  font-size: 16px;
  line-height: 1.6;
}

.sec-interview-detail__profile__ttl span {
  display: block;
}

.sec-interview-detail__profile__txt {
  font-size: 14px;
  line-height: 1.6;
}

.sec-interview-detail__intro {
  padding: 5em 0 0;
}

.sec-interview-detail-col {
  position: relative;
}

.sec-interview-detail-col:not(:nth-of-type(1)) {
  padding-top: 12%;
}

.sec-interview-detail-col:nth-of-type(1) {
  padding-top: 10.5%;
}

.sec-interview-detail-col__inner {
  background: #ffffff;
  padding: 1.5em 1.5em 2.5em;
  border-radius: 3px;
}

.sec-interview-detail-col__q {
  color: #4E386C;
}

.sec-interview-detail-col__a {
  margin-top: 5%;
}

.sec-interview-detail-col__q-en,
.sec-interview-detail-col__a-en {
  font-size: 24px;
  font-weight: bold;
}

.sec-interview-detail-col__a-en {
  color: #4E386C;
}

.sec-interview-detail-col__q-txt {
  font-size: 18px;
  font-weight: bold;
}

.sec-interview-detail-col__a-txt {
  font-size: 15px;
}

/*画像無*/
.sec-interview-detail-col_noimage .sec-interview-detail-col__pic {
  display: none;
}

.sec-interview-detail-col_noimage+.sec-interview-detail-col_noimage {
  padding-top: 8%;
}

.sec-interview-detail-col__pic {
  position: relative;
  margin-top: 2.5em;
  aspect-ratio: 360/280;
  overflow: hidden;
}

.sec-interview-detail-col__pic img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media screen and (min-width: 769px) {
  .sec-interview-detail {
    padding: 0 0 12em;
  }

  .sec-interview-detail .ttl-lv2 {
    letter-spacing: 0.1em;
    line-height: 2;
  }

  .sec-interview-detail .kv-lv2__txt__inner {
    margin-bottom: 7.5vh;
  }

  .sec-interview-detail_profile {
    position: relative;
    margin: -5vh 0 0 7vw;
    padding: 1.3em 5.8em 1.3em 1.3em;
    width: inherit;
    max-width: 1080px;
    z-index: 1;
  }

  .sec-interview-detail__profile__ttl {
    font-size: 18px;
  }

  .sec-interview-detail__profile__txt {
    font-size: 16px;
  }

  .sec-interview-detail-col__pic {
    position: absolute;
    bottom: 0;
    width: 38%;
    margin-top: 0;
    margin-bottom: -3em;
    padding: 0;
  }

  .sec-interview-detail-col__q,
  .sec-interview-detail-col__a {
    display: flex;
  }

  .sec-interview-detail-col__a {
    margin-top: 5%;
  }

  .sec-interview-detail-col__q-en,
  .sec-interview-detail-col__a-en {
    width: 2em;
    font-size: 20px;
  }

  .sec-interview-detail-col__q-en {
    line-height: 1.6;
  }

  .sec-interview-detail-col__q-txt,
  .sec-interview-detail-col__a-txt {
    flex: 1;
  }

  .sec-interview-detail-col__q-txt {
    font-size: 20px;
    line-height: 1.6;
  }

  .sec-interview-detail-col__a-txt {
    font-size: 16px;
  }

  /*奇数*/
  .sec-interview-detail-col:nth-child(odd) {
    padding-right: 26%;
  }

  .sec-interview-detail-col:nth-child(odd) .sec-interview-detail-col__inner {
    padding: 2em 8em 2em 2em;
  }

  .sec-interview-detail-col:nth-child(odd) .sec-interview-detail-col__pic {
    right: 0;
  }

  /*偶数*/
  .sec-interview-detail-col:nth-child(even) {
    padding-left: 26%;
  }

  .sec-interview-detail-col:nth-child(even) .sec-interview-detail-col__inner {
    padding: 2em 2em 2em 8em;
  }

  .sec-interview-detail-col:nth-child(even) .sec-interview-detail-col__pic {
    left: 0;
  }

  /*画像無*/
  .sec-interview-detail-col.sec-interview-detail-col_noimage {
    padding-left: 0;
    padding-right: 0;
  }

  .sec-interview-detail-col.sec-interview-detail-col_noimage .sec-interview-detail-col__inner {
    padding: 3em 5em;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1199px) {}

@media screen and (min-width: 992px) {
  .sec-interview-detail .kv-lv2__txt__inner {
    margin-bottom: 13vh;
  }

  .sec-interview-detail_profile {
    margin: -8vh 0 0 7vw;
  }

  .sec-interview-detail-col__pic {
    width: 33.3%;
  }

  .sec-interview-detail-col__q-en,
  .sec-interview-detail-col__a-en {
    font-size: 24px;
  }

  .sec-interview-detail-col__q-txt {
    font-size: 24px;
    line-height: 1.6;
  }

  .sec-interview-detail-col__a-txt {
    font-size: 18px;
  }

  .sec-interview-detail-col:nth-child(odd) .sec-interview-detail-col__inner {
    padding: 3em 8em 3em 5em;
  }

  .sec-interview-detail-col:nth-child(even) .sec-interview-detail-col__inner {
    padding: 3em 5em 3em 8em;
  }

  .sec-interview-detail-col:nth-child(odd).sec-interview-detail-col_noimage .sec-interview-detail-col__inner {
    padding: 3em 4em 3em 4em;
  }

  .sec-interview-detail-col:nth-child(even).sec-interview-detail-col_noimage .sec-interview-detail-col__inner {
    padding: 3em 4em 3em 4em;
  }
}


/*----------------------------------------
	sec-message
-----------------------------------------*/

.sec-message-intro {
  padding: 10% 0 12%;
  overflow: hidden;
}

.sec-message-intro .ttl-lv2 {
  line-height: 1.6;
}

@media screen and (min-width: 1299px) {
  .sec-message-intro {
    padding: 10% 0 13%;
  }
}

.sec-message-philosophy {
  background: #E8EEEE;
  padding: 10% 0 12%;
}

.sec-message-philosophy__col {
  background: #ffffff;
  margin-bottom: 1em;
  border-radius: 0 3px 3px 0;
  padding: 1em;
}

.sec-message-philosophy__col:last-of-type {
  margin-bottom: 0;
}

.sec-message-philosophy__col__ttl {
  width: 100%;
  text-align: center;
  font-weight: bold;
  color: #4e386c;
  line-height: 1.8;
}

@media (min-width:769px) {
  .sec-message-philosophy {
    padding: 10% 0 12%;
  }
}

@media (min-width:1099px) {
  .sec-message-philosophy__word {
    background: #E8EEEE;
    padding: 15% 0 0;
  }

  .sec-message-philosophy__word__inner {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 25px;
  }

  .sec-message-philosophy__word__row {
    display: flex;
    align-items: stretch;
    width: 100%;
  }

  .sec-message-philosophy__word__label {
    position: relative;
    background: transparent;
    z-index: 2;
    width: 196px;
  }

  .sec-message-philosophy__word__label span {
    height: 100%;
    display: flex;
    align-items: center;
    background: #fff;
    color: #4E386C;
    font-weight: 800;
    font-size: 28px;
    padding-left: 1em;
    clip-path: polygon(20% 0%,
        58% 0%,
        95% 100%,
        20% 100%,
        0% 50%);
  }

  .sec-message-philosophy__word__body {
    flex: 1;
    position: relative;
    background: #E0E0E0;
    border-radius: 2px;
    margin-left: -8em;
    padding: 1.5em 0.5em 1.5em 9em;
  }

  .sec-message-philosophy__word__ttl {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 800;
    color: #4E386C;
    line-height: 1.35;
  }

  .sec-message-philosophy__word__txt {
    margin: 0;
    font-size: 16px;
    line-height: 1.9;
    color: #444;
    letter-spacing: .02em;
  }
}

/* =================================================
  SP ONLY（768px以下 添付デザイン）
================================================= */

@media (max-width:1099px) {
  .sec-message-philosophy__word {
    background: #E8EEEE;
    padding: 18% 0 10%;
  }

  .sec-message-philosophy__word__row:nth-of-type(n+2) {
    margin-top: 3em;
  }

  .sec-message-philosophy__word__label {
    position: relative;
    text-align: center;
    font-size: 28px;
    padding: 0.4em 0;
    font-weight: 800;
    color: #4E386C;
    overflow: hidden;
  }

  /* グレー帯（labelの後ろに作る） */
  .sec-message-philosophy__word__label::before {
    content: "";
    position: absolute;
    left: 5em;
    top: 0;
    width: 100%;
    height: 100%;
    background: #E0E0E0;
    z-index: 1;
    margin-left: -3em;
  }

  .sec-message-philosophy__word__label::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4em;
    height: 100%;
    background: #fff;
    clip-path: polygon(25% 0%, 58% 0%, 95% 100%, 20% 100%, 0% 50%);
    z-index: 2;
  }

  .sec-message-philosophy__word__label span {
    position: relative;
    z-index: 1;
  }

  .sec-message-philosophy__word__body {
    text-align: center;
    padding-top: 1.8em;
  }

  /* タイトル */
  .sec-message-philosophy__word__ttl {
    font-size: 22px;
    font-weight: 800;
    color: #4E386C;
    line-height: 1.35;
  }

  /* 本文 */
  .sec-message-philosophy__word__txt {
    margin: 0;
    text-align: left;
    padding: 1em 1em 0;
  }
}



/*----------------------------------------
	sec-work
-----------------------------------------*/

.sec-work {
  padding: 10% 0 12%;
}

.sec-work-info {
  padding: 10% 0 0;
}

.sec-work-info__pic {
  position: relative;
  border-radius: 3px;
  margin: 0.5% 0 10%;
  aspect-ratio: 1200/520;
  overflow: hidden;
}

.sec-work-info__pic img {
  position: absolute;
  top: 0;
  width: auto;
  height: auto;
  object-fit: cover;
  object-position: top center;
}

.sec-work-info__colWrapper {
  padding-top: 8%;
}

.sec-work-info__col+.sec-work-info__col {
  margin-top: 15%;
}

.sec-work-info__col__ttl {
  background: #E8EEEE;
  border-radius: 3px;
  font-size: 16px;
  color: #4E386C;
  padding: 1.2em 1em;
  display: flex;
  align-items: center;
  line-height: 1.4;
}

.sec-work-info__col__ttl>span:nth-of-type(1) {
  font-size: 28px;
  line-height: 1;
}

.sec-work-info__col__ex {
  display: flex;
  align-items: center;
}

.sec-work-info__col__ex__pic {
  width: 20%;
  max-width: 160px;
}

.sec-work-info__col__ex__txt {
  flex: 1;
  position: relative;
  background: #E5E2EA;
  border-radius: 3px;
  font-size: 14px;
  padding: 1.2em 1em;
  margin: 0 0 0 5%;
}

.sec-work-info__col__ex__txt:after {
  content: "";
  position: absolute;
  top: 50%;
  left: -12px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-right: 12px solid #E5E2EA;
}

@media (min-width: 769px) {
  .sec-work-info__colWrapper {
    padding-top: 10%;
  }

  .sec-work-info__col+.sec-work-info__col {
    margin-top: 8%;
  }

  .sec-work-info__pic {
    aspect-ratio: 1200/400;
  }

  .sec-work-info__col__ttl {
    font-size: 24px;
    padding: 2.5em 2em;
    max-width: 900px;
  }

  .sec-work-info__col__ttl>span:nth-of-type(1) {
    font-size: 40px;
  }

  .sec-work-info__col__ex {
    max-width: 900px;
  }

  .sec-work-info__col__ex__pic {
    width: 30%;
  }

  .sec-work-info__col__ex__txt {
    font-size: 16px;
    padding: 2.5em 2em;
    margin: 0 0 0 5%;
  }

  .sec-work-info__col__ex__txt:after {
    left: -14px;
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
    border-right: 15px solid #E5E2EA;
  }
}

/*sec-work02*/
.sec-work02__ttlWrapper {
  position: relative;
}

.sec-work02__ttlWrapper:before {
  content: '';
  position: absolute;
  background: #E8EEEE;
  bottom: 0;
  width: 100%;
  height: 40%;
  z-index: -1;
}

.sec-work02__inner {
  background: #E8EEEE;
  padding: 3em 0 4em;
}

.sec-work02__ttl {
  font-size: 40px;
  overflow: hidden;
}

.sec-work02__ttl>span:nth-of-type(1) {
  font-size: 14px;
  display: block;
}

.sec-work02__exCol:nth-of-type(n+2) {
  margin-top: 10%;
}

.sec-work02__exColWrapper {
  padding-top: 10%;
}

.sec-work02__exCol__num {
  font-size: 24px;
}

.sec-work02__exCol__ttl {
  font-size: 24px;
  line-height: 1.5;
}

.sec-work02__exCol__ttl span {
  font-size: 16px;
  display: block;
}

.sec-work02__exCol__pic img {
  border-radius: 3px;
}

@media (min-width: 769px) {
  .sec-work02__inner {
    padding: 4.5em 0 5em;
  }

  .sec-work02__ttl {
    font-size: 64px;
  }

  .sec-work02__ttl>span:nth-of-type(1) {
    font-size: 16px;
  }

  .sec-work02__exColWrapper {
    padding-top: 10%;
  }

  .sec-work02__exCol {
    display: block;
  }

  .sec-work02__exCol__pic {
    width: 55%;
    padding-left: 5%;
    float: right;
  }

  .sec-work02__exCol__txtWrapper {
    flex: 1;
  }

  .sec-work02__exCol__num {
    font-size: 40px;
  }

  .sec-work02__exCol__ttl {
    font-size: 32px;
  }

  .sec-work02__exCol__ttl span {
    font-size: 18px;
  }

  /*sec-work02__exCol_rev*/
  .sec-work02__exCol_rev .sec-work02__exCol__pic {
    padding-left: 0;
    padding-right: 5%;
    float: left;
  }
}

@media (min-width: 992px) {
  .sec-work02__exCol {
    display: flex;
    flex-direction: row-reverse;
  }

  .sec-work02__exCol.sec-work02__exCol_rev {
    flex-direction: row;
  }
}

/*sec-work03*/
.sec-work03 {
  padding: 10% 0 0;
}


/*----------------------------------------
	sec-personality
-----------------------------------------*/

.sec-personality-intro {
  padding: 12% 0 0;
}

.sec-personality-intro__member-colWrapper {
  width: 100%;
  display: flex;
  gap: 20px;
  justify-content: center;
}

.sec-personality-intro__member__txt {
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}

.sec-personality-intro__word {
  background: #4E386C;
  border-radius: 3px;
  display: block;
  color: #ffffff;
  padding: 1.2em 1.2em 1.5em;
}

.sec-personality-intro__word__ttl {
  font-size: 20px;
}

.sec-personality-intro__word__txt {
  font-size: 15px;
}

.sec-personality-faq {
  padding-top: 5em;
}

.sec-personality-faq__q-en {
  font-size: 24px;
  font-weight: bold;
}

.sec-personality-faq__q-txt {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.8;
}


.sec-personality-faq-col {
  margin-top: 2em;
}

.sec-personality-faq-col__inner {
  display: flex;
}

.sec-personality-faq-col__pic {
  width: 18%;
  margin-right: 5%;
}

.sec-personality-faq-col__txt {
  font-size: 14px;
  flex: 1;
}

.sec-personality-faq-col__inner:nth-of-type(n+2) {
  margin-top: 2em;
}

@media (min-width: 992px) {
  .sec-personality-intro {
    padding: 5% 0 0;
  }

  .sec-personality-intro__inner {
    display: flex;
  }

  .sec-personality-intro__member-colWrapper {
    justify-content: flex-start;
    width: auto;
  }

  .sec-personality-intro__member__txt {
    font-size: 14px;
    text-align: left;
  }

  .sec-personality-intro__word {
    display: inline-block;
    margin-left: 20px;
    padding: 2em 3em;
  }

  .sec-personality-intro__word__ttl {
    font-size: 23px;
  }

  .sec-personality-intro__word__txt {
    font-size: 16px;
  }

  .sec-personality-faq {
    padding-top: 6.5em;
  }

  .sec-personality-faq__q {
    display: flex;
  }

  .sec-personality-faq__q-en {
    width: 2em;
    font-size: 20px;
    line-height: 1.6;
  }

  .sec-personality-faq__q-txt {
    flex: 1;
    font-size: 24px;
    line-height: 1.7;
  }

  .sec-personality-faq__pic {
    width: 44.4%;
    margin-right: 5.5%;
  }

  .sec-personality-faq-col {
    display: flex;
    margin-top: 3em;
  }

  .sec-personality-faq-colWrapper {
    flex: 1;
  }

  .sec-personality-faq-col__pic {
    width: 15%;
    margin-right: 3.5%;
  }

  /*sec-personality-faq_rev*/
  .sec-personality-faq_rev .sec-personality-faq-col {
    flex-direction: row-reverse;
  }

  .sec-personality-faq_rev .sec-personality-faq__pic {
    margin-right: 0;
    margin-left: 5.5%;
  }
}

@media (min-width: 1199px) {
  .sec-personality-faq-col__pic {
    width: 90px;
  }
}


/*----------------------------------------
	sec-welfare
-----------------------------------------*/

.sec-welfare-intro {
  padding: 10% 0 0;
}

.sec-welfare .ttl-lv2 {
  letter-spacing: 0.01em;
  line-height: 1.6;
}

.sec-welfare-intro__txtWrapper {
  line-height: 2.6;
  font-size: 14px;
}

/*sec-lnav*/
.sec-lnav {
  padding: 5em 0 0;
  width: 100%;
}

.sec-lnav2 {
  padding: 0;
  width: 100%;
}

.sec-lnav ul,
.sec-lnav2 ul {
  position: relative;
  display: flex;
  justify-content: center;
  text-align: center;
}

.sec-lnav ul>li,
.sec-lnav2 ul>li {
  position: relative;
  width: 25%;
  font-weight: 500;
  line-height: 1.3;
}

.sec-lnav2 ul>li:not(:nth-of-type(1)) {
  border-left: 1px dotted #cccccc;
}

.sec-lnav ul>li span,
.sec-lnav2 ul>li span {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.sec-lnav ul>li a {
  display: block;
  padding: 1em 0 2.8em;
  font-size: 12px;
}

.sec-lnav2 ul>li a {
  display: block;
  font-size: 11px;
  line-height: 1.2;
  padding: 0.5em 0 3em;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.sec-lnav ul>li:before,
.sec-lnav2 ul>li:before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: #E8EEEE;
}

.sec-lnav ul>li.active:after,
.sec-lnav2 ul>li.active:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: #4E386C;
}

.sec-lnav ul>li a span:before,
.sec-lnav2 ul>li a span:before {
  content: '';
  width: 10px;
  height: 10px;
  border: 0;
  border-bottom: solid 2px #818181;
  border-right: solid 2px #818181;
  position: absolute;
  bottom: 1.5em;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

/*fixed*/
.sec-lnav2 {
  display: block;
  position: fixed;
  bottom: 0;
  left: 50%;
  max-width: inherit;
  z-index: -9999;
  opacity: 0;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.9);
  width: 100%;
}

.sec-lnav2 nav {
  max-width: 1080px;
  margin: 0 auto;
}

.sec-lnav2.fixed {
  z-index: 100;
  opacity: 1;
}

.sec-welfare .sec-work02 {
  padding-top: 5.5em;
}

.sec-work02__col4Wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.sec-work02__col4 {
  background: #ffffff;
  padding: 1em;
}

.sec-work02__col4_s {
  padding: 1em 0.4em;
}

.sec-work02__col4__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.sec-work02__col4__pic {
  width: 10vw;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  line-height: 1;
}

.sec-work02__col4_s .sec-work02__col4__pic {
  width: 8vw;
}

.sec-work02__col4__ttl {
  font-size: 14px;
  text-align: center;
  color: #4E386C;
  font-weight: bold;
  padding-top: 0.5em;
  line-height: 1.6;
}

.sec-work02__col4__txt {
  font-size: 14px;
  line-height: 1.6;
}

.sec-work02__col4__annotation {
  position: absolute;
  bottom: 0;
  right: 0;
  font-size: clamp(11px, 2vw, 16px);
}

.sec-work02__ttl02 {
  font-size: 17px;
  font-weight: bold;
  background: #4E386C;
  color: #ffffff;
  display: inline-block;
  clip-path: polygon(0 0, 100% 0%, 95% 100%, 0% 100%);
  padding: 0.5em 1.5em 0.5em 0.8em;
  margin-top: 4em;
}

.sec-work02__col4-data {
  background: #ffffff;
  padding: 1em;
  height: clamp(180px, 38vw, 305px);
}

.sec-work02__col4-data__ttl {
  position: absolute;
  top: 0;
  left: 0;
  color: #4E386C;
  font-weight: bold;
  font-size: 16px;
  line-height: 1.5;
}

.sec-work02__col4-data__pic {
  position: absolute;
  top: 0;
  right: 0;
  width: 10vw;
}

.sec-work02__col4-data__number,
.sec-work02__col4-data__number02 {
  font-weight: bold;
  color: #4E386C;
  text-align: center;
  line-height: 1;
  margin-top: 1em;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin-top: auto;
  margin-bottom: auto;
}

.sec-work02__col4-data__number>span,
.sec-work02__col4-data__number02>span {
  letter-spacing: -0.01em;
}

.sec-work02__col4-data__number>span:nth-of-type(1),
.sec-work02__col4-data__number02>span:nth-of-type(1) {
  font-size: clamp(20px, 15vw, 56px);
  line-height: 1;
}

.sec-work02__col4-data__number>span:nth-of-type(2) {
  font-size: clamp(16px, 5vw, 32px);
  line-height: 1;
}

.sec-work02__col4-data__number02>span:nth-of-type(2) {
  font-size: clamp(16px, 4vw, 24px);
  line-height: 1;
}

.sec-work02__col4-data__rate {
  position: relative;
  padding: 1em 1em 0;
  aspect-ratio: 6/5;
  width: 100%;
  margin: 0 auto;
}

.sec-work02__col4-data__rate__ex01,
.sec-work02__col4-data__rate__ex02 {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

.sec-work02__col4-data__rate__ex01>span,
.sec-work02__col4-data__rate__ex02>span {
  letter-spacing: -0.01em;
}

.sec-work02__col4-data__rate__ex01>span:nth-of-type(1),
.sec-work02__col4-data__rate__ex02>span:nth-of-type(1) {
  font-size: clamp(20px, 8vw, 40px);
}

.sec-work02__col4-data__rate__ex01>span:nth-of-type(2),
.sec-work02__col4-data__rate__ex02>span:nth-of-type(2) {
  font-size: clamp(12px, 3.2vw, 20px);
}

.sec-work02__col4-data__rate__ex01 {
  position: absolute;
  top: 0;
  left: 0;
  font-weight: bold;
  color: #4E386C;
  line-height: 1;
  margin: 2em 0 0 1em;
}

.sec-work02__col4-data__rate__ex02 {
  position: absolute;
  right: 0;
  top: 0;
  font-weight: bold;
  color: #4E386C;
  margin: 4.5em 1em 0 0;
  line-height: 1;
}

.sec-work02__col4-data__rate__pic01 span,
.sec-work02__col4-data__rate__pic02 span {
  display: block;
  line-height: 1.6;
  font-size: clamp(12px, 2vw, 14px);
}

.sec-work02__col4-data__rate__pic01 {
  position: absolute;
  top: 0;
  right: 0;
  margin: 0 1em 0 0;
  font-size: 3vw;
}

.sec-work02__col4-data__rate__pic01 img {
  width: 7vw;
}

.sec-work02__col4-data__rate__pic02 {
  position: absolute;
  top: 0;
  left: 0;
  margin: 12vh 0 0 3vw;
  font-size: 3vw;
}

.sec-work02__col4-data__rate__pic02 img {
  width: 7vw;
}

.sec-work02__col3 {
  background: #ffffff;
}

.sec-work02__col3:not(:nth-of-type(1)) {
  margin-top: 2em;
}

.sec-work02__col3__txt {
  padding: 1.5em 2em;
}

.sec-work02+.sec-work02 {
  padding-top: 7em;
}

@media screen and (min-width: 390px) {
  .sec-work02__col4-data {
    height: clamp(210px, 30vw, 305px);
  }
}

@media screen and (min-width: 450px) {
  .sec-work02__col4-data {
    height: clamp(250px, 36vw, 355px);
  }

  .sec-work02__col4-data__rate {
    width: clamp(200px, 32vw, 200px);
  }
}

@media screen and (min-width: 768px) {
  .sec-welfare .ttl-lv2 {
    letter-spacing: 0.1em;
  }

  .sec-welfare-intro__inner {
    display: flex;
    justify-content: space-between;
    padding-top: 5em;
    flex-direction: row-reverse;
  }

  .sec-welfare-intro__txtWrapper {
    width: 55.6%;
    padding-right: 5%;
    line-height: 2.6;
    font-size: 16px;
  }

  .sec-welfare-intro__pic:nth-of-type(1) {
    padding-right: 3em;
  }

  .sec-welfare-intro__pic:nth-of-type(2) {
    padding-left: 7em;
    margin-top: -2em;
  }

  .sec-work02__ttl02 {
    font-size: 24px;
    padding: 0.5em 2em 0.5em 2em;
    margin-top: 4em;
    letter-spacing: 0.1em;
  }

  .sec-work02__col4-data__number>span:nth-of-type(1),
  .sec-work02__col4-data__number02>span:nth-of-type(1) {
    font-size: clamp(40px, 20vw, 70px);
  }

  .sec-work02__col4-data__number>span:nth-of-type(2) {
    font-size: clamp(24px, 5vw, 32px);
  }

  .sec-work02__col4-data__number02>span:nth-of-type(2) {
    font-size: clamp(24px, 4vw, 32px);
  }

  .sec-work02__col4-data__rate {
    padding: 2em 1.5em 0;
    width: 30vw;
  }

  .sec-work02__col4-data__rate__ex01 {
    margin: 3em 0 0 2em;
  }

  .sec-work02__col4-data__rate__ex02 {
    margin: 7em 1em 0 0;
  }

  .sec-work02__col4-data__rate__ex01>span:nth-of-type(1),
  .sec-work02__col4-data__rate__ex02>span:nth-of-type(1) {
    font-size: 8vw;
    font-size: clamp(36px, 8vw, 48px);
  }

  .sec-work02__col4-data__rate__ex01>span:nth-of-type(2),
  .sec-work02__col4-data__rate__ex02>span:nth-of-type(2) {
    font-size: 3.2vw;
    font-size: clamp(14px, 3.2vw, 18px);
  }

  .sec-work02__col4-data__rate__pic02 {
    margin: 16vh 0 0 3vw;
  }

  .sec-lnav {
    padding: 10em 0 0;
  }
}

@media screen and (min-width: 992px) {
  .sec-work02__col4Wrapper {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }

  .sec-work02__col4 {
    padding: 2em 1em;
  }

  .sec-work02__col4_s {
    padding: 2em 0.5em;
  }

  .sec-work02__col4__ttl {
    font-size: 18px;
    padding-top: 1em;
  }

  .sec-work02__col4__txt {
    font-size: 16px;
    line-height: 1.8;
  }

  .sec-work02__col4__pic {
    width: 64px;
  }

  .sec-work02__col4_s .sec-work02__col4__pic {
    width: 40px;
  }

  .sec-work02__col4-data__ttl {
    font-size: 16px;
  }

  .sec-work02__col4-data__pic {
    width: 64px;
  }

  .sec-work02__col4-data {
    height: clamp(200px, 33vw, 285px);
  }

  .sec-work02__col4-data__number>span:nth-of-type(1),
  .sec-work02__col4-data__number02>span:nth-of-type(1) {
    font-size: 6.5vw;
  }

  .sec-work02__col4-data__number>span:nth-of-type(2),
  .sec-work02__col4-data__number02>span:nth-of-type(2) {
    font-size: 2.6vw;
  }

  .sec-work02__col4-data__rate__pic01,
  .sec-work02__col4-data__rate__pic02 {
    font-size: 14px;
  }

  .sec-work02__col4-data__rate__pic02 {
    margin: 10em 0 0 1em;
  }

  .sec-work02__col4-data__rate__pic01 img {
    width: 40px;
  }

  .sec-work02__col4-data__rate__pic02 img {
    width: 40px;
  }

  .sec-work02__col4-data__rate__ex01>span:nth-of-type(1),
  .sec-work02__col4-data__rate__ex02>span:nth-of-type(1) {
    font-size: 3.7vw;
  }

  .sec-work02__col4-data__rate__ex01>span:nth-of-type(2),
  .sec-work02__col4-data__rate__ex02>span:nth-of-type(2) {
    font-size: 1.5vw;
  }

  .sec-work02__col4-data__rate__ex01 {
    margin: 3em 0 0 1.5em;
  }

  .sec-work02__col4-data__rate__ex02 {
    margin: 6em 1em 0 0;
  }

  .sec-work02__col4-data__rate {
    padding: 2em 13.5% 0;
    width: 100%;
  }

  .sec-work02+.sec-work02 {
    padding-top: 5.5em;
    margin-top: 3.5em;
  }

  .sec-lnav ul>li a {
    display: block;
    padding: 1em 0 2.8em;
    font-size: 16px;
  }

  .sec-lnav2 ul>li a {
    font-size: 14px;
  }

  .sec-lnav ul>li:before,
  .sec-lnav2 ul>li:before {
    height: 8px;
  }

  .sec-lnav ul>li.active:after,
  .sec-lnav2 ul>li.active:after {
    height: 8px;
  }

  .sec-work02__col3Wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .sec-work02__col3:not(:nth-of-type(1)) {
    margin-top: 0;
  }
}

@media screen and (min-width: 1399px) {

  .sec-work02__col4-data__number>span:nth-of-type(1),
  .sec-work02__col4-data__number02>span:nth-of-type(1) {
    font-size: 90px;
  }

  .sec-work02__col4-data__number>span:nth-of-type(2) {
    font-size: 32px;
  }

  .sec-work02__col4-data__number02>span:nth-of-type(2) {
    font-size: 24px;
  }

  .sec-work02__col4-data__rate__ex01>span:nth-of-type(1),
  .sec-work02__col4-data__rate__ex02>span:nth-of-type(1) {
    font-size: 52px;
  }

  .sec-work02__col4-data__rate__ex01>span:nth-of-type(2),
  .sec-work02__col4-data__rate__ex02>span:nth-of-type(2) {
    font-size: 20px;
  }

  .sec-work02__col4-data__rate__ex01 {
    margin: 2.5em 0 0 1.5em;
  }

  .sec-work02__col4-data__rate__ex02 {
    margin: 6em 0 0 0;
  }

  .sec-work02__col4-data__rate__pic02 {
    margin: 10em 0 0 1em;
  }
}


@media screen and (min-width: 1499px) {

  /*fixed*/
  .sec-lnav2 {
    bottom: inherit;
    top: 5em;
    right: 0;
    left: inherit;
    max-width: inherit;
    transform: none;
    background: none;
    width: auto;
  }

  .sec-lnav2 ul {
    display: block;
  }

  .sec-lnav2 nav {
    max-width: inherit;
    margin: 0 auto;
  }

  .sec-lnav2 ul>li {
    width: auto;
  }

  .sec-lnav2 ul>li:not(:nth-of-type(1)) {
    border-left: none;
  }

  .sec-lnav2 ul>li a span:before {
    left: inherit;
    bottom: inherit;
    right: 1em;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
  }

  .sec-lnav2 ul>li a {
    padding: 3em 2.5em 2.2em 1em;
    background: #ffffff;
  }

  .sec-lnav2 ul>li.active a {
    background: #4E386C;
    color: #ffffff;
  }

  .sec-lnav2 ul>li.active span:before {
    border-color: #ffffff;
  }

  .sec-lnav2 ul>li:before,
  .sec-lnav2 ul>li:after,
  .sec-lnav2 ul>li.active:after {
    content: none;
  }
}

@media screen and (min-width: 1599px) {}

@media screen and (max-width: 767px) {
  .sec-welfare-intro__pic:nth-of-type(1) {
    position: relative;
    aspect-ratio: 320 / 240;
  }

  .sec-welfare-intro__pic:nth-of-type(1) img {
    position: absolute;
    object-fit: cover;
    object-position: center;
    width: 100%;
    height: 100%;
    padding-right: 4em;
    padding-bottom: 4em;
  }

  .sec-welfare-intro__pic:nth-of-type(2) img {
    position: relative;
    padding-left: 10em;
    margin-top: -6em;
    z-index: 1;
  }
}


/*----------------------------------------
	breadcrumb
-----------------------------------------*/

/*breadcrumb*/
.breadcrumb {
  font-size: 12px;
  line-height: 1.2;
  padding-top: 0.5%;
}

.breadcrumb li:not(.home) {
  padding-left: 0.3em;
}

.breadcrumb li a {
  color: #4E386C;
  position: relative;
  padding-right: 1.2em;
}

.breadcrumb li a:before {
  content: ">";
  position: absolute;
  right: 0;
  top: 0.3em;
  font-size: 10px;
  margin: 0 0.25em;
}

@media screen and (min-width: 768px) {
  .breadcrumb {
    font-size: 14px;
  }

  .breadcrumb a {
    transition: 0.3s;
  }

  .breadcrumb a:hover {
    opacity: 0.6;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .breadcrumb {
    padding: 0.5% 0;
    font-size: 11px;
  }
}

/*----------------------------------------
	page nation
-----------------------------------------*/

.pnavi {
  padding: 8% 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pnavi .page-numbers {
  font-size: 12px;
  color: #1e1e1e;
  padding: 0.5em 1.1em;
  margin: 0 7px;
  background: #eeefec;
  transition: all 0.3s cubic-bezier(0.37, 0, 0.63, 1);
  /*easeInOutSine*/
}

.pnavi .page-numbers:hover {
  opacity: 0.6;
}

.pnavi .page-numbers.current:hover {
  opacity: 1;
}

.pnavi .page-numbers.current {
  background: #2a3d65;
  color: #ffffff;
}

.pnavi .page-numbers.dots,
.pnavi .page-numbers.next,
.pnavi .page-numbers.prev {
  background: #ffffff;
}

.pnavi .page-numbers.next span,
.pnavi .page-numbers.prev span {
  position: relative;
}

.pnavi .page-numbers.next span:before {
  content: "";
  position: absolute;
  top: -1px;
  bottom: 0;
  margin: auto;
  left: -6px;
  width: 8px;
  height: 8px;
  border-top: 1px solid #1e1e1e;
  border-right: 1px solid #1e1e1e;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.pnavi .page-numbers.prev span:before {
  content: "";
  position: absolute;
  top: -1px;
  bottom: 0;
  margin: auto;
  right: -6px;
  width: 8px;
  height: 8px;
  border-top: 1px solid #1e1e1e;
  border-right: 1px solid #1e1e1e;
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}


.pnavi span {
  position: relative;
}

.pnavi span a {
  position: relative;
  padding: 1em 0;
  transition: all 0.3s cubic-bezier(0.37, 0, 0.63, 1);
  /*easeInOutSine*/
  font-size: 14px;
}

/*前へ*/
.pnavi-previous a {
  margin: 0 10px 0 0;
}

.pnavi-previous:before {
  content: "";
  position: absolute;
  right: 0.5em;
  bottom: 0;
  margin: 0;
  width: 80px;
  height: 6px;
  color: #333333;
  border-left: 1px solid;
  border-bottom: 1px solid;
  -webkit-transform: translateY(-50%) skewX(-45deg);
  -ms-transform: translateY(-50%) skewX(-45deg);
  transform: translateY(-50%) skewX(-45deg);
  -webkit-transition: all 0.3s cubic-bezier(0.155, 0.91, 0.695, 0.95);
  -o-transition: all 0.3s cubic-bezier(0.155, 0.91, 0.695, 0.95);
  transition: all 0.3s cubic-bezier(0.155, 0.91, 0.695, 0.95);
}

/*次へ*/
.pnavi-next a {
  margin: 0 0 0 10px;
}

.pnavi-next:before {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 0;
  width: 80px;
  height: 6px;
  color: #2a3d65;
  border-right: 1px solid;
  border-bottom: 1px solid;
  -webkit-transform: translateY(-50%) skewX(45deg);
  -ms-transform: translateY(-50%) skewX(45deg);
  transform: translateY(-50%) skewX(45deg);
  -webkit-transition: all 0.3s cubic-bezier(0.155, 0.91, 0.695, 0.95);
  -o-transition: all 0.3s cubic-bezier(0.155, 0.91, 0.695, 0.95);
  transition: all 0.3s cubic-bezier(0.155, 0.91, 0.695, 0.95);
}

@media only screen and (min-width: 768px) {
  .pnavi {
    padding: 10% 0 0;
  }

  .pnavi .page-numbers {
    font-size: 16px;
  }

  .pnavi .page-numbers.next {
    margin-left: 8%;
  }

  .pnavi .page-numbers.prev {
    margin-right: 8%;
  }

  .pnavi span {
    display: inline-block;
    width: inherit;
  }

  .pnavi span a {
    min-width: 118px;
    font-size: 18px;
  }

  /*前へ*/
  .pnavi-previous {
    margin-right: 20px;
  }

  .pnavi-previous a {
    margin: 0;
  }

  .pnavi-previous:before {
    right: 0;
    width: 118px;
  }

  .pnavi-previous:hover:before {
    width: 128px;
  }

  /*次へ*/
  .pnavi-next {
    margin-left: 20px;
  }

  .pnavi-next a {
    margin: 0;
  }

  .pnavi-next:before {
    left: 0;
    width: 118px;
  }

  .pnavi-next:hover:before {
    width: 128px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .pnavi span a {
    font-size: 14px;
  }
}

@media only screen and (max-width: 320px) {
  .pnavi span a {
    font-size: 12px;
  }
}


/*----------------------------------------
	animation
-----------------------------------------*/

/* .animated-text*/
.animated-text .en {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.6s ease;
  transition-delay: 1s;
  display: inline-block;
}

.animated-text.is-animated .en {
  clip-path: inset(0 0 0 0);
}


/* .typewriter */
.typewriter .en span {
  display: inline-block;
  transition: .8s;
  transform: translateX(1em);
  opacity: 0;
}

.fade_t.fade_in .typewriter .en span {
  transform: translateX(0);
  opacity: 1;
}

.typewriter .en span:nth-child(2) {
  transition-delay: .05s;
}

.typewriter .en span:nth-child(3) {
  transition-delay: .1s;
}

.typewriter .en span:nth-child(4) {
  transition-delay: .15s;
}

.typewriter .en span:nth-child(5) {
  transition-delay: .2s;
}

.typewriter .en span:nth-child(6) {
  transition-delay: .25s;
}

.typewriter .en span:nth-child(7) {
  transition-delay: .3s;
}

.typewriter .en span:nth-child(8) {
  transition-delay: .35s;
}

.typewriter .en span:nth-child(9) {
  transition-delay: .4s;
}

.typewriter .en span:nth-child(10) {
  transition-delay: .45s;
}

.typewriter .en span:nth-child(11) {
  transition-delay: .5s;
}

.typewriter .en span:nth-child(12) {
  transition-delay: .55s;
}

.typewriter .en span:nth-child(13) {
  transition-delay: .6s;
}

.typewriter .en span:nth-child(14) {
  transition-delay: .65s;
}

.typewriter .en span:nth-child(15) {
  transition-delay: .7s;
}

.typewriter .en span:nth-child(16) {
  transition-delay: .75s;
}

.typewriter .en span:nth-child(17) {
  transition-delay: .8s;
}

.typewriter .en span:nth-child(18) {
  transition-delay: .85s;
}

.typewriter .en span:nth-child(19) {
  transition-delay: .9s;
}

.typewriter .en span:nth-child(20) {
  transition-delay: .95s;
}


.animated-text2 {
  overflow: hidden;
  display: flex;
  align-items: baseline;
}

.animated-text2 span {
  translate: 0 110%;
  display: inline-block;
  vertical-align: text-bottom;
  line-height: 1;
}

.fade_t.fade_in .animated-text2 span:nth-of-type(1) {
  animation: animated-text2 .4s ease-out forwards;
}

.fade_t.fade_in .animated-text2 span:nth-of-type(2) {
  animation: animated-text2 .4s ease-out 0.1s forwards;
}

.fade_t.fade_in .animated-text2 span:nth-of-type(3) {
  animation: animated-text2 .4s ease-out 0.2s forwards;
}

@keyframes animated-text2 {
  0% {
    translate: 0 110%;
    opacity: 0
  }

  to {
    translate: 0 0;
    opacity: 1
  }
}


@keyframes slideAnime1 {
  0% {
    -webkit-transform: scale(1.08);
    transform: scale(1.08);
    -webkit-transform-origin: 100% 50%;
    transform-origin: 100% 50%;
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
  }
}

@keyframes slideAnime2 {
  0% {
    -webkit-transform: scale(1.12);
    transform: scale(1.12);
    -webkit-transform-origin: 100% 50%;
    transform-origin: 100% 50%;
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
  }
}

@keyframes menuBar {
  0% {
    width: 24px;
    left: 0;
    transform: translateY(-6px);
  }

  60% {
    width: 24px;
    left: 0;
    transform: translateY(0);
  }

  79% {
    width: 0;
    left: 12px;
    transform: translateY(0);
  }

  80% {
    width: 0;
    left: 12px;
    transform: rotate(45deg);
  }

  to {
    width: 24px;
    left: 0;
    transform: rotate(45deg);
  }
}

@keyframes menuBarOut {
  0% {
    transform: rotate(45deg);
  }

  50% {
    transform: translateY(0);
  }

  to {
    transform: translateY(-6px);
  }
}

@keyframes menuBar2 {
  0% {
    left: 0;
    width: 24px;
  }

  60% {
    left: 0;
    width: 24px;
  }

  79% {
    left: 12px;
    width: 0;
  }

  80% {
    left: 12px;
    width: 0;
  }

  to {
    left: 12px;
    width: 0;
  }
}

@keyframes menuBar2Out {
  0% {
    width: 0;
  }

  49% {
    width: 24px;
  }

  50% {
    width: 24px;
  }

  to {
    width: 24px;
  }
}

@keyframes menuBar3 {
  0% {
    left: 0;
    width: 24px;
    transform: translateY(6px);
  }

  60% {
    left: 0;
    width: 24px;
    transform: translateY(0);
  }

  79% {
    left: 12px;
    width: 0;
    transform: translateY(0);
  }

  80% {
    left: 12px;
    width: 0;
    transform: rotate(-45deg);
  }

  to {
    left: 0;
    width: 18px;
    transform: rotate(-45deg);
  }
}

@keyframes menuBar3Out {
  0% {
    transform: rotate(-45deg);
  }

  50% {
    transform: translateY(0);
  }

  to {
    transform: translateY(6px) rotate(0);
  }
}

@keyframes rotation1 {
  0% {
    transform: translateX(-50%) rotate(0);
  }

  100% {
    transform: translateX(-50%) rotate(360deg);
  }
}

@keyframes slide-up01 {
  0% {
    transform: translate(0, 70%);
  }

  100% {
    transform: translate(0, 0);
  }
}

@keyframes slide-up01_s {
  0% {
    transform: translate(0, 200%);
  }

  100% {
    transform: translate(0, 0);
  }
}

@keyframes rotate-shape {
  from {
    transform: rotate(90deg);
    opacity: 0;
  }

  to {
    transform: rotate(0deg);
    opacity: 1;
  }
}


/*ttl_fade*/
.fade_t .fade_rotate {
  transition: 1.6s;
  scale: 0.97;
}

.fade_t.fade_in .fade_rotate {
  scale: 1;
}

/*fade*/
.fade_t .fade_opacity {
  filter: blur(5px);
  opacity: 0;
  transition: 1.2s ease;

}

.fade_t.fade_in .fade_opacity {
  filter: blur(0);
  opacity: 1;
}

.fade_t .fade_opacity02 {
  opacity: 0;
  transition: 1.2s ease;

}

.fade_t.fade_in .fade_opacity02 {
  opacity: 1;
}

.fade_t .fade_blur {
  filter: blur(5px);
  transition: 1.2s ease;

}

.fade_t .fade_blur {
  filter: blur(0);
}


.clip_txt {
  clip-path: inset(100% 0 0 0%);
  transition: clip-path 0.8s cubic-bezier(0.32, 0.95, 0.6, 1);
}

.fade_t.fade_in .clip_txt {
  clip-path: inset(0% 0% 0% 0%);
}

.clip_circle {
  transform: translateY(50px);
  clip-path: circle(0% at 50% 10%);
  opacity: 0;
  transition: clip-path 1.6s cubic-bezier(0.32, 0.95, 0.6, 1), opacity 2.6s cubic-bezier(0.16, 1, 0.3, 1), transform 2.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-clip-path 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
}

.fade_t.fade_in .clip_circle {
  clip-path: circle(100% at 50% 50%);
  opacity: 1;
  transform: translateY(0);
}

.fade_t .fade_slide_x {
  transform: translateX(-5px);
  transition: 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
}

.fade_t.fade_in .fade_slide_x {
  transform: translateX(0);
}

.fade_t .fade_slide_y {
  transform: translateY(0) scale(1.02);
  transition: 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
  opacity: 0;
}

.fade_t.fade_in .fade_slide_y {
  transform: translateY(20px) scale(1);
  opacity: 1;
}

/*fade_slide_right*/
.fade_t .fade_slide2 {
  clip-path: inset(0 100% 0 0);
  opacity: 0;
  transition: 1s cubic-bezier(0.32, 0.95, 0.6, 1);
}

.fade_t.fade_in .fade_slide2 {
  clip-path: inset(0 0 0 0);

}

/*clip_circle2*/
.clip_circle2 {
  transform: translateY(50px);
  clip-path: circle(50% at 50% 50%);
  opacity: 0;
  transition: clip-path 1s cubic-bezier(0.32, 0.95, 0.6, 1), opacity 2s cubic-bezier(0.16, 1, 0.3, 1), transform 2s cubic-bezier(0.16, 1, 0.3, 1), -webkit-clip-path 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
}

.fade_t.fade_in .clip_circle2 {
  clip-path: circle(100% at 50% 50%);
  opacity: 1;
  transform: translateY(0);
}

/*fade*/
.fade_t .fade_big {
  scale: 0.9;
  transition: 0.6s ease;
}

.fade_t.fade_in .fade_big {
  scale: 1;
}


/*fade_scale*/
.fade_t .fade_scale {
  overflow: hidden;
}

.fade_t .fade_scale img {
  transform: scale(1);
  transition: transform 2s cubic-bezier(.22, 1, .36, 1);
}

.fade_t.fade_in .fade_scale img {
  transform: scale(1.1);
}


/*fade_blur*/
.fade_t .fade_blur {
  filter: blur(5px);
  opacity: 0;
  transition: 1.6s cubic-bezier(0.32, 0.95, 0.6, 1);
}

.fade_t.fade_in .fade_blur {
  filter: blur(0);
  opacity: 1;
}


/*----------------------------------------
	cmn-footer
-----------------------------------------*/

.cmn-footer {
  position: relative;
}

.cmn-footer__nav {
  padding-top: 11%;
}

.cmn-footer__navWrapper {
  position: relative;
  padding-top: 2.5em;
}

.cmn-footer__inner {
  margin: 10em 0 6%;
  border-top: 1px solid rgba(34, 34, 34, 0.2);
}

.cmn-footer__ttl {
  font-size: 16px;
}

.cmn-footer__address {
  font-size: 12px;
  line-height: 2;
}

.cmn-footer__nav {
  display: flex;
  flex-wrap: wrap;
  margin-left: auto;
}

.cmn-footer__nav .btn-linkWrapper {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  margin-top: -7em;
}

.cmn-footer__nav__sns {
  position: absolute;
  top: 0;
  right: 0;
  filter: brightness(0);
  line-height: 1;
}

.cmn-footer__nav__sns a+a {
  margin-left: 1em;
}

.cmn-footer__nav__top a {
  color: #222222;
}

.cmn-footer__nav .btn-link {
  color: #ffffff;
}

.cmn-footer__nav__inner {
  display: flex;
  width: 100%;
}

.cmn-footer__nav>div:first-of-type {
  width: 100%;
}

.cmn-footer__nav__inner>div:nth-of-type(1) {
  width: 30%;
}

.cmn-footer__nav__inner>div:nth-of-type(2) {
  width: 70%;
}

.cmn-footer__nav p {
  padding-top: 0.5em;
}

.cmn-footer__nav__top a,
.cmn-footer__nav__inner a {
  position: relative;
  color: #222222;
  font-size: 14px;
  line-height: 1.4;
  width: 100%;
}

.cmn-footer__nav__top .btn-link--icon,
.cmn-footer__nav__inner .btn-link--icon {
  display: block;
  position: absolute;
  top: 50%;
  right: -1.2em;
  bottom: 0;
  width: 8px;
  height: 8px;
  margin-top: -0.2em;
  overflow: hidden;
}

.cmn-footer__nav__top .btn-link--icon:before,
.cmn-footer__nav__top .btn-link--icon:after,
.cmn-footer__nav__inner .btn-link--icon:before,
.cmn-footer__nav__inner .btn-link--icon:after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url(../images/btn_arrow.svg);
  filter: brightness(0);
}

.cmn-footer__nav__top .btn-link--icon:after,
.cmn-footer__nav__inner .btn-link--icon:after {
  transform: translate(-100%, 100%);
}

.cmn-footer__copyrightWrapper {
  padding: 4% 0 5%;
  border-top: 1px solid rgba(34, 34, 34, 0.2);
  margin-top: 5%;
}

.cmn-footer__copyright {
  font-size: 12px;
}

.cmn-footer__logoIcon {
  width: auto;
  height: 60px;
}

@media screen and (min-width:768px) {
  .cmn-footer__nav__sns {
    margin-top: 10%;
  }

  .cmn-footer__nav__sns a+a {
    margin-left: 1.3em;
  }
}


@media screen and (min-width:992px) {
  .cmn-footer {
    margin-top: 9%;
  }

  .cmn-footer__nav {
    padding-top: 0;
    width: 70%;
  }

  .cmn-footer__nav p {
    padding-top: 0;
    line-height: 2;
  }

  .cmn-footer__navWrapper {
    padding-top: 0;
  }

  .cmn-footer__inner {
    margin: 0;
    padding: 3em 0 0;
    border-top: 1px solid rgba(34, 34, 34, 0.2);
  }

  .cmn-footer__nav li a:hover {
    opacity: 0.7;
  }

  .cmn-footer__nav a:hover .btn-link--icon:before,
  .cmn-footer__nav a:hover .btn-link--icon:after {
    background: url(../images/btn_arrow.svg);
    background-size: 100% auto;
  }

  .cmn-footer__nav a:hover .btn-link--icon:before {
    transition-duration: 0.6s;
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -ms-transition-duration: 0.6s;
    -ms-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition-duration: 0.6s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -moz-transition-duration: 0.6s;
    -moz-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transform: translate(100%, -100%);
  }

  .cmn-footer__nav a:hover .btn-link--icon:after {
    transform: translate(0, 0);
    transition-duration: 1s;
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -ms-transition-duration: 1s;
    -ms-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition-duration: 1s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -moz-transition-duration: 1s;
    -moz-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-delay: 0.3s;
    -webkit-transition-delay: 0.3s;
  }

  .cmn-footer__nav {
    padding-left: 5em;
  }

  .cmn-footer__nav__sns {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0.5em 19em 0 0;
  }

  .cmn-footer__nav .btn-linkWrapper {
    right: 0;
    left: auto;
    max-width: 280px;
    margin-top: 0;
  }

  .cmn-footer__nav__inner>div:nth-of-type(1) {
    width: 25%;
  }

  .cmn-footer__nav__inner>div:nth-of-type(2) {
    width: 75%;
  }

  .cmn-footer__nav__inner>div:nth-of-type(2)>div:nth-of-type(2) {
    margin-left: 6em;
  }

  .cmn-footer__copyrightWrapper {
    padding: 2.5% 0 5%;
    margin-top: 2.5%;
  }
}

@media screen and (min-width:1199px) {
  .cmn-footer__nav__sns {
    margin-right: 23.5em;
  }

  .cmn-footer__nav__top {
    width: 25%;
    padding-left: 5%;
  }

  .cmn-footer__nav__inner>div:nth-of-type(1) {
    padding-left: 5%;
    width: 30%;
  }

  .cmn-footer__nav__inner>div:nth-of-type(2) {
    width: 70%;
  }

  .cmn-footer__nav {
    margin-right: 2em;
  }

  .cmn-footer__nav .btn-linkWrapper {
    margin-right: 5em;
  }
}

@media screen and (max-width:768px) {
  .cmn-footer__nav__head {
    position: relative;
  }
}

/*----------------------------------------
	menuOverlay
-----------------------------------------*/

.nav-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(30, 30, 30, 0.5);
  display: none;
  position: fixed;
  z-index: 1500;
}

/*----------------------------------------
	pageTop
-----------------------------------------*/

#pageTop {
  position: fixed;
  right: 20px;
  bottom: -120px;
  display: table;
  z-index: 500;
  transition: 0.3s;
}

#pageTop.fixed {
  bottom: 60px;
}

#pageTop.keep {
  position: absolute;
  right: 20px;
  top: 0;
  z-index: 500;
  margin-top: -40px;
  transition: 0.1s;
}

#pageTop a {
  position: relative;
  width: 40px;
  height: 40px;
  display: table-cell;
  cursor: pointer;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url(../images/pagetop_arrow.svg);
}

@media screen and (min-width: 768px) {
  #pageTop {
    right: 60px;
    bottom: -100px;
  }

  #pageTop.fixed {
    bottom: 20px;
  }

  #pageTop.keep {
    right: 60px;
    margin-top: -80px;
  }

  #pageTop a {
    width: 80px;
    height: 80px;
  }

  #pageTop a:after {
    width: 7px;
    height: 48px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  #pageTop {
    right: 40px;
  }

  #pageTop.fixed {
    bottom: 80px;
  }

  #pageTop.keep {
    right: 40px;
  }

  #pageTop a {
    width: 50px;
    height: 50px;
  }

  #pageTop a:after {
    width: 5px;
    height: 40px;
  }
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  #pageTop.fixed {
    bottom: 90px;
  }
}

/*----------------------------------------
	stalker
-----------------------------------------*/

@media screen and (min-width: 992px) {
  .stalker {
    background-color: rgba(255, 255, 255, 1);
    /* 背景色 */
    clip-path: circle(50% at 50% 50%);
    /* 正円 */
    height: 0;
    /* 円の高さ */
    left: -15px;
    /* widthの半分 */
    opacity: 0;
    /* カーソルを画面内に入れるまでは透明 */
    pointer-events: none;
    /* 直下のリンクをクリック可能にする */
    position: fixed;
    /* スクロールしてもカーソルの位置で固定 */
    top: -15px;
    /* widthの半分 */
    transition: all .1s ease-out;
    /* 遅れてついてくる時間 */
    width: 0;
    /* 円の幅 */
    z-index: 300;
    /* 一番上に来るように */
  }

  /* リンクにホバーした時のスタイル */
  .stalker.js-hover {
    /* 色を反転させるのに必要 */
    height: 45px;
    /* カーソルがリンク上に乗ったときの高さ */
    left: -15px;
    /* 円の幅の半分 */
    top: -15px;
    /* 円の高さの半分 */
    width: 45px;
    /* カーソルがリンク上に乗ったときの幅 */
    background-color: rgba(204, 204, 204, 0.4);
    /* マウスオーバーで半透明の白 */
    mix-blend-mode: normal;
    /* 通常の表示に */
  }
}


/*----------------------------------------
	svg-animation
-----------------------------------------*/

#svg-animation {
  width: 100%;
  height: auto;
  display: block;
}

/* マスク線（白＝見える部分） */
#svg-animation .st0 {
  fill: none;
  stroke: #fff;
  stroke-width: 8;
  /* 太さ：好みで調整 */
  stroke-linecap: round;
  stroke-linejoin: round;

  /* Vivus用 初期値（ざっくり） */
  stroke-dasharray: 1500;
  stroke-dashoffset: 1500;
}


/*----------------------------------------
	loading
-----------------------------------------*/

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    display: none;
    opacity: 0;
    z-index: -100;
  }
}

body .loading-sec {
  position: absolute;
  top: 0;
  width: 100%;
  height: 70vh;
  z-index: 1000;
}

body .loading-sec.loaded {
  z-index: -9000;
}

body .loading-sec__inner {
  padding-top: calc(900 / 1200* 100%);
}

body .loading-sec .loading {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}

body:not(.home) .loading-sec {
  display: none;
}

body .loading-sec.loaded .loading {
  animation: fadeOut 0.5s forwards;
}

body .loading-sec .loading .loadingInner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  transform: translate(-50%, 0);
}

@media (min-width: 768px) {
  body .loading-sec {
    height: 100vh;
  }

  body .loading-sec__inner {
    padding-top: calc(500 / 1200* 100%);
  }
}

@keyframes spin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(359deg);
  }
}

.spinner-box {
  width: 50px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: transparent;
}

.circle-border {
  width: 50px;
  height: 50px;
  padding: 3px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: rgb(63, 249, 220);
  background: linear-gradient(0deg, rgba(63, 249, 220, 0.1) 33%, rgb(3, 3, 3) 100%);
  animation: spin .8s linear 0s infinite;
}

.circle-core {
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  border-radius: 50%;
}