/* ================================
   トップページ : Home
================================*/

/* -----------------------------
  mainvisual 
-------------------------------*/
.mainvisual__cont {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.mainvisual__slider-item {
  position: relative;
}
/* slider */
.slide-arrow {
  background-color: #333;
  bottom: 0;
  height: 0;
  margin: auto;
  position: absolute;
  top: 0;
  width: 0;
  z-index: 1;
}
.prev-arrow,
.next-arrow {
  display: block;
  width: min(3.57vw, 5rem);
  height: min(3.57vw, 5rem);
  background: #fff;
  transition: all 0.3s ease;
  cursor: pointer;
}
.prev-arrow {
  transform: rotate(180deg);
  left: 15%;
}
.next-arrow {
  right: 15%;
}
.prev-arrow::before,
.next-arrow::before {
  position: absolute;
  content: "";
  width: 1rem;
  height: 1rem;
  border-right: 2px solid #000;
  border-top: 2px solid #000;
  top: 0;
  bottom: 0;
  left: -7px;
  right: 0;
  margin: auto;
  transform: rotate(45deg);
}
.slick-dots {
  bottom: -3.5rem;
}

/*--------------------------------
    top-latest-news
---------------------------------*/
.top-latest-news {
  margin-top: min(3.57vw, 5rem);
  background-color: #f7f6f2;
}
.top-latest-news__cont {
  display: flex;
  align-items: center;
}
.top-latest-news__tit {
  padding: min(1.43vw, 2rem) 0;
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
  font-weight: 500;
  color: #008cd6;
  font-family: "Kiwi Maru", serif;
}
.top-latest-news__link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2.86vw, 4rem);
  flex: 0.8;
}
.top-latest-news__link-time {
  font-size: min(0.86vw, 1.2rem);
}
.top-latest-news__link-tit {
  font-size: min(0.86vw, 1.2rem);
  font-weight: bold;
  color: #008cd6;
  text-decoration: underline;
  line-height: 1.5;
}

/*--------------------------------
    top-reason
---------------------------------*/
.top-reason {
  margin-top: min(4.29vw, 6rem);
}
.top-reason__top-tit span::before {
  width: 5em;
}
.top-reason__list {
  display: flex;
  gap: min(2.14vw, 3rem);
  margin-top: min(4.29vw, 6rem);
}
.top-reason__item {
  flex: 1;
  background-color: #f7f6f2;
  padding: 1rem 1rem min(2.14vw, 3rem);
}
.top-reason__link {
  display: flex;
  flex-direction: column;
  gap: min(2.14vw, 3rem);
}
.top-reason__item-tit {
  font-size: min(1.71vw, 2.4rem);
  line-height: 1.5;
  font-weight: bold;
  color: #fe9927;
  text-align: center;
  padding-top: min(2.14vw, 3rem);
}
.top-reason__btn {
  width: 25.5%;
  margin: min(5vw, 7rem) auto 0;
}

/*--------------------------------
    top-service
---------------------------------*/
.top-service {
  margin-top: min(4.29vw, 6rem);
  background-image: url(/wp-content/themes/osoujibro/imgs/1top/back_01.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  background-color: #f7f6f2;
  padding: min(4.29vw, 6rem) 0;
}
.top-service__top-tit span::before {
  width: 12em;
}
.top-service__cont {
  padding-top: min(0.71vw, 1rem);
}
.top-service__list {
  display: flex;
  margin-top: min(2.86vw, 4rem);
  gap: min(1.43vw, 2rem);
}
.top-service__item {
  flex: 1;
  background-color: #008cd6;
  padding: 1rem 1rem min(1.43vw, 2rem);
}
.top-service__list--campaign .top-service__item {
  background-color: none;
  padding: 0;
}
.top-service__link {
  display: flex;
  flex-direction: column;
  gap: min(1.43vw, 2rem);
  align-items: center;
}
.top-service__item-tit {
  color: #fff;
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
}
.top-service__item:hover .top-service__link {
  opacity: 0.8;
  transition: 0.3s;
}
.top-service__item--none:hover .top-service__link {
  opacity: 1;
}
.top-service__item--none .top-service__link {
  cursor: auto;
}

/*--------------------------------
    top-about
---------------------------------*/
.top-about {
  background-image: url(/wp-content/themes/osoujibro/imgs/1top/back_02.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  padding-top: min(4.29vw, 6rem);
}
.top-about__top-tit span::before {
  width: 14em;
}
.top-about__cont {
  margin-top: min(3.57vw, 5rem);
}
.top-about__list {
  display: flex;
  flex-wrap: wrap;
  gap: min(2.14vw, 3rem);
}
.top-about__item {
  width: calc(100% / 3 - min(2.14vw, 3rem));
  background-color: #e3f1fc;
  padding: 0 min(1.43vw, 2rem) min(1.43vw, 2rem);
}
.top-about__item-top {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.top-about__item-pic {
  width: min(7.14vw, 10rem);
}
.top-about__item-tit {
  flex: 1;
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
  font-weight: bold;
  color: #008cd6;
}
.top-about__item-info {
  position: relative;
  background-color: #fff;
  padding: min(1.43vw, 2rem);
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.2);
  height: min(11vw, 14rem);
}
.top-about__item-info::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  border: min(0.64vw, 0.9rem) solid transparent;
  border-top: min(0.64vw, 0.9rem) solid #008cd6;
  transform: rotate(-45deg);
}
.top-about__item-category {
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
  font-weight: bold;
  color: #008cd6;
}
.top-about__item-text {
  font-size: min(1vw, 1.2rem);
  line-height: 1.4;
  padding-top: 1rem;
}
.top-about_link:hover .top-about__item-category {
  color: #fe9927;
}
.top-about_link:hover .top-about__item-info::after {
  border-top: min(0.64vw, 0.9rem) solid #fe9927;
}

/*--------------------------------
    top-news_portfolio
---------------------------------*/
.top-news_portfolio {
  margin-top: min(4.29vw, 6rem);
  background-image: url(/wp-content/themes/osoujibro/imgs/1top/back_01.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  background-color: #f7f6f2;
  padding: min(3.57vw, 5rem) 0;
}
.top-news_portfolio__cont {
  display: flex;
  gap: min(2.14vw, 3rem);
}
.top-news,
.top-portfolio {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* top-news */
.top-news__top-tit span {
  padding-bottom: 1.8em;
}
.top-news__top-tit span::before {
  width: 4em;
  bottom: 1.4em;
}
.top-news__cont {
  margin-top: min(1.64vw, 2.3rem);
}
.top-news__list {
  display: flex;
  flex-direction: column;
  gap: min(2.14vw, 3rem);
}
.top-news__link {
  display: flex;
  gap: min(2.86vw, 4rem);
  width: 100%;
}
.top-news__pic {
  position: relative;
  flex: 0.23;
}
.top-news__pic::before {
  content: "";
  display: block;
  padding-top: 67%;
}
.top-news__img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  object-fit: cover;
}
.top-news__link:hover .top-news__pic {
  opacity: 0.7;
  transition: 0.3s;
}
.top-news__info {
  flex: 1;
}
.top-news__time {
  font-size: min(0.86vw, 1.2rem);
}
.top-news__tit {
  font-size: min(1.14vw, 1.6rem);
  line-height: 1.5;
  margin-top: min(0.36vw, 0.5rem);
}
.top-news__btn {
  width: 50%;
  margin: min(4.29vw, 6rem) auto 0;
}
.top-news__btn a.top-btn {
  padding: min(0.86vw, 1.2rem) min(1.428vw, 2rem);
}

/* top-portfolio */
.top-portfolio__top-tit span {
  padding-bottom: 1.8em;
}
.top-portfolio__top-tit span::before {
  width: 13em;
  bottom: 1.4em;
}
.top-portfolio__cont {
  margin-top: min(1.64vw, 2.3rem);
}
.top-portfolio__list {
  display: flex;
  gap: min(2.14vw, 3rem);
  row-gap: min(1.07vw, 1.5rem);
  flex-wrap: wrap;
}
.top-portfolio__item {
  width: calc(100% / 3 - min(2.14vw, 2rem));
}
.top-portfolio__pic {
  position: relative;
  width: 100%;
}
.top-portfolio__pic::before {
  content: "";
  display: block;
  padding-top: 70%;
}
.top-portfolio__link:hover .top-portfolio__pic:hover {
  opacity: 0.7;
  transition: 0.3s;
}
.top-portfolio__img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  object-fit: contain;
  background-color: #fff;
}
.top-portfolio__btn {
  width: 50%;
  /* margin: min(4.29vw, 6rem) auto 0; */
  margin: auto auto 0;
}
.top-portfolio__btn a.top-btn {
  padding: min(0.86vw, 1.2rem) min(1.428vw, 2rem);
}

/*--------------------------------
    top-question
---------------------------------*/
.top-question {
  background-image: url(/wp-content/themes/osoujibro/imgs/1top/back_02.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  padding: min(3.57vw, 5rem) 0 min(1.43vw, 2rem);
}
.top-question__top-tit span::before {
  width: 6em;
}
.top-question__cont {
  width: 75%;
  margin: min(3.57vw, 5rem) auto 0;
}
.top-question__item {
  margin-top: min(1.43vw, 2rem);
}
.top-question__tit {
  background: url(/wp-content/themes/osoujibro/imgs/1top/faq_q.png) no-repeat;
  background-position: 2% 2%;
  background-size: min(2.14vw, 3rem);
  width: 100%;
  padding: min(1.43vw, 2rem) min(6.429vw, 9rem);
  background-color: #e3f1fc;
  color: #484848;
  font-size: min(1.428vw, 2rem);
  font-weight: bold;
  line-height: 1.45;
  position: relative;
}
.top-question__tit::before,
.top-question__tit::after {
  content: "";
  display: inline-block;
  width: 1.4em;
  height: 0.2em;
  background-color: #008cd6;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 1s;
  border-radius: 5px;
}
.top-question__tit::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform 0.5s;
}
.top-question__tit.show::before {
  opacity: 0;
}
.top-question__tit.show::after {
  transform: translateY(-50%) rotate(180deg);
}
.top-question__txt {
  background: url(/wp-content/themes/osoujibro/imgs/1top/faq_a.png) no-repeat;
  /* background-position: 2% min(1.428vw, 2rem); */
  background-position: 2% min(1.07vw, 1.5rem);
  background-size: min(2.14vw, 3rem);
  padding: min(1.428vw, 2rem) min(2.85vw, 4rem) min(1.428vw, 2rem)
    min(6.429vw, 9rem);
  font-size: min(1.285vw, 1.8rem);
  line-height: 1.8;
  background-color: #f7f6f2;
  min-height: 3em;
  box-sizing: content-box;
  display: none;
}
.top-question__txt p {
  min-height: 3em;
  display: flex;
  align-items: center;
}
.top-question__txt.stay {
  display: block;
}
.top-question__sub-tit {
  font-size: min(1.79vw, 2.5rem);
  line-height: 1.44;
  font-weight: bold;
  text-align: center;
  color: #008cd6;
  margin: min(2.14vw, 3rem) 0;
}

/*--------------------------------
	contact_buner
------------------------------- */
.contact_buner__portfolio {
  display: none;
}

/*--------------------------------
    TB用
----------------------------------- */
@media all and (max-width: 960px) {
  /* -----------------------------
    mainvisual 
  -------------------------------*/
  /* slider */
  .prev-arrow {
    left: 4%;
  }
  .next-arrow {
    right: 4%;
  }
  .prev-arrow::before,
  .next-arrow::before {
    width: min(1.04vw, 1rem);
    height: min(1.04vw, 1rem);
    left: max(-0.73vw, -0.7rem);
  }
}
/*--------------------------------
    SP用
----------------------------------- */
@media all and (max-width: 530px) {
  /* -----------------------------
    mainvisual 
  -------------------------------*/
  .mainvisual__slider-item {
    height: auto;
  }

  /* slider */
  .slick-dotted.slick-slider {
    margin-bottom: 4.5rem;
  }
  .slick-dots {
    bottom: -3.5rem;
  }

  /*--------------------------------
    top-latest-news
  ---------------------------------*/
  .top-latest-news {
    margin-top: 0;
  }
  .top-latest-news__cont {
    flex-direction: column;
  }
  .top-latest-news__tit {
    padding: min(2.67vw, 1rem) 0;
    font-size: min(5.33vw, 2rem);
    font-weight: 600;
  }
  .top-latest-news__link {
    padding-bottom: min(2.67vw, 1rem);
  }
  .top-latest-news__link-time {
    font-size: min(2.67vw, 1rem);
  }
  .top-latest-news__link-tit {
    font-size: min(2.67vw, 1rem);
  }

  /*--------------------------------
    top-reason
  ---------------------------------*/
  .top-reason {
    margin-top: min(8vw, 3rem);
  }
  .top-reason__list {
    flex-direction: column;
    gap: min(2.67vw, 1rem);
    margin-top: min(5.87vw, 2.2rem);
  }
  .top-reason__item {
    padding: min(2.67vw, 1rem) min(2.67vw, 1rem) min(8vw, 3rem);
  }
  .top-reason__item-tit {
    font-size: min(5.87vw, 2.2rem);
    padding-top: min(8vw, 3rem);
  }
  .top-reason__btn {
    width: 65%;
    margin: min(5.33vw, 2rem) auto 0;
  }

  /*--------------------------------
    top-service
  ---------------------------------*/
  .top-service {
    margin-top: min(16vw, 6rem);
    padding: min(6.67vw, 2.5rem) 0;
    background-size: 260%;
  }
  .top-service__cont {
    padding-top: 0;
  }
  .top-service__list {
    flex-direction: column;
    width: 80%;
    margin: min(5.33vw, 2rem) auto 0;
    gap: min(2.67vw, 1rem);
  }
  .top-service__item {
    padding: min(2.67vw, 1rem) min(2.67vw, 1rem) min(5.33vw, 2rem);
  }
  .top-service__item--none {
    display: none;
  }
  .top-service__list--campaign {
    margin-top: min(5.33vw, 2rem);
    width: 100%;
  }
  .top-service__link {
    gap: min(5.33vw, 2rem);
  }
  .top-service__item-tit {
    font-size: min(5.33vw, 2rem);
  }

  /*--------------------------------
    top-about
  ---------------------------------*/
  .top-about {
    padding-top: min(6.67vw, 2.5rem);
    background-size: 260%;
  }
  .top-about__cont {
    margin-top: min(5vw, 2rem);
  }
  .top-about__list {
    gap: 1rem;
  }
  .top-about__item {
    width: 100%;
    padding: 0 min(5.33vw, 2rem) min(5.33vw, 2rem);
  }
  .top-about__item-pic {
    width: min(24vw, 9rem);
  }
  .top-about__item-tit {
    font-size: min(5.33vw, 2rem);
  }
  .top-about__item-info {
    padding: min(5.33vw, 2rem);
    height: min(37.5vw, 14rem);
  }
  .top-about__item-info::after {
    border: min(4vw, 1.5rem) solid transparent;
    border-top: min(4vw, 1.5rem) solid #008cd6;
    bottom: -1rem;
    right: -1rem;
  }
  .top-about__item-category {
    font-size: min(5.33vw, 2rem);
  }
  .top-about__item-text {
    font-size: min(3.2vw, 1.2rem);
  }
  .top-about_link:hover .top-about__item-info::after {
    border-top: min(4vw, 1.5rem) solid #fe9927;
  }

  /*--------------------------------
    top-news_portfolio
  ---------------------------------*/
  .top-news_portfolio {
    margin-top: min(16vw, 6rem);
    padding: min(6.67vw, 2.5rem) 0 min(8vw, 3rem);
    background-size: 260%;
  }
  .top-news_portfolio__cont {
    flex-direction: column;
    gap: min(16vw, 6rem);
  }
  /* top-news */
  .top-news__top-tit span {
    padding-bottom: 1.5em;
  }
  .top-news__top-tit span::before {
    bottom: 1.05em;
  }
  .top-news__cont {
    margin-top: min(5.33vw, 2rem);
  }
  .top-news__list {
    gap: min(8vw, 3rem);
  }
  .top-news__link {
    gap: min(8vw, 3rem);
  }
  .top-news__pic {
    flex: 0.38;
    background-color: #fff;
  }
  .top-news__img {
    object-fit: contain;
  }
  .top-news__time {
    font-size: min(2.67vw, 1rem);
  }
  .top-news__tit {
    font-size: min(3.73vw, 1.4rem);
    margin-top: min(1.33vw, 0.5rem);
  }
  .top-news__btn {
    width: 65%;
    margin: min(8vw, 3rem) auto 0;
  }
  .top-news__btn a.top-btn {
    padding: min(2.67vw, 1rem);
  }

  /* top-portfolio */
  .top-portfolio__top-tit span {
    padding-bottom: 1.5em;
  }
  .top-portfolio__top-tit span::before {
    bottom: 1.05em;
  }
  .top-portfolio {
    background-image: url(/wp-content/themes/osoujibro/imgs/1top/back_01.jpg);
    background-size: 260%;
    background-repeat: no-repeat;
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: min(6.67vw, 2.5rem) 2.75% 0;
  }
  .top-portfolio__cont {
    margin-top: min(5.33vw, 2rem);
  }
  .top-portfolio__list {
    gap: min(4vw, 1.5rem);
  }
  .top-portfolio__item {
    width: calc(100% / 2 - min(2vw, 0.75rem));
  }
  .top-portfolio__btn {
    width: 65%;
    margin: min(8vw, 3rem) auto 0;
  }
  .top-portfolio__btn a.top-btn {
    padding: min(2.67vw, 1rem);
  }

  /*--------------------------------
    top-question
  ---------------------------------*/
  .top-question {
    padding: min(6.67vw, 2.5rem) 0 0;
    background-size: 260%;
  }
  .top-question__cont {
    width: 100%;
    margin-top: min(8vw, 3rem);
  }
  .top-question__item {
    margin-top: min(2.67vw, 1rem);
  }
  .top-question__tit {
    background-position: 2.5% min(4vw, 1.5rem);
    background-size: min(5.33vw, 2rem);
    padding: min(5.33vw, 2rem) min(12vw, 4.5rem);
    font-size: min(4.8vw, 1.8rem);
  }
  .top-question__tit::before,
  .top-question__tit::after {
    content: "";
    display: inline-block;
    width: 1.2em;
    height: 0.15em;
    background-color: #008cd6;
    position: absolute;
    right: 0.75em;
  }
  .top-question__txt {
    background-position: 2.5% min(4vw, 1.5rem);
    background-size: min(5.33vw, 2rem);
    /* padding: min(5.33vw, 2rem) min(12vw, 4.5rem); */
    padding: min(5.33vw, 2rem) min(5.33vw, 2rem) min(5.33vw, 2rem)
      min(12vw, 4.5rem);
    font-size: min(3.2vw, 1.2rem);
    line-height: 1.45;
    min-height: 2.5em;
  }
  .top-question__txt p {
    min-height: 2.5em;
  }
  .top-question__sub-tit {
    font-size: min(5.87vw, 2.2rem);
    margin: min(10.67vw, 4rem) 0 min(5.33vw, 2rem);
  }
}
