@charset "utf-8";
@import url("root.css");
/*-----*RESET CSS*-----*/
*:where(:not(iframe, canvas, img, svg, video):not(svg *)){all: unset;display: revert;}
*,*::before,*::after{box-sizing: border-box;}
ol,ul{list-style: none;}
img {
	width: 100%;
	vertical-align: bottom;
}
/*-----*RESET CSS*-----*/

* {
font-size: 16px;
line-height: 1.8;
word-break: break-all;
font-family:"Shippori Mincho", serif;
font-weight: 200;
}
h1,h2,h3,h4,h5,h6 {
	line-height: 1.3;
}

a:hover {
	cursor: pointer;
}

strong {font-weight: bold;}
span,small { font-size:.8em; }


body {
color: var(--base-color02);
background: var(--base-color03);
font-family:"Shippori Mincho", serif;
font-weight: 200;
}

/***************************************
---------------- 画像ふわっと　-----------
***************************************/
img.fadein-target {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1s ease, transform 1s ease;
}
img.fadein-target.fadein-show {
	opacity: 1;
	transform: translateY(0);
}
@media (max-width: 768px) {
.order_01 {  order: 1;}
.order_02 {  order: 2;}
.order_03 {  order: 3;}
.order_04 {  order: 4;}
.order_05 {  order: 5;}
.order_06 {  order: 6;}
.order_07 {  order: 7;}
.order_08 {  order: 8;}
}
/***************************************
---------------- 共通 ----------------
***************************************/
.container {
margin: 0 auto;
width: min(94%,1200px);
padding: 150px 0;
text-align: center;
}
@media (max-width: 768px) {
	.container {
		padding: clamp(50px, 15vw, 100px) 0;
	}
}
.row{
	display: flex;
	flex-wrap: wrap;
	justify-content:flex-start;
}
.col {
	width: 50%;
	text-align: left;
}
@media (max-width: 768px) {
	.col {
		width: 100%;
		margin:0;
	}
	.col:nth-child(2n){margin: 0;}
}

/***************************************
---------------- リンク共通 ----------------
***************************************/

.view {
display: flex;
justify-content: flex-end;
margin: min(15vw,100px) auto 20px;
}

.view-more {
position: relative;
display: inline-flex;
align-items: center;
font-size: 1rem;
font-family: "Cinzel", serif;
color: #184a4a;
text-decoration: none;
font-weight: 500;
line-height: 1.4;
overflow: visible;
margin-left: auto;
padding: 0 40px 0 0;
position: relative;
z-index: 2;
}

.view-more .circle {
position: absolute;
right: 0;
width: 90px;
height: 90px;
background: rgba(24, 74, 74, 0.15); /* 薄緑 */
border-radius: 50%;
z-index: -1;
transform: scale(1);
transition: transform 0.6s ease, opacity 0.6s ease;
}

/* ホバー時に「ほわっ」と拡大 */
.view-more:hover .circle {
transform: scale(1.3);
opacity: 0.8; /* 少し濃くして強調してもOK */
}

.view-more .circle_02 {
position: absolute;
right: 0;
width: 90px;
height: 90px;
background: var(--base-color03);
border-radius: 50%;
z-index: -1;
transform: scale(1);
transition: transform 0.6s ease, opacity 0.6s ease;
}

/* ホバー時に「ほわっ」と拡大 */
.view-more:hover .circle_02 {
transform: scale(1.3);
opacity: 0.8; /* 少し濃くして強調してもOK */
}

@media (max-width: 768px) {

.view-more {
padding: 0 20px 0 0;
}

.view-more .circle {
width: 50px;
height: 50px;
}

/* ホバー時に「ほわっ」と拡大 */
.view-more .circle_02 {
width: 50px;
height: 50px;
}

}
/***************************************
---------------- h3/h4 ----------------
***************************************/
.h3_title_a {
	font-size: 3rem;
	font-family: "Cinzel", serif;
	font-weight: 500;
	color: var(--base-color01);
	text-align: left;
}
.h3_title_a span {
	font-size: .8rem;
	font-weight: 400;
	font-style: normal;
	color: var(--base-color01);
	display: block;
	text-align: left;
	line-height: 1.2;
}
.h4_title_a {
	font-size: 1.25rem;
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	color: var(--base-color04);
	text-align: left;
	line-height: 1;
}
.h2_title_a {
	font-size: 3rem;
	font-weight: 400;
	color: var(--base-color01);
	text-align: left;
}
.h2_title_b {
	font-size: 1.75rem;
	font-weight: 400;
	color: var(--base-color01);
	text-align: left;
	margin: 0 auto 40px;
}
@media (max-width: 1024px) {
	.h2_title_b {
		margin: 0 auto 20px;
		text-align: center;
		width: 100%;
		display: block;
	}
}
@media (max-width: 768px) {
	.h3_title_a {
		font-size: 1.75rem;
	}
	.h4_title_a {
		font-size: 1rem;
	}
}
/***************************************
---------------- HEADER ----------------
***************************************/

header {
width:100%;
padding: 0 0;
background: var(--base-color03);
display: block;
position: relative;
z-index: 1000;
margin: 0 auto;
position: fixed;
}

header .header_wrap {
width:100%;
height: 100%;
margin: 0 auto;
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;

}

header .header_wrap h1 {
width: fit-content;
display: flex;
flex-wrap: nowrap;
align-items: center;
margin: 0 0 0 2%;
}
.header_right {
width:fit-content;
display: flex;
flex-wrap: nowrap;
justify-content: flex-end;
}

.navigation {}

.nav {}

.page_link {
display: flex;
justify-content: flex-end;
align-items: center;
list-style: none;
padding: 0;
margin: 0;
height:80px;
}

.page_link li {
position: relative;
padding: 0 20px;
}

.page_link li::after {
content: "";
position: absolute;
top: 60%;
right: 0;
width: 1px;
height: 40px;
background-color: var(--base-color01);
transform: translateY(-50%) rotate(20deg);
}

.page_link li:last-child::after {content: none;}

.page_link li a {
display: block;
padding:0 0;
text-decoration: none;
text-align: center;
font-size:16px;
font-weight: 400;
font-style: normal;
color: var(--base-color01);
line-height: 1.2;
margin: -10px auto 0;
transition: color .25s ease;
}
.page_link li a span{
font-size: 10px;
color: var(--base-color01);
line-height: 1.2;
transition: color .25s ease;
font-weight: 400;
}

.page_link li a:hover{color: var(--base-color04);}
.page_link li a span:hover{color: var(--base-color04);}

/* --- スクロール後の見た目 --- */
header.is-scrolled{background: rgba(0, 0, 0, .4);}
header.is-scrolled .page_link li a{color: var(--base-color03);}
header.is-scrolled .page_link li span{color: var(--base-color03);}
header.is-scrolled .page_link li::after {background-color: var(--base-color03);}


#logo{
display:block;
transition: opacity .3s ease;
opacity:1;
}
#logo.is-switching{ opacity:0; }

@media (prefers-reduced-motion: reduce){
#logo{ transition:none; }
}


.cont_box {
display: flex;
align-items: center;
}
.cont_box a {
	background-color: var(--base-color01);
	color: var(--base-color03);
	height: 80px;
	width: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	font-size: .875rem;
	flex-direction: column;
	line-height:0.6;
}
.cont_box a::before {
	content: "";
	display: block;
	background: url(../img/icon_mail_wh.svg) no-repeat center center / contain;
	width: 1.5rem;
	aspect-ratio: 1/1;
	margin-bottom: .5rem;
}

.cont_box a:hover{color: var(--sub-color00);}

#menu-btn-check,
.menu-btn,
.store_name {
display: none;
}

@media (max-width: 768px) {
header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 60px;
background: var(--base-color03);
z-index: 999;
display: flex;
align-items: center;
}
.header_wrap {display: none;}
header .header_wrap h1 {
width: min(50%, 120px);
margin-left: 20px;
}

header .header_wrap img {width:70%;}

.menu-btn {
position: fixed;
top: 0;
right: 0;
display: flex;
height: 60px;
width: 60px;
justify-content: center;
align-items: center;
z-index: 90;
color: var(--base-color03);
background-color: var(--base-color01);
}
.menu-btn span.bar,
.menu-btn span.bar:before,
.menu-btn span.bar:after {
content: "";
display: block;
height: 3px;
width: 30px;
background-color: var(--base-color03);
position: absolute;
}
.menu-btn span {
position: absolute;
bottom: 5px;
font-size: 12px;
color: var(--base-color03);
}
.menu-btn span.bar:before {top: -11px;}
.menu-btn span.bar {top:28px;}
.menu-btn span.bar:after {top: 11px;}

#menu-btn-check:checked ~ .menu-btn span.bar {background-color: transparent; /* または opacity: 0; */}
#menu-btn-check:checked ~ .menu-btn span.bar::before {
top: 0;
transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span.bar::after {
top: 0;
transform: rotate(-45deg);
}
.navigation {
width: 100%;
height: calc(100% - 80px);
position: fixed;
top:60px;
left: 100%;/*leftの値を変更してメニューを画面外へ*/
z-index:99999;
background-color: var(--base-color03);
transition: all 0.5s;/*アニメーション設定*/
overflow-y: scroll;
padding-bottom: 40px;
height: 100%;
}


.navigation ul#page_link {
width: 100%;
padding:20px 25px;
height: auto;
background-color: var(--base-color01);
}

.navigation ul#page_link > li {
width: 100%;
margin: 0;
border-bottom: solid 1px var(--base-color03);
list-style: none;
color:var(--base-color03);
}

.navigation ul#page_link > li:last-of-type{
width: 100%;
margin: 0;
border-bottom: solid 0 var(--base-color_gr);
list-style: none;
}

.navigation ul#page_link li:not(:last-of-type)::after {content: none;}

.navigation ul#page_link > li a,
.navigation ul#page_link > li span {
display: block;
width: 100%;
height: auto;
font-size: 1rem;
box-sizing: border-box;
color:var(--base-color03);
text-decoration: none;
padding: 8px 0 12px 0;
position: relative;
line-height: 1.2;
}

.navigation ul#page_link > li span {
font-size:14px;
line-height: 1.2;
padding: 0;
}



.navigation ul#page_link > li:before,
.navigation ul#page_link > li:last-of-type:after {
content: none;
}
		.navigation ul#page_link > li a:hover,
		.navigation ul#page_link > li span:hover {
				background: none;
				color: inherit;
		}
#menu-btn-check:checked ~ .navigation {
left: 0;/*メニューを画面内へ*/
background-color: var(--base-color01);

}
		.navigation li.has-child ul{
				position: static;
				background: none;
				width: calc(100% - 2px);
				visibility: hidden;
				opacity: 1;
				transition: none;
				display: none;
		}
		.navigation li.has-child {
				flex-wrap: wrap; 
		}
		.phone_num {
				width: 100%;
				margin: auto;
				padding: 25px;
		}
		.phone_num a {
				color: var(--base-color03);
				justify-content: center;
				margin-bottom: 10px;
		}
		.phone_num a::before {
				content: url(../img/tel_wh.svg);
		}
		.phone_num p {
				color: var(--base-color03);
				text-align: center;
				font-size: 1.8rem;
		}
		.chirashi_btn {
				width: 70%;
				padding: 15px;
				margin: auto;
		}

.n_img{width: 100%;margin:10px  auto;text-align: center;display: flex;justify-content: center;}

.sub-info-menu {
	display: none;
}

.sub-info-menu a {
	color: #fff; /* 白色に設定 */
	text-decoration: none; /* 下線を消す場合 */
	margin:0 0 0 20px;
}
.info-toggle.active .sub-info-menu {
	display: block;
		color: #fff; /* 白色に設定 */

}

.info-toggle.active .sub-info-menu li {
border-top: 1px solid #e8e8e8;
	color: #fff; /* 白色に設定 */
}


}

/***************************************
---------------- LAYOUT ----------------
***************************************/

@media (min-width:769px){
	.sp { display:none; }
}
@media (max-width:768px){
	.pc { display:none; }
	.sp { display:block; }
}
#pagetitle {
	padding: 130px 0 30px;
}
#pagetitle h2 {
	font-weight: 400;
	font-size: 2rem;
	color: var(--base-color01);
	line-height: 1.3;
	margin: 0 auto;
	width: min(90%, 1200px);
	display: flex;
	align-items: center;
}
#pagetitle h2 span {
	font-family: "Cinzel", serif;
	font-size: .8em;
	margin: 0 0 0 1em;
	line-height: 1.0;
	display: flex;
	align-items: center;
}
#pagetitle h2 span::before {
	content: "";
	display: block;
	width: 2px;
	height: 1em;
	margin-right: 1em;
	background: var(--base-color01);
}


@media (max-width:768px){
	#pagetitle h2 {
		font-size: 1.25rem;
	}
}

/*下層ページ TOPイメージ画像*/
.page-top_image img {
  display: block;
  width: 100%;
  height: clamp(300px,35vh,600px);
  object-fit: cover;
}

#pan {
	margin: 0 auto;
	padding-top: 30px;
	width: min(90%, 1200px);
	font-size: .8rem;
	color: #666;
	a {
		font-size: .8rem;
	}
}


/***************************************
---------------- FOOTER ----------------
***************************************/
footer {
	padding: 0;
	width: 100%;
	margin: 0 auto;
}
footer .footer_contact {
	color: var(--base-color03);
	background: var(--footer-color);
	width: 100%;
	padding: 100px 0;
}
footer .footer_box {
	margin: 0 auto;
	width: min(90%, 1200px);
	text-align: center;
}
footer .h3_title_a,
footer .h3_title_a span {
	color: var(--base-color03);
	text-align: center;
}
footer .footer_box p {
	padding: 50px 0;
}
footer .footer_row{
	padding: 50px 0 0 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
footer .footer_col_03{
	border-right: 1px solid var(--base-color03);
	width: calc(100% / 3);
}
footer .more {
	display: flex;
	justify-content: space-between;
	padding: 0;
}
footer .more a {
	text-align: left;
}
footer .more_link {
	display: inline-flex;
	justify-content: space-between;
	align-items: center;
	font-family: "Cinzel", serif;
	color: var(--base-color03);
	text-decoration: none;
	font-weight: 500;
	line-height: 1.4;
	margin: 0 auto;
	padding: 0;
}
footer .more_link .circle_02 {
	width: 70px;
	height: 70px;
	background: var(--sub-color00);
	border-radius: 50%;
	z-index: 0;
	transform: scale(1);
	transition: transform 0.6s ease, opacity 0.6s ease;
	margin: 0 0 0 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--base-color01);
	font-size: 1.1rem;
}
/* ホバー時に「ほわっ」と拡大 */
footer .more_link:hover .circle_02 {
	transform: scale(1.3);
	opacity: 0.8; /* 少し濃くして強調してもOK */
}
footer .page_link {
	display: flex;
	justify-content:center;
	align-items: center;
	list-style: none;
	padding: 50px 0 25px;
	margin: 0 auto;
	height:auto;
}
.copyright {
	width: 100%;
	padding:15px 0;
	text-align: center;
	color: var(--base-color03);
	background: var(--footer-color);
	font-size: .875rem;
}
#page_top a {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: fixed;
	bottom: 60px;
	color: var(--base-color01);
	text-align: center;
	background: #fff;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	box-shadow: 0px 0px 10px 0px rgb(0 0 0 / 20%);
	z-index: 9999;
}
#page_top a::before {
	content: "";
	width: 1px;
	height: 1px;
	border-right: 10px solid transparent;
	border-bottom: 10px solid var(--base-color01);
	border-left: 10px solid transparent;
	margin-bottom: 5px;
}
#page_top a span {
	font-size: .75em;
	font-weight: bold;
	line-height: 1.0;
}
@media (max-width: 768px) {
	footer .footer_contact{
		padding: 40px 0;
	}
	footer .footer_box p{
		padding: 20px 0;
	}
	footer .footer_row{
		padding: 40px 0 0;
		flex-wrap: wrap;
	}
	footer .footer_col_03{
		border-right: none;
		border-bottom: 1px solid var(--base-color03);
		width: 100%;
		margin: 0 auto 20px;
		padding: 0 0 20px;
	}
	footer .more a {
		width: 100%;
	}
	footer .more_link {
		flex-wrap: wrap;
	}
	footer .more_link .circle_02 {
		width: 60px;
		height: 60px;
		font-size:1rem;
	}
	footer .page_link{
		align-items:flex-start;
		flex-wrap: wrap;
		padding: 40px 0;
		width: 90%;
		text-align: left;
	}
	footer .page_link li::after {
		width: 0;
	}
	footer .page_link li {
		width: 100%;
		border-bottom: 1px solid var(--base-color01);
		padding: 10px 0;
	}
	footer .page_link li a {
		line-height: 1.6;
		text-align: center;
		margin: 0;
		display: flex;
		align-items: center;
		flex-direction: row-reverse;
		justify-content: flex-end;
		width: fit-content;
	}
	footer .page_link li a span {
		font-size: .8em;
		line-height: 1;
		padding: 0 20px 0 0;
		display: block;
		margin-left: 1rem;
	}
}

footer .nav .sns {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin: auto;
	padding-bottom: 35px;
	justify-content: center;
	align-items: center;
	li {
		width: 2rem;
		height: auto;
		aspect-ratio: 1/1;
	}
	li a img {
		filter: brightness(0) saturate(100%) invert(27%) sepia(9%) saturate(3775%) hue-rotate(146deg) brightness(96%) contrast(86%);
	}
}
