/* ===========================
   0) Variables
   =========================== */
:root {
	--koganei-blue: #005EAD;
	--content-max: 820px;  /* 本文の最大幅（必要に応じて調整） */
	--wide-max:   1200px;  /* alignwide の最大幅（必要に応じて調整） */
}

/* ===========================
   1) Base
   =========================== */
* { box-sizing: border-box; }

html, body {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	overflow: auto;
	-ms-overflow-style: none; /* Edge */
	scrollbar-width: none;    /* Firefox */
}
.page {
	overflow-x: hidden;
	overflow-y: auto;
	height: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.page::-webkit-scrollbar { display: none; } /* Chrome/Safari */

.sp_br { display: none; }

/* ===========================
   2) Generic Layout
   =========================== */
.slide {
	position: sticky;
	top: 0;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	letter-spacing: .2em;
	color: #fff;
	background-size: cover;
	background-position: center;
}
section { width: 100%; }

/* ===========================
   3) News Page
   =========================== */
.news-section {
	background: none;
	background-size: cover;
	background-position: calc(50% - 80px) 50%;
	height: 90px;
	padding: 0 0 32px;
}

#news-content {
	padding: 100px 190px 75px;
}

#news-content .news-title {
	color: #151515;
	font-weight: 700;
	font-size: 40px;
	line-height: 130%;
	padding-bottom: 40px;
}

#news-content .news-meta {
	display: flex;
	align-items: center;
	gap: 17px;
	min-width: 210px;
	margin-bottom: 24px;
	height: 25px;
}

#news-content .news-meta time {
	opacity: 1;
	font-family: "Satoshi", system-ui, sans-serif;
	font-weight: 500;
	font-style: normal;
	font-size: 18px;
	line-height: 25px;
	letter-spacing: 0;
	margin-top: 3px;
}

#news-content .news-meta .badge {
	display: inline-block;
	border: 1px solid var(--koganei-blue);
	background: var(--koganei-blue);
	color: #fff;
	font-family: "Noto Sans JP", system-ui, sans-serif;
	font-weight: 300;
	font-style: normal;
	font-size: 14px;
	line-height: 160%;
	letter-spacing: 0;
	width: 100px;
	height: 30px;
	border-radius: 4px;
	text-align: center;
}

#news-content .news-image-area {
	width: 100%;
	text-align: center;
	max-width: 820px;
	margin: 0 auto 32px auto;
}
#news-content .news-image {
	width: auto;
	height: auto;
	object-fit: cover;
	border: 1px solid #C4C4C4;
	margin: 0 auto;
}

#news-content .news-caption {
	color: #151515;
	font-weight: 700;
	font-size: 25px;
	padding: 35px 0 30px;
}

/* 本文ボックス（BFCで外界と分離） */
#news-content .news-text {
	display: flow-root;
	color: #151515;
	font-family: "Noto Sans JP", system-ui, sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 16px;
	line-height: 180%;
	letter-spacing: 0;
	/* 必要なら下記を有効化
	padding-right: 40px;
	*/
	padding-bottom: 60px;
}

/* news-text 内のよく使う要素だけ最小リセット＋基礎タイポ */
#news-content .news-text :where(h1,h2,h3,h4,h5,h6,p,ul,ol,li,blockquote,pre,table,figure){
	margin: 0; /* 一旦0に */
}
#news-content .news-text h1{ font-size: 28px; font-weight: 700; margin: 1.2em 0 .6em; }
#news-content .news-text h2{ font-size: 24px; font-weight: 700; margin: 1.2em 0 .6em; }
#news-content .news-text h3{ font-size: 20px; font-weight: 700; margin: 1.1em 0 .55em; }
#news-content .news-text p { margin: 1em 0; }
#news-content .news-text ul{ padding-left: 1.5em; margin: .8em 0; list-style: disc; }
#news-content .news-text ol{ padding-left: 1.5em; margin: .8em 0; list-style: decimal; }
#news-content .news-text li{ margin: .3em 0; }
#news-content .news-text a { color: var(--koganei-blue); text-decoration: underline; }
#news-content .news-text strong{ font-weight: 700; }
#news-content .news-text em{ font-style: italic; }
#news-content .news-text blockquote{
	margin: 1.2em 0; padding: .8em 1em; border-left: 4px solid #e5e7eb; background: #f8fafc;
}
#news-content .news-text code, 
#news-content .news-text pre{
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .95em;
}
#news-content .news-text pre{
	overflow: auto; background:#f3f4f6; padding: .8em; border-radius: 4px;
}

/* メディア要素の安全策 */
#news-content .news-text img, 
#news-content .news-text video,
#news-content .news-text iframe{
	max-width: 100%;
	height: auto;
	display: block;
	image-rendering: auto;
}

/* テーブル */
#news-content .news-text table{
	width: 100%; border-collapse: collapse; margin: 1em 0;
}
#news-content .news-text th, 
#news-content .news-text td{
	border: 1px solid #e5e7eb; padding: .5em .75em; text-align: left;
}

/* 改行系（日本語のつぶれ防止） */
#news-content .news-text{
	overflow-wrap: anywhere;  /* 旧 word-wrap */
	word-break: normal;       /* 不要な break-all を避ける */
}

/* ===========================
   4) WordPress 本文（共通） .entry-content
   =========================== */
.entry-content { 
	max-width: var(--content-max);
	margin-left: auto;
	margin-right: auto;
	overflow: visible; /* wide を外に広げる場合 */
}

/* メディア共通 */
.entry-content img,
.entry-content video,
.entry-content iframe,
.entry-content figure,
.entry-content .wp-block-embed {
	max-width: 100%;
	height: auto;
}
.entry-content::after { content: ""; display: block; clear: both; }
.entry-content img { image-rendering: auto; -ms-interpolation-mode: bicubic; }

/* クラシックエディタ */
.entry-content img.alignnone,
.entry-content .wp-caption.alignnone { margin: 0 0 1em; }
.entry-content img.aligncenter,
.entry-content .wp-caption.aligncenter {
	display: block; margin-left: auto; margin-right: auto; float: none;
}
/* 画像がリンクで囲まれている場合も対応 */
.entry-content a > img.aligncenter { display: block; margin-left: auto; margin-right: auto; }

.entry-content img.alignleft,
.entry-content .wp-caption.alignleft { float: left;  margin: 0 1em 1em 0; }
.entry-content img.alignright,
.entry-content .wp-caption.alignright{ float: right; margin: 0 0 1em 1em; }

.entry-content .wp-caption { max-width: 100%; }
.entry-content .wp-caption img { display: block; margin: 0 auto; }
.entry-content .wp-caption .wp-caption-text { text-align: center; font-size: .9em; color: #666; margin-top: .25em; }

/* Gutenberg ブロック */
.entry-content .wp-block-image { margin: 1em 0; }
.entry-content .wp-block-image img { display: block; }
.entry-content .wp-block-image.aligncenter { text-align: center; }
.entry-content .wp-block-image.aligncenter img { margin-left: auto; margin-right: auto; }
.entry-content .wp-block-image.alignleft  { float: left;  margin: 0 1em 1em 0; }
.entry-content .wp-block-image.alignright { float: right; margin: 0 0 1em 1em; }

/* ギャラリー */
.entry-content .wp-block-gallery { margin: 1em 0; }
.entry-content .blocks-gallery-grid,
.entry-content .wp-block-gallery .blocks-gallery-grid { margin: 0; }

/* 埋め込み中央寄せ＋レスポンシブ */
.entry-content .wp-block-embed.aligncenter,
.entry-content .wp-block-video.aligncenter {
	margin-left: auto; margin-right: auto; display: block; text-align: center;
}
.entry-content .wp-block-embed.is-type-video iframe,
.entry-content .wp-block-video video { width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* 表 */
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content .wp-block-table table { width: 100%; border-collapse: collapse; }

/* ボタン中央寄せ */
.entry-content .wp-block-buttons.is-content-justification-center,
.entry-content .wp-block-button.aligncenter { text-align: center; }
.entry-content .wp-block-buttons .wp-block-button { display: inline-block; }

/* テキスト揃えユーティリティ */
.entry-content .has-text-align-left   { text-align: left; }
.entry-content .has-text-align-center { text-align: center; }
.entry-content .has-text-align-right  { text-align: right; }

/* 幅指定（wide/full） */
.entry-content .alignwide {
	max-width: none;
	width: min(100vw, var(--wide-max));
	margin-left: calc(50% - min(100vw, var(--wide-max)) / 2);
	margin-right: calc(50% - min(100vw, var(--wide-max)) / 2);
}
.entry-content .alignfull {
	max-width: none;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ===========================
   5) Buttons
   =========================== */
.btn-solid-blue{
	--btn-h: 56px;
	display: inline-flex;
	gap: 16px;
	min-width: 260px;
	align-items: center;
	justify-content: flex-start;
	height: var(--btn-h);
	width: 260px;
	padding: 16px 0 16px 24px;
	border-radius: 64px;
	border: 1px solid var(--koganei-blue);
	background: var(--koganei-blue);
	color: #F2F2F2;
	text-decoration: none;
	font: 700 16px/1 "Noto Sans JP", system-ui, sans-serif;
	position: relative;
}
.btn-solid-blue::after{
	content: "";
	position: absolute;
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	background: url(/common/asset/btn-bule_arrow_reverse.svg) no-repeat center / contain;
}
.btn-solid-blue:hover,
.btn-solid-blue:focus-visible { color: #F2F2F2; text-decoration: none; }
.btn-solid-blue:active { transform: translateY(0); color: #F2F2F2; }
.btn-solid-blue-news { padding-left: 74px; }


.news-ctas {
	display: flex;
	gap: 32px;
	margin: 0 auto;
	margin-top: 0px;
	justify-content: center;
	text-align: center;
}
.btn-solid-blue-link::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	background: url(/common/asset/btn-bule_arrow.svg) no-repeat center / contain;
}

.btn-solid-blue-link {
	--btn-h: 56px;
	display: inline-flex;
	gap: 16px;
	min-width: 260px;
	max-width: 260px;
	font-family: "Noto Sans JP",system-ui,sans-serif;
	align-items: center;
	justify-content: left;
	height: 56px;
	width: 260px;
	/*padding: 16px 0 16px 0px;*/
	padding: 16px 48px 16px 36px;
	border-radius: 64px;
	border: 1px solid #005EAD;
	background: #005EAD;
	color: #F2F2F2;
	text-decoration: none;
	font-weight: 700;
	font-size: 16px;
	position: relative;
	justify-content: center;
	text-align: center;
	color: #FFF;
}
.btn-solid-blue-link:hover,
.btn-solid-blue-link:focus-visible {
	color: #FFF;
	color: #F2F2F2;
	text-decoration: none;
}


.btn-outline-blue-link::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 23px;
	height: 23px;
	background: url("/common/asset/aboutus/icon_button_download.svg") no-repeat center / contain;
}
.btn-outline-blue-link {
	display: inline-flex;
	align-items: center;
	height: 56px;
	min-width: 250px;
	max-width: 250px;
	/*padding: 20px 0 20px 0;*/
	padding: 20px 48px 20px 36px;
	border-radius: 64px;
	background: #fff;
	color: var(--koganei-blue);
	text-decoration: none;
	border: 1px solid #005EAD;
	font-family: "Noto Sans JP", system-ui, sans-serif;
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	position: relative;
	transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .06s ease;
	-webkit-tap-highlight-color: transparent;
	justify-content: center;
	text-align: center;
}
.btn-outline-blue-link:hover,
.btn-outline-blue-link:focus-visible {
	color: #005EAD;
	text-decoration: none;
}

.news-ctas {
	flex-wrap: wrap;
}

.btn-solid-blue-link:active { transform: translateY(0)
; color: #F2F2F2; }
/* ===========================
   6) Responsive
   =========================== */
@media (max-width: 1024px) {
	#news-content { padding: 48px 24px; }

	.sp_br { display: block; }

	#news-content .news-title {
		font-size: 28px;
		line-height: 110%;
		padding-bottom: 32px;
	}

	#news-content .news-meta {
		margin-bottom: 24px;
		height: auto;
	}

	#news-content .news-meta time {
		font-family: "Satoshi", system-ui, sans-serif;
		font-weight: 500;
		font-style: normal;
		font-size: 18px;
		line-height: 25px;
		letter-spacing: 0;
		margin-top: 3px;
	}

	#news-content .news-meta .badge { padding: 2px 8px; }

	#news-content .news-image {
		background-color: transparent;
		border-radius: 0;
	}

	#news-content .news-text {
		padding: 24px 0 40px;
	}

	/* モバイル時はフロート解除して中央へ */
	.entry-content img.alignleft,
	.entry-content img.alignright,
	.entry-content .wp-caption.alignleft,
	.entry-content .wp-caption.alignright,
	.entry-content .wp-block-image.alignleft,
	.entry-content .wp-block-image.alignright {
		float: none;
		display: block;
		margin: 1em auto;
	}
}