@charset "utf-8";

/* 既存メインビジュアルのCSSを上書き */
.mainvisual-carousel,
.mainvisual-carousel-dots-bg {
  display: none;
}
.mainvisual-carousel:has(.corp-page-mainvisual) {
  display: block !important;
}
.mainvisual-carousel-inner {
  display: block;
  opacity: 1;
  width: 100%;
}
.mainvisual-carousel-loading {
  display: none !important;
}

.corp-page-mainvisual {
  min-width: 990px;
}
.corp-page-mainvisual-visual {
  width: 100% !important;
  height: auto;
  aspect-ratio: 3 / 1;
}
.corp-page-banner {
  padding: 20px 30px;
  max-height: clamp(237.05px, 23.6vw, 302.88px);
  background: #393b3d;
  position: relative;
  z-index: 0;
  box-sizing: border-box;
}
.corp-page-banner-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  background: #393b3d;
}
.corp-page-banner-loading.hidden {
  visibility: hidden;
  opacity: 0;
  z-index: -1;
}
.corp-page-banner-loading .container {
  height: 100%;
  margin: auto;
  --uib-size: 32px;
  --uib-color: #fff;
  --uib-speed: 2s;
  --uib-bg-opacity: 0;
  height: var(--uib-size);
  width: var(--uib-size);
  transform-origin: center;
  animation: rotate var(--uib-speed) linear infinite;
  will-change: transform;
  overflow: visible;
}
.corp-page-banner-loading .car {
  fill: none;
  stroke: var(--uib-color);
  stroke-dasharray: 1, 200;
  stroke-dashoffset: 0;
  stroke-linecap: round;
  animation: stretch calc(var(--uib-speed) * 0.75) ease-in-out infinite;
  will-change: stroke-dasharray, stroke-dashoffset;
  transition: stroke 0.5s ease;
}
.corp-page-banner-loading .track {
  fill: none;
  stroke: var(--uib-color);
  opacity: var(--uib-bg-opacity);
  transition: stroke 0.5s ease;
}
@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

@keyframes stretch {
  0% {
    stroke-dasharray: 0, 150;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 75, 150;
    stroke-dashoffset: -25;
  }
  100% {
    stroke-dashoffset: -100;
  }
}
.corp-page-banner-carousel {
  margin: 0 auto;
  max-width: 1280px;
  width: 100%;
  min-width: 930px;
  line-height: 0;
  opacity: 0;
  z-index: -1;
}
.corp-page-banner-carousel.slick-initialized {
  opacity: 1;
  z-index: 6;
  transition: opacity 0.3s ease-in-out, z-index 0.3s ease-in-out;
}
.corp-page-banner-carousel-item-body {
  width: 100% !important;
  height: 100%;
  aspect-ratio: 16 / 9;
}
.corp-page-banner-carousel-arrow {
  width: 16px;
  height: 16px;
  border-top: 4px solid #84919d;
  border-right: 4px solid #84919d;
  cursor: pointer;
  position: absolute;
  top: 50%;
  z-index: 5;
}
.corp-page-banner-carousel-arrow-prev {
  left: -2.6%;
  transform: translateY(-27px) rotate(-135deg);
}
@media screen and (max-width: 1400px) {
  .corp-page-banner-carousel-arrow-prev {
    left: -20px;
  }
}
.corp-page-banner-carousel-arrow-next {
  right: -2.6%;
  transform: translateY(-27px) rotate(45deg);
}
@media screen and (max-width: 1400px) {
  .corp-page-banner-carousel-arrow-next {
    right: -20px;
  }
}
.corp-page-banner-carousel .slick-dots {
  padding-top: 20px;
  height: auto;
}
.corp-page-banner-carousel .slick-dots li:before {
  background: #84919d;
}
.corp-page-banner-carousel .slick-dots li.slick-active {
  width: 40px;
}
.corp-page-banner-carousel .slick-dots li.slick-active:before {
  background: #357eec;
  border-radius: 5px;
}
.corp-page-banner-carousel .slick-list {
  position: relative;
  z-index: 0;
}
.corp-page-banner-carousel .slick-list::before,
.corp-page-banner-carousel .slick-list::after {
  content: '';
  display: block;
  background-color: #393b3d;
  width: 10px;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 1;
}
.corp-page-banner-carousel .slick-list::before {
  left: 0;
}
.corp-page-banner-carousel .slick-list::after {
  right: 0;
}
