@charset "UTF-8";

/*
Theme Name: GBLTheme
Theme URI:
Description: GBLTheme
Author: GBL
Version: 1.0.0
*/

/* ==========================================================================
   0. Reset / Normalize
   ブラウザ間の差異をなくすためのスタイル
   (必要に応じてsanitize.cssやdestyle.cssを読み込むか、ここに記述)
   ========================================================================== */

/* すべての要素の余白を一旦ゼロにする（簡易リセット） */
*, *::before, *::after {
    box-sizing: border-box; /* サイズ計算を楽にする設定（必須級） */
    margin: 0;
    padding: 0;
}

/* ブラウザ標準の余白を消す */
body {
    margin: 0;
}

/* --- 共通のリセット設定 --- */
ul, ol {
	list-style: none; /* 全ての中黒を削除 */
	margin: 0;
	padding: 0;
}

/* ==========================================================================
   1. Base (Global Styles)
   サイト全体に適用される基本設定。特定のクラスを持たないタグへのスタイル
   ========================================================================== */
html {
	font-size: 100%; /* 16px */
	scroll-behavior: smooth;
}

body {
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Arial, "Helvetica Neue", Meiryo, sans-serif;
	line-height: 1.6;
	color: #333;
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

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

a:hover {
	opacity: 0.7;
}

/* ==========================================================================
   2. Layout
   ヘッダー、フッター、メインコンテンツの枠組みなど、大きな構造
   ========================================================================== */
.l-container {
	max-width: 1200px;
	margin-right: auto;
	margin-left: auto;
	padding-right: 20px;
	padding-left: 20px;
}


/* --- Footer Base --- */
.l-footer {
	color: #fff;
}

.l-footer a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s;
}
.l-footer a:hover {
	opacity: 0.7;
}


/* ==========================================================================
   Header: PC
   ========================================================================== */
.l-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.l-header__inner {
  	display: flex;
  	align-items: center;
  	justify-content: space-between;
  	padding: 15px 40px;
	max-width: 1400px; /* 画面が広すぎても離れすぎないよう調整 */
  	margin: 0 auto;
}

/* --- ロゴの幅を固定して安定させる --- */
.l-header__logo {
	flex-shrink: 0; /* ロゴが潰されるのを防ぐ */
	width: 170px;   /* キャプチャを参考に適切な幅を指定 */
}

.l-header__logo img {
	width: 100%;
	height: auto;
}

/* 右側グループ（メニュー ＋ お問い合わせボタン） */
.l-header__right {
	display: flex;
	align-items: center;
	gap: 20px; /* メニューとボタンの間の余白 */
	margin-left: auto;
}

/* スマホ版（1039px以下） */
@media screen and (max-width: 1039px) {
	.l-header__right {
		display: none;
	}
	.l-header__inner {
		padding: 15px 20px;
	}
}

/* メニュー自体の横並び */
.l-header__menu {
	display: flex;
	align-items: center;
	gap: 15px;
	margin: 0;
	padding: 0;
	flex-wrap: nowrap; /* 絶対に2行にさせない */
}

.l-header__menu li {
	white-space: nowrap; /* 項目内のテキスト改行を禁止 */
}

.l-header__menu li a {
	text-decoration: none;
	color: #333;
	font-weight: bold;
	font-size: 0.85rem;
	white-space: nowrap; /* 改行を防いで重なりを防止 */
}

/* お問い合わせボタン */
.c-btn-contact {
	flex-shrink: 0;    /* どんなに狭くなってもボタンの形を維持 */
	background: #006400; /* 深い緑 */
	color: #fff;
	padding: 10px 20px;
	border-radius: 5px;
	white-space: nowrap;
	font-weight: bold;
	font-size: 0.85rem;
}

/* ==========================================================================
   Header: PC
   ========================================================================== 
@media screen and (min-width: 1040px) {*/
/* --- メガメニュー親要素-静的・動的共通- --- */
.l-header__menu .has-mega {
	position: static; /* メガメニューを画面幅いっぱいに広げるため */
}

/* --- メガメニュー本体-静的- --- */
.l-header__mega {
	position: absolute;
	top: 100%; /* ヘッダーのすぐ下 */
	left: 0;
	width: 100%;
	background-color: #f0f4f8; /* 薄いグレーの背景*/
	border-top: 1px solid #0d4d92;
	padding: 40px 0 60px;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	z-index: 10;
}

/* --- メガメニュー本体-動的- ---
.l-header__menu .has-mega > .sub-menu {
	position: absolute;
	top: 100%; /* ヘッダーのすぐ下 
	left: 0;
	width: 100%;
	background-color: #f0f4f8; /* 薄いグレーの背景 
	z-index: 10;
	/* トランジション（opacityとvisibilityを使う） 
	display: none; /* 初期状態は隠す
	grid-template-columns: repeat(3, 1fr); /* 中身のレイアウト：横並びにする 
	gap: 20px;
	/* ★インナー幅（1200px）を再現するpaddingの計算 
	padding: 60px calc((100% - 1200px) / 2); 
	/*opacity: 0; 初期状態は隠す 
	visibility: hidden;
	transition: all 0.3s ease;
	/*padding: 40px 0 60px;
	border-top: 1px solid #0d4d92;
	
} */

/* ホバー時の挙動 -静的-*/
.l-header__menu .has-mega:hover > .l-header__mega {
	opacity: 1;
	visibility: visible;
}

/* ホバー時の挙動 -動的- 
.l-header__menu .has-mega:hover > .sub-menu {
	opacity: 1;
	display: grid ;
    visibility: visible;
}

.l-header__menu .has-mega .sub-menu li {
    list-style: none; /* ドットを消す 
}

.l-header__menu .has-mega .sub-menu li a {
    /* ここに以前の .c-btn-mega のスタイルを移植 
    display: block;
    padding: 15px;
    background-color: #0d4d92;
    color: #fff;
    text-align: center;
    border-radius: 5px;
    text-decoration: none;
    transition: opacity 0.3s;
}

.l-header__menu .has-mega .sub-menu li a:hover {
    opacity: 0.8;
}*/
/*  親をホバーした時に子を表示する-動的-終わり */

/* --- 中身のレイアウト --- */
.l-header__mega-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.l-header__mega-title {
	font-size: 1.8rem;
	color: #0d4d92;
	font-weight: bold;
	margin-bottom: 20px;
	border-bottom: 1px solid #0d4d92;
	padding-bottom: 10px;
}

.l-header__mega-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr); /* 3カラムの横並び */
	gap: 20px;
}





/* --- メガメニュー内のボタンデザイン-静的- --- 
.c-btn-mega {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	background-color: #1a4a82;
	font-weight: bold;
	text-decoration: none;
	transition: background-color 0.3s;
}

.l-header__menu li a.c-btn-mega {
	color: #fff;
	border-radius: 5px;
}

.c-btn-mega:hover {
	background-color: #0d3a6b;
}

/* 黄色い矢印アイコン 
.c-btn-mega::after {
	content: "";
	width: 24px;
	height: 24px;
	background: #f1e600 url('../GBLTheme/img/button-arrow.svg') no-repeat center/7px;
	border-radius: 50%;
}*/


/* --- メガメニュー内のボタンデザイン-動的- --- */
.l-header__mega .c-btn-mega {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-right: 18px;
	background-color: #1a4a82;
	border-radius: 5px;
	font-weight: bold;
	text-decoration: none;
	transition: background-color 0.3s;
}

.l-header__menu li.c-btn-mega a,
.l-header__menu .l-header__mega .l-header__mega-list li a {
	color: #fff;
}

.l-header__mega-list li.c-btn-mega a{
	display: flex;
	align-items: center;
	width: 100%;;
	height: 100%;
	padding: 18px 20px;
	text-decoration: none;
	position: relative;
    z-index: 2;
}

.l-header__mega .c-btn-mega:hover {
    background-color: #0d3a6b;
    opacity: 1; /* WordPressの基本ホバー設定を打ち消す場合 */
}

/* 黄色い矢印アイコン */
.l-header__mega .c-btn-mega::after {
	content: "";
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	pointer-events: none;
	background: #f1e600 url('../GBLTheme/img/button-arrow.svg') no-repeat center/7px;
	border-radius: 50%;
}

/* --- メガメニュー内のボタンデザイン-動的-終わり --- 
}*/

/* ==========================================================================
   Header: SP (Hamburger)静的
   ========================================================================== 

.l-header__hamburger {
	pointer-events: auto !important; /* クリックを有効化 
	width: 44px;
	height: 44px;
	background: #0d4d92; /* 添付画像の青丸 
	border-radius: 50%;
	position: relative;
	z-index: 110; /* ドロワー(100)より高い数値に設定 
}

/* 三本線の実装 
.l-header__hamburger span {
	position: absolute;
	left: 10px;
	width: 20px;
	height: 2px;
	background: #fff;
	transition: 0.3s;
	transform-origin: center;
}

.l-header__hamburger span:nth-child(1) { top: 13px; }
.l-header__hamburger span:nth-child(2) { top: 20px; }
.l-header__hamburger span:nth-child(3) { top: 27px; }

/* 開いた時の「×」アニメーション
.is-open.l-header__hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.is-open.l-header__hamburger span:nth-child(2) { opacity: 0; }
.is-open.l-header__hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ドロワー（メニューの中身） 
/* グレー背景と黒枠の削除、下線の追加 
.has-child {
	background-color: transparent ; /* グレー背景を透明に 
	border: none !important;                  /* 黒い外枠を削除 
}*/

/*.js-accordion-trigger {
	position: relative;
	width: 100%;
	padding: 15px 20px;
	background-color: #fff ;        /* 背景を白に固定 
	border: none ;                  /* ボタン自体の枠線を削除 
	border-bottom: 1px solid #333 ; /* 他のメニューと同じ細い下線を追加
	display: flex;
	align-items: center;
	justify-content: space-between;
	text-align: left;
	font-weight: bold;
	color: #333;
}

.l-drawer .js-accordion-trigger {
	width: 100%;
	padding: 20px;
	text-align: left;
	font-weight: bold;
}*/

/* アコーディオンの矢印アイコンの制御
.l-drawer .js-accordion-trigger::after {
	content: "";
	width: 16px;
	height: 16px;
	background: url('../GBLTheme/img/menu-arrow.svg') no-repeat center/contain;
	transition: transform 0.3s;
}*/

/* 開いている時は矢印を上に向ける
.js-accordion-trigger.is-active::after {
	transform: rotate(180deg);
} */

/*.l-drawer {
	position: fixed;
	inset: 0;
	background: #fff;
	padding-top: 110px;
	transform: translateX(100%);
	transition: transform 0.4s;
}

.is-open.l-drawer { transform: translateX(0); }

.l-drawer__list > li {
	border-bottom: 1px solid #333;
}

/* 第三階層が入っているリスト項目(li)自体の枠もリセット 
.l-drawer__list > li.has-child {
	border-top: none; 
}

/* アコーディオン内のリンク・ボタンを他のメニューと統一 
.l-drawer__list li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 20px;
	border-bottom: 1px solid #eee;
	text-decoration: none;
	color: #333;
	font-weight: bold;
}

/* 第二階層のフォントサイズを一括統一 
.l-drawer__list > li > a,
.l-drawer__list > li > button,
.js-accordion-trigger {
	line-height: 1.5; /* 行間を統一 
	padding: 15px 20px;
	display: flex;
	align-items: center;
	min-height: 60px; /* 全ての項目の高さを最低限揃える 
	font-size: inherit ;  /*お好みのサイズ（例: 17px相当）に設定 
	font-weight: bold ;
	font-family: inherit; /* ブラウザ標準のボタンフォントを打ち消し 
}

/* --- アコーディオンの初期状態を非表示にする --- 
.l-drawer__sub {
	display: none; /* 最初は閉じておく 
	background-color: #fff; /* 少し色を変えて区別しやすくする場合 
}

/* 第2・第3階層のデザイン（他のメニューと同じ青背景にする場合）
.l-drawer__sub li a {
	display: block;
	padding: 15px 40px;      /* 左の余白を多めにとって階層感を出す 
	background-color: transparent ; /* 青背景を削除 
	color: #333 ;  /* 文字色を黒（濃いグレー）に 
	font-weight: bold;       /* 太字 
	border-bottom: 1px solid #eee; /* 項目間の区切り線（不要なら削除） 
	margin: 0;               /* ボタン風にしていた時のマージンをリセット 
	border-radius: 0;        /* 角丸をリセット 
	font-size: 0.95rem;      /* 第二階層より少しだけ小さくすると見やすい 
}

/* ホバー・タップ時の挙動 
.l-drawer__sub li a:active {
   background-color: #f5f5f5 ;
}
*/


/* ==========================================================================
   Header: SP (Hamburger)動的
   ========================================================================== */
	
/* ハンバーガーアイコンの基本設定 */
.l-header__hamburger {
    pointer-events: auto !important; /* クリックを有効化 */
    width: 44px;
    height: 44px;
    background: #0d4d92;
    border-radius: 50%;
    position: relative;
    z-index: 110;
}

/* 三本線の実装 */
.l-header__hamburger span {
	position: absolute;
	left: 10px;
	width: 20px;
	height: 2px;
	background: #fff;
	transition: 0.3s;
	transform-origin: center;
}

.l-header__hamburger span:nth-child(1) { top: 13px; }
.l-header__hamburger span:nth-child(2) { top: 20px; }
.l-header__hamburger span:nth-child(3) { top: 27px; }

/* 開いた時の「×」アニメーション*/
.is-open.l-header__hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.is-open.l-header__hamburger span:nth-child(2) { opacity: 0; }
.is-open.l-header__hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }


/* --- アコーディオン矢印の設定 ---
.js-accordion-trigger {
	width: 100%;
	/*padding: 20px;
	text-align: left;
	font-weight: bold;
    position: relative ;  /*矢印の基準点 
}

.js-accordion-trigger::after {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: url('../GBLTheme/img/menu-arrow.svg') no-repeat center/contain;
    transition: transform 0.3s;
    position: absolute;
    right: 20px;
    top: 50%;
    margin-top: -8px; /* 垂直中央寄せ 
}

/* has-mega クラスがない普通の親メニューでも、子があれば矢印が出るようになります */

/* 開いている時に矢印を回転 
.js-accordion-trigger.is-active::after {
    transform: rotate(180deg);
}*/

/* --- ドロワーメニューの外枠 --- */
.l-drawer {
    position: fixed;
    inset: 0;
    background: #fff;
    padding-top: 110px;
    transform: translateX(100%);
    transition: transform 0.4s;
    z-index: 100;
    overflow-y: auto; /* 長いメニューをスクロール可能に */
}
.is-open.l-drawer {
    transform: translateX(0);
}



/* --- 第1階層のリンクスタイル --- */
.l-drawer__list > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 20px;
    min-height: 60px;
    text-decoration: none;
    color: #333 ;
    font-weight: bold;
    font-size: 16px;
    background-color: #fff;
    border-bottom: 1px solid #333;
    width: 100%;
}

/* --- 子階層（第2・第3階層 / メガメニュー内）の強制リセット --- */
@media screen and (max-width: 1039px) {
    
	/* --- 全階層共通のリセット --- */
	.l-drawer__list, 
	.l-drawer__list .sub-menu,
	.l-header__mega-list {
    	list-style: none ;
    	padding: 0 ;
    	margin: 0 ;
    	display: block ; /* GridやFlexを強制解除 */
	}
	
	.l-header__mega .c-btn-mega::after {
		display: none ;
	}
	
    /* PC版の「浮いている箱」をただの平坦なリストにする */
    .l-header__mega {
        display: block ;    /* 常に表示 */
        visibility: visible ;
        opacity: 1 ;
        position: static ;   /* 絶対配置を解除 */
        width: 100% ;
        background-color: #fafafa ; /* 子階層とわかるよう薄いグレー */
        box-shadow: none ;
        padding: 0 ;
        transform: none ;
    }

    /* PC用のインナー幅設定やタイトルを非表示 */
    .l-header__mega-inner { padding: 0 ; max-width: none ; }
    .l-header__mega-title { display: none ; }

    /* PC版の「3列グリッド」を解除して縦並びにする */
    .l-header__mega-list {
        display: block ;
        grid-template-columns: none ; 
    }

    /* PC版の青いボタン装飾（.c-btn-mega）を完全に剥ぎ取る */
    .l-header__mega .sub-menu li,
    .l-header__mega .c-btn-mega {
        width: 100% ;
        margin: 0 ;
        background: none ;
        border-bottom: 1px solid #333 ;
        border-radius: 0;
    }

    /* 子階層のリンクテキスト */
    .l-header__mega .sub-menu li a,
    .l-header__mega .c-btn-mega a,
    .l-drawer__list .sub-menu li a {
        display: block ;
        padding: 0 20px ; /* 深いインデントで階層を表現 */
        background-color: #fafafa ;
        color: #333 ;
        font-size: 15px ;
        font-weight: bold;
        text-decoration: none ;
        border-bottom: 1px solid #eee ;
        min-height: auto ;
        line-height: 1.4;
    }

    /* アコーディオン用の矢印アイコンを消す（全展開のため不要） */
    .l-drawer__list li a::after,
    .js-accordion-trigger::after {
        display: none ;
    }

    /* タップ時の反応 */
    .l-drawer__list li a:active {
        background-color: #f0f0f0 ;
    }
}


.l-main { }

.l-mv {
	padding: 60px 0;
}

.l-mv__inner {
	display: flex;
	flex-direction: row-reverse; /* PC: 画像が右 */
	justify-content: space-between;
	align-items: center;
	gap: 40px;
}

.l-mv__content {
	flex: 1;
}

.l-mv__title {
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1.4;
	margin-bottom: 30px;
}

.l-mv__desc p {
	font-size: 1rem;
	margin-bottom: 1.5rem;
}

/* 画像ギャラリー */
.l-mv__gallery {
	display: flex;
	gap: 15px;
	width: 55%;
}

.l-mv__img {
	flex: 1;
}

.l-mv__img img {
	width: 100%;
	height: 450px;
	object-fit: cover;
	border-radius: 15px;
}

/* 汎用ボタン（会員登録ボタン） */
.c-btn-member {
	position: relative; /* アイコンの基準点にする */
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 320px;
	padding: 18px 25px;
	background-color: #0d4d92; /* デザインに合わせた濃い青 */
	color: #fff;
	border-radius: 8px;
	font-weight: bold;
	transition: opacity 0.3s;
}

.c-btn-member__text {
	padding-right: 68px;
}

.c-btn-member__icon {
	position: absolute; /* 絶対配置に切り替え */
	right: 18px;      /* 右端から15pxの位置に固定 */
	width: 28px;
	height: 28px;
	background: #f1e600 url('../GBLTheme/img/button-arrow.svg') no-repeat center/7px;
	border-radius: 50%;
}

.p-insight-row--research .c-btn-member {
	background-color: #004216;
}
	

/* --- Responsive: Mobile --- */
@media (max-width: 768px) {
	.l-mv {
		padding: 30px 0;
	}

	.l-mv__inner {
		flex-direction: column; /* スマホ: 縦並び */
		gap: 30px;
	}

	.l-mv__gallery {
		width: 100%;
	}

	.l-mv__img img {
		height: 200px; /* スマホでは高さを抑える */
	}

	.l-mv__title {
		font-size: 1.6rem;
		text-align: left;
	}
  
	.c-btn-member {
		max-width: 100%; /* スマホでは全幅に */
	}
}

.l-footer { }


/* ==========================================================================
   2.5 Project (特定のページ固有のコンテンツ)
   命名規則は「p-」から始める。セクション全体の構造など。
   ========================================================================== */

/* 
 * ---------法務インサイトセクション--------- */

/* セクション全体の余白・ヘッド */
.p-legal-insights { padding: 80px 0 0; }
.p-legal-insights__head { margin-bottom: -20px; }
.p-legal-insights__desc { font-size: 0.9rem; line-height: 1.8; max-width: 800px; }

/* カテゴリごとの行（背景2色構成） */
.p-insight-row {
	padding: 40px 0 0;
	background: linear-gradient(to bottom, var(--section-bg) 50%, #f8f9fa 50%) ; /* 上半分を各セクションの色、下半分を薄いグレーに分割 */
}

.p-insight-row__title {
	color: #fff;
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: -15px;
}

/* スライダーをコンテナの左端に合わせる設定 */
.p-insight-row__slider {
	padding-left: calc((100% - 1200px) / 2 + 20px);
}

@media (max-width: 1200px) {
	.p-insight-row__slider { padding-left: 20px; }
}

/* 各セクションごとのテーマカラー定義 */
.p-insight-row--overseas  { --section-bg: #0d4d92; }
.p-insight-row--domestic  { --section-bg: #005a15; }
.p-insight-row--education { --section-bg: #2e75b6; }
.p-insight-row--members   { --section-bg: #0d4d92; }

/* 著書・刊行物セクション：背景色の反転 */
.p-insight-row--books {
	--section-bg: #2e75b6;
	background: linear-gradient(to bottom, #f8f9fa 50%, var(--section-bg) 50%) ;
}
.p-insight-row--books .c-heading-primary,
.p-insight-row--books .c-heading-sub {
	color: #0d4d92 !important;
}

/* 著書・刊行物：3件固定グリッド */
.p-books-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}
@media (min-width: 769px) {
	.p-books-grid {
		grid-template-columns: repeat(3, 1fr);
		max-width: 1000px;
		margin: 0 auto;
	}
}

/* スマホ用の背景分割位置調整 */
@media (max-width: 768px) {
	.p-legal-insights{
		padding: 60px 0 0;
	}
	.p-insight-row {
		background: linear-gradient(to bottom, var(--section-bg) 40%, #f8f9fa 40%) !important;
	}
	.p-insight-row--books {
		background: linear-gradient(to bottom, #f8f9fa 40%, var(--section-bg) 40%) !important;
	}
}

.p-insight-row--research { 
	--section-bg: #004216; 
	--hover-bg: #f2f7f4; /* デザインに合わせた薄い緑/グレー */
	padding-bottom: 40px;
}


/* 
 * ---------研究発表セクション--------- */
.p-research-list {
  	background: #fff;
  	border-radius: 15px;
  	overflow: hidden; /* 角丸からはみ出さないように */
  	box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  	max-width: 900px;
  	margin: 50px auto;
	padding: 20px 0; /* 上下の余白 */
}


/* 
 * ---------セミナーセクション--------- */
.p-bg-section {
	position: relative;
	padding: 100px 0;
	background-size: cover;
	background-position: center;
	background-attachment: fixed; /* パララックス効果（任意） */
	z-index: 1;
}

/* 黒透過レイヤー（オーバーレイ） */
.p-bg-section::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5); /* 50%の黒透過 */
	z-index: -1;
}

.p-bg-section__desc {
	font-size: 0.95rem;
	line-height: 1.8;
	max-width: 900px;
	margin-top: 20px;
}

@media (max-width: 768px) {
	.p-bg-section {
		padding: 50px 0;
		background-attachment: scroll;
	}
}

/* --- セミナーカード（白い箱） --- */
.p-seminar-card {
	background: #fff;
	border-radius: 15px;
	overflow: hidden;
	max-width: 900px;
	margin: 60px auto 0;
	border-top: 8px solid #2e75b6; /* 上部の太い青線 */
}

.p-seminar-card__head {
	padding: 20px 40px;
	border-bottom: 2px solid #2e75b6;
	margin: 0 40px; /* 線を少し内側に寄せるデザイン */
}

.p-seminar-card__lead {
	color: #2e75b6;
	font-size: 1.4rem;
	font-weight: bold;
}

.p-seminar-card__body {
	padding: 40px;
}

/* カード内部コンテンツ */
.p-seminar-content {
	display: flex;
	gap: 30px;
}

.p-seminar-content__img {
	flex: 0 0 350px;
}
.p-seminar-content__img img {
	width: 100%;
	border-radius: 5px;
}

.p-seminar-content__title {
	font-size: 1.3rem;
	font-weight: bold;
	margin-bottom: 20px;
	line-height: 1.4;
}

/* メタ情報 */
.p-seminar-meta__row {
	display: flex;
	align-items: flex-start;
	margin-bottom: 15px;
	font-size: 1rem;
}

.c-label--blue {
	background: #2e75b6 !important;
	min-width: 80px;
}

/* --- スマホ用レスポンシブ --- */
@media (max-width: 768px) {
	.p-seminar-content {
		flex-direction: column;
	}
	.p-seminar-content__img {
		flex: none;
	}
	.p-seminar-card__head {
		margin: 0 20px;
		padding: 20px 0;
	}
	.p-seminar-card__body {
		padding: 20px;
	}
}


/* 
 * ---------寄稿・連載セクション--------- */
.p-contributions {
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

.p-contributions__info {
	flex: 4; /* 4割 */
}

.p-contributions__links {
	flex: 6; /* 6割 */
}

.p-contributions__grid {
	display: flex;
	flex-direction: column;
	gap: 15px;
}


/* 
 * ---------使命セクション--------- */
.p-mission {
	display: flex;
	justify-content: center;
	padding: 40px 0;
}

.p-mission__inner {
	width: 100%;
	max-width: 900px; /* 本文が広がりすぎないように制限 */
}

/* 中央寄せの見出し2種 */
.p-mission__title {
	font-size: 2.4rem;
	font-weight: bold;
	margin-bottom: 20px;
	letter-spacing: 0.05em;
}

.p-mission__lead {
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 40px;
	line-height: 1.4;
}

/* 左揃え・中央配置の本文 */
.p-mission__body {
	font-size: 1.1rem;
	line-height: 2; /* 行間を広めに取って可読性を確保 */
	text-align: justify; /* 両端揃えで綺麗に見せる */
}

.p-mission__body p + p {
	margin-top: 1.5em; /* 段落間の余白 */
}

/* --- スマホ用レスポンシブ --- */
@media (max-width: 768px) {
	.p-mission__title {
		font-size: 1.8rem;
	}
	.p-mission__lead {
		font-size: 1.4rem;
		margin-bottom: 30px;
	}
	.p-mission__body {
		font-size: 1rem;
		line-height: 1.8;
		text-align: left; /* スマホでは自然な左揃えに */
	}
}


/* 
 * ---------お問い合わせセクション--------- */
.p-contact-section { padding: 80px 0; }

.p-contact-section__head { margin-bottom: 40px; }

/* 背景画像を持つバナー枠 */
.p-contact-banner {
	position: relative;
	border-radius: 15px; /* 角丸トリミング */
	overflow: hidden;
	background-size: cover;
	background-position: center;
	padding: 60px 40px;
	z-index: 1;
}

/* 黒透過レイヤー（バナー内限定） */
.p-contact-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6); /* 少し暗めにして文字を際立たせる */
	z-index: -1;
}

.p-contact-banner__inner {
	text-align: center;
	max-width: 800px;
	margin: 0 auto;
}

.p-contact-banner__text {
	font-size: 1.1rem;
	line-height: 1.8;
	margin-bottom: 30px;
}

/* ボタンのサイズ感調整（バナー用） */
.p-contact-banner .c-btn-banner {
	max-width: 400px;
	margin: 0 auto;
}

/* --- スマホ用レスポンシブ --- */
@media (max-width: 768px) {
	.p-contact-banner {
		padding: 40px 20px;
	}
	.p-contact-banner__text {
		font-size: 1rem;
		text-align: left; /* スマホでは読みやすさ優先で左寄せに */
	}
}


/* 
 * ---------新着情報セクション--------- */
.p-news-section { padding: 80px 0; }

/* 上下を濃い青の太線(2px)で挟む */
.p-news-list {
	border-top: 2px solid #0d4d92;
	border-bottom: 2px solid #0d4d92;
	margin-top: 40px;
}

/* 
 * ---------フッター--------- */
/* 1. メインナビ部分 */
.p-footer-main { background-color: #0d4d92; padding: 60px 0; }

.p-footer-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid rgba(255,255,255,0.2);
	padding-bottom: 30px;
	margin-bottom: 40px;
}

.p-footer-logo img { width: 240px; }

.p-footer-nav-primary ul { display: flex; gap: 30px; }
.p-footer-nav-primary a { font-weight: bold; font-size: 1.1rem; }

/* 3カラムグリッド */
.p-footer-grid {
  	display: flex;
  	justify-content: flex-start;
	gap: 40px; /* ★ここでカラム間の余白を調整してください */
}

.p-footer-col { 
	flex: 0 1 auto;
	min-width: 200px; /* カラムの最低幅を確保 */
  	text-align: left; /* すべて左揃えに統一 */
}

.p-footer-col__head { font-weight: bold; margin-bottom: 20px; font-size: 1.1rem; color: #fff; }
.p-footer-col ul li { margin-bottom: 12px; font-size: 0.95rem; }

/* 配置の出し分け */
.p-footer-col--left   { text-align: left; }
.p-footer-col--center { text-align: left; }
.p-footer-col--right  { text-align: left; }

/* 2. サブナビ部分（白背景） */
.p-footer-sub { background-color: #f8f9fa; padding: 20px 0; color: #333; }
.p-footer-sub ul { display: flex; justify-content: left; gap: 40px; font-size: 0.9rem; }

/* 3. コピーライト */
.p-footer-copy { 
	background-color: #0d4d92; 
	padding: 15px 0; 
	padding-bottom: calc(15px + env(safe-area-inset-bottom));
	text-align: center; 
	font-size: 0.85rem; 
	border-top: 1px solid rgba(255,255,255,0.1); 
}

/* --- スマホ用レスポンシブ --- */
@media (max-width: 768px) {
  	.p-footer-top, 
	.p-footer-grid, 
	.p-footer-sub ul {
		flex-direction: column;
		text-align: left;
		align-items: flex-start; 
	}
	
  	.p-footer-nav-primary ul {
		flex-direction: column;
		gap: 15px;
		margin-top: 30px; 
	}
	
  	.p-footer-grid {
		gap: 40px;
	}
	
  	.p-footer-col--center, 
	.p-footer-col--right {
		text-align: left;
	}
	
  	.p-footer-sub ul {
		gap: 15px; 
	}
	
	.p-footer-copy { 
    	padding-bottom: calc(30px + env(safe-area-inset-bottom)); /* スマホでは基本の余白を 30px 程度に広げ、さらにセーフエリアを加算 */
	}
	
	.p-footer-logo img {
		width: 170px; 
	}
	
	.p-footer-main {
		padding: 35px 20px; 
	}
	
	.p-footer-sub{
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* --- 第三階層（子項目）のインデント設定 --- */

.p-footer-col ul li.is-sub {
	padding-left: 1.5em; /* ★ここで右に下げる幅を調整（1.5文字分） */
	position: relative;
}

/* 任意：下げた項目の頭に小さな「・」や「-」を付けたい場合 */
.p-footer-col ul li.is-sub::before {
	content: "-";
	position: absolute;
	left: 0.5em;
	color: rgba(255, 255, 255, 0.5);
}

/* スマホでも階層構造を維持する場合（不要なら media query でリセット） */
@media (max-width: 768px) {
	.p-footer-col ul li.is-sub {
		padding-left: 1.2em; /* スマホでは少し控えめに */
	}
}


/* 
 * ---------大学交流セクション--------- */
.p-exchange-section {
	padding: 100px 0;
	background-color: #fff;
}

.p-exchange-section__head {
	margin-bottom: 40px;
}

.p-exchange-section__body {
	max-width: 800px;
	margin-bottom: 60px;
	line-height: 2;
	font-size: 1.05rem;
	color: #333;
}

/* アコーディオンリストを囲む枠線の調整（TOPと共通のルール） */
.p-exchange-list-wrapper {
	width: 100%;
	max-width: 1200px; /* ★ここをサイト共通のコンテンツ幅（l-container相当）に合わせます */
	margin: 40px auto 0;
  	border-top: 2px solid #1e4a82; /* リスト全体の開始を強調 */	
}

/*.p-exchange-list-wrapper .c-accordion-item:last-child {
  border-bottom: 1px solid #eee ;
}*/

/* スマホ用調整 */
@media (max-width: 768px) {
	.p-exchange-section {
		padding: 60px 0;
	}
	.p-exchange-section__body {
		font-size: 0.95rem;
		line-height: 1.8;
		margin-bottom: 40px;
	}
}

/* 法人概要セクション */
.p-overview-section {
	padding-top: 20px;
}

.p-overview-section__inner {
	margin: 0 20px; /* 指示：PC表示の背景色は左右に20px程度のマージンを設ける（窓枠風） */
	background-color: #f0f4f8; /* 添付デザインの背景色 */
	padding: 60px 0;
	border-radius: 8px; /* 窓枠に見えるよう少し角を丸める場合 */
	margin-bottom: 20px;
}

.p-overview-section__head,
.p-purpose-section__head {
	border-bottom: 2px solid #1e4a82; /* 1200px幅のコンテナに対して青い太線を引く */
	padding-bottom: 10px;
	margin-bottom: 20px;
}

/* 画面端まで広がる背景色エリア */
.p-overview-section__bg {
	background-color: #f0f4f8; /* 添付デザインの薄いグレー/ブルー系 */
	padding: 80px 0;
}

/* 900px幅の白いカード（右寄せ） */
.p-overview-card {
	max-width: 900px;
	margin-left: auto; /* 右寄せ */
	background-color: #fff;
	border-radius: 12px;
	padding: 60px;
}

/* リスト形式のスタイル（新着情報等のルールを継承） */
.p-overview-list__row {
	display: flex;
	padding: 25px 0;
	border-bottom: 1px solid #eee;
}

.p-overview-list__row:first-child {
	padding-top: 0;
}

.p-overview-list__row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.p-overview-list__row dt {
	flex: 0 0 160px; /* 縦線の位置を統一 */
	font-weight: bold;
	color: #333;
	border-right: 1px solid #eee; /* 縦線 */
	margin-right: 40px;
	display: flex;
	align-items: center;
}

.p-overview-list__row dd {
	flex: 1;
	line-height: 1.8;
	color: #333;
}

/* --- スマホ用レスポンシブ --- */
@media (max-width: 768px) {
	.p-overview-section__inner {
    	margin: 0;
    	padding: 50px 0;
		border-radius: 0;
  	}
	.p-overview-section__bg {
		padding: 40px 0;
	}
	.p-overview-card {
		padding: 30px 20px;
		margin-left: 0; /* スマホでは全幅 */
	}
	.p-overview-list__row {
		flex-direction: row;
	}
	.p-overview-list__row dt {
		border-right: none;
		/*border-bottom: 1px solid #eee;*/
		margin-right: 0;
		margin-bottom: 0;
		padding-bottom: 0;
		flex: none;
		width: 120px;
		font-size: 14px;
		align-items: center;
	}
	.p-overview-list__row dd {
		font-size: 14px;
	}
}

/* GoogleMap専用のコンテンツ幅制限と右寄せ */
.p-overview-map {
	max-width: 900px;
	margin-left: auto; /* 右寄せ */
	border-radius: 12px;
	overflow: hidden;
	border: 4px solid #fff; /* バナーデザインと統一感を出すための白枠（任意） */
	box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

/* Mapの比率を維持してレスポンシブ化 */
.p-overview-map__iframe {
	position: relative;
	width: 100%;
	padding-top: 56.25%; /* 16:9 の比率 */
}

.p-overview-map__iframe iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

@media (max-width: 768px) {
	.p-overview-map {
		margin-left: 0; /* スマホでは中央・全幅 */
	}
}

/* ---法人の目的セクション --- */

.p-purpose-section {
	padding: 40px 0;
}

/*.p-purpose-section__head {
  border-bottom: 2px solid #1e4a82;
  padding-bottom: 20px;
  margin-bottom: 40px;
}*/

/* 900px幅の右寄せ設定 */
.p-purpose-section__content {
	max-width: 900px;
	margin-left: auto;
}

/* 通常の文章スタイル */
.p-purpose-lead {
	margin-bottom: 20px;
	line-height: 2;
	color: #333;
	font-size: 1rem;
}

/*.p-purpose-lead p {
  margin-bottom: 1rem;
}*/

/* バックグラウンドありの文章（ナンバリングリストの箱） */
.p-purpose-box {
	background-color: #f0f4f8; /* 法人概要と同じ背景色 */
	padding: 40px 60px;
	border-radius: 12px;
}

/* ナンバリングリストの装飾 */
.p-purpose-list {
	list-style: none; /* デフォルトの数字を消してCSSで制御 */
	counter-reset: purpose-count;
	padding: 0;
	margin: 0;
}

.p-purpose-list li {
	position: relative;
	padding-left: 2.5em;
	margin-bottom: 1.2rem;
	line-height: 1.1;
	color: #333;
	counter-increment: purpose-count;
}

.p-purpose-list li:last-child {
	margin-bottom: 0;
}

/* 数字部分のスタイル */
.p-purpose-list li::before {
	content: counter(purpose-count) ".";
	position: absolute;
	left: 0;
	top: 0;
	font-weight: bold;
	color: #333;
}

/* スマホ用レスポンシブ */
@media (max-width: 768px) {
	.p-purpose-section__content {
		margin-left: 0;
	}
	.p-purpose-box {
		padding: 30px 20px;
	}
	.p-purpose-list li {
		padding-left: 2em;
		font-size: 0.95rem;
	}
}

/* --- 役員一覧セクション --- */

.p-officer-group {
	margin-bottom: 80px;
}

.p-officer-group__head {
	/*border-bottom: 2px solid #1e4a82;  1200pxの青線 */
	padding-bottom: 15px;
	margin: 40px 0 0 auto;
    width: 900px;
}

.p-officer-group__title {
	font-size: 1.8rem;
	font-weight: bold;
	color: #1e4a82;
}



/* 900px幅の右寄せ設定 */
.p-officer-group__content {
	max-width: 900px;
	margin-left: auto;
}

.p-officer-list__item {
	display: flex;
	align-items: center;
	padding: 25px 30px;
	border-bottom: 1px solid #eee; /* 項目間の細線 */
}

.p-officer-list__item:first-child {
	border-top: 1px solid #eee;
}

.p-officer-list__item:last-child {
	border-bottom: 1px solid #eee;
}

/* 役職（左）: 160px固定 + 縦線 */
.p-officer-list__role {
	flex: 0 0 160px;
	font-size: 1rem;
	color: #333;
	border-right: 1px solid #eee;
	margin-right: 40px;
}

/* 氏名（中）: 太字で強調 */
.p-officer-list__name {
	flex: 0 0 150px; /* 名前エリアの幅 */
	font-size: 1.3rem;
	font-weight: bold;
	color: #000;
	margin-right: 30px;
}

/* 肩書き（右）: 残りの幅をすべて使用 */
.p-officer-list__desc {
	flex: 1;
	font-size: 1rem;
	color: #333;
	line-height: 1.6;
}

/* スマホ用レスポンシブ */
@media (max-width: 768px) {
	.p-officer-group{
		margin-bottom: 50px;
	}
	.p-officer-group__content { margin-left: 0; }
	.p-officer-list__item { 
		flex-direction: column;
		align-items: flex-start;
		padding: 25px 15px;
	}
	.p-officer-list__role {
		flex: 0 0 10px;
		border-right: none;
		/*border-bottom: 1px solid #eee; */
		margin-bottom: 10px;
		padding-bottom: 5px;
		width: 100%;
	}
	.p-officer-group__title{
		font-size: 1.5rem;
	}
	.p-officer-list__name { 
		flex: 0 0 10px;
		margin: 0 auto 5px 0;
	}
}

/* 記事ページ前後リンク：カード内の最下部に配置 */
.p-entry-nav {
	margin-top: 60px;
	padding-top: 30px;
	border-top: 1px solid #eee; /* 本文との仕切り */
}

.p-entry-nav__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* スマホ用レスポンシブ */
@media (max-width: 768px) {
	.p-entry-nav {
		margin-top: 30px;
	}
}

/* セクション・ユニット間の間隔 */
.p-philosophy-section {
	margin-bottom: 80px;
}

.p-philosophy-section:last-child {
	margin-bottom: 0;
}

.p-philosophy-unit {
  margin-bottom: 50px;
}

/* 署名のフォント調整（画像4枚目に準拠） */
.p-philosophy-signature {
	text-align: right;
	font-size: 2.2rem;
	font-family: "Shippori Mincho", serif;
	margin-top: 50px;
	color: #333;
}


/* スマホ表示の調整 */
@media screen and (max-width: 767px) {
	.p-philosophy-signature {
		font-size: 1.8rem;
		margin-top: 30px;
	}
	.p-philosophy-section {
		margin-bottom: 60px;
	}
}

/* 
 * ---------パンくずリスト--------- */

/* パンくずリスト全体のコンテナ */
.p-breadcrumb {
	margin: 20px auto; /* 画像に合わせて左寄せ。必要に応じて外側の余白（margin）だけ調整してください */
	text-align: left;
	max-width: 1200px;
	padding: 20px;
}

.single .p-breadcrumb {
	margin: 20px auto; /* 画像に合わせて左寄せ。必要に応じて外側の余白（margin）だけ調整してください */
	text-align: left;
	max-width: 1000px;
}

.page .p-breadcrumb {
	margin: 20px auto; /* 画像に合わせて左寄せ。必要に応じて外側の余白（margin）だけ調整してください */
	text-align: left;
	max-width: 1080px;
}

/* リスト全体のスタイル */
.p-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 0.9rem;  /* フォントサイズを画像に合わせて微調整 */
	line-height: 1.5; /* 全体の行間を整える */
}

/* 各アイテム（liタグ） */
.p-breadcrumb__item {
	display: flex;
	align-items: center;
}

/* 区切り文字（ > ）の設定 */
.p-breadcrumb__item:not(:last-child)::after {
	content: ">";
	margin: 0 8px; /* 画像に合わせた色と余白 */
	color: #333; /* 区切り文字は黒に近い色 */
	font-size: 0.8rem;
}

/* リンク（TOP、法務インサイト、国内法務情報）のスタイル */
.p-breadcrumb__item a {
	color: #004499; /* 画像に近い鮮やかな青 */
	text-decoration: underline; /* 画像は下線があるデザイン */
}

/* ホバー時の動作（下線を消す、などのアレンジ） */
.p-breadcrumb__item a:hover {
	text-decoration: none;
}

/* 現在のページ（「ビジネスに...」以下のテキスト）のスタイル */
.p-breadcrumb__item[aria-current="page"] {
	color: #333; /* リンクではないテキストは黒 */
	font-weight: normal;
	/* 長すぎる場合の省略（ ellipsis ）の設定は、画像に合わせて一旦解除します。
     もし必要であれば復活させてください。 */
	/* white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 300px; */
}

/* 特定ページでの上書き */
.page-id-64 .p-breadcrumb,
.page-id-66 .p-breadcrumb,
.page-id-68 .p-breadcrumb,
.page-id-70 .p-breadcrumb,
.page-id-73 .p-breadcrumb,
.page-id-98 .p-breadcrumb,
.page-id-146 .p-breadcrumb,
.page-id-152 .p-breadcrumb,
.page-id-154 .p-breadcrumb,
.page-id-156 .p-breadcrumb,
.page-id-158 .p-breadcrumb{
	max-width: 1200px;
}

.page-id-146 .l-container{
	padding-left: 0;
}

@media screen and (max-width: 767px) {
	.single .p-breadcrumb {
		margin: 0 auto; 
	}
	.page .p-breadcrumb {
		margin: 0 auto; 
	}
}

/* 
 * ---------代表挨拶・理念セクション--------- */
/* セクション・ユニット間の間隔 */
.p-philosophy-section {
	margin-bottom: 80px;
}
.p-philosophy-section:last-child {
	margin-bottom: 0;
}

.p-philosophy-unit {
	margin-bottom: 50px;
}

/* 署名のフォント調整（画像4枚目に準拠） */
.p-philosophy-signature {
	text-align: right;
	font-size: 2.2rem;
	font-family: "Shippori Mincho", serif;
	margin-top: 50px;
	color: #333;
}

/* スマホ表示の調整 */
@media screen and (max-width: 767px) {
	.p-philosophy-signature {
		font-size: 1.8rem;
		margin-top: 30px;
	}
	.p-philosophy-section {
		margin-bottom: 60px;
	}
}


/* 
 * ---------一覧ページ--------- */
.p-archive-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px 60px;
}

.p-archive-head {
	margin-bottom: 60px;
}

.p-archive-title {
	font-size: 2rem;
	font-weight: bold;
	color: #333;
}

.p-archive-lead {
	font-size: 1rem;
	line-height: 1.8;
	color: #333;
}

/* カードレイアウト (3列) */
.p-archive-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 30px;
	margin-bottom: 60px;
}

.p-card-item {
	text-decoration: none;
	color: inherit;
	transition: all 0.3s;
	background-color: transparent;
	border-radius: 20px;
	padding: 18px 18px;
}

.p-card-item:hover {
	opacity: 1;
	background-color: #f0f6fa;
	border-radius: 20px;
	padding: 18px 18px;
}

.p-card-img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 12px;
	background-color: #eee;
	margin-bottom: 15px;
}

.p-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-card-title {
	font-size: 1rem;
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 10px;
	/* 2行で省略する場合（任意） */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.p-card-date {
	font-size: 0.85rem;
	color: #999;
}

/* ページネーション共通 */
.p-pagination {
	margin-top: 60px;
	text-align: center;
}

.p-pagination .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
}

.p-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	text-decoration: none;
	color: #333;
	font-size: 0.9rem;
	transition: background 0.3s;
}

/* 現在のページ */
.p-pagination .page-numbers.current {
	background: none;
	border-bottom: 2px solid #0d4d92;
	font-weight: bold;
	padding: 0 10px;
}

/* ホバー */
.p-pagination .page-numbers:hover:not(.current) {
	background: #f0f0f0;
	border-radius: 4px;
}

/* スマホ表示 (1列) */
@media screen and (max-width: 767px) {
	.p-archive-head{
		margin-bottom: 20px;
	}
	.p-archive-list {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-bottom: 30px;
	}

	.p-archive-title {
		font-size: 1.6rem;
		margin-bottom: 10px;
	}

	.p-pagination .page-numbers {
		width: 35px; /* 少し小さくして横並びを維持 */
		height: 35px;
	}
	.p-pagination{
		margin-top: 30px;
	}
}


/* 
 * ---------TOP理念--------- */
.p-top-philosophy {
	position: relative; /* 上半分を白、下半分を薄いグレーに分割（画像に合わせて調整） */
	background: linear-gradient(
	  to bottom, 
	  #fff 20%, 
	  #1e4a82 20%,
	  #1e4a82 50%,
	  #f0f4f8 50%);
	padding-bottom: 80px;
}



/* ドロップシャドウ付き白カード */
.p-top-philosophy__card {
	background-color: #fff;
	border-radius: 12px;
	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
	padding: 60px;
	position: relative;
	z-index: 2;
	overflow: hidden;
	margin-top: 40px;
}

/* 擬似要素で青い太線を実装 */
.p-top-philosophy__card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 16px; /* 青い太線の厚み */
	background-color: #1e4a82; /* 青い太線の色 */
	z-index: 1; /* カード本文より奥に配置 */
}

/* Mission / Vision の横並び */
.p-top-philosophy__content {
	display: flex;
	gap: 40px;
	margin-top: 40px;
}

.p-top-philosophy__unit {
	flex: 1;
}

/* ボックス内のテキスト中央寄せ */
.p-top-philosophy__unit .u-box-gray {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	padding: 20px;
	margin-bottom: 0;
	text-align: center;
	background-color: #f0f4f8;
	border-radius: 10px;
}

/* ボタンの配置 */
.p-top-philosophy__btn {
	display: flex;
	justify-content: center;
	margin-top: 80px; /* カードが突き出している分、余裕を持たせる */
	position: relative;
	z-index: 3;
}

.page .p-top-philosophy{
	background: #fff;
}

.page .p-top-philosophy__card h2{
	color: #1e4a82;
}

.page .p-top-philosophy__content{
	flex-direction: column;
}

.page .p-top-philosophy__unit .u-box-gray {
	max-width: 900px;
	flex-direction: column;
	text-align: left;
	align-items: stretch;
	margin: 0 0 0 auto;
}

.page .p-top-philosophy__unit {
	max-width: 900px;
	margin: 0 0 0 auto;
}

.page .p-top-philosophy__unit .u-box-gray h4 {
	text-align: left;
	border-bottom: 2px solid #1e4a82;
	padding: 10px 0;
    margin: 20px 10px;
}

.page .p-top-philosophy__unit .u-box-gray p {
    margin: 0 20px 20px;
}

.page .p-top-philosophy__card .flexbox{
	display: flex;
	gap: 10px;
}

.page .p-top-philosophy__card .u-profile-img{
	max-width: 170px;
}

.page .p-top-philosophy__card .u-profile-txt{
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: 1.3rem;
	font-weight: bold;
	margin-bottom: -20px;
}

.page .p-top-philosophy__card .u-profile-name{
	font-size: 1.6rem;
}

.page .p-top-philosophy__card img{
	width: 100%;
}

.page .p-top-philosophy__card .u-profile-message{
	margin-top: 20px;
}

/* --- Responsive: Mobile --- */
@media (max-width: 768px) {
	.p-top-philosophy {
		background: #f0f4f8; /* スマホは分割なしでOK */
		padding: 0;
	}
  
	.p-top-philosophy__bg {
		padding: 40px 0 120px; /* カードが下に伸びる分、下の余白を確保 */
	}

	.p-top-philosophy__card {
		padding: 40px 20px;
		margin: 0 10px;
	}

	.p-top-philosophy__content {
		flex-direction: column;
		gap: 30px;
		margin-top: 0;
	}

	.philosophy-2 .p-top-philosophy__unit .u-box-gray {
		min-height: 100px;
		padding-left: 0;
		padding-right: 0;
		margin-bottom: -20px;
	}
	
	.philosophy-1 .p-top-philosophy__unit .u-box-gray {
		min-height: 100px;
		background: #fff;
		padding-left: 0;
		padding-right: 0;
	}

	.p-top-philosophy__btn {
		margin-top: 40px;
	}
	
	.p-page-lead{
		margin-top: 10px;
	}
	
	.page .p-top-philosophy__card .u-profile-img {
		max-width: 100px;
	}
	
	.page .philosophy-1 .p-top-philosophy__unit .u-box-gray p {
		margin-left: 10px;
		margin-right: 10px;
		margin-bottom: 0;
	}
	
	.page .p-top-philosophy__unit .u-box-gray p {
		font-size: 0.8rem;
	}
	
	.u-profile-affiliation {
		font-size: 0.75rem
	}
	
	.page .p-top-philosophy__card .u-profile-name {
		font-size: 1.3rem
	}
	
	.page .p-top-philosophy__card .u-profile-txt {
		margin-bottom: 0;
	}
	
	.page .p-top-philosophy__bg {
		padding-bottom: 0;
	}
	
	.page .p-top-philosophy__unit .u-box-gray h4 {
		font-size: 1rem !important;
		margin-left: 15px;
		margin-right: 15px;
	}
	
	.p-top-philosophy:last-child{
		padding-bottom: 30px;
	}
}

/* ==========================================================================
   3. Components
   再利用可能なパーツ（ボタン、カード、見出しなど）。
   命名規則は「c-」から始める。
   ========================================================================== */

/* --- Headings --- */
.c-heading-primary { font-size: 2.2rem }
.c-heading-sub { 
	color: #0d4d92; 
	font-weight: bold; 
	font-size: 1rem; 
	margin-bottom: 15px;
}

/* --- Responsive: Mobile --- */
@media (max-width: 768px) {
	.c-heading-primary { font-size: 2rem }
}

/* --- Buttons --- */
/* 真ん中に配置するボタンの調整 */
.c-btn-mega--center {
	display: inline-flex;
	min-width: 300px;
	justify-content: center;
}

/* セミナーバナー（既存）
.c-banner-seminar {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 120px;
  background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('../GBLTheme/img/banner-bg.webp') center/cover;
  border: 2px solid #fff;
  border-radius: 12px;
  box-shadow: 0 0 0 10px #000;
  color: #fff;
  text-align: center;
  margin: 0 auto;
  max-width: 600px;
}*/

/* ==========================================================================
   セミナーバナー (画像ベース)
   ========================================================================== */

.p-top-seminar-banner {
	text-align: center;
}

.p-top-seminar-banner__link {
	display: inline-block;
	max-width: 600px; /* バナーの最大幅 */
	width: 100%;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.p-top-seminar-banner__link:hover {
	transform: translateY(-3px); /* 少し上に浮く */
	opacity: 0.9;
}

.p-top-seminar-banner__link img {
	width: 100%;
	height: auto;
	border-radius: 12px; /* 画像の角を丸める（必要に応じて） */
	display: block;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
	.p-top-seminar-banner {
		padding: 40px 20px;
	}
}

/* --- Cards --- */
.c-card {
	height: auto;
	background-color: transparent;
	border-radius: 15px;
	overflow: hidden;
	border: none;
	margin: 30px 30px 30px 0;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0);
	transition: all 0.3s ease !important;
	/*transition: transform 0.8s, box-shadow 0.8s;*/
	/*background: rgba(255, 255, 255, 0.95) !important;*/
	/*backdrop-filter: blur(5px);*/
	/*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);*/
}

.c-card:hover {
	background-color: #fff;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	border-radius: 15px;
	/*backdrop-filter: blur(5px);*/
}

.c-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.c-card__img-wrapper {
	opacity: 1;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	padding: 10px; /* 画像の周りの余白 */
}

.c-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px !important;
	/*transition: transform 0.3s;*/
}

.c-card:hover img {
	filter: none !important;
}

.c-card__body {
	padding: 0.5rem 1.5rem;
}

.c-card__date {
	display: block;
	font-size: 0.85rem;
	color: #888;
	margin-bottom: 0.5rem;
}

.c-card__title {
	font-size: 1rem;
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 0.5rem;
	color: #333;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.p-insight-row--books .c-card__date,
.p-insight-row--books .c-card__title {
	color: #fff;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
	.p-insight-row--books .c-card__date,
	.p-insight-row--books .c-card__title {
		color: #333;
	}
	.p-insight-row--books .c-card{
		background-color: #fff;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
		border-radius: 15px;
	}
}

.p-insight-row--books .c-card:hover .c-card__date,
.p-insight-row--books .c-card:hover .c-card__title {
	color: #333;
}

/* 会員限定（ロック）用 */
.c-card--locked .c-card__img-wrapper {
	position: relative;
}
.c-card--locked .c-card__img-wrapper::after {
	content: "";
	position: absolute;
	inset: 10px; /* imgのpaddingに合わせる */
	background: rgba(255,255,255,0.7) url('../GBLTheme/img/common/icon-lock.svg') no-repeat center/40px;
	border-radius: 10px;
	z-index: 1;
}

/* 研究発表用 */
.p-research-list .c-list-item {
  	display: flex;
  	padding: 30px 20px;
	border-bottom: 1px solid #eee !important;
	
	margin: 0 20px;
}

.p-research-list .c-list-item__link:first-child .c-list-item {
	border-top: 1px solid #eee ;
}
.c-list-item:last-child { border-bottom: none; }

.c-list-item__date {
  	flex: 0 0 180px;
  	font-size: 0.95rem;
  	color: #333;
	display: flex;
	align-items: center;
	border-right: 1px solid #eee;
  	margin-right: 30px;
}

.c-list-item__content {
	flex: 1;
}

.c-list-item__title {
	font-size: 1.2rem;
	font-weight: bold;
	margin-bottom: 15px;
	line-height: 1.5;
}

.c-list-item__meta dl { margin: 0; }
.c-list-item__meta-row {
	display: flex;
	align-items: center;
	margin-bottom: 8px;
}

.c-list-item__link {
	display: block;
	text-decoration: none;
	color: inherit; /* 文字色を親要素から継承 */
}

.c-list-item__link .c-list-item {
	transition: background-color 0.3s ease;
	background-color: rgba(255,255,255,0.1);
	/*border-radius: 10px;  ホバー背景に少し角丸をつけると綺麗です */
	padding: 20px;
    margin: 20px;
}

.c-list-item__link:hover .c-list-item {
	opacity: 1 !important;
	background-color: var(--hover-bg);
	border-radius: 10px; /* ホバー背景に少し角丸をつけると綺麗です */
	padding: 20px;
    margin: 20px;
}

.c-label {
	background: #004216;
	color: #fff;
	font-size: 0.75rem;
	padding: 4px 12px;
	border-radius: 20px;
	margin-right: 15px;
	min-width: 60px;
	text-align: center;
}

/* スマホ用調整 */
@media (max-width: 768px) {
	.c-list-item {
		flex-direction: column;
		padding: 20px;
	}
	.c-list-item__date {
		flex: none;
		border-right: none;
		margin-right: 0;
		/*margin-bottom: 15px;*/
		padding-bottom: 10px;
	}
	.c-list-item__title {
		font-size: 1.1rem;
	}
}

/* 左側の枠線ボタン */
.c-btn-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 25px 25px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: bold;
	transition: all 0.3s;
	background: #222; /* 基本は黒背景 */
	color: #fff;
	border: 2px solid #fff;
	font-size: 1.3rem;
	max-width: 430px;
}


/* 右側の雑誌風ボタン */
.c-btn-journal {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 25px 30px;
	border-radius: 12px;
	border: 2px solid #fff;
	color: #fff;
	text-decoration: none;
	overflow: hidden;
	z-index: 1;
	transition: transform 0.3s;
}

.c-btn-journal:hover {
	transform: translateX(10px);
}

/* 雑誌ボタンの背景画像と色（パターン出し分け） */
.c-btn-journal::before {
  	content: "";
  	position: absolute;
  	inset: 0;
  	background-size: cover;
  	background-position: center;
  	opacity: 0.2; /* 背後の画像を薄く */
  	z-index: -1;
	transition: opacity 0.3s;
}

/* ホバー時に画像を少しハッキリさせる演出（任意） */
.c-btn-journal:hover::before {
	opacity: 0.4;
}

.c-btn-journal--nbl { background-color: #1e4a82; } /* 青 */
.c-btn-journal--ibl { background-color: #2d5a33; } /* 緑 */
.c-btn-journal--blj { background-color: #7d6b24; } /* 黄土 */

/* --- 各ボタン個別の画像指定 --- */

.c-btn-journal--nbl::before {
	background-image: url('../GBLTheme/img/journal-nbl.webp'); /* NBLの表紙画像など */
}

.c-btn-journal--ibl::before {
	background-image: url('../GBLTheme/img/journal-ibl.webp'); /* IBLの表紙画像など */
}

.c-btn-journal--blj::before {
	background-image: url('../GBLTheme/img/journal-blj.webp'); /* BLJの表紙画像など */
}

@media (max-width: 768px) {
	.c-btn-journal--nbl,
	.c-btn-journal--ibl,
	.c-btn-journal--blj {
		flex-direction: column;
	}
}

/* 共通アイコン（黄色い丸） */
.c-btn-banner__icon {
	width: 30px;
	height: 30px;
	background: #ebef00 url('../GBLTheme/img/button-arrow.svg') no-repeat center/8px;
	border-radius: 50%;
	display: inline-block;
}

.c-btn-journal__name { font-size: 1.4rem; font-weight: bold; }
.c-btn-journal__sub { font-size: 0.9rem; display: flex; align-items: center; gap: 10px; }

/* スマホ用レスポンシブ */
@media (max-width: 992px) {
	.p-contributions {
		flex-direction: column;
	}
	.p-contributions__info, .p-contributions__links {
		width: 100%;
	}
	.c-btn-journal{
		padding: 15px 20px 25px;
	}
	.c-btn-journal__name { 
		font-size: 1.1rem; 
		margin: 0 auto 0 0;
	}
	.c-btn-journal__sub{
		margin: 0 0 -10px auto;
	}
}

/* 新着情報用 */
.c-news-item {
	display: flex;
	padding: 25px 40px;
	/* アイテム間の区切り線は薄いグレー(1px) */
	border-bottom: 1px solid #eee; 
	background-color: #fff;
}

/* 最後のアイテムの下線は、親の太い青線と重なるため不要 */
.c-news-item:last-child {
	border-bottom: none;
}

/* 日付エリアと縦罫線 */
.c-news-item__date {
	flex: 0 0 160px;
	font-size: 1.1rem;
	color: #333;
	/* 縦線 */
	border-right: 1px solid #eee;
	margin-right: 40px;
	display: flex;
	align-items: center;
}

.c-news-item__content {
	flex: 1;
	display: flex;
	align-items: center;
}

.c-news-item__title {
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.6;
	color: #333;
}

/* スマホ用：縦線を横線に変換 */
@media (max-width: 768px) {
  .c-news-item {
    flex-direction: column;
    padding: 20px;
  }
  .c-news-item__date {
    flex: none;
    border-right: none;
    border-bottom: 1px solid #eee;
    margin-right: 0;
    margin-bottom: 10px;
    padding-bottom: 5px;
  }
}

/* 大学との交流用　アコーディオン本体 */
.c-accordion-item {
	max-width: 900px;
	margin-left: auto;
  	border-top: 1px solid #eee; /* 上の境界線 */
  	background: #fff;
	border-bottom: 2px solid #1e4a82;
}

/* 最後のアイテムにも線を引く（デザイン通り） */
.c-accordion-item:last-child {
	border-bottom: 1px solid #1e4a82;
}

/* ヘッダーボタン部分 */
.c-accordion-item__header {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 25px 0;
	background: none;
	border: none;
	cursor: pointer;
}

.c-accordion-item__header::after{
	content: none ; /* 矢印を完全に消す */
}

.c-accordion-item__title.is-univ {
  	font-size: 1.5rem;
  	font-weight: bold;
  	color: #1e4a82; /* 濃い青 */
	text-align: left;
}

/* アイコン（＋と×の切り替え） */
.c-accordion-item__icon {
	position: relative;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
}


/* 共通の棒（横線） */
.c-accordion-item__icon::before,
.c-accordion-item__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 2px;
	background-color: #1e4a82;
	transform: translate(-50%, -50%);
	transition: transform 0.3s, opacity 0.3s;
}

/* ＋にするための縦線（afterを回転させる） */
.c-accordion-item__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

/* アクティブ時（開いている時）の「×」への変化 */
.js-accordion.is-active .c-accordion-item__icon::before {
	transform: translate(-50%, -50%) rotate(45deg);
}
.js-accordion.is-active .c-accordion-item__icon::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

/* アコーディオンの中身 */
.c-accordion-item__inner {
	padding: 0 0 40px 0; /* 開いた時の下の余白 */
	border-top: 1px dotted #ccc;
}

/* --- アコーディオン内の交流リスト（新着情報の流用元） --- */

.c-exchange-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* リスト1行の塊 */
.c-exchange-list__item {
	display: flex;
	padding: 20px 0;
	border-bottom: 1px solid #eee; /* 区切り線 */
	flex-direction: column;
}

/*.c-exchange-list__item:last-child {
	border-bottom: none;
}*/

/* 日付とテキストの横並びエリア */
.c-exchange-list__content {
	display: flex;
	gap: 40px;
	/*margin-bottom: 20px;*/
}

.c-exchange-list__date {
	flex-basis: 120px;/* 日付の幅を固定 */
	flex-shrink: 0;
	flex: 0 0 160px;
	font-size: 1.1rem;
	color: #333;
	border-right: 1px solid #eee; /* 縦線 */
	margin-right: 30px;
}

/* テキスト部分に左線を引く場合 */
.c-exchange-list__text {
	flex: 1;
	/*padding-left: 20px;*/
	/*border-left: 1px solid #ddd;*/
	font-size: 1rem;
	line-height: 1.6;
}

/* 画像エリア */
.c-exchange-list__img-wrapper {
	margin-top: 20px;
	max-width: 500px; /* 画像を少し左にずらす、または最大幅を制限する場合 */
}

.c-exchange-list__img {
	width: 100%;
	height: auto;
	display: block;
}

.c-exchange-list__text a {
    color: #1e4a82; /* リンクの色 */
    text-decoration: underline; /* 下線を入れる */
}

.c-exchange-list__text a:hover {
    text-decoration: none; /* ホバーで線を消す */
    opacity: 0.8;
}

/* タイムテーブルボタンの調整 */
.c-accordion-item__action {
	margin-top: 30px;
}

/* スマホ用調整 */
@media (max-width: 768px) {
	.c-accordion-item__title { font-size: 1.2rem; }
	.c-exchange-list__item { flex-direction: column; }
	.c-exchange-list__date {
		flex: none;
		border-right: none;
		border-bottom: 1px solid #eee;
		margin-right: 0;
		margin-bottom: 10px;
		padding-bottom: 5px;
	}
	.c-accordion-item__header {
		justify-content: space-between; /* スマホではタイトルとアイコンを端に寄せる */
	}
	.c-exchange-list__content {
		flex-direction: column;
		gap: 10px;
	}
  	.c-exchange-list__text {
		border-left: none;
		padding-left: 0;
	}
	.c-accordion-item__title.is-univ{
		font-size: 1.2rem;
	}
}

/* スマホ用：スマホでは右寄せを解除してフル幅にするのが一般的です */
@media (max-width: 900px) {
	.c-accordion-item {
		max-width: 100%;
		margin-left: 0;
	}
}

/* --- ボタンの実装（共通パーツ c-btn-banner の適用） --- */

.c-accordion-item__action {
	display: flex;
  	margin-top: 40px;
  	padding-bottom: 10px; /* 開いた時の下の余白 */
  	text-align: left;
	justify-content: center;
}

/* デザイン指示：角丸、青背景、黄色い円のarrow */
.c-accordion-item__action .c-btn-banner {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	min-width: 300px;
	padding: 12px 20px;
	background-color: #0d4d92; /* 青背景 */
	color: #fff;
	border-radius: 8px; /* 角丸 */
	text-decoration: none;
	font-weight: bold;
	transition: opacity 0.3s;
}

.c-accordion-item__action .c-btn-banner:hover {
	opacity: 0.8;
}

/* 黄色い円のarrow（共通コンポーネントを利用） */
.c-accordion-item__action .c-btn-banner__icon {
	width: 30px;
	height: 30px;
	background-color: #ebef00; /* 黄色 */
	border-radius: 50%;
	margin-left: 15px;
	position: relative;
}

/* 矢印（>）を疑似要素で作成 */
.c-accordion-item__action .c-btn-banner__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 45%;
	width: 8px;
	height: 8px;
	border-top: 2px solid #0d4d92;
	border-right: 2px solid #0d4d92;
	transform: translate(-50%, -50%) rotate(45deg);
}

/* テンプレートパーツを新着情報のデザインに合わせる
.c-accordion-item__left {
	display: flex;
	align-items: center;
	flex: 1;
}

.c-accordion-item__date {
	flex: 0 0 160px;
	font-size: 1.1rem;
	color: #333;
	border-right: 1px solid #eee; /* 縦線 */
/*   margin-right: 30px;
	line-height: 1;
}

/* 静的なアイテム（新着情報など）はホバーで色を変えない */
/* .c-accordion-item.is-static .c-accordion-item__header {
	cursor: default;
} */

.c-accordion-item {
	display: flex;
	padding: 0 40px;
	/* アイテム間の区切り線は薄いグレー(1px) */
	border-bottom: 1px solid #eee; 
	background-color: #fff;
	flex-direction: column;
}

.c-accordion-item__left {
	display: flex;
	align-items: center;
	flex: 1;
}


.c-accordion-item:last-child {
	border-bottom: 2px solid #eee;
} 

/* 日付エリアと縦罫線 */
.c-accordion-item__date {
	flex: 0 0 160px;
	font-size: 1.1rem;
	color: #333;
	/* 縦線 */
	border-right: 1px solid #eee;
	margin-right: 40px;
	display: flex;
	align-items: center;
}

.c-accordion-item__content {
	flex: 1;
	display: flex;
	align-items: center;
}

.c-accordion-item__title {
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.6;
	color: #333;
}

@media (max-width: 768px) {
	.c-accordion-item{
		padding: 0 20px;
	}
}

.p-news-list-wrapper {
	border-top: 2px solid #1e4a82 ;
	border-bottom: 2px solid #1e4a82 ;
	padding-bottom: 20px;
	padding-top: 20px;
}


/* --- 3カラムバナー --- */

.c-banner-grid {
  	display: flex;
  	gap: 20px;
  	justify-content: flex-start;
  	margin: 50px 0;
	width: 100%;
	height: 146px;
}

.c-banner-item {
  	position: relative;
	flex: 0 1 380px;
  	aspect-ratio: 16 / 9; /* バナーの比率（適宜調整） */
  	border-radius: 12px;
  	overflow: hidden;
  	text-decoration: none;
  	background-color: #000;
  	/* 白い外枠とシャドウ */
  	border: 4px solid #fff;
  	box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  	transition: transform 0.3s, box-shadow 0.3s;
}

.c-banner-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

/* 背景画像とオーバーレイ */
.c-banner-item__bg {
position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.c-banner-item__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.6; /* 透過させて暗くする */
}

/* コンテンツ（文字とアイコン） */
.c-banner-item__content {
	position: relative;
	z-index: 1;
	height: 100%;
	padding: 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.c-banner-item__title {
	color: #fff;
	font-size: 1.4rem;
	font-weight: bold;
	line-height: 1.4;
	margin: 0;
}

/* 黄色の矢印アイコン */
.c-banner-item__icon {
	width: 36px;
	height: 36px;
	background-color: #ebef00; /* デザインの黄色 */
	border-radius: 50%;
	position: relative;
	flex: 0 0 36px;
}

.c-banner-item__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 42%;
	width: 8px;
	height: 8px;
	border-top: 3px solid #333;
	border-right: 3px solid #333;
	transform: translate(-50%, -50%) rotate(45deg);
}

/* スマホ用レスポンシブ */
@media (max-width: 768px) {
	.c-banner-grid {
		flex-direction: column;
		height: 300px;
		/*align-items: center;*/
	}
	.c-banner-item {
		flex: 0 1 100%; /* スマホでは横幅いっぱいに */
		max-width: 450px;
	}
	.c-banner-item__title{
		font-size: 1.2rem;
	}
}

/* 記事ページ前後リンク：カード内の最下部に配置 */
.c-nav-link {
	display: flex;
	align-items: center;
	color: #1e4a82;
	text-decoration: none;
	font-weight: bold;
	transition: opacity 0.3s;
}

.c-nav-link:hover {
	opacity: 0.7;
}

/* 前後の矢印アイコンを疑似要素で作成（青い円の中に白い矢印） */
.c-nav-link::before,
.c-nav-link::after {
	content: "";
	display: inline-block;
	width: 30px;
	height: 30px;
	background-color: #1e4a82;
	border-radius: 50%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 18px;
	display: none;
}

/* 前の記事があるときにbeforeを表示 */
.c-nav-link--prev::before {
	display: inline-block; 
	margin-right: 10px;
	background-image: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>');
}
.c-nav-link--prev::after {
	display: none; /* afterは絶対に出さない */
}

/* 次の記事があるときにafterを表示 */
.c-nav-link--next::after {
	display: inline-block;
	margin-left: 10px; 
	background-image: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>');
}
.c-nav-link--next::before {
	display: none; /* beforeは絶対に出さない */
}

/* buttonタグへの対応 */
button.c-btn-banner {
	border: none;
  	cursor: pointer;
  	appearance: none;
	padding: 0 0;
  	width: 100%;
  	max-width: 300px;
	justify-content: space-between;
}

/* buttonタグ特有の「内側の余白（ボタンの中のボタン）」を消す魔法のコード */
button.c-btn-banner::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/* 指示：入力値がない場合はボタンを有効にしない（見た目の変化） */
button.c-btn-banner:disabled {
	background-color: #ccc; /* グレーアウト */
	cursor: not-allowed;
	opacity: 0.6;
}

button.c-btn-banner:disabled .c-btn-banner__icon {
	background-color: #999; /* アイコンの黄色も沈ませる */
}

 /* 記事ページタイトル */
.c-entry__title{
	margin-bottom: 20px;
}

/* スマホ用レスポンシブ */
@media (max-width: 768px) {

}



/* ==========================================================================
   4. WordPress Specific
   WPが自動生成するクラス（Gutenbergエディタ、管理バーなど）への対応
   ========================================================================== */


/* ==========================================================================
   5. Utilities
   微調整用の単一機能クラス。命名規則は「u-」から始める
   ========================================================================== */
.u-mb-10 { margin-bottom: 10px !important; }
.u-mb-20 { margin-bottom: 20px !important; }
.u-mb-40 { margin-bottom: 40px !important; }
.u-mt-40 { margin-top: 40px !important; }
.u-pt-60 { padding-top: 60px !important; }
.u-pt-30 { padding-top: 30px !important; }
.u-pt-20 { padding-top: 20px !important; }
.u-pt-10 { padding-top: 10px !important; }
.u-pb-40 { padding-bottom: 40px !important; }

.u-text-center { text-align: center !important; }
.u-text-bold { font-weight: bold !important; }
.u-text-resize { font-size: 1.2rem !important; }

.u-item-center-1 { margin: 40px auto 0 !important; width: 320px; }
.u-item-center-2 { justify-content: center !important; }
.u-item-center-3 { margin: 0 auto 0 !important; width: 320px; }

/* .u-desktop-only { display: block; } */
.u-mobile-only { display: none; }

.u-color-white { color: #fff !important; }
.u-mt-40 { margin-top: 40px; }
.u-text-center { text-align: center; }

/* 著者ラベル */
.u-label-author {
	display: inline-block;
	background-color: #f4f7f9; /* 薄いグレー */
	padding: 15px 25px;
	border-radius: 8px;
	font-size: 0.95rem;
	line-height: 1.6;
	color: #333;
	margin-top: 20px;
}

/* Mission / Vision の見出し装飾 */
.u-ttl-mv {
	display: flex;
	align-items: center;
	gap: 15px;
	font-size: 2.3rem;
	color: #1e4a82;
	margin-bottom: -25px;
	margin-left: -5px;
}

.u-ttl-mv span {
	font-size: 1.2rem;
	color: #333;
	font-weight: normal;
}

/* グレーボックス内の小見出し */
.u-ttl-sub {
	display: inline-block;
	font-size: 1.1rem;
	font-weight: bold;
	border-bottom: 2px solid #1e4a82;
	padding-bottom: 5px;
	margin-bottom: 25px;
}

/* h1: 46px / 64px = 1.391... */
.u-ttl-h1 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.39; /* 64px相当 */
}

/* h2: 46px / 58px = 1.260... */
.u-ttl-h2 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.26; /* 58px相当 */
}

.u-ttl-h2-blue {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.26; /* 58px相当 */
	color: #1e4a82;
}

/* h3: 32px */
.u-ttl-h3 {
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5; /* 一般的な読みやすさを考慮 */
}

/* スマホ対応（一例：画面幅に合わせて縮小） */
@media (max-width: 768px) {
	.u-ttl-h1, .u-ttl-h2, .u-ttl-h2-blue {
		font-size: 1.6rem;
	}
	.u-ttl-h3 {
		font-size: 1.4rem; /* スマホでは24px程度に */
	}
	.u-pt-30{
		padding-top: 10px !important;
	}
	
	.u-ttl-mv{
		padding-top: 20px;
		font-size: 1.3rem
	}
}


/* ==========================================================================
   6. Media Queries (Responsive)
   ※各セクション内に書く手法もありますが、ここにまとめてもOK
   ========================================================================== */
@media (max-width: 768px) {
	.u-desktop-only { display: none; }
	.u-mobile-only { display: block; }
  
  /* スマホ用の調整をここに追記 */
}


/* ==========================================================================
   7. Entry Content Styles (記事本文エリア)
   WordPressのエディタから出力される標準的なタグの装飾
   ========================================================================== */

/* --- 固定ページ専用（背景なし・シンプル） --- */
.page .l-main-content {
	max-width: 1000px;
	margin: 0 auto;
	background-color: transparent;
	padding: 60px 0;
}

/* --- 記事ページ専用（背景） --- */
.single .p-entry-bg-container {
	background-color: #f0f6fa;
	margin: 0 20px; /* 窓枠 */
	padding: 1px; /* 子にネガティブマージンがある場合、必ずパディング1pxかボーター1px solid transparentを設定すること */
	border-radius: 12px;
}

.single .p-entry-white-card {
	background-color: #fff;
	max-width: 1000px;
	border-radius: 15px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
	margin: -65px auto;       /* ネガティブマージン＋中央寄せ */
	position: relative;
	z-index: 10;          /* 水色背景より確実に上へ */
}

.p-entry-article {
	width: 100%;
	padding: 0 60px 60px;
}

.single .p-entry-article {
	padding: 60px;
}

/* 固定ページではこれらの背景処理を無効化 */
.page .p-entry-bg-container {
	background-color: transparent;
	margin: 0;
	padding: 0;
}
.page .p-entry-white-card {
	box-shadow: none;
	padding: 60px 0;
}

.single .p-entry-container {
	margin: 80px 0 120px;
}

/* --- スマホ用レスポシブ --- */
@media (max-width: 768px) {
	/* 親要素：水色の背景を「透明」にして余白を消す */
	.single .p-entry-bg-container {
		background-color: transparent; /* 背景色をなしに */
		padding: 0;                   /* 余白をリセット */
		margin: 0;                    /* 外側の余白もリセット */
		border-radius: 0;             /* 角丸も不要ならリセット */
	}

  /* 子要素：白カードを「普通の記事エリア」として表示させる */
	.single .p-entry-white-card {
		margin: 0 auto;               /* PCでの突き出し（-65px）をリセット */
		padding: 0;           /* スマホ用の適切な内側余白を設定 */
		border-radius: 0;             /* カード風にする必要がなければ0、必要なら調整 */
		box-shadow: none;             /* 影も不要なら消してフラットにする */
		width: 100%;                  /* 画面いっぱいに広げる */
		max-width: 100%;
	}
	
	/* 記事本体のパディング（以前追加した箇所） */
	.p-entry-article,
	.single .p-entry-article{
		padding: 0;	/* 二重に余白ができないよう調整 */
	}
	
	.single .p-entry-container {
		margin: 20px 0 30px;
	}
}

/* 代表挨拶・理念ページでは水色背景を復活させる */
.page .p-entry-bg-container.p-philosophy {
	background-color: #f0f6fa; /* 記事ページと同じ水色 */
	margin: 0 20px;            /* 窓枠風の余白 */
	padding: 1px;              /* ネガティブマージン対策 */
	border-radius: 12px;
}

/* 代表挨拶・理念ページでは白カードの装飾を復活させる */
.page .p-entry-white-card.p-philosophy {
	background-color: #fff;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05); /* 影を復活 */
	padding: 60px;             /* 適切な余白 */
	border-radius: 15px;
	max-width: 1000px;
}

/* 代表挨拶・理念ページのスマホでの挙動（記事ページと同じルールを適用） */
@media screen and (max-width: 767px) {
	.page .p-entry-bg-container.p-philosophy {
		background-color: transparent;
		margin: 0;
		padding: 0;
	}
	.page .p-entry-white-card.p-philosophy {
		margin: 0 auto;
		padding: 0; /* 中身の p-entry-article の padding に任せる */
		box-shadow: none;
	}
}

.entry-content {
	line-height: 1.8; /* 本文は少し広めの行間が読みやすい */
	color: #333;
}

/* --- Block Spacing (要素間の余白) --- */
.entry-content > * + * {
	margin-top: 1.5rem;
}

@media screen and (max-width: 767px) {
	.entry-content > * + * {
		margin-top: 0;
	}
}

/* --- Headings (見出し) --- */
.entry-content h2 {
	font-size: 1.8rem;
	border-bottom: 2px solid #1e4a82;
  	padding-bottom: 15px;
	margin: 40px 0 20px;
	line-height: 1.4;
  	/* border-left: 5px solid #007bff;
  	background-color: #f8f9fa;
  	font-weight: bold;
  	line-height: 1.4;*/
}

.entry-content h3 {
	font-size: 1.4rem;
	padding-left: 15px;
	border-left: 4px solid #1e4a82;
	margin: 30px 0 15px;
  	/* padding-bottom: 0.5rem;
  	border-bottom: 2px solid #007bff;
  	font-weight: bold;
  	margin-top: 2.5rem;*/
}

.entry-content h4 {
  	font-size: 1.25rem;
	margin: 25px 0 10px;
  	font-weight: bold;
}

@media screen and (max-width: 767px) {
	.entry-content h2,
	wp-block-heading h2{
		font-size: 1.6rem;
  		padding-bottom: 10px;
	}
	.entry-content h3{
		padding-left: 10px;
	}
}

/* 引用・補足（薄い背景のボックス） */
.entry-content .u-box-gray {
	background-color: #f0f4f8;
	padding: 30px;
	border-radius: 8px;
	margin: 20px 0;
}

/* --- Text Elements --- */
.entry-content p {
	margin-bottom: 1.5rem;
}

.entry-content strong {
	font-weight: bold;
	background: linear-gradient(transparent 60%, #fffacd 60%); /* 蛍光ペン風の下線 */
}

.entry-content a {
	color: #007bff;
	text-decoration: underline;
}

.entry-content a:hover {
	text-decoration: none;
}

/* --- Lists (箇条書き) --- */
.entry-content ul,
.entry-content ol,
.p-entry-article ul,
.p-entry-article ol,
.wp-block-list{
	margin-bottom: 1.5rem;
	background-color: #f0f4f8;
	padding: 30px 30px 30px 48px;
	border-radius: 8px;
	font-size: 0.9rem;

}

.entry-content li,
.p-entry-article li,
.wp-block-list li{
	margin-bottom: 0.5rem;
	display: list-item;
}

.entry-content ul,
.p-entry-article ul,
.wp-block-list ul{
	list-style-type: disc;
}
.entry-content ol, .p-entry-article ol, ol.wp-block-list {
    list-style-type: decimal !important;
}

/* --- Blockquote (引用) ---
.entry-content blockquote {
	position: relative;
	padding: 1.5rem 1.5rem 0;
	background: #fdfdfd;
	border: 1px solid #eee;
	font-style: italic;
	color: #666;
} 

.entry-content blockquote::before {
	content: "“";
	position: absolute;
	top: 0;
	left: 10px;
	font-size: 3rem;
	color: #eee;
}*/

/* 引用ブロック全体の装飾 */
.wp-block-quote {
	background-color: #f0f4f8; /* 薄いグレー */
	padding: 30px;
	border-radius: 8px;
	border-left: none; /* デフォルトの左線を消す場合 */
	margin: 30px 0;
}

/* 引用文（pタグ）のスタイル */
.wp-block-quote p {
	font-size: 0.9rem;
	font-style: normal;
	line-height: 1.8;
	color: #333;
	margin-bottom: 10px;
}

/* 引用元（citeタグ）のスタイル */
.wp-block-quote cite {
	font-size: 0.9rem;
	color: #666;
	font-style: normal; /* 斜体を戻す */
	display: block;
	text-align: right; /* 右寄せにする場合 */
}

/* 引用ブロックの左上の ” を消す */
.wp-block-quote::before,
.wp-block-quote p::before {
	content: none;
	display: none;
}

/* --- Images & Figures --- */
.entry-content figure {
	display: flex;
	flex-direction: column-reverse;
	margin: 2rem 0;
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.entry-content figcaption {
	/*order: 1;  順番を1番目に */
	font-size: 0.85rem;
	color: #888;
	text-align: center;
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
	
}

/* --- Table --- */
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
}

.entry-content th,
.entry-content td {
	padding: 0.75rem;
	border: 1px solid #ddd;
	text-align: left;
}

.entry-content th {
	background-color: #f4f4f4;
}

/* 画像の配置クラス */
.aligncenter { display: block; margin: 0 auto; }
.alignleft { float: left; margin-right: 1.5em; }
.alignright { float: right; margin-left: 1.5em; }

/* ウィジェットやコメントなど */
.widget { }