@charset "UTF-8";
/* ============================================================
   RESET / BASE
============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  font-size: 1px;
  /* ページ内リンクはスクロールアニメーションで移動し、
     追従ヘッダーに隠れないよう上に余白を取って止める */
  scroll-behavior: smooth;
  scroll-padding-top: 150px;
}

/* OS側で「視差効果を減らす」設定の場合はアニメーションさせない */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
body,
h1, h2, h3, h4, p, ul, ol, li, figure,
dl, dt, dd {
  margin: 0;
  padding: 0;
}

ul, ol {
  list-style: none;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: 0.2s;
}

a:hover {
  opacity: 0.7;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

:root {
  --blue: #0041a0;
  --red: #d50032;
  --blue-btn: #4f64ae;
  --red-btn: #ff5a5a;
  --red-bg: #ffe6e6;
  --gray-bg: #f0f0f0;
  --footer-navy: #4f64ae;
  --footer-blue-text: #003594;
  --text-dark: #2d2827;
  --gradient-bar: linear-gradient(90deg, #4E64A9 0%, #476BAE 10%, #347EBE 30%, #159ED8 60%, #00B4EA 70%, #60D9B9 100%);
  --font-jp: 'Zen Kaku Gothic New', 'Hiragino Sans', 'Yu Gothic', sans-serif;
  --font-en: 'Roboto', sans-serif;
  --font-phone: 'Jost', sans-serif;
  /* 追従ヘッダーの高さ。
     PCは .hdBar（シグナルHDグループ導線）＋ .header__inner の2段、
     SPは .header__inner のみ。.pageNav の追従位置もこの値から求める。 */
  --hdbar-h: 40rem;
  --header-h: 94rem;
}

@media (max-width: 768px) {
  :root {
    --hdbar-h: 0rem;
    --header-h: 100rem;
  }
}
body {
  font-family: var(--font-jp);
  color: var(--text-dark);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  /* WebFont読み込み完了後にフェードイン（下の is-fonts-loading を参照） */
  opacity: 1;
  transition: opacity 0.3s ease;
}
body.is-nav-open {
  overflow: hidden;
}

/* ------------------------------------------------------------
   横方向のはみ出しを <main> の内側で切り取る。

   ヒーローの背景写真と下部カーブは、コンテンツ幅より外まで見せるため
   width: 100vw で置いている。ところが 100vw は縦スクロールバーを含む
   幅なので、スクロールバーのぶん（15px前後）だけ左右にはみ出し、
   ドキュメントに横スクロールが生まれてしまう。

   body の overflow-x: hidden はビューポートに伝播してスクロールバーを
   隠すだけで、スクロール自体は残る。そのためリロード時のスクロール位置
   復元などで数px横にずれると、width:100% の要素（ヘッダー・各セクション・
   フッター）だけが右に隙間を作り、100vw のヒーローだけが隙間を覆う、
   という見え方になっていた。

   <main> はコンテンツ幅ちょうどなので、ここで切り取れば
   scrollWidth と clientWidth が一致し、横スクロールが発生しなくなる。
   scroll コンテナを作らない clip を使うことで、下層ページの
   .pageNav（position: sticky）はこれまでどおり効く。
------------------------------------------------------------ */
main {
  overflow-x: clip;
}

/* ============================================================
   WEB FONT
   読み込み中はコンテンツを隠し、フォント差し替え時のチラつき
   （FOUT）を防ぐ。is-fonts-loading は各HTMLのheadにある
   インラインスクリプトが付与し、読み込み完了 or 2秒で外す。
   JS無効時はクラスが付かないため通常表示になる。
============================================================ */
.is-fonts-loading body {
  opacity: 0;
}

.u-sr-only {
  position: absolute;
  width: 1rem;
  height: 1rem;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (max-width: 980px) {
  html {
    font-size: 0.8px;
  }
}
@media (max-width: 768px) {
  html {
    font-size: 0.133333vw;
    scroll-padding-top: 150rem;
  }
}
/* pc / sp toggles ------------------------------------------- */
.sp-only {
  display: none !important;
}

.pc-only {
  display: block !important;
}

br.pc-only {
  display: inline;
}

br.sp-only {
  display: none;
}

@media (max-width: 768px) {
  .sp-only {
    display: block !important;
  }
  .pc-only {
    display: none !important;
  }
  br.sp-only {
    display: inline;
  }
  br.pc-only {
    display: none;
  }
}
/* generic inner container ------------------------------------ */
.l-inner {
  max-width: 1300rem;
  margin: 0 auto;
  padding: 0 40rem;
}
@media (max-width: 768px) {
  .l-inner {
    padding: 0 20rem;
  }
}

/* ============================================================
   SECTION TITLE （セクション中央見出し）
   トップの「シグナルの強み」「あらゆるニーズに応える求人媒体」
   「求人広告＋人材紹介のハイブリッド採用」で使用。
   下層ページの中央見出しにも流用できるよう共通に置く。
============================================================ */
.secTtl {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  /* 下線付き（文字幅ぶんだけ引くため table で幅を内容に合わせる） */
}
.secTtl--line {
  display: table;
  margin: 0 auto;
  padding-bottom: 2rem;
  border-bottom: 4rem solid var(--red);
}
.secTtl {
  /* 見出し下の英字ラベル（ABOUT SERVICE など） */
}
.secTtl__en {
  display: block;
  margin-top: 8rem;
  color: var(--blue-btn);
  font-family: var(--font-en);
  font-size: 13rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}
@media (max-width: 768px) {
  .secTtl {
    font-size: 35rem;
    line-height: 1.75;
  }
  .secTtl__en {
    margin-top: 6rem;
    font-size: 20rem;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
.frontView {
  position: relative;
  width: 100%;
  /* パンくず------------------------------------------- */
}
.frontView__crumb {
  position: absolute;
  top: 38rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 980rem;
  color: #fff;
  font-size: 12rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-shadow: 1rem 1rem 13rem #000, 0 0 5rem rgba(0, 0, 0, 0.6);
  padding: 0 40rem;
}
.frontView__crumb .breadcrumb {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14rem;
}
.frontView__crumb .breadcrumb li {
  vertical-align: 18%;
}
.frontView__crumb .breadcrumb li + li::before {
  content: ">";
  margin: 0 8rem;
  color: #fff;
  position: relative;
  top: -1rem;
}
.frontView__crumb .breadcrumb a:hover {
  opacity: 0.7;
}
@media (min-width: 1301px) {
  .frontView {
    height: 514rem;
    background-repeat: no-repeat;
    background-size: 1849rem;
    background-position: center top;
  }
  .frontView__img {
    width: 1300rem;
    height: auto;
    margin: auto;
  }
}
@media (max-width: 1300px) {
  .frontView {
    background: none;
  }
  .frontView__img {
    width: 100%;
    height: auto;
  }
}
@media (max-width: 768px) {
  .frontView__crumb {
    top: 30rem;
  }
  .frontView__crumb .breadcrumb {
    font-size: 20rem;
    padding-left: 5%;
  }
}
.frontView {
  /* 角丸インセット型（governance / recruit） --------------- */
}
.frontView--inset {
  padding-top: 16rem;
}
@media (min-width: 1301px) {
  .frontView--inset {
    height: auto;
    background: none;
  }
}
.frontView--inset .frontView__img {
  width: 95%;
  max-width: 1100rem;
  height: auto;
  margin: 0 auto;
  border-radius: 20rem;
}
.frontView--inset .frontView__crumb {
  top: 46rem;
  z-index: 1;
}
.frontView--inset .frontView__crumb-02 {
  top: 38rem;
  z-index: 1;
}
@media (max-width: 768px) {
  .frontView--inset {
    padding-top: 20rem;
  }
  .frontView--inset .frontView__img {
    width: 90%;
    border-radius: 20rem;
  }
  .frontView--inset .frontView__crumb {
    top: 44rem;
  }
  .frontView--inset .frontView__crumb-02 {
    top: 30rem;
  }
}

/* ============================================================
   CRUMB BAR （メインビジュアルを持たないページのパンくず）
============================================================ */
.crumbBar {
  padding-top: 36rem;
}
.crumbBar.governance-cb {
  padding-top: 38rem;
}
.crumbBar__inner {
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.crumbBar .breadcrumb {
  display: flex;
  color: var(--blue);
  font-size: 14rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
.crumbBar .breadcrumb li + li::before {
  content: ">";
  margin: 0 8rem;
  position: relative;
  top: -1rem;
}
.crumbBar .breadcrumb a:hover {
  opacity: 0.7;
}
@media (max-width: 768px) {
  .crumbBar {
    padding-top: 30rem;
  }
  .crumbBar.governance-cb {
    padding-top: 30rem;
  }
  .crumbBar__inner {
    padding-left: 9.7%;
  }
  .crumbBar .breadcrumb {
    font-size: 20rem;
  }
}

/* ============================================================
   PAGE BODY （下層ページ 共通レイアウト）
============================================================ */
.pageBody {
  position: relative;
  padding: 80rem 0 120rem;
  background: #fff;
  /* hidden だとスクロールコンテナが生成され .pageNav の sticky が効かないため clip を使用 */
  overflow: clip;
  padding-top: 40rem;
  /* corporate以外の下層ページで使用する背景（薄いシンボルマーク） */
}
.pageBody--bg::before {
  content: "";
  position: absolute;
  top: 116rem;
  left: 50%;
  margin-left: -410rem;
  width: 1746em;
  height: 1746em;
  background: url(../img/page/bg.webp) no-repeat center/contain;
  pointer-events: none;
}
.pageBody--bg.security::before, .pageBody--bg.policy::before {
  top: 200rem;
}
.pageBody__inner {
  position: relative;
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
  display: flex;
  align-items: flex-start;
  gap: 60rem;
}
.pageBody__main {
  flex: 1;
  min-width: 0;
}
@media (max-width: 768px) {
  .pageBody {
    padding: 104rem 0 110rem;
  }
  .pageBody--bg::before {
    top: 128rem;
    left: 100rem;
    margin-left: 0;
    width: 1012rem;
    height: 1012rem;
  }
  .pageBody--bg.security::before, .pageBody--bg.policy::before {
    top: 320rem;
  }
  .pageBody__inner {
    max-width: none;
    padding: 0 5%;
    flex-direction: column;
    gap: 0;
  }
  .pageBody__main {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .message::before {
    top: 0 !important;
  }
}
/* ============================================================
   PAGE TITLE （下層ページ 見出し）
============================================================ */
.pageTtl {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.pageTtl__en {
  display: block;
  margin-top: 6rem;
  color: var(--blue);
  font-family: var(--font-en);
  font-size: 13rem;
  font-weight: 400;
  letter-spacing: 0.15em;
  margin-left: 2rem;
}
@media (max-width: 768px) {
  .pageTtl {
    padding-left: 5%;
  }
  .pageTtl__en {
    margin-top: 6rem;
    font-size: 20rem;
  }
}

/* ============================================================
   PAGE NAV （企業情報 サイドナビ / SPは下部ボタン）
============================================================ */
.pageNav {
  flex: 0 0 180rem;
  width: 180rem;
  /* スクロールでヘッダー下まで来たら追従して固定（group / profile）
     ※ messageページはPCで非表示のため影響なし */
}
@media (min-width: 769px) {
  .pageNav {
    position: sticky;
    top: calc(var(--hdbar-h) + var(--header-h) + 20rem);
  }
}
.pageNav__ttl {
  margin-bottom: 12rem;
  color: var(--blue-btn);
  font-size: 12rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.pageNav__list {
  display: flex;
  flex-direction: column;
  gap: 10rem;
}
.pageNav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10rem;
  padding: 10rem 14rem 11rem 20rem;
  background: #fff;
  border: 1rem solid #9b9b9b;
  border-radius: 50rem;
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.pageNav__arrow {
  flex: 0 0 auto;
  width: 12rem;
  height: auto;
}
@media (max-width: 768px) {
  .pageNav {
    flex: none;
    width: 100%;
    margin-top: 90rem;
  }
  .pageNav__ttl {
    display: none;
  }
  .pageNav__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24rem 24rem;
    padding: 0 5%;
  }
  .pageNav__item {
    width: calc((100% - 24rem) / 2);
  }
  .pageNav__link {
    padding: 18rem 26rem 19rem 40rem;
    font-size: 25rem;
    border-radius: 60rem;
  }
  .pageNav__arrow {
    width: 29rem;
  }
}

/* ============================================================
   HEADER

   PCは「シグナルHDグループへの導線（.hdBar）」＋「ロゴ／ナビ／連絡先」の
   2段構成。高さは _common.scss の --hdbar-h / --header-h で持ち、
   下層ページのサイドナビ（.pageNav）の追従位置もこの値を参照する。
============================================================ */
.header {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(var(--hdbar-h) + var(--header-h));
  background: #fff;
  z-index: 500;
  /* 影は色だけを変化させる（none からだとアニメーションしないため、
     初期値は同じ形状の透明な影にしておく） */
  box-shadow: 0 1rem 10rem rgba(0, 0, 0, 0);
  transition: box-shadow 0.6s ease;
  /* 200px スクロールで影を表示（is-scrolled は script.js が付与） */
}
.header.is-scrolled {
  box-shadow: 0 5rem 10rem rgba(74, 95, 159, 0.15);
}
.header__inner {
  max-width: 1300rem;
  height: var(--header-h);
  margin: 0 auto;
  padding: 0 40rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header__logo-mark {
  height: 70rem;
  width: auto;
}
.header {
  /* ナビ（上段）と連絡先（下段）を右側に縦積みする */
}
.header__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
}
.header__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-left: 30rem;
  max-width: 690rem;
  width: 690rem;
}
.header__nav__link {
  position: relative;
  font-size: 13rem;
  font-weight: 500;
  color: var(--blue);
  padding: 10rem 0 19rem;
}
.header__nav__link > a {
  color: inherit;
}
.header__nav__link--has-sub > a::after {
  content: "";
  display: inline-block;
  width: 6rem;
  height: 6rem;
  background-color: #ff9494;
  border-radius: 50%;
  margin-left: 8rem;
  vertical-align: 10%;
  opacity: 0.5;
}
.header__nav__link--has-sub:hover .header__nav__sub {
  opacity: 1;
  visibility: visible;
  transform: translateY(-10rem);
}
.header__nav__sub {
  position: absolute;
  top: calc(100% + 9rem);
  left: -25rem;
  background: #fff;
  border-radius: 20rem;
  box-shadow: 3rem 3rem 15rem rgba(0, 0, 0, 0.3);
  padding: 20rem 0 20rem 24rem;
  min-width: 180rem;
  display: flex;
  flex-direction: column;
  gap: 15rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.header__nav__sub.gove-navSub {
  min-width: 230rem;
}
.header__nav__sub__link {
  font-size: 12rem;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  color: var(--blue);
  white-space: nowrap;
}
.header__nav__sub__link img {
  margin-left: 4rem;
  margin-top: 2rem;
  opacity: 0;
  transition: margin-left 0.3s ease, opacity 0.3s ease;
}
.header__nav__sub__link:hover {
  opacity: 0.7;
}
.header__nav__sub__link:hover img {
  opacity: 1;
  margin-left: 10rem;
}
.header {
  /* ---- 電話番号＋お問い合わせフォーム ---- */
}
.header__contact {
  display: flex;
  align-items: center;
  gap: 22rem;
}
.header__tel {
  display: flex;
  align-items: center;
  color: var(--blue);
  gap: 3rem;
}
.header__tel-label {
  flex: 0 0 auto;
  padding: 3rem 6rem 4rem;
  border: 1rem solid var(--blue);
  border-radius: 3rem;
  font-size: 12rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  margin-right: 5rem;
}
.header__tel-icon {
  flex: 0 0 auto;
  width: 13rem;
  height: auto;
  /* フリーダイヤルのマークは横長 */
}
.header__tel-icon--free {
  width: 24rem;
}
.header__tel-num {
  font-family: var(--font-phone);
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.header__form-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 10rem 4rem;
  background: var(--blue);
  border-radius: 3rem;
  color: #fff;
  font-size: 12rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .header {
    height: var(--header-h);
  }
  .header__inner {
    width: 90%;
    height: 100%;
    padding: 0;
  }
  .header__logo-mark {
    height: 75rem;
  }
  .header__nav {
    display: none;
  }
  .header__right {
    display: none;
  }
}

/* ============================================================
   HD BAR （ヘッダー上部：シグナルHDグループへの導線）
   SPではナビ下部の .sp-nav__hd が同じ役割を持つ。
============================================================ */
.hdBar {
  height: var(--hdbar-h);
  background-image: url(../img/menu_bg_sp.svg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: 0 bottom;
}
.hdBar__inner {
  max-width: 1300rem;
  height: 100%;
  margin: 0 auto;
  padding: 0 40rem;
}
.hdBar__link {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
}
.hdBar__logo {
  width: 158rem;
  height: auto;
}
.hdBar__txt {
  display: flex;
  align-items: center;
  gap: 7rem;
  font-size: 12rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.hdBar {
  /* blank-icon.svg は白のみのため、mask で線の色を変えて使う */
}
.hdBar__blank {
  display: block;
  width: 12rem;
  height: 9rem;
  background-color: #fff;
  -webkit-mask: url(../img/blank-icon.svg) no-repeat center/contain;
  mask: url(../img/blank-icon.svg) no-repeat center/contain;
}

/* ============================================================
   SP MENU BUTTON （ハンバーガー ⇄ クローズ）
============================================================ */
.sp-menu,
.sp-menu-close {
  position: relative;
  flex: 0 0 auto;
  width: 60rem;
  height: 31rem;
}

.sp-menu {
  display: none;
}
@media (max-width: 768px) {
  .sp-menu {
    display: block;
  }
}

.sp-menu__bar {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1.5px;
  background: var(--blue-btn);
  transition: transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1), opacity 0.2s ease;
}
.sp-menu__bar:nth-child(1) {
  top: 0;
}
.sp-menu__bar:nth-child(2) {
  top: 14rem;
}
.sp-menu__bar:nth-child(3) {
  top: 28rem;
}

/* メニュー展開時：上下のバーを中央へ寄せて×印に -------------- */
.is-nav-open .sp-menu__bar:nth-child(1) {
  transform: translateY(14rem) rotate(45deg) scaleX(0.8);
}
.is-nav-open .sp-menu__bar:nth-child(2) {
  transform: scaleX(0);
  opacity: 0;
}
.is-nav-open .sp-menu__bar:nth-child(3) {
  transform: translateY(-14rem) rotate(-45deg) scaleX(0.8);
}

/* ============================================================
   SP GLOBAL NAVIGATION
============================================================ */
.sp-nav {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: linear-gradient(90deg, #d50032, #ff5a5a);
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s ease;
}
.sp-nav.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.sp-nav__header {
  height: var(--header-h);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5%;
  position: fixed;
  width: 100%;
}
.sp-nav__list {
  padding: 160rem 0 80rem 7%;
  width: 490rem;
}
.sp-nav__item {
  padding-bottom: 30rem;
  margin-bottom: 30rem;
}
.sp-nav__item:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
}
.sp-nav__item:nth-child(4) li:nth-child(n+3) {
  padding-left: 25rem;
}
.sp-nav__link {
  display: flex;
  align-items: center;
  gap: 20rem;
  color: #fff;
  font-size: 30rem;
  font-weight: 500;
  padding-bottom: 30rem;
  border-bottom: 1rem solid rgb(255, 255, 255);
}
.sp-nav__arrow {
  width: 24rem;
  height: auto;
  padding-top: 6rem;
}
.sp-nav__sublist {
  margin-top: 40rem;
  padding-left: 48rem;
  display: flex;
  flex-direction: column;
  gap: 34rem;
}
.sp-nav__sublist a {
  color: #fff;
  font-size: 25rem;
  font-weight: 500;
}
.sp-nav {
  /* ---- ナビ下部：シグナルHDグループへの導線 ---- */
}
.sp-nav__hd {
  background: var(--gradient-bar);
  padding: 34rem 5% 40rem;
  text-align: center;
}
.sp-nav__hd-logo {
  width: 300rem;
  height: auto;
  margin: 0 auto;
}
.sp-nav__hd-txt {
  margin-top: 16rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12rem;
  color: #fff;
  font-size: 22rem;
  font-weight: 500;
}
.sp-nav__hd-blank {
  width: 22rem;
  height: auto;
}
@media (min-width: 769px) {
  .sp-nav {
    display: none;
  }
}

/* ============================================================
   SP TEL （SPナビ内の電話番号＋フォーム導線）
   フッターの .ftTel と同じ並びだが、余白と文字サイズがSPナビ用。
============================================================ */
.spTel {
  margin-top: 40rem;
  padding-left: 48rem;
  /* 電話番号とボタンは .sp-nav__list（490rem）より広く取る。
     左端 52rem ＋ 600rem で右端は画面の約87%に収まる。 */
  width: 600rem;
}
.spTel__item {
  display: flex;
  align-items: center;
  gap: 14rem;
  margin-bottom: 22rem;
  color: #fff;
}
.spTel__item:nth-child(2) .spTel__label {
  margin-right: 9rem;
}
.spTel__label {
  flex: 0 0 auto;
  padding: 5rem 10rem 6rem;
  background: #fff;
  color: #d50032;
  font-size: 20rem;
  font-weight: 700;
  white-space: nowrap;
}
.spTel__icon {
  flex: 0 0 auto;
  width: 22rem;
  height: auto;
}
.spTel__icon--free {
  width: 38rem;
}
.spTel__num {
  font-family: var(--font-phone);
  font-size: 34rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.spTel__btn {
  display: block;
  margin-top: 34rem;
  padding: 20rem 10rem 21rem;
  border: 1rem solid #fff;
  color: #fff;
  font-size: 25rem;
  font-weight: 500;
  text-align: center;
  white-space: nowrap;
}

/* ============================================================
   HERO （レイアウト）

   動きの定義は assets/css/wp.scss の
   「HERO ENTRANCE ANIMATION」以降にまとめている。
============================================================ */
.hero {
  position: relative;
  width: 100%;
  max-width: 1300rem;
  margin: 0 auto;
  aspect-ratio: 1300/1405;
  /* 背景写真と下部の曲線を max-width より外へ出すため、横方向は切り取らない。
     はみ出した分は <main> の overflow-x: clip が受け止める
     （_common.scss 参照。100vw はスクロールバーを含む幅なので、
     ここで切り取らないとドキュメントに横スクロールが生まれてしまう）。 */
  overflow-x: visible;
  overflow-y: clip;
  background: #fff;
}
.hero__circle, .hero__humans {
  position: absolute;
  inset: 0;
}
.hero__bg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  height: 100%;
  /* 背景写真は 108% から 100% へ縮小する。拡大ぶんが横に広がらないよう
     ここで切り取る（縦は .hero の overflow-y: clip が受け持つ）。 */
  overflow: hidden;
}
.hero__bottom {
  position: absolute;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
}
@media (min-width: 1501px) {
  .hero__bottom {
    bottom: -200rem;
  }
}
.hero {
  /* 背景写真3枚は同じ位置に重ねて置き、opacity で入れ替える */
}
.hero__bg-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transform-origin: center center;
}
@media (min-width: 1501px) {
  .hero__bg-img {
    height: 95%;
  }
}
.hero__circle-img, .hero__h2 {
  position: absolute;
}
.hero__circle-img {
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.hero__circle-img--04 {
  left: 27.03%;
  width: 45.93%;
  top: 2.88%;
  aspect-ratio: 1/1;
}
.hero__circle-img--03 {
  left: 26.96%;
  width: 45.96%;
  top: 2.88%;
  aspect-ratio: 1/1;
}
.hero__circle-img--02 {
  left: 36.16%;
  width: 27.56%;
  top: 11.33%;
  aspect-ratio: 1/1;
}
.hero__circle-img--01 {
  left: 26.95%;
  width: 45.96%;
  top: 2.88%;
  aspect-ratio: 1/1;
}
.hero {
  /* 重なり順を 03 < 04 < 02 < 01 < h2 に揃える
     （HTMLの並びは 04→03→02→01 で 03 が 04 の上に来てしまうため） */
}
.hero__circle-img--03 {
  z-index: 1;
}
.hero__circle-img--04 {
  z-index: 2;
}
.hero__circle-img--02 {
  z-index: 3;
}
.hero__circle-img--01 {
  z-index: 4;
}
.hero__h2 {
  z-index: 5;
}
.hero__h2 {
  height: auto;
  left: 29.84%;
  width: 40.21%;
  top: 15.18%;
}
.hero__title {
  position: absolute;
  left: 5%;
  right: 5%;
  top: 48.82%;
  color: #fff;
  font-size: 26rem;
  font-weight: 700;
  line-height: 1.65;
  text-align: center;
  text-shadow: 0 0 10rem #000, 0 0 10rem #000;
}
.hero {
  /* ------------------------------------------------------------
     人物9枚は3人ずつ表示する。
     左（01/04/07）・中（02/05/08）・右（03/06/09）の3枠に
     3枚ずつ重ねて置き、opacity で入れ替える。
     幅は元画像の比率をそろえた値で、3枠あわせて 26%〜74% に収まる。
  ------------------------------------------------------------ */
}
.hero__human {
  position: absolute;
  bottom: 0;
  -o-object-fit: contain;
     object-fit: contain;
  /* 1組目 */
}
.hero__human--01 {
  left: 25%;
  width: 15.64%;
}
.hero__human--02 {
  left: 42.87%;
  width: 15.25%;
}
.hero__human--03 {
  left: 60.42%;
  width: 17.56%;
}
.hero__human {
  /* 2組目 */
}
.hero__human--04 {
  left: 27%;
  width: 13.83%;
}
.hero__human--05 {
  left: 43.69%;
  width: 13.64%;
}
.hero__human--06 {
  left: 59.41%;
  width: 19.02%;
}
.hero__human {
  /* 3組目 */
}
.hero__human--07 {
  left: 22%;
  width: 19.67%;
}
.hero__human--08 {
  left: 43.52%;
  width: 14.41%;
}
.hero__human--09 {
  left: 60.16%;
  width: 14.87%;
}
.hero__bottom img {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-height: 850rem;
}
@media (max-width: 768px) {
  .hero {
    max-width: none;
    aspect-ratio: 375/537;
  }
  .hero__bg-img {
    height: 89.49%;
  }
  .hero__circle-img--04 {
    left: 21.6%;
    width: 57.33%;
    top: 4%;
    aspect-ratio: 1/1;
  }
  .hero__circle-img--03 {
    left: 21.6%;
    width: 57.33%;
    top: 4%;
    aspect-ratio: 1/1;
  }
  .hero__circle-img--02 {
    left: 33.07%;
    width: 34.4%;
    top: 12%;
    aspect-ratio: 1/1;
  }
  .hero__circle-img--01 {
    left: 21.6%;
    width: 57.33%;
    top: 4%;
    aspect-ratio: 1/1;
  }
  .hero__h2 {
    height: auto;
    left: 25.33%;
    width: 49.34%;
    top: 15.05%;
  }
  .hero__title {
    left: 5%;
    right: 5%;
    top: 47.25%;
    font-size: 30rem;
  }
  .hero__human {
    /* 1組目 */
  }
  .hero__human--01 {
    left: 17.4%;
    width: 19.99%;
  }
  .hero__human--02 {
    left: 40.47%;
    width: 19.49%;
  }
  .hero__human--03 {
    left: 63.12%;
    width: 22.44%;
  }
  .hero__human {
    /* 2組目 */
  }
  .hero__human--04 {
    left: 20%;
    width: 17.68%;
  }
  .hero__human--05 {
    left: 41.19%;
    width: 17.43%;
  }
  .hero__human--06 {
    left: 61.71%;
    width: 24.31%;
  }
  .hero__human {
    /* 3組目 */
  }
  .hero__human--07 {
    left: 13%;
    width: 25.14%;
  }
  .hero__human--08 {
    left: 41.41%;
    width: 18.42%;
  }
  .hero__human--09 {
    left: 62.81%;
    width: 19.01%;
  }
}

/* ============================================================
   NETWORK
============================================================ */
.network {
  padding: 70rem 0 60rem;
  text-align: center;
}
.network__inner {
  max-width: 1300rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.network__ttl {
  color: var(--blue);
  font-weight: 700;
  font-size: 26rem;
  margin-top: 70rem;
}
.network__lead {
  color: var(--blue);
  font-size: 15rem;
  font-weight: 500;
  line-height: 1.6;
  margin-top: 16rem;
}
.network__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 24rem;
  background: var(--blue-btn);
  color: #fff;
  font-weight: 700;
  font-size: 14rem;
  border-radius: 50rem;
  padding: 12rem 30rem 13rem;
}
.network__map {
  margin: 40rem auto 0;
  max-width: 915rem;
}
.network__catch {
  margin-top: 40rem;
  color: var(--blue);
  font-weight: 700;
  font-size: 24rem;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .network {
    padding: 48rem 0 40rem;
  }
  .network__catch {
    font-size: 35rem;
  }
  .network__map {
    max-width: 90%;
  }
  .network__ttl {
    font-size: 30rem;
    margin-top: 60rem;
  }
  .network__lead {
    font-size: 25rem;
  }
  .network__btn {
    font-size: 25rem;
    margin-top: 40rem;
  }
}

/* ============================================================
   STRENGTH （シグナルの強み）
============================================================ */
.strength {
  background: #fff;
  padding: 60rem 0 70rem;
  text-align: center;
}
.strength__inner {
  max-width: 1300rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.strength__catch {
  margin-top: 40rem;
  color: var(--blue);
  font-size: 26rem;
  font-weight: 700;
  line-height: 1.6;
}
.strength__lead {
  margin-top: 20rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.12em;
}
.strength__map {
  margin: -15rem auto 0;
  max-width: 816rem;
}
.strength__map img {
  width: 85.9%;
  margin: 0 0 0 auto;
}
@media (max-width: 768px) {
  .strength {
    padding: 70rem 0 60rem;
  }
  .strength__inner {
    padding: 0 5%;
  }
  .strength__catch {
    margin-top: 70rem;
    font-size: 25rem;
  }
  .strength__lead {
    margin-top: 26rem;
    font-size: 25rem;
    font-weight: 500;
  }
  .strength__map {
    margin-top: 40rem;
    max-width: 90%;
  }
  .strength__map img {
    width: 100%;
    margin: 0;
  }
}

/* ============================================================
   MEDIA （あらゆるニーズに応える求人媒体）
============================================================ */
.media {
  background: var(--gray-bg);
  padding: 70rem 0 100rem;
}
.media__inner {
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.media__grid {
  margin-top: 40rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.media__card {
  background: #fff;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  padding: 50rem 40rem 60rem;
  text-align: center;
}
.media__card:nth-child(1) {
  width: 41%;
}
.media__card:nth-child(2) {
  width: 52%;
}
.media__card--wide {
  margin-top: 60rem;
  width: 100%;
  padding: 45rem 40rem;
}
.media__card--wide .media__card-logo {
  min-height: 0;
  border: none;
  margin-top: 0;
}
.media__card-ttl {
  color: var(--blue);
  font-size: 22rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.media__card-sub {
  margin-top: 6rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.media__card {
  /* ロゴ側に区切り線を持たせる */
}
.media__card-logo {
  margin-top: 20rem;
  padding-top: 26rem;
  border-top: 1rem solid #c0bfbe;
  min-height: 190rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40rem;
  text-align: center;
}
.media__card-logo--indeed {
  flex-direction: column;
}
.media__card-logo img {
  height: auto;
}
.media__logo-indeed {
  width: 200rem;
}
.media__logo-platinum {
  width: 78rem;
}
.media__logo-site {
  width: 240rem;
}
.media__logo-airwork {
  width: 265rem;
}
.media__note {
  margin-top: 50rem;
  color: var(--blue);
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}
@media (max-width: 768px) {
  .media {
    padding: 70rem 0 90rem;
  }
  .media__inner {
    padding: 0 9.5%;
  }
  .media__grid {
    margin-top: 50rem;
    gap: 50rem;
    flex-direction: column;
  }
  .media__card {
    width: 100% !important;
    padding: 40rem 40rem 46rem;
    margin-top: 0;
  }
  .media__card-ttl {
    font-size: 30rem;
  }
  .media__card-sub {
    margin-top: 10rem;
    font-size: 25rem;
  }
  .media__card-logo {
    margin-top: 30rem !important;
    padding-top: 40rem;
    min-height: 260rem;
    gap: 30rem;
    flex-direction: row;
  }
  .media__card--wide .media__card-logo {
    border-top: 1rem solid #c0bfbe;
    padding: 60rem 0 40rem;
  }
  .media__logo-indeed {
    width: 300rem;
  }
  .media__logo-platinum {
    width: 118rem;
  }
  .media__logo-site {
    width: 360rem;
  }
  .media__logo-airwork {
    width: 400rem;
  }
  .media__note {
    margin-top: 50rem;
    font-size: 25rem;
  }
}

/* ============================================================
   HYBRID （求人広告＋人材紹介のハイブリッド採用）
============================================================ */
.hybrid {
  background: #fff;
  padding: 90rem 0 90rem;
  text-align: center;
}
.hybrid__inner {
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.hybrid {
  /* 見出しの「求人広告」「人材紹介」だけ下線を引く */
}
.hybrid__ttl-mark {
  padding-bottom: 2rem;
  border-bottom: 4rem solid var(--red);
}
.hybrid__lead {
  margin-top: 35rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.9;
}
.hybrid__grid {
  margin-top: 34rem;
  padding: 25rem 30rem 30rem;
  background: linear-gradient(90deg, #d50032, #eb2f47 30%, #ff5a5a);
  border-radius: 20rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5rem;
}
.hybrid__card {
  min-width: 0;
  display: block;
}
.hybrid__card-img {
  width: 380rem;
  height: auto;
}
.hybrid__card-ttl {
  display: block;
  margin-bottom: 15rem;
  color: #fff;
  font-size: 26rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.hybrid__plus {
  width: 57rem;
  margin-top: 40rem;
  line-height: 0;
}
.hybrid__plus img {
  width: 100%;
  height: auto;
}
.hybrid__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 34rem;
  background: var(--red-btn);
  color: #fff;
  font-weight: 700;
  font-size: 14rem;
  border-radius: 50rem;
  padding: 12rem 30rem 13rem;
}
@media (max-width: 768px) {
  .hybrid {
    padding: 80rem 0 90rem;
  }
  .hybrid__inner {
    padding: 0 9.5%;
  }
  .hybrid__lead {
    margin-top: 45rem;
    font-size: 25rem;
  }
  .hybrid__grid {
    margin-top: 70rem;
    padding: 45rem 30rem;
    flex-direction: column;
    gap: 26rem;
  }
  .hybrid__card {
    width: 100%;
    display: flex;
    flex-direction: column;
  }
  .hybrid__card:last-child {
    flex-direction: column-reverse;
  }
  .hybrid__card:last-child .hybrid__card-ttl {
    margin: 18rem 0 0;
  }
  .hybrid__card-ttl {
    margin-bottom: 18rem;
    font-size: 30rem;
  }
  .hybrid__card-img {
    width: 100%;
  }
  .hybrid__plus {
    width: 65rem;
    margin-top: 0;
  }
  .hybrid__btn {
    margin-top: 50rem;
    font-size: 25rem;
  }
}

/* ============================================================
   FEATURES
============================================================ */
.features {
  background: var(--gray-bg);
  padding: 90rem 0 40rem 0;
}
.features__grid {
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
  display: flex;
  justify-content: space-between;
  gap: 20rem;
}
.features__card {
  max-width: 420rem;
  background: #fff;
  padding: 30rem;
  border-radius: 20rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  border: 1rem solid #c0bfbe;
  overflow: hidden;
  padding-bottom: 24rem;
  text-align: center;
  display: block;
}
.features__card-img {
  width: 100%;
}
.features__card-txt {
  text-align: left;
}
.features__card-ttl {
  color: var(--blue);
  font-weight: 700;
  font-size: 22rem;
  margin-top: 25rem;
}
.features__card-label {
  color: var(--blue-btn);
  font-weight: 700;
  font-size: 13rem;
  font-family: var(--font-en);
  letter-spacing: 0.18em;
  margin: 8rem 0;
  display: inline-block;
}
@media (max-width: 768px) {
  .features {
    padding: 90rem 0 60rem 0;
  }
  .features__grid {
    flex-direction: column;
    align-items: center;
    gap: 48rem;
    padding: 0 9.5%;
  }
  .features__card {
    max-width: 100%;
    padding: 30rem;
  }
  .features__card-txt {
    display: flex;
  }
  .features__card-ttl {
    font-size: 30rem;
    margin-top: 30rem;
  }
  .features__card-label {
    font-size: 18rem;
    margin: 48rem 0 0 20rem;
  }
}

/* ============================================================
   PDF DOWNLOAD
============================================================ */
.pdfdl {
  background: var(--gray-bg);
  padding: 15rem 40rem 100rem;
}
.pdfdl__box {
  max-width: 900rem;
  margin: 0 auto;
  background: #fff;
  border-radius: 20rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  border: 1rem solid #c0bfbe;
  padding: 40rem 60rem;
}
.pdfdl__box__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24rem;
  max-width: 578rem;
  margin: auto;
}
.pdfdl__txt {
  color: var(--blue);
  font-size: 15rem;
  line-height: 1.8;
  font-weight: 500;
}
.pdfdl__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 20rem;
  background: var(--blue-btn);
  color: #fff;
  font-weight: 700;
  font-size: 14rem;
  border-radius: 25rem;
  padding: 12rem 40rem 13rem;
  white-space: nowrap;
  text-align: center;
  /* ------------------------------------------------------------
     デジタルパンフPDF未設定時の「準備中です」ボタン。
  ------------------------------------------------------------ */
}
.pdfdl__btn--soon {
  cursor: default;
  border: var(--blue) 1rem solid;
  background-color: #fff;
  color: var(--blue);
}
.pdfdl__mockup {
  flex: 0 0 auto;
  width: 200rem;
}
@media (max-width: 768px) {
  .pdfdl {
    padding: 0rem 10% 100rem;
  }
  .pdfdl__box {
    flex-direction: column;
    padding: 30rem 24rem 40rem;
  }
  .pdfdl__box__inner {
    display: block;
  }
  .pdfdl__txt {
    text-align: center;
    font-size: 25rem;
  }
  .pdfdl__mockup {
    width: 45%;
    order: -1;
    margin: 30em auto;
  }
  .pdfdl__btn {
    font-size: 25rem;
    margin: auto;
    border-radius: 50rem;
    max-width: 75%;
  }
}

/* ============================================================
   NEWS
============================================================ */
.news {
  padding: 90rem 0 70rem;
}
.news__inner {
  max-width: 680rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.news__ttl {
  text-align: center;
  color: var(--blue);
  font-weight: 700;
  font-size: 30rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6rem;
}
.news__ttl span {
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 20rem;
  letter-spacing: 2rem;
}
.news__list {
  margin-top: 40rem;
}
.news__item {
  display: flex;
  align-items: center;
  gap: 20rem;
  padding: 18rem 0;
  border-bottom: 1rem dashed #808181;
  font-size: 15rem;
  color: var(--text-dark);
}
.news__pdf {
  width: 19rem;
}
.news__btn {
  display: block;
  width: 176rem;
  margin: 55rem auto 0;
  text-align: center;
  background: var(--red-btn);
  color: #fff;
  font-weight: 700;
  font-size: 14rem;
  letter-spacing: 1.4rem;
  border-radius: 25rem;
  padding: 13rem 0 14rem;
}
@media (max-width: 768px) {
  .news {
    padding: 80rem 0 90rem;
  }
  .news__inner {
    padding: 0 7%;
    max-width: none;
  }
  .news__ttl {
    font-size: 30em;
  }
  .news__ttl span {
    font-size: 20rem;
  }
  .news__item {
    font-size: 25rem;
    flex-wrap: wrap;
  }
  .news__pdf {
    width: 24rem;
  }
  .news__txt {
    flex-basis: 89%;
  }
  .news__btn {
    font-size: 25rem;
    border-radius: 50rem;
    margin-top: 70rem;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .vision-fv {
    background-image: url(../img/page/vision_frontview_l.webp);
  }
}

/* ============================================================
   VISION （シグナルHDグループの事業）
============================================================ */
.vision {
  padding: 70rem 0 0;
  background: #fff;
}
.vision__inner {
  max-width: 1300rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.vision__head {
  text-align: center;
}
.vision__ttl {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.vision__en {
  display: block;
  margin-top: 6rem;
  color: var(--blue);
  font-family: var(--font-en);
  font-size: 14rem;
  font-weight: 400;
  letter-spacing: 0.15em;
}
.vision__catch {
  margin-top: 55rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.15em;
  text-align: center;
}
.vision__lead {
  margin-top: 22rem;
  color: var(--blue);
  font-size: 15rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.03em;
  text-align: center;
}
.vision__lead + .vision__lead {
  margin-top: 20rem;
}
.vision__map {
  max-width: 915rem;
  margin: 58rem auto 0;
}
.vision__map img {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .vision {
    padding-top: 104rem;
  }
  .vision__inner {
    padding: 0 5%;
  }
  .vision__head {
    text-align: left;
    padding-left: 5%;
  }
  .vision__ttl {
    font-size: 30rem;
    letter-spacing: 0.08em;
  }
  .vision__en {
    margin-top: 6rem;
    font-size: 20rem;
  }
  .vision__catch {
    margin-top: 92rem;
    font-size: 34rem;
    letter-spacing: 0.1em;
  }
  .vision__lead {
    margin-top: 40rem;
    font-size: 25rem;
    line-height: 2;
  }
  .vision__lead + .vision__lead {
    margin-top: 24rem;
  }
  .vision__map {
    max-width: none;
    width: 90.8%;
    margin: 116rem auto 0;
  }
}

/* ============================================================
   SIGNAL STARS
============================================================ */
.visionStars {
  max-width: 700rem;
  margin: 85rem auto 0;
  padding: 44rem 0;
  border: 1rem solid var(--blue);
  border-radius: 20rem;
  display: flex;
  align-items: center;
}
.visionStars__icon {
  flex: 0 0 350rem;
  display: flex;
  justify-content: center;
}
.visionStars__icon img {
  width: 180rem;
  height: auto;
}
.visionStars__body {
  flex: 1;
  padding-right: 30rem;
}
.visionStars__ttl {
  color: var(--blue);
  font-family: var(--font-en);
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.visionStars__txt {
  margin-top: 22rem;
  color: var(--blue);
  font-size: 15rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
@media (max-width: 768px) {
  .visionStars {
    max-width: none;
    margin: 120rem 0 0;
    padding: 92rem 5% 80rem;
    border: 2rem solid var(--blue);
    flex-direction: column;
    align-items: stretch;
  }
  .visionStars__icon {
    flex: none;
  }
  .visionStars__icon img {
    width: 216rem;
  }
  .visionStars__body {
    padding-right: 0;
  }
  .visionStars__ttl {
    margin-top: 24rem;
    font-size: 40rem;
    letter-spacing: 0.04em;
    text-align: center;
  }
  .visionStars__txt {
    margin-top: 52rem;
    font-size: 25rem;
    line-height: 1.75;
  }
}

/* ============================================================
   BUSINESS （人材事業 / 販促事業）
============================================================ */
.business {
  margin-top: 100rem;
  padding: 92rem 0 100rem;
  background: var(--gray-bg);
}
.business__inner {
  max-width: 1300rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.business__ttl {
  margin-bottom: 27rem;
  color: var(--blue);
  font-size: 28rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
}
.business__ttl:not(:first-of-type) {
  margin-top: 64rem;
}
@media (max-width: 768px) {
  .business {
    margin-top: 120rem;
    padding: 88rem 0 96rem;
  }
  .business__inner {
    padding: 0 5%;
  }
  .business__ttl {
    margin-bottom: 52rem;
    font-size: 35rem;
  }
  .business__ttl:not(:first-of-type) {
    margin-top: 110rem;
  }
}

/* ------------------------------------------------------------
   BUSINESS CARD
------------------------------------------------------------ */
.bizCard {
  max-width: 900rem;
  margin: 0 auto;
  padding: 66rem 20rem;
  background: #fff;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
}
.bizCard__ttl {
  margin-bottom: 50rem;
  color: var(--blue);
  font-size: 26rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
}
.bizCard__body {
  max-width: 700rem;
  margin: auto;
  display: flex;
  align-items: center;
  gap: 34rem;
}
.bizCard__logo {
  width: 45%;
  text-align: center;
}
.bizCard__logo-img {
  margin: 0 auto;
  width: auto;
  height: auto;
}
.bizCard__logo-name {
  margin-top: 18rem;
  color: #444;
  font-size: 13rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.bizCard--adlead, .bizCard--adbranding {
  width: 100%;
}
.bizCard {
  /* ロゴ個別サイズ */
}
.bizCard--signal .bizCard__logo-img {
  width: 177rem;
}
.bizCard--adlead .bizCard__logo-img {
  width: 266rem;
}
.bizCard--adbranding .bizCard__logo-img {
  width: 266rem;
}
.bizCard__txt {
  flex: 1;
}
.bizCard__head {
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.06em;
}
.bizCard__desc {
  margin-top: 36rem;
  color: #444;
  font-size: 15rem;
  font-weight: 500;
  line-height: 1.66;
  letter-spacing: 0.03em;
}
.bizCard {
  /* 求人広告 ＋ 人材紹介 の2枚組写真 */
}
.bizCard__photos {
  max-width: 700rem;
  margin: 28rem auto 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 5rem;
}
.bizCard__photo {
  width: 45%;
  display: flex;
  flex-direction: column;
}
.bizCard__photo img {
  width: 100%;
}
.bizCard__photo-cap {
  margin-bottom: 12rem;
  align-self: center;
  color: #444;
  font-size: 13rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: center;
}
.bizCard__plus {
  flex: 0 0 auto;
  width: 24rem;
  margin-bottom: 66rem;
}
.bizCard__plus img {
  width: 100%;
  height: auto;
}
.bizCard {
  /* 横長1枚写真 */
}
.bizCard__figure {
  margin: 40rem auto 0;
  max-width: 700rem;
}
.bizCard__figure img {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .bizCard {
    max-width: none;
    padding: 88rem 6%;
    box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  }
  .bizCard__ttl {
    margin-bottom: 84rem;
    font-size: 35rem;
    line-height: 1.6;
    letter-spacing: 0.1em;
  }
  .bizCard__body {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .bizCard__logo {
    flex: none;
    width: 100%;
  }
  .bizCard__logo-name {
    margin-top: 40rem;
    line-height: 1.6;
    font-size: 30rem;
  }
  .bizCard--signal .bizCard__logo-img {
    width: 198rem;
  }
  .bizCard--adlead .bizCard__logo-img {
    width: 320rem;
  }
  .bizCard--adbranding .bizCard__logo-img {
    width: 324rem;
  }
  .bizCard__txt {
    margin-top: 120rem;
  }
  .bizCard__head {
    font-size: 30rem;
    line-height: 1.75;
    letter-spacing: 0.1em;
  }
  .bizCard__desc {
    margin-top: 48rem;
    font-size: 25rem;
    line-height: 1.73;
  }
  .bizCard__photos {
    margin-top: 40rem;
    flex-direction: column;
    align-items: stretch;
    gap: 14rem;
  }
  .bizCard__photo {
    flex: none;
    width: 100%;
  }
  .bizCard__photo--rev {
    flex-direction: column-reverse;
  }
  .bizCard__photo-cap {
    margin: 0 0 24rem;
    padding: 0 6rem 8rem;
    color: var(--blue);
    font-size: 30rem;
    border-bottom: 3rem solid var(--blue);
  }
  .bizCard__photo--rev .bizCard__photo-cap {
    margin: 24rem 0 0;
  }
  .bizCard__plus {
    width: 64rem;
    margin: 0 auto;
    align-self: center;
  }
  .bizCard__figure {
    margin-top: 60rem;
  }
}

/* ------------------------------------------------------------
   販促事業 ： PCはカード2枚 / SPはカード1枚を罫線で分割
------------------------------------------------------------ */
.bizGroup {
  display: flex;
  flex-direction: column;
  gap: 104rem;
}
@media (max-width: 768px) {
  .bizGroup {
    gap: 0;
    background: #fff;
    border-radius: 20rem;
    border: 1rem solid #c0bfbe;
    box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  }
  .bizGroup .bizCard {
    background: none;
    border-radius: 0;
    box-shadow: none;
    border: none;
    width: 88%;
    padding: 88rem 0;
  }
  .bizGroup .bizCard + .bizCard {
    padding: 96rem 0 88rem;
    border-top: 1rem solid var(--blue);
    width: 88%;
  }
}

/* ============================================================
   FRONT VIEW （求人広告事業 メインビジュアル）

   画像は他の下層ページと同じ 1/2 スケール。
   _m（2600×1538）を 1300rem 幅、_l（4080×1538）を 2040rem 幅で使う。
============================================================ */
@media (min-width: 1301px) {
  .business01-fv {
    height: 769rem;
    background-image: url(../img/page/business01_frontview_l.webp);
    background-size: 2040rem;
  }
}

/* メインビジュアルに重ねるタイトル群 */
.b01Fv {
  position: absolute;
  top: 23%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 980rem;
  padding: 0 40rem;
  color: #fff;
}
.b01Fv__ttl {
  font-size: 51rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.08em;
}
.b01Fv__catch {
  margin-top: 60rem;
  font-size: 24rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.b01Fv__lead {
  margin-top: 30rem;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
@media (max-width: 1300px) {
  .b01Fv {
    top: 19%;
  }
  .b01Fv__catch {
    margin-top: 4vw;
  }
  .b01Fv__lead {
    margin-top: 1.8vw;
  }
}
@media (max-width: 768px) {
  .b01Fv {
    top: 125rem;
    max-width: none;
    padding: 0 9.5%;
  }
  .b01Fv__ttl {
    font-size: 30rem;
  }
  .b01Fv__catch {
    margin-top: 75rem;
    font-size: 35rem;
  }
  .b01Fv__lead {
    margin-top: 34rem;
    font-size: 25rem;
    line-height: 1.8;
  }
}

/* ============================================================
   MEDIA （あらゆるニーズに応える求人媒体）
============================================================ */
.b01Media {
  position: relative;
  padding: 80rem 0 90rem;
}
.b01Media::before {
  top: 185rem;
  z-index: -1;
}
.b01Media__inner {
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.b01Media__grid {
  margin-top: 40rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.b01Media__card {
  background: #fff;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  padding: 50rem 40rem 60rem;
  text-align: center;
  display: flex;
  flex-direction: column;
}
.b01Media__card:nth-child(1) {
  width: 41%;
}
.b01Media__card:nth-child(2) {
  width: 52%;
}
.b01Media__card-ttl {
  color: var(--blue);
  font-size: 22rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.b01Media__card-sub {
  margin-top: 6rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.b01Media__card-txt {
  margin-top: 20rem;
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.9;
  text-align: left;
  min-height: 127rem;
  border-bottom: 1rem solid #c0bfbe;
}
.b01Media__card-logo {
  margin-top: auto;
  padding: 40rem 0 14rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40rem;
  flex-direction: column;
}
.b01Media__card-logo img {
  height: auto;
}
.b01Media__card {
  /* 「採用管理サービス」は横幅いっぱいで、ロゴを左に置く */
}
.b01Media__card--wide {
  width: 100%;
  margin-top: 60rem;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  padding: 45rem 40rem 45rem 79rem;
}
.b01Media__card--wide .b01Media__card-txt {
  min-height: auto;
  border: none;
}
.b01Media__card--wide .b01Media__card-note {
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  margin-bottom: 15rem;
}
.b01Media__card--wide .b01Media__card-ttl {
  margin-top: 8rem;
}
.b01Media__card--wide .b01Media__card-txt {
  margin-top: 18rem;
}
.b01Media__card--wide {
  /* PCはロゴを左、本文を右に置く */
}
.b01Media__card--wide .b01Media__card-logo {
  margin-top: 0;
  padding-top: 0;
  flex: 0 0 auto;
  order: -1;
}
.b01Media__logo-indeed {
  width: 175rem;
}
.b01Media__logo-platinum {
  width: 70rem;
}
.b01Media__logo-site {
  width: 215rem;
}
.b01Media__logo-airwork {
  width: 240rem;
}
.b01Media__note {
  margin-top: 50rem;
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}
@media (max-width: 768px) {
  .b01Media {
    padding: 140rem 0 90rem;
  }
  .b01Media__inner {
    padding: 0 9.5%;
  }
  .b01Media__grid {
    margin-top: 40rem;
    flex-direction: column;
  }
  .b01Media__card {
    width: 100% !important;
    padding: 40rem 40rem 46rem;
  }
  .b01Media__card + .b01Media__card {
    margin-top: 50rem;
  }
  .b01Media__card-ttl {
    font-size: 30rem;
  }
  .b01Media__card-sub {
    margin-top: 10rem;
    font-size: 25rem;
  }
  .b01Media__card-txt {
    margin-top: 24rem;
    font-size: 25rem;
    padding-bottom: 30rem;
    min-height: auto;
  }
  .b01Media__card-logo {
    padding-top: 40rem;
    gap: 50rem;
    flex-direction: row;
  }
  .b01Media__card {
    /* SPは1列。ロゴは本文の下に置く */
  }
  .b01Media__card--wide {
    margin-top: 50rem;
    flex-direction: column-reverse;
    gap: 40rem;
    text-align: center;
    padding: 46rem 40rem 50rem;
  }
  .b01Media__card--wide .b01Media__card-note {
    font-size: 22rem;
    margin-bottom: 25rem;
  }
  .b01Media__card--wide .b01Media__card-txt {
    margin-top: 24rem;
    border-bottom: 1rem solid #c0bfbe;
    padding-bottom: 30rem;
  }
  .b01Media__card--wide .b01Media__card-logo {
    margin: 35rem 0;
  }
  .b01Media__logo-indeed {
    width: 260rem;
  }
  .b01Media__logo-platinum {
    width: 105rem;
  }
  .b01Media__logo-site {
    width: 330rem;
  }
  .b01Media__logo-airwork {
    width: 360rem;
  }
  .b01Media__note {
    margin-top: 50rem;
    font-size: 25rem;
  }
}

/* ============================================================
   SERVICE （サービス紹介）
============================================================ */
.b01Service {
  background: var(--gray-bg);
  padding: 90rem 0 100rem;
}
.b01Service__inner {
  max-width: 980rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.b01Service__list {
  margin-top: 50rem;
  display: flex;
  flex-direction: column;
  gap: 40rem;
}
.b01Service__item {
  background: #fff;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  padding: 35rem;
  display: flex;
  align-items: center;
  gap: 45rem;
}
.b01Service__img {
  flex: 0 0 auto;
  width: 491rem;
  line-height: 0;
}
.b01Service__img img {
  width: 100%;
  height: auto;
}
.b01Service__txt {
  flex: 1 1 auto;
  min-width: 0;
}
.b01Service__ttl {
  color: var(--blue);
  font-size: 24rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.b01Service__lead {
  margin-top: 30rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .b01Service {
    padding: 80rem 0 90rem;
  }
  .b01Service__inner {
    padding: 0 9.5%;
  }
  .b01Service__list {
    margin-top: 60rem;
    gap: 50rem;
  }
  .b01Service__item {
    flex-direction: column;
    align-items: stretch;
    gap: 30rem;
    padding: 38rem 38rem 50rem 38rem;
  }
  .b01Service__img {
    width: 100%;
  }
  .b01Service__ttl {
    font-size: 30rem;
  }
  .b01Service__lead {
    margin-top: 20rem;
    font-size: 25rem;
  }
}

/* ============================================================
   FLOW （人材採用までの流れ）

   PCは2列組み。左列（求人ニーズの発生〜求人広告）の下端から
   右列（選考〜求人サービス完了）の上端へ .b01Flow__turn の
   折り返し矢印がつながる。SPは1列に積み、折り返し矢印は隠す。
============================================================ */
.b01Flow {
  padding: 90rem 0 100rem;
  text-align: center;
}
.b01Flow__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.b01Flow__lead {
  margin-top: 26rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.7;
}
.b01Flow__chart {
  max-width: 600rem;
  position: relative;
  margin: 80rem auto 0;
  /* 折り返し矢印の下側の横棒を、最終段の下の余白に通すための逃げ */
  padding-bottom: 28rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 65rem;
}
.b01Flow__col {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* 右列は左列より1段ぶん下げて、折り返し矢印の高さに合わせる */
}
.b01Flow__col--right {
  padding-top: 96rem;
}
.b01Flow {
  /* 始点・終点のピル */
}
.b01Flow__start, .b01Flow__goal {
  width: 100%;
  padding: 6rem 10rem 7rem;
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  border: 2rem solid transparent;
  border-radius: 14rem;
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #d50032, #eb2f47 30%, #ff5a5a) border-box; /* 枠線のグラデーション */
  color: #d50032;
}
.b01Flow__goal {
  padding: 14rem 10rem 15rem;
}
.b01Flow__arrow {
  display: block;
  width: 17rem;
  margin: 5rem 0;
  line-height: 0;
}
.b01Flow__arrow img {
  width: 100%;
  height: auto;
}
.b01Flow {
  /* 1段ぶん（タイトル＋説明）*/
}
.b01Flow__step {
  width: 100%;
  display: flex;
  align-items: stretch;
  min-height: 106rem;
}
.b01Flow__step-ttl {
  flex: 0 0 auto;
  width: 47%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12rem 10rem 13rem;
  background: linear-gradient(90deg, #d50032, #eb2f47 30%, #ff5a5a);
  border-radius: 14rem 0 0 14rem;
  color: #fff;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.b01Flow__step-txt {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10rem 3rem;
  background: #fff;
  border: 2rem solid var(--red-btn);
  border-radius: 0 14rem 14rem 0;
  color: var(--text-dark);
  font-size: 12rem;
  line-height: 1.6;
}
.b01Flow {
  /* 左列の下端（求人広告）→ 右列の上端（選考）をつなぐ折り返し矢印。
     下側の横棒が左列に、上側の横棒が右列に少し重なる形なので、
     列間の隙間より広く、縦は図のほぼ全高にわたる。
     縦横比（347:567）を保ちたいので height を基準に width を auto にする。 */
}
.b01Flow__turn {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  line-height: 0;
  pointer-events: none;
  width: 344rem;
}
.b01Flow__turn img {
  height: 100%;
  width: auto;
}
@media (max-width: 768px) {
  .b01Flow {
    padding: 80rem 0 70rem;
  }
  .b01Flow__inner {
    padding: 0 5%;
  }
  .b01Flow__lead {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .b01Flow {
    /* SPは1列。左列→右列の順にそのまま縦に並べる */
  }
  .b01Flow__chart {
    margin: 80rem 5% 0;
    flex-direction: column;
    gap: 0;
    max-width: none;
  }
  .b01Flow__col {
    width: 100%;
    padding-top: 0;
  }
  .b01Flow__start, .b01Flow__goal {
    padding: 18rem 10rem 19rem;
    font-size: 25rem;
    border-radius: 20rem;
  }
  .b01Flow__arrow {
    width: 26rem;
    margin: 5rem 0;
  }
  .b01Flow__step {
    flex-direction: column;
    gap: 0;
  }
  .b01Flow__step-ttl {
    width: 100%;
    padding: 18rem 10rem 19rem;
    border-radius: 20rem 20rem 0 0;
    font-size: 25rem;
  }
  .b01Flow__step-txt {
    padding: 16rem 14rem;
    border-radius: 0 0 20rem 20rem;
    border-top: none;
    font-size: 20rem;
  }
}

/* ============================================================
   HYBRID （求人広告＋人材紹介のハイブリッド採用）
============================================================ */
.b01hybrid {
  padding: 90rem 0 120rem !important;
}
.b01hybrid .hybrid__btn {
  margin-top: 70rem;
  min-width: 300rem;
  padding: 26rem 30rem 28rem;
  font-size: 20rem;
}
@media (max-width: 768px) {
  .b01hybrid .hybrid__btn {
    min-width: 0;
    padding: 20rem 40rem 21rem;
    font-size: 25rem;
  }
}

/* ============================================================
   FRONT VIEW （人材紹介事業 メインビジュアル）

   画像は他の下層ページと同じ 1/2 スケール。
   _m（2600×1538）を 1300rem 幅、_l（4080×1538）を 2040rem 幅で使う。
============================================================ */
@media (min-width: 1301px) {
  .business02-fv {
    height: 769rem;
    background-image: url(../img/page/business02_frontview_l.webp);
    background-size: 2040rem;
  }
}

/* メインビジュアルに重ねるタイトル群 */
.b02Fv {
  position: absolute;
  top: 23%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 980rem;
  padding: 0 40rem;
  color: #fff;
}
.b02Fv__ttl {
  font-size: 51rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.08em;
}
.b02Fv__catch {
  margin-top: 60rem;
  font-size: 24rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.b02Fv__lead {
  margin-top: 30rem;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
@media (max-width: 1300px) {
  .b02Fv {
    top: 19%;
  }
  .b02Fv__catch {
    margin-top: 4vw;
  }
  .b02Fv__lead {
    margin-top: 1.8vw;
  }
}
@media (max-width: 768px) {
  .b02Fv {
    top: 125rem;
    max-width: none;
    padding: 0 9.5%;
  }
  .b02Fv__ttl {
    font-size: 30rem;
  }
  .b02Fv__catch {
    margin-top: 132rem;
    font-size: 35rem;
  }
  .b02Fv__lead {
    margin-top: 34rem;
    font-size: 25rem;
    line-height: 1.8;
  }
}

/* ============================================================
   SERVICE （サービス紹介）
============================================================ */
.b02Service {
  padding: 90rem 0 80rem;
  text-align: center;
}
.b02Service__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 10rem;
}
.b02Service__catch {
  margin-top: 26rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.7;
}
.b02Service__lead {
  margin-top: 20rem;
  color: var(--blue);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
}
@media (max-width: 768px) {
  .b02Service {
    padding: 140rem 0 70rem;
  }
  .b02Service__inner {
    padding: 0;
  }
  .b02Service__catch {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .b02Service__lead {
    margin-top: 40rem;
    padding: 0 9.5%;
    font-size: 25rem;
    text-align: left;
  }
}

/* ============================================================
   CHART （企業さま ⇄ ハイブリッド採用 ⇄ 個人さま の相関図）

   中央のドーナツ（figure02）の内側に見出し画像（figure01）を重ね、
   両者の下に青い曲線矢印（figure03）と「雇用契約」のハート（figure04）を
   図全体の幅で渡す。SPは縦積みにする。
============================================================ */
.b02Chart {
  position: relative;
  margin: 50rem auto 0;
  max-width: 925rem;
  height: 512rem;
}
.b02Chart__side {
  text-align: center;
  position: absolute;
  top: 72rem;
}
.b02Chart__side.side-left {
  left: 38rem;
}
.b02Chart__side.side-right {
  right: 0;
}
.b02Chart__side-ttl {
  color: var(--blue);
  font-size: 26rem;
  font-weight: 700;
  line-height: 1;
}
.b02Chart__side-em {
  font-size: 18rem;
  font-weight: 700;
}
.b02Chart__side-icon01 {
  width: 108rem;
  height: auto;
  margin: 30rem auto 35rem;
}
.b02Chart__side-icon02 {
  width: 147rem;
  height: auto;
  margin: 30rem auto 35rem;
}
.b02Chart__side-txt {
  margin-top: 12rem;
  color: var(--blue);
  font-size: 26rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.b02Chart__side-note {
  display: block;
  margin-bottom: 6rem;
  font-size: 13rem;
  letter-spacing: 0.05em;
}
.b02Chart__center {
  position: absolute;
  width: 505rem;
  height: 512rem;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.b02Chart__donut {
  position: relative;
  width: 100%;
  line-height: 0;
}
.b02Chart__donut-ring {
  width: 100%;
  height: auto;
}
.b02Chart__donut {
  /* ドーナツの内円に重ねる見出し */
}
.b02Chart__donut-txt {
  position: absolute;
  top: 118rem;
  left: 50%;
  transform: translateX(-50%);
  width: 156rem;
  height: auto;
}
.b02Chart {
  /* 曲線矢印とハート */
}
.b02Chart__bottom {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  line-height: 0;
  width: 415rem;
}
.b02Chart__curve {
  position: absolute;
  left: 50%;
  bottom: 32rem;
  transform: translateX(-50%);
  width: 100%;
  height: auto;
}
.b02Chart__heart {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 90rem;
  height: auto;
}
@media (max-width: 768px) {
  .b02Chart {
    margin-top: 60rem;
    padding-bottom: 0;
    max-width: 95%;
    height: 386rem;
  }
  .b02Chart__side {
    top: 33rem;
  }
  .b02Chart__side.side-left {
    left: 17rem;
  }
  .b02Chart__side-ttl {
    font-size: 24rem;
  }
  .b02Chart__side-em {
    font-size: 20rem;
  }
  .b02Chart__side-icon01 {
    width: 82rem;
    height: auto;
    margin: 21rem auto 15rem;
  }
  .b02Chart__side-icon02 {
    width: 111rem;
    height: auto;
    margin: 21rem auto 15rem;
  }
  .b02Chart__side-txt {
    margin-top: 15rem;
    font-size: 24rem;
  }
  .b02Chart__side-note {
    margin-bottom: 6rem;
    font-size: 18rem;
  }
  .b02Chart__center {
    width: 381rem;
    height: 384rem;
  }
  .b02Chart__donut-txt {
    top: 85rem;
    width: 133rem;
  }
  .b02Chart__curve {
    width: 314rem;
  }
  .b02Chart__heart {
    width: 95rem;
  }
}

/* ============================================================
   HYBRID （ハイブリッド採用とは？）
============================================================ */
.b02Hybrid {
  background: var(--red-bg);
  padding: 70rem 0 80rem;
  text-align: center;
}
.b02Hybrid__inner {
  max-width: 960rem;
  margin: 0 auto;
  padding: 60rem 40rem 50rem;
  background: #fff;
  border-radius: 20rem;
}
.b02Hybrid__ttl {
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.b02Hybrid__lead {
  margin-top: 24rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.7;
}
.b02Hybrid__box {
  margin: 34rem auto 15rem auto;
  max-width: 700rem;
  padding: 25rem 40rem 30rem 90rem;
  background: var(--gray-bg);
  text-align: left;
}
.b02Hybrid__subTtl {
  color: var(--blue);
  font-size: 14rem;
  font-weight: 500;
  margin-left: -0.5em;
}
.b02Hybrid__subTtl + .b02Hybrid__list {
  margin-top: 12rem;
}
.b02Hybrid__subTtl {
  /* 2つ目の見出し（こんな企業におすすめ）は上に余白を足す */
}
.b02Hybrid__subTtl ~ .b02Hybrid__list + .b02Hybrid__subTtl {
  margin-top: 26rem;
}
.b02Hybrid__list {
  display: flex;
  flex-direction: column;
  gap: 8rem;
}
.b02Hybrid__list li {
  position: relative;
  padding-left: 23rem;
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.08em;
  /* チェックボックスのアイコン */
}
.b02Hybrid__list li::before {
  content: "";
  position: absolute;
  top: 2rem;
  left: 0;
  width: 17rem;
  height: 19rem;
  background: url(../img/page/business02_li.svg) no-repeat center/contain;
}
.b02Hybrid__list li:nth-child(4) {
  margin-bottom: 30rem;
}
.b02Hybrid__list.b02Hybrid__list02 li {
  padding-left: 12rem;
}
.b02Hybrid__list.b02Hybrid__list02 li::before {
  top: 10rem;
  left: 2rem;
  width: 3rem;
  height: 3rem;
  background: none;
  background-color: #000;
  border-radius: 2rem;
}
.b02Hybrid__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 34rem;
  padding: 12rem 17rem 13rem;
  background: var(--red-btn);
  border-radius: 50rem;
  color: #fff;
  font-size: 14rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .b02Hybrid {
    padding: 90rem 0 90rem;
  }
  .b02Hybrid__inner {
    width: 90%;
    margin: 0 auto;
    padding: 85rem 5% 90rem;
  }
  .b02Hybrid__ttl {
    font-size: 25rem;
  }
  .b02Hybrid__lead {
    margin-top: 34rem;
    font-size: 25rem;
    text-align: left;
  }
  .b02Hybrid__box {
    margin-top: 44rem;
    padding: 44rem 8% 50rem;
  }
  .b02Hybrid__subTtl {
    font-size: 20rem;
  }
  .b02Hybrid__list {
    gap: 14rem;
  }
  .b02Hybrid__list li {
    padding-left: 33rem;
    font-size: 20rem;
  }
  .b02Hybrid__list li::before {
    top: 1rem;
    width: 26rem;
    height: 29rem;
  }
  .b02Hybrid__list.b02Hybrid__list02 li {
    padding-left: 18rem;
  }
  .b02Hybrid__list.b02Hybrid__list02 li::before {
    top: 15rem;
    left: 3rem;
    width: 6rem;
    height: 6rem;
    border-radius: 3rem;
  }
  .b02Hybrid__btn {
    margin-top: 44rem;
    padding: 20rem 40rem 21rem;
    font-size: 25rem;
  }
}

/* ============================================================
   CONSULTANT （人材コンサルタント紹介）
============================================================ */
.b02Consultant {
  background: var(--gray-bg);
  padding: 90rem 0 100rem;
  text-align: center;
}
.b02Consultant__inner {
  max-width: 960rem;
  margin: 0 auto;
  padding: 0;
}
.b02Consultant__lead {
  margin-top: 26rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.7;
}
.b02Consultant__list {
  margin-top: 50rem;
  display: flex;
  justify-content: space-between;
  gap: 80rem;
}
.b02Consultant__item {
  flex: 1 1 0;
  min-width: 0;
  background: #fff;
  border-radius: 20rem;
  padding: 40rem 40rem 50rem;
  text-align: left;
}
.b02Consultant__img {
  width: 100%;
  height: auto;
}
.b02Consultant__name {
  margin-top: 22rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.b02Consultant__en {
  display: block;
  margin-top: 4rem;
  color: var(--blue);
  font-family: var(--font-en);
  font-size: 13rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}
.b02Consultant__ttl {
  margin-top: 45rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.6;
}
.b02Consultant__txt {
  margin-top: 14rem;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.7;
  text-align: justify;
  min-height: 300rem;
}
.b02Consultant__career-ttl {
  color: var(--text-dark);
  font-size: 14rem;
  margin-left: -0.5em;
}
.b02Consultant__career-txt {
  margin-top: 6rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  text-align: justify;
}
@media (max-width: 768px) {
  .b02Consultant {
    padding: 80rem 0 90rem;
  }
  .b02Consultant__inner {
    padding: 0 5%;
  }
  .b02Consultant__lead {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .b02Consultant__list {
    margin-top: 60rem;
    flex-direction: column;
    gap: 50rem;
  }
  .b02Consultant__item {
    padding: 63rem 9%;
  }
  .b02Consultant__name {
    margin-top: 35rem;
    font-size: 30rem;
  }
  .b02Consultant__en {
    margin-top: 6rem;
    font-size: 16rem;
  }
  .b02Consultant__ttl {
    margin-top: 35rem;
    font-size: 25rem;
  }
  .b02Consultant__txt {
    margin-top: 35rem;
    font-size: 25rem;
  }
  .b02Consultant__career {
    margin-top: 35rem;
  }
  .b02Consultant__career-ttl {
    font-size: 20rem;
  }
  .b02Consultant__career-txt {
    font-size: 20rem;
  }
}

/* ============================================================
   FLOW （申し込みから採用までの流れ）

   企業さま・個人さまの2列が進み、書類選考から先は共通の1列になる。
============================================================ */
.b02Flow {
  padding: 90rem 0 100rem;
  text-align: center;
}
.b02Flow__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.b02Flow__lead {
  margin-top: 26rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.7;
}
.b02Flow__chart {
  margin: 60rem auto 0;
  max-width: 680rem;
}
.b02Flow__cols {
  display: flex;
  justify-content: space-between;
  gap: 40rem;
}
.b02Flow__col {
  flex: 1 1 0;
  min-width: 0;
}
.b02Flow__col .b02Flow__step:nth-child(3) .b02Flow__step-ttl {
  border-radius: 10rem 10rem 0 0;
}
.b02Flow__col.col01 .b02Flow__step:nth-child(3) .b02Flow__step-ttl {
  letter-spacing: -0.03em;
}
.b02Flow__col.col01 .b02Flow__step .b02Flow__step-txt {
  border: 4rem solid transparent;
  border-radius: 0 0 10rem 10rem;
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #d50032, #eb2f47 30%, #ff5a5a) border-box; /* 枠線のグラデーション */
}
.b02Flow__col.col02 .b02Flow__step .b02Flow__step-ttl {
  background: var(--red-btn);
}
.b02Flow__col.col02 .b02Flow__step .b02Flow__step-txt {
  border-radius: 0 0 10rem 10rem;
  border: 4rem solid var(--red-btn);
}
.b02Flow__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-height: 130rem;
  margin-bottom: 16rem;
}
.b02Flow__head-ttl01 {
  color: var(--red);
  font-size: 26rem;
  font-weight: 500;
  line-height: 1;
}
.b02Flow__head-ttl02 {
  color: var(--red-btn);
  font-size: 26rem;
  font-weight: 500;
  line-height: 1;
}
.b02Flow__head-em {
  font-size: 18rem;
  font-weight: 500;
}
.b02Flow__head-icon01 {
  width: 108rem;
  height: auto;
  margin-top: 20rem;
}
.b02Flow__head-icon02 {
  width: 147rem;
  height: auto;
  margin-top: 20rem;
}
.b02Flow {
  /* 1段ぶん。矢印は疑似要素で下につなぐ */
}
.b02Flow__step {
  position: relative;
  margin-bottom: 23rem;
}
.b02Flow__step:last-child {
  margin-bottom: 0;
}
.b02Flow__step {
  /* 次の段への矢印 */
}
.b02Flow__step::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 20rem;
  height: 19rem;
  background: url(../img/page/business02_arrow.svg) no-repeat center/contain;
}
.b02Flow__step-ttl {
  padding: 22rem 5rem 24rem;
  background: linear-gradient(90deg, #d50032, #eb2f47 30%, #ff5a5a);
  border-radius: 10rem;
  color: #fff;
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.4;
}
.b02Flow__step-txt {
  color: var(--text-dark);
  font-size: 14rem;
  text-align: left;
  line-height: 1.3;
  padding: 15rem 30rem 17rem;
  min-height: 98rem;
}
.b02Flow__step-txt02 {
  display: block;
  color: #fff;
  font-size: 20rem;
  font-weight: 400;
  line-height: 1.7;
}
.b02Flow__merge .b02Flow__step:first-child .b02Flow__step-ttl {
  padding: 12rem 5rem 13rem;
}
.b02Flow__merge .b02Flow__step:last-child::after {
  display: none;
}
.b02Flow {
  /* 共通区間 */
}
.b02Flow__merge {
  margin-top: 23rem;
  position: relative;
}
.b02Flow__more {
  margin-top: 44rem;
}
.b02Flow__more-link {
  display: inline-flex;
  align-items: center;
  gap: 8rem;
  color: #2d2827;
  font-size: 19rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-bottom: 1rem solid #2d2827;
  padding-bottom: 4rem;
}
@media (max-width: 768px) {
  .b02Flow {
    padding: 80rem 0 90rem;
  }
  .b02Flow__inner {
    padding: 0 5%;
  }
  .b02Flow__lead {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .b02Flow__chart {
    margin-top: 60rem;
  }
  .b02Flow__cols {
    gap: 24rem;
  }
  .b02Flow__col {
    min-width: 0;
  }
  .b02Flow__col .b02Flow__step:nth-child(3) .b02Flow__step-ttl {
    min-height: 75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5rem 0;
  }
  .b02Flow__col.col01 .b02Flow__step:nth-child(3) .b02Flow__step-ttl {
    letter-spacing: -0.03em;
  }
  .b02Flow__head {
    min-height: 190rem;
    margin-bottom: 24rem;
  }
  .b02Flow__head-ttl {
    font-size: 20rem;
  }
  .b02Flow__head-em {
    font-size: 20rem;
  }
  .b02Flow__head-icon {
    width: 120rem;
    margin-top: 14rem;
  }
  .b02Flow__step {
    margin-bottom: 30rem;
  }
  .b02Flow__step::after {
    bottom: -27rem;
    width: 26rem;
    height: 29rem;
  }
  .b02Flow__step-ttl {
    padding: 16rem 10rem 17rem;
    font-size: 22rem;
  }
  .b02Flow__step-txt {
    font-size: 20rem;
    min-height: 148rem;
  }
  .b02Flow__merge {
    margin-top: 30rem;
  }
  .b02Flow__merge::before {
    top: -36rem;
    width: 26rem;
    height: 29rem;
  }
  .b02Flow__more {
    margin-top: 60rem;
  }
  .b02Flow__more-link {
    font-size: 25rem;
  }
}

/* ============================================================
   LINK （企業さま／個人さまへの導線）
============================================================ */
.b02Link {
  background: #fff;
  padding: 80rem 0 100rem;
  text-align: center;
}
.b02Link__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.b02Link__list {
  display: flex;
  justify-content: center;
  gap: 40rem;
}
.b02Link__item {
  flex: 1 1 0;
  min-width: 0;
  max-width: 460rem;
}
.b02Link__btn {
  position: relative;
  display: block;
  border-radius: 20rem;
  overflow: hidden;
  line-height: 0;
}
.b02Link__img {
  width: 100%;
  height: auto;
}
.b02Link {
  /* 画像右側の赤ベタに重ねる文字 */
}
.b02Link__txt {
  position: absolute;
  top: 0;
  right: 50rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12rem;
  color: #fff;
  line-height: 1.5;
}
.b02Link__ttl {
  font-size: 20rem;
  font-weight: 700;
  margin-top: 10rem;
}
.b02Link__em {
  display: block;
  font-size: 18rem;
  font-weight: 700;
  margin-top: 8rem;
  padding: 3rem 6rem 5rem;
  border: 2rem solid #fff;
}
.b02Link__more {
  display: flex;
  align-items: center;
  justify-content: right;
  font-family: var(--font-en);
  font-size: 12rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  margin-top: 6rem;
  width: 100%;
}
.b02Link__more img {
  width: 11rem;
  margin-left: 10rem;
}
.b02Link__bottom {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 80rem;
  min-width: 300rem;
  padding: 26rem 30rem 28rem;
  background: var(--red-btn);
  border-radius: 50rem;
  color: #fff;
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .b02Link {
    padding: 70rem 0 90rem;
  }
  .b02Link__inner {
    padding: 0 9.5%;
  }
  .b02Link__list {
    flex-direction: column;
    align-items: center;
    gap: 50rem;
  }
  .b02Link__item {
    width: 100%;
    max-width: none;
  }
  .b02Link__btn {
    border-radius: 20rem;
  }
  .b02Link__txt {
    right: 67rem;
  }
  .b02Link__ttl {
    font-size: 26rem;
  }
  .b02Link__em {
    font-size: 23rem;
  }
  .b02Link__more {
    font-size: 16rem;
  }
  .b02Link__more img {
    width: 16rem;
  }
  .b02Link__bottom {
    margin-top: 60rem;
    padding: 20rem 40rem 21rem;
    min-width: 0;
    font-size: 25rem;
  }
}

/* ============================================================
   CHART ANIMATION （相関図の再生）

   再生は assets/js/business02-chart.js が画面内に入ったときに
   .is-play を付与して開始する。JS無効時・「視差効果を減らす」設定では
   完成形の静止状態で表示される。

   流れ
     0.0s  両サイド（企業さま／個人さま）とドーナツ内の見出しがフェードイン
     1.6s  フェード完了から0.8秒おいて、ドーナツが縦の中心から左右へ開く
     2.6s  ドーナツが出きったらハート（雇用契約）がフェードイン
     3.2s  ハートが出きったら曲線矢印が縦の中心から左右へ開く

   「中心から左右へ開く」は clip-path: inset() の左右を 50% → 0 に
   縮めて表現している（マスクと同じ効果で、要素の位置は動かさない）。
============================================================ */
@keyframes b02FadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* 縦の中心から左右へ開く */
@keyframes b02OpenX {
  from {
    clip-path: inset(0 50% 0 50%);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
.b02Chart {
  /* ---- 再生前（JSが .is-armed を付けたら隠す）---- */
}
.b02Chart.is-armed .b02Chart__side,
.b02Chart.is-armed .b02Chart__donut-txt,
.b02Chart.is-armed .b02Chart__heart {
  opacity: 0;
}
.b02Chart.is-armed .b02Chart__donut-ring,
.b02Chart.is-armed .b02Chart__curve {
  clip-path: inset(0 50% 0 50%);
}
.b02Chart {
  /* ---- 再生 ---- */
}
.b02Chart.is-play .b02Chart__side,
.b02Chart.is-play .b02Chart__donut-txt {
  animation: b02FadeIn 0.8s ease both;
}
.b02Chart.is-play .b02Chart__donut-ring {
  animation: b02OpenX 1s ease-out 1.6s both;
}
.b02Chart.is-play .b02Chart__heart {
  animation: b02FadeIn 0.6s ease 2.6s both;
}
.b02Chart.is-play .b02Chart__curve {
  animation: b02OpenX 1s ease-out 3.2s both;
}

/* 「視差効果を減らす」設定では完成形を出したままにする */
@media (prefers-reduced-motion: reduce) {
  .b02Chart.is-armed .b02Chart__side,
  .b02Chart.is-armed .b02Chart__donut-txt,
  .b02Chart.is-armed .b02Chart__heart,
  .b02Chart.is-armed .b02Chart__donut-ring,
  .b02Chart.is-armed .b02Chart__curve,
  .b02Chart.is-play .b02Chart__side,
  .b02Chart.is-play .b02Chart__donut-txt,
  .b02Chart.is-play .b02Chart__heart,
  .b02Chart.is-play .b02Chart__donut-ring,
  .b02Chart.is-play .b02Chart__curve {
    animation: none !important;
    opacity: 1;
    clip-path: none;
  }
}
/* ============================================================
   FRONT VIEW （人材を探したい企業さまへ メインビジュアル）

   画像は右端に赤ベタが焼き込まれており、その上に見出しを重ねる。
   角丸インセット型（.frontView--inset）を使用。
============================================================ */
.employer-fv {
  position: relative;
}

/* 画像と同じ幅・位置に重ね、右端の赤ベタの中で見出しを中央に置く */
.empFv {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 95%;
  max-width: 1100rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: #fff;
}
.empFv__inner {
  width: 300rem;
  padding: 0 70rem 0 0;
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-align: center;
}
.empFv__em {
  display: block;
  margin-top: 10rem;
  padding: 8rem 6rem 9rem;
  border: 3rem solid #fff;
  font-size: 26rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media (max-width: 768px) {
  .empFv {
    width: 90%;
  }
  .empFv__inner {
    margin-top: 40rem;
    width: 255rem;
    padding: 0 55rem 0 0;
    font-size: 26rem;
  }
  .empFv__em {
    margin-top: 12rem;
    padding: 10rem 6rem 11rem;
    font-size: 23rem;
  }
}

/* ============================================================
   ABOUT （人材紹介サービスについて）
============================================================ */
.empAbout {
  background: #fff;
  padding: 80rem 0 90rem;
  text-align: center;
}
.empAbout__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.empAbout__catch {
  margin-top: 30rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.6;
}
.empAbout__lead {
  margin-top: 35rem;
  color: var(--blue);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
}
@media (max-width: 768px) {
  .empAbout {
    padding: 70rem 0;
  }
  .empAbout__inner {
    padding: 0 7%;
    width: 95%;
  }
  .empAbout__catch {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .empAbout__lead {
    margin-top: 30rem;
    font-size: 25rem;
    text-align: left;
  }
}

/* ============================================================
   POINT （サービスの3本柱）
============================================================ */
.empPoint {
  background: var(--gray-bg);
  padding: 70rem 0 80rem;
}
.empPoint__inner {
  width: 95%;
  max-width: 1100rem;
  margin: 0 auto;
}
.empPoint__list {
  display: flex;
  justify-content: space-between;
  gap: 30rem;
}
.empPoint__item {
  flex: 1 1 0;
  min-width: 0;
  background: #fff;
  border-radius: 10rem;
  padding: 34rem 0 25rem;
  text-align: center;
}
.empPoint {
  /* 角丸のピル見出し */
}
.empPoint__ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 62rem;
  width: 87%;
  margin: auto;
  padding: 8rem 0;
  border: 2rem solid var(--red);
  border-radius: 50rem;
  color: var(--red);
  font-size: 21rem;
  font-weight: 700;
  line-height: 1.4;
}
.empPoint__txt {
  margin-top: 22rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.9;
}
.empPoint__img {
  margin: 24rem auto 0;
  width: 87%;
  line-height: 0;
}
.empPoint__img img {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .empPoint {
    padding: 80rem 0 70rem;
  }
  .empPoint__inner {
    padding: 0 7%;
  }
  .empPoint__list {
    flex-direction: column;
    gap: 50rem;
  }
  .empPoint__item {
    padding: 40rem 0 46rem;
    border-radius: 20rem;
  }
  .empPoint__ttl {
    min-height: 0;
    padding: 22rem 20rem;
    font-size: 30rem;
    border-radius: 70rem;
  }
  .empPoint__txt {
    margin-top: 35rem;
    font-size: 25rem;
  }
  .empPoint__img {
    margin-top: 45rem;
  }
}

/* ============================================================
   MERIT （人材紹介サービスのメリット）
============================================================ */
.empMerit {
  background: #fff;
  padding: 80rem 0 90rem;
  text-align: center;
}
.empMerit__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.empMerit__h2 {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
.empMerit__list {
  margin-top: 80rem;
  display: flex;
  justify-content: space-between;
  gap: 40rem;
}
.empMerit__item {
  flex: 1 1 0;
  min-width: 0;
}
.empMerit__item:nth-child(1) .empMerit__icon {
  width: 131rem;
}
.empMerit__item:nth-child(2) .empMerit__icon {
  width: 180rem;
}
.empMerit__item:nth-child(3) .empMerit__icon {
  width: 110rem;
}
.empMerit__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
  min-height: 141rem;
}
.empMerit__icon img {
  max-height: 100%;
  width: auto;
}
.empMerit__ttl {
  margin-top: 22rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.empMerit__txt {
  margin-top: 16rem;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.9;
  text-align: justify;
}
.empMerit__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 50rem;
  min-width: 300rem;
  padding: 26rem 30rem 28rem;
  background: var(--red-btn);
  border-radius: 50rem;
  color: #fff;
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media (max-width: 768px) {
  .empMerit {
    padding: 70rem 0 90rem;
  }
  .empMerit__inner {
    padding: 0 7%;
  }
  .empMerit__h2 {
    margin-bottom: 90rem;
  }
  .empMerit__list {
    margin-top: 60rem;
    flex-direction: column;
    gap: 60rem;
  }
  .empMerit__item:nth-child(1) .empMerit__icon {
    width: 227rem;
  }
  .empMerit__item:nth-child(2) .empMerit__icon {
    width: 311rem;
  }
  .empMerit__item:nth-child(3) .empMerit__icon {
    width: 191rem;
  }
  .empMerit__icon {
    height: auto;
  }
  .empMerit__ttl {
    margin-top: 40rem;
    font-size: 30rem;
  }
  .empMerit__txt {
    margin: 45rem auto 90rem;
    font-size: 25rem;
    width: 470rem;
  }
  .empMerit__btn {
    margin: 30rem auto;
    min-width: 0;
    padding: 20rem 40rem 21rem;
    font-size: 25rem;
  }
}

/* ============================================================
   FRONT VIEW （転職をお考えの個人さまへ メインビジュアル）

   画像は右端に赤ベタが焼き込まれており、その上に見出しを重ねる。
   角丸インセット型（.frontView--inset）を使用。
============================================================ */
.applicant-fv {
  position: relative;
}

/* 画像と同じ幅・位置に重ね、右端の赤ベタの中で見出しを中央に置く */
.appFv {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 95%;
  max-width: 1100rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: #fff;
}
.appFv__inner {
  width: 300rem;
  padding: 0 70rem 0 0;
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-align: center;
}
.appFv__em {
  display: block;
  margin-top: 10rem;
  padding: 8rem 6rem 9rem;
  border: 3rem solid #fff;
  font-size: 26rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media (max-width: 768px) {
  .appFv {
    width: 90%;
  }
  .appFv__inner {
    margin-top: 40rem;
    width: 255rem;
    padding: 0 55rem 0 0;
    font-size: 26rem;
  }
  .appFv__em {
    margin-top: 12rem;
    padding: 10rem 6rem 11rem;
    font-size: 23rem;
  }
}

/* ============================================================
   ABOUT （転職サポートサービスについて）
============================================================ */
.appAbout {
  background: #fff;
  padding: 80rem 0 90rem;
  text-align: center;
}
.appAbout__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.appAbout__catch {
  margin-top: 30rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.6;
}
.appAbout__lead {
  margin-top: 35rem;
  color: var(--blue);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
}
@media (max-width: 768px) {
  .appAbout {
    padding: 70rem 0;
  }
  .appAbout__inner {
    padding: 0 7%;
    width: 95%;
  }
  .appAbout__catch {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .appAbout__lead {
    margin-top: 30rem;
    font-size: 25rem;
    text-align: left;
    letter-spacing: 0.05em;
  }
}

/* ============================================================
   POINT （サービスの3本柱）
============================================================ */
.appPoint {
  background: var(--gray-bg);
  padding: 70rem 0 80rem;
}
.appPoint__inner {
  width: 95%;
  max-width: 1100rem;
  margin: 0 auto;
}
.appPoint__list {
  display: flex;
  justify-content: space-between;
  gap: 30rem;
}
.appPoint__item {
  flex: 1 1 0;
  min-width: 0;
  background: #fff;
  border-radius: 10rem;
  padding: 34rem 0 25rem;
  text-align: center;
}
.appPoint {
  /* 角丸のピル見出し */
}
.appPoint__ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 62rem;
  width: 87%;
  margin: auto;
  padding: 8rem 0;
  border: 2rem solid var(--red-btn);
  border-radius: 50rem;
  color: var(--red-btn);
  font-size: 21rem;
  font-weight: 700;
  line-height: 1.4;
}
.appPoint__txt {
  margin-top: 22rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.9;
}
.appPoint__img {
  margin: 24rem auto 0;
  width: 87%;
  line-height: 0;
}
.appPoint__img img {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .appPoint {
    padding: 80rem 0 70rem;
  }
  .appPoint__inner {
    padding: 0 7%;
  }
  .appPoint__list {
    flex-direction: column;
    gap: 50rem;
  }
  .appPoint__item {
    padding: 40rem 0 46rem;
    border-radius: 20rem;
  }
  .appPoint__ttl {
    min-height: 0;
    padding: 22rem 20rem;
    font-size: 30rem;
    border-radius: 70rem;
  }
  .appPoint__txt {
    margin-top: 35rem;
    font-size: 25rem;
  }
  .appPoint__img {
    margin-top: 45rem;
  }
}

/* ============================================================
   MERIT （転職サポートサービスのメリット）
============================================================ */
.appMerit {
  background: #fff;
  padding: 80rem 0 90rem;
  text-align: center;
}
.appMerit__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.appMerit__h2 {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
.appMerit__list {
  margin: 80rem auto 0;
  display: flex;
  justify-content: space-between;
  gap: 41rem;
  max-width: 649rem;
}
.appMerit__item {
  flex: 0 1 380rem;
  min-width: 0;
}
.appMerit__item:nth-child(1) .appMerit__icon {
  width: 131rem;
}
.appMerit__item:nth-child(2) .appMerit__icon {
  width: 180rem;
}
.appMerit__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
  min-height: 141rem;
}
.appMerit__icon img {
  max-height: 100%;
  width: auto;
}
.appMerit__ttl {
  margin-top: 22rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.appMerit__txt {
  margin-top: 16rem;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.9;
  text-align: justify;
}
@media (max-width: 768px) {
  .appMerit {
    padding: 70rem 0 90rem;
  }
  .appMerit__inner {
    padding: 0 7%;
  }
  .appMerit__h2 {
    margin-bottom: 90rem;
  }
  .appMerit__list {
    margin-top: 60rem;
    flex-direction: column;
    gap: 60rem;
  }
  .appMerit__item {
    flex: none;
  }
  .appMerit__item:nth-child(1) .appMerit__icon {
    width: 227rem;
  }
  .appMerit__item:nth-child(2) .appMerit__icon {
    width: 311rem;
  }
  .appMerit__icon {
    height: auto;
  }
  .appMerit__ttl {
    margin-top: 40rem;
    font-size: 30rem;
  }
  .appMerit__txt {
    margin: 45rem auto 90rem;
    font-size: 25rem;
    width: 470rem;
    letter-spacing: 0.045em;
  }
}

/* ============================================================
   SECRET （非公開求人情報例／職種領域）
============================================================ */
.appSecret {
  margin-top: 40rem;
  position: relative;
}
.appSecret__arrow {
  display: block;
  width: 31rem;
  margin: 0;
  line-height: 0;
  position: absolute;
  top: -61rem;
  right: 272rem;
}
.appSecret__arrow img {
  width: 100%;
  height: auto;
}
.appSecret__box {
  border: 2rem solid var(--red-btn);
  border-radius: 10rem;
  overflow: hidden;
  text-align: left;
  margin: 100rem auto 0;
  max-width: 850rem;
}
.appSecret__cols {
  display: flex;
  gap: 40rem;
  padding: 30rem 40rem 34rem;
}
.appSecret__col {
  flex: 1 1 0;
  min-width: 0;
}
.appSecret {
  /* 赤帯の小見出し */
}
.appSecret__ttl {
  padding: 7rem 10rem 8rem;
  background: var(--red-btn);
  color: #fff;
  font-size: 16rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
}
.appSecret__list {
  margin-top: 16rem;
  display: flex;
  flex-direction: column;
  gap: 10rem;
}
.appSecret__list li {
  position: relative;
  padding-left: 18rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.6;
  /* 行頭の赤い四角 */
}
.appSecret__list li::before {
  content: "";
  position: absolute;
  top: 6rem;
  left: 0;
  width: 11rem;
  height: 11rem;
  background: var(--red-btn);
}
.appSecret__etc {
  margin: 12rem 45rem 0 0;
  color: var(--text-dark);
  font-size: 14rem;
  text-align: right;
}
.appSecret {
  /* 職種領域は2列 */
}
.appSecret__fields {
  margin-top: 16rem;
  display: flex;
  gap: 20rem;
}
.appSecret__field {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10rem;
}
.appSecret__field li {
  position: relative;
  padding-left: 20rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.6;
  letter-spacing: 0.16em;
  /* 空のチェックボックス */
}
.appSecret__field li::before {
  content: "";
  position: absolute;
  top: 5rem;
  left: 0;
  width: 13rem;
  height: 13rem;
  border: 2rem solid var(--red-btn);
}
.appSecret {
  /* 下段の赤帯 */
}
.appSecret__effective {
  background: var(--red-btn);
  padding: 18rem 40rem 20rem;
  display: flex;
  align-items: center;
  gap: 65rem;
}
.appSecret__effective-ttl {
  flex: 0 0 auto;
  margin-left: 30rem;
  color: #fff;
  font-size: 16rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.appSecret__effective-list {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8rem 24rem;
}
.appSecret__effective-list li {
  position: relative;
  width: calc((100% - 24rem) / 2);
  padding-left: 24rem;
  color: #fff;
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.6;
  /* チェック済みボックス */
}
.appSecret__effective-list li::before {
  content: "";
  position: absolute;
  top: 2rem;
  left: 0;
  width: 17rem;
  height: 18rem;
  background: url(../img/page/applicant_li.svg) no-repeat center/contain;
}
@media (max-width: 768px) {
  .appSecret {
    margin-top: 50rem;
  }
  .appSecret__box {
    border-radius: 20rem;
  }
  .appSecret__arrow {
    margin: auto;
    left: 0;
    right: 0;
  }
  .appSecret__cols {
    flex-direction: column;
    gap: 40rem;
    padding: 55rem 70rem;
  }
  .appSecret__ttl {
    padding: 12rem 10rem 13rem;
    font-size: 22rem;
  }
  .appSecret__list {
    margin: 24rem 0 0 16rem;
    gap: 16rem;
  }
  .appSecret__list li {
    padding-left: 22rem;
    font-size: 20rem;
  }
  .appSecret__list li::before {
    top: 9rem;
    width: 14rem;
    height: 14rem;
  }
  .appSecret__etc {
    margin-top: 18rem;
    font-size: 20rem;
  }
  .appSecret__fields {
    margin: 24rem 0 0 50rem;
    gap: 24rem;
  }
  .appSecret__field {
    gap: 16rem;
    flex: initial;
  }
  .appSecret__field:nth-child(1) {
    width: 150rem;
  }
  .appSecret__field li {
    padding-left: 30rem;
    font-size: 20rem;
    line-height: 1.4;
  }
  .appSecret__field li::before {
    top: 6rem;
    width: 20rem;
    height: 20rem;
  }
  .appSecret__effective {
    flex-direction: column;
    align-items: flex-start;
    gap: 20rem;
    padding: 50rem 70rem 45rem;
  }
  .appSecret__effective-ttl {
    font-size: 22rem;
    margin: 0 0 15rem;
  }
  .appSecret__effective-list {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 14rem;
  }
  .appSecret__effective-list li {
    width: 100%;
    padding-left: 38rem;
    font-size: 20rem;
  }
  .appSecret__effective-list li::before {
    top: 3rem;
    width: 26rem;
    height: 28rem;
  }
}

/* ============================================================
   FLOW （サービスの流れ）
============================================================ */
.appFlow {
  background: var(--gray-bg);
  padding: 80rem 0 100rem;
  text-align: center;
}
.appFlow__inner {
  max-width: 1060rem;
  margin: 0 auto;
  padding: 0 40rem;
}
.appFlow__catch {
  margin-top: 30rem;
  color: var(--blue);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.6;
}
.appFlow__lead {
  margin-top: 34rem;
  color: var(--blue);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
}
.appFlow__list {
  max-width: 850rem;
  margin: 50rem auto 0;
  text-align: left;
}
.appFlow__item {
  display: flex;
  align-items: center;
  margin-bottom: 19rem;
}
.appFlow__item:nth-child(3) .appFlow__step, .appFlow__item:nth-child(3) .appFlow__txt {
  min-height: 122rem;
}
.appFlow__item:last-child {
  margin-bottom: 0;
}
.appFlow {
  /* 左の赤いピル。次の段へ矢印を伸ばす */
}
.appFlow__step {
  position: relative;
  flex: 0 0 auto;
  width: 300rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--red-btn);
  border-radius: 10rem 0 0 10rem;
  color: #fff;
  font-size: 15rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  min-height: 75rem;
}
.appFlow__item:not(:last-child) .appFlow__step::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -18rem;
  transform: translateX(-50%);
  width: 21rem;
  height: 19rem;
  background: url(../img/page/applicant_arrow.svg) no-repeat center/contain;
}
.appFlow__txt {
  flex: 1 1 auto;
  padding: 0 35rem;
  min-width: 0;
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 0 10rem 10rem 0;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  min-height: 75rem;
}
@media (max-width: 768px) {
  .appFlow {
    padding: 70rem 0 90rem;
  }
  .appFlow__inner {
    padding: 0 7%;
  }
  .appFlow__catch {
    margin-top: 34rem;
    font-size: 25rem;
  }
  .appFlow__lead {
    margin-top: 30rem;
    font-size: 25rem;
    text-align: left;
  }
  .appFlow__list {
    margin-top: 90rem;
  }
  .appFlow {
    /* SPはピルの下に説明を置く1列組み */
  }
  .appFlow__item {
    flex-direction: column;
    align-items: stretch;
    gap: 16rem;
    margin-bottom: 50rem;
  }
  .appFlow__step {
    width: 100%;
    padding: 18rem 16rem 19rem;
    font-size: 25rem;
    border-radius: 10rem 10rem 0 0;
    border: 2rem solid var(--red-btn);
  }
  .appFlow__item {
    gap: 0;
  }
  .appFlow__item:not(:last-child) .appFlow__step::after {
    display: none;
  }
  .appFlow {
    /* 説明の下に矢印を置く */
  }
  .appFlow__item:not(:last-child) {
    position: relative;
  }
  .appFlow__item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -36rem;
    transform: translateX(-50%);
    width: 32rem;
    height: 30rem;
    background: url(../img/page/applicant_arrow.svg) no-repeat center/contain;
  }
  .appFlow__txt {
    font-size: 20rem;
    border-radius: 0 0 10rem 10rem;
    padding: 25rem 50rem;
    border: 2rem solid var(--red-btn);
  }
}

/* ============================================================
   FRONT VIEW （お問い合わせ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .inquiry-fv {
    background-image: url(../img/page/inquiry_frontview_l.webp);
  }
}

/* ============================================================
   INQUIRY （お問い合わせ）

   フォーム本体は Contact Form 7 が出力する。
   CF7 は各タグを <span class="wpcf7-form-control-wrap"> で包むため、
   幅指定はその span と中の input/textarea の両方に効かせている。
============================================================ */
.inquiry {
  /* サイドナビを持たないページなので本文幅を絞る */
}
.inquiry .pageBody__inner {
  max-width: 780rem;
}
.inquiry__lead {
  margin-top: 34rem;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.9;
}
.inquiry__missing {
  margin-top: 40rem;
  color: #d50032;
  font-size: 14rem;
}
@media (max-width: 768px) {
  .inquiry__lead {
    margin-top: 110rem;
    font-size: 25rem;
  }
  .inquiry__missing {
    padding: 0 5%;
    font-size: 22rem;
  }
}

/* ============================================================
   FORM （Contact Form 7）
============================================================ */
.inqForm {
  margin-top: 46rem;
  /* ---- 1項目ぶん ---- */
}
.inqForm__row {
  margin-bottom: 26rem;
}
.inqForm__row:last-of-type {
  margin-bottom: 0;
}
.inqForm__label {
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 500;
  letter-spacing: 0.15em;
}
.inqForm {
  /* 必須マーク */
}
.inqForm__req {
  color: var(--red-btn);
  font-size: 7rem;
  margin-left: 4rem;
  vertical-align: 6rem;
}
.inqForm {
  /* ---- 入力欄 ---- */
}
.inqForm__input, .inqForm__textarea {
  display: block;
  width: 100%;
  margin-top: 8rem;
  padding: 12rem 20rem 13rem;
  background: #f4f4f4;
  border: 1rem solid #c0bfbe;
  border-radius: 30rem;
  color: var(--text-dark);
  font-family: inherit;
  font-size: 15rem;
  line-height: 1.6;
}
.inqForm__input::-moz-placeholder, .inqForm__textarea::-moz-placeholder {
  color: #b5b5b5;
}
.inqForm__input::placeholder, .inqForm__textarea::placeholder {
  color: #b5b5b5;
}
.inqForm__input:focus, .inqForm__textarea:focus {
  outline: none;
  border-color: var(--blue-btn);
  background: #fff;
}
.inqForm__textarea {
  height: 200rem;
  border-radius: 20rem;
  resize: vertical;
}
.inqForm {
  /* 時間欄だけ幅を抑える */
}
.inqForm__input--time {
  max-width: 300rem;
  margin-top: 0;
}
.inqForm {
  /* ---- 希望連絡時間帯 ---- */
}
.inqForm__when {
  margin-top: 12rem;
  display: flex;
  flex-direction: row;
  justify-content: end;
  gap: 14rem;
}
.inqForm__when-row {
  display: flex;
  align-items: center;
}
.inqForm__when-label {
  flex: 0 0 auto;
  width: 40rem;
  color: var(--text-dark);
  font-size: 13rem;
  font-weight: 500;
}
.inqForm__when-body {
  flex: 1 1 auto;
  min-width: 0;
}
.inqForm {
  /* 曜日のラジオ */
}
.inqForm__days .wpcf7-list-item {
  display: inline-block;
  margin: 0 15rem 0 0;
}
.inqForm__days label {
  display: inline-flex;
  align-items: center;
  gap: 7rem;
  cursor: pointer;
}
.inqForm__days input[type=radio] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 13rem;
  height: 13rem;
  margin: 0;
  border: 1rem solid #c4c4c4;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}
.inqForm__days input[type=radio]:checked {
  border-color: #ffacac;
  background: #ffacac;
}
.inqForm__days .wpcf7-list-item-label {
  color: var(--text-dark);
  font-size: 13rem;
}
.inqForm {
  /* ---- 個人情報の利用目的についての説明 ---- */
}
.inqForm__note {
  margin-top: 40rem;
  color: var(--text-dark);
  font-size: 15rem;
  line-height: 1.9;
}
.inqForm__note p + p {
  margin-top: 0;
}
.inqForm {
  /* ---- 個人情報保護方針 ---- */
}
.inqForm__policy {
  margin-top: 34rem;
}
.inqForm__policy-ttl {
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 500;
  letter-spacing: 0.15em;
}
.inqForm__policy {
  /* 高さを固定して中身をスクロールさせる */
}
.inqForm__policy-box {
  height: 310rem;
  margin-top: 12rem;
  padding: 18rem 22rem;
  background: #fff5f5;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  /* 原文の改行・空行をそのまま表示する */
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  /* ---- スクロールバー ----
     幅は常に確保したままなので（overflow-y: scroll）、
     出し入れしても本文がガタつかない。 */
  scrollbar-width: thin; /* Firefox / 新しめのChrome */
  scrollbar-color: #aaa transparent; /* つまみ／トラック */
}
.inqForm__policy-box::-webkit-scrollbar {
  width: 10rem;
}
.inqForm__policy-box::-webkit-scrollbar-track {
  background: transparent;
}
.inqForm__policy-box::-webkit-scrollbar-thumb {
  background-color: #aaa;
  border: 2rem solid transparent;
  background-clip: content-box;
  border-radius: 6rem;
  -webkit-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
}
.inqForm__policy-box {
  /* ホバーできる環境（＝マウス）だけ、既定で隠して乗せたときに出す。
     タップ操作の端末はホバーが無いため、上の常時表示のままにする。 */
}
@media (hover: hover) {
  .inqForm__policy-box {
    scrollbar-color: transparent transparent;
  }
  .inqForm__policy-box::-webkit-scrollbar-thumb {
    background-color: transparent;
  }
  .inqForm__policy-box {
    /* キーボード操作でも見えるよう、フォーカス時にも出す
       （ボックスは tabindex="0" でフォーカスできる） */
  }
  .inqForm__policy-box:hover, .inqForm__policy-box:focus-within {
    scrollbar-color: #aaa transparent;
  }
  .inqForm__policy-box:hover::-webkit-scrollbar-thumb, .inqForm__policy-box:focus-within::-webkit-scrollbar-thumb {
    background-color: #aaa;
  }
  .inqForm__policy-box:hover::-webkit-scrollbar-thumb:hover {
    background-color: #999;
  }
}
.inqForm {
  /* ---- 同意する ---- */
}
.inqForm__agree {
  margin-top: 24rem;
  text-align: center;
}
.inqForm__agree .wpcf7-list-item {
  margin: 0;
}
.inqForm__agree label {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
  cursor: pointer;
}
.inqForm__agree input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 13rem;
  height: 13rem;
  margin: 0;
  border: 1rem solid #c4c4c4;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}
.inqForm__agree input[type=checkbox]:checked {
  border-color: #ffacac;
  background: #ffacac;
}
.inqForm__agree .wpcf7-list-item-label {
  color: var(--text-dark);
  font-size: 15rem;
  font-weight: 700;
}
.inqForm {
  /* ---- 送信ボタン ---- */
}
.inqForm__submit {
  margin-top: 30rem;
  text-align: center;
}
.inqForm__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200rem;
  padding: 13rem 40rem 14rem;
  background: var(--red-btn);
  border: none;
  border-radius: 30rem;
  color: #fff;
  font-family: inherit;
  font-size: 14rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: opacity 0.2s;
  margin-left: 36rem;
}
.inqForm__btn:hover {
  opacity: 0.7;
}
@media (max-width: 768px) {
  .inqForm {
    margin-top: 80rem;
  }
  .inqForm__row {
    margin-bottom: 45rem;
  }
  .inqForm__label {
    font-size: 25rem;
  }
  .inqForm__req {
    font-size: 12rem;
    margin-left: 5rem;
    vertical-align: 9rem;
  }
  .inqForm__input, .inqForm__textarea {
    margin-top: 12rem;
    padding: 18rem 26rem 19rem;
    border-radius: 40rem;
    font-size: 25rem;
  }
  .inqForm__textarea {
    height: 300rem;
    border-radius: 20rem;
  }
  .inqForm__input--time {
    max-width: none;
  }
  .inqForm__when {
    margin-top: 35rem;
    gap: 20rem;
    flex-direction: column;
  }
  .inqForm__when-row {
    gap: 28rem;
  }
  .inqForm__when-label {
    width: 56rem;
    font-size: 22rem;
  }
  .inqForm__days .wpcf7-list-item {
    margin-right: 20rem;
  }
  .inqForm__days input[type=radio] {
    width: 20rem;
    height: 20rem;
  }
  .inqForm__days input[type=radio]:checked {
    box-shadow: inset 0 0 0 4rem #fff;
  }
  .inqForm__days .wpcf7-list-item-label {
    font-size: 22rem;
  }
  .inqForm__note {
    margin-top: 50rem;
    font-size: 25rem;
  }
  .inqForm__policy {
    margin-top: 44rem;
  }
  .inqForm__policy-ttl {
    font-size: 25rem;
  }
  .inqForm__policy-box {
    /* 高さの指定はPC・SP共通で 310rem */
    margin-top: 18rem;
    padding: 24rem 28rem;
    font-size: 25rem;
    /* rem が半分になるぶん、つまみの実寸を保つため数値を上げる */
  }
  .inqForm__policy-box::-webkit-scrollbar {
    width: 20rem;
  }
  .inqForm__policy-box::-webkit-scrollbar-thumb {
    border-width: 4rem;
    border-radius: 12rem;
  }
  .inqForm__agree {
    margin-top: 34rem;
  }
  .inqForm__agree input[type=checkbox] {
    width: 20rem;
    height: 20rem;
  }
  .inqForm__agree input[type=checkbox]:checked {
    box-shadow: inset 0 0 0 4rem #fff;
  }
  .inqForm__agree .wpcf7-list-item-label {
    font-size: 25rem;
  }
  .inqForm__submit {
    margin-top: 40rem;
  }
  .inqForm__btn {
    min-width: 300rem;
    padding: 20rem 50rem 21rem;
    border-radius: 50rem;
    font-size: 25rem;
  }
}

/* ============================================================
   CF7 のシステムメッセージ（エラー・送信完了）
============================================================ */
.wpcf7 .wpcf7-not-valid-tip {
  margin-top: 6rem;
  color: #d50032;
  font-size: 12rem;
  line-height: 1.5;
}
.wpcf7 .wpcf7-response-output {
  margin: 26rem 0 0;
  padding: 14rem 18rem;
  border: 1rem solid #c4c4c4;
  border-radius: 6rem;
  color: var(--text-dark);
  font-size: 13rem;
  line-height: 1.7;
  text-align: center;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #d50032;
  color: #d50032;
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--blue-btn);
  color: var(--blue);
}
.wpcf7 .wpcf7-spinner {
  margin: 0 0 0 12rem;
}
@media (max-width: 768px) {
  .wpcf7 .wpcf7-not-valid-tip {
    margin-top: 10rem;
    font-size: 20rem;
  }
  .wpcf7 .wpcf7-response-output {
    margin-top: 36rem;
    padding: 20rem 24rem;
    font-size: 21rem;
  }
}

/* ============================================================
   STEP （入力 → 確認 → 完了）

   画面のつなぎはプラグイン
   「Multi-Step Forms for Contact Form 7」が受け持つ。
============================================================ */
.inqStep {
  margin-top: 30rem;
  display: flex;
  justify-content: center;
  gap: 10rem;
}
.inqStep__item {
  position: relative;
  flex: 0 0 auto;
  min-width: 110rem;
  padding: 8rem 16rem 9rem;
  background: #f0f0f0;
  border-radius: 30rem;
  color: #9b9b9b;
  font-size: 12rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  /* 現在のステップ */
}
.inqStep__item.is-current {
  background: var(--red-btn);
  color: #fff;
}
@media (max-width: 768px) {
  .inqStep {
    margin-top: 40rem;
    gap: 14rem;
  }
  .inqStep__item {
    min-width: 150rem;
    padding: 12rem 20rem 13rem;
    font-size: 20rem;
  }
}

/* ============================================================
   CONFIRM （確認画面）
============================================================ */
.inqConf {
  margin-top: 40rem;
}
.inqConf__list {
  border-top: 1rem solid #e2e2e2;
}
.inqConf__row {
  display: flex;
  align-items: flex-start;
  gap: 24rem;
  padding: 18rem 4rem 19rem;
  border-bottom: 1rem solid #e2e2e2;
}
.inqConf__label {
  flex: 0 0 auto;
  width: 190rem;
  color: var(--text-dark);
  font-size: 13rem;
  font-weight: 700;
  line-height: 1.7;
}
.inqConf__value {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--text-dark);
  font-size: 13rem;
  line-height: 1.7;
  /* 入力時の改行をそのまま見せる（お問い合わせ内容） */
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.inqConf__btns {
  margin-top: 40rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20rem;
}
.inqConf {
  /* 「修正する」＝前の画面へ戻る */
}
.inqConf__back, .inqConf__send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200rem;
  padding: 13rem 40rem 14rem;
  border-radius: 30rem;
  font-family: inherit;
  font-size: 14rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: opacity 0.2s;
}
.inqConf__back:hover, .inqConf__send:hover {
  opacity: 0.7;
}
.inqConf__back {
  background: #fff;
  border: 1rem solid #9b9b9b;
  color: var(--text-dark);
}
.inqConf__send {
  background: var(--red-btn);
  border: none;
  color: #fff;
}
@media (max-width: 768px) {
  .inqConf {
    margin-top: 50rem;
    padding: 0 5%;
  }
  .inqConf__row {
    flex-direction: column;
    gap: 8rem;
    padding: 26rem 4rem 28rem;
  }
  .inqConf__label {
    width: 100%;
    font-size: 25rem;
  }
  .inqConf__value {
    font-size: 25rem;
  }
  .inqConf__btns {
    margin-top: 0;
    flex-direction: column-reverse;
    gap: 40rem;
  }
  .inqConf__back, .inqConf__send {
    min-width: 300rem;
    padding: 20rem 30rem 21rem;
    border-radius: 50rem;
    font-size: 25rem;
  }
}

/* ============================================================
   THANKS （送信完了画面）
============================================================ */
.inqThanks {
  margin-top: 50rem;
  text-align: center;
}
.inqThanks__ttl {
  color: var(--blue);
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.6;
}
.inqThanks__txt {
  margin-top: 24rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
}
.inqThanks__note {
  margin-top: 30rem;
  padding: 22rem 26rem;
  background: var(--gray-bg);
  border-radius: 10rem;
  color: var(--text-dark);
  font-size: 12rem;
  line-height: 1.9;
}
.inqThanks__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 40rem;
  min-width: 200rem;
  padding: 13rem 40rem 14rem;
  background: var(--red-btn);
  border-radius: 30rem;
  color: #fff;
  font-size: 14rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .inqThanks {
    margin-top: 60rem;
    padding: 0 5%;
  }
  .inqThanks__ttl {
    font-size: 30rem;
  }
  .inqThanks__txt {
    margin-top: 34rem;
    font-size: 22rem;
  }
  .inqThanks__note {
    margin-top: 40rem;
    padding: 30rem 30rem;
    font-size: 20rem;
  }
  .inqThanks__btn {
    margin-top: 50rem;
    width: 100%;
    min-width: 0;
    padding: 20rem 30rem 21rem;
    border-radius: 50rem;
    font-size: 24rem;
  }
}

/* ============================================================
   ALERT （入力ステップを踏まずに確認画面へ来たとき）
============================================================ */
.inqAlert {
  margin-top: 40rem;
  padding: 24rem 26rem;
  background: var(--red-bg);
  border-radius: 10rem;
  color: var(--text-dark);
  font-size: 13rem;
  line-height: 1.9;
  text-align: center;
}
.inqAlert a {
  color: var(--blue);
  text-decoration: underline;
}
@media (max-width: 768px) {
  .inqAlert {
    margin: 40rem 5% 0;
    padding: 30rem 24rem;
    font-size: 21rem;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .corporate-fv {
    background-image: url(../img/page/corporate_frontview_l.webp);
  }
}

/* ============================================================
   CORPORATE MENU （企業情報：下層ページへのカードリンク）
   ※ corporateページのみ背景画像（bg.webp）は使用しない
============================================================ */
.corpMenu {
  margin-top: 56rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40rem 0;
}
.corpMenu__item {
  width: 47.5%;
}
.corpMenu__link {
  height: 100%;
  padding: 20rem;
  background: #fff;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  display: flex;
  align-items: flex-end;
  gap: 5rem;
}
.corpMenu__img {
  flex: 0 0 200rem;
  width: 200rem;
  height: auto;
}
.corpMenu__txt {
  flex: 1;
  text-align: right;
  margin-bottom: 10rem;
}
.corpMenu__en {
  display: block;
  color: var(--blue-btn);
  font-family: var(--font-en);
  font-size: 12rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.18em;
}
.corpMenu__ttl {
  margin-top: 10rem;
  color: var(--blue);
  font-size: 22rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .corpMenu {
    margin-top: 76rem;
    padding: 0 5%;
    gap: 40rem;
  }
  .corpMenu__item {
    width: 100%;
  }
  .corpMenu__link {
    padding: 30rem;
    gap: 30rem;
    border-radius: 20rem;
  }
  .corpMenu__img {
    flex: 0 0 250rem;
    width: 250rem;
  }
  .corpMenu__txt {
    padding-right: 16rem;
  }
  .corpMenu__en {
    font-size: 16rem;
  }
  .corpMenu__ttl {
    margin-top: 14rem;
    font-size: 30rem;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .message-fv {
    height: 769rem;
    background-image: url(../img/page/message_frontview_l.webp);
    background-size: 2040rem;
  }
}

/* ------------------------------------------------------------
   FV内 キャッチコピー
------------------------------------------------------------ */
.messageFv__catch {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 980rem;
  padding: 0 40rem;
  color: #fff;
  font-size: 34rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-shadow: 0 0 20rem rgba(0, 0, 0, 0.35);
}
@media (max-width: 768px) {
  .messageFv__catch {
    top: 168rem;
    max-width: none;
    padding-left: 103rem;
    font-size: 33rem;
    line-height: 1.6;
  }
}

/* ------------------------------------------------------------
   ページタイトル
   PC：FVに白文字でオーバーレイ / SP：FVの下にブルーで配置
------------------------------------------------------------ */
.messageFv__ttl {
  position: absolute;
  top: 27%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 980rem;
  padding: 0 40rem;
  color: #fff;
  font-size: 22rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-shadow: 0 0 20rem rgba(0, 0, 0, 0.35);
}

.messageFv__en {
  display: block;
  margin-top: 4rem;
  font-family: var(--font-en);
  font-size: 12rem;
  font-weight: 400;
  letter-spacing: 0.2em;
}

@media (max-width: 768px) {
  .messageFv__ttl {
    position: static;
    transform: none;
    width: auto;
    max-width: none;
    margin-top: 96rem;
    padding-left: 9.5%;
    color: var(--blue);
    font-size: 30rem;
    text-shadow: none;
  }
  .messageFv__en {
    margin-top: 6rem;
    color: var(--blue);
    font-size: 20rem;
  }
}
/* ============================================================
   MESSAGE （代表挨拶）
============================================================ */
.message {
  padding-top: 92rem;
  /* PCではサイドナビを表示しない */
}
@media (min-width: 769px) {
  .message .pageNav {
    display: none;
  }
}
.message__body {
  max-width: 640rem;
  margin: 0 auto;
}
.message__txt {
  margin-top: 30rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0;
}
.message {
  /* 署名 ------------------------------------------------ */
}
.message__sign {
  margin-top: 56rem;
  text-align: right;
}
.message__sign-corp {
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
.message__sign-post {
  padding-left: 18rem;
}
.message__sign-img {
  width: 200rem;
  height: auto;
  margin: 20rem 0 0 auto;
}
@media (max-width: 768px) {
  .message {
    padding-top: 96rem;
  }
  .message__body {
    max-width: none;
  }
  .message__catch {
    font-size: 34rem;
    line-height: 1.5;
  }
  .message__catch::before, .message__catch::after {
    content: none;
  }
  .message__txt {
    margin-top: 44rem;
    font-size: 25rem;
    line-height: 1.9;
  }
  .message__sign {
    margin-top: 70rem;
  }
  .message__sign-corp {
    font-size: 24rem;
    line-height: 1;
  }
  .message__sign-post {
    display: block;
    padding-left: 0;
    line-height: 1.8;
  }
  .message__sign-img {
    width: 250rem;
    margin-top: 30rem;
  }
}

/* ============================================================
   PRINCIPLE （シグナルの基本理念）
============================================================ */
.message-h1 {
  margin-top: 95rem;
  text-align: center;
}
@media (max-width: 768px) {
  .message-h1 {
    text-align: left;
  }
}

.principle {
  max-width: 960rem;
  margin: 40rem auto 0;
  border: 2rem solid var(--blue);
  border-radius: 20rem;
  padding: 60rem 55rem 75rem;
}
.principle img {
  width: 100%;
  margin-bottom: 65rem;
}
.principle__txtContnt {
  max-width: 505rem;
  margin: 0 auto;
}
.principle__ttl {
  font-size: 36rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--blue);
  margin: 0 0 65rem -0.5em;
  text-indent: -0.5em;
  padding-left: 0.5em;
}
.principle__ttl02 {
  font-family: var(--font-en);
  font-size: 26rem;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: 0.08em;
}
.principle__jp {
  font-family: var(--font-jp);
  font-size: 16rem;
  font-weight: 700;
  color: var(--blue);
  display: block;
  margin: 3rem 0 20rem;
  letter-spacing: 0.1em;
}
.principle__txt {
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.8;
  margin-bottom: 55rem;
  letter-spacing: 0.06em;
}
.principle__txt:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .principle {
    max-width: none;
    width: 100%;
    padding: 40rem 0 70rem 5%;
  }
  .principle img {
    padding-right: 5%;
    margin-bottom: 60rem;
  }
  .principle__txtContnt {
    max-width: none;
    margin: 0;
  }
  .principle__ttl {
    font-size: 35rem;
    margin: 0 0 80rem -0.5em;
  }
  .principle__ttl02 {
    font-size: 35rem;
  }
  .principle__jp {
    font-size: 25rem;
    margin: 3rem 0 15rem;
  }
  .principle__txt {
    font-size: 25rem;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .profile-fv {
    background-image: url(../img/page/profile_frontview_l.webp);
  }
}

/* ============================================================
   PROFILE （会社概要）
============================================================ */
.profile__list {
  margin-top: 46rem;
}
.profile__row {
  padding: 20rem 0;
  border-bottom: 1rem solid #9b9b9b;
  display: flex;
  align-items: flex-start;
  gap: 30rem;
}
.profile__dt {
  flex: 0 0 170rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.profile__dd {
  flex: 1;
  min-width: 0;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.profile {
  /* TEL / FAX ----------------------------------- */
}
.profile__contact {
  display: inline-block;
}
.profile__tel {
  display: inline-block;
  min-width: 190rem;
}
.profile {
  /* 取引銀行 ------------------------------------------- */
}
.profile__bank {
  display: inline-block;
  margin-right: 20rem;
}
.profile__link {
  border-bottom: 1rem solid #9b9b9b;
}
@media (max-width: 768px) {
  .profile__list {
    margin-top: 76rem;
    padding: 0 5%;
  }
  .profile__row {
    border-bottom: 1.5rem solid #9b9b9b;
    padding: 34rem 0;
    flex-direction: column;
    gap: 20rem;
  }
  .profile__dt {
    flex: none;
    font-size: 25rem;
  }
  .profile__dd {
    font-size: 25rem;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }
  .profile__contact {
    display: block;
    margin-top: 25rem;
  }
  .profile__tel {
    min-width: 270rem;
  }
  .profile__bank {
    display: block;
    min-width: 0;
  }
  .profile__link {
    border-bottom: 1.3rem solid #9b9b9b;
  }
}

/* ============================================================
   ABOUT GROUP （グループ会社）
============================================================ */
.group-h1 {
  margin-top: 140rem;
}

.groupList {
  margin-top: 46rem;
  display: flex;
  flex-direction: column;
  gap: 30rem;
}
@media (max-width: 768px) {
  .groupList {
    margin-top: 76rem;
    gap: 40rem;
  }
}

/* ------------------------------------------------------------
   GROUP CARD
------------------------------------------------------------ */
.groupCard {
  padding: 35rem 7% 36rem;
  background: #fff;
  border: 1rem solid #c0bfbe;
  border-radius: 20rem;
  /* ロゴ・エリアタグ ------------------------------------- */
}
.groupCard__head {
  min-height: 56rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20rem;
}
.groupCard__area {
  flex: 0 0 auto;
  min-width: 75rem;
  padding: 4rem 12rem 5rem;
  border: 1rem solid #e2456f;
  border-radius: 50rem;
  color: #e2456f;
  font-size: 16rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  white-space: nowrap;
  text-align: center;
}
.groupCard__logo {
  flex: 0 0 200rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.groupCard__logo img {
  height: auto;
}
.groupCard {
  /* ロゴ個別サイズ */
}
.groupCard__logo-scout {
  width: 160rem;
  margin-top: 23rem;
}
.groupCard__logo-rise {
  width: 130rem;
  margin-top: 16rem;
}
.groupCard__logo-ambition {
  width: 184rem;
  margin-top: 14rem;
}
.groupCard {
  /* 会社情報 -------------------------------------------- */
}
.groupCard__row {
  padding: 20rem 0;
  display: flex;
  align-items: flex-start;
  gap: 26rem;
}
.groupCard__row + .groupCard__row {
  border-top: 1rem solid #9b9b9b;
}
.groupCard__dt {
  flex: 0 0 23%;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.06em;
}
.groupCard__dd {
  flex: 1;
  min-width: 0;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
}
.groupCard__name {
  font-size: 16rem;
}
.groupCard__biz {
  margin-top: 14rem;
  font-weight: 500;
}
.groupCard__tel {
  margin-top: 2rem;
}
@media (max-width: 768px) {
  .groupCard {
    padding: 50rem 40rem 52rem;
  }
  .groupCard__head {
    min-height: 0;
    padding: 0 15rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .groupCard__area {
    padding: 8rem 30rem 9rem;
    border-width: 2rem;
    font-size: 25rem;
  }
  .groupCard__logo {
    flex: none;
    width: 100%;
  }
  .groupCard__logo-scout {
    width: 249rem;
    margin: 50rem 0 30rem;
  }
  .groupCard__logo-rise {
    width: 203rem;
    margin: 20rem 0 10rem;
  }
  .groupCard__logo-ambition {
    width: 315rem;
    margin: 45rem 0 20rem;
  }
  .groupCard__row {
    padding: 25rem 15rem 36rem;
    flex-direction: column;
    gap: 10rem;
  }
  .groupCard__row:last-child {
    padding: 25rem 15rem 0;
  }
  .groupCard__dt {
    flex: none;
    font-size: 25rem;
  }
  .groupCard__dd {
    font-size: 25rem;
    line-height: 1.75;
  }
  .groupCard__name {
    font-size: 25rem;
  }
  .groupCard__biz {
    margin-top: 26rem;
  }
}

/* ============================================================
   全国展開  NATIONWIDE EXPANSION
============================================================ */
.nationwide {
  margin-top: 50rem;
}
.nationwide__txt {
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.nationwide__map {
  margin-top: 50rem;
  width: 100%;
}
@media (max-width: 768px) {
  .nationwide {
    margin-top: 45rem;
  }
  .nationwide__txt {
    font-size: 25rem;
    line-height: 1.8;
    padding: 0 5%;
  }
  .nationwide__map {
    margin-top: 50rem;
    width: 100%;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .history-fv {
    background-image: url(../img/page/history_frontview_l.webp);
  }
}

/* ============================================================
   HISTORY （沿革）
============================================================ */
.history__list {
  margin-top: 46rem;
  border-top: 1rem solid #9b9b9b;
}
.history__row {
  padding: 10rem 0;
  border-bottom: 1rem solid #9b9b9b;
  display: flex;
  align-items: flex-start;
  gap: 16rem;
}
.history__dt {
  flex: 0 0 120rem;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.55;
  letter-spacing: 0.08em;
}
.history__dd {
  flex: 1;
  min-width: 0;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.55;
  letter-spacing: 0.03em;
}
@media (max-width: 768px) {
  .history__list {
    margin-top: 76rem;
    padding: 0 5%;
    border-top: none;
  }
  .history__row {
    padding: 30rem 0;
    border-bottom: 1.5rem solid #9b9b9b;
    flex-direction: column;
    gap: 16rem;
  }
  .history__row:last-child {
    border-bottom: none;
  }
  .history__dt {
    flex: none;
    font-size: 25rem;
    font-weight: 500;
    line-height: 1.6;
  }
  .history__dd {
    font-size: 25rem;
    line-height: 1.6;
    letter-spacing: 0.02em;
  }
  .history__note {
    font-size: 20rem;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .access-fv {
    background-image: url(../img/page/access_frontview_l.webp);
  }
}

/* ============================================================
   ACCESS （アクセス）
============================================================ */
.access__list {
  margin-top: 46rem;
}
.access__row {
  padding: 20rem 0;
  border-bottom: 1rem solid #9b9b9b;
  display: flex;
  align-items: flex-start;
  gap: 30rem;
}
.access__row:nth-child(2) {
  border: none;
  padding-bottom: 0;
}
.access__row:nth-child(3) {
  padding-top: 0;
}
.access__row:last-child {
  border: none;
}
.access__dt {
  flex: 0 0 170rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.access__dd {
  flex: 1;
  min-width: 0;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.access {
  /* アクセス方法 --------------------------------------- */
}
.access__route li {
  padding-left: 1em;
  text-indent: -1em;
}
.access__route li::before {
  content: "・";
}
.access {
  /* Googleマップ --------------------------------------- */
}
.access__map {
  margin: 46rem auto 0;
  width: 95%;
  aspect-ratio: 5/2;
  overflow: hidden;
}
.access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media (max-width: 768px) {
  .access__list {
    margin-top: 76rem;
    padding: 0 5%;
  }
  .access__row {
    border-bottom: 1.5rem solid #9b9b9b;
    padding: 34rem 0;
    flex-direction: column;
    gap: 20rem;
  }
  .access__row:nth-child(3) {
    padding-top: 34rem;
  }
  .access__dt {
    flex: none;
    font-size: 25rem;
  }
  .access__dd {
    font-size: 25rem;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }
  .access__map {
    margin: 40rem auto 0;
    width: 90%;
    aspect-ratio: 5/5.5;
  }
}

/* ============================================================
   GOVERNANCE （ガバナンス）
============================================================ */
.governance {
  padding-top: 110rem;
}
@media (max-width: 768px) {
  .governance {
    padding-top: 120rem;
  }
}

/* ------------------------------------------------------------
   GOVERNANCE MENU （各方針へのボタン）
------------------------------------------------------------ */
.govMenu {
  max-width: 754rem;
  margin: 50rem auto 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40rem 56rem;
}
.govMenu__link {
  height: 100%;
  min-height: 73rem;
  padding: 12rem 24rem;
  background: #fff;
  border: 2rem solid var(--red);
  border-radius: 50rem;
  color: var(--red);
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .govMenu {
    max-width: 460rem;
    margin-top: 106rem;
    grid-template-columns: 1fr;
    gap: 32rem;
  }
  .govMenu__item:nth-child(3) {
    grid-column: 1;
  }
  .govMenu__link {
    min-height: 88rem;
    padding: 14rem 24rem;
    border-radius: 60rem;
    font-size: 25rem;
  }
}

/* ============================================================
   SECURITY （情報セキュリティ方針）
   ※ メインビジュアルを持たないページ
============================================================ */
.security {
  padding-top: 96rem;
}
.security__body {
  max-width: 640rem;
  margin: 0 auto;
}
.security__ttl {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.security {
  /* 本文 ------------------------------------------------ */
}
.security__txt {
  margin-top: 46rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
}
.security {
  /* (1)〜(4) の項目 -------------------------------------- */
}
.security__rules {
  margin-top: 76rem;
  display: flex;
  flex-direction: column;
  gap: 14rem;
}
.security__rule {
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
  display: flex;
  gap: 12rem;
}
.security__num {
  flex: 0 0 auto;
}
.security {
  /* 制定日・代表者 --------------------------------------- */
}
.security__sign {
  margin-top: 70rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
  text-align: right;
}
@media (max-width: 768px) {
  .security {
    padding-top: 60rem;
  }
  .security__parent {
    margin-bottom: 106rem;
  }
  .security__body {
    max-width: none;
  }
  .security {
    /* SPではボタン風の見出しになる */
  }
  .security__ttl {
    max-width: 460rem;
    margin: 0 auto;
    padding: 14rem 24rem;
    border: 3rem solid var(--blue);
    border-radius: 60rem;
    font-size: 25rem;
    text-align: center;
  }
  .security__txt {
    margin-top: 50rem;
    padding: 0;
    font-size: 25rem;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }
  .security__rules {
    margin-top: 50rem;
    padding: 0;
    gap: 26rem;
  }
  .security__rule {
    font-size: 25rem;
    line-height: 1.9;
    flex-direction: column;
    gap: 0;
  }
  .security__sign {
    margin-top: 60rem;
    padding: 0;
    font-size: 25rem;
  }
}

/* ============================================================
   PRIVACY POLICY （個人情報保護方針／個人情報の取扱いについて）
   ※ メインビジュアルを持たないページ
============================================================ */
.policy {
  padding-top: 96rem;
}
.policy__body {
  max-width: 640rem;
  margin: 0 auto;
}
.policy__ttl {
  color: var(--blue);
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.policy__ttl--sub {
  margin-top: 110rem;
  font-size: 30rem;
}
.policy__txt {
  margin-top: 40rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.02em;
  text-align: justify;
}
.policy {
  /* 番号付き条項 ---------------------------------------- */
}
.policy__list {
  counter-reset: policy;
  margin-top: 34rem;
}
.policy__item {
  counter-increment: policy;
  position: relative;
  padding-left: 32rem;
  color: var(--text-dark);
  font-size: 15rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.policy__item + .policy__item {
  margin-top: 35rem;
}
.policy__item::before {
  content: counter(policy) ".";
  position: absolute;
  top: 0;
  left: 4rem;
  font-weight: 700;
}
.policy__item-ttl {
  font-weight: 700;
}
.policy__item-txt {
  margin-top: 4rem;
  text-align: justify;
}
.policy__item-txt + .policy__item-txt {
  margin-top: 16rem;
}
.policy {
  /* （1）（2）… のぶら下げリスト -------------------------- */
}
.policy__sublist {
  margin-top: 18rem;
  margin-left: -0.5em;
}
.policy__sublist a {
  text-decoration: underline;
  text-decoration-color: currentColor;
  transition: text-decoration-color 0.3s ease;
}
.policy__sublist a:hover {
  text-decoration-color: transparent;
}
.policy__sublist li {
  padding-left: 2.6em;
  text-indent: -2.6em;
  text-align: justify;
}
.policy__sublist li:nth-child(10) {
  padding-left: 3.1em;
  text-indent: -3.1em;
}
.policy__sublist--after {
  margin-top: 20rem;
}
.policy__indent {
  display: inline-block;
  text-indent: 0;
}
.policy__note {
  margin-top: 10rem;
}
.policy {
  /* 共同利用の範囲（囲み） ------------------------------- */
}
.policy__box {
  width: 640rem;
  margin: 30rem 0 0 -32rem;
  padding: 35rem 60rem;
  border: 1rem solid #9b9b9b;
  border-radius: 20rem;
}
.policy__box-name {
  font-weight: 500;
  font-size: 14rem;
}
.policy__box-name:not(:first-child) {
  margin-top: 20rem;
}
.policy__box-txt {
  margin-top: 4rem;
  font-size: 12rem;
  text-align: justify;
}
.policy {
  /* 窓口 ------------------------------------------------ */
}
.policy__window {
  margin-top: 20rem;
}
.policy__window-ttl {
  font-weight: 700;
  margin-left: -0.5em;
}
.policy {
  /* 問合せ先 / 制定日 ------------------------------------ */
}
.policy__contact {
  margin-top: 40rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.policy__sign {
  margin-top: 30rem;
  color: var(--text-dark);
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
  text-align: right;
}
.policy__site {
  margin-top: 60rem;
  font-size: 15rem;
  font-weight: 700;
}
.policy__site a {
  border-bottom: 1rem solid var(--text-dark);
}
.policy__site a:hover {
  border-bottom: 0;
}
@media (max-width: 768px) {
  .policy {
    padding-top: 60rem;
  }
  .policy__parent {
    margin-bottom: 106rem;
  }
  .policy__body {
    max-width: none;
  }
  .policy {
    /* SPではボタン風の見出しになる */
  }
  .policy__ttl {
    max-width: 460rem;
    margin: 0 auto;
    padding: 14rem 24rem;
    border: 3rem solid var(--blue);
    border-radius: 60rem;
    font-size: 25rem;
    text-align: center;
  }
  .policy__ttl--sub {
    margin-top: 140rem;
    font-size: 25rem;
  }
  .policy__txt {
    margin-top: 50rem;
    padding: 0;
    font-size: 25rem;
    line-height: 1.9;
  }
  .policy__list {
    margin-top: 44rem;
    padding: 0;
  }
  .policy__item {
    padding-left: 46rem;
    font-size: 25rem;
  }
  .policy__item + .policy__item {
    margin-top: 40rem;
  }
  .policy__item::before {
    left: 0;
  }
  .policy__item-txt {
    padding-left: 0;
  }
  .policy__sublist {
    padding-left: 0;
  }
  .policy__sublist--after {
    margin-top: 30rem;
  }
  .policy__note {
    padding-left: 0;
  }
  .policy__box {
    width: 655rem;
    margin-left: -47rem;
    padding: 30rem 35rem;
  }
  .policy__box-name {
    font-size: 23rem;
  }
  .policy__box-txt {
    font-size: 20rem;
  }
  .policy__window {
    padding-left: 0;
  }
  .policy__window img {
    width: 293rem;
  }
  .policy__contact, .policy__sign {
    padding: 0;
    font-size: 25rem;
  }
  .policy__contact {
    margin-top: 50rem;
  }
  .policy__site {
    padding: 0 5%;
    font-size: 23rem;
  }
}

/* ============================================================
   プライバシーマーク取得
============================================================ */
.policy__pMark {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin: 50rem 0;
}
.policy__pMark-logo {
  width: 160rem;
  margin-left: 110rem;
}
.policy__pMark-data {
  font-size: 14rem;
}
.policy__pMark-data dt {
  float: left;
  clear: left;
  width: 5em;
  padding-top: 15rem;
}
.policy__pMark-data dd {
  width: 9em;
  padding-top: 15rem;
  text-align: right;
}
.policy__pMark-txt {
  margin-top: 40rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.02em;
  text-align: justify;
}
.policy__pMark-txt .sup {
  font-size: 0.7em;
  vertical-align: 10%;
}
.policy__pMark-txt a {
  border-bottom: 1rem solid var(--text-dark);
}
.policy__pMark-txt a:hover {
  border-bottom: 0;
}
.policy__pMark-txtS {
  margin-top: 25rem;
  color: var(--text-dark);
  font-size: 15rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.policy__pMark-txtS a {
  border-bottom: 1rem solid var(--text-dark);
}
.policy__pMark-txtS a:hover {
  border-bottom: 0;
}
@media (max-width: 768px) {
  .policy__pMark {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 45rem 0;
  }
  .policy__pMark-logo {
    width: 255rem;
    margin: 0 0 25rem 0;
  }
  .policy__pMark-data {
    font-size: 25rem;
  }
  .policy__pMark-data dt {
    padding-top: 10rem;
  }
  .policy__pMark-data dd {
    padding-top: 10rem;
  }
  .policy__pMark-txt, .policy__pMark-txtS {
    margin-top: 50rem;
    padding: 0;
    font-size: 25rem;
    letter-spacing: 0.05em;
  }
  .policy__pMark-txtS {
    margin: 50rem 0;
  }
}

/* ============================================================
   RECRUIT （採用情報）
============================================================ */
.recruit {
  padding-top: 110rem;
}
@media (max-width: 768px) {
  .recruit {
    padding-top: 150rem;
  }
}

/* ------------------------------------------------------------
   RECRUIT LIST （グループ各社の採用サイトへのリンク）
------------------------------------------------------------ */
.recruitList {
  max-width: 804rem;
  margin: 50rem auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 34rem;
}
.recruitList__item {
  width: calc((100% - 34rem) / 2);
  height: 105rem;
}
.recruitList__link {
  height: 100%;
  min-height: 96rem;
  padding: 18rem 16rem 18rem 26rem;
  background: #fff;
  border-radius: 16rem;
  box-shadow: 7rem 7rem 10rem rgba(74, 95, 159, 0.5);
  border: 1rem solid #c0bfbe;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16rem;
}
.recruitList__link--nolink {
  cursor: default;
}
.recruitList__txt {
  min-width: 0;
}
.recruitList__name {
  color: var(--blue);
  font-size: 22rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.01em;
}
.recruitList__biz {
  margin-top: 8rem;
  color: var(--text-dark);
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
.recruitList__logo {
  flex: 0 0 auto;
  height: auto;
}
.recruitList__logo--signal {
  width: 72rem;
  margin-right: 3%;
}
.recruitList__logo--adlead {
  width: 125rem;
  margin-right: 2%;
}
.recruitList__logo--adbranding {
  width: 105rem;
}
@media (max-width: 768px) {
  .recruitList {
    max-width: 460rem;
    margin-top: 106rem;
    gap: 30rem;
  }
  .recruitList__item {
    width: 100%;
    height: 115rem;
  }
  .recruitList__link {
    min-height: 108rem;
    padding: 20rem 26rem;
    border-radius: 20rem;
    box-shadow: 7rem 7rem 12rem rgba(74, 95, 159, 0.22);
  }
  .recruitList__name {
    font-size: 25rem;
  }
  .recruitList__biz {
    margin-top: 8rem;
    font-size: 15rem;
  }
  .recruitList__logo--signal {
    width: 79rem;
  }
  .recruitList__logo--adlead {
    width: 137rem;
    margin-right: 0;
  }
  .recruitList__logo--adbranding {
    width: 116rem;
    margin-right: 1%;
  }
}

/* ============================================================
   FRONT VIEW （下層ページ メインビジュアル）
============================================================ */
@media (min-width: 1301px) {
  .news-fv {
    background-image: url(../img/page/news_frontview_l.webp);
  }
}

/* ============================================================
   NEWS （ニュースリリース 一覧）
============================================================ */
.newsPage__year {
  margin-top: 46rem;
  padding-bottom: 12rem;
  border-bottom: 1rem solid #9b9b9b;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media (max-width: 768px) {
  .newsPage__year {
    margin: 76rem auto 0;
    padding: 0 0 20rem;
    border-bottom-width: 1.5rem;
    font-size: 25rem;
    width: 90%;
  }
}

/* ------------------------------------------------------------
   NEWS POST （記事1件）
------------------------------------------------------------ */
.newsPost {
  padding-top: 20rem;
}
.newsPost a {
  color: var(--text-dark);
  text-decoration: underline;
  text-decoration-color: transparent; /* 最初は透明 */
  transition: text-decoration-color 0.3s ease;
}
.newsPost a:hover {
  text-decoration-color: currentColor;
}
.newsPost + .newsPost {
  margin-top: 50rem;
  padding-top: 30rem;
  border-top: 1rem solid #9b9b9b;
}
.newsPost__date {
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-align: right;
}
.newsPost__ttl {
  margin-top: 10rem;
  padding: 10rem 22rem;
  border: 1rem solid #9b9b9b;
  border-radius: 10rem;
  color: var(--text-dark);
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  gap: 18rem;
}
.newsPost h3 {
  font-size: 16rem;
}
.newsPost__pdf {
  flex: 0 0 auto;
  width: 19rem;
  height: auto;
}
.newsPost__body {
  margin-top: 24rem;
  color: var(--text-dark);
  font-size: 16rem;
  line-height: 1.9;
  letter-spacing: 0.03em;
}
.newsPost {
  /* ○ 付きの小見出し */
}
.newsPost__lead {
  margin-top: 24rem;
  padding-left: 1.2em;
  text-indent: -1.2em;
  font-weight: 500;
}
.newsPost__lead::before {
  content: "○ ";
}
.newsPost {
  /* 発信日・発信元（右寄せ） */
}
.newsPost__meta {
  margin-top: 10rem;
  text-align: right;
}
.newsPost__txt {
  margin-top: 24rem;
  text-align: justify;
}
.newsPost__txt--tight {
  margin-top: 0;
}
.newsPost {
  /* 認定カテゴリの一覧 */
}
.newsPost__cat li {
  padding-left: 1.2em;
  text-indent: -1.2em;
}
.newsPost__cat li::before {
  content: "－ ";
}
.newsPost {
  /* PDFサムネイル */
}
.newsPost__thumb {
  margin-top: 40rem;
}
.newsPost__thumb img {
  width: 70rem;
  height: auto;
  border: 1rem solid #dcdcdc;
}
@media (max-width: 768px) {
  .newsPost {
    padding: 30rem 5% 0;
  }
  .newsPost + .newsPost {
    margin-top: 50rem;
    padding-top: 40rem;
    border-top: none;
  }
  .newsPost__date {
    font-size: 25rem;
  }
  .newsPost__ttl {
    margin-top: 16rem;
    padding: 18rem 26rem;
    border-width: 1.5rem;
    border-radius: 15rem;
    font-size: 25rem;
  }
  .newsPost h3 {
    font-size: 25rem;
  }
  .newsPost__pdf {
    width: 30rem;
  }
  .newsPost__body {
    margin-top: 34rem;
    font-size: 25rem;
    line-height: 1.9;
  }
  .newsPost__lead {
    margin-top: 40rem;
  }
  .newsPost__meta {
    margin-top: 20rem;
  }
  .newsPost__txt {
    margin-top: 36rem;
  }
  .newsPost__thumb {
    margin-top: 40rem;
  }
  .newsPost__thumb img {
    width: 175rem;
  }
}

/* ------------------------------------------------------------
   年別アーカイブナビ（.pageNav の変種）
   矢印がテキストの左に付き、SPは1カラムになる
------------------------------------------------------------ */
.pageNav--year .pageNav__link {
  justify-content: flex-start;
  gap: 14rem;
  font-size: 16rem;
  padding: 10rem 20rem 11rem 18rem;
}
.pageNav--year .pageNav__arrow {
  margin-top: 4rem;
}
@media (max-width: 768px) {
  .pageNav--year .pageNav__list {
    max-width: 320rem;
    margin: 0 0 0 5%;
    flex-direction: column;
    gap: 24rem;
    padding: 0;
  }
  .pageNav--year .pageNav__arrow {
    width: 22rem;
  }
  .pageNav--year .pageNav__item {
    width: 100%;
  }
  .pageNav--year .pageNav__link {
    gap: 21rem;
    padding: 18rem 26rem 19rem 34rem;
    font-size: 25rem;
  }
}

/* ============================================================
   FOOTER CONTACT （フッター上部の問い合わせ導線）
   背景写真はPC/SPで別素材のため、メディアクエリで差し替える。
============================================================ */
.ftContact {
  background: url(../img/ft_tel_bg_pc.webp) no-repeat center center/cover;
  padding: 44rem 5% 46rem;
  text-align: center;
  height: 250rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ftContact__inner {
  max-width: 760rem;
  width: 760rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ftContact__lead {
  color: #fff;
  font-size: 18rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.ftContact__tel {
  display: inline-flex;
  align-items: center;
  gap: 5rem;
  color: #fff;
}
.ftContact__tel-icon {
  flex: 0 0 auto;
  width: 24rem;
  height: auto;
}
.ftContact__tel-num {
  font-family: var(--font-phone);
  font-size: 44rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
}
.ftContact__btns {
  margin-top: 18rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16rem;
}
.ftContact__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 335rem;
  padding: 11rem 24rem 12rem;
  border: 1rem solid #fff;
  color: #fff;
  font-size: 13rem;
  font-weight: 500;
  letter-spacing: 0.11em;
}
.ftContact__btn:hover {
  background-color: #fff;
  color: var(--blue);
  opacity: 1;
}
@media (min-width: 769px) {
  .ftContact__tel {
    pointer-events: none;
    cursor: default;
  }
}
@media (max-width: 768px) {
  .ftContact {
    background-image: url(../img/ft_tel_bg_sp.webp);
    padding: 70rem 5% 76rem;
    height: 300rem;
  }
  .ftContact__inner {
    flex-direction: column;
  }
  .ftContact__lead {
    font-size: 30rem;
    margin-bottom: 10rem;
  }
  .ftContact__tel {
    margin-top: 16rem;
    gap: 16rem;
  }
  .ftContact__tel-icon {
    width: 31rem;
  }
  .ftContact__tel-num {
    font-size: 50rem;
  }
  .ftContact__btns {
    margin-top: 20rem;
    flex-direction: column;
    width: 580rem;
  }
  .ftContact__btn {
    width: 100%;
    min-width: 0;
    padding: 20rem 20rem 21rem;
    font-size: 25rem;
  }
}

/* ============================================================
   FOOTER
============================================================ */
.footer__nav {
  background-image: url(../img/menu_bg_sp.svg), linear-gradient(90deg, #d50032, #eb2f47 30%, #ff5a5a);
  background-repeat: no-repeat, no-repeat;
  background-size: 100% 15rem, 100% 100%;
  background-position: 0 bottom, 0 0;
  padding-top: 40rem;
}
.footer__nav__list {
  max-width: 960rem;
  width: 95%;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-bottom: 55rem;
  position: relative;
}
.footer__nav__item {
  min-width: 140rem;
}
.footer__nav__item:nth-child(6) {
  width: 162rem;
}
.footer__nav__item > a {
  display: flex;
  align-items: center;
  gap: 7rem;
  color: #fff;
  font-size: 12rem;
  font-weight: 500;
  padding-bottom: 12rem;
  border-bottom: 1rem solid rgba(255, 255, 255, 0.7);
}
.footer__nav__item > a .ft-arrow {
  width: 12rem;
  height: auto;
  padding-top: 3rem;
}
.footer__nav__item {
  /* お問い合わせ列だけ電話番号とボタンを持つぶん幅を取る */
}
.footer__nav__item--contact {
  width: 162rem;
  position: absolute;
  top: 41rem;
  right: 0;
}
.footer__nav__sublist {
  margin-top: 10rem;
  display: flex;
  flex-direction: column;
  gap: 6rem;
}
.footer__nav__sublist a {
  color: #fff;
  font-size: 11rem;
  font-weight: 500;
}
.footer__groupCorp {
  padding: 25rem 0 0;
  text-align: center;
  border-bottom: 0.9rem solid var(--footer-blue-text);
  margin-bottom: 25rem;
}
.footer__groupCorp__inner {
  padding: 0;
  max-width: 1050rem;
  width: 95%;
  display: flex;
  justify-content: space-between;
  margin: auto;
  align-items: end;
}
.footer__groupCorp__inner__hd {
  text-align: left;
  padding-bottom: 15rem;
}
.footer__groupCorp__inner__hd-logo {
  display: block;
  width: 213rem;
}
.footer__groupCorp__inner__hd-txt {
  color: var(--footer-blue-text);
  margin-top: 10rem;
  font-size: 8rem;
  line-height: 1.3;
}
.footer__groupCorp__inner__line {
  height: 50rem;
  width: 1rem;
  margin: 0 5rem;
}
.footer__groupCorp__inner__list {
  width: 660rem;
  margin-top: -2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 15rem;
}
.footer__groupCorp__inner__item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;
}
.footer__groupCorp__inner__item p {
  color: var(--footer-blue-text);
  font-size: 10rem;
  line-height: 1.2;
  text-align: center;
}
.footer__groupCorp__inner__logo01 {
  height: auto;
  width: 40rem;
  margin-bottom: 5rem;
}
.footer__groupCorp__inner__logo02 {
  height: auto;
  width: 57rem;
  margin: 11rem 0 15rem;
}
.footer__groupCorp__inner__logo03 {
  height: auto;
  width: 43rem;
  margin: 2rem 0 17rem;
}
.footer__groupCorp__inner__logo04 {
  height: auto;
  width: 72rem;
  margin-bottom: 15rem;
}
.footer__groupCorp__inner__logo05 {
  height: auto;
  width: 70rem;
  margin: -8rem 0 13rem;
}
.footer__groupCorp__inner__logo06 {
  height: auto;
  width: 67rem;
}
.footer__btm {
  padding: 0 0 40rem;
  max-width: 1050rem;
  width: 95%;
  margin: auto;
  display: flex;
  justify-content: space-between;
  gap: 20rem;
}
.footer__btm-logo img {
  height: auto;
  width: 72rem;
}
.footer__btm-copy {
  font-size: 9rem;
  font-family: var(--font-en);
  font-weight: 400;
  line-height: 1.6;
  color: #000;
  margin-top: 16rem;
  letter-spacing: 0.1em;
}
.footer__btm-privacy {
  flex: 0 0 auto;
}
.footer__btm-privacy img {
  width: 68rem;
  height: auto;
}
@media (max-width: 960px) {
  .footer__nav__item {
    min-width: 135rem;
  }
}
@media (max-width: 768px) {
  .footer {
    padding-top: 0;
  }
  .footer__nav {
    background-size: 100% 16rem, 100% 100%;
    padding-top: 90rem;
  }
  .footer__nav__list {
    width: 490rem;
    max-width: none;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0 0 40rem 7%;
  }
  .footer__nav__item {
    padding-bottom: 30rem;
    margin-bottom: 30rem;
    min-width: 100%;
  }
  .footer__nav__item > a {
    gap: 20rem;
    font-size: 30rem;
    padding-bottom: 30rem;
    border-bottom: 1rem solid rgb(255, 255, 255);
  }
  .footer__nav__item > a .ft-arrow {
    width: 24rem;
    height: auto;
    padding-top: 6rem;
  }
  .footer__nav__item:nth-child(4) li:nth-child(n+3) {
    padding-left: 25rem;
  }
  .footer__nav__item--contact {
    width: 100%;
    position: static;
  }
  .footer__nav__sublist {
    margin-top: 40rem;
    padding-left: 48rem;
    gap: 34rem;
  }
  .footer__nav__sublist a {
    font-size: 25rem;
  }
  .footer__groupCorp {
    padding: 60rem 7%;
    margin-bottom: 40rem;
  }
  .footer__groupCorp__inner {
    flex-direction: column;
    width: 100%;
  }
  .footer__groupCorp__inner__hd {
    text-align: center;
    width: 100%;
  }
  .footer__groupCorp__inner__hd-logo {
    width: 334rem;
    margin: auto;
  }
  .footer__groupCorp__inner__hd-txt {
    font-size: 24rem;
  }
  .footer__groupCorp__inner__line {
    height: 1rem;
    width: 100%;
    margin: 0 auto;
    border-bottom: 0.9rem solid var(--footer-blue-text);
  }
  .footer__groupCorp__inner__list {
    width: 100%;
    margin-top: 20rem;
    padding-bottom: 30rem;
  }
  .footer__groupCorp__inner__item {
    width: 33%;
  }
  .footer__groupCorp__inner__item a {
    gap: 24rem;
  }
  .footer__groupCorp__inner__item p {
    font-size: 20rem;
  }
  .footer__groupCorp__inner__logo01 {
    height: auto;
    width: 118rem;
    margin: 18rem 0 0;
  }
  .footer__groupCorp__inner__logo02 {
    height: auto;
    width: 166rem;
    margin: 113rem 0 0;
  }
  .footer__groupCorp__inner__logo03 {
    height: auto;
    width: 140rem;
    margin: 74rem 0 0;
  }
  .footer__groupCorp__inner__logo04 {
    height: auto;
    width: 158rem;
    margin: 99rem 0 0;
  }
  .footer__groupCorp__inner__logo05 {
    height: auto;
    width: 176rem;
    margin: 77rem 0 0;
  }
  .footer__groupCorp__inner__logo06 {
    height: auto;
    width: 154rem;
    margin: 78rem 0 0;
  }
  .footer__btm {
    padding: 0 58rem 5%;
    width: 100%;
  }
  .footer__btm-logo img {
    height: auto;
    width: 144rem;
  }
  .footer__btm-copy {
    font-size: 17rem;
    margin-top: 24rem;
  }
  .footer__btm-privacy img {
    width: 105rem;
  }
}

/* ============================================================
   FOOTER TEL （フッターナビ「お問い合わせ」列の電話番号）
   SPナビの .spTel と同じ並びで、サイズだけフッター用。
============================================================ */
.ftTel {
  margin-top: 8rem;
}
.ftTel__item {
  display: flex;
  align-items: center;
  gap: 3rem;
  margin-bottom: 5rem;
  color: #fff;
}
.ftTel__item:nth-child(1) .ftTel__label {
  margin-right: 3rem;
}
.ftTel__item:nth-child(2) .ftTel__label {
  margin-right: 9rem;
}
.ftTel__item:nth-child(2) .ftTel__num {
  letter-spacing: 0.01em;
}
.ftTel__label {
  flex: 0 0 auto;
  padding: 2rem 5rem 3rem;
  background: #fff;
  color: #d50032;
  font-size: 9rem;
  font-weight: 700;
  white-space: nowrap;
}
.ftTel__icon {
  flex: 0 0 auto;
  width: 13rem;
  height: auto;
}
.ftTel__icon--free {
  width: 24rem;
}
.ftTel__num {
  font-family: var(--font-phone);
  font-size: 14rem;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.ftTel__btn {
  display: block;
  margin-top: 14rem;
  padding: 9rem 10rem 10rem;
  border: 1rem solid #fff;
  border-radius: 50rem;
  color: #fff;
  font-size: 11rem;
  font-weight: 500;
  text-align: center;
  white-space: nowrap;
}
@media (min-width: 769px) {
  .ftTel__item {
    pointer-events: none;
    cursor: default;
  }
}
@media (max-width: 768px) {
  .ftTel {
    margin-top: 65rem;
    padding: 28rem 0 28rem 55rem;
    width: 510rem;
    border: #fff 1rem solid;
  }
  .ftTel__item {
    gap: 14rem;
    margin-bottom: 22rem;
  }
  .ftTel__item:nth-child(2) {
    margin-bottom: 0;
  }
  .ftTel__label {
    padding: 5rem 10rem 6rem;
    font-size: 20rem;
  }
  .ftTel__icon {
    width: 22rem;
  }
  .ftTel__icon--free {
    width: 38rem;
  }
  .ftTel__num {
    font-size: 34rem;
  }
  .ftTel__btn {
    margin-top: 34rem;
    padding: 20rem 10rem 21rem;
    font-size: 22rem;
  }
}/*# sourceMappingURL=style.css.map */