.main {
  padding-bottom: 11.75vw;
}

@media screen and (max-width: 767px) {
  .main {
    padding-bottom: clamp(96px * var(--sp-scale-min), calc(96 * 100vw / 390), 96px * var(--sp-scale-max));
  }
}

/* ========================
kv
======================== */
.kv {
  height: 100vh;
  position: relative;
}

.ball-main {
  position: absolute;
  bottom: -5vw;
  left: 40vw;
  z-index: -1;
}
/* 
.ball-main-inner.fadeout {
  animation: fadeout 2s ease-in-out;
  animation-fill-mode:forwards;
}

@keyframes fadeout {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

.ball-main-inner.fadein {
  animation: fadein 2s ease-in-out;
  animation-fill-mode:forwards;
}

@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
} */

.ball-main-inner::after {
  /* animation: ballMain 7s  ease-in-out infinite;
  animation-fill-mode: both; */
  background: url(../../images/top/bg-kv.png);
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  display: block;
  transition: all .3s;
  height: 67vw;
  width: 70vw;
}

@keyframes ballMain {
  0% {
    translate: 0 2rem;
  }
  50% {
    translate: 0 -1rem;
  }
  100% {
    translate: 0 2rem;
  }
}

.kv__title {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  padding-left: 8%;
  width: 100%;
}

.kv__title-main img {
  width: 46%;
}

.kv__title-sub {
  font-size: 1.56vw;
  font-weight: 700;
  line-height: 2;
  margin-top: 2rem;
}

.ball-red1 {
  position: absolute;
  top: -6vw;
  left: 1.875vw;
}

.ball-red1::after {
  animation: movingBall3 6s ease-in-out infinite;
  aspect-ratio: 1;
  content: '';
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  position: relative;
  width: 12.34vw;
  z-index: -1;
}

.ball-red2 {
  position: absolute;
  bottom: 15vw;
  left: 14.92vw;
}

.ball-red2::after {
  animation: movingBall 6s ease-in-out infinite;
  aspect-ratio: 1;
  content: '';
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  position: relative;
  width: 3.125vw;
  z-index: -1;
}

.ball-blue1 {
  position: absolute;
  top: 5vw;
  left: 31.09vw;
}

.ball-blue1::after {
  animation: movingBall2 7s ease-in-out infinite;
  aspect-ratio: 1;
  content: '';
  background: url(../../images/common/ball-blue.png);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  position: relative;
  width: 3.85vw;
  z-index: -1;
}

.ball-blue2 {
  position: absolute;
  bottom: 3.5vw;
  left: -2.73vw;
}

.ball-blue2::after {
  animation: movingBall3 8s ease-in-out infinite;
  aspect-ratio: 1;
  content: '';
  background: url(../../images/common/ball-blue.png);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  width: 14.84vw;
  z-index: -1;
}

@keyframes movingBall {
  0% {
    translate: 0 1vw;
  }
  50% {
    translate: 0 -0.5vw;
  }
  100% {
    translate: 0 1vw;
  }
}

@keyframes movingBall2 {
  0% {
    translate: 0 -1vw;
  }
  50% {
    translate: 0 0.5vw;
  }
  100% {
    translate: 0 -1vw;
  }
}

@keyframes movingBall3 {
  0% {
    translate: 0 0.8vw;
  }
  50% {
    translate: 0 -0.8vw;
  }
  100% {
    translate: 0 0.8vw;
  }
}

.kv__recruit {
  background-color: var(--colorWhite);
  filter: drop-shadow(8px 8px 24px rgba(0, 0, 0, 0.15));
  overflow: hidden;
  position: absolute;
  bottom: 3.125vw;
  right: 3.125vw;
}

.kv__recruit-link {
  aspect-ratio: 175/121;
  display: block;
  transition: all .3s;
  width: 17.5rem;
}

@media (hover: hover) {
  .kv__recruit-link:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .kv {
    display: grid;
    grid-template-rows: 1fr auto auto;
    height: 100dvh;
  }

  .kv__ball {
    position: relative;
  }

  .ball-main {
    left: unset;
    right: -55vw;
    bottom: 10vh;
  }

  .ball-main-inner::after {
    height: 113vw;
    width: 118vw;
  }

  .ball-red1 {
    top: -15.38vw;
    left: 6.67vw;
  }

  .ball-red1::after {
    width: 15.38vw;
  }

  .ball-red2 {
    top: 55.13vw;
    left: 2.05vw;
  }

  .ball-red2::after {
    width: 5.13vw;
  }

  .ball-blue1 {
    top: 0;
    left: 18.97vw;
  }

  .ball-blue1::after {
    width: 6.15vw;
  }

  .ball-blue2 {
    top: 65.13vw;
    left: 10.26vw;
  }

  .ball-blue2::after {
    width: 20.51vw;
  }

  .kv__title {
    position: relative;
    top: unset;
    transform: unset;
    padding-left: 7.18vw;
    margin-top: 5vh;
    width: 68vw;
  }

  .kv__title-main img {
    width: 100%;
  }

  .kv__title-sub {
    font-size: 3.6vw;
    margin-top: 6.15vw;
  }

  .kv__recruit {
    margin: 7.5vh 4.1vw 5.13vw;
    position: relative;
    bottom: unset;
    right: unset;
  }

  .kv__recruit-link {
    aspect-ratio: unset;
    width: 100%;
  }
}

/* ========================
banner
======================== */
.banner {
  margin-top: 5rem;
}

.banner__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.banner__item {
  background-color: var(--colorWhite);
  overflow: hidden;
  width: calc((100% - 3rem) / 4);
}

.banner__item a img {
  transition: all .3s;
}

@media (hover: hover) {
  .banner__item a:hover img {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .banner {
    margin-top: 24.36vw;
  }

  .banner__list {
    flex-wrap: unset;
    gap: unset;
  }

  .banner__swiper {
    overflow: visible;
  }

  .banner__swiper .swiper-horizontal> .banner__swiper.swiper-pagination-bullets,
  .banner__swiper .swiper-pagination-bullets.swiper-pagination-horizontal,
  .banner__swiper .swiper-pagination-custom,
  .banner__swiper .swiper-pagination-fraction {
    position: relative;
    top: 5.13vw;
  }

  .banner__swiper .swiper-pagination-bullet {
    background-color: #ddd;
    opacity: 1;
    height: 2.05vw;
    width: 2.05vw;
  }

  .banner__swiper .swiper-pagination-bullet-active {
    background-color: var(--colorRed);
  }
}

/* ========================
info
======================== */
.info {
  margin-top: 7.92vw;
}

.info__head {
  display: flex;
  align-items: center;
  column-gap: 8.5rem
}

@media screen and (max-width: 1040px) {
  .info__head {
    column-gap: 0;
    justify-content: space-between;
  }
}

.info__title {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-left: 1rem;
  min-width: 5em;
}

.info__list {
  display: flex;
  column-gap: 1.5rem;
  flex-wrap: wrap;
}

.info__item {
  color: var(--colorGray750);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  transition: all .3s;
}

.info__item.current {
  color: var(--colorRed);
}

@media (hover: hover) {
  .info__item:hover {
    color: var(--colorRed);
  }
}

.info__news-list {
  display: flex;
  flex-direction: column;
  margin-top: 1.5rem;
}

.info__news-item {
  display: none;
}

.info__news-item.show {
  animation: .8s listFadeIn forwards ease-out;
  display: block;
}

@keyframes listFadeIn {
  0% {
    opacity: 0.2;
  }
  100% {
    opacity: 1;
  }
}

.info__news-item.show:not(:first-child) {
  margin-top: 0.13rem;
}

.info__news-link {
  background-color: var(--colorBg);
  color: var(--colorGray);
  display: flex;
  align-items: center;
  column-gap: 1.5rem;
  padding: 1.5rem;
}

@media (hover: hover) {
  .info__news-link:hover .info__news-head {
    color: var(--colorRed);
  }
}

.info__news-content {
  display: contents;
}

.info__news-time {
  color: var(--colorGray);
  font-family: var(--familyRoboto);
  font-size: 1rem;
  min-width: 5em;
}

.info__news-kind {
  font-size: 0.875rem;
  font-weight: 700;
  min-width: 8em;
}

.info__news-head {
  font-size: 1rem;
  flex: 1;
  transition: all .3s;
  overflow: hidden;
  position: relative;
}

.info__news-head.omission::after {
  background: linear-gradient(to right, transparent 0, var(--colorBg) 60%);
  content: '…';
  position: absolute;
  bottom: 0;
  right: 0;
  text-align: right;
  width: 2.5em;
}

.info__detail-link-area {
  text-align: right;
}

.info__detail-link {
  font-weight: 700;
  margin: 1.5rem 0 0 auto;
}

@media screen and (max-width: 767px) {
  .info {
    margin-top: 36.92vw;
  }

  .info__head {
    flex-direction: column;
    align-items: flex-start;
    row-gap: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .info__title {
    font-size: clamp(28px * var(--sp-scale-min), calc(28 * 100vw / 390), 28px * var(--sp-scale-max));
    margin-left: 0;
  }

  .info__list {
    column-gap: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max));
    row-gap: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
  }

  .info__item {
    font-size: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .info__news-list {
    margin-top: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max));
  }

  .info__news-link {
    column-gap: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
    flex-wrap: wrap;
    padding: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max)) clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max)) clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .info__news-content {
    display: block;
    flex: 1;
  }

  .info__news-time {
    font-size: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
    margin-right: clamp(20px * var(--sp-scale-min), calc(20 * 100vw / 390), 20px * var(--sp-scale-max));
  }

  .info__news-kind {
    display: inline-block;
    min-width: unset;
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
  }

  .info__news-head {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
    margin-top: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
  }

  .info__detail-link {
    margin-top: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max));
  }
}

/* ========================
about
======================== */
.top-about {
  margin-top: 7.24vw;
}

.top-about__2columns {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.375rem;
}

.top-about__menu {
  display: flex;
  flex-direction: column;
  row-gap: calc((1em - 1lh) / 2 + 1.5rem);
  margin-top: 3.5rem;
}

.top-about__menu-link {
  font-weight: 700;
  min-height: unset;
}

@media (hover: hover) {
  .top-about__menu-link:hover {
    cursor: pointer;
  }
}

.top-about__menu-link .is-iconLink {
  height: 1.5rem;
  width: 1.5rem;
}

.top-about__menu-link .normal-arrow {
  width: 0.75rem;
}

.top-about__left {
  margin-bottom: 5rem;
}

.top-about__right {
  margin-bottom: -3.5vw;
  position: relative;
  transform: translateY(-2vw);
}

.top-about__detail-img {
  transform: scale(1.1);
  transform-origin: left center;
}

.top-about__detail-list {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.top-about__detail-item {
  position: absolute;
  width: min(calc(9.375vw * ((100vw - 18.25rem - 7.81%) / 100vw)), 15rem);
}

.speech-bubble {
  position: absolute;
  top: -2%;
  left: 0;
}

.speech-bubble img {
  transform: scale(1.1);
  transform-origin: left center;
}

@keyframes fuwafuwa {
  0% {
    transform: translateY(.5vw);
  }
  50% {
    transform: translateY(-1.5vw);
  }
  100% {
    transform: translateY(.5vw);
  }
}

@keyframes fuwafuwa2 {
  0% {
    transform: translateY(1.5vw);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(1.5vw);
  }
}

@keyframes fuwafuwa3 {
  0% {
    transform: translateY(-1vw);
  }
  50% {
    transform: translateY(1vw);
  }
  100% {
    transform: translateY(-1vw);
  }
}

@keyframes fuwafuwa4 {
  0% {
    transform: translateY(-1.5vw);
  }
  50% {
    transform: translateY(0.5vw);
  }
  100% {
    transform: translateY(-1.5vw);
  }
}

.dec-ball__area {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.dec-ball {
  aspect-ratio: 1;
  display: block;
  position: absolute;
}

.dec-ball1 {
  animation: fuwafuwa 10s infinite;
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 28.12%;
  left: 4.9%;
  width: 1.2vw;
}

.dec-ball2 {
  animation: fuwafuwa3 7s infinite;
  background: url(../../images/common/ball-blue.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 24.4%;
  left: 27.59%;
  width: 2.34vw;
}

.dec-ball3 {
  animation: fuwafuwa3 14s infinite;
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 8.89%;
  left: 19.46%;
  width: 2.3vw;
}

.dec-ball4 {
  animation: fuwafuwa2 12s infinite;
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 6.67%;
  left: 61.46%;
  width: 1.77vw;
}

.dec-ball5 {
  animation: fuwafuwa4 8s infinite;
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 30.65%;
  left: 60.15%;
  width: 3.05vw;
}

.dec-ball6 {
  animation: fuwafuwa2 9s infinite;
  background: url(../../images/common/ball-red.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 21.38%;
  left: 84.29%;
  width: 2.45vw;
}

.dec-ball7 {
  animation: fuwafuwa3 10s infinite;
  background: url(../../images/common/ball-blue.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 11.8%;
  left: 88.35%;
  width: 1.2vw;
}

.dec-ball8 {
  animation: fuwafuwa2 7s infinite;
  background: url(../../images/common/ball-blue.png);
  background-repeat: no-repeat;
  background-size: contain;
  top: 35.5%;
  left: 86.9%;
  width: 3.54vw;
}

.top-about__info-list {
  background-color: var(--colorWhite);
  display: flex;
  filter: drop-shadow(0 4px 4px rgba(0,0,0,0.25));
  text-align: center;
  padding-block: 1.8125rem 2.1875rem;
  margin-inline: auto;
}

.top-about__info-item {
  display: flex;
  flex-direction: column;
  width: calc(100% / 4);
}

.top-about__info-item:not(:first-child) {
  border-left: solid 1px #ddd;
}

.top-about__info-title {
  font-size: 1.125rem;
  font-weight: 700;
  flex: 1;
  margin-bottom: .5625rem;
}

.top-about__info-title--has-small {
  margin-bottom: 0;
}

.top-about__info-title--small {
  font-size: 0.875rem;
  font-weight: 400;
}

.top-about__info-text {
  font-family: var(--familyRobotoCondensed);
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.1;
}

.top-about__info-text--small {
  font-family: var(--familyNotoSans);
  font-size: 0.875rem;
}

@media screen and (max-width: 767px) {
  .top-about {
    margin-top: 0;
  }
  
  .container-rightfree {
    padding: 0;
    margin: 25.64vw clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max)) 0;
  }

  .top-about__2columns {
    display: block;
  }

  .top-about__left {
    margin-bottom: 0;
  }

  .top-about__menu {
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
    row-gap: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
    margin-top: clamp(32px * var(--sp-scale-min), calc(32 * 100vw / 390), 32px * var(--sp-scale-max));
  }

  .top-about__menu-item {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
    width: calc((100% - clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max))) / 2);
  }

  .top-about__menu-link {
    border-bottom: 1px solid #ddd;
    justify-content: space-between;
    padding-right: unset;
    padding-bottom: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
    min-height: calc(3em + 8px);
    width: auto;
  }

  .top-about__menu-link .is-iconLink {
    position: relative;
    top: unset;
    transform: scale(1);
    height: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max));
    width: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max));
  }

  .top-about__menu-link .normal-arrow {
    width: clamp(10px * var(--sp-scale-min), calc(10 * 100vw / 390), 10px * var(--sp-scale-max));
  }

  .top-about__right {
    margin-block: clamp(55px * var(--sp-scale-min), calc(55 * 100vw / 390), 55px * var(--sp-scale-max)) 0;
    transform: unset;
  }

  .top-about__detail-img {
    transform: translateX(-10%);
    max-width: unset;
    width: 140%;
  }

  .speech-bubble img {
    transform: translateX(-10%);
    max-width: unset;
    width: 140%;
  }

  .dec-ball1 {
    top: 44%;
    left: -6%;
    width: 1.91vw;
  }

  .dec-ball2 {
    top: 34%;
    left: 21%;
    width: 3.83vw;
  }

  .dec-ball3 {
    top: 16%;
    left: 11.5%;
    width: 3.85vw;
  }

  .dec-ball4 {
    top: 10.5%;
    left: 62.5%;
    width: 2.87vw;
  }

  .dec-ball5 {
    top: 45%;
    left: 60%;
    width: 4.96vw;
  }

  .dec-ball6 {
    top: 28%;
    left: 92%;
    width: 3.97vw;
  }

  .dec-ball7 {
    top: 16%;
    left: 96%;
    width: 1.92vw;
  }

  .dec-ball8 {
    top: 53.5%;
    left: 96%;
    width: 5.74vw;
  }

  .top-about .container {
    padding-inline: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
    transform: translateY(-12%);
  }

  .top-about__info-list {
    flex-wrap: wrap;
    padding: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max)) clamp(32px * var(--sp-scale-min), calc(32 * 100vw / 390), 32px * var(--sp-scale-max));
  }

  .top-about__info-item {
    width: calc(100% / 2);
    padding-block: clamp(21px * var(--sp-scale-min), calc(21 * 100vw / 390), 21px * var(--sp-scale-max));
  }

  .top-about__info-item:not(:first-child) {
    border-left: unset;
  }

  .top-about__info-item:nth-child(2n - 1) {
    padding-right: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .top-about__info-item:nth-child(2n) {
    border-left: 1px solid #ddd;
    padding-left: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .top-about__info-item:nth-child(-n+2) {
    padding-top: 0;
  }

  .top-about__info-item:nth-last-child(-n+2) {
    padding-bottom: 0;
  }

  .top-about__info-item:nth-child(n+3) {
    border-top: 1px solid #ddd;
  }

  .top-about__info-title {
    font-size: clamp(13px * var(--sp-scale-min), calc(13 * 100vw / 390), 13px * var(--sp-scale-max));
  }

  .top-about__info-title--small {
    font-size: clamp(11px * var(--sp-scale-min), calc(11 * 100vw / 390), 11px * var(--sp-scale-max));
  }

  .top-about__info-text {
    font-size: clamp(40px * var(--sp-scale-min), calc(40 * 100vw / 390), 40px * var(--sp-scale-max));
  }

  .top-about__info-text--small {
    font-size: clamp(12px * var(--sp-scale-min), calc(12 * 100vw / 390), 12px * var(--sp-scale-max));
    margin-left: clamp(4px * var(--sp-scale-min), calc(4 * 100vw / 390), 4px * var(--sp-scale-max));
  }
}

/* ========================
our business
======================== */
.our-business {
  padding-top: 6.25vw;
  margin-top: 14.37vw;
  overflow: hidden;
  position: relative;
}
.our-business__bg {
  aspect-ratio: 910/663;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  width: 71.09375vw;
  z-index: 0;
}

.our-business__bg img {
  translate: -20% 0;
  width: 100%;
}
.our-business .container {
  position: relative;
  z-index: 1;
}
.our-business .secTitle,
.our-business .secDiscription {
  text-align: right;
}

.our-business__introduce {
  display: flex;
  column-gap: 2.5rem;
  filter: drop-shadow(8px 8px 24px rgba(0,0,0,0.15));
  margin-top: 3.5rem;
  padding: 2.5rem;
  background-color: #fff;
}

.our-business__list {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.5rem;
  width: 58.33%;
  height: fit-content;
}

.our-business__item {
  width: calc((100% - 1.5rem) / 2);
  border-bottom: 1px solid #ddd;
}

.our-business__item-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  text-align: left;
  padding-block: 1rem;
}

.our-business__item-head {
  flex: 1;
}

.our-business__title {
  font-weight: 700;
  transition: all .3s;
}

.our-business__desc {
  font-size: 0.875rem;
  margin-top: .5rem;
}

/* hover images */
.our-business__img-area {
  flex: 0 1 41.67%;
}

.our-business__img-link {
  position: relative;
  display: none;
  aspect-ratio: 45 / 40;
  overflow: hidden;
  transition: all .3s;
}

@media (hover: hover) {
  .our-business__img-link:hover {
    opacity: 0.7;
  }
}

.our-business__img-item img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.our-business__bottomLink {
  margin: 2rem 0 0 auto;
}

@media screen and (min-width: 1081px) {
  .our-business__img-link.is-active {
    animation: fadein .8s ease-out;
    display: block;
  }
  .our-business__item.is-active {
    .our-business__title {
      color: var(--colorRed);
    }
    .our-business__desc {
      color: var(--colorBlack);
    }
    /* アイコンの矢印変更を保持 */
    .is-iconLink {
      color: var(--colorRed);
    }
    .is-iconLink::before {
      opacity: 1;
      transform: scale(1.1);
    }
    .normal-arrow {
      animation: arrowMove 0.3s ease forwards;
      background: url(../../images/common/ico-link-arrow-white.svg);
      background-repeat: no-repeat;
      background-size: contain;
      color: var(--colorWhite);
    }
  }
}

@keyframes fadein {
  0% {
    opacity: .3;
  }
  100% {
    opacity: 1;
  }
}

.for-tab-sp {
  display: none;
}

@media screen and (max-width: 1080px) {
  .our-business .for-pc {
    display: none;
  }
  .for-tab-sp {
    display: block;
  }
  .businessSlide__container {
    margin-top: 3.5rem;
  }
  .businessSlide__container .swiper {
    overflow-x: clip;
    overflow-y: visible;
  }
  .swiper-pagination-bullet-active {
    background-color: var(--colorRed);
  }
  .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: -1.5rem;
  }
  .businessSlide {
    position: relative;
  }
  .businessSlide::before {
    content: "";
    background: linear-gradient(180deg,rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
    opacity: .35;
    width: 100%;
    height: 52.63158%;
    position: absolute;
    bottom: 0;
  }
  .businessSlide__link {
    display: block;
  }
  .businessSlide__img {
    width: 100%;
  }
  .businessSlide__head {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 1rem;
    align-items: flex-end;
  }
  .businessSlide__number {
    color: #fff;
    font-family: var(--familyRobotoCondensed);
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1;
    display: inline-block;
  }
  .businessSlide__title {
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    margin-top: 0.5rem;
  }
  .businessSlide__desc {
    color: #fff;
    font-weight: 400;
    font-size: 0.75rem;
    margin-top: 0.25rem;
  }
  .our-business__bottomLink {
    font-size: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
    margin: clamp(72px * var(--sp-scale-min), calc(72 * 100vw / 390), 72px * var(--sp-scale-max)) 0 0 auto;
  }
}

@media screen and (max-width: 767px) {
  .our-business {
    padding-top: clamp(64px * var(--sp-scale-min), calc(64 * 100vw / 390), 64px * var(--sp-scale-max));
    margin-top: clamp(75px * var(--sp-scale-min), calc(75 * 100vw / 390), 75px * var(--sp-scale-max));
  }

  .our-business .secTitle {
    text-align: center;
  }
  .our-business .secDiscription {
    text-align: left;
  }
  .businessSlide__container {
    margin-top: 12.3077vw;
  }

  .our-business__bg {
    aspect-ratio: 366/563;
    position: absolute;
    left: 0;
    top: clamp(-64px * var(--sp-scale-min), calc(-64 * 100vw / 390), -64px * var(--sp-scale-max));
    overflow: hidden;
    width: 90vw;
    z-index: 0;
  }

  .our-business__bg img {
    translate: -40% -10%;
    width: 300%;
    max-width: unset;
  }
}

/* ========================
column
======================== */
.column {
  margin-top: 9.75rem;
}
.column__content {
  display: grid;
  grid-template-columns: 48.13% auto;
  gap: 4rem;
  margin-top: 3.5rem;
}

.column__topics {
  position: relative;
}

.topics__tag {
  position: absolute;
  top: 0;
  left: 0;
  background: var(--colorBlue);
  font-family: var(--familyRoboto);
  font-size: 0.875rem;
  color: var(--colorWhite);
  width: fit-content;
  padding: 0.24rem 0.5rem;
}

.column__item {
  display: grid;
  grid-template-columns: 38.93% auto;
  gap: 1rem;
  margin-bottom: 2rem;
}

.column__dateWrap {
  display: flex;
  gap: 0.625rem;
}

.column__topics .column__dateWrap {
  margin-top: 1rem;
}

.column__date {
  font-family: var(--familyRoboto);
  color: var(--colorGray);
}

.column__tag {
  background: var(--colorBg);
  font-size: 0.875rem;
  width: fit-content;
  padding-inline: 0.5rem;
}

.column__title {
  font-weight: 700;
  display: -webkit-box;             
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2; 
  margin-top: 0.5rem;
}

.column__topics .column__title {
  font-size: 1.125rem;
}

.column__company {
  color: var(--colorGray);
  font-size: 0.875rem;
  margin-top: 1rem;
}

@media screen and (max-width: 1200px) {
  .column__content {
    gap: 3.3rem;
  }
}

@media screen and (max-width: 768px) {
  .column {
    margin-top: clamp(100px * var(--sp-scale-min), calc(100 * 100vw / 390), 100px * var(--sp-scale-max));
  }

  .column__content {
    grid-template-columns: 1fr;
    gap: clamp(40px * var(--sp-scale-min), calc(40 * 100vw / 390), 40px * var(--sp-scale-max));
    margin-top: clamp(40px * var(--sp-scale-min), calc(40 * 100vw / 390), 40px * var(--sp-scale-max));
  }

  .topics__tag {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
  }

  .column__dateWrap {
    gap: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
  }

  .column__date {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
  }

  .column__tag {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
  }

  .column__title {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
    margin-top: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max))
  }

  .column__company {
    font-size: clamp(12px * var(--sp-scale-min), calc(12 * 100vw / 390), 12px * var(--sp-scale-max));
    margin-top: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
  }

  .column__topics .column__company {
    font-size: clamp(14px * var(--sp-scale-min), calc(14 * 100vw / 390), 14px * var(--sp-scale-max));
    margin-top: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .column__topics .column__date {
    font-size: clamp(16px * var(--sp-scale-min), calc(16 * 100vw / 390), 16px * var(--sp-scale-max));
  }

  .column__topics .column__title {
    font-size: clamp(18px * var(--sp-scale-min), calc(18 * 100vw / 390), 18px * var(--sp-scale-max));
    margin-top: clamp(9.5px * var(--sp-scale-min), calc(9.5 * 100vw / 390), 9.5px * var(--sp-scale-max));
  }

  .column__item {
    gap: clamp(15.7px * var(--sp-scale-min), calc(15.7 * 100vw / 390), 15.7px * var(--sp-scale-max));
  }

  .column__item {
    margin-bottom: clamp(24px * var(--sp-scale-min), calc(24 * 100vw / 390), 24px * var(--sp-scale-max));
  }

  .column__item:last-child {
    margin-bottom: clamp(8px * var(--sp-scale-min), calc(8 * 100vw / 390), 8px * var(--sp-scale-max));
  }
}