@charset "UTF-8";
/* ===========================================
 * Variable
 * ===========================================
*/
/* -------------------------------------------
 * breakpoint
*/
/* -------------------------------------------
 * max-width
*/
/* -------------------------------------------
 * color
*/
/* -------------------------------------------
 * svg
*/
/* ===========================================
 * Utility
 * ===========================================
*/
/* $break-point以下の時に@contentを適用 */
/* $break-point以上の時に@contentを適用 */
/* $break-point-min以上、$break-point-max以下の時に@contentを適用 */
/* -------------------------------------------
 * font-size
*/
/* $base-font-sizeを基準に$sizeを%で指定 */
/* $base-font-sizeを基準に$sizeをremで指定 */
/* $base-font-sizeを基準に$sizeをpxで指定 */
/* $base-font-sizeを基準に$sizeをemで指定 */
/* $base-font-sizeを基準に$sizeをvwで指定 */
/* $base-font-sizeを基準に$sizeをvhで指定 */
/* ===========================================
 * debug
 * ===========================================
*/
.show-for-logged-in, .hide-for-logged-in {
  display: none; /* 最初はどちらも非表示 */
}

/* ===========================================
 * fonts
 * ===========================================
*/
/* --------------------------------------------------
   フォント変数の定義（管理しやすくするため）
-------------------------------------------------- */
:root {
  /* メイン日本語: 源ノ角ゴシック (Noto Sans JP) + 英数字はArial優先 */
  --font-main: "Arial", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  /* 電話番号等: ヒラギノ角ゴ (Mac用) / Windowsは游ゴシック or メイリオ */
  --font-number: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  /* コピーライト: M+ 2p light */
  --font-copyright: "M PLUS 2", sans-serif;
}

/* --------------------------------------------------
   ベーススタイルの適用
   -------------------------------------------------- */
/* サイト全体（基本は源ノ角ゴシック + Arial） */
body {
  font-family: var(--font-main);
  font-weight: 400; /* Regular */
  -webkit-font-smoothing: antialiased; /* 文字を少し細く綺麗に見せる(Mac) */
}

/* 太字の指定（Bold） */
b, strong, .u-bold {
  font-weight: 700;
}

/* --------------------------------------------------
   部分的な適用
   -------------------------------------------------- */
/* フッターのコピーライト（M+ 2p light） */
.copyright {
  font-family: var(--font-copyright);
  font-weight: 300; /* Light */
}

/* ===========================================
 * Language switch
 * ===========================================
*/
/* デフォルト（bodyにクラスがない時）は日本語を表示、英語を非表示 */
.js-lang-switch[data-lang=en] {
  display: none;
}

/* 英語クラスがついた時 */
body.is-english .js-lang-switch[data-lang=jp] {
  display: none;
}

body.is-english .js-lang-switch[data-lang=en] {
  display: block;
}

/* 言語切り替えボタンの基本スタイル */
.c-lang-switch {
  display: flex;
  align-items: center;
  margin-left: 20px; /* SWELLヘッダー内の余白調整 */
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

.c-lang-switch__btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 5px;
  color: #999; /* 非アクティブ時の色 */
  transition: color 0.3s;
}

.c-lang-switch__sep {
  color: #999;
  margin: 0 5px;
}

/* --------------------------------------
   アクティブな言語のスタイル切り替え
-------------------------------------- */
/* デフォルト（日本語）の状態： JPボタンを濃く */
body:not(.is-english) .c-lang-switch__btn[data-lang=jp] {
  color: #333; /* アクティブ色（黒など） */
  font-weight: bold;
  pointer-events: none; /* 選択中はクリック不可にする */
}

/* 英語モード（is-englishあり）の状態： ENボタンを濃く */
body.is-english .c-lang-switch__btn[data-lang=en] {
  color: #333; /* アクティブ色 */
  font-weight: bold;
  pointer-events: none;
}

/* ===========================================
 * common
 * ===========================================
*/
/* default font size */
.page .l-container {
  padding-left: 0;
  padding-right: 0;
}
.page p {
  font-size: clamp(16px, 1.6666666667vw, 18px);
}

.__p_vertical {
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 3;
  letter-spacing: 0.25rem;
}

/* 背景 */
.__bg img {
  width: 100%;
}

/* パンクズリスト */
.p-breadcrumb {
  display: none !important;
}

/* ===========================================
 * トップページ以外のFV装飾
 * ===========================================
*/
.page:not(.top),
.blog.news,
.post {
  /* -------------------------------------------
  * First View
  */
}
.page:not(.top) .l-topTitleArea,
.blog.news .l-topTitleArea,
.post .l-topTitleArea {
  height: 100vh;
  height: 100dvh;
  max-height: 1080px;
  min-height: unset;
}
.page:not(.top) .l-topTitleArea .l-topTitleArea__body,
.blog.news .l-topTitleArea .l-topTitleArea__body,
.post .l-topTitleArea .l-topTitleArea__body {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  position: relative;
  padding-left: 5vw;
  z-index: 1;
}
.page:not(.top) .l-topTitleArea .l-topTitleArea__body .c-pageTitle,
.blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle,
.post .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-style: normal;
  color: #FFF;
  text-shadow: 7px 7px 7px rgba(0, 0, 0, 0.5);
  font-size: clamp(6.25rem, 5.492rem + 3.24vw, 9.375rem);
  position: relative;
}
.page:not(.top) .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after,
.blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after,
.post .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "企業情報";
  visibility: visible;
  height: auto;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.875rem, 0.723rem + 0.65vw, 1.5rem);
}
body.is-english .page:not(.top) .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after,
body.is-english .blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after,
body.is-english .post .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  display: none !important;
}
@media screen and (max-width: 767px) {
  .page:not(.top) .l-topTitleArea .l-topTitleArea__body .c-pageTitle,
  .blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle,
  .post .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
    font-size: 54px;
  }
  .page:not(.top) .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after,
  .blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after,
  .post .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
    font-size: 14px;
  }
}
.page:not(.top) .l-topTitleArea .p-mainVisual__scroll,
.blog.news .l-topTitleArea .p-mainVisual__scroll,
.post .l-topTitleArea .p-mainVisual__scroll {
  bottom: 16px;
  color: #fff;
  left: 50%;
  opacity: 0.75;
  position: absolute;
  text-align: center;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  transition: o pacity 0.25s;
  z-index: 9;
}
.page:not(.top) .l-topTitleArea .p-mainVisual__scroll:hover,
.blog.news .l-topTitleArea .p-mainVisual__scroll:hover,
.post .l-topTitleArea .p-mainVisual__scroll:hover {
  opacity: 1;
}
.page:not(.top) .l-topTitleArea .-height-full > .p-mainVisual__scroll,
.blog.news .l-topTitleArea .-height-full > .p-mainVisual__scroll,
.post .l-topTitleArea .-height-full > .p-mainVisual__scroll {
  bottom: 24px;
}
.page:not(.top) .l-topTitleArea .p-mainVisual__scrollArrow,
.blog.news .l-topTitleArea .p-mainVisual__scrollArrow,
.post .l-topTitleArea .p-mainVisual__scrollArrow {
  -webkit-animation: FloatVertical 3s ease-in-out infinite alternate;
  animation: FloatVertical 3s ease-in-out infinite alternate;
  display: block;
  height: 20px;
  margin: 0 auto;
  width: 20px;
}
.page:not(.top) .l-topTitleArea .p-mainVisual__scrollLabel,
.blog.news .l-topTitleArea .p-mainVisual__scrollLabel,
.post .l-topTitleArea .p-mainVisual__scrollLabel {
  display: block;
  font-size: 12px;
  letter-spacing: var(--swl-letter_spacing, 1px);
  line-height: 1;
  padding-top: 4px;
}

/* ===========================================
 * Page top button
 * ===========================================
*/
.p-fixBtnWrap #pagetop.c-fixBtn {
  border: none;
  border-radius: 10px;
  box-shadow: none;
  opacity: 1;
}
.p-fixBtnWrap #pagetop.c-fixBtn i.c-fixBtn__icon::before {
  content: "";
  -webkit-mask-image: url("../img/icon-pagetop.svg");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-image: url("../img/icon-pagetop.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #192872;
  width: 20px;
  height: 20px;
  display: block;
  transition: background-color 0.3s;
}
.p-fixBtnWrap #pagetop.c-fixBtn:hover i.c-fixBtn__icon::before {
  background-color: #FFF;
}

/* ===========================================
 * パスワード保護
 * ===========================================
*/
body form.post-password-form {
  padding: 5rem 4% 1rem;
}

/* ===========================================
 * Header Customization
 * ===========================================
*/
/* -------------------------------------------
 * ヘッダー全体 (透明・絶対配置)
 * -------------------------------------------
*/
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0 !important;
  background-color: transparent !important;
  box-shadow: none !important;
  pointer-events: none;
}
.l-header__inner {
  height: auto !important;
  padding-top: 32px;
  padding-left: var(--swl-pad_container, 0) !important;
  pointer-events: none;
}

/* -------------------------------------------
 * クリック要素の有効化
 * -------------------------------------------
*/
/* ロゴ・ハンバーガー・言語ボタン・サイドナビなど、操作が必要な要素だけ pointer-events を復活させる */
.c-iconBtn,
.l-header__logo,
.l-header__spBtn,
.c-lang-switch,
.c-lang-switch button,
.p-side-nav,
.p-side-nav a {
  pointer-events: auto;
  cursor: pointer;
}

/* -------------------------------------------
 * 言語切り替えボタン (右上固定)
 * -------------------------------------------
*/
.c-lang-switch {
  position: fixed;
  top: 30px;
  right: 48px;
  z-index: 9999;
  /* 背景削除 */
  background: none;
  padding: 0;
  display: flex;
  gap: 4px;
  transition: top 0.3s;
}
.c-lang-switch__btn {
  appearance: none;
  border: none;
  cursor: pointer;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  padding: 6px 12px;
  border-radius: 8px;
  line-height: 1;
  transition: all 0.3s;
  /* デフォルト（非アクティブ）: 半透明グレー背景・白文字 */
  background-color: #7c7a77;
  color: #fff;
}
.c-lang-switch__btn:hover {
  opacity: 0.8;
}
#body_wrap.admin-bar .c-lang-switch {
  top: 62px;
}

/* アクティブな言語のスタイル（_common.scss等での制御をここで上書き想定） */
/* 日本語モード時: JPボタンを白く */
body:not(.is-english) .c-lang-switch__btn[data-lang=jp] {
  background-color: #fff;
  color: #231d1c;
  pointer-events: none;
}

/* 英語モード時: ENボタンを白く */
body.is-english .c-lang-switch__btn[data-lang=en] {
  background-color: #fff;
  color: #231d1c;
  pointer-events: none;
}

/* ===========================================
 * Mobile Language Switcher (.c-lang-switch.__sp)
 * ===========================================
*/
.c-widget__title.__before_switch {
  margin-top: 3rem;
}

.c-lang-switch.__sp {
  /* ▼ 配置の調整 */
  position: static !important; /* 固定配置を解除 */
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 30px auto 0; /* 上に余白を取り、左右中央寄せ */
  padding: 0;
  gap: 0; /* ボタン同士をくっつける */
  z-index: auto;
  background: none;
  /* ▼ 外枠のデザイン（カプセル型） */
  border: 1px solid #fff; /* 白い枠線 */
  border-radius: 50px; /* 角を完全に丸く */
  overflow: hidden; /* 角丸からはみ出ないように */
  width: 80%;
  /* ▼ ボタン個別のスタイル */
}
.c-lang-switch.__sp .c-lang-switch__btn {
  /* 既存スタイルのリセット */
  border: none;
  border-radius: 0;
  background-color: #ccc;
  margin: 0;
  /* サイズと文字設定 */
  width: 100%; /* 指で押しやすい十分な幅 */
  padding: 1rem 0; /* 上下のタップ領域確保 */
  font-family: "Noto Sans", sans-serif; /* 読みやすいフォント */
  font-size: 16px; /* 読みやすいサイズ */
  font-weight: 700;
  line-height: 1;
  text-align: center;
  color: #999;
  cursor: pointer;
  transition: all 0.3s ease;
  pointer-events: auto;
}
.c-lang-switch.__sp .c-lang-switch__btn:hover {
  opacity: 1;
  background-color: rgba(255, 255, 255, 0.1); /* ホバー時にうっすら白く */
}

/* ===========================================
 * Active State (SP Menu Version)
 * ===========================================
*/
/* 日本語モード時: JPボタンをアクティブ化 */
body:not(.is-english) .c-lang-switch.__sp .c-lang-switch__btn[data-lang=jp] {
  background-color: #1d4293;
  color: #FFF; /* サイトのメインカラー（濃紺）に合わせてください */
  pointer-events: none; /* 選択中は押せないように */
}

/* 英語モード時: ENボタンをアクティブ化 */
body.is-english .c-lang-switch.__sp .c-lang-switch__btn[data-lang=en] {
  background-color: #1d4293;
  color: #FFF;
  pointer-events: none;
}

/* ===========================================
 * SP Menu Button Background Overlay
 * ===========================================
*/
@media screen and (max-width: 960px) {
  .l-header__menuBtn {
    position: fixed;
    top: 0;
    transform: translateY(32px);
    transition: transform 0.4s ease;
  }
  .l-header__menuBtn::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #192872;
    opacity: 0.5;
    z-index: -1;
  }
  .l-header__menuBtn.is-scrolled {
    transform: translateY(0);
  }
}

/* ===========================================
 * FV Decoration (SWELL Slider Overlay)
 * ===========================================
*/
#main_visual,
#top_title_area,
.p-ms-fv {
  position: relative;
}
#main_visual::after,
#top_title_area::after,
.p-ms-fv::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 24px;
  width: 40%;
  height: 100%;
  /* 元の画像をマスクとして使用 */
  -webkit-mask-image: url(../img/top-fv-kohki.svg);
  mask-image: url(../img/top-fv-kohki.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center -3%;
  mask-position: center -3%;
  /* ここで色を指定 */
  background-color: #231d1c;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 5;
}
#body_wrap.about-us #main_visual::after, #body_wrap.business #main_visual::after, #body_wrap.contact #main_visual::after, #body_wrap.post #main_visual::after,
#body_wrap.about-us #top_title_area::after,
#body_wrap.business #top_title_area::after,
#body_wrap.contact #top_title_area::after,
#body_wrap.post #top_title_area::after,
#body_wrap.about-us .p-ms-fv::after,
#body_wrap.business .p-ms-fv::after,
#body_wrap.contact .p-ms-fv::after,
#body_wrap.post .p-ms-fv::after {
  background-color: #192872;
}
#body_wrap.tomas #main_visual::after,
#body_wrap.tomas #top_title_area::after,
#body_wrap.tomas .p-ms-fv::after {
  mix-blend-mode: exclusion;
}
@media screen and (max-width: 960px) {
  #main_visual::after,
  #top_title_area::after,
  .p-ms-fv::after {
    width: 80%;
    -webkit-mask-position: center -1%;
    mask-position: center -1%;
    left: -1%;
  }
}

/* ===========================================
 * SP Menu
 * ===========================================
*/
#sp_menu .p-spMenu__body .c-widget__title.-spmenu {
  font-family: --ver(font-main);
  letter-spacing: 0.05em;
  font-size: 18px;
}
#sp_menu .p-spMenu__body .p-spMenu__nav .c-listMenu .menu-item a {
  font-family: --ver(font-main);
  letter-spacing: 0.05em;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
#sp_menu .p-spMenu__body .p-spMenu__nav .c-listMenu .menu-item a .__ja {
  font-family: "Noto Sans", sans-serif;
  font-weight: 400;
  font-size: 12px;
}
body.is-english #sp_menu .p-spMenu__body .p-spMenu__nav .c-listMenu .menu-item a .__ja {
  display: none;
}

/* -------------------------------------------
 * Side Navigation (PC Only / Right Side Fixed)
 * -------------------------------------------
*/
/* 既存のSWELL標準PCナビゲーションを消す（自作サイドバーを使うため） */
@media screen and (min-width: 767px) {
  .u-pc-none {
    display: none !important;
  }
}

/* 共通設定 (位置・高さ) */
.p-side-nav,
.p-side-nav-bg {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  height: 100svh;
  max-height: 1080px;
  width: 360px;
  transition: opacity 0.3s;
  /* 管理バーがある時の位置調整 */
}
#body_wrap.admin-bar .p-side-nav,
#body_wrap.admin-bar .p-side-nav-bg {
  top: 32px;
}
@media screen and (max-width: 1440px) {
  .p-side-nav,
  .p-side-nav-bg {
    width: 280px;
  }
}
@media screen and (max-width: 767px) {
  .p-side-nav,
  .p-side-nav-bg {
    display: none !important;
  }
}

/* 1. 背景レイヤー (乗算担当) */
.p-side-nav-bg {
  z-index: 1000; /* 文字より下、メインビジュアルより上 */
  /* グラデーション: 左(#1D4293) -> 右(#FFFFFF) */
  background: linear-gradient(to right, rgb(29, 66, 147) 0%, rgb(255, 255, 255) 100%);
  /* 乗算 & 不透明度60% */
  mix-blend-mode: multiply;
  opacity: 0.6;
  pointer-events: none;
  /* グラデーションの広がり調整 (旧::beforeの設定を再現) */
  /* width:280px に対して右基準で大きく広げる */
  width: 360px; /* 280px * 150% */
  right: 0; /* 画面右端まで */
  /* JSで固定解除された時のスタイル維持 */
}
.p-side-nav-bg.is-stopped {
  height: 100vh;
  height: 100svh;
  max-height: 1080px;
}
@media screen and (max-width: 1440px) {
  .p-side-nav-bg {
    width: 280px;
  }
}
@media screen and (max-width: 767px) {
  .p-side-nav-bg {
    display: none !important;
  }
}

/* 2. コンテンツレイヤー (文字担当) */
.p-side-nav {
  z-index: 1001; /* 背景より上 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 0;
  pointer-events: none; /* エリア自体はクリック透過 */
  /* リンクなどはクリック可能に */
  /* メニューリスト */
  /* Recruitボタン */
}
.p-side-nav.is-stopped {
  height: 100vh;
  height: 100svh;
  max-height: 1080px;
}
.p-side-nav a {
  pointer-events: auto;
}
.p-side-nav__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.p-side-nav__list {
  width: 100%;
  list-style: none;
  margin-bottom: 30px;
  padding-left: 15px;
  text-align: left;
}
.p-side-nav__list li {
  margin-bottom: 25px;
}
.p-side-nav__list li a {
  text-decoration: none;
  color: #fff;
  display: block;
  line-height: 1.2;
  transition: opacity 0.3s;
  /* 英語部分 */
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 2rem;
  /* 日本語部分 */
}
.p-side-nav__list li a:hover {
  opacity: 0.7;
}
.p-side-nav__list li a .__ja {
  display: block;
  font-family: var(--font-main);
  font-weight: 400;
  font-size: 1rem;
  margin-top: 3px;
}
.is-english .p-side-nav__list li a .__ja {
  display: none;
}
.p-side-nav__recruit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background-color: #192872;
  color: #fff;
  padding: 10px 15px;
  text-decoration: none;
  transition: opacity 0.3s;
  font-weight: 700;
}
.p-side-nav__recruit:hover {
  opacity: 0.9;
}
.p-side-nav__recruit .en {
  font-family: "Arial", sans-serif;
  font-size: 2rem;
}
.p-side-nav__recruit .jp {
  font-family: var(--font-main);
  font-size: 1rem;
  font-weight: 400;
}
.is-english .p-side-nav__recruit .jp {
  display: none;
}
#body_wrap.top .p-side-nav__recruit, #body_wrap.news .p-side-nav__recruit, #body_wrap.contact .p-side-nav__recruit, #body_wrap.privacy-policy .p-side-nav__recruit, #body_wrap.information-security-policy .p-side-nav__recruit, #body_wrap.post .p-side-nav__recruit, #body_wrap.recruit .p-side-nav__recruit {
  background-color: #fff;
  color: #192872;
}

/* ===========================================
* フッター
* ===========================================
*/
/* ===========================================
* Footer Contact Section
* ===========================================
*/
.p-footer-contact {
  position: relative;
  padding: 100px 64px;
  background-image: url("../img/bg-contact.webp");
  background-size: cover;
  background-position: center center;
  color: #fff;
  overflow: hidden;
  /* コンテンツエリア（ボタン配置） */
}
@media screen and (max-width: 960px) {
  .p-footer-contact {
    padding: 64px 4%;
  }
}
.p-footer-contact__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 100px;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-footer-contact__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-footer-contact__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  color: #fff;
  margin-right: 20px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-footer-contact__title {
    font-size: 4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-footer-contact__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-footer-contact__sub {
    font-size: 12px;
  }
}
.p-footer-contact__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  margin-bottom: 40px;
}

/* -------------------------------------------
* 電話番号ボックス
* -------------------------------------------
*/
.p-contact-box {
  width: 100%;
  max-width: 580px;
  height: 240px;
  border: 2px solid #fff;
  border-radius: 10px;
  padding: 48px 30px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  align-items: censtar;
}
@media screen and (max-width: 767px) {
  .p-contact-box {
    padding: 20px;
  }
}
.p-contact-box__label {
  margin-bottom: 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}
.p-contact-box__label .__tel_icon {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin: 0;
  background-image: url(../img/icon-tel-w.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.p-contact-box__label__ja, .p-contact-box__label__en {
  font-size: 26px;
}
@media screen and (max-width: 960px) {
  .p-contact-box__label__ja, .p-contact-box__label__en {
    font-size: 22px;
  }
}
.p-contact-box__tel {
  font-family: var(--font-number);
  font-weight: 500;
  font-feature-settings: "palt";
  font-size: 3.2rem;
  color: #fff;
  text-decoration: none;
  line-height: 1;
  pointer-events: none;
}
@media screen and (max-width: 960px) {
  .p-contact-box__tel {
    pointer-events: auto;
    font-size: 2.8rem;
  }
  .p-contact-box__tel__en {
    font-size: 2.4rem;
  }
}

/* -------------------------------------------
* お問い合わせフォームボタン
* -------------------------------------------
*/
.p-contact-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 580px;
  height: 240px;
  border: 2px solid #fff;
  border-radius: 10px;
  padding: 40px 30px;
  text-align: center;
  text-decoration: none;
  color: #fff;
  transition: background-color 0.3s, opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .p-contact-btn {
    padding: 20px;
  }
}
.p-contact-btn:hover {
  background-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.p-contact-btn__icon {
  display: block;
  width: 50px;
  height: 50px;
  margin-bottom: 24px;
  background-image: url(../img/icon-contact-w.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.p-contact-btn__text {
  font-size: 1.6rem;
  font-weight: 500;
}

/* ===========================================
 * Footer Main Area
 * ===========================================
*/
.l-footer__main {
  padding: 240px 0 80px;
  color: #231d1c;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 960px) {
  .l-footer__main {
    padding: 30vw 4% 64px;
  }
}
.l-footer__main .__bg-text {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(8%, -12%);
  width: 50%;
  height: auto;
  line-height: 1;
  pointer-events: none;
  z-index: -1;
}
@media screen and (max-width: 960px) {
  .l-footer__main .__bg-text {
    width: 80%;
    transform: translate(0, -12%);
  }
}

.p-footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 80%;
  max-width: 1200px;
  margin: 0 auto;
  /* -------------------------------------------
  * Left Column: Company Info
  * -------------------------------------------
  */
  /* -------------------------------------------
  * Right Column: Navigation
  * -------------------------------------------
  */
}
@media screen and (max-width: 960px) {
  .p-footer-content {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-footer-content {
    flex-direction: column;
  }
}
.p-footer-content__left {
  width: 55%;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-footer-content__left {
    width: 100%;
    margin-bottom: 0;
  }
}
.p-footer-content .p-footer-company {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 80px;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 960px) {
  .p-footer-content .p-footer-company {
    font-size: 24px;
  }
}
@media screen and (max-width: 767px) {
  .p-footer-content .p-footer-company {
    margin-bottom: 40px;
  }
}
.p-footer-content .p-footer-address {
  font-size: 1.4rem;
  line-height: 1.8;
  margin-bottom: 60px;
  position: relative;
  z-index: 1;
}
.p-footer-content .p-footer-address dl {
  margin-bottom: 48px;
}
@media screen and (max-width: 767px) {
  .p-footer-content .p-footer-address dl {
    margin-bottom: 32px;
  }
}
.p-footer-content .p-footer-address dt {
  margin-bottom: 5px;
  font-weight: 500;
}
.p-footer-content .p-footer-address dd {
  font-weight: 400;
}
@media screen and (max-width: 960px) {
  .p-footer-content .p-footer-address {
    font-size: 18px;
  }
}
.p-footer-content .p-footer-logo {
  margin-bottom: 60px;
  width: 200px;
}
.p-footer-content .p-footer-logo img {
  width: 100%;
  height: auto;
}
.p-footer-content .p-footer-copyright {
  font-size: 1.2rem;
  color: #999;
}
.p-footer-content__right {
  width: 35%;
  padding-left: 40px;
  border-left: 1px solid #231d1c;
}
@media screen and (max-width: 960px) {
  .p-footer-content__right {
    width: 45%;
  }
}
@media screen and (max-width: 767px) {
  .p-footer-content__right {
    width: 100%;
    padding-left: 0;
    border-left: none;
    border-top: 1px solid #231d1c;
    padding-top: 40px;
  }
}

/* ナビゲーションメニュー */
.p-footer-nav {
  list-style: none;
  margin-bottom: 40px;
}
.p-footer-nav li {
  margin-bottom: 20px;
}
.p-footer-nav li a {
  text-decoration: none;
  color: #231d1c;
  display: block;
  line-height: 1.2;
  transition: opacity 0.3s;
  /* 英語部分 */
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 2rem;
  /* 日本語部分 */
}
.p-footer-nav li a:hover {
  opacity: 0.7;
}
.p-footer-nav li a .__ja {
  display: block;
  font-family: var(--font-main);
  font-weight: 400;
  font-size: 1rem;
  margin-top: 3px;
}
.is-english .p-footer-nav li a .__ja {
  display: none;
}
@media screen and (max-width: 960px) {
  .p-footer-nav li a {
    font-size: 1.4rem;
  }
  .p-footer-nav li a .__ja {
    font-size: 12px;
  }
}

/* Recruitボタン */
.p-footer-recruit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background-color: #192872;
  color: #fff !important;
  padding: 15px 20px;
  text-decoration: none;
  margin-bottom: 40px;
  transition: opacity 0.3s;
  border-left: 5px solid #192872;
  transition: background-color 0.3s, color 0.3s;
}
.p-footer-recruit:hover {
  background-color: inherit;
  color: #192872 !important;
}
.p-footer-recruit__en {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 2rem;
}
.p-footer-recruit__jp {
  font-family: var(--font-main);
  font-size: 1rem;
  margin-left: 10px;
  margin-right: auto;
  transform: translateY(4px);
}
.is-english .p-footer-recruit__jp {
  display: none;
}
@media screen and (max-width: 960px) {
  .p-footer-recruit__en {
    font-size: 1.4rem;
  }
  .p-footer-recruit__jp {
    font-size: 12px;
  }
}

/* ポリシーリンク */
.p-footer-policy {
  list-style: none;
}
.p-footer-policy li {
  margin-bottom: 15px;
}
.p-footer-policy li:last-child {
  margin-bottom: 0;
}
.p-footer-policy li a {
  text-decoration: none;
  color: #231d1c;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.2;
}
.p-footer-policy li a small {
  display: block;
  font-family: var(--font-main);
  font-weight: 400;
  font-size: 1rem;
  margin-top: 3px;
}
.is-english .p-footer-policy li a small {
  display: none;
}
@media screen and (max-width: 960px) {
  .p-footer-policy li a {
    font-size: 1.4rem;
  }
  .p-footer-policy li a small {
    font-size: 12px;
  }
}

/* ===========================================
 * Footer Logo
 * ===========================================
*/
.l-footer__inner .l-container .p-footer-logo {
  width: 360px;
  height: auto;
  margin: 0 auto 160px;
}
@media screen and (max-width: 767px) {
  .l-footer__inner .l-container .p-footer-logo {
    width: 240px;
    margin-bottom: 80px;
  }
}

/* ===========================================
 * トップページ
 * ===========================================
*/
/* ===========================================
 * About us
 * ===========================================
*/
.p-top-about {
  padding: 100px 64px;
  color: #231d1c;
  /* -------------------------------------------
  * Head Section (Title + Subtitle)
  */
  /* -------------------------------------------
  * Body Section (Text + Button)
  */
  /* -------------------------------------------
  * Button (Custom Design)
  */
}
@media screen and (max-width: 960px) {
  .p-top-about {
    padding: 0 4% 64px;
  }
}
.p-top-about__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 40px;
  border-bottom: 1px solid transparent;
}
@media screen and (max-width: 767px) {
  .p-top-about__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-top-about__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-top-about__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-top-about__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-top-about__sub {
    font-size: 12px;
  }
}
.p-top-about__body {
  width: 72%;
  max-width: 1280px;
  padding-left: 5vw;
}
@media screen and (max-width: 960px) {
  .p-top-about__body {
    width: 100%;
  }
}
.p-top-about__text {
  font-family: var(--font-main);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  margin-bottom: 50px;
  width: 100%;
  word-wrap: break-word;
}
@media screen and (max-width: 767px) {
  .p-top-about__text {
    line-height: 2;
    margin-bottom: 40px;
    font-size: 14px;
  }
}
.p-top-about__btn-area {
  text-align: left;
}

.c-btn-company {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #192872;
  color: #fff !important;
  font-size: 25px;
  font-weight: 400;
  padding: 10px 48px;
  text-decoration: none;
  transition: opacity 0.3s, background-color 0.3s;
  border: 1px solid #192872;
}
.c-btn-company:hover {
  opacity: 0.8;
  background-color: #fff;
  color: #192872 !important;
}
.c-btn-company__arrow {
  margin-left: 15px;
  font-family: Arial, sans-serif;
  font-weight: 400;
  transform: translateY(-1px);
}
@media screen and (max-width: 960px) {
  .c-btn-company {
    padding: 1em 3em;
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  .c-btn-company {
    width: 100%;
  }
}

/* -------------------------------------------
 * Ticker Slider (Infinite Scroll)
 * -------------------------------------------
*/
.p-top-slider {
  width: 100%;
  overflow: hidden;
  margin: 100px0;
  padding: 16px 0;
  background-color: #7c7a77;
}
.p-top-slider__item {
  width: auto;
  height: auto;
}
.p-top-slider__item img {
  height: 250px;
  width: auto;
  object-fit: contain;
  vertical-align: bottom;
}
@media screen and (max-width: 767px) {
  .p-top-slider__item img {
    height: 150px;
  }
}

/* Swiperの設定上書き（リニアアニメーション用） */
.js-ticker-slider .swiper-wrapper {
  transition-timing-function: linear !important;
}

/* -------------------------------------------
 * Business Section
 * -------------------------------------------
*/
.p-top-business {
  padding: 100px 64px;
  width: 72%;
  max-width: 1280px;
  /* グループ分け (Main / Additional) */
}
@media screen and (max-width: 960px) {
  .p-top-business {
    padding: 64px 4%;
  }
}
@media screen and (max-width: 767px) {
  .p-top-business {
    width: 100%;
  }
}
.p-top-business__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .p-top-business__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-top-business__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  color: #192872;
  margin-right: 20px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-top-business__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-top-business__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  transform: translateY(-5px);
}
@media screen and (max-width: 767px) {
  .p-top-business__sub {
    font-size: 12px;
  }
}
.p-top-business .p-biz-group {
  display: flex;
  margin-bottom: 60px;
  padding-left: 5vw;
  position: relative;
  /* 左側の縦書きラベルエリア */
  /* 右側の画像リストエリア */
}
.p-top-business .p-biz-group::after {
  content: "";
  display: block;
  clear: both;
  height: 2px;
  width: 25%;
  background-color: #192872;
  position: absolute;
  bottom: 0;
  left: 8%;
}
.p-top-business .p-biz-group:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .p-top-business .p-biz-group {
    margin-bottom: 40px;
  }
  .p-top-business .p-biz-group::after {
    left: 2%;
  }
}
.p-top-business .p-biz-group__label {
  width: 60px;
  position: relative;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}
.p-top-business .p-biz-group__label .u-vertical {
  writing-mode: vertical-rl;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  color: #192872;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-top-business .p-biz-group__label {
    width: 2rem;
    transform: translateX(-100%);
  }
}
.p-top-business .p-biz-group__line {
  height: 100%;
  width: 2px;
  background-color: #192872;
}
.p-top-business .p-biz-group__line.__top {
  height: 20%;
}
.p-top-business .p-biz-group__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding-bottom: 60px;
}

/* 個別アイテムカード */
.p-biz-item {
  position: relative;
  display: block;
  width: 100%;
  text-decoration: none;
  color: #fff;
  /* ホバーエフェクト */
  /* テキスト情報 */
  /* 矢印ボタン (右下) */
}
@media screen and (max-width: 767px) {
  .p-biz-item {
    margin-bottom: 60px;
  }
}
.p-biz-item__img {
  aspect-ratio: 3/2;
  line-height: 0;
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
}
.p-biz-item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  transform: scale(1.0001); /* デフォルトのスケールを明示的に指定 */
  will-change: transform; /* アニメーションの最適化を促す */
}
.p-biz-item__img .p-biz-item__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.1) 60%, rgba(0, 0, 0, 0) 100%);
  z-index: 1;
}
.p-biz-item:hover .p-biz-item__img img {
  transform: scale(1.05);
}
.p-biz-item:hover .p-biz-item__arrow {
  background-color: #fff;
  color: #192872;
}
.p-biz-item__info {
  position: absolute;
  top: 30px;
  left: 40px;
  z-index: 2;
}
.p-biz-item__info .__header {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
}
@media screen and (max-width: 960px) {
  .p-biz-item__info {
    padding-top: 2%;
    padding-left: 2%;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
}
.p-biz-item__num {
  display: block;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 5rem;
  line-height: 1;
  margin-bottom: 10px;
  color: #FFF;
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .p-biz-item__num {
    font-size: 3.5rem;
  }
}
.p-biz-item__title-jp {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  font-weight: 500;
  margin-top: 0.75em;
  margin-bottom: 5px;
  line-height: 1.4;
}
@media screen and (max-width: 960px) {
  .p-biz-item__title-jp {
    font-size: 16px;
  }
}
.p-biz-item__sub-en {
  writing-mode: vertical-rl;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  color: #9e9e9e;
  opacity: 0.4;
  white-space: nowrap;
  line-height: 5rem;
}
@media screen and (max-width: 960px) {
  .p-biz-item__sub-en {
    writing-mode: horizontal-tb;
    margin-top: auto;
    line-height: 2rem;
  }
}
.p-biz-item__arrow {
  position: absolute;
  bottom: 0;
  right: -1px;
  transform: translateX(100%);
  width: 88px;
  height: 60px;
  background-color: #192872;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Arial", sans-serif;
  font-size: 1.2rem;
  z-index: 2;
  transition: all 0.3s;
  padding-bottom: 2px;
}
@media screen and (max-width: 767px) {
  .p-biz-item__arrow {
    width: 33%;
    transform: translateX(0);
    top: 100%;
    right: 0;
  }
}

/* -------------------------------------------
 * News Section
 * -------------------------------------------
*/
.p-top-news {
  position: relative;
  padding: 100px 64px;
  background-image: url("../img/bg-news.webp");
  background-size: cover;
  background-position: 5% center;
  color: #fff;
  overflow: hidden;
  /* 記事リスト */
  /* 各記事アイテム */
  /* 日付とカテゴリのラッパー */
  /* 記事タイトル */
}
@media screen and (max-width: 960px) {
  .p-top-news {
    padding: 64px 4%;
  }
}
.p-top-news__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 50px;
  position: relative;
  z-index: 1;
}
.p-top-news__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  color: #fff;
  margin-right: 20px;
  line-height: 1;
}
.p-top-news__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #fff;
}
.p-top-news__list {
  position: relative;
  width: 62.5%;
  max-width: 1200px;
  margin: 0 auto;
  z-index: 1;
}
@media screen and (max-width: 960px) {
  .p-top-news__list {
    width: 80%;
  }
}
@media screen and (max-width: 767px) {
  .p-top-news__list {
    width: 92%;
    margin-left: auto;
    margin-right: 0;
  }
}
.p-top-news__item {
  display: flex;
  align-items: center;
  padding: 16px 0;
  margin-bottom: 64px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  text-decoration: none;
  color: #fff;
  transition: background-color 0.3s;
}
.p-top-news__item:hover {
  background-color: rgba(255, 255, 255, 0.05);
}
@media screen and (max-width: 767px) {
  .p-top-news__item {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 0;
  }
}
.p-top-news__meta {
  display: flex;
  align-items: center;
  min-width: 250px;
  margin-right: 30px;
}
@media screen and (max-width: 767px) {
  .p-top-news__meta {
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-top-news__date {
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  margin-right: 20px;
  letter-spacing: 0.05em;
}
.p-top-news__cat {
  display: inline-block;
  padding: 4px 15px;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1;
  border: 1px solid #fff;
  border-radius: 20px;
  white-space: nowrap;
}
.p-top-news__btn {
  width: 62.5%;
  max-width: 1200px;
  margin: 5vw auto 10vw;
}
.p-top-news__btn .c-btn-company {
  font-size: 18px;
  border: 1px solid #FFF;
  background-color: #FFF;
  color: #192872 !important;
}
.p-top-news__btn .c-btn-company:hover {
  background-color: transparent;
  color: #FFF !important;
}
@media screen and (max-width: 960px) {
  .p-top-news__btn {
    width: 80%;
  }
  .p-top-news__btn .c-btn-company {
    padding: 1em 3em;
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  .p-top-news__btn {
    width: 92%;
    margin-left: auto;
    margin-right: 0;
  }
}
.p-top-news__item-title {
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-top-news__item-title {
    -webkit-line-clamp: 2;
    font-size: 14px;
  }
}

/* -------------------------------------------
 * Recruit Section
 * -------------------------------------------
*/
.p-top-recruit {
  padding: 100px 64px;
  overflow: hidden;
  /* 左側: テキストエリア */
  /* 右側: 画像エリア */
  /* 画像共通設定 (円形切り抜き + 白フチ) */
  /* --- 画像1 (右上・一番大きい) --- */
  /* --- 画像2 (右下・中くらい) --- */
  /* --- 画像3 (左下・中くらい) --- */
}
@media screen and (max-width: 960px) {
  .p-top-recruit {
    padding: 80px 4% 0;
  }
}
.p-top-recruit__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__inner {
    flex-direction: column;
    align-items: flex-start;
  }
}
.p-top-recruit__content {
  width: 56%;
}
@media screen and (max-width: 960px) {
  .p-top-recruit__content {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-top-recruit__content {
    display: contents;
  }
}
.p-top-recruit__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
    order: 1;
  }
}
.p-top-recruit__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  color: #192872;
  margin-right: 20px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-top-recruit__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__sub {
    font-size: 12px;
  }
}
.p-top-recruit__body {
  padding-left: 5vw;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__body {
    display: contents;
  }
}
.p-top-recruit__catch {
  font-size: clamp(1.25rem, 1.129rem + 0.52vw, 1.75rem);
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 40px;
  color: #231d1c;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__catch {
    font-size: 1.8rem;
    order: 2;
  }
}
.p-top-recruit__desc {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2;
  margin-bottom: 16vw;
  color: #231d1c;
}
@media screen and (max-width: 960px) {
  .p-top-recruit__desc {
    margin-bottom: 12vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top-recruit__desc {
    font-size: 14px;
    order: 3;
  }
}
@media screen and (max-width: 767px) {
  .p-top-recruit__btn {
    width: 100%;
    order: 5;
  }
}
.p-top-recruit__images {
  width: 50%;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__images {
    width: 100%;
    height: auto;
    margin-top: 0;
    order: 4;
  }
}
.p-top-recruit__img-wrap {
  position: relative;
  border-radius: 50%;
  overflow: hidden;
  aspect-ratio: 1/1;
}
.p-top-recruit__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-recruit__img-wrap.-img1 {
  width: 32vw;
  max-width: 520px;
  z-index: 1;
}
@media screen and (max-width: 960px) {
  .p-top-recruit__img-wrap.-img1 {
    width: 30vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top-recruit__img-wrap.-img1 {
    width: 64vw;
  }
}
.p-top-recruit__img-wrap.-img2 {
  width: 22vw;
  max-width: 420px;
  margin: 4vw auto 0;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__img-wrap.-img2 {
    width: 50vw;
    margin: -28% 0 0 auto;
  }
}
.p-top-recruit__img-wrap.-img3 {
  width: 20vw;
  max-width: 380px;
  transform: translate(-20%, -50%);
  z-index: 3;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__img-wrap.-img3 {
    width: 45vw;
    transform: translate(-20%, -50%);
  }
}

/* ===========================================
 * About Page Styles
 * ===========================================
*/
.p-about {
  color: #231d1c;
}

/* -------------------------------------------
 * Common: Section Head (Company, Location)
 * -------------------------------------------
*/
.p-about-message,
.p-about-policy,
.p-about-company,
.p-about-location {
  /* -------------------------------------------
  * Head Section (Title + Subtitle)
  */
}
.p-about-message__head,
.p-about-policy__head,
.p-about-company__head,
.p-about-location__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 40px;
  border-bottom: 1px solid transparent;
}
@media screen and (max-width: 767px) {
  .p-about-message__head,
  .p-about-policy__head,
  .p-about-company__head,
  .p-about-location__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-about-message__title,
.p-about-policy__title,
.p-about-company__title,
.p-about-location__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-about-message__title,
  .p-about-policy__title,
  .p-about-company__title,
  .p-about-location__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-about-message__sub,
.p-about-policy__sub,
.p-about-company__sub,
.p-about-location__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-about-message__sub,
  .p-about-policy__sub,
  .p-about-company__sub,
  .p-about-location__sub {
    font-size: 12px;
  }
}

.about-us {
  /* -------------------------------------------
  * 1. Intro Section (FV下)
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 2. Message Section (代表挨拶)
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 3. Policy Section
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 4. Company Section (WYSIWYG)
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 5. Slider Section (About独自クラス)
  * -------------------------------------------
  */
  /* Swiperの設定上書き（リニアアニメーション用） */
  /* -------------------------------------------
  * 6. Location Section
  * -------------------------------------------
  */
}
.about-us .p-about-intro {
  padding: 64px 0 64px 64px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-intro {
    padding: 40px 4%;
  }
}
@media screen and (max-width: 767px) {
  .about-us .p-about-intro {
    padding: 24px 4% 0;
  }
}
.about-us .p-about-intro__text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  text-align: justify;
  padding-left: 5vw;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-intro__text {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .about-us .p-about-intro__text {
    padding-left: 0;
    font-size: 14px;
    line-height: 2;
  }
}
.about-us .p-about-message {
  padding: 100px 64px;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-message {
    padding: 64px 16px;
  }
}
.about-us .p-about-message__body {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 5%;
  padding-left: 5vw;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-message__body {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .about-us .p-about-message__body {
    flex-direction: column;
    padding-left: 0;
  }
}
.about-us .p-about-message__img {
  flex: 0 1 auto;
  width: 400px;
  min-width: 240px;
  height: auto;
  aspect-ratio: 2/3;
  overflow: hidden;
}
.about-us .p-about-message__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-message__img {
    min-width: none;
    width: 100%;
  }
}
.about-us .p-about-message__contents {
  flex: 0 1 auto;
}
.about-us .p-about-message__text, .about-us .p-about-message__name {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-message__text, .about-us .p-about-message__name {
    font-size: 14px;
    line-height: 2;
  }
}
.about-us .p-about-message__name {
  text-align: right;
}
.about-us .p-about-message__logo {
  width: 320px;
  height: auto;
  margin-top: 1.5rem;
  margin-left: auto;
  margin-right: 0;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-message__logo {
    width: 240px;
  }
}
.about-us .p-about-policy {
  background-image: url("../img/bg-about-policy.webp");
  background-size: cover;
  background-position: left top;
  padding: 120px 64px;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-policy {
    padding: 64px 16px;
    background-position: 2% top;
  }
}
.about-us .p-about-policy__title {
  color: #FFF;
  font-size: clamp(4rem, 3.454rem + 2.33vw, 6.25rem);
}
@media screen and (max-width: 767px) {
  .about-us .p-about-policy__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.about-us .p-about-policy__sub {
  color: #FFF;
}
.about-us .p-about-policy__shead {
  color: #FFF;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  margin-bottom: 1.5em;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-policy__shead {
    font-size: 1.5rem;
  }
}
.about-us .p-about-policy__desc {
  color: #FFF;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  margin-left: 0.5em;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-policy__desc {
    font-size: 14px;
    line-height: 2;
  }
}
.about-us .p-about-policy .__mt {
  margin-top: 8em;
}
.about-us .p-about-company {
  padding: 160px 64px;
  /* WYSIWYGエディタ内のテーブルスタイル上書き */
}
@media screen and (max-width: 960px) {
  .about-us .p-about-company {
    padding: 80px 4%;
  }
}
.about-us .p-about-company__head {
  margin-bottom: 80px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-company__head {
    margin-bottom: 40px;
  }
}
.about-us .p-about-company__body {
  max-width: 1280px;
  margin-right: auto;
  padding-left: 5vw;
  /* 認証・認定エリアの画像調整 */
}
.about-us .p-about-company__body .table-wrap {
  position: relative;
  margin-bottom: 64px;
  padding: 2.5vw 0;
}
.about-us .p-about-company__body .table-wrap::before {
  position: absolute;
  content: "";
  top: 0;
  left: -2vw;
  width: 1px;
  height: 100%;
  background-color: #192872;
  z-index: 1;
}
.about-us .p-about-company__body .table-wrap:last-child {
  padding-top: 1.5vw;
  margin-bottom: 0;
}
.about-us .p-about-company__body table {
  position: relative;
  width: 100% !important;
  border: none !important;
  border-collapse: collapse;
  table-layout: fixed;
}
.about-us .p-about-company__body tbody, .about-us .p-about-company__body tr {
  border: none !important;
}
.about-us .p-about-company__body td {
  border: none !important;
  padding: 4px 0;
  vertical-align: top;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  color: #231d1c;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-company__body td {
    display: block;
    width: 100% !important;
    padding: 0 0 10px 0;
    font-size: 14px;
  }
}
.about-us .p-about-company__body td:first-child {
  width: 15% !important;
  color: #192872;
  padding-left: 8px;
  padding-right: 20px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-company__body td:first-child {
    width: 20% !important;
  }
}
@media screen and (max-width: 767px) {
  .about-us .p-about-company__body td:first-child {
    margin-top: 20px;
    margin-bottom: 5px;
    padding-right: 0;
    font-size: 18px;
    width: 100% !important;
  }
}
.about-us .p-about-company__body td:last-child {
  width: 85% !important;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-company__body td:last-child {
    padding-left: 26px;
    width: 100% !important;
  }
}
.about-us .p-about-company__body img {
  max-width: 200px;
  height: auto;
  margin-top: 15px;
  margin-bottom: 30px;
  display: block;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-company__body img {
    max-width: 150px;
  }
}
.about-us .p-about-slider {
  width: 100%;
  overflow: hidden;
  margin: 100px0;
  padding: 16px 0;
  background-color: #7c7a77;
}
.about-us .p-about-slider__item {
  width: auto;
  height: auto;
}
.about-us .p-about-slider__item img {
  height: 250px;
  width: auto;
  object-fit: contain;
  vertical-align: bottom;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-slider__item img {
    height: 150px;
  }
}
.about-us .js-ticker-slider .swiper-wrapper {
  transition-timing-function: linear !important;
}
.about-us .p-about-location {
  padding: 160px 64px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-location {
    padding: 80px 4%;
  }
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location {
    padding: 64px 4%;
  }
}
.about-us .p-about-location__head {
  margin-bottom: 80px;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-location__head {
    margin-bottom: 64px;
  }
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__head {
    margin-bottom: 40px;
  }
}
.about-us .p-about-location__body {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .about-us .p-about-location__body {
    width: 100%;
  }
}
.about-us .p-about-location__item {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__item {
    flex-direction: column;
  }
}
.about-us .p-about-location__img {
  width: calc(50% - 2rem);
  aspect-ratio: 3/2;
  height: auto;
  overflow: hidden;
}
.about-us .p-about-location__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__img {
    width: 100%;
  }
}
.about-us .p-about-location__info {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__info {
    width: 100%;
  }
}
.about-us .p-about-location__shead {
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 400;
  padding-bottom: 1rem;
  border-bottom: 0.75px solid #231d1c;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__shead {
    font-size: 1.5rem;
  }
}
.about-us .p-about-location__address, .about-us .p-about-location__text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.6;
  margin: 1rem 0;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__address, .about-us .p-about-location__text {
    font-size: 14px;
  }
}
.about-us .p-about-location__map {
  width: 100%;
  height: auto;
  border: none;
  margin-top: 1rem;
  margin-bottom: 8rem;
}
.about-us .p-about-location__map:last-child {
  margin-bottom: 0;
}
.about-us .p-about-location__map iframe {
  width: 100%;
  height: 400px;
  border: none;
}
@media screen and (max-width: 767px) {
  .about-us .p-about-location__map iframe {
    height: 250px;
  }
}

/* ===========================================
 * Business Page Styles
 * ===========================================
*/
.page.business {
  /* -------------------------------------------
  * First View
  */
}
.page.business .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  text-shadow: none;
}
.page.business .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "事業内容";
  margin-left: 0.5em;
}

.p-business {
  color: #231d1c;
}

.business {
  /* -------------------------------------------
  * Common: Section Head
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 1. Intro Section
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 2. Main Services Section
  * -------------------------------------------
  */
  /* -------------------------------------------
  * 3. Additional Services Section
  * -------------------------------------------
  */
}
.business .p-business-main,
.business .p-business-add {
  max-width: 1280px;
  width: 76%;
}
@media screen and (max-width: 960px) {
  .business .p-business-main,
  .business .p-business-add {
    width: 100%;
    padding-right: 4% !important;
  }
}
@media screen and (max-width: 767px) {
  .business .p-business-main,
  .business .p-business-add {
    padding: 64px 4% !important;
  }
}
.business .p-business-main__head,
.business .p-business-add__head {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  margin-bottom: 160px;
}
.business .p-business-main__head::before, .business .p-business-main__head::after,
.business .p-business-add__head::before,
.business .p-business-add__head::after {
  content: "";
  height: 2px;
  background-color: #192872;
}
.business .p-business-main__head::before,
.business .p-business-add__head::before {
  flex: 1;
}
.business .p-business-main__head::after,
.business .p-business-add__head::after {
  flex: 4;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__head,
  .business .p-business-add__head {
    margin-bottom: 40px;
  }
}
.business .p-business-main__title,
.business .p-business-add__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(2.5rem, 2.257rem + 1.04vw, 3.5rem);
  line-height: 1;
  color: #192872;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__title,
  .business .p-business-add__title {
    font-size: 2rem;
  }
}
.business .p-business-intro {
  padding: 64px 0 64px 64px;
}
@media screen and (max-width: 960px) {
  .business .p-business-intro {
    padding: 40px 4%;
  }
}
@media screen and (max-width: 767px) {
  .business .p-business-intro {
    padding: 24px 4% 0;
  }
}
.business .p-business-intro__text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  text-align: justify;
  padding-left: 5vw;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .business .p-business-intro__text {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .business .p-business-intro__text {
    padding-left: 0;
    font-size: 14px;
    line-height: 2;
  }
}
.business .p-business-main {
  padding: 100px 0;
  /* Huge Number "01" */
  /* Info Area (Title, Text, Num) - Order 1 (Top) */
  /* Heading "フィルム加飾成形..." */
  /* Image Area - Order 2 (Bottom) */
  /* Button - Order 3 or Absolute */
}
@media screen and (max-width: 767px) {
  .business .p-business-main {
    padding: 0;
  }
}
.business .p-business-main__body {
  width: 100%;
}
.business .p-business-main__item {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__item {
    flex-direction: column;
    margin-bottom: 80px;
  }
  .business .p-business-main__item:last-child {
    margin-bottom: 0;
  }
}
.business .p-business-main__disp {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  position: relative;
  left: -2%;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__disp {
    flex-direction: row;
    padding-right: 4%;
  }
}
.business .p-business-main__num {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 14rem;
  color: #E8EBF4;
  line-height: 0.8;
  letter-spacing: -0.05em;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__num {
    font-size: 8rem;
  }
}
.business .p-business-main__deco {
  writing-mode: vertical-rl;
  transform: translateX(-50%);
  color: #E8EBF4;
  font-size: 2.2rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__deco {
    writing-mode: horizontal-tb;
    transform: translateX(0);
    font-size: 1.5rem;
    line-height: 1.4;
  }
}
@media screen and (max-width: 767px) {
  .business .p-business-main__info {
    padding: 16px 0;
  }
}
.business .p-business-main__shead {
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  font-weight: 500;
  color: #192872;
  margin-top: 1rem;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__shead {
    margin-bottom: 1rem;
  }
}
.business .p-business-main__text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  text-align: justify;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .business .p-business-main__text {
    font-size: 14px;
    line-height: 2;
    margin-bottom: 2rem;
  }
}
.business .p-business-main__img {
  width: 88%;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
  margin-bottom: 2rem;
}
.business .p-business-main__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 960px) {
  .business .p-business-main__img {
    width: 100%;
  }
}
.business .p-business-main__btn {
  text-align: right;
}
.business .p-business-main__btn .c-btn-company {
  font-size: clamp(1rem, 0.879rem + 0.52vw, 1.5rem);
  padding: 0.75rem 2.5rem;
  padding-right: 1.25rem;
  background-color: #1d4293;
  border-radius: 10px;
  color: #fff;
  border: none;
}
.business .p-business-main__btn .c-btn-company__arrow {
  margin-left: 1.5rem;
}
.business .p-business-add {
  padding: 100px 0;
  /* Huge Number "01" */
  /* Info Area (Title, Text, Num) - Order 1 (Top) */
  /* Heading "フィルム加飾成形..." */
  /* Image Area - Order 2 (Bottom) */
  /* --- Sub Intro (Small blue title + text) --- */
  /* --- Details List (3 blocks) --- */
}
@media screen and (max-width: 767px) {
  .business .p-business-add {
    padding-bottom: 0;
  }
}
.business .p-business-add__body {
  width: 100%;
}
.business .p-business-add__item {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__item {
    flex-direction: column;
    margin-bottom: 80px;
  }
  .business .p-business-add__item:last-child {
    margin-bottom: 0;
  }
}
.business .p-business-add__disp {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  position: relative;
  left: -2%;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__disp {
    flex-direction: row;
    padding-right: 4%;
  }
}
.business .p-business-add__num {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: 14rem;
  color: #E8EBF4;
  line-height: 0.8;
  letter-spacing: -0.05em;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__num {
    font-size: 8rem;
  }
}
.business .p-business-add__deco {
  writing-mode: vertical-rl;
  transform: translateX(-50%);
  color: #E8EBF4;
  font-size: 2.2rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__deco {
    writing-mode: horizontal-tb;
    transform: translateX(0);
    font-size: 1.5rem;
    line-height: 1.4;
  }
}
@media screen and (max-width: 767px) {
  .business .p-business-add__info {
    padding: 16px 0;
  }
}
.business .p-business-add__shead {
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  font-weight: 500;
  color: #192872;
  margin-top: 1rem;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__shead {
    margin-bottom: 1rem;
  }
}
.business .p-business-add__text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  text-align: justify;
  margin-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__text {
    font-size: 14px;
    line-height: 2;
    margin-bottom: 2rem;
  }
}
.business .p-business-add__img {
  width: 88%;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
  margin-bottom: 2rem;
}
.business .p-business-add__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 960px) {
  .business .p-business-add__img {
    width: 100%;
  }
}
.business .p-business-add__sub {
  margin-bottom: 2rem;
}
.business .p-business-add__sub-head {
  font-size: clamp(1.125rem, 1.004rem + 0.52vw, 1.625rem);
  font-weight: 500;
  color: #192872;
  margin-bottom: 0.5rem;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__sub-head {
    font-size: 18px;
  }
}
.business .p-business-add__sub-text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__sub-text {
    font-size: 14px;
    line-height: 2;
  }
}
.business .p-business-add__details {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__details {
    padding: 2.5rem 1rem;
    background-color: #EEE;
  }
}
.business .p-business-add__detail-item {
  display: flex;
  gap: 30px;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__detail-item {
    flex-direction: column;
    align-items: center;
    gap: 15px;
  }
}
.business .p-business-add__detail-img {
  width: 40%;
  min-width: 200px;
  height: auto;
  aspect-ratio: 3/2;
  background-color: rgba(223, 223, 223, 0.4);
  overflow: hidden;
}
.business .p-business-add__detail-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__detail-img {
    width: 80%;
    min-width: unset;
  }
}
.business .p-business-add__detail-info {
  flex: 1;
}
.business .p-business-add__detail-title {
  font-size: clamp(1.125rem, 1.004rem + 0.52vw, 1.625rem);
  font-weight: 500;
  color: #192872;
  margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__detail-title {
    text-align: center;
  }
}
.business .p-business-add__detail-text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .business .p-business-add__detail-text {
    font-size: 12px;
    line-height: 1.5;
  }
}

/* ===========================================
 * News Page Styles
 * ===========================================
*/
.blog.news {
  /* -------------------------------------------
  * First View
  */
  /* -------------------------------------------
  * Common
  */
}
.blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  display: flex;
  align-items: baseline;
  text-shadow: none;
}
.blog.news .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "お知らせ一覧";
  margin-left: 0.5em;
}
.blog.news .l-content {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
}
.blog.news .l-content .l-mainContent {
  padding: 100px 64px;
}
@media screen and (max-width: 960px) {
  .blog.news .l-content .l-mainContent {
    padding: 100px 4%;
  }
}
.blog.news .l-content .l-mainContent .p-homeContent {
  padding-left: 5vw;
  width: 80%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .blog.news .l-content .l-mainContent .p-homeContent {
    padding-left: 0;
    width: 100%;
  }
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__item {
  margin-bottom: 4rem;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__link {
  padding-left: 1.5rem;
  padding-bottom: 1.5rem;
  border-left: 1px solid #192872;
  border-bottom: 1px solid #192872;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  .blog.news .l-content .l-mainContent .p-homeContent .p-postList__link {
    flex-direction: column;
    gap: 0.5rem;
  }
}
@media screen and (max-width: 767px) {
  .blog.news .l-content .l-mainContent .p-homeContent .p-postList__thumb {
    width: 100%;
  }
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__body::after {
  order: 4;
  content: "";
  display: block;
  background-color: #192872;
  background-image: url(../img/icon-arrow-right.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 4vw;
  height: auto;
  aspect-ratio: 7/5;
  align-self: flex-end;
  margin-top: auto;
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .blog.news .l-content .l-mainContent .p-homeContent .p-postList__body {
    width: 100%;
  }
  .blog.news .l-content .l-mainContent .p-homeContent .p-postList__body::after {
    width: 12vw;
    margin-top: 1rem;
  }
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__title {
  order: 2;
  font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
  color: #192872;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__excerpt {
  order: 3;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__meta {
  order: 1;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 1rem;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__meta .u-thin {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .blog.news .l-content .l-mainContent .p-homeContent .p-postList__meta {
    width: 100%;
  }
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__times time {
  font-size: 14px;
  color: #231d1c;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__cat {
  background-color: #192872;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  font-weight: 400;
  padding: 4px 1rem;
  border-radius: 100px;
}
.blog.news .l-content .l-mainContent .p-homeContent .p-postList__cat::before {
  display: none !important;
}
.blog.news .l-content .l-mainContent .p-homeContent .c-pagination > a {
  background-color: unset;
  color: #192872;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

/* ===========================================
 * Contact Page Styles
 * ===========================================
*/
.page.contact {
  /* -------------------------------------------
  * First View
  */
  /* -------------------------------------------
  * Footer
  */
}
.page.contact .l-topTitleArea .l-topTitleArea__body {
  transform: translateY(100%);
}
.page.contact .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  font-size: clamp(3.5rem, 3.257rem + 1.04vw, 4.5rem);
  text-shadow: none;
}
.page.contact .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "お問合わせ";
  margin-left: 0.5em;
}
.page.contact .l-footer .p-footer-contact .p-footer-contact__head {
  display: none !important;
}
.page.contact .l-footer .p-footer-contact .p-footer-contact__body {
  margin-bottom: 0;
}
.page.contact .l-footer .p-footer-contact .p-footer-contact__body .p-contact-btn {
  display: none !important;
}

.p-contact {
  color: #231d1c;
}

/* ===========================================
 * Entry Page Styles
 * ===========================================
*/
.page.entry {
  /* -------------------------------------------
  * First View
  */
  /* -------------------------------------------
  * Footer
  */
  /* -------------------------------------------
  * Page Title
  */
  /* ===========================================
  * Contact Form: Job Title Display
  * ===========================================
  */
}
.page.entry .l-topTitleArea .l-topTitleArea__body {
  transform: translateY(100%);
}
.page.entry .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  font-size: clamp(3.5rem, 3.257rem + 1.04vw, 4.5rem);
  text-shadow: none;
}
.page.entry .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "求人エントリー";
  margin-left: 0.5em;
}
.page.entry .l-footer .p-footer-contact .p-footer-contact__head {
  display: none !important;
}
.page.entry .l-footer .p-footer-contact .p-footer-contact__body {
  margin-bottom: 0;
}
.page.entry .l-footer .p-footer-contact .p-footer-contact__body .p-contact-btn {
  display: none !important;
}
.page.entry .p-contact-content__title {
  width: fit-content;
}
.page.entry .p-contact-content__title::after {
  content: "";
  display: inline-block;
  margin-left: 16px;
  width: 48px;
  height: 48px;
  mask: url("../img/icon-contact-w.svg") no-repeat center;
  -webkit-mask: url("../img/icon-contact-w.svg") no-repeat center;
  mask-size: contain;
  -webkit-mask-size: contain;
  background-color: #192872;
}
.page.entry .p-contact-content__job {
  width: 100%;
  margin-bottom: 40px;
  padding-left: 5vw;
  /* 枠線付きのメインボックス */
  /* 左側：ラベル (ご応募職種) */
  /* 右側：職種名テキスト */
  /* 雇用形態ラベル (正社員など) */
  /* 下部：注釈テキスト */
}
@media screen and (max-width: 767px) {
  .page.entry .p-contact-content__job {
    padding-left: 0;
  }
}
.page.entry .p-contact-content__job__inner {
  display: flex;
  width: 100%;
  border: 1px solid #ccc; /* 薄いグレーの枠線 */
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .page.entry .p-contact-content__job__inner {
    flex-direction: column; /* スマホでは縦積みに */
  }
}
.page.entry .p-contact-content__job-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 160px; /* 固定幅 */
  background-color: #7c7a77; /* 濃いグレー背景 */
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  padding: 15px;
  flex-shrink: 0; /* 幅を縮めない */
}
@media screen and (max-width: 767px) {
  .page.entry .p-contact-content__job-label {
    width: 100%; /* スマホでは全幅 */
    padding: 10px;
  }
}
.page.entry .p-contact-content__job-title {
  display: flex;
  align-items: center;
  flex-grow: 1; /* 残りの幅を埋める */
  padding: 20px 30px;
  font-size: 1.25rem;
  font-weight: 700;
  color: #192872; /* 濃紺 (#1F2A66) */
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .page.entry .p-contact-content__job-title {
    padding: 20px;
    font-size: 1rem;
  }
}
.page.entry .p-contact-content__job-type {
  display: inline-block;
  background-color: #192872; /* 濃紺背景 */
  color: #fff;
  padding: 4px 12px;
  margin-right: 10px;
  font-size: 0.9rem;
  vertical-align: middle;
}
.page.entry .p-contact-content__job__note {
  display: block;
  text-align: right;
  margin-top: 8px;
  font-size: 12px;
}

/* -------------------------------------------
 * Common: Section Head
 * -------------------------------------------
*/
.p-contact-content {
  padding: 100px 64px;
  width: 80%;
  max-width: 1280px;
  /* -------------------------------------------
  * Head Section (Title + Subtitle)
  */
}
@media screen and (max-width: 960px) {
  .p-contact-content {
    width: 100%;
    padding: 64px 4%;
  }
}
.p-contact-content__head {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 1rem;
  margin-bottom: 80px;
  border-left: 1px solid transparent;
}
@media screen and (max-width: 767px) {
  .p-contact-content__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-contact-content__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4.5rem, 4.227rem + 1.17vw, 5.625rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-contact-content__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-contact-content__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
  margin-left: 0.25em;
}
@media screen and (max-width: 767px) {
  .p-contact-content__sub {
    font-size: 12px;
  }
}
.p-contact-content__intro, .p-contact-content__note {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2;
  text-align: justify;
  padding-left: 5vw;
  margin-bottom: 32px;
}
@media screen and (max-width: 767px) {
  .p-contact-content__intro, .p-contact-content__note {
    padding-left: 0;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }
}
.p-contact-content__note {
  margin-bottom: 64px;
}
@media screen and (max-width: 767px) {
  .p-contact-content__note {
    margin-bottom: 32px;
  }
}
.p-contact-content__note p {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
}
@media screen and (max-width: 767px) {
  .p-contact-content__note p {
    font-size: 14px;
    line-height: 1.8;
  }
}
.p-contact-content__note .c-form-badge {
  background-color: #c83630;
  color: #fff;
  padding: 0.25em 1em;
}
.p-contact-content__form {
  padding-left: 5vw;
}
@media screen and (max-width: 767px) {
  .p-contact-content__form {
    padding-left: 0;
  }
}

/* -------------------------------------------
 * フォーム本体 (.p-contact-form)
 * -------------------------------------------
*/
.p-contact-form {
  width: 100%;
  margin-top: 40px;
  /* -------------------------------------------
  * 必須バッジ (Common)
  * -------------------------------------------
  */
  /* 行 (dl) */
  /* ラベル (dt) */
  /* 入力エリア (dd) */
  /* プライバシーポリシー同意エリア */
  /* 送信ボタンエリア */
}
.p-contact-form .c-form-badge {
  display: inline-block;
  background-color: #c83630;
  color: #fff;
  font-size: 0.8em;
  padding: 0.25em 1em;
  margin-left: 1em;
  vertical-align: middle;
  line-height: 1.2;
  font-weight: normal;
}
.p-contact-form .c-form-badge.-required {
  background-color: #c83630;
}
.p-contact-form__row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 12px 0;
}
@media screen and (max-width: 767px) {
  .p-contact-form__row {
    display: block;
    padding: 12px 0;
  }
}
.p-contact-form__label {
  width: 100%;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  font-weight: 400;
  display: flex;
  align-items: center;
}
.p-contact-form__label.-top {
  align-self: flex-start;
  margin-top: 10px;
}
@media screen and (max-width: 767px) {
  .p-contact-form__label {
    width: 100%;
    margin-bottom: 10px;
  }
}
.p-contact-form__input {
  width: 100%;
}
.p-contact-form__input input[type=text],
.p-contact-form__input input[type=email],
.p-contact-form__input input[type=tel],
.p-contact-form__input textarea {
  width: 100%;
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 12px 16px;
  font-size: 1rem;
  appearance: none;
  transition: border-color 0.3s;
}
.p-contact-form__input input[type=text]::placeholder,
.p-contact-form__input input[type=email]::placeholder,
.p-contact-form__input input[type=tel]::placeholder,
.p-contact-form__input textarea::placeholder {
  color: #aaa;
}
.p-contact-form__input input[type=text]:focus,
.p-contact-form__input input[type=email]:focus,
.p-contact-form__input input[type=tel]:focus,
.p-contact-form__input textarea:focus {
  border-color: #192872;
  outline: none;
}
.p-contact-form__input .wpcf7-not-valid-tip {
  font-size: 0.875rem;
  margin-top: 5px;
}
.p-contact-form__privacy {
  margin-top: 60px;
  text-align: left;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}
.p-contact-form__privacy .c-form-badge {
  margin-left: 0;
}
.p-contact-form__privacy .c-privacy-check {
  margin-left: 10px;
}
.p-contact-form__privacy .c-privacy-check input[type=checkbox] {
  transform: scale(1.2);
  margin-right: 5px;
  cursor: pointer;
}
.p-contact-form__privacy .wpcf7-list-item {
  margin-left: 0;
}
.p-contact-form__privacy a {
  text-decoration: underline;
  color: #192872;
}
.p-contact-form__privacy a:hover {
  text-decoration: none;
}
.p-contact-form__submit {
  margin-top: 40px;
  text-align: left;
}
.p-contact-form__submit input[type=submit] {
  display: inline-block;
  background-color: #192872;
  color: #fff;
  font-size: 1.125rem;
  font-weight: 700;
  padding: 16px 80px;
  border: none;
  cursor: pointer;
  transition: opacity 0.3s, background-color 0.3s;
  min-width: 300px;
}
.p-contact-form__submit input[type=submit]:hover {
  opacity: 0.8;
}
@media screen and (max-width: 767px) {
  .p-contact-form__submit input[type=submit] {
    width: 100%;
    padding: 14px 0;
  }
}
.p-contact-form__submit .ajax-loader {
  position: absolute;
}

.p-contact-content__btn {
  margin-top: 80px;
  text-align: center;
}
.p-contact-content__btn .c-btn-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  width: 150px;
  height: 70px;
  border: 2px solid #192872;
  border-radius: 10px;
  background-color: #fff;
  color: #192872;
  text-decoration: none;
  font-family: "Arial", sans-serif;
  font-size: 15px;
  font-weight: 400;
  transition: all 0.3s ease;
}
.p-contact-content__btn .c-btn-back__arrow {
  content: "";
  display: inline-block;
  mask: url("../img/icon-arrow-left.svg") no-repeat center;
  -webkit-mask: url("../img/icon-arrow-left.svg") no-repeat center;
  mask-size: contain;
  -webkit-mask-size: contain;
  background-color: #192872;
  width: 24px;
  height: 24px;
  transition: all 0.3s ease;
}
.p-contact-content__btn .c-btn-back__text {
  font-size: 18px;
  line-height: 1;
}
.p-contact-content__btn .c-btn-back:hover {
  background-color: #192872;
  color: #fff;
}
.p-contact-content__btn .c-btn-back:hover .c-btn-back__arrow {
  transform: translateX(-5px);
  background-color: #fff;
}

/* ===========================================
 * Service Page Styles
 * ===========================================
*/
.page.service {
  /* -------------------------------------------
  * First View
  */
}
.page.service #header .l-header__inner {
  justify-content: center !important;
}
.page.service #header .l-header__inner .l-header__logo,
.page.service #header .l-header__inner .c-headLogo {
  margin: 0;
}
@media screen and (max-width: 960px) {
  .page.service #header .l-header__inner {
    padding-left: 0 !important;
  }
  .page.service #header .l-header__inner .l-header__customBtn.sp_ {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .page.service #header .l-header__inner {
    padding-top: 48px;
  }
}
@media screen and (max-width: 960px) {
  .page.service #header .l-header__menuBtn.sp_ {
    display: none;
  }
}
.page.service .c-lang-switch .c-lang-switch__btn {
  font-size: 14px;
}
@media screen and (max-width: 960px) {
  .page.service .c-lang-switch {
    display: flex !important;
  }
}
@media screen and (max-width: 767px) {
  .page.service .c-lang-switch {
    top: 10px;
    right: 16px;
  }
}
.page.service .p-side-nav-bg,
.page.service .p-side-nav,
.page.service #top_title_area.l-topTitleArea {
  display: none;
}
.page.service .l-content {
  margin-bottom: 0;
  padding-top: 0;
}

.p-main-services {
  color: #231d1c;
}

.page.service {
  /* -------------------------------------------
  * First View (FV) Section
  * -------------------------------------------
  */
  /* -------------------------------------------
  * Navigation Section (Circles)
  * -------------------------------------------
  */
  /* -------------------------------------------
  * License Section (Globe)
  * -------------------------------------------
  */
  /* -------------------------------------------
  * Service 1: TOMAS Section
  * -------------------------------------------
  */
  /* -------------------------------------------
  * Service 2: TOM Method Section
  * -------------------------------------------
  */
  /* -------------------------------------------
  * Service 3: License Detail
  * -------------------------------------------
  */
}
.page.service .p-ms-fv {
  position: relative;
  aspect-ratio: 3/2;
  width: 100%;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-fv {
    aspect-ratio: 1/1;
  }
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-fv {
    aspect-ratio: 3/4;
  }
}
.page.service .p-ms-fv::after {
  top: -2px;
  left: -2px;
  -webkit-mask-position: left top;
  mask-position: left top;
}
.page.service .p-ms-fv__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 1;
}
.page.service .p-ms-fv__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1280px;
  padding: 0 24px;
  text-align: center;
  margin-top: -40px;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-fv__content {
    margin-top: 24px;
  }
}
.page.service .p-ms-fv__catch {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(2rem, 1.5rem + 3vw, 4rem);
  line-height: 1.4;
  margin-bottom: 24px;
  text-shadow: 0 3px 6px rgba(0, 0, 0, 0.75);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-fv__catch {
    font-size: 40px;
  }
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-fv__catch {
    font-size: 32px;
  }
}
.page.service .p-ms-fv__sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.5rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.page.service .p-ms-nav {
  position: relative;
  z-index: 10;
  margin-top: -160px;
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-nav {
    margin-top: -64px;
    padding-bottom: 60px;
  }
}
.page.service .p-ms-nav__row {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-nav__row {
    flex-direction: column;
    gap: 16px;
  }
}
.page.service .p-ms-nav__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 540px;
  height: 540px;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  text-decoration: none;
  padding: 40px;
  box-sizing: border-box;
  transition: transform 0.3s ease, box-shadow 0.3s ease, z-index 0s;
}
.page.service .p-ms-nav__item:hover {
  transform: scale(1.02);
  z-index: 5;
  position: relative;
}
.page.service .p-ms-nav__item.-left {
  background-image: url("../img/bg-service-tomas.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.page.service .p-ms-nav__item.-left .p-ms-nav__title {
  font-size: clamp(2.375rem, 2.041rem + 1.42vw, 3.75rem);
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-nav__item.-left .p-ms-nav__title {
    font-size: 2rem;
  }
}
.page.service .p-ms-nav__item.-right {
  background-image: url("../img/bg-service-tom-method.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-nav__item {
    width: 48vw;
    height: 48vw;
    min-width: 360px;
    min-height: 360px;
  }
}
.page.service .p-ms-nav__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
}
.page.service .p-ms-nav__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(2rem, 1.5rem + 1.5vw, 3.5rem);
  line-height: 1;
}
.page.service .p-ms-nav__title .__sub {
  display: block;
  font-size: 0.9rem;
  font-weight: 400;
  margin-top: 8px;
  letter-spacing: -0.05em;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-nav__title {
    font-size: 1.5rem;
  }
  .page.service .p-ms-nav__title .__sub {
    font-size: 14px;
  }
}
.page.service .p-ms-nav__sub {
  margin-top: 0.5em;
  font-size: clamp(1rem, 0.875rem + 0.5vw, 1.25rem);
  font-weight: 500;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-nav__sub {
    font-size: 1rem;
  }
}
.page.service .p-ms-nav__desc {
  width: 80%;
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  font-weight: 700;
  text-align: left;
  line-height: 1.4;
  margin-top: 1em;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-nav__desc {
    width: 92%;
  }
}
.page.service .p-ms-nav__btn {
  margin-top: 24px;
  width: 160px;
  max-width: 100%;
}
.page.service .p-ms-nav__btn img {
  width: 100%;
  height: auto;
  display: block;
}
.page.service .p-ms-license {
  position: relative;
  padding: 0 0 160px;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license {
    padding: 0 4% 80px;
  }
}
.page.service .p-ms-license__link {
  display: block;
  text-decoration: none;
  color: #231d1c;
  transition: opacity 0.3s;
  height: 100%;
}
.page.service .p-ms-license__link:hover {
  opacity: 0.8;
}
.page.service .p-ms-license__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  position: relative;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license__inner {
    flex-direction: column;
    gap: 30px;
  }
}
.page.service .p-ms-license__img {
  width: 50%;
  max-width: 500px;
  position: relative;
  z-index: 1;
}
.page.service .p-ms-license__img img {
  width: 80%;
  height: auto;
  display: block;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license__img {
    width: 70%;
    max-width: 300px;
    order: 2;
    margin: 0 auto;
  }
  .page.service .p-ms-license__img img {
    margin: 0 auto;
  }
}
.page.service .p-ms-license__content {
  width: 50%;
  margin-left: -4%;
  text-align: left;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license__content {
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    order: 1;
  }
}
.page.service .p-ms-license__title {
  font-weight: 700;
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  line-height: 1.4;
  margin-bottom: 24px;
  color: #231d1c;
}
.page.service .p-ms-license__lead {
  font-weight: 700;
  font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
  line-height: 1.8;
  color: #192872;
  margin-bottom: 0.5em;
  padding-left: 1.5em;
  letter-spacing: 0.05em;
}
.page.service .p-ms-license__btn {
  width: 100%;
  text-align: center;
}
.page.service .p-ms-license__btn img {
  margin-left: 6%;
  width: 140px;
  height: auto;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license__btn {
    margin-top: 20px;
  }
}
.page.service .p-ms-license__catch {
  position: relative;
  transform: translateY(-100%);
  font-size: clamp(1.2rem, 1rem + 1.2vw, 2rem);
  font-weight: 700;
  color: #a7bfde;
  width: 100%;
  text-align: center;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license__catch {
    order: 3;
  }
}
.page.service .p-ms-tomas {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
}
.page.service .p-ms-tomas__head {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: 160px 8% 28%;
  color: #fff;
  text-align: left;
  background-image: url("../img/bg-service-tomas-sec.webp");
  background-size: cover;
  background-position: right top;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tomas__head {
    padding: 60px 4% 120px;
  }
  .page.service .p-ms-tomas__head::after {
    width: 150%;
    height: 80px;
  }
}
.page.service .p-ms-tomas__title {
  margin-bottom: 40px;
  line-height: 1;
}
.page.service .p-ms-tomas__title .__main {
  display: block;
  font-weight: 700;
  font-size: clamp(3rem, 2.5rem + 2.5vw, 5rem);
  margin-bottom: 10px;
}
.page.service .p-ms-tomas__title .__sub {
  display: block;
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  font-weight: 500;
}
.page.service .p-ms-tomas__lead {
  max-width: 1200px;
  width: 100%;
  padding: 0 8%;
  font-weight: 700;
  font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
  line-height: 1.8;
  margin: 80px auto;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tomas__lead {
    margin: 40px auto;
    padding: 0;
  }
}
.page.service .p-ms-tomas__check {
  width: 100%;
  max-width: 1920px;
  display: inline-block;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.page.service .p-ms-tomas__check ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.page.service .p-ms-tomas__check li {
  position: relative;
  font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
  font-weight: 500;
  padding-left: 1.5em;
  margin-bottom: 1em;
  line-height: 1.6;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
}
.page.service .p-ms-tomas__check li::before {
  content: "✓";
}
.page.service .p-ms-tomas__check li:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tomas__check li {
    font-size: 18px;
  }
}
.page.service .p-ms-tomas__body {
  color: #231d1c;
  margin-top: -12%;
  padding: 0 8% 100px;
  text-align: center;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tomas__body {
    margin-top: 12%;
    padding: 0 4% 60px;
  }
}
.page.service .p-ms-tomas__desc {
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  line-height: 2;
  font-weight: 500;
  margin-bottom: 120px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0 16%;
  position: relative;
  z-index: -1;
}
.page.service .p-ms-tomas__desc::before {
  position: absolute;
  content: "";
  top: 0;
  left: 50%;
  transform: translate(-50%, -16%);
  width: 100%;
  height: 260%;
  background-color: #fff;
  border-radius: 50%;
  z-index: -1;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-tomas__desc {
    padding: 0 16%;
    margin-bottom: 64px;
  }
  .page.service .p-ms-tomas__desc::before {
    width: 92vw;
    height: 120%;
  }
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tomas__desc {
    margin-bottom: 64px;
    padding: 0;
    text-align: left;
  }
  .page.service .p-ms-tomas__desc::before {
    width: 150vw;
    margin-top: -12%;
    height: 100%;
  }
  .page.service .p-ms-tomas__desc br {
    display: none;
  }
}
.page.service .p-ms-tomas__images {
  display: flex;
  justify-content: center;
  gap: 0;
  width: 100%;
  max-width: 1520px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tomas__images {
    flex-direction: row;
    gap: 0;
    margin-bottom: 50px;
  }
}
.page.service .p-ms-tomas__img {
  width: 50%;
}
.page.service .p-ms-tomas__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page.service .p-ms-tomas__link-area {
  margin-top: 60px;
}
.page.service .p-ms-tomas__link {
  display: inline-block;
  text-decoration: none;
  color: #231d1c;
  transition: opacity 0.3s;
}
.page.service .p-ms-tomas__link:hover {
  opacity: 0.7;
}
.page.service .p-ms-tomas__link-text {
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 16px;
}
.page.service .p-ms-tomas__logo {
  width: 320px;
  max-width: 100%;
  margin: 0 auto 16px;
  line-height: 1;
  overflow: hidden;
}
.page.service .p-ms-tomas__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.page.service .p-ms-tomas__click {
  font-size: 1rem;
  color: #7c7a77;
  font-family: "Arial", sans-serif;
}
.page.service .p-ms-tom {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
}
.page.service .p-ms-tom__head {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: 160px 8% 28%;
  color: #fff;
  text-align: left;
  background-image: url("../img/bg-service-tom-method-sec.webp");
  background-size: cover;
  background-position: left top;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tom__head {
    padding: 120px 4%;
  }
  .page.service .p-ms-tom__head::after {
    width: 150%;
    height: 80px;
  }
}
.page.service .p-ms-tom__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 40px;
  line-height: 1;
}
.page.service .p-ms-tom__title .__main {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(3rem, 2.5rem + 2.5vw, 5rem);
  margin-bottom: 10px;
}
.page.service .p-ms-tom__title .__sub {
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  font-weight: 500;
}
.page.service .p-ms-tom__lead {
  max-width: 1200px;
  width: 100%;
  padding: 0 8%;
  font-weight: 700;
  font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
  line-height: 1.8;
  margin: 80px auto;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tom__lead {
    margin: 40px auto;
    padding: 0;
  }
}
.page.service .p-ms-tom__check {
  width: 100%;
  max-width: 1920px;
  display: inline-block;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.page.service .p-ms-tom__check ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.page.service .p-ms-tom__check li {
  position: relative;
  font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
  font-weight: 500;
  padding-left: 1.5em;
  margin-bottom: 1em;
  line-height: 1.6;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
}
.page.service .p-ms-tom__check li::before {
  content: "✓";
}
.page.service .p-ms-tom__check li:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tom__check li {
    font-size: 18px;
  }
}
.page.service .p-ms-tom__body {
  color: #231d1c;
  margin-top: -8%;
  padding: 0 8% 100px;
  text-align: center;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tom__body {
    margin-top: 12%;
    padding: 0 4% 60px;
  }
}
.page.service .p-ms-tom__desc {
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  line-height: 2;
  font-weight: 500;
  margin-bottom: 120px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0 16%;
  position: relative;
  z-index: -1;
}
.page.service .p-ms-tom__desc::before {
  position: absolute;
  content: "";
  top: 0;
  left: 50%;
  transform: translate(-50%, -16%);
  width: 100%;
  height: 180%;
  background-color: #fff;
  border-radius: 50%;
  z-index: -1;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-tom__desc {
    padding: 0 16%;
    margin-bottom: 64px;
  }
  .page.service .p-ms-tom__desc::before {
    width: 92vw;
    height: 120%;
  }
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tom__desc {
    margin-bottom: 64px;
    padding: 0;
    text-align: left;
  }
  .page.service .p-ms-tom__desc::before {
    width: 150vw;
    margin-top: -12%;
    height: 100%;
  }
  .page.service .p-ms-tom__desc br {
    display: none;
  }
}
.page.service .p-ms-tom__images {
  display: flex;
  justify-content: center;
  gap: 0;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-tom__images {
    flex-direction: row;
    gap: 0;
    margin-bottom: 24px;
  }
}
.page.service .p-ms-tom__img {
  width: 50%;
}
.page.service .p-ms-tom__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page.service .p-ms-tom__feat {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-tom__feat {
    flex-direction: column;
  }
}
.page.service .p-ms-tom__feat-img {
  width: 50%;
  height: auto;
  aspect-ratio: 3/2;
  margin: 0 auto 16px;
}
.page.service .p-ms-tom__feat-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-tom__feat-img {
    width: 100%;
  }
}
.page.service .p-ms-tom__feat-content {
  width: 50%;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-tom__feat-content {
    width: 100%;
  }
}
.page.service .p-ms-tom__feat-title {
  font-size: clamp(3.5rem, 3.257rem + 1.04vw, 4.5rem);
  font-family: "Arial", sans-serif;
  font-weight: 700;
  margin-bottom: 16px;
  text-align: right;
  border-bottom: 1px solid #231d1c;
}
.page.service .p-ms-tom__feat-text {
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  line-height: 2;
  font-weight: 400;
  text-align: left;
  padding-left: 1.5em;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-tom__feat-text {
    margin-bottom: 1.5rem;
    padding-left: 0;
  }
}
.page.service .p-ms-tom__btm-img {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.page.service .p-ms-tom__btm-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page.service .p-ms-tom__link-area {
  margin-top: 60px;
}
.page.service .p-ms-tom__link {
  display: inline-block;
  text-decoration: none;
  color: #231d1c;
  transition: opacity 0.3s;
}
.page.service .p-ms-tom__link:hover {
  opacity: 0.7;
}
.page.service .p-ms-tom__link-text {
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 16px;
}
.page.service .p-ms-tom__logo {
  width: 320px;
  max-width: 100%;
  margin: 0 auto 16px;
  line-height: 1;
  overflow: hidden;
}
.page.service .p-ms-tom__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.page.service .p-ms-tom__click {
  font-size: 1rem;
  color: #7c7a77;
  font-family: "Arial", sans-serif;
}
.page.service .p-ms-license-det {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  z-index: 1;
}
.page.service .p-ms-license-det::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("../img/bg-service-license.webp");
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  z-index: -1;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-license-det {
    padding: 80px 4%;
  }
}
.page.service .p-ms-license-det__inner {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 100px 0 160px;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license-det__inner {
    padding: 0;
  }
}
.page.service .p-ms-license-det__head {
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  font-weight: 700;
  line-height: 1.8;
  margin-bottom: 80px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license-det__head {
    font-size: 20px;
    margin-bottom: 40px;
  }
}
.page.service .p-ms-license-det__body {
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  font-weight: 500;
  line-height: 2.2;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license-det__body {
    font-size: 14px;
    text-align: left;
    line-height: 1.8;
    padding-right: 8%;
  }
}
.page.service .p-ms-license-det__foot {
  font-size: clamp(1.25rem, 1.159rem + 0.39vw, 1.625rem);
  font-weight: 700;
  color: #192872;
  text-align: center;
  margin-top: 80px;
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license-det__foot {
    margin-top: 40px;
  }
}
.page.service .p-ms-license-det__side {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  text-align: center;
  z-index: -1;
  writing-mode: vertical-rl;
  font-size: clamp(1.75rem, 1.568rem + 0.78vw, 2.5rem);
  font-weight: 700;
  font-family: "Arial", sans-serif;
  color: #a7bfde;
  line-height: 4;
}
@media screen and (max-width: 960px) {
  .page.service .p-ms-license-det__side {
    line-height: 1;
  }
}
@media screen and (max-width: 767px) {
  .page.service .p-ms-license-det__side {
    padding-top: 12%;
    line-height: 2;
  }
}

/* ===========================================
 * Tomas® Page Styles
 * ===========================================
*/
#body_wrap.tomas {
  /* -------------------------------------------
  * First View
  */
  color: #231d1c;
}
#body_wrap.tomas .l-topTitleArea .l-topTitleArea__body {
  transform: translateY(50%);
}
#body_wrap.tomas .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  text-shadow: none;
  font-family: "Noto Sans JP", sans-serif;
}
#body_wrap.tomas .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "TOM simulation Analysis Service";
}
#body_wrap.tomas .l-content {
  padding-top: 0;
}

/* -------------------------------------------
 * Common: Section Head (Company, Location)
 * -------------------------------------------
*/
.p-tomas-intro,
.p-tomas-adv,
.p-tomas-rel,
.p-tomas-key,
.p-tomas-data {
  /* -------------------------------------------
  * Head Section (Title + Subtitle)
  */
}
.p-tomas-intro__head,
.p-tomas-adv__head,
.p-tomas-rel__head,
.p-tomas-key__head,
.p-tomas-data__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 40px;
  border-bottom: 1px solid transparent;
}
@media screen and (max-width: 767px) {
  .p-tomas-intro__head,
  .p-tomas-adv__head,
  .p-tomas-rel__head,
  .p-tomas-key__head,
  .p-tomas-data__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-tomas-intro__title,
.p-tomas-adv__title,
.p-tomas-rel__title,
.p-tomas-key__title,
.p-tomas-data__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-tomas-intro__title,
  .p-tomas-adv__title,
  .p-tomas-rel__title,
  .p-tomas-key__title,
  .p-tomas-data__title {
    font-size: 4.5rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-tomas-intro__sub,
.p-tomas-adv__sub,
.p-tomas-rel__sub,
.p-tomas-key__sub,
.p-tomas-data__sub {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-tomas-intro__sub,
  .p-tomas-adv__sub,
  .p-tomas-rel__sub,
  .p-tomas-key__sub,
  .p-tomas-data__sub {
    font-size: 12px;
  }
}

/* -------------------------------------------
 * 1. Intro Section
 * -------------------------------------------
*/
.tomas .p-tomas-intro {
  background-image: url("../img/bg-contact.webp");
  background-size: cover;
  background-position: left top;
  padding: 120px 64px;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-intro {
    padding: 64px 4%;
  }
}
.tomas .p-tomas-intro .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-intro .c-container {
    width: 100%;
  }
}
.tomas .p-tomas-intro__head {
  color: #FFF;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.tomas .p-tomas-intro__label {
  color: #FFF;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
}
.tomas .p-tomas-intro__title {
  color: #FFF;
  font-size: clamp(4rem, 3.454rem + 2.33vw, 6.25rem);
}
.tomas .p-tomas-intro__sub {
  margin-top: 0.5em;
  color: #FFF;
  font-weight: 500;
}
.tomas .p-tomas-intro__lead {
  color: #FFF;
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  font-weight: 700;
  line-height: 2.2;
  margin: 4rem 0;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-intro__lead {
    margin: 2rem 0;
    line-height: 1.4;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-intro__lead {
    font-size: 22px;
  }
}
.tomas .p-tomas-intro__desc {
  color: #FFF;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-intro__desc {
    font-size: 14px;
    line-height: 2;
  }
}

/* -------------------------------------------
 * 2. Advantages Section
 * -------------------------------------------
*/
.tomas .p-tomas-adv {
  padding: 160px 64px;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-adv {
    padding: 80px 4%;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-adv {
    padding: 64px 4%;
  }
}
.tomas .p-tomas-adv .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-adv .c-container {
    width: 100%;
  }
}
.tomas .p-tomas-adv__lead {
  margin: 4rem 0;
  padding-left: 5vw;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 500;
  line-height: 2.2;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-adv__lead {
    margin: 2rem 0;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-adv__lead {
    padding-left: 0;
    font-size: 18px;
    line-height: 1.4;
  }
}
.tomas .p-tomas-adv__check {
  padding-left: 5vw;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-adv__check {
    padding-left: 0;
  }
}
.tomas .p-tomas-adv__check ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1em;
}
.tomas .p-tomas-adv__check li {
  position: relative;
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  font-weight: 500;
  margin-bottom: 1em;
  line-height: 2;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5em;
}
.tomas .p-tomas-adv__check li::before {
  content: "✓";
}
.tomas .p-tomas-adv__check li:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-adv__check li {
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-adv__check li {
    font-size: 14px;
    line-height: 1.4;
  }
}
.tomas .p-tomas-adv__note {
  margin-left: 1.5em;
  padding-left: 5vw;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1rem);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-adv__note {
    font-size: 12px;
    line-height: 1.4;
    padding-left: 0;
  }
}

/* -------------------------------------------
 * 3. Reliability Section
 * -------------------------------------------
*/
.tomas .p-tomas-rel {
  padding: 24px 64px 160px;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-rel {
    padding: 80px 4%;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-rel {
    padding: 24px 4% 64px;
  }
}
.tomas .p-tomas-rel .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-rel .c-container {
    width: 100%;
  }
}
.tomas .p-tomas-rel__lead-head {
  margin: 4rem 0 2rem;
  padding-left: 5vw;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 500;
  line-height: 2.2;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-rel__lead-head {
    margin: 2rem 0;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-rel__lead-head {
    padding-left: 0;
    font-size: 18px;
    line-height: 1.4;
  }
}
.tomas .p-tomas-rel__check {
  padding-left: 5vw;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-rel__check {
    padding-left: 0;
  }
}
.tomas .p-tomas-rel__check ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1em;
}
.tomas .p-tomas-rel__check li {
  position: relative;
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  font-weight: 500;
  margin-bottom: 1em;
  line-height: 2;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5em;
}
.tomas .p-tomas-rel__check li::before {
  content: "✓";
}
.tomas .p-tomas-rel__check li:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-rel__check li {
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-rel__check li {
    font-size: 14px;
    line-height: 1.4;
  }
}
.tomas .p-tomas-rel__desc {
  padding-left: 5vw;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-rel__desc {
    margin-top: 0;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-rel__desc {
    padding-left: 0;
    font-size: 14px;
    line-height: 2;
  }
}
.tomas .p-tomas-rel__img {
  margin-top: 4rem;
  padding-left: 5vw;
  width: 80%;
  height: auto;
  aspect-ratio: 87/50;
  overflow: hidden;
}
.tomas .p-tomas-rel__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-rel__img {
    margin-top: 2rem;
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-rel__img {
    padding-left: 0;
  }
}

/* -------------------------------------------
 * 4. Key Features
 * -------------------------------------------
*/
.tomas .p-tomas-key {
  padding: 160px 64px;
  background-color: #192872;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-key {
    padding: 80px 4%;
  }
}
.tomas .p-tomas-key .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-key .c-container {
    width: 100%;
  }
}
.tomas .p-tomas-key__title, .tomas .p-tomas-key__sub {
  color: #FFF;
}
.tomas .p-tomas-key__lead {
  margin: 4rem 0;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 500;
  line-height: 2.2;
  color: #FFF;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-key__lead {
    margin: 4rem 0;
    line-height: 2;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-key__lead {
    padding-left: 0;
    font-size: 14px;
  }
}
.tomas .p-tomas-key__list {
  padding: 120px 0;
  padding-left: 5vw;
  background-color: #FFF;
  position: relative;
  z-index: 0;
}
.tomas .p-tomas-key__list::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #FFF;
  transform: translateX(-50%);
  z-index: -1;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-key__list {
    padding-right: 4%;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-key__list {
    padding: 40px 16px;
  }
  .tomas .p-tomas-key__list::before {
    display: none;
  }
}
.tomas .p-tomas-key__item {
  position: relative;
  margin-bottom: 80px;
}
.tomas .p-tomas-key__item:last-child {
  margin-bottom: 0;
}
.tomas .p-tomas-key__num {
  position: absolute;
  top: 0;
  left: -4px;
  transform: translateX(-100%);
  font-size: 7vw;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  color: #e1e2ec;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-key__num {
    position: relative;
    left: 0;
    transform: translateX(0);
    color: #192872;
    font-size: 10vw;
  }
}
.tomas .p-tomas-key__item-title {
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  color: #192872;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-key__item-title {
    display: flex;
    align-items: baseline;
    gap: 8px;
    line-height: 1.2;
    margin-bottom: 1em;
  }
}
.tomas .p-tomas-key__item-desc {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
@media screen and (max-width: 960px) {
  .tomas .p-tomas-key__item-desc {
    line-height: 2;
  }
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-key__item-desc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.tomas .p-tomas-key__img {
  margin-top: 2rem;
  width: 100%;
  max-width: 800px;
  height: auto;
}
.tomas .p-tomas-key__img img {
  width: 100%;
  height: auto;
}

/* -------------------------------------------
 * 5. Data Section
 * -------------------------------------------
*/
.tomas .p-tomas-data {
  padding: 160px 64px;
}
@media screen and (max-width: 767px) {
  .tomas .p-tomas-data {
    padding: 64px 16px;
  }
}
.tomas .p-tomas-data .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
  padding-left: 5vw;
}
.tomas .p-tomas-data__head {
  width: calc(80% + 64px);
  align-items: center;
  position: relative;
  left: -64px;
}
.tomas .p-tomas-data__head::before {
  content: "";
  flex: 1;
  height: 2px;
  background-color: #192872;
  margin-top: 5%;
  margin-right: 2em;
}
.tomas .p-tomas-data__head::after {
  content: "";
  flex: 5;
  height: 2px;
  background-color: #192872;
  margin-top: 5%;
  margin-left: 2em;
}
.tomas .p-tomas-data__sub {
  font-family: "Arial", sans-serif;
  font-size: clamp(2rem, 1.757rem + 1.04vw, 3rem);
  font-weight: 700;
  line-height: 2.2;
  margin-top: 1em;
}
.tomas .p-tomas-data__text-top, .tomas .p-tomas-data__text-mid {
  margin: 4em 0;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
.tomas .p-tomas-data__text-mid {
  margin: 3em 0;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
.tomas .p-tomas-data__img-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 2%;
  width: 100%;
  height: auto;
}
.tomas .p-tomas-data__img-item {
  width: 100%;
  max-width: 400px;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.tomas .p-tomas-data__img-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.tomas .p-tomas-data__img-large {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.tomas .p-tomas-data__img-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.tomas .p-tomas-data__btn {
  margin-top: 80px;
  text-align: center;
}
.tomas .p-tomas-data__btn .c-btn-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  width: 150px;
  height: 70px;
  border: 2px solid #192872;
  border-radius: 10px;
  background-color: #fff;
  color: #192872;
  text-decoration: none;
  font-family: "Arial", sans-serif;
  font-size: 15px;
  font-weight: 400;
  transition: all 0.3s ease;
}
.tomas .p-tomas-data__btn .c-btn-back__arrow {
  content: "";
  display: inline-block;
  mask: url("../img/icon-arrow-left.svg") no-repeat center;
  -webkit-mask: url("../img/icon-arrow-left.svg") no-repeat center;
  mask-size: contain;
  -webkit-mask-size: contain;
  background-color: #192872;
  width: 24px;
  height: 24px;
  transition: all 0.3s ease;
}
.tomas .p-tomas-data__btn .c-btn-back__text {
  font-size: 18px;
  line-height: 1;
}
.tomas .p-tomas-data__btn .c-btn-back:hover {
  background-color: #192872;
  color: #fff;
}
.tomas .p-tomas-data__btn .c-btn-back:hover .c-btn-back__arrow {
  transform: translateX(-5px);
  background-color: #fff;
}

/* ===========================================
 * Tomas® Page Styles
 * ===========================================
*/
#body_wrap.tom-method {
  /* -------------------------------------------
  * First View
  */
  color: #231d1c;
}
#body_wrap.tom-method .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  text-shadow: none;
}
#body_wrap.tom-method .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "";
}
#body_wrap.tom-method .l-content {
  padding-top: 0;
}

/* -------------------------------------------
 * Common: Section Head (Company, Location)
 * -------------------------------------------
*/
.p-tom-intro,
.p-tom-adv,
.p-tom-rel,
.p-tom-key,
.p-tom-works,
.p-tom-data {
  /* -------------------------------------------
  * Head Section (Title + Subtitle)
  */
}
.p-tom-intro__head,
.p-tom-adv__head,
.p-tom-rel__head,
.p-tom-key__head,
.p-tom-works__head,
.p-tom-data__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 40px;
  border-bottom: 1px solid transparent;
}
@media screen and (max-width: 767px) {
  .p-tom-intro__head,
  .p-tom-adv__head,
  .p-tom-rel__head,
  .p-tom-key__head,
  .p-tom-works__head,
  .p-tom-data__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-tom-intro__title,
.p-tom-adv__title,
.p-tom-rel__title,
.p-tom-key__title,
.p-tom-works__title,
.p-tom-data__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-tom-intro__title,
  .p-tom-adv__title,
  .p-tom-rel__title,
  .p-tom-key__title,
  .p-tom-works__title,
  .p-tom-data__title {
    font-size: 4.5rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-tom-intro__sub,
.p-tom-adv__sub,
.p-tom-rel__sub,
.p-tom-key__sub,
.p-tom-works__sub,
.p-tom-data__sub {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-tom-intro__sub,
  .p-tom-adv__sub,
  .p-tom-rel__sub,
  .p-tom-key__sub,
  .p-tom-works__sub,
  .p-tom-data__sub {
    font-size: 12px;
  }
}

/* -------------------------------------------
 * 1. Intro Section
 * -------------------------------------------
*/
.tom-method .p-tom-intro {
  background-image: url("../img/bg-contact.webp");
  background-size: cover;
  background-position: left top;
  padding: 120px 64px;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-intro {
    padding: 64px 4%;
  }
}
.tom-method .p-tom-intro .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-intro .c-container {
    width: 100%;
  }
}
.tom-method .p-tom-intro__head {
  color: #FFF;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.tom-method .p-tom-intro__label {
  color: #FFF;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
}
.tom-method .p-tom-intro__lead {
  color: #FFF;
  font-size: clamp(1.75rem, 1.568rem + 0.78vw, 2.5rem);
  font-weight: 700;
  line-height: 1.8;
  margin: 4rem 0;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-intro__lead {
    margin: 2rem 0;
    line-height: 1.4;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-intro__lead {
    font-size: 22px;
  }
}
.tom-method .p-tom-intro__desc {
  color: #FFF;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-intro__desc {
    font-size: 14px;
    line-height: 2;
  }
}

/* -------------------------------------------
 * 2. Advantages Section
 * -------------------------------------------
*/
.tom-method .p-tom-adv {
  padding: 160px 64px;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv {
    padding: 80px 4%;
  }
}
.tom-method .p-tom-adv .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv .c-container {
    width: 100%;
  }
}
.tom-method .p-tom-adv__lead-head {
  margin: 4rem 0;
  padding-left: 5vw;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 500;
  line-height: 2.2;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv__lead-head {
    margin: 2rem 0;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__lead-head {
    padding-left: 0;
    font-size: 18px;
  }
}
.tom-method .p-tom-adv__check {
  padding-left: 5vw;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__check {
    padding-left: 0;
  }
}
.tom-method .p-tom-adv__check ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1em;
}
.tom-method .p-tom-adv__check li {
  position: relative;
  font-size: clamp(1rem, 0.875rem + 0.6vw, 1.25rem);
  font-weight: 500;
  margin-bottom: 1em;
  line-height: 2;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5em;
}
.tom-method .p-tom-adv__check li::before {
  content: "✓";
}
.tom-method .p-tom-adv__check li:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv__check li {
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__check li {
    font-size: 14px;
    line-height: 1.4;
  }
}
.tom-method .p-tom-adv__main-img {
  margin-top: 4rem;
  padding-left: 5vw;
  width: 80%;
  height: auto;
  aspect-ratio: 87/50;
  overflow: hidden;
}
.tom-method .p-tom-adv__main-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv__main-img {
    margin-top: 0;
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__main-img {
    padding-left: 0;
  }
}
.tom-method .p-tom-adv__cap-head {
  margin-top: 2rem;
  padding-left: 5vw;
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 500;
  line-height: 2.2;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__cap-head {
    padding-left: 0;
    font-size: 18px;
    font-weight: 700;
  }
}
.tom-method .p-tom-adv__cap-desc {
  margin-top: 1rem;
  padding-left: 5vw;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv__cap-desc {
    margin-top: 0;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__cap-desc {
    padding-left: 0;
    font-size: 14px;
    line-height: 2;
  }
}
.tom-method .p-tom-adv__details {
  padding-left: 5vw;
  margin-top: 4rem;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-adv__details {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__details {
    padding: 2.5rem 1rem;
    background-color: #EEE;
  }
}
.tom-method .p-tom-adv__detail-item {
  margin-bottom: 2rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.5rem;
}
.tom-method .p-tom-adv__detail-item:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__detail-item {
    flex-direction: column;
    align-items: center;
    gap: 15px;
    margin-bottom: 4rem;
  }
}
.tom-method .p-tom-adv__detail-img {
  width: 45%;
  height: auto;
  aspect-ratio: 3/2;
  max-width: 540px;
  overflow: hidden;
}
.tom-method .p-tom-adv__detail-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__detail-img {
    width: 80%;
    min-width: unset;
  }
}
.tom-method .p-tom-adv__detail-info {
  width: 55%;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__detail-info {
    width: 100%;
  }
}
.tom-method .p-tom-adv__detail-head {
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 1rem;
  color: #192872;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__detail-head {
    text-align: center;
  }
}
.tom-method .p-tom-adv__detail-desc {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-adv__detail-desc {
    font-size: 12px;
    line-height: 1.5;
  }
}

/* -------------------------------------------
 * 3. Our Work Setion
 * -------------------------------------------
*/
.tom-method .p-tom-works {
  padding: 160px 64px;
  background-color: #192872;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-works {
    padding: 80px 4%;
  }
}
.tom-method .p-tom-works .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-works .c-container {
    width: 100%;
  }
}
.tom-method .p-tom-works__title, .tom-method .p-tom-works__sub {
  color: #FFF;
}
.tom-method .p-tom-works__lead {
  margin: 8rem 0 4rem;
  padding-left: 5vw;
  font-size: clamp(1.125rem, 1.034rem + 0.39vw, 1.5rem);
  font-weight: 500;
  line-height: 2.2;
  color: #FFF;
}
@media screen and (max-width: 960px) {
  .tom-method .p-tom-works__lead {
    margin: 4rem 0;
    line-height: 2;
  }
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-works__lead {
    padding-left: 0;
    font-size: 14px;
  }
}
.tom-method .p-tom-works__list {
  padding: 0 0 120px;
  padding-left: 5vw;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-works__list {
    padding: 2.5rem 1rem;
    background-color: #FFF;
  }
}
.tom-method .p-tom-works__item {
  position: relative;
  margin-bottom: 80px;
  padding: 64px 0;
  padding-right: 64px;
  position: relative;
  background-color: #FFF;
  z-index: 0;
}
.tom-method .p-tom-works__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #FFF;
  transform: translateX(-50%);
  z-index: -1;
}
.tom-method .p-tom-works__item:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-works__item {
    margin-bottom: 4rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
  }
  .tom-method .p-tom-works__item::before {
    display: none;
  }
}
.tom-method .p-tom-works__img {
  margin-top: 2rem;
  margin-bottom: 2rem;
  width: 74%;
  height: auto;
  max-width: 640px;
  height: auto;
}
.tom-method .p-tom-works__img img {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-works__img {
    margin: 0;
    width: 80%;
    max-width: unset;
  }
}
.tom-method .p-tom-works__item-title {
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  color: #192872;
  margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-works__item-title {
    text-align: center;
  }
}
.tom-method .p-tom-works__item-desc {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-works__item-desc {
    font-size: 12px;
    line-height: 1.5;
  }
}

/* -------------------------------------------
 * 4. Data Section
 * -------------------------------------------
*/
.tom-method .p-tom-data {
  padding: 160px 64px;
}
@media screen and (max-width: 767px) {
  .tom-method .p-tom-data {
    padding: 64px 16px;
  }
}
.tom-method .p-tom-data .c-container {
  width: 80%;
  max-width: 1280px;
  margin-right: auto;
  padding-left: 5vw;
}
.tom-method .p-tom-data__head {
  width: calc(80% + 64px);
  align-items: center;
  position: relative;
  left: -64px;
}
.tom-method .p-tom-data__head::before {
  content: "";
  flex: 1;
  height: 2px;
  background-color: #192872;
  margin-top: 5%;
  margin-right: 2em;
}
.tom-method .p-tom-data__head::after {
  content: "";
  flex: 5;
  height: 2px;
  background-color: #192872;
  margin-top: 5%;
  margin-left: 2em;
}
.tom-method .p-tom-data__sub {
  font-family: "Arial", sans-serif;
  font-size: clamp(2rem, 1.757rem + 1.04vw, 3rem);
  font-weight: 700;
  line-height: 2.2;
  margin-top: 1em;
}
.tom-method .p-tom-data__text-top, .tom-method .p-tom-data__text-mid {
  margin: 4em 0;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
.tom-method .p-tom-data__text-mid {
  margin: 3em 0;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
}
.tom-method .p-tom-data__img-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 2%;
  width: 100%;
  height: auto;
}
.tom-method .p-tom-data__img-item {
  width: 100%;
  max-width: 400px;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.tom-method .p-tom-data__img-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.tom-method .p-tom-data__img-large {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.tom-method .p-tom-data__img-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.tom-method .p-tom-data__btn {
  margin-top: 80px;
  text-align: center;
}
.tom-method .p-tom-data__btn .c-btn-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  width: 150px;
  height: 70px;
  border: 2px solid #192872;
  border-radius: 10px;
  background-color: #fff;
  color: #192872;
  text-decoration: none;
  font-family: "Arial", sans-serif;
  font-size: 15px;
  font-weight: 400;
  transition: all 0.3s ease;
}
.tom-method .p-tom-data__btn .c-btn-back__arrow {
  content: "";
  display: inline-block;
  mask: url("../img/icon-arrow-left.svg") no-repeat center;
  -webkit-mask: url("../img/icon-arrow-left.svg") no-repeat center;
  mask-size: contain;
  -webkit-mask-size: contain;
  background-color: #192872;
  width: 24px;
  height: 24px;
  transition: all 0.3s ease;
}
.tom-method .p-tom-data__btn .c-btn-back__text {
  font-size: 18px;
  line-height: 1;
}
.tom-method .p-tom-data__btn .c-btn-back:hover {
  background-color: #192872;
  color: #fff;
}
.tom-method .p-tom-data__btn .c-btn-back:hover .c-btn-back__arrow {
  transform: translateX(-5px);
  background-color: #fff;
}

/* ===========================================
 * Recruit Page Styles
 * ===========================================
*/
#body_wrap.recruit {
  /* -------------------------------------------
  * First View
  */
}
#body_wrap.recruit .l-topTitleArea .l-topTitleArea__body {
  transform: translateY(50%);
}
@media screen and (max-width: 767px) {
  #body_wrap.recruit .l-topTitleArea .l-topTitleArea__body {
    transform: translateY(240%);
  }
}
#body_wrap.recruit .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  text-shadow: none;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(2.5rem, 1.773rem + 3.64vw, 4.5rem);
}
#body_wrap.recruit .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "採用情報";
  margin-left: 0.25em;
}
#body_wrap.recruit #content {
  position: static;
  padding-top: 0;
}
#body_wrap.recruit .p-recruit-fv__inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  max-height: 1080px;
  z-index: 2;
}
#body_wrap.recruit .p-recruit-fv__inner .p-recruit-fv__catch {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 3;
  letter-spacing: 0.25rem;
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
  font-weight: 500;
}

.p-recruit {
  color: #231d1c;
  font-family: var(--font-main);
  /* -------------------------------------------
   * Common: Section Layout
   * -------------------------------------------
  */
  /* -------------------------------------------
   * Sticky Navigation
   * -------------------------------------------
  */
  /* -------------------------------------------
   * 2. About Us Section
   * -------------------------------------------
  */
  /* -------------------------------------------
   * 3. Message Section (代表メッセージ)
   * -------------------------------------------
  */
  /* -------------------------------------------
   * 4. Work Environment Section (職場環境)
   * -------------------------------------------
  */
  /* -------------------------------------------
   * 5-1. Interview Menu Section (先輩インタビュー：メニュー)
   * -------------------------------------------
  */
  /* -------------------------------------------
   * 5-2. Interview Detail Section (個別記事)
   * -------------------------------------------
  */
  /* -------------------------------------------
   * 6. 募集要項 (Recruitment List)
   * -------------------------------------------
  */
  /* -------------------------------------------
  * 7. Company Section (WYSIWYG)
  * -------------------------------------------
  */
}
.p-recruit .section_ {
  padding: 100px 64px;
}
@media screen and (max-width: 767px) {
  .p-recruit .section_ {
    padding: 64px 4%;
  }
}
.p-recruit .p-recruit-nav-wrapper {
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 100;
}
#body_wrap.admin-bar .p-recruit .p-recruit-nav-wrapper {
  top: 32px;
}
@media screen and (max-width: 767px) {
  #body_wrap.admin-bar .p-recruit .p-recruit-nav-wrapper {
    top: 46px;
  }
}
.p-recruit .p-recruit-nav {
  width: 100%;
  padding: 0 64px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-nav {
    padding: 0 4%;
  }
}
.p-recruit .p-recruit-nav__list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  list-style: none;
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.p-recruit .p-recruit-nav__list::-webkit-scrollbar {
  display: none;
}
.p-recruit .p-recruit-nav__item {
  flex-shrink: 0;
}
.p-recruit .p-recruit-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background-color: #192872;
  color: #fff;
  width: 120px;
  height: 60px;
  border-radius: 0 0 0 24px;
  transition: background-color 0.3s ease;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
}
.p-recruit .p-recruit-nav__link.__logo {
  background-color: #192872;
  font-family: "Arial", sans-serif;
  font-size: 1.2rem;
}
.p-recruit .p-recruit-nav__link:hover {
  background-color: #192872;
  opacity: 0.9;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-nav__link {
    font-size: 12px;
    width: 100px;
    height: 48px;
  }
}
.p-recruit .p-recruit-nav__item:nth-child(2) .p-recruit-nav__link, .p-recruit .p-recruit-nav__item:nth-child(4) .p-recruit-nav__link {
  background-color: #3c5891;
}
.p-recruit .p-recruit-nav__item:nth-child(3) .p-recruit-nav__link, .p-recruit .p-recruit-nav__item:nth-child(6) .p-recruit-nav__link {
  background-color: #1d4293;
}
.p-recruit .p-recruit-nav__item:nth-child(5) .p-recruit-nav__link {
  background-color: #192872;
}
.p-recruit .p-recruit-about {
  padding: 140px 64px 100px;
  color: #231d1c;
  /* About Us専用のヘッダーレイアウト */
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-about {
    padding: 80px 64px;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-about {
    padding: 80px 4%;
  }
}
.p-recruit .p-recruit-about__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-about__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 40px;
  }
}
.p-recruit .p-recruit-about__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4rem, 3.5rem + 2.5vw, 7rem);
  line-height: 1;
  color: #192872;
  margin-right: 24px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-about__title {
    font-size: 4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-recruit .p-recruit-about__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-about__sub {
    font-size: 12px;
  }
}
.p-recruit .p-recruit-about__body {
  width: 72%;
  max-width: 1280px;
  padding-left: 5vw;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-about__body {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-about__body {
    padding-left: 0;
  }
}
.p-recruit .p-recruit-about__text {
  font-size: clamp(0.875rem, 0.8rem + 0.4vw, 1.125rem);
  line-height: 2.4;
  text-align: justify;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-about__text {
    font-size: 14px;
    line-height: 2;
  }
}
.p-recruit .p-recruit-message {
  background-image: url("../img/bg-contact.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}
.p-recruit .p-recruit-message__head {
  display: flex;
  align-items: baseline;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-message__head {
    flex-direction: column;
  }
}
.p-recruit .p-recruit-message__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4rem, 3.5rem + 2.5vw, 7rem);
  line-height: 1;
  color: #FFF;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-message__title {
    font-size: 4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-recruit .p-recruit-message__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #FFF;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-message__sub {
    font-size: 12px;
  }
}
.p-recruit .p-recruit-message__body {
  position: relative;
  margin-left: 3vw;
  padding: 5rem 0;
  padding-left: 48px;
  border-left: 1px solid rgba(255, 255, 255, 0.75);
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-message__body {
    margin-left: 0;
    margin: 4rem 0;
    padding: 2rem 0;
    padding-left: 24px;
  }
}
.p-recruit .p-recruit-message__lead {
  font-size: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
  line-height: 2.2;
  margin-bottom: 60px;
  font-weight: 400;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-message__lead {
    width: 100%;
  }
}
.p-recruit .p-recruit-message__name {
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.5rem);
  font-weight: 400;
  margin-bottom: 60px;
  letter-spacing: 0.1em;
  width: 72%;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-message__name {
    width: 100%;
  }
}
.p-recruit .p-recruit-message__profile-area {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 60px;
  width: 72%;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-message__profile-area {
    width: 100%;
    flex-direction: column-reverse;
    gap: 40px;
  }
}
.p-recruit .p-recruit-message__profile-text {
  width: 55%;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  text-align: justify;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-message__profile-text {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-message__profile-text {
    font-size: 14px;
    line-height: 2;
  }
}
.p-recruit .p-recruit-message__img {
  width: 40%;
  aspect-ratio: 4/3;
  background-color: #ccc;
  line-height: 0;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-message__img {
    width: 100%;
  }
}
.p-recruit .p-recruit-message__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit .p-recruit-message__img-placeholder {
  display: none;
}
.p-recruit .p-recruit-work {
  padding: 160px 64px;
  background-color: #fff;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-work {
    padding: 80px 4%;
  }
}
.p-recruit .p-recruit-work__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 120px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-work__head {
    margin-bottom: 64px;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 64px;
  }
}
.p-recruit .p-recruit-work__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(3rem, 2.5rem + 2.5vw, 5rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__title {
    font-size: 4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-recruit .p-recruit-work__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__sub {
    font-size: 12px;
  }
}
.p-recruit .p-recruit-work__list {
  display: flex;
  flex-direction: column;
  gap: 64px;
  padding-left: 5vw;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-work__list {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__list {
    gap: 40px;
    padding-left: 0;
  }
}
.p-recruit .p-recruit-work__item {
  display: flex;
  align-items: center;
  gap: 40px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-work__item {
    gap: 24px;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__item {
    flex-direction: column;
  }
}
.p-recruit .p-recruit-work__img {
  width: 40%;
  flex-shrink: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__img {
    width: 100%;
  }
}
.p-recruit .p-recruit-work__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit .p-recruit-work__info {
  flex-grow: 1;
}
.p-recruit .p-recruit-work__name {
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.5rem);
  font-weight: 700;
  margin-bottom: 24px;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__name {
    margin-bottom: 16px;
    font-size: 18px;
  }
}
.p-recruit .p-recruit-work__text {
  font-size: clamp(0.75rem, 0.659rem + 0.45vw, 1rem);
  line-height: 2;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-work__text {
    font-size: 12px;
    line-height: 2;
  }
}
.p-recruit .p-recruit-int-nav {
  background-color: #192872;
  color: #fff;
  overflow: hidden;
}
.p-recruit .p-recruit-int-nav__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-nav__head {
    flex-direction: column;
    margin-bottom: 40px;
  }
}
.p-recruit .p-recruit-int-nav__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(3rem, 2.5rem + 2.5vw, 5rem);
  color: #FFF;
  line-height: 1;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-nav__title {
    font-size: 4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-recruit .p-recruit-int-nav__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #FFF;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-nav__sub {
    font-size: 12px;
  }
}
.p-recruit .p-recruit-int-nav__list {
  display: flex;
  justify-content: space-between;
  gap: 4%;
  padding-bottom: 40px;
  width: 72%;
  max-width: 1280px;
  padding-left: 5vw;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-int-nav__list {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-nav__list {
    flex-wrap: wrap;
    padding-left: 0;
    gap: 8px;
    row-gap: 100px;
  }
}
.p-recruit .p-recruit-int-nav__item {
  position: relative;
  display: block;
  width: 30%;
  text-decoration: none;
  color: #fff;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-nav__item {
    width: 48%;
    max-width: 400px;
    margin: 0 auto;
  }
}
.p-recruit .p-recruit-int-nav__item:hover {
  opacity: 0.8;
  transform: translateY(-5px);
}
.p-recruit .p-recruit-int-nav__bg-num {
  position: absolute;
  top: 68%;
  left: 0;
  transform: translateX(-10%);
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(8rem, 12vw, 12rem);
  line-height: 1;
  color: rgba(255, 255, 255, 0.05);
  z-index: 0;
  pointer-events: none;
}
.p-recruit .p-recruit-int-nav__img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 3/2;
  background-color: #fff;
  margin-bottom: 20px;
  overflow: hidden;
}
.p-recruit .p-recruit-int-nav__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.p-recruit .p-recruit-int-nav__job {
  position: relative;
  z-index: 1;
  font-size: clamp(0.875rem, 0.739rem + 0.68vw, 1.25rem);
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-nav__job {
    font-size: 14px;
  }
}
.p-recruit .p-recruit-int-nav__arrow {
  font-size: 0.8em;
}
.p-recruit .p-recruit-int-details {
  padding: 120px 0;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details {
    padding: 64px 0;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail {
  position: relative;
  margin-top: 80px;
  padding: 64px;
  padding-right: 0;
  overflow: hidden;
  width: 72%;
  max-width: 1280px;
  /* ▼ 背景装飾エリア */
  /* 背景の巨大数字 (01) */
  /* 左サイドの縦書きテキスト (KOHKI) */
  /* ▼ 上部エリア (プロフィール + スケジュール) */
  /* --- 左カラム: プロフィール --- */
  /* --- 右カラム: スケジュール --- */
  /* ▼ 中部エリア (業務内容・やりがい) */
  /* 見出しラベル (紺色角丸) */
  /* 業務風景画像 (2カラム) */
  /* ▼ 下部エリア (先輩からのメッセージ) */
  /* 背景のMessage文字 */
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail {
    width: 100%;
    padding-right: 64px;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail {
    padding-right: 4%;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail:first-child {
  margin-top: 0;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__deco {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__bg-num {
  position: absolute;
  top: 0;
  left: -20px;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(10rem, 9.545rem + 2.27vw, 11.25rem);
  line-height: 1;
  color: rgba(25, 40, 114, 0.11);
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__bg-num {
    left: -10px;
    top: 20px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__bg-text {
  position: absolute;
  top: 8%;
  left: -2%;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(3rem, 8vw, 8rem);
  color: rgba(25, 40, 114, 0.11);
  writing-mode: vertical-rl;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__bg-text {
    display: none;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__top {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  margin-bottom: 80px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__top {
    gap: 40px;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__top {
    flex-direction: column;
    margin-bottom: 60px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__profile {
  width: 60%;
  padding-left: 5vw;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__profile {
    padding-left: 0;
    width: 50%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__profile {
    width: 100%;
    padding-left: 0;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__name-area {
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.5rem);
  font-weight: 400;
  margin-bottom: 24px;
  line-height: 1.4;
  padding-bottom: 10px;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__occupation {
  display: inline-block;
  margin-right: 1em;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__lead {
  margin-bottom: 30px;
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__lead {
    font-size: 14px;
    line-height: 1.6;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__main-img {
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__main-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule {
  width: 40%;
  background-color: rgba(29, 66, 147, 0.1);
  padding: 1.25rem 2rem;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule {
    width: 50%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule {
    width: 100%;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-title {
  text-align: center;
  background-color: #fff;
  padding: 8px 20px;
  border-radius: 10px;
  font-size: clamp(0.875rem, 0.784rem + 0.45vw, 1.125rem);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  margin: 0 auto 30px;
  width: 100%;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body {
  font-size: 0.9rem;
  /* WYSIWYGでテーブルが挿入される想定のスタイル */
  /* 左側 (時間) */
  /* 最後の行の縦線を調整 */
  /* 右側 (内容) */
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body table {
  width: 100%;
  border-collapse: collapse;
  border: none;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body tr {
  border: none;
  display: flex;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body tr:last-child td:first-child::after {
  height: 0 !important;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body td {
  flex: 0 1 100%;
  width: 100% !important;
  padding: 8px 10px;
  border: none;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body td:first-child {
  flex: 1 0 5em;
  width: 5em !important;
  text-align: right;
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  padding-right: 20px;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body td:first-child::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 0.5px;
  height: 100%;
  background-color: #403d36;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body td:first-child::before {
  content: "";
  position: absolute;
  top: 50%;
  right: -2.5px;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #403d36;
  z-index: 1;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body tr:last-child td:first-child::after {
  height: 24px;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__schedule-body td:last-child {
  padding-left: 20px;
  font-weight: 500;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__block {
  margin-bottom: 80px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__block {
    padding-left: 0;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__block {
    padding-left: 0;
    margin-bottom: 60px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__label {
  display: inline-block;
  background-color: #192872;
  color: #fff;
  width: 240px;
  text-align: center;
  padding: 0.5em 2em;
  border-radius: 10px;
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  margin-bottom: 30px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__label {
    font-size: 14px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__text {
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  line-height: 2;
  margin-bottom: 30px;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__images {
  display: flex;
  gap: 30px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__images {
    flex-direction: column;
    gap: 20px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__sub-img {
  width: calc(50% - 15px);
  aspect-ratio: 3/2;
  background-color: #eee;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__sub-img {
    width: 100%;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__sub-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-area {
  position: relative;
  background-color: #192872;
  color: #fff;
  margin-top: 80px;
  padding: 64px 64px 64px 0;
  position: relative;
  width: 100%;
  max-width: 1280px;
  z-index: 2;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-area::before {
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 100%;
  height: 100%;
  background-color: #192872;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-area {
    padding-right: 24px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-inner {
  position: relative;
  z-index: 1;
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-title {
  display: block;
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.5rem);
  font-weight: 400;
  margin-bottom: 24px;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-title {
    margin-bottom: 16px;
    font-size: 18px;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-text {
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  line-height: 2.2;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.p-recruit .p-recruit-int-details .p-recruit-int-detail__msg-bg {
  position: absolute;
  top: 0;
  right: 0;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4rem, 3.636rem + 1.82vw, 5rem);
  color: rgba(255, 255, 255, 0.05);
  line-height: 1;
  pointer-events: none;
  z-index: 1;
}
.p-recruit .p-recruit-info {
  padding: 0;
  /* -------------------------------------------
   * 6.1 Recruitment Info List
   * -------------------------------------------
  */
  /* --- 下部リストエリア (薄いグレー背景) --- */
  /* 求人カード */
  /* カードヘッダー (雇用形態 + タイトル) */
  /* カードボディ (画像 + 詳細) */
  /* 左：画像 */
  /* 右：コンテンツ */
  /* 条件データリスト */
  /* 詳細ボタンエリア */
  /* 投稿なしメッセージ */
}
.p-recruit .p-recruit-info__head-area {
  padding: 120px 64px;
  display: flex;
  flex-direction: column;
  align-items: baseline;
  background-color: #192872;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}
.p-recruit .p-recruit-info__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  line-height: 1;
  color: #FFF;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__title {
    font-size: 5.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-recruit .p-recruit-info__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #FFF;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__sub {
    font-size: 12px;
  }
}
.p-recruit .p-recruit-info__lead {
  font-size: clamp(0.875rem, 0.8rem + 0.4vw, 1.125rem);
  line-height: 2.4;
  text-align: justify;
  font-weight: 500;
  padding: 80px 0 0 5vw;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-info__lead {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__lead {
    font-size: 14px;
    line-height: 2;
    width: 100%;
    padding: 40px 0 0;
  }
}
.p-recruit .p-recruit-info__list-area {
  background-color: rgba(29, 66, 147, 0.1);
  padding: 100px 0;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__list-area {
    padding: 60px 0;
  }
}
.p-recruit .p-recruit-info__list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  width: 72%;
  max-width: 1280px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-info__list {
    width: 96%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__list {
    width: 100%;
    gap: 24px;
  }
}
.p-recruit .p-recruit-info__card {
  background-color: #fff;
  padding: 40px;
  padding-left: 5vw;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__card {
    padding: 24px;
  }
}
.p-recruit .p-recruit-info__card-head {
  display: flex;
  align-items: center;
  padding-bottom: 20px;
  margin-bottom: 30px;
  border-bottom: none;
  padding-bottom: 0;
}
.p-recruit .p-recruit-info__label {
  background-color: #192872;
  color: #fff;
  font-family: var(--font-number);
  font-size: clamp(0.875rem, 0.693rem + 0.91vw, 1.25rem);
  font-weight: 700;
  padding: 6px 16px;
  margin-right: 16px;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__label {
    font-size: 14px;
    padding: 4px 12px;
    margin-right: 8px;
  }
}
.p-recruit .p-recruit-info__job-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.693rem + 0.91vw, 1.25rem);
  font-weight: 500;
  color: #192872;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__job-title {
    font-size: 14px;
  }
}
.p-recruit .p-recruit-info__card-body {
  display: flex;
  gap: 40px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__card-body {
    flex-direction: column;
    gap: 24px;
  }
}
.p-recruit .p-recruit-info__img {
  width: 45%;
  height: 100%;
  flex-shrink: 0;
  aspect-ratio: 3/2;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__img {
    width: 100%;
  }
}
.p-recruit .p-recruit-info__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit .p-recruit-info__content {
  flex-grow: 1;
  width: 55%;
  display: flex;
  flex-direction: column;
}
.p-recruit .p-recruit-info__desc {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.8;
  margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__desc {
    font-size: 14px;
    line-height: 1.6;
  }
}
.p-recruit .p-recruit-info__data {
  margin-bottom: 30px;
  padding-top: 2rem;
  border-top: 1px solid #403d36;
}
.p-recruit .p-recruit-info__row {
  display: flex;
  padding-bottom: 8px;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__row {
    flex-direction: column;
  }
}
.p-recruit .p-recruit-info__row dt {
  width: auto;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__row dt {
    width: 100%;
    margin-bottom: 4px;
  }
}
.p-recruit .p-recruit-info__row dd {
  width: 100%;
}
.p-recruit .p-recruit-info__btn-wrap {
  margin-top: auto;
  text-align: right;
}
.p-recruit .p-recruit-info__btn {
  display: inline-block;
  background-color: #192872;
  color: #fff;
  text-decoration: none;
  padding: 12px 40px;
  font-weight: 700;
  font-size: 0.9rem;
  transition: opacity 0.3s;
}
.p-recruit .p-recruit-info__btn:hover {
  opacity: 0.8;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-info__btn {
    width: 100%;
    text-align: center;
  }
}
.p-recruit .p-recruit-info__no-post {
  text-align: center;
  padding: 40px;
  color: #666;
}
.p-recruit .p-recruit-company {
  padding: 160px 64px;
  position: relative;
  z-index: 1;
  /* WYSIWYGエディタ内のテーブルスタイル上書き */
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-company {
    padding: 80px 4%;
  }
}
.p-recruit .p-recruit-company__head {
  display: flex;
  align-items: baseline;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__head {
    flex-direction: column;
  }
}
.p-recruit .p-recruit-company__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4rem, 3.5rem + 2.5vw, 7rem);
  line-height: 1;
  color: #192872;
  margin-right: 24px;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__title {
    font-size: 4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-recruit .p-recruit-company__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__sub {
    font-size: 12px;
  }
}
.p-recruit .p-recruit-company__body {
  max-width: 1280px;
  margin-top: 64px;
  margin-right: auto;
  padding-left: 5vw;
  /* 認証・認定エリアの画像調整 */
}
.p-recruit .p-recruit-company__body .table-wrap {
  position: relative;
  margin-bottom: 64px;
  padding: 2.5vw 0;
}
.p-recruit .p-recruit-company__body .table-wrap::before {
  position: absolute;
  content: "";
  top: 0;
  left: -2vw;
  width: 1px;
  height: 100%;
  background-color: #192872;
  z-index: 1;
}
.p-recruit .p-recruit-company__body .table-wrap:last-child {
  padding-top: 1.5vw;
  margin-bottom: 0;
}
.p-recruit .p-recruit-company__body table {
  position: relative;
  width: 100% !important;
  border: none !important;
  border-collapse: collapse;
  table-layout: fixed;
}
.p-recruit .p-recruit-company__body tbody, .p-recruit .p-recruit-company__body tr {
  border: none !important;
}
.p-recruit .p-recruit-company__body td {
  border: none !important;
  padding: 4px 0;
  vertical-align: top;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  color: #231d1c;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__body td {
    display: block;
    width: 100% !important;
    padding: 0 0 10px 0;
    font-size: 14px;
  }
}
.p-recruit .p-recruit-company__body td:first-child {
  width: 15% !important;
  color: #192872;
  padding-left: 8px;
  padding-right: 20px;
}
@media screen and (max-width: 960px) {
  .p-recruit .p-recruit-company__body td:first-child {
    width: 20% !important;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__body td:first-child {
    margin-top: 20px;
    margin-bottom: 5px;
    padding-right: 0;
    font-size: 18px;
    width: 100% !important;
  }
}
.p-recruit .p-recruit-company__body td:last-child {
  width: 85% !important;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__body td:last-child {
    padding-left: 26px;
    width: 100% !important;
  }
}
.p-recruit .p-recruit-company__body .p-recruit-company__img {
  width: 100%;
  max-width: 840px;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.p-recruit .p-recruit-company__body .p-recruit-company__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit .p-recruit-company__bg-text {
  position: absolute;
  bottom: 4%;
  left: -1%;
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(5rem, 6.25rem + 1.25vw, 7.5rem);
  color: rgba(25, 40, 114, 0.11);
  line-height: 1;
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit-company__bg-text {
    font-size: 3.5rem;
    bottom: 2%;
  }
}

/* ===========================================
 * Policy Page Styles
 * ===========================================
*/
.page.information-security-policy {
  /* -------------------------------------------
  * First View
  */
}
.page.information-security-policy .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  text-shadow: none;
}
.page.information-security-policy .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "情報セキュリティポリシー";
  margin-left: 0.5em;
}

.page.privacy-policy {
  /* -------------------------------------------
  * First View
  */
}
.page.privacy-policy .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  text-shadow: none;
}
.page.privacy-policy .l-topTitleArea .l-topTitleArea__body .c-pageTitle::after {
  content: "プライバシーポリシー";
  margin-left: 0.5em;
}

.page.information-security-policy,
.page.privacy-policy {
  /* -------------------------------------------
  * First View
  */
}
.page.information-security-policy .l-topTitleArea .l-topTitleArea__body,
.page.privacy-policy .l-topTitleArea .l-topTitleArea__body {
  transform: translateY(100%);
}
.page.information-security-policy .l-topTitleArea .l-topTitleArea__body .c-pageTitle,
.page.privacy-policy .l-topTitleArea .l-topTitleArea__body .c-pageTitle {
  font-size: clamp(3.5rem, 3.257rem + 1.04vw, 4.5rem);
}

.p-policy {
  color: #231d1c;
}

/* -------------------------------------------
 * Common: Section Head (Company, Location)
 * -------------------------------------------
*/
.p-policy-content {
  padding: 0 64px;
  width: 80%;
  max-width: 1280px;
  /* -------------------------------------------
  * Head Section (Title + Subtitle)
  */
}
@media screen and (max-width: 960px) {
  .p-policy-content {
    width: 100%;
    padding: 64px 4%;
  }
}
.p-policy-content__head {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 1rem;
  margin-bottom: 40px;
  border-left: 1px solid transparent;
}
@media screen and (max-width: 767px) {
  .p-policy-content__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}
.p-policy-content__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4.5rem, 4.227rem + 1.17vw, 5.625rem);
  line-height: 1;
  color: #192872;
  margin-right: 16px;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .p-policy-content__title {
    font-size: 3.4rem;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.p-policy-content__sub {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #192872;
  letter-spacing: 0.1em;
  margin-left: 0.25em;
}
@media screen and (max-width: 767px) {
  .p-policy-content__sub {
    font-size: 12px;
  }
}
.p-policy-content__body {
  padding: 2.5vw 0 2.5vw 5vw;
  position: relative;
}
.p-policy-content__body::before {
  position: absolute;
  content: "";
  display: block;
  width: 2px;
  height: 100%;
  background-color: #192872;
  top: 0;
  left: 2vw;
  z-index: -1;
}
.p-policy-content__body h2 {
  font-size: clamp(1.5rem, 1.329rem + 0.65vw, 2rem);
  font-weight: 400;
  line-height: 1.6;
  margin-top: 48px;
  margin-bottom: 24px;
}
.p-policy-content__body h3 {
  font-size: clamp(1.25rem, 1.129rem + 0.52vw, 1.75rem);
  font-weight: 400;
  line-height: 1.8;
  margin-top: 40px;
  margin-bottom: 20px;
}
.p-policy-content__body h4 {
  font-size: clamp(1rem, 0.929rem + 0.39vw, 1.5rem);
  font-weight: 400;
  line-height: 2;
  margin-top: 32px;
  margin-bottom: 16px;
}
.p-policy-content__body p,
.p-policy-content__body ul li,
.p-policy-content__body ol li {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 1.6;
  text-align: justify;
}
.p-policy-content__body ul, .p-policy-content__body ol {
  list-style-type: disc;
  margin: 1.5em 0;
}
.p-policy-content__body ul li,
.p-policy-content__body ol li {
  line-height: 2.2;
  margin-left: 1.5em;
}

/* ===========================================
 * Recruit Post Page Styles
 * ===========================================
*/
#body_wrap.single.recruitment {
  /* -------------------------------------------
  * First View
  */
}
#body_wrap.single.recruitment .l-header__logo .-img {
  display: none;
}
#body_wrap.single.recruitment .l-topTitleArea .l-topTitleArea__body .c-postTitle .__recruit_post_ttl {
  transform: translateY(25%);
  font-family: "Arial", sans-serif;
  font-size: clamp(5rem, 4.029rem + 4.14vw, 9rem);
  font-weight: 600;
  position: relative;
  z-index: 6;
}
@media screen and (max-width: 767px) {
  #body_wrap.single.recruitment .l-topTitleArea .l-topTitleArea__body .c-postTitle .__recruit_post_ttl {
    font-size: 5.4rem;
  }
}
#body_wrap.single.recruitment .l-topTitleArea::after {
  z-index: 1;
}
#body_wrap.single.recruitment .p-side-nav,
#body_wrap.single.recruitment .p-side-nav-bg {
  display: none;
}
#body_wrap.single.recruitment #content {
  padding: 0;
}
#body_wrap.single.recruitment .c-container {
  margin: 0;
  padding: 0;
  max-width: 100%;
  width: 100%;
}

/* ===========================================
* Recruitment Detail Page
* ===========================================
*/
.p-recruitment-detail {
  background-color: #fff; /* 全体背景は白 */
  color: #231d1c;
  font-family: var(--font-main);
  /* コンテナ幅調整（読みやすくするために少し狭める場合） */
  /* -------------------------------------------
  * Header
  * -------------------------------------------
  */
  /* -------------------------------------------
  * Section (Common)
  * -------------------------------------------
  */
  /* セクション共通 */
  /* 見出し (募集要項、応募方法...) */
  /* テーブルエリア (定義リスト) */
  /* 行 (項目 + 内容) */
  /* 項目名 (左側) */
  /* 内容 (右側・グレー背景) */
  /* -------------------------------------------
   * Sticky Navigation
   * -------------------------------------------
  */
}
.p-recruitment-detail .c-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}
.p-recruitment-detail__header {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 100px 64px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  background-color: #FFF;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__header {
    padding: 64px 4%;
  }
}
.p-recruitment-detail__header::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 100%;
  background-color: #e8f0f3; /* ヘッダー背景色 (薄い青) */
  z-index: -1;
}
.p-recruitment-detail__header-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #FFF;
  z-index: -1;
}
.p-recruitment-detail__label {
  background-color: #192872;
  color: #fff;
  font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 2px;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__label {
    font-size: 12px;
  }
}
.p-recruitment-detail__title {
  font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
  font-weight: 700;
  color: #192872;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__title {
    font-size: 18px;
  }
}
.p-recruitment-detail__intro-text {
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  line-height: 2.2;
  margin: 40px 0;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__intro-text {
    font-size: 14px;
    line-height: 2;
    margin: 24px 0;
  }
}
.p-recruitment-detail__intro-img {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.p-recruitment-detail__intro-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruitment-detail__section {
  max-width: 1280px;
  width: 100%;
  padding: 120px 64px;
  margin: 0 auto;
  margin-bottom: 100px;
  background-color: #f7f7f7;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__section {
    margin-bottom: 60px;
    padding: 64px 4%;
  }
}
.p-recruitment-detail__heading {
  text-align: center;
  color: #192872; /* 濃紺 */
  font-size: clamp(1.125rem, 0.943rem + 0.78vw, 1.875rem);
  font-weight: 700;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__heading {
    font-size: 18px;
    margin-bottom: 30px;
  }
}
.p-recruitment-detail__table {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.p-recruitment-detail__table dl {
  width: 100%;
}
.p-recruitment-detail__row {
  display: flex;
  flex-direction: column;
  margin-bottom: 16px; /* 行ごとの隙間 */
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__row {
    margin-bottom: 24px;
  }
}
.p-recruitment-detail__row:last-child {
  margin-bottom: 0;
}
.p-recruitment-detail__row:has(dt.__detail), .p-recruitment-detail__row:has(dd.__detail) {
  margin-top: -4em;
}
.p-recruitment-detail dt {
  width: 100%; /* PCでの幅 */
  padding: 0.75em 0 0.75em 1em; /* 右側のボックスと高さを合わせるため上パディングで調整、またはflex配置 */
  font-weight: 700;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  color: #192872; /* 青文字 */
  background-color: #fff; /* 白背景 */
  flex-shrink: 0;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail dt {
    width: 100%;
    font-size: 16px;
  }
}
.p-recruitment-detail dt.__detail {
  background-color: transparent;
  padding-left: 2em;
  padding-bottom: 0;
}
.p-recruitment-detail dd {
  width: 100%; /* PCでの幅 */
  padding: 1em 0 3em 2em;
  font-size: 1rem;
  line-height: 1.8;
  border-radius: 2px; /* 角を少し丸めるかはお好みで */
  color: #231d1c;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail dd {
    width: 100%;
    font-size: 14px;
  }
}
.p-recruitment-detail dd.__detail {
  padding-top: 0.25em;
  padding-left: 3em;
}
.p-recruitment-detail__action {
  text-align: center;
}
.p-recruitment-detail__btn {
  display: inline-block;
  background-color: #192872;
  color: #fff;
  text-decoration: none;
  font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);
  font-weight: 700;
  width: 280px;
  margin-top: 4rem;
  padding: 12px 32px;
  border-radius: 24px;
  transition: opacity 0.3s;
}
.p-recruitment-detail__btn:hover {
  opacity: 0.8;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail__btn {
    width: 80%;
    padding: 16px 0;
    font-size: 16px;
  }
}
.p-recruitment-detail .p-recruit-nav-wrapper {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}
.p-recruitment-detail .p-recruit-nav {
  width: 100%;
}
.p-recruitment-detail .p-recruit-nav__title {
  font-family: "Arial", sans-serif;
  font-weight: 700;
  font-size: clamp(4.5rem, 4.227rem + 1.17vw, 5.625rem);
  line-height: 1;
  color: #192872;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 960px) {
  .p-recruitment-detail .p-recruit-nav__title {
    padding: 0 4%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail .p-recruit-nav__title {
    font-size: 4rem;
  }
}
.p-recruitment-detail .p-recruit-nav__list {
  border-top: 1px solid #192872;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  list-style: none;
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.p-recruitment-detail .p-recruit-nav__list::-webkit-scrollbar {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-recruitment-detail .p-recruit-nav__list {
    justify-content: flex-start;
  }
}
.p-recruitment-detail .p-recruit-nav__item {
  flex-shrink: 0;
}
.p-recruitment-detail .p-recruit-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background-color: #192872;
  color: #fff;
  width: 120px;
  height: 60px;
  border-radius: 0 0 0 24px;
  transition: background-color 0.3s ease;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
}
.p-recruitment-detail .p-recruit-nav__link.__logo {
  background-color: #192872;
  font-family: "Arial", sans-serif;
  font-size: 1.2rem;
}
.p-recruitment-detail .p-recruit-nav__link:hover {
  background-color: #192872;
  opacity: 0.9;
}
@media screen and (max-width: 960px) {
  .p-recruitment-detail .p-recruit-nav__link {
    font-size: 12px;
    width: 100px;
    height: 48px;
  }
}
.p-recruitment-detail .p-recruit-nav__item:nth-child(2) .p-recruit-nav__link, .p-recruitment-detail .p-recruit-nav__item:nth-child(4) .p-recruit-nav__link {
  background-color: #3c5891;
}
.p-recruitment-detail .p-recruit-nav__item:nth-child(3) .p-recruit-nav__link, .p-recruitment-detail .p-recruit-nav__item:nth-child(6) .p-recruit-nav__link {
  background-color: #1d4293;
}
.p-recruitment-detail .p-recruit-nav__item:nth-child(5) .p-recruit-nav__link {
  background-color: #192872;
}

/* ===========================================
 * Single
 * ===========================================
*/
.post {
  /* -------------------------------------------
  * First View
  */
  /* -------------------------------------------
  * Coomon
  */
}
.post .l-topTitleArea {
  height: 100vh;
  height: 100dvh;
  max-height: 1080px;
  min-height: unset;
}
.post .l-topTitleArea .l-topTitleArea__body {
  display: none !important;
}
.post .l-content {
  margin: 0;
  padding: 0;
}
.post .l-content .p-articleHead {
  padding: 80px 64px;
  background-image: url("../img/bg-post-header.webp");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: cover;
}
.post .l-content .p-articleHead .c-postTitle__ttl {
  padding-left: 5vw;
  color: #FFF;
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .post .l-content .p-articleHead {
    padding: 64px 4%;
  }
  .post .l-content .p-articleHead .c-postTitle__ttl {
    padding-left: 0;
  }
}
.post .l-content .l-mainContent {
  padding: 100px 64px;
  width: 80%;
  max-width: 1280px;
  margin-left: 0;
  position: relative !important;
  overflow: hidden;
}
.post .l-content .l-mainContent::before {
  content: "";
  display: block;
  width: 4rem;
  height: 100%;
  background-image: url("../img/img-post-deco.svg");
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(-10%, 80px);
  opacity: 0.09;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .post .l-content .l-mainContent {
    padding: 64px 4%;
    width: 100%;
  }
  .post .l-content .l-mainContent::before {
    width: 2.5rem;
  }
  .post .l-content .l-mainContent .c-postTitle__ttl {
    padding-left: 0;
  }
}
.post .l-content .l-mainContent .p-articleMetas {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0;
  margin-bottom: 5vw;
  padding-left: 5vw;
  font-size: clamp(0.75rem, 0.689rem + 0.26vw, 1rem);
}
.post .l-content .l-mainContent .p-articleMetas .u-thin {
  opacity: 1;
}
.post .l-content .l-mainContent .p-articleMetas__times {
  color: #231d1c;
}
.post .l-content .l-mainContent .p-articleMetas__termList {
  font-size: clamp(0.75rem, 0.689rem + 0.26vw, 1rem);
}
.post .l-content .l-mainContent .p-articleMetas__termList::before {
  display: none !important;
}
.post .l-content .l-mainContent .p-articleMetas__termList .c-categoryList__link {
  pointer-events: none;
  padding: 4px 1em;
  border-radius: 100px;
}
.post .l-content .l-mainContent .p-articleMetas__termList .c-categoryList__link[data-cat-id="8"], .post .l-content .l-mainContent .p-articleMetas__termList .c-categoryList__link[data-cat-id="9"] {
  display: none !important;
}
.post .l-content .l-mainContent__inner {
  margin: 0;
  padding: 0;
  padding-left: 5vw;
}
.post .l-content .l-mainContent__inner .post_content {
  padding: 0;
}
.post .l-content .l-mainContent__inner .post_content h2 {
  margin: 0 0 2em;
  padding: 0 0 1.5em;
  font-weight: 400;
  border-bottom: 0.75px solid #192872;
}
.post .l-content .l-mainContent__inner .post_content h3 {
  margin: 0 0 1.5em;
  padding: 0.5em 0 0.5em 1em;
  font-weight: 400;
  border-left: 2px solid #192872;
}
.post .l-content .l-mainContent__inner .post_content h4 {
  margin: 0 0 1em;
  padding: 1em 0 1em 1em;
  font-weight: 400;
  background-color: #192872;
  color: #FFF;
  line-height: 1;
}
.post .l-content .l-mainContent .p-articleListBack {
  padding-left: 5vw;
}
.post .l-content .l-mainContent .p-articleListBack__link {
  padding: 10px 48px;
  background-color: #192872;
  display: inline-block;
}
.post .l-content .l-mainContent .p-articleListBack__text {
  color: #FFF;
  font-size: clamp(1rem, 0.879rem + 0.52vw, 1.5rem);
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .post .l-content .l-mainContent .p-articleListBack__link {
    width: 100%;
    text-align: center;
    padding: 16px 48px;
  }
}/*# sourceMappingURL=theme-style.css.map */