/* =========================================================
   Work environment page（environment/index.html）
   数字・FAQ・CTA はトップと共通の部品を使い、
   ここではヒーロー、写真と文章の交互ブロック、オフィス紹介だけを定義
========================================================= */

/* ---------- Hero（.page-hero を拡張し、右に大きな写真） ---------- */
.env-hero {
  padding-bottom: 104px;
}

.env-hero__inner {
  display: grid;
  grid-template-columns: 5fr 7fr;
  align-items: center;
  gap: 56px;
}

.env-hero__label-ja {
  margin-top: 16px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--color-text-sub);
}

.env-hero__title {
  margin-top: 28px;
  font-family: var(--font-heading);
  font-size: clamp(34px, 3.6vw, 52px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.env-hero__title span {
  display: block;
  white-space: nowrap;
}

.env-hero__lead {
  margin-top: 32px;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.06em;
  color: var(--color-text-sub);
  word-break: auto-phrase;
}

.env-hero__photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--color-sub);
  border-radius: 180px 40px 180px 40px / 160px 40px 160px 40px;
}

.env-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
}

/* ---------- Feature（写真と文章の交互ブロック） ---------- */
.env-feature {
  padding-block: 128px;
  background: var(--color-white);
}

.env-feature--tint {
  background: var(--color-bg);
}

.env-feature__inner {
  display: grid;
  grid-template-columns: 5fr 6fr;
  align-items: center;
  gap: 80px;
}

/* 文章左 / 写真右 */
.env-feature--reverse .env-feature__inner {
  grid-template-columns: 6fr 5fr;
}

.env-feature--reverse .env-feature__media {
  order: 2;
}

.env-feature__media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--color-sub);
  border-radius: 32px 140px 32px 32px / 32px 120px 32px 32px;
}

.env-feature--reverse .env-feature__media {
  border-radius: 140px 32px 32px 32px / 120px 32px 32px 32px;
}

/* 横長の写真用（複数人の写真など） */
.env-feature__media--wide {
  aspect-ratio: 1 / 1;
}

.env-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
}

.env-feature__category {
  margin-top: 14px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--color-text-sub);
}

.env-feature__catch {
  margin-top: 20px;
  font-family: var(--font-heading);
  font-size: clamp(28px, 2.8vw, 40px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.04em;
}

.env-feature__catch span {
  display: block;
}

.env-feature__text {
  margin-top: 28px;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: var(--color-text-sub);
  word-break: auto-phrase;
}

/* 制度・取り組みの一覧：2列、線で区切る */
.env-points {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 32px;
  margin-top: 36px;
  border-top: 1px solid var(--color-accent);
}

.env-points__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-block: 18px;
  border-bottom: 1px solid var(--color-accent);
}

.env-points__item strong {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.6;
  color: var(--color-primary);
}

.env-points__item span {
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: var(--color-text-sub);
}

/* 未確定の制度：見出しの横に「仮」 */
.env-points__item--tentative strong::after {
  content: "仮";
  padding: 1px 7px;
  border-radius: 4px;
  background: var(--color-sub);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-text-sub);
}

/* ---------- Office ---------- */
.env-office {
  padding-block: 128px;
  background: var(--color-white);
}

.env-office__head {
  display: grid;
  grid-template-columns: 5fr 6fr;
  align-items: end;
  gap: 80px;
}

.env-office__head .env-feature__text {
  margin-top: 0;
}

.env-office__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.env-office__tags li {
  padding: 8px 18px;
  border: 1px solid var(--color-accent);
  border-radius: 9999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--color-primary);
}

/* 大きな写真1枚＋小さな写真2枚 */
.env-office__gallery {
  display: grid;
  grid-template-columns: 7fr 5fr;
  grid-template-rows: repeat(2, 1fr);
  gap: 20px;
  margin-top: 64px;
  aspect-ratio: 16 / 8;
}

.env-office__photo {
  margin: 0;
  overflow: hidden;
  border-radius: 28px;
  background: var(--color-sub);
}

.env-office__photo--main {
  grid-row: 1 / -1;
  border-radius: 28px 28px 28px 120px / 28px 28px 28px 100px;
}

.env-office__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- Data（numbers を4列で） ---------- */
.numbers--four .numbers__list {
  grid-template-columns: repeat(4, 1fr);
}

/* ---------- Tablet ---------- */
@media (max-width: 960px) {
  .env-hero__inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .env-feature,
  .env-office {
    padding-block: 96px;
  }

  .env-feature__inner,
  .env-feature--reverse .env-feature__inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  /* 縦並びでは常に「写真 → 文章」 */
  .env-feature--reverse .env-feature__media {
    order: 0;
  }

  .env-feature__media,
  .env-feature__media--wide {
    aspect-ratio: 4 / 3;
  }

  .env-office__head {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .env-office__gallery {
    margin-top: 48px;
    aspect-ratio: 4 / 3;
  }

  .numbers--four .numbers__list {
    grid-template-columns: repeat(2, 1fr);
  }

  .numbers--four .numbers__item:last-child:nth-child(odd) {
    grid-column: auto;
  }
}

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .env-hero {
    padding-bottom: 64px;
  }

  .env-hero__title {
    margin-top: 20px;
    font-size: clamp(26px, 7.4vw, 34px);
  }

  .env-hero__lead {
    margin-top: 24px;
    font-size: 15px;
    letter-spacing: 0.04em;
  }

  .env-hero__photo {
    border-radius: 96px 28px 96px 28px / 80px 28px 80px 28px;
  }

  .env-feature,
  .env-office {
    padding-block: 72px;
  }

  .env-feature__inner,
  .env-feature--reverse .env-feature__inner {
    gap: 36px;
  }

  .env-feature__media,
  .env-feature--reverse .env-feature__media {
    border-radius: 24px 80px 24px 24px / 24px 72px 24px 24px;
  }

  .env-feature__catch {
    margin-top: 16px;
    font-size: clamp(24px, 6.6vw, 30px);
  }

  .env-feature__text {
    margin-top: 22px;
    font-size: 15px;
    letter-spacing: 0.04em;
  }

  .env-points {
    grid-template-columns: 1fr;
    margin-top: 28px;
  }

  .env-points__item {
    padding-block: 16px;
  }

  /* オフィス写真：大1枚＋小2枚を縦に */
  .env-office__gallery {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto auto;
    gap: 12px;
    margin-top: 40px;
    aspect-ratio: auto;
  }

  .env-office__photo {
    aspect-ratio: 1 / 1;
    border-radius: 20px;
  }

  .env-office__photo--main {
    grid-column: 1 / -1;
    grid-row: auto;
    aspect-ratio: 4 / 3;
    border-radius: 20px 20px 20px 72px / 20px 20px 20px 60px;
  }
}
