@charset 'utf-8';

/*------------------------------------------------------------------------------
 normalize
 ------------------------------------------------------------------------------*/
* {
	margin: 0;
	padding: 0;
	line-height: 1.0;
}
*, ::after, ::before {
	box-sizing: border-box;
}
html {
	height: 100%;
	overflow-y: scroll;
}
body {
	height: 100%;
	font-size: 13px;
	font-family:  'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'ＭＳ Ｐゴシック', Osaka, sans-serif;
	color: #333;
	background: #FFF;
}
a {
	color: #36C;
	text-decoration: underline;
	outline: none;
}
a:hover {
	color: #F60;
}
img {
	max-width: 100%;
	border: none;
}
select, textarea {
	font-size: 1em;
	font-family: inherit;
}
option {
	padding: 0 3px;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* var */
:root {
	--headerH: 55px;
	--mainWidth: 960px;
}

/* tablet */
@media screen and (max-width: 960px) {
	:root {
		--mainWidth: 100%;
	}
}

/*------------------------------------------------------------------------------
 wrapper
 ------------------------------------------------------------------------------*/
#wrapper {
	overflow: hidden;
	position: relative;
	width: 100%;
	min-height: 100%;
	height: auto !important;
	height: 100%;
}
#wrapper:after {
	content: '';
	display: block;
	width: 100%;
	height: 30px;
}

/*------------------------------------------------------------------------------
 header
 ------------------------------------------------------------------------------*/
#header {
	position: relative;
	background: #1F9BD4;
	border-top: 3px solid #4D4D4D;
}
#header._sticky {
	position: fixed;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	z-index: 9999;
}
#header .inner {
	display: flex;
	align-items: center;
	width: var(--mainWidth);
	margin: 0 auto;
}

/* shopName */
#header .shopName {
	margin-right: 10px;
	display: flex;
}
@media screen and (max-width: 768px) {
	#header .shopName {
		margin-left: 10px;
	}
}
#header .shopName a {
	display: inline-block;
	padding-right: 20px;
	font-size: 20px;
	font-weight: bold;
	color: #FFF;
	text-decoration: none;
	background: url(/shop/images/external-link.png) no-repeat right 50% / 12px;
}
#header .shopName a:hover {
	color: yellow;
	text-decoration: underline;
}

/* gmenu */
#header .gmenu {
	margin-left: auto;
	display: flex;
	align-items: center;
}
#header .gmenu li {
	list-style: none;
}
#header .gmenu > li > a {
	display: flex;
	align-items: center;
	justify-content: center;
		text-align: center;
	height: var(--headerH);
	line-height: 1.2;
	padding: 0 12px;
	font-size: 14px;
	color: #FFF;
	text-decoration: none;
	white-space: nowrap;
}
#header .gmenu > li > a:hover {
	color: yellow;
	background: #41B5EB;
}

/* menuIcon */
#header .menuIcon:hover #menu {
	visibility: visible;
	opacity: 1;
}
#header .menuIcon > a {
	width: 60px;
}
#header .menuIcon > a img {
	width: 26px;
}

/*------------------------------------------------------------------------------
 menu
 ------------------------------------------------------------------------------*/
#menu {
	position: absolute;
	top: var(--headerH);
	left: 0;
	width: 100%;
	background: #474747 url(/shop/images/menu-bg-black.png);
	border-bottom: 1px solid #2D8EC8;
	z-index: 9;
	visibility: hidden;
	opacity: 0;
	transition: .3s;
}
#menu ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	width: var(--mainWidth);
	margin: 0 auto;
	padding: 10px 0;
}
#menu li {
	list-style: none;
	flex: 0 0 calc(100% / 6);
}
#menu li a {
	display: inline-flex;
	align-items: center;
	height: 30px;
	padding: 0 8px;
	color: #FFF;
	text-decoration: underline;
	font-size: 14px;
	border-radius: 3px;
}
#menu li a:hover:not(.nolink) {
	text-decoration: none;
	color: yellow;
}
#menu li a.nolink {
	text-decoration: none;
	color: #999;
}
#menu li.on a {
	text-decoration: none;
	color: yellow;
	background: url(/shop/images/menu-on-bg.png) repeat-x;
}
#menu li.on a:hover {
	text-decoration: underline;
}
#menu li .count {
	text-align: center;
	display: inline-block;
	width: 18px;
	height: 18px;
	line-height: 18px;
	font-family: Arial;
	color: #FFF;
	background: #F00;
	border-radius: 100%;
	margin-left: -10px;
}

/*------------------------------------------------------------------------------
 main
 ------------------------------------------------------------------------------*/
#main {
	width: var(--mainWidth);
	margin: 30px auto;
}
#header._sticky + #main {
	margin-top: calc(var(--headerH) + 33px);
}
@media screen and (max-width: 768px) {
	#main {
		width: calc(100% - 20px);
		margin: 30px 10px;
	}
}

/*------------------------------------------------------------------------------
 container
 ------------------------------------------------------------------------------*/
.cHead {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 42px;
	padding: 0 15px;
	border: 1px solid #CCC;
	border-bottom-color: #DDD;
	border-radius: 3px 3px 0 0;
}
.cHead:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: #F5F5F5 url(/shop/images/cHead-bg.png) repeat-x;
	border: 1px solid #FFF;
	border-radius: 3px 3px 0 0;
	z-index: -1;
}
.cHead h2 {
	margin: 1px 0 0;
	font-size: 16px;
	color: #111;
}
.cHead h2 small {
	font-size: 14px;
	font-weight: normal;
}

/* cMenu */
.cMenu {
	margin: 2px 0 0 auto;
}
.cMenu .marker {
	font-size: 1em;
}

/* cBody */
.cBody {
	overflow: hidden;
	background: #FFF;
	border: 1px solid #DDD;
	border-top: 0;
}
.cBody > * {
	margin: 15px;
}

/*------------------------------------------------------------------------------
 message
 ------------------------------------------------------------------------------*/
#message {
	margin: 15px 0;
	padding: 10px 15px;
	background-color: #FFF;
	background-repeat: no-repeat;
	background-position: 5px 3px;
	border: 1px solid #CCC;
	border-radius: 3px;
}
.cBody > #message {
	margin: 15px;
}
#message.mssg_error {
	color: red;
	background-color: #FAE2E3;
	background-image: url(/shop/images/ico_error.png);
	border-color: #EC9B9B;
}
#message.mssg_caution {
	color: black;
	background-color: #FFFAC6;
	background-image: url(/shop/images/ico_caution.png);
	border-color: #D3C200;
}
#message.mssg_success {
	color: black;
	background-color: #DFFAD3;
	background-image: url(/shop/images/ico_success.png);
	border-color: #72CB67;
}
#message.mssg_info {
	color: black;
	background-color: #DDE9F7;
	background-image: url(/shop/images/ico_info.png);
	border-color: #50B0EC;
}
#message * {
	line-height: 1.4;
}
#message dt {
	padding-left: 30px;
}
#message dd {
	margin: 10px 0 0;
}
#message dd .errorList {
	color: #222;
}
#message.mar_bot {
	margin-bottom: 15px;
}

/*------------------------------------------------------------------------------
 notice
 ------------------------------------------------------------------------------*/
ul.notice {
	padding: 10px 15px;
	background: #EEE;
	border: 1px solid #CCC;
}
ul.notice2 {
	color: red;
	background: #FFC;
}
ul.notice li {
	list-style: inside;
	line-height: 1.4;
}
ul.notice li:not(:last-child) {
	margin-bottom: 10px;
}

/*------------------------------------------------------------------------------
 pointSummary
 ------------------------------------------------------------------------------*/
.pointSummary {
	display: flex;
	justify-content: space-around;
	margin: 15px 0;
	padding: 8px 0;
	background: #E6F9F8;
	border: 1px solid #7F9DB9;
	border-radius: 2px;
}
.pointSummary dl {
	display: flex;
	align-items: center;
}
.pointSummary dl:not(:last-child) {
}
.pointSummary dt {
	white-space: nowrap;
	padding: 5px 8px;
	font-weight: normal;
	color: #FFF;
	background: #333;
	border-radius: 2px;
}
.pointSummary dd {
	display: flex;
	align-items: center;
	margin-left: 10px;
}
.pointSummary dd strong {
	font-size: 15px;
	font-weight: bold;
}
.pointSummary dd small {
	margin-left: 5px;
	font-size: 11px;
}
.pointSummary dl:nth-child(1) dt { background: #1CA9F0; }
.pointSummary dl:nth-child(2) dt { background: #4CCD32; }
.pointSummary dl:nth-child(3) dt { background: #F09928; }
.pointSummary dl:nth-child(1) dd strong { color: #008BD1; }
.pointSummary dl:nth-child(2) dd strong { color: #289F10; }
.pointSummary dl:nth-child(3) dd strong { color: #EB9100; }

/*------------------------------------------------------------------------------
 toPageTop
 ------------------------------------------------------------------------------*/
#toPageTop {
	display: none;
	position: fixed;
	bottom: 15px;
	right: 15px;
	z-index: 999;
}
#toPageTop a {
	position: relative;
	text-align: center;
	display: block;
	width: 40px;
	height: 38px;
	text-decoration: none;
	font-size: 16px;
	color: #FFF;
	background: #80C2F9;
	border-radius: 3px;
	opacity: 0.7;
	z-index: 999;
}
#toPageTop a:after {
	position: absolute;
	top: 20px;
	left: 50%;
	content: '';
	display: block;
	width: 12px;
	height: 12px;
	margin-top: -5px;
	margin-left: -6px;
	border-style: solid none none solid;
	border-width: 4px;
	border-color: #FFF;
	border-radius: 2px;
	transform: rotate(45deg);
}
#toPageTop a:hover {
	background: #49A8F6;
	opacity: 1;
}

/*------------------------------------------------------------------------------
 footer
 ------------------------------------------------------------------------------*/
#footer {
	position: absolute;
	left: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 30px;
	font-size: 12px;
	color: #29A;
	background: #333;
}

/*------------------------------------------------------------------------------
 quill
 ------------------------------------------------------------------------------*/
.ql-align-center  { text-align: center;  }
.ql-align-left    { text-align: left;    }
.ql-align-right   { text-align: right;   }
.ql-align-justify { text-align: justify; }
.ql-size-small    { font-size: 0.75em;   }
.ql-size-large    { font-size: 1.5em;    }
.ql-size-huge     { font-size: 2.5em;    }

/*------------------------------------------------------------------------------
 misc
 ------------------------------------------------------------------------------*/
.c { text-align: center; }
.r { text-align: right; }
.l { text-align: left; }
.lh120 { line-height: 120% !important; }
.lh140 { line-height: 140% !important; }
.lh150 { line-height: 150% !important; }
.lh180 { line-height: 180% !important; }
.lh200 { line-height: 200% !important; }
a.u {
	text-decoration: underline;
}
.nowrap {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.noData {
	line-height: 1.5;
	margin: 25px 15px;
}
