@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@400;500;600;700;800&display=swap');

/***********************************
 reset
***********************************/
*, html, body, div, dl, dt, dd, ul, ol, li, header, footer, nav,section,
h1, h2, h3, h4, h5, h6, form, input, textarea, p{
	margin: 0;
	padding: 0;
	-webkit-transition: all .8s;
	transition: all .8s;
}
html, body, input, textarea{
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-size: 16px;
}
html{
	overflow: auto;
	height: auto;
	min-height: 100%;
}
dl, ul, ol{
	list-style-type: none;
}
a,
a img{
	color: #a50721;
	text-decoration: none;
	cursor: pointer;
	transition: all .8s;
}
a:hover{
	color: #d7092b;
}
a:hover img{
	opacity: 0.8;
}

/***********************************
 base
***********************************/
body{
	position: relative;
	min-width: 1000px;
	height: 100vh;
	min-height: 100%;
	line-height: 1.5em;
	letter-spacing: normal;
	color: #222222;
	text-align: left;
}
article{
	position: relative;
	padding: 10px 0 50px;
	width: 100%;
	height: auto;
	background: none;
	overflow: hidden;
}

section,
div.container{
	clear: both;
	position: relative;
	background: none;
	width: calc(100% - 50px);
	max-width: 1200px;
}
section{
	margin: 0 auto;
}
section + section{
	margin-top: 50px;
}
div.container{
	margin: 0 auto;
	min-width: 900px;
	height: 100%;
}
footer div.container{
	height: auto;
}

@media screen and (max-width: 640px) {
	body{
		min-width: 100%;
	}
	article{
		width: 100vw;
	}
	section{
		width: calc(100% - 20px);
	}
	section + section{
		margin-top: 40px;
	}
	div.container,
	footer div.container{
		width: calc(100% - 20px);
		min-width: unset;
	}
}

main{
	position: relative;
	width: 100%;
	overflow: hidden;
}

p{
	margin: 0.5em auto 1em;
}
p:last-child{
	margin-bottom: 0;
}

/***********************************
 others
***********************************/
.txtAC{
	text-align: center;
}
.txtAL{
	text-align: left;
}
.txtAR{
	text-align: right;
}
.imgC{
	display: block;
	margin: 2em auto;
	max-width: 80%;
}

.fltL{
	float: left;
}
.fltR{
	float: right;
}

.underLine{
	display: inline-block;
	margin: 0.3em 0;
	border-bottom: solid 1px #dedede;
}

ul.disc{
	list-style-type: disc;
	margin-left: 40px;
	text-align: left;
}
ul.circle{
	list-style-type: circle;
	margin-left: 20px;
	text-align: left;
}

ul.caution{
	margin: 8px 0 8px 20px;
	text-align: left;
	font-size: 13px;
	line-height: 1.3em;
}
ul.caution li{
	position: relative;
	padding: 5px 0 0;
}
ul.caution li::before {
	position: absolute;
	left: -1.4em;
	display: block;
	content: "\203B";
}

ol{
	list-style-type: decimal;
	margin-left: 20px;
	text-align: left;
}

.marker{
	display: inline-block;
	padding: 0 1px 2px;
	background: linear-gradient(transparent 85%, #c5b077 85%);
	font-size: 1.05em;
}

.spBr{
	display: none;
}
@media screen and (max-width: 640px) {
	.spBr{
		display: block;
	}

	.spNone{
		display: none;
	}
	.spReverse{
		flex-direction: column-reverse;
		display: flex;
	}
}

/***********************************
 header, footer
***********************************/
header, footer{
	clear: both;
	position: relative;
	display: block;
	width: 100%;
	min-width: 1000px;
	overflow: hidden;
}

header{
	margin: 0;
	padding: 6px 0 0;
	height: 80px;
}
header::before{
	position: absolute;
	top: 0;
	left: -9999px;
	right: -9999px;
	display: block;
	background: #3a2c09;
	height: 6px;
	content: "";
}
header h1{
	margin: 0 1rem;
	width: 160px;
	height: 52px;
}
header h1 a{
	display: block;
	background: url(../images/logo.png) no-repeat left center / contain;
	height: 100%;
	text-indent: -9999px;
}
header h1 a:hover{
	opacity: 0.7;
}
header p{
	margin: 0.5em 1.2rem;
	line-height: 1.2em;
	font-size: 0.8em;
}

footer{
	margin: 160px 0 0;
	background: #370707;
}
footer #copyright{
	padding: 1em 0;
	color: #ffffff;
	text-align: center;
	font-size: 0.75em;
}

@media screen and (max-width: 640px) {
	header, footer{
		min-width: unset;
	}

	header{
		padding: 3px 0 0;
		height: 65px;
	}
	header::before{
		height: 3px;
	}
	header h1{
		margin: 0;
		height: 40px;
	}
	header p{
		margin: 0.5em 0;
	}

	footer #copyright{
		font-size: 0.65em;
	}
}

/***********************************
 h2, h3, h4
***********************************/
h2, h3, h4{
	font-family: "Shippori Mincho B1", serif;
	font-weight: 500;
	font-style: normal;
}

h2{
	margin: 0 0 40px;
	padding: 15px 0;
	background: linear-gradient(to bottom, rgb(96,18,22) 0%,rgb(135,26,26) 100%);
	line-height: 1em;
	color: #ffffff;
	text-align: center;
	font-size: 1.4em;
}

h3{
	position: relative;
	padding: 1.5em 0.5rem 1em;
	line-height: 1.2em;
	font-size: 1.35em;
}

h4{
	margin: 1em 0 0.5em;
	padding: 0 1rem;
	line-height: 1.2em;
	font-size: 1.2em;
}

@media screen and (max-width: 640px) {
	h3{
		padding: 1.5em 0.5rem 1em;
	}
}

/***********************************
 table
***********************************/
table{
	margin: 2em auto;
	width: 100%;
	border-collapse: collapse;
	text-align: left;
	font-size: 1em;
}
h3 + table{
	margin-top: 0;
}
table tr th,
table tr td{
	padding: 12px 20px;
	border: 1px solid #cdcdcd;
	min-height: 1.5em;
}
table tr th{
	background: #f7f7f7;
	width: 220px;
	font-weight: normal;
}
table tr td{
	background: #ffffff;
}

@media screen and (max-width: 640px) {
	table{
		display: block;
		margin: 1em auto;
		width: auto;
		border-top: 1px solid #e3e3e3;
	}
	table tr,
	table tbody{
		display: block;
	}
	table tr th,
	table tr td{
		display: block;
		padding: 10px 15px;
		width: auto;
	}
	table tr th{
		border-top: 2px solid #ffffff;
		border-bottom: 2px solid #ffffff;
		
	}
	table tr td{
		border-top: 1px solid #e3e3e3;
	}
}

table.info{
	margin: 1em;
	width: auto;
}
table.info th,
table.info td{
	padding: 4px;
	width: 110px;
	text-align: center;
	font-size: 0.9em;
}
table.info th{
	background-color: #e3e3e3;
}
@media screen and (max-width: 640px) {
	table.info{
		display: table;
		border: none;
	}
	table.info tr{
		display: table-row;
	}
	table.info tr th,
	table.info tr td{
		display: table-cell;
		width: auto;
	}
	table.info tr th{
		border-top: 1px solid #cdcdcd;
		border-bottom: 1px solid #cdcdcd;
	}
}


/***********************************
 .btn, .btnBox
***********************************/
a.btn{
	position: relative;
	display: table;
	width: 238px;
	height: 118px;
	border: solid 1px #dedede;
	color: currentColor;
	text-align: center;
	vertical-align: middle;
	z-index: 1;
}
a.btn::before{
	position: absolute;
	top: 5px;
	bottom: 5px;
	left: 5px;
	right: 5px;
	display: block;
	border: solid 1px #003077;
	content: "";
	z-index: -1;
}
a.btn:hover{
	opacity: 0.8;
	background-color: rgba(0, 48, 119,.8);
}
a.btn > span{
	display: table-cell;
	vertical-align: middle;
	font-family: "Shippori Mincho B1", serif;
    font-weight: 600;
    font-style: normal;
	font-size: 1.2em;
}
a.btn span.note{
	display: inline-block;
	margin: 0.4em 0 0.2em;
	width: 90%;
	line-height: 1.3em;
	font-size: 0.7em;
    font-weight: 300;
}

a.btn.hr1::before{
	background: url(/images/btn_hotel-restaurant_bg1.png) no-repeat right 5% bottom 8px / 22% #ffffff;
}
a.btn.hr2::before{
	background: url(/images/btn_hotel-restaurant_bg2.jpg) no-repeat right 7% bottom 2px / 45% #ffffff;
}
a.btn.hr3::before{
	background: url(/images/btn_hotel-restaurant_bg3.png) no-repeat right 5% bottom 5px / 12% #ffffff;
}
a.btn.hr4::before{
	background: url(/images/btn_hotel-restaurant_bg4.png) no-repeat right 5% bottom 4px / 22% #ffffff;
}

ul.btnLst{
	display: flex;
	flex-wrap: wrap;
	gap: 1.5em;
	justify-content: center;
	margin: 2em auto 1em;
	width: 90%;
	min-width: 340px;
}

@media screen and (max-width: 640px) {
	a.btn span.note{
		margin-top: 0.4em;
	}
}

ul.bnrLst{
	display: grid;
	grid-template-rows: 1fr 1fr 1fr;
	grid-auto-flow: column;
	grid-gap: 12px;
}
ul.bnrLst a{
	display: block;
}
ul.bnrLst a img{
	display: block;
	width: 100%;
}

a.btnTxt{
	display: block;
	margin: 0.5em auto; 
	padding: 5px 10px;
	background: #474747;
	width: 20%;
	min-width: 180px;
	line-height: 1.5em;
	color: #ffffff;
	text-align: center;
	text-decoration: none;
	font-size: 0.9em;
}
a.btnTxt:hover,
a.btnTxt:active{
	background: #545454;
}
a.btnTxt2{
	display: block;
    margin: 0 auto;
    padding: 0.6em 1.2em;
    width: 200px;
    background-color: #8b0201;
    color: #fff;
    border: none;
    border-radius: 4px;
	text-align: center;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.3s ease;
	box-sizing: border-box;
}
a.btnTxt2:hover,
a.btnTxt2:active{
	background-color: #a23534;
}
a.shining{
	position: relative;
	overflow: hidden;
}
a.shining:hover::after{
	position: absolute;
	top: 0;
	left: -120%;
	background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
	width: 50%;
	height: 100%;
	content: "";
	transform: skewX(-30deg);
	animation: shine .7s;
}
@keyframes shine{
	100%{
		left: 100%;
	}
}
@media screen and (max-width: 640px) {
	a.btnTxt2{
		width: 160px;
		line-height: 2em;
	}
}

.btnBox{
	clear: both;
	display: flex;
	flex-wrap: wrap;
	gap: 40px 60px;
	justify-content: center;
	margin: 40px auto 0;
}
.btnBox .btnTxt{
	margin: 0;
	width: auto;
}

@media screen and (max-width: 640px) {
	.btnBox{
		gap: 30px 40px;
	}
}

/***********************************
 page
***********************************/
.toggle-content{
	overflow: hidden;
	transition: max-height 0.4s ease;
}
#section2.toggle-content{
	padding: 0 1em;
	background: #f7f7f7;
	font-size: 0.9em;
}
.toggle-content > *{
	margin: 1em 0;
}

.contactBox{
	margin: 3em auto 1em;
	padding: 2em;
	background: #f0eee6;
	max-width: 540px;
	text-align: center;
}
.contactBox h3{
	padding: 0 0 0.5em;
}
.contactBox p{
	padding: 0.5em 0 1em;
	color: #bf1111;
}
.contactBox ul.contact{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	margin: 0 auto;
}
.contactBox ul.contact li{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	width: 240px;
	height: 80px;
	font-family: "Shippori Mincho B1", serif;
    font-weight: 500;
	font-size: 1.3em;
	color: #ffffff;
}
.contactBox ul.contact li:first-child{
	background: #6d6c6c;
	line-height: 1rem;
}
.contactBox ul.contact li:first-child span:first-child{
	margin-top: 0.5em;
}
.contactBox ul.contact li:first-child span:last-child{
	margin-top: -2em;
	font-size: 0.76rem;
	letter-spacing: -0.05rem;
}
.contactBox ul.contact li:last-child a{
	display: flex;
	align-items: center;
	justify-content: center;
	background:  #6d6c6c;
	width: 100%;
	height: 100%;
	line-height: 1.3em;
	color: #ffffff;
	vertical-align: middle;
}
.contactBox ul.contact li:last-child a:hover{
	background-color:  #888888;
}

.cautionBox{
	margin: 2em auto;
	padding: 1.5em 2em;
	background: #fcf1f2;
	width: 80%;
	font-size: 0.9em;
	line-height: 1.3em;
}
.cautionBox h3{
	padding: 0 0 0.5em;
}
.cautionBox ul.disc{
	margin-left: 20px;
}
.cautionBox ul.disc li{
	margin: 0 0 0.5em;
}

.form-buttons{
	display: flex;
	justify-content: center;
	gap: 30px;
	margin: 4em 0 0;
}
.form-buttons a.btnTxt2,
.form-buttons button[type="button"],
.form-buttons button[type="submit"]{
	margin: 0;
}
.form-buttons + p.memo{
	text-align: center;
	font-size: 0.8em;
}

@media screen and (max-width: 640px) {
	.contactBox ul.contact{
		border-spacing: 20px 0;
	}
	.contactBox ul.contact li{
		font-size: 1.2em;
	}

	.cautionBox{
		padding: 1.5em 1em;
		width: calc(100% - 2em);
		max-width: 460px;
	}

	.form-buttons{
		gap: 20px;
	}
}

.modal{
	display: none;
	position: fixed;
	z-index: 1000;
	left: 0; top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
}
.modal-content{
	background: #fff;
	margin: 10% auto;
	padding: 40px 30px;
	width: calc(100% - 100px);
	max-width: 500px;
	border-radius: 8px;
	text-align: center;
}
.modal-content h2{
	margin: 0;
	background: none;
	color: #222222;
}
.modal-content div.caution{
	margin: 10px 0 30px;
	color: #bf1111;
    font-family: "Shippori Mincho B1", serif;
    font-weight: 500;
    font-style: normal;
	font-size: 1.3em;
}
.modal-content ul.disc{
	margin: 0 auto 2em;
	padding: 1em 1.5em 1em 2em;
	background: #f0eee6;
}
.modal-content ul.disc li{
	margin-top: 0.5em;
}

.modal-content .form-buttons{
	margin: 2em 0 0;
}
.modal button{
	margin: 10px;
	padding: 8px 16px;
}
@media screen and (max-width: 640px) {
	.modal-content{
		margin: 6% auto;
		padding: 20px 20px;
		width: calc(100% - 60px);
	}
	.modal-content div.caution{
		margin: 0 0 20px;
		font-size: 1.2em;
	}
	.modal-content ul.disc{
		margin: 0 auto 1.5em;
		padding: 0.5em 1.5em 0.5em 2em;
	}
	.modal-content .form-buttons{
		margin: 1.5em 0 0;
	}
}

/***********************************
 form
***********************************/
/*bot対策*/
form#myForm table tr.captchaCheck{
	display: none;
}
form#myForm table tr.captchaCheck td{
	background: #ff0000 !important;
}

form table th span,
span.required{
	padding: 0 0 0 0.3em;
	color: #bf1111;
	font-size: 0.8em;
}
div.error{
	color: #bf1111;
}
table tr td:has(.error){
	background: #fcf1f2;
}

label{
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 3px 20px 3px 0;
	min-width: 120px;
	cursor: pointer;
	vertical-align: middle;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="password"],
textarea,
select {
	padding: 0.5em;
	border: solid 1px #cccccc;
	width: 500px;
	max-width: calc(100% - 1em - 2px);
	color: currentColor;
	font-size: 1rem;
}
input[type="text"].small,
input[type="date"],
input[type="time"]{
	width: 130px;
}
select.small{
	width: 110px;
}
input[type="number"]{
	width: 60px;
}
textarea{
	width: calc(100% - 1em - 2px);
}

input[type="checkbox"],
input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: #0078D4; /* 対応ブラウザで色変更（Edge, Chrome, Safariなど） */
	cursor: pointer;
	margin-right: 6px;
}

button[type="button"],
button[type="submit"]{
	display: block;
	margin: 0 auto;
	padding: 0.6em 1.2em;
	width: 180px;
	background-color: #8b0201;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
button[type="button"]:hover,
button[type="submit"]:hover{
	background-color: #a23534;
}

@media screen and (max-width: 640px) {
	label{
		min-width: 90px;
	}
	button[type="button"],
	button[type="submit"]{
		width: 160px;
		line-height: 2em;
	}
}

/* placeholder */
input::placeholder,
textarea::placeholder{
  color: #cccccc; /* 赤にしたい場合 */
}
/* 古いブラウザ対応 */
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cccccc;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #cccccc;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cccccc;
}
/* select の空 option */
select option[value=""] {
  color: #cccccc;
}

#thanksBox{
	margin: 3em auto 0;
	max-width: 832px;
}
#thanksBox #contactBox{
	margin: 2em 0;
	text-align: center;
	font-weight: 500;

}
#thanksBox #contactBox p:first-child{
	display: block;
	margin: 0;
	line-height: 1em;
	font-size: 1.5em;
}

@media screen and (max-width: 640px) {
	#contact section table,
	#contact section table th{
		width: auto;
	}
	#contact section p{
		width: calc(100vw - 40px);
		min-width: unset;
	}
	
	input[type="text"],
	input[type="tel"],
	input[type="email"],
	textarea{
		width: 95%;
	}

	#thanksBox{
		margin: 0 auto;
	}
}
