/*===========================================================================
unique
単一ページで使用するCSS
接頭辞【.u-】

【予測変換用 _base.css記述】
:root {
	--font-color-base: #000;
	--font-family-base: "Noto Sans JP", sans-serif;
	--back-color-base: #fff;
	--design-size-pc: 1400;
	--design-size-sp: 750;
}
===========================================================================*/
/* 事業内容TOP
====================================*/
.u-media {
  display: flex;
  gap: 0 56rem;
}
.u-media__col {
  flex: 1 1 584rem;
  margin-top: 16rem;
}
.u-media__txt {
  margin-top: 24rem;
  font-size: 24rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.u-media__img {
  flex: 1 1 560rem;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-media.--col-reverse {
    flex-direction: row-reverse;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-media {
    flex-direction: column-reverse;
    gap: 40rem 0;
  }
  .u-media__col {
    flex: initial;
    margin-top: 0;
  }
  .u-media__txt {
    font-size: 22rem;
    line-height: 1.5;
    letter-spacing: normal;
  }
  .u-media__img {
    flex: initial;
  }
}


.u-link {
  margin-top: 120rem;
}
.u-link__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40rem 24rem;
}
.u-linkItem__inr {
  display: block;
  text-decoration: none;
}
.u-linkItem__ttl {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0 8rem;
  margin-top: 16rem;
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.2;
  transition: color 0.3s linear;
}
.u-linkItem__ttl::after {
  content: "";
  position: relative;
  right: 0;
  display: block;
  width: 18rem;
  height: 18rem;
  background-color: var(--back-color-main);
  mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
  transition: right 0.3s linear;
  -webkit-mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
}
@media (any-hover: hover) {
  .u-linkItem__inr:hover .u-linkItem__ttl {
    color: var(--font-color-main);
  }
  .u-linkItem__inr:hover .u-linkItem__ttl::after {
    right: -6rem;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-link {
    margin-top: 100rem;
  }
  .u-link__list {
    grid-template-columns: minmax(0, 1fr);
  }
}


.c-ctsWrap:has(.u-topHistory) {
  margin-bottom: 0;
}
.u-topHistory {
  position: relative;
  z-index: 0;
  margin-top: 120rem;
  margin-inline: var(--negative-margin);
  padding-inline: abs(var(--negative-margin));
  color: #fff;
}
.u-topHistory::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: url(/company/images/company_history_bg.jpg) no-repeat center / cover;
}
.u-topHistory__inr {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 120rem 0;
}
.u-topHistory__col {
  flex: 1;
}
.u-topHistory__ttlWrap > *:not(:first-child) {
  margin-top: 48rem;
}
.u-topHistory__ttlJp {
  font-weight: 500;
  line-height: 1.8;
}
.u-topHistory__ttlEn {
  width: 454rem;
}
.u-topHistory__lead {
  margin-top: 32rem;
  font-family: var(--font-family-serif);
  font-size: 24rem;
  line-height: 1.8;
}
.u-topHistory__lead > span {
  position: relative;
  display: block;
  width: max-content;
}
.u-topHistory__lead > span::before {
  content: "";
  position: absolute;
  bottom: 4rem;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--back-color-base);
}
.u-topHistory__lead > span:not(:first-child) {
  margin-top: 3rem;
}
.u-topHistory__btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 240rem;
  aspect-ratio: 1 / 1;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: inherit;
  text-decoration: none;
}
.u-topHistory__btnIcn {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 217rem;
  height: auto;
  aspect-ratio: 1 /1;
  transform: translate(-50%, -50%);
}
.u-topHistory__btnLine {
  transform-origin: center;
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  transform-box: fill-box;
}
.u-topHistory__btnTxt {
  position: relative;
  font-family: var(--font-family-red-hat-text);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-align: center;
  text-shadow: 0 0 24rem rgba(0, 0, 0, 0.56);
}
.u-topHistory__btnTxt::after {
  content: "";
  position: absolute;
  bottom: -16rem;
  left: 50%;
  width: 18rem;
  height: 18rem;
  background: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
  transform: translate(-50%, 100%);
  transition: transform 0.3s linear;
}
@media (any-hover: hover) {
  .u-topHistory__btn:hover .u-topHistory__btnLine {
    transform: rotate(-45deg) scale(0.95);
  }
  .u-topHistory__btn:hover .u-topHistory__btnTxt::after {
    transform: translate(calc(-50% + 10rem), 100%);
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-topHistory::before {
    background-image: url(/company/images/sp_company_history_bg.jpg);
  }
  .u-topHistory__inr {
    display: block;
    padding: 56rem 0;
  }
  .u-topHistory__ttlWrap > *:not(:first-child) {
    margin-top: 32rem;
  }
  .u-topHistory__ttlEn {
    width: 100%;
  }
  .u-topHistory__lead {
    font-size: 22rem;
  }
  .u-topHistory__lead > span::before {
    bottom: -1rem;
    width: calc(100% - 10rem);
  }
  .u-topHistory__lead > span:not(:first-child) {
    margin-top: 11rem;
  }
  .u-topHistory__btn {
    width: 180rem;
    margin: 62rem auto 0;
    transform: translateX(-8rem);
  }
  .u-topHistory__btnIcn {
    width: 163rem;
  }
  .u-topHistory__btnTxt::after {
    bottom: -10rem;
  }
}


/* 役員一覧
====================================*/
.c-table th,
.c-table td {
  padding: 23rem 23rem 24rem;
}
.u-directorsTable01 thead th,
.u-directorsTable02 thead th {
  padding-inline: 10rem;
  font-size: 16rem;
}
.u-directorsTable01 thead th:nth-child(1) {
  width: 128rem;
}
.u-directorsTable01 tbody th {
  padding-right: 21rem;
  padding-left: 21rem;
}
.u-directorsTable02 thead th:first-child {
  width: 245rem;
}
.c-table tbody th {
  background-color: #f7f7f7;
  text-align: left;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .c-table th,
  .c-table td {
    padding: 23rem 15rem 24rem;
  }
  .u-directorsTable02 thead th:first-child {
    width: 122rem;
  }
}



/* 組織図
====================================*/
.u-organizationImg {
  margin-right: -48rem;
  margin-bottom: -10rem;
  margin-left: -48rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-organizationImg {
    margin-inline: -44rem;
  }
  .u-organizationImg > *:first-child {
    width: 1188rem;
  }
}


/* グループ各社
====================================*/
.u-kyosomiraiMedia .c-media__img {
  width: 300rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-kyosomiraiMedia .c-media__img {
    width: 200rem;
    margin-inline: auto;
  }
}


/* プライバシーポリシー
====================================*/
.u-panelLink.c-panelLink .c-panelLink__itemInr {
  min-height: initial;
  padding: 32rem;
}
.u-panelLink a.c-panelLink__itemInr .c-panelLink__col {
  position: relative;
  padding-right: 34rem;
}
.u-panelLink a.c-panelLink__itemInr .c-panelLink__col::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 18rem;
  height: 18rem;
  background-color: var(--back-color-main);
  mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
  transform: translateY(-50%);
  -webkit-mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
}
.u-panelLink a[target="_blank"].c-panelLink__itemInr .c-panelLink__col::after {
  width: 24rem;
  height: 24rem;
  mask: url(/common/images/icn_blank.svg) no-repeat center / contain;
  -webkit-mask: url(/common/images/icn_blank.svg) no-repeat center / contain;
}
