/* Base
------------------------------------------------------------------------------*/
* {
	box-sizing: border-box;
}
body	{
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	font: 16px "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	color: #333;
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
}
h1,h2,h3,h4,h5,
div,p,dl,dt,dd,
ul,ol,li,
figure,form {
	margin: 0;
	padding: 0;
	font-size: 1em;
}
/* iframe ----------------------*/
iframe {
	width: 100%;
	border: none;
}
.ifrm-container {
	display: inline-block;
	width: 100%;
	overflow: auto;
	-webkit-overflow-scrolling:touch;
	margin: auto;
}
.ifrm-container iframe {
	display: block;
	width: 100%;
	height: 100%;
}
/* link --------------------*/
a {
	color: #06f;
	text-decoration: none;
	transition: 0.5s;
	outline: none;
}
a:hover	{
	color: #f60;
	text-decoration: underline;
}
a.btn {
	display: inline-block;
	background: #80b642;
	border-radius: 4px;
	padding: 6px 10px;
	text-align: center;
	font-size: 0.9em;
	color: #fff;
	font-weight: bold;
	line-height: 1;
	text-decoration: none;
}
a.btn:hover {
	background: #5E8631;
}
/* pagetop */
.pagetop {
	position: fixed;
	bottom: 18px;
	right: 18px;
	display: none;
}
.pagetop a {
	z-index: 110;
	display: inline-block;
	background: rgba(37,37,170,0.75);
	border-radius: 24px;
	width: 100px;
	padding: 8px;
	text-align: center;
	font-size: 0.9em;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
}
.pagetop a::before {
	content: "▲";
	margin-right: 5px;
}
.pagetop a:hover {
	color: yellow;
	text-decoration: none;
}

/* text --------------------*/
.com	{ padding: 0 10px;	overflow: hidden; }
*+p	{ margin-top: 10px; }
.c	{ text-align: center; }
.r	{ text-align: right; }
.fl	{ float: left; }
.fr	{ float: right; }
.red	{ color: red; }
.blue	{ color: blue; }
.green	{ color: green; }
.pink	{ color: pink; }
.orange	{ color: orange; }
.purple	{ color: purple; }
.grey	{ color: grey; }
.brown	{ color: brown; }
.big	{ font-size: 1.25em; }
.small	{ font-size: 0.85em; }
[data-mark]		{ position: relative;	padding-left: 20px; }
[data-mark]::before	{ content: attr(data-mark);	position: absolute;	left: 0; }
.tel::before	{ content: "TEL."; }
.fax::before	{ content: "FAX."; }
.eml::before	{ content: "E-mail:"; }

/* list --------------------*/
ul {
	list-style-type: none;
}


/* image --------------------*/
img {
	max-width: 100%;
	width: auto;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
img.fl {
	margin-right: 10px;
	margin-bottom: 5px;
}
img.fr {
	margin-left: 10px;
	margin-bottom: 5px;
}
.noimage {
	position: relative;
	max-width: 600px;
	padding-top: 75%;
	border: 1px solid #ccc;
	background: #fff;
}
.noimage::before {
	content: "No Image";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.2em;
	color: #ccc;
	font-weight: bold;
}

/* table --------------------*/
table {
	width: 100%;
	border: 1px solid #acacac;
	border-collapse: collapse;
	margin: 0 auto;
}
table th,
table td {
	border: 1px solid #acacac;
	padding: 5px;
}
table th {
	background: #9ae292;
}
.scroll-table {
	overflow: auto;
	white-space: nowrap;
}

/* box / flexbox / grid ----------------------------------------*/
/* box ---------*/
.box {
	margin: auto;
	overflow: hidden;
}
*+.box {
	margin-top: 20px;
}

/* flexbox ---------*/
[class*="column"] {
	display: flex;
	flex-wrap: wrap;
}
[class*="column"]>* {
	margin: 0;
	padding: 3px;
}
.column6>*	{ width: calc((100% - 0.01px) / 6);	max-width: calc((100% - 0.01px) / 6); }
.column5>*	{ width: calc(100% / 5);		max-width: calc(100% / 5); }
.column4>*	{ width: calc(100% / 4);		max-width: calc(100% / 4); }
.column3>*	{ width: calc((100% - 0.01px) / 3);	max-width: calc((100% - 0.01px) / 3); }
.column2>*	{ width: calc(100% / 2);		max-width: calc(100% / 2); }

/* grid ---------*/
.grid {
	display: grid;
	grid-template-columns: auto auto auto;
	grid-template-rows: auto auto auto;
}


/* wrapper / レイアウト
------------------------------------------------------------------------------*/
#wrapper {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 1000px;
	height: 100%;
	min-height: 100vh;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
}
header {
	position: relative;
	width: 100%;
}
.contents {
	position: relative;
	width: 100%;
	margin: 0 auto 15px;
	padding: 15px;
}
footer {
	margin-top: auto;
	padding: 10px;
	text-align: center;
}

/* header
------------------------------------------------------------------------------*/
header {
	margin: 30px auto 0;
	text-align: center;
}
header h1 {
	font-size: 1.5em;
	color: blue;
}
header h1 span {
	display: block;
	font-size: 1rem;
	color: #333;
	font-weight: normal;
}


/* contents
------------------------------------------------------------------------------*/
.contents {
	width: 900px;
	margin: 30px auto;
}
.contents *+dl {
	margin-top: 20px;
}/*
.contents dl dt::before {
	content: "■";
	margin-right: 5px;
}*/
.contents dl dd+dt {
	margin-top: 20px;
}
.contents dl dd {
	padding-left: 20px;
}
.contents ul li {
	margin-top: 5px;
}
.contents dl dd .period {
	border: 1px solid #aaa;
	padding:10px  6px;
	text-align: center;
	color: red;
	font-weight: bold;
	line-height: 1;
}
.shoplist {
	margin: 15px auto 0;
	text-align: center;
	font-size: 1.4em;
	font-weight: bold;
}
.contact {
	width: 450px;
	margin: 30px auto;
}
.contact ul li {
	display: flex;
	flex-wrap: wrap;
	text-align: right;
}
.contact ul li span {
	margin-right: auto;
}

.premium-atte {
	border: 1px solid #aaa;
	margin: 20px auto;
	padding: 10px;
	font-size: 0.9em;
}
.leaflet {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 10px auto;
	text-align: center;
	font-size: 1.2em;
	font-weight: bold;
}
.leaflet li {
	margin: 0 15px 15px;
}

/* footer
------------------------------------------------------------------------------*/
footer small {
	color: #000080;

}


.contents .pre5 {
	display: flex;
	flex-wrap: wrap;
	width: 95%;
	margin: auto;
}
.contents .pre5 dt {
	width: 100px;
	margin-top: 10px;
}
.contents .pre5 dd {
	width: calc(100% - 100px);
	margin-top: 10px;
}
.contents .pre5 dd ul li {
	margin-top: 0;
}
.contents .pre5 dd ul li+li {
	margin-top: 5px;
}
.pre5-image {
	display: flex;
	width: 90%;
	margin: 20px auto;
	scale(0.5);
}
.pre5-image .ticket-atte {
	position: relative;
	padding-top: 30px;
	padding-left: 110px;
}
.pre5-image .ticket-atte::before {
	position: absolute;
	top: 0;
	left: 0;
	content: url(../gift/images/mark.png);
	transform: scale(0.6);
}

.pre5-shoplist {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 80%;
	margin: 20px auto;
}
