/* === Hero === */
.hero {
    width: 100%;
}

.hero__content {
    position: relative;
}

.hero__slider__swiper-pagination {
    position: absolute;
    justify-content: end;
    top: auto;
    right: 30px;
    bottom: 20px!important;
    left: auto!important;
    display: flex;
    z-index: var(--z-default);
}

.hero__slider__swiper-pagination .swiper-pagination-bullet {
    width: 15px;
    height: 15px;
    background-color: rgba(220, 235, 232, 0.8);
    opacity: 1;
    border-radius: 8px;
}

.hero__slider__swiper-pagination .swiper-pagination-bullet-active {
    background-color: rgba(12, 84, 77, 0.8);
}

.hero__body {
    position: absolute;
    bottom: 11%;
    left: 7%;
    padding-right: calc(60px + 7%);
    color: var(--white);
    text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.45);
    font-weight: 700;
    z-index: var(--z-default);
}

.hero__slider .swiper-slide {
  position: relative;
}

.hero__slider .swiper-slide::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
}

.main-visual__title {
    font-size: min(2.7vw, var(--font-heading));
    line-height: 1.57;
}

.main-visual__subtitle {
    margin-top: 20px;
    line-height: 1.875;
}

/* === Instagram === */

.instagram__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(3, 1fr);
}

/* === News === */
.news {
    padding-right: 20px;
    padding-left: 20px;
    background-image: url(../images/bg.png);
    background-position: center;
    background-repeat: repeat;
    background-size: 40%;
}

.news__container {
    max-width: 740px;
    padding: 40px 50px;
    background-color: var(--white);
}

.news__container .section__title span {
  display: flex;
  gap: 10px;
  align-items: center;
}

.news__article + .news__article {
    margin-top: 15px;
}

.news__article a {
    display: flex;
    align-items: center;
    gap: 30px;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
}

.news__label {
  font-size: 12px;
    display: block;
    width: fit-content;
    padding: 8px 24px;
    background: var(--yellow);
    border-radius: 10px;
}

.news__excerpt {
    border-bottom: solid 1px var(--green-800);
    overflow: hidden;
    white-space: nowrap;
}

.button-primary--news {
    margin-top: 30px;
}

.news-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.news .section__title {
  color: #0C544D;
  font-size: 24px;
  display: flex;
  align-items: center;
}

.news .section__title img {
  width: 27px;
}

.mission-vision .section__title {
  font-size: 24px;
  padding: 0 60px;
}

.bb-100-brown::after {
  right: 0px;
}


/* === Top Page / SP === */
@media screen and (max-width: 939px) {

  .container-inner {
    padding-right: 20px;
    padding-left: 20px;
  }

  /* Hero */
  .hero__image-area {
    position: relative;
  }

  .hero__image {
    object-fit: cover;
  }

  .hero__body {
    bottom: 60px;
    left: 20px;
    padding-right: 20px;
  }

  .main-visual__title {
    font-size: 20px;
    line-height: 1.6;
  }

  .main-visual__subtitle {
    margin-top: 15px;
    font-size: 0.9375rem;
    line-height: 1.8;
  }

  .hero__slider__swiper-pagination {
    right: 20px;
    bottom: 20px !important;
  }

  /* Mission & Vision */
  .mission-vision__content {
    gap: 16px;
    position: relative;
  }

  .mission-vision__content:first-of-type::after,
  .mission-vision__content:nth-of-type(2)::before,
  .mission-vision__content:last-of-type::before,
  .mission-vision__content:last-of-type::after {
    display: none;
  }

  .mission-vision__content:nth-of-type(2),
  .mission-vision__content:last-of-type {
    max-width: none;
    margin-right: auto;
    margin-left: auto;
  }

  .mission__text,
  .vision__text,
  .environment__text {
    width: 100%;
    max-width: none;
    text-align: left;
    font-size: 0.9375rem;
    line-height: 2;
  }

  .mission__subtitle,
  .vision__subtitle,
  .environment__subtitle {
    font-size: 18px;
    line-height: 1.8;
  }

  /* Instagram */
  .instagram {
    padding-right: 20px;
    padding-left: 20px;
  }

  .instagram__grid-wrapper {
    margin-top: 30px;
  }

  .instagram__grid {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto;
    gap: 6px;
  }

  .instagram__photo img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }

  /* News */
  .news {
    padding-right: 20px;
    padding-left: 20px;
    background-size: 80%;
  }

  .news__container {
    padding: 35px 20px;
  }

  .news__articles {
    margin-top: 25px;
  }

  .news__article a {
    display: block;
    font-size: 0.875rem;
    line-height: 1.7;
    padding-top: 10px;
  }

  .news__article time {
    display: block;
  }

  .news__label {
    margin-top: 0;
    padding: 6px 18px;
    font-size: 0.8125rem;
  }

  .news__excerpt {
    margin-top: 10px;
    white-space: normal;
    line-height: 1.7;
    padding-bottom: 10px;
  }
}