/* BlockWork Calendar - テーマ5色スロット追従(accentはCTA専用のため不使用)。
   曜日色(薄赤/薄青)のみ固定HEX。 */
.bw-cal {
	--bwcal-base: var(--wp--preset--color--base, #ffffff);
	--bwcal-base-2: var(--wp--preset--color--base-2, #f3f5f7);
	--bwcal-contrast: var(--wp--preset--color--contrast, #1a1f24);
	--bwcal-primary: var(--wp--preset--color--primary, #0b5394);
	--bwcal-sun: #b0575c;
	--bwcal-sat: #4a6fa5;
	max-width: 720px;
	color: var(--bwcal-contrast);
}
.bw-cal--left { margin-right: auto; }
.bw-cal--center { margin-left: auto; margin-right: auto; }
.bw-cal--right { margin-left: auto; }

.bw-cal__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-bottom: 0.5rem;
}
.bw-cal__nav-label { font-weight: 700; font-size: 1.125rem; }
.bw-cal__nav-btn {
	border: 1px solid var(--bwcal-base-2);
	background: var(--bwcal-base);
	color: var(--bwcal-primary);
	border-radius: 4px;
	padding: 0.25em 0.75em;
	cursor: pointer;
	line-height: 1;
}
.bw-cal__nav-btn:disabled { opacity: 0.3; cursor: default; }

.bw-cal__month {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	background: var(--bwcal-base);
}
.bw-cal__month th {
	padding: 0.4em 0;
	font-size: 0.8125rem;
	text-align: center;
	border: 1px solid var(--bwcal-base-2);
}
.bw-cal__dow--sun { color: var(--bwcal-sun); }
.bw-cal__dow--sat { color: var(--bwcal-sat); }

.bw-cal__day {
	border: 1px solid var(--bwcal-base-2);
	vertical-align: top;
	padding: 0.25em;
	height: 4.5em;
	font-size: 0.8125rem;
	overflow: hidden;
}
.bw-cal__day--sun .bw-cal__num { color: var(--bwcal-sun); }
.bw-cal__day--sat .bw-cal__num { color: var(--bwcal-sat); }
.bw-cal__day--empty { background: transparent; }
.bw-cal__day--closed { background: var(--bwcal-base-2); }
.bw-cal__day--closed .bw-cal__num { color: var(--bwcal-sun); font-weight: 700; }
.bw-cal__day--today .bw-cal__num {
	background: var(--bwcal-primary);
	color: var(--bwcal-base);
	border-radius: 50%;
	display: inline-block;
	width: 1.6em;
	height: 1.6em;
	line-height: 1.6em;
	text-align: center;
}
.bw-cal__day--has-events { cursor: pointer; }
.bw-cal__day--has-events:hover,
.bw-cal__day--has-events:focus-visible { outline: 2px solid var(--bwcal-primary); outline-offset: -2px; }

.bw-cal__num { display: inline-block; }
.bw-cal__closed-badge {
	float: right;
	background: var(--bwcal-sun);
	color: #ffffff;
	font-size: 0.6875rem;
	border-radius: 3px;
	padding: 0 0.35em;
}
.bw-cal__evt {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--bwcal-primary);
	font-size: 0.75rem;
	line-height: 1.4;
}
.bw-cal__more { display: block; font-size: 0.6875rem; opacity: 0.7; }
.bw-cal__dot {
	display: none;
	width: 0.5em;
	height: 0.5em;
	border-radius: 50%;
	background: var(--bwcal-primary);
	margin: 0.15em auto 0;
}

.bw-cal__legend {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	text-align: right;
}
.bw-cal__legend-closed,
.bw-cal__legend-event {
	display: inline-block;
	vertical-align: -0.1em;
	margin-right: 0.3em;
}
.bw-cal__legend-closed { width: 0.9em; height: 0.9em; background: var(--bwcal-base-2); border: 1px solid var(--bwcal-contrast); }
.bw-cal__legend-event { width: 0.6em; height: 0.6em; border-radius: 50%; background: var(--bwcal-primary); }

.bw-cal__dialog {
	border: none;
	border-radius: 8px;
	padding: 1.25rem 1.5rem;
	max-width: min(90vw, 26rem);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
	color: var(--bwcal-contrast);
	background: var(--bwcal-base);
}
.bw-cal__dialog::backdrop { background: rgba(0, 0, 0, 0.4); }
.bw-cal__dialog-close {
	position: absolute;
	top: 0.4rem;
	right: 0.6rem;
	border: none;
	background: transparent;
	font-size: 1.25rem;
	cursor: pointer;
	color: var(--bwcal-contrast);
}
.bw-cal__dialog-date { margin: 0 0 0.5rem; font-size: 1rem; }
.bw-cal__dialog-item { margin-bottom: 0.75rem; }
.bw-cal__dialog-item h4 { margin: 0 0 0.15rem; font-size: 0.9375rem; color: var(--bwcal-primary); }
.bw-cal__dialog-item p { margin: 0; font-size: 0.8125rem; }
.bw-cal__dialog-desc { white-space: pre-wrap; }

/* スマホ: タイトルをドットに縮退(操作はタップで同じ) */
@media (max-width: 768px) {
	.bw-cal__evt,
	.bw-cal__more { display: none; }
	.bw-cal__dot { display: block; }
	.bw-cal__day { height: 3.2em; }
}

/* ===== スキン: POP(カフェ・レストラン)— 色はテーマ追従、形とフォントのみ変更 ===== */
.bw-cal--skin-pop {
	font-family: var(--wp--preset--font-family--rounded, "Hiragino Maru Gothic ProN", "BIZ UDGothic", "Yu Gothic", sans-serif);
}
.bw-cal--skin-pop .bw-cal__month {
	border-collapse: separate;
	border-spacing: 3px;
}
.bw-cal--skin-pop .bw-cal__month th { border: none; }
.bw-cal--skin-pop .bw-cal__day {
	border: none;
	border-radius: 10px;
	box-shadow: inset 0 0 0 1px var(--bwcal-base-2);
}
.bw-cal--skin-pop .bw-cal__day--empty { box-shadow: none; }
.bw-cal--skin-pop .bw-cal__day--closed { box-shadow: none; }
.bw-cal--skin-pop .bw-cal__nav-btn { border-radius: 999px; }
.bw-cal--skin-pop .bw-cal__closed-badge { border-radius: 999px; padding: 0 0.55em; }
.bw-cal--skin-pop .bw-cal__dot { width: 0.65em; height: 0.65em; }
.bw-cal--skin-pop .bw-cal__day--today .bw-cal__num {
	width: 1.8em;
	height: 1.8em;
	line-height: 1.8em;
}
.bw-cal--skin-pop .bw-cal__dialog { border-radius: 16px; }

/* ===== スキン: Forest(アウトドア)— ステッチ風破線+クラフト感 ===== */
.bw-cal--skin-forest .bw-cal__month {
	border: 2px solid var(--bwcal-contrast);
	box-shadow: 4px 4px 0 var(--bwcal-contrast);
}
.bw-cal--skin-forest .bw-cal__month th {
	border: 1px dashed var(--bwcal-contrast);
	font-weight: 700;
}
.bw-cal--skin-forest .bw-cal__day { border: 1px dashed var(--bwcal-contrast); }
.bw-cal--skin-forest .bw-cal__nav-label { font-weight: 800; letter-spacing: 0.05em; }
.bw-cal--skin-forest .bw-cal__closed-badge {
	background: transparent;
	color: var(--bwcal-sun);
	border: 1.5px solid var(--bwcal-sun);
	border-radius: 999px;
	font-weight: 700;
	padding: 0 0.45em;
}
.bw-cal--skin-forest .bw-cal__day--today .bw-cal__num {
	background: transparent;
	color: var(--bwcal-primary);
	border: 2px solid var(--bwcal-primary);
	line-height: calc(1.6em - 4px);
	outline: 1.5px solid var(--bwcal-primary);
	outline-offset: 2px;
}
.bw-cal--skin-forest .bw-cal__dot {
	border-radius: 0 50% 50% 50%;
	transform: rotate(45deg);
}
