:root {
	--color-text: black;
	--color-light: grey;
	--color-bg: #8b0000;
	--page-width: 1280px;
	--padding: 15px;
}

html, body {
	margin: 0;
	padding: 0;
}

body {
	font-family: "Noto Sans JP", sans;
	font-size: 16px;
	background: black;
	color: var(--color-text);
}
body::selection {
	color: white;
	background: var(--color-bg);
}

#TopArrowScrollBtn {
	--top-arrow-size: 20px;
	position: fixed;
	right: 30px;
	bottom: 30px;
	background: var(--color-bg);
	color: white;
	/* border: 3px solid white; */
	display: flex;
	height: var(--top-arrow-size);
	width: var(--top-arrow-size);
	justify-content: center;
	align-items: center;
	padding: var(--padding);
	border-radius: 100%;
	text-decoration: none;
	line-height: 1;
}
#TopArrowScrollBtn:hover {
	color: var(--color-bg);
	background: white;
}

.headsup-hidden {
	border-bottom: 2px solid var(--color-bg);
	box-shadow: 0 2px 5px rgba(100, 100, 100, 0.5);
}

.nolist {
	margin: 0;
	padding: 0;
	list-style: none;
}
.nolist li {
	margin: 0;
}

.chevron-left {
	display: flex;
	gap: 0.8em;
	line-height: 1;
	align-items: center;
}
.chevron-left::before {
	content: "";
	width: 0.5em;
	height: 0.5em;
	border-top: 2px solid var(--color-text);
	border-right: 2px solid var(--color-text);
	transform: rotate(45deg);
}

.content-container {
	max-width: var(--page-width);
	margin: auto;
}

hr.wp-block-separator {
	border-color: var(--color-bg);
}

.post-content .post-nav {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 10px;
	padding: var(--padding);
	margin-bottom: var(--padding);
	border-left: 3px solid var(--color-bg);
	border-radius: 5px;
	color: white;
	font-size: 14px;
	background: #1c1c1c;
}
.post-content .post-nav a {
	/* color: var(--color-bg); */
	color: lightgrey;
	/* text-decoration: none; */
}

.post-content img {
	max-width: 100%;
	height: auto;
}

/* for in posts */
.color-accent {
	color: var(--color-bg);
}

a.btn {
	display: inline-block;
	padding: 5px 10px;
	border-radius: 5px;
	text-decoration: none;
}

a.btn-primary {
	background: var(--color-bg);
	color: white;
}

/* HEADER */

header {
	left: 0;
	right: 0;
	color: white;
	background: black;
}

header h1 {
	display: flex;
	justify-content: space-evenly;
	flex-wrap: wrap;
	align-items: baseline;
	margin: var(--padding) 0 0 0;
	padding: 0;
	background-image: linear-gradient(90deg, white, var(--color-bg));
	color: transparent;
	background-clip: text;
}
header h1 span {
	display: inline-block;
	line-height: 1;
}
header h1 .catch-ja {
	font-family: "Shippori Antique B1", sans-serif;
	font-size: 90%;
}
header h1 .catch-en {
	font-family: "Metal", serif;
}
header h1 .catch-ru {
	font-family: "Alice", serif;
}
header h1 .catch-it {
	font-family: "Rochester", cursive, serif;
	font-size: 110%;
}
header h1 .catch-sr {
	font-family: "Croissant One", serif;
	font-size: 95%;
}

header p {
	margin: 0;
	font-size: 14px;
}

header a {
	text-decoration: none;
}

/* FOOTER */

footer {
	padding: var(--padding);
	padding-top: calc(2 * var(--padding));
	--color-text: white;
	color: var(--color-text);
}

body.home footer .content-container {
	padding-top: 15px;
	border-top: 1px solid var(--color-bg);
}

footer ul {
	display: flex;
	justify-content: center;
}

footer a {
	color: var(--color-text);
	text-decoration: none;
}
footer a:hover {
	text-decoration: underline;
}

/* MAIN */

.page-width {
	padding-left: var(--padding);
	padding-right: var(--padding);
	display: flex;
	flex-direction: column;
	gap: var(--padding);
}

.page-container {
	width: 100%;
	display: flex;
	gap: var(--padding);
	--title-size: 36px;
}

aside {
	width: 290px;
	display: flex;
	flex-direction: column;
	gap: var(--padding);
}

.sidebar {
	background: var(--color-bg);
	border-radius: var(--padding);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: black;
}

.sidebar a {
	display: block;
	padding: var(--padding);
	background: var(--color-bg);
	border-radius: 3px;
	text-decoration: none;
	color: white;
}
.sidebar a.link-rss {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-content: center;
}
.sidebar a.link-rss svg {
	width: 1.5em;
	height: 1.5em;
	line-height: 1;
}

.sidebar a.link:hover {
	background: linear-gradient(90deg, red, var(--color-bg));
}

/* banners */

.banner {
	display: block;
	padding: var(--padding);
	color: white;
	text-shadow: 1px 1px 5px black;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
	border-radius: 5px;
}

.banner-2030 {
	background: url(images/banner-2030.jpg) center center no-repeat;
	background-size: 100%;
	transition: 0.3s background-size ease;
}
.banner-2030:hover {
	background-size: 120%;
	color: red;
	text-shadow: 1px 1px 5px white;
}

.banner-yokochou {
	padding: 0;
	overflow: hidden;
}
.banner-yokochou b {
	display: block;
	padding: 5px 10px;
	color: #414b87;
	background: white;
}
.banner-yokochou small {
	display: block;
	padding: 10px 5px;
	color: white;
	background: linear-gradient(#93134c, #600c31);
}
.banner-yokochou:hover {
	opacity: 0.8;
}

.banner-npo {
	background: linear-gradient(#8ca9d1, #365180);
	background-size: 100%;
	transition: 0.3s opacity ease;
}
.banner-npo:hover {
	opacity: 0.8;
	text-shadow: 1px 1px 5px white;
}

/* CONTENT */

main {
	flex: 1;
}
.main-bg {
	background: white;
	padding: var(--padding);
	border-radius: var(--padding);
}

h2.section-title {
	margin: 0 0 5px 0;
	line-height: 1;
	color: white;
	font-size: var(--title-size);
}

h3.section-title {
	padding: 10px 10px 10px 20px;
	line-height: 1;
	color: white;
	background: black;
	border-left: 10px solid var(--color-bg);
	border-radius: 5px;
}

body.home h2.section-title {
	display: none;
}

body.home .home-koen-list img {
	max-width: 100%;
	height: auto;
}

body.home .home-koen-list {
	display: flex;
	gap: var(--padding);
}

body.home .kouen-link {
	display: block;
	text-decoration: none;
	box-shadow: 0 2px 5px rgba(100, 100, 100, 0.5);
}

body.home .kouen-link figure {
	padding: 5px;
}
body.home .kouen-link figcaption {
	color: black;
	font-size: 13px;
}

body.home .home-kouen-more {
	padding: var(--padding) 0;
	text-align: right;
}

.posts nav,
.posts article:not(:first-child) {
	border-top: 3px solid black;
	margin-left: calc(-1 * var(--padding));
	margin-right: calc(-1 * var(--padding));
	padding-left: var(--padding);
	padding-right: var(--padding);
}

.posts article {
	padding-bottom: var(--padding);
}

.posts article h2.post-title {
	color: var(--color-bg);
	border-bottom: 2px solid var(--color-bg);
}

.posts article a {
	color: var(--color-bg);
}

.posts .post-date {
	text-align: right;
	color: var(--color-light);
	font-size: 14px;
}

.posts nav {
	padding-top: var(--padding);
	display: flex;
	justify-content: center;
	gap: var(--padding);
}

.posts nav .page-numbers {
	display: inline-block;
	padding: 0.5em;
	border-radius: 5px;
	background: lightgrey;
	color: black;
	text-decoration: none;
	font-weight: bold;
}
.posts nav .page-numbers.current {
	background: white;
	color: var(--color-bg);
}

.posts nav .page-numbers:hover {
	background: white;
}

.waku1 {
	background: lightgrey;
	padding: var(--padding);
	border-radius: 10px;
}

