@charset "UTF-8";

/* reset */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

a {
  outline: none;
  text-decoration: none;
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
}
a img {
  border: 0;
}
a img:hover {
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
  opacity: .7;
}
a:link {
  color: #009aff;
}
a:visited {
  color: #0073bf;
}
a:hover {
  text-decoration: none;
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
  opacity: .7;
}

audio,
canvas,
img,
video {
  vertical-align: middle;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

caption {
  display: none;
}

address {
  font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
dt,
dd,
th,
td,
pre {
  margin: 0;
  padding: 0;
  -ms-line-break: strict;
  line-break: strict;
  -ms-word-break: break-word;
  word-break: break-word;
  overflow-wrap: break-word;
  transform: rotate(0.001deg);
}

p {
  margin: 1.12em 0;
}


html {
    box-sizing: border-box;
    /*padding-top: 65px;*/
    scroll-behavior: smooth;
}
@media (min-width: 768px) {
    html {
        /*padding-top: 130px;*/
    }
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
.scroll-offset {
  scroll-margin-top: 65px; 
}
@media (min-width: 768px) {
    .scroll-offset {
        scroll-margin-top: 110px; 
    }
}

/* 変数 */
:root {
    --width-listwrap: 955px;
    --width-wrap: 990px;
    --width-content: 1100px;
    --bgcolor-blue: #0B4255;
    --bgcolor-gray: #587E8B;
    --bgcolor-gray2: #02424F;
    --bgcolor-gray3: #E9F4F7;
    --bgcolor-gray4: #ECF6F8;
    --bgcolor-green: #0D6569;
}

body {
    font-family: "游明朝 Medium", "Yu Mincho Medium", "YuMincho Medium", serif;
    font-optical-sizing: auto;
    font-style: normal;
    line-height: 1.6;
    color: #000;
}

/* Header */
.header {
    background-color: #fff;
    padding: 0;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
}
.home .header {
    background-color: transparent
}
.home .header.small {
    background-color: var(--bgcolor-blue);
}
.header .header-content {
    padding: 7px 10px;
}
.header.is-active .header-content{
}
.home .header.is-active .header-content{
    background-color: var(--bgcolor-blue);
}
.header.small .header-content {
    padding: 7px 10px;
}
.logo {
    margin: 0;
    padding: 0;
}
.logo img {
    max-height: 25px;
}
.header-content .header-menu-info{
    display: none;
}
.headerMain-menu.is-active .header-menu-info{
    display: block;
}
.header-menu{
    font-size: 13px;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    list-style: none;
    padding: 0;
    text-align: center;
}
.header-menu a{
    color: #000;
    display: block;
    position: relative;
}
.home .header-menu a{
    color: #fff;
}
.header-menu li{
    padding: 1em 0;
}
.header-menu li.contact-botton a{
    background-color: var(--bgcolor-blue);
    border-radius: 20px;
    color: #fff;
    display: block;
    width: 192px;
    text-align: center;
    line-height: 30px;
    margin: 0 auto;
}
.home .header-menu li.contact-botton a{
    background-color: #fff;
    color: #000;
}
.header-menu li:first-child a::before,
.header-menu li.contact-botton a::before{
    content: none;
}
.header-menu li.current a{
    color: var(--bgcolor-blue);
    border-bottom: 1px solid;
    display: inline-block;
}

@media (min-width: 768px) {
    .logo img {
        max-height: 31px;
    }
    .header .header-content {
        display: flex;
        max-width: var(--width-content);
        align-items: center;
        justify-content: space-between;
        margin: 0 auto;
        padding: 34px 0;
    }
    .header.small .header-content {
        padding: 20px 0;
    }
    .header-menu{
        font-size: 13px;
        display: flex;
        align-items: center;
        gap: 30px;
        margin: 0;
    }
    .header-menu li{
        padding: 0;
    }
    .header-content .header-menu-info{
        display: block;
    }
    .header-menu a::before{
        content: "/";
        display: block;
        font-size: 10px;
        position: absolute;
        top: 50%;
        left: -16px;
        transform: translate(0,-50%);
    }
}
.humb-menu {
  background-color: var(--bgcolor-blue);
  display: flex;
  justify-content: center;
  align-items: flex-end;
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
  height: 40px;
}
.humb-menu.is-active {
  position: fixed;
}
@media (min-width: 768px) {
    .humb-menu{
        display: none;
    }
}
.humbMenu-trigger,
.humbMenu-trigger span {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer;
  display: inline-block;
  transition: all 0.4s;
}

.humbMenu-trigger {
  position: relative;
  width: 40px;
  height: 40px;
}

.humbMenu-trigger span {
  background-color: #fff;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  width: 21px;
  height: 2px;
}

.humbMenu-trigger span:nth-of-type(1) {
  top: 11px;
}
.humbMenu-trigger span:nth-of-type(2) {
  top: 17px;
}
.humbMenu-trigger span:nth-of-type(3) {
  top: 24px;
}
.humb-menu.is-active span:nth-of-type(1) {
  top: 7px;
  transform: translateY(10px) rotate(-45deg);
}
.humb-menu.is-active span:nth-of-type(2) {
  opacity: 0;
}
.humb-menu.is-active span:nth-of-type(3) {
  top: 23px;
  transform: translateY(-6px) rotate(45deg);
}

.mv .swiper-fade .swiper-slide {
    -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
}
.mv .swiper-fade .swiper-slide-active {
    pointer-events: auto;
}
.mv .slide-media {
    position: relative;
    overflow: hidden;
    height: max(70vh, 70vw);
}
.mv .slide-media img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}
.mv .swiper-slide[class*=-active] .slide-media img {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}
.mv-inner{
    max-width: var(--width-content);
    margin: 0 auto;
    position: relative;
}
.mv-description{
    position: absolute;
    bottom: 1em;
    left: 1em;
    font-size: 24px;
    letter-spacing: 0.94px;
    line-height: 1.3;
    color: #fff;
    text-shadow: 0px 3px 10px #00000029;
    z-index: 1;
}
@media (min-width: 768px) {
    .mv .slide-media {
        height: 897px;
    }
    .mv-description{
        font-size: 47px;
    }
}



/* Footer */
.footer {
    font-family: "Noto Sans JP", sans-serif;
}
.footer-inner{
    background: var(--bgcolor-blue);
    color: white;
}
.footer-content {
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 2em 10px;
}
.footer-content h2 { grid-area: footer-title; }
.footerContent-link { grid-area: footer-link; }
.footerContent-map { grid-area: footer-map; }
.footer-content h2 img{
    max-height: 31px;
}
.footerContent-link {
    font-size: 14px;
    font-weight: 300;
    list-style-type: none;
    margin: 2em 0 0 3.5em;
    padding: 0;
}
.footerContent-link li{
    padding: .5em 0;
}
.footerContent-link li a {
    color: #fff;
    text-align: center;
    position: relative;
    padding: 0 0 0 2em;
}
.footerContent-link li a::before {
    content: "ー";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0,-50%);
}
.footerContent-link li a:hover {
    opacity: .8;
}
.footerContent-info {
    font-size: 14px;
    margin: .5em 0;
}
.footerContent-tel {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 100%;
}
.footerContent-tel li a{
    color: #fff;
}

.footerContent-map{
    font-size: 14px;
    max-width: 474px;
}
.footerContent-map .map-title{
    position: relative;
    display: inline-block;
}
.footerContent-map .map-title::before{
    content: "";
    width:24px;
    height:24px;
    border-radius:50%;
    border:1px solid #fff;
    position: absolute;
    top: 50%;
    right: -35px;
    transform: translate(0, -50%);
}
.footerContent-map .map-title::after{
    content: "";
    position: absolute;
    right: -25px;
    top: 50%;
	width: 7px;
	height: 7px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	-webkit-transform: translate(0, -50%) rotate(45deg);
    transform: translate(0, -50%) rotate(45deg);
}
.footerContent-map .map iframe{
    border-radius: 13px;
}
.copyright {
    border-top: 1px solid #7D7A7A;
    margin: 0 auto;
    padding: 2.5em 10px 1em;
    text-align: center;
}
.copyright img{
    max-height: 31px;
}
.copyright p {
    font-size: 12px;
}
@media (min-width: 768px) {
    .footer-content {
        display: grid;
        grid-template-columns: repeat(2,1fr);
        grid-template-rows: auto 1fr;
        gap: 0px 10px; 
        grid-template-areas: 
        "footer-title footer-map"
        "footer-link footer-map"; 
        padding: 4em 10px 3em;
    }
    .footer-content h2 img{
        max-height: inherit;
    }
    .footerContent-link {
        font-size: 19px;
        font-weight: 300;
        margin: 2em 0 0 3.5em;
    }
    .footerContent-info {
        font-size: 21px;
        margin: .5em 0;
    }
    .footerContent-map{
        font-size: 21px;
    }
    .copyright p {
        font-size: 17px;
    }
    .copyright img{
        max-height: inherit;
    }
}
.gotop {
    position: relative;
    z-index: 100;
}
.gotop a {
    position: fixed;
    right: 10px;
    bottom: 10px;
}
/* content */
.container {
    padding: 0 10px;
}
.section-title {
    margin: 0;
}
.news .section-title {
    margin-bottom: 1.5em;
}
.section-title span {
    display: inline-block;
    font-size: 18px;
    position: relative;
}
.section-title::before {
    color: var(--bgcolor-green);
    content: attr(data-title);
    display: block;
    font-size: 50px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 1.6px;
}
.service .section-title::before{
    color: #fff;
}
.contents-wrap {
    max-width: var(--width-wrap);
    margin: 3em auto 0;
    padding: 2em 3.3%;
}
@media (min-width: 768px) {
    .section-title::before {
        font-size: 80px;
    }
    .section-title span {
        font-size: 27px;
    }
}
.morebtn {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 18px;
}
.morebtn a {
    border: 1px solid var(--bgcolor-green);;
    border-radius: 21px;
    color: var(--bgcolor-green);
    display: inline-block;
    line-height: 41px;
    width: 198px;
    text-align: center;
}
.morebtn a:hover {
    background-color: var(--bgcolor-blue);
    color: #fff;
}
.morebtn span {
    display: inline-block;
    position: relative;
}
.morebtn span::before {
    content: "";
    position: absolute;
    right: -30px;
    top: 50%;
	width: 10px;
	height: 10px;
	border-top: 1px solid var(--bgcolor-blue);
	border-right: 1px solid var(--bgcolor-blue);
	-webkit-transform: translate(0, -50%) rotate(45deg);
    transform: translate(0, -50%) rotate(45deg);
}
.morebtn.servicebtn {
    font-size: 15px;
    text-align: center;
    margin-top: 4em;
}
.morebtn.servicebtn a {
    border-radius: 24px;
    background-color: #fff;
    color: #000;
    line-height: 48px;
    width: 240px;
}
.morebtn.newsdetail-btn{
    text-align: center;
}
.morebtn.newsdetail-btn a {
    border-radius: 27px;
    width: 320px;
    line-height: 54px;
}
.morebtn.servicebtn a:hover {
    background-color: var(--bgcolor-green);
    color: #fff;
}
.morebtn.servicebtn a span::before {
	border-top: 1px solid #000;
	border-right: 1px solid #000;
}
.morebtn.servicebtn a:hover span::before {
    border-top: 1px solid #fff;
	border-right: 1px solid #fff;
}
/* About Section */
.about {
    margin-top: 3em;
}
.about .section-title{
    font-size: 22px;
    text-align: center;
    letter-spacing: 0.88px;
    margin-bottom: 1.5em;
}
.about .section-text{
    font-size: 14px;
    text-align: center;
    letter-spacing: 0.36px;
    line-height: 2;
}
.about-content {
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 0;
}
.about-image{
    margin-top: 4em;
}
@media (min-width: 768px) {
    .about {
        margin-top: 5em;
    }
    .about .section-title{
        font-size: 44px;
    }
    .about .section-text{
        font-size: 18px;
    }
}
/* News Section */
.news {
    margin-top: 5em;
}
.news-content {
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 0;
}
.news-item {
    border-bottom: 1px solid #727171;
    padding-bottom: 1em;
    margin-bottom: 1em;
}
.news-date {
    color: #727171;
    font-size: 12px;
    margin: 0 0 .3em;
}
.news-title {
    color: #000;
    font-size: 14px;
    font-weight: 500;
    font-family: "Noto Sans JP", sans-serif;
    margin: 0;
}
.news-title a {
    color: #000;
}
.news-excerpt {
    font-size: 14px;
    line-height: 1.8;
    margin: 1em 0 0;
}
.news-thumb {
    aspect-ratio: 420/263;
    background: url(../images/dummy.jpg) no-repeat center center / cover;
}
.news-listwrap {
    max-width: var(--width-wrap);
}
@media (min-width: 768px) {
    .news-content {
        display: grid;
        grid-template-rows: 150px auto;
        grid-template-columns: 28% 72%;
        grid-template-areas: 
        "news-contenttitle news-listwrap"
        "news-btn news-listwrap"; 
    }
    .news-contenttitle { grid-area: news-contenttitle; }
    .news-listwrap { grid-area: news-listwrap; }
    .news-btn { grid-area: news-btn; }
    .news-date {
        font-size: 16px;
    }
    .news-title {
        font-size: 18px;
    }
}
/* Service Section */
.service {
    color: #fff;
    margin: 5em 0 0;
}
.service-container{
    background-color: var(--bgcolor-blue);
    padding: 2em 10px;
}
.service-container-2{
    background-color: var(--bgcolor-gray);
    padding: 3em 10px 4em;
}
.service-content {
    width: 100%;
    max-width: var(--width-content);
    margin: 0 auto;
}
.serviceContent-inner {
    max-width: var(--width-wrap);
    width: 100%;
    margin: 4em auto 0;
    position: relative;
}
.serviceContent-item{
    display: flex;
    justify-content: center;
}
.serviceContent-title{
    font-size: 80px;
    letter-spacing: 4px;
    writing-mode: vertical-rl;
    margin: 0;
    position: relative;
    padding: 0 0 0 40px;
}
.serviceContent-title::before{
    content: "";
    display: block;
    width: 1px;
    height: 300px;
    background-color: #fff;
    transform: rotate(45deg);
    position: absolute;
    left: 110px;
}
.serviceContent-title::after{
    content: "";
    aspect-ratio: 1;
    background-color: var(--bgcolor-blue);
    display: block;
    width: 190px;
    clip-path: polygon(0 100%,100% 0,100% 100%);
    position: absolute;
    left: 33px;
    top: 39px;
}

.serviceContent-itemtext{
    font-size: 20px;
    letter-spacing: 2px;
    writing-mode: vertical-rl;
    margin: 8em 0 3em;
    line-height: 1.8;
}
.serviceContent-text{
    font-size: 14px;
    text-align: center;
    line-height: 2;
}
@media (min-width: 768px) {
    .serviceContent-inner {
        max-width: var(--width-wrap);
        width: 100%;
        margin: 4em auto 0;
        position: relative;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 2%;
    }
    .serviceContent-item{
        display: grid;
        grid-template-columns: 160px 70px;
    }
    .serviceContent-title{
        padding: 0 0 0 20px;
    }
}
@media (min-width: 1000px) {
    .service-container{
        padding: 5em 10px;
    }
    .serviceContent-inner {
        max-width: var(--width-wrap);
        width: 100%;
        margin: 4em auto 0;
        position: relative;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 15%;
    }
    .serviceContent-item{
        display: grid;
        grid-template-columns: 1fr 70px;
    }
    .serviceContent-title{
        padding: 0;
    }
    .serviceContent-title::before{
        height: 300px;
        left: 110px;
    }
    .serviceContent-title::after{
        width: 190px;
        left: 33px;
        top: 39px;
    }
    .serviceContent-itemtext{
        margin: 160px 0 0 80px;
    }
    .serviceContent-text{
        font-size: 18px;
    }
}
/* works */
.works {
    margin: 2em 0;
}
.works-content {
    max-width: var(--width-content);
    margin: 0 auto;
}
.works-cat-list{
    list-style: none;
    margin: 0;
    padding: 0;
}
.works-cat-list li .works-cat-image{
    margin: 1.12em 0 0;
    text-align: center;
}
.works-cat-list li .works-cat-name{
    margin: 0;
}
.works-cat-list li .works-cat-name a{
    color: #000;
    display: block;
    font-size: 18px;
    border-bottom: 1px solid #000;
    position: relative;
    padding: .8em 0 .8em 1.12em;
}
.works-cat-list li .works-cat-name a::before{
    content: "";
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: var(--bgcolor-green);
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(0, -50%);
}
.works-cat-list li .works-cat-name a::after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 7px solid #fff;
    border-right: 28px;
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translate(0,-50%);
}

@media (min-width: 768px) {
    .works {
        margin: 7em 0;
    }
    .works-cat-list{
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 0 43px;
    }
    .works-cat-list li .works-cat-image{
        margin: 0;
    }
    .works-cat-list li:nth-child(3n+1){
        margin-top: 6em;
    }
    .works-cat-list li:nth-child(3n+2){
        margin-top: 3em;
    }
    .works-cat-list li:nth-child(3n){
        margin-top: 0;
    }
}
/* recruit */
.recruit {
    margin: 0 0 4em 0;
}
.recruit-titleimage img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}
.recruit .section-title{
    text-align: center;
    font-size: 37px;
}
.recruit-container{
    background: url(../images/top/img-recruit2.png) no-repeat right top / contain;
}
.recruit-content{
    max-width: var(--width-content);
    margin: 2em auto;
    padding: 0 10px;
}
.recruit-inner{

}
.recruit-text{
    font-size: 22px;
    line-height: 2;
}
.recruit-textarea{
    font-size: 14px;
    line-height: 2;
}
.morebtn.recruitbtn {
    margin: 1.5em 0;
}
@media (min-width: 768px) {
    .recruit .section-title{
        margin-bottom: 1.5em;
    }
    .recruit-container{
        background: url(../images/top/img-recruit2.png) no-repeat right top;
    }
    .recruit-content{
        margin: 4em auto;
        padding: 0 10px 5.2em;
    }
    .recruit-inner{
        display: grid;
        gap: 70px;
    }
    .recruit-text{
        font-size: 37px;
    }
    .recruit-textarea{
        font-size: 18px;
        width: 88%;
    }
    .recruit-inner {
        display: grid;
        grid-template-columns: 1fr 44.6%;
        grid-template-areas: 
        "recruit-image recruit-textbox";
    }
    .recruit-textbox { grid-area: recruit-textbox; }
    .recruit-image { grid-area: recruit-image; }
    .morebtn.recruitbtn {
        margin: 2em 0 0;
    }
}
.page-main {
    position: relative;
    overflow: hidden;
    height: max(40.88vh, 40.88vw);
    margin-top: 40px;
}
.page-main img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}
@media (min-width: 768px) {
    .page-main {
        height: max(40.6vh, 48.6vw);
        max-height: 663px;
        margin-top: 100px;
    }
}
.page-content-title{
    width: 80%;
    background-color: #fff;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%,0);
    text-align: center;
}
.page-content-title .page-title{
    font-size: 37px;
    letter-spacing: 2.35px;
    padding: 20px 10px 5px;
}
.page-content-title .page-title::after {
    content: attr(data-title);
    display: block;
    font-size: 18px;
    letter-spacing: 0.36px;
    text-align: center;
}
@media (min-width: 768px) {
    .page-content-title{
        width: 546px;
    }
    .page-content-title .page-title{
        font-size: 47px;
        padding: 50px 10px 5px;
    }
}
.service-content-title{
    font-size: 18px;
    text-align: center;
    margin: 2.5em 0 1.12em;
}
.service-content-head img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}
.service-content-box{
    max-width: var(--width-content);
    margin: 0 auto;
    border-bottom: 1px solid var(--bgcolor-gray2);
    padding: 0 0 2em;
}
.service-content-box .text{
    font-size: 14px;
    font-family: "Noto Sans JP", sans-serif;
    padding: 0 10px;
    line-height: 2.2;
}
.service-content-box .img{
    text-align: center;
}
@media (min-width: 768px) {
    .service-content-title{
        font-size: 37px;
        margin: 2.5em 0 1.12em;
    }
    .service-content-box{
        border-bottom: 1px solid var(--bgcolor-gray2);
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 4.7em 0;
    }
    .service-content-box .text{
        font-size: 16px;
        padding: 0 4%;
        width: 50%;
    }
}
.service-latesttechnology{
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 2em 10px;
}
.service-latesttechnology-title{
    font-size: 16px;
    margin-bottom: 2.5em;
    padding: 0 10px;
}
.service-latesttechnology-detail{
    background: var(--bgcolor-gray3);
    position: relative;
    padding: .6vw 2.8vw 2.6vw;
    width: 100%;
}
.service-latesttechnology-detail::after{
    content: "";
    background: url(../images/contents/img-service4.png) no-repeat right top / contain;
    display: block;
    width: 30%;
    height: 100%;
    position: absolute;
    right: -10px;
    top: -20px;
}
.service-latesttechnology-detailtitle{
    font-size: 18px;
}
.service-latesttechnology-detailtext{
    font-size: 14px;
    font-family: "Noto Sans JP", sans-serif;
    line-height: 1.8;
    padding-bottom: 1em;
    width: 100%;
}
@media (min-width: 440px) {
    .service-latesttechnology-detailtext{
        width: 70%;
    }
}
@media (min-width: 645px) {
    .service-latesttechnology{
        padding: 5em 0;
    }
    .service-latesttechnology-title{
        font-size: 34px;
        margin-bottom: 2.5em;
    }
    .service-latesttechnology-detail{
        background: linear-gradient(90deg, var(--bgcolor-gray3) 0%, var(--bgcolor-gray3) 96.5%, #fff 3.5%, #fff 100%);
        padding: .6vw 2.8vw 2.6vw;
        width: 100%;
        margin-bottom: 2em;
    }
    .service-latesttechnology-detail::after{
        content: "";
        background: url(../images/contents/img-service4.png) no-repeat right center / contain;
        display: block;
        width: 50%;
        height: 138%;
        top: 50%;
        right: 0;
        bottom: inherit;
        transform: translate(0,-50%);
    }
    .service-latesttechnology-detailtitle{
        font-size: 34px;
    }
    .service-latesttechnology-detailtext{
        font-size: 16px;
        width: 48%;
        max-width: 456px;
    }
}
.service-dronetitle { grid-area: service-dronetitle; }
.service-dronetext { grid-area: service-dronetext; }
.service-droneimage { grid-area: service-droneimage; }
.service-drone{
    max-width: var(--width-content);
    margin: 0 auto;
    display: grid;
    text-align: center;
    grid-template-areas: 
        "service-droneimage"
        "service-dronetitle"
        "service-dronetext";
}
.service-dronetitle{
    font-size: 22px;
    line-height: 1;
}
.service-dronetext{
    font-size: 14px;
    font-family: "Noto Sans JP", sans-serif;
    padding: 0 10px;
}
.service-droneimage{
    display: flex;
    gap: 14px;
    margin-bottom: 3em;
}
@media (min-width: 768px) {
    .service-dronetitle{
        font-size: 34px;
    }
    .service-dronetext{
        font-size: 16px;
    }
}
.service-serviceitem{
    max-width: var(--width-content);
    margin: 2em auto 3em;
}
.service-serviceitemtitle{
    color: var(--bgcolor-green);
    font-size: 50px;
    text-align: center;
    line-height: 1;
}
.service-serviceitemtext{
    font-size: 14px;
    font-family: "Noto Sans JP", sans-serif;
    text-align: center;
    padding: 0 10px;
}
.service-serviceitemlist{
    list-style: none;
    margin: 3em 0 0;
    padding: 0 10px;
}
.service-serviceitemlist li{
    position: relative;
    margin-bottom: 1em;
}
.service-serviceitemlist li img{
    width: 100%;
}
.service-serviceitemlist li .works-cat-image{
    margin: 0;
}
.service-serviceitemlist li .works-cat-name{
    background: rgba(2, 66, 79, 1);
    opacity: .83;
    position: absolute;
    bottom: 0;
    margin: 0;
    width: 100%;
}
.service-serviceitemlist li .works-cat-name a{
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 17px;
    display: block;
    line-height: 45px;
    padding: 0 1.5em;
    position: relative;
}
.service-serviceitemlist li .works-cat-name a::before{
    content: "";
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: #fff;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(0, -50%);
}
.service-serviceitemlist li .works-cat-name a::after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 7px solid var(--bgcolor-green);
    border-right: 28px;
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translate(0,-50%);
}

@media (min-width: 768px) {
    .service-serviceitem{
        margin: 6em auto 8em;
    }
    .service-serviceitemtitle{
        font-size: 80px;
    }
    .service-serviceitemtext{
        font-size: 16px;
    }
    .service-serviceitemlist{
        margin: 3em 0 0;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 25px;
        padding: 0;
    }
    .service-serviceitemlist li{
    position: relative;
        margin-bottom: 0;
    }
}
.page-titlearea{
    height: 18vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: 40px;
}
.archive .page-titlearea{
    background-color: #F5F5F5;
}
.page-contentsmaintitle span {
    color: var(--bgcolor-green);
    display: inline-block;
    font-size: 39px;
    position: relative;
}
.page-contentsmaintitle::after {
    color: var(--bgcolor-green);
    content: attr(data-title);
    color: #000;
    display: block;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 1.6px;
}
.page-newslist{
    max-width: var(--width-listwrap);
    margin: 0 auto;
}
.news-container{
    margin: 2em 0;
}
.news-container .news-date{
    color: var(--bgcolor-green);
}
.page-newsdetail{
    max-width: var(--width-content);
    margin: 40px auto 5em;
}
.page-newsdetail .news-contenttitle{
    padding: 1.5em 10px 3em;
}
.newslist-detail{
    padding: 0 20px;
}
.newslist-detail .news-title{
    font-size: 18px;
    font-weight: 500;
    padding: 0 0 0 1.2em;
    position: relative;
}
.newslist-detail .news-title::before{
    content: "";
    background-color: var(--bgcolor-green);
    display: inline-block;
    width: 13px;
    height: 51px;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0,-50%);
}
.newslist-detail .news-date{
    color: var(--bgcolor-green);
    padding: .3em 0 0 2.2em;
}
.newslist-detail .news-contents{
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    padding: 1em 0 3em;
    line-height: 2.2;
}
@media (min-width: 768px) {
    .page-titlearea{
        height: 27vh;
        max-height: 317px;
        margin-top: 100px;
    }
    .news-container{
        margin: 5em 0;
    }
    .page-newsdetail{
        margin: 100px auto 5em;
    }
    .page-newsdetail .news-contenttitle{
        padding: 3em 0;
    }
    .newslist-detail .news-title{
        font-size: 29px;
        padding: 0 0 0 1.2em;
    }
    .newslist-detail .news-contents{
        padding: 2em 2.2em 5em;
    }
}
.company-content-area{
    background-color: var(--bgcolor-gray4);
    padding: 2em 10px 2em;
}
.company-content-head{
    max-width: var(--width-content);
    margin: 0 auto;
}
.company-content-title{
    font-size: 26px;
    font-weight: 500;
    text-align: center;
}
.company-content-text{
    font-size: 14px;
    margin-top: 2em;
    line-height: 2;
    padding: 0 10px;
}
.company-content-name{
    font-size: 16px;
    text-align: right;
    padding: 0 10px;
}
.company-content-name span{
    font-size: 20px;
    margin-left: 1em;
}
.company-content-data{
    max-width: var(--width-content);
    margin: 0 auto;
    background: url(../images/contents/img-company1.png) no-repeat 97% 3em / 18%;
    padding: 4em 10px 2em;
}
.company-content-datatitle{
    font-size: 33px;
    font-weight: 500;
    text-align: center;
    margin-bottom: 1.5em;
}
.company-content-datalist{
    border-top:1px solid #D1D1D1;
    max-width: 600px;
    width: 100%;
    margin-top: 1em;
}
.company-content-datalist dl{
    border-bottom: 1px solid #D1D1D1;
    font-size: 14px;
    display: flex;
    padding: .3em 5px 1em;
}
.company-content-datalist dt{
    width: 32%;
}
.company-content-datalist dd{
    width: 68%;
}
.company-historycontent{
    margin-top: 3em;
}
.company-content-memberimg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}
.company-content-memberlist{
    max-width: var(--width-content);
    margin: 2em auto 2em;
    padding: 0 10px;
}
.company-content-memberlisttitle{
    background-color: var(--bgcolor-blue);
    border-radius: 48px;
    color: #fff;
    font-size: 26px;
    text-align: center;
    line-height: 45px;
    margin-bottom: 1em;
}
.company-content-memberlistdatatl{
    font-size: 24px;
    position: relative;
    padding-left: 1.5em;
    margin-bottom: .3em;
}
.company-content-memberlistdatatl::before{
    content: "";
    background-color:var(--bgcolor-blue);
    width: 8px;
    height: 41px;
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translate(0,-50%);
}


.company-content-memberlistdata1 { grid-area: 1 / 1 / 2 / 2; }
.company-content-memberlistdata2 { grid-area: 2 / 1 / 3 / 2; }
.company-content-memberlistdata3 { grid-area: 1 / 2 / 3 / 3; }
.company-content-memberbox{
    margin-bottom: 3em;
}
.company-content-memberbox dl{
    font-size: 14px;
    display: flex;
    margin: 0;
    padding: .2em 10px .2em 8px;
}
.company-content-memberbox dt{
    width: 86%;
}
.company-content-memberbox.company-content-memberlistdata3 dt{
    width: 86%;
}
.company-content-memberbox dd{
    text-align: right;
    width: 14%;
}
@media (min-width: 483px) {
    .company-content-data{
        background: url(../images/contents/img-company1.png) no-repeat right 2.5em / 16%;
        padding: 6em 10px 2em;
    }
}
@media (min-width: 768px) {
    .company-content-area{
        padding: 5em 10px 3em;
    }
    .company-content-title{
        font-size: 47px;
    }
    .company-content-text{
        font-size: 18px;
        padding: 0 6.5em;
    }
    .company-content-name{
        font-size: 20px;
        padding: 0 5em;
    }
    .company-content-name span{
        font-size: 34px;
    }
    .company-content-data{
        background: url(../images/contents/img-company1.png) no-repeat right 8em / 40%;
        padding: 6em 10px;
    }
    .company-content-datalist{
        width: 56%;
        margin-top: 0;
    }
    .company-content-datalist dl{
        font-size: 18px;
        padding: .3em 0 1em 1.8rem;
    }
    .company-content-datalist dt{
        width: 32%;
    }
    .company-content-datalist dd{
        width: 68%;
    }
    .company-historycontent{
        display: flex;
        justify-content: space-between;
        margin-top: 10em;
    }
    .company-content-memberlistarea{
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    .company-historycontent{
        margin-top: 10em;
    }
    .company-content-memberlist{
        max-width: var(--width-content);
        margin: 5em auto 2em;
        padding: 0;
    }
    .company-content-memberlisttitle{
        font-size: 33px;
        line-height: 66px;
        margin-bottom: 2em;
    }
    .company-content-memberlistdatatl{
        font-size: 33px;
    }
    .company-content-memberbox dl{
        font-size: 18px;
        padding: .2em 0 .2em 3.2em;
    }
    .company-content-memberbox dt{
        width: 50%;
    }
    .company-content-memberbox.company-content-memberlistdata3 dt{
        width: 80%;
    }
}

.page-recruit-title{
    background: rgba(0, 0, 0, 0.4);
    position: absolute;
    right: 0;
    top: 0;
    width: 54%;
    height: 100%;
    display: flex;
    align-items: center;
}
.page-recruit-title .page-title{
    color: #fff;
    font-size: 37px;
    letter-spacing: 2.35px;
    padding: 0 20px;
}
.page-recruit-title .page-title::after {
    content: attr(data-title);
    display: block;
    font-size: 18px;
    letter-spacing: 0.36px;
}
.page-recruit-headarea{
    background: url(../images/top/img-recruit2.png) no-repeat right -30px / 50%;
}
.page-recruit-head{
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 2em 20px;
}
.page-recruit-headtitle{
    font-size: 22px;
    margin-bottom: 1.5em;
}

.page-recruit-headtext{
    font-size: 14px;
    line-height: 2;
}
.page-recruit-detail{
    font-family: "Noto Sans JP", sans-serif;
    max-width: var(--width-content);
    margin: 3em auto;
    padding: 0 10px;
}
.page-recruit-point{
    text-align: center;
    font-size: 18px;
    position: relative;
    z-index: 2;
    margin-bottom: 2em;
}
.page-recruit-point span{
    position: relative;
    z-index: 2;
}
.page-recruit-point::before{
    content: "";
    background-color: #707070;
    height: 1px;
    width: 300px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}
.page-recruit-point::after{
    content: "";
    background-color: #fff;
    height:40px;
    width: 180px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 0;
}
.page-recruit-item{
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    margin-bottom: 1em;
}
.page-recruit-detaillist{
    margin-bottom: 3em;
}
.page-recruit-detaillist dl{
    border-bottom: 1px solid #D1D1D1;
    font-size: 14px;
    margin: 0;
    padding: 0;
    line-height: 1.8;
}
.page-recruit-detaillist dl:first-child{
    border-top: 1px solid #D1D1D1;
}
.page-recruit-detail dt{
    background-color: var(--bgcolor-gray4);
    padding: .5em 1em;
}
.page-recruit-detail dd{
    padding: 1em;
}
.page-recruit-headimage1,
.page-recruit-headimage2{
    text-align: center;
}
.page-recruit-headimage1 img{
    width: 100%;
    max-width: 514px;
}
.page-recruit-teltext{
    font-size: 14px;
    text-align: center;
}
.page-recruit-tel{
    text-align: center;
    margin: 0 0 8em;
}
.page-recruit-tel a{
    font-size: 30px;
    color: var(--bgcolor-blue);
    display: block;
    line-height: 1;
}
.page-recruit-image img{
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}
@media (min-width: 768px) {
    .page-recruit-title{
        right: 0;
        top: 0;
        width: 41%;
        height: 100%;
    }
    .page-recruit-title .page-title{
        padding: 0 0 0 2.5em;
    }
    .page-recruit-headarea{
        background: url(../images/top/img-recruit2.png) no-repeat right -190px;
    }
    .page-recruit-head{
        padding: 6em 4.4em;
    }
    .page-recruit-headtitle{
        font-size: 47px;
        margin-bottom: 1.5em;
    }
    .page-recruit-headbox{
        display: grid;
        grid-template-columns: 40% 54%;
        grid-column-gap: 6%;
        grid-row-gap: 0px;
    }
    .page-recruit-headimage1 { grid-area: 2 / 2 / 3 / 3; }
    .page-recruit-headtext { grid-area: 1 / 2 / 2 / 3; }
    .page-recruit-headimage2 { grid-area: 1 / 1 / 3 / 2; }
    .page-recruit-headtext{
        font-size: 18px;
        line-height: 2;
        padding: 0 20px;
    }
    .page-recruit-detail{
        margin: 5em auto;
        padding: 0 3.7em;
    }
    .page-recruit-point{
        font-size: 28px;
        margin-bottom: 3em;
    }
    .page-recruit-detaillist{
        margin-bottom: 5em;
    }
    .page-recruit-item{
        font-size: 25px;
    }
    .page-recruit-detaillist{
        margin-bottom: 5em;
    }
    .page-recruit-detaillist dl{
        display: flex;
        font-size: 18px;
        margin: 0;
        padding: 0;
        line-height: 1.8;
    }
    .page-recruit-detail dt{
        padding: 1.1em 1em 1.1em 2.5em;
        width: 29%;
        max-width: 184px;
    }
    .page-recruit-detail dd{
        padding: 1.1em 1em 1.1em 2.5em;
        width: 81%;
    }
    .page-recruit-teltext{
        font-size: 30px;
    }
    .page-recruit-tel{
        margin: 0 0 8em;
    }
    .page-recruit-tel a{
        font-size: 64px;
    }
}
.page-works-title{
    height: 100%;
}
.page-works-title .page-title{
    background: rgba(0, 0, 0, 0.4);
    position: absolute;
    left: 50%;
    top: 50%;
    width: 80%;
    color: #fff;
    font-size: 37px;
    letter-spacing: 2.35px;
    padding: 20px 15px;
    transform: translate(-50%,-50%);
    text-align: center;
}
.page-works-title .page-title::after {
    content: attr(data-title);
    display: block;
    font-size: 18px;
    letter-spacing: 0.36px;
}
.page-works{
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 0 10px;
}
.works-category-list{
    list-style: none;
    margin: 2em 0;
    padding: 0;
    font-family: "Noto Sans JP", sans-serif;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5px;
}
.works-category-list li a{
    background-color:#F0F4F4;
    border-radius: 48px;
    color: #000;
    font-size: 14px;
    text-align: center;
    display: block;
    padding: 10px 5px;
}
.works-category-list li a:hover,
.works-category-list li.active a{
    background-color: var(--bgcolor-blue);
    color: #fff;
    opacity: 1;
}
.works-container{
    font-family: "Noto Sans JP", sans-serif;
}
.works-cattitle{
    font-size: 24px;
    text-align: center;
    letter-spacing: 2.56px;
    margin-bottom: .5em;
}
.works-taxonomy-list{
    list-style: none;
    margin: 0 0 3em;
    padding: 0;
}
.works-thumbnail{
    width: 100%;
    height: 240px;
    overflow: hidden;
}
.works-thumbnail img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.works-title a{
    color: #000;
    font-size: 14px;
}
.page-worksdetail{
    font-family: "Noto Sans JP", sans-serif;
    max-width: var(--width-content);
    margin: 40px auto 5em;
    padding: 0 10px;
}
.works-detail .works-title{
    font-size: 18px;
    margin-bottom: 1em;
}
.works-thumbnailcatch{
    width: 100%;
    /*height: 200px;
    overflow: hidden;*/
}
.works-thumbnailcatch img{
    width: 100%;
    /*height: 100%;
    object-fit: cover;
    display: block;*/
}
.works-content{
    margin-top: 2em;
}
.works-content dl{
    border-bottom: 1px solid #D1D1D1;
    font-size: 14px;
    margin: 0;
    padding: 0;
}
.works-content dl:first-child{
    border-top: 1px solid #D1D1D1;
}
.works-content dl dt{
    background-color: var(--bgcolor-gray4);
    padding: 10px 20px;
}
.works-content dl dd{
    padding: 10px 20px;
}
.works-content dl dd p{
    margin: 0;
}
.works-content-image{
    list-style: none;
    margin: 2em 0;
    padding: 0;
}
.works-content-image li{
    width: 100%;
    height: 200px;
    overflow: hidden;
    margin-bottom: 1em;
}
.works-content-image li img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (min-width: 768px) {
    .page-works-title .page-title{
        width: 40%;
        max-width: 546px;
        padding: 1.6em 20px;
    }
    .page-works{
        padding: 0;
    }
    .works-category-list{
        margin: 5em 0;
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
        gap: 16px;
    }
    .works-category-list li a{
        border-radius: 48px;
        font-size: 16px;
        padding: 10px;
    }
    .works-cattitle{
        font-size: 32px;
        margin-bottom: 1.5em;
    }
    .works-taxonomy-list{
        margin: 0 0 3em;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 46px;
    }
    .works-thumbnail{
        height: 240px;
    }
    .page-worksdetail{
        margin: 100px auto 5em;
        padding: 0;
    }
    .works-detail .works-title{
        font-size: 27px;
    }
    .works-thumbnailcatch{
        /*height: 586px;*/
    }
    .works-content{
        margin-top: 3em;
    }
    .works-content dl{
        display: flex;
        border-bottom: 1px solid #D1D1D1;
        font-size: 16px;
    }
    .works-content dl dt{
        padding: 21px 30px;
        width: 29%;
        max-width: 184px;
    }
    .works-content dl dd{
        padding: 21px 30px;
        width: 85%;
    }
    .works-content-image{
        margin: 3em 0 5em;
        padding: 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 22px;
    }
    .works-content-image li{
        height: 336px;
        margin-bottom: 0;
    }
}

.contact-content-area{
    background-color: var(--bgcolor-gray4);
    padding: 2em 10px 2em;
}
.page-contact{
    max-width: var(--width-content);
    margin: 0 auto;
    padding: 0 10px;
}
.page-contacttext{
    font-size: 14px;
    text-align: center;
    line-height: 2;
}
.page-contactform{
    font-family: "Noto Sans JP", sans-serif;
    max-width: 885px;
    margin: 5em auto;
}


.formarea dl dt span{
    color: #D1132C;
    margin-left: 5px;
}
.smf-form .smf-text-control input{
    border: none;
    width: 100%;
    padding: 18px;
}
.smf-form .smf-item__col--controls{
    margin: .5em 0 2em;
}
.smf-form .smf-textarea-control textarea{
    border: none;
    width: 100%;
    padding: 18px;
}
.smf-checkboxes-control{
    font-size: 14px;
}
.smf-action{
    text-align: center;
}
.smf-action button{
    display: block;
    text-align: center;
    max-width: 320px;
    margin: 0 auto 1em;
}
.smf-action .smf-button-control__control{
    background-image: none;
    background-color: transparent;
}
.smf-action button{
    border: none !important;
    background-color: var(--bgcolor-blue) !important;
    border-radius: 27px !important;
    color: #fff !important;
    cursor: pointer;
    font-family: "Noto Sans JP", sans-serif;
    width: 100%;
    padding: 18px !important;
}
.smf-action button[data-action="complete"] {
    width: 40%;
    max-width: 200px;
}
.smf-action button[data-action="back"] {
    border: none;
    background-color: #ccc !important;
    color: #333 !important;
    width: 40%;
    max-width: 200px;
}

.smf-action button:hover{
    opacity: .7;
}
.wp-block-group__inner-container{
    text-align: center;
}
.smf-item__label__text,
.smf-checkbox-control__label {
    position: relative;
}
.smf-item:has([data-validations~="required"]) .smf-item__label__text::after,
.smf-checkbox-control__label::after {
    content: " *";
    display: inline-block;
    margin-left: .5em;
    color: #D1132C;
    font-size: 1.2em;
}
@media (min-width: 768px) {
    .contact-content-area{
        padding: 5em 10px 3em;
    }
    .page-contacttext{
        font-size: 18px;
    }
    .smf-checkboxes-control{
        font-size: 16px;
        text-align: center;
    }
}
.list-nav{
    margin: 5em auto;
    text-align: center;
    font-size: 18px;
    font-family: "Noto Sans JP", sans-serif;
    line-height: 41px;
}
.nav-links span.current{
    background-color: var(--bgcolor-blue);
    color: #fff;
    display: inline-block;
    width: 41px;
    margin: 0 0 0 1em;
}
.nav-links a:hover{
    background-color: var(--bgcolor-blue);
    color: #fff;
    display: inline-block;
    width: 41px;
    opacity: 1;
}
.nav-links a{
    color: #000;
    display: inline-block;
    width: 41px;
    margin: 0 0 0 1em;
}

.screen-reader-text {
    display: none !important;
}
.nav-links .prev,
.nav-links .next {
    display: none;
}