@charset "utf-8";
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
h1,
h2,
h3,
h4,
h5,
h6,
.lead-main,
.text-marker {
	position: relative;
	font-weight: 500;
	color: var(--main-font-color);
	line-height: 1.5;
}
/* -- h1 -- */
.contents h1 {
	padding-bottom: 25px;
	background-image: linear-gradient(to right, var(--yellow-color) 100%, transparent 0);
	background-size: 80px 4px;
	background-repeat: no-repeat;
	background-position: center bottom;
	font-family: var(--font-min);
	font-size: 5rem;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-align: center;
	color: #fff;
}
/* -- h2 -- */
.contents h2 {
	position: relative;
	padding-bottom: 15px;
	margin-bottom: 30px;
	border-bottom: 1px solid #c2c0b9;
	font-family: var(--font-min);
	font-size: 3.9rem;
	letter-spacing: 0.03em;
	text-align: left;
}
.contents h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 80px;
	height: 4px;
	background: var(--brown-color);
}
.contents h2:has(br) {
	line-height: 1.4;
}
.contents h2 small {
	font-family: "Raleway", "Noto Serif JP", sans-serif;
	font-size: 57.69% !important;
	color: var(--yellow-color);
}
.title-s h2 {
	font-size: 3.4rem;
}
/* -- h3 -- */
.contents h3 {
	margin-bottom: 25px;
	font-size: 3.2rem;
	font-weight: bold;
	color: var(--yellow-color);
	letter-spacing: 0.03em;
}
.contents .title-s h3 {
	font-size: 2.6rem;
	margin-bottom: 15px;
}
/* -- h4 -- */
.contents h4 {
	font-size: 2.6rem;
	font-weight: bold;
	line-height: 1.2;
	padding-left: .8em;
	margin-bottom: 15px;
	background: linear-gradient(to top, var(--brown-color) 50%, var(--yellow-color) 50%) no-repeat 0 top / 4px 100%;
}
.contents h4:has(small) {
	background-size: 4px 90%;
}
.contents h4 small {
	font-family: var(--font-all);
	font-size: 57.69% !important;
	letter-spacing: 0.06em;
	color: var(--yellow-color);
}
.contents h4 br + small {
	display: block;
	line-height: 1.5;
}
.title-s h4 {
	font-size: 1.8rem;
}
/* -- h5 -- */
.contents h5,
.text-box {
	margin-bottom: 10px;
	font-size: 1.8rem;
	font-weight: bold;
}
.contents h5 span,
.text-box {
	min-width: 140px;
	display: inline-flex;
	width: fit-content;
	justify-content: center;
	padding: 4px 15px;
	background-color: var(--brown-color);
	color: #fff;
}
.tac .text-box,
.text-box.tac {
	margin-left: auto;
	margin-right: auto;
}
/* -- h6 -- */
.contents h6 {
	font-size: 2.2rem;
	font-weight: bold;
	margin-bottom: 10px;
}
.title-em {
	margin-bottom: 10px;
}
/* -- メインリード -- */
.lead-main {
    margin-bottom: 50px;
	font-family: var(--font-min);
	font-size: 3.6rem;
    line-height: 1.67;
    letter-spacing: 0.006em;
}
.lead-main span {
    padding: 0 5px;
    background-color: var(--base-color);
}
/* -- サブリード -- */
.lead-sub {
	margin-bottom: 20px;
	font-size: 2.8rem;
	line-height: 1.75;
	font-weight: bold;
	color: var(--brown-color);
}
.lead-sub span {
	padding: 3px;
    background-color: var(--base-color);
}
/* -- リード -- */
.text-lead {
	font-size: 1.8rem;
	font-weight: bold;
	text-align: center;
	color: var(--brown-color);
	letter-spacing: 0.03em;
	line-height: 1.77;
}
/* 見出しにつくサブ扱いのテキスト */
.text-sub {
	margin-bottom: 5px;
	font-family: var(--font-all);
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--yellow-color);
}
/* -- 強調テキスト -- */
.text-marker span,
span.text-marker {
	font-weight: bold;
	font-style: normal;
	color: #fff;
	padding: 0 2px;
	background-color: var(--yellow-color);
}
/* -- 明朝テキスト -- */
.text-min {
	margin-bottom: 15px;
	font-family: var(--font-min);
	font-weight: 500;
	line-height: 1.6;
}
/* -- 英語テキスト -- */
.font-en-normal {
	font-family: var(--font-en-normal); /* Arial */
}
.font-en {
	font-family: var(--font-en); /* Raleway */
}

/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- h1 -- */
	.contents h1 {
        font-size: 3.1rem;
		padding-bottom: 20px;
		background-size: 45px 2px;
    }
	/* -- h2 -- */
	.contents h2 {
		font-size: 2.7rem;
		letter-spacing: 0.03em;
		padding-bottom: 10px;
		margin-bottom: 20px;
	}
	.contents h2::after {
		width: 60px;
		height: 3px;
	}
	.title-s h2 {
		font-size: 2.2rem;
	}
	/* -- h3 -- */
	.contents h3 {
		font-size: 2.4rem;
		letter-spacing: 0.03em;
		margin-bottom: 20px;
	}
	.contents .title-s h3 {
		font-size: 2rem;
		margin-bottom: 10px;
	}
	/* -- h4 -- */
	.contents h4 {
		font-size: 2rem;
		margin-bottom: 10px;
	}
	.title-s h4 {
		font-size: 1.7rem;
	}
	/* -- h5 -- */
	.contents h5,
	.text-box {
		font-size: 1.7rem;
	}
	.text-box + *:not(br):not(ul):not(div):not(p) {
		display: inline-block;
		margin-bottom: 10px;
	}
	/* -- h6 -- */
	.contents h6 {
		font-size: 1.8rem;
	}
	
	/* -- メインリード -- */
	.lead-main {
        margin-bottom: 25px;
        font-size: 2.3rem;
    }
	/* -- サブリード -- */
	.lead-sub {
		margin-bottom: 15px;
		font-size: 2.2rem;
	}
	/* -- リード -- */
	.text-lead {
		font-size: 1.7rem;
		text-align: left;
		letter-spacing: 0.02em;
	}
	/* 見出しにつくサブ扱いのテキスト */
	.text-sub {
		font-size: 1.6rem;
	}
}

/* ------------------------------
 横幅（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	/* 1/2 */
	.w546 {
		width: 546px;
	}
	.w1-2 {
		width: 47.895%;
	}
	/* ローカルメニューあり1/2 */
	.mainContents .w392,
	.mainContents .w1-2 {
		width: 47.805%;
	}
	/* 1/3 */
	.w350 {
		width: 350px;
	}
	.w1-3 {
		width: 30.702%;
	}
	.w350.cms_fl + .w350.cms_fl:not(.cms_clear_before),
	.w350.fl + .w350.fl:not(.cms_clear_before) {
		margin-left: 45px;
	}
	.w1-3.cms_fl + .w1-3.cms_fl:not(.cms_clear_before),
	.w1-3.fl + .w1-3.fl:not(.cms_clear_before) {
		margin-left: 3.947%;
	}
	.w350.cms_fl + .w350.cms_fl.ml0 {
		margin-left: 0;
	}
	/* ローカルメニューあり1/3 */
	.mainContents .w256,
	.mainContents .w1-3 {
		width: 31.22%;
	}
	.w256.cms_fl + .w256.cms_fl:not(.cms_clear_before),
	.w256.fl + .w256.fl:not(.cms_clear_before),
	.mainContents .w1-3.cms_fl + .w1-3.cms_fl:not(.cms_clear_before),
	.mainContents .w1-3.fl + .w1-3.fl:not(.cms_clear_before) {
		margin-left: 3.17%;
	}
	/* 2/3 */
	.w745 {
		width: 745px;
	}
	.w2-3 {
		width: 65.351%;
	}
	/* ローカルメニューあり2/3 */
	.mainContents .w538,
	.mainContents .w2-3 {
		width: 65.61%;
	}
	/* 1/4 */
	.w258,
	.w1-4 {
		width: 22.632%;
	}
	.w258.cms_fl + .w258.cms_fl:not(.cms_clear_before),
	.w258.fl + .w258.fl:not(.cms_clear_before),
	.w1-4.cms_fl + .w1-4.cms_fl:not(.cms_clear_before),
	.w1-4.fl + .w1-4.fl {
		margin-left: 3.157%;
	}
	.mainContents .w186,
	.mainContents .w1-4 {
		width: 22.683%;
	}
	.mainContents .w186.cms_fl + .w186.cms_fl:not(.cms_clear_before),
	.mainContents .w186.fl + .w186.fl:not(.cms_clear_before),
	.mainContents .w1-4.cms_fl + .w1-4.cms_fl:not(.cms_clear_before),
	.mainContents .w1-4.fl + .w1-4.fl {
		margin-left: 3.09%;
	}
	/* 3/4 */
	.w846,
	.w3-4 {
		width: 74.211%;
	}
	/* 1/5 */
	.w1-5 {
		width: 19.513%;
	}
	.w1-5.cms_fl + .w1-5.cms_fl,
	.w1-5.fl + .w1-5.fl {
		margin-left: 0.60875%;
	}
	/* その他 */
	.w860 {
		width: 860px;
	}
	
}
/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.w258,
	.w1-4,
	.w1-5,
	.sp_w1-2 {
		width: 47.25%;
	}
	.sp_w100 {
		width: 100%;
	}
	.w258.cms_fl,
	.w1-4.cms_fl,
	.w1-5.cms_fl {
		float: left !important;
	}
	.w258.cms_fl + .w258.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-5.cms_fl + .w1-5.cms_fl {
		margin-left: 5.5%;
	}
	.w258.cms_fl + .w258.cms_fl + .w258.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl.cms_clear_before,
	.w1-5.cms_fl + .w1-5.cms_fl + .w1-5.cms_fl {
		margin-bottom: 0;
		margin-left: 0;
	}
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl {
		margin-left: 5.5%;
		margin-bottom: 20px;
	}
	.w1-4.cms_fl + .w1-4.cms_fl.cms_clear_before {
		margin-left: 0 !important;
	}
}

/* ------------------------------
 ボックス（PC）
------------------------------ */
/* 横並び */
.flexBox {
	display: flex !important;
	flex-wrap: wrap;
}
.cms_block.flexBox::after {
	content: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 両端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び 縦上揃え */
.flexBox.ai-s {
	align-items: flex-start;
}
/* 横並び 縦下揃え */
.flexBox.ai-e {
	align-items: flex-end;
}
.flexBox .fg-1 {
	flex-grow: 1;
}
/* flexBoxの中でも横並びにしない */
.flexBox.div2 > h2, .flexBox.div2 > h3, .flexBox.div2 > h4, .flexBox.div2 > h5, .flexBox.div2 > h6,
.flexBox.div3 > h2, .flexBox.div3 > h3, .flexBox.div3 > h4, .flexBox.div3 > h5, .flexBox.div3 > h6,
.flexBox.div4 > h2, .flexBox.div4 > h3, .flexBox.div4 > h4, .flexBox.div4 > h5, .flexBox.div4 > h6,
.mainContents .flexBox.div2 > h2, .mainContents .flexBox.div2 > h3, .mainContents .flexBox.div2 > h4, .mainContents .flexBox.div2 > h5, .mainContents .flexBox.div2 > h6,
.mainContents .flexBox.div3 > h2, .mainContents .flexBox.div3 > h3, .mainContents .flexBox.div3 > h4, .mainContents .flexBox.div3 > h5, .mainContents .flexBox.div3 > h6 {
	width: 100%;
}
@media print, screen and (min-width: 768px) {
	/* 横並び2列 */
	.flexBox.div2 {
		flex-wrap: wrap;
		gap: 30px 4.21%;
	}
	
	.flexBox.div2 > * {
		width: 47.895%;
		margin-bottom: 0;
	}
	.wide.flexBox.div2.fixed-w {
		column-gap: 48px;
	}
	.wide.flexBox.div2.fixed-w > * {
		width: 546px;
		margin-left: 0;
		margin-right: 0;
	}
	.mainContents .flexBox.div2 {
		column-gap: 4.39%;
	}
	.mainContents .flexBox.div2 > * {
		width: 47.805%;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		flex-wrap: wrap;
		gap: 30px 3.948%;
	}
	.flexBox.div3 > * {
		width: 30.702%;
		margin-bottom: 0;
	}
	.mainContents .flexBox.div3 {
		column-gap: 3.17%;
	}
	.mainContents .flexBox.div3 > * {
		width: 31.22%;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		flex-wrap: wrap;
		gap: 30px 3.09%;
	}
	.flexBox.div4 > * {
		width: 22.683%;
		margin-bottom: 0;
	}
	/* 下に落ちないようにする */
	.pc_fw-nowrap {
		flex-wrap: nowrap;
	}
}
/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並び2列・横並び3列 */
	.flexBox.div2 {
		display: block !important;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div3,
	.flexBox.div4 {
		flex-wrap: wrap;
		gap: 20px 5.5%;
	}
	.flexBox.div3 > *,
	.flexBox.div4 > * {
		width: 47.25%;
		margin-bottom: 0;
	}
	/* 横並び4列（SP横並びにしない） */
	.flexBox.div3.sp_nodiv,
	.flexBox.div4.sp_nodiv {
		display: block;
	}
	.flexBox.div3.sp_nodiv > *,
	.flexBox.div4.sp_nodiv > * {
		width: 100%;
	}
}

/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
.contents table {
	width: 100%;
	border-collapse: collapse;
	border: solid 1px var(--gray-color);
}
.contents table tr:not(:last-child) th,
.contents table tr:not(:last-child) td {
	border-bottom: dotted 1px var(--gray-color);
}
.contents table thead th:not(:last-child),
.contents table thead + tbody th:not(:last-child),
.contents table td:not(:last-child) {
	border-right: dotted 1px var(--gray-color);
}
.contents table thead th {
	text-align: center;
	color: #fff;
	background-color: var(--brown-color);
}
.contents table th {
	color: var(--brown-color);
	font-weight: bold;
	background-color: #f5f4f3;
	padding: 20px;
}
.contents table th.th-em {
	color: var(--main-font-color);
	background-color: #ebeae8;
}
.contents table td {
	background-color: #fff;
	padding: 20px;
}

/* td右寄せ */
.td-tar table tbody td {
	text-align: right;
}

/* セル均等 */
.table-equal table {
	table-layout: fixed;
}
/* rowspan で border が消える対策 */
th.rsborder,
td.rsborder {
	border-right: none !important;
}
th.rsborder + td[rowspan],
td.rsborder + td[rowspan] {
	border-left: dotted 1px var(--gray-color);
}
.no-b {
	border-bottom: none;
}
/* スクロール */
.cms_text.scroller {
	overflow-y: hidden !important;
	padding: 1px;
}
.contents .scroll-hint-icon {
	background: rgba(51, 51, 51, .5);
}
@media print, screen and (min-width: 768px) {
	/* デフォルト */
	.contents table th {
		width: fit-content;
	}
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents table {
		border-radius: 15px;
	}
	.contents table th,
	.contents table td {
		padding: 15px;
	}
	.contents table thead th {
		padding: 15px;
		min-width: 90px;
	}

	/* レスポンシブ */
	.contents .res table th,
	.contents .res table td {
		width: auto !important;
		display: block;
	}
	.contents .res table:not(.simple table) th,
	.contents .res table:not(.simple table) td {
		border: none;
	}
	/* スクロールバーの色 */
	/* スクロール */
	.cms_text.scroller {
		padding-bottom: 24px;
	}
	/* Webkitベースのブラウザ (Chrome, Safariなど) 用 */
	.cms_text.scroller::-webkit-scrollbar {
		width: 8px; /* スクロールバーの幅 */
	}
	.cms_text.scroller::-webkit-scrollbar-track {
		background: var(--base-color); /* トラックの色 */
		border-radius: 8px;
	}
	.cms_text.scroller::-webkit-scrollbar-thumb {
		background: var(--yellow-color); /* サムの色 */
		border-radius: 8px;
	}
	.cms_text.scroller table {
		width: 1140px !important;
	}
	/* コンテンツ幅が狭い時のスクロール */
	.mainContents .cms_text.scroller table {
		width: 820px !important;
	}
	/* スクロールヒント */
	.contents .scroll-hint-icon {
		width: 120px;
		height: 92px;
		border-radius: 10px;
		padding-top: 23px;
	}
	.contents .scroll-hint-icon::before {
		width: 32px;
		height: 40px;
		background-image: url(../img/icon_scrollhint.svg);
	}
	.contents .scroll-hint-icon::after {
		width: 32px;
		height: 11px;
		top: 16px;
		margin-left: -19px;
		background-image: url(../img/icon_scrollhint_arrow.svg);
	}
	.contents .scroll-hint-text {
		font-family: 'Barlow', sans-serif;
		font-weight: 600;
		letter-spacing: 0.03em;
		margin-top: 1px;
	}
	.contents .scroll-hint-icon-wrap.is-active .scroll-hint-icon {
		opacity: 1;
	}
	/* スクロールバー */
	.cms_text.scroller::-webkit-scrollbar {
		display: block;
		width: 100%;
		height: 8px;
		background-color: #e3edf1;
		border-radius: 4px;
	}
	.cms_text.scroller::-webkit-scrollbar-thumb {
		background-color: var(--yellow-color);
		border-radius: 4px;
	}
}

/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト●付き */
.cms_block ul > li,
.cms_block li ul.list > li,
.title-em {
	position: relative;
	padding-left: .9em;
}
.cms_block ul > li > strong {
	font-size: 1.8rem;
}
.cms_block ul > li::before,
.cms_block li ul.list > li::before,
.title-em::before {
	content: "";
	width: 8px;
	height: 8px;
	position: absolute;
	top: .6em;
	left: 0;
	background-color: var(--yellow-color);
}
/* ●なし */
.cms_block .list-none ul > li,
.cms_block ul.list-none > li {
	padding-left: 0;
}
.cms_block .list-none ul > li::before,
.cms_block ul.list-none > li::before {
	content: none;
}

/* 注釈リスト */
.cms_block .list-note ul > li,
.cms_block ul.list-note > li,
.cms_block li ul.list-note > li {
	padding-left: 1.3em;
}
.cms_block .list-note ul > li::before,
.cms_block ul.list-note > li::before,
.cms_block li ul.list-note > li::before {
	content: "※";
	font-size: 100%;
	color: var(--main-font-color);
	top: 0;
	width: auto;
	height: auto;
	background: none;
}
.cms_block ul.list-note > li.bold::before,
.cms_block li ul.list-note > li.bold::before {
	font-weight: 600;
}
/* チェックリスト */
.cms_block .list-check ul > li,
.cms_block ul.list-check > li,
.cms_block li ul.list-check > li {
	padding-left: 1em;
}
.cms_block .list-check ul > li::before,
.cms_block ul.list-check > li::before,
.cms_block li ul.list-check > li::before {
	content: "";
	display: block;
	width: 12px;
	height: 12px;
	background: url(../img/icon_check.svg) no-repeat 0 0 / cover;
	position: absolute;
	top: 0.5em;
	left: 0;
}

/* 数字リスト */
.cms_block ol > li {
	position: relative;
    counter-increment: cnt;
	padding-left: 20px;
}
.cms_block ol > li::before {
	content: counter(cnt) '.';
	position: absolute;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 112.5%;
	font-weight: bold;
	color: var(--yellow-color);
    line-height: 1;
	top: 0.2em;
	left: 0;
}
.cms_block ol > li > ul {
	margin: 5px 0;
}
/* 数字リスト 10以上の場合 */
.cms_block ol:has(> :nth-child(10)) > li {
	padding-left: 30px;
}
.cms_block ol:has(> :nth-child(10)) > li::before {
	width: 28px;
	text-align: right;
}
/* 丸数字リスト */
.cms_block ol.list-c > li,
.cms_block .list-c ol > li {
	position: relative;
    counter-increment: cnt;
	padding-left: 1.2em;
}
.cms_block ol.list-c > li::before,
.cms_block .list-c ol > li::before {
	content: counter(cnt);
	position: absolute;
	width: 16px;
	height: 16px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 60%;
	font-weight: bold;
	color: #fff;
	line-height: 16px;
	text-align: center;
	background-color: var(--yellow-color);
	border-radius: 50%;
	top: 0.7em;
	left: 0;
}
/* 強調リスト */
ul.list-em,
ol.list-em,
.list-em ul,
.list-em ol {
	display: flex;
	flex-wrap: wrap;
	row-gap: 2px;
}
ul.list-em > li,
ol.list-em > li,
.list-em ul > li,
.list-em ol > li,
.title-em {
	font-size: 2rem;
	font-weight: bold;
	line-height: 1.5;
	width: 100%;
	padding: 10px 15px 10px 35px;
	background-color: var(--base-color);
}
ul.list-em li::before,
.list-em ul li::before,
.title-em::before {
	top: calc(.6em + 10px);
	left: 15px;
}
/* 背景色内　強調リスト */
.bgBox ul.list-em > li,
.bgBox ol.list-em > li,
.bgBox .list-em ul > li,
.bgBox .list-em ol > li,
.bgBox .title-em {
	background-color: #fff;
}
/* 下の間開ける */
ul.list-space:first-child > li:not(:last-child),
ol.list-space:first-child > li:not(:last-child),
.list-space ul:first-child > li:not(:last-child),
.list-space ol:first-child > li:not(:last-child) {
	margin-bottom: 15px;
}
/* 横並びリスト */
.inline ul {
	display: flex;
	flex-wrap: wrap;
	gap: 3px 2em;
}
table .inline ul li {
	margin-right: 1em;
}
@media print, screen and (min-width: 768px) {
	/* 横並び 分割 */
	.list_div2 ul,
	ul.list_div2,
	.list_div3 ul,
	ul.list_div3,
	.list_div4 ul,
	ul.list_div4,
	.list_div2 ol,
	ol.list_div2,
	.list_div3 ol,
	ol.list_div3,
	.list_div4 ol,
	ol.list_div4 {
		display: grid;
		align-items: start;
		row-gap: 4px;
	}
	.list_div2 ul,
	ul.list_div2,
	.list_div2 ol,
	ol.list_div2 {
		column-gap: 4.21%;
		grid-template-columns: 1fr 1fr;
	}
	/* 3分割 */
	.list_div3 ul,
	ul.list_div3,
	.list_div3 ol,
	ol.list_div3 {
		column-gap: 3.947%;
		grid-template-columns: 1fr 1fr 1fr;
	}
	/* 4分割 */
	.list_div4 ul,
	ul.list_div4,
	.list_div4 ol,
	ol.list_div4 {
		column-gap: 3.157%;
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 強調リスト */
	.cms_block ul.list-em > li,
	.cms_block ol.list-em > li,
	.cms_block .list-em ul > li,
	.cms_block .list-em ol > li,
	.title-em {
		font-size: 1.7rem;
	}
	
	/* 数字リスト */
	.cms_block ol > li::before {
		font-size: 1.8rem;
	}
	/* 横並び */
	.inline ul li {
		padding-left: 0.8em;
		margin-right: 0.5em;
	}

	/* 横並び 分割 */
	.too_sp.list_div2 ul,
	ul.too_sp.list_div2,
	.too_sp.list_div3 ul,
	ul.too_sp.list_div3,
	.too_sp.list_div4 ul,
	ul.too_sp.list_div4,
	.too_sp.list_div2 ol,
	ol.too_sp.list_div2,
	.too_sp.list_div3 ol,
	ol.too_sp.list_div3,
	.too_sp.list_div4 ol,
	ol.too_sp.list_div4 {
		display: grid;
		align-items: start;
		row-gap: 8px;
	}
	.too_sp.list_div2 ul,
	ul.too_sp.list_div2,
	.too_sp.list_div2 ol,
	ol.too_sp.list_div2 {
		column-gap: 4.21%;
		grid-template-columns: 1fr 1fr;
	}
}

/* ------------------------------
 画像（PC）
------------------------------ */

/* ------------------------------
 背景（PC）
------------------------------ */
.bgBox {
	background-color: var(--base-color);
	padding: 50px;
}
.bgBox-l {
	background-color: var(--base-color);
	padding: 100px 120px;
}
/* ------------------------------
 背景（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.bgBox {
		padding: 30px 5%;
	}
	.bgBox-l {
		padding: 45px 8%;
	}
}
/* ------------------------------
 線（PC）
------------------------------ */
/* 上線 */
.line-t {
	border-top: dotted 1px var(--gray-color);
	padding-top: 20px;
	margin-top: 20px;
}
/* 下線 */
.line-b {
	border-bottom: dotted 1px var(--gray-color);
	padding-bottom: 20px;
	margin-bottom: 20px;
}
.cms_block.line-t {
	padding-top: 30px;
	margin-top: 0;
}


/* ------------------------------
 ボタン（PC）
------------------------------ */
/*デフォルト*/
.btn a,
button.btn,
.btn p.cms_link a  {
	display: inline-flex;
	align-items: center;
	min-height: 70px;
	position: relative;
	background-color: var(--yellow-color);
	padding: 5px 50px 5px 20px;
	font-family: var(--font-all);
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	text-align: left;
	text-decoration: none;
	transition: .3s ease-in-out;
}
.btn a::before {
	content: none;
}
.btn a::after,
button.btn::after,
.btn p.cms_link a::after,
.btn p.cms_link a[target="_blank"]::after {
	content: "";
	position: absolute;
	width: 26px;
	height: 26px;
	background-color: #fff;
	background-image: url(../img/arrow_y.svg);
	background-position: left 11px center;
	background-repeat: no-repeat;
	background-size: 5px auto;
	top: 0;
	bottom: 0;
    right: 20px;
	left: auto;
	margin: auto;
	border-radius: 100%;
	transition: .3s ease-in-out;
}
.btn a[target="_blank"]::after,
.btn p.cms_link a[target="_blank"]::after {
	background-image: url(../img/icon_blank_y.svg);
	background-size: 12px auto;
	background-position: center center;
}
/*一覧（リスト）*/
.btn.list a::after,
.btn.list p.cms_link a::after {
	background-color: transparent;
	background-image: url(../img/icon_list.svg);
	background-position: center center;
	background-size: 15px auto;
}
/*横並びリンク*/
.inlineLink {
	display: flex;
	flex-wrap: wrap;
}
.cms_block.inlineLink::after {
	content: none;
}
.inlineLink.ai-c {
	justify-content: center;
}
@media print, screen and (min-width: 768px) {
	/*デフォルト*/
	.btn a {
		min-width: 258px;
	}
	/*横並びボタン*/
	.inlineLink {
		justify-content: flex-start;
		align-items: center;
		gap: 10px 3.1579%;
	}
	.inlineLink .cms_link {
		margin-bottom: 0;
	}
	.inlineLink.ai-e {
		justify-content: flex-end;
	}
	.inlineLink:has(.div2):has(.div3):has(.div4) .btn a {
		min-width: unset;
		width: 100%;
		letter-spacing: -0.02em;
	}
	/* 2分割 */
	.inlineLink.div2 .btn {
		width: 47.895%;
	}
	/* 3分割 */
	.inlineLink.div3 .btn {
		width: 30.702%;
	}
	/* 4分割 */
	.inlineLink.div4 .btn {
		width: 22.6316%;
	}
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/*デフォルト*/
	.btn a,
	button.btn,
	a.btn,
	.btn p.cms_link a,
	.btn p.cms_link a[target="_blank"] {
		font-size: 1.6rem;
		min-width: 240px;
		min-height: 64px;
		padding-left: 17px;
		padding-right: 40px;
	}
	.btn a::after,
	button.btn::after,
	.btn p.cms_link a::after,
	.btn p.cms_link a[target="_blank"]::after {
		width: 22px;
		height: 22px;
		right: 17px;
	}
	.btn a::after,
	button.btn::after,
	.btn p.cms_link a::after {
		background-position: left 9px center;
	}
	.btn a[target="_blank"]::after,
	.btn p.cms_link a[target="_blank"]::after {
		background-size: 10px auto;
	}

	/*横並びボタン*/
	.inlineLink {
		gap: 5px;
	}
	.inlineLink:has(.btn) {
		flex-direction: column;
		align-items: center;
		gap: 10px 0;
	}
}

/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.pageLink {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 25px;
	background-color: var(--base-color);
}
.pageLink:has(.index) {
	min-height: 65px;
}
.pageLink .index {
	font-family: var(--font-en-normal);
	font-size: 1.5rem;
    font-weight: 600;
	line-height: 14px;
    color: var(--brown-color);
}
.pageLink ul {
	display: flex;
	flex-flow: row wrap;
	gap: 12px;
}
.pageLink,
.pageLink ul {
	gap: 10px 15px;
}
.pageLink .cms_link,
.pageLink p,
.pageLink .cms_link:not(.btn) a {
	font-size: 1.5rem;
	line-height: 14px;
	margin-bottom: 0;
}
.pageLink a {
	font-weight: 500;
	color: var(--main-font-color);
	text-decoration: none;
}
.pageLink a::after,
.pageLink p a::after,
.pageLink .cms_link a::after {
	content: "";
	width: 14px;
	height: 14px;
	display: inline-block;
	margin-left: 2px;
	border-radius: 100%;
	background: var(--brown-color) url(../img/arrow_w.svg) no-repeat center center / 4px auto;
	transform: rotate(90deg);
}
/* デフォルト打消し */
.pageLink ul li {
    padding-left: 0;
}
.pageLink ul li::before {
    content: none;
}
@media print, screen and (min-width: 768px) {
	.pageLink:has(.index) {
		padding: 25px 25px 25px 112px;
		position: relative;
	}
	.pageLink:has(.index) .index {
		position: absolute;
		top: 25px;
		left: 25px;
	}
	.pageLink .index {
		width: 70px;
		border-right: solid 1px var(--gray-color);
		margin-right: 10px;
		margin-bottom: 0;
	}
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.pageLink {
		flex-wrap: wrap;
		padding: 20px;
	}
	.pageLink .index {
		width: 100%;
		margin-bottom: 5px;
	}
	.pageLink .cms_link,
	.pageLink .cms_link:not(.btn) a {
		line-height: 1.5;
	}
}

/* ------------------------------
 下層ページリンク（PC）
------------------------------ */
.lowerLink {
	row-gap: 20px;
}
.jc-c .lowerLink {
	justify-content: center;
}
.cms_block ul.lowerLink > li {
	padding: 0;
}
.cms_block ul.lowerLink > li::before {
	content: none;
}
.lowerLink > li > a {
	color: #fff;
	text-decoration: none;
	display: block;
	position: relative;
    z-index: 1;
}
.lowerLink > li > a figure + p.title {
	margin-top: 15px;
}
.lowerLink > li > a .title {
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.5;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-height: 70px;
    padding: 5px 50px 5px 20px;
	background-color: var(--yellow-color);
	position: relative;
}
.lowerLink > li > a .title::after {
	content: "";
	position: absolute;
	width: 26px;
	height: 26px;
	background-color: #fff;
	background-image: url(../img/arrow_y.svg);
	background-position: left 11px center;
	background-repeat: no-repeat;
	background-size: 5px auto;
	top: 0;
	bottom: 0;
    right: 20px;
	left: auto;
	margin: auto;
	border-radius: 100%;
	transition: .3s ease-in-out;
}
.lowerLink > li > a[target="_blank"] .title::after {
	background-image: url(../img/icon_blank_y.svg);
	background-size: 12px auto;
	background-position: center center;
}
/* 画像がある場合 */
.lowerLink > li > a .imgBox + .title {
	color: var(--main-font-color);
	display: inline-block;
	min-height: auto;
	padding: 12px 50px 0 0;
	margin-right: 20px;
	background-color: #fff;
	position: absolute;
	left: 0;
	bottom: 0;
}
.lowerLink > li > a .imgBox + .title::after {
	top: 10px;
	background-color: var(--yellow-color);
	background-image: url(../img/arrow_w.svg);
}
.lowerLink > li > a[target="_blank"] .imgBox + .title::after {
	background-image: url(../img/icon_blank_w.svg);
}
/* ----------------------
 下層ページリンク（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.lowerLink.flexBox.div3 > * {
		width: 100%;
	}
	.lowerLink > li > a .title {
		font-size: 1.6rem;
		min-height: 64px;
		padding: 5px 40px 5px 17px;
	}
	.lowerLink > li > a .title::after {
		width: 22px;
		height: 22px;
		right: 17px;
		background-position: left 9px center;
	}
	.lowerLink > li > a[target="_blank"] .title::after {
		background-size: 10px auto;
	}
}

/* ------------------------------
 ブログ（PC）
------------------------------ */
.blogList li .imgBox {
	position: relative;
	margin-bottom: 20px;
}
.blogList li .imgBox img {
	width: 100%;
    aspect-ratio: 129 / 80;
    object-fit: cover;
}
.blogText {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
/* -- タイトル -- */
.blogText .title {
	width: 100%;
}
/* -- 日付 -- */
.date {
	font-family: Arial, sans-serif;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 26px;
	color: var(--gray-color-02);
}
/* -- カテゴリ -- */
.cate {
	font-size: 1.3rem;
	font-weight: bold;
	color: #fff;
	line-height: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 84px;
	height: 26px;
	background-color: var(--yellow-color);
}
/* -- 下層ページ -- */
.dateBox {
	display: flex;
	align-items: center;
	gap: 0 10px;
	margin-bottom: 40px;
}
@media print, screen and (min-width: 768px) {
	.blogList.div4 {
		gap: 40px 3.157%;
	}
	.blogList.div4 li {
		width: 22.632%;
	}
}
/* ----------------------
 ブログ一覧（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.blogList li .imgBox {
		margin-bottom: 15px;
	}
	/* -- 下層ページ -- */
	.dateBox {
		margin-bottom: 30px;
	}
}

/* ------------------------------
 Googlemap埋め込み
------------------------------ */
.map iframe {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 20px;
	aspect-ratio: 41 / 25;
	object-fit: cover;
}
/* ----------------------
 Googlemap埋め込み（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.map iframe {
		border-radius: 15px;
	}
}

/* ------------------------------
 動画埋め込み
------------------------------ */
.movieBox iframe {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 20px;
	aspect-ratio: 3 / 1.72;
	object-fit: cover;
}
/* ----------------------
 動画埋め込み（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.movieBox iframe {
		border-radius: 15px;
	}
}

/* ------------------------------
 順番指定
------------------------------ */
@media print, screen and (min-width: 768px) {
	.order1 { order: 1;}
	.order2 { order: 2;}
	.order3 { order: 3;}
}
@media screen and (max-width: 767px) {
	.sp_order1 { order: 1;}
	.sp_order2 { order: 2;}
	.sp_order3 { order: 3;}
	.sp_order4 { order: 4;}
}
/* ------------------------------
 position
------------------------------ */
.posi-rel {
    position: relative;
}

/* ------------------------------
 開閉コンテンツ
------------------------------ */
/* 開閉見出し */
.toggleBlock .title {
	font-size: 1.8rem;
	font-weight: bold;
	color: #fff;
	padding: 12px 18px;
	background-color: var(--yellow-color);
	margin-bottom: 2px;
	position: relative;
}
.toggleBlock .title button {
	position: relative;
  	z-index: 1;
	width: 100%;
	text-align: left;
	appearance: none;
	border: none;
	background: none;
	font: inherit;
	color: inherit;
	cursor: pointer;
}
/* 開閉アイコン */
.toggleBlock .title::before,
.toggleBlock .title::after {
	content: "";
	width: 22px;
	height: 22px;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 15px;
	margin: auto;
	background-color: #fff;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 8px auto;
	border-radius: 100%;
}
.toggleBlock .title::after {
	background-image: url(../img/icon_plus_y.svg);
}
.toggleBlock .title::before {
	opacity: 0;
	background-image: url(../img/icon_minus_y.svg);
}
/* 開いたとき */
.toggleBlock .title.is-open::after {
	opacity: 0;
}
.toggleBlock .title.is-open::before {
	opacity: 1;
}
/* 開閉コンテンツ */
.toggleBlock .toggleContents {
	display: none;
	padding-top: 10px;
}
.toggleBlock .toggleContents:not(:last-child) {
	margin-bottom: 30px;
}
/* ----------------------
 開閉コンテンツ（SP）
---------------------- */
@media screen and (max-width: 767px) {
	/* 開閉見出し */
	.toggleBlock .title {
		font-size: 1.6rem;
		padding: 12px 35px 12px 15px;
	}
	/* 開閉アイコン */
	.toggleBlock .title::before,
	.toggleBlock .title::after {
		width: 20px;
		height: 20px;
	}
}