@charset "utf-8";

/* dragons calendar */
#u_point.calendar .l-content {
	margin-bottom: 30px;
}
.calendar {
	background: url(../../images/u_point/dragons/calendar/bg_dragons.png) center top;
}
.calendar .schedule {
	margin-top: 30px;
}
.calendar .schedule .white_frame {
	border-radius: 20px;
	background-color: #fff;
	padding: 15px;
	margin: 0 -15px;
}

.calendar .scroll-hint-icon,
.calendar .scroll-hint-text {
	z-index: 10;
}

.calendar .scroll-inner {
	width: 100%;
}

.calendar .cmn_table {
	display: block;
	white-space: nowrap;
	position: relative;
	width: min-content;
	margin-top: 15px;
}
.calendar .cmn_table tbody {
	position: relative;
}
.calendar .cmn_table tbody::after {
	content: "";
	position: absolute;
	top: 0;
	left: -150px;
	width: calc(100% + 150px);
	height: 1px;
	background: var(--UCS-Yellow);
	z-index: 10;
}
.calendar .cmn_table th,
.calendar .cmn_table td {
	min-width: 51px;
	position: relative;
	z-index: 1;
}

.calendar .cmn_table th {
	vertical-align: middle;
}
.calendar .cmn_table thead + tbody tr:first-child td {
	border-top: 2px solid var(--UCS-Yellow);
}
.calendar .cmn_table td {
	text-align: center;
	vertical-align: middle;
}
.calendar .cmn_table td:first-of-type {
	vertical-align: top;
}
.calendar .cmn_table thead tr:nth-child(n + 2) th {
	border-top: 1px solid var(--UCS-Yellow);
	border-left: 1px solid var(--UCS-Yellow);
}

.calendar .cmn_table td.month {
	font-size: 2.2rem;
	font-weight: 700;
}

.calendar .cmn_table .is-sticky {
	position: relative;
	position: sticky;
	z-index: 10;
	width: 50px;
}

.calendar .cmn_table th.is-sticky {
	border-right: 1px solid var(--UCS-Yellow);
}

.calendar .cmn_table th.is-sticky::after {
	content: "";
	position: absolute;
	top: 0;
	right: -1px;
	bottom: 0;
	width: 1px;
	background-color: var(--UCS-Yellow);
}

.calendar .cmn_table td.is-sticky {
	background: #fff;
	border-right: 1px solid var(--UCS-Gray-2);
}

.calendar .cmn_table td::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	outline: 1px solid var(--UCS-Gray-2);
}
.calendar .cmn_table .is-sticky--1 {
	left: -1px;
}

.calendar .cmn_table .is-sticky--2 {
	left: 49px;
}

.calendar .cmn_table .is-sticky--3 {
	left: 99px;
}

/* ヘッダーは本文より上に */
.calendar .cmn_table thead .is-sticky {
	z-index: 4;
}

.calendar .cmn_table td.is-saturday {
	color: var(--UCS-LightBlue);
	background: #eaf4fd;
}

.calendar .cmn_table td.is-sunday,
.calendar .cmn_table td.is-holiday {
	color: var(--UCS-Pink);
	background: #ffeff2;
}

.calendar .reception_status {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-top: 30px;
	font-size: 1.2rem;
	line-height: 2;
	font-feature-settings: normal;
}

.calendar .reception_status time {
	color: var(--UCS-Gray-1);
	font-size: 1.4rem;
	font-weight: 400;
}

.calendar .mark {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	margin-top: -2px;
}
.calendar .circle {
	width: 1em;
	height: 1em;
	background-color: var(--UCS-LightBlue);
	border-radius: 50%;
}
.calendar .circle::after {
	display: block;
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	margin: auto;
	background-color: #fff;
	border-radius: 50%;
}
.calendar .triangle {
	--w: 1em; /*背面にくる正三角形の横幅*/
	position: relative;
	width: var(--w);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	aspect-ratio: 1 / cos(30deg);
	background-color: var(--UCS-Orange); /*枠線の色*/
}
.calendar .triangle::after {
	--b: 2px; /*枠線の太さ*/
	display: block;
	content: "";
	position: absolute;
	bottom: var(--b);
	left: 50%;
	transform: translateX(-50%);
	width: calc(var(--w) - calc(2 * var(--b) * sqrt(3)));
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	aspect-ratio: 1 / cos(30deg);
	background-color: #fff; /*正三角形の色*/
}
.calendar .cross {
	width: 1em;
	height: 1em;
}
.calendar .cross::before,
.calendar .cross::after {
	display: block;
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 1em;
	height: 1px;
	margin: auto;
	background-color: var(--UCS-Black);
}
.cross::before {
	transform: rotate(45deg);
}
.cross::after {
	transform: rotate(-45deg);
}

@media (min-width: 768px) {
	#u_point.calendar .l-content {
		margin-top: 70px !important;
		margin-bottom: 60px;
	}
	.calendar .schedule {
		margin-top: 60px;
	}
	.calendar .schedule .white_frame {
		padding: 30px;
		margin: 0;
	}
	.calendar .reception_status {
		font-size: 1.6rem;
		line-height: 2;
		margin-top: 40px;
		align-items: center;
	}
	.calendar .cmn_table {
		width: 100%;
	}
	.calendar .cmn_table th,
	.calendar .cmn_table td {
		min-width: 0;
		width: 500px;
	}
}
