@charset "utf-8";

/*//////////////////////////////////////////////////////////

	index
	about
	pride
	logo
	access
	case

//////////////////////////////////////////////////////////*/


/*=========================================================

	index

==========================================================*/

#mainimage{
	overflow: hidden;
	position: relative;
	width: 100%;
}
#mainimage h2{
	position: absolute;
	z-index: 1;
	font-size: 300%;
	color: #fff;
	text-shadow: 0 0 7px #000,0 0 7px #000;
	margin-top: 220px;
	margin-left: 70px;
}
#mainimage h2 span{
	display: block;
	font-size: 40%;
	font-weight: 400;
	color: #ffee58;
}
#mainimage img{
	width: 100%;
}

#news{
	margin-top: 30px;

}
#news .layout{
	display: flex;
	gap: 30px;
	box-sizing: border-box;
	padding: 20px 30px;
	border-radius: 5px;
	background: #eee;
}
#news h2{
	font-weight: 400;
	color: #0079ac;
}
#news dl{
	display: flex;
	gap: 5px;
}
#news a{
	text-decoration: underline;
}

#greeting{
	margin-top: 100px;
	background: url('../img/back_greeting.webp') 50% 50% no-repeat;
}
#greeting .layout{
	display: flex;
	gap: 50px;
}
#greeting .greeting-wrap{
	position: relative;
	font-size: 130%;
	width: 50%;
}
#greeting .greeting-wrap span{
	display: block;
	overflow: hidden;
	border-radius: 30px;
}
#greeting .greeting-wrap span:first-child{
	position: absolute;
	top: 0;
	left: 0;
	width: 420px;
}
#greeting .greeting-wrap span:last-child{
	position: absolute;
	top: 200px;
	right: 0;
	width: 300px;
}
#greeting h2{
	font-weight: 400;
	color: #0079ac;
	margin-bottom: 30px;
}
#greeting .greeting-wrap p ~ p{
	margin-top: 50px;
}

#index-case{
	margin-top: 100px;
}
#index-case h2{
	font-size: 250%;
}
#index-case h2 span{
	display: block;
	font-weight: 400;
	font-size: 40%;
	color: #0079ac;
}
#index-case ul{
	display: flex;
	gap: 15px;
	list-style: none;
	margin: 50px 0;
}
#index-case ul li a{
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 30px;
	background: #eee;
}
#index-case ul li a::after{
	content: '';
	transition: all .3s;
	position: absolute;
	bottom: 0;
	right: 0;
	display: block;
	width: 30px;
	aspect-ratio: 1;
	clip-path: polygon(0 100%,100% 0,100% 100%);
	background: #99bf00;
}
#index-case ul li a img{
	order: -1;
	margin-bottom: 15px;
}
#index-case ul li a h3{
	min-height: 4.5em;
}

.all-case{
	text-align: center;
}
.all-case a{
	position: relative;
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	line-height: 60px;
	color: #fff;
	padding: 0 70px;
	border-radius: 30px;
	background: #0079ac;
}
.all-case a i{
	font-size: 150%;
	vertical-align: -3px;
	margin-left: 5px;
}
.all-case a::before{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #99bf00;
	transform-origin: left bottom;
	transform: scale(0, 1);
	transition: transform .3s;
}
.all-case a:hover::before{
	transform-origin: left top;
	transform: scale(1, 1);
}


@media screen and (min-width: 737px){ /* PC */
	#news dl dd:first-of-type{
		margin-right: 25px;
	}
}

@media screen and (max-width: 736px){ /* SP */
	#mainimage{
		height: 250px;
	}
	#mainimage .slide{
		margin-left: -100px;
	}
	#mainimage h2{
		text-align: center;
		font-size: 180%;
		inset: 0;
		height: 0;
		margin: auto auto 130px;
	}
	#mainimage img{
		max-width: none;
		width: auto;
		height: 250px;
	}
	
	#news dl{
		flex-wrap: wrap;
		gap: 0;
	}
	#news dl dt{
		width: calc(30% - 5px);
	}
	#news dl dd{
		width: 70%;
	}
	
	#greeting{
		background-position: 85% -20%;
	}
	#greeting .layout{
		flex-direction: column;
	}
	#greeting .greeting-wrap{
		width: 100%;
	}
	#greeting .greeting-wrap:first-child{
		height: 230px;
	}
	#greeting .greeting-wrap span:first-child{
		width: 280px;
	}
	#greeting .greeting-wrap span:last-child{
		top: 110px;
		right: 0;
		width: 200px;
	}
	
	#index-case ul{
		flex-direction: column;
	}
	#index-case ul li a h3{
		min-height: 3em;
	}
}


/*=========================================================

	about

==========================================================*/

.about-wrap{
	margin-bottom: 70px;
}
.about-wrap h3{
	position: relative;
	font-size: 150%;
	margin-bottom: 30px;
}
.about-wrap h3::after{
	content: '';
	position: absolute;
	z-index: -1;
	top: 50%;
	left: 0;
	display: block;
	width: 100%;
	height: 3px;
	background: #0079ac;
}
.about-wrap h3 span{
	padding-right: 30px;
	background: #fff;
}

table.about th{
	width: 300px;
	padding: 30px;
	background: #e0eaee;
}
table.about th,
table.about td{
	padding: 30px;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}

.history,
.diploma,
#iso-sdgs,
.certificate{
	margin-top: 100px;
}

.history table{
	margin-bottom: 30px;
}
.history table th,
.history table td{
	padding: 20px;
	border-top: 1px dotted #aaa;
	border-bottom: 1px dotted #aaa;
}

.diploma ul,
.certificate ul{
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	list-style: none;
	text-align: center;
	margin: 0;
}

.diploma a,
#iso-sdgs a{
	position: relative;
	display: block;
	color: #555;
}
.diploma a:hover,
#iso-sdgs a:hover{
	opacity: 0.5;
}
.diploma a i,
#iso-sdgs a i{
	position: absolute;
	top: 15px;
	left: 15px;
	font-size: 200%;
}

#iso-sdgs{
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}


@media screen and (min-width: 737px){ /* PC */
	.diploma ul li,
	#iso-sdgs .iso,
	.certificate ul li{
		width: 356px;
	}
}

@media screen and (max-width: 736px){ /* SP */
	table.about th{
		width: 150px;
		padding: 20px;
	}
	table.about td{
		padding: 20px;
	}

	.history table{
		border-bottom: 1px dotted #aaa;
	}
	.history table th{
		display: block;
		padding-bottom: 0;
		border-bottom: 0;
	}
	.history table td{
		display: block;
		padding-top: 10px;
		border-top: 0;
		border-bottom: 0;
	}
	
	.diploma ul li,
	#iso-sdgs .iso,
	.certificate ul li{
		width: calc(50% - 8px);
	}
	.diploma ul li img{
		width: auto;
		max-height: 140px;
	}
}


/*=========================================================

pride

==========================================================*/

.founder{
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}
.founder figure{
	text-align: center;
	margin: 0;
}
.founder figure img{
	margin-bottom: 15px;
}
.founder .pride p:not(:last-child){
	margin-bottom: 30px;
}

ul.pride-diploma{
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	list-style: none;
	margin: 70px 0 0 0;
}

@media screen and (min-width: 737px){ /* PC */
	.founder figure{
		width: 240px;
	}
	.founder .pride{
		width: 810px;
	}
	
	ul.pride-diploma li{
		width: 356px;
	}
}

@media screen and (max-width: 736px){ /* SP */
	.founder figure{
	width: 100%;
	}
}


/*=========================================================

logo

==========================================================*/

.logo-wrap{
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}
.logo-wrap figure{
	display: flex;
	flex-direction: column;
	text-align: center;
	margin: 0;
}
.logo-wrap figure img{
	margin-top: 15px;
	border-radius: 25px;
}
.logo-wrap figcaption{
	order: -1;
	display: block;
	font-size: 150%;
	color: #fff;
	line-height: 50px;
	border-radius: 25px;
	background: #ffa000;
}

.logo-wrap .logo-message p:not(:last-child){
	margin-bottom: 30px;
}


@media screen and (min-width: 737px){ /* PC */
	.logo-wrap figure{
		width: 350px;
	}
	.logo-wrap .logo-message{
		width: 700px;
	}
}

@media screen and (max-width: 736px){ /* SP */
	.logo-wrap figure{
		width: 100%;
	}
}


/*=========================================================

access

==========================================================*/

iframe{
	margin-top: 15px;
}

@media screen and (max-width: 736px){ /* SP */
	iframe{
		width: 100%;
		height: 500px;
	}
}


/*=========================================================

case

==========================================================*/

.case-wrap{
	margin-bottom: 100px;
}
.case-wrap h4{
	font-size: 130%;
	margin-bottom: 15px;
}

table.case{
	box-sizing: border-box;
	border: 1px solid #ccc;
}
table.case tr:nth-child(odd){
	background: #eaf2f5;
}
table.case td{
	padding: 15px;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}
table.case td a::after{
	transition: all .3s;
	content: '詳細';
	display: inline-block;
	color: #fff;
	font-size: 80%;
	padding: 5px 10px;
	margin-left: 10px;
	border-radius: 5px;
	background: #99bf00;
}
table.case td:last-child{
	text-align: right;
}

table.case + p{
	margin-top: 15px;
}

.case-detail-wrap{
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 50px;
}
.case-detail-wrap ~ .case-detail-wrap{/* case02対策 */
	margin-top: 100px;
}
.case-detail-wrap h3.subtitle{
	width: 100%;
	margin-bottom: 20px;
}
.case-detail-wrap dl.case-detail{
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px dotted #ccc;
}
.case-detail-wrap dl.case-detail dt{
	box-sizing: border-box;
	color: #0079ac;
	width: 20%;
	padding: 15px;
	border-top: 1px dotted #aaa;
}
.case-detail-wrap dl.case-detail dd{
	box-sizing: border-box;
	width: 80%;
	padding: 15px;
	border-top: 1px dotted #aaa;
}

.case-detail-wrap p.case-eyecatch{
	text-align: center;
}

.case-detail-wrap ul.case-photo{
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
	list-style: none;
	width: 100%;
	margin: 0;
}
.case-detail-wrap ul.case-photo li{
	text-align: center;
	width: calc(50% - 25px);
}
.case-detail-wrap p.case-eyecatch img,
.case-detail-wrap ul.case-photo li img{
	max-width: none;
	width: 100%;
}

p.back-list{
	text-align: center;
	margin-top: 70px;
}
p.back-list a{
	position: relative;
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	line-height: 60px;
	color: #fff;
	padding: 0 70px;
	border-radius: 30px;
	background: #0079ac;
}
p.back-list a i{
	font-size: 150%;
	vertical-align: -3px;
	margin-left: 5px;
}
p.back-list a::before{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #99bf00;
	transform-origin: left bottom;
	transform: scale(0, 1);
	transition: transform .3s;
}
p.back-list a:hover::before{
	transform-origin: right top;
	transform: scale(1, 1);
}

@media screen and (min-width: 737px){ /* PC */
	table.case{
		font-size: 90%;
	}
	table.case th{
		vertical-align: middle;
		text-align: center;
		font-weight: 700;
		padding: 15px;
		border: 1px solid #ccc;
		background: #efefef;
	}
	table.case th.subject{width: 480px;}
	table.case th.oder{width: 180px;}
	table.case th.facility{width: 100px;}
	table.case th.start{width: 110px;}
	table.case th.end{width: 110px;}
	table.case th.amount{width: 118px;}
	
	.case-detail-wrap dl.case-detail{
		width: 615px;
	}
	.case-detail-wrap p.case-eyecatch{
		width: 435px;
	}
}

@media screen and (max-width: 736px){ /* SP */
	table.case{
		border-width: 0 0 1px 0;
	}
	table.case thead{
		display: none;
	}
	table.case tr{
		display: flex;
		flex-wrap: wrap;
		border-top: 1px solid #ccc;
	}
	table.case tr td{
		border: 0;
	}
	table.case tr td::before{
		content: attr(data-label)'：';
		display: block;
		color: #0079ac;
	}

	table.case td:last-child{
		text-align: left;
	}
	table.case tr td:nth-child(1),
	table.case tr td:nth-child(2){
		width: 100%;
		padding-bottom: 0;
	}
	table.case tr td:nth-child(4),
	table.case tr td:nth-child(5){
		padding-left: 0;
	}
	
	.case-detail-wrap ~ .case-detail-wrap{/* case02対策 */
		margin-top: 70px;
	}
	
	.case-detail-wrap dl.case-detail{
		width: 100%;
	}
	.case-detail-wrap dl.case-detail dt{
		width: 25%;
	}
	.case-detail-wrap dl.case-detail dd{
		width: 75%;
	}
	.case-detail-wrap p.case-eyecatch{
		order: -1;
		width: 100%;
	}
	
	.case-detail-wrap ul.case-photo{
		gap: 30px;
	}
	.case-detail-wrap ul.case-photo li{
		width: 100%;
	}
}

