/* Onbit 診療カレンダー — サイト表示用 (テーマ基調 #09780f) */
.occ-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	justify-content: center;
	margin: 20px 0;
}
.occ-month {
	flex: 1 1 320px;
	max-width: 420px;
	min-width: 280px;
}
.occ-month-title {
	text-align: center;
	font-weight: 700;
	font-size: 1.3em;
	color: #09780f;
	margin: 0 0 8px;
}
.occ-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	background: #fff;
}
.occ-table th,
.occ-table td {
	border: 1px solid #ddd;
	text-align: center;
	padding: 6px 2px;
	font-size: 1em;
}
.occ-table thead th {
	background: #09780f;
	color: #fff;
	font-weight: 700;
	padding: 6px 0;
}
.occ-table thead th.occ-sat { background: #0a6ea0; }
.occ-table thead th.occ-sun { background: #b03a3a; }
.occ-day-num {
	display: block;
	font-weight: 700;
	line-height: 1.2;
}
.occ-day-mark {
	display: block;
	font-size: 0.85em;
	line-height: 1.4;
	color: #555;
}
.occ-empty { background: #f7f7f7; }
.occ-open    { background: #ffffff; }
.occ-am      { background: #fdf6dc; }
.occ-pm      { background: #e8f1fb; }
.occ-closed  { background: #fbe5e5; }
.occ-closed .occ-day-mark { color: #b03a3a; font-weight: 700; }
.occ-special { background: #e5f5e6; }
.occ-special .occ-day-mark { color: #09780f; font-weight: 700; }
.occ-today .occ-day-num { color: #09780f; }
.occ-today { box-shadow: inset 0 0 0 2px #09780f; }
.occ-has-note .occ-day-num::after {
	content: "※";
	font-size: 0.78em;
	color: #b03a3a;
	margin-left: 1px;
}
.occ-notes {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.92em;
	color: #555;
	line-height: 1.7;
}
.occ-notes li { padding-left: 1em; text-indent: -1em; }
.occ-notes li::before { content: "※ "; color: #b03a3a; }
.occ-note-date { font-weight: 700; }
.occ-legend {
	flex-basis: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.92em;
	color: #555;
}
.occ-legend li {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.occ-swatch {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 20px;
	border: 1px solid #ccc;
	border-radius: 3px;
	font-size: 0.8em;
	color: #555;
}
.occ-notice {
	background: #fff;
	border: 2px solid #09780f;
	border-radius: 10px;
	padding: 14px 18px;
	margin: 16px 0;
}
.occ-notice ul {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.9;
	font-size: 1.08em;
}
.occ-notice li {
	padding-left: 1.2em;
	text-indent: -1.2em;
}
.occ-notice li::before {
	content: "● ";
	color: #09780f;
	font-size: 10px;
}
.occ-notice-none {
	color: #555;
	margin: 16px 0;
}
@media (max-width: 480px) {
	.occ-table th, .occ-table td { font-size: 0.92em; padding: 4px 1px; }
	.occ-day-mark { font-size: 0.8em; }
}
