@charset "utf-8";
/*@font-face {
	font-family: 'bebas-neue';
	src: url("../fonts/BebasNeueBold.ttf") format("truetype");
  font-display: swap;
}*/

* {
	margin: 0;
	padding: 0
}
a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
	font-weight: 400;
	font-size: 100%;
	vertical-align: baseline;
	box-sizing: border-box
}
article, aside, details, figcaption, figure, footer, header, hgroup, img, menu, nav, section {
	display: block
}
img {
	width: 100%
}
blockquote, q {
	quotes: none
}
blockquote:after, blockquote:before, q:after, q:before {
	content: '';
	content: none
}
input, textarea {
	margin: 0;
	padding: 0;
  box-sizing: border-box;
}
strong {
  font-weight: bold;
}
ol {
	margin-left: 18px;
	padding: 0
}
ul {
	list-style: none;
	padding: 0
}
table {
	border-collapse: collapse;
	border-spacing: 0
}
caption, th {
	text-align: left
}
a {
	text-decoration: none;
  color: #333;
}
a:focus {
	outline: 0
}
.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden
}
.clearfix {
	min-height: 1px
}
* html .clearfix {
	height: 1px
}
.both {
	clear: both
}
.inline_block {
	display: inline-block;
 *display: inline;
 *zoom: 1
}
.anim {
	-webkit-transition: 0.3s;
	-moz-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s
}
html {
  font-size: 62.5%;
}
body {
  color: #333;
  font-size: 1.6rem;
  font-family: 'Noto Sans JP', 游ゴシック Medium, meiryo, Yu Gothic Medium, 游ゴシック, Yu Gothic, メイリオ, sans-serif !important;
}
.mintyo {
	font-family: 游明朝, YuMincho, ヒラギノ明朝 ProN W3, Hiragino Mincho ProN, HG明朝E, ＭＳ\ Ｐ明朝, ＭＳ\ 明朝, serif !important;
}
.mb-0 {
  margin-bottom: 0 !important
}
.mb-8 {
  margin-bottom: 8px !important
}
.mb-16 {
  margin-bottom: 16px !important
}
.mb-24 {
  margin-bottom: 24px !important
}
.mb-32 {
  margin-bottom: 32px !important
}
.mb-40 {
  margin-bottom: 40px !important
}
.mb-60 {
  margin-bottom: 60px !important
}
.mb-80 {
  margin-bottom: 80px !important
}
.mb-100 {
  margin-bottom: 100px !important
}
.mb-150 {
  margin-bottom: 150px !important
}

.mr-0 {
  margin-right: 0 !important;
}
.mr-8 {
  margin-right: 8px !important;
}
.mr-16 {
  margin-right: 16px !important;
}
.mr-24 {
  margin-right: 24px !important;
}
.mr-32 {
  margin-right: 32px !important;
}
.mr-40 {
  margin-right: 40px !important;
}
.ml-0 {
  margin-left: 0 !important;
}
.ml-8 {
  margin-left: 8px !important;
}
.ml-16 {
  margin-left: 16px !important;
}
.ml-24 {
  margin-left: 24px !important;
}
.ml-32 {
  margin-left: 32px !important;
}
.ml-40 {
  margin-left: 40px !important;
}
.m-center {
  margin-left: auto;
  margin-right: auto;
}
.m-center-important {
  margin-left: auto !important;
  margin-right: auto !important;
}
.padding-l-8 {
  padding-left: 8px;
}
.padding-l-16 {
  padding-left: 16px;
}
.padding-l-24 {
  padding-left: 24px;
}
.padding-l-32 {
  padding-left: 32px;
}
.padding-8 {
  padding: 8px;
}
.padding-16 {
  padding: 16px;
}
.padding-24 {
  padding: 24px;
}
.padding-32 {
  padding: 32px;
}
.padding-40 {
  padding: 40px;
}
.w-10 {
  width: 10%;
}
.w-20 {
  width: 20%;
}
.w-30 {
  width: 30%;
}
.w-40 {
  width: 40%;
}
.w-44 {
  width: 44%;
}
.w-45 {
  width: 45%;
}
.w-46 {
  width: 46%;
}
.w-48 {
  width: 48%;
}
.w-50 {
  width: 50%;
}
.w-60 {
  width: 60%;
}
.w-70 {
  width: 70%;
}
.w-80 {
  width: 80%;
}
.w-90 {
  width: 90%;
}
.w-100 {
  width: 100%;
}
.w-150 {
  width: 150px;
}
.w-200 {
  width: 200px;
}
.w-250 {
  width: 250px;
}
.w-300 {
  width: 300px;
}
.w-350 {
  width: 350px;
}
.w-400 {
  width: 400px;
}
.w-600 {
  max-width: 600px;
}
.w-980{
  max-width: 980px;
}
.w-1537{
  max-width: 1537px;
}
.w-1100{
  max-width: 1100px;
}
.w-1280{
  max-width: 1280px;
}
.pc {
  display: block;
}
.sp {
  display: none;
}
.pc-540 {
  display: block;
}
.sp-540 {
  display: none;
}
.bg-gray{
  background: #f0f0f0;
}
.red {
  color: #f9474a;
}
.inline{
  display: inline-block;
}
.inline-block {
  display: inline-block;
}
.display-inline {
  display: inline !important;
}
.t-center {
  text-align: center !important;
}
.flex {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
}
.flex-wrap{
  flex-wrap: wrap;
}
.between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
/*===================================================================
   title
===================================================================*/

h1 {
  font-size: 3.4rem;
  font-weight: bold;
}
h2{
  font-size: 3.2rem ;
  font-weight: bold;
  margin-bottom: 40px;
}
h3 {
  font-size: 2.4rem ;
  font-weight: bold;
  margin-bottom: 32px;
}
h4 {
  font-size: 2rem ;
  font-weight: bold;
  margin-bottom: 24px;
}
h5 {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 20px;
}
.page-ttl{
  max-width: 1280px;
  margin: 0 auto;
  padding: 110px 40px 40px;
}

.scroll-top{
  position: fixed;
  bottom: 90px;
  right: 0;
  padding: 10px;
  display: block;
  width: 50px;
  height: 50px;
  text-align: center;
  color: #fff;
  font-size: 2rem;
  background: rgba(0, 0, 0, 0.2);
  z-index: 10;
}
/*===================================================================
   header
===================================================================*/
.header{
  position: fixed;
  top: 0 ;
  width: 100%;
  z-index: 10000;
  /*
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.5) 30%, transparent 100%);
  background-color: hsla(0, 0%, 100%, .4);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  */
  background: #fff;
}
.header-contents {
  /*max-width: 1280px;*/
  margin: 0 auto;
  padding: 0 20px;
  align-items: center;
}
.logo-wrap a:hover{
  opacity: .8;
}
.logo {
  width: 130px;
  padding: 12px 0 8px;
}
.header-nav{
  width: 100%;
  justify-content: flex-end;
}
.header-nav-item {
  padding: 8px 0;
}
.header-nav-item a {
  font-size: 1.6rem;
  display: block;
  margin: 0 4px;
  padding: 8px;
  width: 146px;
  border: 1px solid #333;
  border-radius: 8px;
  text-align: center;
}

.header-nav-item a:hover {
  background: #f0f0f0;
}

.product-category {
  position: relative;
}

.product-category:hover .sub-nav-wrap{
  display: block;
}

.sub-nav-wrap {
  display: none;
  word-break: keep-all;
  width: 200px;
  height: 100%;
  line-height: 24px;
  position: absolute;
  bottom: -58px;
  left: -26px;
  box-sizing: border-box;
}
.sub-nav,
.sub-nav-item {
  width: 100%;
}
.sub-nav {
  background: #009bdd;
  color: #fff;
  padding: 24px;
  border-radius: 8px;
  box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.10);
}
.sub-nav-item a {
  font-size: 1.6rem;
  display: block;
  width: 100%;
  padding: 8px 0;
  line-height: 24px;
  word-break: keep-all;
  color: #fff;
  border: none;
  text-align: left;
}
.sub-nav-item a:hover {
  background: none;
  text-decoration: underline;
}

.active {
  opacity: 1;
  pointer-events: auto;
}

.menu-btn {
  display: none;
  position: absolute;
  top: 14px;
  right: 20px;
  width: 32px;
  fill: #333;
  color: #333;
}
.elementor-motion-effects-layer {
  background-image: url("../img/mv-tab.jpg");
  background-position: center center;
}

/*===================================================================
   top-contact
===================================================================*/
.top-contact-wrap {
  width: 100%;
  height: 700px;
  padding: 160px 40px 100px;
  background-image: url(../img/access-05.jpg);
  background-size: cover;
  background-position: bottom;
}
.campany-name,
.address,
.tel
{
  color : #fff;
  text-align: center;
  font-weight: bold;
  text-shadow: 2px 4px 4px rgba(0, 0, 0, 1);
}
.campany-name {
  font-size: 3.6rem;
  font-weight: bold;
  margin-bottom: 24px;
}
.address {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 32px;
}
.tel {
  font-size: 3.6rem;
  font-weight: bold;
  margin-bottom: 80px;
}
.tel a{
  color : #fff;
  font-weight: bold;
  text-align: center;
}
.bg-color {
  /*
  padding: 4px 16px;
  background: rgba(0,0,0,.7);
  background: #333;
  */
  font-weight: bold;
}
.btn-link {
  text-align: center;
}
.btn-link a {
  color : #fff;
  padding: 20px 60px;
  text-align: center;
  font-size: 2rem;
  font-weight: bold;
  max-width: 300px;
  margin: 0 auto;
  border-radius: 100px 100px 100px 100px;
  background: #2e45a7;
}
.btn-link a:hover {
  color : #fff;
  background: #009bdd;
}
/*===================================================================
   breadcrumbs
===================================================================*/
.breadcrumbs {
  width: 100%;
  background: #f0f0f0;
  padding: 16px 40px;
}
.breadcrumbs ul{
  max-width: 1280px;
  margin:  0 auto;
}
/*===================================================================
   page-title
===================================================================*/
.page-ttl-area {
  background: #1977cb;
  background: linear-gradient(180deg, rgba(99, 171, 199, 1) 0%, rgba(0, 28, 207, 1) 0%, rgba(156, 151, 247, 1) 100%);
  background: linear-gradient(180deg, rgba(99, 171, 199, 1) 0%, rgba(0, 28, 207, 1) 0%, rgb(59 81 199) 100%);
}
h1.page-ttl {
  color: #fff;
  padding: 160px 40px 90px;
}

/*===================================================================
   footer
===================================================================*/
footer{
  background: linear-gradient(180deg, rgba(99, 171, 199, 1) 0%, rgba(0, 28, 207, 1) 0%, rgba(156, 151, 247, 1) 100%);
  background: linear-gradient(180deg, rgba(99, 171, 199, 1) 0%, rgba(0, 28, 207, 1) 0%, rgb(59 81 199) 100%);
}
.footer-wrap {
  /*background: linear-gradient(180deg, #001e8f 0%, #1a1ff1 100%);*/
  /*background: #009bdd;*/
  overflow: hidden;
}
.footer-nav-wrap {
  width: 100%;
  padding: 90px 0 40px;
  overflow-y: hidden;
}
.footer-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.footer-nav-item {
  position: relative;
}
.footer-nav-item a {
  padding: 8px 16px;
  color: #fff;
  
}
.footer-nav-item a:hover {
  opacity: .8;
}
.footer-nav-item::after {
  content: "|";
  position: absolute;
  right: 0;
  color: #fff;
}
.footer-nav-item:last-child::after {
  display: none;
}
.footer-bottom-text {
  text-align: center;
  color: #fff;
  font-size: 2rem;
  margin-bottom: 8px;
}
.footer-tel {
  color: #fff;
  font-size: 3.2rem;
  text-align: center;
  margin-bottom: 24px;
}
.copy-area {
  width: 100%;
  padding: 16px;
  color: #fff;
  text-align: center
}
.scroll-top.on {
  color: #fff;
}
.side-nav-menu {
  font-weight: bold;
}
.border-rudius {
  border-radius: 20px 20px 20px 20px !important;
}
.company-wrap {
  padding: 60px 6%;
}
.company-wrap:nth-child(even) {
  background: #f0f0f0;
}
.company-contents {
  max-width: 1100px;
  margin: 0 auto;
}
.display-none{
  display: none !important;
}

/*===================================================================
   sp-menu
===================================================================*/
.sp-menu-wrap {
  width: 100%;
  height: 100dvh;
  max-height: 100vh;
  max-width: 100vw;
  display: flex;
  align-items: flex-start;
  overflow: auto;
  box-sizing: border-box;
  line-height: 1.5;
  position: fixed;
  top: 0;
  right: 0;
  /*background: linear-gradient(180deg, #000000 0%, #262F52 100%);*/
  background: linear-gradient(180deg, rgba(99, 171, 199, 1) 0%, rgba(0, 28, 207, 1) 0%, rgb(59 81 199) 100%);
  padding: 80px 60px;
  -webkit-transform: translateX(100%) !important;
  transform: translateX(100%) !important;/*中身を表示（右へスライド）*/
  z-index: 20000;
}

.sp-menu-list-nav{
  
}
.sp-menu-list {
  
}
.sp-menu-item {
  margin-bottom: 24px;
}

.sp-menu-item a{
  font-size: 20px;
  color: #fff;
  text-decoration: none;
  display: block;
  transition: 0.3s;
}

.sp-menu-item a:hover{
  padding-left: 4px;
  transition: 0.3s;
}
.close-btn-wrap {
  position: absolute;
  top: 0;
  right: 0px;
  z-index: 1;
  padding: 30px;
}
.close-btn{
  width: 40px;
  height: 40px;
}
.close-btn-img{
  width: 40px;
  height: 40px;
  bottom: 0px;
  box-sizing: border-box;
  cursor: pointer;
}
.close-btn-img: hover{
  opacity: .8;
}

.fixed-menu {
  position: fixed;
  width: 100%;
  height: 100%;
}
.menu-open {
  -webkit-transform: translateX(0%) !important;
  transform: translateX(0%) !important;/*中身を表示（右へスライド）*/
  transition: .3s ease-in-out !important;
}
.menu-close {
  
}

/*===================================================================
   table
===================================================================*/
.table-nowrap {
  white-space: nowrap;
}
.table-wrap {
  overflow-x: scroll;
}
.base-table {
  width: 100%;
  max-width:100%;
  table-layout: fixed;
  word-break: break-all;
  word-wrap: break-all;
  overflow-wrap: break-word;
}
.base-table th {
  color: #333;
  padding: 24px;
  background: #f7f7f7;
  min-width: 135px;
  border-top: 1px solid #e4e4e4;
} 
.base-table tr:last-child th,
.base-table tr:last-child td {
  border-bottom: 1px solid #e4e4e4;
}

.base-table td {
  color: #333;
  padding: 24px;
  background: #fff;
  border-top: 1px solid #e4e4e4;
}
.th-border-none {
  border-top: none !important;
}

.base-table-row {
  width: 100%;
}
.base-table-row th,
.base-table-row td {
  padding: 24px;
  background: #fff;
  border: 1px solid #e4e4e4;
}
.base-table-row th {
  background: #f7f7f7;
}

/*===================================================================
   base-table-16
===================================================================*/
.base-table-16{
  width: 100%;
}

.base-table-16 th,
.base-table-16 td{
  vertical-align: middle;
  text-align: center;
  padding: 16px;
}

/*===================================================================
   needle-table
===================================================================*/
.needle-table{
  width: 100%;
  max-width:100%;
  table-layout: fixed;
  word-break: break-all;
  word-wrap: break-all;
  overflow-wrap: break-word;
}

.needle-table th,
.needle-table td{
  vertical-align: middle;
  text-align: center;
  padding: 16px;
}
/*===================================================================
   form
===================================================================*/
input[type=text], input[type=tel], input[type=email], textarea {
  width: 100%;
  margin-bottom: 8px;
  font-size: inherit;
}
.form-ttl {
  margin-bottom: 40px;
  padding-top: 40px;
  text-align: center;
}
.contact-wrap {
  margin: 0 auto;
  max-width: 800px;
}
.form-wrap {
  margin: 0 auto;
  max-width: 800px;
}
.form-area dt {
  background: #e8eaf1;
  margin-bottom: 8px;
  padding: 16px;
  font-size: inherit;
}
.form-area dd {
  margin: 0;
  padding: 16px 0;
  font-size: inherit;
}
.form-area input {
  padding: 10px 8px 8px;
}
textarea {
  padding: 6px;
}
.form-area .submit input {
  font-weight: 700;
  letter-spacing: .38px;
  text-transform: uppercase;
  transition: all .15s ease-out;
  border-radius: 2px;
  display: inline-block;
  color: #fff;
  background: #2e45a7;
  border-style: none;
  cursor: pointer;
  position: relative;
}
.form-area .submit input:hover {
  transition: all .15s ease-out;
  background: #009bdd;
}
.form-area .back input {
  font-size: inherit;
  letter-spacing: .38px;
  text-transform: uppercase;
  transition: all .15s ease-out;
  border-radius: 2px;
  display: inline-block;
  color: #fff;
  background: #b3b3b3;
  border-style: none;
  cursor: pointer;
  position: relative;
}
.form-area .back input:hover {
  transition: all .15s ease-out;
  background: #ccc;
}
.back-btn,
.submit-btn{
  font-size: 16px !important;
  width: 130px !important;
  padding: 16px !important;
  border-radius: 6px !important;
  box-sizing: border-box;
}
/*===================================================================
   1000px
===================================================================*/
@media (max-width: 1000px) {
  .header-nav-item a {
    padding: 8px;
    width: 126px;
  }
}
/*===================================================================
   900px
===================================================================*/
@media (max-width: 900px) {
  .header-nav-item a {
    font-size: 1.4rem;
    margin: 2px 4px;
    padding: 8px;
    width: 120px;
  }
}
/*===================================================================
   800px
===================================================================*/
@media (max-width: 800px) {
  .header-nav-item a {
    margin: 2px;
    padding: 8px 2px;
    width: 112px;
  }
}
/*===================================================================
   768px
===================================================================*/
@media (max-width: 768px) {
  #formWrap {
    padding: 16px;
  }
  h1 {
    font-size: 3rem;
  }
  h2{
    font-size: 2.8rem ;
  }
  h3 {
    font-size: 2rem ;
  }
  h4 {
    font-size: 1.8rem ;
  }
  h5 {
    font-size: 1.6rem;
  }
}
/*===================================================================
   767px
===================================================================*/
@media (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  .menu-btn {
    display: block;
  }
  .header-nav {
    display: none;
  }
  .logo {
    padding: 16px 0 12px;
  }
  body {
    margin-bottom: 72px;
  }
  .copy-area {
    padding: 16px 8px 40px;
  }
  .is-show {
    transform: translateY(0) !important;
  }
  .footer-sp {
    width: 100%;
    position: fixed;
    bottom: 0;
    z-index: 300000;
    background: rgba(44, 34, 181, 0.8);
    border-top: 1px solid #fff;
    transition: 0.3s;
    transform: translateY(200%);
  }
  .footer-sp ul li {
    width: 49.5%;
  }
  .footer-sp ul li a {
    display: block;
    width: 100%;
    text-align: center;
    color: #fff;
    background: #2c22b5;
    padding: 8px 0;
    font-size: 1.4rem;
  }
  .tel-btn img,
  .contact-btn img {
    width: 36px;
    margin: 0 auto 2px;
    padding-top: 2px;
  }
}
/*===================================================================
   640px
===================================================================*/
@media (max-width: 640px) {
  h1.page-ttl {
    padding: 160px 20px 90px;
  }
  .breadcrumbs {
    padding: 16px 20px;
  }
  h1 {
    font-size: 2.8rem;
  }
  h2{
    font-size: 2.6rem ;
  }
  
}
/*===================================================================
   600px
===================================================================*/
@media (max-width: 600px) {
  .sp-w-100 {
    width: 100%;
  }
}
/*===================================================================
   540px
===================================================================*/
@media(max-width:540px) {
  .footer-nav-wrap {
    padding: 60px 0 40px;
  }
  .footer-nav {
    flex-flow: column;
  }
  .footer-nav-item {
    width: 80%;
    text-align: center;
    margin-bottom: 16px;
  }
  .footer-nav-item a{
    width: 100%;
    padding: 16px;
    display: block;
    border: 1px solid #fff;
  }
  .footer-nav-item::after {
    content: " ";
    display: none;
  }
  h1 {
    font-size: 2.6rem;
  }
  h2{
    font-size: 2.4rem ;
  }
}
/*===================================================================
   500px
===================================================================*/
@media(max-width:500px) {
  
  .base-table th,
  .base-table td {
    display: inline-block;
    width: 100%;
    float: left;
  }
  .base-table tr:last-child th{
    border-bottom: none;
  }
}
/*===================================================================
   460px
===================================================================*/
@media (max-width: 460px) {
  .top-contact-wrap {
    height: 580px;
    padding: 100px 20px;
  }
  .campany-name {
    font-size: 2.8rem;
    margin-bottom: 40px;
  }
  .address {
    font-size: 1.8rem;
    margin-bottom: 40px;
  }
  .tel {
    font-size: 2.6rem;
  }
  .btn-link a {
    font-size: 1.8rem;
    padding: 16px 60px;
    margin: 0 auto;
  }
}
/*===================================================================
   414px
===================================================================*/
@media (max-width: 414px) {
  .footer-bottom-text {
    font-size: 1.8rem;
  }
  .footer-tel {
    font-size: 2.6rem;
  }
  h1 {
    font-size: 2.4rem;
  }
  h2{
    font-size: 2.2rem;
  }
}
/*===================================================================
   375px
===================================================================*/
@media (max-width: 375px) {
  .footer-bottom-text {
    font-size: 1.6rem;
  }
  .footer-tel {
    font-size: 2.4rem;
  }
}
/*===================================================================
   350px
===================================================================*/
@media (max-width: 350px) {
  .top-contact-wrap {
    height: 550px;
  }
  .campany-name {
    font-size: 2.4rem;
    margin-bottom: 40px;
  }
  .address {
    font-size: 1.6rem;
    margin-bottom: 40px;
  }
  .tel {
    font-size: 2.4rem;
  }
  .btn-link a {
    font-size: 1.6rem;
  }
}
/*===================================================================
   320px
===================================================================*/
@media (max-width: 320px) {

}