/* ===================================
   BrioWorks - クリーンアップ済みCSS
   =================================== */

:root {
	--color-primary: #0eb1b5;
	--color-primary-dark: #0a8a8d;
	--color-primary-light: #e6f7f8;
	--color-text-main: #1a1a1a;
	--color-text-secondary: #4a4a4a;
	--color-text-light: #6a6a6a;
	--color-bg-main: #ffffff;
	--color-bg-light: #f8f9fa;
	--color-bg-dark: #2c3e50;
	--color-border: #e0e0e0;
	--transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
}

* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
}
body {
	overflow-x: hidden;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
}

.bw-bg-light {
	background-color: var(--color-bg-light);
}

/* -----------------------------------
   1. テーマの制限を強制解除（全幅対応）
   ----------------------------------- */
.site-main.bw-home,
.bw-home .inside-article,
.bw-home .site-content {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
}
.bw-container {
	width: 100% !important;
	max-width: 1800px !important;
	margin: 0 auto !important;
	padding: 0 5% !important;
	box-sizing: border-box;
}

.bw-section {
	padding: 100px 0;
}

/* -----------------------------------
   3. ヘッダー
   ----------------------------------- */
.bw-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100px;
	background: #fff;
	backdrop-filter: blur(10px);
	z-index: 9999;
	border-bottom: 1px solid var(--color-border);
}

.bw-header-container {
	max-width: 1400px;
	width: 92%;
	margin: 0 auto;
	height: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.bw-logo img {
	height: 60px;
	width: auto;
	display: block;
}

.bw-nav-list {
	display: flex;
	list-style: none;
	gap: 32px;
	align-items: center;
	margin: 0;
}

.bw-nav-list a {
	text-decoration: none;
	color: var(--color-text-main);
	font-weight: 400;
	font-size: 18px;
	transition: var(--transition-base);
}

/* ナビゲーションリスト */
.bw-nav-list {
	display: flex;
	list-style: none;
	gap: 40px;
	align-items: center;
	margin: 0;
	height: 100%; /* 親要素いっぱいに高さを取る */
}

/* ナビゲーションの共通設定 */
.bw-nav-list a {
	text-decoration: none;
	color: var(--color-text-main);
	font-weight: 400;
	font-size: 20px;
	font-family: 'Inter', 'Noto Sans JP', sans-serif;
	transition: var(--transition-base);
	display: inline-flex;
	align-items: center;
	height: 100%;
	position: relative;
}

/* 左側2つの文字リンク：ヘッダー最下部にラインを表示 */
.bw-nav-list li:not(:last-child) a::after {
	content: '';
	position: absolute;
	bottom: 0; /* ヘッダーの枠線（下端）に合わせる */
	left: 0;
	width: 100%;
	height: 2px; /* ラインの太さ */
	background: var(--color-primary);
	transform: scaleX(0); /* 最初は非表示 */
	transform-origin: center;
	transition: transform 0.3s ease;
}

/* ホバー時にラインを中央から広げる */
.bw-nav-list li:not(:last-child) a:hover {
	color: var(--color-primary);
}

.bw-nav-list li:not(:last-child) a:hover::after {
	transform: scaleX(1);
}

/* --- お問い合わせボタン（ヘッダー） --- */
.bw-header-btn {
	background: var(--color-primary);
	color: #ffffff !important;
	padding: 10px 24px;
	border-radius: 6px;
	font-weight: 600 !important;
	font-size: 16px !important;
	height: auto !important;
	border: 2px solid var(--color-primary);
	transition: var(--transition-base);
	box-shadow: none;
}

/* ホバー：背景を白く、文字と枠線をアクセントカラーに反転 */
.bw-header-btn:hover {
	background: #ffffff !important;
	color: var(--color-primary) !important;
}

/* --- カード内のリンク・ボタン等がある場合も同様のルールを適用 --- */
.bw-button-link {
	background: var(--color-primary);
	color: #ffffff;
	border: 2px solid var(--color-primary);
	padding: 12px 32px;
	border-radius: 6px;
	text-decoration: none;
	display: inline-block;
	transition: var(--transition-base);
}

.bw-button-link:hover {
	background: transparent;
	color: var(--color-primary);
}

/* --- 768px以下のスマホ・タブレット対応 --- */
@media (max-width: 768px) {
	.bw-header {
		height: 70px; /* スマホではヘッダーを少し低く */
	}

	.bw-logo img {
		height: 40px; /* ロゴも少し小さく */
	}

	/* PC用メニューを隠す */
	.bw-nav-list {
		position: fixed;
		top: 0;
		right: -100%; /* 最初は画面の外に隠す */
		width: 80%;
		height: 100vh;
		background: #fff;
		flex-direction: column; /* 縦並び */
		justify-content: center;
		gap: 30px;
		transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
		box-shadow: -10px 0 30px rgba(0, 0, 0, 0.1);
		z-index: 10000;
		padding: 50px;
	}

	/* メニュー開閉時のクラス（JavaScriptで操作） */
	.bw-nav-list.is-active {
		right: 0;
	}

	.bw-nav-list a {
		font-size: 24px; /* スマホではタップしやすく大きく */
		height: auto;
		width: 100%;
		justify-content: flex-start;
	}

	/* スマホ用ハンバーガーボタンの作成 */
	.bw-hamburger {
		display: block;
		width: 30px;
		height: 24px;
		position: relative;
		cursor: pointer;
		z-index: 10001;
	}

	.bw-hamburger span {
		position: absolute;
		width: 100%;
		height: 2px;
		background: var(--color-primary);
		left: 0;
		transition: 0.3s;
	}

	.bw-hamburger span:nth-child(1) {
		top: 0;
	}
	.bw-hamburger span:nth-child(2) {
		top: 11px;
	}
	.bw-hamburger span:nth-child(3) {
		top: 22px;
	}

	/* メニューが開いている時のボタンの形（×印） */
	.bw-hamburger.is-active span:nth-child(1) {
		transform: translateY(11px) rotate(45deg);
	}
	.bw-hamburger.is-active span:nth-child(2) {
		opacity: 0;
	}
	.bw-hamburger.is-active span:nth-child(3) {
		transform: translateY(-11px) rotate(-45deg);
	}
}

/* PCではハンバーガーを隠す */
@media (min-width: 769px) {
	.bw-hamburger {
		display: none;
	}
}

/* -----------------------------------
   会社概要ページ（アクセントカラー背景・一体型）
   ----------------------------------- */
/* 1. セクション全体を塗りつぶし */
.bw-company-detail {
	/* 1. 背景画像とオーバーレイを同時に指定 */
	background-image:
		linear-gradient(
			/* 上の色 */ rgba(14, 177, 181, 0.9),
			rgba(14, 177, 181, 0.4) /* 下の色：少し濃くしてグラデーションに */
		),
		url('https://brioworks.biz/wp-content/themes/generatepress/bw/img/bw-hero-bg.jpg');

	background-size: cover;
	background-position: center;
	background-attachment: fixed; /* 背景を固定してパララックス効果 */
	background-repeat: no-repeat;

	/* 2. 不要な背景色をリセット */
	background-color: transparent !important;
	padding: 0 !important;
	min-height: 100vh;

	/* 文字を白抜きで読みやすくする */
	color: #ffffff;
}

/* 2. 上部の見出しエリア（中央揃え & 余白調整） */
.bw-company-hero {
	background-color: transparent !important;
	padding: 160px 0 60px;
	color: #ffffff;
}

.bw-company-hero .bw-page-header {
	text-align: center;
	margin: 0 auto;
}

.bw-company-hero .en {
	display: block;
	font-size: 14px;
	letter-spacing: 0.3em;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 10px !important; /* 英語表記とタイトルの間を詰める */
	text-transform: uppercase;
}

.bw-company-hero .bw-title-main-page {
	font-size: clamp(36px, 6vw, 60px);
	font-weight: 700;
	color: #ffffff !important;
	margin-top: 0 !important; /* 英語表記との間を詰める */
	margin-bottom: 40px;
}

.bw-company-hero .bw-text-lead {
	font-size: clamp(18px, 2vw, 22px);
	line-height: 1.8;
	color: #ffffff !important;
	max-width: 1400px; /* 中央揃えで見やすい幅に制限 */
	margin: 0 auto;
	opacity: 0.95;
	text-align: center;
}

/* 3. 浮かせる白いカード */
.bw-content-over-card {
	max-width: 1600px !important;
	margin: 0 auto !important;
	padding: 0 20px 120px !important; /* 左右に少しだけ安全余白 */
}

.bw-main-card {
	background: #ffffff;
	padding: 80px 60px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.2) !important;
	border-radius: 4px;
}

/* カード内テキスト */
.bw-main-card h2,
.bw-main-card h3,
.bw-main-card p,
.bw-main-card th,
.bw-main-card td {
	color: var(--color-text-main) !important;
}

.bw-title-section-sub {
	font-size: 40px;
	font-weight: 700;
	border-left: 5px solid var(--color-primary);
	padding-left: 20px;
	margin: 60px 0 40px;
}

.bw-company-values:first-child .bw-title-section-sub {
	margin-top: 0;
}

.bw-values-simple-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
	margin-bottom: 80px;
}

.bw-value-card {
	background: #f9fbfb !important;
	padding: 50px 40px;
	border: 1px solid #e0eaea;
	border-radius: 8px; /* 少し角を丸める */
	transition: var(--transition-base);
	display: flex;
	flex-direction: column;
	align-items: flex-start; /* 左揃えを徹底 */
	text-align: left;
}

/* 数字部分 */
.bw-value-card .num {
	font-size: 24px;
	font-weight: 500;
	color: var(--color-primary);
	display: block;
	margin-bottom: 20px;
	font-family: 'Inter', sans-serif;
	position: relative;
	padding-bottom: 8px;
}

/* カード内見出し */
.bw-value-card h3 {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 15px 0 !important;
	line-height: 1.4;
	color: var(--color-text-main) !important;
}

/* カード内本文 */
.bw-value-card p {
	font-size: 20px;
	line-height: 1.8;
	margin: 0 !important;
	color: var(--color-text-secondary) !important;
}

.bw-value-card .num {
	font-size: 32px;
	font-weight: 700;
	color: var(--color-primary);
	display: block;
	margin-bottom: 15px;
}

/* ======================================
   BrioWorksの特徴セクションの左右分割レイアウト
   ======================================= */
.bw-features-split {
	display: flex;
	align-items: center; /* 垂直方向の中央揃え */
	gap: 60px; /* テキストと画像の間の溝 */
	margin-top: 30px;
}

.bw-feature-rows {
	flex: 1; /* テキスト側を広げる */
	margin-bottom: 20px;
}

/* 最後の行だけは下の余白を消してバランスを取る */
.bw-feature-row:last-child {
	margin-bottom: 0;
}

/* 見出し */
.bw-feature-rows h3 {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 15px 0 !important;
	line-height: 1.4;
	color: var(--color-text-main) !important;
	font-size: 24px;
}

/* pの前にひし形のマーク */
/*.bw-feature-rows p::before {
	content: '';
	position: absolute;
	left: 0;	
	top: 0.5em;
	width: 12px;
	height: 12px;
	background-color: var(--color-primary);
	border-radius: 2px;
	transform: rotate(45deg);
	z-index: 1;
}*/

/* カード内本文 */
.bw-feature-rows p {
	position: relative;
	font-size: 20px;
	line-height: 1.5;
	/*padding-left: 30px;  ひし型アイコン分のスペース */
	margin-bottom: 40px !important;
	color: var(--color-text-secondary) !important;
}

/* 各項目の区切り線と余白の調整 */
.bw-feature-row {
	border-bottom: 1px solid #eee; /* 薄いグレーの線 */
	margin-bottom: 20px; /* 線と次の見出し（h3）の間の余白 */
}

/* 最後の項目だけは線を消してスッキリさせる */
.bw-feature-row:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.bw-feature-image {
	flex: 1;
	text-align: center;
	position: relative; /* 背景ボックスの基準になります */
}

.bw-image-deco {
	position: absolute;
	top: 10px; /* 下にずらす量 */
	left: 20px; /* 右にずらす量 */
	width: 100%;
	height: 100%;
	background-color: #f0f4f4;
	border-radius: 24px;
	z-index: 1;
}

.bw-feature-image img {
	width: 100%;
	height: auto;
	display: block;
	position: relative;
	z-index: 2; /* 背景より上に表示 */
	border-radius: 24px; /* 角丸 */
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); /* 立体感 */
}

/* スマホ対応：縦並びに戻す */
@media screen and (max-width: 768px) {
	.bw-features-split {
		flex-direction: column; /* 縦並びに */
	}

	/* セクション全体の見出し(h2)の調整 */
	.bw-title-section-sub {
		font-size: 28px !important; /* PCの40pxからサイズダウン */
		padding-left: 15px !important; /* 左の縦線の余白を少し詰める */
		margin: 40px 0 25px !important; /* 上下の余白をスマホ用に圧縮 */
		border-left-width: 4px !important; /* 縦線を少し細く */
	}

	.bw-feature-rows p {
		font-size: 17px !important;
		padding-left: 25px !important;
	}

	.bw-feature-rows p::before {
		width: 10px;
		height: 10px;
		top: 0.45em; /* 文字が小さくなった分、少し上に */
	}

	.bw-feature-image {
		order: -1; /* スマホでは画像を先に（上に）見せたい場合 */
		padding: 5px; /* スマホでは余白を少し抑える */
		width: 100%;
		margin: 0 auto;
	}

	.bw-image-deco {
		/* ズレを半分くらいに抑えてバランスを整える */
		top: 8px;
		left: 10px;

		/* 角丸がキツく感じられる場合は少し調整（任意） */
		border-radius: 16px;
	}

	/* 画像本体の角丸も合わせる */
	.bw-feature-image img {
		border-radius: 16px;
	}

	.bw-feature-rows h3 {
		font-size: 22px !important; /* PCより少し小さくして1行に収まりやすく */
		line-height: 1.3 !important; /* 文字サイズに合わせて行間を微調整 */
		margin-bottom: 10px !important; /* 本文との隙間を少し詰める */
		padding-left: 12px; /* もし左側に縦線を入れているなら、その余白も調整 */
	}

	/* 本文（p）も合わせて調整すると綺麗です */
	.bw-feature-rows p {
		font-size: 17px !important; /* 20pxはスマホでは大きすぎるので17-18pxに */
		line-height: 1.6 !important; /* 読みやすさを確保 */
		margin-bottom: 30px !important; /* 次の項目までの距離をPCより縮める */
	}
}

/* ===================================
   会社概要ページ - 下部リンクエリア（分離型グリッド）
   =================================== */

/* 1. セクション全体の背景（薄いグレー） */
.bw-bg-light {
	background-color: #f4f7f7 !important;
	padding: 100px 0 !important;
}

/* 2. 親コンテナ：グリッドの定義 */
.bw-flex-split-cards {
	display: grid;
	/* 固定で2カラム（50%ずつ）にする設定 */
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	max-width: 1600px !important;
	margin: 0 auto !important;
	padding: 0 20px !important;
}

/* 3. カードの共通デザイン */
.bw-card-unit {
	background: #ffffff;
	padding: 60px 50px !important;
	border-radius: 4px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05) !important;
	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-decoration: none !important;
	min-height: 280px;
}

/* 4. 左側（会社情報）固有 */
.bw-split-item-left {
	text-align: left;
	align-items: flex-start;
}

.bw-split-item-left .bw-table-wrapper {
	width: 100%;
}

.bw-split-item-left .bw-table {
	width: 100%;
	border-collapse: collapse;
	/* テーブルのレイアウトを固定モードにする（これで幅指定が効くようになります） */
	table-layout: fixed;
	margin-top: 20px;
}

.bw-split-item-left .bw-table th {
	width: 140px;
	padding: 8px 10px 0 0;
	text-align: justify;

	vertical-align: top; /* 文字数が多い場合に上に揃える */
	font-weight: 700;
	color: var(--color-text-main);
}

.bw-split-item-left .bw-table td {
	padding: 8px 0;
	text-align: left;
	vertical-align: top;
	color: var(--color-text-secondary);
}

/* スマホ対応：幅が狭い時は幅指定を解除するか、縦並びに */
@media (max-width: 480px) {
	.bw-split-item-left .bw-table th {
		width: 80px; /* スマホでは少し狭める */
	}
}

/* --- 左側（会社情報）カードの英字下の余白を統一 --- */
.bw-split-item-left .en {
	margin-bottom: 10px !important;
}

/* 左側のタイトル側の余白もリセットして位置を揃える */
.bw-split-item-left .bw-title-section-center {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* 5. 右側（お問い合わせ）固有 */
.bw-company-contact.bw-split-item {
	background-color: var(--color-primary) !important;
	color: #ffffff !important;
	text-align: center;
	align-items: center;
}
/* お問い合わせ内のテキストを強制的に白にする */
.bw-company-contact .bw-title-section-center,
.bw-company-contact .bw-p-center {
	color: #ffffff;
}

.bw-company-contact .en {
	color: rgba(255, 255, 255, 0.5) !important;
	margin-bottom: 10px !important;
}

.bw-company-contact .bw-title-section-center {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* 6. テキスト・英字のスタイル */
.bw-card-unit .en {
	display: block;
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--color-primary); /* 左側用 */
}

.bw-title-section-center {
	font-size: 28px;
	font-weight: 700;
	margin-bottom: 20px;
	line-height: 1.3;
}

.bw-p-center {
	font-size: 16px;
	line-height: 1.8;
	margin-bottom: 30px;
}

/* 7. アイコン（矢印） */
.bw-icon-center {
	width: 50px;
	height: 50px;
	border: 1px solid var(--color-border);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	transition: all 0.3s ease;
}

/* 矢印の形状（擬似要素） */
.bw-icon-center::before {
	content: '';
	position: absolute;
	width: 18px;
	height: 2px;
	background-color: var(--color-border);
}
.bw-icon-center::after {
	content: '';
	position: absolute;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--color-border);
	border-right: 2px solid var(--color-border);
	transform: rotate(45deg);
	margin-left: 10px;
}

/* お問い合わせ（青背景）時の初期色 */
.bw-company-contact .bw-icon-center {
	border-color: rgba(255, 255, 255, 0.5);
}
.bw-company-contact .bw-icon-center::before {
	background-color: #ffffff;
}
.bw-company-contact .bw-icon-center::after {
	border-color: #ffffff;
}

/* ホバー時のアイコン色変化（右側） */
.bw-company-contact:hover .bw-icon-center {
	background-color: #ffffff;
}
.bw-company-contact:hover .bw-icon-center::before {
	background-color: var(--color-primary);
}
.bw-company-contact:hover .bw-icon-center::after {
	border-color: var(--color-primary);
}

/* --- レスポンシブ対応：タブレット・スマホ共通 --- */
@media (max-width: 992px) {
	/* 1. グリッドを縦1列に変更 */
	.bw-flex-split-cards {
		grid-template-columns: 1fr !important;
		gap: 20px; /* 隙間を少し狭く */
		padding: 0 15px !important;
	}

	/* 2. カードのパディングと高さを調整 */
	.bw-card-unit {
		padding: 40px 30px !important; /* 内側の余白を削減 */
		min-height: auto; /* 高さを中身に合わせる */
	}

	/* 3. フォントサイズの調整 */
	.bw-title-section-center {
		font-size: 24px !important;
		margin-bottom: 20px !important;
	}

	.bw-p-center {
		font-size: 15px;
		line-height: 1.6;
		text-align: left; /* スマホでは左寄せの方が見やすい場合が多いです */
	}
}

/* --- レスポンシブ対応：さらに小さいスマホ（480px以下） --- */
@media (max-width: 480px) {
	.bw-card-unit {
		padding: 30px 20px !important;
	}

	/* 会社情報テーブルの調整 */
	.bw-table th {
		width: 80px; /* 見出し幅を狭くして内容の領域を確保 */
		font-size: 14px;
	}

	.bw-table td {
		font-size: 14px;
	}

	/* 改行指定（br_pc_only）をスマホで無効化 */
	.br_pc_only {
		display: none;
	}
}
/* -----------------------------------
   7. フッター
   ----------------------------------- */
.bw-footer {
	background: var(--color-bg-dark);
	color: #fff;
	padding: 40px 0 20px;
}

.bw-footer-flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 30px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	margin-bottom: 20px;
}

.bw-footer-brand {
	display: flex;
	align-items: center;
	gap: 20px;
}

.bw-footer-logo img {
	height: 40px;
	width: auto;
}

.bw-footer-tagline {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.6);
	margin: 0;
	border-left: 1px solid rgba(255, 255, 255, 0.3);
	padding-left: 20px;
}

.bw-footer-nav {
	display: flex;
	gap: 24px;
}

.bw-footer-nav a {
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	opacity: 0.8;
}

.bw-footer-nav a:hover {
	opacity: 1;
	color: var(--color-primary);
}

.bw-copyright {
	text-align: center;
	font-size: 11px;
	color: rgba(255, 255, 255, 0.4);
}

/* スマホ対応 */
@media (max-width: 768px) {
	.bw-header {
		height: 70px;
	}
	.bw-logo img {
		height: 40px;
	}
	.bw-company-hero {
		padding: 120px 0 60px;
	}
	.bw-main-card {
		padding: 40px 20px;
	}
	.bw-feature-row {
		flex-direction: column;
		gap: 10px;
	}
	.bw-table th,
	.bw-table td {
		display: block;
		width: 100% !important;
	}
	.bw-footer-flex {
		flex-direction: column;
		gap: 25px;
		align-items: flex-start;
	}
	.bw-footer-brand {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.bw-footer-tagline {
		border-left: none;
		padding-left: 0;
	}
	.bw-footer-nav {
		flex-wrap: wrap;
		gap: 15px 20px;
	}
	.bw-copyright {
		text-align: left;
	}
}
