@charset "utf-8";

/*====================================================================================================
  HTML・BODY
====================================================================================================*/
:root {
	--header-height: 80px;
}


/*====================================================================================================
  BASE（WHOLE）
====================================================================================================*/
@media only screen and (min-width: 1200px) {
    a[href*="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
	}
}

@media only screen and (max-width: 820px) {
	.pc { display: none!important;}
	.sm { display: block!important;}
}

/*====================================================================================================
  HERO
====================================================================================================*/
@media only screen and (max-width: 1750px) {
  .hero::before {
    left: -80px;
  }
}
@media only screen and (max-width: 1440px) {
  .hero {
    padding-top: 60px;
  }
  .hero::before {
    left: -100px;
  }
}
@media only screen and (max-width: 853px) {
  .catch span {
    display: none;
  }
}
@media only screen and (max-width: 820px) {
  .hero {
    padding-top: 40px;
  }
  .catch {
    margin-top: 1rem;
  }
}


/*====================================================================================================
  HEADER
====================================================================================================*/
@media only screen and (max-width: 1200px) {
    #header {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) scale(1) !important;
        /* スクロール時のふわっとした動きが不要な場合は transition もリセット */
        transition: none !important;
    }
    #header .openbtn {
        display: block;
        position: relative;
        z-index: 10001;
        width: 50px;
        height: 50px;
        cursor: pointer;
    }
    #header .openbtn span {
        display: inline-block;
        transition: all .4s;
        position: absolute;
        width: 65%;  
        left: 17.5%; /* 中央配置用の計算値 */
        height: 2px;
        border-radius: 2px;
        background-color: var(--primary-color);
    }
    #header .openbtn span:nth-of-type(1) { top: 16px; }
    #header .openbtn span:nth-of-type(2) { top: 24px; }
    #header .openbtn span:nth-of-type(3) { top: 32px; }
    /* --- ボタンが active になった時の×印（78%まで伸ばす） --- */
    #header .openbtn.active span:nth-of-type(1) {
        top: 24px; 
        width: 78%;       
        left: 11%;        
        transform: rotate(-45deg);
    }
    #header .openbtn.active span:nth-of-type(2) { opacity: 0; }
    #header .openbtn.active span:nth-of-type(3) {
        top: 24px;         
        width: 78%;       
        left: 11%;        
        transform: rotate(45deg);
    }
    .header_nav {
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100vh;
        background: rgba(255, 255, 255, 0.98);
        z-index: 10000;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.5s ease, visibility 0.5s ease;
        display: flex !important;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        overflow-y: auto;
    }
    .header_nav.active {
        opacity: 1;
        visibility: visible;
    }
    ul.header_nav_list {
        flex-direction: column;
        text-align: center;
        padding-top: 120px;
    }
    ul.header_nav_list li { 
      width: 100%;
      flex-direction: column;
    }
    ul.header_nav_list li:last-child {
        width: 280px !important;
        margin-top: 1rem;
    }
    .header_logo_wrap {
        position: relative;
        z-index: 10001;
        margin-left: 10px;
    }
}

/*====================================================================================================
  HERO
====================================================================================================*/
/*** mainimg *******************************************************/
@media only screen and (max-width: 1200px) {
  .mainimg_wrap {
    width: 90%;
    margin-top: var(--header-height);
  }
  .side {
    display: none;
  }
}

/*====================================================================================================
  MAIN
====================================================================================================*/
/*** MAIN 共通 ********************************************************************/

/*** aboutus 私たちについて ****************************************************/
@media only screen and (max-width: 1024px) {

  #aboutus .section_inner {
    display: flex;
    flex-direction: column;
    grid-row-gap: 0;
  }
  .aboutus_wrap_left {
    flex-direction: row;
  }
  .aboutus_wrap_right {
    flex-direction: row;
  }
  .aboutus_wrap_left {
    flex-direction: column;
  }
.aboutus_image2 {
    width: 100%;
  }
  
  .aboutus_image3 {
    transform: none; /* 浮き上がりをリセット */
    width: 70%;      /* 必要に応じて調整 */
  }  
}
@media only screen and (max-width: 430px) {
  #aboutus {
    padding-bottom: 3rem;
  }
}

/*** service サービス ****************************************************/
@media only screen and (max-width: 1440px) {
  #service {
    margin-bottom: 0;
  }
  .service_image1 {
    margin-left: 16px;
  }
}
@media only screen and (max-width: 1024px) {
  .service_image1 {
    margin-left: 70px;
    transform: translateY(50px);
  }
}
@media only screen and (max-width: 430px) {
  #service .section_inner {
    display: block;
  }
  .service_wrap_right {
    flex-direction: column;
  }
  
  .service_wrap_left .come_wrap,
  .service_wrap_right .come_wrap {
    margin-inline: 1rem;
  }
  .service_image1 {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 90%;
    transform: translateY(-24px);
  }
  .service_image2 {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 90%;
    transform: translateY(-24px);
  }
}

/*** infromation 会社概要 ****************************************************/
@media only screen and (max-width: 430px) {
  #information::before {
    top: -90px;
  }
  .information_roof {
    height: 210px;
  }
}

/*====================================================================================================
  FOOTER
====================================================================================================*/
@media only screen and (max-width: 1200px) {
    #footer {
      background-size: 18% auto, 32% auto;
    }
  .footer_inner {
    display: block;
    text-align: center;
  }
  .footer_message {
        margin-bottom: 1rem;
        width: 100%;
        text-align: center;
    }
  .footer_left {
        width: 100%;           /* 横幅いっぱい使って中央寄せを有効に */
        margin-bottom: 1rem;   /* 下のメニューとの間隔 */
        display: flex;
        flex-direction: column;
        align-items: center;   /* 中身のロゴや住所を中央に */
    }
    .footer_address {
        font-size: 0.95rem;    /* スマホで読みやすいサイズに微調整 */
        line-height: 1.8;
    }
    .footer_right {
      justify-self: center;
    }
    .footer_left .sns_group {
        justify-content: center; /* アイコンを中央に */
    }
}
@media only screen and (max-width: 430px) {
  #footer {
    background-image: none !important;
  }
  .footer_message {
    padding-top: 2rem;
  }
}