@charset "utf-8";
/* CSS Document */

/*==========
変数
==========*/
:root {
	--bg_color1: #f8f8f8;
	--bg_color2: #FFF;
	--font_color1: #292929;
	--main_color: #ea478e;
	--sub_color1: #85a4ff;
	--sub_color2: #bd52b4;
	--sub_color3: #1754da;
	--sub_color4: #f0cffe;
	--border_color1: #cfcfcf;
	--footer_color: #a554a2;
	--a_color: #0841ff;
	--a_hover_color: #ff29b8;
}

/*==========
共通
==========*/
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	height: 100%;
}

body {
	font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
	color: var(--font_color1);
	font-feature-settings: "palt"1;
	-webkit-text-size-adjust: 100%;
	background-color: var(--bg_color1);
	position: relative;
	margin: 0;
	overflow-wrap: break-word;
	min-height: 100svh;
}

a {
	color: var(--a_color);
	text-decoration: none;
	transition: .3s;
}

a:hover {
	transition: .3s;
	color: var(--a_hover_color);
}

body {
	animation: fade .3s;
}

@keyframes fade {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

img {
	max-width: 100%;
	height: auto;
}

.wrap {
	width: 100%;
	background-color: var(--bg_color2);
	padding-bottom: 10rem;
	border: solid 1px var(--border_color1);
}

.container {
	width: 96%;
	margin-inline: auto;
}

.mt4 {
	margin-top: 4rem;
}

@media (min-width: 768px) {
	body {
		font-size: 1.65rem;
	}

	.wrap {
		width: 720px;
		margin-inline: auto;
	}

	.container {
		padding: 0 18px;
	}

}

.external_link {
	background-color: #29A6FF;
	padding: 24px 0;
	text-align: center;
	color: #FFF;
	font-weight: 600;
	width: 90%;
	margin: 0 auto 2rem;
	display: block;
	border-radius: 50vmax;
	max-width: 420px;
}

.external_link:hover,
.external_link:active {
	background-color: var(--a_hover_color);
	color: #FFF;
}

/*==========
MV
==========*/
.mv {
	border-bottom: solid 1px var(--border_color1);
	padding-bottom: 3rem;
}

@media (min-width: 768px) {
	.mv {
		margin-bottom: 5rem;
	}
}


/*==========
セクション
==========*/
h1 {
	color: var(--main_color);
	font-size: 2.8rem;
	font-weight: 600;
	line-height: 1.4;
	margin-top: 3rem;
}

section h2 {
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 2rem;
	padding: .9rem 1.2rem;
	border-radius: 3px;
	background-color: var(--sub_color2);
	color: #FFF;
}

section h3 {
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 2rem;
	padding: .7rem .5rem;
	border-bottom: solid 3px var(--main_color);
}

section h3 span {
	font-size: 1.5rem;
	padding-left: 12px;
}

section h4 {
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 1.5rem;
	padding: .2rem 2rem .2rem .5rem;
	border-bottom: solid 2px var(--main_color);
	inline-size: fit-content;
}

section h5 {
	color: var(--sub_color3);
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 4rem 0 2rem;
}

section p {
	line-height: 1.6;
	margin: 2rem 0;
}

section ul {
	list-style: disc;
	padding-left: 3rem;
	margin-bottom: 2rem;
}

section ul li {
	line-height: 1.6;
	margin: 1rem 0;
}

@media (min-width: 768px) {
	.section_title {
		font-size: 4.2rem;
	}
}

.shop_list .container {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}


table.detail {
	width: 100%;
	border: solid 1px var(--border_color1);
	margin: 2rem 0;
}

table.detail th,
table.detail td {
	border: solid 1px var(--border_color1);
	padding: 2rem .5rem;
	vertical-align: middle;
	line-height: 1.6;
}

table.detail th {
	font-weight: 400;
	background-color: var(--sub_color4);
	width: 30%;
}

.table_scroll_wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 1rem;
}

.table_scroll_wrap table {
	border-collapse: collapse;
	width: 100%;
	min-width: 720px;
}

.table_scroll_wrap table caption {
	font-size: 1.8rem;
	font-weight: 600;
	margin-bottom: 15px;
}

.table_scroll_wrap th,
.table_scroll_wrap td {
	border: 1px solid var(--border_color1);
	white-space: nowrap;
	line-height: 1.4;
	vertical-align: middle;
}

.table_scroll_wrap th {
	font-size: 1.5rem;
	background-color: var(--sub_color4);
	padding: 1.2rem 0.9rem;
}

.table_scroll_wrap td {
	font-size: 1.45rem;
	padding: 1.8rem .9rem;
}

.table_scroll_wrap tbody tr:nth-child(even) {
	background-color: #ededed;
}

.table_scroll_wrap table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
}


.googlemap {
	width: 100%;
	height: 40vh;
}

.googlemap iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

/*==========
フッター
==========*/
.site_footer {
	background-color: var(--footer_color);
	text-align: center;
	padding: 60px 0 12px;
}

.site_footer_link {
	margin: 0 auto 36px;
}

.site_footer_link li {
	display: inline-block;
	padding: 0 12px;
}

.site_footer_link li a {
	color: #FFF;
}

.site_footer_copyright {
	font-size: 1.25rem;
	color: #FFF;
}


/*==========
404
==========*/
.not_found {
	height: 100vh;
	padding-top: 60px;
}

.not_found_body {
	width: 90%;
	margin: 0 auto;
}

.not_found_body p {
	line-height: 1.5;
	margin-bottom: 60px;
}

.section_link {
	display: grid;
	place-items: center;
	background-color: var(--a_color);
	height: 60px;
	max-width: 420px;
	margin: 0 auto;
}

.section_link span {
	color: #FFF;
	font-weight: 700;
}



/* ==========
よくある質問
========== */
.faq {
	margin: 3rem 0;
}

.faq-item {
	border: 1px solid #999;
	border-radius: 6px;
	padding: 2rem 1rem;
	margin-bottom: 1.5rem;
}

.faq-item summary {
	cursor: pointer;
	font-weight: 600;
	line-height: 1.6;
}

.faq-answer {
	margin-top: 01rem;
}

.faq-answer p {
	line-height: 1.6;
}
