@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Oswald:wght@200..700&display=swap');
:root {
  --c-blue: #004097;
  --c-green: #0088af;
  --c-black: #000;
  --c-gray01: #d3dce0;
  --bg_gray: #f2f2f2;
}

html, body {
  font-size: 62.5%;
  line-height: 1.8;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: var(--c-black);
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  position: relative;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


body * {
  box-sizing: border-box;
}

img {
  vertical-align: top;
  width: 100%;
}

a {
  color: var(--c-black);
  text-decoration: none;
  transition: .3s;
}

.en {
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

.pc {
  display: block;
}
@media (max-width: 798px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}
@media (max-width: 798px) {
  .sp {
    display: block;
  }
}

/*** ------------------------------------------------------------------------------

header

-----------------------------------------------------------------------------  ***/
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 1000;
  padding: 20px 60px;
  background-color: #fff;
  transition: .3s;
}
@media (max-width: 1490px) {
  header {
    padding: 20px;
  }
}
@media (max-width: 1000px) {
  header {
    padding: 10px;
  }
}
header h1 {
  width: 180px;
  position: relative;
  z-index: 1000;
}
header h1 .w{
  position: absolute;
  top: 0;
  left: 0;
  transition: .5s;
  opacity: 0;
}
header.on h1 .w{
  opacity: 1;
}
@media (max-width: 1490px) {
  header h1 {
    width: 140px;
  }
}
header h1 a {
  transition: .3s;
}
header h1 a:hover {
  opacity: .7;
}
header #navi {
  width: calc(100% - 190px);
  margin-left: auto;
}
@media (max-width: 1490px) {
  header #navi {
    width: calc(100% - 140px);
  }
}
header #navi nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
header #navi nav .menu, header #navi nav .btn {
  display: flex;
  justify-content: flex-end;
}
header #navi nav .menu {
  padding-right: 20px;
}
@media (max-width: 1490px) {
  header #navi nav .menu {
    padding-right: 5px;
  }
}
header #navi nav .menu > li, header #navi nav .menu li a {
  font-size: clamp(1.1rem, 1.4vw, 1.4rem);
  line-height: 1;
  position: relative;
}
@media (max-width: 1490px) {
  header #navi nav .menu > li, header #navi nav .menu li a {
    font-size: 1vw;
  }
}
header #navi nav .menu li {
  padding: 10px 0;
}
header #navi nav .menu li a {
  position: relative;
  z-index: 1;
  padding: 0 15px;
  text-align: center;
  display: block;
}
header #navi nav .menu li a:hover {
  color: var(--c-blue);
}
@media (max-width: 1490px) {
  header #navi nav .menu li a {
    padding: 0 10px;
  }
}
header #navi nav .menu li a.parent:after {
  content: '';
  position: absolute;
  width: 10px;
  height: 5px;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: url(../images/common/arw01-black.svg) no-repeat center center/contain;
}
@media (max-width: 1490px) {
  header #navi nav .menu li a.parent:after {
    width: 7px;
  }
}
header #navi nav .menu li:hover .sub-menu {
  opacity: 1;
  pointer-events: inherit;
}
header #navi nav .menu .sub-menu {
  opacity: 0;
  position: absolute;
  left: 10px;
  top: 30px;
  z-index: 9998;
  background-color: #fff;
  font-weight: normal;
  margin: 0;
  transition: .3s;
  pointer-events: none;
  border: solid 1px var(--c-gray01);
  border-bottom: none;
  width: 240px;
}
header #navi nav .menu .sub-menu li {
  padding: 0;
}
header #navi nav .menu .sub-menu li a {
  padding: 5px 10px 5px 15px;
  text-align: left;
  border-bottom: solid 1px var(--c-gray01);
  position: relative;
}
header #navi nav .menu .sub-menu li a:before {
  content: '';
  position: absolute;
  width: 10px;
  height: 5px;
  top: 50%;
  left: 0;
  transform: translateY(-50%) rotate(-90deg);
  opacity: .3;
  background: url(../images/common/arw01-black.svg) no-repeat center center/contain;
}
@media (max-width: 1000px) {
  header.on{
    background-color: var(--c-blue);
  }
  header #navi nav {
    right: -100%;
    top: 0;
    width: 100%;
    height: calc(100vh - 68px);
    position: fixed;
    text-align: center;
    -webkit-transition: .5s ease-in-out;
    -moz-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
    overflow-y: auto;
    background-color: var(--c-blue);
    opacity: 0;
    z-index: 100;
    margin-top: 68px;
    padding-bottom: 20px;
  }
}
header #navi .btn {
  padding-left: 15px;
}
@media (max-width: 1490px) {
  header #navi .btn {
    padding-left: 5px;
  }
}
header #navi .btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 15px 30px;
  color: #fff;
  font-size: clamp(1.2rem, 1.4vw, 1.6rem);
  line-height: 1;
  transition: .3s;
}
@media (max-width: 1490px) {
  header #navi .btn a {
    padding: 15px 10px;
  }
}
header #navi .btn a.btn1 {
  background-color: var(--c-blue);
  margin-right: 10px;
}
header #navi .btn a.btn2 {
  background-color: var(--c-green);
}
header #navi .btn a:hover {
  opacity: .7;
}
header #navi .tel {
  display: none;
}
header #nav-toggle {
  display: none;
}
@media (max-width: 1000px) {
  header #navi{
    background-color: var(--c-blue);
  }
  header #navi nav{
    display: block;
  }
  header #navi nav .menu{
    display: block;
    margin-top: 0;
    border-top: solid 1px #fff;
    padding: 0;
  }
  header #navi nav .menu li{
    padding: 0;
  }
  header #navi nav .menu li a {
    padding: 15px 10px;
    color: #fff;
    font-size: clamp(1.1rem, 1.4vw, 1.4rem);
    border-bottom: solid 1px #fff;
    text-align: left;
  }
  header #navi nav .menu li a.parent{
    border: none;
  }
  header #navi nav .menu li a.parent:after {
    content: '';
    position: relative;
    display: inline-block;
    width: 10px;
    height: 5px;
    margin-left: 10px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    opacity: 1;
    background: url(../images/common/arw01-white.svg) no-repeat center center/contain;
  }
  header #navi nav .menu .sub-menu {
    opacity: 1;
    pointer-events: inherit;
    position: relative;
    left: inherit;
    top: inherit;
    background: none;
    border: none;
    width: 100%;
    border-bottom: solid 1px #fff;
    margin-top: -10px;
    padding-block: 10px;
  }
  header #navi nav .menu .sub-menu li {
    padding: 0;
  }
  header #navi nav .menu .sub-menu li a {
    padding: 10px 10px 10px 35px;
    text-align: left;
    border-bottom: none;
    position: relative;
  }
  header #navi nav .menu .sub-menu li a:before {
    content: '';
    position: absolute;
    width: 15px;
    height: 1px;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
    opacity: .3;
    background: #fff;
  }
  header #navi .tel{
    display: block;
    text-align: center;
    font-size: 3rem;
    line-height: 1;
    margin: 15px 0;
  }
  header #navi .tel a{
    color: #fff;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    pointer-events: inherit;
  }
  header #navi nav .menu, header #navi nav .btn{
    justify-content: center;
    padding: 0;
  }
  header #navi .btn a.btn1,
  header #navi .btn a.btn2 {
    background: none;
    border: solid 1px #fff;
    padding: 15px 35px;
  }
  header #nav-toggle {
    display: block;
    position: fixed;
    right: 10px;
    top: 18px;
    width: 30px;
    height: 22px;
    z-index: 10010;
  }
  header #nav-toggle:after{
    content: 'MENU';
    position: absolute;
    left: -2%;
    width: 104%;
    bottom: -1.5rem;
    font-family: "Oswald", sans-serif;
    text-align: center;
    font-size: clamp(1.2rem, 1.4vw, 1.6rem);
    line-height: 1;
    transition: .3s;
  }
  header .open #nav-toggle:after{
    content: 'CLOSE';
    color: #fff;
  }
  header #nav-toggle button {
    display: block;
    border: none;
    position: relative;
    cursor: pointer;
    outline: none;
    padding: 0;
  }
  header #nav-toggle button span {
    width: 30px;
    height: 2px;
    background-color: var(--c-black);
    position: absolute;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
  }
  header #nav-toggle button span:nth-child(1) {
    top: 0;
  }
  header #nav-toggle button span:nth-child(2) {
    top: 10px;
    background-color: var(--c-blue);
  }
  header #nav-toggle button span:nth-child(3) {
    top: 20px;
  }
  header .open #nav-toggle span {
  }
  header .open #nav-toggle span:nth-child(1),
  header .open #nav-toggle span:nth-child(3) {
    opacity: 0;
    top: 10px;
  }
  header .open #nav-toggle span:nth-child(2) {
    background-color: #fff;
  }
  header #navi.open nav {
    -moz-transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    opacity: 1;
  }
}

/*** ------------------------------------------------------------------------------

footer

-----------------------------------------------------------------------------  ***/
footer {
  width: 100%;
  padding: 100px 0 5px;
  background-color: #fff;
}
footer .inner{
  max-width: 1200px;
  width: 90%;
  margin: 0 auto;
}
footer .info{
  width: 380px;
}
footer .info .logo{
  max-width: 160px;
  margin: 0 0 30px;
}
footer .info .logo a:hover{
  opacity: .7;
}
footer .txt{
  font-size: clamp(1.2rem,1.3vw,1.4rem);
  line-height: 1.6;
}
footer .txt strong{
  display: block;
  font-weight: 500;
  font-size: clamp(1.4rem,1.5vw,1.6rem);
}
footer .navi{
  width: calc(100% - 400px);
  justify-content: flex-end;
}
footer .navi ul{
  width: fit-content;
  margin-left: 50px;
}
footer .navi ul li a{
  font-size: clamp(1.2rem,1.3vw,1.4rem);
  line-height: 1.6;
  display: inline-block;
  margin-bottom: 10px;
  transition: .3s;
}
footer .navi ul li a:hover{
  color: var(--c-blue);
}
footer .navi .txt{
  display: none;
}
footer address{
  max-width: 1200px;
  width: 90%;
  margin: 0 auto;
  padding: 20px 0;
  text-align: right;
  font-size: clamp(1.1rem,1.2vw,1.2rem);
  line-height: 1;
}
@media (max-width: 860px) {
  footer {
    padding: 60px 0 1px;
  }
  footer .inner{
    width: 100%;
  }
  footer .info{
    width: 100%;
  }
  footer .info .logo{
    max-width: 115px;
    margin: 0 auto 30px;
  }
  footer .info .txt{
    display: none;
  }
  footer .txt{
    font-size: clamp(1.2rem,1.3vw,1.4rem);
    line-height: 1.6;
  }
  footer .txt strong{
    display: block;
    font-weight: 500;
    font-size: clamp(1.4rem,1.5vw,1.6rem);
  }
  footer .navi{
    width:100%;
    border-top: solid 1px var(--bg_gray);
  }
  footer .navi ul{
    width:100%;
    margin: 0;
  }
  footer .navi ul li a{
    display: block;
    margin: 0;
    padding: 10px 15px;
    border-bottom: solid 1px var(--bg_gray);
  }
  footer .navi ul li a:hover{
    color: var(--c-blue);
  }
  footer .navi .txt{
    display: block;
    padding: 15px;
    text-align: left;
    width: 100%;
  }
  footer address{
    width: 100%;
    margin: 0 auto;
    padding: 20px 15px;
    text-align: left;
  }
}

/*--------------------------------
l-solution
--------------------------------*/
.l-solution{
  background: url(../images/common/solution-bg.jpg) no-repeat center center / cover;
}
.l-solution .inner{
  max-width: 1050px;
  width: 90%;
  margin: 0 auto;
  padding: 100px 0; 
  color: #fff;
}
.l-solution .tit{
  text-align: center;
  font-size: clamp(2.4rem,3vw,3.2rem);
  font-weight: 500;
  line-height: 1.4;
  margin: 0 0 30px;
}
.l-solution .head-txt{
  text-align: center;
  font-size: clamp(1.6rem,1.7vw,1.8rem);
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 30px;
}
.l-solution .list{
  align-items: stretch;
}
.l-solution .list .box{
  width: calc(100% / 4 - 10px);
  border: solid 1px #fff;
  padding: 30px 10px;
}
.l-solution .list .box .icon{
  margin: 0 0 20px;
  font-size: clamp(1.1rem,1.2vw,1.4rem);
  line-height: 1;
  text-align: center;
}
.l-solution .list .box .icon span{
  display: block;
  max-width: 68px;
  margin: 0 auto 5px;
}
.l-solution .list .box .midashi{
  font-size: clamp(1.4rem,1.6vw,1.8rem);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
.l-solution .summary{
  font-size: clamp(2rem,2.3vw,2.6rem);
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  padding: 30px 0 100px;
  position: relative;
}
.l-solution .summary:after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width:0;
  height:0;
  border-style:solid;
  border-width: 50px 30px 0 30px;
  border-color: #fff transparent transparent transparent;
}
@media (max-width: 798px) {
  .l-solution .inner{
    padding: 50px 0; 
  }
  .l-solution  .tit{
    margin: 0 0 20px;
  }
  .l-solution  .head-txt{
    margin: 0 0 20px;
  }
.l-solution .list{
    display: block;
  }
  .l-solution .list .box{
    width: 100%;
    padding: 15px 5px;
    margin: 0 0 10px;
  }
  .l-solution .list .box .icon{
    margin: 0 0 10px;
  }
  .l-solution .summary{
    padding: 20px 0 60px;
  }
  .l-solution .summary:after{
    border-width: 30px 20px 0 20px;
  }
}

/*--------------------------------
l-contact
--------------------------------*/
.l-contact{
  background: url(../images/common/contact-bg.jpg) no-repeat center bottom / cover;
}
.l-contact .inner{
  max-width: 1050px;
  width: 90%;
  margin: 0 auto;
  padding: 50px 0; 
  color: #fff;
}
.l-contact .tit{
  text-align: center;
  font-size: clamp(3rem,3.5vw,4rem);
  line-height: 1;
  margin: 0 0 30px;
}
.l-contact .head-txt{
  text-align: center;
  font-size: clamp(1.6rem,1.7vw,1.8rem);
  line-height: 1.6;
  margin: 0 0 30px;
}
.l-contact .box{
  width: calc(100% / 3);
  border-right: solid 1px #fff;
  text-align: center;
  padding: 0 10px;
}
.l-contact .box:last-of-type{
  border: none;
}
.l-contact .box .midashi{
  font-size: clamp(1.4rem,1.5vw,1.6rem);
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 15px;
}
.l-contact .box .btn{
  display: block;
  max-width: 290px;
  margin: 0 auto 15px;
  padding: 15px 20px;
  position: relative;
  border: solid 2px #fff;
  font-size: clamp(1.5rem,1.7vw,2rem);
  font-weight: 500;
  line-height: 1.2;
  position: relative;
  color: #fff;
  border-radius: 50px;
  text-align: left;
  transition: .3s;
}
.l-contact .box .btn:hover{
  background-color: #fff;
  color: var(--c-blue);
}
.l-contact .box .btn:after{
  content: '';
  position: absolute;
  top: 50%;
  right: 10px;
  width: 20px;
  height: 18px;
  transform: translateY(-50%);
  transition: .3s;
  background: url(../images/common/arw02-white.svg) no-repeat center center / contain;
}
.l-contact .box .btn:hover:after{
  background-image: url(../images/common/arw02-blue.svg);
}
.l-contact .box .tel{
  font-size: clamp(3rem,3.5vw,3.6rem);
  line-height: 1;
  margin-bottom: 10px;
  display: inline-block;
  color: #fff;
  pointer-events: none;
}
.l-contact .box .txt{
  font-size: clamp(1.2rem,1.3vw,1.4rem);
  line-height: 1.6;
}
@media (max-width: 798px) {
  .l-contact{
    background-image: url(../images/common/contact-bg_sp.jpg);
  }
  .l-contact .inner{
    padding: 50px 0 30px; 
  }
  .l-contact .tit{
    text-align: center;
    font-size: clamp(3rem,3.5vw,4rem);
    line-height: 1;
    margin: 0 0 30px;
  }
  .l-contact .head-txt{
    text-align: center;
    font-size: clamp(1.6rem,1.7vw,1.8rem);
    line-height: 1.6;
    margin: 0 0 30px;
  }
  .l-contact .list{
    display: block;
  }
  .l-contact .box{
    width: 100%;
    border: solid 1px #fff;
    padding: 20px 10px;
    margin: 0 0 20px;
  }
  .l-contact .box .btn{
    border: solid 1px #fff;
  }
  .l-contact .box .tel{
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    pointer-events: inherit;
  }
}

main {
  background-color: #fff;
}

/*--------------------------------
common
--------------------------------*/
.l-inner__flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start;
}
.under main{
  padding-top: 102px;
}
@media (max-width: 1490px) {
  .under main{
    padding-top: 88px;
  }
}
@media (max-width: 1000px) {
  .under main{
    padding-top: 68px;
  }
}
.under-mv{
  background-color: var(--c-blue);
  padding: 130px 0 30px;
  color: #fff;
}
.under-mv-text{
  max-width: 1200px;
  width: 90%;
  margin: 0 auto;
  font-size: clamp(1.4rem,1.5vw,1.6rem);
  font-weight: 500;
  line-height: 1.2;
}
.under-mv-text span{
  display: block;
  font-size: clamp(2.4rem,4vw,6rem);
  font-weight: 400;
  margin-top: 5px;
  letter-spacing: .25rem;
}
@media (max-width: 798px) {
  .under-mv{
    padding: 60px 0 15px;
  }
}
.under .pankuzu{
  max-width: 1200px;
  width: 90%;
  margin: 0 auto 100px;
  padding: 20px 0;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
}
.under .pankuzu li{
  font-size: clamp(1rem,1.2vw,1.43rem);
  line-height: 1;
  position: relative;
}
.under .pankuzu li a{
  margin-right: 5px;
  transition: .3s;
}
.under .pankuzu li:after{
  content: '\03e';
  margin-right: 5px;
}
.under .pankuzu li a:hover{
  text-decoration: underline;
}
.under .pankuzu li:last-child:after{
  display: none;
}
.under .pankuzu li span{
  text-decoration: underline;
}
@media only screen and (max-width: 798px) {
  .under .pankuzu{
    margin: 0 auto 50px;
    padding: 10px 0;
  }
}

.more-btn{
  font-size: clamp(1.5rem, 1.6vw, 1.6rem);
  font-weight: 700;
  line-height: 1;
  color: var(--c-blue);
  padding-right: 80px;
  text-align: right;
  position: relative;
}
.more-btn:after{
  content: '';
  width: 50px;
  height: 50px;
  background: url(../images/common/arw02-white.svg) no-repeat center center / 22px var(--c-blue);
  border-radius: 50px;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  transition: .3s;
}
.more-btn:hover:after{
  right: -5px;
}
@media only screen and (max-width: 798px) {
  .more-btn{
    padding-right: 50px;
    display: block;
    width: fit-content;
    margin: 20px 0 0 auto;
  }
  .more-btn:after{
    width: 40px;
    height: 40px;
    background: url(../images/common/arw02-white.svg) no-repeat center center / 16px var(--c-blue);
    border-radius: 40px;
  }
}

/*** ------------------------------------------------------------------------------

pagination

-----------------------------------------------------------------------------  ***/
.pagination{
  max-width: 1040px;
  width: 90%;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.pagination span,
.pagination a{
  display: block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 20px;
  font-size: clamp(1rem, 1.1vw, 1.2rem);
  border: solid 1px var(--c-blue);
  transition: .3s;
  background-color: var(--c-blue);
  text-align: center;
  color: #fff;
  margin: 0 5px;
}
.pagination span.current,
.pagination a:hover{
  background-color: #fff;
  color: var(--c-blue);
}
.pagination .dots{
  font-size: clamp(1.6rem, 1.8vw, 2rem);
  margin: 0;
  line-height: 25px;
}
.pagination .prev,
.pagination .next{
  background-color: #fff;
  color: var(--c-blue);
  display: flex;
  justify-content: center;
  align-items: center;
}
.pagination .prev img,
.pagination .next img{
  display: block;
  width: 15px;
}
.pagination .prev img{
  transform: rotate(90deg);
}
.pagination .next img{
  transform: rotate(-90deg);
}
.pagination .prev:hover,
.pagination .next:hover{
  background-color: var(--bg_gray);
}
@media only screen and (max-width: 798px) {
  .pagination{
    margin: 0 auto;
  }
  .pagination span,
  .pagination a{
    width: 30px;
    height: 30px;
    line-height: 30px;
    margin: 0 2px;
  }
  .pagination .prev img,
  .pagination .next img{
    display: block;
    width: 10px;
  }
}