@charset "utf-8";

/* ------------------------------
見出し・テキスト（PC）
------------------------------ */
/* H1 */
.contentsTop h1,
.contents .heading p {
	position: relative;
	line-height: 1;
}

.contentsTop h1 span.en,
.contents .heading p span.en {
	display: block;
	font-size: 7.5rem;
	font-family: "Oswald", sans-serif;
	font-weight: 500;
	margin-bottom: 20px;
}

.contentsTop h1 span.ja,
.contents .heading p span.ja {
	display: block;
	color: #00327b;
	font-weight: bold;
	font-size: 2.6rem;
}

.contentsTop h1 span.ja::before,
.contents .heading p span.ja::before {
	display: inline-block;
	content: "●";
	color: #0a7fd3;
	font-size: 40%;
	vertical-align: middle;
	margin-right: 6px;
	margin-bottom: 5px;
}

.contents h1 {
	position: relative;
	font-size: 5rem;
	font-weight: bold;
	line-height: 1.5;
}

.contents h1 span.en {
	color: #00327b;
	display: block;
	font-size: 2.4rem;
	font-family: "Oswald", sans-serif;
	font-weight: 400;
}

.contents h1 span.ja {
	display: block;
	font-size: 5rem;
	line-height: 1.4;
}

/* H2 */
.contentsTop h2,
.contents h2 {
	position: relative;
	display: block;
	font-size: 2.8rem;
	font-weight: bold;
	line-height: 1.5;
}

.contentsTop h2 {
	padding-bottom: 24px;
	margin-bottom: 40px;
}

.contents h2 {
	padding-bottom: 18px;
	margin-bottom: 30px;
}

.contentsTop h2::before,
.contents h2::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: #00327b;
}

/* H3 */
.contentsTop h3,
.contents h3 {
	display: block;
	font-size: 2.4rem;
	font-weight: bold;
	line-height: 1.5;
	padding-left: 10px;
	border-left: 4px solid #00327b;
}
.contentsTop h3 {
	margin-bottom: 25px;
}

/* H4 */
.contentsTop h4,
.contents h4 {
	display: block;
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1.5;
	color: #00327b;
}
.contentsTop h4 {
	margin-bottom: 25px;
}

/* H3,H4 */
.contents h3,
.contents h4 {
	margin-bottom: 20px;
}

/* H5 */
.contentsTop h5,
.contents h5 {
	display: block;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.5;
}
.contentsTop h5 {
	margin-bottom: 25px;
}

/* H6 */
.contentsTop h6,
.contents h6 {
	display: block;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1.5;
}
.contentsTop h6 {
	margin-bottom: 20px;
}

/* H5,H6 */
.contents h5,
.contents h6 {
	margin-bottom: 15px;
}

/*リードテキスト*/
.leadBlock {
	font-weight: 500;
	margin-bottom: 60px;
}
.leadBlock .leadtext{
	font-size: 3.5rem;
	font-weight: bold;
	margin-bottom: 10px;
}

/*トップメッセージ*/
.topmessage .cms_text{
	margin-bottom: 30px;
}

.topmessage .cms_text span{
	font-size: 2.1rem;
	font-weight: bold;
}

.topmessage h3{
	padding-left: 0;
	border-left: 0;
}

/*トップメッセージ(PC)*/
@media print,screen and (min-width: 768px) {
	.topmessage-sp{
		display: none;
	}
}

/*トップメッセージ(スマホ)*/
@media screen and (max-width: 767px) {
	.topmessage-sp h3{
		padding-left: 0;
		border-left: 0;
		font-size: 2.3rem;
	}
	.topmessage-sp span{
		font-size: 1.8rem;
		font-weight: bold;
	}

	.leadBlock .leadtext{
		font-size: 2rem;
	}
}

/* 水色丸 */
.listtext {
	font-size: 1.8rem;
	font-weight: 700;
	margin-bottom: 15px;
}

.listtext::before {
	display: inline-block;
	content: "●";
	color: #0a7fd3;
	font-size: 40%;
	vertical-align: middle;
	margin-right: 6px;
	margin-bottom: 5px;
}

/* トップ部分 */
.heading {
	position: relative;
	padding-top: 100px;
	margin-bottom: 70px;
	z-index: 1;
}

.contentsTop::before,
.contents::before {
	content: "";
	width: 100%;
	height: 812px;
	background: url(/img/contents_bgimg.jpg) no-repeat center top;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: -1;
}

@media print,screen and (min-width: 768px) {
	.contentsTop .heading:has(.mainimg) {
		margin-bottom: 50px;
	}
}

/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* H1背景 */
	.heading {
		padding-top: 50px;
		margin-bottom: 50px;
	}

	.contents .heading{
		margin-bottom: 40px;
	}

	.contentsTop::before,
	.contents::before {
		height: 220px;
		background: url(/img/contents_bgimg_sp.png) no-repeat center top;
	}

	/* H1 */
	.contents h1 {
		padding-top: 50px;
	}

	.contents .heading .inBlock h1 {
		padding-top: 0;
	}

	.contentsTop h1 span.ja,
	.contents .heading p span.ja {
		font-size: 2.0rem;
	}

	.contentsTop h1 span.en,
	.contents .heading p span.en {
		font-size: 4.3rem;
		margin-bottom: 15px;
	}

	.contents h1 span.ja {
		font-size: 3.1rem;
		line-height: 1.3;
	}

	.contents h1 span.en {
		font-size: 1.8rem;
	}

	/* H2 */
	.contentsTop h2,
	.contents h2 {
		font-size: 2.4rem;
		line-height: 1.4;
		padding-bottom: 18px;
		margin-bottom: 25px;
	}

	.contentsTop h2::after,
	.contents h2::after {
		width: 65px;
	}

	/* H3 */
	.contentsTop h3,
	.contents h3 {
		font-size: 2.2rem;
		line-height: 1.4;
		margin-bottom: 20px;
	}

	/* H4 */
	.contentsTop h4,
	.contents h4 {
		font-size: 2rem;
		line-height: 1.4;
		margin-bottom: 20px;
	}

	/* H5 */
	.contentsTop h5,
	.contents h5 {
		font-size: 1.8rem;
		line-height: 1.4;
		margin-bottom: 15px;
	}

	/* H6 */
	.contentsTop h6,
	.contents h6 {
		font-size: 1.7rem;
		line-height: 1.4;
		margin-bottom: 15px;
	}

	/*リードテキスト*/
	.leadtext {
		font-size: 1.7rem;
	}
}

/* ------------------------------
 横幅（PC）
------------------------------ */
/* その他 */
@media print,screen and (min-width: 768px) {
	/* 1/2 */
	.w1-2 {
		width: 47.89474%;
	}
	.w546 {
		width: 546px;
	}
	/* 1/3 */
	.w1-3 {
		width: 30.70176%;
	}
	.w350 {
		width: 350px;
	}
	.w1-3.cms_fl+.w1-3.cms_fl,
	.w1-3.fl+.w1-3.fl {
		margin-left: 3.94736%;
	}
	.w350.cms_fl+.w350.cms_fl,
	.w350.fl+.w350.fl {
		margin-left: 45px;
	}
	/* 2/3 */
	.w2-3 {
		width: 65.35088%;
	}
	.w745 {
		width: 745px;
	}
	/* 1/4 */
	.w1-4 {
		width: 22.63158%;
	}
	.w258 {
		width: 258px;
	}
	.w1-4.cms_fl+.w1-4.cms_fl,
	.w1-4.fl+.w1-4.fl {
		margin-left: 3.15789%;
	}
	.w258.cms_fl+.w258.cms_fl,
	.w258.fl+.w258.fl {
		margin-left: 36px;
	}
	/* 3/4 */
	.w3-4 {
		width: 74.21052%;
	}
	/* その他 */
	.w250 {
		width: 250px;
	}
	.w260 {
		width: 260px;
	}
	.w305 {
		width: 305px;
	}
	.w390 {
		width: 390px;
	}
	.w405 {
		width: 405px;
	}
	.w410 {
		width: 410px;
	}
	.w420 {
		width: 420px;
	}
	.w500 {
		width: 500px;
	}
	.w532 {
		width: 532px;
	}
	.w553 {
		width: 553px;
	}
	.w720 {
		width: 720px;
	}
	.w860 {
		width: 860px;
	}
	.w980 {
		width: 980px;
	}
	/*背景色の中のブロック*/
	.w260.cms_fl+.w260.cms_fl {
		margin-left: 33px;
	}
}

/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.w1-2+.w1-2:not(.sp_w1-2),
	.w1-3+.w1-3:not(.sp_w1-3),
	.w1-3+.w2-3:not(.sp_w2-3),
	.w2-3+.w1-3:not(.sp_w1-3) {
		margin-top: 40px !important;
	}
	.w1-3 img {
		width: 100%;
	}
	.sp_w1-2 {
		width: 47%;
	}
	.sp_w1-3 {
		width: 30%;
	}
	.sp_w2-3 {
		width: 65%;
	}
	.sp_w1-3.cms_fl+.sp_w1-3.cms_fl,
	.sp_w1-3.fl+.sp_w1-3.fl {
		margin-left: 5%;
	}
	.sp_w1-2.cms_fl,
	.sp_w1-2.fl,
	.sp_w1-3.cms_fl,
	.sp_w1-3.fl,
	.sp_w2-3.cms_fl,
	.sp_w2-3.fl {
		float: left !important;
	}
	.sp_w1-2.cms_fr,
	.sp_w1-2.fr,
	.sp_w1-3.cms_fr,
	.sp_w1-3.fr,
	.sp_w2-3.cms_fr,
	.sp_w2-3.fr {
		float: right !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;
}

/* 横並び4列（SP横並び2列） */
.flexBox.div4 {
	flex-wrap: wrap;
}

/* 横並びで写真キャプションが上 */
.flexBox.capTop>* {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

@media print,screen and (min-width: 768px) {
	/* 横並び2列 */
	.flexBox.div2 {
		flex-wrap: wrap;
		gap: 40px 48px;
	}

	.flexBox.div2>* {
		width: 546px;
		margin-bottom: 0;
	}

	/* 横並び3列 */
	.flexBox.div3 {
		flex-wrap: wrap;
		gap: 40px 30px;
	}

	.flexBox.div3>* {
		width: 360px;
		margin-bottom: 0;
	}

	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		gap: 40px 36px;
	}

	.flexBox.div4>* {
		width: 258px;
		margin-bottom: 0;
	}
}

/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* グラデ枠ボックス */
	.borderBox {
		padding: 17px 27px 27px;
	}

	/* 横並び2列・横並び3列 */
	.flexBox.div2,
	.flexBox.div3 {
		display: block !important;
	}

	/* 横並び4列（SP横並び2列） */
	.flexBox.div4>* {
		width: 47.895%;
	}

	.flexBox.div4 {
		gap: 0 4.21%;
	}
}

/* ------------------------------
 グリッド
------------------------------ */
@media print,screen and (min-width: 768px) {
	.grid-box2 {
		display: grid;
		grid-template-columns: 546px 546px;
		column-gap: 48px;
		row-gap: 48px;
	}
	.grid-box3 {
		display: grid;
		grid-template-columns: 350px 350px 350px;
		column-gap: 48px;
		row-gap: 20px;
	}
	.grid-box4 {
		display: grid;
		grid-template-columns: 258px 258px 258px 258px;
		column-gap: calc((100% - 1032px) / 3);
		row-gap: 20px;
	}
	/* 順番 */
	.order1 {
		order: 1;
	}
	.order2 {
		order: 2;
	}
	.order3 {
		order: 3;
	}
}

@media screen and (max-width: 767px) {
	.grid-box2 a {
		margin-bottom: 40px;
	}

	.grid-box3 .cms_text {
		margin-bottom: 40px;
	}

	.grid-box3 img {
		width: 100%;
	}

	.grid-box4 {
		display: grid;
		grid-template-columns: 47.5% 47.5%;
		column-gap: 5%;
		row-gap: 20px;
	}
}

/* hover画像拡大 */
a .img-hover {
	position: relative;
	display: block;
	overflow: hidden;
}

a .img-hover img {
	display: block;
	transition-duration: 0.3s;
	overflow: hidden;
	width: 100%;
}

a:hover .img-hover img,
a:focus .img-hover img {
	opacity: 1;
	overflow: hidden;
	transform: scale(1.1);
	transition-duration: 0.3s;
}

/* ------------------------------
アクセスマップ
------------------------------ */
.map {
	width: 100%;
	height: 100%;
}

.map iframe {
	width: 100%;
	height: 100%;
	border-radius: 12px;
	aspect-ratio: 57 / 25;
}

@media screen and (max-width: 767px) {
	.contents .cms_text.map iframe {
		aspect-ratio: 1 / 1;
		border-radius: 6px;
	}
}

/* ------------------------------
 下線
------------------------------ */
.border_b {
	border-bottom: 1px solid #DDDDDD;
	padding-bottom: 30px;
	margin-bottom: 30px;
}

/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
table {
	width: 100% !important;
	border-collapse: collapse;
	border: 1px solid #ced5d9;
}

table th {
	background: #eceff0;
	font-weight: bold;
}

table tr:first-child td {
	border-top: 1px solid #ced5d9;
}

/* 線ありのテーブル */
.cms_text.nomal table th:first-child {
	width: 23%;
}

.cms_text.nomal table td.w30p {
	width: 14%;
}

.cms_text.nomal table td.total span {
	font-weight: bold;
	vertical-align: text-top;
}

.cms_text.nomal table td.total strong {
	font-weight: bold;
	font-size: 1.8rem;
	float: right;
}

/* thead付きのテーブル */
.scroller table tbody td {
	border-left: 1px solid #ced5d9;
	vertical-align: middle;
}

/* thead付きのテーブル */
.scroller table th, .scroller table td{
	padding: 17px 16px;
}

.scroller table thead {
	border-bottom: 1px solid #ced5d9;
}

.scroller table thead th {
	border-left: 1px solid #ced5d9;
}

.scroller table thead th:first-child {
	border-left: none;
}

.scroller table tbody th {
	border-top: 1px dotted #ced5d9;
}

.scroller table tbody tr:first-child th {
	border-top: none;
}

/* PC限定 */
@media print,screen and (min-width: 768px) {
	table tr:not(:last-child) th,
	table tr:not(:last-child) td {
		border-bottom: 1px dotted #ced5d9;
	}
	.scroller table tr:not(:last-child) th,
	.scroller table tr:not(:last-child) td {
		border-bottom: 1px solid #ced5d9;
	}
	table th,
	table td {
		padding: 20px;
	}
	/* スクロール */
	.cms_text.scroller table th,
	.cms_text.scroller table td {
		padding: 18px 16px 18px !important;
	}
}

/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	table th,
	table td {
		padding: 17px 18px;
	}
	table td {
		border-bottom: 1px dotted #ced5d9;
	}
	table tr:first-child td {
		border-top: none;
	}
	table tr:last-child > td {
		border-bottom: none;
	}

	/* レスポンシブ */
	.res table th,
	.res table td {
		display: block;
		width: auto !important;
	}

	/* スクロール */
	.cms_text.scroller table {
		width: 1140px !important;
	}

	/* 線ありのテーブル */
	.cms_text.nomal table th:first-child {
		width: 33% !important;
	}
	.cms_text.nomal table td.w30p {
		width: 22%;
	}
}

/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト●付き */
.cms_text ul > li,
.cms_image ul > li {
	position: relative;
	padding-left: 1em;
}

.cms_text.list-no_bold ul > li,
.cms_image.list-no_bold ul > li {
	font-weight: 500;
}

.cms_text ul > li::before,
.cms_image ul > li::before {
	content: "●";
	position: absolute;
	top: .6em;
	left: 0;
	color: #0a7fd3;
	font-size: 60%;
}

/* ページ内リンク */
.cms_text.pageLink {
	margin: auto;
}

.cms_text.pageLink ul {
	display: flex;
	flex-flow: row wrap;
	gap: 24px 35px;
}

.cms_text.pageLink ul li {
	padding-left: 0;
}

.cms_text.pageLink ul li:hover a {
	opacity: 1;
}

.cms_text.pageLink ul > li::before {
	content: none;
}

.cms_text.pageLink ul li a {
	display: block;
	font-size: 1.6rem;
	font-weight: bold;
	color: #1A1A1A;
	text-decoration: none !important;
	border-bottom: 1px solid #00327b;
	padding-bottom: 8px;
}

.cms_text.pageLink ul li a::after {
	content: "";
	display: inline-block;
	width: 15px;
	height: 15px;
	background: url('../img/icon_arrow05.svg') no-repeat;
	vertical-align: middle;
	margin-left: 6px;
	margin-bottom: 3px;
}

/* -- 横並びのリスト(PC) -- */
@media print,screen and (min-width: 768px) {
	.list-grid{
		width: 60%;
	}

	.list-grid ul{
		display: grid;
		grid-template-columns:repeat(auto-fit, minmax(20%, max-content));
		grid-template-rows: repeat(2, auto);
		grid-auto-flow: column;
		gap: 0 35px;
	}
}
/* -- 横並びのリスト(SP) -- */
@media screen and (max-width: 767px) {
	.list-grid{
		font-size: 1.6rem;
	}
}

/* ページ内リンク（PC） */
@media print,screen and (min-width: 768px) {
	.cms_text.pageLink {
		width: 100%;
		max-width: 1140px;
		margin-bottom: 95px !important;
	}
}

/* ページ内リンク（SP） */
@media screen and (max-width: 767px) {
	.cms_block:has(.pageLink){
		margin-bottom: 40px;
	}

	.cms_text.pageLink {
		width: 100%;
		max-width: 250px;
		margin: 0;
	}

	.cms_text.pageLink ul {
		gap: 24px;
	}

	.cms_text.pageLink ul li a {
		font-size: 1.5rem;
		padding-bottom: 5px;
	}
}

/* 横並び */
.inline ul li {
	display: inline-block;
	margin-right: 2em;
}

/* 数字 */
.cms_text ol > li {
	counter-increment: count 1;
	position: relative;
	padding-left: 1.6em;
}

.cms_text ol > li:before {
	content: counter(count)".";
	position: absolute;
	top: 0;
	left: 0;
}

/* 横並び2列・3列 */
@media print,screen and (min-width: 768px) {
	.div2 ul,
	.div3 ul,
	.div4 ul {
		display: flex;
		flex-wrap: wrap;
	}

	.div2.gap-m ul,
	.div3.gap-m ul,
	.div4.gap-m ul {
		gap: 25px 0;
	}

	.gap-m:not(.div2):not(.div3):not(.div4) ul li:not(:last-child) {
		margin-bottom: 25px;
	}

	.div2 ul li,
	.div3 ul li,
	.div4 ul li {
		padding-right: 1em;
	}

	.div2 ul li {
		width: 50%;
	}

	.div3 ul li {
		width: calc(100% / 3);
	}

	.div4 ul li {
		width: calc(100% / 4);
	}
}

/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並び */
	.inline ul li {
		margin-right: 1em;
	}

	.gap-m:not(.div2):not(.div3) ul li:not(:last-child) {
		margin-bottom: 15px;
	}

	/* 横並び2列・3列 */
	.div3 ul,
	.div4 ul {
		display: flex;
		flex-wrap: wrap;
	}

	.div2 ul li {
		padding-right: 1em;
		width: 100%;
	}

	.div3 ul li,
	.div4 ul li {
		padding-right: 1em;
		width: 50%;
	}
}

/* ------------------------------
 ボタン（PC）
------------------------------ */
/* 基本 */
.btn a,
a .btn,
.form button {
	position: relative;
	display: inline-block;
	min-width: 270px;
	font-size: 1.7rem;
	font-weight: 700;
	text-align: left;
	text-decoration: none;
	color: #fff;
	background: #00327b;
	border-radius: 5px;
	padding: 24px 100px 24px 30px;
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
	line-height: 1.2;
}

.btn a::after,
a .btn::after,
.form button::after {
	content: "";
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	display: inline-block;
	width: 70px;
	height: 100%;
	margin: auto;
	border-left: 1px solid #8098bd;
	background: url('../img/icon_arrow02.svg') no-repeat center / 30%;
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}

/* 第2階層・第3階層用 */
.inlinelink {
	display: flex;
}

.cms_block.inlinelink::after {
	content: none;
}

/* TOP：採用情報ボタン */
.btn.recbtn a,
a .btn.recbtn {
	color: #00327b;
	background: #fff;
}

.btn.recbtn a::after,
a .btn.recbtn::after {
	background: url('../img/icon_blank.svg') no-repeat center / 44px;
	border-left: 1px solid #00327b;
}

/* footer：お問合せボタン */
.btn.mailbtn a::after,
a .btn.mailbtn::after {
	background: url('../img/icon_mail.svg') no-repeat center / 44px;
}

/* ----------------------
 PC用(ボタン)
---------------------- */
@media print,screen and (min-width: 768px) {
	.btn a,
	a .btn,
	.form button {
		min-height: 70px;
	}

	.btn.mailbtn a::after,
	a .btn.mailbtn::after {
		width: 90px;
	}

	/* 第2階層・第3階層用 */
	.inlinelink {
		gap: 25px;
	}
}

/* ----------------------
 スマホ用コード(ボタン)
---------------------- */
@media screen and (max-width: 767px) {
	.btn a,
	a .btn,
	.form button {
		min-width: 216px;
		font-size: 1.5rem;
		padding: 19px 80px 19px 20px;
	}
	.btn a::after,
	a .btn::after,
	.form button::after {
		width: 57px;
	}

	/* TOP：採用情報ボタン */
	.btn.recbtn {
		margin-bottom: 45px;
	}

	/* 第2階層・第3階層用 */
	.inlinelink {
		flex-direction: column;
		gap: 20px 0;
		margin-bottom: 40px;
	}
}

@media screen and (max-width: 374px) {
	.btn a,
	a .btn,
	.form button {
		min-width: 100%;
	}
}

/* ------------------------------
 背景
------------------------------ */
.bg-gray {
    border-radius: 6px;
	padding: 30px 60px;
	background-color: #F4F5F6;
}

@media print,screen and (min-width: 768px) {
	.bg-gray.plr80 {
		padding: 70px 80px;
	}
}

/* ----------------------
 スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {
	.bg-gray {
		padding: 30px 20px;
	}
}

/* ------------------------------
 youtube埋め込み
------------------------------ */
.movie {
	position: relative;
}
.movie:before {
	content: "";
	display: block;
	padding-top: 57.6923%;
}
.movie iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.movie.r20 iframe {
	border-radius: 20px;
}

@media screen and (max-width: 767px) {
	.movie.r20 iframe {
		border-radius: 15px;
	}
}

/* ------------------------------
 角R（PC）
------------------------------ */
.r10,
.r10 img {
	border-radius: 10px;
}
.r15,
.r15 img {
	border-radius: 15px;
}
.r20,
.r20 img {
	border-radius: 20px;
}
.r35,
.r35 img {
	border-radius: 35px;
}
.r0,
.r0 img {
	border-radius: 0 !important;
}
/* ------------------------------
 角R（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.r10,
	.r10 img {
		border-radius: 6px;
	}
	.r15,
	.r15 img {
		border-radius: 11px;
	}
	.r20,
	.r20 img {
		border-radius: 15px;
	}
	.r35,
	.r35 img {
		border-radius: 20px;
	}
}
/* ------------------------------
 ページ内リンク
------------------------------ */
.page-link {
	display: flex;
	background-color: #F1F1F1;
}
.page-link>* {
	margin: 0 !important;
}
/* ------------------------------
 PC用限定
------------------------------ */
@media print,screen and (min-width: 768px) {
	.page-link {
		align-items: center;
		justify-content: center;
		flex-flow: row wrap;
		padding: 20px 40px;
		gap: 20px 40px;
		border-radius: 80px;
		margin-top: 150px;
	}
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.page-link {
		flex-flow: wrap;
		padding: 25px 30px;
		border-radius: 10px;
		gap: 10px 0;
	}

	.page-link>* {
		width: 100%;
	}
}
/* ------------------------------
 リンクボックス
------------------------------ */
.menu-link a {
	display: block;
	width: 100%;
}

.menu-link a:hover {
	opacity: 1;
}

.menu-link a .img_hover {
	border-radius: 10px;
}

.menu-link p {
	position: relative;
	bottom: 0;
	right: 0;
	margin-top: 15px;
	padding-right: 31px;
	font-size: 2.1rem;
	font-weight: bold;
}

.menu-link p::after {
	content: "";
	position: absolute;
	display: inline-block;
	width: 30px;
	height: 30px;
	right: 0;
	top: 0;
	bottom: 0;
	border-radius: 4px;
	margin: auto;
	background: url('../img/icon_arrow.svg') no-repeat center / 100%;
}

/* 第2階層 */
.contentsTop .flexBox {
	gap: 70px 48px;
}

.contentsTop .menu-link a .img_hover {
	height: 315px;
}

/* ------------------------------
 PC用
------------------------------ */
@media print,screen and (min-width:768px) {
	.menu-link.w1-3 a .img_hover {
		height: 230px;
	}

	.contentsTop .menu-link p,
	.contents .menu-link p {
		font-size: 2rem;
	}
}

/* ------------------------------
 リンクボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.menu-link.w1-3 {
		width: 100%;
		height: auto;
	}

	.menu-link a .img_hover {
		border-radius: 6px;
		width: 100%;
		height: 100%;
		aspect-ratio: 35 / 23;
	}
	
	.menu-link p {
		font-size: 1.9rem;
		line-height: 1.3;
		margin-top: 20px;
	}

	.menu-link .textBox {
		padding-right: 60px;
		left: 15px;
		font-size: 1.8rem;
	}

	.menu-link .textBox p::after {
		right: 15px;
	}

	.contentsTop .flexBox,
	.contents .flexBox {
		display: block !important;
	}

	.contentsTop .menu-link a .img_hover,
	.contents .menu-link a .img_hover {
		width: 100%;
		height: 100%;
		aspect-ratio: 35 / 23;
	}
}

/* ------------------------------
 メインイメージ（PC）
------------------------------ */
@media print,screen and (min-width:768px) {
	.mainimg {
		margin-right: calc(29% - 50vw);
		margin-top: 50px;
	}

	.mainimg img {
		width: 100%;
		min-width: 100%;
		object-fit: cover;
		overflow: hidden;
		border-radius: 40px 0 0 40px;
		display: flex;
		align-items: center;
	}

	.contentsTop .mainimg img {
		border-radius: 30px 0 0 30px;
	}

	.contents .mainimg {
		margin: 50px 0 0 0;
	}

	.contents .mainimg img {
		border-radius: 12px;
	}
}

@media print,screen and (min-width:1140px) {
	.mainimg {
		margin-right: calc(50% - 50vw);
	}
}

/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.mainimg {
		margin-right: calc(50% - 50vw);
		margin-top: 25px;
	}

	.mainimg img {
		width: 100%;
		object-fit: cover;
		overflow: hidden;
		align-items: center;
		min-width: 100%;
		border-radius: 10px 0 0 10px;
	}

	.contentsTop .mainimg img {
		height: 157px;
	}

	.contents .mainimg {
		margin: 0 auto;
	}

	.contents .mainimg img {
		height: 138px;
		margin-top: 25px;
		border-radius: 10px;
	}
}

/* ------------------------------
 イメージ（PC）
------------------------------ */
.contents .cms_block .cms_image img {
	border-radius: 12px;
}
@media screen and (max-width: 767px) {
	.contents .cms_block .cms_image img {
		border-radius: 6px;
	}
}

/* ------------------------------
 新着情報
------------------------------ */
/* -- お知らせリスト -- */
.newsList {
	border-top: solid 1px #c9d0d4;
}

.newsList li {
	display: flex;
	padding: 25px 0;
	gap: 0 25px;
	border-bottom: solid 1px #c9d0d4;
}

.newsList li a,
.newsList li > .title {
	color: #1A1A1A;
	width: calc(100% - 95px);
}

.newsList li .title {
	font-size: 1.6rem;
	font-weight: 700;
}

.newsList li.new .title::after {
	display: inline-block;
	content: "NEW";
	background: #0a7fd3;
	color: #fff;
	font-size: 1.1rem;
	font-family: "Ozwald", sans-serif;
	font-weight: 600;
	text-align: center;
	vertical-align: middle;
	line-height: 1;
	padding: 4px 9px 5px;
	border-radius: 10px;
}

.date {
	color: #454a4d;
	width: 70px;
	font-family: "Oswald", sans-serif;
	font-size: 1.6rem;
}

.new {
	width: 100%;
}

/* -- リンクありの場合 -- */
.newsList a {
	position: relative;
	display: block;
}
.newsList a::after {
	content: "";
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 44px;
	height: 44px;
	background: url(../img/icon_arrow03.svg) no-repeat;
	margin: auto;
}

.newsList a[target="_blank"]::after {
	background: url(../img/icon_blank.svg) no-repeat;
}

@media print,screen and (min-width:768px) {
	.newsList li .title {
		font-weight: 500;
	}

	.newsList a {
		padding-right: 50px;
	}
}

/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- お知らせリスト -- */
	.newsList li {
		display: block;
		padding: 20px 0;
	}

	.newsList li a {
		width: 100%;
	}

	.newsList a::after {
		display: none;
	}

	.newsList li .title {
		width: 100%;
		font-weight: 400;
	}

	.newsList li.new .title::after {
		padding: 6px 8px 5px 9px;
	}
}

/* ------------------------------
 事例紹介
------------------------------ */
/* 横幅880px */
.w880 .cms_block .date {
	text-align: right;
	width: 100%;
	margin-bottom: 10px;
	font-weight: normal;
}

.w880 .cms_block.bg-gray .w3-4 {
	line-height: 1.6;
}

.w880 .cms_block.bg-gray h4 {
	font-size: 2.1rem;
	border-bottom: 1px solid #dddddd;
	padding-bottom: 15px;
}

.w880 .cms_block.bg-gray h5 {
	font-size: 1.8rem;
	margin-bottom: 25px;
}

@media print,screen and (min-width:768px) {
	/* 横幅880px */
	.w880 .cms_block {
		width: 880px;
	}

	.w880 .cms_block.bg-gray {
		padding: 45px 50px;
	}

	.flexBox.ai-c.jc-sb .cms_image {
		margin-bottom: 0;
	}
}

/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横幅880px */
	.w880.contents h1 {
		padding-top: 0;
	}

	.w880.contents .case_title {
		padding-top: 50px;
	}
}