/* 福の島 コア:最低限の表示用スタイル。見た目の本体はテーマ側で上書きする。 */
:root {
	--fnk-blue: #1A5FA6;
	--fnk-navy: #0F2A43;
	--fnk-blue-pale: #EAF2F9;
	--fnk-green: #5E8C4A;
	--fnk-red: #C8283C;
	--fnk-red-pale: #FDF2F4;
	--fnk-gray: #727782;
}

.fnk-badge {
	display: inline-flex;
	align-items: center;
	padding: .15em .7em;
	border-radius: 999px;
	font-size: .72em;
	font-weight: 700;
	line-height: 1.6;
	vertical-align: middle;
	white-space: nowrap;
}
.fnk-badge--alert { color: var(--fnk-red); background: var(--fnk-red-pale); border: 1px solid #F9CBD2; }
.fnk-badge--ended { color: #fff; background: var(--fnk-gray); }

.fnk-notice {
	margin: 0 0 1.5em;
	padding: .9em 1.1em;
	border-left: 4px solid var(--fnk-blue);
	background: var(--fnk-blue-pale);
	border-radius: 0 8px 8px 0;
	font-size: .95em;
	line-height: 1.8;
}
.fnk-notice--alert { border-left-color: var(--fnk-red); background: var(--fnk-red-pale); }
.fnk-notice--ended { border-left-color: var(--fnk-gray); background: #F2F3F5; }

/* マップ */
.fnk-map { width: 100%; min-height: 320px; border-radius: 12px; overflow: hidden; background: var(--fnk-blue-pale); }
.fnk-map-filter { display: flex; gap: .5em; overflow-x: auto; padding: .25em 0 .75em; scrollbar-width: none; }
.fnk-map-filter button {
	flex: 0 0 auto; min-height: 44px; padding: 0 1em; border-radius: 999px;
	border: 1px solid #C2C6D2; background: #fff; color: var(--fnk-navy); font: inherit; font-size: .85em; cursor: pointer;
}
.fnk-map-filter button[aria-pressed="true"] { background: var(--fnk-blue); border-color: var(--fnk-blue); color: #fff; }
.fnk-map-filter .fnk-dot { display: inline-block; width: .6em; height: .6em; border-radius: 50%; margin-right: .4em; }
.fnk-map-credit { font-size: .7em; color: var(--fnk-gray); margin: .4em 0 0; }
.fnk-popup { width: 200px; font-size: 13px; line-height: 1.5; }
.fnk-popup img { width: 100%; height: 110px; object-fit: cover; border-radius: 6px; margin-bottom: 6px; display: block; }
.fnk-popup a { font-weight: 700; color: var(--fnk-blue); }
.fnk-popup small { display: block; color: var(--fnk-gray); }

/* カレンダー */
.fnk-calendar { --fc-button-bg-color: var(--fnk-blue); --fc-button-border-color: var(--fnk-blue); --fc-event-bg-color: var(--fnk-blue); --fc-event-border-color: var(--fnk-blue); --fc-today-bg-color: var(--fnk-blue-pale); }
.fnk-calendar .fc-event { cursor: pointer; }
.fnk-calendar .fnk-ev-ended { opacity: .55; }
.fnk-calendar .fnk-ev-pickup { --fc-event-bg-color: var(--fnk-red); background: var(--fnk-red); border-color: var(--fnk-red); }
.fnk-cal-tip { position: fixed; z-index: 9999; width: 220px; background: #fff; border-radius: 8px; box-shadow: 0 8px 24px rgba(15,42,67,.18); padding: 6px; pointer-events: none; font-size: 12px; }
.fnk-cal-tip img { width: 100%; height: 130px; object-fit: cover; border-radius: 6px; display: block; }
.fnk-cal-tip span { display: block; padding: 4px 2px 0; font-weight: 700; color: var(--fnk-navy); }

/* ピックアップ */
.fnk-pickup { list-style: none; margin: 0; padding: 0; display: grid; gap: 1em; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.fnk-pickup a { display: block; text-decoration: none; color: inherit; }
.fnk-pickup img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 10px; }
.fnk-pickup__period { display: block; font-size: .8em; color: var(--fnk-blue); margin-top: .5em; }
.fnk-pickup__title { display: block; font-weight: 700; }

/* ショップ Coming Soon */
.fnk-shop-soon { text-align: center; padding: 2em 1em; }
.fnk-btn--disabled {
	display: inline-flex; align-items: center; gap: .6em; min-height: 48px; padding: 0 1.6em; border-radius: 8px;
	border: 0; background: #E3E5EA; color: #7A7F8A; font: inherit; font-weight: 700; cursor: not-allowed;
}
.fnk-soon { font-size: .7em; letter-spacing: .1em; padding: .2em .6em; border-radius: 4px; background: #fff; color: var(--fnk-gray); }
