/* ==================================================================
   うさよりイベントカレンダー
   優しいピンク基調・角丸・絵本のような柔らかさ
   ================================================================== */

.usayori-events {
	--ue-pink: #f5a3b7;
	--ue-pink-deep: #e0718f;
	--ue-pink-pale: #fdf0f3;
	--ue-cream: #fffaf7;
	--ue-text: #5a4a4e;
	--ue-text-soft: #94807f;
	--ue-line: #f3dde3;

	/* カテゴリ色 */
	--ue-c-adoption: #8fc9a0; /* 譲渡会: グリーン */
	--ue-c-market:  #f0949f;  /* 即売会・物販: ピンク */
	--ue-c-photo:   #b3a3d6;  /* 写真展・展示: パープル */
	--ue-c-fureai:  #f2b880;  /* ふれあい: オレンジ */
	--ue-c-seminar: #8db8dd;  /* セミナー・講習会: ブルー */
	--ue-c-other:   #c8bcb4;

	color: var(--ue-text);
	line-height: 1.7;
	font-size: 15px;
}

.usayori-events *,
.usayori-events *::before,
.usayori-events *::after {
	box-sizing: border-box;
}

.ue-loading,
.ue-error,
.ue-empty {
	text-align: center;
	padding: 2em 1em;
	color: var(--ue-text-soft);
	background: var(--ue-pink-pale);
	border-radius: 16px;
}

.ue-error {
	background: #fdf2f0;
}

/* ---------------- フィルター ---------------- */

.ue-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.ue-month-nav {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ue-month-label {
	font-size: 1.25em;
	font-weight: 700;
	letter-spacing: 0.04em;
	min-width: 7.5em;
	text-align: center;
}

.ue-nav-btn {
	width: 38px;
	height: 38px;
	border: none;
	border-radius: 50%;
	background: var(--ue-pink-pale);
	color: var(--ue-pink-deep);
	font-size: 1.3em;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s;
}

.ue-nav-btn:hover {
	background: var(--ue-pink);
	color: #fff;
}

.ue-selects {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.ue-select {
	padding: 8px 12px;
	border: 1.5px solid var(--ue-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ue-text);
	font-size: 0.95em;
	cursor: pointer;
}

.ue-select:focus {
	outline: 2px solid var(--ue-pink);
	outline-offset: 1px;
}

/* ---------------- 月間グリッド ---------------- */

.ue-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	background: var(--ue-cream);
	border: 1.5px solid var(--ue-line);
	border-radius: 20px;
	padding: 12px;
	margin-bottom: 28px;
}

.ue-dow {
	text-align: center;
	font-size: 0.8em;
	font-weight: 700;
	color: var(--ue-text-soft);
	padding: 4px 0;
}

.ue-day {
	min-height: 58px;
	background: #fff;
	border-radius: 10px;
	padding: 5px 6px;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.ue-day-empty {
	background: transparent;
}

.ue-day-num {
	font-size: 0.85em;
	font-weight: 600;
}

.ue-sun .ue-day-num,
.ue-dow.ue-sun {
	color: #d9748c;
}

.ue-sat .ue-day-num,
.ue-dow.ue-sat {
	color: #7fa3cc;
}

.ue-today {
	background: #fff6e8;
	box-shadow: inset 0 0 0 2px var(--ue-c-fureai);
}

/* 日付マスのクリック（その日のイベント表示） */
.ue-day-clickable {
	cursor: pointer;
	transition: background 0.15s;
}

.ue-day-clickable:hover {
	background: var(--ue-pink-pale);
}

.ue-day-clickable:focus-visible {
	outline: 2px solid var(--ue-pink-deep);
	outline-offset: -2px;
}

.ue-day-selected,
.ue-day-selected:hover {
	background: var(--ue-pink-pale);
	box-shadow: inset 0 0 0 2px var(--ue-pink-deep);
}

/* 選択中の日付ヘッダー */
.ue-day-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
	padding: 10px 18px;
	background: var(--ue-pink-pale);
	border-radius: 12px;
	font-weight: 700;
}

.ue-day-clear {
	border: none;
	background: transparent;
	color: var(--ue-pink-deep);
	font-size: 0.88em;
	font-weight: 600;
	cursor: pointer;
	padding: 4px 8px;
}

.ue-day-clear:hover {
	text-decoration: underline;
}

.ue-dots {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
}

.ue-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	display: inline-block;
}

.ue-dot-more {
	font-size: 0.7em;
	color: var(--ue-text-soft);
	line-height: 1;
}

.ue-cat-adoption { background: var(--ue-c-adoption); }
.ue-cat-market   { background: var(--ue-c-market); }
.ue-cat-photo    { background: var(--ue-c-photo); }
.ue-cat-fureai   { background: var(--ue-c-fureai); }
.ue-cat-seminar  { background: var(--ue-c-seminar); }
.ue-cat-other    { background: var(--ue-c-other); }

/* ---------------- イベントカード ---------------- */

.ue-list,
.ue-widget-cards {
	display: grid;
	gap: 16px;
}

@media (min-width: 700px) {
	.ue-widget-cards {
		grid-template-columns: 1fr 1fr;
	}
}

.ue-card {
	background: #fff;
	border: 1.5px solid var(--ue-line);
	border-radius: 18px;
	padding: 18px 20px;
	transition: box-shadow 0.2s, transform 0.2s;
}

.ue-card:hover {
	box-shadow: 0 6px 18px rgba(224, 113, 143, 0.12);
	transform: translateY(-2px);
}

.ue-card-head {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 8px;
}

.ue-badge {
	display: inline-block;
	font-size: 0.78em;
	font-weight: 700;
	color: #fff;
	padding: 3px 12px;
	border-radius: 999px;
	background: var(--ue-c-other);
}

.ue-badge.ue-pref {
	background: transparent;
	color: var(--ue-text-soft);
	border: 1.5px solid var(--ue-line);
}

.ue-card-title {
	font-size: 1.1em;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--ue-text);
}

.ue-card-date,
.ue-card-place,
.ue-card-fee {
	margin: 2px 0;
	font-size: 0.92em;
}

.ue-card-note {
	margin: 8px 0 0;
	font-size: 0.9em;
	color: var(--ue-text-soft);
}

.ue-card-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.ue-link {
	font-size: 0.85em;
	font-weight: 600;
	color: var(--ue-pink-deep);
	text-decoration: none;
	border: 1.5px solid var(--ue-pink);
	border-radius: 999px;
	padding: 4px 14px;
	transition: background 0.2s, color 0.2s;
}

.ue-link:hover {
	background: var(--ue-pink);
	color: #fff;
}

/* ---------------- ウィジェット ---------------- */

.ue-widget-head {
	margin-bottom: 14px;
}

.ue-widget-title {
	font-size: 1.3em;
	font-weight: 700;
	margin: 0;
}

.ue-widget-more {
	text-align: center;
	margin: 20px 0 0;
}

.ue-more-btn {
	display: inline-block;
	background: var(--ue-pink);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	padding: 10px 28px;
	border-radius: 999px;
	transition: background 0.2s;
}

.ue-more-btn:hover {
	background: var(--ue-pink-deep);
	color: #fff;
}

/* ---------------- スマホ対応 ---------------- */

@media (max-width: 600px) {
	.usayori-events {
		font-size: 14px;
	}

	.ue-filters {
		flex-direction: column;
		align-items: stretch;
	}

	.ue-month-nav {
		justify-content: center;
	}

	.ue-selects {
		justify-content: center;
	}

	.ue-day {
		min-height: 44px;
		padding: 3px 4px;
	}

	.ue-grid {
		padding: 8px;
		gap: 3px;
	}

	.ue-card {
		padding: 14px 16px;
	}
}

/* 動きを減らす設定への配慮 */
@media (prefers-reduced-motion: reduce) {
	.ue-card,
	.ue-nav-btn,
	.ue-link,
	.ue-more-btn {
		transition: none;
	}

	.ue-card:hover {
		transform: none;
	}
}
