body {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight:500;
	width:100vw;
	overflow-x:clip;
}

main {
	width:100%;
	overflow-x:hidden;
}

main .narrow {
	max-width:900px;
}
main .medium {
	max-width:1010px;
}

main .lead {
	font-weight: 500;
	text-align:center;
	font-size:1.1em;
	line-height:1.8;
}

.scale-up:hover {
	scale:1.02;
    backface-visibility: hidden;
    font-smoothing: antialiased;
}

.color-blue 	{ color:var(--color-blue); }
.color-purple 	{ color:var(--color-purple); }
.color-red 		{ color:var(--color-red); }
.color-pink 	{ color:var(--color-pink); }
.color-lightpink{ color:var(--color-lightpink); }
.color-green 	{ color:var(--color-green); }
.color-yellow 	{ color:var(--color-yellow); }

.bg-blue 	 { background-color:var(--color-blue); }
.bg-purple 	 { background-color:var(--color-purple); }
.bg-red 	 { background-color:var(--color-red); }
.bg-pink 	 { background-color:var(--color-pink); }
.bg-lightpink{ background-color:var(--color-lightpink); }
.bg-green 	 { background-color:var(--color-green); }
.bg-yellow 	 { background-color:var(--color-yellow); }
.bg-lightgray{ background-color:var(--color-lightgray); }

main header {
	background-image:url(../_img/page_head_left.png), url(../_img/page_head_right.png);
	background-position:left bottom, right top;
	background-size:400px, 400px;
	background-repeat:no-repeat, no-repeat;
	background-color:#f6e5ed;
	padding:80px 0;
}
main header h1 {
	color:var(--color-pink);
	text-align:left;
	font-size:2em;
}

main h1 {
	text-align:center;
}
main h1.underline {
	padding-bottom:calc(var(--padding) * 2);
}
main h1.underline::after {
	content:'';
	width:26%;
	height:5px;
	background:var(--color-pink);
	position:absolute;
	bottom:var(--padding);
	left:50%;
	translate:-50% 0;
}
main h1 strong {
	color:var(--color-pink);
	font-size:1.2em;
}

main h2 {
	text-align:center;
}
main h2 strong {
    color:var(--color-red);
    font-size:1.6em;
}
main h2 small {
	font-size:0.6em;
	line-height:3;
}


main p small {
	color:var(--color-darkgray);
}


/* Button */
.buttons {
	display: flex;
	justify-content: center;
	gap:10px 40px;
	padding:var(--padding) 0;
}
main .button {
	line-height:1;
	display:flex;
	align-items: center;
	justify-content: space-between;
	gap:10px;
	padding:25px 30px;
	background:var(--color-pink);
	color:var(--color-white);
	box-shadow:var(--shadow2);
	font-size:1.2em;
	font-weight:500;
	border:solid 1px var(--color-pink);
}
main .button i {
	font-size:0.4em;
	background:var(--color-white);
	color:var(--color-pink);
	width:3em;
	aspect-ratio:1;
	border-radius:100%;
	display:flex;
	align-items: center;
	justify-content: center;
	margin:0;
    padding-left:4px;
    padding-top:1px;
}
main .button:hover {
	background:var(--color-white);
	color:var(--color-pink);
	translate:3px 4px;
	box-shadow:none;
}
main .button:hover i {
	background:var(--color-pink);
	color:var(--color-white);
}

.back-button {
	background:var(--color-lightgray);
	color:var(--color-black) !important;
	font-family: "Noto Sans JP", sans-serif;
	min-width:auto;
	width:fit-content;
}


main #bottom-content .banner {
	max-width:880px;
	margin-inline:auto;
}
main #bottom-content .banner li {
	margin-top:var(--padding);
}

main #bottom-content .banner + div {
	margin-top:var(--section-space);
}
main #bottom-content table {
	border:solid 1px var(--color-gray);
	border-collapse: collapse;
	width:100%;
	margin-top:60px;
}
main #bottom-content table :is(th, td) {
	vertical-align:middle;
}
main #bottom-content table thead tr :is(td, th) {
	border-left:solid 1px var(--color-gray);
	border-bottom:solid 1px var(--color-gray);
}
main #bottom-content table thead tr th {
	padding:30px 10px;
	font-size:1.2em;
	text-align:center;
}
main #bottom-content table thead tr th:nth-of-type(1) {
	background:var(--color-pink);
	color:var(--color-white);
}
main #bottom-content table thead tr th:nth-of-type(2) {
	background:#E9F6EF;
}
main #bottom-content table thead tr th:nth-of-type(3) {
	background:#D6EEFF;
}

main #bottom-content table tbody tr th {
	padding:0 10px;
	border-bottom:dotted 1px var(--color-gray);
}
main #bottom-content table tbody tr th div {
    display:flex;
	gap:10px;
	align-items: center;
    justify-content: flex-start;
}
main #bottom-content table tbody tr th div img {
    width:2em;
}
main #bottom-content table tbody tr td {
	padding:20px 10px;
	border-bottom:dotted 1px var(--color-gray);
	border-left:solid 1px var(--color-gray);
}
main #bottom-content table tbody tr td div {
	display:flex;
	gap:10px;
	align-items: center;
    justify-content: center;
	line-height:1.4;
}
main #bottom-content table tbody tr td img {
	width:30px;
}
main #bottom-content table tbody tr td:nth-of-type(1) {
	background:#FBF2F6;
}
main #bottom-content table tbody tr td:nth-of-type(2) {
	background:#E9F6EF;
}
main #bottom-content table tbody tr td:nth-of-type(3) {
	background:#D6EEFF;
}

main #bottom-content .ask {
	background:var(--color-pink);
}
main #bottom-content .ask h2 {
	color:var(--color-white);
}
main #bottom-content .ask h3 {
	color:var(--color-yellow);
	text-align:center;
	margin-top:20px;
}
main #bottom-content .ask .tel {
	max-width:516px;
	margin:60px auto 0 auto;
}


main .pink-box {
    border:solid 2px var(--color-pink);
    border-radius:var(--radius);
    padding:var(--padding) calc(var(--padding) * 2);
	background:var(--color-white);
}


@media (max-width : 920px) {
	.side-banner {
		position:fixed;
		bottom:-100px;
		display:flex;
		gap:10px;
		align-items: center;
		justify-content: center;
		width:100%;
		transition: bottom var(--transition);
		padding:10px;
		background:var(--color-lightgray);
	}
	body.scrolled .side-banner {
		bottom:-0.5px;
	}
	.side-banner li {
		max-width:160px;
	}

	.footer-banner {
		display:none;
	}
}
@media (max-width : 720px) {
	.buttons {
		flex-direction: column;
	}
	.button {
		min-width:auto;
	}
}
@media (max-width: 520px) {
	.button {
		width:100%;
	}

	.flex:not(.no-clear) > :is(.g1, .g2, .g3, .g4) {
		flex:none !important;
		width:100%;
	}

	:is(.grid-column-2, .grid-column-3):not(.no-clear) {
		grid-template-columns: repeat(1, 1fr);
	}

	main .button {
		padding:20px;
		line-height:1.2;
	}

	main #bottom-content table {
		font-size:0.7em;
	}
	main #bottom-content table thead tr th {
		padding:20px 5px;
		font-size:1.1em;
	}
	main #bottom-content table tbody tr th {
		padding:10px 5px;
		text-align:center;
		width:80px;
	}
	main #bottom-content table tbody tr td {
		padding:10px 5px;
		width:calc((100vw - 100px) / 4);
	}
	main #bottom-content table tbody tr td div {
		flex-direction: column;
		justify-content: flex-start;
	}

	main .pink-box {
		padding:var(--padding);
	}
	main h3 {
        font-size:1.8em;
    }
}

@media (min-width: 920px) {
	.side-banner {
		position:fixed;
		right:-100px;
		top:50%;
		translate: 0 -50%;
		display:flex;
		flex-direction: column;
		gap:20px;
		align-items: flex-end;
		transition: right var(--transition);
	}
	body.scrolled .side-banner {
		right:-0.5px;
	}
	.side-banner li:first-of-type {
		display:none;
	}
	.side-banner li a {
		width:78px;
		padding:10px;
		border-radius:var(--radius) 0 0 var(--radius);
		display:block;
	}
	.side-banner li:nth-of-type(2) a {
		background:var(--color-purple);
		text-align:right;
		padding-right:0;
	}
	.side-banner li:nth-of-type(3) a {
		background:var(--color-blue);
		text-align:center;
	}

	.footer-banner {
		display:block;
		position:fixed;
		bottom:-100px;
		width:100%;
		text-align:center;
		background:#CC0B4E;
		padding:5px 20px 0 20px;
	}
	body.scrolled .footer-banner {
		bottom:-1px;
	}
	.footer-banner img {
		max-width:900px;
		display:inline-block;
	}
	.footer-banner img:last-of-type {
		display:none;
	}
	.footer-banner:hover img:first-of-type {
		display:none;
	}
	.footer-banner:hover img:last-of-type {
		display:inline-block;
	}
}
@media (min-width: 520px) {
	a[href*="tel:"]{
		text-decoration: none;
		pointer-events: none;
	}
}

