/*
Theme Name: Edojoucho Theme
Theme URI: https://example.com
Author: Site Owner
Version: 0.2.0
Requires at least: 6.6
Tested up to: 6.7
Description: Standalone theme for edojoucho.com aligned with Twenty Twenty-Five style guidance, including a simple maintenance screen for the build phase.
Text Domain: edojoucho
*/

/* スムーズスクロール */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* ページトップへボタン（右下固定・◯に▲・常時表示） */
.edo-pagetop {
	position: fixed;
	bottom: 1.25rem;
	right: 1.25rem;
	z-index: 70;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: linear-gradient(to bottom, #bf6c13, #703f0b);
	color: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.edo-pagetop:hover,
.edo-pagetop:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
	outline: none;
}
@media (prefers-reduced-motion: reduce) {
	.edo-pagetop:hover,
	.edo-pagetop:focus-visible {
		transform: none;
	}
}
.edo-pagetop__triangle {
	width: 0;
	height: 0;
	border-left: 0.5rem solid transparent;
	border-right: 0.5rem solid transparent;
	border-bottom: 0.7rem solid #fff;
}

body.maintenance-mode {
	min-height: 100vh;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2rem);
	background: #ffffff;
	color: var(--wp--preset--color--foreground, #0f172a);
	font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.maintenance-shell {
	width: min(1200px, 100vw);
	display: flex;
	flex-direction: column;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	text-align: center;
}

.noren-stage {
	position: relative;
	width: 100%;
	height: min(80vh, 720px);
	max-height: 80vh;
	background: #ffffff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.noren-backdrop {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.noren-word {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	letter-spacing: 0.18em;
	font-size: clamp(2.7rem, 7vw, 4.8rem);
	font-weight: 600;
	color: #b7282e1a;
	text-transform: lowercase;
}

.noren-panels {
	position: absolute;
	inset: 0;
	display: flex;
	gap: clamp(10px, 1vw, 18px);
	padding-top: clamp(12px, 2vw, 18px);
}

.noren-panels::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: clamp(36px, 6vw, 54px);
	background: #b7282e;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
	z-index: 2;
}

.noren-panel {
	--dx: 0px;
	--dy: 0px;
	--rot: 0deg;
	--skew: 0deg;
	position: relative;
	flex: 1;
	height: 100%;
	background:
		linear-gradient(180deg, #b7282e 0%, #8f1f24 52%, #b7282e 100%),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 10px),
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.02) 0 6px, transparent 6px 16px);
	opacity: 0.98;
	box-shadow:
		inset 0 8px 16px rgba(0, 0, 0, 0.12),
		inset 0 -12px 20px rgba(0, 0, 0, 0.10),
		0 12px 26px rgba(0, 0, 0, 0.10);
	overflow: hidden;
	transform: translate3d(var(--dx), var(--dy), 0) rotate(var(--rot)) skewX(var(--skew));
	transition: transform var(--dur, 3.2s) ease-in-out;
}

.noren-panel::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 45%, rgba(0, 0, 0, 0.14) 100%),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0 1px, transparent 1px 10px),
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.03) 0 6px, transparent 6px 16px);
	mix-blend-mode: soft-light;
	pointer-events: none;
}

.noren-panel-left,
.noren-panel-right {
	border: none;
}

.maintenance-copy {
	max-width: 720px;
	margin: 0 auto;
	display: grid;
	gap: 0.75rem;
}

.maintenance-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.4rem 0.85rem;
	margin: 0 auto;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 14%, transparent);
	color: var(--wp--preset--color--primary, #0f172a);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.maintenance-title {
	margin: 0;
	font-size: clamp(2rem, 4.4vw, 2.7rem);
	line-height: 1.25;
}

.maintenance-text {
	margin: 0;
	font-size: 1rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 72%, transparent);
}

.maintenance-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	justify-content: center;
	align-items: center;
	font-size: 0.95rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 65%, transparent);
}

.maintenance-separator {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 60%, transparent);
}

.maintenance-note {
	margin: 0.5rem auto 0;
	font-size: 0.9rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 58%, transparent);
}

.edo-nav {
	position: sticky;
	top: 0;
	z-index: 80;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	min-height: 3rem;
	padding: 0 clamp(1rem, 3vw, 1.5rem) 0.85rem 0;
	gap: 0.5rem;
	background: #ffffff;
}

.edo-nav__logo {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	position: absolute;
	top: 0;
	left: 0;
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	min-height: 3rem;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	visibility: visible !important;
	z-index: 1;
}

.edo-nav__logo:hover {
	opacity: 0.9;
}

.edo-nav__logo:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.edo-nav__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	margin-left: 3rem;
	padding: 0;
	position: relative;
	z-index: 120;
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.edo-nav__toggle:hover,
.edo-nav__toggle:focus-visible {
	opacity: 0.9;
	transform: translateY(-1px);
	outline: none;
}

.edo-nav__sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.edo-nav__icon {
	width: 4.5rem;
	height: 6rem;
	object-fit: contain;
	display: inline-block;
	vertical-align: middle;
	transform-origin: calc(100% - 5px) calc(100% - 30px);
	transform: rotate(var(--edo-nav-tilt, 0deg));
	transition: transform 2.4s ease-in-out;
	opacity: 0.9;
}

.edo-nav__icon--close {
	display: none;
}

.edo-nav.is-open .edo-nav__icon--open {
	display: none;
}

.edo-nav.is-open .edo-nav__icon--close {
	display: inline-block;
}

.edo-nav__list {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0 0 0 3rem;
	padding: 0;
	list-style: none;
	font-size: 1rem;
	font-weight: 600;
}

.edo-nav__item {
	display: flex;
}

.edo-nav__link {
    color: 
 color-mix(in srgb, #251604fc 82%, transparent);
    text-decoration: none;
    font-weight: 600;
    padding: 0;
    transition: color 0.2s ease;
}

.edo-nav__link:hover,
.edo-nav__link:focus-visible {
	color: var(--wp--preset--color--primary, #0f172a);
	outline: none;
}

.edo-nav__item:not(:last-child)::after {
	content: "｜";
	display: inline-block;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 60%, transparent);
	margin-left: 0.85rem;
}

.edo-nav__panel {
	display: none;
	position: fixed;
	inset: 0;
	align-items: center;
	justify-content: center;
	padding: clamp(1.25rem, 6vw, 3rem);
	background: url(img/sumaho_menu_back.jpg) center / cover no-repeat;
	z-index: 60;
}

.edo-nav__panel-grid {
	width: min(92vw, 520px);
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.8rem, 3vw, 1.25rem);
}

.edo-nav__panel-tile {
	display: flex;
}

.edo-nav__panel-tile-link {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 14px;
	background: #ffffff;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 94%, transparent);
	font-size: clamp(1rem, 3.5vw, 1.1rem);
	font-weight: 800;
	letter-spacing: 0.02em;
	text-decoration: none;
	box-shadow:
		0 14px 32px rgba(0, 0, 0, 0.16),
		0 2px 6px rgba(0, 0, 0, 0.08);
	transition: transform 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, background-color 0.18s ease;
}

.edo-nav__panel-tile-link:hover,
.edo-nav__panel-tile-link:focus-visible {
	transform: translateY(-2px);
	box-shadow:
		0 18px 42px rgba(0, 0, 0, 0.2),
		0 4px 10px rgba(0, 0, 0, 0.12);
	background: color-mix(in srgb, #ffffff 88%, var(--wp--preset--color--primary, #0f172a) 12%);
	color: var(--wp--preset--color--primary, #0f172a);
	outline: none;
}

body.edo-nav--locked {
	overflow: hidden;
}

@media (max-width: 640px) {
	.edo-nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		padding: 0 1rem 0.5rem 0;
		background: transparent;
		z-index: 200; /* 店舗フィルタ（110）より前面にし、メニュー開時も上に表示 */
	}

	.edo-nav__list,
	.edo-nav__inline-lang {
		display: none !important;
	}

	.edo-nav__toggle {
		display: inline-flex !important;
	}

	.edo-nav.is-open .edo-nav__panel {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		padding-top: clamp(3rem, 8vw, 5rem);
		overflow-y: auto;
	}

	.edo-nav__panel-menu {
		width: 100%;
		max-width: min(92vw, 520px);
		margin: 0 auto clamp(2rem, 5vw, 3rem);
		padding: 0;
		list-style: none;
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.edo-nav__panel-item {
		display: flex;
		border-bottom: 1px solid color-mix(in srgb, #ffffff 30%, transparent);
	}

	.edo-nav__panel-item:last-child {
		border-bottom: none;
	}

	.edo-nav__panel-link {
		display: block;
        width: 100%;
        padding: 6px 0 6px 0;
        background: #ffffff9e;
        color: 
 color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 94%, transparent);
        font-size: clamp(1rem, 3.5vw, 1.15rem);
        /* font-weight: 600; */
        text-decoration: none;
        border-radius: 0;
        box-shadow: none;
        transition: color 0.18s ease, background-color 0.18s ease;
        text-align: center;
	}

	.edo-nav__panel-link:hover,
	.edo-nav__panel-link:focus-visible {
		background: color-mix(in srgb, #ffffff 88%, var(--wp--preset--color--primary, #0f172a) 12%);
		color: var(--wp--preset--color--primary, #0f172a);
		outline: none;
	}

	.edo-nav__panel-lang {
		width: 100%;
		max-width: min(92vw, 520px);
		margin: 0 auto;
		padding-top: clamp(1.5rem, 4vw, 2rem);
		border-top: 1px solid color-mix(in srgb, #ffffff 30%, transparent);
	}

	.edo-nav__panel-lang .edo-nav__panel-grid {
		width: 100%;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(0.5rem, 2vw, 0.75rem);
	}

	.edo-nav__panel-lang .edo-nav__panel-tile-link {
		aspect-ratio: 3 / 1;
		font-size: clamp(0.7rem, 2vw, 0.85rem);
		padding: clamp(0.4rem, 1.2vw, 0.6rem) clamp(0.3rem, 1vw, 0.5rem);
		border-radius: 6px;
		min-height: auto;
	}
}

@media (min-width: 641px) {
	.edo-nav__toggle,
	.edo-nav__panel {
		display: none !important;
	}

	.edo-nav__list {
		display: flex !important;
	}

	.edo-nav {
		position: sticky;
		background: #c78761;
		flex-wrap: wrap;
	}

	/* PC: ナビ下の行に言語切替 */
	.edo-nav__inline-lang {
		display: block !important;
		flex-basis: 100%;
		margin-left: 3rem;
		margin-top: 0.35rem;
	}

	.edo-nav__inline-lang-list {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5rem 0.85rem;
		list-style: none;
		margin: 0;
		padding: 0;
		justify-content: flex-end;
	}

	.edo-nav__inline-lang-item {
		display: flex;
	}

	.edo-nav__inline-lang-item:not(:last-child)::after {
		content: "｜";
		display: inline-block;
		color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 50%, transparent);
		margin-left: 0.85rem;
	}

	.edo-nav__inline-lang-link {
		color: color-mix(in srgb, #251604 70%, transparent);
		text-decoration: none;
		font-size: 0.85rem;
		font-weight: 600;
		transition: color 0.2s ease;
	}

	.edo-nav__inline-lang-link:hover,
	.edo-nav__inline-lang-link:focus-visible {
		color: var(--wp--preset--color--primary, #0f172a);
		outline: none;
	}
}

/* Front page */
.frontpage-template {
	/* 背景パターンを活かすため body ではなくテキスト色のみ指定 */
	color: var(--wp--preset--color--foreground, #0f172a);
	font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.frontpage-shell {
	--front-shell-pad: clamp(1.25rem, 5vw, 3rem);
	--front-max-width: min(1100px, calc(100% - 2 * var(--front-shell-pad)));
	display: flex;
	flex-direction: column;
	gap: clamp(2rem, 4vw, 3rem);
	background: transparent;
	width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
}

/* 飛び出し画像：上部表示時に left 500px → 289px でスライドイン（absolute・画面固定なし） */
.front-tobidashi-wrap {
	position: absolute;
	min-height: min(50vh, 400px);
	width: 100%;
}

.front-tobidashi {
	position: absolute;
	top: 48px;
	left: 0;
	width: 100%;
	min-height: min(50vh, 400px);
	overflow: hidden;
}

.front-tobidashi__img {
	position: absolute;
	left: 500px;
	top: 0;
	height: auto;
	max-height: min(50vh, 400px);
	width: auto;
	transition: left 1.2s ease-out;
}

.front-tobidashi.is-visible .front-tobidashi__img {
	left: 60%;
	width: 40%;
}

.front-logo {
	display: flex;
	justify-content: center;
	padding-top: clamp(1rem, 3vw, 1.5rem);
}

.front-logo__img {
    width: 4rem;
    height: auto;
}

.front-logo-secondary {
	display: block;
	margin: 0;
	width: 100vw; /* ビューポート基準に揃えてズレを解消 */
	margin-left: calc((100vw - 100%) / -2);
	margin-right: calc((100vw - 100%) / -2);
	overflow: visible; /* 画像の下部が切れないように */
	position: relative;
	margin-top: -80px;
	z-index: 0;
	/* 高さは最初の画像に合わせて自動調整される */
}

.front-logo-secondary__img {
	width: 130vw;
	max-width: none;
	height: auto;
	display: block;
	margin-left: calc((130vw - 100vw) / -2); /* ビューポート基準で左右対称に寄せる */
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	opacity: 0;
	z-index: 1;
	/* transitionはJavaScriptで制御するため削除 */
	will-change: opacity;
}

/* 最初の画像は通常のフローに配置して親要素の高さを確保 */
.front-logo-secondary__img[data-index="0"] {
	position: relative;
	opacity: 1;
	z-index: 2;
}

/* JavaScriptで制御される際は絶対配置に変更される */
.front-logo-secondary__img.js-controlled {
	position: absolute !important;
}

/**
 * 赤坂町画像のスライドショー
 * 
 * JavaScriptで制御されるため、CSSアニメーションは使用しません。
 * 画像の表示は akasaka-machi-slideshow.js で制御されます。
 * 
 * 画像を追加する場合：
 * 1. page-frontpage.php の $akasaka_machi_images 配列に画像ファイル名を追加
 * 2. JavaScriptが自動的に画像を読み込んで表示します
 */

/* --- Akasaka page (page-akasaka.php) --- */
.akasaka-template {
	color: var(--wp--preset--color--foreground, #0f172a);
	font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.akasaka-shell {
	--akasaka-pad: clamp(1.25rem, 5vw, 3rem);
	--akasaka-max: min(800px, calc(100vw - 2 * var(--akasaka-pad)));
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: clamp(1.5rem, 4vw, 2.5rem) var(--akasaka-pad) clamp(3rem, 7vw, 4rem);
	width: 100%;
	box-sizing: border-box;
}

.akasaka-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: url('img/ukiyoe.webp'); /* フォールバック（inline styleで上書き可） */
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0.1;
	pointer-events: none;
}

.akasaka-page {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--akasaka-max);
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
}

.akasaka-hero {
	width: 100%;
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.akasaka-hero__img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: middle;
}

.akasaka-header {
	margin: 0;
}

.akasaka-title {
	margin: 0;
	font-size: clamp(1.5rem, 3.2vw, 2rem);
	line-height: 1.3;
	font-weight: 700;
}

.akasaka-body {
	line-height: 1.85;
}

.akasaka-body > *:first-child {
	margin-top: 0;
}

.akasaka-body > *:last-child {
	margin-bottom: 0;
}

.akasaka-body p {
	margin: 0 0 1.25em;
	text-align: justify;
}

.akasaka-body p:last-child {
	margin-bottom: 0;
}

.akasaka-body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

/* Items Section */
.items-section {
    max-width: var(--front-max-width);
    width: 100%;
    margin: 0 auto;
    padding: 0px 10px 6px 10px;
    background: #ffffff2e;
    border-radius: 18px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    box-sizing: border-box;
}

.edo-single {
	/* アーカイブのグリッドではなく1カラムで見せる */
	display: block;
}

.edo-entry {
	max-width: min(860px, 100%);
	margin: 0 auto;
	display: grid;
	gap: clamp(1rem, 2.8vw, 1.4rem);
}

.edo-entry__header {
	margin-top: -40px; /* アーカイブでの余白感を踏襲しつつ調整 */
}

.edo-entry__panel {
	margin: 0;
}

/* 単一ページ内の画像がDIVからはみ出さないようにする */
.edo-entry .item-card__image {
	margin: 0 0 1rem 0;
	max-width: 100%;
	width: 100%;
	overflow: hidden;
	box-sizing: border-box;
}

.edo-entry .item-card__image-img {
	max-width: 100%;
	width: 100%;
	height: auto;
	display: block;
	box-sizing: border-box;
}

.edo-entry .item-card__gallery {
	max-width: 100%;
	width: 100%;
	overflow: hidden;
	box-sizing: border-box;
}

.edo-entry .item-card__gallery > * {
	max-width: 100%;
	overflow: hidden;
}

.edo-entry .item-card__gallery-img {
	max-width: 100%;
	width: 100%;
	height: auto;
	box-sizing: border-box;
	display: block;
}

.edo-section-title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.2rem, 2.2vw, 1.5rem);
	line-height: 1.25;
}

.edo-entry-content {
	line-height: 1.75;
	color: var(--wp--preset--color--foreground, #0f172a);
}

.edo-entry-content > *:first-child {
	margin-top: 0;
}

.edo-entry-content p {
	text-align: justify;
}

.edo-meta-list {
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}

.edo-meta-list__row {
	display: grid;
	grid-template-columns: minmax(7.5rem, 10rem) 1fr;
	gap: 0.75rem;
	align-items: start;
}

.edo-meta-list__term {
	margin: 0;
	font-weight: 700;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 86%, transparent);
}

.edo-meta-list__desc {
	margin: 0;
}

.edo-meta-list__sub {
	font-size: 0.92em;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 72%, transparent);
}

.edo-link-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--primary, #0f172a);
	color: #ffffff;
	font-weight: 700;
	font-size: 0.95rem;
	text-decoration: none;
	line-height: 1.1;
	transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.edo-link-button:hover,
.edo-link-button:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
	outline: none;
}

.edo-link-button--ghost {
	background: #ffffff;
	color: var(--wp--preset--color--primary, #0f172a);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 20%, transparent);
}

.edo-embed iframe {
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
	border-radius: 12px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.edo-media {
	margin: 0 0 0.75rem;
}

.edo-media img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 12px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.edo-single__footer {
	display: flex;
	justify-content: center;
	padding: 0.25rem 0 0.75rem;
}

@media (max-width: 720px) {
	.edo-entry__header {
		margin-top: -25px;
	}

	.edo-meta-list__row {
		grid-template-columns: 1fr;
		gap: 0.35rem;
	}
}

.items-section__header {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	margin-bottom: clamp(2rem, 4vw, 3rem);
	border-radius: 12px;
	overflow: visible;
	margin: 0 0 14px 0;
}

.items-section__header-bg {
	position: absolute;
	inset: 0;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0.3;
	z-index: 0;
}

.items-section__title {
    /* position: relative; */
    /* z-index: 1; */
    width: 100%;
    border-bottom: 1px solid #ffffff54;
    margin: 10px 0px 60px 1px;
    padding: 0 0 6px 0;
    font-size: clamp(1.8rem, 3.5vw, 2.5rem);
    text-align: center;
    /* color: var(--wp--preset--color--foreground, #0f172a); */
    /* padding: 0.8rem 2rem; */
    /* border-radius: 12px; */
    /* background: rgb(255 255 255 / 95%); */
    /* border: 1px solid
 color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 14%, transparent); */
    /* width: fit-content; */
    /* box-sizing: border-box; */
}

/* イベント「飲食除き参加無料」など目立たせる注記 */
.items-section__note {
	margin: -56px auto 80px auto;
	text-align: center;
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	font-weight: 600;
	color: var(--wp--preset--color--foreground, #0f172a);
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 248, 240, 0.95) 100%);
	border: 2px solid #c58a3d;
	border-radius: 10px;
	padding: 0.65rem 1.25rem;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
	display: block;
	width: fit-content;
	max-width: 100%;
	box-sizing: border-box;
}

.items-container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
	margin-top: -60px;
}

/* 店舗マップセクション */
.shop-map-section {
	max-width: var(--front-max-width);
	width: 100%;
	margin: 0 auto;
	padding: 0px 10px 6px 10px;
	background: #ffffff2e;
	border-radius: 18px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	box-sizing: border-box;
}

#shop-map-container {
	width: 100%;
	height: 500px;
	margin-top: 2rem;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

@media (max-width: 640px) {
	#shop-map-container {
		height: 400px;
	}
}

.item-card {
	background: linear-gradient(180deg, #e49663 0%, #e8cba5 50%, #e49663 100%);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
	border-radius: 12px;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	transition: box-shadow 0.3s ease;
}

.item-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* イベントカードのタイトル部分のラッパー */
.item-card__name-wrapper {
	position: relative;
	min-height: 3.5rem; /* 日付表示用の最小高さを確保 */
}

/* 日付がある場合のみ左パディングを追加 */
.item-card__name-wrapper--has-date {
	padding-left: 4.5rem;
}

.item-card__name {
	margin: 0;
	font-size: clamp(1.4rem, 2.5vw, 1.8rem);
	color: var(--wp--preset--color--foreground, #0f172a);
	text-align: center;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 20%, transparent);
}

/* イベントカードの日付表示（左上） */
.item-card__event-date {
	position: absolute;
    top: 0;
    left: 0;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    line-height: 1;
    z-index: 10;
    background: rgb(255 255 255 / 74%);
    padding: 0.2rem 0.6rem;
    border-radius: 30px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    min-width: 3.5rem;
    backdrop-filter: blur(4px);
}

.item-card__event-year {
	font-size: clamp(0.6rem, 1vw, 1rem);
	font-weight: bold;
	color: var(--wp--preset--color--foreground, #0f172a);
	margin-bottom: 0.05rem;
	display: block;
}

.item-card__event-month-day {
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	font-weight: bold;
	color: var(--wp--preset--color--foreground, #0f172a);
	display: block;
}

/* イベントアーカイブ：開催日ごとのグループ */
.event-archive__groups {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: -66px 0 0 0;
}

/* 開催日ボタン（タイトル下、スムーススクロール用） */
.event-archive__date-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
	margin: 14px auto;
}

.event-archive__date-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4.25rem;
	height: 4.25rem;
	box-sizing: border-box;
	padding: 0.25rem;
	font-size: 0.75rem;
	line-height: 1.25;
	font-weight: 500;
	text-align: center;
	color: var(--wp--preset--color--foreground, #0f172a);
	background: rgb(255 255 255 / 0.9);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 18%, transparent);
	border-radius: 8px;
	text-decoration: none;
	transition: background 0.2s, box-shadow 0.2s;
}

.event-archive__date-btn:hover {
	background: rgb(255 255 255);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* スムーススクロール先のカード：固定ヘッダー分の余白 */
.item-card--event-list[id^="event-group-"] {
	scroll-margin-top: 100px;
}

.event-archive__group {
	margin-top: 2rem;
}

.event-archive__group:first-of-type {
	margin-top: 1rem;
}

.event-archive__group-title {
	font-size: clamp(1.1rem, 1.8vw, 1.35rem);
	font-weight: bold;
	margin: 0 0 0.75rem 0;
	color: var(--wp--preset--color--foreground, #0f172a);
	line-height: 1.3;
}

.event-archive__group .items-container--event-list {
	margin-top: 0;
}

/* イベント一覧用のレイアウト（縦並び） */
.items-container--event-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: -60px;
}

/* イベント一覧用のカード（一行左詰めレイアウト） */
.item-card--event-list {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 1rem;
	padding: 1rem 1.5rem;
	background: linear-gradient(180deg, #e49663 0%, #e8cba5 50%, #e49663 100%);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
	border-radius: 12px;
	transition: box-shadow 0.3s ease;
}

.item-card--event-list:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* イベント一覧用の開催日表示 */
.item-card--event-list__date {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.item-card--event-list__date .item-card__event-date {
	position: static;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 0.3rem;
	line-height: 1;
	z-index: 1;
	background: rgb(255 255 255 / 74%);
	padding: 0.2rem 0.6rem;
	border-radius: 30px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(4px);
}

.item-card--event-list__title {
	flex: 1;
	min-width: 0;
}

.item-card--event-list__title .item-card__name {
	margin: 0;
	font-size: clamp(1.2rem, 2vw, 1.6rem);
	color: var(--wp--preset--color--foreground, #0f172a);
	text-align: left;
	padding: 0;
	border: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.item-card--event-list__image {
	width: 60px;
	height: 60px;
	flex-shrink: 0;
	border-radius: 50%;
	overflow: hidden;
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 5%, transparent);
}

.item-card--event-list__image--placeholder {
	width: 60px;
	height: 60px;
	flex-shrink: 0;
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
	border-radius: 50%;
}

.item-card--event-list__image-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.item-card--event-list__button {
	flex-shrink: 0;
}

/* スマホ時：イベント一覧
 * 左：開催日（上）→ タイトル（下）を縦に配置
 * 右：サムネイル | 詳細ボタンを横並び、左ブロック全体の高さに対して上下中央
 */
@media (max-width: 640px) {
	.item-card--event-list {
		display: grid !important;
		grid-template-columns: 1fr auto auto;
		grid-template-rows: auto auto;
		align-items: start;
		gap: 0.75rem 1rem;
	}
	.item-card--event-list__date {
		grid-column: 1;
		grid-row: 1;
	}
	.item-card--event-list__title {
		grid-column: 1;
		grid-row: 2;
		min-width: 0;
	}
	.item-card--event-list__title .item-card__name {
		white-space: normal;
		overflow: visible;
		text-overflow: unset;
	}
	.item-card--event-list__image {
		grid-column: 2;
		grid-row: 1 / 3;
		align-self: center;
	}
	.item-card--event-list__button {
		grid-column: 3;
		grid-row: 1 / 3;
		align-self: center;
	}
}

.item-card__gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
	gap: 0.75rem;
	margin: 0.5rem 0;
}

.item-card__gallery-img {
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	aspect-ratio: 1;
}

.item-card__description {
	background: 
 color-mix(in srgb, var(--wp--preset--color--foreground, #ffffff) 5%, #fff0f0cc);
    border-radius: 8px;
    padding: 1rem;
    margin-top: 0;
}
.item-card__description-text {
	margin: 0;
	font-size: clamp(0.9rem, 1.5vw, 1rem);
	line-height: 1.6;
	color: var(--wp--preset--color--foreground, #0f172a);
	text-align: center;
}

/* アイテム紹介（3件）：左写真・右上名前・右下説明の横型カード、スマホでも1列で余白を抑える */
.items-container--intro {
	display: flex;
	flex-direction: column;
	gap: clamp(1rem, 2.5vw, 1.5rem);
}

.items-container--intro .item-card {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: clamp(0.75rem, 2vw, 1.25rem);
	padding: clamp(1rem, 2vw, 1.25rem);
}

.items-container--intro .item-card__gallery {
	flex-shrink: 0;
	width: clamp(90px, 22vw, 120px);
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	min-height: 0;
}

.items-container--intro .item-card__gallery-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.items-container--intro .item-card__content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.items-container--intro .item-card__name {
	text-align: left;
	padding-bottom: 0.35rem;
	margin: 0;
	font-size: clamp(1.15rem, 2.2vw, 1.5rem);
}

.items-container--intro .item-card__description {
	margin: 0;
	padding: 0.6rem 0.75rem;
	flex: 1;
}

.items-container--intro .item-card__description-text {
	text-align: left;
	font-size: clamp(0.85rem, 1.4vw, 0.95rem);
	line-height: 1.55;
}

/* イベントカード用の画像スタイル */
.item-card__image {
	margin: -1.5rem -1.5rem 1rem -1.5rem;
	border-radius: 12px 12px 0 0;
	overflow: hidden;
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 5%, transparent);
	position: relative;
}

/* アイテム種類アイコン */
/* 複数アイコン用ラッパー（写真上に横並び） */
.item-card__item-type-icons {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 10;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}

.item-card__item-type-icon {
	width: 32px;
	height: 32px;
	object-fit: contain;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 4px;
	padding: 2px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.item-card__image a {
	display: block;
	width: 100%;
	position: relative;
	overflow: hidden;
}

.item-card__image-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.item-card:hover .item-card__image-img {
	transform: scale(1.05);
}

/* アイテム種類フィルターボタン（z-index を固定ナビ 100 より高くし、スマホでタップ可能に） */
.shop-filter-container {
	position: relative;
	z-index: 110;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	margin: 2rem 0;
	padding: 1rem;
}

/* フィルター直後のitems-containerは margin-top:-60px を打ち消し、重なりを防ぐ */
.shop-filter-container + .items-container {
	margin-top: 0;
}

.shop-filter-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 0.9rem;
	background: rgba(255, 255, 255, 0.9);
	border: 2px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 20%, transparent);
	border-radius: 30px;
	cursor: pointer;
	transition: all 0.3s ease;
	font-size: clamp(0.9rem, 1.2vw, 1rem);
	font-weight: 500;
	color: var(--wp--preset--color--foreground, #0f172a);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	width: fit-content;
	touch-action: manipulation; /* スマホのタップ遅延を抑える */
}

.shop-filter-btn:hover {
	background: rgba(255, 255, 255, 1);
	border-color: #bf6c13;
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.shop-filter-btn--active {
	background: linear-gradient(to bottom, #bf6c13, #703f0b);
	border-color: #703f0b;
	color: #ffffff;
	box-shadow: 0 4px 12px rgba(191, 108, 19, 0.4);
}

.shop-filter-btn--active:hover {
	background: linear-gradient(to bottom, #d17a1a, #8a4f0e);
	border-color: #8a4f0e;
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(191, 108, 19, 0.5);
}

.shop-filter-btn__icon {
	width: 24px;
	height: 24px;
	object-fit: contain;
	flex-shrink: 0;
}

.shop-filter-btn__label {
	white-space: nowrap;
}

.shop-filter-loading,
.shop-filter-empty {
	text-align: center;
	padding: 3rem 1rem;
	margin: 0;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 70%, transparent);
}

/* スマホで横2列表示 */
@media (max-width: 720px) {
	.shop-filter-container {
		gap: 0.5rem;
		margin: -65px 0 0 0 ;
		padding:0 0 15px 0;
	}

	/* 1行目: すべて（中央揃え） 2行目: 暖簾・行灯・提灯（中央揃え） */
	.shop-filter-container .shop-filter-btn[data-filter="all"] {
		flex: 0 1 20%;
	}

	.shop-filter-btn {
		min-height: 44px; /* タッチターゲット推奨サイズ（Apple HIG） */
		padding: 0.6rem 0.75rem;
		font-size: clamp(0.8rem, 2vw, 0.9rem);
		gap: 0.4rem;
	}

	.shop-filter-btn__icon {
		width: 20px;
		height: 20px;
	}

	.items-container {
		grid-template-columns: repeat(2, 1fr);
		gap: clamp(1rem, 2vw, 1.5rem);
	}

	/* ご協力店舗：スマホ時は1列 */
	#shop-items-container {
		grid-template-columns: 1fr;
	}

	.item-card {
		min-width: 0; /* 2列グリッドで左右を均等にする */
		padding: 1rem;
	}

	.item-card__image {
		margin: -1rem -1rem -1rem -1rem;
	}

	.item-card__item-type-icon {
		width: 50px;
		height: 50px;
		top: 0.4rem;
		left: 0.4rem;
	}

	.item-card__name {
		font-size: clamp(1.2rem, 2vw, 1.4rem);
	}

	.item-card__description {
		padding: 0.75rem;
	}

	.item-card__description-text {
		font-size: clamp(0.85rem, 1.2vw, 0.9rem);
		line-height: 1.5;
	}
}

/* アーカイブページのページネーション */
.archive-pagination {
	margin-top: clamp(2rem, 4vw, 3rem);
	padding-top: clamp(1.5rem, 3vw, 2rem);
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
}

.archive-pagination .page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.archive-pagination .page-numbers li {
	margin: 0;
	padding: 0;
}

.archive-pagination .page-numbers a,
.archive-pagination .page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.75rem;
	border-radius: 8px;
	text-decoration: none;
	font-size: clamp(0.9rem, 1.2vw, 1rem);
	color: var(--wp--preset--color--foreground, #0f172a);
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 5%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
	transition: all 0.2s ease;
}

.archive-pagination .page-numbers a:hover {
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
	border-color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 20%, transparent);
	transform: translateY(-1px);
}

.archive-pagination .page-numbers .current {
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 15%, transparent);
	border-color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 25%, transparent);
	font-weight: 600;
	cursor: default;
}

.archive-pagination .page-numbers .dots {
	border: none;
	background: transparent;
	cursor: default;
}

/* スマホでのページネーション調整 */
@media (max-width: 720px) {
	.archive-pagination {
		margin-top: clamp(1.5rem, 3vw, 2rem);
		padding-top: clamp(1rem, 2vw, 1.5rem);
	}

	.archive-pagination .page-numbers {
		gap: 0.375rem;
	}

	.archive-pagination .page-numbers a,
	.archive-pagination .page-numbers span {
		min-width: 2.25rem;
		height: 2.25rem;
		padding: 0 0.5rem;
		font-size: clamp(0.85rem, 1vw, 0.9rem);
	}
}

.front-hero {
	width: var(--front-max-width);
	margin: 0 auto;
	position: relative;
	overflow: hidden;
	border-radius: 18px;
	min-height: clamp(420px, 70vh, 620px);
	display: grid;
	align-items: center;
}

.front-hero__media {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(15, 23, 42, 0.08), rgba(15, 23, 42, 0.32)),
		var(--front-hero-image, radial-gradient(circle at 30% 30%, #f7f0ea 0%, #f1f5f9 55%, #e2e8f0 100%));
	background-size: cover;
	background-position: center;
	transform: scale(1.02);
	filter: saturate(1.05);
}

.front-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.78) 48%, rgba(255, 255, 255, 0.92) 100%);
}

.front-hero__content {
	position: relative;
	padding: clamp(1.5rem, 5vw, 3rem);
	max-width: min(720px, 88vw);
	display: grid;
	gap: 0.6rem;
}

.front-kicker {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.4rem 0.85rem;
	margin: 0 0 0.25rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 12%, transparent);
	color: var(--wp--preset--color--primary, #0f172a);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	width: fit-content;
}

.front-title {
	margin: 0;
	font-size: clamp(2.2rem, 5vw, 3rem);
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.front-lead {
	margin: 0.35rem 0 0;
	font-size: clamp(1rem, 2.3vw, 1.15rem);
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 78%, transparent);
}

.front-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.8rem;
}

.front-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 1.2rem;
	border-radius: 999px;
	background: var(--wp--preset--color--primary, #0f172a);
	color: #ffffff;
	font-weight: 700;
	font-size: 0.98rem;
	text-decoration: none;
	transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}

.front-button:hover,
.front-button:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
	background: color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 88%, #ffffff 12%);
	outline: none;
}

/* ご協力店舗カード内「詳しくはこちら」ボタン（フロント・アーカイブ共通） */
.items-section .front-button[style*="linear-gradient"] {
	font-weight: normal;
	background: linear-gradient(to bottom, #bf6c13, #703f0b) !important;
}

.items-section .front-button[style*="linear-gradient"]:hover,
.items-section .front-button[style*="linear-gradient"]:focus-visible {
	background: linear-gradient(to bottom, #d17a1a, #8a4f0e) !important;
	transform: translateY(-1px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
	outline: none;
}

.front-button--ghost {
	background: #ffffff;
	color: var(--wp--preset--color--primary, #0f172a);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 20%, transparent);
}

.front-button--ghost:hover,
.front-button--ghost:focus-visible {
	background: color-mix(in srgb, #ffffff 90%, var(--wp--preset--color--primary, #0f172a) 10%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 32%, transparent),
		0 12px 28px rgba(0, 0, 0, 0.08);
}

.front-content {
	width: var(--front-max-width);
	margin: 0 auto;
	display: grid;
	gap: clamp(1rem, 2vw, 1.5rem);
	font-size: 1rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 82%, transparent);
}

.front-content > *:first-child {
	margin-top: 0;
}

.front-content h2,
.front-content h3 {
	margin: 1.4em 0 0.6em;
}

.front-section-head {
	width: var(--front-max-width);
	margin: 0 auto;
	display: grid;
	gap: 0.35rem;
}

.front-section-title {
	margin: 0;
	font-size: clamp(1.6rem, 3.2vw, 2rem);
	line-height: 1.25;
}

.front-news {
	padding: clamp(1rem, 3vw, 1.5rem) 0 0;
	display: grid;
	gap: clamp(1.2rem, 3vw, 1.8rem);
	width: var(--front-max-width);
	margin: 0 auto;
}

.front-news__grid {
	width: var(--front-max-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(0.75rem, 3vw, 1.25rem);
}

.front-news__card {
	height: 100%;
	border-radius: 14px;
	background: #ffffff;
	box-shadow:
		0 12px 28px rgba(0, 0, 0, 0.06),
		0 1px 8px rgba(0, 0, 0, 0.04);
	overflow: hidden;
	transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.front-news__link {
	display: grid;
	gap: 0.35rem;
	padding: 1rem 1.1rem;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

.front-news__card:hover,
.front-news__card:focus-within {
	transform: translateY(-3px);
	box-shadow:
		0 16px 36px rgba(0, 0, 0, 0.1),
		0 4px 12px rgba(0, 0, 0, 0.06);
}

.front-news__date {
	margin: 0;
	font-size: 0.9rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 62%, transparent);
}

.front-news__title {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.3;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 90%, transparent);
}

.front-news__excerpt {
	margin: 0.2rem 0 0;
	font-size: 0.95rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 75%, transparent);
}

.front-news__empty {
	grid-column: 1 / -1;
	margin: 0;
	padding: 1rem;
	text-align: center;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 70%, transparent);
	background: #f8fafc;
	border-radius: 12px;
}

.front-news__more {
	display: flex;
	justify-content: center;
}

.front-lang-modal[hidden] {
	display: none;
}

.front-lang-modal {
	position: fixed;
	inset: 0;
	z-index: 999;
	display: grid;
	place-items: center;
}

.front-lang-modal__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 18%, transparent);
	backdrop-filter: blur(2px);
}

.front-lang-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(640px, 90vw);
	padding: clamp(1.4rem, 4vw, 2rem);
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.14);
	display: grid;
	gap: 0.9rem;
}

.front-lang-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
}

.front-lang-modal__close {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 20%, transparent);
	background: transparent;
	border-radius: 999px;
	width: 32px;
	height: 32px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	color: var(--wp--preset--color--foreground, #0f172a);
}

.front-lang-modal__body {
	display: grid;
	gap: 0.8rem;
}

.front-lang-modal__grid {
	display: grid;
	gap: 0.6rem;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.front-lang-modal__note {
	margin: 0.2rem 0 0;
	font-size: 0.9rem;
	color: color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 65%, transparent);
}

/* 基本カード（kihon-card） */
.kihon-card,
.kiho-card {
	position: relative;
	padding: clamp(1rem, 3vw, 1.4rem);
	border-radius: 14px;
	background: color-mix(in srgb, #ffffff 50%, transparent); /* 透過白 */
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 10%, transparent);
	box-shadow:
		0 10px 28px rgba(0, 0, 0, 0.06),
		0 1px 6px rgba(0, 0, 0, 0.04);
	overflow: hidden;
	margin: -17px 0px 40px 0px;
}

.kiho-card {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: clamp(0.75rem, 2vw, 1rem);
}

.kihon-card::after,
.kiho-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		120% 120% at 0% 100%,
		color-mix(in srgb, var(--wp--preset--color--primary, #0f172a) 18%, transparent) 0%,
		transparent 55%
	);
	opacity: 0.55;
	pointer-events: none;
}

.kiho-card__media {
	flex-shrink: 0;
}

.kiho-card__media img {
	display: block;
	width: clamp(120px, 15vw, 180px);
	max-width: 180px;
	height: auto;
	border-radius: 10px;
	margin-top: 0.75rem;
}

@media (max-width: 720px) {
	.kiho-card {
		display: block;
		overflow: hidden;
	}

	.kiho-card__media {
		float: left;
		margin: 0 clamp(0.75rem, 2vw, 1rem) clamp(0.5rem, 1.5vw, 0.75rem) 0;
		shape-outside: circle(50%);
	}

	.kiho-card__media img {
		width: 80px;
		height: 80px;
		max-width: 80px;
		border-radius: 50%;
		object-fit: cover;
		margin: 0;
		display: block;
	}

	.kiho-card p {
		margin: 0;
		text-align: justify;
	}
}

/* ご挨拶（cont002）テキスト折りたたみ：画像＋テキスト約100px表示、続きはこちらで滑らかに展開 */
.kiho-card__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.kiho-card__text-wrap {
	max-height: 100px;
	overflow: hidden;
	transition: max-height 0.4s ease-out;
}

.kiho-card__text-wrap.is-expanded {
	max-height: 3200px;
	transition: max-height 0.5s ease-in;
}

.kiho-card__text-wrap p {
	margin: 0;
	text-align: justify;
}

.kiho-card__read-more {
	cursor: pointer;
	border: none;
	border-radius: 6px;
	align-self: flex-start;
	transition: transform 0.2s ease, background 0.2s ease;
}

.kiho-card__read-more:hover,
.kiho-card__read-more:focus-visible {
	background: linear-gradient(to bottom, #d17a1a, #8a4f0e) !important;
	transform: translateY(-1px);
}

/* Yuji Syuku フォント適用用クラス */
.YujiSyuku_M {
	font-family: "Yuji Syuku", serif;
	font-weight: 400;
	font-style: normal;
}

/* 暖簾用の横棒（木目風） */
.noren-rod {
	position: relative;
	display: block;
	width: min(100vw, 100%);
	height: 12px;
	margin-left: calc((min(100vw, 100%) - 100%) / -2);
	margin-right: calc((min(100vw, 100%) - 100%) / -2);
	z-index: 0;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.18) 0 3px, transparent 3px 12px),
		linear-gradient(180deg, #c58a3d 0%, #ad7129 52%, #c58a3d 100%);
	background-blend-mode: normal;
	border-top: 1px solid rgba(255, 255, 255, 0.35);
	border-bottom: 1px solid rgba(0, 0, 0, 0.22);
	box-shadow:
		inset 0 -1px 0 rgba(0, 0, 0, 0.16),
		inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.noren-cloths {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    padding: 0;
    height: 80px;
    margin: -15px 0 0;
    position: relative;
    z-index: 10; /* rod より十分前面に */
    /* 暖簾全体のグラデーション（左右を濃い色にして背景と区別） */
    background: linear-gradient(90deg, #bc6227 0%, #e8cba5 50%, #bc6227 100%);
    border-radius: 3px;
}

.noren-cloths__panel {
	display: block;
	height: 100%;
	position: relative;
	z-index: 11; /* 各布をさらに前面へ */
	border-radius: 3px;
	/* 背景を透明にして親要素（.noren-cloths）のグラデーションを見せる */
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foreground, #0f172a) 12%, transparent);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.3),
		0 8px 16px rgba(0, 0, 0, 0.06);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	transform-origin: top center;
	animation: noren-cloth-breathe var(--noren-sway, 18s) ease-in-out infinite;
	animation-delay: var(--noren-delay, 0s);
	animation-fill-mode: both;
	will-change: clip-path;
}

.noren-tabs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1px;
	padding: 0 10px;
	height: 16px;
	margin: -22px 0 0;
	position: relative;
	z-index: 12; /* 布と木より前面に配置 */
	pointer-events: none;
}

.noren-tabs__cell {
	position: relative;
	display: block;
}

.noren-tab {
	position: absolute;
	top: -4px;
	width: 10px;
	height: 30px;
	background: linear-gradient(180deg, #fdfdfc 0%, #f0efec 100%);
	z-index: 13;
	pointer-events: none;
}

.noren-tab--left {
	left: -5px;
}

.noren-tab--right {
	right: -3px;
}

.noren-cloths__panel:nth-child(1) {
	--noren-sway: 12s;
	--noren-delay: 0s;
}

.noren-cloths__panel:nth-child(2) {
	--noren-sway: 13.5s;
	--noren-delay: 0.8s;
}

.noren-cloths__panel:nth-child(3) {
	--noren-sway: 12.8s;
	--noren-delay: 1.2s;
}

.noren-cloths__panel:nth-child(4) {
	--noren-sway: 14.2s;
	--noren-delay: 1.5s;
}

.noren-cloths__panel:nth-child(5) {
	--noren-sway: 13s;
	--noren-delay: 0.4s;
}

/* 1つ目のブロック: より速い動き */
.shiro-noren-block--first .noren-cloths__panel:nth-child(1) {
	--noren-sway: 10s;
	--noren-delay: 0s;
}

.shiro-noren-block--first .noren-cloths__panel:nth-child(2) {
	--noren-sway: 11.5s;
	--noren-delay: 0.6s;
}

.shiro-noren-block--first .noren-cloths__panel:nth-child(3) {
	--noren-sway: 10.8s;
	--noren-delay: 1s;
}

.shiro-noren-block--first .noren-cloths__panel:nth-child(4) {
	--noren-sway: 12.2s;
	--noren-delay: 1.2s;
}

.shiro-noren-block--first .noren-cloths__panel:nth-child(5) {
	--noren-sway: 11s;
	--noren-delay: 0.3s;
}

/* 2つ目のブロック: より遅い動き */
.shiro-noren-block--second .noren-cloths__panel:nth-child(1) {
	--noren-sway: 15s;
	--noren-delay: 0.5s;
}

.shiro-noren-block--second .noren-cloths__panel:nth-child(2) {
	--noren-sway: 16.5s;
	--noren-delay: 1.2s;
}

.shiro-noren-block--second .noren-cloths__panel:nth-child(3) {
	--noren-sway: 15.8s;
	--noren-delay: 1.8s;
}

.shiro-noren-block--second .noren-cloths__panel:nth-child(4) {
	--noren-sway: 17.2s;
	--noren-delay: 2.2s;
}

.shiro-noren-block--second .noren-cloths__panel:nth-child(5) {
	--noren-sway: 16s;
	--noren-delay: 0.8s;
}

@keyframes noren-cloth-breathe {
	0% {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}

	28% {
		clip-path: polygon(0 0, 100% 0, 92% 100%, 8% 100%);
	}

	62% {
		clip-path: polygon(0 0, 100% 0, 108% 100%, -8% 100%);
	}

	100% {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
}

.shiro-noren-block {
	display: grid;
	gap: clamp(0.5rem, 2vw, 0.8rem);
	margin: clamp(1.2rem, 3vw, 1.6rem) 0 clamp(0.9rem, 2vw, 1.3rem);
	position: relative; /* rod/cloth/tabs/title のスタッキングを固定 */
	isolation: isolate; /* 親の z-index 影響を遮断 */
}

.noren-title {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	z-index: 15; /* 布・タブより前面、タイトルを中央に重ねる */
}

.shiro-noren {
	margin: 0;
	padding: 0;
	background: none;
	box-shadow: none;
	color: var(--wp--preset--color--foreground, #0f172a);
}

.noren-title__text {
	text-align: center;
	font-size: clamp(1.6rem, 3vw, 2rem);
	font-weight: 500;
}

@keyframes shiro-noren-wave {
	0% {
		transform: translate3d(-2%, 0, 0) skewX(-0.8deg);
	}

	50% {
		transform: translate3d(2%, 1.5%, 0) skewX(0.9deg);
	}

	100% {
		transform: translate3d(-1%, 0, 0) skewX(-1.1deg);
	}
}


.front-cta {
	margin-top: clamp(0.5rem, 3vw, 1.5rem);
}

.front-cta__inner {
	width: var(--front-max-width);
	margin: 0 auto;
	border-radius: 16px;
	background: #a82e3730;
	padding: clamp(1.4rem, 4vw, 2rem);
	display: grid;
	gap: clamp(0.8rem, 3vw, 1rem);
}

.front-cta__text {
	display: grid;
	gap: 0.35rem;
}

.front-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

@media (min-width: 720px) {
	.front-cta__inner {
		grid-template-columns: 1.6fr 1fr;
		align-items: center;
	}
}

@media (max-width: 640px) {
	.front-hero {
		min-height: clamp(360px, 68vh, 520px);
	}

	.front-news__grid {
		grid-template-columns: 1fr;
	}
}

/* SNS投稿自動スクロール */
.front-sns {
    width: 100vw;
    overflow: hidden;
    margin: 0px 0px 0px -30px;
    padding: clamp(1rem, 2vw, 1.5rem) 0;
    background: var(--wp--preset--color--base, #ffffff);
}

.front-sns__container {
	width: 100%;
	overflow: hidden;
	position: relative;
}

.front-sns__scroll-wrapper {
	overflow: hidden;
	width: 100%;
}

.front-sns__scroll-track {
	display: flex;
	gap: clamp(1rem, 2vw, 1.5rem);
	width: fit-content;
	animation: front-sns-scroll 60s linear infinite;
	will-change: transform;
}

.front-sns__item {
	flex-shrink: 0;
	min-width: 300px;
	max-width: 400px;
	width: auto;
	display: flex;
	flex-direction: column;
}

.front-sns__item iframe,
.front-sns__item blockquote {
	max-width: 100%;
	width: 100%;
}

/* SNS投稿画像スタイル */
.front-sns__image-link {
	display: block;
	width: 100%;
	text-decoration: none;
	overflow: hidden;
	border-radius: 8px;
	transition: transform 0.3s ease;
}

.front-sns__image-link:hover {
	transform: scale(1.02);
}

.front-sns__image {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	border-radius: 8px;
}

/* 埋め込みコードをそのまま表示する場合 */
.front-sns__embed {
	width: 100%;
	min-height: 300px;
}

.front-sns__embed blockquote,
.front-sns__embed iframe {
	max-width: 100%;
	width: 100%;
}

/* スクロールアニメーション */
@keyframes front-sns-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

/* ホバー時に一時停止 */
.front-sns__scroll-wrapper:hover .front-sns__scroll-track {
	animation-play-state: paused;
}

/* レスポンシブ対応 */
@media (max-width: 640px) {
	.front-sns__item {
		min-width: 280px;
		max-width: 320px;
	}
	
	.front-sns__scroll-track {
		animation-duration: 40s;
	}
}

