@charset "UTF-8";

/* ============================================
   Gutenberg alignment override
   ブロックエディタの配置機能を保護
============================================ */
.wp-block-buttons.has-text-align-left { justify-content: flex-start !important; }
.wp-block-buttons.has-text-align-center { justify-content: center !important; }
.wp-block-buttons.has-text-align-right { justify-content: flex-end !important; }
.has-text-align-left { text-align: left !important; }
.has-text-align-center { text-align: center !important; }
.has-text-align-right { text-align: right !important; }

/* ============================================
   テンプレート共通セクション
============================================ */
.sec_tmpl_block {
	padding:120px 0 120px;
	font-size:1.125rem;
}
.sec_tmpl_bg {
	background:#f5f5f5;
}

/* 黒背景セクション */
.sec_tmpl_dark {
	background:#1a1a1a;
}
.sec_tmpl_block .tmpl_inner {
	margin:0 auto;
	max-width:1200px;
}
.sec_tmpl_block .tmpl_inner100per {
	margin:0 auto;
	max-width:100%;
}

/* tmpl_inner が連続するときだけ間にマージンが入ります */
.sec_tmpl_block .tmpl_inner + .tmpl_inner {
	margin-top:80px;
}

@media screen and (max-width:1200px) {
	.sec_tmpl_block .tmpl_inner {
		max-width:90%;
	}
	.sec_tmpl_block .tmpl_inner100per {
		max-width:100%;
	}
}

@media screen and (max-width:768px) {
	.sec_tmpl_block {
		padding:60px 0 70px;
		font-size:3.8vw;
	}
	.sec_tmpl_bg .tmpl_inner {
		max-width:90%;
	}
}

/* ============================================
   下層ページタイトルエリア
============================================ */
.tmpl_page_title_area {
	background:#1a1a1a;
	position:relative;
	overflow:hidden;
	height:670px;
	display:flex;
	align-items:center;
}

/* 背景の薄い大文字テキスト */
.tmpl_page_title_bg_text {
	position:absolute;
	top:50%;
	left:-2%;
	transform:translateY(-50%);
	font-family:'Bebas Neue', sans-serif;
	font-size:26vw;
	font-weight:400;
	color:rgba(255,255,255,0.06);
	white-space:nowrap;
	letter-spacing:0.08em;
	pointer-events:none;
	line-height:1;
}

/* 独自インナー */
.tmpl_page_title_inner {
	position:relative;
	z-index:1;
	width:100%;
	max-width:1200px;
	margin:0 auto;
	padding:0 20px;
}

/* テキストエリア：右寄せ */
.tmpl_page_title_content {
	text-align:right;
	margin-left:auto;
	max-width:700px;
}

/* ラベル */
.tmpl_page_title_label {
	font-family:'Bebas Neue', sans-serif;
	font-size:1.75rem;
	letter-spacing:0.4em;
	color:#d4af37;
	margin-bottom:16px;
}

/* h1 */
.tmpl_page_title_h1 {
	font-size:4.5rem;
	font-weight:900;
	color:#fff;
	letter-spacing:0.05em;
	line-height:1.2;
	margin-bottom:30px;
}

/* サブテキスト */
.tmpl_page_title_sub {
	font-size:1.125rem;
	color:rgba(255,255,255,0.75);
	line-height:2.2;
	letter-spacing:0.05em;
}

/* ============================================
   ページタイトルエリア SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_page_title_area {
		height:auto;
		padding:100px 0 80px;
	}

	.tmpl_page_title_bg_text {
		font-size:32vw;
	}

	.tmpl_page_title_inner {
		padding:0 5%;
	}

	.tmpl_page_title_content {
		max-width:100%;
	}

	.tmpl_page_title_h1 {
		font-size:10vw;
		margin-bottom:24px;
	}

	.tmpl_page_title_label {
		font-size:3vw;
	}

	.tmpl_page_title_sub {
		font-size:3.8vw;
		line-height:2;
	}
}

/* ============================================
   パンくずナビ
============================================ */
.tmpl_breadcrumb {
	background:#f5f5f5;
	padding:30px 0;
}

.tmpl_breadcrumb_inner {
	max-width:1200px;
	margin:0 auto;
	padding:0 20px;
}

.tmpl_breadcrumb_list {
	display:flex;
	align-items:center;
	gap:0;
	list-style:none;
}

.tmpl_breadcrumb_item {
	font-size:1rem;
	color:#333;
	display:flex;
	align-items:center;
}

/* 区切り「›」 */
.tmpl_breadcrumb_item + .tmpl_breadcrumb_item::before {
	content:'›';
	margin:0 14px;
	color:#999;
	font-size:1.375rem;
	line-height:1;
}

/* リンク（前の階層） */
.tmpl_breadcrumb_item a {
	color:#333;
	text-decoration:none;
	transition:color 0.3s;
}

.tmpl_breadcrumb_item a:hover {
	color:#d4af37;
}

/* パンくずナビ SP */
@media screen and (max-width:768px) {
	.tmpl_breadcrumb {
		padding:20px 0;
	}

	.tmpl_breadcrumb_inner {
		padding:0 5%;
	}

	.tmpl_breadcrumb_item {
		font-size:3.8vw;
	}

	.tmpl_breadcrumb_item + .tmpl_breadcrumb_item::before {
		font-size:5vw;
		margin:0 10px;
	}
}

/* ============================================
   h2エリア（デフォルト：左寄せ）
============================================ */
.tmpl_h2_wrap {
	padding:20px 0 30px;
	text-align:left;
}

/* h2エリア（中央寄せ版） */
.tmpl_h2_wrap_center {
	text-align:center;
}

/* h2エリア（黒背景版）：文字色を白・グレーに反転 */
.tmpl_h2_wrap_dark .tmpl_h2 {
	color:#fff;
}

.tmpl_h2_wrap_dark .tmpl_lead {
	color:rgba(255,255,255,0.6);
}

.tmpl_label {
	font-family:'Bebas Neue', sans-serif;
	font-size:1.125rem;
	letter-spacing:0.35em;
	color:#d4af37;
	margin-bottom:24px;
}

.tmpl_h2 {
	font-size:3.25rem;
	font-weight:900;
	color:#1a1a1a;
	letter-spacing:0.05em;
	line-height:1.4;
	margin-bottom:30px;
}

.tmpl_lead {
	font-size:1.125rem;
	color:#555;
	line-height:2;
}

/* ============================================
   h3：左ボーダー付き見出し
============================================ */
.sec_tmpl_block h3 {
	font-size:1.625rem;
	font-weight:700;
	color:#1a1a1a;
	border-left:2px solid #d4af37;
	padding:5px 0 5px 1.7em;
	line-height:1.5;
	margin-top:80px;
	margin-bottom:50px;
}

/* ============================================
   本文テキスト
============================================ */
.tmpl_text {
	font-size:1.125rem;
	color:#333;
	line-height:2;
	margin-bottom:40px;
}

/* ============================================
   h4：中見出し
============================================ */
.sec_tmpl_block h4 {
	font-size:1.375rem;
	font-weight:700;
	color:#1a1a1a;
	margin-top:70px;
	margin-bottom:30px;
	letter-spacing:0.03em;
}

/* ============================================
   ulリスト：■マーク（ゴールド）
============================================ */
.tmpl_list_ul {
	list-style:none;
	margin-bottom:10px;
}

.tmpl_list_ul li {
	font-size:1.125rem;
	color:#333;
	line-height:1.8;
	padding:10px 0 10px 44px;
	position:relative;
}

.tmpl_list_ul li::before {
	content:'■';
	position:absolute;
	left:13px;
	top:10px;
	font-size:0.7rem;
	color:#d4af37;
	line-height:calc(18px * 1.8);
}

/* ============================================
   olリスト：数字ゴールド（Bebas Neue）
============================================ */
.tmpl_list_ol {
	list-style:none;
	counter-reset:tmpl_ol_counter;
	margin-bottom:10px;
}

.tmpl_list_ol li {
	font-size:1.125rem;
	color:#333;
	line-height:1.8;
	padding:10px 0 10px 44px;
	position:relative;
	counter-increment:tmpl_ol_counter;
}

.tmpl_list_ol li::before {
	content:counter(tmpl_ol_counter) '.';
	position:absolute;
	left:0px;
	top:12px;
	width:30px;
	text-align:right;
	font-family:'Bebas Neue', sans-serif;
	font-size:1.5rem;
	color:#d4af37;
	letter-spacing:0.02em;
	line-height:calc(18px * 1.8);
}

/* ============================================
   区切り線
============================================ */
.tmpl_hr {
	border:none;
	height:3px;
	background:linear-gradient(to right, #d4af37, #f3f1e9);
	margin:80px 0;
}

/* 黒背景セクション用 */
.sec_tmpl_dark .tmpl_hr {
	background:linear-gradient(to right, #d4af37, rgba(255,255,255,0.1));
}

/* ============================================
   dlリスト
============================================ */
.tmpl_dl {
	margin-bottom:60px;
}

.tmpl_dl dt {
	font-size:1.125rem;
	font-weight:700;
	color:#1a1a1a;
	border-left:2px solid #d4af37;
	padding:4px 0 4px 1.2em;
	margin-top:50px;
	margin-bottom:16px;
	line-height:1.5;
}

.tmpl_dl dd {
	font-size:1.125rem;
	color:#333;
	line-height:2;
	padding-left:0;
}

/* ============================================
   枠ボックス
============================================ */
.tmpl_box {
	border:1px solid #d4af37;
	background:#f9f5e8;
	padding:50px 60px;
	margin-top:60px;
	margin-bottom:10px;
}

.tmpl_box p {
	font-size:1.125rem;
	color:#333;
	line-height:2;
}

/* 強調テキスト：ゴールド・太字 */
.tmpl_em {
	color:#d4af37;
	font-weight:700;
}

/* ============================================
   汎用パーツ：ボタン
============================================ */

/* ゴールド塗りボタン */
.tmpl_btn_primary {
	display:inline-flex;
	align-items:center;
	gap:0;
	padding:0 40px;
	height:68px;
	background:#d4af37;
	color:#1a1a1a;
	font-size:1.125rem;
	font-weight:700;
	text-decoration:none;
	border:1px solid transparent;
	letter-spacing:0.05em;
	transition:background 0.3s;
	white-space:nowrap;
}

.tmpl_btn_primary:hover {
	background:#e5c158;
	color:#1a1a1a;
}

/* 枠線ボタン */
.tmpl_btn_secondary {
	display:inline-flex;
	align-items:center;
	gap:0;
	padding:0 40px;
	height:68px;
	background:transparent;
	color:#1a1a1a;
	font-size:1.125rem;
	font-weight:700;
	text-decoration:none;
	border:1px solid #1a1a1a;
	letter-spacing:0.05em;
	transition:background 0.3s, color 0.3s;
	white-space:nowrap;
}

.tmpl_btn_secondary:hover {
	background:#1a1a1a;
	color:#fff;
}

/* 矢印：::after で background-image として表示 */
.tmpl_btn_primary::after,
.tmpl_btn_secondary::after {
	content:'';
	display:inline-block;
	width:30px;
	height:12px;
	margin-left:14px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
	transition:background-image 0.3s;
}

/* secondary hover時は白矢印に切り替え */
.tmpl_btn_secondary:hover::after {
	background-image:url(../images/arrow_white.png);
}

/* ボタン矢印imgクラス（非推奨・HTML残存時の非表示用） */
.tmpl_btn_arrow {
	display:none;
}

/* ボタン並べるラッパー */
.tmpl_btn_wrap {
	display:flex;
	flex-wrap:wrap;
	gap:20px;
	margin-top:40px;
	margin-bottom:40px;
}

/* ============================================
   汎用パーツ：テキストリンク
============================================ */

/* 通常テキストリンク */
.tmpl_link {
	color:#1a1a1a;
	text-decoration:underline;
	text-underline-offset:3px;
	transition:color 0.3s, opacity 0.3s;
}

.tmpl_link:hover {
	color:#d4af37;
}

/* 外部リンク（新しいタブで開く） */
.tmpl_link_external {
	color:#1a1a1a;
	text-decoration:underline;
	text-underline-offset:3px;
	transition:color 0.3s;
}

.tmpl_link_external::after {
	content:'';
	display:inline-block;
	width:14px;
	height:14px;
	margin-left:5px;
	margin-right:6px;
	background-color:#888;
	-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+PHBhdGggZD0iTTQuNSAxLjVIMS41djloOVY3LjVNNyAxLjVoMy41djMuNU0xMC41IDEuNUw1LjUgNi41IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4K");
	-webkit-mask-repeat:no-repeat;
	-webkit-mask-position:center center;
	-webkit-mask-size:contain;
	mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+PHBhdGggZD0iTTQuNSAxLjVIMS41djloOVY3LjVNNyAxLjVoMy41djMuNU0xMC41IDEuNUw1LjUgNi41IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4K");
	mask-repeat:no-repeat;
	mask-position:center center;
	mask-size:contain;
	vertical-align:middle;
	transition:background-color 0.3s;
}

.tmpl_link_external:hover {
	color:#d4af37;
}

.tmpl_link_external:hover::after {
	background-color:#d4af37;
}

/* ============================================
   汎用パーツ：強調テキスト（strong）
============================================ */
.sec_tmpl_block strong {
	font-weight:700;
	background:linear-gradient(transparent 60%, rgba(212,175,55,0.3) 60%);
}

/* ============================================
   汎用パーツ SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_btn_primary,
	.tmpl_btn_secondary {
		font-size:4vw;
		height:13vw;
		padding:0 6vw;
	}

	.tmpl_btn_wrap {
		flex-direction:column;
		gap:14px;
		align-items:flex-start;
	}
}

/* ============================================
   テンプレート SP
============================================ */
@media screen and (max-width:768px) {

	.tmpl_h2 {
		font-size:7vw;
		margin-bottom:25px;
	}

	.tmpl_label {
		font-size:4vw;
		margin-bottom:14px;
	}

	.tmpl_lead {
		font-size:4vw;
	}

	.sec_tmpl_block h3 {
		padding-left:1.2em;
		font-size:5.5vw;
		margin-top:40px;
		margin-bottom:24px;
	}

	.tmpl_text {
		font-size:4vw;
		margin-bottom:25px;
	}

	.sec_tmpl_block h4 {
		font-size:5vw;
		margin-top:35px;
		margin-bottom:15px;
	}

	.tmpl_list_ul li,
	.tmpl_list_ol li {
		font-size:4vw;
	}

	.tmpl_hr {
		margin:40px 0;
	}

	.tmpl_dl dt {
		font-size:4.5vw;
		margin-top:30px;
	}

	.tmpl_dl dd {
		font-size:4vw;
	}

	.tmpl_box {
		padding:25px 20px;
	}

	.tmpl_box p {
		font-size:4vw;
	}
}

/* ============================================
   画像＋テキスト2カラム
============================================ */
.tmpl_media {
	display:flex;
	align-items:flex-start;
	gap:80px;
}

/* 左：テキストエリア */
/* ブロックエディタで%指定した場合はインラインスタイルが優先される */
.tmpl_media_text {
	flex-grow:1;
	flex-shrink:1;
	flex-basis:0;
}

/* キャッチコピー：左ボーダー付き */
.tmpl_catch {
	border-left:4px solid #d4af37;
	padding:6px 0 6px 1.2em;
	margin-bottom:2rem;
}

.tmpl_catch p {
	font-size:1.625rem;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.7;
}

/* 右：写真エリア */
/* ブロックエディタで%指定した場合はインラインスタイルが優先される */
.tmpl_media_photo {
	flex-grow:0;
	flex-shrink:0;
	flex-basis:42%;
}

.tmpl_media_photo img {
	width:100%;
	height:auto;
	display:block;
}

/* 画像＋テキスト2カラム SP */
@media screen and (max-width:768px) {
	.tmpl_media {
		flex-direction:column;
		gap:2rem;
	}

	.tmpl_media_photo {
		flex:none;
		width:100%;
	}

	.tmpl_media_photo img {
		width:100%;
		height:auto;
	}

	.tmpl_catch p {
		font-size:4.5vw;
	}
}


/* ============================================
   数字カード
============================================ */
.tmpl_stat_cards {
	display:flex;
	gap:48px;
	margin-top:60px;
}

.tmpl_stat_card {
	flex:1;
	background:#1a1a1a;
	padding:60px 40px 50px;
	text-align:center;
	box-shadow:4px 6px 16px rgba(0,0,0,0.25);
}

/* 数字＋単位 */
.tmpl_stat_num {
	font-family:'Bebas Neue', sans-serif;
	font-size:5rem;
	font-weight:400;
	color:#d4af37;
	line-height:1;
	margin-bottom:24px;
	letter-spacing:0.02em;
	display:flex;
	align-items:flex-end;
	justify-content:center;
}

.tmpl_stat_unit {
	font-family:'Noto Sans JP', sans-serif;
	font-size:1.5rem;
	font-weight:700;
	color:#fff;
	letter-spacing:0;
	line-height:1.4;
	margin-bottom:0.4em;
}

/* ラベル */
.tmpl_stat_label {
	font-size:1.125rem;
	color:#fff;
	letter-spacing:0.05em;
	line-height:1.6;
}

/* 数字カード SP */
@media screen and (max-width:768px) {
	.tmpl_stat_cards {
		flex-direction:column;
		gap:20px;
		margin-top:40px;
	}

	.tmpl_stat_num {
		font-size:15vw;
	}

	.tmpl_stat_unit {
		font-size:5vw;
	}

	.tmpl_stat_label {
		font-size:4vw;
	}
}


/* ============================================
   テーブル1：縦型（th左列・td右列）
============================================ */
.tmpl_table_v {
	width:100%;
	border-collapse:collapse;
	margin-bottom:3rem;
}

/* 行の上下ボーダー */
.tmpl_table_v tr {
	border-top:1px solid #ddd;
}

.tmpl_table_v tr:last-child {
	border-bottom:1px solid #ddd;
}

.tmpl_table_v th {
	width:160px;
	font-size:1.125rem;
	font-weight:700;
	color:#1a1a1a;
	text-align:center;
	vertical-align:middle;
	white-space:nowrap;
	padding:48px 16px;
	position:relative;
	z-index:0;
}

/* グレー背景を上下余白で浮かせる */
.tmpl_table_v th::before {
	content:'';
	position:absolute;
	top:30px;
	bottom:30px;
	left:0;
	right:0;
	background:#f8f8f8;
	z-index:-1;
}

.tmpl_table_v td {
	font-size:1.125rem;
	color:#333;
	padding:28px 32px;
	vertical-align:middle;
	line-height:1.8;
}

/* ============================================
   テーブル2：横型（ヘッダー行あり）
============================================ */

/* 横スクロール注釈 */
.tmpl_table_scroll_note {
	font-size:0.875rem;
	color:#888;
	margin-bottom:0.5rem;
}

/* 横スクロールラッパー */
.tmpl_table_scroll {
	width:100%;
	overflow-x:auto;
	margin-bottom:60px;
	-webkit-overflow-scrolling:touch;
}

.tmpl_table_h {
	width:100%;
	min-width:600px;
	border-collapse:collapse;
}

/* ヘッダー行：黒背景・白文字 */
.tmpl_table_h thead th {
	background:#1a1a1a;
	color:#fff;
	font-size:1.125rem;
	font-weight:700;
	text-align:center;
	padding:1.75rem 1.25rem;
	border:2px solid #e5e7eb;
}

/* データ行 */
.tmpl_table_h tbody td {
	font-size:1.125rem;
	color:#333;
	text-align:center;
	padding:1.75rem 1.25rem;
	border:2px solid #e5e7eb;
	line-height:1.8;
}

/* ============================================
   テーブル SP
============================================ */
@media screen and (max-width:768px) {

	/* 縦型テーブル：thとtdを縦積み */
	.tmpl_table_v {
		border-spacing:0;
	}

	.tmpl_table_v tr {
		display:block;
		border-top:1px solid #ddd;
	}

	.tmpl_table_v tr:last-child {
		border-bottom:1px solid #ddd;
	}

	.tmpl_table_v th,
	.tmpl_table_v td {
		display:block;
		width:100%;
		box-sizing:border-box;
		text-align:left;
		font-size:4vw;
		white-space:normal;
		border:none;
		position:static;
	}

	/* SP時はPC用の疑似要素を非表示 */
	.tmpl_table_v th::before {
		display:none;
	}

	/* SP時のthは直接背景色を指定・paddingで幅に収める */
	.tmpl_table_v th {
		background:#f8f8f8;
		padding:1.25rem 1.75rem 1.25rem;
		font-size:4vw;
		width:100%;
	}

	.tmpl_table_v td {
		padding:1.25rem 1.75rem 1.75rem;
		background:none;
	}

	.tmpl_table_scroll_note {
		font-size:3vw;
	}

	.tmpl_table_h thead th,
	.tmpl_table_h tbody td {
		font-size:3.8vw;
		padding:1rem 0.75rem;
	}
}

/* ============================================
   画像・figureパーツ
============================================ */

/* 単体figure */
.tmpl_fig {
	margin:0 0 60px;
}

.tmpl_fig img {
	width:100%;
	height:auto;
	display:block;
	box-shadow:0 4px 20px rgba(0,0,0,0.1);
}

/* キャプション */
.tmpl_fig_caption {
	font-size:0.875rem;
	color:#888;
	margin-top:16px;
	line-height:1.6;
}

/* 2カラム横並び */
.tmpl_fig_cols {
	display:flex;
	gap:50px;
	margin-bottom:60px;
}

.tmpl_fig_cols .tmpl_fig {
	flex:1;
	margin-bottom:0;
}

/* 画像パーツ SP */
@media screen and (max-width:768px) {
	.tmpl_fig_cols {
		flex-direction:column;
		gap:24px;
	}

	.tmpl_fig_caption {
		font-size:3.2vw;
	}
}

/* ============================================
   ステップリスト（黒背景用）
============================================ */
.tmpl_steps {
	list-style:none;
	margin-top:40px;
	margin-bottom:0;
	max-width:900px;
	margin-left:auto;
	margin-right:auto;
}

.tmpl_step {
	display:flex;
	align-items:flex-start;
	gap:40px;
	position:relative;
	padding-bottom:60px;
}

.tmpl_step:last-child {
	padding-bottom:0;
}

/* 縦線：丸と丸をつなぐ */
.tmpl_step:not(:last-child)::after {
	content:'';
	position:absolute;
	left:28px;
	top:60px;
	width:2px;
	bottom:0;
	background:#d4af37;
}

/* 番号バッジ */
.tmpl_step_num {
	width:60px;
	height:60px;
	min-width:60px;
	border-radius:50%;
	background:#d4af37;
	color:#1a1a1a;
	font-family:'Bebas Neue', sans-serif;
	font-size:1.5rem;
	font-weight:400;
	display:flex;
	align-items:center;
	justify-content:center;
	letter-spacing:0.05em;
	position:relative;
	z-index:1;
}

/* テキストエリア */
.tmpl_step_body {
	flex:1;
	padding-top:10px;
}

.tmpl_step_title {
	font-size:1.375rem;
	font-weight:700;
	color:#fff;
	margin-top:0;
	margin-bottom:20px;
	line-height:1.4;
	border:none;
	padding:0;
}

/* tmpl_block h3の干渉を確実にリセット */
.sec_tmpl_block .tmpl_step_title {
	font-size:1.375rem;
	font-weight:700;
	color:#fff;
	margin-top:0;
	margin-bottom:20px;
	line-height:1.4;
	border-left:none;
	padding:0;
}

.tmpl_step_text {
	font-size:1.125rem;
	color:rgba(255,255,255,0.7);
	line-height:2;
}

/* ============================================
   ステップリスト SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_step {
		gap:24px;
		padding-bottom:48px;
	}

	.tmpl_step:not(:last-child)::after {
		left:22px;
		top:52px;
	}

	.tmpl_step_num {
		width:48px;
		height:48px;
		min-width:48px;
		font-size:5vw;
	}

	.tmpl_step_body {
		padding-top:8px;
	}

	.sec_tmpl_block .tmpl_step_title {
		font-size:5vw;
		margin-bottom:12px;
		margin-top:0;
		padding:0;
		border-left:none;
	}

	.tmpl_step_text {
		font-size:4vw;
	}
}


/* ============================================
   関連コンテンツカード
============================================ */
.tmpl_cards {
	display:flex;
	gap:30px;
	margin-top:50px;
}

/* カード：全体がリンク */
.tmpl_card {
	flex:1;
	display:flex;
	flex-direction:column;
	background:#fff;
	box-shadow:0 4px 20px rgba(0,0,0,0.08);
	text-decoration:none;
	color:inherit;
	transition:transform 0.3s, box-shadow 0.3s;
}

.tmpl_card:hover {
	transform:translateY(-6px);
	box-shadow:0 10px 30px rgba(0,0,0,0.12);
}

/* サムネイル画像 */
.tmpl_card_img {
	overflow:hidden;
}

.tmpl_card_img img {
	width:100%;
	height:auto;
	display:block;
}

/* テキストエリア */
.tmpl_card_body {
	padding:28px 30px 30px;
	flex:1;
	display:flex;
	flex-direction:column;
}

/* カテゴリバッジ */
.tmpl_card_cat {
	display:inline-block;
	background:#d4af37;
	color:#1a1a1a;
	font-size:0.8125rem;
	font-weight:700;
	padding:4px 12px;
	letter-spacing:0.05em;
	margin-bottom:10px;
	align-self:flex-start;
}

/* 日付 */
.tmpl_card_date {
	font-size:0.875rem;
	color:#888;
	margin-bottom:12px;
	line-height:1;
}

/* タイトル */
.tmpl_card_title {
	font-size:1.375rem;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.6;
	margin-bottom:16px;
	margin-top:0;
}

/* tmpl_block h4の干渉をリセット */
.sec_tmpl_block .tmpl_card_title {
	font-size:1.375rem;
	font-weight:700;
	color:#1a1a1a;
	margin-top:0;
	margin-bottom:16px;
	border:none;
	padding:0;
	letter-spacing:normal;
}

/* 本文テキスト */
.tmpl_card_text {
	font-size:1.125rem;
	color:#666;
	line-height:1.8;
	margin-bottom:0;
	flex:1;
}

/* 詳しく見る */
.tmpl_card_more {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:8px;
	margin-top:24px;
	font-size:0.9375rem;
	font-weight:700;
	color:#d4af37;
	line-height:1;
}

.tmpl_card_more::after {
	content:'';
	display:inline-block;
	width:30px;
	height:12px;
	background-image:url(../images/arrow_gold_link.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
}

/* imgタグが残存する場合の非表示 */
.tmpl_card_arrow {
	display:none;
}

/* ============================================
   関連コンテンツカード SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_cards {
		flex-direction:column;
		gap:24px;
		margin-top:30px;
	}

	.tmpl_card_body {
		padding:20px 20px 24px;
	}

	.tmpl_card_cat {
		font-size:3vw;
	}

	.tmpl_card_date {
		font-size:3.2vw;
	}

	.sec_tmpl_block .tmpl_card_title {
		font-size:4.5vw;
	}

	.tmpl_card_text {
		font-size:3.8vw;
	}

	.tmpl_card_more {
		font-size:3.8vw;
	}
}


/* ============================================
   ニュースリスト
============================================ */
.tmpl_news_list {
	list-style:none;
	margin-top:50px;
	border-top:1px solid #ddd;
}

.tmpl_news_item {
	border-bottom:1px solid #ddd;
}

/* アイテム全体リンク */
.tmpl_news_link {
	display:block;
	text-decoration:none;
	color:inherit;
	transition:background 0.3s;
	padding:50px 20px;
	margin:0 -20px;
}

.tmpl_news_link:hover {
	background:rgba(0,0,0,0.04);
}

/* 日付＋カテゴリバッジ横並び */
.tmpl_news_meta {
	display:flex;
	align-items:center;
	gap:16px;
	margin-bottom:20px;
}

/* 日付 */
.tmpl_news_date {
	font-size:0.875rem;
	color:#888;
	letter-spacing:0.05em;
	line-height:1;
}

/* カテゴリバッジ共通 */
.tmpl_news_cat {
	display:inline-block;
	font-size:0.8125rem;
	font-weight:700;
	padding:5px 14px;
	letter-spacing:0.05em;
	line-height:1.4;
	min-width:7em;
	text-align:center;
}

/* バッジ：黒背景・白文字（トライアウト） */
.tmpl_news_cat_dark {
	background:#1a1a1a;
	color:#fff;
}

/* バッジ：ゴールド背景・黒文字（お知らせ） */
.tmpl_news_cat_gold {
	background:#d4af37;
	color:#1a1a1a;
}

/* バッジ：グレー背景・黒文字（活動報告） */
.tmpl_news_cat_gray {
	background:#dfe2e6;
	color:#333;
}

/* タイトル */
.tmpl_news_title {
	font-size:1.375rem;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.6;
	margin-bottom:16px;
	margin-top:0;
}

/* tmpl_block h4の干渉をリセット */
.sec_tmpl_block .tmpl_news_title {
	font-size:1.375rem;
	font-weight:700;
	color:#1a1a1a;
	margin-top:0;
	margin-bottom:16px;
	border:none;
	padding:0;
	letter-spacing:normal;
}

/* 本文 */
.tmpl_news_text {
	font-size:1.125rem;
	color:#555;
	line-height:1.8;
	margin-bottom:0;
}

/* ============================================
   ニュースリスト SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_news_list {
		margin-top:30px;
	}

	.tmpl_news_item {
		border-bottom:1px solid #ddd;
	}

	.tmpl_news_link {
		padding:30px 16px;
		margin:0 -16px;
	}

	.tmpl_news_meta {
		gap:12px;
		margin-bottom:14px;
	}

	.tmpl_news_date {
		font-size:3vw;
	}

	.tmpl_news_cat {
		font-size:3vw;
		padding:4px 10px;
	}

	.sec_tmpl_block .tmpl_news_title {
		font-size:4.5vw;
		margin-bottom:10px;
	}

	.tmpl_news_text {
		font-size:3.8vw;
	}
}


/* ============================================
   FAQ
============================================ */
.tmpl_faq_list {
	max-width:900px;
	margin:0 auto;
	display:flex;
	flex-direction:column;
	gap:30px;
}

.tmpl_faq_item {
	background:#fff;
	box-shadow:0 2px 16px rgba(0,0,0,0.07);
	padding:40px 50px;
}

/* 質問行：バッジ＋テキスト横並び */
.tmpl_faq_q {
	display:flex;
	align-items:flex-start;
	gap:16px;
	font-size:1.25rem;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.6;
	margin-bottom:30px;
}

/* Qバッジ */
.tmpl_faq_badge {
	display:flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	min-width:30px;
	background:#d4af37;
	color:#1a1a1a;
	font-family:'Bebas Neue', sans-serif;
	font-size:1.125rem;
	font-weight:400;
	letter-spacing:0.05em;
	line-height:1;
}

/* 回答：バッジ幅分インデント */
.tmpl_faq_a {
	font-size:1.125rem;
	color:#555;
	line-height:2;
	padding-left:46px;
}

/* ============================================
   FAQ SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_faq_list {
		gap:20px;
	}

	.tmpl_faq_item {
		padding:28px 24px;
	}

	.tmpl_faq_q {
		font-size:4.5vw;
		gap:12px;
		margin-bottom:20px;
	}

	.tmpl_faq_badge {
		width:26px;
		height:26px;
		min-width:26px;
		font-size:4vw;
	}

	.tmpl_faq_a {
		font-size:4vw;
		padding-left:38px;
	}
}


/* ============================================
   お問い合わせフォーム
============================================ */
.tmpl_form {
	max-width:800px;
	margin:40px auto 0;
}

/* フォームグループ */
.tmpl_form_group {
	margin-bottom:40px;
}

/* ラベル */
.tmpl_form_label {
	display:flex;
	align-items:center;
	gap:10px;
	font-size:1.125rem;
	font-weight:700;
	color:#1a1a1a;
	margin-bottom:12px;
	line-height:1.4;
}

/* 必須・任意バッジ */
.tmpl_form_badge {
	display:inline-block;
	font-size:0.75rem;
	font-weight:700;
	padding:3px 8px;
	letter-spacing:0.05em;
	line-height:1.4;
}

.tmpl_form_badge_required {
	background:#d4af37;
	color:#1a1a1a;
}

.tmpl_form_badge_optional {
	background:#dfe2e6;
	color:#333;
}

/* テキスト入力 */
.tmpl_form_input {
	width:100%;
	height:52px;
	padding:0 16px;
	font-size:1.125rem;
	color:#333;
	border:1px solid #ccc;
	background:#fff;
	box-sizing:border-box;
	appearance:none;
	-webkit-appearance:none;
	outline:none;
	transition:border-color 0.3s;
	font-family:'Noto Sans JP', sans-serif;
}

.tmpl_form_input:focus {
	border-color:#d4af37;
}

.tmpl_form_input::placeholder {
	color:#bbb;
}

/* セレクトボックス */
.tmpl_form_select_wrap {
	position:relative;
}

.tmpl_form_select_wrap::after {
	content:'';
	position:absolute;
	top:50%;
	right:18px;
	transform:translateY(-50%);
	width:10px;
	height:6px;
	background:#555;
	clip-path:polygon(0 0, 100% 0, 50% 100%);
	pointer-events:none;
}

.tmpl_form_select {
	width:100%;
	height:52px;
	padding:0 44px 0 16px;
	font-size:1.125rem;
	color:#333;
	border:1px solid #ccc;
	background:#fff;
	box-sizing:border-box;
	appearance:none;
	-webkit-appearance:none;
	outline:none;
	cursor:pointer;
	transition:border-color 0.3s;
	font-family:'Noto Sans JP', sans-serif;
}

.tmpl_form_select:focus {
	border-color:#d4af37;
}

/* テキストエリア */
.tmpl_form_textarea {
	width:100%;
	padding:16px;
	font-size:1.125rem;
	color:#333;
	border:1px solid #ccc;
	background:#fff;
	box-sizing:border-box;
	appearance:none;
	-webkit-appearance:none;
	outline:none;
	resize:vertical;
	line-height:1.8;
	transition:border-color 0.3s;
	font-family:'Noto Sans JP', sans-serif;
}

.tmpl_form_textarea:focus {
	border-color:#d4af37;
}

.tmpl_form_textarea::placeholder {
	color:#bbb;
}

/* ラジオボタングループ */
.tmpl_form_radios {
	display:flex;
	flex-wrap:wrap;
	gap:12px 32px;
}

/* チェックボックスグループ */
.tmpl_form_checks {
	display:flex;
	flex-direction:column;
	gap:16px;
}

/* ラジオ・チェック共通ラベル */
.tmpl_form_radio,
.tmpl_form_check {
	display:flex;
	align-items:center;
	gap:10px;
	font-size:1.125rem;
	color:#333;
	cursor:pointer;
	line-height:1.4;
}

/* ネイティブのinputを隠す */
.tmpl_form_radio input[type="radio"],
.tmpl_form_check input[type="checkbox"] {
	position:absolute;
	opacity:0;
	width:0;
	height:0;
}

/* カスタムラジオボタン */
.tmpl_form_radio_mark {
	width:20px;
	height:20px;
	min-width:20px;
	border-radius:50%;
	border:2px solid #ccc;
	background:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:border-color 0.2s;
	box-sizing:border-box;
}

.tmpl_form_radio_mark::after {
	content:'';
	width:10px;
	height:10px;
	border-radius:50%;
	background:#d4af37;
	opacity:0;
	transition:opacity 0.2s;
}

.tmpl_form_radio input[type="radio"]:checked + .tmpl_form_radio_mark {
	border-color:#d4af37;
}

.tmpl_form_radio input[type="radio"]:checked + .tmpl_form_radio_mark::after {
	opacity:1;
}

/* カスタムチェックボックス */
.tmpl_form_check_mark {
	width:20px;
	height:20px;
	min-width:20px;
	border:2px solid #ccc;
	background:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:border-color 0.2s, background 0.2s;
	box-sizing:border-box;
}

.tmpl_form_check_mark::after {
	content:'';
	width:10px;
	height:6px;
	border-left:2px solid #fff;
	border-bottom:2px solid #fff;
	transform:rotate(-45deg) translateY(-1px);
	opacity:0;
	transition:opacity 0.2s;
}

.tmpl_form_check input[type="checkbox"]:checked + .tmpl_form_check_mark {
	background:#d4af37;
	border-color:#d4af37;
}

.tmpl_form_check input[type="checkbox"]:checked + .tmpl_form_check_mark::after {
	opacity:1;
}

/* 個人情報ボックス */
.tmpl_form_privacy {
	background:#f5f5f5;
	padding:24px 28px;
	margin-bottom:30px;
}

.tmpl_form_privacy_title {
	font-size:0.9375rem;
	font-weight:700;
	color:#1a1a1a;
	margin-bottom:10px;
}

.tmpl_form_privacy_text {
	font-size:0.875rem;
	color:#555;
	line-height:1.9;
}

/* 同意チェック */
.tmpl_form_agree {
	margin-bottom:50px;
}

/* 送信ボタン */
.tmpl_form_submit {
	text-align:center;
}

.tmpl_form_btn {
	display:inline-flex;
	align-items:center;
	gap:0;
	padding:0 60px;
	height:68px;
	background:#d4af37;
	color:#1a1a1a;
	font-size:1.125rem;
	font-weight:700;
	font-family:'Noto Sans JP', sans-serif;
	border:none;
	cursor:pointer;
	letter-spacing:0.05em;
	transition:background 0.3s;
}

.tmpl_form_btn:hover {
	background:#e5c158;
}

.tmpl_form_btn::after {
	content:'';
	display:inline-block;
	width:30px;
	height:12px;
	margin-left:14px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
}

/* imgタグが残存する場合の非表示 */
.tmpl_form_btn_arrow {
	display:none;
}

/* ============================================
   お問い合わせフォーム SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_form_group {
		margin-bottom:30px;
	}

	.tmpl_form_label {
		font-size:4.5vw;
		margin-bottom:10px;
	}

	.tmpl_form_badge {
		font-size:2.8vw;
	}

	.tmpl_form_input,
	.tmpl_form_select {
		height:48px;
		font-size:4vw;
	}

	.tmpl_form_textarea {
		font-size:4vw;
	}

	.tmpl_form_radios {
		flex-direction:column;
		gap:14px;
	}

	.tmpl_form_radio,
	.tmpl_form_check {
		font-size:4vw;
	}

	.tmpl_form_privacy {
		padding:20px;
	}

	.tmpl_form_privacy_title {
		font-size:4vw;
	}

	.tmpl_form_privacy_text {
		font-size:3.5vw;
	}

	.tmpl_form_agree {
		margin-bottom:40px;
	}

	.tmpl_form_btn {
		justify-content:center;
		font-size:4.5vw;
		height:14vw;
		padding:0 6vw;
	}
}


/* ============================================
   セカンドCTA
============================================ */
.tmpl_cta_sub {
	background-color:#f5f5f5;
	background-image:url(../images/cta_sub_bg.png);
	background-repeat:no-repeat;
	background-position:top center;
	background-size:100% auto;
	padding:240px 20px 120px;
	text-align:center;
}

.tmpl_cta_sub_inner {
	max-width:900px;
	margin:0 auto;
}

.tmpl_cta_sub_title {
	font-size:1.875rem;
	font-weight:900;
	color:#1a1a1a;
	line-height:1.5;
	margin-bottom:24px;
	letter-spacing:0.05em;
}

.tmpl_cta_sub_text {
	font-size:1.125rem;
	color:#555;
	line-height:1.8;
	margin-bottom:50px;
}

.tmpl_cta_sub_btns {
	display:flex;
	justify-content:center;
	gap:30px;
	flex-wrap:wrap;
}

/* ボタン共通 */
.tmpl_cta_sub_btn {
	display:inline-flex;
	align-items:center;
	gap:0;
	padding:0 48px;
	height:68px;
	font-size:1.125rem;
	font-weight:700;
	letter-spacing:0.05em;
	text-decoration:none;
	transition:background 0.3s, color 0.3s;
	white-space:nowrap;
}

/* 矢印：::after で background-image として表示 */
.tmpl_cta_sub_btn::after {
	content:'';
	display:inline-block;
	width:30px;
	height:12px;
	margin-left:14px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
	transition:background-image 0.3s;
}

/* ゴールド塗りボタン */
.tmpl_cta_sub_btn_primary {
	background:#d4af37;
	color:#1a1a1a;
	border:1px solid transparent;
}

.tmpl_cta_sub_btn_primary:hover {
	background:#e5c158;
	color:#1a1a1a;
}

/* 枠線ボタン */
.tmpl_cta_sub_btn_secondary {
	background:transparent;
	color:#1a1a1a;
	border:1px solid #1a1a1a;
}

.tmpl_cta_sub_btn_secondary:hover {
	background:#1a1a1a;
	color:#fff;
}

/* secondary hover時は白矢印に切り替え */
.tmpl_cta_sub_btn_secondary:hover::after {
	background-image:url(../images/arrow_white.png);
}

/* imgタグが残存する場合の非表示 */
.tmpl_cta_sub_arrow {
	display:none;
}

/* ============================================
   セカンドCTA SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_cta_sub {
		padding:100px 20px 80px;
		background-size:100% auto;
	}

	.tmpl_cta_sub_title {
		font-size:5.5vw;
		margin-bottom:16px;
	}

	.tmpl_cta_sub_text {
		font-size:4vw;
		margin-bottom:36px;
	}

	.tmpl_cta_sub_btns {
		flex-direction:column;
		align-items:center;
		gap:16px;
	}

	.tmpl_cta_sub_btn {
		width:100%;
		max-width:300px;
		justify-content:center;
		font-size:4.5vw;
		height:14vw;
		padding:0;
	}
}

/* ============================================
   注釈テキスト
============================================ */
.tmpl_note_list {
	list-style:none;
	margin-bottom:40px;
}

.tmpl_note {
	font-size:0.9375rem;
	color:#888;
	line-height:1.8;
	padding-left:1.2em;
	text-indent:-1.2em;
}

/* ============================================
   注釈テキスト SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_note {
		font-size:3.2vw;
	}
}

/* ============================================
   アラートボックス
============================================ */
.tmpl_alert {
	padding:20px 24px 20px 30px;
	margin-bottom:20px;
	position:relative;
	line-height:1.8;
}

.tmpl_alert:last-of-type {
	margin-bottom:40px;
}

/* アイコン（::before で左に縦ライン） */
.tmpl_alert::before {
	content:'';
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:6px;
}

/* お知らせ：ゴールド */
.tmpl_alert_info {
	background:#fdf8e8;
	border:1px solid #d4af37;
}

.tmpl_alert_info::before {
	background:#d4af37;
}

.tmpl_alert_info p {
	font-size:1.125rem;
	color:#333;
}

/* 注意：オレンジ系 */
.tmpl_alert_warning {
	background:#fff8f0;
	border:1px solid #e8974a;
}

.tmpl_alert_warning::before {
	background:#e8974a;
}

.tmpl_alert_warning p {
	font-size:1.125rem;
	color:#333;
}

/* 重要：赤系 */
.tmpl_alert_important {
	background:#fff5f5;
	border:1px solid #c0392b;
}

.tmpl_alert_important::before {
	background:#c0392b;
}

.tmpl_alert_important p {
	font-size:1.125rem;
	color:#333;
}

/* ============================================
   アラートボックス SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_alert {
		padding:16px 16px 16px 30px;
	}

	.tmpl_alert p {
		font-size:4vw !important;
	}
}

/* ============================================
   ページ内アンカーリンク
============================================ */
.tmpl_anchor_nav {
	margin-bottom:60px;
	border:1px solid #ddd;
	padding:30px 40px;
	background:#f9f9f9;
}

.tmpl_anchor_list {
	list-style:none;
	display:flex;
	flex-wrap:wrap;
	gap:0;
	counter-reset:anchor_counter;
}

.tmpl_anchor_item {
	width:calc(50% - 20px);
	counter-increment:anchor_counter;
}

/* 左カラム（奇数番目）に右マージン */
.tmpl_anchor_item:nth-child(odd) {
	margin-right:40px;
}

.tmpl_anchor_link {
	display:flex;
	align-items:center;
	gap:12px;
	padding:14px 10px;
	font-size:1.125rem;
	color:#1a1a1a;
	text-decoration:none;
	transition:color 0.3s;
	border-bottom:1px solid #eee;
}

.tmpl_anchor_item:nth-last-child(-n+2) .tmpl_anchor_link {
	border-bottom:none;
}

.tmpl_anchor_link::before {
	content:counter(anchor_counter, decimal-leading-zero);
	font-family:'Bebas Neue', sans-serif;
	font-size:1.125rem;
	color:#d4af37;
	letter-spacing:0.05em;
	flex-shrink:0;
}

.tmpl_anchor_link::after {
	content:'';
	display:inline-block;
	width:12px;
	height:20px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
	margin-left:auto;
	transform:rotate(90deg);
}

.tmpl_anchor_link:hover {
	color:#d4af37;
}

/* ============================================
   ページ内アンカーリンク SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_anchor_nav {
		padding:20px;
		margin-bottom:40px;
	}

	.tmpl_anchor_item {
		width:100%;
		margin-right:0;
	}

	.tmpl_anchor_item:nth-child(odd) {
		margin-right:0;
	}

	.tmpl_anchor_item:nth-last-child(-n+2) .tmpl_anchor_link {
		border-bottom:1px solid #eee;
	}

	.tmpl_anchor_item:last-child .tmpl_anchor_link {
		border-bottom:none;
	}

	.tmpl_anchor_link {
		font-size:4vw;
		padding:12px 6px;
	}

	.tmpl_anchor_link::after {
		margin-left:auto;
		flex-shrink:0;
	}
}

/* ============================================
   カラム用ボックス（2カラム）
   使い方：tmpl_col の直下の div に
   tmpl_box_white / tmpl_box_gray / tmpl_box_dark を追加
============================================ */

/* ラッパー */
.tmpl_col {
	display:flex;
	gap:50px;
	margin-bottom:60px;
}

/* アイテム：均等分割 */
.tmpl_col > * {
	flex:1;
	min-width:0;
}

/* カラム内のh3・h4上マージンをリセット */
.tmpl_col h3:first-child,
.tmpl_col h4:first-child {
	margin-top:0;
}

/* ============================================
   カラム用ボックス SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_col {
		flex-direction:column;
		gap:24px;
		margin-bottom:40px;
	}

	.tmpl_col > * {
		flex:none;
		width:100%;
		box-sizing:border-box;
	}
}

/* ============================================
   ボックスデザイン
   使い方：tmpl_col > div に追加
   tmpl_box_white / tmpl_box_gray / tmpl_box_dark
============================================ */

/* 白背景セクション用：薄グレー背景＋グレー枠線 */
.tmpl_box_white {
	background:#f9f9f9;
	border:1px solid #ddd;
	padding:40px 36px;
	box-sizing:border-box;
}

/* グレー背景セクション用：白背景＋グレー枠線 */
.tmpl_box_gray {
	background:#fff;
	border:1px solid #ddd;
	padding:40px 36px;
	box-sizing:border-box;
}

/* 黒背景セクション用：半透明白背景＋半透明白枠線 */
.tmpl_box_dark {
	background:rgba(255,255,255,0.08);
	border:1px solid rgba(255,255,255,0.2);
	padding:40px 36px;
	box-sizing:border-box;
}

/* ============================================
   ボックスデザイン SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_box_white,
	.tmpl_box_gray,
	.tmpl_box_dark {
		padding:28px 24px;
	}
}

/* ============================================
   黒背景セクション（tmpl_block--dark）内の文字色
============================================ */
.sec_tmpl_dark {
	color:#fff;
}

.sec_tmpl_dark .tmpl_h2 {
	color:#fff;
}

.sec_tmpl_dark h3 {
	color:#fff;
	border-left-color:#d4af37;
}

.sec_tmpl_dark h4 {
	color:#fff;
}

.sec_tmpl_dark .tmpl_text {
	color:#fff;
}

.sec_tmpl_dark .tmpl_label {
	color:#d4af37;
}

.sec_tmpl_dark .tmpl_lead {
	color:rgba(255,255,255,0.6);
}
.sec_tmpl_dark .tmpl_list_ul li,
.sec_tmpl_dark .tmpl_list_ol li {
	color:#fff;
}

.sec_tmpl_dark .tmpl_dl dt {
	color:#fff;
	border-left-color:#d4af37;
}

.sec_tmpl_dark .tmpl_dl dd {
	color:#fff;
}

.sec_tmpl_dark .tmpl_note {
	color:rgba(255,255,255,0.6);
}

/* 黒背景：セカンダリボタンを白ボーダー・白文字に上書き */
.sec_tmpl_dark .tmpl_btn_secondary {
	color:#fff;
	border-color:#fff;
}

.sec_tmpl_dark .tmpl_btn_secondary::after {
	background-image:url(../images/arrow_white.png);
}

.sec_tmpl_dark .tmpl_btn_secondary:hover {
	background:rgba(255,255,255,0.15);
	color:#fff;
}

.sec_tmpl_dark .tmpl_box_dark h4 {
	color:#fff;
}

/* ============================================
   中央揃えテキストブロック
============================================ */
.tmpl_center_block {
	text-align:center;
	max-width:800px;
	margin:0 auto 60px;
	padding:60px 40px;
	border-top:1px solid #ddd;
	border-bottom:1px solid #ddd;
}

.tmpl_center_catch {
	font-size:1.625rem;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.7;
	margin-bottom:24px;
	letter-spacing:0.05em;
}

.tmpl_center_text {
	font-size:1.125rem;
	color:#555;
	line-height:2;
}

/* ============================================
   中央揃えテキストブロック SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_center_block {
		padding:40px 20px;
		margin-bottom:40px;
	}

	.tmpl_center_catch {
		font-size:5vw;
		margin-bottom:16px;
	}

	.tmpl_center_text {
		font-size:4vw;
	}
}

/* ============================================
   ページネーション（前の記事・次の記事）
============================================ */
.tmpl_pagination {
	border-top:1px solid #ddd;
	border-bottom:1px solid #ddd;
	margin-bottom:0;
}

.tmpl_pagination_inner {
	max-width:1200px;
	margin:0 auto;
	padding:0 20px;
	display:flex;
}

.tmpl_pagination_prev,
.tmpl_pagination_next {
	display:flex;
	flex-direction:column;
	justify-content:center;
	flex:1;
	padding:40px 20px;
	text-decoration:none;
	color:inherit;
	transition:background 0.3s;
	position:relative;
	gap:10px;
}

.tmpl_pagination_prev {
	border-right:1px solid #ddd;
	padding-left:60px;
}

.tmpl_pagination_prev::before {
	content:'';
	position:absolute;
	left:20px;
	top:50%;
	transform:translateY(-50%);
	width:30px;
	height:12px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	transform:translateY(-50%) scaleX(-1);
}

.tmpl_pagination_next {
	padding-right:60px;
	align-items:flex-end;
	text-align:right;
}

.tmpl_pagination_next::after {
	content:'';
	position:absolute;
	right:20px;
	top:50%;
	transform:translateY(-50%);
	width:30px;
	height:12px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
}

.tmpl_pagination_prev:hover,
.tmpl_pagination_next:hover {
	background:#f9f9f9;
}

.tmpl_pagination_label {
	font-family:'Bebas Neue', sans-serif;
	font-size:1rem;
	letter-spacing:0.25em;
	color:#d4af37;
	line-height:1;
}

.tmpl_pagination_title {
	font-size:1.125rem;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.6;
}

/* ============================================
   ページネーション SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_pagination_inner {
		flex-direction:column;
		padding:0;
	}

	.tmpl_pagination_prev {
		border-right:none;
		border-bottom:1px solid #ddd;
		padding:24px 50px 24px 50px;
	}

	.tmpl_pagination_prev::before {
		left:16px;
		width:22px;
	}

	.tmpl_pagination_next {
		padding:24px 50px 24px 50px;
		align-items:flex-start;
		text-align:left;
	}

	.tmpl_pagination_next::after {
		right:16px;
		width:22px;
	}

	.tmpl_pagination_label {
		font-size:3.5vw;
	}

	.tmpl_pagination_title {
		font-size:4vw;
	}
}

/* ============================================
   コンポーネント内 h3 リセット
   .sec_tmpl_block h3 の汎用スタイルが
   カード等の内部h3に干渉するのを防止
============================================ */
.sec_tmpl_block .tmpl_work_card_title {
	color:#fff;
	border-left:none;
	padding:0;
	margin-top:0;
	margin-bottom:20px;
	font-size:1.375rem;
	display:flex;
	align-items:center;
	gap:14px;
}

.sec_tmpl_block .tmpl_recruit_card_title {
	border-left:none;
	padding:0;
	margin-top:0;
	margin-bottom:20px;
	font-size:1.5rem;
	font-weight:900;
}

.sec_tmpl_block .tmpl_interview_name,
.sec_tmpl_block .tmpl_career_step_title,
.sec_tmpl_block .tmpl_news_title {
	border-left:none;
	padding:0;
	margin-top:0;
}

/* ============================================
   Contact Form 7 統合スタイル
============================================ */

/* CF7が生成するinputにテンプレートスタイルを適用 */
.wpcf7 input.tmpl_form_input {
	width:100%;
	height:52px;
	padding:0 16px;
	font-size:1.125rem;
	color:#333;
	border:1px solid #ccc;
	background:#fff;
	box-sizing:border-box;
	appearance:none;
	-webkit-appearance:none;
	outline:none;
	transition:border-color 0.3s;
	font-family:'Noto Sans JP', sans-serif;
	border-radius:0;
}
.wpcf7 input.tmpl_form_input:focus {
	border-color:#d4af37;
}

.wpcf7 select.tmpl_form_select {
	width:100%;
	height:52px;
	padding:0 44px 0 16px;
	font-size:1.125rem;
	color:#333;
	border:1px solid #ccc;
	background:#fff;
	box-sizing:border-box;
	appearance:none;
	-webkit-appearance:none;
	outline:none;
	cursor:pointer;
	transition:border-color 0.3s;
	font-family:'Noto Sans JP', sans-serif;
	border-radius:0;
}
.wpcf7 select.tmpl_form_select:focus {
	border-color:#d4af37;
}

.wpcf7 textarea.tmpl_form_textarea {
	width:100%;
	min-height:200px;
	padding:16px;
	font-size:1.125rem;
	color:#333;
	border:1px solid #ccc;
	background:#fff;
	box-sizing:border-box;
	appearance:none;
	-webkit-appearance:none;
	outline:none;
	resize:vertical;
	transition:border-color 0.3s;
	font-family:'Noto Sans JP', sans-serif;
	line-height:1.8;
	border-radius:0;
}
.wpcf7 textarea.tmpl_form_textarea:focus {
	border-color:#d4af37;
}

/* CF7チェックボックス */
.wpcf7 .tmpl_form_checks .wpcf7-list-item {
	display:flex;
	align-items:center;
	gap:10px;
	margin:0;
	padding:8px 0;
}
.wpcf7 .tmpl_form_checks .wpcf7-list-item input[type="checkbox"] {
	width:20px;
	height:20px;
	accent-color:#d4af37;
	cursor:pointer;
}
.wpcf7 .tmpl_form_checks .wpcf7-list-item-label {
	font-size:1rem;
	color:#333;
	cursor:pointer;
}

/* CF7同意チェックボックス */
.wpcf7 .tmpl_form_agree .wpcf7-acceptance {
	display:flex;
	align-items:center;
	gap:10px;
}
.wpcf7 .tmpl_form_agree .wpcf7-list-item {
	margin:0;
}
.wpcf7 .tmpl_form_agree input[type="checkbox"] {
	width:20px;
	height:20px;
	accent-color:#d4af37;
	cursor:pointer;
}

/* CF7送信ボタン */
.wpcf7 input.tmpl_form_btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:0 60px;
	height:70px;
	background:#d4af37;
	color:#1a1a1a;
	font-size:1.125rem;
	font-weight:700;
	border:none;
	letter-spacing:0.05em;
	transition:background 0.3s;
	cursor:pointer;
	width:100%;
	max-width:400px;
	font-family:'Noto Sans JP', sans-serif;
	border-radius:0;
}
.wpcf7 input.tmpl_form_btn:hover {
	background:#e5c158;
}

/* バリデーションエラー */
.wpcf7-not-valid {
	border-color:#c0392b !important;
}
.wpcf7-not-valid-tip {
	color:#c0392b;
	font-size:0.875rem;
	margin-top:8px;
	display:block;
}

/* 送信結果メッセージ */
.wpcf7-response-output {
	margin:30px 0 0 !important;
	padding:20px 24px !important;
	border:none !important;
	font-size:1rem;
	line-height:1.8;
	text-align:center;
}
.wpcf7 form.sent .wpcf7-response-output {
	background:#d4af37;
	color:#1a1a1a;
	font-weight:700;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	background:#c0392b;
	color:#fff;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	background:#f0f0f0;
	color:#c0392b;
	font-weight:700;
}

/* 送信中スピナー */
.wpcf7-spinner {
	display:block;
	margin:20px auto 0;
}

/* reCAPTCHAバッジ非表示 */
.grecaptcha-badge {
	visibility:hidden !important;
}

/* CF7 レスポンシブ */
@media screen and (max-width:768px) {
	.wpcf7 input.tmpl_form_btn {
		max-width:100%;
		height:14vw;
		font-size:4vw;
		padding:0 5vw;
	}
}


/* ============================================
   wp:button でテンプレートボタンスタイルを再現
   （サンクスページ等、Gutenbergネイティブボタン用）
============================================ */
.wp-block-button.tmpl_btn_primary .wp-block-button__link {
	background:#d4af37;
	color:#1a1a1a;
	font-size:1.125rem;
	font-weight:700;
	padding:0 40px;
	height:70px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:none;
	border-radius:0;
	letter-spacing:0.05em;
	transition:background 0.3s;
	text-decoration:none;
	font-family:'Noto Sans JP', sans-serif;
}
.wp-block-button.tmpl_btn_primary .wp-block-button__link:hover {
	background:#e5c158;
	color:#1a1a1a;
}

.wp-block-button.tmpl_btn_secondary .wp-block-button__link {
	background:transparent;
	color:#1a1a1a;
	font-size:1.125rem;
	font-weight:700;
	padding:0 40px;
	height:70px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:1px solid #1a1a1a;
	border-radius:0;
	letter-spacing:0.05em;
	transition:background 0.3s, color 0.3s;
	text-decoration:none;
	font-family:'Noto Sans JP', sans-serif;
}
.wp-block-button.tmpl_btn_secondary .wp-block-button__link:hover {
	background:#1a1a1a;
	color:#fff;
}

@media screen and (max-width:768px) {
	.wp-block-button.tmpl_btn_primary .wp-block-button__link,
	.wp-block-button.tmpl_btn_secondary .wp-block-button__link {
		height:14vw;
		font-size:4vw;
		padding:0 6vw;
		width:100%;
		max-width:280px;
	}
}
