@charset "UTF-8";

:root {
	/* Colors */
	--clr-primary: #1f4ea3;
	--toc-blue: #4b79d6;
	--clr-secondary: #f0c828;
	--clr-accent-red: #e60012;
	--clr-bg-panel: #eff5f9;
	--clr-text-main: #111;
	--clr-text-sub: #444;
	--clr-grey-50: #f9f9f9;
	--clr-grey-300: #dddddd;
	--clr-green: #06C755;

	/* Layout & Spacing */
	--layout-inner-width: 1100px;
	--space-inner: 20px;
	--header-height: 60px;

	@media (min-width: 769px) {
		--header-height: 120px;
	}

	/* Transitions */
	--transition-base: 0.25s ease;
	--transition-slow: 0.35s ease;

	/* Shadows & Elevation */
	--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
	--shadow-md: 0 6px 16px rgba(0, 0, 0, 0.12);
	--shadow-lg: 0 12px 30px rgba(0, 0, 0, 0.18);
	--text-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
	--text-shadow-md: 0 2px 10px rgba(0, 0, 0, 0.3);
	--text-shadow-lg: 0 2px 15px rgba(0, 0, 0, 0.6);

	/* Shapes & Borders */
	--radius-sm: 5px;
	--radius-md: 10px;
	--radius-lg: 15px;
	--radius-xl: 25px;
	--radius-pill: 10em;
}

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

html {
	scroll-behavior: smooth;
	overflow-x: hidden;
	scroll-padding-top: var(--header-height);
}

body {
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
	margin: 0;
	padding: 0;
	letter-spacing: 0.05rem;
	font-size: 16px;

	@media (max-width: 768px) {
		font-size: 14px;
	}

	&.is-open {
		overflow: hidden;
	}
}

a {
	color: inherit;
	text-decoration: none;
	word-break: break-all;

	&:hover {
		cursor: pointer;
	}
}

ul {
	list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 600;
	line-height: 1.5;
	word-break: auto-phrase;
	overflow-wrap: anywhere;
}

p {
	line-height: 1.8;

	&:not(:last-child) {
		margin-bottom: 1em;
	}
}

em {
	font-style: normal;
}

.pc {
	display: block;

	@media (max-width: 768px) {
		display: none;
	}
}

.sp {
	display: none;

	@media (max-width: 768px) {
		display: block;
	}
}


.inner {
	width: 95%;
	max-width: var(--layout-inner-width);
	margin-inline: auto;
}

main {
	min-height: 100vh;
	min-height: 100dvh;
	margin-top: calc(var(--header-height));

	@media (min-width: 769px) {
		margin-top: calc(var(--header-height) + 20px);
	}
}

/* ------------------------------------------- Header */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 2000;
	background: #fff;
	height: var(--header-height);

	.header-top {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: var(--header-height);
		max-width: 1600px;
		margin-inline: auto;

		@media (min-width: 769px) {
			height: 70px;
		}
	}

	.logo {
		img {
			width: 280px;
			display: block;

			@media (max-width: 768px) {
				width: 220px;
			}
		}
	}

	.header-cta {
		display: flex;
		gap: 10px;

		@media (max-width: 768px) {
			z-index: 1000;
			position: fixed;
			left: 0;
			right: 0;
			bottom: 0;
			gap: 0;
			overflow: hidden;
			background: #fff;
			padding-bottom: env(safe-area-inset-bottom);
			transform: translateY(120%);
			opacity: 0;
			pointer-events: none;
			transition: transform .28s ease, opacity .28s ease;

			&.is-visible {
				transform: translateY(0);
				opacity: 1;
				pointer-events: auto;
			}
		}

		.btn {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			gap: 0.8em;
			padding: 0.4em 0.8em;
			border-radius: var(--radius-sm);
			color: #fff;
			font-weight: 600;
			text-decoration: none;
			white-space: nowrap;
			letter-spacing: 0.05rem;
			font-size: 0.85em;

			@media (max-width: 768px) {
				flex: 1;
				border-radius: 0;
				padding: 0.5em;
				font-size: 1em;
			}
		}

		.btn-red {
			background: var(--clr-accent-red);

			.btn-icon {
				color: var(--clr-accent-red);

				img {
					width: 22px;
				}
			}
		}

		.btn-green {
			background: #05c755;

			.btn-icon {
				color: #05c755;
			}
		}
	}
}

.btn-icon {
	width: 36px;
	height: 36px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;

	@media (max-width: 768px) {
		width: 34px;
		height: 34px;
	}

	img,
	svg {
		width: 70%;
		height: auto;
		fill: currentColor;
	}
}

.hamburger {
	display: none;
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 1;
	-webkit-tap-highlight-color: transparent;

	@media (max-width: 768px) {
		display: block;
		z-index: 1002;
	}

	.hamburger__box {
		width: 46px;
		height: 46px;
		border-radius: 5px;
		background: var(--clr-text-main);
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.hamburger__bars {
		display: block;
		width: 22px;
		height: 2px;
		background: #fff;
		position: relative;
		border-radius: var(--radius-pill);

		&::before,
		&::after {
			content: "";
			position: absolute;
			left: 0;
			width: 22px;
			height: 2px;
			background: #fff;
			border-radius: var(--radius-pill);
		}

		&::before {
			top: -7px;
			transition: top 0.2s 0.2s, transform 0.2s;
		}

		&::after {
			top: 7px;
			transition: top 0.2s 0.2s, transform 0.2s;
		}
	}
}

.site-header.is-open {
	.hamburger .hamburger__bars {
		background: transparent;

		&::before {
			top: 0;
			transform: rotate(45deg);
			transition: top 0.2s, transform 0.2s 0.2s;
		}

		&::after {
			top: 0;
			transform: rotate(-45deg);
			transition: top 0.2s, transform 0.2s 0.2s;
		}
	}

	.nav-overlay {
		opacity: 1;
		pointer-events: auto;
	}

	.global-nav {
		transform: translateX(0);
	}
}

.nav-overlay {
	display: none;

	@media (max-width: 768px) {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.45);
		opacity: 0;
		pointer-events: none;
		transition: .3s;
		z-index: 1000;
	}
}

.global-nav {
	position: relative;
	/* 子メニューの基点に */

	@media (min-width: 769px) {
		border-top: 1px solid var(--clr-grey-300);
		border-bottom: 1px solid var(--clr-grey-300);
		background: #fff;
	}

	@media (max-width: 768px) {
		position: fixed;
		top: 0;
		right: 0;
		width: 280px;
		height: 100vh;
		background: #fff;
		transform: translateX(100%);
		transition: var(--transition-slow);
		z-index: 1001;
		padding-top: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.global-nav__brand {
		display: none;

		@media (max-width: 768px) {
			display: block;
			position: sticky;
			top: 0;
			z-index: 2;
			background: #fff;
			padding: 14px 16px;
			border-bottom: 1px solid var(--clr-grey-300);
		}
	}

	.global-nav__logo {
		display: inline-flex;
		align-items: center;
		text-decoration: none;

		img {
			display: block;
			width: 200px;
			height: auto;
		}
	}

	.global-nav__list {
		list-style: none;
		margin: 0;
		max-width: 1600px;
		margin-inline: auto;
		display: grid;
		grid-template-columns: repeat(6, 1fr);
		align-items: center;

		@media (max-width: 900px) {
			overflow-x: auto;
			white-space: nowrap;
			justify-content: flex-start;
			grid-template-columns: repeat(6, auto);
		}

		@media (max-width: 768px) {
			display: block;
			width: 100%;
			padding-top: var(--header-height);
		}

		>li {
			position: relative;
			text-align: center;

			@media (min-width: 769px) {
				/* メガメニュー用にPCでは親の相対位置を解除 */
				position: static;

				/* PCでのみ、区切り線を表示 ( li 間の薄い縦線 ) */
				&:not(:last-child) {
					background: linear-gradient(var(--clr-grey-300), var(--clr-grey-300)) no-repeat right center / 1px 18px;
				}
			}

			@media (max-width: 768px) {
				text-align: left;
			}

			&.menu-youtube {
				a {
					&::before {
						content: "";
						display: inline-block;
						width: 1em;
						height: 1em;
						vertical-align: middle;
						margin: 0.1em 0.4em 0 0;
						background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' fill='red'><path d='M549.655 124.083c-6.281-23.65-24.81-42.177-48.46-48.458C456.554 64 288 64 288 64S119.446 64 74.805 75.625c-23.65 6.281-42.177 24.808-48.458 48.458C16.5 168.727 16.5 256 16.5 256s0 87.273 9.847 131.917c6.281 23.65 24.808 42.177 48.458 48.458C119.446 448 288 448 288 448s168.554 0 213.195-11.625c23.65-6.281 42.177-24.808 48.46-48.458C559.5 343.273 559.5 256 559.5 256s0-87.273-9.845-131.917zM232 338V174l142 82-142 82z'/></svg>") no-repeat center / contain;

						@media (max-width: 768px) {
							width: 1.3em;
							height: 1.3em;
							margin: -0.2em 0.5em 0 0;
						}
					}
				}
			}

			&.has-child {

				>a,
				>span {
					position: relative;

					@media (min-width: 769px) {
						&::after {
							content: "";
							display: inline-block;
							vertical-align: middle;
							margin-left: 0.5em;
							margin-top: 1px;
							width: 0;
							height: 0;
							border-left: 4px solid transparent;
							border-right: 4px solid transparent;
							border-top: 5px solid var(--clr-grey-300);
							transition: transform .3s;
						}
					}
				}

				@media (min-width: 769px) {
					&:hover {
						>ul.sub-menu {
							opacity: 1;
							visibility: visible;
							transform: translateY(0);
						}

						>a::after,
						>span::after {
							transform: rotate(-180deg);
						}
					}
				}

				@media (max-width: 768px) {

					>a::after,
					>span::after {
						content: "";
						position: absolute;
						right: 20px;
						top: 50%;
						transform: translateY(-50%);
						width: 0;
						height: 0;
						border-left: 5px solid transparent;
						border-right: 5px solid transparent;
						border-top: 6px solid var(--clr-grey-300);
						transition: transform .3s;
					}

					&.is-active {

						>a::after,
						>span::after {
							transform: translateY(-50%) rotate(-180deg);
						}

						>ul.sub-menu {
							display: flex;
						}
					}
				}
			}
		}

		a,
		span {
			display: block;
			padding: 1.5em;
			font-size: 0.875em;
			color: var(--clr-text-main);
			text-decoration: none;
			white-space: nowrap;
			transition: 0.3s;
			position: relative;
			cursor: pointer;
			font-weight: 600;
			/* 子要素の基準にする */

			@media (min-width: 769px) {
				padding: 0.5em 1.2em;
				height: calc(50px - 2px);
				display: flex;
				justify-content: center;
				align-items: center;

				&:hover {
					background: var(--clr-grey-50);
					color: var(--clr-primary);
				}
			}

			@media (max-width: 768px) {
				border-bottom: 1px solid var(--clr-grey-300);
			}
		}

		/* 子メニュー (sub-menu) - PCでは幅100%メガメニュー、SPではチップス表示 */
		ul.sub-menu {
			display: none;
			list-style: none;
			padding: 1em;
			margin: 0;
			flex-wrap: wrap;
			gap: 0.5em;

			@media (min-width: 769px) {
				display: flex;
				opacity: 0;
				visibility: hidden;
				transition: opacity .35s ease, visibility .35s ease, transform .35s ease;
				position: absolute;
				top: 100%;
				left: 0;
				width: 100%;
				background: var(--clr-bg-panel);
				box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);
				z-index: 100;
				padding: 2em 1em;
				border-top: 1px solid var(--clr-grey-300);
				justify-content: center;
				align-items: center;
			}

			@media (max-width: 768px) {
				position: static;
				background: var(--clr-bg-panel);
				/* display: flex; は .is-active 時のみに制限 */
				flex-wrap: wrap;
				border-bottom: 1px solid var(--clr-grey-300);
			}

			li {
				text-align: center;
				margin: 0;

				@media (min-width: 769px) {
					&::after {
						display: none !important;
					}
				}
			}

			a,
			span {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				padding: 0.3em 1em 0.2em;
				border-radius: var(--radius-pill);
				background: #fff;
				border: 1px solid var(--clr-grey-300);
				color: var(--clr-text-main);
				font-size: 0.8em;
				height: auto;
				transition: all .25s ease;
				line-height: 1.3;

				@media (max-width: 768px) {}

				&:hover {
					background-color: var(--clr-grey-50);
					border-color: var(--clr-primary);
					color: var(--clr-primary);
					transform: translateY(-2px);
				}
			}
		}
	}
}

/* ------------------------------------------- Main Visual */
.post-card {
	display: block;
	text-decoration: none;
	color: inherit;
	background: #fff;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	transition: transform var(--transition-base), box-shadow var(--transition-base);

	&:hover {
		transform: translateY(-6px);
		box-shadow: var(--shadow-sm);
	}

	.post-card__thumb img {
		width: 100%;
		height: 140px;
		object-fit: cover;
		display: block;
	}

	.post-card__body {
		padding: 14px 16px 16px;
	}

	.post-card__meta {
		margin: 0 0 10px;
		font-weight: 600;
		color: var(--clr-text-main);
		line-height: 1.45;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
}

/* ------------------------------------------- Utilities & Common Patterns */
.u-hover-up,
.c-btn,
.rec-card,
.mini-card,
.p-archive .chip,
.promo-cta,
.promo-card,
.btn-outline-blue,
.back-to-top,
.u-chip {
	transition: transform .3s ease, box-shadow .3s ease, opacity .3s ease, background-color .2s, border-color .2s, color .2s;
	will-change: transform;
}

.site-header .header-cta .btn {
	@media (min-width: 769px) {
		transition: transform .3s ease, box-shadow .3s ease, opacity .3s ease, background-color .2s, border-color .2s, color .2s;
		will-change: transform;
	}

	&:hover {
		@media (min-width: 769px) {
			transform: translateY(-3px);
		}
	}
}

.u-hover-up:hover,
.c-btn:hover,
.rec-card:hover,
.mini-card:hover,
.p-archive .chip:hover,
.promo-cta:hover,
.promo-card:hover,
.btn-outline-blue:hover,
.back-to-top:hover,
.u-chip:hover {
	transform: translateY(-3px);
}

/* Chips / Tags (Flexible layout utility) */
.u-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	padding: 0;
	list-style: none;

	@media (max-width: 768px) {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.u-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	border-radius: var(--radius-pill);
	background: #fff;
	border: 1px solid var(--clr-grey-300);
	color: var(--clr-text-main);
	font-weight: 600;
	font-size: 0.8125rem;
	text-decoration: none;
	white-space: nowrap;

	&:hover {
		background-color: var(--clr-grey-50);
		border-color: var(--clr-primary);
		color: var(--clr-primary);
		box-shadow: var(--shadow-sm);
	}
}

/* ------------------------------------------- Button Patterns */
.c-btn {
	width: 100%;
	max-width: 500px;
	padding: 0.8em 0.5em 0.8em 1em;
	box-shadow: var(--shadow-md);
	border-radius: var(--radius-pill);
	display: flex;
	align-items: center;
	margin: 0 auto;
	text-decoration: none;
	color: #fff;
	font-weight: 600;
	position: relative;
	justify-content: center;
	gap: 0.5em;
	word-break: auto-phrase;
	overflow-wrap: anywhere;

	&.c-btn--red {
		background: var(--clr-accent-red);

		.c-btn__icon {
			color: var(--clr-accent-red);

			img,
			svg {
				width: 25px;

				@media (max-width: 768px) {
					width: 18px;
				}
			}
		}
	}

	&.c-btn--green {
		background: #05c755;
		max-width: 510px;

		.c-btn__icon {
			color: #05c755;

			img,
			svg {
				width: 30px;
				height: 30px;

				@media (max-width: 768px) {
					width: 20px;
					height: 20px;
				}
			}
		}
	}

	.c-btn__icon {
		width: 44px;
		height: 44px;
		background: #fff;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		color: currentColor;
		margin-right: auto;

		@media (max-width: 768px) {
			width: 30px;
			height: 30px;
		}

		img,
		svg {
			fill: currentColor;
		}
	}

	.c-btn__text {
		letter-spacing: 0.1rem;
		overflow: hidden;
		text-align: center;
		width: 100%;
		font-size: clamp(0.9375rem, 0.9rem + 0.1875vw, 1.125rem);

	}

	.c-btn__arrow {
		margin-left: auto;
		margin-right: -0.5em;
		width: 44px;
		height: 44px;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;

		svg {
			width: 25px;
			height: 25px;
		}
	}
}

.btn-outline-blue {
	width: 100%;
	max-width: 520px;
	min-width: 0;
	box-sizing: border-box;
	border-radius: var(--radius-pill);
	border: 2px solid var(--clr-primary);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.8em;
	text-decoration: none;
	font-weight: 600;
	color: var(--clr-primary);
	box-shadow: var(--shadow-md);
	word-break: auto-phrase;
	overflow-wrap: anywhere;

	.btn-outline-blue__text {
		flex: 1;
		min-width: 0;
		text-align: center;
		overflow: hidden;
		/*	white-space: nowrap;
		text-overflow: ellipsis;*/
	}

	.btn-outline-blue__arrow {
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		margin: 0;
	}

	&.btn-outline-blue--wide {
		max-width: 100%;
	}

}

/* ------------------------------------------- Categories Section */
.categories {
	margin-bottom: 6.3em;

	@media (max-width: 768px) {
		margin-bottom: 3em;
	}

	.categories__panel {}
}

.categories__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8em 0.5em;
	padding: 0;
	list-style: none;

	@media (max-width: 768px) {}

	.chip {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0.6em 1em;
		border-radius: var(--radius-pill);
		background: #fff;
		border: 1px solid var(--clr-grey-300);
		color: var(--clr-text-main);
		font-weight: 600;
		font-size: 0.875rem;
		text-decoration: none;
		white-space: nowrap;
		transition: background-color .25s, border-color .25s, color .25s, transform .25s, box-shadow .25s;

		@media (max-width: 768px) {
			font-size: 0.875em;
		}

		&:hover {
			border-color: rgba(31, 78, 163, .55);
			box-shadow: 0 10px 18px rgba(0, 0, 0, .08);
			transform: translateY(-3px);
		}
	}

}

/* ------------------------------------------- Archive & Post Grid (Archive Pages) */
.p-archive {
	+.p-archive {
		margin-top: 5em;
	}

	.p-archive__desc {
		margin: 0 0 18px;
		color: var(--clr-text-sub);
		line-height: 1.8;
		text-align: center;
	}

	.p-archive__meta {
		margin: 0 auto 2em;
		display: flex;
		align-items: center;
		justify-content: flex-start;
	}

	.p-archive__count {
		color: var(--clr-primary);
		font-size: 0.875em;
		border-bottom: 1px solid currentColor;
		width: 100%;
		padding: 0.5em;
		letter-spacing: 0.05rem;

		b {
			font-weight: 400;
			font-size: 1.6em;
		}
	}
}

.p-post-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px 24px;
	margin-top: 10px;

	@media (max-width: 1024px) {
		grid-template-columns: repeat(3, 1fr);
		gap: 22px;
	}

	@media (max-width: 768px) {
		grid-template-columns: repeat(2, 1fr);
		gap: 18px 14px;
	}

	@media (max-width: 480px) {
		grid-template-columns: 1fr;
		gap: 14px;
	}
}

.p-card {
	background: #fff;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	transition: transform var(--transition-base), box-shadow var(--transition-base);

	&:hover {
		transform: translateY(-4px);
		box-shadow: 0 8px 18px rgba(0, 0, 0, .14);

		.p-card__thumb {
			transform: scale(1.08);
		}
	}

	.p-card__link {
		display: block;
		color: inherit;
		text-decoration: none;

		&:hover .p-card__title {
			text-decoration: underline;
		}

		@media (max-width: 480px) {
			display: grid;
			grid-template-columns: 132px 1fr;
			grid-template-areas: "thumb body" "cats cats";
			gap: 10px 15px;
			align-items: start;
			padding: 10px 10px 0;
		}
	}

	.p-card__thumb {
		width: 100%;
		aspect-ratio: 16 / 10;
		object-fit: cover;
		display: block;
		transform: scale(1.02);
		transition: transform var(--transition-slow);

		@media (max-width: 480px) {
			grid-area: thumb;
			width: 132px;
			height: 92px;
			border-radius: var(--radius-md);
		}
	}

	.p-card__body {
		padding: 1em;

		@media (max-width: 480px) {
			grid-area: body;
			padding: 0;
			display: flex;
			flex-direction: column;
		}
	}

	.p-card__meta {
		display: flex;
		gap: 14px;
		flex-wrap: wrap;
		color: var(--clr-text-sub);
		margin-bottom: 8px;

		@media (max-width: 480px) {
			order: 1;
		}
	}

	.p-card__title {
		margin: 0 auto 0.5em;
		font-weight: 600;
		line-height: 1.5;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		font-size: 1.1em;

		@media (max-width: 480px) {
			order: 2;
		}
	}

	.p-card__cats {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		padding: 0 1em 1em;

		@media (max-width: 480px) {
			grid-area: cats;
			margin-top: 6px;
			padding: 0 1em 1em;
		}
	}
}

.post-card__date,
.p-card__date,
.mini-card__meta {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	color: #bbb;
	font-size: 0.875em;
	line-height: 1;
}

.icon-clock {
	color: #bbb;
	flex-shrink: 0;
}

.p-tag {
	border-radius: var(--radius-pill);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--clr-primary);
	background: #fff;
	color: var(--clr-primary);
	line-height: 1;
	text-decoration: none;
	padding: 0.3em 0.6em;
	font-size: 0.75em;

	&:hover {
		background: var(--clr-primary);
		color: #fff;
	}
}

.back-to-top {
	z-index: 1000;
	position: fixed;
	right: 1em;
	bottom: 90px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--clr-primary);
	color: #fff;
	font-size: 18px;
	font-weight: 600;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: translateY(20px);
	pointer-events: none;

	svg {
		transform: rotate(-90deg) translate(2px, 0px);
		width: 40px;
		height: 40px;
	}

	&.is-visible {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}
}

footer {
	margin-top: 5em;

	@media (max-width: 768px) {
		margin-top: 3em;
	}
}

.site-footer {
	background: var(--clr-text-main);
	padding: 1.5em 0;


	@media (max-width: 768px) {
		padding: 1.5em 0 calc(50px + 2em);
	}

	.site-footer__nav,
	.site-footer__copy {
		text-align: center;
		color: #fff;
		font-size: 0.875em;
		letter-spacing: .04em;
	}

	.site-footer__nav {
		margin: 0 auto 1.5em;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-wrap: wrap;

		li {
			&:not(:last-child) {
				&:after {
					content: "丨";
					color: #eeeeee;
				}
			}

			a {
				text-decoration: underline;

				&:hover {
					text-decoration: none;
				}
			}
		}
	}

	.site-footer__copy {
		display: block;
	}
}

.blue-round-bg {
	padding: 5em 10px;
	background: var(--clr-bg-panel);
	border-radius: 3em;
	margin: 0 10px;

	@media (max-width: 768px) {
		padding: 3em 10px;
	}
}

.green-round-bg {
	padding: 3em 10px;
	background: #eaf7f1;
	border-radius: 3em;
	margin: 0 10px;
}

.section-head {
	text-align: center;
}

.section-head__eyebrow {
	margin-inline: auto;
	font-size: 1.25em;
	font-weight: 500;
	letter-spacing: 0.05rem;
	color: var(--clr-secondary);
	font-family: "Oswald", sans-serif;
	text-align: center;
	margin-bottom: 0.5em !important;
}

.section-head__title {
	margin-inline: auto;
	font-size: clamp(1.125rem, 1rem + 1.5vw, 2.625rem);
	line-height: 1.6;
	margin-bottom: 1.2em;
	color: var(--clr-text-main);
	letter-spacing: 0.1rem;
	text-align: center;

	span {
		&.small {
			font-size: 0.875em;
			display: block;
		}

		&.blue {
			color: var(--clr-primary);
		}
	}
}