/* PARTS.CSS - 下層テンプレートパーツ */

/* WordPress ブロックレイアウトのリセット（下層ページ用）
   ※ l-main 直下のセクションのみ対象 */
.l-main > .wp-block-group {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	margin-left: 0;
	margin-right: 0;
}
.l-main > .wp-block-group.is-layout-constrained,
.l-main > .wp-block-group.is-layout-flow {
	max-width: none;
}

/* ============================================
   ページタイトルセクション
============================================ */
.sec_page_title {
	margin-top:90px;
	height:564px;
	background:#fff8de url(../images/page_title_bg.png) no-repeat center bottom;
	background-size:auto auto;
	text-align:center;
	display:flex;
	align-items:flex-start;
	justify-content:center;
}
.sec_page_title .tmpl_inner {
	max-width:1400px;
	width:100%;
	padding-top:120px;
}
.page_title {
	font-size:44px;
	font-weight:700;
	color:#333;
	margin-bottom:20px;
	font-family:'Zen Maru Gothic', sans-serif;
}
.page_subtitle {
	font-size:18px;
	color:#666;
}

@media screen and (max-width:768px) {
	.sec_page_title {
		margin-top:60px;
		height:auto;
		background-size:160% auto;
	}
	.sec_page_title .tmpl_inner {
		padding-top:75px;
		padding-bottom:100px;
	}
	.page_title {
		font-size:7vw;
		margin-bottom:15px;
	}
	.page_subtitle {
		font-size:3.5vw;
	}
}


/* ============================================
   テンプレート共通セクション
============================================ */
.sec_tmpl_block {
	padding:80px 0 100px;
	font-size:18px;
}
.sec_tmpl_block .tmpl_inner {
	margin:0 auto;
	max-width:1040px;
}
.sec_tmpl_block .tmpl_inner1300 {
	margin:0 auto;
	max-width:1300px;
}
.sec_tmpl_block .tmpl_inner100per {
	margin:0 auto;
	max-width:100%;
}

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

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

/* 黄色背景の角丸セクション（TABLE等、繰り返し使用） */
.sec_tmpl_bg {
	margin:0 auto;
	padding:80px 0;
	max-width:1400px;
	background:#fff8de;
	border-radius:40px;
}
.sec_tmpl_bg .tmpl_inner {
	margin:0 auto;
	width:90%;
	max-width:1040px;
}

/* sec_page_title直下のsec_tmpl_blockのみ上に引き上げ */
.sec_page_title + .sec_tmpl_block {
	margin-top:-120px;
	position:relative;
	z-index:1;
}

@media screen and (max-width:768px) {
	.sec_page_title + .sec_tmpl_block {
		margin-top:-50px;
	}
}

/* セクションヘッダー（ラベル＋タイトル＋説明） */
.sec_tmpl_header {
	text-align:center;
	margin-bottom:60px;
}
.sec_tmpl_label {
	font-family:'Noto Serif JP', serif;
	font-weight:600;
	color:#e6929e;
	letter-spacing:0.1em;
	margin-bottom:8px;
}
.sec_tmpl_title {
	font-size:36px;
	font-weight:700;
	color:#333;
	margin-bottom:20px;
	font-family:'Zen Maru Gothic', sans-serif;
}
.sec_tmpl_desc {
	color:#666;
}

@media screen and (max-width:768px) {
	.sec_tmpl_block {
		padding:60px 0 70px;
		font-size:3.8vw;
	}
	.sec_tmpl_bg {
		margin:0 auto;
		border-radius:20px;
		padding:50px 0;
		max-width:90%;
	}
	.sec_tmpl_bg .tmpl_inner {
		max-width:90%;
	}
	.sec_tmpl_header {
		margin-bottom:40px;
	}
	.sec_tmpl_label {
		font-size:3.5vw;
	}
	.sec_tmpl_title {
		font-size:6vw;
		margin-bottom:15px;
	}
	.sec_tmpl_desc {
		font-size:3.5vw;
	}
}


/* ============================================
   見出し・テキストスタイル
============================================ */
/* H3 */
.sec_tmpl_block h3 {
	font-size:26px;
	font-weight:700;
	color:#ffc508;
	margin-top:50px;
	margin-bottom:20px;
}
/* セクション先頭のh3はマージン不要 */
.sec_tmpl_header + h3,
.sec_tmpl_block .tmpl_inner > h3:first-child {
	margin-top:0;
}

/* H4 */
.sec_tmpl_block h4 {
	font-size:20px;
	font-weight:700;
	color:#333;
	margin-bottom:15px;
	margin-top:50px;
}

/* 本文テキスト */
.tmpl_text {
	margin-bottom:25px;
}

/* 強調テキスト */
.sec_tmpl_block strong {
	color:#e6929e;
	font-weight:700;
}

/* シンプルリスト */
.sec_tmpl_block ul {
	padding-left:1.5em;
	margin:0;
}
.sec_tmpl_block ul li {
	list-style:disc;
	padding:6px 0;
}

/* テキストリンク */
.sec_tmpl_block a {
	text-decoration:underline;
}


/* 外部リンク（別タブ） */
.sec_tmpl_block a[target="_blank"]:after {
	content:'';
	display:inline-block;
	width:1.1em;
	height:1.1em;
	margin-left:10px;
	margin-bottom:5px;
	background:url(../images/icon_blank.png) no-repeat center / contain;
	vertical-align:middle;
}

/* ◎マーク付きリスト */
.sec_tmpl_block ul.tmpl_list_maru {
	padding:0;
	margin:0;
}
.sec_tmpl_block ul.tmpl_list_maru li {
	list-style:none;
	color:#333;
	padding:18px 0 18px 36px;
	border-bottom:1px solid #e8d5c0;
	position:relative;
}
.sec_tmpl_block ul.tmpl_list_maru li:before {
	content:'◎';
	position:absolute;
	left:0;
	top:18px;
	color:#e6929e;
}

@media screen and (max-width:768px) {
	.sec_tmpl_block h3 {
		font-size:5vw;
	}
	.sec_tmpl_block h4 {
		font-size:4.4vw;
		margin-top:35px;
	}
	.sec_tmpl_block ul.tmpl_list_maru li {
		padding:15px 0 15px 30px;
	}
	.sec_tmpl_block ul.tmpl_list_maru li:before {
		top:15px;
	}
}


/* ============================================
   テーブルスタイル
============================================ */
.tmpl_table_wrap {
	background:#fff;
	border-radius:20px;
	padding:0;
	border:1px solid #ffd630;
	overflow:hidden;
}
.tmpl_table_wrap table {
	width:100%;
	border-collapse:collapse;
	border-top:2px solid #f0e5b9;
	border-left:2px solid #f0e5b9;
}
.tmpl_table_wrap tr {
	border-right:2px solid #f0e5b9;
	border-bottom:2px solid #f0e5b9;
}

.tmpl_table_wrap th {
	width:180px;
	padding:25px;
	font-weight:600;
	color:#333;
	text-align:left;
	vertical-align:top;
	background:#fff8de;
	white-space:nowrap;
	border:none;
}
.tmpl_table_wrap td {
	padding:25px;
	color:#333;
	vertical-align:top;
	border:none;
}

@media screen and (max-width:768px) {
	.tmpl_table_wrap {
		padding:0;
		border-radius:15px;
	}
	.tmpl_table_title {
		font-size:4vw;
		margin-bottom:20px;
	}
	.tmpl_table_wrap table,
	.tmpl_table_wrap tbody,
	.tmpl_table_wrap tr,
	.tmpl_table_wrap th,
	.tmpl_table_wrap td {
		display:block;
		width:auto;
		max-width:100%;
	}
	.tmpl_table_wrap th,
	.tmpl_table_wrap td {
		padding:15px;
	}
	.tmpl_table_wrap th {
		white-space:normal;
	}
}


/* ============================================
   ボタンスタイル
============================================ */
.tmpl_btn_wrap {
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:20px;
}

/* プライマリボタン */
.tmpl_btn_primary {
	display:inline-block;
	padding:16px 50px 16px 35px;
	background:#e6929e;
	color:#fff;
	font-weight:600;
	text-decoration:none !important ;
	border-radius:50px;
	position:relative;
	transition:background 0.3s, transform 0.2s, box-shadow 0.3s;
}
.tmpl_btn_primary:after {
	content:'▶';
	position:absolute;
	right:22px;
	top:50%;
	transform:translateY(-50%);
	font-size:12px;
	color:#fff;
}
.tmpl_btn_primary:hover {
	background:#d67a86;
	color:#fff;
	transform:translateY(-3px);
	box-shadow:0 6px 20px rgba(230,146,158,0.3);
}

/* セカンダリボタン */
.tmpl_btn_secondary {
	display:inline-block;
	padding:14px 50px 14px 35px;
	background:#fff;
	color:#e6929e;
	font-weight:600;
	text-decoration:none !important ;
	border-radius:50px;
	border:2px solid #e6929e;
	position:relative;
	transition:background 0.3s, transform 0.2s, box-shadow 0.3s;
}
.tmpl_btn_secondary:after {
	content:'▶';
	position:absolute;
	right:22px;
	top:50%;
	transform:translateY(-50%);
	font-size:12px;
	color:#e6929e;
}
.tmpl_btn_secondary:hover {
	background:#fdf3f5;
	color:#e6929e;
	transform:translateY(-3px);
	box-shadow:0 6px 20px rgba(230,146,158,0.15);
}

@media screen and (max-width:768px) {
	.tmpl_btn_wrap {
		gap:15px;
	}
	.tmpl_btn_primary,
	.tmpl_btn_secondary {
		font-size:4vw;
		padding:14px 45px 14px 25px;
	}
}

/* ============================================
   テキスト＋画像レイアウト
============================================ */
.tmpl_media {
	display:flex;
	align-items:center;
	gap:60px;
	margin-bottom:60px;
}
.tmpl_media:last-child {
	margin-bottom:0;
}
.tmpl_media_reverse {
	flex-direction:row-reverse;
}
.tmpl_media_img {
	flex:1;
}
.tmpl_media_img img {
	width:100%;
	height:auto;
	border-radius:15px;
}
.tmpl_media_body {
	flex:2;
}

@media screen and (max-width:768px) {
	.tmpl_media {
		flex-direction:column;
		gap:30px;
		margin-bottom:50px;
	}
	.tmpl_media_reverse {
		flex-direction:column;
	}
}


/* ============================================
   カード（4列・アイコン付き）
============================================ */
.tmpl_card4_wrap {
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:40px;
	margin:0 5%;
	position:relative;
}
.tmpl_card4_wrap.is-layout-flow,
.tmpl_card4_wrap.is-layout-constrained {
	display:flex !important;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:40px;
}
.tmpl_card4_item {
	width:calc(25% - 30px);
	text-align:center;
	position:relative;
}
.tmpl_card4_item.is-layout-flow,
.tmpl_card4_item.is-layout-constrained {
	width:calc(25% - 30px);
	text-align:center;
}
/* 点線の縦区切り */
.tmpl_card4_item:not(:last-child):after {
	content:'';
	position:absolute;
	right:-20px;
	top:50%;
	transform:translateY(-50%);
	width:2px;
	height:80%;
	background-image:linear-gradient(to bottom, #ffc508 50%, transparent 50%);
	background-size:2px 10px;
	background-repeat:repeat-y;
}
.tmpl_card4_icon {
	margin:0 auto 5px;
	max-width:200px;
}
.tmpl_card4_icon img {
	width:180px !important;
	height:auto !important;
	max-width:none !important;
}
.tmpl_card4_wrap h3 {
	color:#333;
}
.tmpl_card4_text {
	padding:0 7%;
	text-align:left;
}

@media screen and (max-width:768px) {
	.tmpl_card4_wrap {
		gap:40px 20px;
		margin:0 auto;
	}
	.tmpl_card4_item {
		width:calc(50% - 10px);
	}
	.tmpl_card4_item:not(:last-child):after {
		display:none;
	}
	.tmpl_card4_text {
		font-size:3.5vw;
		text-align:center;
		padding:0 7%;
	}
}


/* ============================================
   カード（2列・横型）
============================================ */
.tmpl_card2h_wrap {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:40px 60px;
}
.tmpl_card2h_wrap.is-layout-flow,
.tmpl_card2h_wrap.is-layout-constrained {
	display:grid !important;
	grid-template-columns:1fr 1fr;
	gap:40px 60px;
}
.tmpl_card2h_item {
	display:flex;
	gap:30px;
	align-items:flex-start;
	padding:0 30px;
	position:relative;
}
.tmpl_card2h_item.is-layout-flow,
.tmpl_card2h_item.is-layout-constrained {
	display:flex !important;
	flex-direction:row !important;
	gap:30px;
	align-items:flex-start;
	padding:0 30px;
}
/* 左列に縦の点線 */
.tmpl_card2h_item:nth-child(odd):after {
	content:'';
	position:absolute;
	right:-30px;
	top:10%;
	height:80%;
	width:2px;
	background-image:linear-gradient(to bottom, #ffc508 50%, transparent 50%);
	background-size:2px 10px;
	background-repeat:repeat-y;
}
.tmpl_card2h_body {
	flex:1;
}
.tmpl_card2h_body.is-layout-flow,
.tmpl_card2h_body.is-layout-constrained {
	flex:1;
}
.tmpl_card2h_icon {
	max-width:25%;
	flex-shrink:0;
}
.tmpl_card2h_icon img {
	width:120px !important;
	height:auto !important;
	max-width:none !important;
}
.tmpl_card2h_item h3 {
	color:#333;
}

@media screen and (max-width:768px) {
	.tmpl_card2h_wrap,
	.tmpl_card2h_wrap.is-layout-flow,
	.tmpl_card2h_wrap.is-layout-constrained,
	.tmpl_card2h_wrap.is-layout-flex {
		grid-template-columns:1fr !important;
		gap:30px;
	}
	.tmpl_card2h_item,
	.tmpl_card2h_item.is-layout-flow,
	.tmpl_card2h_item.is-layout-constrained,
	.tmpl_card2h_item.is-layout-flex {
		padding:0;
		display:flex !important;
		flex-direction:column !important;
		align-items:center !important;
		text-align:center;
		gap:10px;
		max-width:85%;
		margin:0 auto;
	}
	.tmpl_card2h_item:nth-child(odd):after {
		display:none;
	}
	.tmpl_card2h_body,
	.tmpl_card2h_body.wp-block-group,
	.tmpl_card2h_body.is-layout-flow,
	.tmpl_card2h_body.is-layout-flex {
		display:block !important;
		text-align:center;
		width:100%;
	}
	.tmpl_card2h_icon,
	.tmpl_card2h_icon.wp-block-group,
	.tmpl_card2h_icon.is-layout-flow,
	.tmpl_card2h_icon.is-layout-flex {
		max-width:none !important;
		width:auto !important;
		flex-shrink:0;
		margin:0 auto 5px;
	}
	.tmpl_card2h_icon img,
	.tmpl_card2h_icon figure,
	.tmpl_card2h_icon .wp-block-image,
	.tmpl_card2h_icon .wp-block-image img {
		width:240px !important;
		height:auto !important;
		max-width:none !important;
		margin:0 auto;
	}
}


/* ============================================
   ご利用の流れ（フロー）
============================================ */
.tmpl_flow_item {
	padding:30px 0 40px;
	border-bottom:2px solid #f0e6c3;
}
.tmpl_flow_item:last-child {
	border-bottom:0;
}
.tmpl_flow_header {
	display:flex;
	align-items:center;
	gap:20px;
	margin-bottom:10px;
}
.tmpl_flow_num {
	display:flex;
	align-items:center;
	justify-content:center;
	width:50px;
	height:50px;
	flex-shrink:0;
	background:#ffc508;
	border-radius:50%;
	font-size:22px;
	font-weight:700;
	color:#fff;
	line-height:1;
}
.tmpl_flow_item h3 {
	padding-top:15px;
	color:#333;
}
.tmpl_flow_text {
	padding-left:70px;
}

@media screen and (max-width:768px) {
	.tmpl_flow_item {
		padding:30px 0;
	}
	.tmpl_flow_num {
		width:40px;
		height:40px;
		font-size:5vw;
	}
	.tmpl_flow_text {
		padding-left:0;
		font-size:3.8vw;
	}
}

/* ============================================
   タイムライン
============================================ */
.tmpl_tl_item {
	display:flex;
	gap:30px;
	align-items:flex-start;
	padding-bottom:40px;
	position:relative;
}
/* 点線の縦ライン */
.tmpl_tl_item:not(:last-child) .tmpl_tl_left:after {
	content:'';
	position:absolute;
	left:60px;
	top:50px;
	width:2px;
	height:calc(100% - 20px);
	background-image:linear-gradient(to bottom, #ffc508 50%, transparent 50%);
	background-size:2px 10px;
	background-repeat:repeat-y;
}
/* 区切り線 */
.tmpl_tl_item:not(:last-child) .tmpl_tl_body {
	border-bottom:2px solid #f0e6c3;
	padding-bottom:40px;
}
.tmpl_tl_left {
	flex-shrink:0;
	width:120px;
}
.tmpl_tl_time {
	display:inline-block;
	padding:8px 0 10px;
	border:2px solid #ffc508;
	border-radius:50px;
	width:100%;
	font-size:28px;
	font-weight:700;
	color:#ffc508;
	text-align:center;
	background:#fff;
	line-height:1;
}
.tmpl_tl_body {
	flex:1;
	padding-top:6px;
}
.tmpl_tl_body h3 {
	color:#333;
}

/* ============================================
   数字で見る
============================================ */
.tmpl_numbers_wrap {
	display:flex;
	gap:20px;
}
/* WP is-layout-flex のデフォルト（flex-wrap:wrap等）を上書き */
.tmpl_numbers_wrap.is-layout-flex {
	flex-wrap:nowrap;
	gap:20px;
}
.tmpl_numbers_wrap.is-layout-flow,
.tmpl_numbers_wrap.is-layout-constrained {
	display:flex !important;
	flex-wrap:nowrap;
	gap:20px;
}
.tmpl_numbers_item.is-layout-flex {
	flex-direction:column;
	align-items:center;
	gap:5px;
}
.tmpl_numbers_item.is-layout-flow,
.tmpl_numbers_item.is-layout-constrained {
	display:block !important;
}
.tmpl_numbers_item.is-layout-flex p {
	margin-block:0;
}
.tmpl_numbers_item {
	flex:1;
	background:#fff;
	border-radius:20px;
	border:1px solid #ffc50a;
	padding:30px 30px 35px;
	text-align:center;
}
.tmpl_numbers_label {
	color:#333;
	margin-bottom:15px;
}
.tmpl_numbers_value {
	font-size:38px;
	font-weight:700;
	color:#ffc508;
	line-height:1;
}
.tmpl_numbers_num {
	font-size:80px;
}

@media screen and (max-width:768px) {
	.tmpl_tl_item {
		gap:20px;
		padding-bottom:30px;
	}
	.tmpl_tl_left {
		width:90px;
	}
	.tmpl_tl_item:not(:last-child) .tmpl_tl_left:after {
		left:45px;
	}
	.tmpl_tl_time {
		font-size:4vw;
	}
	.tmpl_tl_item:not(:last-child) .tmpl_tl_body {
		padding-bottom:30px;
	}
	.tmpl_numbers_wrap {
		display:flex !important;
		flex-direction:row !important;
		flex-wrap:nowrap !important;
		gap:8px;
	}
	.tmpl_numbers_wrap.is-layout-flex,
	.tmpl_numbers_wrap.is-layout-flow,
	.tmpl_numbers_wrap.is-layout-constrained,
	.tmpl_numbers_wrap.wp-block-group {
		display:flex !important;
		flex-direction:row !important;
		flex-wrap:nowrap !important;
		gap:8px;
	}
	.tmpl_numbers_item {
		padding:20px 8px 25px;
		flex:1;
		border-radius:12px;
	}
	.tmpl_numbers_item.is-layout-flex,
	.tmpl_numbers_item.is-layout-flow,
	.tmpl_numbers_item.wp-block-group {
		display:flex !important;
		flex-direction:column !important;
		align-items:center;
		gap:5px;
	}
	.tmpl_numbers_label {
		font-size:3vw;
		margin:0 !important;
		margin-block:0 !important;
	}
	.tmpl_numbers_value {
		font-size:4vw;
		margin:0 !important;
		margin-block:0 !important;
	}
	.tmpl_numbers_item p {
		margin:0 !important;
		margin-block:0 !important;
	}
	.tmpl_numbers_num {
		font-size:9vw;
	}
}


/* ============================================
   スタッフ紹介
============================================ */
.tmpl_staff_wrap {
	display:flex;
	gap:60px;
	position:relative;
}
/* 中央の点線区切り */
.tmpl_staff_wrap:before {
	content:'';
	position:absolute;
	left:50%;
	top:5%;
	height:90%;
	width:2px;
	background-image:linear-gradient(to bottom, #ffc508 50%, transparent 50%);
	background-size:2px 10px;
	background-repeat:repeat-y;
}
.tmpl_staff_item {
	flex:1;
	display:flex;
	align-items:center;
	gap:40px;
	padding:0 60px;
}
.tmpl_staff_img {
	flex-shrink:0;
	width:200px;
	height:200px;
}
.tmpl_staff_img img {
	width:100%;
	height:100%;
	object-fit:cover;
	border-radius:50%;
	border:2px solid #ffc508;
}
.tmpl_staff_body {
	flex:1;
}
.tmpl_staff_role {
	display:inline-block;
	padding:6px 18px 10px;
	background:#e6929e;
	color:#fff;
	font-weight:700;
	border-radius:50px;
	margin-bottom:20px;
}
.tmpl_staff_body h3 {
	color:#333;
	margin-top:0;
}

@media screen and (max-width:768px) {
	.tmpl_staff_wrap {
		flex-direction:column;
		gap:50px;
	}
	.tmpl_staff_wrap:before {
		display:none;
	}
	.tmpl_staff_item:not(:last-child) {
		padding-bottom:50px;
		position:relative;
	}
	.tmpl_staff_item:not(:last-child):after {
		content:'';
		position:absolute;
		bottom:0;
		left:5%;
		width:90%;
		height:2px;
		background-image:linear-gradient(to right, #ffc508 50%, transparent 50%);
		background-size:10px 2px;
		background-repeat:repeat-x;
	}
	.tmpl_staff_item {
		padding:0;
		flex-direction:column;
		text-align:center;
	}
	.tmpl_staff_img {
		width:200px;
		height:200px;
	}
	.tmpl_staff_role {
		font-size:3.5vw;
	}
}


/* ============================================
   お知らせ一覧（詳細版）
============================================ */

/* カテゴリーフィルター */
.sec_tmpl_block ul.tmpl_news_filter {
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:12px;
	margin-bottom:40px;
	padding:0;
}
.sec_tmpl_block ul.tmpl_news_filter li {
	list-style:none;
}
.sec_tmpl_block ul a.tmpl_news_filter_btn {
	display:inline-block;
	padding:10px 28px;
	border:2px solid #e6929e;
	border-radius:50px;
	color:#333;
	font-weight:700;
	text-decoration:none;
	transition:background 0.3s, color 0.3s;
}
.sec_tmpl_block ul a.tmpl_news_filter_btn:hover,
.sec_tmpl_block ul a.tmpl_news_filter_btn.is-active {
	background:#e6929e;
	color:#fff;
}

/* 記事リストの外枠 */
.tmpl_news_list_wrap {
	background:#fff;
	border:2px solid #ffc508;
	border-radius:20px;
	padding:10px 60px;
	margin-bottom:50px;
}

/* 記事 */
.sec_tmpl_block a.tmpl_news_article {
	display:block;
	text-decoration:none;
	color:inherit;
	transition:background 0.3s;
	margin:0 -60px;
	padding:35px 60px;
	border-bottom:1px solid #f0e6c3;
	border-radius:10px;
}
.sec_tmpl_block a.tmpl_news_article:last-child {
	border-bottom:none;
}
.sec_tmpl_block a.tmpl_news_article:hover {
	background:#fff7f8;
}
.sec_tmpl_block a.tmpl_news_article:hover h3 {
	color:#e6929e;
}
.sec_tmpl_block a.tmpl_news_article:hover .tmpl_news_excerpt {
	color:#333;
}
.tmpl_news_meta {
	display:flex;
	align-items:center;
	gap:15px;
	margin-bottom:12px;
}
.tmpl_news_date {
	font-size:16px;
	color:#333;
}
.tmpl_news_cat {
	display:inline-block;
	padding:4px 16px 7px;
	border-radius:50px;
	font-size:16px;
	font-weight:700;
	color:#fff;
}
.tmpl_news_cat_news    { background:#e6929e; }
.tmpl_news_cat_recruit { background:#ffc508; }
.tmpl_news_cat_event   { background:#e6929e; }

.tmpl_news_article h3 {
	color:#333;
	transition:color 0.3s;
}

/* ページネーション */
.tmpl_pager {
	display:flex;
	justify-content:center;
	align-items:center;
	gap:8px;
}
.sec_tmpl_block a.tmpl_pager_btn {
	display:flex;
	align-items:center;
	justify-content:center;
	width:60px;
	height:60px;
	border:2px solid #e8e8e8;
	border-radius:10px;
	color:#333;
	font-weight:700;
	text-decoration:none;
	transition:background 0.3s, color 0.3s, border-color 0.3s;
}
.sec_tmpl_block a.tmpl_pager_btn:hover {
	border-color:#e6929e;
	color:#e6929e;
}
.sec_tmpl_block a.tmpl_pager_btn.is-active {
	background:#e6929e;
	border-color:#e6929e;
	color:#fff;
}
.sec_tmpl_block a.tmpl_pager_arrow {
	font-size:40px;
	color:#ccc;
	border-color:#e8e8e8;
}

@media screen and (max-width:768px) {
	.sec_tmpl_block ul.tmpl_news_filter {
		gap:8px;
		margin-bottom:20px;
	}
	.sec_tmpl_block ul a.tmpl_news_filter_btn {
		font-size:3.5vw;
		padding:8px 12px;
	}
	.tmpl_news_list_wrap {
		padding:10px 5%;
	}
	.sec_tmpl_block a.tmpl_news_article {
		margin:0 -5%;
		padding:25px 5%;
	}
	.tmpl_news_date {
		font-size:3.5vw;
	}
	.tmpl_news_cat {
		font-size:3vw;
		padding:3px 12px;
	}
	.sec_tmpl_block a.tmpl_pager_btn {
		width:40px;
		height:40px;
		font-size:3.8vw;
	}
	.sec_tmpl_block a.tmpl_pager_arrow {
		font-size:6vw;
	}
}


/* ============================================
   お客様・スタッフの声
============================================ */
.tmpl_voice_wrap {
	display:flex;
	gap:40px;
}
.tmpl_voice_item {
	flex:1;
	background:#fff;
	border:2px solid #ffc508;
	border-radius:20px;
	padding:40px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:30px;
}
.tmpl_voice_text {
	line-height:2;
	color:#333;
}
.tmpl_voice_attr {
	text-align:right;
	font-weight:700;
	color:#ffc508;
}

@media screen and (max-width:768px) {
	.tmpl_voice_wrap {
		flex-direction:column;
		gap:25px;
	}
	.tmpl_voice_item {
		padding:30px;
	}
	.tmpl_voice_attr {
		font-size:3.8vw;
	}
}


/* ============================================
   エリアボックス
============================================ */
.tmpl_area_box {
	background:#fff;
	border:2px solid #ffc508;
	border-radius:20px;
	padding:40px;
	margin-bottom:30px;
}
.tmpl_area_box:last-child {
	margin-bottom:0;
}
.tmpl_area_box_text {
	color:#333;
}

/* エリアボックス内テーブル */
.tmpl_area_table {
	width:100%;
	border-collapse:collapse;
	border-top:2px solid #f0e5b9;
	border-left:2px solid #f0e5b9;
}
.tmpl_area_table tr {
	border-right:2px solid #f0e5b9;
	border-bottom:2px solid #f0e5b9;
}
.tmpl_area_table th {
	width:200px;
	padding:20px;
	font-weight:600;
	color:#333;
	text-align:left;
	vertical-align:top;
	background:#fff8de;
	white-space:nowrap;
}
.tmpl_area_table td {
	padding:20px;
	color:#333;
	vertical-align:top;
}

@media screen and (max-width:768px) {
	.tmpl_area_box {
		padding:25px 20px;
		margin-bottom:20px;
	}
	.tmpl_area_box_title {
		font-size:5vw;
		margin-bottom:20px;
	}
	.tmpl_area_table,
	.tmpl_area_table tbody,
	.tmpl_area_table tr {
		display:block;
		width:100%;
	}
	.tmpl_area_table th,
	.tmpl_area_table td {
		display:block;
		width:auto;
		max-width:100%;
		padding:15px;
	}
	.tmpl_area_table th {
		white-space:normal;
	}
}


/* ============================================
   お問い合わせフォーム
============================================ */
.tmpl_form {
	max-width:840px;
	margin:0 auto;
}
.tmpl_form_group {
	margin-bottom:35px;
}
.tmpl_form_label {
	display:flex;
	align-items:center;
	gap:12px;
	font-weight:700;
	color:#333;
	margin-bottom:12px;
}
.tmpl_form_required {
	display:inline-block;
	padding:3px 10px;
	background:#ffc508;
	color:#fff;
	font-size:13px;
	font-weight:700;
	border-radius:4px;
}
.tmpl_form_input {
	width:100%;
	padding:16px 20px;
	border:2px solid #ffc508;
	border-radius:10px;
	font-size:16px;
	color:#333;
	background:#fff;
	box-sizing:border-box;
	outline:none;
	transition:border-color 0.3s;
	font-family:inherit;
}
.tmpl_form_input::placeholder {
	color:#ccc;
}
.tmpl_form_input:focus {
	border-color:#e6929e;
}
.tmpl_form_textarea {
	width:100%;
	padding:16px 20px;
	border:2px solid #ffc508;
	border-radius:10px;
	font-size:16px;
	color:#333;
	background:#fff;
	box-sizing:border-box;
	outline:none;
	transition:border-color 0.3s;
	font-family:inherit;
	height:200px;
	resize:vertical;
}
.tmpl_form_textarea::placeholder {
	color:#ccc;
}
.tmpl_form_textarea:focus {
	border-color:#e6929e;
}

/* ラジオボタン */
.tmpl_form_radio_wrap {
	display:flex;
	flex-direction:column;
	gap:12px;
}
.tmpl_form_radio {
	display:flex;
	align-items:center;
	gap:10px;
	cursor:pointer;
}
.tmpl_form_radio input[type="radio"] {
	appearance:none;
	width:20px;
	height:20px;
	border:2px solid #ffc508;
	border-radius:50%;
	flex-shrink:0;
	position:relative;
	cursor:pointer;
	transition:border-color 0.3s;
}
.tmpl_form_radio input[type="radio"]:checked {
	border-color:#ffc508;
}
.tmpl_form_radio input[type="radio"]:checked:after {
	content:'';
	position:absolute;
	width:10px;
	height:10px;
	background:#ffc508;
	border-radius:50%;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
}

/* 送信ボタン */
.tmpl_form_submit {
	text-align:center;
	margin-top:50px;
}
.tmpl_form_submit .tmpl_btn_primary {
	border:none;
	cursor:pointer;
	font-family:inherit;
	font-size:18px;
	padding:18px 70px 18px 50px;
}

@media screen and (max-width:768px) {
	.tmpl_form_group {
		margin-bottom:25px;
	}
	.tmpl_form_label {
		font-size:4vw;
	}
	.tmpl_form_required {
		font-size:3vw;
	}
	.tmpl_form_input,
	.tmpl_form_textarea {
		font-size:16px;
		padding:14px 15px;
	}
	.tmpl_form_submit .tmpl_btn_primary {
		font-size:4.5vw;
		padding:16px 60px 16px 40px;
	}
}

/* ============================================
   フッターCTA
============================================ */
.footer_cta {
	background:#ffc508;
	padding:80px 0;
	text-align:center;
}
.footer_cta .tmpl_inner {
	max-width:800px;
	margin:0 auto;
}
.footer_cta_title {
	font-size:30px;
	font-weight:700;
	color:#333;
	margin-bottom:20px;
	font-family:'Zen Maru Gothic', sans-serif;
}
.footer_cta_text {
	font-size:16px;
	color:#555;
	line-height:2;
	margin-bottom:40px;
}
.footer_cta_btns {
	display:flex;
	justify-content:center;
	gap:20px;
	flex-wrap:wrap;
}
.footer_cta_btns .tmpl_btn_primary {
	background:#fff;
	color:#333;
}
.footer_cta_btns .tmpl_btn_primary:after {
	color:#333;
}
.footer_cta_btns .tmpl_btn_primary:hover {
	background:#fff8de;
	transform:none;
	box-shadow:none;
}
.footer_cta_btns .tmpl_btn_secondary {
	border-color:#333;
	color:#333;
}
.footer_cta_btns .tmpl_btn_secondary:after {
	color:#333;
}
.footer_cta_btns .tmpl_btn_secondary:hover {
	background:rgba(255,255,255,0.3);
	transform:none;
	box-shadow:none;
}

@media screen and (max-width:768px) {
	.footer_cta {
		padding:60px 20px;
	}
	.footer_cta_title {
		font-size:6vw;
	}
	.footer_cta_text {
		font-size:3.5vw;
	}
	.footer_cta_btns {
		flex-direction:column;
		align-items:center;
	}
}
/* ============================================
   追加CSS: 採用ページ用（Gutenberg flex layout対応版）
   parts.css の末尾に追記してください
============================================ */


/* ============================================
   カード（4列）3列バリエーション
============================================ */
.tmpl_card4_col3 {
	justify-content:center;
}
.tmpl_card4_col3 .tmpl_card4_item {
	width:calc(33.333% - 30px);
}
/* 3列カード: is-layout-flex 対応 */
.tmpl_card4_col3.is-layout-flex {
	justify-content:center;
	gap:40px;
}
.tmpl_card4_col3.is-layout-flex .tmpl_card4_item,
.tmpl_card4_col3 .tmpl_card4_item.is-layout-flex {
	flex:0 0 calc(33.333% - 30px);
}

@media screen and (max-width:768px) {
	.tmpl_card4_col3 .tmpl_card4_item {
		width:100%;
	}
	.tmpl_card4_col3.is-layout-flex .tmpl_card4_item,
	.tmpl_card4_col3 .tmpl_card4_item.is-layout-flex {
		flex:0 0 100%;
	}
}


/* ============================================
   FAQ（よくあるご質問）
============================================ */
.tmpl_faq_wrap {
	display:flex;
	flex-direction:column;
	gap:25px;
}
.tmpl_faq_item {
	background:#fff;
	border-radius:20px;
	overflow:hidden;
	border:1px solid #ffd630;
	padding:10px 20px !important;
}
.tmpl_faq_q {
	display:flex;
	align-items:center;
	padding:20px 20px 15px !important;
	font-weight:700;
	font-size:18px;
	color:#333;
	cursor:default;
	gap:0;
}
.tmpl_faq_q:before {
	content:'Q';
	display:flex;
	align-items:center;
	justify-content:center;
	width:40px;
	height:40px;
	min-width:40px;
	border-radius:50%;
	background:#e6929e;
	color:#fff;
	font-family:'Noto Serif JP', serif;
	font-weight:700;
	font-size:20px;
	margin-right:20px;
}
.tmpl_faq_q p {
	margin:0;
}
.tmpl_faq_a {
	display:flex;
	align-items:flex-start;
	padding:5px 20px 20px !important;
	color:#555;
	line-height:2;
	gap:0;
}
.tmpl_faq_a:before {
	content:'A';
	display:flex;
	align-items:center;
	justify-content:center;
	width:40px;
	height:40px;
	min-width:40px;
	border-radius:50%;
	background:#ffc508;
	color:#fff;
	font-family:'Noto Serif JP', serif;
	font-weight:700;
	font-size:20px;
	margin-right:20px;
	flex-shrink:0;
}
.tmpl_faq_a p {
	margin:0;
	padding-top:8px;
}

@media screen and (max-width:768px) {
	.tmpl_faq_item {
		padding:5px 15px !important;
	}
	.tmpl_faq_q {
		padding:15px 25px 10px;
		font-size:4vw;
	}
	.tmpl_faq_q:before {
		width:32px;
		height:32px;
		min-width:32px;
		font-size:16px;
		margin-right:12px;
	}
	.tmpl_faq_a {
		padding:5px 25px 15px;
		font-size:3.6vw;
	}
	.tmpl_faq_a:before {
		width:32px;
		height:32px;
		min-width:32px;
		font-size:16px;
		margin-right:12px;
	}
}


/* ============================================
   Gutenberg is-layout-flex 互換
   HTML側で layout type を flex に設定済みのため
   WP が生成する is-layout-flex の gap を制御し
   テンプレート CSS の display/gap を上書きする
============================================ */

/* ------------------------------------------
   全テンプレートパーツ: WP flex の gap リセット
   & 子要素の margin リセット
------------------------------------------ */
.tmpl_card2h_wrap.is-layout-flex,
.tmpl_card2h_item.is-layout-flex,
.tmpl_card2h_icon.is-layout-flex,
.tmpl_card2h_body.is-layout-flex,
.tmpl_card4_wrap.is-layout-flex,
.tmpl_card4_item.is-layout-flex,
.tmpl_card4_icon.is-layout-flex,
.tmpl_numbers_wrap.is-layout-flex,
.tmpl_numbers_item.is-layout-flex,
.tmpl_staff_wrap.is-layout-flex,
.tmpl_staff_item.is-layout-flex,
.tmpl_staff_img.is-layout-flex,
.tmpl_staff_body.is-layout-flex,
.tmpl_table_wrap.is-layout-flex,
.tmpl_faq_wrap.is-layout-flex,
.tmpl_faq_item.is-layout-flex,
.tmpl_faq_q.is-layout-flex,
.tmpl_faq_a.is-layout-flex,
.tmpl_btn_wrap.is-layout-flex {
	gap:0;
}


/* ------------------------------------------
   カード（2列・横型）: grid に上書き
   WP が flex を付けるが CSS で grid に変更
------------------------------------------ */
.tmpl_card2h_wrap.is-layout-flex {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:40px 60px;
}
.tmpl_card2h_item.is-layout-flex {
	gap:30px;
	align-items:flex-start;
	padding:0 30px;
	position:relative;
}
.tmpl_card2h_body.is-layout-flex {
	flex-direction:column;
	align-items:flex-start;
	flex:1;
}
.tmpl_card2h_icon.is-layout-flex {
	max-width:25%;
}

@media screen and (max-width:768px) {
	.tmpl_card2h_wrap.is-layout-flex {
		grid-template-columns:1fr;
		gap:30px;
	}
	.tmpl_card2h_item.is-layout-flex {
		padding:0;
	}
}


/* ------------------------------------------
   カード（4列）: flex wrap 上書き
------------------------------------------ */
.tmpl_card4_wrap.is-layout-flex {
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:flex-start;
	gap:40px;
	margin:0 5%;
}
.tmpl_card4_item.is-layout-flex {
	flex-direction:column;
	align-items:center;
	text-align:center;
	position:relative;
}
.tmpl_card4_icon.is-layout-flex {
	margin:0 auto 5px;
	max-width:200px;
	width:100%;
	height:auto;
	min-height:80px;
	justify-content:center;
	align-items:center;
}

@media screen and (max-width:768px) {
	.tmpl_card4_wrap.is-layout-flex {
		gap:40px 20px;
	}
}


/* ------------------------------------------
   数字で見る
------------------------------------------ */
.tmpl_numbers_wrap.is-layout-flex {
	gap:20px;
}
.tmpl_numbers_item.is-layout-flex {
	flex:1;
	flex-direction:column;
	align-items:center;
	background:#fff;
	border-radius:20px;
	border:1px solid #ffc50a;
	padding:30px 30px 35px;
	text-align:center;
}

@media screen and (max-width:768px) {
	.tmpl_numbers_wrap.is-layout-flex {
		flex-direction:column;
		gap:20px;
	}
}


/* ------------------------------------------
   スタッフ紹介
------------------------------------------ */
.tmpl_staff_wrap.is-layout-flex {
	position:relative;
	gap:60px;
}
.tmpl_staff_item.is-layout-flex {
	flex:1;
	align-items:center;
	gap:40px;
	padding:0 60px;
}
.tmpl_staff_img.is-layout-flex {
	flex-shrink:0;
	width:200px;
	height:200px;
}
.tmpl_staff_body.is-layout-flex {
	flex:1;
	flex-direction:column;
	align-items:flex-start;
}

@media screen and (max-width:768px) {
	.tmpl_staff_wrap.is-layout-flex {
		flex-direction:column;
		gap:50px;
	}
	.tmpl_staff_item.is-layout-flex {
		padding:0;
		flex-direction:column;
		text-align:center;
		align-items:center;
	}
	.tmpl_staff_body.is-layout-flex {
		align-items:center;
	}
}


/* ------------------------------------------
   テーブル: padding 上下なし・左右のみ
   ★ tmpl_table_wrap は layout type を default に変更推奨
   ★ flex の場合は以下で互換
------------------------------------------ */
.tmpl_table_wrap.is-layout-flex {
	display:block;
	padding:0;
	overflow:hidden;
}
.tmpl_table_wrap .wp-block-table {
	margin:0;
}
.tmpl_table_wrap .wp-block-table table {
	width:100%;
	border-collapse:collapse;
	border-top:2px solid #f0e5b9;
	border-left:2px solid #f0e5b9;
}
.tmpl_table_wrap .wp-block-table tr {
	border-right:2px solid #f0e5b9;
	border-bottom:2px solid #f0e5b9;
}
.tmpl_table_wrap .wp-block-table th {
	width:180px;
	padding:25px;
	font-weight:600;
	color:#333;
	text-align:left;
	vertical-align:top;
	background:#fff8de;
	white-space:nowrap;
	border:none;
}
.tmpl_table_wrap .wp-block-table td {
	padding:25px;
	color:#333;
	vertical-align:top;
	border:none;
}

@media screen and (max-width:768px) {
	.tmpl_table_wrap.is-layout-flex {
		padding:0;
	}
	.tmpl_table_wrap .wp-block-table table,
	.tmpl_table_wrap .wp-block-table tbody,
	.tmpl_table_wrap .wp-block-table tr,
	.tmpl_table_wrap .wp-block-table th,
	.tmpl_table_wrap .wp-block-table td {
		display:block;
		width:auto;
		max-width:100%;
	}
	.tmpl_table_wrap .wp-block-table th,
	.tmpl_table_wrap .wp-block-table td {
		padding:15px;
	}
	.tmpl_table_wrap .wp-block-table th {
		white-space:normal;
	}
}


/* ------------------------------------------
   FAQ: レイアウト制御
------------------------------------------ */
.tmpl_faq_wrap.is-layout-flex {
	flex-direction:column;
	gap:25px;
}
.tmpl_faq_item.is-layout-flex {
	flex-direction:column;
	padding:10px 20px !important;
}
.tmpl_faq_q.is-layout-flex {
	align-items:center;
	padding:20px 20px 15px !important;
}
.tmpl_faq_a.is-layout-flex {
	align-items:flex-start;
	padding:5px 20px 20px !important;
}

@media screen and (max-width:768px) {
	.tmpl_faq_q.is-layout-flex {
		padding:15px 25px 10px;
	}
	.tmpl_faq_a.is-layout-flex {
		padding:5px 25px 15px;
	}
}


/* ------------------------------------------
   ボタン
------------------------------------------ */
.tmpl_btn_wrap.is-layout-flex {
	justify-content:center;
	gap:20px;
}
.tmpl_btn_wrap p {
	margin:0;
}


/* ------------------------------------------
   wp-block-image リセット
------------------------------------------ */
.tmpl_card2h_icon .wp-block-image,
.tmpl_card4_icon .wp-block-image,
.tmpl_staff_img .wp-block-image,
.tmpl_numbers_item .wp-block-image {
	margin:0;
}
.tmpl_card4_icon .wp-block-image {
	max-width:none !important;
	width:180px !important;
	margin:0 auto !important;
}
.tmpl_card4_icon .wp-block-image img {
	width:180px !important;
	height:auto !important;
	max-width:none !important;
}
.tmpl_card4_icon img {
	width:180px !important;
	height:auto !important;
	max-width:none !important;
}
/* card2h（採用の魅力）のアイコン */
.tmpl_card2h_icon .wp-block-image {
	max-width:none !important;
	width:120px !important;
}
.tmpl_card2h_icon .wp-block-image img {
	width:120px !important;
	height:auto !important;
	max-width:none !important;
}
.tmpl_card2h_icon img {
	width:120px !important;
	height:auto !important;
	max-width:none !important;
}
.tmpl_staff_img .wp-block-image img {
	width:100%;
	height:100%;
	object-fit:cover;
	border-radius:50%;
}


/* ------------------------------------------
   tmpl_staff_role を p タグで使う場合の調整
------------------------------------------ */
p.tmpl_staff_role {
	display:inline-block;
	padding:6px 18px 10px;
	background:#e6929e;
	color:#fff;
	font-weight:700;
	border-radius:50px;
	margin-bottom:16px;
	font-size:14px;
}



/* ============================================
   WordPress ブロックスタイル上書き
   ※ WP core の :root :where(h3) 等が * { margin:0 } より
     詳細度が高いため、個別に打ち消す
============================================ */

/* --- タイムライン --- */
.tmpl_tl_body h3,
.tmpl_tl_body .wp-block-heading,
.tmpl_tl_body p {
	margin-block-start:0;
	margin-block-end:0;
	margin:0;
}

.tmpl_tl_left p,
.tmpl_tl_left .tmpl_tl_time {
	margin-block-start:0;
	margin-block-end:0;
	margin:0;
}

/* --- ご利用の流れ --- */
.tmpl_flow_header h3,
.tmpl_flow_header .wp-block-heading,
.tmpl_flow_header p {
	margin-block-start:0;
	margin-block-end:0;
	margin:0;
}

.tmpl_flow_item p {
	margin-block-start:0;
	margin-block-end:0;
}

/* --- テキスト＋画像 --- */
.tmpl_media_body h3,
.tmpl_media_body .wp-block-heading {
	margin-block-start:0;
	margin-block-end:0;
	margin:0 0 30px;
}

/* --- エリアボックス --- */
.tmpl_area_box h3,
.tmpl_area_box .wp-block-heading {
	margin-block-start:0;
	margin-block-end:0;
	margin:0 0 15px;
}

/* --- WP table ブロックの figure ラッパー余白除去 --- */
.tmpl_area_box .wp-block-table {
	margin:0;
}

/* --- セクションヘッダー --- */
.sec_tmpl_header h2,
.sec_tmpl_header .wp-block-heading,
.sec_tmpl_header p {
	margin-block-start:0;
	margin-block-end:0;
}
/* ラベル・タイトルの下マージンを復元（WPリセットより後に記述） */
.sec_tmpl_header p.sec_tmpl_label {
	margin-bottom:8px;
}
.sec_tmpl_header h2.sec_tmpl_title,
.sec_tmpl_header .sec_tmpl_title.wp-block-heading {
	margin-bottom:20px;
}

/* --- wp-block-image の figure 余白除去 --- */
.tmpl_media_img .wp-block-image,
.tmpl_card4_icon .wp-block-image {
	margin:0;
}


/* ============================================
   parts-patch.css
   Gutenberg ネイティブ化に伴う CSS 追加分
   → parts.css の末尾に追記してください
============================================ */


/* ------------------------------------------
   エリアボックス: is-layout-flex 互換
   認定・資格セクション等で使用
------------------------------------------ */
.tmpl_area_box.is-layout-flex {
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	background: #fff;
	border: 2px solid #ffc508;
	border-radius: 20px;
	padding: 40px;
	margin-bottom: 30px;
}
.tmpl_area_box.is-layout-flex:last-child {
	margin-bottom: 0;
}
/* センター配置バリアント */
.tmpl_area_box--center.is-layout-flex {
	align-items: center;
	text-align: center;
}
/* ボックス内の見出し */
.tmpl_area_box.is-layout-flex h3 {
	margin: 0 0 15px;
}
/* ボックス内の画像 */
.tmpl_area_box.is-layout-flex .wp-block-image {
	margin: 30px 0 0;
	max-width: 400px;
	width: 100%;
}
.tmpl_area_box.is-layout-flex .wp-block-image img {
	border-radius: 8px;
	width: 100%;
	height: auto;
}
/* ボックス内リスト */
.tmpl_area_box.is-layout-flex .wp-block-list {
	margin-top: 20px;
	width: 100%;
}

@media screen and (max-width: 768px) {
	.tmpl_area_box.is-layout-flex {
		padding: 25px 20px;
		margin-bottom: 20px;
	}
}


/* ------------------------------------------
   カード4列: アイテム幅の明示
   flex item は幅を指定しないと縮む
   flex-grow:1 で3列/4列どちらでも自然に広がる
------------------------------------------ */
.tmpl_card4_item.is-layout-flex {
	flex: 1 1 calc(25% - 30px);
	max-width: calc(33.333% - 30px);
}

@media screen and (max-width: 768px) {
	.tmpl_card4_item.is-layout-flex {
		flex: 0 0 calc(50% - 10px);
		max-width: none;
	}
}


/* ------------------------------------------
   Google Maps ラッパー
   wp:html 内で使用するクラス
------------------------------------------ */
.tmpl_map_wrap {
	border-radius: 15px;
	overflow: hidden;
	margin-top: 30px;
}
.tmpl_map_wrap iframe {
	display: block;
}


/* ============================================
   スタッフキャリアストーリー（CPT版）
   ショートコード出力用レイアウト
   ※ parts.css の末尾に追記してください
============================================ */

/* --- 全体を縦並びに変更 --- */
.tmpl_staff_wrap {
	flex-direction:column;
	gap:0;
}
/* 中央の縦点線を非表示（横点線に変更するため） */
.tmpl_staff_wrap:before {
	display:none;
}

/* --- 各スタッフカード --- */
.tmpl_staff_item {
	flex:none;
	width:100%;
	flex-direction:row;
	align-items:flex-start;
	gap:40px;
	padding:50px 0;
}
.tmpl_staff_item:not(:last-child) {
	border-bottom:2px dashed #ffc508;
}

/* --- 写真 --- */
.tmpl_staff_img {
	flex-shrink:0;
	width:220px;
	height:220px;
}
.tmpl_staff_img img {
	width:100%;
	height:100%;
	object-fit:cover;
	border-radius:50%;
	border:3px solid #ffc508;
}

/* --- テキスト部分 --- */
.tmpl_staff_body {
	flex:1;
}
.tmpl_staff_body h3 {
	font-size:1.4em;
	margin-top:0;
	margin-bottom:12px;
}
.tmpl_staff_body > p {
	line-height:1.9;
	margin-bottom:24px;
}

/* --- 役割ラベル（ピンクバッジ） --- */
.tmpl_staff_role {
	display:inline-block;
	padding:6px 18px 8px;
	background:#e6929e;
	color:#fff;
	font-size:14px;
	font-weight:700;
	border-radius:50px;
	margin-bottom:20px;
}

/* --- Q&A カード --- */
.tmpl_staff_qa {
	background:#f9f5f0;
	border:1px solid #e8e0d8;
	border-radius:12px;
	padding:28px 32px;
	margin-top:20px;
}
.tmpl_staff_qa p {
	margin-bottom:16px;
	line-height:1.8;
}
.tmpl_staff_qa p:last-child {
	margin-bottom:0;
}
.tmpl_staff_qa strong {
	color:#e6929e;
	font-weight:700;
}
.tmpl_staff_answer {
	font-weight:700;
	color:#333;
}

/* --- レスポンシブ --- */
@media screen and (max-width:768px) {
	.tmpl_staff_wrap {
		flex-direction:column;
		gap:0;
	}
	.tmpl_staff_item {
		flex-direction:column;
		align-items:center;
		text-align:center;
		padding:40px 0;
		gap:24px;
	}
	.tmpl_staff_img {
		width:180px;
		height:180px;
	}
	.tmpl_staff_qa {
		padding:20px 24px;
		text-align:left;
	}
	.tmpl_staff_role {
		font-size:3.5vw;
	}
}


/* ============================================
   コンセプト（2×2カード・今後の展開）
============================================ */
.tmpl_concept_grid {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	margin: 0 auto;
	justify-content: center;
}
/* is-layout-flex 上書き */
.tmpl_concept_grid.is-layout-flex {
	flex-wrap: wrap;
	gap: 30px;
	justify-content: center;
}

.tmpl_concept_card {
	width: calc(50% - 15px);
	background: #fffef8;
	border: 2px solid #F5D547;
	border-radius: 20px;
	padding: 40px 30px 35px;
	position: relative;
}
/* is-layout-flex 時のカード幅固定 */
.tmpl_concept_grid.is-layout-flex > .tmpl_concept_card {
	flex: 0 0 calc(50% - 15px);
	max-width: calc(50% - 15px);
}
/* is-layout-flow / is-layout-constrained のパディング上書き */
.tmpl_concept_card.is-layout-flow,
.tmpl_concept_card.is-layout-constrained {
	padding: 40px 30px 35px;
}

/* --- カード内子要素の WP margin リセット --- */
.tmpl_concept_card p,
.tmpl_concept_card h3,
.tmpl_concept_card .wp-block-heading,
.tmpl_concept_card .wp-block-image {
	margin-block-start: 0;
	margin-block-end: 0;
	margin: 0;
}

/* --- バッジ --- */
.tmpl_concept_badge {
	display: inline-block;
	background: #F5D547;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	padding: 6px 20px;
	border-radius: 30px;
	margin-bottom: 15px !important;
	line-height: 1.4;
}

/* --- アイコン --- */
.tmpl_concept_icon {
	max-width: 80px;
	margin-bottom: 15px;
}
.tmpl_concept_icon.is-layout-flow,
.tmpl_concept_icon.is-layout-constrained {
	padding: 0;
}
.tmpl_concept_icon img,
.tmpl_concept_icon .wp-block-image img {
	max-width: 100%;
	height: auto;
}
.tmpl_concept_icon .wp-block-image {
	margin: 0 !important;
}

/* --- 見出し --- */
.tmpl_concept_heading {
	font-size: 22px !important;
	font-weight: 700;
	color: #333;
	line-height: 1.5;
	margin-bottom: 15px !important;
}

/* --- 点線区切り --- */
.tmpl_concept_divider {
	border-top: 2px dashed #F5D547;
	margin-bottom: 12px;
	min-height: 0 !important;
	padding: 0 !important;
}
.tmpl_concept_divider.is-layout-flow,
.tmpl_concept_divider.is-layout-constrained {
	padding: 0 !important;
	min-height: 0 !important;
}

/* --- サブテキスト（点線下・グレー） --- */
.tmpl_concept_sub {
	font-size: 14px;
	color: #888;
	line-height: 1.8;
}

/* --- 説明テキスト --- */
.tmpl_concept_text {
	font-size: 15px;
	color: #555;
	line-height: 1.8;
}

/* --- モバイル --- */
@media screen and (max-width: 768px) {
	.tmpl_concept_grid,
	.tmpl_concept_grid.is-layout-flex {
		gap: 20px;
	}
	.tmpl_concept_card,
	.tmpl_concept_grid.is-layout-flex > .tmpl_concept_card {
		width: 100%;
		flex: 0 0 100%;
		max-width: 100%;
		padding: 30px 20px 25px;
		border-radius: 16px;
	}
	.tmpl_concept_card.is-layout-flow,
	.tmpl_concept_card.is-layout-constrained {
		padding: 30px 20px 25px;
	}
	.tmpl_concept_badge {
		font-size: 13px;
		padding: 5px 16px;
	}
	.tmpl_concept_icon {
		max-width: 60px;
	}
	.tmpl_concept_heading {
		font-size: 5vw !important;
	}
	.tmpl_concept_sub {
		font-size: 3.5vw;
	}
	.tmpl_concept_text {
		font-size: 3.5vw;
	}
}


/* ============================================
   ページャー: 現在ページ（spanタグ）用スタイル
   archive-news.php で現在ページは <span> で出力されるため
============================================ */
.sec_tmpl_block span.tmpl_pager_btn {
	display:flex;
	align-items:center;
	justify-content:center;
	width:60px;
	height:60px;
	border:2px solid #e8e8e8;
	border-radius:10px;
	color:#333;
	font-weight:700;
}
.sec_tmpl_block span.tmpl_pager_btn.is-active {
	background:#e6929e;
	border-color:#e6929e;
	color:#fff;
}

@media screen and (max-width:768px) {
	.sec_tmpl_block span.tmpl_pager_btn {
		width:40px;
		height:40px;
		font-size:3.8vw;
	}
}


/* ============================================
   お知らせ詳細ページ（single-news）
   ※ news-detail.css を parts.css に統合
============================================ */

/* ── ヘッダー ── */
.news-detail-header {
	margin-top:90px;
	background:linear-gradient(135deg, #FDF5F7 0%, #FCE8EB 100%);
	padding:80px 40px 60px;
}
.news-detail-header .container {
	max-width:800px;
	margin:0 auto;
}
.news-detail-meta {
	display:flex;
	align-items:center;
	gap:20px;
	margin-bottom:25px;
}
.news-detail-meta time {
	font-size:14px;
	color:#999;
	font-weight:500;
}
.news-category {
	display:inline-block;
	padding:4px 12px;
	background:#e6929e;
	color:#fff;
	font-size:12px;
	font-weight:600;
	border-radius:20px;
}
.news-category.category-recruit {
	background:#ffc508;
	color:#333;
}
.news-category.category-event {
	background:#F5A623;
}
.news-detail-header h1 {
	font-size:32px;
	font-weight:700;
	color:#333;
	line-height:1.6;
	font-family:'Zen Maru Gothic', sans-serif;
}

/* ── コンテンツ ── */
.news-detail-content {
	padding:80px 40px;
}
.news-detail-content .container {
	max-width:800px;
	margin:0 auto;
}
.news-body {
	font-size:18px;
	color:#333;
	line-height:2.2;
}
.news-body p {
	margin-bottom:30px;
}
.news-body h2 {
	font-size:24px;
	font-weight:600;
	color:#333;
	margin:50px 0 25px;
	padding-bottom:15px;
	border-bottom:2px solid #e6929e;
}
.news-body h2::before {
	display:none;
}
.news-body h3 {
	font-size:20px;
	font-weight:600;
	color:#333;
	margin:40px 0 20px;
}
.news-body ul,
.news-body ol {
	margin:20px 0 30px 25px;
}
.news-body li {
	margin-bottom:10px;
}
.news-body img {
	max-width:100%;
	height:auto;
	border-radius:12px;
	margin:30px 0;
}
.news-body .highlight-box {
	background:linear-gradient(135deg, #FDF5F7 0%, #FCE8EB 100%);
	padding:30px;
	border-radius:12px;
	margin:30px 0;
	border-left:4px solid #e6929e;
}
.news-body table {
	width:100%;
	border-collapse:collapse;
	margin:30px 0;
}
.news-body table th,
.news-body table td {
	padding:15px 20px;
	border:1px solid #e8e8e8;
	text-align:left;
}
.news-body table th {
	background:#f5f5f5;
	font-weight:600;
	color:#b8707a;
}

/* ── 前後ナビ ── */
.news-nav {
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-top:80px;
	padding-top:40px;
	border-top:1px solid #e8e8e8;
}
a.news-nav-link {
	display:flex;
	align-items:center;
	gap:10px;
	text-decoration:none;
	color:#b8707a;
	font-size:16px;
	font-weight:500;
	transition:opacity 0.3s ease;
}
a.news-nav-link:hover {
	opacity:0.7;
}
.news-nav-link.prev::before {
	content:"←";
}
.news-nav-link.next::after {
	content:"→";
}
a.news-nav-back {
	display:inline-block;
	padding:20px 60px 20px 40px;
	background:#fff;
	color:#e6929e;
	text-decoration:none;
	border-radius:50px;
	font-size:18px;
	font-weight:600;
	border:2px solid #e6929e;
	position:relative;
	transition:background 0.3s, transform 0.2s, box-shadow 0.3s;
}
a.news-nav-back:after {
	content:'▶';
	position:absolute;
	right:28px;
	top:50%;
	transform:translateY(-50%);
	font-size:12px;
	color:#e6929e;
}
a.news-nav-back:hover {
	background:#fdf3f5;
	color:#e6929e;
	transform:translateY(-3px);
	box-shadow:0 6px 20px rgba(230,146,158,0.15);
}

/* ── レスポンシブ ── */
@media (max-width:768px) {
	.news-detail-header {
		margin-top:60px;
		padding:60px 20px 40px;
	}
	.news-detail-header h1 {
		font-size:24px;
	}
	.news-detail-content {
		padding:60px 20px;
	}
	.news-body {
		font-size:16px;
		line-height:2.0;
	}
	.news-body h2 {
		font-size:20px;
		margin:35px 0 20px;
	}
	.news-body h3 {
		font-size:18px;
	}
	.news-body table th,
	.news-body table td {
		padding:10px 12px;
		font-size:14px;
	}
	.news-nav {
		flex-direction:column;
		gap:20px;
	}
	.news-nav-link.prev,
	.news-nav-link.next {
		display:none;
	}
	a.news-nav-back {
		padding:16px 50px 16px 30px;
		font-size:4vw;
	}
	a.news-nav-back:after {
		right:22px;
	}
}


/* ============================================
   認定・資格カード（ACF ショートコード用）
============================================ */
.tmpl_cert_card {
	background: #fff;
	border: 2px solid #ffc508;
	border-radius: 20px;
	padding: 40px;
	margin-bottom: 30px;
}
.tmpl_cert_card:last-child {
	margin-bottom: 0;
}

/* --- 画像ありレイアウト：左画像 + 右テキスト --- */
.tmpl_cert_card--has-img {
	display: flex;
	align-items: flex-start;
	gap: 40px;
}
.tmpl_cert_card_img {
	flex-shrink: 0;
	width: 240px;
}
.tmpl_cert_card_img img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.tmpl_cert_card_body {
	flex: 1;
	min-width: 0;
}
.tmpl_cert_card_title {
	font-size: 20px;
	font-weight: 700;
	color: #003366;
	margin: 0 0 15px;
	line-height: 1.5;
}
.tmpl_cert_card_text {
	font-size: 15px;
	line-height: 1.9;
	color: #333;
	margin: 0;
}

@media screen and (max-width: 768px) {
	.tmpl_cert_card {
		padding: 25px 20px;
		margin-bottom: 20px;
	}
	.tmpl_cert_card--has-img {
		flex-direction: column;
		gap: 20px;
	}
	.tmpl_cert_card_img {
		width: 60%;
		margin: 0 auto;
	}
	.tmpl_cert_card_title {
		font-size: 18px;
	}
}

/* --- アイコン↔見出し間のマージン縮小 --- */
.tmpl_card4_item h3,
.tmpl_card4_item .wp-block-heading {
	margin-top:0 !important;
	margin-bottom:10px;
}
.tmpl_card2h_item h3,
.tmpl_card2h_item .wp-block-heading {
	margin-top:0 !important;
}
.tmpl_card4_icon .wp-block-image,
.tmpl_card4_icon .wp-block-image figure,
.tmpl_card2h_icon .wp-block-image,
.tmpl_card2h_icon .wp-block-image figure {
	margin-bottom:0 !important;
}
