.companyProfile {
  background-color: #fff;
  padding: 143px 0 0;
}
.companyProfile:not(:has(+ .officers)) {
  padding-bottom: 139px;
}
.companyProfile__body {
  margin-top: 77px;
}
.companyProfile__table {
  border-top: 1px solid #EAEAEA;
}
.companyProfile__row {
  display: flex;
  padding: 38px 0;
  border-bottom: 1px solid #EAEAEA;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}
.companyProfile__label {
  flex-shrink: 0;
  width: 341px;
  padding: 0 39px;
  font-weight: bold;
}
.companyProfile__data {
  flex: 1;
  line-height: 1.625;
}
.companyProfile__data--small {
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  font-weight: bold;
}
.companyProfile__officerItem {
  display: flex;
}
.companyProfile__officerPosition {
  flex-shrink: 0;
  width: 8.5em;
}
.companyProfile__officeName {
  font-weight: bold;
}
.companyProfile__office + .companyProfile__office {
  margin-top: 25px;
}
.companyProfile__mapLink {
  display: inline-flex;
  align-items: center;
  position: relative;
  z-index: 0;
  overflow: hidden;
  height: 32px;
  padding: 0 16px 0 12px;
  margin-left: 15px;
  margin-bottom: -6px;
  border-radius: 8px;
  background-color: #FAF9F8;
  color: #222;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  text-decoration: none;
  vertical-align: middle;
  transform: translateY(-4px);
}
.companyProfile__mapLink img {
  width: 12px;
  margin-right: 6px;
}
.companyProfile__mapLink::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #222;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
}
@media screen and (min-width: 1024px) {
  .companyProfile__mapLink:hover::before {
    transform: scaleX(1);
    transform-origin: left center;
  }
  .companyProfile__mapLink:hover {
    color: #fff;
  }
  .companyProfile__mapLink:hover img {
    filter: brightness(0) invert(1);
  }
}
.companyProfile__bizItem + .companyProfile__bizItem {
  margin-top: 26px;
}
.companyProfile__bizName {
  font-weight: bold;
}
.companyProfile__certLogo {
  margin-top: 4px;
}
.companyProfile__certLogo img {
  display: block;
}
.companyProfile__certTable {
  margin-top: 23px;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
}
.companyProfile__certRow {
  display: flex;
}
.companyProfile__certRow + .companyProfile__certRow {
  margin-top: 3px;
}
.companyProfile__certLabel {
  flex-shrink: 0;
  font-weight: bold;
  width: 65px;
  margin-right: 24px;
}
.companyProfile__certData {
  flex: 1;
}
@media screen and (max-width: 1023px) {
  .companyProfile {
    padding: 27.2vw 0 0;
  }
  .companyProfile:not(:has(+ .officers)) {
    padding-bottom: 26.1333333333vw;
  }
  .companyProfile__body {
    margin-top: 15.4666666667vw;
  }
  .companyProfile__row {
    display: block;
    padding: 5.8666666667vw 0 5.6vw;
  }
  .companyProfile__label {
    flex-shrink: 0;
    width: auto;
    padding: 0 0;
    font-size: 4vw;
    letter-spacing: 0;
  }
  .companyProfile__data {
    line-height: 1.75;
    font-size: 3.7333333333vw;
    letter-spacing: 0;
    margin-top: 2.6666666667vw;
  }
  .companyProfile__data--small {
    font-size: 3.7333333333vw;
    letter-spacing: 0;
  }
  .companyProfile__office + .companyProfile__office {
    margin-top: 6.6666666667vw;
  }
  .companyProfile__mapLink {
    height: 11.7333333333vw;
    padding: 0 6.4vw;
    margin-left: 0;
    margin-top: 2.6666666667vw;
    margin-bottom: 5.3333333333vw;
    border-radius: 2.1333333333vw;
    font-size: 3.7333333333vw;
    letter-spacing: 0;
    transform: translateY(0);
  }
  .companyProfile__mapLink img {
    width: 3.2vw;
    margin-right: 1.6vw;
  }
  .companyProfile__bizList {
    margin-top: 5.3333333333vw;
  }
  .companyProfile__bizItem + .companyProfile__bizItem {
    margin-top: 6.4vw;
  }
  .companyProfile__certLogo {
    margin-top: 5.8666666667vw;
  }
  .companyProfile__certLogo img {
    width: 19.2vw;
  }
  .companyProfile__certTable {
    margin-top: 3.4666666667vw;
    font-size: 3.7333333333vw;
    letter-spacing: 0;
  }
  .companyProfile__certRow {
    display: flex;
  }
  .companyProfile__certRow + .companyProfile__certRow {
    margin-top: 0.5333333333vw;
  }
  .companyProfile__certLabel {
    flex-shrink: 0;
    font-weight: bold;
    width: 14.9333333333vw;
    margin-right: 2.6666666667vw;
  }
  .companyProfile__certData {
    flex: 1;
  }
}

.officers {
  background-color: #fff;
  padding: 141px 0 139px;
}
.officers__body {
  margin-top: 77px;
}
.officers__list {
  display: flex;
  justify-content: space-between;
}
.officers__item {
  width: 373px;
}
.officers__photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 2px;
}
.officers__position {
  margin-top: 22px;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}
.officers__name {
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.08em;
}
.officers__nameEn {
  margin-top: -4px;
  font-family: "Outfit", sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  color: #959595;
}
.officers__bio {
  margin-top: 19px;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 1023px) {
  .officers {
    padding: 27.7333333333vw 0 26.1333333333vw;
  }
  .officers__body {
    margin-top: 15.4666666667vw;
  }
  .officers__list {
    display: block;
  }
  .officers__item {
    width: 100%;
  }
  .officers__item + .officers__item {
    margin-top: 10.1333333333vw;
  }
  .officers__photo img {
    border-radius: 0.5333333333vw;
  }
  .officers__position {
    margin-top: 3.7333333333vw;
    font-size: 4.2666666667vw;
  }
  .officers__name {
    font-size: 6.4vw;
  }
  .officers__nameEn {
    margin-top: -1.0666666667vw;
    font-size: 3.2vw;
  }
  .officers__bio {
    margin-top: 2.9333333333vw;
    font-size: 3.7333333333vw;
    letter-spacing: 0;
  }
}

.history {
  background-color: #FAF9F8;
  padding: 141px 0 140px;
}
.history__body {
  margin-top: 79px;
}
.history__timeline {
  position: relative;
}
.history__timeline::before {
  content: "";
  position: absolute;
  left: 431px;
  top: 13px;
  bottom: -45px;
  width: 1px;
  background-color: #EAEAEA;
}
.history__block {
  display: flex;
}
.history__block + .history__block {
  margin-top: 40px;
}
.history__year {
  flex-shrink: 0;
  width: 495px;
  padding-left: 285px;
  color: #B91E24;
  line-height: 28px;
}
.history__yearNum {
  font-family: "Outfit", sans-serif;
  font-size: 2.4rem;
  letter-spacing: 0.08em;
}
.history__yearUnit {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}
.history__detail {
  flex: 1;
}
.history__event {
  display: flex;
  position: relative;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}
.history__event + .history__event {
  margin-top: 46px;
}
.history__event::before {
  content: "";
  position: absolute;
  left: -67px;
  top: 11px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #B91E24;
}
.history__event--noDot::before {
  display: none;
}
.history__month {
  flex-shrink: 0;
  width: 79px;
  font-weight: bold;
}
.history__text {
  flex: 1;
}
@media screen and (max-width: 1023px) {
  .history {
    padding: 27.7333333333vw 0 27.2vw;
  }
  .history__body {
    margin-top: 15.7333333333vw;
  }
  .history__timeline::before {
    left: 19.2vw;
    top: 3.4666666667vw;
    bottom: -9.3333333333vw;
  }
  .history__block + .history__block {
    margin-top: 12.2666666667vw;
  }
  .history__year {
    width: 24.2666666667vw;
    padding-left: 0;
    line-height: 6.1333333333vw;
  }
  .history__yearNum {
    font-size: 4vw;
  }
  .history__yearUnit {
    font-size: 3.4666666667vw;
  }
  .history__event {
    font-size: 3.4666666667vw;
    letter-spacing: 0;
  }
  .history__event + .history__event {
    margin-top: 12.2666666667vw;
  }
  .history__event::before {
    left: -5.8666666667vw;
    top: 2.1333333333vw;
    width: 1.8666666667vw;
    height: 1.8666666667vw;
  }
  .history__month {
    width: 9.0666666667vw;
  }
}

.js-anim .history__timeline::before {
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.2s cubic-bezier(0.19, 1, 0.22, 1);
}
.js-anim .history__timeline.is-inview::before {
  transform: scaleY(1);
}
.js-anim .history__year, .js-anim .history__event {
  opacity: 0;
  transform: translateY(7px);
  transition: opacity 0.5s cubic-bezier(0.19, 1, 0.22, 1), transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);
  transition-delay: var(--histDelay, 0s);
}
.js-anim .history__timeline.is-inview .history__year,
.js-anim .history__timeline.is-inview .history__event {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-anim .history__timeline::before {
    transform: none;
    transition: none;
  }
  .js-anim .history__year, .js-anim .history__event {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.clientCompanies {
  background-color: #fff;
  padding: 142px 0 138px;
}
.clientCompanies__body {
  margin-top: 79px;
}
.clientCompanies__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0 24px;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
}
.clientCompanies__list li {
  width: 384px;
  padding: 13px 0 15px;
  border-bottom: 1px solid #EAEAEA;
  line-height: 1.72;
}
.clientCompanies__list li:nth-child(-n+3) {
  border-top: 1px solid #EAEAEA;
}
.clientCompanies__note {
  margin-left: auto;
  text-align: right;
  color: #959595;
  border-bottom: none !important;
}
@media screen and (max-width: 1023px) {
  .clientCompanies {
    padding: 26.6666666667vw 0 24.8vw;
  }
  .clientCompanies .c-secTitle__en {
    white-space: nowrap;
  }
  .clientCompanies__body {
    margin-top: 15.7333333333vw;
  }
  .clientCompanies__list {
    display: block;
    font-size: 3.4666666667vw;
    letter-spacing: 0;
  }
  .clientCompanies__list li {
    width: 100%;
    padding: 1.6vw 0 1.3333333333vw;
    line-height: 1.77;
  }
  .clientCompanies__list li:nth-child(-n+3) {
    border-top: none;
  }
  .clientCompanies__list li:first-child {
    border-top: 1px solid #EAEAEA;
  }
  .clientCompanies__note {
    font-size: 3.2vw;
    margin-top: 2.1333333333vw;
  }
}

.groupCompanies {
  background-color: #FAF9F8;
  padding: 143px 0 140px;
}
.groupCompanies__body {
  margin-top: 78px;
}
.groupCompanies__list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.groupCompanies__item {
  width: 384px;
}
.groupCompanies__link {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  height: 88px;
  padding: 0 24px 0 32px;
  background-color: #fff;
  color: #222;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  text-decoration: none;
}
.groupCompanies__link::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #B91E24;
  margin-right: 18px;
  transform: translateY(2px);
}
@media screen and (min-width: 1024px) {
  .groupCompanies__link {
    transition: 0.3s;
  }
  .groupCompanies__link:hover {
    color: #B91E24;
    font-weight: bold;
  }
}
.groupCompanies__line {
  position: absolute;
  background-color: #B91E24;
}
@media screen and (min-width: 1024px) {
  .groupCompanies__line {
    transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
  }
}
.groupCompanies__line--top {
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right center;
  transition-delay: 0.22s;
}
.groupCompanies__line--right {
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  transform: scaleY(0);
  transform-origin: center top;
  transition-delay: 0.22s;
}
.groupCompanies__line--bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right center;
}
.groupCompanies__line--left {
  bottom: 0;
  left: 0;
  width: 1px;
  height: 100%;
  transform: scaleY(0);
  transform-origin: center top;
}
@media screen and (min-width: 1024px) {
  .groupCompanies__link:hover .groupCompanies__line--top {
    transform: scaleX(1);
    transform-origin: left center;
  }
  .groupCompanies__link:hover .groupCompanies__line--right {
    transform: scaleY(1);
    transform-origin: center bottom;
  }
  .groupCompanies__link:hover .groupCompanies__line--bottom {
    transform: scaleX(1);
    transform-origin: left center;
  }
  .groupCompanies__link:hover .groupCompanies__line--left {
    transform: scaleY(1);
    transform-origin: center bottom;
  }
}
@media screen and (max-width: 1023px) {
  .groupCompanies {
    padding: 27.7333333333vw 0 26.6666666667vw;
  }
  .groupCompanies__body {
    margin-top: 15.4666666667vw;
  }
  .groupCompanies__list {
    display: block;
  }
  .groupCompanies__item {
    width: 100%;
  }
  .groupCompanies__item + .groupCompanies__item {
    margin-top: 1.0666666667vw;
  }
  .groupCompanies__link {
    height: 14.1333333333vw;
    padding: 0 4.2666666667vw;
    font-size: 4vw;
    letter-spacing: 0;
  }
  .groupCompanies__link::before {
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    margin-right: 4.2666666667vw;
    margin-top: 0.5333333333vw;
    transform: translateY(0);
  }
}