@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Yanone+Kaffeesatz:wght@200..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

/*
  ブレイクポイント
  PC:   1920x1080 
  @media screen and (min-width: 1024px)
  TAB:  768x1024
  @media screen and (max-width: 1023px)
  SP:   390x844
  @media screen and (max-width: 767px)
*/

/* constant */ 
:root {
  --main-color: #1f8ac9;
  --sub-color01: #54595F;
  --sub-color02: #DCDC30;
  --sub-color03: #8b0000;
  --font-color-text: #222222;
  --font-color-heading: #222222;
  --bg-color: #fff;
  --border-color: #D5D5D5;
  --bg-highlight: #F9F9F9;
  --font-family: 'Noto Sans JP', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', serif;
  --font-family-en: "Yanone Kaffeesatz", 'Noto Sans JP', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', serif;
  --font-family-no: "Poppins", 'Noto Sans JP', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', serif;
  --container-width: 1200px;
}

/*layout*/
body {
  font-family: var(--font-family);
  color: var(--font-color-text);
  background: var(--bg-color);
  font-size: clamp(1.4rem, calc(1.3rem + 0.25vw), 1.6rem);
  letter-spacing: 0.1em;
  line-height: 1.8;
  position: relative;
}
main{
  overflow: hidden;
}
a {
  color: inherit;
  text-decoration: none;
  transition: 0.3s;
}
p{
  margin: 0;
}
.container {
  margin: 0 auto;
  position: relative;
  width: 100%;
  max-width: calc(var(--container-width) + 20px);
  padding: 0 10px;
  overflow: hidden;
}
section {
  position: relative;
  padding: 80px 0;
  &.no-padding{
    padding: 0;
  }
  &.bg-highlight{
    background-color: var(--bg-highlight);
  }
}
.flex{
  display: flex;
  &.align-center{
    align-items: center;
  }
  &.row-reverse{
    flex-direction: row-reverse;
  }
}
.button{
  background: var(--font-color-text);
  color: #fff;
  border: 1px solid var(--font-color-text);
  text-align: center;
  padding: 15px 40px;
  display: block;
  position: relative;
  width: 300px;
  margin: 0 auto;
  font-family: var(--font-family-en);
  font-size: 2.8rem;
  line-height: 1;
  letter-spacing: 0.2rem;
  transition: 0.5s;
  &::after{
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    width: 8px;
    height: 8px;
    right: 30px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg) translateY(-50%);
    transform-origin: top center;
    transition: 0.5s;
  }
  &.white{
    background: #fff;
    color: var(--font-color-text);
    &::after{
      border-color: var(--font-color-text);
    }
    &:hover{
      background: var(--font-color-text);
      color: #fff;
      &::after{
        border-color: #fff;
      }
    }
  }
  &:hover{
    background: #fff;
    color: var(--font-color-text);
    &::after{
      border-color: var(--font-color-text);
    }
  }
  @media screen and (max-width: 767px){
    font-size: 2.2rem;
    width: 200px;
    padding: 10px 20px;
    &::after{
      right: 15px;
    }
  }
}
.pc-only{
  display: block;
}
.sp-only{
  display: none;
}
@media screen and (max-width: 767px){
  .pc-only{
    display: none;
  }
  .sp-only{
    display: block;
  }
}

.button-wrapper{
  text-align: center;
}
.text-vertical{
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  letter-spacing: 3.5px;
}  
.text-en{
  font-family: var(--font-family-en);
}
.text-c{
  text-align: center;
}
@media screen and (max-width:1023px) {
  section{
    padding: 35px 0;
  }
  .container{
    padding: 0 30px;
  }
}
@media screen and (max-width: 767px){
  body{
    font-size: 1.4rem;
  }
  section{
    padding: 40px 0;
  }
  .container{
    padding: 0 15px;
  }
  .flex{
    flex-direction: column;
    &.row-reverse{
      flex-direction: column;
    }
  }
  #toTop{
    bottom: 20px!important;
    }

}

/* header */
#header{
  position: fixed;
  width: 100%;
  z-index: 1000;
  top: 10px;
  .header-wrapper{
    background-color: #FFFFFF90;
    border-radius: 60px;
    padding: 10px 20px 10px 20px;
    /*padding: 10px 30px 10px 40px;*/
    display: flex;
    align-items: center;
    justify-content: space-between;
    .logo{
      a{
        display: block;
      }
    }
    .site-description{
      padding-bottom: 5px;
      border-bottom: 1px solid var(--font-color-text);
    }
    nav{
      .global-nav{
        display: flex;
        gap: 40px;
        padding-top: 10px;
        text-align:center;
        a{
          font-weight: 600;
          font-size: 35px;
          font-family: var(--font-family-en);
          line-height: 1;
        }
      }
    }
    .icons{
      .instagram{
        display: block;
        background-color: var(--main-color);
        border-radius: 50%;
        padding: 10px;
        width: 60px;
        height: 60px;
      }
    }
  }
}
.fnt-s{
  font-size:13px;
  display:block;
  text-align:center;
}

/* ハンバーガーメニュー */
#humburger{
  display: none;
}
@media screen and (max-width: 767px){
  #header {
    .container{
      height: 60px;
    }
    .header-wrapper{
      padding: 5px 30px;
      .drawer-nav-wrapper {
        display: block;
        position: fixed;
        background: #fff;
        top: -100%;
        left: 0;
        z-index: 1001;
        transition: all 0.5s;
        max-width: 100vw;
        padding: 50px 15% 40px;
        height: auto;
        width: 100%;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
        &.open{
          top: 0;
        }
        .global-nav {
          flex-direction: column;
          gap: 20px 0;
          li{
            border-bottom: 2px dotted var(--border-color);
          }
        }
      }
    }
    .logo {
      img{
        height: 50px;
      }
    }
    .header-middle .site-description{
      display: none;
    }
    .icons{
      display: none;
    }

  }
  #humburger {
    cursor: pointer;
    display: block;
    width: 35px;
    height: 100%;
    > span {
      display: inline-block;
      transition: transform .2s, opacity .2s;
      will-change: transform;
      position: absolute;
      right: 35px;
      height: 2px;
      background: var(--font-color-text);
      width: 30px;
      perspective: 1000;
      border-radius: 3px;
      z-index: 1002;
      &:nth-of-type(1) {
        top: calc(50% - 11px);
      }
      &:nth-of-type(2) {
        top: 50%;
      }
      &:nth-of-type(3) {
        top: calc(50% + 11px);
      }
    }
    &.active{
      > span{
        &:nth-of-type(1) {
          transform: rotate(45deg);
          transform-origin: left top 0;
        }
        &:nth-of-type(2) {
          opacity: 0;
        }
        &:nth-of-type(3) {
          transform: rotate(-45deg);
          transform-origin: bottom left 0;
        }
      }
    }
  }
}

/* footer */
#toTop{
  display: none;
  position: fixed;
  bottom: 60px;
  right: 20px;
  z-index: 100;
}
.sideBanner{
  position: fixed;
  right: 0;
  top: 300px;
  z-index: 100;
  a{
    background:#ea851b;
    /*background: var(--sub-color02);*/
    border-radius: 15px 0 0 15px;
    font-size: 2.0rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 15px;
    padding: 30px 12px 30px 10px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    .text-vertical{
      letter-spacing: 0.6rem;
    }
    &:hover{
      transform: scale(1.2);
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    }
  }
  @media screen and (max-width: 767px){
    display: none;
  }
}
#footer{
  position: relative;
  display: flex;
  padding-top: 100px;
  .footer-logoArea{
    background: var(--main-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 30%;
    /*margin-top: -60px;*/
    .footer-logo{
      flex: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      img{
        display: block;
        max-width: 180px;
      }
    }
  }
  .footer-navArea{
    background: var(--sub-color01);
    width: 100%;
    color: #fff;
    padding: 60px 60px 0;
    nav{
      display: flex;
      gap: 40px;
      margin-bottom: 40px;
    }
    .footer-nav{
      width: calc((100% - 80px) / 3);
      border-right: 1px solid #fff;
      &:last-child{
        border:none;
      }
    }
  }
  .copyright{
    padding: 10px 10px;
    text-align: right;
    font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
    font-family: var(--font-family-no);
    font-weight: 400;
    color:#fff;
  }

  @media screen and (max-width: 767px){
    margin-top: 100px;
    padding-top: 00;
    flex-direction: column;
    .scroll-container{
      top: -50px;
    }
    .footer-logoArea{
      width: 100%;
      padding: 20px 15px;
      img{
        width: 50%;
        display: block;
        margin: 0 auto;
      }
    }
    .footer-navArea{
      padding: 20px 15px;
      nav{
        gap: 0 20px;
        margin-bottom: 20px;
      }
      .footer-nav{
        border: none;
        width: auto;
        li{
          font-size: 1.2rem;
        }
      }
    }
    .copyright{
      text-align: center;
      padding: 0;
    }
  }
}
#secAccess{
  padding-bottom: 0;
  .container{
    display: flex;
    gap: 40px;
    align-items: center;
    .company-image{
      width: 37%;
    }
    .right-area{
      flex: 1;
      .company_name{
        font-size: 1.8rem;
        font-weight: 600;
      }
    }
  }
  @media screen and (max-width: 767px){
    .container{
      flex-direction: column;
      .company-image{
        width: 100%;
      }
      .right-area{
        width: 100%;
      }
    }
  }
}

#secContact{
  position: relative;
  background: #000;
  &::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../img/title_bg.png');
    background-repeat: no-repeat;
    background-size: cover;  
    filter: opacity(0.6);
  }
  .container{
    color: #fff;
    text-align: center;
    .contact-title  {
      font-size: 3.2rem;
      color: #fff;
      margin-bottom: 40px;
      &::after{
        background-color: #ea851b;
      }
    }
    .button-wrapper{
      display: flex;
      gap: 20px 60px;
      justify-content: center;
      margin-top: 40px;
      a{
        font-size: 1.8rem;
        margin: 0;
        width: auto;
        padding: 20px 80px;
      }
    }
    @media screen and (max-width: 767px){
      padding: 20px 15px;
      .contact-title{
        font-size: 2.4rem;
        margin-bottom: 20px;
      }
      .button-wrapper{
        flex-direction: column;
        a{
          font-size: 1.4rem;
          padding: 15px 40px;
        }
      }
    }
  }
}

#error404{
  .text-c{
    p{
      margin-bottom: 80px;
    }
    .button{
      font-size: 2.2rem;
    }  
  }
}
