@charset "utf-8";

#gall_ul { display: flex; justify-content: space-between; }

#solution h2 { color: #000; }
.card .gall_text_href .bar2 { width: 0; }
.card:hover .gall_text_href .bar2 { width: 80px; height: 3px; background: #7ab1fa; margin: 20px 0; transition: all 0.3s; }

#bo_gall .gall_img img { display: block; margin: 0 auto; }
:root {
  --cover-timing: 0.5s;
  --cover-ease: cubic-bezier(0.66, 0.08, 0.19, 0.97);
  --cover-stagger: 0.15s;

  --text-timing: .75s;
  --text-stagger: 0.015s;
  --text-ease: cubic-bezier(0.38, 0.26, 0.05, 1.07);

  --title-stagger: 0.05s;
  --highlight: white;
}


.card {
  position: relative;
  overflow: hidden;
  background: #fff;
  /* aspect-ratio: 9/12; */
  display: flex;
  flex-direction: column;
  border-radius: 7px;
  box-shadow:
    rgba(0, 0, 0, 0.5) 0px 0 5vw -3vw;

  transition: box-shadow 1s var(--cover-ease);


  & > * {
    z-index: 2;
  }

  & > img {
    z-index: 0;
    transition: all .8s cubic-bezier(0.66, 0.08, 0.19, 0.97);
    transform: scale(0.9);
  }

  &::before,
  &::after {
    content: "";
    width: 100%;
    height: 50%;
    top: 0;
    left: 0;
    background: rgba(0,0,0,0.5);
    position: absolute;
    transform-origin: left;
    transform: scaleX(0);
    transition: all var(--cover-timing) var(--cover-ease);
    z-index: 1;
  }

  &::after {
    transition-delay: var(--cover-stagger);
    top: 50%;
  }

  &:hover,
  &:focus {

    box-shadow:
      white 0 5vw 6vw -9vw,
      var(--highlight) 0 5.5vw 5vw -7.5vw;

    &::before,
    &::after {
      transform: scaleX(1);
    }

    & .char,
    & .word {
      opacity: 1;
      transform: translateY(0);
      color: #fff;
    }

    & .char {
      transition-delay: calc(0.1s + var(--char-index) * var(--title-stagger));

       --highlight: #fff;
    }

    & .word {
      transition-delay: calc(0.1s + var(--word-index) * var(--text-stagger));
    }

    & img {
      transform: scale(1.0);
    }

    & .wr_1 {
      opacity: 0.8;
    }

  }


}

.card .gall_text_href {
  position: absolute;
  inset: 20px;
  top: auto;
}

.card .bo_tit {
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 0.2em;
  word-break: keep-all;
}

.card .bo_cnt {
  font-size: 16px;
  line-height: 1.4;
  margin-top: 0.2em;
  margin-bottom: 0;
  word-break: keep-all;
}

.card .wr_1 { font-size: 20px; }

.char,
.word {
  color: #fff;
  opacity: 0;
  position: relative;
  transform: translateY(20px
    );
  transition-property: transform, opacity, color;
  transition-timing-function: var(--text-ease);
  transition-duration: var(--text-timing), var(--text-timing), calc(var(--text-timing)*2);
}

.card img {

  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 7px;
}

/*tablet*/
@media (min-width:768px) and (max-width:1024px){

  .inner_wrap { padding: 100px 20px; }
  #gall_ul { flex-wrap: wrap; }
  .gallery_li { width: 50%; }
  .gall_row .col-gn-1 { margin-bottom: 20px; }
  .card img { max-height: 300px !important; }
  .char, .word { opacity: 1; transform: inherit; }
  .card .bo_tit { padding-left: 20px; margin-bottom: 20px; font-size: 18px; line-height: 1.25; color: #333; }
  .card .bo_cnt { font-size: 16px; color: #666; }
  .card .gall_text_href { position: relative; inset: inherit; height: 40px; }
  .card .gall_text_href .bar2 {  width: 80px; height: 3px; background: #7ab1fa; margin: 10px 0; }

}


/*mobile*/
@media (max-width:767px){
  .inner_wrap { padding: 100px 20px; }
  #gall_ul { flex-wrap: wrap; }
  .gallery_li { width: 50%; }
  .gall_row .col-gn-1 { margin-bottom: 20px; }
  .card img { max-height: 300px !important; }
  .char, .word { opacity: 1; transform: inherit; }
  .card .bo_tit { padding-left: 5px; margin-bottom: 20px; font-size: 14px; line-height: 1.25; color: #333; }
  .card .bo_cnt { font-size: 14px; color: #666; }
  .card .gall_text_href { position: relative; inset: inherit; height: 40px; }
  .card .gall_text_href .bar2 {  width: 80px; height: 3px; background: #7ab1fa; margin: 10px 0; }
}
