@charset "utf-8";
/* Page MV
----------------------------------------------------------------------------------------------------*/
.mv-page {
  padding-top: 10rem;
}
.mv-page__image {
  position: relative;
}
.mv-page__item {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translate(-5%, -50%);
  height: min(80%, 29.5rem);
  width: min(55%, 73.5rem);
  margin: 0 auto;
}
/* 枠 */
.mv-page__item::before, .mv-page__item::after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 10rem;
  height: 10rem;
}
.mv-page__item::before {
  top: 0;
  left: 0;
  border-left: solid 3rem #ff6d00;
  border-top: solid 3rem #ff6d00;
}
.mv-page__item::after {
  bottom: 0;
  right: 0;
  border-right: solid 3rem #ff6d00;
  border-bottom: solid 3rem #ff6d00;
}
/* TITLE */
.mv-title {
  display: flex;
  align-items: center;
  justify-content: center;
  height: min(100%, 29.5rem);
}
.mv-title h2 {
  color: #fff;
  font-size: clamp(3.2rem, 3vw, 5rem);
  font-weight: 500;
  text-align: left;
  white-space: nowrap;
}
.mv-title h2 span {
  margin: 0 0 3rem 2.5rem;
  padding-left: 2.5rem;
  border-left: 1px solid #fff;
  color: #4dcee5;
  font-family: "Lexend", sans-serif;
  font-size: clamp(4rem, 3vw, 6.2rem);
  font-weight: 600;
  text-align: left;
  white-space: nowrap;
}
/* TABLET */
@media screen and (max-width: 1023px) {
  .mv-page__item {
    height: min(50%, 29.5rem);
  }
  .mv-page__item::before, .mv-page__item::after {
    width: 5rem;
    height: 5rem;
  }
  .mv-page__item::before {
    border-left-width: 1.5rem;
    border-top-width: 1.5rem;
  }
  .mv-page__item::after {
    border-right-width: 1.5rem;
    border-bottom-width: 1.5rem;
  }
  .mv-title {
    width: 90%;
    margin: 0 auto;
    padding: 3.5rem 0;
  }
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .mv-page__item {
    top: 10%;
    left: 50%;
    transform: translate(-50%, -10%);
    height: min(80%, 20.5rem);
    width: max(33rem, 75%);
  }
  .mv-title {
    flex-direction: column;
    justify-content: space-between;
    flex-wrap: nowrap;
    width: 100%;
    height: auto;
    margin: 0 auto;
    padding: 5rem 0;
  }
  .mv-title h2 {
    font-size: 3.2rem;
    text-align: center;
  }
  .mv-title h2 span {
    display: block;
    margin: 1.5rem 0 3rem;
    padding: 1rem 0 0;
    border-left: none;
    border-top: 1px solid #fff;
    font-size: 4rem;
    text-align: center;
  }
}
/* Page Title
----------------------------------------------------------------------------------------------------*/
.page-title {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 10rem;
  background: linear-gradient(-90deg, rgba(0, 9, 23, 1) 0%, rgba(22, 65, 134, 1) 100%);
}
.page-title h3 {
  color: #FFF;
  font-size: clamp(2.8rem, 3vw, 4.2rem);
  font-weight: 700;
}
/* Page Container
----------------------------------------------------------------------------------------------------*/
.container {
  width: 100%;
}
.contents {
  width: min(90%, 151rem);
  margin: 0 auto;
  padding-bottom: 18rem;
  text-align: left;
  font-feature-settings: "palt"1;
  -webkit-text-size-adjust: 100%;
}
/* --- タイトル  --- */
.page-title {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 10rem;
  background: linear-gradient(-90deg, rgba(0, 9, 23, 1) 0%, rgba(22, 65, 134, 1) 100%);
  margin-bottom: 20rem;
}
/* 変更　*/
.page-title {
  margin: 0 0 15rem 0;
}
/* end */
.page-title h3 {
  color: #FFF;
  font-size: clamp(2.8rem, 3vw, 4.2rem);
  font-weight: 700;
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .page-title {
    margin-bottom: 9.5rem;
  }
}
/* Page Title
----------------------------------------------------------------------------------------------------*/
/* MOBILE */
@media screen and (max-width: 767px) {
  .page-title {
    margin-bottom: 9.5rem;
  }
}
/* --- 共通下部カードナビゲーション  --- */
.c-card-nav {
  display: flex;
  width: 100%;
  z-index: 2;
  margin-bottom: 16.5rem;
}
.c-card-s {
  position: relative;
  flex: 1;
  height: 28rem;
  text-decoration: none;
  background-color: #000;
  /* 画像の背後に敷く黒 */
  display: flex;
  align-items: flex-end;
  padding: 2rem;
  color: #fff;
  /* 枠（box-shadow）を一番上のレイヤーに持ってくるための設定 */
  overflow: hidden;
  transition: all 0.3s;
  margin-bottom: 18rem;
}
/* --- 背景画像レイヤー --- */
.c-card-s::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background-size: cover;
  background-position: center;
  background-color: #000;
  transition: opacity 0.3s;
  opacity: 1;
}
/* ホバー時に画像だけを透過させる */
.c-card-s:hover::before {
  opacity: 0.5;
}
/* 各背景画像の指定（::before に対してかける） */
.-greeting::before {
  background-image: url('../company/img/img_c-card-greeting.jpg');
}
.-history::before {
  background-image: url('../company/img/img_c-card-history.jpg');
}
.-outline::before {
  background-image: url('../company/img/img_c-card-outline.jpg');
}
.-access::before {
  background-image: url('../company/img/img_c-card-access.jpg');
}
.-ir::before {
  background-image: url('../company/img/img_c-card-ir.jpg');
}
/* --- SP対応 --- */
@media screen and (max-width: 1060px) {
  .-history::before {
    background-position: top;
  }
  .-outline::before {
    background-position: bottom;
  }
  .-access::before {
    background-position: bottom;
  }
  .-ir::before {
    background-position: center;
  }
}
/* --- 白い枠（内側のシャドウ） --- */
.c-card-s::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  /* 画像より上、文字より下 */
  box-shadow: inset 0 0 0 2rem rgba(255, 255, 255, 0.5);
  pointer-events: none;
}
/* --- コンテンツ（文字・リンク） --- */
.c-card-s__content {
  position: relative;
  z-index: 3;
  /* 一番上に配置 */
  width: 100%;
  text-align: center;
  margin-bottom: 6rem;
}
/* 無効状態の設定 */
.c-card-s.disable {
  pointer-events: none;
}
.c-card-s.disable::before {
  opacity: 1;
  /* 画像を透過させない */
}
/* disable時の青いオーバーレイ */
.c-card-s.disable::after {
  background: rgba(22, 65, 134, .5);
  box-shadow: inset 0 0 0 2rem rgba(255, 255, 255, 0.5);
}
.c-card-s__title {
  font-size: 2.0rem;
  margin-bottom: 3rem;
  font-weight: 700;
}
.c-card-s__link {
  font-size: 1.8rem;
  border: 1px solid #fff;
  border-radius: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14rem;
  height: 4rem;
}
/* --- SP対応 --- */
@media (max-width: 1060px) {
  .c-card-nav {
    flex-direction: column;
    margin-bottom: 8rem;
  }
  .c-card-s {
    width: 100%;
    height: 10rem;
    margin-bottom: 0;
    align-items: center;
  }
  .c-card-s__content {
    padding: 1rem 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5rem;
  }
  .c-card-s__title {
    margin-bottom: 0;
    width: calc(95 / 290 * 100%);
  }
}
/* company-greeting
----------------------------------------------------------------------------------------------------*/
.p-title h3 {
  color: #FFF;
  font-size: 4.2rem;
  font-weight: 700;
  height: 10rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(90deg, rgba(22, 65, 134, 1) 0%, rgba(0, 9, 23, 1) 100%);
  margin-bottom: 20rem;
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-title h3 {
    font-size: 2.8rem;
    margin-bottom: 9.5rem;
  }
}
/* --- メインコピー --- */
.p-greeting__copy {
  font-family: "Zen Kaku Gothic New", sans-serif;
  color: #164186;
  font-size: 6.4rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 19rem;
  line-height: 1.4;
}
/*　変更　*/
.p-greeting__copy {
  font-size: 4.2rem;
}
/* end */
/* --- 代表メッセージレイアウト --- */
.p-greeting__flex {
  display: flex;
  justify-content: space-between;
}
.p-greeting__body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: calc(587/1207 * 100%);
}
.p-greeting__image {
  flex-shrink: 0;
  width: calc(580/1207 * 100%);
}
.p-greeting__image img {
  width: 100%;
  height: auto;
}
/* --- 文章スタイル --- */
.p-greeting__text {
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: justify;
}
/*　変更　*/
.p-greeting__text {
  font-size: 2.0rem;
  padding: 0 0 50px 0;
}
/* end */
/* --- 署名 --- */
.p-greeting__signature {
  text-align: right;
  font-weight: 500;
}
.p-greeting__post {
  font-size: 2.4rem;
  line-height: 1.3;
}
/*　変更　*/
.p-greeting__post {
  font-size: 1.8rem;
}
/* end */
.p-greeting__name {
  font-size: 2.8rem;
}
@media screen and (max-width: 1060px) {
  .p-greeting__copy {
    font-size: 2.8rem;
    line-height: 1.5;
    margin-bottom: 9rem;
  }
  .p-greeting__flex {
    flex-direction: column;
    gap: 4rem;
  }
  .p-greeting__body {
    order: 2;
    width: 100%;
  }
  .p-greeting__image {
    order: 1;
    width: 100%;
  }
  .p-greeting__text {
    font-size: 2.0rem;
    margin-bottom: 4.6rem;
  }
  .p-greeting__post {
    font-size: 1.6rem;
  }
  .p-greeting__name {
    font-size: 2.0rem;
  }
}
/*　変更　*/
@media (max-width: 1060px) {
  .p-greeting__text {
    margin: 0;
    padding: 0 0 3rem 0;
  }
}
/* end */
/* --- 理念 --- */
/* .p-greeting__philosophy {
 text-align: center;
} */
/* .p-greeting__sub-title {
 font-size: 4.2rem;
 color: #164186;
 font-weight: 700;
 display: inline-block;
 text-align: center;
 padding-bottom: 1rem;
 margin-bottom: 7rem;
 position: relative;
} */
/* .p-greeting__sub-title::after {
 content: "";
 position: absolute;
 left: 0;
 bottom: -1rem;
 width: 100%;
 height: 1.2rem;
 background-color: #164186;
} */
/* @media screen and (max-width: 767px) {
 .p-greeting__sub-title {
  font-size: 2.8rem;
  margin-bottom: 6rem;
 }
} */
/* company-history
----------------------------------------------------------------------------------------------------*/
.p-history__contents {
  max-width: 120rem;
  margin: 0 auto;
  padding-bottom: 30rem;
}
.p-history-list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* 垂直の線 */
.p-history-list::before {
  content: '';
  position: absolute;
  left: 0.4rem;
  top: -7rem;
  bottom: -7rem;
  width: 0.2rem;
  background-color: #1a4a8d;
  z-index: 0;
}
.p-history-item {
  position: relative;
  padding-bottom: 8rem;
}
.p-history-item:last-child {
  padding-bottom: 0;
}
/* ドット（点） */
.p-history-item::after {
  content: '';
  position: absolute;
  left: 0;
  top: 4rem;
  transform: translateY(-50%);
  width: 1rem;
  height: 1rem;
  background-color: #1a4a8d;
  border-radius: 50%;
  z-index: 1;
}
/* コンテンツ全体の枠 */
.p-history__content {
  margin-left: 3rem;
  height: 15.8rem;
  display: flex;
  justify-content: flex-start;
  gap: calc(150 / 1200 * 100%);
}
.p-history__year {
  color: #1a4a8d;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1;
  font-weight: 700;
  font-size: 6.4rem;
  white-space: nowrap;
  width: calc(170 / 1200 * 100%);
}
.p-history__body {
  display: flex;
  flex-grow: 1;
  justify-content: space-between;
  align-items: flex-start;
  width: calc(894 / 1200 * 100%);
  gap: 4rem;
}
.p-history__text {
  font-size: 3.2rem;
  font-weight: 500;
  color: #000;
  line-height: 1.5;
  text-align: justify;
}
/*　変更　*/
.p-history__contents {
  max-width: 100rem;
  padding: 5rem 0 20rem 0;
}
.p-history__content {
  gap: calc(20 / 1000 * 100%);
  padding: 0 0 3rem 0;
}
.p-history__year {
  font-size: 3.2rem;
}
.p-history__text {
  font-size: 2.4rem;
}
.p-history-item::after {
  top: 1.8rem;
}
/* end */
@media screen and (max-width: 1023px) {
  .p-history__content {
    flex-direction: column;
    height: auto;
    gap: 3rem;
  }
  .p-history-list::before {
    top: -2rem;
    bottom: -2rem;
  }
  .p-history__year {
    width: 100%;
  }
  .p-history__text {
    width: 100%;
  }
  .p-history__body {
    width: 100%;
    flex-direction: column;
    gap: 3rem;
  }
  .p-history__img {
    align-self: flex-end;
    width: 50%;
  }
}
/* MOBILE */
@media screen and (max-width: 768px) {
  .p-history__contents {
    padding-bottom: 10rem;
  }
  .p-history__content {
    margin-left: 2rem;
  }
  .p-history-item {
    padding-bottom: 4rem;
  }
  .p-history-item::after {
    top: 1.5rem;
  }
  .p-history__year {
    font-size: 2.4rem;
  }
  .p-history__text {
    font-size: 1.8rem;
  }
}
/*　変更　*/
@media (max-width: 768px) {
  .p-history-item::after {
    top: 1.2rem;
  }
}
/* end */
/* company-outline
----------------------------------------------------------------------------------------------------*/
.p-outline .contents {
  max-width: 120rem;
  padding-bottom: 32.5rem;
}
.p-outline-table {
  margin: 0 auto 18rem;
  border-top: 1px solid #cccccc;
}
.p-outline-row {
  display: flex;
  border-bottom: 1px solid #cccccc;
  align-items: stretch;
}
.p-outline-row dt {
  width: calc(195 / 1200 * 100%);
  background-color: #ebf5fa;
  color: #000;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.5;
  padding: 5rem 1rem;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
/*　変更　*/
.p-outline-row dt {
  font-size: 2.4rem;
  padding: 2rem 1rem;
}
/* end */
.p-outline-row dt span {
  display: inline-block;
  width: 15rem;
  text-align: justify;
  text-align-last: justify;
  line-height: 1.5;
  position: relative;
}
.p-outline-row dd {
  flex: 1;
  background-color: #fff;
  color: #000;
  font-weight: 500;
  font-size: 3.6rem;
  padding: 5rem 7.5rem;
  text-align: left;
  line-height: 1.5;
  display: block;
}
.p-outline__zip {
  font-size: 3.2rem;
}
ul.p-outline-row__list {
  list-style-type: none;
  padding: 0;
}
/*　変更　*/
.p-outline-row dd {
  font-size: 2.4rem;
  padding: 2rem 5rem;
}
.p-outline__zip {
  font-size: 2.4rem;
}
/* end */
/* TABLET */
@media screen and (max-width: 1023px) {
  .p-outline-table {
    margin: 0 auto 6rem;
  }
  .p-outline-row dt {
    width: calc(71 / 330 * 100%);
    font-size: 1.2rem;
    padding: 1.2rem;
  }
  .p-outline-row dd {
    /* font-size: 1.2rem; */
    font-size: 1.6rem;
    padding: 1.2rem 1.5rem;
  }
  .p-outline__zip {
    font-size: 1.0rem;
  }
}
/* 関係会社 */
.p-outline__affiliates {
  text-align: center;
}
.p-outline__sub-title {
  font-size: 4.2rem;
  color: #164186;
  font-weight: 700;
  display: inline-block;
  text-align: center;
  padding-bottom: 1rem;
  margin-bottom: 7rem;
  position: relative;
}
.p-outline__sub-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1rem;
  width: 100%;
  height: 1.2rem;
  background-color: #164186;
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-outline .contents {
    padding-bottom: 13.7rem;
  }
  .p-outline__sub-title {
    font-size: 2.8rem;
    margin-bottom: 6rem;
  }
}
.p-outline__affiliates-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.p-outline__affiliates-item {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 1px solid #c8c8c8;
  padding: 2rem;
  color: #000;
  font-weight: 500;
  transition: opacity 0.3s, background-color 0.3s;
  width: calc(33% - 2rem);
  height: 15rem;
}
.p-outline__affiliates-item:hover {
  opacity: 0.7;
  background-color: #f9f9f9;
}
/* 画像と文字のセット */
.p-outline__affiliates-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.p-outline__affiliates-logo {
  height: auto;
  width: 13.6rem;
}
.p-outline__affiliates-name {
  font-size: 2.0rem;
  font-weight: 500;
  text-align: center;
}
/* TABLET */
@media screen and (max-width: 1023px) {
  .p-outline__affiliates-list {
    gap: 2rem;
  }
  .p-outline__affiliates-item {
    width: calc(50% - 1rem);
  }
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-outline__affiliates-item {
    width: 100%;
    padding: 1.5rem 2rem;
  }
}
/* company-access
----------------------------------------------------------------------------------------------------*/
.p-access .contents {
  max-width: 120rem;
  margin: 0 auto;
}
.p-access__place {
  margin-bottom: 12rem;
}
.p-access__info {
  display: flex;
  gap: 4rem;
  margin-bottom: 5rem;
  align-items: flex-start;
}
.p-access__label {
  font-size: 3.2rem;
  font-weight: 500;
}
.p-access__address {
  font-weight: 500;
}
.p-access__zip {
  font-size: 3.2rem;
  line-height: 1.3;
}
.p-access__text {
  display: block;
  font-size: 3.6rem;
  line-height: 1.7;
}
.p-access__map {
  width: 100%;
  height: 100%;
  margin-bottom: 10rem;
}
.p-access__map iframe {
  width: 100%;
  height: 91.2rem;
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-access .contents {
    padding-bottom: 13rem;
  }
  .p-access__info {
    gap: 0.5rem;
    margin-bottom: 2rem;
  }
  .p-access__label {
    font-size: 1.2rem;
  }
  .p-access__zip {
    font-size: 1.2rem;
  }
  .p-access__text {
    font-size: 1.4rem;
  }
  .p-access__map iframe {
    height: 50rem;
  }
  .p-access__place {
    margin-bottom: 7rem;
  }
  .p-access__map {
    height: 50rem;
  }
}
.p-access__sub-title {
  font-size: 4.2rem;
  color: #164186;
  font-weight: 700;
  display: inline-block;
  text-align: center;
  padding-bottom: 1rem;
  margin-bottom: 7rem;
  position: relative;
}
.p-access__sub-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1rem;
  width: 100%;
  height: 1.2rem;
  background-color: #164186;
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-access__sub-title {
    font-size: 2.8rem;
    margin-bottom: 6rem;
  }
}
.p-access__transport {
  text-align: center;
}
.p-access__transport-flex {
  display: flex;
  justify-content: space-between;
}
.p-access__transport-left {
  width: calc(550 / 1200 * 100%);
  font-size: 3.2rem;
  text-align: left;
  line-height: 1.6;
  font-weight: 500;
}
.p-access__transport-right {
  width: calc(580 / 1200 * 100%);
}
.p-access__transport-right iframe {
  width: 100%;
  height: 38rem;
  border: 0;
  outline: none;
  box-shadow: none;
  display: block;
}
/* TABLET */
@media screen and (max-width: 1023px) {
  .p-access__info {
    flex-direction: column;
  }
  .p-access__transport-flex {
    gap: 3rem;
  }
  .p-access__transport-left, .p-access__transport-right {
    width: 48%;
  }
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-access__info {
    gap: 1.5rem;
  }
  .p-access__label, .p-access__zip, .p-access__text, .p-access__transport-left {
    font-size: 1.8rem;
  }
  .p-access__transport-flex {
    flex-direction: column;
  }
  .p-access__transport-left, .p-access__transport-right {
    width: 100%;
  }
}
/* company-ir
----------------------------------------------------------------------------------------------------*/
.contents.p-ir {
  width: min(90%, 100rem);
  /* max-width: 120rem; */
}
.p-ir-table {
  margin: 0 auto;
  border-top: 1px solid #cccccc;
}
.p-ir-row {
  display: flex;
  border-bottom: 1px solid #cccccc;
}
.p-ir-row dt {
  width: calc(273 / 1200 * 100%);
  background-color: #ebf5fa;
  color: #000;
  font-size: 3.2rem;
  font-weight: 600;
  padding: 5rem 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.p-ir-row dd {
  width: calc(927 / 1200 * 100%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  color: #000;
  font-weight: 600;
  line-height: 1.7;
  font-size: 3.6rem;
  padding: 5rem;
  margin-left: calc(100 / 1200 * 100%);
  text-align: left;
  line-height: 1.5;
  align-items: center;
}
.pdf-link {
  margin-right: calc(37 / 1200 * 100%);
  width: 4.7rem;
}
.pdf-link img {
  width: 100%;
  height: auto;
  vertical-align: middle;
}
/* TABLET */
@media screen and (max-width: 1023px) {
  .contents.p-ir {
    padding-bottom: 12rem;
  }
  .p-ir-row dt {
    width: calc(71 / 330 * 100%);
    font-size: 1.2rem;
    padding: 1.2rem;
  }
  .p-ir-row dd {
    font-size: 1.2rem;
    padding: 1.2rem 1.5rem;
    margin-left: 0;
  }
  .pdf-link {
    width: 1.3rem;
  }
}
/*　変更　*/
.p-access__label, .p-access__zip, .p-access__text, .p-access__transport-left {
  font-size: 2.4rem;
}
/* MOBILE */
@media screen and (max-width: 767px) {
  .p-access__label, .p-access__zip, .p-access__text, .p-access__transport-left {
    font-size: 1.8rem;
  }
}
.p-ir-row dt {
  font-size: 2.0rem;
  font-weight: 500;
  padding: 2rem;
}
.p-ir-row dd {
  font-size: 2.4rem;
  font-weight: 500;
  padding: 2rem;
}
/* TABLET */
@media (max-width: 1023px) {
  .p-ir-row dd {
    font-size: 1.4rem;
    padding: 1rem;
  }
  .p-ir-row dt {
    font-size: 1.2rem;
  }
}