@charset "UTF-8";

/* ================================================================
   common.css
   ----------------------------------------------------------------
   全ページ共通で使用されるコンポーネントのスタイル定義ファイル。
   ヘッダー、フッター、ナビゲーション、メガメニュー、モバイルメニュー、
   パンくずリスト、ページヒーロー、CTAセクション、ページトップボタン等を含む。

   ブレークポイント一覧:
     1719px以下 … ページトップボタン微調整
     1499px以下 … ナビゲーション・メガメニュー縮小
     1299px以下 … ナビゲーションボタン・メガメニューさらに縮小
     1249px以下 … フッターナビ・メガメニュー調整
     1199px以下 … ヘッダー縮小
     1099px以下 … ナビゲーションボタン最小化
     1000px以上 … PC用ホバーエフェクト
      999px以下 … タブレット（モバイルナビ切り替え）
      767px以下 … スマートフォン
      374px以下 … 小型スマートフォン
   ================================================================ */


/* ================================================================
   サイトフッター
   ----------------------------------------------------------------
   ページ最下部のフッター領域。背景色・文字色・余白の基本設定。
   ================================================================ */
.site-footer {
	background-color: var(--footer-bg);
	color: var(--footer-color);
	font-size: 14px;
	line-height: 1.5;
	padding-top: 100px;
}
.site-footer_nav {}
.site-footer_nav_inner {
	max-width: 1494px;
}
.site-footer_logo {
	margin-bottom: 86px;
	max-width: 271px;
}
.site-footer_logo > a {
	text-decoration: none;
	color: inherit;
	display: block;
	transition-duration: var(--transition-base);
	transition-property: opacity;
}
.site-footer_logo > a > img {
	display: block;
}

/* ================================================================
   フッターナビゲーション
   ----------------------------------------------------------------
   フッター内のナビゲーションリンク群。
   4カラム構成で、各カラムに親リンク（太字＋下線付き）と
   子リンク（半透明テキスト）を配置。
   ================================================================ */
.footer-nav {}
.footer-nav_cols {
	display: flex;
	justify-content: space-between;
}
.footer-nav_col {
	width: 24%;
	max-width: 340px;
}
.footer-nav_list {
	list-style: none;
}
.footer-nav_list_item {}
.footer-nav_list_item:nth-child(n+2) {
	margin-top: 16px;
}
/* フッターナビの開閉ボタン（PCでは非表示、SPで表示） */
.footer-nav_list_btn {
	display: none;
}
.footer-nav_list_btn_icon {}
/* 子リンクリスト（各親項目の下に表示されるサブリンク） */
.footer-nav_cList {
	list-style: none;
	margin-top: 20px;
}
.footer-nav_cList > li {}
.footer-nav_cList > li > a {
	text-decoration: none;
	display: block;
	color: rgba(255, 255, 255, 0.60);
	padding: 4px 0;
	line-height: 20px;
	transition-duration: var(--transition-base);
	transition-property: color;
}
/* 親リンク: 太字・下線付き、クリック領域確保のため min-height を指定 */
.footer-nav_list_item > a {
	text-decoration: none;
	color: inherit;
	font-size: 16px;
	font-weight: 600;
	border-bottom: 1px solid rgba(255, 255, 255, 0.50);
	display: flex;
	min-height: 60px;
	align-items: center;
	transition-duration: var(--transition-base);
	transition-property: background-color, color;
	position: relative;
}
.footer-nav_list_item_arrow {
	display: block;
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	font-size: 13px;
}
/* 親リンクの横に表示される補足テキスト（英語表記など） */
.footer-nav_list_item_sub {
	font-size: 11px;
	font-weight: 400;
	color: var(--color-white);
	margin-left: 8px;
}
.footer-nav_list_item > a:has(.footer-nav_list_item_sub) {
	align-items: baseline;
	min-height: auto;
	padding: 16px 0;
}
.footer-nav_list_item-hasChild {}
.footer-nav_list_item-hasChild > a {}
/* フッター下部: コピーライト・SNSリンク・スポンサー情報エリア */
.site-footer_contents {
	border-top: 1px solid rgba(255, 255, 255, 0.50);
	padding-top: 39px;
	padding-bottom: 49px;
	margin-top: 26px;
}
.site-footer_contents_inner {
	max-width: 1494px;
}
/* SNSカラムとInfoカラムの逆順flex配置（SNSが右側に表示される） */
.site-footer_cols {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
	max-width: 1461px;
}
.site-footer_col {}
.site-footer_col-sns {}
.site-footer_link {
	margin-bottom: 7px;
}
/* フッター外部リンク（JetBrains Monoフォント使用） */
.site-footer_link > a {
	text-decoration: none;
	color: inherit;
	font-family: var(--font-jetbranins);
	font-size: 16px;
	font-weight: bold;
	display: flex;
	height: 25px;
	align-items: center;
	transition-duration: var(--transition-base);
	transition-property: background-color, color;
}
.site-footer_link > a > .icon {
	display: block;
	font-size: 25px;
	margin-left: 24px;
}
/* フッター横並びリンクリスト（プライバシーポリシー等、区切り線付き） */
.site-footer_list {
	list-style: none;
	display: flex;
}
.site-footer_list > li {
	display: flex;
	align-items: center;
}
/* 最後の要素以外の後ろに縦棒セパレーターを挿入 */
.site-footer_list > li:nth-last-child(n+2)::after {
	content: "";
	display: block;
	height: 15px;
	width: 1px;
	background-color: var(--color-white);
	opacity: .5;
	margin: 0 26px;
}
.site-footer_list > li > a {
	text-decoration: none;
	color: inherit;
	display: block;
	padding: 9px 0;
	transition-duration: var(--transition-base);
	transition-property: background-color, color;
}
.site-footer_col-info {
	padding-top: 3px;
}
.site-footer_sponsor {
	display: flex;
	align-items: center;
}
.site-footer_sponsor_image {
	display: block;
	margin-right: 30px;
}
.site-footer_sponsor_image > img {
	display: block;
}
.site-footer_sponsor_text {}
.site-footer_copyright {
	font-size: 12px;
	margin-top: 0;
}
.footer-nav_cList_arrow {
	display: inline-block;
	font-size: 10px;
	margin-left: 6px;
}

/* ================================================================
   ページトップボタン（Back to Top）
   ----------------------------------------------------------------
   画面右下に固定表示される「ページトップへ戻る」ボタン。
   初期状態は非表示（opacity: 0）で、スクロール時にJSで
   .back-to-top-scrolled クラスを付与して表示する。
   ================================================================ */
.back-to-top {
	position: fixed;
	bottom: 30px;
	right: 30px;
	z-index: 100;
	opacity: 0;
	transform: translateY(20px);
	pointer-events: none;
	transition: opacity 0.4s ease, transform 0.4s ease;
}
/* スクロール後の表示状態（JSでクラス付与） */
.back-to-top-scrolled {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.back-to-top_inner {
	max-width: 1799px;
}
.back-to-top_button {
	display: block;
	width: 64px;
	margin-left: auto;
}
/* 丸型ボタン本体（64px 白背景・hover時に色反転） */
.back-to-top_button_box {
	display: flex;
	width: 64px;
	height: 64px;
	background-color: var(--color-white);
	border-radius: 50%;
	color: var(--color-dark-blue);
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-white);
	box-sizing: border-box;
	transition-duration: var(--transition-base);
	transition-property: background-color, color;
}
.back-to-top_button_box_arrow {}
.back-to-top_button_box_arrow > .icon {}
/* ボタン下のテキストラベル（PCでは非表示） */
.back-to-top_button_text {
	display: none;
	font-family: var(--font-jetbranins);
	font-size: 10px;
	font-weight: bold;
	white-space: nowrap;
	line-height: 1;
	margin-top: 7px;
}

/* ================================================================
   ヘッダー外枠
   ----------------------------------------------------------------
   ヘッダー全体を囲むラッパー。基本のフォントサイズと行間を設定。
   ================================================================ */
.header-wrap {
	line-height: 1.8;
	font-size: 15px;
}

/* ================================================================
   サイトヘッダー
   ----------------------------------------------------------------
   ページ最上部に固定表示されるヘッダー。
   スクロール時に .site-header-scrolled クラスで背景白＋影を付与。
   メガメニュー展開時は .is-mega-open で同様のスタイルを適用。
   ================================================================ */
.site-header {
	padding-top: 22px;
	padding-bottom: 22px;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	transition-duration: var(--transition-base);
	transition-property: background-color, color, padding-top, padding-bottom, box-shadow;
}
/* メガメニュー展開時: 背景白＋影を表示して視認性を確保 */
.is-mega-open .site-header {
	background-color: var(--color-white);
	box-shadow: var(--shadow-header);
}
/* スクロール後の固定ヘッダー: パディング除去で高さ縮小 */
.site-header-scrolled {
	padding-top: 0;
	padding-bottom: 0;
	background-color: var(--color-white);
	box-shadow: var(--shadow-header);
}
.site-header_inner {
	max-width: 1874px;
	padding-left: 20px;
	padding-right: 20px;
}
.site-header_cols {
	display: flex;
	max-width: 1808px;
	margin-left: auto;
}
.site-header_col {}
/* ロゴカラム: スクロール時に幅が縮小する */
.site-header_col-title {
	width: 199px;
	transition-duration: var(--transition-base);
	transition-property: width;
}
.site-header_title {}
.site-header_title > a {
	text-decoration: none;
	color: inherit;
	height: 86px;
	display: flex;
	align-items: center;
	transition-duration: var(--transition-base);
	transition-property: opacity;
}
.site-header_title_img {
	display: block;
	max-width: 100%;
	height: auto;
}
/* メニューカラム: ロゴ幅を差し引いた残り幅を使用 */
.site-header_col-menu {
	width: calc(100% - 228px);
	margin-left: auto;
	transition-duration: var(--transition-base);
	transition-property: width;
}

/* ================================================================
   ハンバーガーメニューボタン
   ----------------------------------------------------------------
   モバイル時に表示される開閉ボタン。PCでは非表示（display: none）。
   aria-expanded="true" 時にバーが回転してX印になる。
   ================================================================ */
.menu-toggle {
	display: none;
}
.menu-toggle_barWrap {}
.menu-toggle_bar {}
.menu-toggle_bar-no1 {}
.menu-toggle_bar-no2 {}

/* ================================================================
   メインナビゲーション
   ----------------------------------------------------------------
   ヘッダー内のグローバルナビゲーション。
   PC: 横並びのテキストリンク + 右端にCTAボタン2つ。
   タブレット以下: ハンバーガーメニューからスライドインするドロワー。
   ================================================================ */
.main-nav {
	height: 100%;
	max-width: 1170px;
	margin-left: auto;
	transition-duration: var(--transition-base);
	transition-property: max-width;
}
/* スクロール後はナビ幅を若干縮小 */
.site-header-scrolled .main-nav {
	max-width: 1102px;
}
.main-nav_inner {
	display: flex;
	height: 100%;
}
.main-nav_list {
	list-style: none;
	display: flex;
	flex-grow: 1;
	gap: 0 42px;
	justify-content: flex-end;
	padding-right: 20px;
}
.main-nav_list > li {
}
/* SP専用の項目はPCで非表示 */
.main-nav_list > li.-sp {
	display: none;
}
.main-nav_list_item {
	display: flex;
	text-decoration: none;
	color: var(--color-dark-blue);
	font-weight: 600;
	font-size: 17px;
	height: 100%;
	align-items: center;
	line-height: 1.2;
	justify-content: center;
	transition-duration: var(--transition-base);
	transition-property: font-size;
	white-space: nowrap;
}
.site-header-scrolled .main-nav_list_item {
	font-size: 15px;
}
/* PCでは非表示のナビ項目（モバイルのみ表示） */
.main-nav_list_item-hidden {
	display: none;
}
.main-nav_list_item-toggle {}
/* メガメニュー開閉アイコン（＋マーク: 横棒 + 疑似要素の縦棒） */
.main-nav_list_icon {
	display: block;
	width: 8px;
	height: 2px;
	background-color: currentColor;
	position: relative;
	margin-left: 8px;
}
.main-nav_list_icon::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: currentColor;
	transform: rotate(90deg);
	transition-duration: var(--transition-base);
	transition-property: transform;
}
/* 展開時: 縦棒を0度に戻して ＋ → − に変化 */
.main-nav_list_item[aria-expanded="true"] .main-nav_list_icon::before {
	transform: rotate(0deg);
}
/* CTAボタンリスト: RECRUIT / CONTACT の2ボタンをグリッド配置 */
.main-nav_btnList {
	list-style: none;
	display: grid;
	margin-right: 15px;
	column-gap: 5px;
	grid-template-columns: repeat(2, 1fr);
	align-self: center;
	width: 265px;
	margin-left: 25px;
}
.main-nav_btnList > li {}
/* CTAボタン共通: 角丸ピル型、hover時に色反転（後述のホバー定義参照） */
.main-nav_btnList_btn {
	display: flex;
	align-items: center;
	text-decoration: none;
	height: 50px;
	background-color: var(--color-dark-blue);
	color: var(--color-white);
	font-family: var(--font-jetbranins);
	font-weight: 500;
	font-size: 16px;
	text-transform: uppercase;
	border-radius: 999px;
	padding: 0 24px;
	justify-content: center;
	gap: 0.5em;
	white-space: nowrap;
	transition: background-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base);
}
.main-nav_btnList_btn-recruit {}
.main-nav_btnList_arrow {
	font-size: 10px;
	margin-left: 10px;
}
.main-nav_btnList_arrow-recruit {}
/* CONTACTボタン: RECRUITと異なるブルー系背景 */
.main-nav_btnList_btn-contact {
	background-color: var(--color-blue);
}
.main-nav_btnList_arrow-contact {}
.main-nav_list_item_text {
	text-align: center;
}
.main-nav_list_item_text-toggle {
	text-align: center;
}
/* ナビ項目の英語サブテキスト（日本語名の下に小さく表示） */
.main-nav_list_item_sub {
	display: block;
	font-size: 10px;
	font-weight: 400;
	opacity: 0.7;
	line-height: 1.4;
	margin-top: 2px;
}
.site-header-scrolled .main-nav_list_item_sub {
	font-size: 9px;
}

/* ================================================================
   メガメニュー
   ----------------------------------------------------------------
   ナビ項目クリック時にヘッダー直下に展開されるドロップダウンメニュー。
   PC: 左にカテゴリタイトル、右に3カラムのリンクリスト。
   背景は半透明黒オーバーレイ＋backdrop-filter blur。
   .is-show クラスの付与で表示/非表示を切り替え。
   ================================================================ */
.mega-menu {
	position: absolute;
	z-index: 1000;
	top: 100%;
	left: 0;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.50);
	height: calc(100vh - 100%);
	backdrop-filter: blur(5px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition-property: opacity, visibility;
	transition-duration: var(--transition-slow);
}
/* メガメニュー表示状態 */
.mega-menu.is-show {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.mega-menu_inner {
	max-width: var(--width-container-wide);
}
.mega-menu_cols {
	display: flex;
}
.mega-menu_col {}
/* メガメニュー左カラム: カテゴリタイトル */
.mega-menu_col-title {
	width: 396px;
}
.mega-menu_title {}
.mega-menu_title > a {
	text-decoration: none;
	color: var(--color-dark-blue);
	font-weight: 600;
	line-height: 1.2;
	display: block;
	padding-top: 12px;
	font-size: 16px;
}
.mega-menu_title_main {
	font-family: var(--font-jetbranins);
	font-size: 36px;
	line-height: 1;
	text-transform: uppercase;
	font-weight: bold;
	margin-bottom: 15px;
	display: flex;
	align-items: center;
}
.mega-menu_title_sub {
	display: block;
}
/* メガメニュー右カラム: リンクリスト */
.mega-menu_col-list {
	list-style: none;
	width: calc(100% - 396px);
}
/* リンクリスト: 3カラムグリッド配置 */
.mega-menu_list {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	row-gap: 19px;
	column-gap: 3.5%;
}
.mega-menu_list > li {}
.mega-menu_list > li > a {
	text-decoration: none;
	color: inherit;
	font-weight: 600;
	font-size: 14px;
	color: var(--color-dark-blue);
	display: flex;
	position: relative;
	min-height: 33px;
	align-items: center;
	padding-right: 20px;
	padding-top: 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--color-border-light);
	line-height: 1.4;
}
.mega-menu_list > li > a > br {
	display: none;
}
.mega-menu_list > li > a > br.-pc {
	display: inline;
}
.mega-menu_arrow {
	display: block;
	position: absolute;
	top: 50%;
	right: 2px;
	transform: translateY(-50%);
	font-size: 11px;
}
.mega-menu_arrow > .icon {}
.mega-menu_title_arrow {
	width: auto;
}
/* メガメニュー白背景コンテンツエリア */
.mega-menu_contents {
	padding-bottom: 79px;
	padding-top: 80px;
	background-color: var(--color-white);
}
/* スクロール後のヘッダーカラム幅（JS側で付与するクラス） */
.site-header_col-titleScrolled {
	width: 188px;
}
.site-header_col-menuScrolled {
	width: calc(100% - 217px);
}

/* ================================================================
   お問い合わせCTA（Call to Action）
   ----------------------------------------------------------------
   各ページ下部に配置されるお問い合わせ誘導セクション。
   水色背景 + 中央にガラスモーフィズム風のカード。
   背景画像は absolute 配置で背景全体に敷く。
   ================================================================ */
.cta-contact {
	background-color: var(--color-light-blue);
	position: relative;
	padding: 120px 0;
	overflow: hidden;
	line-height: 1.8;
	font-size: 15px;
}
/* 背景画像コンテナ: 中央配置・はみ出し分はoverflowで隠す */
.cta-contact_bg {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2542px;
	height: 1348px;
	transform: translate(-50%, -50%);
	margin-left: 40px;
	margin-top: 12px;
	pointer-events: none;
}
.cta-contact_bg > img {
	display: block;
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cta-contact_inner {
	max-width: var(--width-container-wide);
}
/* ガラスモーフィズム風カード: 半透明白背景 + blur + shadow */
.cta-contact_box {
	background-color: rgba(255, 255, 255, 0.50);
	border-radius: var(--radius-sm);
	box-shadow: 0px 0px 20px rgba(26, 115, 240, 0.07);
	backdrop-filter: blur(15px);
	padding: 105px 20px 97px;
	color: var(--color-dark-blue);
	text-align: center;
}
.cta-contact_title {
	line-height: 1;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 30px;
}
.cta-contact_title_main {
	display: block;
}
/* 英語の大見出し（CONTACT等） */
.cta-contact_title_sub {
	display: block;
	font-size: 70px;
	font-family: var(--font-jetbranins);
	text-transform: uppercase;
	font-weight: bold;
	margin-top: 15px;
}
.cta-contact_text {
	font-size: 14px;
	font-weight: 600;
	line-height: 2;
}
.cta-contact_link {
	max-width: 232px;
	margin: 50px auto 0;
}
.cta-contact_link > a {}
/* モバイルナビ内のリンク・コピーライト（PCでは非表示） */
.main-nav_link {
	display: none;
}
.main-nav_copy {
	display: none;
}

/* ================================================================
   フッターサブナビ
   ----------------------------------------------------------------
   フッター内のアコーディオン型サブメニュー。
   SPでのみ開閉動作し、PCでは空のまま。
   ================================================================ */
.footer-sub-nav_menu {}

/* ================================================================
   ページ本体
   ----------------------------------------------------------------
   ヒーロー以降のメインコンテンツ領域。
   overflow: hidden でコンテンツのはみ出しを防止。
   padding-bottom でフッターとの間隔を確保。
   ================================================================ */
.page-body {
	position: relative;
	overflow: hidden;
	padding-bottom: 134px;
}
/* パディング除去バリエーション */
.page-body-noPb {
	padding-bottom: 0;
}

/* ================================================================
   パンくずリスト
   ----------------------------------------------------------------
   ページヒーローの下に表示されるナビゲーションパス。
   右寄せ表示、各項目間にハイフン状のセパレーターを挿入。
   最後の項目は省略表示（text-overflow: ellipsis）。
   ================================================================ */
.breadcrumb {
	border-bottom: 1px solid #E5E5E5;
	margin-bottom: 128px;
	position: relative;
	z-index: 1;
}
.breadcrumb-noMb {
	margin-bottom: 0;
}
.breadcrumb_inner {
	max-width: var(--width-container-wide);
}
.breadcrumb_oList {
	list-style: none;
	display: flex;
	white-space: nowrap;
	overflow: auto;
	justify-content: flex-end;
	font-size: 12px;
	font-weight: 500;
	color: var(--color-dark-blue);
	align-items: center;
}
.breadcrumb_oList > li {
	display: flex;
	align-items: center;
}
/* 最後の項目（現在のページ）: 長いテキストは省略表示 */
.breadcrumb_oList > li:last-child {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* 最後以外の項目の後に小さな横線セパレーターを表示 */
.breadcrumb_oList > li:nth-last-child(n+2)::after {
	content: "";
	display: block;
	width: 5px;
	height: 1px;
	background-color: var(--color-blue);
	margin: 0 10px;
	position: relative;
	top: -2px;
}
/* 親ページリンク: 半透明表示（hover時に opacity:1 は別途ホバー定義） */
.breadcrumb_oList > li > a {
	text-decoration: none;
	color: inherit;
	opacity: .5;
	display: flex;
	align-items: center;
	height: 60px;
	transition-duration: var(--transition-base);
	transition-property: opacity;
}

/* ================================================================
   ページヒーロー
   ----------------------------------------------------------------
   各下層ページの最上部に表示されるヒーローセクション。
   大きなページタイトル + 英語サブタイトル + サブナビを含む。
   背景に装飾的なSVG図形（page-hero_bg）を配置。
   ================================================================ */
.page-hero {
	position: relative;
	padding-top: 229px;
	line-height: 1.8;
	font-size: 15px;
	margin-bottom: 40px;
}
/* 背景装飾: 右上に配置される半透明のSVG図形 */
.page-hero_bg {
	color: var(--color-light-blue);
	width: 791px;
	position: absolute;
	top: -60px;
	left: 50%;
	transform: translateX(-50%);
	margin-left: 450px;
}
.page-hero_bg_inner {
	position: relative;
	padding-bottom: 69.53%;
}
.page-hero_bg_img {
	fill: currentColor;
	fill-opacity: .5;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.page-hero_inner {
	max-width: var(--width-container-wide);
}
.page-hero_areaTitle {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 174px;
	justify-content: flex-end;
}
.page-hero_title {
	font-size: 60px;
	font-weight: bold;
	line-height: 1.2;
	color: var(--color-dark-blue);
}
/* 英語サブタイトル: 青背景＋白文字のバッジ風 */
.page-hero_subTitle {
	line-height: 24px;
	color: var(--color-white);
	background-color: var(--color-blue);
	font-weight: 500;
	font-family: var(--font-jetbranins);
	padding: 0 2px;
	margin-top: 6px;
	font-size: 16px;
}
/* ページヒーロー内サブナビ: カテゴリ内のアンカーリンク等 */
.page-hero_nav {
	margin-top: 57px;
}
.page-hero_list {
	list-style: none;
	font-size: 14px;
	color: var(--color-dark-blue);
	font-weight: 600;
	display: flex;
	flex-wrap: wrap;
	column-gap: 20px;
}
.page-hero_list > li {
	min-width: 120px;
}
.page-hero_list > li > a {
	text-decoration: none;
	color: inherit;
	display: block;
	position: relative;
	padding-right: 21px;
	display: flex;
	min-height: 34px;
	align-items: center;
	border-bottom: 1px solid var(--color-border-light);
}
.page-hero_list_arrow {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%) scale(0.9);
	font-size: 10px;
	color: var(--color-blue);
}
/* ヒーロー背景のcanvas/アニメーション用コンテナ */
.page-hero_canvas {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
	height: 550px;
	z-index: -1;
}
.page-hero-noTitle {
	padding-top: 203px;
}
.breadcrumb-noBorder {
	border-bottom: none;
	margin-bottom: 0;
}

/* ================================================================
   ページヒーロー外枠 (page-hero-wrap)
   ----------------------------------------------------------------
   ヒーロー＋パンくず＋背景装飾をまとめて囲むラッパー。
   装飾用の円形グラデーション（circle）と曲線SVG（line）を
   absolute で背景に重ねて配置。
   下部にグラデーションフェードアウトを掛ける。
   ================================================================ */
.page-hero-wrap {
	overflow: hidden;
	position: relative;
}
.page-hero-wrap_bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.page-hero-wrap_bg_contents {
	position: relative;
	height: 3000px;
	width: 100%;
	left: 0;
	z-index: -2;
	overflow: hidden;
}
/* 下方向へのフェードアウトグラデーション（背景を徐々に消す） */
.page-hero-wrap_bg_contents::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	z-index: 1;
	width: 100%;
	left: 0;
	background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0) 12.28%, var(--color-bg) 48.83%);
	height: 100%;
}
/* 装飾用円形グラデーション（中心から外側へフェードする青い円） */
.page-hero-wrap_circle {
	position: absolute;
	width: 800px;
	height: 800px;
	border-radius: 50%;
	width: 1400px;
	height: 1400px;
	background-image: radial-gradient(circle, rgba(193, 220, 251, 1.0) 0%, rgba(193, 220, 251, 0.8) 20%, rgba(193, 220, 251, 0.4) 40%, rgba(193, 220, 251, 0.1) 60%, rgba(193, 220, 251, 0.0) 70%);
	transform: translate(-50%, -50%);
	left: 50%;
	z-index: 0;
}
/* 円1: 中央やや右上 */
.page-hero-wrap_circle-no1 {
	top: -100px;
	margin-left: 230px;
}
/* 円2: 右下寄り */
.page-hero-wrap_circle-no2 {
	top: 400px;
	margin-left: 780px;
}
/* 円3: 左下寄り（やや小さめ） */
.page-hero-wrap_circle-no3 {
	top: 670px;
	margin-left: -900px;
	width: 1200px;
	height: 1200px;
}
/* 装飾用曲線SVG: 上部にマスクで徐々にフェードイン */
.page-hero-wrap_bg_line {
	width: 950px;
	position: absolute;
	top: -113px;
	z-index: 0;
	left: 50%;
	transform: translateX(-50%);
	margin-left: 163px;
	mask-image: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
}
.page-hero-wrap_bg_line_inner {
	position: relative;
	padding-bottom: 111.05%;
}
.page-hero-wrap_bg_line_svg {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.page-hero-wrap-mb {
	margin-bottom: 130px;
}
.page-hero-wrap-visible {
	overflow: visible;
}
.page-hero-noMb {
	margin-bottom: 0;
}
.page-hero_areaTitle-ttl {}
.page-hero_ttlEn {
	font-size: 90px;
}
.page-hero_ttlJa {
	font-size: 16px;
	font-weight: 600;
}
.page-hero-wrap-mbS {
	margin-bottom: 45px;
}
.page-body-business {
	overflow: visible;
}
.page-hero-wrap_bg_lineWrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1100px;
	overflow: hidden;
}
/* ホームページ専用: overflow を visible にして装飾が見切れないようにする */
.page-body-home {
	padding-bottom: 0;
	overflow: visible;
}


/* ================================================================
   レスポンシブ対応 メディアクエリ
   ----------------------------------------------------------------
   以下、ブレークポイントごとに各コンポーネントの調整を行う。
   大きい画面幅から小さい画面幅へ順に定義。
   ================================================================ */

/* --- レスポンシブ: 1719px以下 --- */
/* 対象: ページトップボタン */
@media screen and (max-width:1719px) {
	.back-to-top {
		margin-top: 26px;
	}
}

/* --- レスポンシブ: 1499px以下 --- */
/* 対象: メインナビゲーション、ヘッダーカラム幅、メガメニュー */
@media screen and (max-width:1499px) {
	/* ナビリンクのフォントサイズを縮小 */
	.main-nav_list_item {
		font-size: 15px;
	}
	/* ナビの最大幅を縮小 */
	.main-nav {
		max-width: 1000px;
	}
	.site-header-scrolled .main-nav {
		max-width: 1000px;
	}
	/* ヘッダーロゴ・メニューカラムの幅を調整 */
	.site-header_col-title {
		width: 188px;
	}
	.site-header_col-menu {
		width: calc(100% - 217px);
	}
	.main-nav_btnList {
		margin-left: 15px;
	}
	/* メガメニューのカラム幅を縮小 */
	.mega-menu_col-title {
		width: 320px;
	}
	.mega-menu_col-list {
		width: calc(100% - 320px);
	}
	.mega-menu_list {
		row-gap: 13px;
		column-gap: 15px;
	}
	.mega-menu_contents {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}

/* --- レスポンシブ: 1299px以下 --- */
/* 対象: メインナビゲーション、CTAボタン、メガメニュータイトル */
@media screen and (max-width: 1299px) {
	/* ナビリンクをさらに縮小 */
	.main-nav_list_item {
		font-size: 14px;
	}
	.site-header-scrolled .main-nav_list_item {
		font-size: 14px;
	}
	/* CTAボタン: padding縮小、角丸を小さく */
	.main-nav_btnList_btn {
		padding-left: 10px;
		font-size: 14px;
		padding-right: 10px;
		border-radius: 7px;
	}
	.main-nav_btnList {
		width: 200px;
		margin-left: 10px;
	}
	.main-nav_btnList_arrow {
		margin-left: 6px;
	}
	.mega-menu_title_main {
		font-size: 26px;
	}
	.mega-menu_col-title {
		width: 250px;
	}
	.mega-menu_col-list {
		width: calc(100% - 250px);
	}
}

/* --- レスポンシブ: 1249px以下 --- */
/* 対象: フッターナビ（グリッド化）、メガメニュー改行表示 */
@media screen and (max-width:1249px) {
	/* フッターナビを4カラムグリッドに変更 */
	.footer-nav_col {
		width: auto;
		max-width: none;
	}
	.footer-nav_cols {
		display: grid;
		grid-template-columns: repeat(4, auto);
		justify-content: normal;
		column-gap: 25px;
	}
	.footer-nav_list_item > a {
		min-height: 50px;
	}
	.footer-nav_list_item:nth-child(n+2) {
		margin-top: 10px;
	}
	/* メガメニュー内のテキスト改行を有効化 */
	.mega-menu_list > li > a > br {
		display: inline;
	}
}

/* --- レスポンシブ: 1199px以下 --- */
/* 対象: ページヒーロータイトル、ヘッダーパディング縮小 */
@media screen and (max-width:1199px) {
	/* ヒーロータイトルを55pxに縮小 */
	.page-hero_title {
		font-size: 55px;
	}
	/* ヘッダーロゴ・メニューカラム幅を再調整 */
	.site-header_col-title {
		width: 160px;
	}
	.site-header_col-menu {
		width: calc(100% - 180px);
	}
	.main-nav_list_icon {
		margin-left: 5px;
	}
	/* ヘッダーのパディングを縮小して全体高さを低く */
	.site-header {
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.header-wrap {}
	.site-header-scrolled {
		padding-top: 0;
		padding-bottom: 0;
	}
}

/* --- レスポンシブ: 1099px以下 --- */
/* 対象: CTAボタン最小化、ヘッダーカラム微調整 */
@media screen and (max-width:1099px) {
	/* CTAボタンをさらにコンパクトに */
	.main-nav_btnList_btn {
		font-size: 12px;
		padding-left: 5px;
		padding-right: 5px;
	}
	.main-nav_btnList {
		width: 175px;
	}
	.site-header_col-title {
		width: 150px;
	}
	.site-header_col-menu {
		width: calc(100% - 165px);
	}
}

/* --- PC ホバー時 (1000px以上 & hover対応デバイス) --- */
/* 対象: 全コンポーネントのホバーエフェクト
   ページヒーロー、パンくず、CTA、ヘッダー、ナビ、CTAボタン、
   メガメニュー、ページトップボタン、フッター各リンク */
@media screen and (min-width:1000px) and (hover:hover) {
	/* パンくず: hover時に透明度解除 */
	.page-hero_list > li > a:hover {}
	.breadcrumb_oList > li > a:hover {
		opacity: 1;
	}
	.cta-contact_link > a:hover {}
	/* ヘッダーロゴ: hover時に薄くなる */
	.site-header_title > a:hover {
		opacity: .7;
	}
	.menu-toggle:hover {}
	/* ナビリンク: hover時にブルーに変色 */
	.main-nav_list_item:hover {
		color: var(--color-blue);
	}
	/* ナビリンク下線アニメーション解除 */
	.main-nav_list_item:hover .u-border {
		background-size: 0% 1px;
	}
	/* CTAボタン: hover時に白背景＋ボーダーに反転 */
	.main-nav_btnList_btn:hover {
		background-color: var(--color-white);
		color: var(--color-dark-blue);
		box-shadow: inset 0 0 0 1px var(--color-dark-blue);
	}
	.main-nav_btnList_btn-contact:hover {
		color: var(--color-blue);
		box-shadow: inset 0 0 0 1px var(--color-blue);
	}
	.mega-menu_title > a:hover {}
	.mega-menu_list > li > a:hover {}
	.back-to-top_button:hover {}
	/* ページトップボタン: hover時にダークブルー背景に変化 */
	.back-to-top_button:hover .back-to-top_button_box {
		background-color: var(--color-dark-blue);
		color: var(--color-white);
	}
	/* フッターロゴ: hover時に薄くなる */
	.site-footer_logo > a:hover {
		opacity: .7;
	}
	.footer-nav_list_btn:hover {}
	/* フッターリンク: hover時に白に変化 / 半透明に変化 */
	.footer-nav_cList > li > a:hover {
		color: var(--color-white);
	}
	.footer-nav_list_item > a:hover {
		color: rgba(255, 255, 255, 0.60);
	}
	.site-footer_link > a:hover {
		color: rgba(255, 255, 255, 0.60);
	}
	.site-footer_list > li > a:hover {
		color: rgba(255, 255, 255, 0.60);
	}
}

/* --- レスポンシブ: タブレット以下 (999px以下) --- */
/* 主な変更点:
   - ヘッダー: ハンバーガーメニュー表示、ナビをドロワー化
   - メガメニュー: absolute → static のアコーディオン表示に変更
   - フッター: 各要素の余白を縮小
   - ページヒーロー: タイトル・背景のサイズを縮小
   - パンくず: 余白調整
   - CTA: 余白調整
   - ページ本体: padding-bottom 縮小 */
@media screen and (max-width: 999px) {

	/* --- フッター（タブレット調整） --- */
	.site-footer {}
	.site-footer_nav {}
	.site-footer_nav_inner {}
	.site-footer_logo {}
	.site-footer_logo > a {}
	.site-footer_logo > a > img {}
	.footer-nav {}
	.footer-nav_cols {
		column-gap: 15px;
	}
	.footer-nav_col {}
	.footer-nav_list {}
	.footer-nav_list_item {}
	.footer-nav_list_item:nth-child(n+2) {}
	.footer-nav_list_btn {}
	.footer-nav_list_btn_icon {}
	.footer-nav_cList {}
	.footer-nav_cList > li {}
	.footer-nav_cList > li > a {
		line-height: 18px;
	}
	.footer-nav_list_item > a {}
	.footer-nav_list_item_arrow {}
	.footer-nav_list_item-hasChild {}
	.footer-nav_list_item-hasChild > a {}
	.site-footer_contents {}
	.site-footer_contents_inner {}
	.site-footer_cols {}
	.site-footer_col {}
	.site-footer_col-sns {}
	.site-footer_link {}
	.site-footer_link > a {}
	.site-footer_link > a > .icon {}
	.site-footer_list {}
	.site-footer_list > li {}
	.site-footer_list > li:nth-last-child(n+2)::after {
		margin: 0 15px;
	}
	.site-footer_list > li > a {}
	.site-footer_col-info {}
	.site-footer_sponsor {}
	.site-footer_sponsor_image {
		margin-right: 15px;
	}
	.site-footer_sponsor_image > img {}
	.site-footer_sponsor_text {}
	.site-footer_copyright {}
	.footer-nav_cList_arrow {}
	/* --- ページトップボタン（タブレット調整） --- */
	.back-to-top {}
	.back-to-top_inner {}
	.back-to-top_button {}
	.back-to-top_button_box {}
	.back-to-top_button_box_arrow {}
	.back-to-top_button_box_arrow > .icon {}
	.back-to-top_button_text {}

	/* --- ヘッダー・ナビ（タブレット調整） --- */
	/* パディング除去でヘッダー高さを最小化 */
	.header-wrap {}
	.site-header {
		padding-top: 0;
		padding-bottom: 0;
	}
	.is-mega-open .site-header {}
	.site-header-scrolled {}
	/* モバイルメニュー展開時: 背景白＋影でヘッダーを強調 */
	.is-menu-open .site-header {
		box-shadow: var(--shadow-header);
		background-color: var(--color-white);
	}
	.site-header_inner {}
	.site-header_cols {
		align-items: center;
	}
	.site-header_col {}
	/* ロゴを小さく、トランジション無効化 */
	.site-header_col-title {
		width: 126px;
		transition: none;
	}
	.site-header_title {}
	.site-header_title > a {
		height: 76px;
	}
	.site-header_title_img {}
	/* メニューカラム: ハンバーガーボタン1つ分の幅に */
	.site-header_col-menu {
		width: 46px;
		transition: none;
	}
	/* --- ハンバーガーメニューボタン（タブレットで表示） --- */
	.menu-toggle {
		width: 46px;
		height: 46px;
		background-color: var(--color-blue);
		border-radius: var(--radius-sm);
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--color-white);
	}
	.menu-toggle_barWrap {
		display: block;
		width: 30px;
		margin: 0 auto;
	}
	.menu-toggle_bar {
		display: block;
		height: 1px;
		background-color: currentColor;
		transition-duration: var(--transition-base);
		transition-property: transform;
	}
	.menu-toggle_bar-no1 {}
	.menu-toggle_bar-no2 {
		margin-top: 8px;
	}
	/* メニュー展開時: 2本のバーが回転してXマークに変化 */
	.menu-toggle[aria-expanded="true"] .menu-toggle_bar-no1 {
		transform: translateY(5px) rotate(20deg);
	}
	.menu-toggle[aria-expanded="true"] .menu-toggle_bar-no2 {
		transform: translateY(-4px) rotate(-20deg);
	}
	/* --- モバイルドロワーナビ --- */
	/* 全画面オーバーレイ型: ヘッダー下から画面底まで覆う
	   初期状態は非表示、.is-show で表示 */
	.main-nav {
		position: fixed;
		top: 76px;
		left: auto;
		z-index: 1000;
		width: 100%;
		height: calc(100% - 76px);
		overflow: auto;
		background-color: var(--color-white);
		max-width: none;
		right: 0;
		box-sizing: border-box;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition-property: opacity, visibility;
		transition-duration: var(--transition-slow);
		background-color: rgba(0, 0, 0, 0.50);
		backdrop-filter: blur(5px);
	}
	.site-header-scrolled .main-nav {
		max-width: none;
	}
	/* ドロワー表示状態 */
	.main-nav.is-show {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	.site-header-scrolled .main-nav {}
	/* ドロワー内部: 右寄せの白背景パネル（max-width: 415px） */
	.main-nav_inner {
		height: auto;
		display: block;
		background-color: var(--color-white);
		padding-top: 24px;
		padding-bottom: 50px;
		overflow: auto;
		box-sizing: border-box;
		height: 100%;
		max-width: 415px;
		margin-left: auto;
	}
	/* ナビリストを縦積みに変更 */
	.main-nav_list {
		display: block;
	}
	.main-nav_list > li {
		position: relative;
	}
	/* SP専用項目を表示 */
	.main-nav_list > li.-sp {
		display: block;
	}
	.main-nav_list_item {
		min-height: 68px;
		box-sizing: border-box;
		font-size: 16px;
		transition: none;
		justify-content: flex-start;
		padding: 0 20px;
		position: relative;
	}
	.main-nav_list_item-blank {
		position: relative;
		padding-right: 60px;
	}
	.main-nav_list_item-blank > .icon-blank {
		font-size: 15px;
		position: absolute;
		top: 50%;
		right: 29px;
		transform: translateY(-50%);
		margin-top: 3px;
	}
	/* ナビ項目の下線（左右20pxの余白を残す） */
	.main-nav_list_item::after {
		content: "";
		display: block;
		position: absolute;
		bottom: 0;
		left: 20px;
		width: calc(100% - 40px);
		height: 1px;
		background-color: #E5E5E5;
	}
	.site-header-scrolled .main-nav_list_item {
		font-size: 16px;
	}
	.main-nav_list_item-hidden {
		display: flex;
	}
	/* アコーディオン開閉ボタン: 右端に absolute 配置 */
	.main-nav_list_item-toggle {
		position: absolute;
		top: 0;
		right: 10px;
		height: 68px;
		padding: 0px 20px;
		z-index: 10;
	}
	.main-nav_list_icon {
		width: 15px;
		margin: 0;
	}
	.main-nav_list_icon::before {}
	.main-nav_list_item[aria-expanded="true"] .main-nav_list_icon::before {}
	/* CTAボタン: ドロワー内では非表示（SPでは別途リンクとして表示） */
	.main-nav_btnList {
		display: none;
		width: auto;
		padding: 0 20px;
		margin-left: 0;
		margin-top: 40px;
	}
	.main-nav_btnList > li {}
	.main-nav_btnList_btn {
		font-size: 16px;
		height: 68px;
	}
	.main-nav_btnList_btn-recruit {}
	.main-nav_btnList_arrow {}
	.main-nav_btnList_arrow-recruit {}
	.main-nav_btnList_btn-contact {}
	.main-nav_btnList_arrow-contact {}
	.main-nav_list_item_text {
		text-align: left;
	}
	.main-nav_list_item_text-toggle {
		display: none;
	}
	.main-nav_list_item_sub {
		display: inline;
		margin-left: 8px;
		font-size: 11px;
	}
	/* --- メガメニュー → アコーディオン変換（タブレット） --- */
	/* absolute 配置を解除し、max-height アニメーションで開閉 */
	.mega-menu {
		position: static;
		width: auto;
		background-color: rgba(255, 255, 255, 0);
		backdrop-filter: none;
		pointer-events: inherit;
		height: auto;
		opacity: 0;
		visibility: hidden;
		overflow: hidden;
		max-height: 0;
		transition-duration: var(--transition-base);
		transition-property: opacity, visibility, max-height;
	}
	.mega-menu.is-show {
		max-height: 1000px;
		pointer-events: inherit;
	}
	/* 各メガメニューの展開高さ（CSS変数でJSから動的に設定可能） */
	.mega-menu-solution.is-show {
		max-height: var(--height-menu-solution, 1000px);
	}
	.mega-menu-product.is-show {
		max-height: var(--height-menu-product, 1000px);
	}
	.mega-menu-company.is-show {
		max-height: var(--height-menu-company, 1000px);
	}
	.mega-menu_inner {}
	.mega-menu_cols {
		display: block;
	}
	.mega-menu_col {
		width: auto;
	}
	/* メガメニュータイトルカラムは非表示（リストのみ表示） */
	.mega-menu_col-title {
		display: none;
	}
	.mega-menu_title {}
	.mega-menu_title > a {}
	.mega-menu_title_main {}
	.mega-menu_title_sub {}
	.mega-menu_col-list {}
	/* リストを3カラムグリッドから縦積みに変更 */
	.mega-menu_list {
		display: block;
	}
	.mega-menu_list > li {}
	.mega-menu_list > li > a {
		min-height: 39px;
		color: rgba(4, 55, 111, 0.70);
		padding: 0;
		border: none;
	}
	.mega-menu_list > li > a > br {
		display: none;
	}
	.mega-menu_list > li > a > br.-pc {
		display: none;
	}
	.mega-menu_list > li > a > br.-sp {
		display: inline;
	}
	.mega-menu_arrow {
		display: none;
	}
	.mega-menu_arrow > .icon {}
	.mega-menu_title_arrow {}
	.mega-menu_contents {
		background-color: rgba(255, 255, 255, 0);
		padding-top: 20px;
		padding-bottom: 19px;
	}
	.site-header_col-titleScrolled {}
	.site-header_col-menuScrolled {}
	.cta-contact {}
	.cta-contact_bg {}
	.cta-contact_bg > img {}
	.cta-contact_inner {}
	.cta-contact_box {}
	.cta-contact_title {}
	.cta-contact_title_main {}
	.cta-contact_title_sub {}
	.cta-contact_text {}
	.cta-contact_link {}
	.cta-contact_link > a {}
	/* --- モバイルナビ専用: リンク＆コピーライト表示 --- */
	.main-nav_link {
		display: block;
		padding-left: 20px;
		padding-right: 20px;
		margin-top: 40px;
	}
	.main-nav_link > a {}
	/* ドロワー下部にコピーライトを表示 */
	.main-nav_copy {
		display: block;
		font-size: 10px;
		color: var(--color-dark-blue);
		padding-left: 20px;
		margin-top: 22px;
	}
	.footer-sub-nav_menu {}

	/* --- ページ本体・パンくず・ヒーロー（タブレット調整） --- */
	.page-body {
		padding-bottom: 100px;
	}
	.page-body-noPb {
		padding-bottom: 0;
	}
	.breadcrumb {
		margin-bottom: 80px;
		margin-top: 20px;
	}
	.breadcrumb-noMb {
		margin-bottom: 0;
	}
	.breadcrumb_inner {}
	.breadcrumb_oList {}
	.breadcrumb_oList > li {}
	.breadcrumb_oList > li:last-child {}
	.breadcrumb_oList > li:nth-last-child(n+2)::after {}
	.breadcrumb_oList > li > a {
		height: 45px;
	}
	/* ヒーロー: padding-top 縮小、背景装飾もサイズ縮小 */
	.page-hero {
		padding-top: 160px;
	}
	.page-hero_bg {
		width: 500px;
		margin-left: 280px;
	}
	.page-hero_bg_inner {}
	.page-hero_bg_img {}
	.page-hero_inner {}
	.page-hero_areaTitle {
		min-height: 136px;
	}
	.page-hero_title {
		font-size: 44px;
		line-height: 53px;
	}
	.page-hero_subTitle {}
	.page-hero_nav {}
	.page-hero_list {}
	.page-hero_list > li {}
	.page-hero_list > li > a {}
	.page-hero_list_arrow {}
	.page-hero_canvas {}
	.page-hero-noTitle {
		padding-top: 100px;
	}
	.breadcrumb-noBorder {
		margin-bottom: 0
	}
	.page-hero-wrap {}
	.page-hero-wrap_bg {}
	.page-hero-wrap_bg_contents {}
	.page-hero-wrap_circle {}
	.page-hero-wrap_circle-no1 {}
	.page-hero-wrap_circle-no2 {}
	.page-hero-wrap_circle-no3 {}
	/* 背景曲線SVGを縮小 */
	.page-hero-wrap_bg_line {
		width: 750px;
		margin-left: 120px;
	}
	.page-hero-wrap_bg_line_inner {}
	.page-hero-wrap_bg_line_svg {}
	.page-hero-wrap-mb {
		margin-bottom: 60px;
	}
	.page-hero-noMb {
		margin-bottom: 0;
	}
	.page-hero_areaTitle-ttl {}
	.page-hero_ttlEn {
		font-size: 70px;
	}
	.page-hero_ttlJa {}
	.page-hero-wrap-mbS {}
	.page-body-business {
		overflow: hidden;
	}
	.page-hero-wrap_bg_lineWrap {
		height: 835px;
	}
	.page-body-home {
		padding-bottom: 0;
	}
}

/* --- レスポンシブ: スマートフォン (767px以下) --- */
/* 主な変更点:
   - フッターナビ: 1カラム縦積み + アコーディオン開閉
   - フッター下部: 縦積みレイアウト、区切り線除去
   - ページトップボタン: サイズ縮小（50px）
   - ナビ: backdrop-filter 除去（パフォーマンス改善）
   - CTA: padding・タイトル縮小
   - パンくず: フォント10px、左寄せ表示
   - ページヒーロー: タイトル29px、背景さらに縮小
   - 背景装飾: 円・曲線をSP用サイズに */
@media screen and (max-width:767px) {

	/* --- フッター（スマートフォン調整） --- */
	.site-footer {
		padding-top: 59px;
		padding-bottom: 42px;
	}
	.site-footer_nav {}
	.site-footer_nav_inner {}
	.site-footer_logo {
		max-width: 224px;
		margin-bottom: 41px;
	}
	.site-footer_logo > a {}
	.site-footer_logo > a > img {}
	/* フッターナビ: 4カラムグリッドから1カラム縦積みに変更 */
	.footer-nav {}
	.footer-nav_cols {
		display: block;
	}
	.footer-nav_col {}
	.footer-nav_list {}
	.footer-nav_list_item {}
	.footer-nav_list_item:nth-child(n+2) {}
	/* フッターナビ開閉ボタン: SP で表示し、＋/− アイコンで開閉 */
	.footer-nav_list_btn {
		display: block;
		position: absolute;
		top: 0;
		height: 68px;
		right: -10px;
		z-index: 10;
		padding: 0 20px;
	}
	/* ＋アイコン: 横棒 + 疑似要素の縦棒で構成 */
	.footer-nav_list_btn_icon {
		display: block;
		width: 15px;
		height: 1px;
		background-color: currentColor;
		margin: 0 auto;
		position: relative;
	}
	.footer-nav_list_btn_icon::before {
		content: "";
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: currentColor;
		transform: rotate(90deg);
		transition-duration: var(--transition-base);
		transition-property: transform;
	}
	/* 展開時: 縦棒を0度に戻して − に変化 */
	.footer-nav_list_btn[aria-expanded="true"] .footer-nav_list_btn_icon::before {
		transform: rotate(0deg);
	}
	.footer-nav_cList {
		margin-top: 0;
		padding-top: 20px;
		padding-bottom: 19px;
	}
	.footer-nav_cList > li {}
	.footer-nav_cList > li > a {
		padding: 0;
		line-height: 1.4;
		min-height: 39px;
		display: flex;
		align-items: center;
	}
	.footer-nav_list_item > a {
		min-height: 68px;
		box-sizing: border-box;
	}
	.footer-nav_list_item_arrow {}
	.footer-nav_list_item-hasChild {
		position: relative;
	}
	.footer-nav_list_item-hasChild > a {}
	/* フッター下部: 上線・余白を除去して縦積みレイアウトに */
	.site-footer_contents {
		border-top: none;
		padding: 0;
		padding-bottom: 0;
		margin: 0;
	}
	.site-footer_contents_inner {}
	/* 横並びを縦積みに変更 */
	.site-footer_cols {
		display: block;
	}
	.site-footer_col {}
	.site-footer_col-sns {}
	.site-footer_link {}
	.site-footer_link > a {}
	.site-footer_link > a > .icon {}
	/* リンクリスト: 横並びから縦積みに変更 */
	.site-footer_list {
		display: block;
		font-size: 12px;
		margin-top: 26px;
	}
	.site-footer_list > li {}
	/* 縦積みのためセパレーター（縦棒）を非表示 */
	.site-footer_list > li:nth-last-child(n+2)::after {
		display: none;
	}
	.site-footer_list > li > a {}
	.site-footer_col-info {
		padding: 0;
		margin-top: 28px;
	}
	.site-footer_sponsor {
		font-size: 12px;
	}
	.site-footer_sponsor_image {}
	.site-footer_sponsor_image > img {}
	.site-footer_sponsor_text {}
	.site-footer_copyright {
		font-size: 10px;
		margin-top: 22px;
	}
	.footer-nav_cList_arrow {}

	/* --- ページトップボタン（スマートフォン調整） --- */
	/* 画面端からの距離を縮小 */
	.back-to-top {
		bottom: 20px;
		right: 20px;
	}
	.back-to-top_inner {}
	.back-to-top_button {
		position: relative;
		z-index: 10;
	}
	/* ボタン: 64px → 50px に縮小 */
	.back-to-top_button_box {
		width: 50px;
		height: 50px;
		margin: 0 auto;
	}
	.back-to-top_button_box_arrow {}
	.back-to-top_button_box_arrow > .icon {}
	.back-to-top_button_text {
		font-size: 12px;
		margin-top: 13px;
	}
	/* --- ヘッダー・ナビ（スマートフォン調整） --- */
	.header-wrap {}
	.site-header {}
	.is-mega-open .site-header {}
	.site-header-scrolled {}
	.site-header_inner {}
	.site-header_cols {}
	.site-header_col {}
	.site-header_col-title {}
	.site-header_title {}
	.site-header_title > a {}
	.site-header_title_img {}
	.site-header_col-menu {}
	.menu-toggle {}
	.menu-toggle_barWrap {}
	.menu-toggle_bar {}
	.menu-toggle_bar-no1 {}
	.menu-toggle_bar-no2 {}
	/* ドロワー背景: backdrop-filter 除去（SP パフォーマンス改善） */
	.main-nav {
		background-color: rgba(255, 255, 255, 0);
		backdrop-filter: none;
	}
	.site-header-scrolled .main-nav {}
	/* ドロワー: 全幅表示（max-width 制限解除） */
	.main-nav_inner {
		max-width: none;
	}
	.main-nav_list {}
	.main-nav_list > li {}
	.main-nav_list_item {}
	.site-header-scrolled .main-nav_list_item {}
	.main-nav_list_item-hidden {}
	.main-nav_list_item-toggle {}
	.main-nav_list_icon {}
	.main-nav_list_icon::before {}
	.main-nav_list_item[aria-expanded="true"] .main-nav_list_icon::before {}
	.main-nav_btnList {}
	.main-nav_btnList > li {}
	.main-nav_btnList_btn {}
	.main-nav_btnList_btn-recruit {}
	.main-nav_btnList_arrow {}
	.main-nav_btnList_arrow-recruit {}
	.main-nav_btnList_btn-contact {}
	.main-nav_btnList_arrow-contact {}
	.main-nav_list_item_text {}
	.main-nav_list_item_text-toggle {}
	.mega-menu {}
	.mega-menu.is-show {}
	.mega-menu_inner {}
	.mega-menu_cols {}
	.mega-menu_col {}
	.mega-menu_col-title {}
	.mega-menu_title {}
	.mega-menu_title > a {}
	.mega-menu_title_main {}
	.mega-menu_title_sub {}
	.mega-menu_col-list {}
	.mega-menu_list {}
	.mega-menu_list > li {}
	.mega-menu_list > li > a {}
	.mega-menu_list > li > a > br {}
	.mega-menu_arrow {}
	.mega-menu_arrow > .icon {}
	.mega-menu_title_arrow {}
	.mega-menu_contents {}
	.site-header_col-titleScrolled {}
	.site-header_col-menuScrolled {}

	/* --- CTA お問い合わせ（スマートフォン調整） --- */
	.cta-contact {
		padding: 60px 0;
	}
	.cta-contact_bg {
		width: 670px;
		height: 734px;
		margin-left: -114px;
		margin-top: -63px;
	}
	.cta-contact_bg > img {}
	.cta-contact_inner {}
	.cta-contact_box {
		padding: 47px 20px 40px;
	}
	.cta-contact_title {
		font-size: 14px;
		margin-bottom: 43px;
	}
	.cta-contact_title_main {}
	/* 英語タイトル: 70px → 35px に半減、左右にはみ出し許容 */
	.cta-contact_title_sub {
		font-size: 35px;
		margin-left: -10px;
		margin-right: -10px;
	}
	.cta-contact_text {
		text-align: left;
		font-size: 16px;
	}
	.cta-contact_link {
		max-width: none;
		margin-top: 36px;
	}
	.cta-contact_link > a {
		width: auto;
		display: inline-flex;
	}

	/* --- フッターサブナビ: アコーディオン表示（SP） --- */
	.footer-sub-nav_menu {
		opacity: 0;
		visibility: hidden;
		overflow: hidden;
		max-height: 0;
		transition-duration: var(--transition-base);
		transition-property: opacity, visibility, max-height;
	}
	.footer-sub-nav_menu.is-show {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	/* 各サブナビの展開高さ（CSS変数でJSから動的に設定可能） */
	.footer-sub-nav_menu-solution.is-show {
		max-height: var(--height-footer-solution, 1000px);
	}
	.footer-sub-nav_menu-product.is-show {
		max-height: var(--height-footer-product, 1000px);
	}
	.footer-sub-nav_menu-company.is-show {
		max-height: var(--height-footer-company, 1000px);
	}

	/* --- ページ本体・パンくず（スマートフォン調整） --- */
	.page-body {
		padding-bottom: 60px;
	}
	.page-body-noPb {
		padding-bottom: 0;
	}
	.breadcrumb {
		margin-bottom: 40px;
		margin-top: 25px;
	}
	.breadcrumb-noMb {
		margin-bottom: 0;
	}
	.breadcrumb_inner {}
	/* パンくず: 右寄せから左寄せに変更、右端にスクロール余白 */
	.breadcrumb_oList {
		font-size: 10px;
		justify-content: flex-start;
		margin-right: -20px;
	}
	.breadcrumb_oList > li {}
	.breadcrumb_oList > li:last-child {
		overflow: visible;
		padding-right: 20px;
	}
	.breadcrumb_oList > li:nth-last-child(n+2)::after {
		margin: 0 6px;
		top: 0px;
	}
	.breadcrumb_oList > li > a {
		height: 40px;
	}
	/* --- ページヒーロー（スマートフォン調整） --- */
	.page-hero {
		padding-top: 100px;
		margin-bottom: 25px;
	}
	.page-hero_bg {
		width: 300px;
		margin-left: 120px;
		top: 40px;
	}
	.page-hero_bg_inner {}
	.page-hero_bg_img {}
	.page-hero_inner {}
	.page-hero_areaTitle {
		min-height: 96px;
	}
	.page-hero_title {
		font-size: 29px;
		line-height: 35px;
		padding-right: 40px;
	}
	.page-hero_title-small {
		font-size: 27px;
	}
	.page-hero_subTitle {
		font-size: 12px;
		line-height: 20px;
	}
	.page-hero_nav {
		margin-top: 23px;
	}
	.page-hero_list {
		column-gap: 8px;
		font-size: 13px;
	}
	.page-hero_list > li {
		min-width: 0;
	}
	.page-hero_list > li > a {
		padding-right: 17px;
	}
	.page-hero_list_arrow {}
	.page-hero_canvas {}
	.page-hero-noTitle {
		margin-bottom: 0;
	}
	.breadcrumb-noBorder {
		margin-bottom: 0;
	}
	.page-hero-wrap {}
	.page-hero-wrap_bg {}
	.page-hero-wrap_bg_contents {}
	/* --- 背景装飾（スマートフォン調整） --- */
	/* 装飾円: 1400px → 500px に縮小 */
	.page-hero-wrap_circle {
		width: 500px;
		height: 500px;
	}
	.page-hero-wrap_circle-no1 {
		margin-left: 50px;
		top: -40px;
	}
	.page-hero-wrap_circle-no2 {
		margin-left: 0;
		top: 240px;
		margin-left: 240px;
	}
	.page-hero-wrap_circle.page-hero-wrap_circle-no2 {}
	.page-hero-wrap_circle-no3 {
		top: 220px;
		margin-left: -280px;
	}
	/* 曲線SVG: 950px → 475px に縮小 */
	.page-hero-wrap_bg_line {
		width: 475px;
		top: -80px;
		margin-left: 80px;
	}
	.page-hero-wrap_bg_line_inner {}
	.page-hero-wrap_bg_line_svg {}
	.page-hero-wrap-mb {
		margin-bottom: 35px;
	}
	.page-hero-noMb {
		margin-bottom: 0;
	}
	.page-hero_areaTitle-ttl {}
	.page-hero_ttlEn {
		font-size: 44px;
	}
	.page-hero_ttlJa {
		font-size: 14px;
	}
	.page-hero-wrap-mbS {}
	.page-hero-wrap_bg_lineWrap {
		height: 530px;
	}
	.page-body-home {
		padding-bottom: 0;
	}
}

/* --- レスポンシブ: 小型スマートフォン (374px以下) --- */
/* 対象: ページヒーロータイトルのさらなる縮小 */
@media screen and (max-width:374px) {
	/* タイトルを24pxまで縮小して画面に収める */
	.page-hero_title {
		font-size: 24px;
	}
}
