@charset "UTF-8";
/* CSS Document */
@media screen and (max-width: 768px) {
  /*---------------------------------------------------------------------
	ベース
---------------------------------------------------------------------*/
  body {
    font-size: 1.4rem;
  }
  body.active {
    height: 100%;
    overflow: hidden;
  }
  section {
    padding-top: 110px;
  }
  .pc-none {
    display: block !important;
  }
  .sp-none {
    display: none !important;
  }
  /* 共通 */
  /*h2*/
  .section-title {
    font-size: 1.8rem;
    margin-bottom: 16px;
  }
  /*h3*/
  .box-title {
    font-size: 2.4rem;
    margin-bottom: 16px;
  }
}
@media screen and (max-width: 900px) {
  .section-entitle span {
    font-size: clamp(5.1rem, 13.5vw, 12.2rem);
  }
}
@media screen and (max-width: 768px) {
  .section-entitle {
    position: absolute;
    top: 0;
    z-index: 2;
  }
  .section-entitle span {
    -webkit-transform: translateY(-65%);
    transform: translateY(-65%);
  }
  .section-entitle span.navy {
    background: linear-gradient(var(--navy) 60%, transparent 40%);
    -webkit-text-fill-color: transparent;
    -webkit-background-clip: text;
    padding-right: 10px;
  }
  .section-entitle span.fff {
    background: linear-gradient(transparent 65%, #ffffff 35%);
    -webkit-text-fill-color: transparent;
    -webkit-background-clip: text;
  }
  .section-entitle span.gray {
    background: linear-gradient(transparent 65%, var(--gray) 35%);
    -webkit-text-fill-color: transparent;
    -webkit-background-clip: text;
  }
  .section-entitle span.bottom {
    left: 5px;
  }
  .business .section-entitle, .flow .section-entitle, .contact .section-entitle {
    left: 2.78vw;
  }
  .message .slidein span, .advantage .slidein span, .company .slidein span {
    right: 5.3vw;
  }
  .message .slidein span.top, .advantage .slidein span.top, .company .slidein span.top {
    right: calc(5.3vw + 30px);
  }
  .message .slidein.action span.top, .advantage .slidein.action span.top, .company .slidein.action span.top {
    right: calc(5.3vw - 5px);
  }
  .slidein.action span.top {
    left: 0;
  }
}
/*---------------------------------------------------------------------
	header
---------------------------------------------------------------------*/
@media screen and (max-width: 980px) {
  .header-logo {
    width: 20.4vw;
  }
  .header-logo img {
    width: 120px;
  }
  .header nav ul li a {
    font-size: 1.4rem;
  }
  .contact-btn {
    width: 110px;
    height: 110px;
  }
  .contact-btn span {
    grid-row-gap: 10px;
    padding-bottom: 20px;
    font-size: 1.4rem;
  }
  .contact-btn span::before {
    width: 40px;
    height: 32px;
  }
}
@media screen and (max-width: 768px) {
  .header {
    width: 100%;
    height: 70px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
    background-color: #ffffff;
  }
  .header-inner {
    height: 70px;
  }
  .header-logo {
    width: auto
  }
  .header-logo img {
    width: 160px;
  }
  .header-logo a {
    width: auto;
    height: 100%;
    padding: 0 5vw;
  }
  .header #g-nav {
    position: fixed;
    z-index: 999;
    top: 70px;
    right: -100vw;
    width: 100vw;
    height: calc(100lvh - 70px);
    background-color: var(--navy);
    transition: 0.3s cubic-bezier(0.6, 0, 0.2, 1);
  }
  .header #g-nav.active {
    right: 0;
  }
  .header #g-nav ul {
    grid-row-gap: 40px;
    position: absolute;
    z-index: 999;
    top: 50%;
    left: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%);
    transform: translateY(-50%) translateX(-50%);
    width: 100%;
    padding-left: 40px;
    padding-top: 80px;
    padding-bottom: 80px;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    overflow-y: scroll;
    /*IE(Internet Explorer)・Microsoft Edgeへの対応*/
    -ms-overflow-style: none;
    /*Firefoxへの対応*/
    scrollbar-width: none;
  }
  /*Google Chrome、Safariへの対応*/
  .header #g-nav ul::-webkit-scrollbar {
    display: none;
  }
  .header #g-nav ul.g-nav-ul li a {
    font-size: clamp(1rem, 5.3vw, 2.0rem);
    color: #ffffff;
    font-weight: 700;
    position: relative;
  }
  .header .header-tel {
    display: none;
  }
  /*========= ボタンのためのCSS ===============*/
  .openbtn {
    position: fixed;
    z-index: 1000;
    cursor: pointer;
    width: 70px;
    height: 70px;
    top: 0;
    right: 0;
    transition: transform 0.3s ease-out;
    background-color: var(--navy);
  }
  .openbtn span {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%);
    transform: translateY(-50%) translateX(-50%);
    height: 2px;
    width: 40px;
    background-color: #ffffff;
    transition: all 0.3s ease-out;
  }
  .openbtn span:nth-of-type(1) {
    top: calc(50% - 4px);
  }
  .openbtn span:nth-of-type(2) {
    top: calc(50% + 4px);
  }
  .openbtn.active span:nth-of-type(1) {
    top: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%) rotate(-25deg);
    transform: translateY(-50%) translateX(-50%) rotate(-25deg);
  }
  .openbtn.active span:nth-of-type(2) {
    top: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%) rotate(25deg);
    transform: translateY(-50%) translateX(-50%) rotate(25deg);
  }
  .contact-btn {
    display: none;
    position: fixed;
    left: 0;
    bottom: 0;
    width: calc(100% - 60px);
    height: 60px;
    z-index: 9;
  }
  .contact-btn span {
    justify-content: center;
    flex-direction: row;
    grid-row-gap: 0;
    column-gap: 16px;
    height: 100%;
    padding-bottom: 0;
    font-size: 2.0rem;
  }
  .contact-btn span::before {
    width: 37px;
    height: 30px;
  }
  .contact-btn:hover {
    background-color: var(--gold);
  }
  .contact-btn.active, .page_top.active {
    opacity: 0;
    pointer-events: none;
  }
  .contact-btn.pc {
    display: none !important;
  }
}
/*---------------------------------------------------------------------
	MV
---------------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  .mv {
    margin-top: 70px;
  }
  .mv::after {
    display: none;
  }
  .mv-inner {
    width: 93.33%;
  }
  .swiper-container {
    position: relative;
  }
  .swiper-pagination {
    right: 100% !important;
    left: auto !important;
    width: fit-content !important;
    top: 0 !important;
  }
  .swiper-pagination-bullet {
    width: 4px;
    height: 24.6%;
    max-height: 64px;
    background-color: var(--gray);
    border-radius: 0;
    opacity: 1;
  }
  .swiper-pagination-bullet-active {
    background-color: var(--gold);
  }
  /* メインリード */
  .main-lead {
    position: relative;
    -webkit-transform: translateY(0);
    transform: translateY(0);
    max-width: 500px;
    width: 81.3vw;
    margin: 0 auto;
    padding: calc(24px + 7.2vw) 0 24px;
    left: -3.33%;
  }
  .main-lead-item.opacity {
    bottom: calc(100% - calc(24px + 7.2vw));
  }
}
/*---------------------------------------------------------------------
	MESSAGE
---------------------------------------------------------------------*/
@media screen and (max-width: 900px) {
  .message .img-box {
    position: static;
  }
  .message-box {
    margin-top: 220px;
  }
  .message-box {
    width: 93.33%;
    padding: 40px 0 0;
    margin-top: 220px;
  }
  .message-box-inner {
    width: 86.3%;
  }
  .message .img1 {
    max-width: 385px;
    max-height: 385px;
    width: 42.78vw;
  }
  .message .img2 {
    max-width: 670px;
    max-height: 670px;
    width: 74.4vw;
    margin-top: -16vw;
    margin-left: 5.56vw;
  }
}
@media screen and (max-width: 768px) {
  .message {
    padding-top: 50px;
  }
  .message::before {
    content: "";
    display: block;
    width: 100%;
    height: 106.67vw;
    max-height: 500px;
    position: absolute;
    left: 0;
    bottom: 0;
    background-color: #ffffff;
  }
  .message-box {
    margin-top: 110px;
  }
  .message-box .box-title {
    margin-bottom: 30px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    font-size: 2.8rem;
    margin-bottom: 30px;
  }
  .message-box .box-txt {
    margin-bottom: 40px;
  }
  .message-box .ceo-name {
    column-gap: 10px;
  }
}
/*---------------------------------------------------------------------
	BUSINESS
---------------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  .business-box {
    width: 87.2%;
    padding: 40px 0;
  }
  .business-box-inner {
    width: 85.6%;
  }
  .business .section-txt {
    margin-bottom: 24px;
  }
  .business-box__inner-box {
    column-gap: 0;
    flex-direction: column;
    grid-row-gap: 40px;
    max-width: 500px;
    margin: 0 auto;
  }
  .business-box__inner-box-item {
    width: 100%;
  }
  .business-box__inner-box-item .img-wrap {
    margin-bottom: 20px;
  }
}
/*---------------------------------------------------------------------
	ADVANTAGE
---------------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  .advantage-list {
    grid-row-gap: 16px;
  }
  .advantage-list-item {
    column-gap: 0;
    flex-direction: column;
  }
  .advantage-list-item.row-reverse .advantage-list-item__img {
    clip-path: polygon(0 0, 100% 0%, 100% 100%, 15% 100%);
  }
  .advantage-list-item .advantage-list-item__img {
    width: 100%;
  }
  .advantage-list-item .advantage-list-item__txt {
    padding: 40px 0 70px;
    width: 87.2%;
    margin: 0 auto;
  }
  .advantage-list-item.row-reverse .advantage-list-item__txt {
    padding: 60px 0 80px;
  }
  .advantage-list-item__txt .number {
    font-size: 6.0rem;
    line-height: 1.2;
  }
}
/*---------------------------------------------------------------------
	FLOW
---------------------------------------------------------------------*/
@media screen and (max-width: 1200px) {
  .flow .section-title {
    margin-left: clamp(30px, 2.5vw, 120px);
  }
}
@media screen and (max-width: 1000px) {
  .flow .section-title {
    margin-left: clamp(30px, 12.2vw, 120px);
  }
}
@media screen and (max-width: 900px) {
  .flow .h2-wrap {
    max-width: none;
    width: 100%;
    background-color: var(--navy);
    left: 0;
  }
  .flow .h2-wrap::before {
    display: none;
  }
  .flow .h2-wrap::after {
    display: none;
  }
  .flow-list-item {
    clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
    max-width: none;
  }
  .flow-list-item:nth-child(1) {
    margin-left: 0;
  }
  .flow-list-item:nth-child(2) {
    margin-left: 0;
  }
  .flow-list-item:nth-child(4) {
    margin-left: 0;
  }
  .flow-list-item:nth-child(5) {
    margin-left: 0;
  }
  .flow-list-item:nth-child(6) {
    margin-left: 0;
  }
}
@media screen and (max-width: 768px) {
  .flow .h2-wrap {
    min-height: 100px;
  }
  .flow .section-title {
    padding: 50px 0 40px;
    margin-left: 6.4vw;
  }
  .flow-list-item {
    clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
    height: 310px;
  }
  .flow-list-item:nth-child(6)::before {
    clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 0% 100%);
    left: -85%;
  }
  .flow-list-item__ttl {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 16px;
    grid-row-gap: 10px;
  }
  .flow-list-item__ttl span:not(.number) {
    font-size: 1.8rem;
  }
  .flow-list-item__ttl span.number {
    font-size: 4.0rem;
    margin-right: 0;
  }
  .flow-list-item__ttl .box-title {
    margin-bottom: 0;
    font-size: 2.0rem;
  }
  .flow-list-item .box-txt {
    margin-left: 0;
  }
  .flow-list-item__inner {
    width: 65.87%;
    padding: 20px 0 30px;
    left: 0;
  }
  /*---------------------------------------------------------------------
	COMPANY
---------------------------------------------------------------------*/
  @media screen and (max-width: 768px) {
    .company-content {
      width: 100%;
      height: auto;
      background-image: none;
      margin-top: -10.67vw;
    }
    .company-table {
      width: 93.33%;
      position: static;
      -webkit-transform: translateY(0);
      transform: translateY(0);
      padding: 40px 0;
      margin-left: auto;
    }
    .company-table table {
      width: 86.3%;
      margin: 0 auto;
    }
    .company-table table tr {
      padding: 25px 0;
      display: flex;
      flex-direction: column;
      grid-row-gap: 16px;
    }
    .company-table table tr th {
      width: 100%;
    }
  }
}
/*---------------------------------------------------------------------
	CONTACT
---------------------------------------------------------------------*/
@media screen and (max-width: 1200px) {
  .contact-inner {
    width: 85.6%;
  }
  .form dl {
    margin-bottom: 30px;
    flex-direction: column;
    grid-row-gap: 16px;
  }
  .form dl dd {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .contact .box-title {
    font-size: 2.0rem;
  }
  .contact-box {
    padding: 40px 0 60px;
    width: 100%;
  }
  .contact-tel {
    margin: 0 auto;
    margin-bottom: 24px;
    column-gap: 0;
    grid-row-gap: 16px;
    align-items: flex-start;
    width: 85.6%;
    flex-direction: column;
  }
  .contact-tel__txt .box-title {
    margin-bottom: 10px;
  }
  .contact-tel__btn {
    font-size: 3.2rem;
    letter-spacing: -0.02em;
    white-space: nowrap;
    pointer-events: auto;
    cursor: pointer;
  }
  .contact-tel__btn::before {
    width: 24px;
    height: 24px;
    margin-right: 4px;
  }
  /* フォーム */
  .form {
    padding: 40px 0;
  }
  .form-inner {
    width: 85.6%;
  }
  .form .box-title {
    margin-bottom: 30px;
    letter-spacing: 0.05em;
  }
  ::placeholder {
    font-size: 1.6rem;
  }
  .form dl dd input[type="text"], .form dl dd input[type="tel"], .form dl dd input[type="email"] {
    height: 50px;
    padding: 0 12px;
    width: calc(100% - 24px);
  }
  .required {
    font-size: 1.4rem;
    width: 50px;
    height: 20px;
  }
  .any {
    font-size: 1.4rem;
    width: 50px;
    height: 20px;
  }
  /* 名前 */
  .form dl dd.small {
    grid-row-gap: 16px;
  }
  .form dl dd.small input {
    font-size: 1.4rem;
  }
  .form dl dd.small .name-wrap {
    column-gap: 16px;
  }
  /* ラジオボタン */
  .input-item input[type="checkbox"], .privacy input[type="checkbox"], .input-item input[type="radio"] {
    padding-left: 28px;
  }
  .form dl dd.flex {
    column-gap: 0;
    flex-direction: column;
    grid-row-gap: 16px;
    align-items: flex-start;
  }
  .form dl dd p {
    margin-bottom: 10px;
    margin-top: 0;
  }
  .form textarea {
    padding: 10px;
    margin-bottom: 30px;
    width: calc(100% - 24px);
  }
  .form .policy {
    text-align: left;
    margin-bottom: 30px;
  }
  .form .policy input {
    margin-right: 2px;
  }
  .form .sp-left {
    text-align: left;
  }
  #submit-button {
    max-width: 350px;
    width: 100%;
    height: 60px;
    font-size: 1.8rem;
  }
}
/*---------------------------------------------------------------------
	プライバシーポリシー
---------------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  .privacy {
    padding-bottom: 30px;
  }
  .privacy-box {
    width: 87.2%;
    padding: 50px 0 40px;
  }
  .privacy-inner {
    width: 85.6%;
  }
  .privacy .section-title {
    color: var(--navy);
    font-size: 3.0rem;
  }
  .privacy-content__ttl {
    font-size: 2.0rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
  }
  .privacy-content__box > ul > li > ul {
    margin-left: 10px;
    margin-top: 4px;
  }
  .privacy .mt {
    margin-top: 5px;
  }
}
/*---------------------------------------------------------------------
	footer
---------------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  .footer {
    padding: 50px 0 90px;
  }
  .footer .footer-logo {
    width: 100px;
    margin-bottom: 40px;
  }
  .footer .company-name {
    font-size: 1.8rem;
    margin-bottom: 16px;
  }
  .footer address {
    margin-bottom: 30px;
  }
  /* ページトップボタン */
  .page_top {
    width: 60px;
    height: 60px;
  }
  .page_top img {
    width: 12px;
    height: 12px;
  }
}
@media screen and (max-width: 768px) {
  .company-table {
    -webkit-transform: translateY(1vw);
    transform: translateY(calc(1vw));
  }
  .company-table.action {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}