@charset "UTF-8";
/*----------------------------------------------
 * * reset styles
 * *----------------------------------------------*/
main {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  display: block;
}
/*----------------------------------------------
 * * formatting styles
 * *----------------------------------------------*/
:root {
  --text-black: #333;
  --fontFamily: "Hiragino Kaku Gothic ProN","メイリオ",Meiryo,"ＭＳ Ｐゴシック",sans-serif;
  --baseWidth: 1280px;
  --subWidth: 980px;
  --mainColor: #0168b7;
  --accentColor: #02b4ed;
}
@media screen and (max-width: 767px) {
  :root {
    --baseWidth: 100%;
    --subWidth: 90%;
  }
}
html {
  font-size: 62.5%;
  box-sizing: border-box;
}
* {
  box-sizing: inherit;
}
*:before, *:after {
  box-sizing: inherit;
}
body {
  font-family: var(--fontFamily);
  font-size: 1.6em;
  line-height: 1.6;
  color: var(--text-black);
  min-width: var(--baseWidth);
}
.scroll-prevent {
  position: fixed;
  width: 100%;
  height: 100%;
}
.hidden {
  display: none;
}
@media screen and (max-width: 767px) {
  body {
    -webkit-text-size-adjust: 100%;
    min-width: 320px;
  }
}
a {
  color: var(--text-black);
  text-decoration: none;
  transition-duration: 0.3s;
}
_::-webkit-full-page-media, _:future, :root a {
  text-underline-offset: 2px;
}
img {
  border-style: none;
  height: auto;
  vertical-align: middle;
}
[href^="tel:"] {
  display: inline-block;
  pointer-events: none;
  text-decoration: none;
}
button {
  -webkit-appearance: none;
  appearance: none;
  outline: 0;
  margin: 0;
  font-family: inherit;
  font-size: 100%;
  cursor: pointer;
  transition-duration: 0.3s;
}
h2 {
	margin-bottom: 30px;
	text-align: center;
	font-size: 2.2rem;
}
h2 img {
	display: block;
	margin:0 auto 15px;
}
.rlg {
  background: linear-gradient(to right, var(--mainColor), var(--accentColor));
}
@media screen and (min-width: 768px) {
  a:hover {
    text-decoration: underline;
  }
	.sponly {
		display: none;
	}
}
@media (any-pointer: coarse) {
  a:active {
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  [href^="tel:"] {
    pointer-events: auto;
    text-decoration: underline;
  }
	.pconly {
		display: none;
	}
	h2 {
	width: var(--subWidth);
	margin: 0 auto 30px;
	text-align: left;
		font-size: 1.8rem;
}
h2 img {
	display: block;
	margin:0 0 15px;
	width: auto;
	height: 32px;
}
}
/*----------------------------------------------
 * * clearfix
 * *----------------------------------------------*/
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}
/* ----------------------------------------------
 * * header
 * *----------------------------------------------*/
header {
  height: 100px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: var(--baseWidth);
  margin: 0 auto;
}
header .logo a {
  display: block;
	margin-bottom: 20px;
  height: 100%;
}
header .logo img {
  width: 370px;
  height: auto;
}
.btnHamburger {
  display: none;
}
@media screen and (min-width: 768px) {
  header .logo a:hover {
    opacity: 0.7;
  }
}
@media (any-pointer: coarse) {
  header .logo a:active {
    opacity: 0.7;
  }
}
@media screen and (max-width: 767px) {
  header {
    position: absolute;
    z-index: 100;
    left: 0;
    top: 0;
    width: 100%;
		align-items: center;
    height: 60px;
    padding: 0 0 0 5px;
  }
  header .logo img {
    width: calc(100% - 90px);
    height: auto;
  }
	header .logo a {
	margin-bottom: 0px;
  height: 100%;
}
  .btnHamburger {
    display: block;
    position: fixed;
    right: 0;
    top: 0;
    width: 60px;
    height: 60px;
    border: none;
    background-color: var(--mainColor);
    color: #fff;
    font-size: 1.1rem;
    padding-right: 3px;
    padding-left: 3px;
  }
  .btnHamburger::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 10px;
    width: 30px;
    height: 2px;
    background-color: #fff;
    transition-duration: 0.3s;
  }
  .btnHamburger::after {
    content: "";
    position: absolute;
    left: 15px;
    top: 30px;
    width: 30px;
    height: 2px;
    background-color: #fff;
    transition-duration: 0.3s;
  }
  .btnHamburger span {
    display: block;
    height: 100%;
    padding-top: 37px;
    color: #fff;
  }
  .btnHamburger span::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 20px;
    width: 30px;
    height: 2px;
    background-color: #fff;
    transition-duration: 0.3s;
  }
  .btnHamburger .close {
    display: none;
  }
  header.open {
    position: fixed;
    width: 100%;
    left: 0;
    top: 0;
    background-color: #fff;
  }
  header.open .btnHamburger::before {
    transform: rotate(45deg);
    top: 20px;
  }
  header.open .btnHamburger::after {
    transform: rotate(-45deg);
    top: 20px;
  }
  header.open .btnHamburger span::before {
    opacity: 0;
  }
  header.open .btnHamburger .close {
    display: block;
  }
  header.open .btnHamburger .menu {
    display: none;
  }

}
/* ----------------------------------------------
 * * nav
 * *----------------------------------------------*/

@media screen and (min-width: 768px) {
	nav ul {
  display: flex;
  align-content: center;
  align-items: center;
	font-weight: bold;
	font-size: 1.5rem;
}
nav > ul > li:not(.contact) {
	border: 1px solid #ccc;
	border-radius: 6px;
}
nav .naviHome {
  display: none;
}
nav .navProducts {
	display: flex;
}
nav .navProducts p {	
	padding: 10px 15px 10px 20px;
	border-right: 1px solid #ccc;
	background-color: #f2f2f2;
	border-radius: 6px 0 0 6px;
	font-weight: normal;
}
nav .navProducts ul li {
	padding: 0 20px;
	line-height: 0.9;
}
nav .navProducts ul li + li {
	border-left: 1px solid #ccc;
}
nav .navCompany {
	margin: 0 0 0 15px;
	padding: 10px 20px;
	border-radius: 6px;
}
	nav .contact {
		margin-left: 15px;
	}
nav .contact a {
  display: block;
  padding: 10px 20px;	
  background-color: var(--mainColor);
	border-radius: 6px;
  color: #fff;  
}
	nav a:hover {
		color: var(--mainColor);
    text-decoration: none;
	}
  nav .contact a:hover {
    background-color:  var(--accentColor);
		color: #fff;
    text-decoration: none;
  }
  nav li.tel {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  nav {
    position: fixed;
    z-index: 100;
    right: 0;
    top: 60px;
    max-width: none;
    width: 100%;
    height: calc(100% - 60px);
    background-color: #fff;
    display: block;
    color: inherit;
    font-weight: normal;
    font-size: 1.8rem;
    transform: scale(0, 0);
    transform-origin: right top;
    transition-duration: 0.3s;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
  }
  nav > ul {
    width: var(--subWidth);
    margin: 30px auto 0;
    display: block;
		font-weight: bold;
  }
 nav > ul > li:not(.contact):not(.tel) {
	 position: relative;
	 z-index: 1;
	 background: linear-gradient(to right, var(--mainColor), var(--accentColor));
	 border-radius:6px;
	 padding: 2px;
}
	nav > ul > li:not(.contact):not(.tel) a {
		display: block;
		padding: 15px 0;
		background: #fff url("../img/arrowB.png") no-repeat calc( 100% - 15px ) center;
	background-size: 5px auto;
		text-align: center;
	}
nav > ul > li.naviHome a,
	nav > ul > li.navCompany a {
		border-radius: 4px;
	}
	nav > ul > li.navProducts ul li:last-of-type a {
		border-radius: 0 0 4px 4px;
	}
	nav > ul > li + li {
		margin-top: 30px;
	}
	nav > ul > li ul li a {
		margin-top: 1px;
	}
	nav > ul > li.navProducts p {
		padding: 10px;
		text-align: center;
		background-color: #e5f2fa;
		border-radius: 4px 4px 0 0;
	}
	nav .contact a {
		display: block;
		padding: 15px 0;
		background: #0168b7 url("../img/arrowW.png") no-repeat calc( 100% - 15px ) center;
	background-size: 5px auto;
		text-align: center;
		color: #fff;
		border-radius:6px;
	}
	nav .tel {
		margin: 0;
		padding: 30px 0;
		text-align: center;
		font-size: 2.0rem;
		font-weight: bold;
	}
	nav .tel p {
		font-size: 1.4rem;
		font-weight: normal;
	}
	nav .tel a {
		display: block;
		margin: 10px 0 5px;
		font-size: 2.6rem;
		text-decoration: none;
	}
	nav .tel + .tel {
		border-top: 1px solid #ccc;
	}
	nav .tel a img {
		margin-right: 10px;
	}
  .open nav {
    transform: scale(1, 1);
  }
	nav a:active {
		 color: var(--mainColor);
    text-decoration: none;
	}
  nav .contact a:active {
    background-color: #fff;
    color: var(--mainColor);
    text-decoration: none;
  }
}
/* ----------------------------------------------
 * * footer
 * *----------------------------------------------*/
footer {
	padding: 90px 0 0;
	background: linear-gradient(to right, var(--mainColor), var(--accentColor));
	text-align: center;
	color: #fff;
}
footer .innerBox {
	display: flex;
	justify-content: space-between;
	width: var(--subWidth);
	margin: 45px auto 100px;
}
footer .innerBox div {
	width: 230px;
	padding: 15px;
	border: 2px solid #99c2e2;
	text-align: left;
}
footer .innerBox div * + * {
	margin-top: 10px;
}
footer .innerBox div h3 {
	font-size: 1.8rem;
	font-weight: bold;
}
footer .innerBox div:last-of-type h3 {
	font-size: 2.2rem;
	font-weight: bold;
}
footer .innerBox a {
	display: block;
	font-size: 2.2rem;
	color: #fff;
}
footer .innerBox a img {
	margin: 0 8px 6px 0;
}
footer .innerBox div:last-of-type {
	padding: 0;
	border-color: #fff;
	text-align: center;
	width: auto;
	background-color: var(--mainColor);
}
footer .innerBox div:last-of-type a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 230px;
	height: 100%;
  padding-right: 8px;
	background:url("../img/arrowW.png") no-repeat calc( 100% - 20px ) center;
	background-size: 8px auto;	
}
.copyright {
  padding: 40px 0;
	background-color: #fff;
  color: #808080;
  font-size: 1.2rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
	footer .innerBox div:last-of-type a:hover {
	background-color: var(--accentColor);
		text-decoration: none;
	}
}
@media screen and (max-width: 767px) {
  footer {
    width: 100%;
		padding: 60px 0 0;
		text-align: left;
  }
	footer > p {
		padding: 0 5%;
	}
footer .innerBox {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: var(--subWidth);
	margin: 0 auto 60px;
}
footer .innerBox div {
	width: 100%;
	margin: 30px 0 0;
	padding: 0;
	border: none;
	text-align: left;
}
footer .innerBox div * + * {
	margin-top: 10px;
}
footer .innerBox div h3,
	footer .innerBox div:last-of-type h3 {
	font-size: 1.8rem;
	font-weight: bold;
}
footer .innerBox div p br.pcOn {
  display: none;
}
footer .innerBox a {
	display: block;
	padding: 10px 0;
	border:2px solid #fff;
	font-size: 1.8rem;
	font-weight: bold;
	color: #fff;
	text-decoration: none;
	text-align: center;
	background: #0168b7 url("../img/arrowW.png") no-repeat calc( 100% - 15px ) center;
	background-size: 5px auto;
}
footer .innerBox a img {
	margin: 0 10px 6px 0;
}
footer .innerBox div:last-of-type {
	order: -1;
	padding: 0;
	border-color: #fff;
	text-align: center;
	width: auto;
}
footer .innerBox div:last-of-type a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background: #0168b7 url("../img/arrowW.png") no-repeat calc( 100% - 15px ) center;
	background-size: 5px auto;
}
.copyright {
  padding: 40px 0;
	background-color: #fff;
  color: #808080;
  font-size: 1.2rem;
  text-align: center;
}
}