@charset "UTF-8";
/*------------------------
スタイルの初期化
------------------------*/
html{
	font-size:62.5%;
}
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video { margin:0; padding:0; }
body{
	width:100%;

	font-family: 'Noto Sans JP','メイリオ','Meiryo','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ Ｐゴシック',sans-serif;
	font-size: 1.4rem;
	line-height: 1.65;
	text-autospace:ideograph-alpha;
	font-weight:normal;
	font-feature-settings: 'palt';
	letter-spacing: .06em;
	position: relative;
	color: var(--black);
	background:url(../img/common/bg_texture.jpg);
	background-size: 750px auto;
}

.is-page-loading body {
	opacity: 0;
}

body {
	opacity: 1;
	transition: opacity 0.4s ease;
}

* {
	box-sizing: border-box;
}
a {
	text-decoration: none;
	color: var(--black);
	transition: all .3s ease 0s;
	display: block;
}
a img {
	border:0;
}
img{
	vertical-align:top;
	width: 100%;
	height: auto;
}
ul, ol { list-style-type:none; }
sup { position: relative; vertical-align: baseline; top: -0.9em; font-size: 0.5em; }
hr { display: none; }
h1,h2,h3,h4,h5,h6 { font-size: 100%;}
th, caption{ text-align: left; font-weight: normal; }
th,td { empty-cells:show; }
input[type="text"] , 
input[type="email"] , 
input[type="tel"] , 
input[type="password"] { padding:0 2px; margin-right:0.4em; }
input[type="submit"] { display:inline; margin:0; }
input[type="radio"] { margin-right:0.4em; }
textarea { padding:2px; }
optgroup { font-style:normal; }
option { padding-right:10px; }
*:focus {
outline: none;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section,main{
	display:block;
}
/*ボタンデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"],button {
	color: var(--black);
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
	font-family: 'Noto Sans JP','メイリオ','Meiryo','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ Ｐゴシック',sans-serif;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}
input[type="text"] , 
input[type="email"] , 
input[type="tel"] , 
input[type="password"] ,
textarea {
	-webkit-appearance : none;
	appearance: none;
	border-radius:0;
	padding:12px;
	border:none;
	width:100%;
	box-sizing: border-box;
	background-color: var(--bg1);
}
select {
	padding: 10px 16px 10px 10px;
	border: 1px solid #dadada;
	appearance: none;
	border-radius: 0;
	background-size: auto 5px;
}

label:has(> input[type="checkbox"]) {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: 40%;
	cursor: pointer;
}
label:has(> input[type="checkbox"]) > input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
label:has(> input[type="checkbox"])::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	border: 1px solid var(--green);
	background-color: #fff;
	box-sizing: border-box;
	flex-shrink: 0;
}
label:has(> input[type="checkbox"])::after {
	content: "";
	position: absolute;
	left: 8px;
	top: 50%;
	width: 7px;
	height: 12px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: translateY(-60%) rotate(45deg);
	opacity: 0;
}
label:has(> input[type="checkbox"]:checked)::before {
	background-color: var(--green);
	border-color: var(--green);
}
label:has(> input[type="checkbox"]:checked)::after {
	opacity: 1;
}
@media screen and (max-width:767px) {
	label:has(> input[type="checkbox"]) {
		gap: 2.05vw;
		display: flex;
		width: 100%;
		margin-bottom: 2.8vw;
	}
	label:has(> input[type="checkbox"])::before {
		width: 6.15vw;
		height: 6.15vw;
	}
	label:has(> input[type="checkbox"])::after {
		left: 2.05vw;
		width: 1.79vw;
		height: 3.08vw;
		border-right-width: 0.51vw;
		border-bottom-width: 0.51vw;
	}
}
.red{
	color: var(--red);
}
:root{
	--black:#2d2d2d;
	--green:#0b6b6a;
	--dgreen:#27434a;

}
.flex-box {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
}
.image img{
	width: 100%;
	height: 100%;
}
table {
	width: 100%;
	border-collapse: collapse;
}
.textarea{
	text-align: justify;
}

@media screen and (min-width:768px) {
	.pc{display: block;}
	.sp,.sp-nav{display: none;}
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
	}
	main{
		padding-bottom: 120px;
	}
}
@media screen and (max-width:767px) {
	body{
		letter-spacing: 0.15em;
		font-size: 3.73vw;
	}
	.pc{display: none;}
	.sp{display: block;}


	/* 375px基準 */
	:root{
		--sp-side: 5.33vw;
	}

	body{
		font-size: 3.73vw;
		letter-spacing: 0.08em;
	}
	main{
		padding-bottom:21.33vw;
	}
}

/*------------------------
header
------------------------*/
:root {
	--header-pc-h: 96px;
	--header-sp-h: 48px;
}

header {
	position: relative;
	top: auto;
	left: auto;
	width: 100%;
	z-index: 1000;
	background: transparent;
	transition:
		background-color .3s ease,
		box-shadow .3s ease;
}

header.is-scrolled {
	position: sticky;
	top: 0;
	left: 0;
	background: rgba(255,255,255,.96);
	box-shadow: 0 6px 18px rgba(0,0,0,.08);
}

header .inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	transition: padding .3s ease;
}

header .logo {
	line-height: 1;
}

header .logo img {
	width: auto;
	transition: height .3s ease;
}

header .main_menu {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	transition: gap .3s ease;
}

header .menu_list {
	display: flex;
	align-items: center;
	transition: gap .3s ease;
}

header #menu-list a {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	color: var(--dgreen);
	line-height: 1.2;
	letter-spacing: .1em;
}

header #menu-list .ja {
	font-weight: 600;
	white-space: nowrap;
	transition: font-size .3s ease;
}

header #menu-list .en {
	letter-spacing: .05em;
	white-space: nowrap;
	color: var(--green);
	transition:
		font-size .3s ease,
		margin-top .3s ease;
}

header .contact .js-contact-modal-open {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	color: #fff;
	background: var(--green);
	font-weight: 700;
	letter-spacing: .06em;
	position: relative;
	overflow: hidden;
	z-index: 0;
	border: none;
	padding: 0;
	font-family: inherit;
	cursor: pointer;
	transition:
		width .3s ease,
		height .3s ease,
		font-size .3s ease,
		transform .3s ease,
		box-shadow .3s ease,
		opacity .3s ease;
}

header .contact .js-contact-modal-open::before {
	content: "";
	position: absolute;
	top: 0;
	left: -35%;
	width: 170%;
	height: 100%;
	background: #08867d;
	transform: translateX(-100%) skewX(45deg);
	transform-origin: left center;
	transition: transform .4s ease;
	z-index: -1;
}


/* PC */
@media screen and (min-width:768px) {
	header .inner{
		padding: 18px 40px;
	}

	header .logo img{
		height: 55px;
		width: auto;
	}

	header #menu-list li a{
		padding: 10px 5px;
	}

	header .main_menu {
		gap: 28px;
	}

	header .menu_list {
		gap: 35px;
	}

	header #menu-list .ja {
		font-size:16px;
	}

	header #menu-list .en {
		margin-top: 7px;
		font-size: 11px;
	}

	#menu-btn {
		display: none;
	}

	header #menu-list a:hover {
		opacity: .7;
	}

	header .contact .js-contact-modal-open {
		width: 170px;
		height: 45px;
		padding: 0 20px;
		font-size:14px;
	}

	header .contact .js-contact-modal-open:hover {
		opacity: 1;
		transform: translateY(-3px);
		box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
	}

	header .contact .js-contact-modal-open:hover::before {
		transform: translateX(0) skewX(45deg);
	}

	/* スクロール後 */
	header.is-scrolled .inner{
		padding-top: 10px;
		padding-bottom: 10px;
	}

	header.is-scrolled .logo img{
		height: 42px;
	}

	header.is-scrolled .main_menu{
		gap: 24px;
	}

	header.is-scrolled .menu_list{
		gap: 28px;
	}

	header.is-scrolled #menu-list .ja{
		font-size: 14px;
	}

	header.is-scrolled #menu-list .en{
		margin-top: 4px;
		font-size: 10px;
	}

	header.is-scrolled .contact .js-contact-modal-open{
		width: 150px;
		height: 38px;
		font-size: 13px;
	}
}


/* 高さ対応 */

@media screen and (min-width: 768px) and (max-height: 720px) {

	:root {
		--header-pc-h: 64px;
	}

	header .inner {
		padding:11px 20px;
	}

	header .logo img {
		height: 42px;
	}

	header .main_menu {
		gap: 20px;
	}

	header .menu_list {
		gap: 20px;
	}

	header #menu-list li a {
		padding-top: 5px;
		padding-bottom: 5px;
	}

	header #menu-list .ja {
		font-size: 14px;
	}

	header #menu-list .en {
		margin-top: 3px;
		font-size: 9px;
	}

	header .contact .js-contact-modal-open {
		width: 145px;
		height: 36px;
		font-size: 12px;
	}


	/* スクロール後 */
	header.is-scrolled .inner {
		padding-top: 6px;
		padding-bottom: 6px;
	}

	header.is-scrolled .logo img {
		height: 38px;
	}

	header.is-scrolled .main_menu {
		gap: 18px;
	}

	header.is-scrolled .menu_list {
		gap: 22px;
	}

	header.is-scrolled #menu-list .ja {
		font-size: 13px;
	}

	header.is-scrolled #menu-list .en {
		margin-top: 2px;
		font-size: 9px;
	}

	header.is-scrolled .contact .js-contact-modal-open {
		width: 140px;
		height: 34px;
		font-size: 12px;
	}
}

/* SP */
@media screen and (max-width:767px) {
	header{
		position: sticky;
		top: 0;
	}

	header.is-scrolled{
		background: rgba(255,255,255,.96);
		box-shadow: 0 1.54vw 4.62vw rgba(0,0,0,.08);
	}

	header .inner{
		height: var(--header-sp-h);
		padding: 0 var(--sp-side);
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	header .logo img{
		height: 31px;
		width: auto;
	}

	header .main_menu{
		display: none;
	}

	#menu-btn {
		position: relative;
		display: block;
		width: 38px;
		height: 46px;
		margin-left: auto;
		padding: 0;
		background: transparent;
	}

	#menu-btn span {
		position: absolute;
		left: 0;
		display: block;
		width: 38px;
		height: 1px;
		background: var(--green);
		transition:
			top .3s ease,
			opacity .3s ease,
			transform .3s ease;
	}

	#menu-btn .menu1 {
		top: 14px;
	}

	#menu-btn .menu2 {
		top: 23px;
	}

	#menu-btn .menu3 {
		top: 32px;
	}
}

/*------------------------
SP menu
------------------------*/
html.is-menu-open,
body.is-menu-open {
	overflow: hidden;
}

.sp-menu-contact {
	display: none;
}

/* お問い合わせモーダルはメニューより上に表示 */
.contact-modal {
	z-index: 5000;
}

@media screen and (max-width: 767px) {

	header.is-menu-open {
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100vh;
		z-index: 4000;
		background: var(--green);
		box-shadow: none;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	header.is-menu-open .inner {
		position: relative;
		display: block;
		width: 100%;
		height: auto;
		min-height: 100vh;
		padding: 4.8vw var(--sp-side) 0;
	}

	header.is-menu-open .logo {
		position: relative;
		z-index: 3;
	}

	header.is-menu-open .logo img {
		height: 7.2vw;
		width: auto;
		filter: brightness(0) invert(1);
	}

	header.is-menu-open .main_menu {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		margin-top: 8vh;
	}

	header.is-menu-open #menu-list {
		width: 100%;
	}

	header.is-menu-open .menu_list {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 5.87vw;
		width: 100%;
	}

	header.is-menu-open #menu-list a {
		color: #fff;
	}

	header.is-menu-open #menu-list .ja {
		color: #fff;
		font-size: 4.7vw;
		line-height: 1.2;
	}

	header.is-menu-open #menu-list .en {
		margin-top: 1.6vw;
		color: #fff;
		font-size: 2.67vw;
		line-height: 1;
	}

	header.is-menu-open .sp-menu-contact {
		display: block;
		margin-top: 9vh;
		color: #fff;
		text-align: center;
	}

	header.is-menu-open .sp-menu-contact__head {
		margin-bottom: 2.4vw;
		font-size: 4.27vw;
		font-weight: 700;
		line-height: 1.4;
	}

	header.is-menu-open .sp-menu-contact__name {
		margin-bottom: 2.67vw;
		font-size: 3.47vw;
		line-height: 1.6;
		letter-spacing: 0.04em;
	}

	header.is-menu-open .sp-menu-contact__tel {
		display: flex;
		align-items: baseline;
		justify-content: center;
		margin-bottom: 2.13vw;
		line-height: 1;
	}

	header.is-menu-open .sp-menu-contact__tel span {
		margin-right: 2.13vw;
		font-size: 3.2vw;
		letter-spacing: 0.08em;
	}

	header.is-menu-open .sp-menu-contact__tel a {
		display: inline-block;
		color: #fff;
		font-size: 7.47vw;
		font-weight: 400;
		line-height: 1;
		letter-spacing: 0.04em;
	}

	header.is-menu-open .sp-menu-contact__time {
		font-size: 2.67vw;
		line-height: 1.7;
		letter-spacing: 0.04em;
	}

	header.is-menu-open .contact {
		margin-top: 5.33vw;
	}

	header.is-menu-open .contact .js-contact-modal-open {
		width: 58.67vw;
		height: 11.47vw;
		background: #fff;
		color: var(--green);
		font-size: 3.73vw;
		font-weight: 700;
		letter-spacing: 0.08em;
	}

	header.is-menu-open .contact .js-contact-modal-open::before {
		display: none;
	}

	header.is-menu-open #menu-btn {
		position: absolute;
		top: 3.2vw;
		right: var(--sp-side);
		z-index: 4;
		width: 10.67vw;
		height: 10.67vw;
		margin-left: 0;
	}

	header.is-menu-open #menu-btn span {
		left: 0;
		width: 10.67vw;
		background: #fff;
	}

	header.is-menu-open #menu-btn .menu1 {
		top: 5.33vw;
		transform: rotate(45deg);
	}

	header.is-menu-open #menu-btn .menu2 {
		opacity: 0;
	}

	header.is-menu-open #menu-btn .menu3 {
		top: 5.33vw;
		transform: rotate(-45deg);
	}
}

/*------------------------
共通
------------------------*/
.sec-title{
	text-align: center;
}
.sec-title .en{
	color: var(--dgreen);
	font-weight: 600;
	letter-spacing: 0.06em;
}
.sec-title .l{
	font-weight: 600;
	color: var(--green);
	letter-spacing: 0.12em;
}
.sec-lead{
	letter-spacing: 0.1em;
	line-height: 1.875;
	text-align: center;
}
.btn a {
	border: 1px solid var(--green);
	border-radius: 999px;
	color: var(--green);
	font-weight: 600;
	background: #fff;
	transition:
		color .3s ease,
		background-color .3s ease;
}
.btn a:hover {
	color: #fff;
	background: var(--green);
}



/* PC */
@media screen and (min-width:768px) {
	.sec-title{
		margin-bottom:18px;
	}
	.sec-title .l{
	}
	.sec-title .en{
		font-size: 18px;
		margin-bottom:3px;
	}
	.sec-title .l{
		font-size: 36px;
	}
	.sec-lead{
		font-size: 16px;
		margin-bottom: 50px;
	}

}
/* SP */
@media screen and (max-width:767px) {


	/* 375px基準 */
	.sec-title{
		margin-bottom: 5.8vw;

	}
	.sec-title .en{
		margin-bottom: 1.89vw;
		font-size: 3.47vw;
	}

	.sec-title .l{
		font-size: 6.4vw;
		line-height: 1.5;
		letter-spacing: 0.1em;
	}

	.sec-lead{
		font-size: 3.47vw;
		margin-bottom: 7.2vw;
	}
}

/*------------------------
footer
------------------------*/
footer{
	background: #fff;
}

.footer-contact{
	background: var(--green);
	color: #fff;
	text-align: center;
}

.footer-contact .inner{
	margin-left: auto;
	margin-right: auto;
}

.footer-contact h3{
	letter-spacing: 0.08em;
}

.footer-contact .tel a{
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	color: #fff;
	line-height: 1;
	letter-spacing: 0.08em;
}

.footer-contact .tel b{
	font-weight: 400;
	letter-spacing: 0.04em;
}

.footer-contact .contact-btn .js-contact-modal-open{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #fff;
	color: var(--green);
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.08em;
	transition:
		color .3s ease,
		background-color .3s ease,
		transform .3s ease;
}

.footer-contact .contact-btn .js-contact-modal-open:hover{
	color: #fff;
	background: var(--dgreen);
	transform: translateY(-3px);
}

.privacy-area{
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #fff;
}

.privacy-area .privacy a{
	display: inline-block;
	color: var(--green);
	line-height: 1;
}

.privacy-area .privacy a:hover{
	opacity: .7;
}

.privacy-area .copy{
	color: var(--green);
}

.privacy-area .logo a{
	display: block;
}

.privacy-area .logo img{
	width: auto;
}


/* PC */
@media screen and (min-width: 768px) {
	.footer-contact{
		padding: 100px 0 100px;
	}

	.footer-contact .inner{
		width: 1200px;
		margin: 0 auto;
	}

	.footer-contact h3{
		margin-bottom: 16px;
		font-size: 18px;
	}

	.footer-contact .store-name{
		margin-bottom: 12px;
		font-size: 22px;
	}
	.footer-contact .tel-area{
		margin-bottom: 40px;
	}
	.footer-contact .tel{
		margin-bottom: 8px;
	}

	.footer-contact .tel a{
		font-size:22px;
	}

	.footer-contact .tel b{
		margin-left: 10px;
		font-size:50px;
		position: relative;
		bottom: -0.05em;
	}

	.footer-contact .contact-btn .js-contact-modal-open{
		min-width: 290px;
		height: 60px;
		font-size: 16px;
		padding: 0 30px;
	}

	.privacy-area{
		padding: 24px 40px 22px;
	}

	.privacy-area .privacy{
		display: block;
		margin-bottom: 9px;
	}

	.privacy-area .privacy a{
		font-size: 13px;
		text-decoration: underline;
	}

	.privacy-area .copy{
		font-size: 12px;
	}

	.privacy-area .logo img{
		height: 36px;
	}
}


/* SP */
@media screen and (max-width: 767px) {
	.footer-contact{
		padding: 21.33vw var(--sp-side) 21.33vw;
	}

	.footer-contact .inner{
		width: 100%;
	}

	.footer-contact h3{
		margin-bottom: 3.74vw;
		font-size: 3.73vw;
		line-height: 1.6;
	}

	.footer-contact .store-name{
		margin-bottom: 2.67vw;
		font-size: 4.27vw;
	}

	.footer-contact .tel-area{
		margin-bottom: 8vw;
	}

	.footer-contact .tel{
		margin-bottom: 1.3vw;
	}

	.footer-contact .tel a{
		font-size: 4.27vw;
	}

	.footer-contact .tel b{
		margin-left: 1.6vw;
		font-size: 9.33vw;
		position: relative;
		bottom: -0.05em;
	}

	.footer-contact .time{
		font-size: 2.93vw;
		letter-spacing: 0.04em;
	}

	.footer-contact .contact-btn .js-contact-modal-open{
		height: 15vw;
		padding: 0 6.4vw;
		font-size: 4.27vw;
		width: calc(100% - 14vw);
	}
	.privacy-area{
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 4.8vw;
		padding: 6.4vw var(--sp-side) 6.4vw;
	}

	.privacy-area .privacy{
		margin-bottom: 2.13vw;
	}

	.privacy-area .privacy a{
		font-size: 2.67vw;
		text-decoration: underline;
	}

	.privacy-area .copy{
		font-size: 2.4vw;
		line-height: 1.7;
		letter-spacing: 0.03em;
	}

	.privacy-area .logo img{
		height: 7.47vw;
	}
}
/*------------------------
contact modal
------------------------*/
body.is-modal-open{
	overflow: hidden;
}

.contact-modal{
	position: fixed;
	inset: 0;
	z-index: 5000;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity .3s ease,
		visibility .3s ease;
}

.contact-modal.is-show{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.contact-modal__overlay{
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.45);
}

.contact-modal__content{
	position: absolute;
	top: 50%;
	left: 50%;
	background: #fff;
	color: var(--dgreen);
	text-align: center;
	box-shadow: 0 20px 50px rgba(0,0,0,.22);
	transform: translate(-50%, -50%);
}

.contact-modal__close{
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--green);
	color: #fff;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
}

.contact-modal__content h2{
	color: var(--green);
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.5;
}

.contact-modal__content p{
	line-height: 2;
	letter-spacing: 0.08em;
}

.contact-modal__content strong{
	color: var(--green);
	font-weight: 700;
}

.contact-modal__btn a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--green);
	color: #fff;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	transition:
		background-color .3s ease,
		transform .3s ease;
}

.contact-modal__tel{
	display: flex;
}
.contact-modal__tel a{
	color: var(--green);
	font-weight: 600;
}

/* PC */
@media screen and (min-width: 768px) {
	.contact-modal__content{
		width: min(calc(100% - 80px), 620px);
		padding: 58px 64px 54px;
		border-radius: 24px;
	}

	.contact-modal__close{
		top: -18px;
		right: -18px;
		width: 44px;
		height: 44px;
		font-size: 26px;
	}

	.contact-modal__content h2{
		margin-bottom: 24px;
		font-size: 26px;
	}

	.contact-modal__content p{
		font-size: 15px;
	}

	.contact-modal__content p + p{
		margin-top: 16px;
	}

	.contact-modal__btn{
		margin-top: 34px;
	}

	.contact-modal__btn a{
		min-width: 280px;
		height: 58px;
		padding: 0 34px;
		font-size: 16px;
	}
	.contact-modal__btn a:hover{
		background: var(--dgreen);
		transform: translateY(-3px);
	}
		.contact-modal__tel{
			margin-top: 20px;
			justify-content: center;
			align-items: center;
	}
	.contact-modal__tel a{
		margin-left:.5em;
		font-size: 20px;
	}

}


/* SP */
@media screen and (max-width: 767px) {
	.contact-modal__content{
		width: calc(100% - 10.26vw);
		padding: 12.82vw 7.69vw 11.28vw;
		border-radius: 5.13vw;
	}

	.contact-modal__close{
		top: -4.62vw;
		right: -2.56vw;
		width: 10.26vw;
		height: 10.26vw;
		font-size: 6.15vw;
	}

	.contact-modal__content h2{
		margin-bottom: 6.15vw;
		font-size: 5.64vw;
	}

	.contact-modal__content p{
		font-size: 3.59vw;
		text-align: left;
	}

	.contact-modal__content p + p{
		margin-top: 4.1vw;
	}

	.contact-modal__btn{
		margin-top: 8.21vw;
	}

	.contact-modal__btn a{
		width: 100%;
		height: 13.33vw;
		padding: 0 6.15vw;
		font-size: 3.85vw;
	}


	/* 375px基準 */
	.contact-modal__content{
		width: calc(100% - 10.67vw);
		padding: 11.73vw 6.4vw 10.67vw;
		border-radius: 4.27vw;
	}

	.contact-modal__close{
		top: -4.27vw;
		right: -2.13vw;
		width: 9.6vw;
		height: 9.6vw;
		font-size: 5.87vw;
	}

	.contact-modal__content h2{
		margin-bottom: 5.33vw;
		font-size: 5.07vw;
	}

	.contact-modal__content p{
		font-size: 3.47vw;
		line-height: 1.9;
		text-align: center;
	}

	.contact-modal__content p + p{
		margin-top: 1em;
	}

	.contact-modal__btn{
		margin-top: 5.33vw;
	}

	.contact-modal__btn a{
		width: 100%;
		height: 12.8vw;
		padding: 0 5.33vw;
		font-size: 3.73vw;
	}
	.contact-modal__tel{
		margin-top: 5.33vw;
		flex-direction: column;
		align-items: center;
	}
	.contact-modal__tel span{
		line-height: 1.4;
	}
	.contact-modal__tel a{
		font-size: 4.27vw;
		margin-right: 0.8vw;
	}
}

/* ------------------------
	SP固定お問い合わせボタン
------------------------ */
.sp-fixed-contact {
	display: none;
}

@media screen and (max-width: 767px) {

	.sp-fixed-contact {
		display: block;
		position: fixed;
		z-index: 900;
		right: 0;
		bottom: 0;
		left: 0;

		box-shadow:
			0 -1.3333vw 4.8vw
			rgba(0, 0, 0, 0.08);

		opacity: 0;
		visibility: hidden;
		pointer-events: none;

		transform: translateY(110%);

		transition:
			opacity 0.3s ease,
			transform 0.3s ease,
			visibility 0s linear 0.3s;
	}

	.sp-fixed-contact.is-show {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;

		transform: translateY(0);

		transition:
			opacity 0.3s ease,
			transform 0.3s ease,
			visibility 0s;
	}

	.sp-fixed-contact__button {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 8vh;
		padding: calc(2.6667vw + env(safe-area-inset-bottom)) 4vw calc(2.6667vw + env(safe-area-inset-bottom));
		background: #fff;
		border: 0;
		border-top: 2px solid var(--green);
		color: var(--green);
		font-family: inherit;
	font-size: 4vw;
		font-weight: 600;
		line-height: 1.4;
	}

	.sp-fixed-contact__arrow {
		position: absolute;
		top: 50%;
		right: 5.8667vw;
		width: 8vw;
		height: 3.2vw;

		border-bottom:
			0.2667vw solid currentColor;

		transform: translateY(-1.8667vw);
	}

	.sp-fixed-contact__arrow::after {
		content: "";

		position: absolute;
		right: 0;
		bottom: -0.2667vw;

		width: 3.7333vw;
		height: 0.2667vw;

		background: currentColor;

		transform: rotate(35deg);
		transform-origin: right center;
	}

	/*
		モーダル表示中は固定ボタンを隠す
	*/
	body.is-modal-open .sp-fixed-contact {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;

		transform: translateY(110%);
	}
}

/*------------------------
パンくず
------------------------*/
#breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
#breadcrumb li {
	display: flex;
	align-items: center;
}
/* PC */
@media screen and (min-width:768px) {

	#breadcrumb{
	padding: 0 40px;
	margin: 36px auto 0;
}
	#breadcrumb li {
		float: left;
		font-size: 14px;
		line-height: 1;
		padding-right: 4px;
	}
	#breadcrumb li:not(:first-of-type)::before {
		content: '   >   ';
		color: var(--green);
		padding: 0 5px;
	}
	#breadcrumb li a {
		display: inline-block;
		color: var(--black);		
	}
	#breadcrumb li a::after {
		content: '';
		display: block;
		width: 0;
		transition: width 0.3s;
		border-bottom: 1px solid var(--green);
		margin: auto;
	}
	#breadcrumb li a:hover {
		opacity: 1;
	}
	#breadcrumb li a:hover::after {
		width: 100%;
	}
}
/* SP */
@media screen and (max-width:767px) {
	#breadcrumb {
		padding: 4vw 5.33vw 0;
		font-size: 2.67vw;
			flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		white-space: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	#breadcrumb::-webkit-scrollbar {
		display: none;
	}
	#breadcrumb li:not(:first-of-type)::before {
		content: '   >   ';
		color: var(--green);
		padding: 0 1vw;
	}
}
/*------------------------
後続ページタイトル
------------------------*/
.page-title {
	text-align-last: center;
	border-bottom: 1px solid var(--green);
}

.page-title .en{
	color: var(--dgreen);
	font-weight: 600;
	letter-spacing: 0.06em;
}
.page-title .l {
	font-weight: 600;
	color: var(--green);
	letter-spacing: 0.12em;
}

/* PC */
@media screen and (min-width:768px) {
	.page-contents-wrapper{
		width: 1000px;
		margin-right: auto;
		margin-left: auto;
	}
	.page-title{
		margin-top: 93px;
		padding-bottom: 30px;
		margin-bottom: 65px;
	}
	.page-title .l{
		font-size: 36px;
	}
	.page-title .en{
		font-size: 18px;
		margin-bottom:2px;

	}
}
/* SP */
@media screen and (max-width:767px) {
	.page-contents-wrapper {
		padding:0 5.33vw;
	}
		.page-title{
		margin-top:12.8vw;
		padding-bottom:5.33vw;
		margin-bottom:8vw;
	}
	.page-title .en{
		font-size: 3.2vw;

	}
	.page-title .l {
		font-size: 6.4vw;
	}
}
/* SP プランの時 */
@media screen and (max-width:767px) {
	.plan-detail	.page-title{
		margin-bottom:4.8vw;
	}
}
/*------------------------
後続ページの前に戻るボタン
------------------------*/
.page-back-btn a{
	letter-spacing: 0.1em;
	border: 1px solid var(--green);
	color: var(--green);
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color .3s ease, background-color .3s ease, transform .3s ease;
}
/* PC */
@media screen and (min-width: 768px) {
	.page-back-btn a{
		font-size: 20px;
		width: 670px;
		height: 80px;
		margin-right: auto;
		margin-left: auto;
	}
	.page-back-btn a:hover{
		color: #fff;
		background: var(--dgreen);
		transform: translateY(-5px);
	}
}
/* SP */
@media screen and (max-width:767px) {
		.page-back-btn a{
		width: 100%;
		height:16vw;
		margin-right: auto;
		margin-left: auto;
	}
}

/* ------------------------
	スクロールアニメーション
------------------------ */

/*
	下からフェードイン
*/
.fade-up {
	opacity: 0;
	transform: translateY(40px);
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
}

.fade-up.is-inview {
	opacity: 1;
	transform: translateY(0);
}


/*
	通常のフェードイン
*/
.fade-in {
	opacity: 0;
	transition: opacity 0.8s ease;
}

.fade-in.is-inview {
	opacity: 1;
}


/*
	左からフェードイン
*/
.fade-left {
	opacity: 0;
	transform: translateX(-40px);
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
}

.fade-left.is-inview {
	opacity: 1;
	transform: translateX(0);
}


/*
	右からフェードイン
*/
.fade-right {
	opacity: 0;
	transform: translateX(40px);
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
}

.fade-right.is-inview {
	opacity: 1;
	transform: translateX(0);
}


/*
	グループ内の子要素
*/
.js-anim-item {
	opacity: 0;
	transform: translateY(30px);
	transition:
		opacity 0.7s ease,
		transform 0.7s ease;
	transition-delay: var(--anim-delay, 0ms);
}


/*
	親が画面内に入ったら
	子要素を順番に表示する
*/
.js-anim-group.is-inview .js-anim-item {
	opacity: 1;
	transform: translateY(0);
}


/*
	アニメーションを減らす設定への対応
*/
@media (prefers-reduced-motion: reduce) {
	.js-anim,
	.js-anim-item {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/*------------------------
header
------------------------*/
/* PC */
@media screen and (min-width:768px) {
}
/* SP */
@media screen and (max-width:767px) {
}

/*------------------------
header
------------------------*/
/* PC */
@media screen and (min-width:768px) {
}
/* SP */
@media screen and (max-width:767px) {
}
