@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

@property --_w {
  syntax: '<length>';
  inherits: true;
  initial-value: 100vw;
}

@property --_h {
  syntax: '<length>';
  inherits: true;
  initial-value: 100vh;
}

:root {
  --w: tan(atan2(var(--_w), 1px));
  --h: tan(atan2(var(--_h), 1px));
}

html, body {
	margin: 0;
  font-family: "Noto Sans JP", sans-serif;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
p {
  margin: 0;
}
a {
  color: inherit;
  text-decoration: none;
}


@media screen and (min-width: 769px) {
  html, body {
    font-size: calc((var(--w) / 1440) * 10px);
  }
  .sp {
    display: none!important;
  }
}
@media screen and (max-width: 768px) {
  html, body {
    font-size: calc((var(--w) / 375) * 10px);
  }
  .pc {
    display: none!important;
  }
}

/*------------
  common
------------*/

.container {
  position: relative;
  width: min(120.0rem, 1200px);
  margin: 0 auto;
}
.inner {
  position: relative;
  width: min(102.4rem, 1024px);
  margin: 0 auto;
}
.inter {
  font-family: "Inter", sans-serif;
}

@media screen and (max-width: 768px) {
  .container {
    width: 100%;
  }
  .inner {
    width: 100%;
  }
}

/*
  page-kv
------------*/

.page-kv {
  position: relative;
  height: min(30.0rem, 300px);
  .kv-bg {
    height: 100%;
    img { 
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .kv-ttl {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    text-align: center;
    font-size: min(3.7rem, 37px);
    font-weight: 600;
    color: #FFFFFF;
  }
}

@media screen and (max-width: 768px) {
  .page-kv {
    position: relative;
    height: min(20.0rem, 200px);
    .kv-ttl {
      width: 100%;
      font-size: min(2.3rem, 23px);
      font-weight: 600;
    }
  }
}


/*------------
  header
------------*/

.header {
  height: min(14.0rem, 140px);
  color: #FFFFFF;
  background: #000000;
  .container {
    height: 100%;
  }
  .header-wrapper {
    display: flex;
    align-items: center;
    height: 100%;
  }
  .header-logo {
    width: min(31.7rem, 317px);
  }
  .header-menu {
    display: flex;
    align-items: center;
    margin-left: auto;
  }
  .header-nav {
    ul {
      display: flex;
      list-style: none;
      li {
        position: relative;
        font-size: min(1.6rem, 16px);
        & + li {
          margin-left: min(5.1rem, 51px);
        }
      }
    }
  }
  .header-contact {
    width: min(20.0rem, 200px);
    margin-left: min(7.4rem, 74px);
    a {
      display: block;
      padding: min(1.0rem, 10px) 0;
      text-align: center;
      font-size: min(1.6rem, 16px);
      color: #000000;
      background: #FFFFFF;
      border: 2px solid #FFFFFF;
    }
  }
}

@media (hover: hover) {
  .header {
    .header-nav {
      ul {
        li:hover {
          &:before {
            content: '';
            position: absolute;
            bottom: max(-1.0rem, -10px);
            left: 0;
            width: 100%;
            height: 1px;
            background: #FFFFFF;
          }
        }
      }
    }
    .header-contact {
      a:hover {
        color: #FFFFFF;
        background: transparent;
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .header {
    height: min(5.0rem, 50px);
    .header-logo {
      width: min(18.5rem, 185px);
      margin-left: min(1.5rem, 15px);
    }
    .header-trigger {
      position: relative;
      width: min(2.2rem, 22px);
      height: min(1.6rem, 16px);
      margin: 0 min(2.6rem, 26px) 0 auto;
      cursor: pointer;
      span {
        position: absolute;
        width: 100%;
        height: 1px;
        background: #FFFFFF;
        &:nth-of-type(1) {
          top: 0;
        }
        &:nth-of-type(2) {
          top: 0;
          bottom: 0;
          margin: auto;
        }
        &:nth-of-type(3) {
          bottom: 0;
        }
      }
      &._open {
        span {
          &:nth-of-type(1) {
            bottom: 0;
            margin: auto;
            transform: rotate(45deg);
          }
          &:nth-of-type(2) {
            opacity: 0;
          }
          &:nth-of-type(3) {
            top: 0;
            margin: auto;
            transform: rotate(-45deg);
          }
        }
      }
    }
    .header-menu {
      overflow: hidden;
      flex-direction: column;
      position: absolute;
      z-index: 999;
      top: 100%;
      left: 0;
      width: 100%;
      height: 0;
      background: #000000;
      transition: height .5s;
    }
    .header-nav {
      width: min(26.0rem, 260px);
      margin: 0 auto;
      padding-top: min(5.0rem, 50px);
      ul {
        display: block;
        border-bottom: 1px solid #FFFFFF;
        li {
          position: relative;
          font-size: min(1.6rem, 16px);
          border-top: 1px solid #FFFFFF;
          & + li {
            margin: 0;
          }
          a {
            display: block;
            padding: min(2.4rem, 24px) 0;
          }
        }
      }
    }
    .header-contact {
      width: min(26.0rem, 260px);
      margin: 0;
      padding: min(10.5rem, 105px) 0;
      a {
        text-align: center;
        font-size: min(1.8rem, 18px);
        font-weight: 600;
        color: #000000;
        background: #FFFFFF;
      }
    }
  }
}


/*------------
  footer
------------*/

.footer {
  padding: min(4.0rem, 40px) 0;
  color: #FFFFFF;
  background: #000000;
  .footer-menu {
    display: flex;
    align-items: center;
    .menu-logo {
      width: min(29.6rem, 296px);
    }
    .menu-nav {
      margin-left: min(8.4rem, 84px);
      ul {
        display: flex;
        li {
          position: relative;
          font-size: min(1.4rem, 14px);
          & + li {
            margin-left: min(4.1rem, 41px);
          }
        }
      }
    }
    .menu-contact {
      width: min(20.0rem, 200px);
      margin-left: auto;
      a {
        display: block;
        padding: min(1.0rem, 10px) 0;
        text-align: center;
        font-size: min(1.6rem, 16px);
        color: #000000;
        background: #FFFFFF;
        border: 2px solid #FFFFFF;
      }
    }
  }
  .footer-cright {
    margin-top: min(6.2rem, 62px);
    text-align: center;
    font-size: min(1.2rem, 12px);
  }
}

@media (hover: hover) {
  .footer {
    .footer-menu {
      .menu-contact {
        a:hover {
          color: #FFFFFF;
          background: transparent;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .footer {
    padding: min(3.6rem, 36px) 0;
    .footer-menu {
      display: block;
      .menu-logo {
        width: min(26.7rem, 267px);
        margin: 0 auto;
      }
      .menu-nav {
        display: none;
      }
      .menu-contact {
        display: none;
      }
    }
    .footer-cright {
      margin-top: min(2.3rem, 23px);
    }
  }
}


/*------------
  sec-contact
------------*/

.sec-contact {
  padding: min(7.4rem, 74px) 0 min(6.1rem, 61px);
  text-align: center;
  background: #E9E9E9;
  .contact-text {
    font-weight: 400;
    p {
      font-size: min(3.0rem, 30px);
      font-weight: 600;
    }
    span {
      display: block;
      margin-top: min(2.7rem, 27px);
      font-size: min(1.8rem, 18px);
    }
  }
  .contact-btn {
    margin-top: min(3.6rem, 36px);
    text-align: center;
    a {
      display: inline-block;
      position: relative;
      width: min(34.2rem, 342px);
      padding: min(1.7rem, 17px) 0;
      font-size: min(2.1rem, 21px);
      font-weight: 600;
      background: #FFFFFF;
      border: 1px solid #000000;
      border-radius: min(5.0rem, 50px);
      &:before {
        content: '→';
        position: absolute;
        top: 50%;
        right: min(1.5rem, 15px);
        transform: translateY(-50%);
      }
    }
  }
}

@media (hover: hover) {
  .sec-contact {
    .contact-btn {
      a:hover {
        color: #FFFFFF;
        background: #000000;
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .sec-contact {
    padding: min(5.1rem, 51px) 0 min(5.5rem, 55px);
    .contact-text {
      p {
        font-size: min(2.6rem, 26px);
      }
      span {
        margin-top: min(2.4rem, 24px);
        font-size: min(1.4rem, 14px);
        line-height: min(2.4rem, 24px);
      }
    }
    .contact-btn {
      margin-top: min(3.4rem, 34px);
      a {
        width: min(29.0rem, 290px);
        font-size: min(1.9rem, 19px);
      }
    }
  }
}


/*------------
  index
------------*/

/*
  index-mv 
------------*/

#index-mv {
  overflow: hidden;
  position: relative;
  height: min(60.0rem, 600px);
  .mv-swiper {
    height: 100%;
    .swiper-slide {
      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }
    .swiper-pagination {
      bottom: min(2.0rem, 20px);
    }
    .swiper-pagination-bullet {
      width: min(1.2rem, 12px);
      height: min(1.2rem, 12px);
      margin: 0 min(0.5rem, 5px);
      background: transparent;
      border: 2px solid #FFFFFF;
    }
    .swiper-pagination-bullet-active {
      background: #FFFFFF;
    }
  }
  .mv-content {
    position: absolute;
    z-index: 99;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(79.1rem, 791px);
  }
}

@media screen and (max-width: 768px) {
  #index-mv {
    height: min(50.0rem, 500px);
    .mv-content {
      width: min(31.8rem, 318px);
    }
  }
}


/*
  index-activity
------------*/

#index-activity {
  margin-top: min(9.2rem, 92px);
  h2 {
    text-align: center;
    font-size: min(3.7rem, 37px);
    font-weight: 600;
  }
  .activity-content {
    padding: min(8.0rem, 80px) 0;
    & + .activity-content {
      border-top: 1px solid #C3C3C3;
    }
    .content-wrapper {
      display: flex;
    }
    .content-detail {
      width: 100%;
      margin-right: min(3.9rem, 39px);
      .detail-ttl {
        display: flex;
        align-items: center;
        span {
          padding: min(1.0rem, 10px) min(1.6rem, 16px);
          font-size: min(1.5rem, 15px);
          font-weight: 400;
          color: #FFFFFF;
        }
        h3 {
          margin-left: min(1.5rem, 15px);
          font-size: min(3.1rem, 31px);
          font-weight: 600;
        }
      }
      .detail-sub {
        margin: min(2.4rem, 24px) 0;
        font-size: min(1.8rem, 18px);
        font-weight: 400;
      }
      .detail-text {
        font-size: min(1.6rem, 16px);
        font-weight: 400;
        line-height: min(2.6rem, 26px);
      }
      .detail-list {
        margin-top: min(1.6rem, 16px);
        font-size: min(1.6rem, 16px);
        font-weight: 400;
        list-style: none;
        li {
          position: relative;
          &:before {
            content: '●';
            position: relative;
            top: -50%;
            margin-right: min(0.5rem, 5px);
            font-size: min(1.0rem, 10px);
            line-height: min(2.6rem, 26px);
          }
        }
      }
    }
    .content-image {
      flex-shrink: 0;
      width: min(43.0rem, 430px);
    }
    .content-more {
      margin-top: min(7.0rem, 70px);
      text-align: center;
      a {
        display: inline-block;
        position: relative;
        width: min(18.6rem, 186px);
        padding: min(1.2rem, 12px);
        font-size: min(1.5rem, 15px);
        background: #E9E9E9;
        border: 1px solid #000000;
        border-radius: min(5.0rem, 50px);
        &:before {
          content: '→';
          position: absolute;
          top: 50%;
          right: min(1.5rem, 15px);
          transform: translateY(-50%);
        }
      }
    }
    &._training {
      .content-detail {
        .detail-ttl {
          span {
            background: #4C5D9F;
          }
          h3 {
            color: #4C5D9F;
          }
        }
        .detail-sub {
          color: #4C5D9F;
        }
        .detail-list {
          li {
            &:before {
              color: #4C5D9F;
            }
          }
        }
      }
    }
    &._device {
      .content-detail {
        .detail-ttl {
          span {
            background: #868885;
          }
          h3 {
            color: #868885;
          }
        }
        .detail-sub {
          color: #868885;
        }
        .detail-list {
          li {
            &:before {
              color: #868885;
            }
          }
        }
      }
    }
    &._equipment {
      .content-detail {
        .detail-ttl {
          span {
            background: #484C24;
          }
          h3 {
            color: #484C24;
          }
        }
        .detail-sub {
          color: #484C24;
        }
        .detail-list {
          li {
            &:before {
              color: #484C24;
            }
          }
        }
      }
    }
  }
}

@media (hover: hover) {
  #index-activity {
    .activity-content {
      .content-more {
        a:hover {
          color: #FFFFFF;
          background: #464646;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  #index-activity {
    margin-top: min(5.2rem, 52px);
    h2 {
      font-size: min(2.5rem, 25px);
    }
    .activity-content {
      padding: min(6.4rem, 64px) min(1.5rem, 15px);
      .content-wrapper {
        display: block;
      }
      .content-detail {
        margin-right: 0;
        .detail-ttl {
          display: block;
          text-align: center;
          span {
            display: block;
            width: 100%;
          }
          h3 {
            margin: min(1.8rem, 18px) 0 min(1.2rem, 12px);
            font-size: min(3.0rem, 30px);
          }
        }
        .detail-sub {
          margin: 0 auto min(1.5rem, 15px);
          text-align: center;
          font-size: min(1.6rem, 16px);
          line-height: min(2.2rem, 22px);
        }
        .detail-text {
          font-size: min(1.4rem, 14px);
          line-height: min(2.4rem, 24px);
        }
        .detail-list {
          margin-top: min(1.5rem, 15px);
          font-size: min(1.4rem, 14px);
          line-height: min(2.4rem, 24px);
        }
      }
      .content-image {
        width: 100%;
        margin-top: min(3.1rem, 31px);
      }
      .content-more {
        margin-top: min(4.0rem, 40px);
        a {
          position: relative;
          width: min(32.6rem, 326px);
          padding: min(1.2rem, 12px);
        }
      }
    }
  }
}


/*------------
  company
------------*/

#company {
  margin: min(12.0rem, 120px) 0 min(11.6rem, 116px);
  .company-table {
    width: 100%;
    border-top: 1px solid #231815;
    border-bottom: 1px solid #231815;
    tr {
      text-align: left;
      & + tr {
        border-top: 1px dotted #231815;
      }
    }
    th {
      width: min(16.4rem, 164px);
      padding: min(2.3rem, 23px) 0;
      font-size: min(1.6rem, 16px);
      font-weight: 400;
      line-height: min(2.6rem, 26px);
    }
    td {
      width: calc(100% - min(16.4rem, 164px));
      padding: min(2.3rem, 23px) 0;
      font-size: min(1.6rem, 16px);
      font-weight: 400;
      line-height: min(2.6rem, 26px);
    }
  }
  .company-caution {
    margin-top: min(3.1rem, 31px);
    font-size: min(1.2rem, 12px);
    font-weight: 400;
    line-height: min(2.0rem, 20px);
  }
}

@media screen and (max-width: 768px) {
  #company {
    margin: min(5.5rem, 55px) 0;
    padding: 0 min(1.5rem, 15px);
    .company-table {
      th {
        width: min(10.6rem, 106px);
        padding: min(1.6rem, 16px) 0;
        vertical-align: middle;
        font-size: min(1.4rem, 14px);
        line-height: min(2.0rem, 20px);
      }
      td {
        width: calc(100% - min(10.6rem, 106px));
        padding: min(1.6rem, 16px) 0;
        font-size: min(1.4rem, 14px);
        line-height: min(2.0rem, 20px);
      }
    }
    .company-caution {
      margin: min(2.9rem, 29px) auto 0;
    }
  }
}


/*------------
  activity
------------*/

#activity {
  .activity-head {
    margin-bottom: min(1.7rem, 17px);
    padding: min(3.2rem, 32px) 0;
    text-align: center;
    font-size: min(1.8rem, 18px);
    font-weight: 400;
    line-height: min(3.0rem, 30px);
    color: #FFFFFF;
    background: #000000;
  }
  .activity-content {
    padding: min(10.1rem, 101px) 0;
    & + .activity-content {
      border-top: 1px solid #C3C3C3;
    }
    .content-banner {
      .banner-label {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: min(11.0rem, 110px);
        text-align: center;
        font-size: min(1.8rem, 18px);
        font-weight: 400;
        line-height: min(3.0rem, 30px);
        color: #FFFFFF;
      }
    }
    .content-detail {
      margin: min(7.0rem, 70px) auto min(4.5rem, 45px);
      .detail-country {
        display: flex;
        align-items: center;
        span {
          width: min(5.0rem, 50px);
        }
        p {
          margin-left: min(1.4rem, 14px);
          font-size: min(1.5rem, 15px);
          font-weight: 600;
          color: #959596;
        }
      }
      .detail-ttl {
        margin: min(2.0rem, 20px) 0;
        font-size: min(2.5rem, 25px);
        font-weight: 600;
        line-height: min(3.9rem, 39px);
      }
      .detail-text {
        font-size: min(1.6rem, 16px);
        font-weight: 400;
        line-height: min(2.6rem, 26px);
      }
      .detail-list {
        margin: min(2.0rem, 20px) 0;
        font-size: min(1.6rem, 16px);
        font-weight: 400;
        line-height: min(2.6rem, 26px);
        list-style: none;
        li {
          position: relative;
          &:before {
            content: '●';
            position: relative;
            top: -50%;
            margin-right: min(0.5rem, 5px);
            font-size: min(1.0rem, 10px);
            line-height: min(2.6rem, 26px);
          }
        }
      }
    }
    .content-gallery {
      display: flex;
      justify-content: space-between;
      .gallery-item {
        width: min(24.7rem, 247px);
      }
    }
    .content-link {
      margin-top: min(7.0rem, 70px);
      text-align: center;
      a {
        display: inline-block;
        position: relative;
        width: min(58.2rem, 582px);
        padding: min(1.7rem, 17px) 0;
        font-size: min(2.1rem, 21px);
        font-weight: 600;
        background: #FFFFFF;
        border: 1px solid #000000;
        border-radius: min(5.0rem, 50px);
        &:before {
          content: '→';
          position: absolute;
          top: 50%;
          right: min(1.5rem, 15px);
          transform: translateY(-50%);
        }
      }
    }
    &._operator {
      .content-banner {
        .banner-label {
          background: #4C5D9F;
        }
      }
      .content-detail {
        .detail-ttl {
          color: #4C5D9F;
        }
        .detail-list {
          color: #4C5D9F;
        }
      }
    }
    &._gatorz {
      .content-banner {
        .banner-label {
          background: #878986;
        }
      }
      .content-detail {
        .detail-ttl {
          color: #878986;
        }
        .detail-list {
          color: #878986;
        }
      }
    }
    &._equipment {
      .content-banner {
        .banner-label {
          background: #484C24;
        }
      }
      .content-detail {
        .detail-ttl {
          color: #484C24;
        }
        .detail-list {
          color: #484C24;
        }
      }
    }
  }
}

@media (hover: hover) {
  #activity {
    .activity-content {
      .content-link {
        a:hover {
          color: #FFFFFF;
          background: #000000;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  #activity {
    .activity-head {
      margin-bottom: 0;
      padding: min(2.0rem, 20px) 0;
      font-size: min(1.4rem, 14px);
      line-height: min(2.1rem, 21px);
    }
    .activity-content {
      padding: min(6.5rem, 65px) min(1.5rem, 15px);
      .content-banner {
        .banner-image {
          height: min(11.0rem, 110px);
          h2 {
            height: 100%;
          }
          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
          }
        }
        .banner-label {
          font-size: min(1.4rem, 14px);
          line-height: min(2.0rem, 20px);
        }
      }
      .content-detail {
        margin: min(3.0rem, 30px) auto;
        .detail-ttl {
          font-size: min(1.9rem, 19px);
          line-height: min(3.0rem, 30px);
        }
        .detail-text {
          font-size: min(1.4rem, 14px);
          line-height: min(2.4rem, 24px);
        }
        .detail-list {
          font-size: min(1.4rem, 14px);
          line-height: min(2.2rem, 22px);
          list-style: none;
          li {
            position: relative;
            &:before {
              content: '●';
              position: relative;
              top: -50%;
              margin-right: min(0.5rem, 5px);
              font-size: min(1.0rem, 10px);
              line-height: min(2.2rem, 22px);
            }
          }
        }
      }
      .content-gallery {
        display: flex;
        flex-wrap: wrap;
        .gallery-item {
          width: calc((100% - min(1.0rem, 10px)) / 2);
          &:nth-of-type(n + 3) {
            margin-top: min(1.0rem, 10px);
          }
        }
      }
      .content-link {
        margin-top: min(4.0rem, 40px);
        a {
          width: min(32.5rem, 325px);
          font-size: min(1.5rem, 15px);
          line-height: min(2.0rem, 20px);
        }
      }
    }
  }
}


/*------------
  contact
------------*/

#contact {
  margin: min(6.9rem, 69px) auto min(12.6rem, 126px);
  .contact-text {
    text-align: center;
    font-size: min(1.6rem, 16px);
    font-weight: 400;
    line-height: min(2.8rem, 28px);
  }
  .contact-form {
    width: min(75.0rem, 750px);
    margin: min(5.5rem, 55px) auto 0;
    .form-table {
      width: 100%;
      tr {
        display: block;
        & + tr {
          margin-top: min(4.2rem, 42px);
        }
      }
      th {
        display: flex;
        align-items: center;
        font-size: min(1.8rem, 18px);
        font-weight: 600;
        span {
          margin-left: min(1.2rem, 12px);
          padding: min(0.3rem, 3px) min(1.0rem, 10px);
          font-size: min(1.5rem, 15px);
          font-weight: 400;
          color: #FFFFFF;
          background: #C3C3C3;
          &._required {
            background: #B8272D;
          }
        }
      }
      td {
        display: block;
        margin-top: min(1.5rem, 15px);
        font-size: min(1.8rem, 18px);
        input[type="text"] {
          width: 100%;
          padding: min(1.3rem, 13px);
          font-size: min(1.8rem, 18px);
          font-weight: 400;
          border: 1px solid #C2C2C2;
          box-sizing: border-box;
        }
        input[type="email"] {
          width: 100%;
          padding: min(1.3rem, 13px);
          font-size: min(1.8rem, 18px);
          font-weight: 400;
          border: 1px solid #C2C2C2;
          box-sizing: border-box;
        }
        textarea {
          width: 100%;
          padding: min(1.3rem, 13px);
          font-size: min(1.8rem, 18px);
          font-weight: 400;
          resize: none;
          border: 1px solid #C2C2C2;
          box-sizing: border-box;
        }
        &._short {
          display: flex;
          align-items: center;
          input[type="text"] {
            width: min(18.0rem, 180px);
          }
          .input-search {
            margin-left: min(1.0rem, 10px);
            padding: min(1.3rem, 13px);
            font-size: min(1.8rem, 18px);
            font-weight: 300;
            color: #000000;
            background: #C3C3C3;
            cursor: pointer;
          }
        }
        &._check {
          display: flex;
          justify-content: space-between;
          label {
            width: min(24.2rem, 242px);
            padding: min(1.0rem, 10px);
            border: 1px solid #C3C3C3;
            box-sizing: border-box;
            input {
              display: none;
              &:checked {
                & + span {
                  &:after {
                    display: block;
                  }
                }
              }
            }
            span {
              position: relative;
              padding-left: min(3.2rem, 32px);
              font-size: min(1.6rem, 16px);
              font-weight: 400;
              &:before {
                content: '';
                position: absolute;
                top: 50%;
                left: 0;
                transform: translateY(-50%);
                width: min(2.4rem, 24px);
                height: min(2.4rem, 24px);
                border: 1px solid #C3C3C3;
              }
              &:after {
                content: '';
                display: none;
                position: absolute;
                top: 50%;
                left: min(0.4rem, 4px);
                transform: translateY(-50%);
                width: min(1.6rem, 16px);
                height: min(1.6rem, 16px);
                background: #C3C3C3;
              }
            }
          }
        }
      }
    }
    .form-caution {
      margin-top: min(4.5rem, 45px);
      font-size: min(1.6rem, 16px);
      line-height: min(2.5rem, 25px);
      color: #B8272D;
      p {
        font-weight: 600;
      }
      span {
        font-weight: 600;
      }
    }
    .form-submit {
      width: min(38.2rem, 382px);
      margin: min(11.4rem, 114px) auto 0;
      text-align: center;
      input {
        position: relative;
        width: 100%;
        padding: min(1.7rem, 17px) 0;
        font-size: min(2.1rem, 21px);
        font-weight: 600;
        background: #FFFFFF;
        border: 1px solid #000000;
        border-radius: min(5.0rem, 50px);
      }
    }
    .form-privacy {
      margin-top: min(4.8rem, 48px);
      text-align: center;
      font-size: min(1.8rem, 18px);
      font-weight: 600;
      a {
        text-decoration: underline;
      }
    }
  }
}

@media (hover: hover) {
  #contact {
    .contact-form {
      .form-submit {
        input:hover {
          color: #FFFFFF;
          background: #000000;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  #contact {
    margin: min(5.4rem, 54px) auto min(6.6rem, 66px);
    padding: 0 min(1.5rem, 15px);
    .contact-text {
      font-size: min(1.4rem, 14px);
      line-height: min(2.1rem, 21px);
    }
    .contact-form {
      width: 100%;
      margin: min(4.0rem, 40px) auto 0;
      .form-table {
        width: 100%;
        tr {
          display: block;
          & + tr {
            margin-top: min(2.5rem, 25px);
          }
        }
        th {
          font-size: min(1.5rem, 15px);
          span {
            font-size: min(1.3rem, 13px);
          }
        }
        td {
          font-size: min(1.5rem, 15px);
          input[type="text"] {
            font-size: min(1.5rem, 15px);
          }
          input[type="email"] {
            font-size: min(1.5rem, 15px);
          }
          textarea {
            font-size: min(1.5rem, 15px);
          }
          &._short {
            input[type="text"] {
              width: 100%;
            }
            .input-search {
              flex-shrink: 0;
              font-size: min(1.4rem, 14px);
            }
          }
          &._check {
            display: block;
            label {
              display: block;
              width: 100%;
              span {
                padding-left: min(3.2rem, 32px);
                font-size: min(1.5rem, 15px);
                &:before {
                  width: min(2.1rem, 21px);
                  height: min(2.1rem, 21px);
                }
              }
            }
          }
        }
      }
      .form-caution {
        margin-top: min(4.5rem, 45px);
        font-size: min(1.6rem, 16px);
        line-height: min(2.5rem, 25px);
        color: #B8272D;
        span {
          font-weight: 400;
        }
      }
      .form-submit {
        width: min(29.0rem, 290px);
        margin: min(11.4rem, 114px) auto 0;
        text-align: center;
        input {
          position: relative;
          width: 100%;
          padding: min(1.7rem, 17px) 0;
          font-size: min(2.1rem, 21px);
          font-weight: 600;
          background: #FFFFFF;
          border: 1px solid #000000;
          border-radius: min(5.0rem, 50px);
        }
      }
      .form-privacy {
        margin-top: min(4.8rem, 48px);
        text-align: center;
        font-size: min(1.8rem, 18px);
        font-weight: 400;
        a {
          text-decoration: underline;
        }
      }
    }
  }
}


/*
  thanks
------------*/

#thanks {
  padding: min(12.9rem, 129px) 0 min(12.6rem, 126px);
  h1 {
    text-align: center;
    font-size: min(3.1rem, 31px);
    font-weight: 400;
    span {
      padding-bottom: min(0.5rem, 5px);
      border-bottom: 2px solid #000000;
    }
  }
  .thanks-message {
    margin-top: min(5.5rem, 55px);
    text-align: center;
    font-size: min(1.6rem, 16px);
    font-weight: 400;
    line-height: min(2.6rem, 26px);
  }
  .thanks-contact {
    width: min(60.0rem, 600px);
    margin: min(5.3rem, 53px) auto 0;
    padding: min(3.7rem, 37px) min(9.9rem, 99px);
    font-size: min(1.6rem, 16px);
    font-weight: 400;
    line-height: min(2.6rem, 26px);
    border: 1px solid #C3C3C3;
    h2 {
      margin-bottom: min(1.6rem, 16px);
      text-align: center;
      font-weight: 400;
    }
  }
}

@media screen and (max-width: 768px) {
  #thanks {
    padding: min(6.0rem, 60px) min(1.5rem, 15px) min(4.0rem, 40px);
    h1 {
      font-size: min(2.5rem, 25px);
    }
    .thanks-message {
      margin-top: min(4.5rem, 45px);
      text-align: left;
      font-size: min(1.4rem, 14px);
      line-height: min(2.4rem, 24px);
    }
    .thanks-contact {
      width: 100%;
      margin: min(2.4rem, 24px) auto 0;
      padding: min(2.7rem, 27px) min(2.5rem, 25px);
      font-size: min(1.3rem, 13px);
      line-height: min(2.2rem, 22px);
      h2 {
        margin-bottom: min(0.5rem, 5px);
        font-size: min(1.5rem, 15px);
        line-height: min(2.6rem, 26px);
      }
    }
  }
}


/*------------
  privacy
------------*/

#privacy {
  margin: min(13.8rem, 138px) 0;
  font-size: min(1.8rem, 18px);
  font-weight: 400;
  line-height: min(3.0rem, 30px);
  h1 {
    margin-bottom: min(6.7rem, 67px);
    text-align: center;
    font-size: min(3.7rem, 37px);
    font-weight: 600;
  }
  .privacy-box {
    & + .privacy-box {
      margin-top: min(9.0rem, 90px);
    }
    .box-ttl {
      margin-bottom: min(3.0rem, 30px);
    }
  }
}

@media screen and (max-width: 768px) {
  #privacy {
    margin: min(6.8rem, 68px) 0;
    padding: 0 min(1.5rem, 15px);
    font-size: min(1.4rem, 14px);
    line-height: min(2.4rem, 24px);
    h1 {
      margin-bottom: min(5.6rem, 56px);
      font-size: min(2.3rem, 23px);
    }
    .privacy-box {
      & + .privacy-box {
        margin-top: min(7.2rem, 72px);
      }
      .box-ttl {
        margin-bottom: min(2.4rem, 24px);
      }
    }
  }
}