@charset "utf-8";
/* CSS Document */
/* all */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');


html {}
body {
	font-family: "Zen Maru Gothic", serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1.8;
	color: #463a2e;
	letter-spacing: 0.025rem;
}
ul {
	padding: 0;
	margin: 0 0 0 0;
}
ul li {
	list-style: none;
	padding: 0.75rem 0;
}
header {
	border-top: 8px solid #99074E;
	position: relative;
}
button {
	display: none;
}
nav {
	margin-bottom: 30px;
	transform: translate(0%);
	background: transparent;
}
main {
	padding: 0 1rem;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: bold;
}
h1 {
	font-size: 2.5rem;
}
h2 {
	font-size: 1.25rem;
}
h3 {
	font-size: 1.25rem;
}
img {
	width: 100%;
	max-width: 100%;
	height: auto;
}
iframe {
	max-width: 100%;
}
a {
/*	color: #99074e;*/
	text-decoration: none;
	background-color: transparent;
}
footer {
	background: #99074E;
	padding: 0.5rem 1rem 0.8rem;
	color: #fff;
	text-align: center;
	margin-top: 40px;
}
/* container */
#head, #maincontainer, #foot {
	max-width: 1080px;
	margin: 0 auto;
}
#head, #maincontainer, .info {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
/* header */
#head {
	margin: 1rem auto 2rem;
	align-items: center;
}
.head-r {
	display: flex;
	align-items: center;
	font-weight: bold;
	color: #fff;
	margin-top: 20px;
}
.head-r > div:first-child {
	margin-right: 1rem;
	padding: 1rem 2rem;
	background: #ffad1e;
/*	border-bottom: 5px solid #e58319;*/
	border-radius: 8px;
}
.logo {
	max-width: 350px;
}
.telbox, #tel .res {
	padding-left: 2.5rem;
	position: relative;
	letter-spacing: 0.05rem;
}
.telbox:before,
#tel .res:before {
	position: absolute;
	content: "\f2a0";
	font-weight: 900;
	font-size: 1.5rem;
	font-family: "Font Awesome 6 Free";
	top: 50%;
	transform: translateY(-45%);
	left: 0;
	color: #fff;
}
#tel .res:before {
	left: 2rem;
}
#mail a {
	padding: 1rem 2rem 1rem 4.5rem;
	position: relative;
	display: inline-block;
	background: #ffad1e;
/*	border-bottom: 5px solid #e58319;*/
	border-radius: 8px;
}
#mail a:before {
	position: absolute;
	content: "\f0e0";
	font-weight: 900;
	font-size: 1.5rem;
	font-family: "Font Awesome 6 Free";
	top: 50%;
	transform: translateY(-50%);
	left: 2rem;
	color: #fff;
}
#mail a.res {
	padding: 1.5rem;
	padding-left: 4.5rem;
	color: #fff;
}
#mail a br {
	display: block;
	content: "";
	margin: -0.5rem 0;
}
#tel .res:before,
#mail a.res:before {
	color: #fff;
}
/*
#mail a span {
	display: inline-block;
	text-align: center;
}*/
#tel .res,
#mail .res {
	display: none;
}

/* main */
.left {
/*	max-width: 240px;*/
	width: 26%;
}
.left .sub_about {
	border-radius: 10px;
	background: #DA84A7;
	padding-bottom: 0.5rem;
}
.left .sub_about h3 {
	font-size: 1rem;
	padding-left: 1.5rem;
}
.left .sub_about h3:first-child {
	text-align: center;
	color: #fff;
	font-size: 1.25rem;
	padding: 1rem 0 0.8rem;
}
.left .sub_about h3:nth-child(n+2) {
	margin-top: 1rem;
	position: relative;
	color: #99074e;
}
.left .sub_about h3:nth-child(n+2):before {
	position: absolute;
	content: "\f138";
	font-weight: 900;
	font-size: 1rem;
	font-family: "Font Awesome 6 Free";
	top: 50%;
	transform: translateY(-50%);
	left: 0;
}
.left .sub_about .block {
	padding: 1rem 0.5rem 2rem;
	background: #fff;
	margin: 0 0.5rem;
	border-radius: 0 0 10px 10px;
}
.right {
	max-width: 810px;
	width: 70%;
}
.right h2 {
	margin-bottom: 0.75rem;
	position: relative;
	background: #DA84A7;
	color: #fff;
	padding: 0.5rem 1rem;
}
.right h2:after {
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 100%;
	height: 4px;
	background: ;
}

.m_visu, .block {
	margin-bottom: 2.25rem;
}
div.block:not(:last-child) {
	margin-bottom: 3rem;
}
/* table */
#time {
	width: 100%;
	border: 1px solid #FBF3F6;
	border-collapse: collapse;
}
#time tr th, #time tr td {
	text-align: center;
	vertical-align: middle;
}
#time tr th {
	background: #FBF3F6;
	padding: 15px 10px;
}
#time tr th + th {
	border-left: 1px solid #fff;
}
#time tr td {
	color: #333;
	padding: 5px 10px;
	border-bottom: 1px solid #FBF3F6;
	width: calc(80% / 7);
	line-height: 1.0;
}
#time tr td + td {
	border-left: 1px solid #FBF3F6;
}
#time tr td:first-of-type {
	width: 18%;
	font-size: 1.15rem;
	white-space: nowrap;
}
#time tr td .close, #time tr td .open, #time tr td .exception {
	min-width: 40px;
	min-height: 40px;
	max-width: 50px;
	max-height: 50px;
	display: inline-block;
	margin: 1% auto;
	position: relative;
}
#time tr td .close:before, #time tr td .close:after, #time tr td .open:before, #time tr td .exception:before, #time tr td .exception:after {
	display: inline-block;
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
}
#time tr td .close:before, #time tr td .close:after {
	width: 3px; 
	height: 23px; 
	background: #555;
	border-radius: 999px;
}
#time tr td .close:before {
	transform: translate(-50%, -50%) rotate(-45deg);
}
#time tr td .close:after {
	transform: translate(-50%, -50%) rotate(45deg);
}
#time tr td .open:before, #time tr td .exception:before, #time tr td .exception:after {
	transform: translate(-50%, -50%);
}
#time tr td .open:before, #time tr td .exception:before {
	width: 21px;
	height: 21px;
	border-radius: 9999px;
}
#time tr td .open:before {
	border: 3px solid #ea4335;
}
#time tr td .exception:before {
	border: 3px solid #ea4335;
}
#time tr td .exception:after {
	width: 10px;
	height: 10px;
	border: 3px solid #ea4335;
	border-radius: 9999px;
}
#time + p {
	margin: 1% auto 0;
	width: 100%;
	line-height: 2.0;
	text-align: left;
	font-size: 1.05rem;
	font-weight: 500;
}
#time + p .inline-b {
	margin-left: 2em;
}

/* ---------- top ---------- */
/* info */
.info div:first-child {
	width: 40%;
	display: inline-block;
	background: #f9f9f9;
	padding: 1rem 1.5rem;
	border-radius: 10px;
}
.info div:last-child {
	width: 58%;
}
.info h3 {
	margin-bottom: 1rem;
	border-bottom: 2px dashed #ccc;
	padding-bottom: 0.25rem;
}
/* news */
.news_list {
	display: flex;
	flex-wrap: wrap;
}
.news_list li {
	padding: 1rem;
	border-bottom: 1px dashed #ccc;
}
.news_list li:nth-child(odd) {
	width: 110px;
	color: #99074e;
	font-weight: bold;
}
.news_list li:nth-child(even) {
	width: calc(100% - 110px);
}
.news_btn {
	text-align: right;
	margin-top: 2rem
}
.news_btn a {
	border-radius: 8px;
	padding: 0.6rem 3.5rem 0.6rem 2rem;
	position: relative;
	border: 2px solid #99074e;
	color: #99074e;
}
.news_btn a:before {
	position: absolute;
	content: "\f178";
	font-weight: 900;
	font-family: "Font Awesome 6 Free";
	top: 50%;
	transform: translateY(-50%);
	right: 2rem;
	color: #99074e;
}
p.day {
	text-align: right;
}



/* ---------- other ---------- */
.inline-b {
	display: inline-block;
}
span:has(a[href^="tel:"]),
a[href^="tel:"] {
	pointer-events: none;
	cursor: text;
	text-decoration: none;
}
.flex {
	display: flex;
	gap: 20px;
	margin: 0 auto;
}
.flex.news_img {
	margin: 30px auto 0;
}
.flex.news_img img {
	width: calc(50% - 10px);
}
.file_lnk {
	position: relative;
	text-decoration: underline;
	padding-left: 2.3rem;
	margin: 30px auto 0 !important;
	display: inline-block;
}
.file_lnk::before {
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-40%);
	content: '';
	width: 12px;
	height: 12px;
	background: #F9C0CA;
	border-radius: 50%;
}
.file_lnk:hover {
	text-decoration: none;
}
.bold {
	font-weight: bold;
}
@media screen and (max-width: 1024px) {
	.tbl_scroll {
		overflow-x: scroll;
	}
}
@media screen and (min-width: 769px) {
	nav ul {
		padding: 0.5rem;
		border-radius: 10px;
		background: #DA84A7;
		display: inherit;
	}
	nav ul li {
		padding: 0;
		display: block;
		transition: all 0.3s;
	}
	nav ul li.sponly {
		display: none;
		opacity: 0;
	}
	nav ul li a {
		display: block;
		padding: 1rem 1rem 1rem clamp(2.8rem, 0.667rem + 4.44vw, 4rem);
		position: relative;
		background: #fff;
	}
	nav ul li:first-child a {
		border-radius: 5px 5px 0 0;
	}
	nav ul li:last-child a {
		border-radius: 0 0 5px 5px;
	}
	nav ul li a:before {
		position: absolute;
		content: "";
		font-weight: 900;
		font-size: 1.75rem;
		font-family: "Font Awesome 6 Free";
		top: 50%;
		transform: translateY(-50%);
		left: clamp(0.5rem, -0.389rem + 1.85vw, 1rem);
		color: #99074e;
	}
	nav ul li a:hover {
		background-color: rgba(255, 255, 255, .9);
	/*	text-decoration: underline;*/
	}
	nav ul li:not(:last-child) {
		border-bottom: 2px solid #f9f9f9;
	}
	nav ul li:first-child a:before {
		content: "\f015";
	}
	nav ul li:nth-child(2) a:before {
		content: "\f0f8";
		font-size: 1.5rem;
	}
	nav ul li:nth-child(3) a:before {
		content: "\f0f0";
		font-size: 2rem;
	}
	nav ul li:nth-child(4) a:before {
		content: "\f0f1";
	}
	nav ul li:nth-child(5) a:before {
		content: "\f54f";
		font-size: 1.5rem;
	}
	nav ul li:nth-child(6) a:before {
		content: "\f2bb";
	}




}
@media screen and (max-width: 768px) {
	/*　画面サイズ 768pxから適用　*/
	.title {
		margin-bottom: 1rem;
	}
	.tel, .mail {
		display: none;
	}
	#tel .res,
	#mail .res {
		display: inline-block;
	}
	#tel .res {
		padding-left: 4rem;
		background: #ffad1e;
		color: #fff;
		border-radius: 8px;
		text-decoration: none !important;
	}
	#head {
		text-align: center;
		display: block;
		margin: 0 auto;
	}
	header, #maincontainer, footer {
		padding: 1rem;
		width: 100%;
		max-width: 100%;
	}
	footer {
		padding: 0.8rem 1rem 1rem;
	}
	nav {
		margin-bottom: 0;
	}
	nav ul {
		margin-bottom: 1rem;
	}
	.left, .right {
		width: 100%;
		max-width: 100%;
		flex-basis: inherit;
	}
	.sub_about {
		display: none;
	}
	/* ---------- top ---------- */
	/* top */
	.info div:first-child, .info div:last-child {
		width: 100%;
	}
	.info div:first-child {
		margin-bottom: 2rem;
	}
	.news_list {
		display: block;
	}
	.news_list li:nth-child(odd),
	.news_list li:nth-child(even) {
		width: 100%;
	}
	.news_list li:nth-child(odd) {
		border-bottom: none;
		padding: 1rem 1rem 0;
	}
	.news_list li:nth-child(even) {
		padding: 0 1rem 1rem;
	}
	
	
	/* ---------- other ---------- */
	span:has(a[href^="tel:"]),
	a[href^="tel:"] {
		pointer-events: auto;
		cursor: pointer;
		text-decoration: underline;
	}
	.flex.news_img {
		display: block;
	}
	.flex.news_img img {
		width: 100%;
	}
	.flex.news_img img + img {
		margin-top: 1rem;
	}

}
@media screen and (max-width: 450px) {
	nav.open ul li:last-child {
		display: block;
	}
	#tel .res, #mail .res {
		width: 100%;
	}
	

}