
/* common */
body, div, p, dl, dt, dd, h1, h2, h3, h4 {
	margin: 0;
	padding: 0;
}

body {
	font-size: 16px;
	font-family: YakuHanJP, "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ" ,Meiryo, arial, sans-serif;
	color: #333;
	font-display: swap;
}

img {
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: bottom;
}

em {
	font-style: normal;
	font-weight: bold;
}

a:hover {
	opacity: 0.65;
}

.red {
	color: #f00;
}

.blue {
	color: #00f;
}

.small {
	font-size: 80%;
}

.w12m {
	width: 12em !important;
}

.ml1m {
	margin-left: 1em !important;
}

.ml2m {
	margin-left: 2em !important;
}

.mb0 {
	margin-bottom: 0 !important;
}

.mb1m {
	margin-bottom: 1em !important;
}

.pl1m {
	padding-left: 1em !important;
}

.alignC {
	text-align: center;
}

.alignL {
	text-align: left;
}

.alignR {
	text-align: right;
}

/* parts */

.container,
header .description,
.content {
	width: 100%;
	max-width: 1024px;
	margin: auto;
	padding: 0 1em;
	box-sizing: border-box;
}

header .container2,
footer .container2 {
	background: #9b875d;
}

header ul,
footer ul {
	margin: 0;
	padding: 0;
}

header li,
footer li {
	list-style: none;
}

header a {
	color: #333;
	text-decoration: none;
}

header .description {
	font-size: 70%;
	color: #fff;
	line-height: 2;
}

header .tel {
	font-size: 180%;
	line-height: 1.1;
}

header .reserve a {
	display: inline-block;
	width: 234px;
	background: linear-gradient(#baa477, #9b875d);
	line-height: 3;
	color: #fff;
	text-align: center;
	text-decoration: none;
}

header .container2 {
	min-height: 5px;
}

header .container {
	padding-top: 0.5em;
	padding-bottom: 0.5em;
}

header h1 {
	font-size: 175%;
}

header h1 img {
	max-width: calc(100% - 2.28em);
	max-height: 75px;
}

header .addr {
	font-size: 85%;
	margin-top: 1.17em;
}

header .addr a {
	color: #333;
}

header nav {
	background: linear-gradient(#baa477, #9b875d);
}

header nav ul {
	width: 100%;
	max-width: 1024px;
	margin: auto;
}

header nav ul:after {
	content: "";
	display: block;
	clear: both;
}

header nav li {
	float: left;
	border-left: 1px solid #fff;
	background: linear-gradient(#baa477, #9b875d);
	text-align: center;
	box-sizing: border-box;
}

header nav li a {
	display: flex;
	width: 100%;
	height: 100%;
	color: #fff;
	text-decoration: none;
	flex-direction: column;
	justify-content: center;
}

header nav li a span {
	display: block;
}

header nav li a .jpn {
	font-size: 95%;
}

header nav li a .eng {
	font-size: 80%;
	color: #d3c19b;
}

#mv {
	position: relative;
	width: 100%;
	padding-top: 20%;
	background-size: cover;
	background-position: center right;
}

#mv.right15 {
	background-position: center right 15%;
}

#mv.center {
	background-position: center center;
}

#mv.left {
	background-position: center left;
}

#mv.left15 {
	background-position: center left 15%;
}

#mv h2 {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 1.5em;
	line-height: 1.5em;
	margin: auto;
	text-align: center;
	text-indent: -99999px;
}

.main {
	padding-top: 1em;
	padding-bottom: 1em;
	overflow: hidden;
}

.main h2 {
	position: relative;
	margin-bottom: 0.5em;
	font-size: 150%;
}

.main h2:after {
	content: "";
	display: block;
	clear: both;
}

.main h2 > span {
	display: block;
	float: left;
}

.main h2 .jpn {
	padding-left: 0.5em;
	color: #333;
}

.main h2 .jpn:before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 3px;
	height: 100%;
	background: #9b875d;
}

.main h2 .eng {
	position: relative;
	margin-left: 1em;
	margin-top: 0.75em;
	padding-left: 2em;
	font-size: 75%;
	line-height: 1;
	color: #9b875d;
	font-weight: normal;
	vertical-align: bottom;
}

.main h2 .eng:before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1.75em;
	height: 1px;
	margin: auto;
	background: #9b875d;
}

.main h3 {
	margin-bottom: 0.5em;
	font-size: 125%;
}

.main p {
	margin-bottom: 0.75em;
	line-height: 1.75;
}

.main a {
	color: #9b875d;
}

.main ul,
.main ol {
	margin: 0 0 0.75em 0;
	padding: 0;
}

.main li {
	margin-left: 1.5em;
}

.main .box2:after,
.main .box3:after {
	content: "";
	display: block;
	clear: both;
}

.main .box2 > * {
	float: left;
	width: calc(50% - 0.5em);
	margin-left: 0!important;
	margin-right: 1em;
	box-sizing: border-box;
}

.main .box2 > *:nth-child(2n+1) {
	clear: both;
}

.main .box2 > *:nth-child(2n+2) {
	margin-right: 0;
}

.main .box3 > * {
	float: left;
	width: calc(33.3% - 0.7em);
	margin-left: 0!important;
	margin-right: 1em;
	box-sizing: border-box;
}

.main .box3 > *:nth-child(3n+1) {
	clear: both;
}

.main .box3 > *:nth-child(3n+3) {
	margin-right: 0;
}

.main section {
	position: relative;
}

.main section > p,
.main section > ul,
.main section > div,
.main section > dl {
	margin-left: 1em;
}

.main ul.news li {
	margin-left: 0;
	list-style: none;
	padding: 0.5em 0;
	border-bottom: 1px solid #333;
}

.main ul.news li:after {
	content: "";
	display: block;
	clear: both;
}

.main ul.news a {
	position: relative;
	display: block;
	text-decoration: none;
	color: #333;
}

.main ul.news li > span,
.main ul.news a > span {
	display: block;
	float: left;
	line-height: 1.5;
}

.main ul.news .date {
	width: 7em;
	color: #9b875d;
	font-weight: bold;
}

.main p.more {
	text-align: right;
}

.main p.more a {
	color: #333;
	text-decoration: none;
}

.main .iframe_wrap {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.main .iframe_wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.main section.form dl,
.main section.form dt,
.main section.form dd {
	border-collapse: collapse;
	box-sizing: border-box;
}

.main section.form dl {
	margin-right: 1em;
	border: 1px solid #333;
}

.main section.form dl:after {
	content: "";
	display: block;
	clear: both;
}

.main section.form dt,
.main section.form dd {
	padding: 0.5em;
}

.main section.form dt {
	float: left;
	clear: both;
}

.main section.form dd {
	border-bottom: 1px solid #333;
}

.main section.form dd:last-child {
	border-bottom: 0;
}

.main section.form .full {
	width: 100%;
	padding-left: 0.5em !important;
	clear: both;
}

.main section.form input[type=text],
.main section.form textarea {
	width: 100%;
	font-size: 100%;
	box-sizing: border-box;
}

.main section.form select,
.main section.form input[type=button] {
	font-size: 100%;
}

.main section.form textarea {
	height: 5em;
}

.main section.form .val_err {
	display: block;
}

.main section.form .val_err ul {
	display: inline-block;
	text-align: left;
}

.main section.reference {
	font-size: 85%;
}

.main section.reference li {
	position: relative;
	margin-left: 0;
	padding-top: 0.25em;
	padding-left: 1.5em;
	line-height: 1.5;
	list-style: none;
}

.main section.reference li:before {
	content: "\203b";
	position: absolute;
	top: 0.25em;
	left: 0;
	line-height: 1.5;
	list-style: none;
}

aside {
	padding-bottom: 1em;
	box-sizing: border-box;
}

aside > * {
	margin-bottom: 1em;
}

aside > *:last-child {
	margin-bottom: 0;
}

aside .txtbanner a {
	display: flex;
	width: 234px;
	height: 82px;
	margin: auto;
	background: #fff center center no-repeat;
	background-size: contain;
	text-decoration: none;
	color: #000;
	text-shadow: -1px -1px 1px #fff, -1px 0px 1px #fff, 0px -1px 1px #fff, 0 0px 1px #fff;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

aside .txtbanner a.reserve {
	background-image: url(/img/reserve_bg.png);
}

aside .txtbanner a.feedbacks {
	background-image: url(/img/feedbacks_bg.png);
}

aside .txtbanner a.company {
	background-image: url(/img/company_bg.png);
}

aside .txtbanner a > span {
	width: 100%;
	padding-left: 3%;
	box-sizing: border-box;
}

aside .txtbanner a .description {
	font-size: 70%;
}

aside .txtbanner a .title {
	padding-left: 1em;
	font-size: 125%;
	color: #333;
	font-weight: normal;
	line-height: 1.1;
}

aside .txtbanner a .comment {
	font-size: 70%;
}

aside dl {
	line-height: 2;
}

aside dt,
aside dd {
	box-sizing: border-box;
}

aside dt {
	padding: 0 0.5em;
	color: #fff;
	background: linear-gradient(#baa477, #9b875d);
}

aside .menu dt a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	text-decoration: none;
}

aside .menu dd {
	padding: 0 0.5em;
	color: #fff;
	border: 1px solid #9b875d;
	border-top: 0;
}

aside .menu dd a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	padding-left: 1em;
	color: #9b875d;
	text-decoration: none;
}

aside .menu dd a:before {
	content: "\f054";
	display: block;
	position: absolute;
	top: 0;
	left: 0.1em;
	height: 1em;
	width: 1em;
	text-align: left;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-display: swap;
}

aside .cal {
	max-width: 235px;
	margin-left: auto;
	margin-right: auto;
}

aside .cal table {
	margin-left: auto;
	margin-right: auto;
}

aside .shop {
	text-align: center;
}

aside h1 img {
	max-width: 234px;
}

aside .tel {
	margin-top: 0.25em;
	font-size: 180%;
	line-height: 1.5;
	font-family: YakuHanJP, "メイリオ" ,Meiryo, arial, sans-serif;
}

aside .tel a {
	color: #333;
	text-decoration: none;
}

aside .tel_info {
	font-size: 80%;
	text-align: left;
}

aside .addr {
	display: inline-block;
	font-size: 90%;
	margin: 0.55em 0;
	text-align: left;
}

aside .addr a {
	display: block;
	color: #333;
	text-align: right;
}

aside .share a {
	margin-right: 0.5em;
}

footer {
	background: #f8f8f8;
}

footer .container0 {
	padding-top: 1px;
}

footer .container0 h2 {
	margin-top: 1.5rem;
	font-family: YakuHanJP, "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	font-size: 140%;
	line-height: 1;
	text-align: center;
}

footer .container0 h2 a {
	color: #333;
	font-style: italic;
	text-decoration: none;
}

footer .container0 h2 img {
	vertical-align: middle;
}

#instafeed {
	padding: 1rem 1.5rem 1.5rem 1.5rem;
}

#instafeed:after {
	content: "";
	display: block;
	clear: both;
}

#instafeed a {
	position: relative;
	float: left;
	width: calc(100% / 6 - 1em);
	padding-top: calc(100% / 6 - 1em);
	margin-right: 1.2em;
}

#instafeed a:last-of-type {
	margin-right: 0;
}

#instafeed a:after {
	content: "\f35d";
	display: block;
	position: absolute;
	top: 0.25em;
	right: 0.25em;
	width: 1.5em;
	height: 1.5em;
	line-height: 1em;
	font-family: "Font Awesome 5 Free";
	font-size: 1.5em;
	font-weight: 900;
	text-align: right;
	color: #f8f8f8;
	text-shadow: 0 0 2px #000;
	pointer-events: none;
}

#instafeed a img {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	margin: auto;
}

footer .container {
	position: relative;
	width: 100%;
	max-width: 100%;
	padding: 0;
}

footer iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

footer .container2 {
	padding: 1px 0;
}

footer nav {
	margin: 1em 0;
	text-align: center;
}

footer nav li {
	position: relative;
	display: inline-block;
	line-height: 1.5em;
}

footer nav a {
	display: block;
	width: 100%;
	height: 100%;
	padding-right: 1em;
	margin-right: 1em;
	color: #fff;
	text-decoration: none;
}

footer nav a:after {
	content: "";
	display: block;
	position: absolute;
	top: 0.25em;
	right: 0;
	width: 1px;
	height: 1em;
	background: #fff;
}

footer nav li:last-child a:after {
	display: none;
}

footer .copy {
	margin-bottom: 1.5em;
	color: #fff;
	font-size: 85%;
	line-height: 1.25;
}

body > .totop {
	display: none;
	position: fixed;
	bottom: 0.35em;
	right: 0.35em;
	font-size: 300%;
	line-height: 1;
}

body > .totop a {
	color: #9b875d;
	text-shadow: -1px -1px 3px #fff, -1px 0px 3px #fff, 0px -1px 3px #fff, 0px 0px 3px #fff, 1px 1px 2px #fff;
}

#fcal,
#fcal th,
#fcal td {
	border: 1px solid #333;
	border-collapse: collapse;
}

#fcal td {
	padding: 5px;
}

#fcal td > span {
	display: block;
	width: 1.35em;
	line-height: 1;
}

#fcal td > span:first-child {
	margin-bottom: 3px;
}

#fcal td > span:last-child {
	text-align: center;
}

#fcal td a {
	color: #9b875d;
	font-weight: bold;
}

@media all and (min-width: 768px){
/* PC */
.sp {
	display: none !important;
}
header .container {
	position: relative;
}
header .addr {
	max-width: calc(100% - 234px - 1em);
}
header .hr {
	position: absolute;
	bottom: 1em;
	right: 0;
	width: calc(234px + 1em);
	padding-right: 1em;
	text-align: right;
	box-sizing: border-box;
}
header .lang {
	margin-bottom: 0.25em;
}
header .tel {
	margin-bottom: 0.55em;
}
header nav ul {
	padding: 0 1em;
	box-sizing: border-box;
}
header nav li {
	width: calc(100% / 5);
	height: 4em;
}
header nav li:last-child {
	border-right: 1px solid #fff;
}
.content:after {
	content: "";
	display: block;
	clear: both;
}
.main {
	float: right;
	width: calc(100% - 235px);
	padding-left: 1em;
	padding-right: 0.1em;
	box-sizing: border-box;
}
.main ul.news .date {
	text-align: center;
}
.main ul.news .title {
	width: calc(100% - 7em);
}
.main section.form dt {
	width: 11em;
}
.main section.form dd {
	position: relative;
	padding-left: 12em;
	padding-right: 1em;
}
.main section.form dd:before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 11em;
	width: 1px;
	height: 100%;
	background: #333;
}
.main section.form dd.full:before {
	display: none;
}
aside {
	width: 235px;
	float: left;
	padding: 1em 0;
}
aside .txtbanner a{
	margin-left: 0;
}
aside .cal {
	max-width: 234px;
}
footer {
	clear: both;
}
footer .container {
	padding: 15%;
}
footer .copy {
	text-align: center;
}
/* PC end */
}

@media all and (max-width: 767px){
/* SP */
.no-sp {
	display: none !important;
}
header .container {
	position: relative;
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 1.75em;
	text-align: center;
}
header .addr {
	display: inline-block;
	text-align: left;
	line-height: 1.35;
	margin-top: 0.5em;
	margin-bottom: 0.25em;
}
header .addr a.sp {
	display: block;
}
header .lang {
	position: absolute;
	bottom: 0.25em;
	right: 0.25em;
	font-size: 85%;
}
header .tel {
	margin-bottom: 0.25em;
	line-height: 1;
}
header nav li {
	width: 50%;
	height: 3em;
	line-height: 1.2;
	border-top: 1px solid #fff;
}
header nav li:nth-child(2n+1) {
	border-left: 0;
}
#mv {
	padding-top: 50%;
}
.content {
	padding-left: 0;
	padding-right: 0;
}
.main {
	font-size: 14px;
	padding-left: 1em;
	padding-right: 1em;
}
.main ul.news .title {
	width: 100%;
}
.main section.form dt {
	padding-bottom: 0;
}
.main section.form dd {
	padding-left: 1.1em;
	padding-right: 1.1em;
	clear: both;
}
aside {
	padding: 1.5em 1em 1.5em 1em;
	border-top: 2px solid #9b875d;
}
#instafeed a {
	width: calc(100% / 2 - 0.5em);
	padding-top: calc(100% / 2 - 0.5em);
	margin-right: 1em;
	margin-bottom: 1em;
}
#instafeed a:nth-of-type(2n+2) {
	margin-right: 0;
}
#instafeed a:nth-of-type(n+5),
#instafeed a:nth-of-type(n+6) {
	margin-bottom: 0;
}
footer .container {
	padding-top: 100%;
}
footer .container2 {
	text-align: center;
}
footer nav {
	max-width: 100%;
	font-size: 90%;
	overflow: hidden;
}
footer nav li:nth-of-type(3n+3) a:after {
	display: none;
}
footer .copy {
	display: inline-block;
	text-align: left;
}
#fcal {
	margin: auto;
}
/* SP end */
}

@media all and (max-width: 389px){
/* mini SP */
footer .container0 h2 {
	font-size: calc(5.7vw);
}
/* mini SP end */
}
