@charset "UTF-8";
/* ============================================================
// index.scss
============================================================ */
/* ------------------------------------------------------------
// Fluid Design Function
// 最小値〜最大値の間で数値を可変させる共通関数
------------------------------------------------------------ */
/* ------------------------------------------------------------
// hero
------------------------------------------------------------ */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  background: url(../images/index/hero-img.webp) no-repeat bottom center/cover;
}
@media screen and (max-width: 991px) {
  .hero {
    height: 80vh;
  }
}
@media screen and (max-width: 767px) {
  .hero {
    height: 60vh;
  }
}
.hero__content--fixed {
  position: absolute;
  top: 50%;
  left: clamp(20px, 3.6529680365vw + 6.301369863px, 60px);
  transform: translateY(-50%);
}
.hero__content--fixed img {
  width: clamp(200px, 46.3926940639vw + 26.0273972603px, 708px);
}
@media screen and (max-width: 535px) {
  .hero__content--fixed {
    top: 66%;
  }
}

.hero--full {
  max-width: none;
}

.hero__slider--aspect-ratio {
  aspect-ratio: 16/9;
  height: auto;
}

/* ------------------------------------------------------------
// about us
------------------------------------------------------------ */
.about-section {
  max-width: 1300px;
  margin-inline: auto;
}

.about-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(20px, 2.849002849vw + -1.8803418803px, 40px);
}
@media screen and (max-width: 991px) {
  .about-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

.about-media {
  width: 50%;
}
@media screen and (max-width: 991px) {
  .about-media {
    display: flex;
    justify-content: center;
    width: 100%;
    padding-inline: 40px;
  }
}

.about-content {
  position: relative;
  width: 50%;
  padding-right: clamp(110px, 23.0125523013vw + -118.2845188285px, 220px);
}
@media screen and (max-width: 991px) {
  .about-content {
    width: 100%;
    padding-right: 0;
  }
}
.about-content__body {
  line-height: 2.2;
  padding-left: clamp(0px, 4.1841004184vw + -41.5062761506px, 20px);
}
.about-content__deco {
  position: absolute;
  top: -40px;
  right: 0;
  width: clamp(120px, 15.9817351598vw + 60.0684931507px, 295px);
  pointer-events: none;
  z-index: -1;
}
@media screen and (max-width: 1200px) {
  .about-content__deco {
    top: auto;
    bottom: -20px;
  }
  .about-content__deco img {
    opacity: 0.4;
  }
}
@media screen and (max-width: 991px) {
  .about-content__deco {
    position: absolute;
    right: 0;
  }
}

/* ------------------------------------------------------------
// item
------------------------------------------------------------ */
.item-grid-section {
  width: 100%;
  margin-block: clamp(40px, 1.8264840183vw + 33.1506849315px, 60px);
  background-color: #3d5444;
}

.item-grid {
  max-width: 1960px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
@media screen and (max-width: 1200px) {
  .item-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.item-grid__block {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.item-grid__block--title {
  align-items: center;
  justify-content: center;
  background-color: #1a3522;
}
.item-grid__block--title .c-sub-title--white {
  margin-bottom: 0;
}
@media screen and (max-width: 1200px) {
  .item-grid__block--title {
    grid-column: span 2;
    padding-block: 40px;
  }
}
.item-grid__block--bg {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex-direction: row;
  background-color: #1a3522;
}
.item-grid__block--bg img {
  opacity: 0.3;
}
@media screen and (max-width: 1200px) {
  .item-grid__block--bg {
    display: none;
  }
}
.item-grid__block--link {
  color: #fff;
  background-color: #1a3522;
  transition: 0.3s;
}
.item-grid__block--link:hover {
  background-color: #091b0f;
}
.item-grid__block--link:hover .item-grid__link-arrow {
  transform: translateX(6px);
}
.item-grid__link-text {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  text-align: center;
}
.item-grid__link-arrow {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  transition: 0.3s;
}
.item-grid__link-arrow:hover {
  color: #fff;
}

/* ------------------------------------------------------------
// company
------------------------------------------------------------ */
.company-inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 40px;
  padding: clamp(30px, 0.9132420091vw + 26.5753424658px, 40px) clamp(20px, 1.8264840183vw + 13.1506849315px, 40px);
  background-color: #f2efe8;
  border-radius: 10px;
}
@media screen and (max-width: 991px) {
  .company-inner {
    align-items: flex-start;
    flex-direction: column;
  }
}

.company-info {
  width: 50%;
}
@media screen and (max-width: 991px) {
  .company-info {
    width: 100%;
  }
}
.company-info__logo {
  width: clamp(160px, 8.2191780822vw + 129.1780821918px, 250px);
  margin-bottom: 30px;
}
.company-info__address-text {
  font-size: clamp(16px, 0.1826484018vw + 15.3150684932px, 18px);
}
.company-info__tel-block {
  margin-block: clamp(20px, 0.9132420091vw + 16.5753424658px, 30px);
}
.company-info__tel {
  display: block;
  font-size: clamp(34px, 1.2785388128vw + 29.2054794521px, 48px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
}
.company-info__tel-label {
  font-size: clamp(16px, 0.1826484018vw + 15.3150684932px, 18px);
  font-weight: 500;
  margin-right: 4px;
}
.company-info__note {
  font-size: 15px;
  color: #6c0e0e;
}

.company-details {
  display: flex;
  flex-direction: column;
}
.company-details__row {
  display: flex;
  align-items: flex-start;
  padding-block: 6px;
  border-bottom: 1px solid #dddddd;
}
.company-details__row dt {
  flex: 0 0 140px;
  margin-left: -0.5em;
}
.company-details__row dd {
  flex: 1;
}
@media screen and (max-width: 575px) {
  .company-details__row {
    flex-direction: column;
    padding-block: 12px;
  }
  .company-details__row dt {
    flex: none;
  }
}

.company-map {
  width: 50%;
}
@media screen and (max-width: 991px) {
  .company-map {
    width: 100%;
  }
}

/* ------------------------------------------------------------
// company
------------------------------------------------------------ */
.info-section {
  margin-top: 20px;
  padding: clamp(30px, 0.9132420091vw + 26.5753424658px, 40px) clamp(20px, 1.8264840183vw + 13.1506849315px, 40px);
  background-color: #fff;
  border-radius: 10px;
}
.info-section .c-sub-title--black::after {
  display: none;
}
@media screen and (max-width: 767px) {
  .info-section .c-sub-title--black {
    margin-bottom: 0;
  }
}

.badge-new {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  padding: 2px 10px;
  background-color: #6c0e0e;
  border-radius: 6px;
}

.info-scroll-box {
  max-height: 420px;
  padding-right: 20px;
  overflow-y: scroll;
}
@media screen and (max-width: 767px) {
  .info-scroll-box {
    max-height: 400px;
    padding-right: 10px;
  }
}

.info-item {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding-block: 30px;
  border-bottom: 1px solid #ddd;
}
@media screen and (max-width: 767px) {
  .info-item {
    flex-direction: column;
    gap: 12px;
  }
}
.info-item__meta {
  flex: 0 0 160px;
  display: flex;
  align-items: center;
  gap: 16px;
}
@media screen and (max-width: 767px) {
  .info-item__meta {
    flex: none;
    gap: 12px;
  }
}
.info-item__date {
  white-space: nowrap;
}
.info-item__content {
  flex: 1;
}
.info-item__title {
  font-size: 20px;
  font-weight: 700;
  color: #1a3522;
  margin: 0 0 8px 0;
  line-height: 1.4;
}
.info-item__text {
  line-height: 1.6;
}
.info-item__images {
  display: flex;
  gap: 20px;
  margin-top: 20px;
}
.info-item__img-thumb {
  width: 160px;
  overflow: hidden;
}
.info-item__file {
  margin-top: 20px;
}
.info-item__file-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  background-color: #1a3522;
  color: #fff;
  width: 200px;
  height: 50px;
  padding-inline: 20px;
  border-radius: 6px;
  transition: background-color 0.3s ease;
}
.info-item__file-btn::after {
  content: ">";
  transition: 0.3s;
}
.info-item__file-btn:hover {
  color: #fff;
  background-color: #091b0f;
}
.info-item__file-btn:hover::after {
  transform: translateX(6px);
}