/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html {
    -webkit-text-size-adjust: 100%;
    line-height: 1.15;
    overflow-y: scroll;
    overflow-x: hidden;
}

body {
    margin: 0;
}
body:active {
    height: 100%;
    overflow: hidden;
  }
main {
    display: block;    
}

h1 {
    margin: .67em 0;
    font-size: 2em
}

hr {
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
    overflow: visible
}

pre {
    font-size: 1em;
    font-family: monospace, monospace
}

a {
    background-color: transparent
}

abbr[title] {
    -webkit-text-decoration: underline dotted;
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted
}

b,
strong {
    font-weight: bolder
}

code,
kbd,
samp {
    font-size: 1em;
    font-family: monospace, monospace
}

small {
    font-size: 80%
}

sub,
sup {
    position: relative;
    font-size: 75%;
    line-height: 0;
    vertical-align: baseline
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

img {
    border-style: none
}

button,
input,
optgroup,
select,
textarea {
    margin: 0;
    font-size: 100%;
    line-height: 1.15;
    font-family: Zen Kaku Gothic New
}

button,
input {
    overflow: visible
}

button,
select {
    text-transform: none
}

[type=button],
[type=reset],
[type=submit],
button {
    -webkit-appearance: button
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
    padding: 0;
    border-style: none
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
    outline: 1px dotted ButtonText
}

fieldset {
    padding: .35em .75em .625em
}

legend {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    display: table;
    max-width: 100%;
    padding: 0;
    color: inherit;
    white-space: normal
}

progress {
    vertical-align: baseline
}

textarea {
    overflow: auto
}

[type=checkbox],
[type=radio] {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

details {
    display: block
}

summary {
    display: list-item
}

template {
    display: none
}

[hidden] {
    display: none
}

html {
    font-size: 62.5%
}

body * {
    -webkit-box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    -webkit-appearance: none;
    box-sizing: border-box;
    outline: 0;
    color: inherit;
    font-weight: inherit;
    font-size: inherit;
    line-height: inherit;
    overflow-wrap: break-word
}

body form * {
    -webkit-appearance: auto
}

a {
    color: #fff
}

a:hover {
    text-decoration: none
}

img {
    -webkit-backface-visibility: hidden;
    max-width: 100%;
    height: auto
}

img[src$=".svg"] {
    -webkit-backface-visibility: inherit
}

b,
strong {
    font-weight: 600
}

table {
    border: none;
    border-collapse: collapse;
    border-spacing: 0
}

button {
    padding: 0;
    border: none;
    background: 0 0;
    cursor: pointer
}

body {
    background-color:#0020A8;
    font-style: normal;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    font-family: Zen Kaku Gothic New;
    color: #fff;

}

.loader {
    display: block;
    z-index: 9999;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fafafa
}

.loader_image {
    -webkit-transform: translate(-50%, -50%);
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12vw;
    height: auto;
    height: auto;
    transform: translate(-50%, -50%)
}

.site-center {
    display: block;
    width: 30%;
    /* max-width: 375px; */
    margin: 0 auto;
    overflow: hidden;
    /* background-color: #1b2b47; */
    color: #000;
    margin-left: auto;
    margin-right: 75px;
    background-color: #fff;
    position: absolute;
    right: 0;
}

.site-right {
    position: fixed;
    right: 0;
    width: 5%;
    height: 100vh;
    overflow: hidden;
    text-align: center;
    top: 0;
}

.site-left {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    align-items: center;
    justify-content: center;
    width: 70%;
    height: 100vh;
    overflow: hidden
}

.main {
    display: block;
    width: 100%;
    background-color: #fff;
    color: #393939;
}
.article_01 h3{
  position: relative;
  font-size: 22px;
  font-weight: bold;
  text-align: center;
  color: #000;
}
.article_01 h5{
  font-size: 16px;
  font-weight: bold;
  text-align: justify;
  padding: 56px 20px 0;
}
/* ******************<追加>****************** */
.site-left .top-movie{
    position: absolute;
    top: 4rem;
    height: 100vh;

     object-fit: cover;/* 後で消す */
}
.top-left-post{
    margin-top: auto;
    left: 0;
    display: block;
    width: 100%;
    height: auto;
    line-height: 4rem;
    background-color: #0020A8;
    position: absolute;
    top: 0;
    z-index: 10;
    padding-left: 20px;
}

.logo-img{
    display: block;
    width: 50%;
    margin: 0 auto 40px;
    padding-top: 50px;
}
.scroll {
  position  : absolute;
  font-size : 13px;
  writing-mode : vertical-rl;
  left : 50%;
  transform: translateX(-50%) translateY(-50%);
}
.scroll::after {
  content : "";
  display : inline-block;
  position : absolute;
  background-color: #000;
  right : 50%;
  bottom : -115px;
  transform : translateX(-50%);
  width : 1px;
  height : 100px;
  animation: scroll 3s infinite;

}

@keyframes scroll {
0% {
  transform: scale(1, 0);
  transform-origin: 0 0;
}
50% {
  transform: scale(1, 1);
  transform-origin: 0 0;
}
50.1% {
  transform: scale(1, 1);
  transform-origin: 0 100%;
}
100% {
  transform: scale(1, 0);
  transform-origin: 0 100%;
}
}
/* 
.instagram-btn{
    display: block;
    text-align: center;
    border: #fff solid 1px;
    border-radius: 30px;
    width: 240px;
    line-height: 50px;
    margin: 0 auto;
    font-size: 1.8rem;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}
.instagram-btn:hover {
    background: #FFF3D2;
    color: #184C3D;
}
.instagram-btn::before{
    content: "";
    background-image: url(../img/top/menu_logo_insta-img.png);
    background-repeat: no-repeat;
    display: inline-block;
    background-size: contain;
    width: 35px;
    height: 35px;
    top: 8px;
    position: relative;
    margin-right: 10px;
    transition: 0.3s ease-in-out;
}
.instagram-btn:hover::before{
    background-image: url(../img/top/menu_logo_insta_green-img.png);
} */
/* .detail{
    background-color: #fff;
    color: #717171;
    padding: 25px;
    border-radius: 25px;
    margin-bottom: 30px;
}
.category-txt{
    text-align: left!important;
} */

/* .category-title{
    color: #184C3D;
    font-size: 1.7rem;
    text-align: center;
}
.detail p{
    margin: 0;
} */
/* **スライダー******************************** */


/* 中央以外のスライド */

  /* 中央のスライド */
  
  
  
     

  
.copyright{
    display: block;
    position: fixed;
    bottom: 100px;
    transform: rotate(-90deg);
    font-size: 15px;
    width: 196px;
    right: -60px;
    margin: 0;
}
/* .site_logo_flower{
    position: relative;
}
#flower-1{
    animation:30s linear infinite rotation1;
    position: absolute;
    top: -45px;

} 
@keyframes rotation1{
    0%{ transform:rotate(0);}
    100%{ transform:rotate(360deg); }
}
*/

.content{
    display: block;
    /* padding: 0 50px; */
}
.article_01{
    padding: 100px 0;
}

.scroll {
    position  : absolute;
    font-size : 13px;
    writing-mode : vertical-rl;
    left : 50%;
    transform: translateX(-50%) translateY(-50%);
}
.scroll::after {
    content : "";
    display : inline-block;
    position : absolute;
    background-color: #000;
    right : 50%;
    bottom : -115px;
    transform : translateX(-50%);
    width : 1px;
    height : 100px;
    animation: scroll 3s infinite;
}
@keyframes scroll {
    0% {
      transform: scale(1, 0);
      transform-origin: 0 0;
    }
    50% {
      transform: scale(1, 1);
      transform-origin: 0 0;
    }
    50.1% {
      transform: scale(1, 1);
      transform-origin: 0 100%;
    }
    100% {
      transform: scale(1, 0);
      transform-origin: 0 100%;
    }
  }@keyframes scroll {
    0% {
      transform: scale(1, 0);
      transform-origin: 0 0;
    }
    50% {
      transform: scale(1, 1);
      transform-origin: 0 0;
    }
    50.1% {
      transform: scale(1, 1);
      transform-origin: 0 100%;
    }
    100% {
      transform: scale(1, 0);
      transform-origin: 0 100%;
    }
  }

@media screen and (min-width:768px) {/* a[href^="tel:"] {
        text-decoration: none;
        cursor: default;
        pointer-events: none
    } */.hide-pc {
        display: none !important
    }}

@media screen and (max-width:767px) {
    .hide-sp {
        display: none !important
    }
    body {
        font-size: 1.4rem;
        background-color: unset;
    }
    .top-left-post{
      text-align: center;
      padding-left: 0px;
    }
    .top-logo-sp{
        background-color: #fff;
        padding: 20px 0 10px;
    }
    .top-logo-sp img{
        width: 50%;
        display: block;
        margin: 0 auto;
    }
    .loader_image {
        width: 40vw
    }
    .site-left {
        display: block;
        width: 100%;
        height: auto;
        position:unset;
    }
    .site-left .top-movie{
        position: unset;
        width: 100%;
        height: 420px;
        max-height: 620px;
        margin-top: 40px;
        object-fit: cover;
    }
    .site-center{
        width: 100%;
        margin: 0;
    }
    .top-logo{
        margin-top: 100px;
    }
    .scroll{
        left: 50%!important;
    }
    .content {
        padding: 0 !important;
    }
    .article_01 {
        padding: 100px 0 0!important;
    }
    /* メニューボタンのデザイン（SPのみ丸いボタンに"menu"の文字） */
    .drawer__button{
      top: unset !important;
      bottom: 30px !important;
      right: 20px !important;
      width: 53px !important;
      height: 53px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      background-color: var(--dept-navy, #0020A8) !important;
      border-radius: 50% !important;
      border: 1px solid #fff!important;
      box-sizing:content-box;
    }
    .drawer__button > span {
      display: none !important;
    }
    .drawer__button::after {
      content: "menu";
      position: static !important;
      color: #fff !important;
      font-size: 14px !important;
      letter-spacing: .05em;
      font-weight: bold;
    }
    .drawer__button.active::after{
      content: "close";
      font-weight: bold;
    }
    .drawer__nav.active .drawer__nav__inner {
        display: block!important;
        padding: 10rem 1.5rem 1rem;
    }
   
    .drawer__nav__inner__left {
        width: 100%!important;
    }
    .drawer__nav__inner__left img {
      width: 30%!important;
    }
    .drawer__nav__inner__right{
        width: 100%!important;
    }
    .drawer__nav__menu {
        position: unset!important;
        top: unset;
        margin-left: unset;
        margin-left: 0!important;
        text-align: center;
        margin-top: 65px;
    }
    .drawer__nav__item__logo{
        justify-content: center;
    }
  }

/* ハンバーガーボタンのデザイン（PC） */
.drawer__button {
    position:fixed;
    background-color: transparent;
    border: none;
    cursor: pointer;
    z-index: 999; /* メニューを開いている時もクリックできるよう設定 */
    right: 25px;
    top: 20px;
  }
  .drawer__button > span {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: block;
    background-color: #fff;
  }
  .drawer__button::after{
    content: "menu";
    position: absolute;
    top: 20px;
    right: -10px;
  }
  .drawer__button.active::after{
    content: "close";
    position: absolute;
    top: 20px;
  }
  /* メニューのデザイン（円が広がって展開） */
  .drawer__nav {
    position: fixed; /* 追従ヘッダーなどでも表示できるよう設定しておく */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    pointer-events: none;
  }
  .drawer__nav.active {
    pointer-events: auto;
    z-index: 100; /* SP下部メニュー(z-index:90)より前面に表示させる */
  }
  .drawer__nav__bg {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 3600px;
    height: 3600px;
    margin-left: -1800px;
    margin-top: -1800px;
    border-radius: 50%;
    background-color: var(--dept-navy, #0020A8);
    transform: scale(.02);
    opacity: 0;
    transition: transform .3s ease-out, opacity 0s linear .3s;
    backface-visibility: hidden;
    will-change: transform, opacity;
  }
  .drawer__nav.active .drawer__nav__bg {
    transform: scale(1);
    opacity: 1;
    transition: transform .6s ease-out, opacity 0s linear 0s;
  }
  .drawer__nav__inner {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 4rem 1.5rem 1rem;
    display: flex;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility 0s linear .2s;
  }
  .drawer__nav.active .drawer__nav__inner {
    opacity: 1;
    visibility: visible;
    transition: opacity .2s ease .35s, visibility 0s linear 0s;
  }
  .drawer__nav__inner__left{
    display: block;
    width: calc(100vw - 50%);
  }
  .drawer__nav__inner__left img{
    display: block;
    margin: 0 auto;
    width: 60%;
  }
  .drawer__nav__inner__right{
    display: block;
    width: calc(100vw - 50%);
    height: 100%;
  }
  .drawer__nav__menu {
    list-style: none;
    padding-left: 0;
    position: absolute;
    top:25%;
    margin-left: 5%;
  }
  .drawer__nav__item {
    opacity: 0;
    transform: translateX(-40px);
    transition: none;
  }
  .drawer__nav.active .drawer__nav__item {
    opacity: 1;
    transform: translateX(0);
    transition: opacity .35s ease-out, transform .35s ease-out;
  }
  .drawer__nav.active .drawer__nav__item:nth-child(1){ transition-delay: .38s; }
  .drawer__nav.active .drawer__nav__item:nth-child(2){ transition-delay: .44s; }
  .drawer__nav.active .drawer__nav__item:nth-child(3){ transition-delay: .50s; }
  .drawer__nav.active .drawer__nav__item:nth-child(4){ transition-delay: .56s; }
  .drawer__nav.active .drawer__nav__item:nth-child(5){ transition-delay: .62s; }
  .drawer__nav.active .drawer__nav__item:nth-child(6){ transition-delay: .68s; }
  .drawer__nav__link {
    display: block;
    color: #fff;
    text-decoration: none;
    padding: 2rem 1rem;
    /* font-family: Hina Mincho; */
    font-size: 19px;
    /* text-align: center; */
  }
  .drawer__nav__link_logo{
    padding: 0;
  }
  .drawer__nav__item__logo{
    /* width: 15%; */
    display: flex;
    padding: 2rem 1rem;
  }
  /* .drawer__nav__item__logo img{
    width: 50%;
  } */
  a span{
    display: inline-block;
    /* color:#fff;
    font-size:120%; */
    text-decoration:none;
    transition:1s;
    width: 50%;
  }
    a span:hover{
    transform: rotateY(360deg);
  }
  .drawer__nav__item a {
    display: inline-block;
  color:#fff;
  font-size:120%;
  text-decoration:none;
  transition: .3s;
  -webkit-transform: scale(1);
  transform: scale(1);
  }
  .drawer__nav__item a:hover {
    -webkit-transform: scale(1.15);
    transform: scale(1.15);
  }
  /* ハンバーガーメニュー展開時、背景を固定 */
  body.active {
    height: 100%;
    overflow: hidden;
  }
  
  /* 見た目の調整 */
  section {
    width: 100%;
    /* height: 30vh; */
  }


@media screen and (max-width:750px) {.site-center {
        max-width: none
    }}

@media screen and (max-width:991px) {.site-right {
        display: none!important;
    }/* .site-left {
        display: none
    } */}






/* ====================================
   工事部門 スライダー (dept-slider)
==================================== */
:root{
  --dept-navy: #0020A8;
  --dept-navy-soft: #4C6099;
  --dept-bg: rgba(0, 32, 168, .11);
  --dept-card-bg: #FFFFFF;
  --dept-text-body: #000;
  --dept-border: #000;
}

.dept-slider-section{
  padding: 30px 0 72px;
  background: var(--dept-bg);
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
  margin-bottom: 50px;
}

.dept-slider-header{
  text-align: center;
  margin-bottom: 40px;
}
.dept-slider-header h4{
  margin: 0;
  font-size: 29px;
  font-weight: 900;
  color: var(--dept-navy);
  line-height: 2rem;
}
.dept-slider-eyebrow{
  margin: 6px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--dept-navy);
}

.dept-slider-wrap{
  position: relative;
}

.dept-slider-viewport{
  /* overflow: hidden; */
  padding: 8px 0 28px;
}

.dept-slider-track{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 20px;
  will-change: transform;
}

.dept-slide{
  flex: 0 0 78%;
  max-width: 340px;
}
@media (max-width: 640px){.dept-slide{ flex-basis: 84%; max-width: 280px;}}

.dept-card{
  background: var(--dept-card-bg);
  border: 2px solid var(--dept-border);
  border-radius: 28px;
  padding: 20px 20px 28px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform .3s ease, box-shadow .3s ease;
}
.dept-slide.is-active .dept-card{
  box-shadow: 0 14px 30px rgba(27,43,71,.16);
}

.dept-card img{
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.dept-card h3{
  margin: 18px 0 2px;
  font-size: 21px;
  font-weight: 700;
  color: #222;
}

.dept-card hr{
  width: 36px;
  border: none;
  border-top: 3px solid var(--dept-navy);
  margin: 12px 0 14px;
}

.dept-card p{
  margin: 0;
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--dept-text-body);
  flex-grow: 1;
}

.more_btn{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 234px;
  margin: 28px auto 0;
  background: var(--dept-navy);
  color: #fff;
  text-decoration: none;
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
  font-size: 16px;
  font-weight: 500;
  padding: 5px 20px;
  border-radius: 999px;
  transition: opacity .2s ease, transform .2s ease;
  border: #0020A8 solid 1px;
}
.more_btn::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: 14px;
  height: 2px;
  background: var(--dept-navy);
  transform: translateY(-50%);
}
.more_btn:hover{
    color: #0020A8;
    background-color: unset;
    transition : all 0.2s ease 0s;
}

/* ====================================
   実績紹介 (track-record)
==================================== */
.track-record-section{
  padding: 56px 20px 64px;
  max-width: 1080px;
  margin: 0 auto;
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
}

.track-record-header{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 2px solid var(--dept-navy);
  margin-bottom: 10px;
}
.track-record-header h4{
  margin: 0;
  font-size: clamp(24px, 4vw, 28px);
  font-weight: 900;
  color: var(--dept-navy);
}
.track-record-en{
  font-size: 14px;
  font-weight: 700;
  color: var(--dept-navy);
  letter-spacing: .04em;
}

.track-record-lead{
  margin: 0 0 28px;
  font-size: 14.5px;
  line-height: 1.9;
  color: #393939;
}

.track-record-list{
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.track-record-item{
  display: flex;
  align-items: center;
  gap: 22px;
  background: #EFEFEF;
  border-radius: 16px;
  padding: 20px 26px;
}
.track-record-item img{
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex-shrink: 0;
}
.track-record-item-text{
  min-width: 0;
}
.track-record-item-title{
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
}
.track-record-item-sub{
  margin: 4px 0 0;
  font-size: 13px;
  color: #666;
}

.recruit-banner{
  display: block;
  position: relative;
  margin-top: 70px;
  overflow: hidden;
  text-decoration: none;
  transition: opacity .2s ease;
}
.recruit-banner:hover{ opacity: .8; }
.recruit-banner img{
  width: 100%;
  object-fit: cover;
  display: block;
}




/* ====================================
   会社概要 (company)
==================================== */
.company-section{
  padding: 56px 20px 64px;
  max-width: 1080px;
  margin: 0 auto;
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
}

.company-header{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 2px solid var(--dept-navy);
  margin-bottom: 30px;
}
.company-header h4{
  margin: 0;
  font-size: clamp(24px, 4vw, 28px);
  font-weight: 900;
  color: var(--dept-navy);
}
.company-en{
  font-size: 14px;
  font-weight: 700;
  color: var(--dept-navy);
  letter-spacing: .04em;
}

.company-table{
  width: 100%;
  border-collapse: collapse;
}
.company-table tr{
  border-bottom: 1px solid var(--dept-navy);
}
.company-table th{
  width: 118px;
  min-width: 92px;
  text-align: left;
  vertical-align: top;
  padding: 18px 12px 18px 2px;
  font-size: 14px;
  font-weight: 700;
  color: var(--dept-navy);
  white-space: nowrap;
}
.company-table td{
  padding: 18px 4px 18px 22px;
  font-size: 13.5px;
  color: #333;
  line-height: 1.85;
}
footer{
  background-color: #0020A8;
  color: #fff;
  margin-top: 140px;
}
.footer_img{
  margin: 0 auto;
  display: block;
  padding: 50px 0 0;
  width: 35%;
}
.footer_p{
  margin: 0;
  padding-bottom: 30px;
  text-align: center;
}
@media (max-width: 480px){.company-table th{ width: 84px; min-width: 76px; font-size: 13px; }.company-table td{ padding-left: 14px; font-size: 13px; }}

.company-address{
  margin-bottom: 18px;
}
.company-address:last-child{
  margin-bottom: 0;
}
.company-address-title{
  margin: 0 0 4px;
  font-weight: 700;
  color: #333;
}
.company-address p{
  margin: 0;
  line-height: 2rem;
}

/*# sourceMappingURL=map/style.css.map */