@charset "utf-8";

/* header */
.main_visual {
}


/* main */
.theme_box {
	width: calc((100% - 30px) / 3);
	margin-bottom: 15px;
}
@media(max-width:768px){
	.theme_box {
		width: calc((100% - 10px) / 2);
		margin-bottom: 10px;
	}
}
/* common */
:root {
  --main-color: #1adced;
  --sub-color: #edfbff;
}
html {
	overflow-x: hidden;
}
body {
	color: #333;
	font-size: 18px;
	line-height: 1.6;
	overflow-x: hidden;
}
.container {
	width: 100%;
	max-width: 1230px;
	margin: auto;
}
.container_inner {
	width: 100%;
	max-width: 1230px;
	margin: auto;
	padding-right: 15px;
	padding-left: 15px;
}
.flex_wrap {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.flex_wrap.center {
	align-items: center;
}
.section_title {
	position: relative;
	margin: auto auto 30px;
	padding-bottom: 10px;
	border-bottom: solid 3px #cce4ff;
}
.section_title::after {
	content: "";
	border-bottom: solid 3px #5472cd;
	position: absolute;
	left: 0;
	bottom: -3px;
	margin: auto;
	width: 20%;
}
.section_title span {
	color: #999;
	font-size: 14px;
	padding-left: 10px;
}
a {
	text-decoration: none;
	transition: all 0.3s;
}
a:hover {
	transform: translate(2px, 2px);
}
.btn_link {
	margin: 20px auto;
}
.btn_link a {
	display: block;
	background: var(--main-color);
	width: 100%;
	max-width: 360px;
	margin: auto;
	padding: 20px;
	text-align: center;
	color: #fff;
}
section {
	padding: 60px 0;
}
@media(max-width: 990px){
}
@media(max-width: 990px){
	section {
		padding: 30px 0;
	}
}
@media(max-width: 480px){
}
@media(min-width: 769px){
	.sp_ele {
		display: none;
	}
}
@media(max-width: 768px){
	.pc_ele {
		display: none;
	}
}

/* header */
.header_left {
	width: 135px;
	padding-left: 15px;
}
.header_center {
	flex: 1;
	padding: 2px 20px;
}
.header_right {
	width: 15%;
	display: flex;
	justify-content: end;
}
.site-info {
	width: 100%;
	max-width: 390px;
	margin: auto;
}
.header_tel {
	margin: auto;
}
.main_visual {
}
.page_header {
	background: var(--main-color);
	text-align: center;
	color: #fff;
	padding: 40px 20px;
}
.header_bottom {
	background: var(--sub-color);
	margin: 10px auto 0;
}

.fixed .header_bottom {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 999;
	width: 100%;
	margin: auto;
}
.h_navi nav ul {
	display: flex;
	justify-content: center;
}
.h_navi li {
	list-style: none;
}
.h_navi li a {
	display: block;
	padding: 20px 20px;
	font-weight: bold;
	position: relative;
	text-align: center;
}
.h_navi li:not(:first-child) a::before {
	content: "";
	width: 1px;
	height: 80%;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	border-left: dotted 1px #333;
}
.site-contect {
	transition: all 0.3s;
}
.fixed .site-contect {
	position: fixed;
	right: 0;
	top: 80px;
	z-index: 10;
	width: 100px;
}
@media(max-width: 990px) {
	.h_navi li a {
		font-size: 14px;
	}
}

@media(max-width: 768px) {
	.site-contect {
		position: fixed;
		right: 15px;
		top: 50px;
		width: 40px;
		z-index: 10;
	}
	.fixed .site-contect {
		right: 15px;
		top: 50px;
		width: 40px;
	}
  .h_navi ul {
    position: fixed;
    right: -320px; /* 右から出てくる */
    top: 0;
    width: 300px; /* スマホに収まるサイズ */
    height: 100vh;
    padding-top: 60px;
    background-color: #fff;
    transition: all .6s;
    z-index: 200;
    overflow-y: auto; /* メニューが多くなったらスクロールできるように */
	}
	.nav-open .h_navi ul {
		right: 0; /* 右から出てくる */
	}
	.h_navi nav ul {
		display: block;
	}
	.h_navi li:not(:first-child) a::before {
		content: "";
		width: 80%;
		height: 1px;
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		bottom: inherit;
		margin: auto;
		border-left: none;
		border-top: dotted 1px #333;
	}
  .hamburger {
    position: fixed;
    right: 15px;
    top: 8px;
    width: 40px; /* クリックしやすい幅 */
    height: 40px; /* クリックしやすい高さ */
    cursor: pointer;
    z-index: 300;
  }
	.hamburger {
		border: solid 1px #333;
		background: #fff;
	}
  .hamburger_border {
    position: absolute;
    left: 11px;
    width: 18px;
    height: 2px;
    background-color: #333;
    transition: all .6s;
  }
  .hamburger_border_top {
    top: 14px;
  }
  .hamburger_border_center {
    top: 20px;
  }
  .hamburger_border_bottom {
    top: 26px;
  }
  .black_bg {
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    z-index: 100;
    background-color: #333;
    opacity: 0;
    visibility: hidden;
    transition: all .6s;
    cursor: pointer;
  }

  /* 表示された時用のCSS */
  .nav-open .black_bg {
    opacity: .8;
    visibility: visible;
  }
  .nav-open .hamburger_border_top {
    transform: rotate(45deg);
    top: 20px;
  }
  .nav-open .hamburger_border_center {
    width: 0;
    left: 50%;
  }
  .nav-open .hamburger_border_bottom {
    transform: rotate(-45deg);
    top: 20px;
  }
}
.bx-wrapper .bx-viewport {
	overflow: visible !important;
  -moz-box-shadow: none !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  border: none !important;
  left: 0px !important;
  background: transparent !important;
  -webkit-transform: translatez(0);
  -moz-transform: translatez(0);
  -ms-transform: translatez(0);
  -o-transform: translatez(0);
  transform: translatez(0);
}
.bx-wrapper .bx-viewport p {
    margin-top: 0;
}
.bx-wrapper {
    position: relative;
    margin: 0 auto 0px !important;
    padding: 0;
}
.bx-wrapper .bx-pager {
    text-align: center;
    font-size: .85em;
    font-family: Arial;
    font-weight: bold;
    color: #666;
    padding-top: 0px !important;
}
.bx-wrapper .bx-pager, .bx-wrapper .bx-controls-auto {
    position: absolute;
    bottom: -5px !important;
    width: 100%;
}
.bx-wrapper .bx-controls-direction a {
    z-index: 8 !important;
}
/* main */
#news {
	background: var(--sub-color);
}
.news_box {
	width: calc((100% - 20px) / 2);
	background: #fff;
	border: solid 2px #ccc;
	padding: 20px;
}
.list_list {
	
}
.list_list .list_entry {
	border-bottom: dotted 2px #ccc;
}
.list_date {
	font-size: 14px;
}
.list_title {
	font-size: 18px;
}
.list_data {
	padding: 10px 10px 5px;
	margin-bottom: 5px;
}
#contact {
	background: #eee;
}
.contact_box {
	width: calc((100% - 20px) / 2);
	margin-bottom: 30px;
}
.contact_box a {
	display: block;
	background: #fff;
	padding: 30px 10px;
	text-align: center;
	font-weight: bold;
	font-size: 20px;
}
.contact_box a span {
	display: block;
	width: 100%;
	font-size: 80%;
	font-weight: normal;
}
.contents_box {
	width: calc((100% - 20px) / 2);
	margin-bottom: 30px;
}
.contents_box h3 {
	border-bottom: solid 1px #999;
	padding: 10px 5px;
	margin-bottom: 5px;
}
.contents_box_image {
	position: relative;
	overflow: hidden;
}
.contents_box_image > p {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20px;
	position: absolute;
	left: 0;
	bottom: 100%;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.2);
	color: #fff;
	transition: all 0.3s;
}
.contents_box_image:hover > p {
	bottom: 0;
}
@media(max-width:768px){
	.contents_box ,
	.contact_box {
		width: 100%;
		max-width: 580px;
		margin-right: auto;
		margin-left: auto;
	}
	.contents_box_image > p {
		display: block;
		padding: 10px 0;
		position: static;
		width: 100%;
		height: auto;
		background: transparent;
		color: #333;
	}
	.news_box {
		width: 100%;
		margin-bottom: 20px;
	}
}

.text {
	font-weight: bold;
	margin: 20px auto;
}
.contents_image {
	margin: 30px auto;
}
.example_box:nth-child(even) .flex_wrap {
	flex-direction: row-reverse;
}
.example_box {
	margin: 20px auto;
}
.example_text {
	flex: 1;
}
.example_box:nth-child(odd) .example_text {
	padding-right: 20px;
}
.example_box:nth-child(even) .example_text {
	padding-left: 20px;
}
.example_image {
	width: 400px;
}
.example_text h3 {
	border-bottom: solid 1px #333;
	padding-bottom: 10px;
	margin-bottom: 10px;
}
@media(max-width:768px){
	.example_text {
		flex: auto;
	}
	.example_box:nth-child(odd) .example_text {
		padding-right: 0px;
	}
	.example_box:nth-child(even) .example_text {
		padding-left: 0px;
	}
	.example_image {
		width: 100%;
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.example_image img {
		margin: auto;
	}
}

/* footer */
footer {
	padding-top: 30px;
}

footer .copyright {
	background: var(--main-color);
	color: #fff;
	text-align: center;
}
.footer_top {
	text-align: center;
}
.footer_top img {
	margin: auto;
}
.footer-site-info {
	padding-top: 10px;
	padding-bottom: 20px;
}
.f_nav {
	margin: 20px auto;
}
.f_nav ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.f_nav ul li {
	width: calc((100% - 5px) / 2);
}
.f_nav ul li a {
	display: inline-block;
	padding: 5px 20px 5px 40px;
	position: relative;
}
.f_nav ul li a::before {
	content: "■";
	position: absolute;
	left: 10px;
	top: 5px;
}
.footer_bottom {
	margin: 20px auto;
}
.footer_shop ,
.footer_nav {
	width: calc((100% - 20px) / 2);
}
address {
	font-style:normal;
	font-size: 14px;
	margin: 5px auto;
}
@media(max-width:990px){
	.f_nav ul li {
	}
}
@media(max-width:768px){
	.footer_shop ,
	.footer_nav {
		width: 100%;
	}
	.f_nav ul li {
		width: calc((100% - 5px) / 2);
		padding: 2px 5px;
		border: solid 1px #333;
		margin-bottom: 2px;
	}
	.f_nav ul li a {
	}
}

#page_top{
	width: 90px;
	height: 90px;
	border-radius: 50%;
	border: solid 1px #43c2e6;
	background:#fff;
	position: fixed;
	right: 30px;
	bottom: 30px;
	opacity: 0.9;
}
@media(max-width: 990px){
	#page_top {
	  right: 0;
	  bottom: 0;
	}
}
#page_top a{
	position: relative;
	display: block;
	width: 90px;
	height: 90px;
	text-decoration: none;
}
#page_top a::before{
	font-weight: 900;
	content: '▲';
	font-size: 25px;
	color: #43c2e6;
	position: absolute;
	width: 25px;
	height: 25px;
	top: -40px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	text-align: center;
}
#page_top a::after{
	content: 'PAGE TOP';
	font-size: 13px;
	color: #fff;
	position: absolute;
	top: 45px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	text-align: center;
	color: #43c2e6;
}






