 @charset "UTF-8";


/* *********************************
   common.css

	- Variable
	- Reset
	- Base
	- Layout
	- Navigation
	- Component
	- Animation
	- Utility

********************************* */



/* ========================================================
  
  Variable

======================================================== */
:root {
	--fw-bold: 600;

	--font-min: normal normal 400 100%/1.6 "Shippori Mincho", serif;
	--font-en: normal normal 400 100%/1 "Ysabeau Office", sans-serif;

	--color-base: #3b322b;
	--color-bdr: #c4c2bf;

	--color-ppl: #8c8bc7;
	--color-nvy: #006dab;
	--color-blu: #6cabd2;
	--color-lgrn: #85c15b;
	--color-yel-200: #f8f8bd;
	--color-yel: #ffff6a;
	--color-mus: #d1c762;
	--color-red: #bf6140;
	--color-org: #fcb349;
	--color-org-500: #e79a00;
	--color-org-600: #d68a3e;
	--color-pnk: #fc9ba7;
	--color-sand: #ce897c;
	--color-sand-100: #e6c4bd;
	--color-sand-200: #d59b90;
	--color-bei: #eeeedd;
	--color-bei-500: #e8dfc6;
	--color-ivo: #f8f8f1;
	--color-gry: #c4c2bf;
	--color-brw: #665852;
	--color-brw-300: #a48b60;
	--color-brw-600: #564841;
	--color-och: #bb9a56;
	--color-och-200: #cecb94;

	--accent-color: var(--color-sand);

	--border-solid: 1px solid var(--color-bdr);
	--border-dash: 1px dashed #cfc4c6;

	--radius-lg: min(5.5vw,60px);
}

.u-accent-ppl { --accent-color: var(--color-ppl );}
.u-accent-nvy { --accent-color: var(--color-nvy );}
.u-accent-blu { --accent-color: var(--color-blu );}
.u-accent-lgrn { --accent-color: var(--color-lgrn );}
.u-accent-org { --accent-color: var(--color-org );}
.u-accent-org-600 { --accent-color: var(--color-org-600 );}
.u-accent-pnk { --accent-color: var(--color-pnk );}
.u-accent-sand { --accent-color: var(--color-sand );}
.u-accent-brw { --accent-color: var(--color-brw );}
.u-accent-brw-300 { --accent-color: var(--color-brw-300 );}
.u-accent-och { --accent-color: var(--color-och );}

.u-accent-primary { --accent-color: var(--color-primary);}
.u-accent-secondary { --accent-color: var(--color-secondary);}

.u-accent-news { --accent-color: #54b4e4;}
.u-accent-column { --accent-color: #e79a53;}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

:root {
	--radius-lg: 8vw;
}
}


/* ========================================================
  
  Reset

======================================================== */
*, *::before, *::after {
	box-sizing: border-box;
}

div,
dl,dt,dd,ul,ol,li,
h1,h2,h3,h4,h5,h6,
pre,form,fildset,p,blockquote,
figure,figcaption,hr {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font-style: normal;
	font-weight: inherit;
}

ul{
	list-style:none;
}

img{
	display: block;
    /* width: 100%; */
    max-width: 100%;
    height: auto;
    /* object-fit: cover; */
}

picture {
	display:block;
}

table {
	width:100%;
	font-size:inherit;
	font:100%;
	border-collapse:separate;
	border-spacing:0;
}

button {
	display: block;
	padding: 0;
	border: none;
	outline: none;
	font: inherit;
	color: inherit;
	background: none;
	cursor: pointer;
}






/* ========================================================
  
  Base

======================================================== */
html {
	font-size: 16px;
}
body {
	font-family: "Hiragino Kaku Gothic ProN","Hiragino Sans","游ゴシック","Yu Gothic",Meiryo,sans-serif;
	font-style: normal;
	color: var(--color-base);
	letter-spacing: .08em;
	line-height: 2;
	font-feature-settings: "halt";
	margin: 0;
	-webkit-text-size-adjust: 100%;
}

main {
	position: relative;
}

a {
	color: inherit;
	text-decoration: none;
	outline: 0;
	transition: color .8s, background-color .8s;
}

address {
	font-style: normal;
}

section {
	position: relative;
}

main {
	position: relative;
}

cite {
	display: block;
	font-size: min(1.5vw,100%);
	letter-spacing: normal;
	font-style: normal;
	line-height: 1.4;
	margin-top: 1em;
}

sup {
	font-size:60%;
}

hr {
	display: block;
	height: 1px;
	background: var(--color-bdr);
	width: 100%;
	border: none;
	margin: 6% auto;
}

b {font-weight: var(--fw-bold);}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

body {
	line-height: 1.8;
}
}

@media(min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
html {
	font-size: 4vw;
}
body {
	line-height: 1.7;
	letter-spacing: .04em;
}
cite {
	font-size: 80%;
}
hr {
	margin: 12% auto;
}
}






/* ========================================================
  
  Layout

======================================================== */
.l-wrapper {
	overflow: clip;
	position: relative;
}

.site-bg {
	position: absolute;
	background-color: var(--color-ivo);
	inset: 0;
	width: 100vw;
	height: 100%;
	z-index: -10;
}

/*-----------------------------------------------
 Layout - header
-----------------------------------------------*/
.l-header {
	position: relative;
	width: 100%;
	inset: 0 0 auto 0;
	padding: min(3.5vw,35px) min(3vw,45px) 0;
	z-index: 100;
	transition: background-color .5s, padding-top .5s, opacity .8s;
}
.l-header__left {
	position: relative;
	width: 30vw;
	max-width: 379px;
	/* white-space: nowrap; */
}
.c-logo {
	display: block;
}
.l-header__txt {
	position: absolute;
	width: 27vw;
	font-size: min(1.06vw,81%);
	line-height: 1.3;
	letter-spacing: .02em;
	/* white-space: nowrap; */
	left: 32%;
	bottom: 78%;
}

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-header__inbox {
	display: flex;
	justify-content: space-between;
}
.l-header__right {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	column-gap: 3%;
	width: 60%;
	max-width: 770px;
}

.l-header.is-fixed {
	position: fixed;
	background-color: rgb(255 255 255 / 0.9);
	padding-top: 24px;
	padding-bottom: 0;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-header {
	padding: 5vw;
}

.l-header__left {
	width: 58vw;
}

.l-header__txt {
	width: 55vw;
	font-size: 2.2vw;
	letter-spacing: normal;
}

.l-header__right {
	display: none;
}
}

/*-----------------------------------------------
 Layout - l-nav-area
-----------------------------------------------*/
.l-header:not(.is-fixed) .l-nav {
	translate: 0 50%;
	background-color: #fff;
}


/*-----------------------------------------------
 Layout - drawer
-----------------------------------------------*/
.l-drawer__inner {
	color: #FFF;
	padding: 10% 6%;
}
.l-drawer__icon {
	width: 16vw;
	margin: 0 auto 10%;
}
.l-drawer__index {
	position: relative;
	font: var(--font-min);
	font-size: 105%;
	line-height: 1.4;
	margin-top: 1.4em;
	margin-bottom: .6em;
}
.l-drawer__index::before {
	font-family: 'fontello';
	content: '\e807';
	font-weight: normal;
}

.l-drawer .l-bnr {
	background-color: #fff;
}
.l-drawer .l-bnr__rec {
	display: none;
}


/*-----------------------------------------------
 Layout - footer
-----------------------------------------------*/
footer {
	position: relative;
	color: #FFF;
	background-color: var(--color-brw);
}

/* Layout - footer - l-f-info
-----------------------------------------------*/
.l-f-info {
	padding-top: 1px !important;
}
footer iframe {
	display: block;
	height: auto;
	aspect-ratio: 590 / 480;
}
.l-f-info__col2 {
	display: grid;
	text-align: center;
	row-gap: 7vw;
}
footer address {
	margin: 1.2em 0 1.4em;
}

.l-f-info .c-timetable-wrap {
	background-color: var(--color-ivo);
}

.l-f-info__parking {
	width: 90%;
	max-width: 26em;
	font-size: min(1.6vw,112%);
	font-weight: var(--fw-bold);
	line-height: 1.5;
	background-color: var(--color-brw-600);
	padding: .6em 1em;
	margin: 1.2em auto 0;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-f-info__col2 {
	max-width: 1220px;
	justify-content: space-between;
	grid-template-columns: min(47%,550px) 48.5%;
	margin-inline: auto;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-f-info__parking {
	font-size: 105%;
}
}

/* Layout - footer - l-f-btm
-----------------------------------------------*/
.l-f-btm {
	position: relative;
	color: #FFF;
	background-color: var(--color-brw-600);
	padding: 80px 5%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-f-btm__inner {
	max-width: 1260px;
	display: grid;
	align-items: flex-end;
	grid-template-columns: 26% 74%;
	column-gap: 2%;
	margin-inline: auto;
}
.l-f-btm__bnr {
	grid-column: 1/3;
	grid-row: 2/3;
}
.l-f-btm__bnr {
	grid-column: 1/3;
	grid-row: 2/3;
}
.l-f-btm__copy {
	grid-column: 1/2;
	grid-row: 1/2;
}
.l-f-btm .c-acd__trigger {
	display: none;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-f-btm {
	padding: 15% 5% 22vw;
}

.l-f-btm .c-acd {
	border: 1px solid #a69e9b;
}
.l-f-btm .c-acd__trigger {
	text-align: center;
	padding: .6em;
}
}


/* Layout - footer - l-sitemap
-----------------------------------------------*/
.l-f-btm__index {
	color: #948a86;
	font-size: min(1.6vw,100%);
	font-weight: var(--fw-bold);
	line-height: 1.2;
	margin-bottom: 1em;
}
.l-f-btm__index .u-font-en {
	font-size: 125%;
}
.l-sitemap__col2 .l-f-btm__index {
	margin-top: 1.2em;
}

.l-sitemap ul {
	display: grid;
	gap: .8em;
	font-size: min(1.2vw,87%);
	line-height: 1.5;
	letter-spacing: .08em;
	white-space: nowrap;
}
.l-sitemap a:hover {
	color: var(--color-yel);
}
.l-sitemap__col2 {
	display: flex;
	column-gap: 6%;
}
/* menu_col */
.l-sitemap .menu_col.col__2 {
	grid-template-columns: repeat(2,auto);
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-sitemap .c-acd__content {
	display: flex;
	column-gap: 10%;
	width: 100%;
	max-width: 910px;
}
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 1279px) {

.l-sitemap__main .l-sitemap__col2 {
	display: block;
}
.l-sitemap ul {
	font-size: 1.4vw;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-sitemap .c-acd__content {
	padding: 3% 5% 6%;
}
.l-f-btm__index {
	font-size: 90%;
	margin-bottom: .8em;
}

.l-sitemap__med {
	margin-top: 8%;
}

.l-sitemap ul {
	gap: .6em;
	font-size: 80%;
}
}

/* Layout - footer - l-f-btm__bnr
-----------------------------------------------*/
.l-f-btm__bnr {
	display: grid;
	grid-template-columns: repeat(3,min(32%,330px));
	gap: 1em 1%;
	margin-top: 60px;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-f-btm__bnr {
	grid-template-columns: repeat(2,49%);
	gap: .5em 2%;
	margin-top: 8%;
}
}

/* Layout - footer - l-f-btm__copy
-----------------------------------------------*/
.l-f-btm__copy img {
	width: 60%;
	max-width: 160px;
}
/* copyright */
.copyright {
	display: block;
	font-size: min(1.2vw,100%);
	line-height: 1.8;
	white-space: nowrap;
	margin-top: 1.5em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-f-btm__copy {
	display: flex;
	align-items: flex-end;
	column-gap: 8%;
	margin-top: 6%;
}
.l-f-btm__copy img {
	width: 18%;
}
/* copyright */
.copyright {
	font-size: 75%;
	line-height: 1.6;
}
}


/*-----------------------------------------------
 Layout - sp_footer
-----------------------------------------------*/
#sp_footer {
	position: fixed;
	width: 100%;
	background-color: #857975;
	inset: auto 0 0 0; 
	z-index: 100;
}
#sp_footer .c-cta-list {
	width: 100%;
	flex-wrap: nowrap;
}
#sp_footer .c-cta-btn {
	width: 28.4%;
}
#sp_footer .c-cta-btn a {
	height: 100%;
	text-align: left;
}
#sp_footer .c-btn-insta {
	width: 14.8%;
	max-width: 100%;
}
#sp_footer .c-btn-insta a {
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

#sp_footer {
	display: none !important;
}
}

/*-----------------------------------------------
 Layout - FV
-----------------------------------------------*/
.l-fv {
	position: relative;
	width: 100%;
}
.l-fv__img {
	position: relative;
	height: 100%;
}


/*-----------------------------------------------
 Layout - float
-----------------------------------------------*/
.l-flt {
	position: relative;
	text-align: left;
	margin-inline: auto;
}
.l-flt::after {
	content: "";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
.l-flt__img {
	position: relative;
	max-width: max-content;
}
.l-flt__img .abs {
	position: absolute;
}

.l-flt .c-list {
	margin-top: 1em;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-flt__img {
	width: 40%;
	margin-bottom: .8em;
}

.l-flt .is-right {
	float: right;
}
.l-flt .is-left {
	float: left;
}

.l-flt__img.is-left {
	margin-right: 5%;
}
.l-flt__img.is-right {
	margin-left: 5%;
}

.l-flt__txt {
	
}
.l-flt__txt.is-left,
.l-flt__txt.is-right {
	width: 55%;
}
.l-flt__txt .c-hdg--min {
	text-align: left;
}

.l-flt .c-list {
	row-gap: 1em;
}
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

.l-flt__img.is-w {
	width: 45%;
}
.l-flt__txt {
	width: 100% !important;
	float: none !important;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-flt__img {
	width: 80%;
	margin: 0 auto 6%;
}
.l-flt__img.is-w {
	width: 96%;
}
}

/*-----------------------------------------------
 Layout - box
-----------------------------------------------*/

/* Layout - box - l-box--wide
-----------------------------------------------*/
.l-box--wide {
	position: relative;
	width: 95vw;
	max-width: 1380px;
	background-color: #FFF;
	padding: 8% 5%;
	left: 50%;
	translate: -50% 0;
}
.l-box--wide__inner {
	max-width: 1100px;
	margin-inline: auto;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-box--wide {
	padding: 10% 6%;
}
}

/* Layout - box - l-box--bg
-----------------------------------------------*/
.l-box--bg {
	position: relative;
	background-color: #fff;
	padding: min(6%,60px) 4%;
	margin-inline: auto;
}
.l-box--bg .l-flt {
	margin-inline: auto;
}
.l-box--bg__inner {
	max-width: 1100px;
	margin-inline: auto;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-box--bg {
	padding: 8% 6%;
}
}


/*-----------------------------------------------
 Layout - l-cta-wrap
-----------------------------------------------*/
.l-cta-wrap .c-cta-btn--tel::after {
	position: absolute;
	content: "";
	background: url(../images/common/contact-pose@2x.png) no-repeat center bottom;
	background-size: contain;
	width: 10vw;
	max-width: 130px;
	aspect-ratio: 1;
	bottom: 100%;
	right: 10%;
	pointer-events: none;
}
.l-cta-wrap .c-txt--fuki {
	font-size: min(2vw,125%);
	font-weight: var(--fw-bold);
}
.l-cta-wrap .c-txt--fuki::before,
.l-cta-wrap .c-txt--fuki::after {
	height: 1.9em;
	background-color: transparent;
	border-left: 1px dashed currentColor;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-cta-wrap .c-txt--fuki::before {
	right: calc(100% + 3em);
}
.l-cta-wrap .c-txt--fuki::after {
	left: calc(100% + 3em);
}

.l-cta-wrap .c-cta-btn {
	position: static;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-cta-wrap .c-txt--fuki {
	font-size: 90%;
}

.l-cta-wrap .c-cta-btn--tel a {
	justify-content: flex-start;
	padding: 1em 8%;
}
.l-cta-wrap .c-cta-btn--tel::after {
	width: 25%;
	bottom: 0;
	right: 2%;
}
}


/*---------------------------------------------------------
 Layout - l-case
---------------------------------------------------------*/
.l-case {
	text-align: center;
}
.l-case .splide__track {
	overflow: visible;
}
.l-case .splide__slide {
	max-width: 570px;
}
.l-case .splide__slide a {
	display: block;
	background-color: #fff;
	padding: 5% 6%;
	border-radius: 10px;
	box-shadow: 0 0 10px rgb(0 0 0 / 0.1);
	transition: translate .5s;
}
.l-case__ba {
	position: relative;
	display: grid;
	justify-content: space-between;
	grid-template-columns: 46% 46%;
}
.l-case__ba::before {
	position: absolute;
	content: "";
	background: url(../images/top/case-arrow.svg) no-repeat;
	background-size: contain;
	width: 2.4%;
	height: 14%;
	inset: 0;
	margin: auto;
}
.l-case__ba > div {
	aspect-ratio: 230/150;
}
.l-case__ba > div img {
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}
.l-case__tit {
	position: relative;
	text-align: left;
	font-weight: var(--fw-bold);
	line-height: 1.5;
	padding-left: 1.4em;
	margin-top: 1em;
}
.l-case__tit::before {
	position: absolute;
	font-family: 'fontello';
	content: '\e802';
	font-weight: normal;
	color: var(--color-gry);
	left: 0;
	top: 0;
	transition: color .8s;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-case .splide__slide a:hover {
	translate: 0 -10px;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-case {
	width: 90%;
	margin-inline: auto;
}
.l-case .splide__slide a {
	padding: 5%;
}
.l-case__tit {
	font-size: 90%;
}
}


/*-----------------------------------------------
 Layout - l-qa
-----------------------------------------------*/
.l-qa__item {
	background-color: #fff;
	padding: 0 2.4%;
	border-radius: 5px;
	transition: padding .5s;
	margin-bottom: 5px;
}
.l-qa__item:has(.is-active) {
	padding-bottom: 20px;
}
.l-qa__q,
.l-qa__a {
	position: relative;
}
.l-qa__q {
	padding: 1.4em 0 1.4em 7.5%;
}
.l-qa__q .c-hdg--min {
	padding-right: 1.5em;
	margin-bottom: 0;
}
.l-qa__q .c-acd__icon {
	position: absolute;
	right: 2%;
	top: 50%;
	translate: 0 -50%;
}
.l-qa__q .c-acd__icon::before,
.l-qa__q .c-acd__icon::after {
	width: .8em;
	height: .2em;
}
.l-qa__a {
	background-color: #f4f4ea;
	padding: 1.2em 3.5% 1.2em 7.5%;
}
.l-qa__q::before,
.l-qa__a::before {
	position: absolute;
	display: block;
	text-align: center;
	font: var(--font-en);
	font-size: min(5vw,3.1rem);
	line-height: 1;
	white-space: nowrap;
	left: 4.3%;
	top: .25em;
	translate: -50% 0;
}
.l-qa__q::before {
	content: "Q";
	color: var(--color-mus);
}
.l-qa__a::before {
	content: "A";
	color: var(--color-brw-300);
	top: .4em;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-qa__q::before {
	top: 45%;
	translate: -50% -50%;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-qa__item {
	padding: 0 3%;
}
.l-qa__item:has(.is-active) {
	padding-bottom: 15px;
}
.l-qa__q,
.l-qa__a {
	padding-left: 12vw;
}
.l-qa__q {
	padding: 1.2em 0 1.2em 12vw;
}
.l-qa__q .c-acd__icon {
	right: 2%;
}
.l-qa__a {
	padding: 1em 6% 1em 12vw;
}
.l-qa__q::before,
.l-qa__a::before {
	font-size: 8vw;
	left: 7%;
}
.l-qa__q::before {
	top: .45em;
}
}


/*-----------------------------------------------
 Layout - l-bnr
-----------------------------------------------*/
.l-bnr {
	padding: min(6vw,60px) 5% min(8vw,90px);
}
.l-bnr__inner {
	display: grid;
	justify-content: space-between;
}
.l-bnr__wp {
	align-self: center;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-bnr__inner {
	max-width: 1210px;
	grid-template-columns: 27% 16.5% 52%;
	margin-inline: auto;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-bnr {
	padding: 10% 6% 14%;
}
.l-bnr__inner {
	grid-template-columns: 57% 35%;
	row-gap: 1.2em;
}

.l-bnr .c-bnr-insta {
	grid-column: 2/3;
	grid-row: 1/2;
}
.l-bnr .l-bnr__rec {
	grid-column: 1/3;
	grid-row: 2/3;
}
}

/* Layout - l-bnr - l-bnr__rec
-----------------------------------------------*/
.l-bnr__rec {
	position: relative;
	color: #FFF;
	background: linear-gradient(to right, #d9868e 30%, #cd8b56);
	font-size: min(1.4vw,1rem);
	font-weight: var(--fw-bold);
	line-height: 1.5;
	letter-spacing: .1em;
	white-space: nowrap;
	padding: 4%;
}

.l-bnr__rec .u-font-en {
	position: absolute;
	font-size: 360%;
	letter-spacing: .1em;
	line-height: 0.6;
	opacity: 0.3;
	left: .2em;
	top: 0;
}

.l-bnr__rec__txt {
	margin-left: 5%;
	margin-bottom: .4em;
}
.l-bnr__rec__txt span {
	display: block;
	color: var(--color-yel-200);
	font-size: 143%;
}

.l-bnr__rec ul {
	display: grid;
	justify-content: space-between;
	grid-template-columns: 48% 48%;
	font-size: 118%;
	letter-spacing: .15em;
}
.l-bnr__rec ul a {
	position: relative;
	height: 5em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	background-color: #fff;
	border-radius: .52em;
	padding-bottom: .3em;
}
.l-bnr__rec ul a p {
	color: var(--accent-color);
}
.l-bnr__rec ul .c-icon {
	position: absolute;
	color: #FFF;
	font-size: 70%;
	font-weight: normal;
	background-color: var(--color-blu);
	border: .28em solid #FFF;
	box-sizing: content-box;
	inset: auto 0 -0.5em 0;
	margin: auto;
}
.l-bnr__rec ul > li:nth-of-type(2) .c-icon {
	background-color: #deba72;
}
.l-bnr__rec ul a:hover .c-icon {
	background-color: var(--accent-color);
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.l-bnr__rec {
	display: grid;
	justify-content: space-between;
	align-items: flex-end;
	grid-template-columns: 32% 64%;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-bnr__rec {
	font-size: 90%;
	padding: 5% 5% 6%;
}
.l-bnr__rec__txt {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: .6em;
	margin-bottom: .8em;
}

.l-bnr__rec .u-font-en {
	font-size: 280%;
}
.l-bnr__rec ul {
	font-size: 105%;
}
}



/*---------------------------------------------------------
 Layout - modal
---------------------------------------------------------*/
.l-modal {
	width: 94%;
	max-width: 810px;
	background: transparent;
	border: none;
	padding: 0;
	opacity: 0;
	transition:
        opacity .6s,
        translate .6s,
        overlay .6s allow-discrete,
        display .6s allow-discrete;
		overflow: visible;
}
.l-modal[open] {
	opacity: 1;
	translate: 0 0;
	@starting-style {
		opacity: 0;
	}
}
.l-modal::backdrop {
	opacity: 0;
	background: rgba(51,51,51,0.8);
	transition: opacity .6s;
}
.l-modal[open]::backdrop {
	opacity: 1;
	@starting-style {
		opacity: 0;
	}
}

.l-modal__box {
	text-align: center;
	padding: 0 2em;
}

.l-modal button {
	position: relative;
	font-size: 0;
	width: 75px;
	aspect-ratio: 1;
	margin-left: auto;
	margin-bottom: 2%;
}
.l-modal button::before,
.l-modal button::after {
	position: absolute;
	display: block;
	content: "";
	background: #FFF;
	width: 100%;
	height: 1px;
	left: 0;
	top: 50%;
}
.l-modal button::before {
	rotate: 45deg;
}
.l-modal button::after {
	rotate: -45deg;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

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

#modalCont {
	width: 95%;
}

.l-modal button {
	width: 12vw;
	margin-bottom: 2%;
}

.l-modal__box {
	padding: 0;
}
}





/* ========================================================
  
  Navigation

======================================================== */

/*-----------------------------------------------
 Navigation - l-nav
-----------------------------------------------*/
.l-nav {
	position: relative;
	width: 100%;
	max-width: 1080px;
	max-width: max-content;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	column-gap: 2em;
	font-size: min(1.4vw,1rem);
	font-weight: var(--fw-bold);
	line-height: 1.3;
	font-feature-settings: "palt";
	padding: 0 3em; 
	border-radius: 1.5em;
	margin-left: auto;
}
.l-nav > li {
	position: relative;
}
.l-nav > li > a {
	position: relative;
	display: block;
	text-align: center;
	padding: 1.1em 0;
}
.l-nav > li.menu_hom > a:not(:hover) {
	color: var(--color-gry);
}
.l-nav > li.menu_hom i {
	font-size: 110%;
}

.l-nav > li > a:hover,
.l-nav > li.is-active > a {
	color: var(--color-sand);
}
.l-nav > li > a br {
	display: none;
}
.l-nav > li:has(.l-nav__inmenu.l-nav__inmenu--wide) {
	position: static;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

.l-nav > li > a br {
	display: block;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.l-nav {
	display: none;
}
}

/* Navigation - l-nav - l-nav__inmenu
-----------------------------------------------*/
.l-nav__inmenu {
	display: none;
	position: absolute;
	width: 20em;
	font-size: min(1.4vw,1rem);
	line-height: 1.3;
	right: 50%;
	top: calc(100% + 1em);
	translate: 50% 0;
	color: var(--color-brw);
	background: #FFF;
	padding: 2em;
	border-radius: 1.5em;
	box-shadow: 0 0 10px rgb(0 0 0 / 0.2);
	z-index: 999;
}
.l-nav__inmenu.l-nav__inmenu--wide {
	width: 90vw;
	max-width: 1230px;
	padding: 2.2em 2.4em;
	right: 0;
	translate: none;
}
.l-nav > li:last-child .l-nav__inmenu {
	right: -50%;
	translate: none;
}

/* list */
.l-nav__inmenu.l-nav__inmenu--long li:nth-of-type(n+2) {
	border-top: var(--border-dash);
}
.l-nav__inmenu.l-nav__inmenu--long li a {
	position: relative;
	display: block;
	padding: 1.2em 0;
	padding-left: 1.2em;
}
.l-nav__inmenu.l-nav__inmenu--long li a::before {
	position: absolute;
	display: inline-block;
	content: "";
	color: var(--color-sand);
	width: 0.5em;
	height: 0.5em;
	vertical-align: 0.15em;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	rotate: 45deg;
	left: 0;
	top: 1.5em;
}
.l-nav__inmenu.l-nav__inmenu--long li a:hover {
	color: var(--color-sand);
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

.l-nav__inmenu {
	font-size: min(1.5vw,1.06rem);
}
}


/*-----------------------------------------------
 Navigation - menu
-----------------------------------------------*/

/* Navigation - menu - c-menu-arw
-----------------------------------------------*/
.c-menu-arw {
	display: grid;
	justify-content: space-between;
	row-gap: .6em;
	font-size: min(1.6vw,1rem);
	font-weight: var(--fw-bold);
	letter-spacing: .14em;
	font-feature-settings: "halt";
	line-height: 1.3;
}
.c-menu-arw > li > a {
	position: relative;
	height: 4.2em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: #FFF;
	background-color: var(--color-sand-200);
	border-radius: .2em;
	padding: .2em 2em .2em 1em;
}
.c-menu-arw > li > a::before {
	position: absolute;
	display: block;
	font-family: 'fontello';
	content: '\e801';
	color: var(--color-base);
	text-align: center;
	line-height: 1.4;
	width: 1.4em;
	background-color: #f0dcd8;
	border-radius: 50%;
	font-weight: normal;
	right: 1em;
	top: 50%;
	translate: 0 -50%;
}
.c-menu-arw > li > a.is-active::before {
	rotate: 90deg;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-menu-arw {
	grid-template-columns: repeat(2,49.2%);
	row-gap: .4em;
	font-size: 3.2vw;
	letter-spacing: .08em;
}
.c-menu-arw > li.is-wide {
	grid-column: 1/3;
}
}

/* Navigation - menu - c-menu-med
-----------------------------------------------*/
.c-menu-med {
	max-width: 1160px;
	display: grid;
	justify-content: space-between;
	row-gap: .6em;
	color: var(--color-brw);
	text-align: center;
	font-size: min(1.5vw,1.12rem);
	font-weight: var(--fw-bold);
	letter-spacing: .12em;
	line-height: 1.3;
	font-feature-settings: "palt";
	margin-inline: auto;
}
.c-menu-med > li > a {
	position: relative;
	height: 4.5em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background-color: var(--color-ivo);
	padding: .5em;
	border-radius: .5em;
	transform: translateZ(0);
	transition: box-shadow .5s, background .5s;
}
.c-menu-med > li > a:hover {
	background-color: #fffecc;
}

.c-menu-med > li.menu_pri > a > div::before {background-image: url(../images/common/icon-price.svg);}

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.c-menu-med {
	grid-template-columns: repeat(6,min(200px,16%));
}
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

.c-menu-med {
	grid-template-columns: repeat(5,19%);
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-menu-med {
	grid-template-columns: repeat(3,32.3%);
	row-gap: .5em;
	font-size: 3.2vw;
}
}

/* Navigation - menu - c-menu-etc
-----------------------------------------------*/
.c-menu-etc {
	display: flex;
	justify-content: center;
	gap: .6em 1em;
	text-align: center;
	color: var(--color-brw);
	font-size: min(1.6vw,1.24rem);
	font-weight: var(--fw-bold);
	letter-spacing: .12em;
	line-height: 1.3;
	margin-top: 2em;
}
.c-menu-etc > li > a {
	position: relative;
	width: 14em;
	max-width: 100%;
	height: 3.2em;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background-color: #FFF;
	padding: .5em;
	border-radius: 100vmax;
	border: 2px solid #a48b60;
}
.c-menu-etc > li > a > div {
	position: relative;
	display: inline-block;
	padding-left: 2em;
	padding-right: 1.6em;
}
.c-menu-etc > li > a > div::before {
	position: absolute;
	content: "";
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	width: 1.4em;
	height: 1.2em;
	left: 0;
	top: 50%;
	translate: 0 -50%;
	transition: background-color .5s;
}
.c-menu-etc > li > a > div::after {
	position: absolute;
	display: block;
	font-family: 'fontello';
	content: '\e801';
	text-align: center;
	font-size: 80%;
	line-height: 1.5;
	width: 1.5em;
	background-color: var(--color-bei-500);
	border-radius: 50%;
	font-weight: normal;
	right: 0;
	top: 50%;
	translate: 0 -50%;
}
.c-menu-etc > li > a:hover {
	background-color: var(--color-ivo);
}
.c-menu-etc > li.c-menu-etc__price > a > div::before {
	background-image: url(../images/common/icon-price.svg);}
.c-menu-etc > li.c-menu-etc__case > a > div::before {
	background-image: url(../images/common/icon-case.svg);}

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

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

.c-menu-etc {
	column-gap: 2%;
	font-size: 3.2vw;
	margin-top: 6%;
}
.c-menu-etc > li {
	width: 50%;
}
.c-menu-etc > li > a {
	border-width: 1px;
}

.l-spmenu .c-menu-etc {
	display: grid;
	justify-content: space-between;
	grid-template-columns: repeat(3,32.3%);
	gap: .5em 0;
	font-weight: var(--fw-bold);
	margin-top: .5em;
}
.l-spmenu .c-menu-etc > li {
	width: 100%;
}
.l-spmenu .c-menu-etc > li > a {
	position: relative;
	height: 4.5em;
	display: flex;
	padding: .5em;
	border-radius: .5em;
	border: none;
}
.l-spmenu .c-menu-etc > li > a > div {
	padding: 1.6em 0 0 0;
}
.l-spmenu .c-menu-etc > li > a > div::before {
	left: 50%;
	top: 0;
	translate: -50% 0;
}
.c-menu-etc > li > a > div::after {
	display: none;
}
}




/* ========================================================
  
  Component

======================================================== */


/*-----------------------------------------------
 Component - text
-----------------------------------------------*/
.c-txt--link {
	text-decoration: underline;
	text-underline-offset: .1em;
}
.c-txt--link:hover {
	text-decoration: none;
	color: var(--accent-color);
}

.c-txt--asterisk {
	display: block;
	color: #76706b;
	font-size: 87%;
	line-height: 1.6;
	letter-spacing: .08em;
	text-indent: -1em;
	padding-left: 1em;
	margin-top: 1em;
}
ul.c-txt--asterisk {
	display: grid;
}

.c-txt--radi {
	position: relative;
	text-align: center;
	font-size: min(2vw,112%);
	font-weight: var(--fw-bold);
	letter-spacing: .08em;
	line-height: 1.3;
	color: #FFF;
	background-color: var(--accent-color);
	border-radius: 100vmax;
	padding: .8em 1.2em;
}

.c-txt--bbl {
	position: relative;
	display: inline-block;
	text-align: center;
	font-size: min(2.2vw,175%);
	font-weight: var(--fw-bold);
	letter-spacing: .12em;
	line-height: 1.25;
	color: #FFF;
	background-color: var(--accent-color);
	border-radius: 1.2em;
	padding: .7em 1.6em;
	margin-bottom: 1.6em;
}
.c-txt--bbl::before {
    position: absolute;
    display: block;
    content: "";
	background-color: inherit;
    width: 1.4em;
    height: 1em;
	border-radius: .3em;
	left: 36%;
	bottom: 0;
	transform: skewX(45deg);
	rotate: 45deg;
    z-index: -1;
}

.c-txt--temp {
	position: relative;
	text-align: center;
	font: var(--font-min);
	letter-spacing: .08em;
	line-height: 1.3;
	color: #FFF;
	background-color: var(--accent-color);
	border-radius: 100vmax;
	padding: .2em 1.2em;
}

.c-txt-center {
	text-align: center;
	font-size: 112%;
	font-weight: var(--fw-bold);
	line-height: 1.8;
	margin-top: 2em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-txt--asterisk {
	font-size: 78%;
	letter-spacing: .04em;
}

.c-txt--radi {
	font-size: 105%;
	letter-spacing: .04em;
	padding: .8em;
}

.c-txt--bbl {
	font-size: 105%;
}

.c-txt-center {
	font-size: 105%;
	line-height: 1.6;
	margin-top: 1.6em;
}
}


/*-----------------------------------------------
 Component - scroll
-----------------------------------------------*/
.scl-area {
	position: relative;

	--scr-bg-color: #e2e0df;
}
.scl-txt {
	display: block;
	text-align: center;
	color: #9194A1;
	font-size: 80%;
	line-height: 1.4;
	margin-bottom: 1em;
}
/* scrollbar */
.scl-area::-webkit-scrollbar {
	width: 4px;
	height: 4px;
}

.scl-area::-webkit-scrollbar-track {
	background: var(--scr-bg-color);
	border-radius: 2px;
}

.scl-area::-webkit-scrollbar-thumb {
	background-color: var(--color-brw);
	border-radius: 2px;
	cursor: grab;
}

.scl-area::-webkit-scrollbar-thumb:hover {
	background-color: #555;
}

/* Firefox */
@-moz-document url-prefix(){
.scl-area {
	scrollbar-width: thin;         /* auto, thin, none */
	scrollbar-color: var(--color-brw) transparent; /* thumb track */
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.scl-area {
	overflow-x: scroll;
	padding-bottom: 8%;
}
}

/*-----------------------------------------------
 Component - accordion
-----------------------------------------------*/
.c-acd {
	position: relative;
}
.c-acd__trigger {
	position: relative;
	cursor: pointer;
	transition: color .5s, background-color .5s;
}
.c-acd__content {
	display: none;
}
.c-acd__trigger.is-active + .c-acd__content {
	display: block;
}
/*c-acd__icon*/
.c-acd__icon {
	position: relative;
	letter-spacing: normal;
	line-height: 1.0em;
	display: inline-block;
	vertical-align: middle;
	width: 1.2em;
	aspect-ratio: 1;
	border-radius: 50%;
	translate: 0 -0.1em;
	transition: background-color .5s;
}
.c-acd__icon::before,
.c-acd__icon::after {
	content: "";
	position: absolute;
	width: .6em;
	height: 1px;
	background: currentcolor;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}
.c-acd__icon::after {
	transform: rotate(90deg);
	transition: transform 0.4s;
}
.is-active .c-acd__icon::after {
	transform: rotate(0deg);
}

/*-----------------------------------------------
 Component - hover
-----------------------------------------------*/
.c-hover--zoom {
	position: relative;
	overflow: hidden;
}
.c-hover--zoom img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translateZ(0);
	transition: scale .6s;
}
a:hover .c-hover--zoom img {
	scale: 1.08;
}


/*-----------------------------------------------
 Component - contact
-----------------------------------------------*/

/* Component - contact - c-tel
-----------------------------------------------*/
.c-tel__txt {
	font-size: 90%;
	font-weight: var(--fw-bold);
	line-height: 1.5;
	margin-bottom: .4em;
}
.c-tel-no {
	font: var(--font-en);
	font-size: min(3vw,194%);
	font-weight: 600;
	letter-spacing: .05em;
	white-space: nowrap;
}
.c-tel-no::before {
	font-family: 'fontello';
	content: '\e803';
	font-size: 90%;
	font-weight: normal;
	margin-left: -0.1em;
}

.l-header__right .c-tel-no {
	font-size: min(3vw,217%);
}
.c-cta-wrap .c-tel-no::before {
	color: #c1a363;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-tel__txt {
	font-size: 90%;
}
.c-tel-no {
	/* font-size: 6vw; */
	font-size: 8vw;
}
}

/* Component - contact - c-cta-btn
-----------------------------------------------*/
.c-cta-btn {
	position: relative;
}
.c-cta-btn a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	column-gap: .5em;
	max-width: 100%;
	height: 4.3em;
	text-align: center;
	font-size: min(2.4vw,173%);
	font-weight: var(--fw-bold);
	letter-spacing: .15em;
	line-height: 1.2;
	white-space: nowrap;
	color: #FFF;
	padding: .2em 1em;
	transition: filter .5s;
}
.c-cta-btn a img {
	width: 2.45em;
}
.c-cta-btn a small {
	display: block;
	text-align: center;
	font-size: 54%;
	letter-spacing: .14em;
	padding: 0 .6em .6em;
	margin-bottom: .8em;
	border-bottom: 1px solid currentColor;
}
.c-cta-btn a p:last-child span {
	color: var(--color-yel);
	font-size: 104%;
}
.c-cta-btn a:hover {
	filter: brightness(1.05);
}

.c-cta-btn--tel a {
	background-color: #e1b31c;
}
.c-cta-btn--tel .c-tel-no {
	font-size: 128%;
}
.c-cta-btn--rsv a {
	background-color: #eb898a;
}
.c-cta-btn--line a {
	background-color: #a2c92a;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.c-cta-wrap .c-cta-btn a small {
	font-size: 67%;
}
.c-cta-wrap .c-cta-btn a {
	font-size: min(1.4vw,120%);
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-cta-btn a {
	font-size: 3.7vw;
}
.c-cta-btn a small {
	font-size: 82%;
	letter-spacing: .08em;
	padding: 0 .2em .6em;
	margin-bottom: .4em;
}
.c-cta-btn--tel .c-tel-no {
	font-size: 7.4vw;
}
}

/* Component - contact - c-cta-wrap
-----------------------------------------------*/
.c-cta-wrap {
	position: relative;
	display: flex;
	column-gap: 1%;
}
.c-cta-wrap .c-tel {
	margin-right: 2%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.c-cta-wrap .c-cta-btn a {
	font-size: min(1.4vw,115%);
}

.l-header .c-cta-wrap {
	font-size: min(1.15vw,1rem);
}
.l-header .c-cta-wrap .c-cta-btn a {
	font-size: 120%;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-cta-wrap {
	flex-wrap: wrap;
	row-gap: 1em;
}
.c-cta-wrap > div {
	width: 49%;
}
.c-cta-wrap .c-tel {
	width: 100%;
	text-align: center;
}
/* .c-cta-wrap .c-tel a {
	display: flex;
	align-items: center;
	justify-content: center;
	column-gap: 1em;
} */
.c-cta-wrap .c-tel__txt {
	margin-bottom: 0;
}
}

/* Component - contact - c-cta-list
-----------------------------------------------*/
.c-cta-list {
	position: relative;
	width: 90%;
	max-width: 1020px;
	display: flex;
	margin-inline: auto;
}

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.c-cta-list > div {
	flex: 1;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-cta-list {
	width: 82vw;
	max-width: 100%;
	flex-wrap: wrap;
}
.c-cta-list > div {
	width: 50%;
}
.c-cta-list .c-cta-btn--tel {
	width: 100%;
}
.c-cta-list .c-cta-btn--tel a {
	height: auto;
	padding: .8em 1.5em;
}
}


/*---------------------------------------------------------
 Component - info
---------------------------------------------------------*/
address {
	font-size: min(1.6vw,100%);
	line-height: 1.6;
	/* letter-spacing: .1em; */
}
.c-cliname {
	font: var(--font-min);
	font-size: min(3vw,281%);
	letter-spacing: .15em;
	line-height: 1.4;
	font-feature-settings: "palt";
	margin-bottom: .4em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

address {
	font-size: 82%;
}
.c-cliname {
	font-size: 150%;
}
}

/* Component - info - c-timetable
-----------------------------------------------*/
.c-timetable-wrap {
	max-width: 550px;
	background-color: #f0f0e0;
	padding: 6% 5%;
	border-radius: 10px;
}

.c-timetable {
	width: 100%;
	max-width: 445px;
	color: var(--color-base);
	font-size: min(1.5vw,1rem);
	font-weight: var(--fw-bold);
	line-height: 1.2;
	border-collapse: separate;
	border-spacing: 0 .3em;
	margin-inline: auto
}
.c-timetable th,
.c-timetable td {
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
}
.c-timetable th {
	width: 34%;
	letter-spacing: .14em;
}
.c-timetable td {
	width: 9.4%;
}
.c-timetable thead th,
.c-timetable thead td {
	font-size: 115%;
	letter-spacing: -0.1em;
	padding-bottom: .8em;
}
.c-timetable thead th {
	letter-spacing: .3em;
}
.c-timetable tbody th {
	text-align: right;
	font: var(--font-en);
	font-size: 134%;
	letter-spacing: .05em;
	padding-right: .8em;
}
.c-timetable tbody th span {
	vertical-align: 0.05em;
}
.c-timetable tbody td {
	color: var(--color-org-500);
	font-size: 94%;
	font-weight: normal;
	vertical-align: middle;
}
.c-timetable tbody td.closed {
	color: inherit;
}
.c-timetable caption {
	caption-side: bottom;
	white-space: wrap;
	background-color: #efe7b9;
	padding: .6em 1em;
	margin-top: 1em;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.c-timetable {
	font-size: 3.2vw;
}
}

/* Component - info - c-schedule
-----------------------------------------------*/
.c-schedule {
	display: flex;
	flex-wrap: wrap;
	gap: .2em 1em;
	font-weight: normal;
	line-height: 1.4;
	letter-spacing: .12em;
	margin-top: 1em;
}
.c-schedule span {
	color: var(--color-och);
}
.c-timetable .c-schedule {
	font-size: min(1.5vw,1rem);
	margin-top: .2em;
}
.com_cta_wrap + .c-schedule {
	justify-content: center;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-schedule {
	font-size: 85%;
	letter-spacing: .08em;
	font-feature-settings: "halt";
	margin-top: .8em;
}
.c-timetable .c-schedule {
	font-size: 95%;
}
}

/* Component - info - c-acs-list
-----------------------------------------------*/
.c-acs-list {
	display: flex;
	gap: .5em 4%;
	text-align: left;
	font-size: min(1.3vw,1rem);
	font-weight: var(--fw-bold);
	letter-spacing: .1em;
	line-height: 1.4;
	white-space: nowrap;
	margin-top: 1.4em;
}
.c-acs-list li {
	display: flex;
	align-items: center;
	gap: 1em;
	padding-right: 3%;
	border-right: 1px solid var(--color-bdr);
}
.c-acs-list li img {
	width: 2.5em;
}
.c-acs-list li:last-child {
	padding-right: 0;
	border: none !important;
}

footer .c-acs-list {
	justify-content: center;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-acs-list {
	gap: .5em 2em;
	text-align: center;
	font-size: 75%;
	letter-spacing: .06em;
	margin-top: 6%;
	margin-inline: auto;
}
.c-acs-list li {
	display: block;
}
.c-acs-list li img {
	margin: 0 auto .8em;
}
}

/* Component - info - c-card-list
-----------------------------------------------*/
.c-card-list {
	max-width: 504px;
	display: flex;
	justify-content: center;
	column-gap: 1.98%;
	margin-inline: auto;
}
.c-card-list li {
	width: 15.7%;
}

footer .c-card-list {
	margin-top: 2em;
}
footer .c-card-list + p {
	padding-top: 1.6em;
	margin-top: 1.6em;
	border-top: 1px dashed currentColor;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-card-list {
	column-gap: 1.98%;
}
}

/* Component - info - c-cln-point
-----------------------------------------------*/
.c-cln-point {
	position: relative;
	display: flex;
}
.c-cln-point li {
	width: 23.8%;
	max-width: max-content;
	filter: drop-shadow(0 0 10px rgb(0 0 0 / 0.2));
	will-change: filter;
}

footer .c-cln-point {
	margin: -4.5% auto 5%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

footer .c-cln-point {
	width: 80%;
	max-width: 755px;
	justify-content: center;
	column-gap: 1.6%;
	margin-inline: auto;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-cln-point {
	width: 104vw;
	left: 50%;
	translate: -50% 0;
}
.c-cln-point li {
	width: 27%;
}
.c-cln-point li:nth-of-type(n+2) {
	margin-left: -2.6%;
}

footer .c-cln-point {
	margin-top: -8%;
}
}


/*-----------------------------------------------
 Component - heading
-----------------------------------------------*/
/* c-hdg--min */
.c-hdg--min {
	position: relative;
	font: var(--font-min);
	font-size: min(187%,2.6vw);
	line-height: 1.6;
	letter-spacing: .1em;
	font-feature-settings: "halt";
	margin-bottom: .5em;
}
.c-hdg--min small {
	display: inline-block;
	font-size: 85%;
}
.c-hdg--min.has-bdr {
	text-align: center;
}
.c-hdg--min.has-bdr::after {
	display: block;
	content: "";
	background-color: var(--accent-color);
	width: 25%;
	height: 1px;
	max-width: 200px;
	margin: 1em auto 4%;
}

.c-hdg--bar {
	position: relative;
	font: var(--font-min);
	font-size: min(2.2vw,137%);
	line-height: 1.4;
	letter-spacing: .12em;
	font-feature-settings: "halt";
	padding-left: .8em;
	margin-bottom: .6em;
}
.c-hdg--bar::before {
	position: absolute;
	content: "";
	display: block;
	/* background-color: var(--accent-color); */
	background-color: var(--color-sand);
	width: .22em;
	height: 1em;
	left: 0;
	top: .2em;
}
.c-hdg--bar small {
	display: block;
	font-size: 82%;
	padding: .1em 0;
}

/* c-hdg--var */
.c-hdg--var {
	position: relative;
	font: var(--font-min);
	font-size: min(2vw,117%);
	line-height: 1.5;
	letter-spacing: .16em;
	white-space: nowrap;
	writing-mode: vertical-rl;
}
.c-hdg--var > span span {
	color: var(--accent-color);
}

/* c-hdg--bg */
.c-hdg--bg {
	position: relative;
	text-align: center;
	color: #FFF;
	font: var(--font-min);
	font-size: min(187%,2.8vw);
	line-height: 1.3;
	letter-spacing: .16em;
	background: url(../images/common/path-corner@2x.png) no-repeat left top;
	background-size: 3em auto;
	background-color: var(--accent-color);
	padding: 1em;
	margin-bottom: 1.8em;
}

.c-hdg--bdr {
	position: relative;
	text-align: center;
	color: var(--accent-color);
	font: var(--font-min);
	font-size: min(3vw,218%);
	line-height: 1.4;
	letter-spacing: .1em;
	padding-bottom: .8em;
	margin-bottom: 1.4em;
	border-bottom: 1px solid currentColor;
}
.l-box--bg .c-hdg--bdr {
	font-size: min(2.8vw,187%);
}

.c-hdg--bbl {
	position: relative;
	text-align: center;
	font-weight: var(--fw-bold);
	line-height: 1.5;
	letter-spacing: .08em;
	border-radius: .5em;
	padding: .8em 1em;
	margin-bottom: .6em;
}
.c-hdg--bbl::before {
	position: absolute;
	content: "";
	background-color: inherit;
	width: 1.1em;
	height: .7em;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	inset: auto 0 -0.6em 0;
	margin: auto;
}

.c-hdg--radi {
	position: relative;
	text-align: center;
	color: #FFF;
	font-size: min(2.1vw,125%);
	font-weight: var(--fw-bold);
	line-height: 1.4;
	letter-spacing: .1em;
	background-color: var(--color-sand);
	border-radius: 2em;
	padding: .6em;
	margin-bottom: 1.2em;
}

.c-hdg--bld {
	position: relative;
	font-size: min(2.4vw,164%);
	font-weight: var(--fw-bold);
	line-height: 1.5;
	letter-spacing: .12em;
	margin-bottom: .5em;
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

/* c-hdg--min */
.c-hdg--min {
	letter-spacing: .05em;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-hdg--min {
	font-size: 130%;
	line-height: 1.5;
	letter-spacing: .06em;
}
.c-hdg--min.has-bdr::after {
	width: 25%;
	margin: 1em auto 10%;
}

.c-hdg--bar {
	font-size: 110%;
	letter-spacing: .06em;
}

.c-hdg--var {
	font-size: 3.4vw;
}

.c-hdg--bg {
	font-size: 130%;
	letter-spacing: .05em;
	padding: .8em .4em;
	margin-bottom: 1.2em;
}

.c-hdg--bbl {
	font-size: 120%;
}

.c-hdg--bdr {
	font-size: 130%;
}
.l-box--bg .c-hdg--bdr {
	font-size: 120%;
}

.c-hdg--radi {
	font-size: 105%;
	letter-spacing: .05em;
	margin-bottom: .8em;
}

.c-hdg--bld {
	font-size: 115%;
	letter-spacing: .05em;
}
}

/* Component - heading - en
-----------------------------------------------*/
.c-hdg--en {
	position: relative;
	color: var(--accent-color);
	font: var(--font-en);
	font-size: min(2.2vw,1.56rem);
	letter-spacing: .1em;
	line-height: 1.2;
	margin-bottom: 1em;
}
.c-hdg--en:last-child {
	margin-bottom: 0;
}
.c-hdg--en:has(+ .c-hdg--bld) {
	margin-bottom: .2em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-hdg--en {
	font-size: 4vw;
	margin-bottom: .8em;
}
}

/* Component - heading - enjp
-----------------------------------------------*/
.c-hdg--enjp {
	font-size: min(2vw,1.56rem);
	margin-bottom: 5%;
}
.c-hdg--enjp .c-hdg--en {
	font-size: 300%;
	margin-bottom: .2em;
}
.c-hdg--enjp .c-hdg--min {
	font-size: 100%;
}

.c-hdg--jpen {
	margin-bottom: 5%;
}
.c-hdg--jpen .c-hdg--min {
	margin-bottom: .2em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-hdg--enjp {
	font-size: 100%;
	margin-bottom: 8%;
}
.c-hdg--enjp .c-hdg--en {
	font-size: 220%;
}
}

/* Component - heading - size
-----------------------------------------------*/
.u-size--20 {font-size: min(2vw,125%);}
.u-size--25 {font-size: min(2.2vw,147%);}
.u-size--28 {font-size: min(2.4vw,175%);}
.u-size--35 {font-size: min(3vw,205%);}
.u-size--40 {font-size: min(3.5vw,235%);}
.u-size--45 {font-size: min(4vw,264%);}
.u-size--50 {font-size: min(4.4vw,312%);}
.u-size--55 {font-size: min(4.8vw,343%);}
.u-size--60 {font-size: min(5.2vw,352%);}
.u-size--75 {font-size: min(6vw,468%);}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.u-size--20 {font-size: 115%;}
.u-size--25 {font-size: 115%;}
.u-size--28 {font-size: 118%;}
.u-size--35 {font-size: 135%;}
.u-size--40 {font-size: 140%;}
.u-size--45 {font-size: 145%;}
.u-size--50 {font-size: 160%;}
.u-size--55 {font-size: 160%;}
.u-size--60 {font-size: 165%;}
.u-size--70 {font-size: 170%;}
}


/*-----------------------------------------------
 Component - text_deco
-----------------------------------------------*/
.c-txt--marker {
	position: relative;
}
.c-txt--marker::before {
	position: absolute;
	content: "";
	background-color: rgba(57,158,177,0.2);
	width: 100%;
	height: .25em;
	border-radius: .2em;
	left: 0;
	bottom: -0.18em;
}
/*c-txt--fuki*/
.c-txt--fuki {
	position: relative;
	display: block;
	text-align: center;
	max-width: max-content;
	letter-spacing: .12em;
	line-height: 1.5;
	margin: 0 auto 1.2em;
}
.c-txt--fuki::before,
.c-txt--fuki::after {
	position: absolute;
	display: inline-block;
	content: "";
	background-color: currentColor;
	width: 1px;
	height: 1.4em;
	bottom: 0;
}
.c-txt--fuki::before {
	rotate: -28deg;
	right: calc(100% + 1.5em);
}
.c-txt--fuki::after {
	rotate: 28deg;
	left: calc(100% + 1.5em);
}
/*c-txt--circle */
.c-txt--circle {
    position: relative;
    display: flex;
	flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    letter-spacing: .1em;
    line-height: 1.6;
    width: min(9.5em);
	min-width: 9.5em;
	aspect-ratio: 1;
	color: #FFF;
	font-weight: var(--fw-bold);
	background-color: var(--accent-color);
    border-radius: 50%;
	transition-duration: .5s;
	transition-property: color, background-color, scale;
}
.c-circle-wrap {
	display: flex;
	justify-content: center;
	gap: 1em;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

/*c-txt--fuki*/
.c-txt--fuki {
	letter-spacing: .08em;
	margin-bottom: 1em;
}

/*c-txt--circle */
.c-circle-wrap {
	flex-wrap: wrap;
}
}


/*-----------------------------------------------
 Component - list
-----------------------------------------------*/
.c-list {
	display: grid;
	row-gap: .6em;
	text-align: left;
	line-height: 1.5;
}
.c-list > li {
	position: relative;
	padding-left: 1.4em;
}
.c-list > li::before {
	position: absolute;
	content: "";
	font-family: 'fontello';
	font-weight: normal;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	left: 0;
	top: 0;
}

.c-list--bar > li {
	padding-left: .8em;
}
.c-list--bar > li::before {
	display: block;
	background-color: var(--accent-color);
	width: 3px;
	height: .8em;
	left: 0;
	top: .3em;
}

.c-list--point > li::before {
	display: block;
	background-color: var(--accent-color);
	width: .75em;
	height: .75em;
	border-radius: 50%;
	left: 0;
	top: .35em;
}

.c-list--dot > li::before {
	content: "・";
}

.c-list--check {
	font-size: min(1.8vw,112%);
	font-weight: var(--fw-bold);
}
.c-list--check > li {
	padding-left: 1.8em;
}
.c-list--check > li::before {
	content: '\e808';
	color: #FFF;
	text-align: center;
	font-size: 66%;
	line-height: 2.1;
	width: 2.1em;
	background-color: var(--accent-color);
	border-radius: 50%;
	top: 0;
	padding: .1em 0 0 .1em;
}

.c-list--mer,
.c-list--dem {
	row-gap: 1em;
	font-size: 94%;
	font-weight: var(--fw-bold);
}
.c-list--mer > li,
.c-list--dem > li {
	padding-left: 2em;
}
.c-list--mer > li::before,
.c-list--dem > li::before {
	font-size: 130%;
	top: -0.15em;
}
.c-list--mer > li::before {
	content: '\e804';
	color: #4488c6;
}
.c-list--dem > li::before {
	content: '\e805';
	color: #b34d3a;
}

.c-list--ast {
	margin-top: 1em;
}
.c-list--ast > li {
	padding-left: 1.2em;
}
.c-list--ast > li::before {
	content: "＊";
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.c-list--col2 {
	grid-template-columns: repeat(2, 50%);
	column-gap: 1em;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-list {
	row-gap: .4em;
}

.c-list--check {
	font-size: 100%;
}

.c-med-procon .c-list {
	font-size: 90%;
}

.aster_list {
	font-size: 90%;
}
}


/*-----------------------------------------------
 Component - bg
-----------------------------------------------*/
.c-bg-color {
	position: absolute;
	background-color: #f7f7f7;
	background-repeat: no-repeat;
	background-size: contain;
	width: 100dvw;
	height: 100%;
	left: 0;
	top: 0;
	margin-inline: calc(50% - 50vw);
	z-index: -2;
	overflow: clip;
	pointer-events: none;
}

.c-bg-frame {
	position: absolute;
	background-color: inherit;
	background-color: var(--color-ivo);
	mask: url(../images/common/path-frame.svg) no-repeat center;
	-webkit-mask: url(../images/common/path-frame.svg) no-repeat center;
	mask-size: 100% 100%;
	-webkit-mask-size: 100% 100%;
	width: 100%;
	height: min(16vw,230px);
	inset: 0 0 auto 0;
}

.c-bg-img {
	position: absolute;
	height: auto;
	max-height: 100%;
	top: 0;
	z-index: -2;
	overflow: clip;
}
.c-bg-img img {
	width: 100%;
    height: 100%;
    object-fit: cover;
	object-position: center center;
	pointer-events: none;
}
.c-bg-img.is-wide {
	width: 100vw;
	-webkit-mask-image: linear-gradient(to top, transparent 10%, black 70%);
	mask-image: linear-gradient(to top, transparent 10%, black 70%);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: auto;
    mask-size: auto;
	left: calc(50% - 50vw);
}

.c-bg-img.pos-l,
.c-bg-img.pos-r {
	width: 60vw;
	max-width: 750px;
	color: var(--color-ivo);
	/* --color-bg: currentColor; */
	background-color: currentColor;
}
.c-bg-img.pos-l::after,
.c-bg-img.pos-r::after {
	position: absolute;
	content: "";
	width: 101%;
	height: 101%;
	inset: 0 0 -1% -1%;
	pointer-events: none;
	background:
		linear-gradient(to right, transparent 30%, currentColor 100%),
		linear-gradient(to bottom, transparent 50%, currentColor 100%);
	/* background:
		linear-gradient(to right, transparent 30%, currentColor 100%),
		linear-gradient(to top, transparent 50%, currentColor 100%),
		linear-gradient(to bottom, transparent 50%, currentColor 100%); */
	background-position: left -1px top, left bottom -1px;
}
.c-bg-img.pos-l {
	left: calc(50% - 50vw);
}
.c-bg-img.pos-r {
	left: auto;
	right: calc(50% - 50vw);
}
.c-bg-img.pos-r::after {
	scale: -1 1;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-bg-img.pos-l,
.c-bg-img.pos-r {
	width: 70vw;
}
.c-bg__wave.pos-r {
	right: 0;
	top: 60px;
}
}

/*-----------------------------------------------
 Component - c-icon
-----------------------------------------------*/
.c-icon {
    position: relative;
	display: inline-block;
    text-align: center;
	letter-spacing: normal;
	line-height: 1.2;
	background-color: var(--color-bei-500);
    border-radius: 50%;
    width: 1.8em;
	aspect-ratio: 1;
	transition: color .4s, background-color .4s;
	box-sizing: content-box;
}
.c-icon::before {
	position: absolute;
	display: block;
	font-family: 'fontello';
	content: '\e801';
	font-weight: normal;
	text-align: center;
	width: 100%;
	line-height: 1.8;
	left: 0;
	top: 0;
}
.c-icon.wh {
	color: var(--color-base);
	background-color: #FFF;
}
.c-icon.is-out::before {
	rotate: -45deg;
}
.c-icon.is-anc::before {
	rotate: 90deg;
}

/*-----------------------------------------------
 Component - link
-----------------------------------------------*/

/* Component - link - c-btn-radi
-----------------------------------------------*/
.c-btn-radi {
	margin-top: 1.6em;
}
.c-btn-radi > a {
	position: relative;
	width: 21em;
	height: 4.2em;
	max-width: 100%;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	text-align: left;
	font-size: min(1.6vw,0.94rem);
	font-weight: var(--fw-bold);
	letter-spacing: .15em;
	line-height: 1.2;
	background-color: #FFF;
	padding: .5em 3em .5em 2em;
	border-radius: 100vmax;
	border: 1px solid #cece9d;
}
.c-btn-radi .u-font-en {
	font-size: 166%;
}
.c-btn-radi .c-icon {
	position: absolute;
	right: 1.2em;
	top: 50%;
	translate: 0 -50%;
}

.c-btn-radi > a:hover {
	background-color: #cece9d;
}
.c-btn-radi > a:hover .c-icon {
	background-color: #FFF;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-btn-radi {
	text-align: center;
	margin-top: 1em;
}
.c-btn-radi > a {
	width: 18em;
	height: 3.8em;
	font-size: 3.6vw;
	letter-spacing: .06em;
}
.c-btn-radi .u-font-en {
	font-size: 120%;
}
}

/* Component - link - c-btn-s
-----------------------------------------------*/
.c-btn-s {
	margin-top: 1.6em;
}
.c-btn-s > a {
	position: relative;
	height: 3.3em;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	text-align: left;
	font-size: min(1.8vw,0.94rem);
	font-weight: var(--fw-bold);
	letter-spacing: .15em;
	line-height: 1.2;
	background-color: var(--color-bei-500);
	padding: .8em 2em;
	border-radius: 100vmax;
}
.c-btn-s > a:hover {
	background-color: #cece9d;
}

.l-f-info .c-btn-s > a {
	background-color: rgb(255 255 255 / 0.3);
}
.l-f-info .c-btn-s > a:hover {
	background-color: rgb(255 255 255 / 0.2);
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-btn-s {
	text-align: center;
	margin-top: 1em;
}
.c-btn-s > a {
	font-size: 3.6vw;
	letter-spacing: .06em;
}
}

/* Component - link - c-btn-icon
-----------------------------------------------*/
.c-btn-lg {
	text-align: center;
	margin-top: 2em;
}
.c-btn-lg > a {
	position: relative;
	width: 33em;
	height: 5.3em;
	max-width: 100%;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	text-align: left;
	font-size: min(1.6vw,0.94rem);
	font-weight: var(--fw-bold);
	letter-spacing: .15em;
	line-height: 1.2;
	background-color: #e8dfc6;
	padding: 1.5em 3em;
	border-radius: .6em;
}
.c-btn-lg .c-icon {
	position: absolute;
	background-color: #fff;
	right: 2em;
	top: 50%;
	translate: 0 -50%;
}
.c-btn-lg > a:hover {
	background-color: #cece9d;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-btn-lg {
	margin-top: 1em;
}
.c-btn-lg a {
	font-size: 3.4vw;
}
}

/* Component - link - c-btn-wrap
-----------------------------------------------*/
.c-btn-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 1.2%;
	margin-top: 1.4em;
}
.c-btn-wrap > * {
	margin-top: 0;
}
.c-btn-wrap.is-center {
	justify-content: center;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-btn-wrap {
	justify-content: center;
	row-gap: .6em;
}
}

/* Component - link - c-btn-insta
-----------------------------------------------*/
.c-btn-insta {
	width: 4vw;
	max-width: 60px;
}
.c-btn-insta a {
	display: block;
}

.l-header .c-btn-insta a {
	filter: drop-shadow(0 0 5px rgb(0 0 0/ 0.1));
	transition: scale .5s;
}
.l-header .c-btn-insta a:hover {
	scale: 0.9;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-btn-insta {
	width: auto;
}
}


/*-----------------------------------------------
 Component - bnr
-----------------------------------------------*/

/* Component - bnr - c-bnr-m
-----------------------------------------------*/
.c-bnr-m {
	position: relative;
	width: 48vw;
	max-width: max-content;
	margin-inline: auto;
}
.c-bnr-m__txt {
	position: absolute;
	display: inline-block;
	text-align: left;
	font-size: min(1.1vw,0.94rem);
	font-weight: var(--fw-bold);
	letter-spacing: .15em;
	line-height: 1.2;
	background-color: #FFF;
	padding: .4em 1.2em;
	border-radius: 5px;
	right: 1em;
	bottom: -0.5em;
	box-shadow: 0 0 10px rgb(0 0 0 / 0.1);
}
.c-bnr-m__txt .c-icon {
	vertical-align: -0.5em;
	margin-left: 1.2em;
}
.c-bnr-m a > .c-icon {
	position: absolute;
	font-size: min(2vw,160%);
	background-color: #fff;
	border: 3px solid #e8dfc6;
	right: 3%;
	bottom: 0;
	translate: 0 20%;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-bnr-m {
	width: 85vw;
	max-width: 100%;
}
.c-bnr-m__txt {
	font-size: 2vw;
}
.c-bnr-m a > .c-icon {
	font-size: 4vw;
	border: 3px solid #e8dfc6;
}
}


/* Component - bnr - c-bnr-wp
-----------------------------------------------*/
.c-bnr-wp {
	display: flex;
	align-items: center;
	justify-content: space-between;
	text-align: center;
	font-size: min(1.1vw,.94rem);
	font-weight: var(--fw-bold);
	letter-spacing: .12em;
	line-height: 1.3;
	white-space: nowrap;
	padding: 1.5em 0;
}
.c-bnr-wp:first-of-type {
	padding-top: 0;
}
.c-bnr-wp:last-of-type {
	padding-bottom: 0;
}

.c-bnr-wp .u-font-en {
	color: var(--color-brw);
	font-size: 266%;
	letter-spacing: .1em;
}
.c-bnr-wp .u-font-en::first-letter {
	color: var(--accent-color);
}
.c-bnr-wp p {
	position: relative;
	padding-right: 2.5em;
}
.c-bnr-wp .c-icon {
	position: absolute;
	font-size: 96%;
	right: 0;
	top: 50%;
	translate: 0 -50%;
}
.c-bnr-wp:hover .c-icon {
	color: #FFF;
	background-color: var(--accent-color);
}

.c-bnr-wp:nth-of-type(n+2) {
	border-top: var(--border-dash);
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-bnr-wp {
	font-size: 2.4vw;
}
.c-bnr-wp .u-font-en {
	font-size: 240%;
}
}

/* Component - bnr - c-bnr-insta
-----------------------------------------------*/
.c-bnr-insta a {
	position: relative;
	display: block;
	background-color: var(--color-bei);
	border-radius: 10px;
}
.c-bnr-insta .c-icon {
	position: absolute;
	font-size: min(1.3vw,96%);
	right: 4%;
	bottom: 5%;
}
.c-bnr-insta a:hover {
	background-color: #ffeef9;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-bnr-insta .c-icon {
	font-size: 2.4vw;
}
}


/*---------------------------------------------------------
 Component - slider
---------------------------------------------------------*/
.c-slide--ticker .splide__track {
	overflow: visible;
}
.c-slide--ticker .splide__slide {
	width: 33vw;
	max-width: max-content;
}
.c-slide--scrollbar .splide__track {
	touch-action: pan-y;
	cursor: grab;
	padding-bottom: 1.8em;
}
/* scrollbar */
.c-scrollbar {
	position: relative;
	width: 100%;
	height: 4px;
	background: #eaeceb;
	overflow: hidden;
}
.c-scrollbar__thumb {
	height: 100%;
	width: 10%; /* 初期表示 */
	background: #d1d4d3;
	cursor: grab;
	transition: width .3s ease;
}
/* dot */
.c-slide--fade .splide__pagination {
	gap: 14px;
	margin-top: 15px;
}
.c-slide--fade .splide__pagination button {
	display: block;
	background-color: #FFF;
	border: none;
	border-radius: 50%;
	width: 7px;
	height: 7px;
	padding: 0;
	opacity: 0.4;
	transition: opacity .5s;
	cursor: pointer;
	outline: none;
}
.c-slide--fade .splide__pagination button.is-active,
.c-slide--fade .splide__pagination button:hover {
	opacity: 1;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-slide--ticker .splide__slide {
	width: 50vw;
}
.c-slide--ticker.is-large .splide__slide {
	width: 60vw;
}
}


/*-----------------------------------------------
 Component - decoration
-----------------------------------------------*/
.c-deco-shadow {
	position: absolute;
	content: "";
	background: url(../images/common/shadow@2x.png) no-repeat center top;
	background-size: contain;
	width: 90vw;
	height: 100px;
	inset: 0 0 auto 0;
	margin: auto;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {


}



/* ========================================================
  
  Animation

======================================================== */
.u-anm--fade,
.u-anm--fadelist > li {
	opacity: 0;
	transition: opacity 2s ease;
}
.is-animated .u-anm--fade,
.is-animated.u-anm--fade,
.u-anm--fadelist.is-animated > li {
	opacity: 1;
}
.u-anm--fadelist > li:nth-of-type(2) {transition-delay: .2s}
.u-anm--fadelist > li:nth-of-type(3) {transition-delay: .4s}
.u-anm--fadelist > li:nth-of-type(4) {transition-delay: .6s}
.u-anm--fadelist > li:nth-of-type(5) {transition-delay: .8s}
.u-anm--fadelist > li:nth-of-type(6) {transition-delay: 1.0s}
.u-anm--fadelist > li:nth-of-type(7) {transition-delay: 1.2s}

.u-anm--up {
	opacity: 0;
	translate: 0 10px;
	transition: opacity 1s .2s, translate 1s .2s;
}
.is-animated .u-anm--up,
.is-animated.u-anm--up{
	opacity: 1;
	translate: 0 0;
}

.u-anm--zoom {
	opacity: 0;
	scale: 0.8;
	transition: scale .6s .3s, opacity .6s .4s;
}
.is-animated .u-anm--zoom,
.is-animated.u-anm--zoom {
	opacity: 1;
	scale: 1;
}

/*PC,Tablet
------------------------------------------*/
@media only screen and (min-width: 768px) {

.u-anm--fade:nth-of-type(2) {transition-delay: .2s}
.u-anm--fade:nth-of-type(3) {transition-delay: .4s}
}

/* Animation: c-path
---------------------------------------------------------*/
/* c-path-draw */
.c-path-draw {
	position: absolute;
	width: 30vw;
	max-width: 450px;
	fill: none;
	stroke: url(#grad);
	stroke-width: 24;
	stroke-linecap: round;
	stroke-linejoin: round;

	stroke-dasharray: 1000px;
    stroke-dashoffset: 1000px;
}
.c-path-draw.is-animated {
    animation: LINE_DRAW 2s both;
}

.c-path-draw.orange {
	stroke: url(#grad-orange);
}
.c-path-draw.purple {
	stroke: url(#grad-purple);
}

/* c-path-arch */
.c-path-arch {
	position: absolute;
	max-width: 225px;
	fill: none;
	stroke: currentColor;
}
.c-path-arch.is-masked {
	fill: none;
	stroke: white;
	stroke-width: 5;

	stroke-dasharray: 300;
	stroke-dashoffset: 300;
}
.c-path-arch.is-masked.is-animated {
    animation: LINE_DRAW_MASK 2s .2s forwards;
}

.c-path-arch .dotted {
	width: 100%;
	height: 100%;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	stroke-dasharray: 1 9;
	stroke-dashoffset: 0;
}

@keyframes LINE_DRAW {
  0% {
    stroke-dashoffset: 1000px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}
@keyframes LINE_DRAW_MASK {
  to {
    stroke-dashoffset: 0px;
  }
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.c-path-draw {
	width: 60vw;
}
}



/* ========================================================
  
  Utility

======================================================== */
/* font */
.u-font-min {
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	letter-spacing: .06em;
}
.u-font-en {
	font: var(--font-en);
	letter-spacing: .1em;
	line-height: 1;
	font-optical-sizing: auto;
}

/* Font-weight */
.u-fw--bld{font-weight: var(--fw-bold);}
.u-fw--normal{font-weight: normal;}

/* Font-size */
.u-fz--xs{font-size: 88%;}
.u-fz--sm{font-size: 94%;}
.u-fz--lg{font-size: 112%;}

/* Line-height */
.u-lh--sm{line-height: 1.5;}
.u-lh--lg{line-height: 2;}

/* Text-align */
.u-align--l{text-align:left;}
.u-align--r{text-align:right;}
.u-align--c{text-align:center;}
.u-align--l-sp{text-align:center;}

/* Block-link */
.blocklink,
.blocklink_out,
.blocklink_ank{
	cursor:pointer;
}

/* text color */
.u-color--accent { color: var(--accent-color);}
.u-color--sand { color: var(--color-sand);}
.u-color--red { color: var(--color-red);}
.u-color--org { color: var(--color-org);}
.u-color--yel { color: var(--color-yel);}
.u-color--wine { color: var(--color-wine);}
.u-color--brw-300 { color: var(--color-brw-300);}

/* background color */
.u-bg--wh {background-color: #fff;}
.u-bg--ivo {background-color: var(--color-ivo);}
.u-bg--bei {background-color: var(--color-bei);}

/* img */
img.size-max {
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

/* radius */
.u-rounded--full {border-radius:50%;}
.u-rounded--10px {border-radius: 10px;}
.u-rounded--20px {border-radius: min(2.4vw,20px);}
.u-rounded--30px {border-radius: min(2.6vw,30px);}
.u-rounded--50px {border-radius: clamp(30px,4.5vw,50px);}
.u-rounded--60px {border-radius: clamp(40px,5vw,60px);}


/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

/* Font-weight */
.u-fz--lg{font-size: 105%;}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

/* Text-align */
.u-align--l-sp{text-align:left;}
.u-align--c-sp{text-align:center;}

/* Font-weight */
.u-fz--xs{font-size: 90%;}
.u-fz--lg{font-size: 100%;}
}


/*-----------------------------------------------
 Utility - border/padding
-----------------------------------------------*/
.u-pdg--s,
.u-pdg--m,
.u-pdg--l {
	position: relative;
}
.u-pdg--s {
	padding: min(6vw,80px) 0;
}
.u-pdg--m {
	padding: min(8vw,100px) 0;
}
.u-pdg--l {
	padding: min(10vw,120px) 0;
}

.u-bdr-b {
	padding-bottom: min(6%,60px);
	margin-bottom: min(6%,60px);
	border-bottom: 1px solid var(--color-bdr);
}

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.u-bdr-b--l {
	padding-bottom: min(8%,80px);
	margin-bottom: min(8%,80px);
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.u-pdg--s {
	padding: 10% 0;
}
.u-pdg--m {
	padding: 12% 0;
}
.u-pdg--l {
	padding: 15% 0;
}

.u-bdr-b {
	padding-bottom: 10%;
	margin-bottom: 10%;
}
}


/*---------------------------------------------------------
 anchor
---------------------------------------------------------*/
/* [id] {
	position: relative;
} */
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {
[id] {
	scroll-margin-top: min(14vw,170px);
}
}

/*---------------------------------------------------------
 Utility - width
---------------------------------------------------------*/
.max_width,
.w1440,.w1400,
.w1380,.w1340,.w1300,
.w1280,.w1240,.w1220,.w1200,
.w1100 {
	box-sizing: content-box;
	width: 92%;
	padding: 0 4%;
	margin-inline: auto;
}
.u-w-max1500 {
	max-width: 1500px;
	margin-inline: auto;
}
.w1440 {max-width: 1440px;}
.w1400 {max-width: 1400px;}
.w1380 {max-width: 1380px;}
.w1340 {max-width: 1340px;}
.w1300 {max-width: 1300px;}
.w1280 {max-width: 1280px;}
.w1240 {max-width: 1240px;}
.w1220 {max-width: 1220px;}
.w1200 {max-width: 1200px;}
.w1100 {max-width: 1100px;}

.u-inner {
	width: 96%;
	max-width: 1220px;
	margin-inline: auto;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.max_width,
.w1440,.w1400,
.w1380,.w1340,.w1300,
.w1280,.w1240,.w1220,.w1200,
.w1100 {
	width: 90%;
	padding: 0 5%;
}
}

/*---------------------------------------------------------
margin
---------------------------------------------------------*/
.u-mb--xl {margin-bottom: 150px;}
.u-mb--lg {margin-bottom: 120px;}
.u-mb--md {margin-bottom: 100px;}
.u-mb--sm {margin-bottom: 80px;}
.u-mb--xs {margin-bottom: 60px;}
.u-mb--xxs {margin-bottom: 40px;}
.u-mb--1em {margin-bottom: 1em;}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

.u-mb--xlg {margin-bottom: 12%;}
.u-mb--lg {margin-bottom: 10%;}
.u-mb--md {margin-bottom: 8%;}
.u-mb--sm {margin-bottom: 7%;}
.u-mb--xs {margin-bottom: 5%;}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.u-mb--xlg {margin-bottom: 15%;}
.u-mb--lg {margin-bottom: 14%;}
.u-mb--md {margin-bottom: 12%;}
.u-mb--sm {margin-bottom: 10%;}
.u-mb--xs {margin-bottom: 8%;}
.u-mb--xxs {margin-bottom: 8%;}
}


/* PC
------------------------------------------*/
@media only screen and (min-width: 960px)  {
.tb_only{display:none !important;}
.sp_only{display:none !important;}
.sp_tb{display:none !important;}
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.pc_only{display:none !important;}
.sp_only{display:none !important;}
.sp_pc{display:none !important;}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.pc_only{display:none !important;}
.tb_only{display:none !important;}
.tb_pc{display:none !important;}
}
