.department__img {
  min-width: 1117px;
  position: relative
}
.department__img-wrap {
  overflow: auto
}
.department__img-links {
  position: absolute;
  inset: 0
}
.department__img-link {
  display: grid;
  grid-template-columns: 20px auto;
  align-items: center;
  gap: 4px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1
}
.department__img-link:not(.is-inline) {
  grid-template-columns: 20px 1fr 12px;
  background-color: #fdf0f0;
  border: 1px solid #dc1e37;
  border-radius: calc(infinity * 1px);
  padding: 4px 10px 4px 5px;
  position: absolute
}
.department__img-link:not(.is-inline):nth-child(1) {
  width: 165px;
  top: 52px;
  left: 110px
}
.department__img-link:not(.is-inline):nth-child(2) {
  width: 192px;
  top: 52px;
  left: 295px
}
.department__img-link:not(.is-inline):nth-child(3) {
  width: 192px;
  top: 87px;
  left: 295px
}
.department__img-link:not(.is-inline):nth-child(4) {
  width: 124px;
  top: 122px;
  left: 363px
}
.department__img-link:not(.is-inline):nth-child(5) {
  width: 622px;
  top: 157px;
  left: 295px
}
.department__img-link:not(.is-inline):nth-child(6) {
  width: 812px;
  top: 192px;
  left: 295px
}
.department__img-link:not(.is-inline):nth-child(7) {
  width: 383px;
  top: 52px;
  left: 723px
}
.department__img-link:not(.is-inline):nth-child(8) {
  width: 170px;
  font-size: 11px;
  top: 87px;
  left: 937px
}
.department__img-link:not(.is-inline):nth-child(9) {
  width: 285px;
  top: 227px;
  left: 417px
}
.department__img-link:not(.is-inline):nth-child(10) {
  width: 192px;
  top: 262px;
  left: 510px
}
.department__img-link:not(.is-inline):nth-child(11) {
  width: 192px;
  top: 297px;
  left: 510px
}
.department__img-link:not(.is-inline):nth-child(12) {
  width: 192px;
  top: 332px;
  left: 510px
}
.department__img-link:not(.is-inline):nth-child(14) {
  width: 623px;
  top: 382px;
  left: 295px
}
.department__img-link:not(.is-inline):nth-child(15) {
  width: 192px;
  top: 417px;
  left: 725px
}
.department__img-link:not(.is-inline):nth-child(16) {
  width: 192px;
  top: 452px;
  left: 725px
}
.department__img-link:not(.is-inline):nth-child(17) {
  width: 192px;
  top: 487px;
  left: 725px
}
.department__img-link:not(.is-inline)::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 12/6;
  background-color: #dc1e37;
  mask: url(/jp/recruit/group_new_graduate/construction/assets/img/common/icon_arrow_02.svg) no-repeat center/contain
}
.department__img-link .is-num {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1/1;
  font-family: DINNextLTPro-Regular,serif;
  font-size: 12px;
  line-height: 1;
  color: #fff;
  background-color: #dc1e37;
  border-radius: 50%
}
.department__img-group {
  display: grid;
  grid-template-columns: 1fr 12px;
  align-items: center;
  gap: 4px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  background-color: #fdf0f0;
  border: 1px solid #dc1e37;
  border-radius: calc(infinity * 1px);
  padding: 4px 10px 4px 5px;
  position: absolute
}
.department__img-group:nth-child(13) {
  width: 996px;
  top: 557px;
  left: 110px
}
.department__img-group:nth-child(18) {
  width: 192px;
  top: 522px;
  left: 725px
}
.department__img-group::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 12/6;
  background-color: #dc1e37;
  mask: url(/jp/recruit/group_new_graduate/construction/assets/img/common/icon_arrow_02.svg) no-repeat center/contain
}
.department__img-unit {
  display: flex;
  align-items: center;
  gap: 4px
}
.department__scroll {
  margin-inline: -4px;
  position: relative
}
.department__scroll-hint {
  background-color: rgba(0,0,0,.2);
  position: absolute;
  inset: 0;
  z-index: 1;
  transition: opacity .4s ease-out,visibility .4s ease-out;
  pointer-events: none;
  visibility: hidden;
  opacity: 0
}
.department__scroll-hint.is-active {
  visibility: visible;
  opacity: 1
}
.department__scroll-hint-inner {
  display: grid;
  justify-items: center;
  align-content: center;
  height: 100dvh;
  max-height: 100%;
  position: sticky;
  top: 0
}
.department__scroll-hint-icon {
  width: 94px;
  height: auto
}
.department__block {
  display: grid;
  gap: 20px
}
.department__block-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  border: 1px solid #dc1e37;
  border-radius: 20px;
  padding: 30px 20px
}
.department__block-ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 14px;
  text-align: center
}
.department__block-ttl span {
  display: grid;
  grid-template-columns: 5px auto 5px;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  color: #dc1e37
}
.department__block-ttl span::after,
.department__block-ttl span::before {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 5/40;
  border-top: 1px solid #dc1e37;
  border-bottom: 1px solid #dc1e37
}
.department__block-ttl span::before {
  border-left: 1px solid #dc1e37
}
.department__block-ttl span::after {
  border-right: 1px solid #dc1e37
}
.department__block-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  color: #fff
}
.department__block-tag {
  display: grid;
  grid-template-columns: auto 10px;
  align-items: center;
  gap: 8px;
  color: #f2f2f2;
  font-size: 13px;
  line-height: 1;
  background-color: #666;
  border: none;
  border-radius: 4px;
  padding: 9px 14px;
  text-decoration: none;
  transition: background-color .2s ease-out;
  cursor: pointer
}
.department__block-tag.is-active {
  background-color: #dc1e37;
  font-weight: 700
}
.department__block-tag::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 10/4;
  background-color: #fff;
  mask: url(/jp/recruit/group_new_graduate/construction/assets/img/common/icon_arrow_02.svg) no-repeat center/contain
}
.m-heading-02.has-icon {
  display: flex;
  align-items: center;
  gap: 12px
}
.m-heading-02.has-icon .m-heading-02__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px
}
.m-heading-02.has-icon .m-heading-02__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain
}
.m-heading-02__txt {
  flex: 1;
  font-weight: 700;
  font-size: 20px
}
.job-cat {
  scroll-margin-top: 20px
}
.job-cat__list {
  display: grid;
  gap: 40px
}
.job__head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 8px
}
.job__num {
  font-family: DINNextLTPro-Regular,serif;
  font-size: 18px;
  color: #dc1e37
}
.job__ttl {
  font-weight: 700;
  font-size: 16px
}
.job__txt {
  font-size: 14px;
  line-height: 1.8
}
.senior {
  margin-top: 40px
}
.senior__label {
  font-weight: 700;
  font-size: 16px;
  color: #dc1e37;
  margin-bottom: 12px
}
.senior__card {
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 20px;
  max-width: 583px
}
.senior__img {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden
}
.senior__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden
}
.senior__body {
  flex: 1
}
.senior__job {
  font-weight: 700;
  font-size: 14px
}
.senior__name {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 14px
}
.mv {
  height: 210px;
  position: relative
}
.mv__bg {
  height: 100%
}
.mv__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden
}
.mv__contents {
  display: grid;
  align-items: center;
  color: #fff;
  position: absolute;
  inset: 0
}
.mv__ttl {
  font-weight: 500;
  font-size: 26px;
  line-height: 1.25
}
.intro__contents {
  display: grid;
  align-items: center;
  max-width: 1280px;
  margin-inline: auto
}
.intro__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden
}
.intro__main {
  display: grid;
  justify-content: center;
  align-items: center;
  gap: 24px;
  text-align: center
}
.intro__ttl {
  font-weight: 700;
  font-size: 20px;
  line-height: 1.5
}
.intro__name {
  font-weight: 500;
  font-size: 18px
}
.intro__box {
  background-color: #dc1e37;
  padding-block: 40px
}
.aptitude {
  display: grid;
  gap: 24px
}
.aptitude__heading {
  width: fit-content;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  color: #dc1e37;
  background-color: #fff;
  border-radius: calc(infinity * 1px);
  padding: 8px 10px;
  margin-inline: auto;
  position: relative
}
.aptitude__heading::after {
  content: "";
  display: block;
  width: 10px;
  aspect-ratio: 1/1;
  clip-path: polygon(0 0,50% 100%,100% 0);
  background-color: #fff;
  position: absolute;
  top: 100%;
  left: 50%;
  translate: -50% -1px
}
.aptitude__table {
  display: grid;
  gap: 10px;
  width: 100%;
  max-width: 923px;
  background-color: #fff;
  border-radius: 8px;
  padding: 24px 16px;
  margin-inline: auto
}
.aptitude__row {
  display: grid;
  align-items: center;
  gap: 8px
}
.aptitude__q {
  font-weight: 700;
  font-size: 14px;
  color: #666
}
.aptitude__options {
  display: flex;
  flex-direction: row;
  gap: 10px
}
.aptitude__opt {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
  color: #666;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 4px;
  padding: 5px 10px
}
.aptitude__opt.is-active {
  font-weight: 700;
  color: #fff;
  background-color: #dc1e37;
  border-color: #dc1e37
}
.block {
  display: grid;
  gap: 40px
}
.block__txt {
  display: grid;
  gap: 40px
}
.block__q {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 10px
}
.block__imgs {
  display: grid;
  gap: 10px
}
.block__imgs img {
  max-width: 100%;
  height: auto
}
.block__box {
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 10px;
  padding: 20px
}
.block__box-ttl {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 10px
}
.block__box .m-list-01 {
  gap: 10px
}
.block__box .m-list-01__item::before {
  translate: 0 6px
}
.block__box .m-list-01__item:not(:last-child)::after {
  top: 14px;
  height: calc(100% + 14px)
}
.block__box .m-list-01__item .m-list-01__lead {
  font-size: 16px
}
.message {
  display: grid;
  justify-items: center;
  gap: 24px;
  border-top: 2px solid #dc1e37;
  border-bottom: 2px solid #dc1e37;
  padding: 40px 5%
}
.message__body {
  width: 100%;
  max-width: 746px
}
.message__note {
  width: 100%;
  max-width: 746px;
  font-size: 12px;
  line-height: 1.8
}
.business__nav-list {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(140px,1fr));
  justify-content: center;
  gap: 20px 11px;
  color: #dc1e37
}
.business__nav-link {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  height: 90px;
  font-weight: 700;
  font-size: 16px;
  border: 1px solid #dc1e37;
  border-radius: 8px;
  padding: 16px 10px
}
.business__nav-link::after {
  content: "";
  display: block;
  width: 12px;
  aspect-ratio: 2/1;
  background-color: #dc1e37;
  mask: url(/jp/recruit/group_new_graduate/construction/assets/img/common/icon_arrow_02.svg) no-repeat center/contain
}
.business__nav-num {
  font-family: DINNextLTPro-HeavyItalic,serif;
  font-size: 16px;
  line-height: 1
}
.business__products-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 11px
}
.business__products-link {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 10px
}
.business__products-img {
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 10px;
  overflow: hidden
}
.business__products-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden
}
.business__products-body {
  display: grid;
  grid-template-columns: 1fr 14px;
  align-items: center;
  gap: 8px;
  padding: 0 16px
}
.business__products-body::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 1;
  background-color: currentColor;
  mask: url(/jp/recruit/group_new_graduate/construction/assets/img/common/icon_arrow_01.svg) no-repeat center/contain
}
.business__fields {
  display: flex;
  flex-wrap: wrap;
  gap: 24px
}
.business__fields-img img {
  max-width: 100%;
  height: auto
}
.business__features {
  display: grid
}
.business__features-body {
  max-width: 690px
}
.business__features-col {
  text-align: center
}
.business__features-col img {
  max-width: 100%;
  height: auto
}
.business__model-img img {
  max-width: 100%;
  height: auto
}
.business__box01 {
  display: grid;
  grid-template-columns: 25px auto;
  justify-content: center;
  align-items: center;
  gap: 8px;
  background-color: color-mix(in srgb,#dc1e37 10%,#fff);
  border-radius: 8px;
  padding: 13px 24px
}
.business__box01-icon img {
  max-width: 100%;
  height: auto
}
.business__box01-txt {
  font-weight: 700;
  color: #dc1e37
}
.business__box02 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: start;
  gap: 18px;
  background-color: color-mix(in srgb,#dc1e37 10%,#fff);
  border-radius: 16px;
  padding: 24px
}
.business__box02-body {
  max-width: 500px
}
.business__box02-img img {
  max-width: 100%;
  height: auto
}
.products__list {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(195px,1fr));
  gap: 24px 12px
}
.products__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  justify-content: center;
  row-gap: 10px;
  text-align: center
}
.products__item-img {
  display: grid;
  place-content: center;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 10px;
  padding: 10px
}
.products__item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden
}
.products__item-txt {
  font-weight: 700;
  font-size: 13px
}
@media screen and (min-width:661px) {
  .department__scroll-hint {
    display: none
  }
  .department__block {
    grid-template-columns: 1fr 1fr
  }
  .department__block-box.is-wide {
    grid-column: 1/3
  }
  .department__block-ttl {
    font-size: 18px
  }
  .department__block-ttl span {
    font-size: 24px
  }
  .m-heading-02.has-icon {
    gap: 20px
  }
  .m-heading-02.has-icon .m-heading-02__icon {
    width: 64px;
    height: 64px
  }
  .m-heading-02__txt {
    font-size: 28px
  }
  .job-cat {
    scroll-margin-top: 40px
  }
  .job-cat__list {
    gap: 52px
  }
  .job__num {
    font-size: 20px
  }
  .job__ttl {
    font-size: 18px
  }
  .job__txt {
    font-size: 16px
  }
  .senior__label {
    font-size: 18px
  }
  .senior__card {
    gap: 24px;
    padding: 21px
  }
  .senior__img {
    width: 122px;
    height: 122px
  }
  .senior__job {
    font-size: 16px
  }
  .senior__name {
    font-size: 16px
  }
  .mv {
    height: 360px
  }
  .mv__ttl {
    font-size: 38px
  }
  .intro__contents {
    grid-template-columns: 1fr 1fr
  }
  .intro__img {
    order: 1
  }
  .intro__ttl {
    font-size: 28px
  }
  .intro__name {
    font-size: 24px
  }
  .aptitude__table {
    padding: 40px
  }
  .aptitude__row {
    grid-template-columns: 162px 1fr
  }
  .aptitude__opt {
    flex: 1
  }
  .block {
    grid-template-columns: 1fr 1fr;
    align-items: start
  }
  .block__txt {
    gap: 56px
  }
  .is-reverse .block__txt {
    order: 2
  }
  .block__q {
    font-size: 22px;
    margin-bottom: 20px
  }
  .block__imgs {
    margin-right: -82px
  }
  .is-reverse .block__imgs {
    order: 1;
    margin-right: 0;
    margin-left: -82px
  }
  .block__box {
    padding: 40px
  }
  .block__box-ttl {
    font-size: 18px
  }
  .block__box .m-list-01 {
    gap: 16px
  }
  .block__box .m-list-01__item::before {
    translate: 0 8px
  }
  .block__box .m-list-01__item:not(:last-child)::after {
    top: 12px;
    height: calc(100% + 10px)
  }
  .block__box .m-list-01__item .m-list-01__lead {
    font-size: 18px
  }
  .message {
    gap: 41px;
    padding: 91px 20px
  }
  .business__nav-list {
    grid-template-columns: repeat(auto-fill,minmax(170px,1fr));
    gap: 40px 11px
  }
  .business__nav-link {
    gap: 16px;
    height: 120px;
    padding: 16px
  }
  .business__nav-num {
    font-size: 20px
  }
  .business__products-list {
    grid-template-columns: repeat(auto-fill,minmax(240px,1fr));
    gap: 40px 11px
  }
  .business__products-link {
    gap: 16px
  }
  .business__features {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 40px
  }
  .business__box01 {
    grid-template-columns: 35px auto
  }
  .business__box02 {
    gap: 36px;
    padding: 40px
  }
  .products__item-txt {
    font-size: 24px
  }
}
@media screen and (max-width:660px) {
  .department__block-box {
    padding: 24px 16px
  }
  .senior__card {
    flex-direction: column;
    align-items: center;
    text-align: center
  }
  .intro__main {
    padding: 20px
  }
  .aptitude__options {
    flex-wrap: wrap
  }
  .business__features-body {
    display: contents
  }
  .business__features-link {
    order: 1
  }
  .business__model-img {
    max-width: 375px;
    margin-inline: auto
  }
}
@media (any-hover:hover) {
  .department__img-link {
    transition: opacity .3s ease-out
  }
  .department__img-link:hover {
    opacity: .7;
    text-decoration: none
  }
  .department__block-tag:hover {
    background-color: #dc1e37;
    text-decoration: none
  }
}