@charset "UTF-8";

/* ============================================================
	ビジュアル
============================================================ */
#visual {
	position: relative;
}
#visual .photo {
	position: relative;
	max-width: 1920px;
	height: 640px;
	margin: 0 auto;
}
#visual .photo-img {
	width: 100%;
	height: 640px;
	background: no-repeat center / cover;
	-webkit-mask-image: url(../images-common/visual-mask-pc.svg);
	mask-image: url(../images-common/visual-mask-pc.svg);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
}
#visual .photo::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 640px;
	background: rgba(0, 0, 0, .2);
	-webkit-mask-image: url(../images-common/visual-mask-pc.svg);
	mask-image: url(../images-common/visual-mask-pc.svg);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
}
#visual .headline {
	position: absolute;
	top: 200px;
	left: 0;
	right: 0;
	width: 1200px;
	margin: 0 auto;
	color: #fff;
}
#visual .headline-sub {
	font-family: 'Cinzel', serif;
	font-size: 80px;
	letter-spacing: .05em;
}
#visual .headline-main {
	margin-top: 10px;
	font-size: 16px;
	letter-spacing: .2em;
}


/* ============================================================
	案内
============================================================ */
#guide {
	padding: 100px 0 160px;
}
#guide .message {
	width: 1200px;
	margin: 0 auto;
}
#guide .message-text {
	text-align: center;
	letter-spacing: .2em;
	line-height: 2;
}
#guide .button {
	margin-top: 50px;
}
#guide .button-a {
	display: block;
	width: 640px;
	height: 100px;
	margin: 0 auto;
	line-height: 100px;
	background: #336699;
	background: linear-gradient(to right, #55576c 0%, #336699 50%, #006699 100%);
	font-size: 28px;
	color: #fff;
	text-align: center;
	text-indent: .2em;
	letter-spacing: .2em;
}


/* ============================================================
	カレンダー
============================================================ */
#calendar {
	padding: 120px 0;
	background: #e6ecec;
}
#calendar .headline {
	width: 1200px;
	margin: 0 auto;
	padding-bottom: 80px;
	border-bottom: solid 1px #999;
}
#calendar .headline-sub {
	position: relative;
	display: inline-block;
	font-size: 20px;
	color: #999;
	letter-spacing: .2em;
}
#calendar .headline-sub::before {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: -110px;
	width: 100px;
	height: 1px;
	background: #999;
}
#calendar .headline-main {
	margin-top: 20px;
	font-size: 56px;
	letter-spacing: .1em;
}
#calendar .headline-desc {
	margin-top: 70px;
	letter-spacing: .2em;
	line-height: 2;
}
#calendar .check {
	width: 1200px;
	margin: 60px auto 0;
	text-align: center;
}
#calendar .check-status {
	display: inline-block;
	margin-right: 20px;
	font-size: 24px;
}
#calendar .check-status-n1,
#calendar .check-status-n2,
#calendar .check-status-n3 {
	margin-right: 6px;
	font-weight: 900;
}
#calendar .check-status-n1 {
	color: #17499d;
}
#calendar .check-status-n2 {
	color: #ff9933;
}
#calendar .check-status-n3 {
	color: #c1272d;
}
#calendar .month {
	margin-top: 40px;
}
#calendar .month-ul {
	width: 1040px;
	margin: 0 auto;
}
#calendar .month-li {
	width: 100%;
}
#calendar .month-li:not(:first-of-type) {
	margin-top: 40px;
}
#calendar .month-name {
	position: relative;
	width: 1040px;
	height: 80px;
	line-height: 80px;
	background: #fff;
	font-size: 32px;
	text-align: center;
	letter-spacing: .2em;
	text-indent: .2em;
	cursor: pointer;
}
#calendar .month-i {
	display: block;
	position: absolute;
	top: 30px;
	right: 30px;
	width: 20px;
	height: 20px;
	transition: .5s;
}
#calendar .month-i::before,
#calendar .month-i::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 20px;
	height: 2px;
	background: #000;
	margin: auto;
	transition: .5s;
	transition-delay: .5s;
}
#calendar .month-i::after {
	transform: rotate(90deg);
}
#calendar .month-i.is-active {
	transform: rotate(90deg);
}
#calendar .month-i.is-active::before {
	transition-delay: .5s;
	left: 10px;
	opacity: 0;
}
#calendar .month-data {
	display: none;
}
#calendar .month-data table {
	background: #fff;
}
#calendar .month-data tr {
	border-top: solid 2px #e6ecec;
}
#calendar .month-data td {
	border-left: solid 2px #e6ecec;
}
#calendar .month-data-day {
	width: 200px;
	font-size: 32px;
	text-align: center;
	vertical-align: middle;
}
#calendar .month-data-day-week {
	display: block;
	margin-top: 4px;
	font-size: 18px;
	color: #666;
}
#calendar .month-data-day-week.sat {
	color: #336699;
}
#calendar .month-data-day-week.sun {
	color: #cc6666;
}
#calendar .month-data-status {
	width: 200px;
	color: #c1272d;
	font-size: 36px;
	text-align: center;
	vertical-align: middle;
}
#calendar .month-data-status a {
	font-weight: 900;
	text-decoration: underline;
}
#calendar .month-data-status .status-n1 {
	color: #17499d;
}
#calendar .month-data-status .status-n2 {
	color: #ff9933;
}
#calendar .month-data-desc {
	width: 640px;
	color: #666;
	letter-spacing: .2em;
	line-height: 2;
	padding: 26px 20px;
}

/*------------------------------
	カレンダー（管理）
------------------------------ */
input[type=submit] {
	-webkit-appearance: none;
	border-radius: 0;
}
input[type=text] {
	font-size : 18px;
	border-radius: 0;
	-webkit-border-radius : 0;
	-webkit-appearance : none;
	-webkit-tap-highlight-color : rgba(0,0,0,0);
}
input,textarea {
	box-sizing: border-box;
	border-radius: 0;
	-webkit-border-radius : 0;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-webkit-appearance: none;
	max-width: 100%;
}
#calendar .month-data-status-select {
	border: solid 1px #ccc;
	padding: 10px 20px;
	font-size: 32px;
	cursor: pointer;
}
#calendar .month-data-desc-input {
	font: 18px / 1 'Shippori Mincho', 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	border: solid 1px #ccc;
	margin-top: -7px;
	padding: 1px 6px 3px;
	width: 270px;
	letter-spacing: .2em;
}
#calendar .month-button {
	margin-top: 60px;
}
#calendar .month-button-update {
	font: 20px / 1 'Shippori Mincho', 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	position: relative;
	display: block;
	width: 280px;
	height: 80px;
	margin: 0 auto;
	line-height: 80px;
	background: #336699;
	border: none;
	color: #fff;
	text-align: center;
	text-indent: .2em;
	letter-spacing: .2em;
	cursor: pointer;
}
