/* kv
======================================= */
.kv {
  margin-bottom: 50px;
  height: 280px;
  background: url("/b_solution/office/images/kv/bg_main-pc.jpg?v=20230810") no-repeat center bottom;
  background-size: cover;
}
.kv__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: url("/b_solution/office/images/kv/bg_text-pc.png?v=20230810") no-repeat center;
  text-align: center;
}
.kv__title {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.kv__title span {
  line-height: 1;
}
.kv__title span:lang(ja) {
  background: linear-gradient(90deg, #2e9bb6, #4ea793 50%, #63b15f);
  font-size: 50px;
  font-weight: 400 !important;
  line-height: 1.2;
  letter-spacing: -.1em;
  background-clip: text;
  -webkit-background-clip: text;
  text-fill-color: transparent;
  -webkit-text-fill-color: transparent;
}
.kv__lead {
  margin: 1em 0 0 0;
  font-size: 18px;
  line-height: 1.55;
}
@media only screen and (max-width: 767px) {
  .kv {
    margin: 0 -4vw 6.66667vw;
    height: 40vw;
    background: url("/b_solution/office/images/kv/bg_main-sp.jpg?v=20230810") no-repeat;
    background-size: 100% 100%;
  }
  .kv__inner {
    background: none;
  }
  .kv__title {
    gap: 2.66667vw;
  }
  .kv__title span:lang(ja) {
    font-size: 5.33333vw;
    line-height: 1.25;
  }
  .kv__lead {
    margin-top: .5em;
    font-size: 3.2vw;
    line-height: 1.41;
  }
}

/* carousel
======================================= */
.carousel {
  margin-bottom: 80px;
  overflow: hidden;
}
.carousel__inner {
  width: 1240px;
  margin: 0 auto;
}
.carousel__item {
  margin: 0 15px;
}
.carousel__item__link {
  display: block;
  text-decoration: none !important;
  background: #fff;
  box-shadow: 0 0 30px rgba(67, 104, 123, 0.1);
}
.carousel__item__link:hover .carousel__item__image img {
  filter: brightness(80%);
  transform: scale(1.2);
}
.carousel__item__link:hover .item__title span {
  color: #FF3300;
}
.carousel__item__image {
  overflow: hidden;
}
.carousel__item__image img {
  transition: all .3s ease-out;
}
.carousel__item__body {
  padding: 20px;
}
.carousel__ctrl {
  position: absolute;
  top: 92px;
  cursor: pointer;
  z-index: 2;
}
.carousel__ctrl img {
  filter: drop-shadow(0 0 30px rgba(67, 104, 123, 0.2));
}
.carousel__ctrl--prev {
  left: 0;
  transform: translateX(-50%);
}
.carousel__ctrl--next {
  right: 0;
  transform: translateX(50%) rotate(180deg);
}
.carousel .slick-list {
  overflow: visible;
  z-index: 1;
}
.carousel .slick-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 45px;
}
.carousel .slick-dots > li {
  width: 10px;
  height: 10px;
  border-radius: 5px;
  background: #999;
  cursor: pointer;
}
.carousel .slick-dots > li.slick-active {
  background: #333;
  cursor: default;
}
.carousel .slick-dots > li button {
  display: none;
}
@media (min-width: 768px) {
  .carousel__item {
    width: 394px !important;
  }
}
@media only screen and (max-width: 767px) {
  .carousel {
    margin-bottom: 12.66667vw;
    margin-left: -4vw;
    margin-right: -4vw;
  }
  .carousel__inner {
    width: auto;
  }
  .carousel__item {
    box-sizing: border-box;
    margin: 0;
    padding: 0 1.33333vw;
    width: 73.6vw !important;
  }
  .carousel__item__body {
    padding: 4vw;
  }
  .carousel__ctrl {
    top: 16.93333vw;
  }
  .carousel__ctrl img {
    width: 10.93333vw;
    height: auto;
  }
  .carousel__ctrl--prev {
    left: 8.66667vw;
    transform: none;
  }
  .carousel__ctrl--next {
    right: 8.66667vw;
    transform: translateX(0) rotate(180deg);
  }
  .carousel .slick-dots {
    margin-top: 9.33333vw;
  }
}

/* item
======================================= */
.item__title {
  margin-bottom: .75em;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  color: #0b60b5;
}
.item__title a, .item__title span {
  display: inline-block;
  padding-left: 32px;
  background: url("/b_solution/office/common/images/icn_arw.svg") no-repeat left 0.1em;
  background-size: 22px 22px;
  text-decoration: underline;
}
.item__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 2px;
}
.item__tags li {
  padding: .2em .35em .1em;
  border: solid 2px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
}
.item__tags li.c1 {
  border-color: #0f796c;
  color: #0f796c;
}
.item__tags li.c2 {
  border-color: #005792;
  color: #005792;
}
.item__tags li.c3 {
  border-color: #ec7700;
  color: #ec7700;
}
.item__tags li.c4 {
  border-color: #757575;
  color: #757575;
}
.item__tags li.c5 {
  border-color: #009cd5;
  color: #009cd5;
}
.item__lead {
  margin-top: .65em;
  margin-bottom: -1em;
  color: #333;
  font-size: 14px;
  line-height: 1.85;
}
@media only screen and (max-width: 767px) {
  .item__title {
    margin-bottom: .5em;
    font-size: 4vw;
    line-height: 1.33;
  }
  .item__title a, .item__title span {
    padding-left: 7.2vw;
    background-size: 5.86667vw 5.86667vw;
  }
  .item__tags li {
    font-size: 3.2vw;
  }
  .item__lead {
    margin-bottom: 0;
    font-size: 3.2vw;
    line-height: 1.416;
  }
}

/* grid
======================================= */
.grid {
  display: flex;
  gap: 60px;
  width: 1240px;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .grid {
    gap: 4vw;
    width: auto;
  }
}

/* section
======================================= */
.section {
  flex: 1 0 0%;
}
.section__title {
  margin-bottom: 10px;
  font-size: 24px;
  font-weight: bold;
  text-align: center;
}
.section__title > span {
  position: relative;
  display: inline-block;
  padding: 0 1.25em;
}
.section__title > span::before, .section__title > span::after {
  position: absolute;
  top: 45%;
  content: "";
  display: block;
  width: 1.25em;
  height: .00833em;
}
.section__title > span::before {
  left: 0;
  transform: rotate(60deg);
}
.section__title > span::after {
  right: 0;
  transform: rotate(-60deg);
}
.section__subtitle p {
  min-height: 5em;
  padding: 1em 2em;
  font-size: 16px;
  line-height: 1.625;
}
.section--workplace .section__title {
  color: #0f796c;
}
.section--workplace .section__title > span::before, .section--workplace .section__title > span::after {
  background: #0f796c;
}
.section--workplace .section__subtitle {
  background: #e6f0f0;
}
.section--workstyle .section__title {
  color: #005792;
}
.section--workstyle .section__title > span::before, .section--workstyle .section__title > span::after {
  background: #005792;
}
.section--workstyle .section__subtitle {
  background: #eaf4f9;
}
.section__item {
  border-bottom: solid 1px #dadada;
}
.section__item__link {
  display: flex;
  flex-wrap: wrap;
  gap: 0 15px;
  padding: 30px 0;
  text-decoration: none !important;
}
.section__item__link .item__title {
  flex: 0 0 100%;
  min-height: 3em;
}
.section__item__link:hover .item__title span {
  color: #FF3300;
}
.section__item__link:hover .section__item__image img {
  filter: brightness(80%);
  transform: scale(1.2);
}
.section__item__image {
  position: relative;
  flex: 0 0 164px;
  overflow: hidden;
}
.section__item__image img {
  transition: all .3s ease-out;
}
.section__item__image svg {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.section__item__body {
  flex: 0 0 411px;
}
.section__more {
  margin-top: 50px;
}
.section__banner {
  margin: 60px 0 -30px;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .section__title {
    margin-bottom: 2vw;
    font-size: 3.2vw;
  }
  .section__subtitle p {
    padding: 1em;
    font-size: 3.2vw;
    line-height: 1.416;
  }
  .section--workplace .section__subtitle {
    margin-left: -4vw;
  }
  .section--workstyle .section__subtitle {
    margin-right: -4vw;
  }
  .section__item__link {
    flex-direction: column;
    padding: 4vw 0;
  }
  .section__item__link .item__title {
    flex: 0 0 auto;
    min-height: unset;
    font-size: 3.2vw;
    line-height: 1.416;
  }
  .section__item__link .item__title span {
    padding-left: 4.26667vw;
    background-size: 2.93333vw 2.93333vw;
  }
  .section__item__link .item__title br {
    display: none;
  }
  .section__item__image {
    flex: 0 0 auto;
    margin-bottom: 2.66667vw;
  }
  .section__item__body {
    flex: 0 0 auto;
  }
  .section__more {
    margin-top: 5.33333vw;
  }
  .section__banner {
    margin: 10.66667vw 0 -5.33333vw;
  }
}
