@charset "utf-8";

html, body                 {width:100%;margin:0 auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
body                       {-webkit-text-size-adjust:100%;}
div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
table, caption, tbody, tfoot, thead, tr, th, td, p,
fieldset, form, label, legend, input,
article, aside, canvas, figure, figcaption,
footer, header, nav, section,
b, u, i                    {margin:0;padding:0;list-style:none;font-style:normal;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
main                       {display: block;}
a                          {outline:none;}
img                        {border:0 none;vertical-align:top;max-width:100%;height:auto;}
em                         {font-style:normal;font-weight:bold;}
nav ul, nav li             {list-style:none;}
.h a, .f a,
nav a, nav span            {text-decoration:none;}
table                      {border-collapse:collapse;}
p, li                      {line-height: 1.6;}

/* ----------------------------------------------- font */
@font-face                 {font-family:'entypo';src:url('fonts/entypo.eot?ac19je');src:url('fonts/entypo.eot?#iefixac19je') format('embedded-opentype'),url('fonts/entypo.woff?ac19je') format('woff'),url('fonts/entypo.ttf?ac19je') format('truetype'),url('fonts/entypo.svg?ac19je#entypo') format('svg');font-weight: normal;font-style: normal;}
html                       {font-size:62.5%;}
body                       {font-size:16px;font-size:1.6rem;font-family: "Noto Sans JP", sans-serif;}
h1, h2,  h3                {font-weight:normal;}
.goth                      {font-family: "Noto Sans JP", sans-serif;}
.min                       {font-family: 'Noto Serif JP', serif;}
.en                        {font-family: "Jost", serif;}


/* ----------------------------------------------- color */
:root {
	--color-black: #111;
	--color-white: #fff;
	--color-dark: #ddd;
	--color-light: #f3f3f3;
	--color-yellow: #ffe100;
	--color-orange	: #e9546b;
	--color-red: #e60039;
}
/* ============================================================== base */
html, body                 {height:100%;}
body                       {background-color: var(--color-black);-webkit-text-size-adjust:100%;}
.no-br                     {display:none;}
@media (min-width: 1000px){
	a[href*="tel:"]            {pointer-events: none;cursor: default;text-decoration: none;}
}
@media screen and (min-width: 1000px){
	.no-br                     {display:inline;}
}
/* ============================================================== common */
.sct {
	position: relative;
	z-index: 3;
	font-size: clamp(16px, 4vw, 20px);
	color: var(--color-black);
	background-color: var(--color-light);
	padding: 3em 1em;
}
@media screen and (min-width: 1000px){
	.sct {
		padding: 5em 1em;
	}
}
.sct_gray {
	background-color: var(--color-dark);
}
.sct_white {
	background-color: var(--color-white);
}
.inr {
	position: relative;
	z-index: 2;
	margin: 0 auto;
	max-width: 1000px;
}
.box {
	position: relative;
	z-index: 2;
	display: block;
}
.ttl {
	text-align: center;
	margin-bottom: 2em;
	letter-spacing: 0.2em;
}
.ttl span {
	display: inline-block;
	position: relative;
}
.ttl span::before,
.ttl span::after {
	content: "";
	display: block;
	position: absolute;
	width: 1.4em;
	aspect-ratio: 1 / 1;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: auto 100%;
	background-image: url("../images/ttl_deco.png");
	top: 0;
}
.ttl span::before {
	left: -1.8em;
}
.ttl span::after {
	right: -1.8em;
	transform: scale(-1, 1);
}
.lead {
	margin: 0 0 2em;
}
.inr p:not(.btn) a {
	color: var(--color-red);
}
.ls {
	display: grid;
	gap: 0.4em;
}
.ls li {
	position: relative;
	display: block;
	padding-left:1.4em;
	background-repeat:no-repeat;
	background-position: 0 0.4em;
	background-size: 0.8em auto;
}
.ls li::before {
	font-size: 40%;
	line-height: 1;
	content: "";
	display: block;
	position: absolute;
	width: 2em;
	aspect-ratio: 2 / 1;
	left: 0;
	top: 1.2em;
	border-left: 0.4em solid var(--color-orange);
	border-bottom: 0.4em solid var(--color-orange);
	transform: rotate(-45deg);
}
/* ----------------------------------------------- btn */
.btn {
	text-align: center;
	padding: 3em 0 2em;
}
.btn a {
	display: inline-block;
	background-color: color-mix(in srgb, var(--color-red) 90%, #000);
	color: #fff;
	padding: 0.5em 1.5em;
	margin: 0 0.5em;
	border-radius: 3em;
	text-decoration: none;
	font-size: 92.5%;
}
@media screen and (min-width: 750px){
	.btn a {
		transition: 0.3s;
	}
	.btn a:hover {
		background-color: color-mix(in srgb, var(--color-red) 100%, #000);
	}
}
/* ----------------- external link */
.ext i::after {
	font-size: 60%;
	content: "";
	display: inline-block;
	width: 1em;
	aspect-ratio: 1 / 1;
	margin-left: 0.5em;
	vertical-align: top;
	line-height: 1;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 100% 100%;
	background-image: url("../images/ico_external.svg");
}
.btn .ext i::after {
	background-image: url("../images/ico_external_w.svg");
}
/* ----------------- overlay */
.overlay {
	position: fixed;
	z-index: 99999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(to bottom right, rgba(238,238,238,0.01), rgba(238,238,238,1));
	background-color: #000;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-image: url("../images/loading-05.gif");
	opacity: 1;
	transition: 3s;
	pointer-events: none;
}
.overlay.show {
	opacity: 0;
}
/* ----------------- youtube */
.youtube {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.youtube iframe {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}
/* ----------------- video */
.video {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
}
.video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0 none;
	vertical-align: top;
}

/* ============================================================== header */
.sct.h {
	position: fixed;
	padding: 0;
	width: 100%;
	z-index: 5;
	top: 0;
	left: 0;
	background-color: transparent;
	transition: 0.3s;
	background: linear-gradient(to bottom, rgba(255,255,255,0.9) 0, rgba(255,255,255,0.9) 2em, transparent 100%);
	background: rgba(255,255,255,0);
}
.scrl_bgn .h {
	background-color: rgba(255,255,255,0.8);
}
.h_ttl {
	font-size: 100%;
	width: 11em;
	padding: 0.7em 1.5em;
	transition: 0.3s;
}
.scrl_bgn .h_ttl {
	opacity: 1;
}

/* ============================================================== gn */
.gn_set {
	position: fixed;
	padding: 0;
	top: 0;
	right: 0;
	z-index: 99;
}
.anchor {
	position:absolute;
	margin-top: -4.4em;
	height:0;
	padding: 0;
}

/* ----------------------------------------------- hamburger */
.gn_btn         {background: transparent;font-size: 180%;width: 2.4em;height: 2.4em;top: 0;right: 0;line-height: 1;position: absolute;text-align: center;z-index: 93;cursor: pointer;}
.gn_btn i       {position: relative;display: block;text-align: center;}
.gn_btn:before,
.gn_btn:after,
.gn_btn i {background: #000;width: 1.2em;height: 2px;left: calc(50% - 0.6em);position: absolute;content: "";display: block;transition: 0.2s;box-shadow: 0 0 none;}
.lower .gn_btn:before,
.lower .gn_btn:after,
.lower .gn_btn i ,
.scrl_bgn .gn_btn:before,
.scrl_bgn .gn_btn:after,
.scrl_bgn .gn_btn i {
	background-color: #000;
}
.gn_btn i {top: calc(50% - 1px);}
.gn_btn:before  {top:calc(50% - 0.4em - 2px);}
.gn_btn:after   {top:calc(50% + 0.4em - 0px);}
.gn_show .gn_btn:before,
.gn_show .gn_btn:after     {top:1.3em;height:2px;}
.gn_show .gn_btn:before    {transform:rotate(45deg);}
.gn_show .gn_btn:after     {transform:rotate(-45deg);}
.gn_show .gn_btn i   {display:none;}

/* ----------------------------------------------- navigation */
.gn                        {background:var(--color-light);color:var(--color-black);width:20em;height:100vh;top:0;right:-20em;position:fixed;z-index:2;overflow:scroll;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:0.2s;}
.gn_bg                     {top:0;left:0;position:fixed;z-index:1;background:rgba(255,255,255,0);width:100%;height:100vh;transition:0.2s;display:none;}
/*
 .gn_show                   {overflow-y:hidden;position:fixed;}
 */
.gn_show .c                {-webkit-filter:blur(5px);filter:blur(5px);}
.gn_show .gn               {right:0;box-shadow:-3px 0 3px rgba(0,0,0,0.2);}
.gn_show .gn_bg            {background:rgba(0,0,0,0.1);display:block;}


@media screen and (min-width: 1000px){
	.gn_show .gn_bg,
	.gn_bg,
	.gn_btn                    {display:none;}
	.gn_set {
		background-color: transparent;
	}
	.gn {
		right: 0;
		width: auto;
		height: auto;
		overflow: visible;
		position: relative;
		background: transparent;
		display: grid;
		align-items: center;
		margin: 0 0 0 auto;
		padding: 1em 1em 0 0;
	}
}
@media screen and (min-width: 1140px){
	.gn {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
	}
}
/* ----------------------------------------------- sns */
.gn_sns {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5em;
	width: 11em;
	margin: 1.5em 1.5em 1em;
}
@media screen and (min-width: 1000px){
	.gn_sns {
		font-size: 65%;
		gap: 1.6em;
		width: 12em;
		margin: 0 2.6em 0 auto;
	}
	.gn_sns a {
		opacity: 0.75;
		transition: 0.3s;
	}
	.gn_sns a:hover {
		opacity: 1;
	}
}
/* ----------------------------------------------- list */
.gn_lst                    {padding:0 0 1em;}
.gn_lst li                 {
	margin:0;
	padding:0;
	position:relative;
	border-bottom: 1px solid color-mix(in srgb, var(--color-black) 15%, transparent);
}
.gn_lst li:last-child      {border-bottom: 0 none;}
.gn_lst li span,
.gn_lst li a {
	color: var(--color-black);
	position:relative;
	line-height:1;
	padding: 1em 2em;
	display:block;
	white-space: nowrap;
}
.gn_lst li a i {
	display: block;
	position: relative;
	z-index: 3;
}
.gn_lst > li > a {
	position: relative;
}
.gn_lst .gn_txt a:not(.ext)::after,
.gn_lst > li > a::after {
	content: "";
	display: block;
	position: absolute;
	height: 0.5em;
	aspect-ratio: 1 / 1;
	right: 1em;
	top: calc(50% - 0.25em);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	background-color: #666;
}
.gn_lst li:has(ul) div > ul {
	background-color: color-mix(in srgb, var(--color-black) 95%, transparent);
}
.gn_lst li:has(ul) ul li {
	margin: 0;
}
.gn_lst li:has(ul) ul li:last-of-type {
	border: 0 none;
}
.gn_lst li:has(ul) ul li a {
	padding: 0.5em 2em;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 50% 50%;
}
.gn_lst li:has(ul) ul li a i {
	color: var(--color-black);
	display: inline-block;
	position: relative;
	z-index: 3;
}
.gn_lst li:has(ul) .gn_txt li a {
	padding: 1em 2em;
}

@media screen and (min-width: 1000px){
	.gn_lst {
		width: 36em;
		width: fit-content;
		display: flex;
		justify-content: flex-end;
		padding: 0 1em 0 0;
		margin: 0 0 0 auto;
		font-size: 80%;
	}
	.gn_lst li {
		flex: auto;
		padding: 0;
		margin-left: 1em;
		text-align: center;
		border-bottom: 0 none;
	}
	.gn_lst li li {
		text-align: left;
	}
	.gn_lst li span,
	.gn_lst li a {
		padding: 1em;
		position: relative;
		display: block;
	}
	.gn_lst .gn_txt a:not(.ext)::after,
	.gn_lst > li > a::after {
		display: none;
	}
	.gn_lst > li > a::before {
		content: "";
		display: block;
		position: absolute;
		width: 0;
		height: 1px;
		bottom: 0.4em;
		left: 50%;
		background-color: color-mix(in srgb, var(--color-black) 80%, transparent);
		transition: 0.2s;
	}
	.gn_lst > li > a:hover::before {
		width: 80%;
		left: 10%;
	}
	.gn_lst li:has(ul) > span {
		position: relative;
		z-index: 3;
		cursor: pointer;
	}
	.gn_lst li:has(ul) > span::after {
		content: "";
		display: block;
		position: absolute;
		height: 0.3em;
		aspect-ratio: 3 / 2;
		right: 0;
		top: calc(50% - 0.15em);
		clip-path: polygon(0 0, 100% 0, 50% 100%);
		background-color: #fff;
	}
	.gn_lst li:has(ul) > div {
		position: absolute;
		display: grid; 
		grid-template-rows: 0fr;
		transition: 0.3s;
		opacity: 0;
		padding: 0;
		width: 15em;
	}
	.gn_lst li:has(ul) > div.gn_img {
		width: 18em;
	}
	.gn_lst li:has(ul):hover > div {
		opacity: 1;
		grid-template-rows: 1fr;
	}
	.gn_lst li:has(ul) div > ul {
  		overflow: hidden;
	}
	.gn_lst li:has(ul) li a::before {
		content: "";
		display: block;
		position: absolute;
		width: 100%;
		height: 0;
		bottom: 0;
		left: 0;
		background-color: color-mix(in srgb, var(--color-dark) 70%, #000);
		background: linear-gradient(to bottom, transparent 0, var(--color-dark) 100%);
		transition: 0.3s;
	}
	.gn_lst li:has(ul) li a:hover::before {
		height: 100%;
	}
	.gn_lst .gn_img li a {
		padding: 0.8em 2em !important;
	}
}

/* ============================================================== kv */
.sct_kv {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 50% 0;
	background-image: url("../images/kv_01.png");
	aspect-ratio: 1 / 1;
	display: grid;
	align-content: center;
	align-items: center;
}
/*
.sct_kv::before {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: linear-gradient(to bottom, rgba(255,255,255,0.9) 0, rgba(255,255,255,0.9) 4em, transparent 12em, transparent 100%);
	background: rgba(255,255,255,0.5);	
}
*/
.sct_kv .inr {
	width: 50%;
	position: relative;
	text-align: center;
	z-index: 5;
	aspect-ratio: 1 / 1;
	display: grid;
	align-content: center;
	padding: 0 0 2em;
}
.sct_kv .inr i {
	display: block;
	letter-spacing: 0.2em;
	line-height: 2;
	font-size: 120%;
}
@media screen and (min-width: 1000px){
	.sct_kv {
		aspect-ratio: 16 / 9;
	}
	.sct_kv .inr {
		padding: 0 0 4em;
	}
	.sct_kv .inr i {
		font-size: 150%;
	}
}

/* ============================================================== about */
.sct_about {
	background-color: var(--color-white);
}
.sct_about .inr {
	max-width: 1200px;
}
.sct_about .lead {
	margin: 0 auto 3em;
	max-width: 1000px;
}
.sct_about .lst {
	display: grid;
	text-align: center;
	gap: 2em 1em;
}
.sct_about .lst .box {
	text-decoration: none;
	color: var(--color-black);
}
.sct_about .lst .box .fig {
	margin-bottom: 0.5em;
	position: relative;
	border-radius: 0.5em;
	overflow: hidden;
	display: block;
}
.sct_about .lst .box .fig::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 3;
	top: 0.2em;
	left: 0.2em;
	width: calc(100% - 0.4em - 2px);
	height: calc(100% - 0.4em - 2px);
	pointer-events: none;
	border-radius: 0.5em;
	border: 1px solid #fff;
}
@media screen and (min-width: 750px){
	.sct_about .lst {
		grid-template-columns: repeat(3, 1fr);
	}
	.sct_about .lst .box .fig img {
		transition: 0.3s;
	}
	.sct_about .lst .box:hover .fig img {
		transform: scale(1.05);
	}
}
/* ============================================================== shop */
.sct_shop {
	padding: 3em 0 0;
	background-color: var(--color-yellow);
	background-color: color-mix(in srgb, var(--color-yellow) 20%, #fff);
}
.sct_shop .inr {
	padding: 0 1em;
}
.sct_shop .lst {
	margin-top: 2em;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}
@media screen and (min-width: 750px){
	.sct_shop .lst {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (min-width: 1000px){
	.sct_shop .lst {
		grid-template-columns: repeat(4, 1fr);
	}
}
@media screen and (min-width: 1250px){
	.sct_shop .lst {
		grid-template-columns: repeat(6, 1fr);
	}
}

/* ============================================================== space */
.sct_space .inr {
	display: grid;
	gap: 1em;
	max-width: 1200px;
}
.sct_space .inr .txt p {
	margin-bottom: 1em;
}
@media screen and (min-width: 750px){
	.sct_space .inr {
		grid-template-columns: 1fr 1fr;
		gap: 7%;
		align-items: center;
	}
	.sct_space .inr .txt p {
		line-height: 2;
	}
}

/* ============================================================== vr */
.sct_vr .inr {
	display: grid;
	gap: 1em;
	max-width: 1200px;
}
.sct_vr .inr .txt p {
	margin-bottom: 1em;
}
@media screen and (min-width: 750px){
	.sct_vr .inr {
		grid-template-columns: 1fr 1fr;
		gap: 7%;
		align-items: center;
	}
	.sct_vr .inr .fig {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
	}
	.sct_vr .inr .txt {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
	}
	.sct_vr .inr .txt p {
		line-height: 2;
	}
}

/* ============================================================== access */
.sct_access {
	padding: 0;
	display: grid;
}
.sct_access .txt {
	padding: 3em 2em 2em;
}
.sct_access dl {
	display: grid;
	grid-template-columns: 7em 1fr;
	margin: 0 auto;
	padding: 0.8em 0;
	max-width: 30em;
	border-bottom: 1px solid #ccc;
}
.sct_access dl:last-of-type {
	border-bottom: 0 none;
}
.sct_access dt {
	color: var(--color-orange);
	color: color-mix(in srgb, var(--color-orange) 80%, #000);
}
.sct_access .fig {
	aspect-ratio: 4 / 3;
	background-repeat: no-repeat;
	background-size: cover;
	background-image: url("../images/foot_ext.jpg");
	max-height: 24em;
	width: 100%;
}
.gmap {
	margin: 0 auto;
	width: 100%;
	position : relative;
	aspect-ratio: 4 / 3;
	overflow : hidden;
	max-height: 24em;
}
@media screen and (min-width: 1000px){
	.sct_access {
		grid-template-columns: 1fr 1fr;
	}
	.sct_access .fig {
		aspect-ratio: unset;
		height: 100%;
		max-height: unset;
	}
	.gmap {
		aspect-ratio: 2 / 1;
		grid-column: 1 / 3;
	}
}

.gmap iframe {
	position : absolute;
	top : 0;
	left : 0;
	height: 100%;
	width: 100%;
	vertical-align: top;
	border: 0 none;
/*
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	filter: grayscale(100%);
*/
}
/* ============================================================== footer */
.sct_f {
	background: var(--color-dark);
	color: var(--color-black);
	padding: 3em 0;
}
.sct_f .logo {
	text-align: center;
	margin: 0 auto 0.5em;
	max-width: 240px;
}
.copyright {
	text-align: center;
	font-size: 75%;
}
/* ----------------------------------------------- pagetop */
.ptop {
	font-size: clamp(14px, 5vw, 25px);
	border: 1px solid var(--color-black);
	width:3em;
	height:3em;
	line-height:3em;
	text-align:center;
	position:fixed;
	z-index:19;
	right:0.5em;
	bottom:0.5em;
	cursor:pointer;
	border-radius:50%;
	transition:0.2s;
	opacity:0;
	transform: translate(0,90px);
	display:block;
	background-color: rgba(255,255,255,0.5);
}
.ptop::before,
.ptop::after {
	content: "";
	display: block;
	position: absolute;
}
.ptop::before {
	width: 1px;
	left: calc(50% - 0.5px);
	top: 20%;
	height: 60%;
	background-color: var(--color-black);	
}
.ptop::after {
	width: 1.2em;
	aspect-ratio: 1 / 1;
	border-top: 1px solid var(--color-black);
	border-right: 1px solid var(--color-black);
	transform: rotate(-45deg);
	left: calc(50% - 0.6em);
	top: 0.7em;
}
.ptop:hover {
	box-shadow: 0 0 2px rgba(169,139,84,0.5);
	opacity: 0.8;
}
.ptop span {
	display: block;
	padding-top: 1.1em;
}
.ptop i {
	display:block;
	display: none;
	font-size: 60%;
	line-height: 1.2;
	text-align: center;
}
.scrl_bgn .ptop {
	opacity: 0.6;
	transform: translate(0,0);
}
