@charset "UTF-8";
/* ==========================================================================
   Tabibito Port 混雑カレンダー スタイルシート
   --------------------------------------------------------------------------
   準拠：D1 UI/UX仕様書 v2.0（2026-05-09）
   方針：.tbp- プレフィックス徹底でCocoonテーマと衝突回避
   8pxグリッド・WCAG AAA・prefers-reduced-motion対応
   ========================================================================== */

/* ==========================================================================
   1. CSS変数（カラー・タイポ・スペーシング・モーション・シャドウ）
   ========================================================================== */

.tbp-cal-root {
	/* --- ブランドカラー --- */
	--tbp-navy:           #0B3D91;
	--tbp-navy-dark:      #072B6B;
	--tbp-pink:           #FF6B9D;
	--tbp-pink-soft:      #FFD6E5;
	--tbp-gold:           #FFB800;
	--tbp-gold-dark:      #D99A00;
	--tbp-bg:             #FAFBFD;
	--tbp-surface:        #FFFFFF;
	--tbp-border:         #E2E8F0;
	--tbp-border-future:  #CBD5E1;
	--tbp-text-primary:   #0F172A;
	--tbp-text-secondary: #475569;
	--tbp-text-soft:      #4A5169;
	--tbp-text-disabled:  #94A3B8;

	/* --- 混雑度Lv1〜5 --- */
	--tbp-lv1-main: #22C55E; --tbp-lv1-bg: #F0FDF4; --tbp-lv1-border: #86EFAC; --tbp-lv1-text: #14532D;
	--tbp-lv2-main: #84CC16; --tbp-lv2-bg: #F7FEE7; --tbp-lv2-border: #BEF264; --tbp-lv2-text: #365314;
	--tbp-lv3-main: #F59E0B; --tbp-lv3-bg: #FFFBEB; --tbp-lv3-border: #FCD34D; --tbp-lv3-text: #78350F;
	--tbp-lv4-main: #F97316; --tbp-lv4-bg: #FFF7ED; --tbp-lv4-border: #FDBA74; --tbp-lv4-text: #7C2D12;
	--tbp-lv5-main: #EF4444; --tbp-lv5-bg: #FEF2F2; --tbp-lv5-border: #FCA5A5; --tbp-lv5-text: #7F1D1D;

	/* --- 状態バッジ --- */
	--tbp-st-past:        #94A3B8;
	--tbp-st-today:       #FFB800;
	--tbp-st-future:      #0B3D91;
	--tbp-st-future-low:  #94B8E8;

	/* --- 曜日 --- */
	--tbp-dow-sun: #DC2626;
	--tbp-dow-sat: #2563EB;

	/* --- フォント --- */
	--tbp-font-ja:  "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", system-ui, -apple-system, sans-serif;
	--tbp-font-tc:  "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;
	--tbp-font-ko:  "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
	--tbp-font-en:  "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
	--tbp-font-num: "Inter", "Noto Sans JP", system-ui, sans-serif;
	--tbp-font-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;

	/* --- フォントサイズ --- */
	--tbp-fs-xxs:  9px;
	--tbp-fs-xs:   10px;
	--tbp-fs-sm:   11px;
	--tbp-fs-base: 13px;
	--tbp-fs-md:   15px;
	--tbp-fs-lg:   18px;
	--tbp-fs-xl:   22px;
	--tbp-fs-2xl:  28px;

	/* --- スペーシング --- */
	--tbp-sp-1: 4px;  --tbp-sp-2: 8px;  --tbp-sp-3: 12px;
	--tbp-sp-4: 16px; --tbp-sp-5: 20px; --tbp-sp-6: 24px;
	--tbp-sp-8: 32px; --tbp-sp-10: 40px;

	/* --- モーション --- */
	--tbp-ease:     cubic-bezier(0.16, 1, 0.3, 1);
	--tbp-ease-out: cubic-bezier(0.4, 0, 0.2, 1);
	--tbp-dur-fast: 120ms;
	--tbp-dur-base: 200ms;
	--tbp-dur-slow: 320ms;

	/* --- シャドウ --- */
	--tbp-shadow-xs:   0 1px 2px rgba(15, 23, 42, 0.04);
	--tbp-shadow-sm:   0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
	--tbp-shadow-md:   0 4px 8px rgba(11, 61, 145, 0.08), 0 2px 4px rgba(11, 61, 145, 0.04);
	--tbp-shadow-lg:   0 12px 24px rgba(15, 23, 42, 0.10), 0 4px 8px rgba(15, 23, 42, 0.06);
	--tbp-shadow-gold: 0 4px 12px rgba(255, 184, 0, 0.25);
	--tbp-shadow-pink: 0 4px 12px rgba(255, 107, 157, 0.20);

	/* --- レイアウト --- */
	--tbp-radius-sm: 4px;
	--tbp-radius-md: 8px;
	--tbp-radius-lg: 12px;
	--tbp-radius-xl: 16px;
	--tbp-radius-pill: 999px;
}

/* 言語別フォント切替（html[lang]） */
html[lang="ja"]    .tbp-cal-root { font-family: var(--tbp-font-ja); }
html[lang^="zh-tw"]  .tbp-cal-root,
html[lang="zh-Hant"] .tbp-cal-root { font-family: var(--tbp-font-tc); }
html[lang="ko"]    .tbp-cal-root { font-family: var(--tbp-font-ko); }
html[lang="en"]    .tbp-cal-root,
html[lang^="en-"]  .tbp-cal-root { font-family: var(--tbp-font-en); }

/* ==========================================================================
   2. ルート・グローバル
   ========================================================================== */

.tbp-cal-root {
	box-sizing: border-box;
	font-family: var(--tbp-font-ja);
	font-size: var(--tbp-fs-base);
	line-height: 1.5;
	color: var(--tbp-text-primary);
	background: var(--tbp-bg);
	max-width: 1200px;
	margin: var(--tbp-sp-6) auto;
	padding: 0;
	border-radius: var(--tbp-radius-xl);
	box-shadow: var(--tbp-shadow-sm);
	overflow: hidden;
	position: relative;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	contain: layout style;
}
.tbp-cal-root *,
.tbp-cal-root *::before,
.tbp-cal-root *::after {
	box-sizing: border-box;
}
.tbp-cal-root button {
	font-family: inherit;
	color: inherit;
	cursor: pointer;
	background: transparent;
	border: 0;
	padding: 0;
}
.tbp-cal-root :focus-visible {
	outline: 3px solid var(--tbp-pink);
	outline-offset: 2px;
	border-radius: var(--tbp-radius-sm);
}

/* スクリーンリーダー用 hidden */
.tbp-cal-announcer {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.tbp-cal-noscript {
	padding: var(--tbp-sp-4);
	background: var(--tbp-lv5-bg);
	color: var(--tbp-lv5-text);
	border: 1px solid var(--tbp-lv5-border);
	border-radius: var(--tbp-radius-md);
	margin: var(--tbp-sp-4);
}

/* ==========================================================================
   3. ヘッダー（4-1. 月切替ヘッダー）
   ========================================================================== */

.tbp-cal-header {
	position: sticky;
	top: 0;
	z-index: 30;
	/* 2行構成（2026-05-09 stella要望）：
	   上段＝月切替ナビ（前矢印・年月選択・次矢印）
	   下段＝アクション（今月＋モードトグル）
	   モバイル/PC共通で縦並び維持。 */
	display: grid;
	grid-template-columns: auto 1fr auto;
	grid-template-rows: auto auto;
	row-gap: var(--tbp-sp-2);
	column-gap: var(--tbp-sp-2);
	align-items: center;
	justify-items: center;
	padding: var(--tbp-sp-3) var(--tbp-sp-4);
	background: linear-gradient(180deg, #FFFFFF 0%, #F8FAFC 100%);
	border-bottom: 1px solid var(--tbp-border);
	will-change: transform;
}
/* 上段（行1）：左から prev / title-block / next */
.tbp-cal-header .tbp-cal-nav-prev  { grid-row: 1; grid-column: 1; justify-self: end; }
.tbp-cal-header .tbp-cal-title-block { grid-row: 1; grid-column: 2; justify-self: center; }
.tbp-cal-header .tbp-cal-nav-next  { grid-row: 1; grid-column: 3; justify-self: start; }
/* 下段（行2）：今月＋モードトグルを横並び中央寄せ。
   gridの全カラムに横断するラッパが無いため、両者をflex調整で並べる。 */
.tbp-cal-header .tbp-cal-today {
	grid-row: 2;
	grid-column: 1 / 3;
	justify-self: end;
}
.tbp-cal-header .tbp-cal-mode-toggle {
	grid-row: 2;
	grid-column: 3 / 4;
	justify-self: start;
}

.tbp-cal-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--tbp-radius-pill);
	background: var(--tbp-surface);
	color: var(--tbp-navy);
	border: 1px solid var(--tbp-border);
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out),
	            color var(--tbp-dur-fast) var(--tbp-ease-out),
	            transform var(--tbp-dur-fast) var(--tbp-ease-out),
	            box-shadow var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-nav:hover {
	background: var(--tbp-navy);
	color: #FFFFFF;
	box-shadow: var(--tbp-shadow-md);
	transform: translateY(-1px);
}
.tbp-cal-nav:active {
	transform: translateY(0);
}
.tbp-cal-nav[disabled],
.tbp-cal-nav[aria-disabled="true"] {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}

.tbp-cal-title-block {
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
}
.tbp-cal-month-select-label {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.tbp-cal-title {
	position: relative;
	/* 垂直中央揃え修正（2026-05-09 stella要望）：
	   ホバー時の背景円と文字のズレを解消するため、
	   全子要素を inline-flex の baseline ではなく center で揃える。 */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--tbp-sp-1);
	padding: var(--tbp-sp-1) var(--tbp-sp-3);
	border-radius: var(--tbp-radius-pill);
	line-height: 1;
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-title:hover {
	background: var(--tbp-bg);
}
.tbp-cal-title-text {
	/* h2自身も中央揃えのフレックスにして、テキスト→ベースラインのズレを排除 */
	display: inline-flex;
	align-items: center;
	font-family: var(--tbp-font-num), var(--tbp-font-ja);
	font-size: var(--tbp-fs-xl);
	font-weight: 800;
	line-height: 1;
	color: var(--tbp-text-primary);
	margin: 0;
	letter-spacing: -0.01em;
	pointer-events: none;
	/* Cocoonテーマのh2デフォルト装飾を打ち消す */
	background: none !important;
	border: none !important;
	border-left: none !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.tbp-cal-title-text::before,
.tbp-cal-title-text::after {
	content: none !important;
	display: none !important;
}
.tbp-cal-title::after {
	content: "";
	display: inline-block;
	flex: none;
	width: 0;
	height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid var(--tbp-text-secondary);
	pointer-events: none;
	/* baselineではなくcenterで揃うように、インライン要素として高さ分だけ持つ */
	align-self: center;
	transition: transform var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-month-select {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
	font-size: var(--tbp-fs-md);
}

.tbp-cal-today {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--tbp-sp-2) var(--tbp-sp-3);
	background: var(--tbp-surface);
	color: var(--tbp-navy);
	font-size: var(--tbp-fs-base);
	font-weight: 700;
	border: 1px solid var(--tbp-border);
	border-radius: var(--tbp-radius-pill);
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out),
	            color var(--tbp-dur-fast) var(--tbp-ease-out),
	            border-color var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-today:hover {
	background: var(--tbp-navy);
	color: #FFFFFF;
	border-color: var(--tbp-navy);
}

.tbp-cal-mode-toggle {
	display: inline-flex;
	background: var(--tbp-bg);
	border: 1px solid var(--tbp-border);
	border-radius: var(--tbp-radius-pill);
	padding: 2px;
	gap: 0;
}
.tbp-cal-mode-btn {
	min-height: 40px;
	padding: var(--tbp-sp-1) var(--tbp-sp-3);
	font-size: var(--tbp-fs-base);
	font-weight: 600;
	color: var(--tbp-text-secondary);
	border-radius: var(--tbp-radius-pill);
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out),
	            color var(--tbp-dur-fast) var(--tbp-ease-out),
	            box-shadow var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-mode-btn.is-active {
	background: var(--tbp-navy);
	color: #FFFFFF;
	box-shadow: var(--tbp-shadow-sm);
}

/* ==========================================================================
   4. 凡例アコーディオン（4-2.）
   ========================================================================== */

.tbp-cal-legend {
	margin: 0;
	background: var(--tbp-surface);
	border-bottom: 1px solid var(--tbp-border);
}
.tbp-cal-legend-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tbp-sp-2);
	padding: var(--tbp-sp-3) var(--tbp-sp-4);
	min-height: 44px;
	cursor: pointer;
	list-style: none;
	font-size: var(--tbp-fs-base);
	font-weight: 600;
	color: var(--tbp-text-secondary);
	user-select: none;
}
.tbp-cal-legend-summary::-webkit-details-marker { display: none; }
.tbp-cal-legend-summary::marker { content: ""; }

.tbp-cal-legend-title {
	display: inline-flex;
	align-items: center;
	gap: var(--tbp-sp-2);
}
.tbp-cal-legend-title::before {
	content: "ⓘ";
	font-size: var(--tbp-fs-md);
	color: var(--tbp-navy);
}
.tbp-cal-legend-chevron {
	transition: transform var(--tbp-dur-base) var(--tbp-ease-out);
	color: var(--tbp-text-secondary);
}
.tbp-cal-legend[open] .tbp-cal-legend-chevron {
	transform: rotate(180deg);
}

.tbp-cal-legend-body {
	padding: 0 var(--tbp-sp-4) var(--tbp-sp-4);
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--tbp-sp-4);
}

.tbp-cal-legend-section {
	background: var(--tbp-bg);
	border-radius: var(--tbp-radius-md);
	padding: var(--tbp-sp-3);
}
.tbp-cal-legend-h {
	margin: 0 0 var(--tbp-sp-2);
	font-size: var(--tbp-fs-sm);
	font-weight: 700;
	color: var(--tbp-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.tbp-cal-legend-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: var(--tbp-sp-1) var(--tbp-sp-2);
}
.tbp-cal-legend-item {
	display: inline-flex;
	align-items: center;
	gap: var(--tbp-sp-1);
	font-size: var(--tbp-fs-sm);
	color: var(--tbp-text-primary);
	padding: 2px 0;
}
.tbp-cal-legend-emoji {
	font-family: var(--tbp-font-emoji);
	font-size: var(--tbp-fs-md);
	width: 20px;
	display: inline-flex;
	justify-content: center;
}
.tbp-cal-legend-lvl {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px; height: 20px;
	border-radius: 50%;
	font-family: var(--tbp-font-num);
	font-size: var(--tbp-fs-sm);
	font-weight: 700;
	color: #FFFFFF;
}
.tbp-lv-1 .tbp-cal-legend-lvl { background: var(--tbp-lv1-main); }
.tbp-lv-2 .tbp-cal-legend-lvl { background: var(--tbp-lv2-main); }
.tbp-lv-3 .tbp-cal-legend-lvl { background: var(--tbp-lv3-main); color: #FFFFFF; }
.tbp-lv-4 .tbp-cal-legend-lvl { background: var(--tbp-lv4-main); }
.tbp-lv-5 .tbp-cal-legend-lvl { background: var(--tbp-lv5-main); }

/* バッジ汎用 */
.tbp-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 18px;
	padding: 0 var(--tbp-sp-1);
	font-family: var(--tbp-font-ja);
	font-size: var(--tbp-fs-xs);
	font-weight: 700;
	border-radius: var(--tbp-radius-sm);
	line-height: 1;
}
.tbp-badge-past       { background: var(--tbp-st-past);       color: #FFFFFF; }
.tbp-badge-today      { background: var(--tbp-st-today);      color: var(--tbp-text-primary); }
.tbp-badge-future     { background: var(--tbp-st-future);     color: #FFFFFF; }
.tbp-badge-future-low { background: var(--tbp-st-future-low); color: #FFFFFF; }

/* ==========================================================================
   5. グリッド（4-3. カレンダーグリッド）
   ========================================================================== */

.tbp-cal-grid-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--tbp-sp-4);
	padding: var(--tbp-sp-4);
}

.tbp-cal-month {
	background: var(--tbp-surface);
	border-radius: var(--tbp-radius-md);
	overflow: hidden;
	border: 1px solid var(--tbp-border);
	display: flex;
	flex-direction: column;
}
.tbp-cal-month-head {
	padding: var(--tbp-sp-2) var(--tbp-sp-3);
	background: linear-gradient(135deg, var(--tbp-bg) 0%, var(--tbp-surface) 100%);
	border-bottom: 1px solid var(--tbp-border);
}
.tbp-cal-month-title {
	margin: 0;
	font-size: var(--tbp-fs-md);
	font-weight: 700;
	color: var(--tbp-text-primary);
	letter-spacing: -0.01em;
	text-align: center;
}

/* グリッド本体 */
.tbp-cal-grid {
	display: flex;
	flex-direction: column;
}
.tbp-cal-row-head {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	padding: var(--tbp-sp-1) var(--tbp-sp-1);
	background: var(--tbp-bg);
	border-bottom: 1px solid var(--tbp-border);
}
.tbp-cal-cell-head {
	text-align: center;
	font-size: var(--tbp-fs-sm);
	font-weight: 700;
	color: var(--tbp-text-secondary);
	padding: var(--tbp-sp-1) 0;
	letter-spacing: 0.05em;
}
.tbp-cal-cell-head.tbp-dow-sun { color: var(--tbp-dow-sun); }
.tbp-cal-cell-head.tbp-dow-sat { color: var(--tbp-dow-sat); }

.tbp-cal-body {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	padding: 2px;
}

/* ==========================================================================
   6. セル（4-4. 日セル：5要素）
   ========================================================================== */

.tbp-cal-cell {
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr auto;
	gap: 2px;
	padding: var(--tbp-sp-1);
	min-height: 64px;
	background: var(--tbp-surface);
	border: 1px solid var(--tbp-border);
	border-radius: var(--tbp-radius-sm);
	cursor: pointer;
	transition: transform var(--tbp-dur-base) var(--tbp-ease-out),
	            box-shadow var(--tbp-dur-base) var(--tbp-ease-out),
	            border-color var(--tbp-dur-base) var(--tbp-ease-out);
	overflow: hidden;
	text-align: left;
	width: 100%;
	font-family: inherit;
	font-size: inherit;
	color: inherit;
}
.tbp-cal-cell:hover {
	transform: translateY(-2px);
	box-shadow: var(--tbp-shadow-md);
	z-index: 2;
}
.tbp-cal-cell:active {
	transform: translateY(0);
}

/* 空セル（前後月） */
.tbp-cal-cell.tbp-empty {
	cursor: default;
	background: transparent;
	border-color: transparent;
	pointer-events: none;
}
.tbp-cal-cell.tbp-empty:hover {
	transform: none;
	box-shadow: none;
}

/* 日付ヘッダ */
.tbp-cell-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2px;
	min-height: 18px;
}
.tbp-cell-date {
	font-family: var(--tbp-font-num);
	font-size: var(--tbp-fs-lg);
	font-weight: 700;
	line-height: 1;
	color: var(--tbp-text-primary);
	letter-spacing: -0.02em;
}
.tbp-cal-cell.tbp-dow-sun .tbp-cell-date { color: var(--tbp-dow-sun); }
.tbp-cal-cell.tbp-dow-sat .tbp-cell-date { color: var(--tbp-dow-sat); }
.tbp-cal-cell.tbp-holiday .tbp-cell-date { color: var(--tbp-dow-sun); }

/* 天気部 */
.tbp-cell-weather {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 1px;
	font-size: var(--tbp-fs-xs);
	line-height: 1;
}
.tbp-cell-weather-emoji {
	font-family: var(--tbp-font-emoji);
	font-size: var(--tbp-fs-sm);
	line-height: 1;
}

/* 混雑度 */
.tbp-cell-level {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	flex: 1;
	min-height: 0;
}
.tbp-cell-level-emoji {
	font-family: var(--tbp-font-emoji);
	font-size: 18px;
	line-height: 1;
}
.tbp-cell-level-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	border-radius: 50%;
	font-family: var(--tbp-font-num);
	font-size: var(--tbp-fs-sm);
	font-weight: 700;
	color: #FFFFFF;
	line-height: 1;
	letter-spacing: 0;
}

/* イベント注記 */
.tbp-cell-event {
	font-size: var(--tbp-fs-xxs);
	font-weight: 600;
	color: var(--tbp-pink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.2;
	min-height: 11px;
}

/* 混雑度Lv 5段階：フラット塗り（視認性改善 2026-05-09 stella要望）
 * 旧：白→tint縦グラデ60→100% / 新：濃いめtintフラット
 * WCAG AAA：文字色 Slate 900 (#0F172A) でコントラスト確保
 */
.tbp-cal-cell.tbp-lv-1 {
	background: #BBF7D0;
	border-color: var(--tbp-lv1-border);
}
.tbp-cal-cell.tbp-lv-1 .tbp-cell-level-num { background: var(--tbp-lv1-main); }

.tbp-cal-cell.tbp-lv-2 {
	background: #D9F99D;
	border-color: var(--tbp-lv2-border);
}
.tbp-cal-cell.tbp-lv-2 .tbp-cell-level-num { background: var(--tbp-lv2-main); }

.tbp-cal-cell.tbp-lv-3 {
	background: #FDE68A;
	border-color: var(--tbp-lv3-border);
}
.tbp-cal-cell.tbp-lv-3 .tbp-cell-level-num { background: var(--tbp-lv3-main); color: #FFFFFF; }

.tbp-cal-cell.tbp-lv-4 {
	background: #FED7AA;
	border-color: var(--tbp-lv4-border);
}
.tbp-cal-cell.tbp-lv-4 .tbp-cell-level-num { background: var(--tbp-lv4-main); }

.tbp-cal-cell.tbp-lv-5 {
	background: #FECACA;
	border-color: var(--tbp-lv5-border);
}
.tbp-cal-cell.tbp-lv-5 .tbp-cell-level-num { background: var(--tbp-lv5-main); }

/* 状態：過去（実）→opacity 0.65 + grayscale */
.tbp-cal-cell.tbp-past {
	opacity: 0.65;
	filter: grayscale(0.4);
}
.tbp-cal-cell.tbp-past:hover {
	opacity: 0.85;
	filter: grayscale(0.2);
}

/* 状態：今日 → 金色pulse */
.tbp-cal-cell.tbp-today {
	border: 2px solid var(--tbp-gold);
	box-shadow: var(--tbp-shadow-gold);
	animation: tbp-today-pulse 4s ease-in-out infinite;
	z-index: 1;
}
@keyframes tbp-today-pulse {
	0%, 100% { box-shadow: var(--tbp-shadow-gold); }
	50%      { box-shadow: 0 6px 20px rgba(255, 184, 0, 0.45); }
}

/* 状態：未来1ヶ月超（低精度）→ dashed枠 */
.tbp-cal-cell.tbp-future-low {
	border-style: dashed;
	border-color: var(--tbp-border-future);
}

/* 状態バッジをセル内に */
.tbp-cell-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 16px;
	padding: 0 var(--tbp-sp-1);
	font-family: var(--tbp-font-ja);
	font-size: var(--tbp-fs-xxs);
	font-weight: 700;
	border-radius: 3px;
	line-height: 1;
}
.tbp-past .tbp-cell-badge       { background: var(--tbp-st-past);       color: #FFFFFF; }
.tbp-today .tbp-cell-badge      { background: var(--tbp-st-today);      color: var(--tbp-text-primary); }
.tbp-future .tbp-cell-badge     { background: var(--tbp-st-future);     color: #FFFFFF; }
.tbp-future-low .tbp-cell-badge { background: var(--tbp-st-future-low); color: #FFFFFF; }

/* イベントリボン（Sakura Pink） */
.tbp-cal-cell.tbp-has-event::before {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: 0;
	height: 0;
	border-left: 12px solid transparent;
	border-top: 12px solid var(--tbp-pink);
	pointer-events: none;
	z-index: 1;
}

/* 祝日下線 */
.tbp-cal-cell.tbp-holiday .tbp-cell-date {
	border-bottom: 2px solid var(--tbp-dow-sun);
	padding-bottom: 1px;
}

/* ==========================================================================
   7. スケルトン（ロード中）
   ========================================================================== */

.tbp-cal-cell.tbp-skeleton {
	background: linear-gradient(90deg, #F1F5F9 0%, #E2E8F0 50%, #F1F5F9 100%);
	background-size: 200% 100%;
	animation: tbp-shimmer 1.4s ease-in-out infinite;
	cursor: default;
	pointer-events: none;
	border-color: transparent;
}
@keyframes tbp-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

.tbp-cal-month.tbp-is-loading .tbp-cal-month-head {
	opacity: 0.6;
}

/* ==========================================================================
   8. エラー表示
   ========================================================================== */

.tbp-cal-error {
	padding: var(--tbp-sp-4);
	margin: var(--tbp-sp-2);
	background: var(--tbp-lv5-bg);
	color: var(--tbp-lv5-text);
	border: 1px solid var(--tbp-lv5-border);
	border-radius: var(--tbp-radius-md);
	text-align: center;
}
.tbp-cal-error-msg {
	margin: 0 0 var(--tbp-sp-2);
	font-size: var(--tbp-fs-base);
	font-weight: 600;
}
.tbp-cal-error-retry {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: var(--tbp-sp-2) var(--tbp-sp-4);
	background: var(--tbp-navy);
	color: #FFFFFF;
	font-size: var(--tbp-fs-base);
	font-weight: 700;
	border-radius: var(--tbp-radius-pill);
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-error-retry:hover {
	background: var(--tbp-navy-dark);
}

/* ==========================================================================
   9. 詳細モーダル（4-5. dialog要素）
   ========================================================================== */

.tbp-cal-dialog {
	width: min(560px, 92vw);
	max-height: 90vh;
	padding: 0;
	margin: auto;
	border: 0;
	border-radius: var(--tbp-radius-lg);
	background: var(--tbp-surface);
	color: var(--tbp-text-primary);
	box-shadow: var(--tbp-shadow-lg);
	overflow: hidden;
}
.tbp-cal-dialog::backdrop {
	background: rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}
.tbp-cal-dialog[open] {
	animation: tbp-modal-in var(--tbp-dur-slow) var(--tbp-ease) forwards;
}
@keyframes tbp-modal-in {
	from { opacity: 0; transform: translateY(20px) scale(0.96); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

.tbp-cal-dialog-inner {
	display: flex;
	flex-direction: column;
	max-height: 90vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.tbp-cal-dialog-close {
	position: absolute;
	top: var(--tbp-sp-2);
	right: var(--tbp-sp-2);
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.85);
	color: var(--tbp-text-primary);
	border-radius: 50%;
	z-index: 5;
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-dialog-close:hover {
	background: #FFFFFF;
}

/* hero（混雑度色のlinear-gradient 135°） */
.tbp-cal-dialog-hero {
	padding: var(--tbp-sp-6) var(--tbp-sp-4) var(--tbp-sp-4);
	color: #FFFFFF;
	position: relative;
	background: linear-gradient(135deg, var(--tbp-navy) 0%, var(--tbp-navy-dark) 100%);
}
.tbp-cal-dialog[data-tbp-lv="1"] .tbp-cal-dialog-hero { background: linear-gradient(135deg, var(--tbp-lv1-main) 0%, #15803D 100%); }
.tbp-cal-dialog[data-tbp-lv="2"] .tbp-cal-dialog-hero { background: linear-gradient(135deg, var(--tbp-lv2-main) 0%, #4D7C0F 100%); }
.tbp-cal-dialog[data-tbp-lv="3"] .tbp-cal-dialog-hero { background: linear-gradient(135deg, var(--tbp-lv3-main) 0%, #B45309 100%); }
.tbp-cal-dialog[data-tbp-lv="4"] .tbp-cal-dialog-hero { background: linear-gradient(135deg, var(--tbp-lv4-main) 0%, #C2410C 100%); }
.tbp-cal-dialog[data-tbp-lv="5"] .tbp-cal-dialog-hero { background: linear-gradient(135deg, var(--tbp-lv5-main) 0%, #B91C1C 100%); }

.tbp-cal-dialog-hero-date {
	display: flex;
	align-items: baseline;
	gap: var(--tbp-sp-2);
	margin-bottom: var(--tbp-sp-2);
}
.tbp-cal-dialog-hero-md {
	font-family: var(--tbp-font-num);
	font-size: var(--tbp-fs-2xl);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}
.tbp-cal-dialog-hero-dow {
	font-size: var(--tbp-fs-md);
	font-weight: 600;
	opacity: 0.85;
}

.tbp-cal-dialog-hero-level {
	display: flex;
	align-items: center;
	gap: var(--tbp-sp-2);
	margin-bottom: var(--tbp-sp-2);
}
.tbp-cal-dialog-hero-emoji {
	font-family: var(--tbp-font-emoji);
	font-size: 32px;
	line-height: 1;
}
.tbp-cal-dialog-hero-lvlnum {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.25);
	font-family: var(--tbp-font-num);
	font-size: var(--tbp-fs-md);
	font-weight: 800;
	color: #FFFFFF;
}
.tbp-cal-dialog-hero-lvltext {
	font-size: var(--tbp-fs-md);
	font-weight: 700;
}

.tbp-cal-dialog-hero-title {
	margin: 0;
	font-size: var(--tbp-fs-lg);
	font-weight: 700;
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.92);
}
.tbp-cal-dialog-hero-title:empty { display: none; }

/* stats grid */
.tbp-cal-dialog-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: var(--tbp-border);
	margin: 0;
	padding: 0;
}
.tbp-cal-stat {
	background: var(--tbp-surface);
	padding: var(--tbp-sp-3);
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tbp-cal-stat-label {
	font-size: var(--tbp-fs-xs);
	font-weight: 600;
	color: var(--tbp-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.tbp-cal-stat-value {
	font-family: var(--tbp-font-num), var(--tbp-font-ja);
	font-size: var(--tbp-fs-md);
	font-weight: 700;
	color: var(--tbp-text-primary);
	display: flex;
	align-items: center;
	gap: var(--tbp-sp-1);
}

/* event/basis */
.tbp-cal-dialog-events,
.tbp-cal-dialog-basis {
	padding: var(--tbp-sp-4);
	background: var(--tbp-bg);
}
.tbp-cal-dialog-section-h {
	margin: 0 0 var(--tbp-sp-2);
	font-size: var(--tbp-fs-sm);
	font-weight: 700;
	color: var(--tbp-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.tbp-cal-dialog-event-text {
	margin: 0;
	font-size: var(--tbp-fs-base);
	line-height: 1.65;
	color: var(--tbp-text-primary);
}
.tbp-cal-dialog-basis-list {
	margin: 0;
	padding-left: var(--tbp-sp-4);
	font-size: var(--tbp-fs-sm);
	color: var(--tbp-text-secondary);
	line-height: 1.6;
}
.tbp-cal-dialog-basis-list li {
	margin-bottom: var(--tbp-sp-1);
}

/* footer (prev/next) */
.tbp-cal-dialog-footer {
	display: flex;
	gap: var(--tbp-sp-2);
	padding: var(--tbp-sp-3) var(--tbp-sp-4);
	border-top: 1px solid var(--tbp-border);
	background: var(--tbp-surface);
}
.tbp-cal-dialog-prev,
.tbp-cal-dialog-next {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--tbp-sp-1);
	min-height: 44px;
	padding: var(--tbp-sp-2) var(--tbp-sp-3);
	background: var(--tbp-bg);
	color: var(--tbp-navy);
	font-size: var(--tbp-fs-base);
	font-weight: 700;
	border-radius: var(--tbp-radius-pill);
	border: 1px solid var(--tbp-border);
	transition: background-color var(--tbp-dur-fast) var(--tbp-ease-out),
	            color var(--tbp-dur-fast) var(--tbp-ease-out);
}
.tbp-cal-dialog-prev:hover,
.tbp-cal-dialog-next:hover {
	background: var(--tbp-navy);
	color: #FFFFFF;
}

/* ==========================================================================
   10. アニメーション（月切替slide）
   ========================================================================== */

.tbp-cal-month.tbp-is-leaving-left  { animation: tbp-slide-out-left  var(--tbp-dur-base) var(--tbp-ease-out) forwards; }
.tbp-cal-month.tbp-is-leaving-right { animation: tbp-slide-out-right var(--tbp-dur-base) var(--tbp-ease-out) forwards; }
.tbp-cal-month.tbp-is-entering-left  { animation: tbp-slide-in-left  var(--tbp-dur-base) var(--tbp-ease-out) forwards; }
.tbp-cal-month.tbp-is-entering-right { animation: tbp-slide-in-right var(--tbp-dur-base) var(--tbp-ease-out) forwards; }

@keyframes tbp-slide-out-left  { from { opacity: 1; transform: translateX(0); }    to { opacity: 0; transform: translateX(-24px); } }
@keyframes tbp-slide-out-right { from { opacity: 1; transform: translateX(0); }    to { opacity: 0; transform: translateX(24px); } }
@keyframes tbp-slide-in-left   { from { opacity: 0; transform: translateX(24px); }  to { opacity: 1; transform: translateX(0); } }
@keyframes tbp-slide-in-right  { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: translateX(0); } }

@keyframes tbp-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.tbp-cal-month.tbp-is-loaded .tbp-cal-body {
	animation: tbp-fade-in var(--tbp-dur-base) var(--tbp-ease-out);
}

/* ==========================================================================
   11. レスポンシブ
   ========================================================================== */

/* mobile（≤640px） */
@media (max-width: 640px) {
	.tbp-cal-root {
		margin: var(--tbp-sp-3) 0;
		border-radius: 0;
	}
	.tbp-cal-header {
		/* 基本ルールの2行構成を踏襲し、モバイル向けに余白だけ詰める。
		   行1=prev/title/next、行2=today/mode-toggle はそのまま。 */
		row-gap: var(--tbp-sp-1);
		column-gap: var(--tbp-sp-1);
		padding: var(--tbp-sp-2) var(--tbp-sp-3);
	}
	.tbp-cal-title-text { font-size: var(--tbp-fs-lg); }
	.tbp-cal-grid-wrap { padding: var(--tbp-sp-2); gap: var(--tbp-sp-3); }
	.tbp-cal-grid-wrap[data-mode="3m"] { grid-template-columns: 1fr; }
}

/* tablet（641-1023px） */
@media (min-width: 641px) and (max-width: 1023px) {
	.tbp-cal-cell { min-height: 76px; }
	.tbp-cal-grid-wrap[data-mode="3m"] { grid-template-columns: 1fr 1fr; }
	.tbp-cell-date { font-size: 20px; }
}

/* desktop（≥1024px） */
@media (min-width: 1024px) {
	.tbp-cal-cell { min-height: 84px; }
	.tbp-cal-grid-wrap[data-mode="3m"] { grid-template-columns: 1fr 1fr 1fr; }
	.tbp-cal-grid-wrap { padding: var(--tbp-sp-5); }
	.tbp-cell-date { font-size: 20px; }
	.tbp-cell-level-emoji { font-size: 22px; }
	.tbp-cal-legend-body { grid-template-columns: 1fr 1fr 1fr; }
}

/* 大画面（≥1280px） 1ヶ月モード */
@media (min-width: 1280px) {
	.tbp-cal-grid-wrap[data-mode="1m"] {
		max-width: 960px;
		margin: 0 auto;
	}
}

/* iPhone SE等（≤380px） */
@media (max-width: 380px) {
	.tbp-cal-cell { min-height: 56px; padding: 3px; }
	.tbp-cell-date { font-size: 14px; }
	.tbp-cell-level-emoji { font-size: 14px; }
	.tbp-cell-level-num { min-width: 16px; height: 16px; font-size: 9px; }
	.tbp-cell-event { font-size: 8px; }
	.tbp-cell-weather-emoji { font-size: 9px; }
	.tbp-cell-badge { font-size: 8px; min-width: 16px; height: 14px; }
	.tbp-cal-cell.tbp-has-event::before {
		border-left-width: 9px;
		border-top-width: 9px;
	}
	.tbp-cal-month-title { font-size: var(--tbp-fs-base); }
	.tbp-cal-title-text { font-size: var(--tbp-fs-md); }
	.tbp-cal-header { padding: var(--tbp-sp-2); }
	.tbp-cal-nav { width: 40px; height: 40px; }
}

/* ==========================================================================
   12. アクセシビリティ：prefers-reduced-motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.tbp-cal-root *,
	.tbp-cal-root *::before,
	.tbp-cal-root *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.tbp-cal-cell.tbp-today { animation: none; }
}

/* ==========================================================================
   13. プリント
   ========================================================================== */

@media print {
	.tbp-cal-header,
	.tbp-cal-mode-toggle,
	.tbp-cal-today,
	.tbp-cal-nav,
	.tbp-cal-dialog,
	.tbp-cal-error-retry {
		display: none !important;
	}
	.tbp-cal-root {
		box-shadow: none;
		border: 1px solid #000;
		page-break-inside: avoid;
	}
	.tbp-cal-cell {
		border: 1px solid #999 !important;
		break-inside: avoid;
	}
	.tbp-cal-cell.tbp-today { animation: none !important; }
}

/* ==========================================================================
   14. ハイコントラスト（forced-colors）対応
   ========================================================================== */

@media (forced-colors: active) {
	.tbp-cal-cell {
		border: 1px solid CanvasText;
	}
	.tbp-cal-cell.tbp-today {
		outline: 3px solid Highlight;
	}
	.tbp-badge,
	.tbp-cell-badge,
	.tbp-cell-level-num {
		forced-color-adjust: none;
	}
}

/* ==========================================================================
   15. 多言語微調整
   ========================================================================== */

.tbp-cell-event {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
html[lang="ko"] .tbp-cell-date { letter-spacing: -0.02em; }
html[lang^="zh-tw"] .tbp-cell-event,
html[lang="zh-Hant"] .tbp-cell-event { font-feature-settings: "palt"; }

/* font-display: swap は wp_register_script 側 + フォントローダで対応するが、
   念のためここでも明示。 */
@supports (font-display: swap) {
	.tbp-cal-root { font-display: swap; }
}

/* ==========================================================================
   16. Cocoon自動目次の非表示（カレンダーページ）
   --------------------------------------------------------------------------
   shortcode を含むページでは目次を表示しない。
   カレンダー内 h3 を Cocoon TOC が拾って意味不明な目次を生成する問題への対応。
   複数セレクタで包括的にカバー（CocoonのTOC実装に依存しない）。
   :has() は Safari 15.4+, Chrome 105+, Firefox 121+ で対応。
   ========================================================================== */

.crowd-calendar-2026-06 .toc,
body.page-id-26 .toc,
.toc:has(+ .tbp-cal-root),
body:has(.tbp-cal-root) .toc {
	display: none !important;
}

/* ==========================================================================
   17. テーマh2/h3デフォルト装飾の打ち消し（カレンダー内のみ）
   --------------------------------------------------------------------------
   Cocoon等のテーマがh2/h3にリボン・背景・border-leftを付ける場合の保険。
   `.tbp-cal-title::after` は h2 ではなく div に付与しているため、
   このセレクタの影響を受けない（ドロップダウン矢印は維持される）。
   ========================================================================== */

.tbp-cal-root h2,
.tbp-cal-root h3,
.tbp-cal-root h4 {
	background: none !important;
	border: none !important;
	border-left: none !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.tbp-cal-root h2::before,
.tbp-cal-root h2::after,
.tbp-cal-root h3::before,
.tbp-cal-root h3::after,
.tbp-cal-root h4::before,
.tbp-cal-root h4::after {
	content: none !important;
	display: none !important;
}

/* ==========================================================================
   予想・変動注意バナー（D1仕様 v1 / 2026-05-09）
   配置：.tbp-cal-root の最初の子要素（ヘッダー直上）
   要件：常時表示・折りたたみ不可・×ボタン禁止
   ========================================================================== */
.tbp-cal-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: var(--tbp-sp-2);
	margin: 0 0 var(--tbp-sp-3) 0;
	padding: var(--tbp-sp-3) var(--tbp-sp-4);
	background: var(--tbp-lv3-bg);
	border-left: 4px solid var(--tbp-gold);
	border-radius: var(--tbp-radius-md);
	box-shadow: var(--tbp-shadow-xs);
	font-family: var(--tbp-font-ja);
	/* 4言語切替時は html[lang="*"] body 側で上書き済み */
}

.tbp-cal-disclaimer-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	color: var(--tbp-gold-dark);
}

.tbp-cal-disclaimer-body {
	flex: 1 1 auto;
	min-width: 0;
}

.tbp-cal-disclaimer-title {
	margin: 0 0 var(--tbp-sp-1) 0;
	font-size: var(--tbp-fs-base);   /* 13px */
	font-weight: 700;
	line-height: 1.45;
	color: var(--tbp-lv3-text);      /* #78350F */
}

.tbp-cal-disclaimer-text {
	margin: 0;
	font-size: var(--tbp-fs-sm);     /* 11px */
	font-weight: 400;
	line-height: 1.55;
	color: var(--tbp-text-soft);     /* #4A5169 */
}

.tbp-cal-disclaimer-link {
	color: var(--tbp-navy);
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}

.tbp-cal-disclaimer-link:hover,
.tbp-cal-disclaimer-link:focus-visible {
	color: var(--tbp-navy-dark);
	text-decoration-thickness: 2px;
}

.tbp-cal-disclaimer-link:focus-visible {
	outline: 2px solid var(--tbp-navy);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ===== レスポンシブ ===== */
@media (max-width: 640px) {
	.tbp-cal-disclaimer {
		padding: var(--tbp-sp-2) var(--tbp-sp-3);
		gap: var(--tbp-sp-2);
		border-left-width: 3px;
	}
	.tbp-cal-disclaimer-title {
		font-size: var(--tbp-fs-base);  /* 13px維持・本文だけ縮小 */
	}
	.tbp-cal-disclaimer-text {
		font-size: var(--tbp-fs-sm);    /* 11px維持 */
		line-height: 1.6;               /* スマホでやや広めに */
	}
	.tbp-cal-disclaimer-icon {
		width: 18px;
		height: 18px;
	}
}

@media (min-width: 1024px) {
	.tbp-cal-disclaimer {
		padding: var(--tbp-sp-3) var(--tbp-sp-5);
	}
}

/* ===== ハイコントラストモード ===== */
@media (prefers-contrast: more) {
	.tbp-cal-disclaimer {
		border-left-width: 6px;
		background: #FFF8DC;
		box-shadow: none;
		outline: 1px solid var(--tbp-gold-dark);
	}
	.tbp-cal-disclaimer-title { color: #5A2800; }
	.tbp-cal-disclaimer-text { color: #1A1A1A; }
}

/* ===== prefers-reduced-motion ===== */
@media (prefers-reduced-motion: reduce) {
	.tbp-cal-disclaimer-link {
		transition: none;
	}
}

/* ===== ダークモード（将来対応・現状ライト固定だが布石） ===== */
@media (prefers-color-scheme: dark) {
	/* サイト全体がダーク対応した時に有効化。現状コメントアウト維持。 */
	/*
	.tbp-cal-disclaimer {
		background: rgba(255, 184, 0, 0.10);
		border-left-color: var(--tbp-gold);
	}
	.tbp-cal-disclaimer-title { color: #FCD34D; }
	.tbp-cal-disclaimer-text { color: #E2E8F0; }
	*/
}

/* ===== 印刷時 ===== */
@media print {
	.tbp-cal-disclaimer {
		background: transparent;
		border: 1px solid #999;
		box-shadow: none;
		page-break-inside: avoid;
	}
	.tbp-cal-disclaimer-link {
		color: #000;
		text-decoration: underline;
	}
	/* リンク先URLを印刷時に表示 */
	.tbp-cal-disclaimer-link::after {
		content: " (" attr(href) ")";
		font-size: 9px;
		color: #555;
	}
}
