@charset "utf-8";
/* =============================================
	施工管理　動画チャンネル
============================================= */

/*---------------------------------------------
ヘッダー
---------------------------------------------*/
#page_header{
	background-image: linear-gradient(110deg,#10552a 0,#42dabc 100%);
}
.page_header{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow: hidden;
}
.page_ttl{
	max-width: 804px;
}

.anim01{
	opacity: 0;
	animation-name: anim_effect;
	animation-delay: 0.5s;
	animation-duration: 1.5s;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
}

/*****
タイトルアニメーション設定
*****/
@keyframes anim_effect{
	0%{
		opacity: 0;
		transform: translateY(-100%);
	}
	100%{
		opacity: 1;
		transform: translateX(0);
	}
}

/*---------------------------------------------
目次
---------------------------------------------*/
.pagenav_area{
	background-color: var(--bg-color-light2);
}
.pagenav{
	font-size: clamp(1.4rem,1.33vw,1.6rem);
	margin: 0 auto;
}
.pagenav ul{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.pagenav ul li{}
.pagenav ul li a{
	padding: 0.5em 1em 0.5em 2em;
	position: relative;
}
.pagenav ul li a::before{
	content: '';
	display: block;
	width: 1em;
	height: 0.5em;
	background-color: #06c;
	clip-path: polygon(0 0,1px 0,50% calc(100% - 2px),calc(100% - 1px) 0,100% 0,100% 1px,50% 100%,0 1px);
	position: absolute;
	top: 50%;
	left: 0.5em;
	transform: translateY(-50%);
}

/*---------------------------------------------
お知らせ
---------------------------------------------*/
.news_section{
	font-size: clamp(1.2rem,1.33vw,1.6rem);
	line-height: 1.5;
	width: 94%;
	max-width: 1200px;
	margin: 0 auto;
}

.news_area{
	overflow-wrap: anywhere;
}
.news_area dt{
	font-weight: normal;
}
.news_area dd{
	display: flex;
	border-bottom: dashed 1px #ccc;
}
.news_area dd .icon_news{
	display: inline-block;
	font-size: 0.85em;
	line-height: 1;
	text-align: center;
	color: #fff;
	width: 6em;
	margin-right: 1em;
	padding: 0.5em 0;
	background-color: var(--nikken-red_thin);
}

/*---------------------------------------------
section
---------------------------------------------*/
#listening_qa{}
#study_point{}
#kaisoku{}
#past_q{}

.section_wrap{
	padding: 4em 0;
}

.normal_section{
	font-size: clamp(1.2rem,1.16vw,1.4rem);
	line-height: 1.6;
	width: 94%;
	max-width: 1200px;
	margin: 4em auto 0 auto;
}

.section_wrap .normal_section:first-of-type{
	margin-top: 0;
}

/*****
動画リンクサムネイル
*****/
.ttl_type01{
	font-size: clamp(1.6rem,2.33vw,2.8rem);
	color: #000;
	margin-bottom: 1em;
	padding: 0.5em 1em;
	border: solid 4px #000;
	background-color: #f9f2b9;
}

.channel_area{
	display: flex;
	flex-wrap: wrap;
	padding-bottom: 2em;
}

.ttl_type02{
	flex-shrink: 0;
	font-size: clamp(1.4rem,2.0vw,2.4rem);
	width: 100%;
	margin-bottom: 0.5em;
	padding: 0.5em;
	border-bottom: solid 2px var(--font-dark);
}

.channel_box{
	max-width: 320px;
	margin-bottom: 1em;
}

.channel_box a{
	display: block;
	color: #333;
	height: 100%;
	text-decoration: none;
	border: solid 1px #ccc;
	position: relative;
}
.channel_box a::before{
	content: '';
	display: block;
	width: 0.8em;
	height: 0.8em;
	background-color: #ccc;
	clip-path: polygon(100% 0,100% 100%,0 100%);
	position: absolute;
	bottom: 0;
	right: 0;
}

.thumbnail{
	width: 100%;
	margin: 0 auto;
	position: relative;
}
.thumbnail::before{
	content: '';
	display: block;
	width: 1.6em;
	height: 1.6em;
	border: solid 1px #333;
	border-radius: 0.25em;
	background-color: rgba(255,255,255,0.85);
	position: absolute;
	bottom: 0.5em;
	left: 0.5em;
}
.thumbnail::after{
	content: '';
	display: block;
	width: 0.8em;
	height: 1em;
	background-color: var(--nikken-red);
	clip-path: polygon(0 0,100% 50%,0 100%);
	position: absolute;
	bottom: 0.8em;
	left: 1em;
}

.ttl_video{
	margin-top: 0.5em;
	padding: 0.5em;
	position: relative;
}

/*****
おすすめ
*****/
.ttl_recom{
	font-size: clamp(1.6rem,2.8vw,2.8rem);
	color: var(--nikken-red);
	margin-bottom: 2em;
	padding: 0 0.5em 0.5em 2.5em;
	border-bottom: solid 2px var(--nikken-red);
	background-image: url("../img/icon_recom.svg");
	background-repeat: no-repeat;
	background-position: left top;
	background-size: auto 1.5em;
	position: relative;
}
.ttl_recom::before,
.ttl_recom::after{
	content: '';
	display: block;
	position: absolute;
	top: 100%;
	left: 2em;
}
.ttl_recom::before{
	width: 2em;
	height: 2px;
	background-color: #fff;
}
.ttl_recom::after{
	width: 2em;
	height: 1.5em;
	background-color: var(--nikken-red);
	clip-path: polygon(0 0,2px 0,50% calc(100% - 4px),calc(100% - 2px) 0,100% 0,100% 2px,50% 100%,0 2px);
}

.recom_area{
	display: flex;
	flex-wrap: wrap;
}
.recom_box{
	max-width: 320px;
	margin: 0 auto 2em auto;
}
.recom_box a{
	display: block;
	color: #333;
	height: 100%;
	text-decoration: none;
	border: solid 2px var(--nikken-red);
	position: relative;
}
.recom_box a::before{
	content: '';
	display: block;
	width: 0.8em;
	height: 0.8em;
	background-color: var(--nikken-red);
	clip-path: polygon(100% 0,100% 100%,0 100%);
	position: absolute;
	bottom: 0;
	right: 0;
}

.ttl_video .icon_recom{
	display: inline-block;
	color: #fff;
	margin-bottom: 0.25em;
	padding: 0.25em 0.5em;
	background-color: var(--nikken-red_thin);
}


/*****
開閉moreボタン
*****/
.more_btn_area{
	text-align: center;
	line-height: 1;
	margin-bottom: 4em;
}
.more_btn,
.reopen_btn{
	display: inline-block;
	font-size: clamp(1.4rem,1.66vw,2rem);
	padding: 0.5em 2em 0.5em 3em;
	border: solid 1px var(--nikken-red);
	border-radius: 1em;
	cursor: pointer;
	position: relative;
}
.more_btn::before,
.reopen_btn::before{
	content: '';
	display: block;
	width: 1em;
	height: 0.6em;
	background-color: var(--nikken-red);
	position: absolute;
	top: 50%;
	left: 1em;
	transform: translateY(-50%);
}
.more_btn::before{
	clip-path: polygon(0 0,2px 0,50% calc(100% - 4px),calc(100% - 2px) 0,100% 0,100% 2px,50% 100%,0 2px);
}
.reopen_btn::before{
	clip-path: polygon(0 100%,2px 100%,50% 4px,calc(100% - 2px) 100%,100% 100%,100% calc(100% - 2px),50% 0,0 calc(100% - 2px));
}


/*件数表示*/
.num_length{
	font-size: clamp(1.4rem,1.66vw,2rem);
	line-height: 1;
	text-align: center;
	width: 8em;
	margin: 1em 0 1em auto;
	padding: 0.5em 1em;
	border: solid 1px #ccc;
	border-radius: 0.5em;
}
.num_length::before{
	content: '全 ';
	display: inline;
	font-size: 0.8em;
}
.num_length::after{
	content: ' 件';
	display: inline;
	font-size: 0.8em;
}


/* ===========================================
	MediaQueries
=========================================== */
/* PC----------------------------- */
@media (min-width: 768px){
	/*---------------------------------------------
	ヘッダー
	---------------------------------------------*/
	#page_header{
		background-image: url("../img/header_bg.png"),linear-gradient(110deg,#10552a 0,#42dabc 100%);
		background-repeat: no-repeat,repeat;
		background-size: auto 100%,auto;
		background-position: center center,center center;
	}
	.page_header{
		aspect-ratio: 1200 / 420;
	}
	.page_ttl{
		width: 67%;
	}
	
	/*---------------------------------------------
	目次
	---------------------------------------------*/
	.pagenav_area{}
	.pagenav{
		width: 94%;
		max-width: 1200px;
	}
	.pagenav ul{}
	.pagenav ul li{}
	.pagenav ul li a{
		display: inline-block;
	}
	
	/*---------------------------------------------
	お知らせ
	---------------------------------------------*/
	.news_area{
		display: flex;
		flex-wrap: wrap;
	}
	.news_area dt{
		flex-shrink: 0;
		width: 10em;
		padding: 0.5em 0;
		border-bottom: dashed 1px #ccc;
	}
	.news_area dd{
		align-items: flex-start;
		flex-grow: 1;
		width: calc(100% - 10em);
		padding: 0.5em;
	}
	.news_area dd .icon_news{
		flex-shrink: 0;
	}
	
	/*---------------------------------------------
	section
	---------------------------------------------*/
	/*****
	動画リンクサムネイル
	*****/
	.channel_box{
		width: 19%;
		margin-right: 1.25%;
	}
	.channel_box:nth-of-type(5n){
		margin-right: 0;
	}
	
	.channel_box a,
	.recom_box a{
		transition: background 0.5s;
	}
	.channel_box a:hover,
	.recom_box a:hover{
		background-color: #fffce0;
	}
	.channel_box a:hover .thumbnail,
	.recom_box a:hover .thumbnail{
		transition: opacity 0.5s;
	}
	.channel_box a:hover .thumbnail,
	.recom_box a:hover .thumbnail{
		opacity: 0.8;
	}
	
	/*****
	おすすめ
	*****/
	.recom_area{}
	
	.recom_box{
		width: 23%;
	}
	
}

/* スマホ----------------------------- */
@media screen and (max-width: 767px){
 /*---------------------------------------------
	ヘッダー
	---------------------------------------------*/
	#page_header{}
	.page_header{
		aspect-ratio: 2 / 1;
		background-image: url("../img/header_bg.png");
		background-repeat: no-repeat;
		background-position: center center;
		background-size: auto 100%;
	}
	.page_ttl{
		width: 90%;
	}
	
	/*---------------------------------------------
	目次
	---------------------------------------------*/
	.pagenav_area{}
	.pagenav{}
	.pagenav ul{
		
	}
	.pagenav ul li{
		width: 50%;
		border-bottom: solid 1px var(--line-light);
	}
	.pagenav ul li:nth-of-type(2n){
		border-left: solid 1px var(--line-light);
	}
	.pagenav ul li a{
		display: flex;
		align-items: center;
		height: 100%;
	}
	
	/*---------------------------------------------
	お知らせ
	---------------------------------------------*/
	.news_area{}
	.news_area dt{
		padding: 0.5em 0 0 0;
	}
	.news_area dd{
		flex-direction: column;
		padding: 0.5em 0;
	}
	
	/*---------------------------------------------
	section
	---------------------------------------------*/
	.section_wrap{
		padding: 2em 0;
	}
	
	/*****
	動画リンクサムネイル
	*****/
	.channel_area{}
	.ttl_type02{}
	.channel_box{
		width: 32%;
		margin-right: 2%;
	}
	.channel_box:nth-of-type(3n){
		margin-right: 0;
	}
	
	/*****
	おすすめ
	*****/
	.recom_box{
		width: 47%;
	}
	
}