:root {
	--attendance-cell-min-height: 56px;
	--attendance-breakpoint: 790px;
	--attendance-hospital-width: 725px;
}

.sainou-current-attendance,
.wp-block-acf-attendance-schedule,
.sainou-attendance-schedule-layout,
.sainou-attendance-layout-part {
	--attendance-border: var(--attendance-text, #2b537b);
	--attendance-heading-background: #f1f1f1;
	--attendance-subheading-background: #f8f8f8;
	--attendance-closed-background: #fff3f3;
	--attendance-closed-text: #a40000;
	--attendance-sunday-text: #a40000;
	--attendance-saturday-text: #145e9f;
	--attendance-department-width: 9rem;
	--attendance-time-width: 9rem;

	width: 100%;
	font-size: clamp(0.75rem, 1.4vw, 0.95rem);
}

.wp-block-acf-attendance-schedule {
	width: var(--attendance-hospital-width);
	max-width: 100%;
}

.sainou-attendance-schedule-layout,
.sainou-attendance-layout-part {
	box-sizing: border-box;
	width: 100%;
}

.sainou-attendance-schedule-layout {
	max-width: var(--attendance-hospital-width);
	margin-inline: auto;
}

.sainou-attendance-layout-heading {
	max-width: var(--attendance-hospital-width);
	margin-inline: auto;
}

.sainou-attendance-schedule-layout > .sainou-attendance-layout-part {
	margin-block: 0 !important;
}

.sainou-attendance-schedule-layout
	> .sainou-attendance-layout-table
	+ .sainou-attendance-layout-heading {
	margin-block-start: 3rem !important;
}

.attendance-section--heading-only,
.attendance-section--table-only,
.attendance-section--heading-only + .attendance-section--table-only {
	margin-block: 0;
}


@media (width >= 790px) {
	.sainou-current-attendance {
		width: var(--attendance-hospital-width);
		max-width: 100%;
		margin-inline: auto;
	}
}

.weekly-attendance__period {
	margin-block-end: 1rem;
	text-align: right;
}

.attendance-section + .attendance-section {
	margin-block-start: 3rem;
}

.attendance-section__title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.15rem, 2vw, 1.5rem);
}

.attendance-table-scroll-hint {
	display: none;
	margin: 0;
}

.attendance-table-wrap {
	position: relative;
	isolation: isolate;
	margin: 1rem 0;
	padding: 0;
	background: #fff;
	}

.attendance-table {
	border: none;
	width: 100%;
	min-width: 72rem;
	margin: 0;
	padding: 0;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
	background: #fff;
	line-height: 1.45;
}

.attendance-table th,
.attendance-table td {
	padding: 0.6rem 0.45rem;
	border-right: 1px solid var(--attendance-border);
	border-bottom: 1px solid var(--attendance-border);
	vertical-align: middle;
	text-align: center;
	overflow-wrap: anywhere;
}

.attendance-table thead tr:first-child > * {
	border-top: 1px solid var(--attendance-border);
}

.attendance-table thead th {
	background: var(--attendance-heading-background);
}

.attendance-table__fixed {
	position: sticky;
	z-index: 4;
	background-clip: padding-box;
}

.attendance-table__fixed--department {
	left: 0;
	width: var(--attendance-department-width);
	min-width: var(--attendance-department-width);
	max-width: var(--attendance-department-width);
}

.attendance-table__fixed--time {
	width: var(--attendance-time-width);
	min-width: var(--attendance-time-width);
	max-width: var(--attendance-time-width);
}

.attendance-table__fixed--time-0 {
	left: var(--attendance-department-width);
}

.attendance-table__fixed--time-1 {
	left: calc(
		var(--attendance-department-width) + var(--attendance-time-width)
	);
	border-right: 1px solid var(--attendance-border);
}

.attendance-table--hospital .attendance-table__fixed--time-0 {
	border-right: 1px solid var(--attendance-border);
}

.attendance-table thead .attendance-table__fixed {
	z-index: 6;
	background: var(--attendance-heading-background);
}

.attendance-table__department,
.attendance-table__notes-heading {
	background: var(--attendance-heading-background);
}

.attendance-table__session {
	background: var(--attendance-subheading-background);
}

.attendance-table__fixed--notes {
	left: 0;
	width: calc(
		var(--attendance-department-width)
		+ var(--attendance-time-width) * var(--attendance-time-column-count)
	);
	min-width: calc(
		var(--attendance-department-width)
		+ var(--attendance-time-width) * var(--attendance-time-column-count)
	);
	background: var(--attendance-heading-background);
	border-right: 1px solid var(--attendance-border);
}

.attendance-table__session small,
.attendance-table__weekday,
.attendance-table__month-day,
.attendance-table__doctor > span {
	display: block;
}

.attendance-table__date--saturday {
	color: var(--attendance-saturday-text);
}

.attendance-table__date--sunday {
	color: var(--attendance-sunday-text);
}

.attendance-table__doctor-slot-row td {
	height: 3rem;
}

.attendance-table__doctor-slot .attendance-table__doctor {
	display: grid;
	gap: 0.15rem;
}

.attendance-table__doctors {
	display: grid;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.attendance-table__doctor-note,
.attendance-table__status,
.attendance-table__substitute small {
	font-size: 0.78em;
}

.attendance-table__status--closed,
.attendance-table__closed {
	color: var(--attendance-closed-text);
}

.attendance-table__closed {
	display: inline-block;
	padding: 0.2rem 0.5rem;
	background: var(--attendance-closed-background);
}

.attendance-table__substitute {
}

.attendance-table__empty {
	color: #777;
}

.attendance-table__notes {
	text-align: left;
}

.attendance-table__notes > :first-child {
	margin-block-start: 0;
}

.attendance-table__notes > :last-child {
	margin-block-end: 0;
}

@media (width < 556px) {
	.attendance-table-scroll-hint {
		display: block;
		margin: 0 0 8px;
		font-size: 12px;
		line-height: 1.6;
		text-align: right;
	}
}

@media (width < 790px) {
	.attendance-table-wrap {
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
	}

	.sainou-current-attendance,
	.wp-block-acf-attendance-schedule,
	.sainou-attendance-schedule-layout,
	.sainou-attendance-layout-part {
		--attendance-department-width: 7rem;
		--attendance-time-width: 7rem;
	}

	.weekly-attendance__period {
		text-align: left;
	}

	.attendance-table-wrap {
		contain: paint;
	}

	.attendance-table__fixed {
		font-size: 0.78rem;
	}
}

@media print {
	.attendance-table-wrap {
		overflow: visible;
		margin: 0;
	}

	.attendance-table {
		min-width: 0;
		border-collapse: collapse;
		font-size: 8pt;
	}

	.attendance-table__fixed {
		position: static;
		transform: none;
		box-shadow: none;
	}
}

/* v3.1.1: 行高を整数pxへ統一し、sticky列のセル間の隙間を防止 */
.attendance-table {
	line-height: 20px;
}

.attendance-table th,
.attendance-table td {
	min-height: 48px;
	padding: 14px 8px;
	line-height: 20px;
	box-sizing: border-box;
}

.attendance-table thead th {
	height: 64px;
	min-height: 64px;
	padding-block: 12px;
}

.attendance-table__doctor-slot-row {
	height: 64px;
}

.attendance-table__doctor-slot-row > th,
.attendance-table__doctor-slot-row > td {
	height: 64px;
	min-height: 64px;
}

.attendance-table__notes-row > th,
.attendance-table__notes-row > td {
	min-height: 64px;
}

/*
 * rowspanセルも行境界を完全に覆うようにします。
 * 背景色を不透明にし、セル自身の高さ計算に任せます。
 */
.attendance-table__fixed {
	background-clip: border-box;
}

.attendance-table__department,
.attendance-table__session,
.attendance-table__notes-heading {
	background-color: var(--attendance-heading-background);
}

.attendance-table__session {
	background-color: var(--attendance-subheading-background);
}

/* サブピクセルの境界漏れを固定列の内側1pxで覆う */
@media (width < 790px) {
	.attendance-table th,
	.attendance-table td {
		padding: 14px 6px;
		line-height: 20px;
	}

	.attendance-table__doctor-slot-row,
	.attendance-table__doctor-slot-row > th,
	.attendance-table__doctor-slot-row > td {
		height: 64px;
		min-height: 64px;
	}
}

@media print {
	.attendance-table {
		line-height: 14px;
	}

	.attendance-table th,
	.attendance-table td {
		min-height: 0;
		height: auto;
		padding: 4px;
		line-height: 14px;
	}
}

/* v3.1.2: 文字サイズ・行高を整数pxへ固定 */
.attendance-table,
.attendance-table th,
.attendance-table td {
	font-size: 14px;
	line-height: 20px;
}

.attendance-table__doctor,
.attendance-table__doctor-name,
.attendance-table__doctor-note,
.attendance-table__status,
.attendance-table__substitute,
.attendance-table__substitute small,
.attendance-table__closed,
.attendance-table__session,
.attendance-table__session small,
.attendance-table__weekday,
.attendance-table__month-day {
	font-size: 14px;
	line-height: 20px;
}

.attendance-table__doctor-note,
.attendance-table__status,
.attendance-table__substitute small {
	font-size: 12px;
	line-height: 16px;
}

.attendance-table__doctor-slot .attendance-table__doctor {
	display: grid;
	grid-auto-rows: minmax(16px, auto);
	gap: 0;
	align-content: center;
	min-height: 36px;
}

.attendance-table__doctor-slot-row,
.attendance-table__doctor-slot-row > th,
.attendance-table__doctor-slot-row > td {
	height: 64px;
	min-height: 64px;
}

.attendance-table__doctor-slot-row > th,
.attendance-table__doctor-slot-row > td {
	padding-top: 12px;
	padding-bottom: 12px;
}

.attendance-table__substitute small {
	display: inline;
}

@media (width < 790px) {
	.attendance-table,
	.attendance-table th,
	.attendance-table td,
	.attendance-table__doctor,
	.attendance-table__doctor-name,
	.attendance-table__session,
	.attendance-table__weekday,
	.attendance-table__month-day {
		font-size: 12px;
		line-height: 18px;
	}

	.attendance-table__doctor-note,
	.attendance-table__status,
	.attendance-table__substitute,
	.attendance-table__substitute small,
	.attendance-table__closed,
	.attendance-table__session small {
		font-size: 12px;
		line-height: 16px;
	}
}

@media print {
	.attendance-table,
	.attendance-table th,
	.attendance-table td {
		font-size: 10px;
		line-height: 14px;
	}
}


/* v5.0.0-beta1: 週ナビゲーション */
.attendance-week-navigation {
	margin: 1rem 0;
}

.attendance-week-navigation__links {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 1rem;
	align-items: center;
}

.attendance-week-navigation__previous {
	text-align: left;
}

.attendance-week-navigation__current {
	text-align: center;
}

.attendance-week-navigation__next {
	text-align: right;
}

.attendance-week-navigation a,
.attendance-week-navigation [aria-current="page"] {
	display: inline-block;
	padding: 0.5rem 0.75rem;
	line-height: 20px;
}

.attendance-week-navigation [aria-current="page"] {
}

.attendance-week-navigation__message {
	margin: 0.75rem 0 0;
	font-size: 14px;
	line-height: 20px;
	text-align: center;
}

@media (width < 790px) {
	.attendance-week-navigation__links {
		gap: 0.5rem;
	}

	.attendance-week-navigation a,
	.attendance-week-navigation [aria-current="page"] {
		padding: 0.5rem 0.25rem;
		font-size: 12px;
		line-height: 18px;
	}

	.attendance-week-navigation__message {
		font-size: 12px;
		line-height: 18px;
		text-align: left;
	}
}


/* v5.2.0: 診療時間を平日／土・日・祝日に分離 */
.attendance-table__fixed--time,
.attendance-table__session {
	white-space: normal;
}

.attendance-table__session > span,
.attendance-table__session > small {
	display: block;
}

.attendance-table__month-day {
}

.attendance-table__weekday {
	margin-top: 2px;
}


/* v5.2.0-beta3: 特殊外来の名称・注記・時間を3段表示 */
.attendance-table__time-label,
.attendance-table__time-note,
.attendance-table__time-value {
	display: block;
}

.attendance-table__time-label {
}

.attendance-table__time-note {
	margin-top: 0.15em;
}

.attendance-table__time-value {
	margin-top: 0.15em;
}

/* v5.2.0-beta7: 公開スケジュールの配色・文字・西能クリニック表幅 */
.sainou-current-attendance,
.wp-block-acf-attendance-schedule,
.sainou-attendance-schedule-layout,
.sainou-attendance-layout-part {
	--attendance-text: #2b537b;
	--attendance-closed-text: #e31010;
	--attendance-department-background: #f2f2f2;
	--attendance-weekday-background: #ffffff;
	--attendance-holiday-background: #fdf6f2;
	color: var(--attendance-text);
	font-size: 15px;
}

.attendance-table,
.attendance-table th,
.attendance-table td,
.attendance-table__doctor,
.attendance-table__doctor-name,
.attendance-table__doctor-note,
.attendance-table__status,
.attendance-table__substitute,
.attendance-table__closed,
.attendance-table__session,
.attendance-table__session small,
.attendance-table__time-label,
.attendance-table__time-note,
.attendance-table__time-value {
	font-size: 15px;
	color: var(--attendance-text);
}

.attendance-table__month-day,
.attendance-table__weekday {
	font-size: 13px;
	font-weight: 400;
}

.attendance-table__fixed--department,
.attendance-table__fixed--time,
.attendance-table__department,
.attendance-table__session,
.attendance-table__time-label,
.attendance-table__time-value {
	font-weight: 400;
}

.attendance-table__substitute small {
	font-size: 12px;
	color: var(--attendance-text);
}

.attendance-table__status--closed,
.attendance-table__closed,
.attendance-table__time-value:where(:not(:empty)) {
	color: inherit;
}

.attendance-table__status--closed,
.attendance-table__closed,
.attendance-table__time-column--holiday .attendance-table__time-value {
}

.attendance-table__status--closed,
.attendance-table__closed,
.attendance-table__time-column--holiday .attendance-table__time-value:not(:empty) {
	color: var(--attendance-closed-text);
}

/* 「＜休診＞」以外の休日診療時間は通常色へ戻す */
.attendance-table__time-column--holiday .attendance-table__time-value {
	color: var(--attendance-text);
	font-weight: 400;
}

.attendance-table__time-column--holiday .attendance-table__time-value:first-child:last-child {
	color: var(--attendance-text);
}

.attendance-table__department,
.attendance-table thead .attendance-table__fixed--department {
	background-color: var(--attendance-department-background);
}

.attendance-table__time-column--weekday {
	background-color: var(--attendance-weekday-background);
}

.attendance-table__time-column--holiday,
.attendance-table__date--saturday,
.attendance-table__date--sunday,
.attendance-table__day--saturday,
.attendance-table__day--sunday,
.attendance-table__column--holiday-closed {
	background-color: var(--attendance-holiday-background);
}

/* 休祝日設定による休診列では、セル内の休診表示も背景になじませる */
.attendance-table__column--holiday-closed .attendance-table__closed {
	background: transparent;
}

/* 西能クリニック：73 + 74 + 74 + 72 × 7 = 725px */
.attendance-table--clinic {
	width: var(--attendance-hospital-width);
	min-width: var(--attendance-hospital-width);
	max-width: var(--attendance-hospital-width);
	table-layout: fixed;
}

.attendance-table--clinic th,
.attendance-table--clinic td {
	box-sizing: border-box;
}

.attendance-table--clinic .attendance-table__fixed--department,
.attendance-table--clinic .attendance-table__department {
	width: 73px;
	min-width: 73px;
	max-width: 73px;
}

.attendance-table--clinic .attendance-table__fixed--time {
	width: 74px;
	min-width: 74px;
	max-width: 74px;
}

.attendance-table--clinic .attendance-table__date,
.attendance-table--clinic td[class*="attendance-table__day--"] {
	width: 72px;
	min-width: 72px;
	max-width: 72px;
}

.attendance-table--clinic .attendance-table__fixed--time-0 {
	left: 73px;
}

.attendance-table--clinic .attendance-table__fixed--time-1 {
	left: 147px;
}

.attendance-table--clinic .attendance-table__department {
	writing-mode: vertical-rl;
	text-orientation: upright;
	letter-spacing: 0.08em;
	white-space: normal;
}

/* 790px以上の画面では固定列を解除 */
@media (min-width: 790px) {
	.attendance-table--clinic .attendance-table__fixed {
		position: static;
	}
}

@media (width < 790px) {
	.sainou-current-attendance,
	.wp-block-acf-attendance-schedule,
	.sainou-attendance-schedule-layout,
	.sainou-attendance-layout-part,
	.attendance-table,
	.attendance-table th,
	.attendance-table td,
	.attendance-table__doctor,
	.attendance-table__doctor-name,
	.attendance-table__doctor-note,
	.attendance-table__status,
	.attendance-table__substitute,
	.attendance-table__closed,
	.attendance-table__session,
	.attendance-table__session small,
	.attendance-table__time-label,
	.attendance-table__time-note,
	.attendance-table__time-value {
		font-size: 15px;
	}

	.attendance-table__month-day,
	.attendance-table__weekday {
		font-size: 13px;
	}

	.attendance-table__substitute small {
		font-size: 12px;
	}
}


/* beta7補正：時間固定列の休診文字だけを赤色にする */
.attendance-table__time-column--holiday .attendance-table__time-value {
	color: var(--attendance-text);
	font-weight: 400;
}

.attendance-table__time-value--closed,
.attendance-table__time-column--holiday .attendance-table__time-value--closed {
	color: var(--attendance-closed-text);
}


/* v5.2.0-beta8: セル余白・文字ウェイト・縦書き・休日背景の調整 */

/* 全セルの余白を統一 */
.attendance-table th,
.attendance-table td {
	padding: 4px 0;
}

/* 医師注記は既存指定より優先して12pxに固定 */
.attendance-table__doctor-note {
	font-size: 12px !important;
}

/* 西能クリニックの診療科名を縦書き・中央配置 */
.attendance-table--clinic .attendance-table__department {
	writing-mode: vertical-lr;
	white-space: nowrap;
	text-orientation: mixed;
	vertical-align: middle;
	text-align: center;
	padding: 4px 0;
}

/* rowspanの診療科セル内でも中央位置を維持 */
.attendance-table--clinic th.attendance-table__department,
.attendance-table--clinic td.attendance-table__department {
	vertical-align: middle;
	text-align: center;
}

/* 土・日・祝日の時間列、土曜・日曜の曜日列を休日背景に統一 */
.attendance-table__time-column--holiday,
.attendance-table__date--saturday,
.attendance-table__date--sunday,
.attendance-table__day--saturday,
.attendance-table__day--sunday,
.attendance-table th.attendance-table__date--saturday,
.attendance-table th.attendance-table__date--sunday,
.attendance-table td.attendance-table__day--saturday,
.attendance-table td.attendance-table__day--sunday,
.attendance-table__column--holiday-closed {
	background-color: var(--attendance-holiday-background);
}


/* v5.2.0-beta10: 診療科名だけをFirefoxでもセル中央に配置 */
.attendance-table--clinic .attendance-table__department {
	position: relative;
	display: table-cell;
	vertical-align: middle;
	text-align: center;
}

.attendance-table--clinic .attendance-table__department-label {
	position: absolute;
	top: 50%;
	left: 50%;
	display: inline-block;
	writing-mode: vertical-lr;
	white-space: nowrap;
	text-orientation: mixed;
	transform: translate(-50%, -50%);
}


/* v5.2.0-beta11: 文字ウェイト・備考高さ・休日見出しの調整 */
.attendance-table th,
.attendance-table td {
	font-weight: 400;
}

/* 備考欄にも通常セルと同じ最低高さを確保 */
.attendance-table__notes,
.attendance-table__note,
.attendance-table__remarks,
.attendance-table__remark {
	min-height: var(--attendance-cell-min-height);
}

/* 備考がセル直下の内容要素の場合にも最低高さを適用 */
.attendance-table td.attendance-table__notes,
.attendance-table td.attendance-table__note,
.attendance-table td.attendance-table__remarks,
.attendance-table td.attendance-table__remark {
	height: var(--attendance-cell-min-height);
}

/* 「土・日・祝日」見出しセル自体を休日背景色にする */
.attendance-table th.attendance-table__time-column--holiday,
.attendance-table td.attendance-table__time-column--holiday,
.attendance-table__time-column--holiday {
	background-color: var(--attendance-holiday-background);
}

/* 土曜・日曜、および休祝日設定で休診になった曜日見出し自体を休日背景色にする */
.attendance-table th.attendance-table__date--saturday,
.attendance-table th.attendance-table__date--sunday,
.attendance-table th.attendance-table__day--saturday,
.attendance-table th.attendance-table__day--sunday,
.attendance-table th.attendance-table__column--holiday-closed,
.attendance-table th.attendance-table__date--holiday-closed,
.attendance-table th.attendance-table__day--holiday-closed,
.attendance-table td.attendance-table__column--holiday-closed,
.attendance-table__column--holiday-closed {
	background-color: var(--attendance-holiday-background);
}


/* v5.2.0-beta12: 代診表示を「代診」「担当者名」の2行にする */
.attendance-table__substitute,
.attendance-table__substitute-label,
.attendance-table__substitute-name {
	display: block;
}

.attendance-table__substitute-label,
.attendance-table__substitute-name {
	line-height: 1.4;
}


/* v5.2.0-beta13: strong は意味付けに使い、見た目の太字化はしない */
.attendance-table strong,
.attendance-table__closed,
.attendance-table__status--closed,
.attendance-table__substitute-label,
.attendance-table__doctor-note,
.attendance-table__time-note {
	font-weight: 400;
}


/* v5.2.0-beta14: 重要情報の文字色と病院診療時間の固定2行表示 */
.attendance-table__substitute,
.attendance-table td.attendance-table__notes {
	color: var(--attendance-closed-text);
	font-size: 12px;
}

.attendance-table--hospital .attendance-table__time-value {
	white-space: pre-line;
}


/* v5.2.0-beta17: 代診表示は本文サイズを維持 */
.attendance-table__substitute {
	font-size: 15px;
}



/* 790px以上の画面では病院表の固定列を解除 */
@media (min-width: 790px) {
	.attendance-table--hospital .attendance-table__fixed {
		position: static;
	}
}

/* 790px未満では既存のsticky固定を明示的に維持 */
@media (width < 790px) {
	.attendance-table--hospital .attendance-table__fixed {
		position: sticky;
	}
}


/* v5.2.0-beta20: 横スクロール時の固定列調整 */

/* 西能クリニック：診療科列を横スクロール時も固定 */
@media (width < 790px) {
	.attendance-table--clinic .attendance-table__department,
	.attendance-table--clinic .attendance-table__fixed--department {
		position: sticky;
		left: 0;
		z-index: 4;
	}
}

/* 西能病院：固定列の実幅に合わせる */
.attendance-table--hospital {
	width: 725px;
	min-width: 725px;
	max-width: 725px;
	table-layout: fixed;
}

.attendance-table--hospital .attendance-table__fixed--department {
	width: 182px;
	min-width: 182px;
	max-width: 182px;
}

.attendance-table--hospital .attendance-table__fixed--time {
	width: 183px;
	min-width: 183px;
	max-width: 183px;
}

.attendance-table--hospital .attendance-table__fixed--time-0 {
	left: 182px;
}

.attendance-table--hospital .attendance-table__date,
.attendance-table--hospital td[class*="attendance-table__day--"],
.attendance-table--hospital .attendance-table__notes:not(.attendance-table__fixed--notes) {
	width: 72px;
	min-width: 72px;
	max-width: 72px;
}

/* 790px以上の画面では病院表の固定列を解除 */
@media (min-width: 790px) {
	.attendance-table--hospital .attendance-table__fixed {
		position: static;
	}
}

/* 790px未満では病院表の固定列を維持 */
@media (width < 790px) {
	.attendance-table--hospital .attendance-table__fixed {
		position: sticky;
	}

	.attendance-table--hospital .attendance-table__fixed--department {
		left: 0;
		z-index: 4;
	}

	.attendance-table--hospital .attendance-table__fixed--time,
	.attendance-table--hospital .attendance-table__fixed--time-0 {
		left: 182px;
		z-index: 3;
	}
}

/* v5.2.0-beta24: 西能クリニック表のスマートフォン表示 */
@media (width < 790px) {
	.attendance-table--clinic {
		table-layout: fixed;
		width: 506px;
		min-width: 506px;
		max-width: 506px;
		margin-inline: auto;
	}

	/* 1列目：診療科 */
	.attendance-table--clinic .attendance-table__fixed--department,
	.attendance-table--clinic .attendance-table__department {
		width: 20px;
		min-width: 20px;
		max-width: 20px;
		font-size: 14px;
	}

	/* 2〜3列目：診療時間（平日／土・日・祝日） */
	.attendance-table--clinic .attendance-table__fixed--time,
	.attendance-table--clinic .attendance-table__time {
		width: 40px;
		min-width: 40px;
		max-width: 40px;
		overflow: hidden;
		font-size: 12px;
	}

	/* 固定列の位置 */
	.attendance-table--clinic .attendance-table__fixed--time-0 {
		left: 20px;
	}

	.attendance-table--clinic .attendance-table__fixed--time-1 {
		left: 60px;
	}

	/* 4〜10列目：月〜日 */
	.attendance-table--clinic .attendance-table__date,
	.attendance-table--clinic td[class*="attendance-table__day--"] {
		width: 58px;
		min-width: 58px;
		max-width: 58px;
	}

	/* 月日・曜日の見出し */
	.attendance-table--clinic .attendance-table__date {
		padding-left: 0;
		padding-right: 0;
		font-size: 12px;
	}

	/* 担当者セル */
	.attendance-table--clinic td[class*="attendance-table__day--"] {
		font-size: 14px;
	}

	/* 診療時間内の文字 */
	.attendance-table--clinic .attendance-table__time-label,
	.attendance-table--clinic .attendance-table__time-note,
	.attendance-table--clinic .attendance-table__time-value {
		display: block;
		font-size: 12px;
		line-height: 1.2;
		overflow-wrap: anywhere;
	}
}



/* v5.2.0-beta25 */
@media (width < 790px){
.attendance-table--clinic thead tr:first-child .attendance-table__fixed--time-1 {
  padding-left: 2px;
  padding-right: 2px;
}
.attendance-table--clinic .attendance-table__month-day,
.attendance-table--clinic .attendance-table__weekday{
  font-size:12px;
}
.sainou-current-attendance,
.wp-block-acf-attendance-schedule,
.sainou-attendance-schedule-layout,
.sainou-attendance-layout-part,
.attendance-table,
.attendance-table th,
.attendance-table td,
.attendance-table__doctor,
.attendance-table__doctor-name,
.attendance-table__doctor-note,
.attendance-table__status,
.attendance-table__substitute,
.attendance-table__closed,
.attendance-table__session,
.attendance-table__session small,
.attendance-table__time-label,
.attendance-table__time-note,
.attendance-table__time-value{
 font-size:14px;
}
}

/* v5.2.0-beta30: 西能病院表をスマホ幅100%で可変表示 */
.attendance-table-wrap--hospital {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--attendance-hospital-width);
	overflow: hidden;
}

.attendance-table--hospital {
	box-sizing: border-box;
	table-layout: fixed;
	width: min(var(--attendance-hospital-width), 100%);
	min-width: 0;
	max-width: 100%;
}

.attendance-table--hospital .attendance-table__fixed,
.attendance-table--hospital .attendance-table__fixed--department,
.attendance-table--hospital .attendance-table__fixed--time {
	position: static !important;
	left: auto !important;
}

/* 725px時：182 + 183 + 72 × 5 = 725px */
.attendance-table--hospital .attendance-table__fixed--department {
	box-sizing: border-box;
	width: 25.1034%;
	min-width: 0;
	max-width: none;
}

.attendance-table--hospital .attendance-table__fixed--time {
	box-sizing: border-box;
	width: 25.2414%;
	min-width: 0;
	max-width: none;
}

.attendance-table--hospital .attendance-table__date,
.attendance-table--hospital td[class*="attendance-table__day--"] {
	box-sizing: border-box;
	width: 9.9310%;
	min-width: 0;
	max-width: none;
}

.attendance-table--hospital th,
.attendance-table--hospital td,
.attendance-table--hospital th > *,
.attendance-table--hospital td > * {
	min-width: 0;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
}

@media (width < 790px) {
	.attendance-table-wrap--hospital {
		width: 100%;
		max-width: 100%;
	}

	.attendance-table--hospital {
		width: 100%;
		min-width: 310px;
		max-width: 100%;
		table-layout: fixed;
	}

	/* 310px時：20 + 50 + 48 × 5 = 310px */
	.attendance-table--hospital .attendance-table__fixed--department {
		width: 6.4516%;
		padding-left: 2px;
		padding-right: 2px;
		font-size: 14px;
	}

	.attendance-table--hospital .attendance-table__fixed--time {
		width: 16.1290%;
		padding-left: 2px;
		padding-right: 2px;
		font-size: 12px;
	}

	.attendance-table--hospital .attendance-table__date,
	.attendance-table--hospital td[class*="attendance-table__day--"] {
		width: 15.4839%;
		padding-left: 2px;
		padding-right: 2px;
	}
}


/* v5.2.0-beta31: 病院表の日付改行と罫線の見え方を調整 */
.attendance-table__month,
.attendance-table__day-of-month {
	display: inline;
}

@media (width < 790px) {
	/* 西能病院のみ「7月」「27日」の2行表示 */
	.attendance-table--hospital .attendance-table__month,
	.attendance-table--hospital .attendance-table__day-of-month {
		display: block;
		white-space: nowrap;
	}

	.attendance-table--hospital .attendance-table__month-day {
		line-height: 1.2;
	}
}

/* v5.2.0-beta32: separateを維持しつつ罫線の重複を防止 */
.attendance-table th,
.attendance-table td {
	border-left: none;
	border-top: none;
	border-right: 1px solid var(--attendance-border);
	border-bottom: 1px solid var(--attendance-border);
}

/* 表の1列目だけ左罫線を補う */
.attendance-table .attendance-table__fixed--department {
	border-left: 1px solid var(--attendance-border);
}

/* 表の1行目だけ上罫線を補う */
.attendance-table thead tr:first-child > * {
	border-top: 1px solid var(--attendance-border);
}

/* v5.2.0-beta34: 備考欄の1列目セルだけ左罫線を補う */
.attendance-table .attendance-table__fixed--notes {
	border-left: 1px solid var(--attendance-border);
}

/* v5.2.0-beta35: ACF WYSIWYGによる施設見出し */
.attendance-section__title > :first-child {
	margin-top: 0;
}

.attendance-section__title > :last-child {
	margin-bottom: 0;
}



/* v5.2.0-beta37: 西能病院表の下にも週ナビゲーションを表示 */
.attendance-week-navigation--bottom {
	margin-top: 1.5rem;
	margin-bottom: 0;
}


/* v5.2.0-beta38: 週期間を短縮し、年またぎ時のみ終了年を表示 */
.attendance-week-navigation--bottom .attendance-week-navigation__period {
	margin: 0 0 0.5rem;
	text-align: center;
}




/* v5.2.0-beta40: 対象期間を週移動リンクの直前に配置 */
.attendance-week-navigation__period {
	margin: 0 0 0.5rem;
	text-align: center;
}

/* v5.2.0-beta41: 対象期間は最低12pxを維持し、狭い画面では自然に改行 */
.attendance-week-navigation__period--top {
	font-size: clamp(12px, 3.6vw, 14px);
	line-height: 1.4;
	white-space: nowrap;
}

.attendance-week-navigation__period-prefix,
.attendance-week-navigation__period-value {
	display: inline;
}

@media (width < 360px) {
	.attendance-week-navigation__period--top {
		white-space: normal;
	}

	.attendance-week-navigation__period-prefix,
	.attendance-week-navigation__period-value {
		display: block;
	}
}

/* v5.2.0: PCでは対象期間を15pxに固定 */
@media (width >= 790px) {
	.attendance-week-navigation__period--top {
		font-size: 15px;
	}
}

/* v5.4.1-beta33: 週切替後も予定表の位置と表示週を把握できるようにする */
.wp-block-acf-attendance-schedule,
.sainou-attendance-schedule-layout,
.wp-block-acf-attendance-week-navigation {
	scroll-margin-top: calc(var(--sainou-header-height, 120px) + 20px);
}

.attendance-week-navigation__period--top[data-attendance-period-focus] {
	border-radius: 4px;
}

.attendance-week-navigation__period--top[data-attendance-period-focus]:focus {
	outline: none;
}

.wp-block-acf-attendance-schedule.is-keyboard-arrival
	.attendance-week-navigation__period--top[data-attendance-period-focus]:focus,
.sainou-attendance-schedule-layout.is-keyboard-arrival
	.attendance-week-navigation__period--top[data-attendance-period-focus]:focus,
.wp-block-acf-attendance-week-navigation.is-keyboard-arrival
	.attendance-week-navigation__period--top[data-attendance-period-focus]:focus {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.attendance-week-navigation__status {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.wp-block-acf-attendance-schedule.is-week-arrival
	.attendance-week-navigation__period--top,
.sainou-attendance-schedule-layout.is-week-arrival
	.attendance-week-navigation__period--top,
.wp-block-acf-attendance-week-navigation.is-week-arrival
	.attendance-week-navigation__period--top {
	animation: sainou-attendance-week-arrival 1.2s ease-out;
}

@keyframes sainou-attendance-week-arrival {
	0% {
		background-color: var(--wp--preset--color--bg-secondary, #f2f2f2);
	}

	100% {
		background-color: transparent;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-acf-attendance-schedule.is-week-arrival
		.attendance-week-navigation__period--top,
	.sainou-attendance-schedule-layout.is-week-arrival
		.attendance-week-navigation__period--top,
	.wp-block-acf-attendance-week-navigation.is-week-arrival
		.attendance-week-navigation__period--top {
		animation: none;
	}
}

/*
 * attendance個別ページで本文へ自動追加した予定表がColumns内にある場合、
 * 親カラムの min-width: 0 による縮小を防ぎます。
 */
.single-attendance .wp-block-column:has(.sainou-current-attendance),
.single-attendance .wp-block-column:has(.wp-block-acf-attendance-schedule) {
	flex-basis: 100% !important;
	width: 100% !important;
	min-width: 725px !important;
	max-width: none !important;
}

@media (max-width: 789px) {
	.single-attendance .wp-block-column:has(.sainou-current-attendance),
	.single-attendance .wp-block-column:has(.wp-block-acf-attendance-schedule) {
		min-width: 100% !important;
	}
}

/*
 * v5.4.1-beta39: スマホの西能クリニック表を縦横スクロール領域にし、
 * 左3列と先頭行を同時に固定します。
 */
@media (width < 790px) {
	.attendance-table-wrap--clinic {
		max-height: 70vh;
		max-height: min(70svh, 640px);
		margin-inline: auto;
		overflow: auto;
		overscroll-behavior: none;
		scroll-padding-top: 64px;
	}

	.attendance-table-wrap--clinic .attendance-table thead th {
		position: sticky;
		top: 0;
		z-index: 5;
		background-clip: border-box;
	}

	.attendance-table-wrap--clinic
		.attendance-table thead .attendance-table__fixed {
		z-index: 7;
	}

}

/*
 * v5.4.1-beta40: 施設見出しを「診療科棟案内」と同じ見栄えに統一します。
 */
.attendance-section__title {
	display: flex;
	align-items: center;
	min-width: 0;
	margin: 0 !important;
}

.attendance-section__title > * {
	margin-block-start: 0 !important;
}

.attendance-section__title > :is(h2, h3) {
	box-sizing: border-box;
	flex: 0 0 auto;
	margin-block: calc((1em - 1lh) / 2) !important;
	margin-inline: 0 !important;
	padding: 0 18px 0 0;
	font-family: var(--sainou-font-shippori-mincho, "Shippori Mincho", serif) !important;
	font-size: 40px;
	font-weight: 500;
	line-height: 50px;
	letter-spacing: 0.075em;
	text-align: left;
}

.attendance-section__title > p {
	display: block;
	box-sizing: border-box;
	flex: 0 0 auto;
	width: fit-content;
	margin-block: calc((1em - 1lh) / 2) !important;
	margin-inline: 0 !important;
	padding: 0 9px;
	font-family: var(--sainou-font-shippori-mincho, "Shippori Mincho", serif) !important;
	font-size: 18px;
	font-weight: 500;
	line-height: 30px;
	letter-spacing: 0;
	white-space: nowrap;
}

@media (width < 790px) {
	.attendance-section__title {
		flex-direction: column;
		align-items: center;
		margin-bottom: 55px !important;
	}

	.attendance-section__title > :is(h2, h3) {
		padding: 0;
		padding-bottom: 16px !important;
		font-size: 40px;
		line-height: 50px;
		letter-spacing: 0.075em;
		text-align: center;
	}

	.attendance-section__title > p {
		padding: 0 9px;
		font-size: 18px;
		line-height: 30px;
		letter-spacing: 0;
		text-align: center;
	}
}

/*
 * v5.4.1-beta41: 週ナビゲーションと施設見出しの文字・余白を調整します。
 */
.attendance-week-navigation {
	margin: 2rem 0;
}

.attendance-week-navigation__period--top,
.attendance-week-navigation--bottom,
.attendance-week-navigation a,
.attendance-week-navigation [aria-current="page"] {
	font-size: 18px;
}

@media (width >= 790px) {
	.sainou-current-attendance,
	.wp-block-acf-attendance-schedule,
	.sainou-attendance-schedule-layout {
		font-size: 18px;
	}

	.attendance-section__title > :is(h2, h3) {
		padding: 0 12px 0 0;
		letter-spacing: 0.1em;
	}

	.attendance-section__title > p {
		padding: 0 8px;
	}
}

@media (width < 790px) {
	.attendance-week-navigation__period--top {
		font-size: 16px;
		text-align: center;
		white-space: normal;
	}

	.attendance-week-navigation__period-prefix,
	.attendance-week-navigation__period-value {
		display: block;
	}

	.attendance-week-navigation a,
	.attendance-week-navigation [aria-current="page"] {
		font-size: 16px;
	}

	.attendance-section__title {
		margin-bottom: 30px !important;
	}

	.attendance-section__title > :is(h2, h3) {
		letter-spacing: 0.2em;
	}

	.attendance-section__title > p {
		padding: 0 8px;
	}
}
