@charset "utf-8";
html,body {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
}
body {
	position:relative;
	background:#fff;
	color:#000000;
	font-family: 'Museo Sans', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo", "メイリオ", Osaka, "ＭＳ Ｐゴシック", sans-serif;
	font-size: 14px;
	line-height:1.8;
}
nav, h2, h3 {
  font-family: 游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Hiragino Mincho Pro",HGS明朝E,メイリオ,Meiryo,serif !important;
}
div, p {
	margin-bottom:1.5em;
}
a {
  text-decoration:underline;
  color:#114ae9;
}
a:link, a:visited {
}
a:hover, a:active {
	color:#114ae9;
}
ul.attention {
	margin-left:1rem;
}
ul.attention li {
	list-style-type: none;
	text-indent: -1rem;
}
ul.attention li:before {
	display: inline;
	content: "※";
}
.error {
	color:#f00;
	text-align:left;
	margin:0 0 0 0.9em;;
}
.require {
  background:#f00;
  color:#fff;
  border-radius:0.5em;
  padding:0 0.5em;
  margin-left:0.5em;
}
span.nowrap {
	white-space: nowrap;
}
.pc {
  display:block;
}
.sp {
  display:none;
}
@media screen and (max-width:768px) {
.pc {
  display:none;
}
.sp {
  display:block;
}
}
.wrapper {
  width:1050px;
  max-width:100%;
  margin:2em auto;
  padding: 0 2rem;
}

header .wrapper {
  position:relative;
  margin:2rem auto;
}
@media screen and (max-width:1000px) {
header .wrapper {
  margin:2rem auto 4rem;
}
}
header>div {
  width:100%;
  position:fixed;
  z-index:10;
  background:linear-gradient(rgba(255,255,255,1) 75%, rgba(255,255,255,0));
}
@media screen and (max-width:1000px) {
header>div {
  background:linear-gradient(rgba(255,255,255,1) 90%, rgba(255,255,255,0));
}
}
header h1 {
  float:left;
}
header h1 a {
	color:#114ae9;
	font-size:2.5rem;
	text-decoration:none;
  font-family: 游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Hiragino Mincho Pro",HGS明朝E,メイリオ,Meiryo,serif !important;
}
header h1 a:hover, header h1 a:active {
	color:#114ae9;
}
header h1 img {
  height:4rem;
  vertical-align:middle;
  margin-right:1rem;
}
nav {
  float:right;
  font-weight: 600;
  font-style: normal;
  font-size:1.4em;
}
nav ul {
  display:block;
}
.menu_btn {
	position:absolute;
	top:-0.5rem;
	right:2rem;
	width:4em;
	height: 4em;
	font-size:0.6em;
	z-index: 1;
	cursor:pointer;
	text-align: center;
	color:#000;
}
.menu_btn span {
		display: block;
		position: absolute;		/* .navToggleに対して */
		width: 100%;
		border-bottom: solid 0.5em #000;
		-webkit-transition: .35s ease-in-out;
		-moz-transition: .35s ease-in-out;
		transition: .35s ease-in-out;
		left: 0;
}
.menu_btn span:nth-child(1) {
		top: 0;
}
.menu_btn span:nth-child(2) {
		top: 1.2em;
}
.menu_btn span:nth-child(3) {
		top: 2.4em;
}
.menu_btn span:nth-child(4) {
		border: none;
		top: 3em;
}
/* 最初のspanをマイナス45度に */
.menu_btn.active span:nth-child(1) {
		top: 1.2em;
		left: 0;
		-webkit-transform: rotate(-45deg);
		-moz-transform: rotate(-45deg);
		transform: rotate(-45deg);
}
 
/* 2番目と3番目のspanを45度に */
.menu_btn.active span:nth-child(2),
.menu_btn.active span:nth-child(3) {
		top: 1.2em;
		-webkit-transform: rotate(45deg);
		-moz-transform: rotate(45deg);
		transform: rotate(45deg);
}
nav ul + .menu_btn {
  display:none;
}
nav ul li {
  display:inline-block;
}
nav ul li a {
	display:block;
	vertical-align: middle;
	line-height: 4rem;
	padding:0 1em;
	color:#272727;
  text-decoration:none;
  font-size:0.7em;
  font-weight:bold;
}
nav ul li:last-of-type a {
  padding-right:0;
}


@media screen and (max-width:1000px) {
nav ul {
  display:none;
  background:#272727;
  position:absolute;
  top:5.5rem;
  right:0;
}
nav ul li {
  display:block;
  padding:0.2em;
}
nav ul li a {
	display:block;
	vertical-align: middle;
	line-height: 2em;
	padding:0 0.5em;
	color:#fff;
  text-decoration:none;
  border-bottom:1px solid #ddd;
}
nav ul + .menu_btn {
	display: block;
}
}

main {
  padding:5rem 0 0;
}
@media screen and (max-width:1000px) {
main {
  padding:8rem 0 0;
}
}
main .visual {
  position:relative;
}
main .visual img {
  width:100%;
}
main .visual .wrapper {
  position:absolute;
  top:30%;
  left:0;
  right:0;
}
main .visual h2 {
  display:inline;
  color:#fff;
  font-size:2em;
  font-weight:bold;
  padding:0;
	filter: drop-shadow(0px 0px 30px rgba(255,255,255,1));
}
@media screen and (max-width:1000px) {
main .visual .wrapper {
  position:absolute;
  top:20%;
  left:0;
}
main .visual h2 {
  font-size:1em;
  display:block;
  width:100%;
  text-align:center;
  padding:1em;
}
}

section {
	position:relative;
	z-index:0;
	margin:0;
	display:block;
	padding:1em;
}
section h2 {
  font-weight:bold;
  font-size:1.4em;
  border-bottom:1px solid #707070;
  margin-bottom:1em;
  vertical-align:middle;
  position:relative;
  padding:0 0 0 2.4em;
}
section h2:before {
  content:"";
  position:absolute;
  left:0;
  top:0.6em;
  display:inline-block;
  width:0.8em;
  height:0.4em;
  background:#000;
}
section h2:after {
  content:"";
  position:absolute;
  left:0.8em;
  top:0.6em;
  display:inline-block;
  width:0.8em;
  height:0.4em;
  background:#114ae9;
}
section p {
  text-align:center;
  margin-bottom:2em;
}
@media screen and (max-width:640px) {
section p {
  text-align:left;
}
}
article {
  margin-bottom:5em;
}

footer {
	text-align:center;
	background:#000;
	color:#fff;
}

footer p {
	display:block;
	padding:2em 0;
	font-size:0.8em;
	margin:0;
}


section#news dl {
}
section#news dl dt {
  width:8em;
  display:inline-block;
  margin: 0 0 1em;
}
section#news dl dd {
  display:inline-block;
  width:calc(100% - 10em);
}

section#news .more {
  display:block;
  text-align:right;
}

section#business {
  background:#F5F4F4;
}
section#business .flow {
  text-align:center;
  margin: 0 auto 5em;
}
section#business ol {
  margin: 2em auto;
  width:80%;
}
section#business ol li  {
  list-style: none;
  font-size:1.2em;
  padding-left: 1.3em;
  text-indent: -1.3em;
  margin-bottom:1em;
}
@media screen and (max-width:1000px) {
section#business ol {
  width:100%;
}
}

section#company div img {
  float:left;
  width:450px;
  margin:0 2em 1em 0;
}
section#company div p {
  font-size:1.2em;
  text-align:left;
  overflow:hidden;
  font-family: 游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Hiragino Mincho Pro",HGS明朝E,メイリオ,Meiryo,serif !important;
}
@media screen and (max-width:1000px) {
section#company div img {
  float:none;
  display:block;
  margin:0 auto 1em;;
}
}

section#company table tr:nth-child(odd) th, section#company table tr:nth-child(odd) td {
  background:#93d1ed;
}
section#company table tr:nth-child(even) th, section#company table tr:nth-child(even) td {
  background:#c5edff;
}

section#product a {
  color:#000;
  text-decoration:none;
}
section#product dl {
  display:inline-block;
  width:calc(100% / 2 - 0.5em);
  padding:1em;
  text-align:center;
  vertical-align:top;
  cursor:pointer;
}
section#product dl:hover {
  background:#FFEFEF;
}
@media screen and (max-width:1000px) {
section#product dl {
  display:block;
  width:100%;
  margin:0 auto 2em;
}
}
section#product dl dt {
  font-size:1.2em;
  font-weight:bold;
  border-bottom:1px solid #707070;
  margin-bottom:1em;
}
section#product dl dd.photo {
  margin-bottom:1em;
}
section#product dl dd.photo img {
  display:inline-block;
  width:calc(100% / 2 - 0.2em);
}
section#product dl dd.text {
  text-align:left;
}

section#faq dl {
  text-align:left;
  line-height:2;
}
section#faq  dl dt {
  padding:1em 0.5em 1em 3em;
  position:relative;
  border-bottom:solid 1px #666;
}
@media screen and (max-width:640px) {
section#faq dl dt {
  padding:1em 3em 1em 3em;
}
}
section#faq dl dt:before {
  content:"Q.";
  font-size:1.5em;
  color:#F00;
  position:absolute;
  top:0.25em;
  left:0.5em;
}
section#faq dl dd {
  padding:1em 0.5em 1em 3em;
  position:relative;
}
section#faq dl dd:before {
  content:"A.";
  font-size:1.5em;
  font-weight:bold;
  color:#000;
  position:absolute;
  top:0.25em;
  left:0.5em;
}
section#order .txt_ttl {
  font-size: 1.4em;
  margin: 4em auto 2em;
}

section#catalogue a {
  color:#000;
  text-decoration:none;
}
section#catalogue dl {
  display:inline-block;
  width:calc(100% / 4 - 2.4em);
  margin:1em;
  text-align:center;
  vertical-align:top;
}
@media screen and (max-width:1000px) {
section#catalogue dl {
  display:block;
  width:100%;
  margin:0 auto 2em;
}
}
section#catalogue dl dt {
  margin-bottom:0.5em;
}
section#catalogue dl dt img {
  border:1px solid #000;
}
section#catalogue dl dd {
  font-size:1em;
  text-align:left;
}


section#product_list p {
  text-align:left;
  margin-bottom:1em;
}
section#product_list a {
  color:#000;
  text-decoration:none;
}
section#product_list dl {
  display:inline-block;
  width:calc(100% / 4 - 3em);
  margin:1em;
  text-align:center;
  vertical-align:top;
}
@media screen and (max-width:1000px) {
section#product_list dl {
  width:calc(100% / 3 - 3em);
}
}
@media screen and (max-width:640px) {
section#product_list dl {
  width:calc(100% / 2 - 3em);
}
}
@media screen and (max-width:400px) {
section#product_list dl {
  display:block;
  width:100%;
  margin:0 auto 2em;
}
}
section#product_list dl dt {
  margin-bottom:0.5em;
}
section#product_list dl dt img {
  border:1px solid #000;
}
section#product_list dl dd {
  text-align:left;
}
section#product_list dl dd.name {
  font-size:1.1em;
  font-weight:bold;
  margin:0 auto 1em;
}

section#product_list .description h3 {
  font-size:1.6em;
  font-weight:bold;
  text-align:center;
  margin:2em auto 1.5em;
}
section#product_list .description h3:before {
  content:"";
  background:url(../img/icon_note.png);
  background-size:contain;
  height:2em;
  width:2em;
  display:inline-block;
  vertical-align:middle;
  margin-right:0.5em;
}
@media screen and (max-width:640px) {
section#product_list .description h3 {
  text-align:left;
  font-size:1.4em;
}
section#product_list .description h3:before {
  height:1.6em;
  width:1.6em;
}
}
section#product_list .schedule table {
  border:none;
  width:60%;
}
section#product_list .schedule table tr th {
  text-align:center;
  font-size:1.4em;
  border:none;
}
section#product_list .schedule table tr td {
  border:none;
  padding:0.5em 0;
  border-bottom: 1px solid #000;
  vertical-align:middle;
}
section#product_list .schedule table tr td span {
  font-size:1.4em;
  font-weight:bold;
}
section#product_list .schedule table tr:last-of-type td {
  font-size:1.8em;
  border:none;
  text-decoration:underline;
  vertical-align:top;
}
section#product_list .schedule table tr:last-of-type td span {
  display:block;
  font-size:0.5em;
  font-weight:normal;
  text-decoration:none;
}
section#product_list .schedule table tr td:first-of-type {
  width:80%;
}
section#product_list .schedule table tr td:last-of-type {
  width:20%;
  text-align:right;
}
@media screen and (max-width:640px) {
section#product_list .schedule table {
  width:100%;
}
section#product_list .schedule table tr td:first-of-type {
  border-bottom:none;
}
}

table {
  margin:0 auto;
  max-width:800px;
  width:100%;
}
table th, table td {
  padding:1em;
  border:solid 1px #ccc;
}

@media screen and (max-width:640px) {
table th, table td {
	display:block;
	width:100% !important;
	border-bottom:none;
}
table tr:last-of-type td {
  border-bottom:solid 1px #ccc;
}
}
table th {
  width:30%;
}
table td {
}
.map {
  margin-top:1em;
  display:block;
  max-width:100%;
}

input[type="text"], input[type="email"], textarea {
	margin-bottom:1em;
	padding:1rem;
	width:100%;
	background:#fff;
	border:2px solid #ccc;
	border-radius:0.5rem;
	box-shadow:inset 0 1px 3px rgba(0,0,0,.1);
}
textarea {
	height:10em;
}
input[type="text"]:focus, input[type="email"]:focus, textarea:focus {
  border-color: #f00;
}

select {
	margin-bottom:1em;
	margin-right:0.5rem;
	padding:1rem;
	width:100%;
	border:2px solid #ccc;
	border-radius:0.5rem;
	box-shadow:inset 0 1px 3px rgba(0,0,0,.1);
	position:relative;
  background-color:#fff;
  background-image:
    linear-gradient(45deg, transparent 50%, gray 50%),
    linear-gradient(135deg, gray 50%, transparent 50%),
    linear-gradient(to right, #ccc, #ccc);
  background-position:
    calc(100% - 20px) calc(1em + 6px),
    calc(100% - 15px) calc(1em + 6px),
    calc(100% - 2.5em) 0.5em;
  background-size:
    5px 5px,
    5px 5px,
    1px 2em;
  background-repeat: no-repeat;
}

select:focus {
  background-image:
    linear-gradient(45deg, #f00 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #f00 50%),
    linear-gradient(to right, #ccc, #ccc);
  background-position:
    calc(100% - 15px) 1em,
    calc(100% - 20px) 1em,
    calc(100% - 2.5em) 0.5em;
  background-size:
    5px 5px,
    5px 5px,
    1px 2em;
  background-repeat: no-repeat;
  border-color: #f00;
  outline: 0;
}

::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color:#272727;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
   color:#272727;
}
::placeholder{ /* Others */
 color:#272727;
}

input[type="submit"] {
	display:inline-block;
	padding:0.4em 3em;
	width:auto;
	color:#fff;
	font-size:1.2em;
	font-weight:bold;
	text-align:center;
	border-radius:0.5rem;
	background-color:#F00;
	transition:all 0.1s linear;
}
input[type="submit"]:hover {
	cursor:pointer;
	color:#fff;
	background-color:#94a096;
}

.swiper-container {
  width: 100%;
  padding-top:1em;
}
.swiper-slide {
  background-position: center;
  background-size: cover;
  width: 356px;
  height: 284px;
}

#privacy {
  padding:1em;
}
#privacy dl {
  margin-bottom:1em;
}
#privacy .close_btn {
	display:block;
	padding:0.4em 3em;
	width:auto;
	color:#fff;
	font-size:1.2em;
	font-weight:bold;
	text-align:center;
	border-radius:0.5rem;
	background-color:#666;
	transition:all 0.1s linear;
	margin:1em auto;
	text-decoration:none;
}
#privacy .close_btn:hover {
	cursor:pointer;
	color:#fff;
	background-color:#94a096;
}

#contact .txt_ttl {
  padding:10em 0;
}

body.modal {
  height: 100vh;
  overflow-y: hidden;
  position: fixed;
}
#product_detail {
  position: fixed;
  top:0;
  left:0;
  width: 100%;
  height: 100%;
  z-index: 200;
  margin: 0 auto;
  background: rgba(0,0,0,0.6);
  display: none;
  animation: fadeIn 0.3s forwards;
}
#product_detail article {
  background:#fff;
  border-radius:2em;
  padding:2em 6em 2em 2em;
  margin:0 auto 0;
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  overflow: auto;
  display:none;
}
#product_detail article .menu_btn {
  top:2rem;
}
#product_detail article div.image {
  display:inline-block;
  padding:2em;
  width:32%;
  vertical-align:top;
}
#product_detail article dl {
  display:inline-block;
  padding:2em 0;
  width:67%;
  vertical-align:top;
}
#product_detail article dl dt {
  font-weight:bold;
  border-bottom:1px solid #000;
}
#product_detail article dl dd {
  margin:0 auto 1em;
}
@media screen and (max-width:640px) {
#product_detail article {
  padding:6em 1em 1em;
  top: 2%;
  left: 2%;
  -webkit-transform: initial;
  transform: initial;
  width:96%;
  max-height: calc(100vh - 2%);
}
#product_detail article div.image {
  display:block;
  width:initial;
  padding:0;
  margin:0;
  vertical-align:top;
}
#product_detail article dl {
  display:block;
  padding:2em 0;
  width:initial;
}
}