/*-------post------*/
.archive-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.single-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.breadcrumb {
  background: #1a1a1a;
  padding-inline: 5.55%;
  display: flex;
  padding-top: 10px;
  padding-bottom: 10px;
}
.breadcrumb li::after {
  content: ">";
  margin: 0 1em;
  display: inline-block;
}
.breadcrumb li:last-child::after {
  content: none;
}
.breadcrumb li a,
.breadcrumb li {
  color: #fff;
}
.p-single__body {
  max-width: 950px;
  width: 100%;
  margin-inline: auto;
}
.pagination-area {
  margin-top: clamp(40px, var(--px-80), 80px);
}
.nav-links {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1em;
}
/*-------hd------*/
/* 背景・白文字以外は body 設定（Zen Kaku / 15px / 500）を継承。SP は後対応。 */
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: #3542c4;
  color: #fff;
  z-index: 500;
}
.l-header__inner {
  display: flex;
  align-items: stretch;
  height: clamp(60px, var(--px-80), 80px);
  padding-left: clamp(16px, var(--px-37), 37px);
}
.c-logo {
  display: flex;
  align-items: center;
}
.c-logo__img {
  height: clamp(24px, var(--px-35), 35px);
  width: auto;
}
.l-header .c-nav {
  display: flex;
  align-items: center;
  margin-inline-start: auto;
}
.l-header .c-gnav__list {
  gap: clamp(16px, var(--px-24), 24px);
}
.c-header-contact {
  display: flex;
  align-items: stretch;
}
.c-header-contact__tel,
.c-header-contact__btn {
  display: flex;
  align-items: center;
  gap: 0.5em;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: max(var(--px-20), 16px);
  white-space: nowrap;
}
.c-header-contact__tel {
  padding-inline: clamp(16px, var(--px-27), 27px);
}
.c-header-contact__btn {
  background: #c43535;
  padding-inline: clamp(20px, var(--px-30), 30px);
  transition: 0.35s ease-in-out;
  border: 1px solid #c43535;
}
.c-header-contact__btn:hover {
  background: #3542c4;
  opacity: 1;
  border: 1px solid #fff;
  opacity: 1;
}
.c-header-icon {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}
/*-------ft-----*/
/* 背景・白文字以外は common.css の body 設定（Zen Kaku / 15px / 500 / lh2）を継承 */
.l-footer {
  background: #3542c4;
  color: #fff;
  padding-block: clamp(50px, var(--px-80), 80px);
}
.l-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.c-footer__company {
  font-size: max(var(--px-24), 20px);
  font-weight: 700;
  line-height: 1;
}
.c-footer__contact {
  display: flex;
  align-items: center;
  gap: clamp(20px, var(--px-30), 30px);
  margin-top: clamp(24px, var(--px-40), 40px);
}
.c-footer__tel,
.c-footer__contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: max(var(--px-20), 16px);
  line-height: 1;
}
.c-footer__contact-btn {
  background: #c43535;
  padding: clamp(12px, var(--px-18), 18px) clamp(24px, var(--px-40), 40px);
  transition: 0.35s ease-in-out;
  border: 1px solid #c43535;
}
.c-footer__contact-btn:hover {
  background: #3542c4;
  opacity: 1;
  border: 1px solid #fff;
}
.c-footer__icon {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}
.c-copyright {
  margin-top: clamp(24px, var(--px-40), 40px);
  font-size: max(var(--px-14), 12px);
  text-align: center;
}
/* SP 追従フッター（電話／お問い合わせ）。枠は common.css の .c-footer-icons（fixed・680pxで表示） */
.c-footer-icons__btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  min-height: 60px;
  padding-bottom: env(safe-area-inset-bottom);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
}
.c-footer-icons__btn svg {
  width: 1.2em;
  height: 1.2em;
  flex-shrink: 0;
}
.c-footer-icons__tel {
  background: #3542c4;
  font-family: "Montserrat", sans-serif;
}
.c-footer-icons__contact {
  background: #c43535;
}
/* グローバルナビ（共通パーツ c-gnav）：ヘッダー／フッターで共通。
   en=赤 / ja=白の配色は両所で同じなのでベースに持たせ、間隔だけ各所で上書き。 */
.c-gnav__list {
  display: flex;
  align-items: flex-start;
}
.c-gnav__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4em;
  color: #fff;
}
.c-gnav__en {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  line-height: 1;
  color: #c43535;
}
.c-gnav__ja {
  line-height: 1;
}
.l-footer .c-gnav {
  margin-top: clamp(28px, var(--px-50), 50px);
}
.l-footer .c-gnav__list {
  gap: clamp(20px, var(--px-40), 40px);
}
/* ページトップ（位置は common.css の #page-top fixed を継承） */
.c-pagetop__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, var(--px-48), 48px);
  height: clamp(44px, var(--px-48), 48px);
  background: #c43535;
  color: #fff;
}
.c-pagetop__link svg {
  width: 45%;
  height: auto;
}
@media screen and (max-width: 680px) {
  .c-footer__contact {
    flex-direction: column;
  }
  .l-footer .c-gnav__list {
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 28px;
  }
  /* 追従フッター（約56px）の分だけ下余白を足して、コピーライトが隠れないようにする */
  .l-footer {
    padding-bottom: calc(56px + 30px + env(safe-area-inset-bottom));
  }
  /* common.css の `body .SP { display: block }` を上書きして、バーを横並び（flex）に固定 */
  .c-footer-icons.SP {
    display: flex;
  }
}
/*-------btn------*/
/*-------mv（下層共通：背景画像は img/sub-mv.jpg で統一）------*/
.c-mv {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(220px, var(--px-354), 354px);
  width: 100%;
  background-image: url(../img/sub-mv.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding-top: clamp(60px, var(--px-80), 80px);
}
.c-mv__title {
  color: #fff;
  font-size: max(var(--px-40), 28px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
}
/*-------contact------*/
.p-contact {
  padding-block: clamp(50px, var(--px-90), 90px)
    clamp(60px, var(--px-120), 120px);
}
.p-contact__lead {
  text-align: center;
}
.p-contact__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3em;
  margin-top: clamp(24px, var(--px-45), 45px);
  color: #3542c4;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: max(var(--px-40), 26px);
}
.p-contact__tel-icon {
  width: 0.7em;
  height: 0.7em;
}
.p-contact__heading {
  margin-top: clamp(50px, var(--px-90), 90px);
}
.p-contact__form {
  margin-top: clamp(30px, var(--px-50), 50px);
}
/* Contact Form 7 フォーム本文（CF7 編集画面に貼り付ける markup を装飾） */
.p-contact-form__row {
  display: flex;
  align-items: stretch;
  /* gap を入れず dt と dd の下線を隙間なくつなげて一本の線に見せる。
     行間は padding ではなく margin で取る */
  margin-bottom: clamp(8px, var(--px-12), 12px);
}
.p-contact-form__label {
  display: flex;
  align-items: center;
  gap: clamp(16px, var(--px-30), 30px);
  width: max(var(--px-222), 150px);
  flex-shrink: 0;
  padding-left: clamp(12px, var(--px-20), 20px);
  padding-bottom: clamp(8px, var(--px-12), 12px); /* 線との余白 */
  border-bottom: 2px solid #3542c4; /* dt = ネイビー */
}
.p-contact-form__req {
  color: #c43535;
}
.p-contact-form__field {
  flex: 1;
  display: flex;
  align-items: center;
  padding-inline: clamp(16px, var(--px-26), 26px); /* 入力欄の左インセット */
  padding-bottom: clamp(8px, var(--px-12), 12px); /* 線との余白 */
  border-bottom: 1px solid #d9d9d9; /* dd = グレー（dt と連続して一本の線に） */
}
.p-contact-form__field input[type="text"],
.p-contact-form__field input[type="tel"],
.p-contact-form__field input[type="email"],
.p-contact-form__field textarea {
  width: 100%;
  background: #f8f8f8;
  border: 3px solid #d9d9d9;
  padding: 0.4em 0.8em;
  font-size: max(var(--px-16), 16px);
}
input[type="radio"] {
  border: 3px solid #d9d9d9;
}
.p-contact-form__field textarea {
  min-height: 8em;
  resize: vertical;
}
.p-contact-form__field .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(16px, var(--px-30), 30px);
}
.p-contact-form__field .wpcf7-list-item {
  margin: 0;
}
.p-contact-form__submit {
  margin-top: clamp(30px, var(--px-50), 50px);
  text-align: center;
}
.p-contact-form__submit input[type="submit"] {
  background: #3542c4;
  color: #fff;
  font-family: var(--b-font-family);
  font-size: max(var(--px-20), 16px);
  width: max(var(--px-210), 180px);
  padding-block: clamp(12px, var(--px-18), 18px);
}
@media screen and (max-width: 680px) {
  .p-contact-form__row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .p-contact-form__label {
    width: 100%;
  }
}
/*-------section-title（en赤＋ja黒の中央見出し：全ページ共通）------*/
.c-section-title {
  text-align: center;
}
.c-section-title__en {
  color: #c43535;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: max(var(--px-48), 30px);
  line-height: 1.4;
}
.c-section-title__ja {
  font-weight: 700;
  font-size: max(var(--px-20), 16px);
}
.c-section-title--left {
  text-align: left;
}
/*-------media（画像＋テキストの横並び：facility / service で共通）------*/
/* 画像はページ端までフルブリード、テキスト側だけ内側余白を取る。
   画像を左に置くブロックは c-media--reverse を付与。 */
.c-media {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, var(--px-45), 45px);
}
.c-media--reverse {
  flex-direction: row-reverse;
}
.c-media__img {
  flex-shrink: 0;
  width: max(var(--px-672), 280px);
}
.c-media__img img {
  display: block;
  width: 100%;
  height: auto;
}
.c-media__body {
  flex: 1;
  padding-left: 5.55%;
}
.c-media--reverse .c-media__body {
  padding-left: 0;
  padding-right: 5.55%;
}
.c-media__title {
  font-size: max(var(--px-36), 22px);
  font-weight: 700;
}
.c-media__text {
  margin-top: clamp(16px, var(--px-30), 30px);
}
@media screen and (max-width: 820px) {
  .c-media,
  .c-media--reverse {
    flex-direction: column;
  }
  .c-media__img {
    width: 100%;
    order: -1;
  }
  .c-media__body,
  .c-media--reverse .c-media__body {
    padding-inline: 5.55%;
  }
}
/*-------figure（画像＋右下にはみ出す薄青の装飾：about / recruit で共通）------*/
.c-figure {
  position: relative;
  flex-shrink: 0;
  width: max(var(--px-672), 300px);
}
.c-figure__deco {
  position: absolute;
  right: 0;
  bottom: calc(-1 * clamp(24px, var(--px-53), 53px));
  z-index: 0;
  width: clamp(120px, var(--px-249), 249px);
  height: clamp(180px, var(--px-368), 368px);
  background: #e9ebf8;
}
.c-figure__img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 672 / 500;
  object-fit: cover;
}
@media screen and (max-width: 820px) {
  .c-figure {
    width: 100%;
  }
}
/*-------table（会社概要など、他ページでも使う共通テーブル）------*/
.c-table {
  width: 100%;
}
.c-table th,
.c-table td {
  padding-block: clamp(12px, var(--px-18), 18px);
  text-align: left;
  vertical-align: top;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.c-table th {
  width: max(var(--px-222), 130px);
  padding-left: clamp(16px, var(--px-55), 55px);
  border-bottom: 2px solid #3542c4;
  white-space: nowrap;
}
.c-table td {
  padding-left: clamp(16px, var(--px-24), 24px);
  border-bottom: 1px solid #d9d9d9;
}
/*-------map（Googleマップ埋め込み枠：高さのみ確保）------*/
.c-map {
  width: 100%;
  height: clamp(300px, var(--px-670), 670px);
  background: #f0f0f0;
}
.c-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
/*-------company------*/
.p-company {
  padding-block: clamp(40px, var(--px-50), 50px)
    clamp(60px, var(--px-100), 100px);
}
.p-company__access {
  margin-top: clamp(50px, var(--px-90), 90px);
}
.p-company__access .c-map {
  margin-top: clamp(24px, var(--px-50), 50px);
}
@media screen and (max-width: 680px) {
  .c-table th {
    width: max(var(--px-150), 100px);
    padding-left: 8px;
  }
}
/*-------recruit------*/
.p-recruit {
  padding-block: clamp(40px, var(--px-80), 80px)
    clamp(60px, var(--px-100), 100px);
}
.p-recruit__intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(24px, var(--px-54), 54px);
}
.p-recruit__intro-text {
  flex: 1;
}
.p-recruit__recruitment {
  margin-top: clamp(60px, var(--px-120), 120px);
}
.p-recruit__recruitment .c-table {
  margin-top: clamp(30px, var(--px-50), 50px);
}
@media screen and (max-width: 820px) {
  .p-recruit__intro {
    flex-direction: column;
    align-items: stretch;
  }
}
/*-------facility------*/
.p-facility {
  padding-block: clamp(40px, var(--px-80), 80px)
    clamp(60px, var(--px-100), 100px);
}
.p-facility__blocks {
  margin-top: clamp(40px, var(--px-80), 80px);
  display: flex;
  flex-direction: column;
  gap: clamp(48px, var(--px-100), 100px);
}
/*-------service------*/
.p-service {
  padding-block: clamp(40px, var(--px-80), 80px)
    clamp(60px, var(--px-100), 100px);
}
.p-service__about {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, var(--px-45), 45px);
}
.p-service__about-body {
  flex: 1;
  padding-left: 5.55%;
}
.p-service__about-text {
  margin-top: clamp(20px, var(--px-40), 40px);
}
.p-service__list {
  margin-top: clamp(40px, var(--px-80), 80px);
  display: flex;
  flex-direction: column;
  gap: clamp(48px, var(--px-100), 100px);
}
/* アンカーリンク（トップの SERVICE カードから）で固定ヘッダーに隠れないよう余白を確保 */
.p-service__list .c-media {
  scroll-margin-top: clamp(70px, var(--px-100), 100px);
}
.p-service__service {
  margin-top: clamp(60px, var(--px-120), 120px);
}
@media screen and (max-width: 820px) {
  .p-service__about {
    flex-direction: column;
  }
  .p-service__about-body {
    padding-left: 5.55%;
    padding-right: 5.55%;
  }
}
/*-------more（「MORE」＋矢印：トップの各所で共通。色は親の色を継承）------*/
.c-more {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: max(var(--px-15), 13px);
  color: inherit;
}
/* 矢印は背景画像。明るい背景＝navy をデフォルトとし、暗い背景では white に差し替え */
.c-more__line {
  width: clamp(24px, var(--px-30), 30px);
  height: 0.8em;
  background-image: url(../img/arrow-navy.webp);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.25s ease;
}
.p-index__card .c-more__line,
.p-index__recruit .c-more__line {
  background-image: url(../img/arrow-white.webp);
}
/* ホバーで矢印を少し右へ */
.c-more:hover .c-more__line,
.p-index__card:hover .c-more__line {
  transform: translateX(6px);
}
/*-------index fv------*/
.p-index-fv {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100svh;
  background-image: url(../img/mv.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  color: #fff;
  text-align: center;
  padding-top: clamp(60px, var(--px-80), 80px);
}
.p-index-fv__title {
  font-size: max(var(--px-40), 26px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
.p-index-fv__subtitle {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: max(var(--px-20), 15px);
  text-transform: capitalize;
}
.p-index-fv__scroll {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #c43535;
}
.p-index-fv__scroll-text {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: max(var(--px-12), 11px);
  line-height: 1;
}
.p-index-fv__scroll-line {
  position: relative;
  width: 1px;
  height: clamp(30px, var(--px-46), 46px);
  background: rgba(196, 53, 53, 0.25);
  overflow: hidden;
}
/* 線の上を明るい赤の短いセグメントが無限に流れ落ちるスクロール演出 */
.p-index-fv__scroll-line::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 60%;
  background: #c43535;
  animation: scrollLineFlow 1.6s ease-in-out infinite;
}
@keyframes scrollLineFlow {
  0% {
    transform: translateY(-100%);
  }
  60%,
  100% {
    transform: translateY(200%);
  }
}
/*-------index about------*/
.p-index__about {
  position: relative;
  overflow: hidden;
  padding-block: clamp(50px, var(--px-90), 90px)
    clamp(60px, var(--px-120), 120px);
}
/* 右上の水色装飾（FV直下・右端フラッシュ） */
.p-index__about-deco {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 0;
  width: clamp(120px, var(--px-249), 249px);
  height: clamp(180px, var(--px-368), 368px);
  background: #e9ebf8;
  pointer-events: none;
}
.p-index__about-wm {
  position: absolute;
  left: 50%;
  top: clamp(160px, var(--px-320), 320px);
  transform: translateX(-50%);
  z-index: 0;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: max(var(--px-96), 32px);
  color: #f5f5f5;
  white-space: nowrap;
  text-transform: uppercase;
  pointer-events: none;
}
.p-index__about .c-section-title,
.p-index__about-text {
  position: relative;
  z-index: 1;
}
.p-index__about-text {
  margin-top: clamp(24px, var(--px-50), 50px);
  text-align: center;
}
/*-------index service------*/
.p-index__service {
  padding-block: clamp(40px, var(--px-40), 40px)
    clamp(60px, var(--px-100), 100px);
}
.p-index__cards {
  margin-top: clamp(30px, var(--px-50), 50px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(20px, var(--px-27), 27px);
}
.p-index__card {
  position: relative;
  display: block;
  width: clamp(350px, var(--px-409), 409px);
  aspect-ratio: 409 / 260;
  overflow: hidden;
}
.p-index__card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-index__card-body {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, var(--px-20), 20px);
  color: #fff;
}
.p-index__card-title {
  font-size: clamp(18px, var(--px-32), 32px);
  font-weight: 700;
  text-align: center;
  padding-inline: 7px;
}
/*-------index gallery------*/
.p-index__gallery {
  padding-block: clamp(40px, var(--px-40), 40px)
    clamp(60px, var(--px-100), 100px);
}
.p-index__gallery-inner {
  margin-top: clamp(30px, var(--px-50), 50px);
}
/*-------index recruit（青帯。テキスト左／画像右は共通 c-media）------*/
.p-index__recruit {
  background: #3542c4;
  color: #fff;
  padding-top: clamp(40px, var(--px-70), 70px);
  padding-bottom: 0;
}
.p-index__recruit .c-section-title__en,
.p-index__recruit .c-section-title__ja {
  color: #fff;
}
/* 画像を青帯の下端から少しはみ出させる（デザイン準拠） */
.p-index__recruit .c-media__img {
  margin-bottom: calc(-1 * clamp(20px, var(--px-40), 40px));
}
.p-index__recruit-text {
  margin-top: clamp(20px, var(--px-40), 40px);
}
.p-index__recruit-more {
  margin-top: clamp(20px, var(--px-40), 40px);
}
@media screen and (max-width: 820px) {
  /* SP 縦積み時ははみ出しを解除（画像が上にくるため） */
  .p-index__recruit {
    padding-bottom: clamp(40px, var(--px-70), 70px);
  }
  .p-index__recruit .c-media__img {
    margin-bottom: 0;
  }
}
/*-------index company------*/
.p-index__company {
  padding-block: clamp(50px, var(--px-90), 90px);
}
.p-index__company-inner {
  margin-top: clamp(30px, var(--px-50), 50px);
}
.p-index__company-cols {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(24px, var(--px-54), 54px);
}
.p-index__company-left {
  flex: 1;
}
.p-index__company-right {
  flex-shrink: 0;
  width: max(var(--px-500), 280px);
}
.p-index__company-right img {
  display: block;
  width: 100%;
  height: auto;
}
.p-index__company-cta {
  margin-top: clamp(24px, var(--px-40), 40px);
  display: flex;
  align-items: center;
  gap: clamp(16px, var(--px-30), 30px);
}
.p-index__company-tel {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  color: #3542c4;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: max(var(--px-32), 22px);
}
.p-index__company-tel-icon {
  width: 0.7em;
  height: 0.7em;
}
.p-index__company-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  background: #c43535;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: max(var(--px-20), 16px);
  padding: clamp(12px, var(--px-18), 18px) clamp(20px, var(--px-40), 40px);
  border: 1px solid #c43535;
  transition: 0.35s ease-in-out;
}
.p-index__company-btn:hover {
  background: #3542c4;
  opacity: 1;
  border: 1px solid #fff;
  opacity: 1;
}
.p-index__company-btn-icon {
  width: 1.1em;
  height: 1.1em;
}
.p-index__more {
  margin-top: clamp(30px, var(--px-50), 50px);
  text-align: center;
  color: #3542c4;
}
/*-------index access------*/
.p-index__access {
  padding-block-end: clamp(50px, var(--px-90), 90px);
}
.p-index__access-inner {
  margin-top: clamp(30px, var(--px-50), 50px);
}
@media screen and (max-width: 820px) {
  .p-index__company-cols {
    flex-direction: column;
  }
  .p-index__company-right {
    width: 100%;
  }
  .p-index__about-text {
    text-align: left;
  }
}
/* MV はスマホ用に別画像へ差し替え（PC: mv.jpg / SP: sp-mv.jpg、どちらもオーバーレイ焼き込み） */
@media screen and (max-width: 680px) {
  .p-index-fv {
    background-image: url(../img/sp-mv.jpg);
  }
}
/* ============ SP（スマホ向けトップページ／ヘッダー調整） ============ */
@media screen and (max-width: 820px) {
  /* ヘッダー：PC用ナビ／連絡先は隠し、ロゴ＋ハンバーガー（スライドメニュー）へ */
  .c-header-contact {
    display: none;
  }
  .l-header .c-nav {
    margin-inline: 0;
  }
  /* SP ではヘッダーを最初から常時固定（FV 通過後に固定ではなく、ずっと追従）。
     常時固定なので is-fixed のスライドダウン演出は不要 → SP だけ無効化 */
  .l-header {
    position: fixed;
  }
  .l-header.fixed-wrap.is-fixed {
    animation: none;
  }
  /* トップ RECRUIT：縦積み時はテキスト→画像の順（画像は下） */
  .p-index__recruit .c-media__img {
    order: 0;
  }
  .p-index__about-wm {
    top: auto;
    bottom: 0;
  }
}
@media screen and (max-width: 680px) {
  /* 見出し（全ページ共通） */
  .c-section-title__en {
    font-size: 28px;
  }
  .c-section-title__ja {
    font-size: 14px;
  }
  /* FV */
  .p-index-fv {
    height: calc(100svh - 60px);
  }
  .p-index-fv__title {
    font-size: 30px;
  }
  .p-index-fv__subtitle {
    font-size: 15px;
  }
  /* SERVICE：カードは1カラム・全幅 */
  .p-index__card {
    width: 100%;
    aspect-ratio: 355 / 226;
  }
  .p-index__card-title {
    font-size: 20px;
  }
  /* COMPANY：画像は非表示、TEL／CONTACT は縦並び */
  .p-index__company-right {
    display: none;
  }
  .p-index__company-cta {
    flex-direction: column;
    align-items: center;
  }
  /* RECRUIT：画像をテキストの下に置き、青帯の下端から大きくはみ出させる（デザイン準拠）。
     はみ出し分（≈53vw）はセクション下マージンで白スペースとして確保し、次セクションと重ねない。 */
  .p-index__recruit {
    padding-bottom: 0;
    margin-bottom: 53vw;
  }
  .p-index__recruit .c-media__img {
    aspect-ratio: 362 / 270;
    margin-bottom: -53vw;
  }
  .p-index__recruit .c-media__img img {
    width: 92%;
    margin-left: auto;
    height: 100%;
    object-fit: cover;
  }
}
/* CSS Document */
