a.video-thumbnail { color: #FFF; }
a.video-thumbnail:hover { color: #DDD; }
a.video-thumbnail img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
:root {
	--bs-primary-rgb: 108, 117, 125;
	--bs-secondary-rgb: 13, 110, 253;
	--bs-primary: rgb(var(--bs-primary-rgb));
	--bs-secondary: rgb(var(--bs-secondary-rgb));
	--bs-font-sans-serif: "Zen Kaku Gothic New",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
	--cmc-nav-height: 132px;
}


/* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
/* woff2 = Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */

/* Copyright 2022 The Zen Project Authors (https://github.com/googlefonts/zen-kakugothic). Licensed under the SIL Open Font License, 1.1 https://openfontlicense.org/ via https://gwfh.mranftl.com/fonts/zen-kaku-gothic-new?subsets=latin */

/* zen-kaku-gothic-new-regular - latin */
@font-face {
	font-display: swap;
	font-family: 'Zen Kaku Gothic New';
	font-style: normal;
	font-weight: 400;
	src: url('/assets/fonts/zen-kaku-gothic-new-v15-latin-regular.woff2') format('woff2');
}

/* zen-kaku-gothic-new-700 - latin */
@font-face {
	font-display: swap;
	font-family: 'Zen Kaku Gothic New';
	font-style: normal;
	font-weight: 700;
	src: url('/assets/fonts/zen-kaku-gothic-new-v15-latin-700.woff2') format('woff2');
}


.p-6 { padding: 5rem !important; }
.px-6 {
	padding-right: 5rem!important;
	padding-left: 5rem!important;
}
.py-6 {
	padding-top: 5rem !important;
	padding-bottom: 5rem !important;
}
.pt-6 { padding-top: 5rem !important; }
.pe-6 { padding-right: 5rem !important; }
.pb-6 { padding-bottom: 5rem !important; }
.ps-6 { padding-left: 5rem !important; }

body { padding-top: 132px; }
a { color: #000; }
a:hover { color: var(--bs-primary); }

.navbar {
	min-height: var(--cmc-nav-height);
}
@media (min-width: 1200px) {
	main {
		min-height: calc(100vh - var(--cmc-nav-height) - 580px);
	}
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.text-wrap-balance {
	text-wrap: balance;
	hyphens: manual;
}
h1 {
	text-align: center;
	font-weight: bold;
}
main h2, main .h2 { margin-top: 1.5rem; }
main h3, main .h3 { margin-top: 1.125rem; }
main p { white-space: pre-wrap; }
.pre-wrap-opt-out p { white-space: normal; }

li > p { margin-bottom: .5rem; }

main [id]::before {
	content: "";
	display: block;
	height: calc(var(--cmc-nav-height) * 1.25);
	margin-top: calc(var(--cmc-nav-height) * -1.25);
	pointer-events: none;
}

@media (max-width: 415.98px) {
	.img-xs-mh {
		min-height: 45vh;
		object-fit: cover;
		object-position: center center;
	}
}

@media (min-width: 992px) {
	.columnise {
		column-count: 2;
		column-gap: 3em;
	}
	.columnise :first-child { margin-top: 0px ! important; }
	.columnise :last-child { margin-bottom: 0px ! important; }
}

.btn-check:focus + .btn, .btn:focus { box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25); }

.icon-square {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	font-size: 1.5rem;
	border-radius: .75rem;
}

.ani-fade-in {
	opacity: 0;
	animation: 0.5s ease-in-out 1 0.25s forwards ani-fade-in;
}

@keyframes ani-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

.ani-blur-out {
	filter: blur(0px);
	animation: 0.5s ease-in-out 1 0.25s forwards ani-blur-out;
}

@keyframes ani-blur-out {
	from { filter: blur(0px); }
	to { filter: blur(10px); }
}