/* ============================================================
   CSS Custom Properties
   ============================================================ */
:root {
	--color-bg: #ffffff;
	--color-text: #1a1a1a;
	--color-accent: #000000;

	--font-sans: 'Noto Sans JP', sans-serif;

	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 2rem;
	--space-lg: 4rem;
	--space-xl: 8rem;

	--max-width: 1280px;
	--header-height: 80px;
}

/* ============================================================
   Reset / Base
   ============================================================ */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-sans);
	line-height: 1.7;
}

img, video {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

ul, ol {
	list-style: none;
}

/* ============================================================
   Layout
   ============================================================ */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: var(--header-height);
	z-index: 100;
	background: transparent;
	transition: background 0.4s ease, backdrop-filter 0.4s ease;
}

/* スクロール後: ガラス模様の背景 */
.site-header.is-visible {
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

/* FV ページ SP: 初期状態は非表示 → スクロールで JS が .is-visible を付与してふわっと表示 */
@media (max-width: 767px) {
	.has-fv .site-header {
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.5s ease;
	}
	.has-fv .site-header.is-visible {
		opacity: 1;
		pointer-events: auto;
	}
}

/* WordPress 管理バー（32px）分の FV 高さ補正 */
.admin-bar .fv {
	height: calc(100svh - 32px);
}
@media screen and (max-width: 782px) {
	.admin-bar .fv {
		height: calc(100svh - 46px);
	}
}

.site-header__inner {
	padding-inline: var(--space-md);
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* SP: ロゴを小さく、左上に寄せる */
@media (max-width: 767px) {
	.site-header {
		height: 52px;
	}
	.site-header__inner {
		padding-inline: 20px;
		padding-block: 14px;
		align-items: flex-start;
	}
	.site-header__logo img {
		height: 22px;
		width: auto;
	}
}

/* TODO: 内部ページ追加時に padding-top: var(--header-height) を追加する */
.site-main {}

.site-footer {
	background: #81b29a;
	padding-block: clamp(80px, 14vh, 140px);
}

.site-footer__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(20px, 3vh, 32px);
}

.site-footer__logo img {
	display: block;
	height: clamp(48px, 6vw, 80px);
	width: auto;
}

.site-footer__copy {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: clamp(12px, 1.25vw, 16px);
	color: #fff;
	text-align: center;
	letter-spacing: 0.05em;
	margin: 0;
}

/* ============================================================
   Back to Top ボタン
   スクロールで JS が .is-visible を付与してふわっと表示
   ============================================================ */
.backtop {
	position: fixed;
	right: clamp(16px, 2.5vw, 32px);
	bottom: clamp(16px, 2.5vw, 32px);
	z-index: 200;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease, transform 0.4s ease;
	transform: translateY(8px);
}

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

.backtop img {
	display: block;
	width: clamp(40px, 4vw, 56px);
	height: auto;
}

/* ============================================================
   Scroll Reveal
   .js-reveal を付けた要素が画面内に入ると .is-revealed が付与される
   ============================================================ */
.js-reveal {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-reveal.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* 遅延クラス（子要素を順番にリビール） */
.js-reveal[data-reveal-delay="1"] { transition-delay: 0.1s; }
.js-reveal[data-reveal-delay="2"] { transition-delay: 0.2s; }
.js-reveal[data-reveal-delay="3"] { transition-delay: 0.3s; }
.js-reveal[data-reveal-delay="4"] { transition-delay: 0.4s; }
.js-reveal[data-reveal-delay="5"] { transition-delay: 0.5s; }

/* ============================================================
   Navigation
   ============================================================ */
.site-nav__list {
	display: flex;
	gap: var(--space-md);
}
