/* 3Dvenue-BLOG prototype */

html {
	padding:0;
	margin:0;
	box-sizing: border-box;
    font-size: 16px;
}

*{
	padding:0;
	margin:0;
	box-sizing: border-box;
}

body *{
	font-family: "Segoe UI", "Meiryo", sans-serif;
    line-height: 1.7;
}

a{
	text-decoration: none;
}

h1,h2,h3,h4{
	letter-spacing: .05em;
}

.inner{
	width:100%;
	max-width:1200px;
	padding:0 20px;
	margin:0 auto;
}

.tag{
	display:inline-block;
	padding:3px 12px;
	font-size:12px;
	border-radius: 3px;
}

figure img{
	width:100%;
	height:100%;
	object-fit: cover;
}

/* header
-------------------------------------------*/
header{
	height:70px;
	border-bottom:1px solid;
	position: sticky;
	top:0;
	z-index:10;
}

header .inner{
	max-width:1200px;
	height:100%;
	display:flex;
	align-items: center;
	justify-content: space-between;
}

header h1{
	font-size:18px;
}

header h1 a{
	display:flex;
	align-items: center;
	gap:12px;
}

header h1 .mark{
	width:34px;
	height:34px;
	flex-shrink:0;
	border-radius: 50%;
	display:flex;
	align-items: center;
	justify-content: center;
	font-size:12px;
	font-weight:700;
	letter-spacing: -.5px;
}

header h1 small{
	display:block;
	font-size:9px;
	font-weight:400;
	letter-spacing: .3em;
	margin-top:2px;
}

header nav ul{
	list-style: none;
	display:flex;
	gap:30px;
}

header nav ul li a{
	font-size:14px;
	font-weight:500;
}

#navtoggle{
	display:none;
}

header #menu{
	display:none;
	width:26px;
	height:20px;
	position: relative;
	cursor: pointer;
}

header #menu span{
	position: absolute;
	left:0;
	width:100%;
	height:2px;
}

header #menu span:nth-child(1){ top:0; }
header #menu span:nth-child(2){ top:9px; }
header #menu span:nth-child(3){ top:18px; }

/* main
-------------------------------------------*/
main{
	min-height:calc(100vh - 120px);
}

main #hero{
	width:100%;
	aspect-ratio: 3/1;
	border-radius: 6px;
	margin-bottom:30px;
	display:flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

main #hero img{
	width:100%;
	height:100%;
	object-fit: cover;
}

main #hero::after{
	content:"";
	position:absolute;
	inset:0;
}

main #hero .herotext{
	position:absolute;
	left:0;
	bottom:0;
	width:100%;
	padding:25px 30px;
	z-index:2;
}

main #hero .herotext p.lead{
	margin-bottom:0;
}

main #hero.noimg::after{
	display:none;
}

.eyebrow{
	font-size:11px;
	font-weight:700;
	letter-spacing: .2em;
	margin-bottom:10px;
}

main h2.pagetitle{
	font-size:30px;
	margin-bottom:8px;
	letter-spacing: .02em;
	line-height: 1.3;
}

main #herotitle{
	font-size: clamp(28px, 5vw, 40px);
}

main p.lead{
	font-size:14px;
	margin-bottom:30px;
}

/* 2カラムレイアウト（トップページ）
-------------------------------------------*/
.layout2col{
	display:grid;
	grid-template-columns: minmax(0,1fr) 280px;
	gap:50px;
	align-items: start;
}

.block-title{
	display:flex;
	justify-content: space-between;
	align-items: baseline;
	border-bottom:1px solid;
	padding-bottom:14px;
	margin-bottom:24px;
}

.block-title h2{
	font-size:18px;
}

.block-title span{
	font-size:10px;
	letter-spacing: .1em;
}

#sidebar .about{
	border-radius: 8px;
	padding:24px;
	margin-bottom:30px;
}

#sidebar .about .eyebrow{
	font-size:9px;
}

#sidebar .about-mark{
	font-size:22px;
	font-weight:700;
	margin:14px 0 10px;
}

#sidebar .about h2{
	font-size:16px;
	line-height:1.6;
	margin-bottom:10px;
}

#sidebar .about-copy{
	font-size:12px;
	line-height:1.8;
}

#sidebar .categories ul{
	list-style: none;
}

#sidebar .categories li a{
	display:flex;
	justify-content: space-between;
	padding:12px 0;
	border-bottom:1px solid;
	font-size:13px;
}

#sidebar .categories li a span{
	font-size:12px;
}

/* article card list (index / category共通)
-------------------------------------------*/
#articles ul{
	list-style: none;
	display:grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap:30px;
}

#articles ul li a{
	display:block;
}

#articles ul li figure{
	width:100%;
	aspect-ratio: 16/9;
	position: relative;
	overflow: hidden;
	border-radius: 6px;
	display:flex;
	align-items: center;
	justify-content: center;
}

#articles ul li figure .tag{
	position:absolute;
	top:10px;
	left:10px;
}

#articles ul li h3{
	font-size:16px;
	margin-top:12px;
}

#articles ul li p.excerpt{
	font-size:13px;
	margin-top:6px;
}

#articles ul li p.date{
	font-size:12px;
	margin-top:8px;
}

/* pagination
-------------------------------------------*/
#pagination{
	display:flex;
	justify-content: center;
	gap:10px;
	margin-top:50px;
}

#pagination a,
#pagination span{
	display:flex;
	align-items: center;
	justify-content: center;
	width:34px;
	height:34px;
	font-size:13px;
	border-radius: 3px;
}

/* breadcrumb
-------------------------------------------*/
#breadcrumb{
	font-size:12px;
	margin-bottom:20px;
}

/* article detail
-------------------------------------------*/
#article .inner{
	max-width:760px;
}

.meta{
	display:flex;
	align-items: center;
	gap:15px;
	font-size:13px;
	margin-top:20px;
	margin-bottom:14px;
}

.meta .catlink{
	display:inline-block;
	padding:2px 10px;
	border:1px solid;
	border-radius: 3px;
}

#article .tags{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:30px;
}

#article .tags span{
	display:inline-block;
	padding:2px 10px;
	border:1px solid;
	border-radius: 3px;
	font-size:11px;
}

#article figure.eyecatch{
	position: relative;
	min-height: 200px;
	border-radius: 6px;
	margin-bottom:30px;
	display:flex;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
}

#article figure.eyecatch img{
	position: absolute;
	inset: 0;
	z-index: 0;
}

#article figure.eyecatch::after{
	content:"";
	position:absolute;
	inset:0;
	z-index: 1;
}

#article figure.eyecatch .eyecatchtext{
	position: relative;
	z-index: 2;
	padding: 20px 25px;
}

#article figure.eyecatch .eyecatchtext h1{
	margin-bottom:10px;
}

#article figure.eyecatch .eyecatchtext .tags{
	margin-bottom:0;
}

#article .body h2{
	font-size:20px;
	margin:40px 0 15px;
}

#article .body p{
	font-size:15px;
	margin-bottom:20px;
}

#article .body figure{
	width:100%;
	aspect-ratio: 16/9;
	border-radius: 6px;
	margin:30px 0;
	display:flex;
	align-items: center;
	justify-content: center;
}

#related{
	margin-top:60px;
	border-top:1px solid;
}

#related h3{
	font-size:16px;
	margin-top:20px;
	margin-bottom:20px;
}

#related ul{
	list-style: none;
	display:grid;
	grid-template-columns: repeat(3, 1fr);
	gap:20px;
}

#related ul li figure{
	width:100%;
	aspect-ratio: 16/9;
	border-radius: 6px;
	display:flex;
	align-items: center;
	justify-content: center;
}

#related ul li h4{
	font-size:13px;
	font-weight:500;
	margin-top:8px;
}

/* footer
-------------------------------------------*/
footer .inner{
	height:50px;
	display:flex;
	align-items: center;
	justify-content: space-between;
}

footer p{
	font-size:12px;
}

footer nav ul{
	list-style: none;
	display:flex;
	gap:20px;
}

footer nav ul li a{
	font-size:12px;
}

@media (max-width:900px){
	.layout2col{
		grid-template-columns: 1fr;
	}

	#sidebar .about{
		margin-bottom:20px;
	}
}

@media (max-width:680px){
	header nav{
		position:fixed;
		top:70px;
		left:0;
		width:100%;
		border-bottom:1px solid;
		transform: translateY(-150%);
		transition-duration: .3s;
	}

	#navtoggle:checked ~ #nav{
		transform: translateY(0);
	}

	header nav ul{
		flex-direction: column;
		gap:0;
	}

	header nav ul li a{
		display:block;
		padding:15px 20px;
		border-bottom:1px solid;
	}

	header #menu{
		display:block;
	}

	#related ul{
		grid-template-columns: 1fr;
	}
}
