/* ==========================================================
   森の香。foreal トップページ
   色：ink #222222 / ink-muted #444444 / wood #6B4F3A
       accent #a28368 / cream #f5f2ef / track #E8E1D9
   すべて .ft の中だけに効くようにしている（VOGUE の部品には触らない）
   ========================================================== */

.ft {
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	color: #222222;
	background: #FFFFFF;
	font-size: 16px;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
}
.ft *, .ft *::before, .ft *::after { box-sizing: border-box; }
.ft p, .ft h1, .ft h2, .ft ul, .ft figure { margin: 0; padding: 0; }
.ft ul { list-style: none; }
.ft a { color: #222222; text-decoration: none; }
.ft a:hover { color: #6B4F3A; }
.ft img { display: block; max-width: 100%; }

.ft .ft-inner { max-width: 1240px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }
.ft-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 見出し */
.ft-label {
	display: flex; align-items: center; gap: 12px; margin-bottom: 6px;
	font-family: "EB Garamond", Georgia, serif; font-size: 16px; line-height: 1.5;
	letter-spacing: .14em; color: #444444;
}
.ft-label::before { content: ""; display: block; width: 32px; height: 2px; background: #a28368; }
.ft-h2 { font-size: 20px; line-height: 1.6; font-weight: 500; letter-spacing: .04em; }
.ft-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 24px; margin-bottom: 24px; }

/* 矢印つきのリンク */
.ft-row { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
.ft-arw { color: #6B4F3A; transition: transform .25s ease; }
.ft-row:hover .ft-arw { transform: translateX(4px); }
.ft-more { font-size: 15px; }

/* ---------- キービジュアル ---------- */
.ft-kv { position: relative; margin-bottom: 72px; }
.ft-kv__photos {
	position: relative; width: 100%;
	aspect-ratio: 16 / 8; max-height: 720px; min-height: 360px;
	overflow: hidden; background: #E8E1D9;
}
.ft-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s ease; }
.ft-slide.is-on { opacity: 1; }
.ft-slide__img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- お知らせ ---------- */
.ft-news { padding-bottom: 80px; }
.ft-news__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.ft-ncard { display: block; min-width: 0; }
.ft-ncard__thumb { aspect-ratio: 3 / 2; overflow: hidden; border-radius: 2px; background: #E8E1D9; }
.ft-ncard__img, .ft-ncard__noimg { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ft-ncard:hover .ft-ncard__img { transform: scale(1.04); }
.ft-ncard__meta { margin-top: 12px; min-width: 0; }
.ft-ncard__date {
	display: block; margin-bottom: 4px;
	font-family: "EB Garamond", Georgia, serif; font-size: 16px; line-height: 1.5;
	letter-spacing: .04em; color: #444444; font-variant-numeric: tabular-nums;
}
.ft-ncard__title { font-size: 15px; line-height: 1.75; transition: color .2s; }
.ft-ncard:hover .ft-ncard__title { color: #6B4F3A; }

/* ---------- イベント出店情報 ---------- */
.ft-band { background: #f5f2ef; }
.ft-split {
	display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px 48px;
	padding-top: 64px; padding-bottom: 64px;
}
.ft-ev-list { border-top: 1px solid #222222; }
.ft-ev {
	display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: 4px 24px; align-items: center;
	width: 100%; padding: 18px 0; border-bottom: 1px dotted #a28368;
}
.ft-ev__date { display: flex; flex-direction: column; line-height: 1.2; font-size: 13px; color: #444444; }
.ft-ev__date span { margin-bottom: 4px; font-family: "EB Garamond", Georgia, serif; font-size: 30px; letter-spacing: .02em; color: #222222; }
.ft-ev__body { min-width: 0; }
.ft-ev__name { font-size: 16px; line-height: 1.7; font-weight: 500; transition: color .2s; }
.ft-ev--link:hover .ft-ev__name, .ft-ev--link:hover .ft-ev__to { color: #6B4F3A; }
.ft-ev__to { position: relative; white-space: nowrap; font-size: 14px; line-height: 1.6; color: #444444; transition: color .2s; }
.ft-ev__arw { margin-left: 6px; color: #6B4F3A; }
.ft-ev__info { margin-top: 2px; font-size: 14px; line-height: 1.8; color: #444444; }
.ft-ev-empty { padding: 18px 0; border-top: 1px solid #222222; font-size: 15px; color: #444444; }

/* ---------- そのほかの情報 ---------- */
.ft-links { border-top: 1px solid #E8E1D9; }
.ft .ft-links ul { display: flex; flex-wrap: wrap; gap: 0 40px; padding-top: 8px; padding-bottom: 8px; }
.ft-links .ft-row { min-height: 52px; font-size: 15px; }

/* ---------- スクロールで軽く浮き上がる（対応ブラウザのみ） ---------- */
@supports (animation-timeline: view()) {
	.ft-news__grid, .ft-split {
		animation: ft-rise linear both;
		animation-timeline: view();
		animation-range: entry 0% entry 60%;
	}
}
@keyframes ft-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }

/* ---------- タブレット ---------- */
@media (max-width: 960px) {
	.ft-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ft-split { grid-template-columns: 1fr; }
}

/* ---------- スマホ ---------- */
@media (max-width: 640px) {
	.ft-kv__photos { aspect-ratio: 4 / 5; max-height: none; }
	.ft-news__grid { grid-template-columns: 1fr; gap: 0; }
	.ft-ncard {
		display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; align-items: start;
		padding: 12px 0; border-bottom: 1px solid #E8E1D9;
	}
	.ft-kv { margin-bottom: 36px; }
	.ft-news { padding-bottom: 40px; }
	.ft-head { margin-bottom: 4px; }
	.ft .ft-split { gap: 12px; padding-top: 36px; padding-bottom: 36px; }
	.ft-ev { padding: 12px 0; }
	.ft .ft-links ul { padding-top: 4px; padding-bottom: 4px; }
	.ft-links .ft-row { min-height: 44px; }
	.ft-ncard__meta { margin-top: 0; }
	.ft-ev { grid-template-columns: 64px minmax(0, 1fr); }
	.ft-ev__to { grid-column: 2; margin-top: 2px; }
}

/* ---------- 動きを減らす設定の端末 ---------- */
@media (prefers-reduced-motion: reduce) {
	.ft-slide, .ft-ncard__img, .ft-news__grid, .ft-split {
		animation: none !important; transition: none !important;
	}
}
