:root{
	--logo-deep-red:#7A1117;     /* ロゴ単色 */
	--grid-border:#6b3d3d;       /* 罫線色 */
}

body {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* ===== レイアウト（左：年/月/ロゴ｜右：テーブル） ===== */
.cal-board{
	position:relative;
	overflow:hidden;
	width:54vw;
	margin:0 auto;
	display:grid;
	grid-template-columns:10vw 1fr;
	gap:1vh;
	background:#9d2128;
	padding:6vh 3vw 4.6vh 1vw;
	border-radius:0;
	box-shadow:0 3px 24px rgba(128,0,0,.3);
}
.cal-side{
	position:relative;
	display:flex;
	flex-direction:column;
	color:#fff;
	padding:0 1.3vw;
	margin-top:2.4vh;
}
.cal-year,.cal-month{
	text-align:right;
	align-self:flex-end;
}
.cal-year{font-weight:700;font-size:2.8vw;line-height:1;letter-spacing:.02em;}
.cal-month{font-weight:700;font-size:6vw;line-height:.9;margin-top:.4vh;}
.cal-year-ghost{display:none;}
.cal-logo{position:relative;z-index:0;margin-top:auto;}
.cal-logo img{pointer-events:none;width:13.5vw;margin-left:-1.4vw;margin-bottom:-10vh;height:auto;display:block;transform:rotate(-14deg);transform-origin:left bottom;opacity:0;}
.cal-logo::after{
	content:"";position:absolute;left:-1.4vw;bottom:-10vh;width:13.5vw;aspect-ratio:1/1;background-color:var(--logo-deep-red);
	-webkit-mask-image:url("../images/logo/logo-only.svg");mask-image:url("../images/logo/logo-only.svg");
	-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
	-webkit-mask-position:center;mask-position:center;
	-webkit-mask-size:contain;mask-size:contain;
	transform:rotate(-14deg);transform-origin:left bottom;pointer-events:none;
}
.cal-main{position:relative;z-index:2;background:transparent;padding:0;border-radius:0;}

/* ===== カレンダーテーブル ===== */
.calendar{
	border-collapse:collapse;
	width:100%;
	background:#f5efec;
	border:1px solid var(--grid-border); /* 外枠 */
	table-layout:fixed;
}
.calendar thead th{
	background:#fff;border:1px solid var(--grid-border);
	font-weight:600;text-align:center;padding:1vh 0;font-size:0.9vw;color:#333;
}
.calendar thead th.sun{color:#d32f2f;}
.calendar thead th.sat{color:#1565c0;}

.calendar td{
	background:#fff;border:1px solid var(--grid-border);
	text-align:center;vertical-align:top;padding:.4vw;height:10.2vh;
}
.calendar td.adjacent .day,.calendar td.adjacent .note{color:#b9bec3;font-weight:500;}
.calendar tbody tr td:nth-child(1):not(.adjacent) .day{color:#d32f2f;}
.calendar tbody tr td:nth-child(7):not(.adjacent) .day{color:#1565c0;}

.calendar .day{font-size:1vw;font-weight:700;margin-bottom:.8vh;}

/* —— 注記の色分け（デフォルト黒 → 市役所=緑／休=赤） */
.calendar .note{font-size:.8vw;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere;margin-top:1.8vh;color:#000;}
.calendar .note.note-city{color:rgb(0, 198, 0);}     /* 市役所 */
.calendar .note.note-holiday{color:#e60000;}  /* 休 */

.calendar td.is-closed,
.calendar td.is-holiday{background:#ffe5e5;}

/* フッター */
.cal-foot{position:relative;z-index:2;text-align:center;width:100%;margin-top:3.4vh;font-size:1vw;color:#ffe5e5;}

/* 画像保存時の微調整 */
.cal-save{display:none!important;}
.capture .cal-save{display:none!important;}
.capture .cal-logo{visibility:hidden!important;}
.capture .calendar{border-width:0.6px;}
.capture .calendar thead th,.capture .calendar td{border-width:0.6px;}

/* ===== Responsive（～900px） ===== */
@media (max-width:900px){
	.cal-board{width:88vw;grid-template-columns:1fr;gap:1.2vh;padding:1.8vh 3vw 2vh;box-shadow:none;}
	.cal-side{grid-row:1;flex-direction:row;justify-content:center;align-items:baseline;gap:3.2vw;padding:0;margin:0;text-align:center;}
	.cal-year,.cal-year-ghost{font-size:4.8vw;line-height:1;flex:0 0 auto;}
	.cal-year-ghost{display:block;visibility:hidden;}
	.cal-month{font-size:9vw;line-height:1;margin:0;transform:translateY(0.05em);}
	.cal-logo{display:block;position:absolute;top:-2.4vh;right:.4vw;z-index:2;pointer-events:none;width:16.6vw;aspect-ratio:1/1;}
	.cal-logo img{display:none;}
	.cal-logo::after{inset:0;width:100%;height:100%;transform:rotate(-14deg);transform-origin:top right;}
	.cal-main{grid-row:2;margin-top:.6vh;}

	.calendar{border-collapse:collapse;width:100%;table-layout:fixed;}
	.calendar thead th{padding:.6vh 0;font-size:2.8vw;}
	.calendar td{padding:.4vh .8vw .7vh;height:5vh;}
	.calendar .day{font-size:2.8vw;margin-bottom:0;}
	.calendar .note{font-size:2vw;margin:.8vh 0 1.2vh;}
	.cal-foot{margin-top:1.7vh;font-size:2.6vw;text-align:center;}

	/* 罫線やや細め */
	.calendar,.calendar thead th,.calendar td{border-width:1px;}
}
