@charset "utf-8";
/* CSS Document */

#lower-image {
	background: url(../../images/main_image.jpg) center top;
	background-size: cover;
}


:where(.lower-contents .main-contents) h2 {
	margin-bottom: 1em;
	font-weight: bold;
	color: var(--color-link);
}

:where(.lower-contents .main-contents) h3,
:where(.lower-contents .main-contents) h4,
:where(.lower-contents .main-contents) h5 {
	color: inherit;
	margin-bottom: 1em;
	font-weight: bold;
}

@media screen and (min-width: 1280px) {
	:where(.contents-area) section h3 {
		font-size: 1.7rem;
	}
}

/* -------------------------------------------- */


.sbs {
	
}

.sbs__item {
	margin-bottom: 30px;
}

.sbs__item:last-child {
	margin-bottom: 0;
}

.sbs__item > *:last-child {
	margin-bottom: 0;
}

@media only screen and (min-width: 768px) {
	
}

@media only screen and (min-width: 1280px) {
	.sbs {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	.sbs__item {
		width: calc(50% - 25px);
		margin-bottom: 0;
	}
}


.fig {
	max-width: 640px;
	margin: 0 auto;
}

.fig__item {
	
}

.fig__item img {
	display: block;
	width: 100%;
	margin-bottom: 10px;
}

.fig__caption {
	font-size: 85%;
}

@media only screen and (min-width: 768px) {
	
}

@media only screen and (min-width: 1280px) {
	.fig {
		max-width: 100%;
		margin: 0;
	}
}


.lower-contents .PageHeader__ttl {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}

.lower-contents .PageHeader__ttl .ja {
}

@media only screen and (min-width: 768px) {
	
	.lower-contents .PageHeader__ttl {
		
	}
	
	.lower-contents .PageHeader__ttl .ja {
		display: block;
	}
}

.PageHeader__logo {
	width: 10%;
	min-width: 100px;
	margin: 0;
}

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

@media only screen and (min-width: 768px) {
	.PageHeader__logo {
		width: 15%;
	}
}


/* -------------------------------------------- */


.intro {
	position: relative;
	margin-bottom: 20px;
}

.intro__img {
	margin-bottom: 40px;
}

.intro__ttl {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin: 0 auto 0 0;
	color: inherit;
	text-align: center;
	font-weight: bold;
}

:where(.lower-contents .main-contents) #caption {
	font-family: "FOT-リュウミン Pro M", MatissePro-M, serif;
	font-size: 2.6rem;
	color: inherit;
	margin-bottom: 20px;
	line-height: 1.4;
	text-align: center;
}

.intro__read {
	font-weight: bold;
	color: #555;
	max-width: 30em;
}

@media only screen and (min-width: 768px) {
	.intro__ttl {
		position: absolute;
		left: 0;
		right: auto;
		top: 0;
		bottom: 0;
		max-width: 50%;
		text-align: left;
	}
	
	.intro__read {
		margin-left: 0;
		margin-right: auto;
		font-size: 115%;
	}
	
	.intro__img {
		width: calc(80% - 25px);
		margin-right: 0;
		margin-left: auto;
		margin-bottom: 0;
	}
	
	:where(.lower-contents .main-contents) #caption {
		font-size: 3.6rem;
		text-align: left;
	}
}

@media only screen and (min-width: 1280px) {
	.intro {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	.intro__ttl {
		width: calc(50% - 15px);
	}
}

@media only screen and (min-width: 1440px) {
	
	:where(.lower-contents .main-contents) #caption {
		font-size: 5rem;
	}
	
}


/* -------------------------------------------- */


.value {
	display: flex;
	flex-direction: column;
	gap: 40px;
	counter-reset: valuenum;
	margin-top: 40px;
}

.value i {
	width: 60px;
	height: 60px;
}

.value svg {
	width: 100%;
	height: 100%;
}

.value__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	
	padding: 30px 25px 0 25px;
	box-sizing: border-box;
	border-top: 1px solid rgba(0,0,0,0.2);
	border-left: 1px solid rgba(0,0,0,0.2);
	border-radius: 5px 0 0 0;
}

.value__item::before {
	position: absolute;
	inset: 0 auto auto 0;
	content: counter(valuenum, decimal-leading-zero);
	counter-increment: valuenum;
	display: block;
	width: fit-content;
	height: fit-content;
	padding: 3px 15px 15px 3px;
	margin: auto;
	line-height: 1;
	font-size: 1.1rem;
	font-weight: bold;
	border-radius: 0 0 40px 0;
	border-right: 1px solid rgba(0,0,0,0.2);
	border-bottom: 1px solid rgba(0,0,0,0.2);
	background-color: #fff;
	transform: translate(-33.333%, -33.333%);
	z-index: 2;
}

.value__ttl {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin: 0;
}

.value__ttl .en {
	font-size: 140%;
}

.value__ttl .ja {
	font-size: 80%;
}

.value__txt {
	
}

@media screen and (min-width: 768px) {
	.value {
		flex-direction: row;
	}

	.value i {
		width: 120px;
		height: 120px;
	}

	.value__item {
		flex: 1;
		padding: 30px 0 0 30px;
	}
}


/* -------------------------------------------- */


.lower-contents .main-contents .news-list {
	margin-top: 0;
}

.contents-area .news-list li a {
	padding: 15px 0;
}

@media screen and (min-width: 768px) {
	.contents-area .news-list li a {
		padding: 20px 0;
	}
}


/* -------------------------------------------- */


.contents-area .result-headline {
	margin-top: 0 !important;
	padding-top: 0 !important;
}


/* -------------------------------------------- */


.has-item-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5em;
}

.has-item-header__ttl {
	margin-bottom: 0;
	position: relative;
	clear: both;
	padding-left: 1.7em;
	font-size: 1.8rem;
	color: inherit;
	line-height: 1.4;
	font-feature-settings: "palt";
}

.has-item-header__more {
	display: flex;
	gap: 15px;
}

.has-item-header__more li {
	margin: 0;
}

.has-item-header__more li a {
	display: block;
	margin: 0;
	padding: 5px 20px;
	color: #fff;
	font-size: 1.1rem;
	text-decoration: none;
	background: none;
	line-height: 20px;
	text-align: center;
	border: none;
	background-color: #b7b7b7;
	border-radius: 15px;
	transition: all 0.1s ease-in-out;
	line-height: 1.5;
}

.has-item-header__more li a:hover {
	background-color: var(--color-link);
}

/* -------------------------------------------- */


.cta-contact {
	
}

.link-button, .lower-contents .main-contents .link-button {
	display: flex;
	margin: 0;
}

.link-button li, .lower-contents .main-contents .link-button li {
	display: block;
	width: 100%;
}

.lower-contents .main-contents .cta-contact .link-button a {
	border: 1px solid rgba(105,140,200,1);
	padding: 15px 20px 15px 28px;
	width: 100%;
}