@charset "utf-8";

/* CSS Document */

/***********
mainVisual
************/

.mainVisual {
  position: relative;
  background-color: var(--color-sub01);
  font-size: clamp(116%,1.4vw, 139%);
  margin-top: 7em;
}

.mainVisual-wrapper {
  width: clamp(1200px,100%, 9999px);
  margin: 0 auto;
  opacity: 0;
}
body.is-loaded .mainVisual-wrapper {
  opacity: 1;
  transition: 1s;
  transition-delay: 0.1s;
}

.mainVisual-item {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 8;
}

.mainVisual-dept {
  position: absolute;
  left: 0;
  top: 5%;
  width: clamp(170px,27%, 500px);
  background: url(../../img/mv_hex.png) no-repeat center center / 100% auto;
  aspect-ratio: 906 / 742;
  z-index: 9;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  color: var(--color-base);
  font-size: clamp(60%,1.15vw, 100%);
}
@media screen and (min-width:1441px) {
  .mainVisual-dept {
    left: 1vw;
  }
}
.mainVisual-dept-block {
}
.mainVisual-dept-heading {
}
.mainVisual-dept-subTitle {
  font-family: var(--font-family-gothic-en);
  font-size: 93%;
  font-style: italic;
  line-height: 1.2;
  padding-bottom: 0.2em;
}
.mainVisual-dept-title {
  font-weight: 500;
  font-size: 178%;
}
.mainVisual-dept-text {
  padding-top: 0.5em;
  font-size: 93%;
  line-height: 1.6;
}

.mainVisual-dept-visual {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 85%;
  height: 90%;
  overflow: hidden;
}
.mainVisual-dept-img {
  width: 100%;
  height: 100%;
}
.mainVisual-dept-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.mainVisual-dept-movie {
  width: 100%;
  height: 100%;
}
.mainVisual-dept-movie.-sp {
  display: none;
}
.mainVisual-dept-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mainVisual-hero {
  width: 100%;
  height: 100%;
}

/*
slick
*/

/* ロード後に処理 */
.mainVisual-slider{
  opacity: 0;
  transition: 0.1s;
  display: flex;
}
.mainVisual-slider.slick-initialized{
  opacity: 1;
}

.mainVisual .slick-slide{
}
.mainVisual .slick-slide li {
  vertical-align: bottom;
}
.mainVisual .slick-active{
  opacity: 1;
}

.mainVisual .slick-dots{
  position: absolute;
  width: 100%;
  left: 0;
  bottom: -40px;
  display: flex;
  justify-content: center;
}
.mainVisual .slick-dots button{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  background-color: var(--color-sub03);
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  text-indent: -99999px;
  overflow: hidden;
  margin: 0 8px;
  padding: 0;
  cursor: pointer;
}
.mainVisual .slick-dots .slick-active button{
  background-color: var(--color-brand01);
}

@media screen and (max-width:1440px) {

  .mainVisual {
    font-size: clamp(108%,1.2vw, 139%);
    margin-top: 7em;
  }
  .mainVisual-wrapper {
    width: 100%;
    margin: 0 auto;
    padding-left: 1em;
  }
}

@media screen and (max-width:1024px) {

  .mainVisual-wrapper {
    padding-left: 0;
  }
  .mainVisual {
    margin-top: 56px;
  }

  .mainVisual .slick-dots{
    bottom: -30px;
    display: flex;
    justify-content: center;
  }
  .mainVisual .slick-dots button{
    width: 5px;
    height: 5px;
    margin: 0 5px;
  }
}

@media screen and (max-width:640px) {

  .mainVisual-dept {
    top: 1%;
    left: 2%;
    width: clamp(200px,70%, 300px);
    font-size: clamp(60%,3.2vw, 100%);
  }

  .mainVisual-dept-visual {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 84.8%;
    overflow: hidden;
  }
  .mainVisual-dept-movie.-sp {
    display: block;
  }
  .mainVisual-dept-movie.-pc {
    display: none;
  }
  .mainVisual-item {
    aspect-ratio: 86 / 170;
  }

}


/***********
homeNews
************/

.homeNews {
  background-color: var(--color-sub01);
  padding-top: 10em;
}
.homeNews-wrapper {
  max-width: 1600px;
  margin: 0 auto;
}
.homeNews-container {
  display: flex;
}
.homeNews-block {
  flex: 1;
  margin-right: -1px;
}
.homeNews-heading {
  font-size: clamp(154%,1.7vw, 200%);
  font-weight: 400;
  letter-spacing: 0.3em;
  padding-bottom: 0.8em;
  text-align: center;
}

.homeNews-list {
  position: relative;
  font-size: clamp(116%,1.2vw, 131%);
}
.homeNews-list::after {
  content: "";
  display: block;
  width: 200vw;
  height: 1px;
  background-color: var(--color-sub02);
  position: absolute;
  left: 50%;
  translate: -50% 0 ;
  top: 0;
}
.homeNews-list a {
  display: flex;
  color: var(--color-brimary01);
  text-decoration: none;
  border: 1px solid var(--color-sub02);
  height: 8em;
  margin-bottom: -1px;
  position: relative;
}
.homeNews-list a[target="_blank"] {
  padding-right: 2em;
}
.homeNews-list a[target="_blank"]::after {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  position: absolute;
  right: 1.2em;
  top: 50%;
  translate: 0 -50%;
  scale: 1.3;
  background: url(../../img/icon/external_gr.png) no-repeat center center / 100% auto;
}


body.is-pc .homeNews-list a[href]:hover {
  background-color: var(--color-base);
  box-shadow: 0 0 1.5em rgba(0, 0, 0, 0.1);
}
.homeNews-data {
  width: 9em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  padding: 1em;
  text-align: center;
  border-right: 1px dashed var(--color-sub02);
}
.homeNews-data-box {
  display: inline-block;
  margin: 0 auto;
  text-align: left;
}
.homeNews-data-time {
  display: block;
  font-family: var(--font-family-gothic-en);
}
.homeNews-data-cat {
  display: inline-block;
  font-weight: 500;
  font-size: 85%;
  line-height: 1.2;
}
.homeNews-inner {
  flex: 1;
  display: flex;
  align-items: center;
}
.homeNews-inner-box {
  flex: 1;
  padding: 1em 1.5em 1em 2em;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.homeNews-title {
  max-height: calc(3em * 1.5);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.homeNews-inner-img {
  width: 33%;
  height: 100%;
  max-width: 160px;
}
.homeNews-inner-img img {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width:1024px) {

  .homeNews {
    padding-top: 6em;
  }
  .homeNews-wrapper {
    margin-left: -1px;
    margin-right: -1px;
  }
  .homeNews-container {
    display: block;
  }
  .homeNews-block {
    margin-right: 0;
  }
  .homeNews-block+ .homeNews-block {
    padding-top: 4em;
  }
  .homeNews-heading {
  }

  .homeNews-list {
    font-size: clamp(116%,1.2vw, 131%);
  }
  .homeNews-list a {
    border: 1px solid var(--color-sub02);
    height: 6.5em;
    margin-bottom: -1px;
  }
  body.is-pc .homeNews-list a:hover {
  }
  .homeNews-data {
    width: 6em;
    padding: 0.5em;
  }
  .homeNews-data-box {
  }
  .homeNews-data-time {
    font-size: 77%;
  }
  .homeNews-data-cat {
    font-weight: 500;
    font-size: 77%;
  }
  .homeNews-inner {
  }
  .homeNews-inner-box {
    padding: 0.8em 1em 0.8em 1.2em;
  }
  .homeNews-title {
  }
  .homeNews-inner-img {
    width: auto;
  }
  .homeNews-inner-img img {
    aspect-ratio: 1 / 1;
  }

}

@media screen and (max-width:520px) {

  .homeNews-inner-img {
    max-width: 120px;
    width: 26vw;
  }
}


/***********
homeMore
************/

.homeMore {
  background-color: var(--color-sub01);
}
.homeMore.-white {
  background-color: var(--color-base);
}
.homeMore-btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  font-size: clamp(139%,1.8vw, 200%);
  font-family: var(--font-family-gothic-en);
  color: var(--color-brimary01);
  text-decoration: none;
  letter-spacing: 0.1em;
  border: 1px solid var(--color-sub02);
  border-left: none;
  border-right: none;
  min-height: 6em;
}
.homeMore-btn span {
  display: inline-block;
  position: relative;
}
.homeMore-btn span::after {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: url(../../img/icon/arrow_gr.png) no-repeat center center / 100% auto;
  position: absolute;
  left: calc(100% + 1.5em);
  top: 50%;
  translate: 0 -50%;
  scale: 2;
}
body.is-pc .homeMore-btn:hover {
  background-color: var(--color-base);
  box-shadow: 0 0 1.5em rgba(0, 0, 0, 0.1);
}
body.is-pc .homeMore-btn:hover span::after {
  animation: anim-arrowFade 0.6s ease-in-out forwards;
}


/***********
homeTicker
************/

.homeTicker {
  border-bottom: 1px solid var(--color-sub02);
  background-color: var(--color-sub01);
  padding: 1vmax 0;
  user-select: none;
  opacity: 0;
}
body.is-loaded .homeTicker {
  opacity: 1;
  transition: 1s;
}
.homeTicker-container {
  display: flex;
  height: clamp(40px,7vmax, 280px);
}
.homeTicker-item {
}
.homeTicker-item img {
  width: auto;
  height: clamp(40px,7vmax, 280px);
}

@media screen and (max-width:834px) {

  .homeTicker-item img {
    width: auto;
  }
}

/***********
homeAbout
************/

.homeAbout {
  background-color: var(--color-base);
  overflow: hidden;
}
.homeAbout-container {
  display: flex;
  justify-content: space-between;
}
.homeAbout-visual {
  padding: 6em 0;
  width: 47%;
}
.homeAbout-inner {
  width: 47%;
  padding-top: 6em;
  padding-bottom: 6em;
}
.homeAbout-title {
  font-size: clamp(154%,1.7vw, 200%);
  font-weight: 400;
  padding-bottom: 1em;
  letter-spacing: 0.1em;
}
.homeAbout-text {
  font-size: clamp(116%,1.2vw, 131%);
  line-height: 2.2;
}

.homeAbout-logo {
  margin-top: 2em;
  font-size: clamp(100%,1.1vw, 116%);
}
.homeAbout-logo-title {
  display: inline-block;
  font-size: 116%;
  font-weight: 500;
  border: 1px solid var(--color-sub02);
  border-bottom: none;
  padding: 0.6em 2em;
}
.homeAbout-logo-container {
  padding: 3em 0 3em 5%;
  display: flex;
  align-items: center;
  position: relative;
}
.homeAbout-logo-container::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 200%;
  height: 200%;
  border: 1px solid var(--color-sub02);
  border-right: none;
  border-bottom: none;
  pointer-events: none;
}
.homeAbout-logo-img {
  width: 38%;
  padding-right: 5%;
}
.homeAbout-logo-inner {
  flex: 1;
}
.homeAbout-logo-text {
  line-height: 1.8;
}

@media screen and (max-width:834px) {

  .homeAbout {
    background-color: var(--color-base);
    overflow: hidden;
  }
  .homeAbout-container {
    display: block;
  }
  .homeAbout-visual {
    padding: 3em 0 0;
    width: auto;
    max-width: 400px;
    margin: 0 auto;
  }
  .homeAbout-inner {
    width: auto;
    padding-top: 3em;
    padding-bottom: 3em;
  }
  .homeAbout-title {
  }
  .homeAbout-text {
    line-height: 1.8;
  }

  .homeAbout-logo {
    margin-top: 2em;
  }
  .homeAbout-logo-container::after {
    left: 50%;
    top: 0;
    translate: -50% 0 ;
    width: 200%;
    height: 200%;
  }
}

@media screen and (max-width:520px) {

  .homeAbout-logo {
    margin-top: 2em;
    text-align: center;
  }
  .homeAbout-logo-container {
    padding: 2em 5% 3em 5%;
    display: block;
    text-align: left;
  }
  .homeAbout-logo-img {
    width: 200px;;
    padding-right: 0;
    margin: 0 auto;
  }
  .homeAbout-logo-inner {
    flex: 1;
    padding-top: 1em;
  }
  .homeAbout-logo-text {
    line-height: 1.8;
  }

}




/***********
homeLogo
************/

.homeLogo {
  overflow: hidden;
  padding: min(20vw,7em) 0;
  position: relative;
}
.homeLogo::after {
  content: "";
  display: block;
  width: 42vw;
  height: 100%;
  background: url(../../img/symbol_wt.png) no-repeat center bottom / 100% auto;
  position: absolute;
  left: 55%;
  bottom: 4em;
}
.homeLogo-container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  z-index: 9;
}
.homeLogo-img {
  width: clamp(280px,65%, 680px);
  margin: 0 auto;
  text-align: center;
}
.homeLogo-inner {
  padding-top: 3em;
}
.homeLogo-title {
  font-size: clamp(154%,1.7vw, 200%);
  font-weight: 400;
  padding-bottom: 1em;
  letter-spacing: 0.1em;
}
.homeLogo-text {
  font-size: clamp(116%,1.2vw, 131%);
  line-height: 2.2;
}


@media screen and (max-width:834px) {

  .homeLogo {
    overflow: hidden;
    padding-top: 3em;
    padding-bottom: 3em;
  }
  .homeLogo::after {
    width: 60vw;
    background: url(../../img/symbol_wt.png) no-repeat center top / 100% auto;
    left: auto;
    right: 0;
    bottom: auto;
    top: 12em;
  }
  .homeLogo-inner {
    padding-top: 2em;
  }
  .homeLogo-title {
  }
  .homeLogo-text {
    line-height: 1.8;
  }
}

/***********
homeLink
************/

.homeLink {
  border: 1px solid var(--color-sub02);
  border-right: none;
  border-left: none;
  margin-top: -1px;
  background-color: var(--color-sub01);
}
.homeLink-list {
  border: 1px solid var(--color-sub02);
  border-top: none;
  border-bottom: none;
  display: flex;
}
.homeLink-list li {
  flex: 1;
}
.homeLink-list li:not(:last-child) {
  border-right: 1px solid var(--color-sub02);
}
.homeLink-list a {
  font-size: clamp(124%,1.6vw, 154%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  min-height: 11em;
  padding-bottom: 1em;
  color: var(--color-brimary01);
  text-decoration: none;
}
body.is-pc .homeLink-list a:hover {
  background-color: var(--color-base);
  box-shadow: 0 0 1.5em rgba(0, 0, 0, 0.1);
}
.homeLink-icon {
  width: 5em;
  margin: 0 auto;
}
.homeLink-title {
  letter-spacing: 0.1em;
}


@media screen and (max-width:1280px) {

  .homeLink-list {
    margin-left: -1px;
    margin-right: -1px;
  }
}

@media screen and (max-width:520px) {

  .homeLink-list a {
    font-size: clamp(85%,3vw, 124%);
    font-feature-settings: "palt";
    min-height: 10em;
  }
  body.is-pc .homeLink-list a:hover {
    background-color: var(--color-base);
    box-shadow: 0 0 1.5em rgba(0, 0, 0, 0.1);
  }
  .homeLink-icon {
    width: 5.5em;
  }

}

/***********
homeAccess
************/

.homeAccess {
  background-color: var(--color-sub01);
}
.homeAccess-container {
  display: flex;
}
.homeAccess-map {
  width: 50%;
  border-left: 1px solid var(--color-sub02);
}
.homeAccess-map iframe{
  width: 100%;
  height: 100%;
  min-height: 500px;
  vertical-align: bottom;
}
.homeAccess-inner {
  flex: 1;
  display: flex;
  justify-content: end;
}
.homeAccess-box {
  width: 100%;
  max-width: 800px;
  padding: 6em 4em 6em 30px;
}

.homeAccess-title {
  font-size: clamp(154%,1.7vw, 200%);
  font-weight: 500;
  padding-bottom: 1em;
  letter-spacing: 0.1em;
}
.homeAccess-subTitle {
  font-size: clamp(124%,1.4vw, 139%);
  font-weight: 600;
  padding-bottom: 0.5em;
}
.homeAccess-address {
  font-size: clamp(116%,1.2vw, 131%);
  font-style: normal;
  line-height: 1.6;
}

.homeAccess-access {
  padding-top: 4em;
}
.homeAccess-access-title {
  font-size: clamp(124%,1.4vw, 139%);
  font-weight: 600;
  padding-bottom: 0.5em;
}
.homeAccess-access-text {
  font-size: clamp(116%,1.2vw, 131%);
  font-style: normal;
  line-height: 1.6;
}
.homeAccess-access-link {
  font-size: clamp(116%,1.2vw, 131%);
  font-style: normal;
  line-height: 1.6;
  padding-top: 0.8em;
}
.homeAccess-access-link a {
  color: var(--color-brand01);
  font-weight: 600;
  text-decoration: none;
}
.homeAccess-access-link a[target="_blank"] {
  padding-left: 1.4em;
  position: relative;
}
.homeAccess-access-link a[target="_blank"]::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: url(../../img/icon/external_bl.svg) no-repeat center center / 100% auto;
  position: absolute;
  left: 0;
  top: 0.3em;
}
body.is-pc .homeAccess-access-link a:hover {
  text-decoration: underline;
}

@media screen and (max-width:834px) {

  .homeAccess {
  }
  .homeAccess-container {
    display: block;
  }
  .homeAccess-map {
    width: auto;
    border-left: none;
  }
  .homeAccess-map iframe{
    min-height: 300px;
    height: clamp(300px,80vmax, 500px);
  }
  .homeAccess-inner {
    display: block;
  }
  .homeAccess-box {
    max-width: initial;
    padding: 3em 5%  ;
  }


}

/***********
homeMovie
************/

.homeMovie {
}
.homeMovie-video {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  aspect-ratio: 100 / 20;
  vertical-align: bottom;
}

@media screen and (max-width:834px) {

  .homeMovie-video {
    min-height: 150px;
    aspect-ratio: 16 / 8;
  }
}
