/* =========================================================
   VALITAサイト共通スタイル
   - PC / タブレット / スマホのレスポンシブ定義を1ファイルで管理
   - セクションごとに .l-xxx でレイアウトを分割
   ========================================================= */
/* PC版メインビジュアル背景画像を画面高にフィット */
@media only screen and (min-width: 1025px) {
    .l-visual.js-fullheight .mv_img img {
        height: 100vh;
        width: 100%;
        object-fit: cover;
        display: block;
    }
}
@import url('https://fonts.cdnfonts.com/css/atten-new');

/* 一般的に .js-fullheight で viewport 高さを指定する */
.js-fullheight {
    height: calc(var(--vh, 1vh) * 100);
}
/* SP版ヘッダーデザイン */

:root {
    --font-base: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Sans", "Meiryo", sans-serif;
    --font-en: "Atten New", sans-serif;
    --visual-inline-start: min(7.29vw, 105px);
}

html, body{
    font-family: var(--font-base);
    overflow-x: hidden;
}

:lang(ja) {
    font-family: var(--font-base);
}
.sp-break {
    display: none;
}

.sp-hide-comma {
    display: inline;
}
.Header_Wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 120;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-14px);
    pointer-events: none;
    transition: opacity 0.5s ease, transform 0.3s ease, visibility 0.3s ease;
}

.Header_Wrapper.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.hamburger,
.l-nav {
    display: none;
}

.scroll-header {
    width: 100%;
    background-color: rgba(250, 250, 250, 0.3);
    border-bottom: 1px solid #e5e5e5;
}

.scroll-header-inner {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 20px var(--visual-inline-start);
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 32px;
}



.scroll-header-nav {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.scroll-header-nav a {
    font-family: var(--font-en);
    font-size: 12px;
    letter-spacing: 0.08em;
    color: #141414;
    text-decoration: none;
}

.scroll-header-nav a:hover {
    /* 要素の透明度を70%に設定 */
    opacity: 0.7;
}
.Header_Wrapper .Header-sns a:hover {
    opacity: 0.7;
}
.Header_Wrapper .Header-sns {
    font-family: var(--font-en);
    font-size: min(0.83vw, 12px); /* 12px / 1440px * 100 */
}
.Header_Wrapper .Header-sns img{
    width: min(1.32vw, 19px); /* 19px / 1440px * 100 */
    margin-left: min(0.83vw, 12px); /* 12px / 1440px * 100 */
    vertical-align: middle;    
}
.instagram-text {
    font-family: var(--font-en);
}
.visual-header{
    position: relative;
}
.visual-header .visual-text p{
    font-size: min(0.83vw, 12px); /* 12px / 1440px * 100 */
    font-family: var(--font-en);
    position: absolute;
    color: #fff;
    top: min(4.17vw, 60px); /* 60px / 1440px * 100 */
    left: var(--visual-inline-start); /* 105px / 1440px * 100 */
    z-index: 1;
}
.visual-sns{
    position: absolute;
    font-size: min(0.83vw, 12px); /* 12px / 1440px * 100 */
    font-family: var(--font-en);
    color: #fff;
    top: min(3.47vw, 50px); /* 50px / 1440px * 100 */
    right: min(7.29vw, 105px); /* 105px / 1440px * 100 */
    z-index: 1;
}
.visual-sns img{
    width: min(1.32vw, 19px); /* 19px / 1440px * 100 */
    margin-left: min(0.83vw, 12px); /* 12px / 1440px * 100 */
    vertical-align: middle;
}
.visual-title .logo-center {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}
.visual-title .logo-center img {
    max-width: 100%;
    height: auto;
}
.visual-description p{
    position: absolute;
    bottom: min(3.47vw, 50px); /* 50px / 1440px * 100 */
    left: var(--visual-inline-start); /* 105px / 1440px * 100 */
    color: #fff;

}
.l-mission .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 54px 0 56px;
    /* width: calc(100% - 145px - 145px); */
}
.visual-description .description_t {
    font-weight: 500;
    letter-spacing: 0.15em;
    line-height: 1.6; /* 28.8px / 18px = 1.6 */
    font-size: min(1.25vw, 18px); /* 18px / 1440px * 100 */
    z-index: 1;
    margin-bottom: 20px;
}
.visual-description .description_e {
    position: absolute;
    font-family: var(--font-en);
    font-weight: 400;
    letter-spacing: 0.15em;
    font-size: min(0.56vw, 8px); /* 8px / 1440px * 100 */
    color: #fff;
    z-index: 1;
}
/* Mission セクション */
.l-mission
 {
    padding: 145px 0 10px 0; 
    background-color: #fafafa;
    position: relative;
    z-index: 1;
}
.mission-container {
    display: flex;
    gap: 80px;
    align-items: center;
    margin-bottom: 165px;
}


.mission-img img {
    max-width: 51.6vw; /* 743px / 1440px * 100 */
}

.mission-text {
    width: min(24.7vw, 327px); /* 327px / 1440px * 100 */
}
.se_title{
    font-size: min(1.39vw, 20px); /* 20px / 1440px * 100 */
    color: #141414;
    font-weight: 600;
    letter-spacing: 0.1em; /* 10% */
    line-height: 1.8; /* 行間を34.2に設定 */
    margin-bottom: 50px;
}
.accent {
    color: #7CA32A;
}
.l-mission .l_title {
    font-family: var(--font-en);
    font-size: min(2.5vw, 36px); /* 36px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    margin-bottom: 25px;
}

.l_sub {
    font-size: min(0.833vw, 12px); /* 12px / 1440px * 100 */
    font-weight: 400; /* Regular */
    letter-spacing: 0.5%; /* 文字間を0.5%に設定 */
    color: #141414;
    margin-bottom: 15px;
}

.l_e {
    font-family: var(--font-en);
    font-size: min(0.694vw, 10px); /* 10px / 1440px * 100 */
    letter-spacing: 0.3%;
    font-weight: 400;
    color: #141414;
    margin-bottom: 30px;
}
.mission-img{
    display: block;
}
.mission-img img {
    width: 100%;
    max-width: 743px;
    height: auto;
}
.mission-text p{
    width: 100%;
    max-width: 275px;
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    line-height: 1.8; /* 行間を21.6pxに設定 */
}
.mission-item-overlay{
    position: absolute;
    top: 750px;
    height: auto;
    right: calc(100vw - ((100vw - (min(1500px, calc(100vw - 180px)) + 110px)) / 2 + 54px + min(51.6vw, 743px) + 98px));
    width: min(35.11vw, 506px); /* 505.58px / 1440px * 100 */
    z-index: 2;
    pointer-events: none;
}
.mission-items {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    padding-left: 145px;
    align-items: center;
    margin-bottom: 60px;
}

.mission-items img {
    display: block;
    height: auto;
    max-width: 100%;
}
/* Approach セクション */
.l-approach{
    padding: 145px 0 145px 0;
    background-color: #fafafa;
    position: relative;
    z-index: 1;
}
.l-approach .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 101px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.l-approach .l_title{
    font-family: var(--font-en);
    font-size: min(3.61vw, 52px); /* 52px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    margin-bottom: 25px;
}
.l-approach .c-title1 img{
    margin-top: 20px;
    width: 170px;
}
.m-title h2{
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}
/* 0226追記 */
.l-container2_n__wrap{
    margin-bottom: 50px;
}
.l-approach  .c-title1__text{
    font-family: var(--font-en);
    font-size: min(4.72vw, 15px); /* 68px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
   
}
.l-approach .c-title1 {
    flex-direction: column;
    align-items: flex-start;
}
.l-container2_n__box p{
    font-size: 13px;
}
.l-container2_n__box{
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 3rem;
    letter-spacing: .3px;
    line-height: 1.5;
}
/* ↑0226追記 */

.m-line h2::after{
    content: "";
    flex: 1;
    height: 0.5px;
    background-color: #828282;
    margin-left: 30px;
}
.l-approach title .m-title{
    margin-bottom: 70px;
}
.approach-text p{
    width: 100%;
    max-width: 326px;
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    line-height: 1.8; /* 行間を21.6pxに設定 */
}
.approach .se_title{
    max-width: 455px;
}
.approach-container {
    display: flex;
    gap: 80px;
    align-items: center;
}

.approach-img {
    flex: 0 0 580px;
}

.approach-img{
    display: block;
}
.approach-img img {
    width: 100%;
    max-width: 580px;
    height: auto;
}
.approach-text {
    width: min(31.6vw, 455px); /* 455px / 1440px * 100 */
}
/* Strength セクション */
.l-strength{
    padding:  0px 0 145px 0;
    background-color: #fafafa;
    position: relative;
    z-index: 1;
}
.l-strength .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 101px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.l-strength .l_title{
    font-family: var(--font-en);
    font-size: min(2.5vw, 36px); /* 36px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    margin-bottom: 25px;
}
.l-strength .l_e{
    margin-bottom: 0px;
}
.strength-container{
    display: flex;
    gap: 220px;
}
.strength-img{
    display: block;
}
.strength-img img {
    width: 100%;
    max-width: 599px;
    height: auto;
}
.strength-feature-list {
    display: none;
}
.strength-text {
    padding-top: 60px;
}
.strength-text p{
    width: 100%;
    max-width: 290px;
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    line-height: 1.8; /* 行間を21.6pxに設定 */
}
.l-empty-bg {
    width: 100%;
    height: 400px;
    background-color: rgba(56, 67, 60, 0.2);
}
/* Services セクション */
.l-services {
    padding: 0 0 145px 0;
    background-color: #fafafa;
    position: relative;
    z-index: 1;  
}
.l-services .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 56px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.l-services .l_title{
    font-family: var(--font-en);
    font-size: min(3.61vw, 52px); /* 52px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    margin-bottom: 25px;
}
.services-text .subtitle{
    font-size: min(1.11vw, 16px); /* 16px / 1440px * 100 */
    font-family: var(--font-en);
    color: #7CA32A;
    font-weight: 500;
    margin-bottom: 30px;
}
.services-text p{
    width: 100%;
    max-width: 430px;
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    line-height: 1.8; /* 行間を21.6pxに設定 */
}
.services-img{
    display: block;
}
.services-img img {
    width: 100%;
    max-width: 580px;
    height: auto;
}
.l-services .link a.c-button {
    width: 430px;
    padding: 15px 25px 15px 30px;
    background-color: #30785D;
    color: #fafafa;
    border: 1px solid #30785D;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-decoration: none;
    border-radius: 50px;
    margin-top: 50px;
}

.l-services .link a.c-button .text_white {
    color: inherit;
    display: block;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 1;
}

.l-services .link a.c-button img {
    position: relative;
    z-index: 1;
    transition: filter 0.45s ease;
}
.m-line2 h2::after{
    content: "";
    flex: 0 0 580px;
    height: 0.5px;
    background-color: #828282;
    margin-left: auto;
    width: 580px;
    max-width: 100%;
}
/* .services-text::after {
    content: "";
    display: block;
    height: 0.5px;
    background-color: #828282;
    margin-top: 115px;
    width: 100%;
    max-width: 430px;
} */

.services-container{
    display: flex;
    gap: 140px;
    margin-top: 60px;
}
.services-line {
    border-top-width: 0.5px;
    background-color: #828282;
    margin-top: 115px;
}
.services-boxes {
    display: flex;
    gap: 20px;
    align-items: stretch;
    margin-top: 115px;
}

.services-box {
    flex: 1 1 0;
    border: 1px solid rgba(124, 163, 42, 0.25);
    padding: 20px;
    box-sizing: border-box;
    border-radius: 20px;
    padding: 55px 93px;
    text-align: center;
}
.services-box .subtitle{
    font-family: var(--font-en);
    font-size: min(0.972vw, 14px); /* 14px / 1440px * 100 */
    color: #7CA32A;
    font-weight: 400;
    margin-bottom: 15px;
}
.services-box h3{
    font-size: min(1.597vw, 23px); /* 23px / 1440px * 100 */
    color: #141414;
    font-weight: 600;
    margin-bottom: 35px;
}
.services-box .box-text{
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    text-align: left;
    line-height: 2;
}
/* Message セクション */
.l-message{
    padding: 130px 0 100px 0;
    background-color: rgba(20, 20, 20, 0.5);
    position: relative;
    z-index: 1;
}
.l-message .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 134px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.message-text .subtitle{
    font-size: min(1.18vw, 17px); /* 17px / 1440px * 100 */
    font-family: var(--font-en);
    color: #fafafa;
    letter-spacing: 0.1em;
    font-weight: 500;
    margin-bottom: 50px;
}
.message-text .se_title{
    font-size: min(1.458vw, 21px); /* 21px / 1440px * 100 */
    color: #fafafa;
    font-weight: 600;
    letter-spacing: 0.1em; /* 10% */
    line-height: 1.6; /* 行間を64.8pxに設定 */
    margin-bottom: 50px;
}
.message-text .message-in{
    width: 100%;
    max-width: 500px;
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #fafafa;
    line-height: 1.9; /* 行間を25.2pxに設定 */
}
.message-container{
    display: flex;
    gap: 140px;
    align-items: center;
}
.message-img .img{
    display: block;
}
.message-img img {
    width: 100%;
    max-width: 432px;
    height: auto;
}
.message-sign{
    margin-top: 60px;
}
.message-sign .message-sign-title{
    font-size: min(0.972vw, 14px); /* 14px / 1440px * 100 */
    color: #fafafa;
    font-weight: 400;
    letter-spacing: 0.15em; /* 15% */
    margin-bottom: 0.625rem;
}
.message-sign .message-sign-name{
    font-size: min(1.25vw, 18px); /* 18px / 1440px * 100 */
    color: #fafafa;
    font-weight: 600;
    letter-spacing: 0.15em; /* 15% */
    margin-left: 25px;
}
.message-sign .message-sign-en{
    font-family: var(--font-en);
    font-size: min(0.764vw, 11px); /* 11px / 1440px * 100 */
    color: #fafafa;
    font-weight: 400;
    letter-spacing: 0.15em; /* 15% */
    margin-left: 30px;
}
.l-company{
    padding: 145px 0 100px 0;
    background-color: #fafafa;
    position: relative;
    z-index: 1;  
}
.l-company .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 56px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.company-container{
    display: flex;
    gap: 120px;
    align-items: center;
}
.l-company .l_title{
    font-family: var(--font-en);
    font-size: min(2.5vw, 36px); /* 36px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    margin-bottom: 25px;
}
.company-img{
    display: block;
}
.company-img img{
    width: 100%;
    max-width: 580px;
    height: auto;
}
.company-text .company-info dt {
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #7CA32A;
    letter-spacing: 0.1em; /* 10% */
    margin-bottom: 20px;
}

.company-text .company-info dd {
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    letter-spacing: 0%;
    margin-bottom: 40px;
}

.company-text .company-info dd:last-child {
    margin-bottom: 0;
}
.company-text .company-info dd:nth-child(2),
.company-text .company-info dd:nth-child(4),
.company-text .company-info dd:nth-child(6) {
    border-bottom: 0.5px solid #B6B6B6;
    padding-bottom: 40px;
}

.business-list li:nth-child(2),
.business-list li:nth-child(3) {
    margin-top: 8px;
}

.business-list {
    list-style: none;
    padding-left: 0;
}

.business-list li {
    position: relative;
    padding-left: 1em;
}

.business-list li::before {
    content: "・";
    position: absolute;
    left: 0;
    top: 0;
}
/* Access セクション */
.l-access{
    padding: 145px 0 120px 0;
    background-color: #fafafa;
    position: relative;
    z-index: 1;  
}
.l-access .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 56px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.l-access .m-title h2::after {
    content: "";
    flex: 1;
    height: 0.5px;
    background-color: #828282;
    margin-left: 30px;
}
.l-access .l_title{
    font-family: var(--font-en);
    font-size: min(2.5vw, 36px); /* 36px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    margin-bottom: 80px;
}
.access-text {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.access-text .access-title{
    font-family: var(--font-en);
    color: #141414;
    font-size: min(1.18vw, 17px); /* 17px / 1440px * 100 */
    font-weight: 500; /* Medium */
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
    align-self: center;
    flex-shrink: 0;
}

.access-text .access-address,
.access-text .access-tel {
    font-size: min(0.903vw, 13px); /* 13px / 1440px * 100 */
    color: #141414;
    align-self: center;
    margin-top: 0;
}
.access-button {
    display: flex;
    align-items: center;
    /* justify-content: center; */
    gap: 8.5px;
    width: 170px;
    border: 0.8px solid #30785D;
    border-radius: 50px;
    padding: 10px 45px 10px 35px;
    box-sizing: border-box;
    transition: opacity 0.25s ease, background-color 0.25s ease;
}
.access-button img{
    width: 1.528vw; /* 22px / 1440px * 100 */
    height: 1.528vw; /* 22px / 1440px * 100 */
    vertical-align: middle;
}
.tel-button {
    width: 124px;
    padding: 10px 42px 10px 33px;

}
.access-button p{
    font-family: var(--font-en);
    font-size: min(0.833vw, 12px); /* 12px / 1440px * 100 */
    color: #30785D;
    font-weight: 600;
}

.access-button:hover,
.access-button:focus-visible,
.tel-button:hover,
.tel-button:focus-visible {
    opacity: 0.65;
}

@media only screen and (min-width: 1025px) {
    .access-link {
        position: relative;
    }

    .access-link .tel-button {
        position: relative;
    }

    .access-link .tel-button::after {
        content: attr(data-phone);
        position: absolute;
        left: 50%;
        bottom: calc(100% + 12px);
        transform: translate(-50%, 6px);
        opacity: 0;
        pointer-events: none;
        white-space: nowrap;
        background-color: #141414;
        color: #fafafa;
        font-family: var(--font-en);
        font-size: 12px;
        letter-spacing: 0.04em;
        line-height: 1;
        padding: 8px 12px;
        border-radius: 999px;
        transition: opacity 0.2s ease, transform 0.2s ease;
    }

    .access-link .tel-button::before {
        content: "";
        position: absolute;
        left: 50%;
        bottom: calc(100% + 6px);
        transform: translateX(-50%);
        opacity: 0;
        pointer-events: none;
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 6px solid #141414;
        transition: opacity 0.2s ease;
    }

    .access-link .tel-button:hover::after,
    .access-link .tel-button:focus-visible::after,
    .access-link .tel-button:hover::before,
    .access-link .tel-button:focus-visible::before {
        opacity: 1;
        transform: translate(-50%, 0);
    }
}
.access-img {
    margin-left: 0;
    margin-top: 55px;
}

.access-img iframe {
    width: 100%;
    height: 450px;
    border: none;
}
/* Contact セクション / 入力フォーム */
.l-contact{
    padding: 115px 0 160px 0;
    background-color: #fafafa;
    position: relative;
    z-index: 1;  
}
.l-contact .inner{
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 56px 0 54px;
    /* width: calc(100% - 145px - 145px); */
}
.contact-logo {
    margin-bottom: 30px;
}
.contact-logo img{
    width: 13.19vw; /* 190px / 1440px * 100 */
    height: auto;
}
.l-contact .l-sub{
    font-size: min(0.694vw, 10px); /* 10px / 1440px * 100 */
    color: #141414;
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 1.3;
    margin-bottom: 80px;
}
.l-contact .l_title{
    font-family: var(--font-en);
    /* フォントサイズ: 36px (ビューポート幅1440pxを基準とした相対値) */
    font-size: 2.7rem; /* 36px / 1440px * 100 */
    font-weight: 500; /* Medium */
    color: #141414;
    letter-spacing: 0.1em; /* 文字間を10%に設定 */
}
.l-contact .contact-container2 {
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    align-items: flex-start;
    gap: 284px;
}

.l-contact .m-title {
    flex: 0 0 auto;
}

.l-contact .contact-form {
    flex: 1;
}
.l-contact .form-description{
    font-size: min(1.111vw, 16px); /* 16px / 1440px * 100 */
    color: #141414;
    font-weight: 400;
    margin-bottom: 85px;
}
.Form{
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    min-width: 707px;
}
.Form-Item{
    margin-bottom: 55px;
    width: 100%;
}
.Form-Item-Label{
    width: 100%;
    letter-spacing: 0;
    font-weight: 400;
    color: #141414;
    font-size: 0.94rem; /* 15px / 16px */
    margin-bottom: 0.625rem;
}
.contact__fields{
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* グリッドを2列のレイアウトに設定し、各列を同じ幅(1fr)で配置。1frは利用可能なスペースの1分の1を意味し、2列が等幅になる */
    grid-column-gap: 2rem; /* グリッド列間のギャップを2remに設定 */
}
.Form-Item-Label-Required{
    font-family: var(--font-en);
    margin-right: 8px;
    display: inline-block;
    text-align: center;
    color: #EF001E;
    font-size: 1.5rem;
}

.Form-Item-Input{
    border: 1px solid #b6b6b6;
    padding-left: 1em;
    padding-right: 1em;
    border-radius: 5px;
    height: 50px;
    width: 100%;
    font-size: 1rem;
}
.Form-Item-Input::placeholder {
    color: #d9d9d9;
}

.Form-Item textarea::placeholder {
    color: #d9d9d9;
}
.Form-Item textarea{
    border: 1px solid #b6b6b6;
    border-radius: 5px;
    padding: 1em;
    width: 100%;
    font-size: 1rem;
    line-height: 1.15;
    height: 216px;
    overflow: auto;
    padding-top: 1em;

}
.Form-Item-Checkbox {
    display: flex;
    text-align: center;
    justify-content: center;
}
.Form-Item input[type="checkbox"] + span {
    color: rgba(20, 20, 20, 0.4);
    font-size: 0.8125rem; /* 13px / 16px */
    margin-left: 10px;
    display: inline-block;
    vertical-align: middle;
}

.Form-Item input[type="checkbox"] {
    width: 14px;
    height: 14px;
    border: 0.6px solid rgba(20, 20, 20, 0.4);
    cursor: pointer;
    accent-color: #141414;
    position: relative;
    border-radius: 2px;
    vertical-align: middle;
}
.Form-Item input[type="checkbox"]:checked::before{
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    background-color: #30785D;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.contact-btn{
    text-align: center;
    width: 100%;
    height: 50px;
    color: #fff;
    font-size: min(1.041vw, 15px); /* 15px / 1440px * 100 */
    letter-spacing:  .4px;
    padding: 12.5px 43.25px;
    border-radius: 50px;
    border: 1px solid #30785D;
    background: #30785D;
    position: relative;
    z-index: 1;

}
/* カテゴリープルダウンボックスのデザイン */
.Form-Item select {
    border: 1px solid #b6b6b6;
    padding-left: 1em;
    padding-right: 2.5em;
    border-radius: 5px;
    height: 50px;
    width: 100%;
    font-size: 1rem;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141414' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1em center;
    background-size: 1.2em;
    padding-right: 2.5em;
    cursor: pointer;
    color: #141414;
}

.Form-Item select:hover {
    border-color: #b6b6b6;
}

.Form-Item select:focus {
    outline: none;
    border-color: #b6b6b6;
}

.Form-Item select option:first-child {
    cursor: default;
    pointer-events: none;
} 
.Form-Item select:required:invalid {
    color: #b6b6b6;
}
.Form-Item select option {
    color: #141414;
}

.Form-Item select option[disabled] {
    color: #b6b6b6;
}

#ContactForm-category:required:invalid {
    color: #141414;
}

#ContactForm-category option[disabled] {
    color: #141414;
}
/* 0717 */
.m-btn {
    border: 1px solid #9d9d9d;
    width: 100%;
    box-sizing: border-box;
    align-items: center;
    cursor: pointer;
}

/* .l-visual.js-fullheight {
    height: calc(var(--vh, 1vh) * 100);
} */
    .header {
        position: fixed;
        top: 50px;
        left: 60px;
        z-index: 100;
    }
    .header .logo{
        width: 170px;
        margin-bottom: 40px;
    }
    .header .logo img{
        width: 100%;
    }
    .header .nav li a{
        font-family: var(--font-en);
        font-weight: 400;
        color: #1d1d1f;
        font-size: 13px;
        text-decoration: none;
        padding: calc(14px - .2em) 0;
        display: block;
        position: relative;
        transition: color 250ms cubic-bezier(.55, .055, .675, .19)
    }
    .is-sp{
        display: none;
    }
    /* mv */

    .l-visual .mv_img{
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        z-index: 0;
        overflow: hidden;
    }

    .l-visual .mv_img::after {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(250, 250, 250, 0.18);
        pointer-events: none;
        animation: mvVeilFade 0.9s ease-out 0.20s forwards;
    }

    .l-visual .mv_img img{
        width: 100%;
        height: 100vh;
        object-fit: cover;
        opacity: 0;
        transform: scale(1.02);
        animation: mvSoftReveal 1.2s ease-out 0.20s forwards;
    }

@keyframes mvSoftReveal {
    0% {
        opacity: 0;
        transform: scale(1.02);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes mvVeilFade {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .l-visual .mv_img img {
        animation: none;
        opacity: 1;
        transform: none;
    }

    .l-visual .mv_img::after {
        animation: none;
        opacity: 0;
    }
}
/* フッター */
.footer{
    position: relative;
    height: auto;
    background-color: rgba(20, 20, 20, 0.3);
    z-index: 2;
}
.disp_pc {
    
    display: block!important;
}
.footer__wrap {
    padding: 140px 105px 80px;
}
.footer-box{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.footer-main{
    align-items: flex-end;
    margin-bottom: 45px;
    gap: 20px;
}
.footer__links{
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-left: auto;
}
.footer__links li {
    letter-spacing: 0;
}
.footer__links a {
    font-family: var(--font-en);
    color: #fafafa;
    font-size: 1.0rem;
    line-height: 1;
    font-weight: 100;
    text-decoration: none;
}
.footer__links a:hover {
    opacity: 0.7;
}
.footer_l p{
    font-family: var(--font-en);
    color: #fafafa;
    font-size: 0.6rem;
    line-height: 1;
    font-weight: 100;
}
.footer-logo-text {
    display: none;
}

.footer-sns-mobile {
    display: none;
}
.footer-sns{
    width: 18px;
    height: 18px;
    line-height: 0;
    margin-left: auto;
}
.footer-sns-pc{
    display: block;
    width: 18px;
    height: 18px;
    line-height: 0;
    margin-left: 20px;
}
.footer-sns-pc:hover {
    opacity: 0.7;
}
.footer-sns-pc img {
    width: 100%;
    height: 100%;
    display: block;
}
.footer__wrap > .footer-box:last-child .footer-sns {
    display: none;
}
/* .footer-item-left,
.footer-item-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
} */
    .footer-nav li {
        margin-left: 50px;
    }
    .footer-nav li:first-child {
        margin-left: 0;
    }
    .footer-nav a{
        font-family: var(--font-en);
        font-weight: 400;
        color: #1d1d1f;
        font-size: 20px;
        display: block;
    }
    .footer-sns ul{
        display: flex;
        align-items: center;
        margin-top: 50px;
        justify-content: flex-end;

    }
    .footer-sns li {
        margin-right: 16px;
    }
    .footer-copy{
        font-family: var(--font-en);
        font-weight: 400;
        color: rgba(107, 107, 108, 0.8);
        font-size: 13px;
        margin-top: 40px;
        justify-content: flex-end;
        display: flex;
    }
   
.l-visual .copys_ition {
    position: relative;
    bottom: -92vh;
    /* 他のスタイルがあればここに記述 */
}

.thanks-visual {
    height: 0;
}

/* Thanks（送信完了）ページ */
.l-thanks {
    padding: 145px 0 160px 0;
    background-color: rgba(250, 250, 250, 0.88);
    position: relative;
    z-index: 1;
}

.l-thanks .inner {
    width: 100%;
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 56px 0 54px;
}

.l-thanks .l_title {
    font-family: var(--font-en);
    font-size: min(2.5vw, 36px);
    font-weight: 500;
    color: #141414;
    letter-spacing: 0.1em;
    margin-bottom: 0;
}

.l-thanks .m-title {
    margin-bottom: 22px;
}

.thanks-jp {
    font-size: min(0.833vw, 12px);
    color: #141414;
    margin-bottom: 14px;
}

.thanks-en {
    font-family: var(--font-en);
    font-size: min(0.694vw, 10px);
    color: #7CA32A;
    letter-spacing: 0.1em;
    margin-bottom: 80px;
}

.thanks-panel {
    max-width: 760px;
}

.thanks-message {
    font-size: min(0.972vw, 14px);
    color: #141414;
    line-height: 2;
    margin-bottom: 56px;
}

.thanks-link {
    display: inline-block;
    border: 1px solid #30785D;
    border-radius: 50px;
    color: #fafafa;
    background-color: #30785D;
    text-decoration: none;
    font-size: min(0.972vw, 14px);
    letter-spacing: 0.08em;
    padding: 14px 38px;
}

.l-services .link a.c-button,
.contact-btn,
.thanks-link {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color 0.45s ease, border-color 0.45s ease;
}

.l-services .link a.c-button::before,
.contact-btn::before,
.thanks-link::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #fafafa;
    transform: translateX(-101%);
    transition: transform 0.45s ease;
    z-index: -1;
}

.l-services .link a.c-button:hover,
.l-services .link a.c-button:focus-visible,
.contact-btn:hover,
.contact-btn:focus-visible,
.thanks-link:hover,
.thanks-link:focus-visible {
    color: #30785D;
    border-color: #30785D;
}

.l-services .link a.c-button:hover::before,
.l-services .link a.c-button:focus-visible::before,
.contact-btn:hover::before,
.contact-btn:focus-visible::before,
.thanks-link:hover::before,
.thanks-link:focus-visible::before {
    transform: translateX(0);
}

.l-services .link a.c-button:hover img,
.l-services .link a.c-button:focus-visible img {
    filter: brightness(0) saturate(100%) invert(39%) sepia(22%) saturate(1169%) hue-rotate(106deg) brightness(95%) contrast(88%);
}

.floating-contact-btn {
    position: fixed;
    right: 0;
    bottom: 12px;
    z-index: 125;
    display: inline-flex;
    align-items: center;
    text-align: center;
    justify-content: center;
    min-width: 168px;
    height: 80px;
    padding: 0 45px 0 46px;
    border: 1px solid transparent;
    border-radius: 50px 0 0 50px;
    background-color: #30785D;
    color: #fafafa;
    text-decoration: none;
    font-family: var(--font-en);
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: 0.08em;
    overflow: hidden;
    isolation: isolate;
    transition: color 0.45s ease, border-color 0.45s ease;
}

.floating-contact-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #fafafa;
    transform: translateX(-101%);
    transition: transform 0.45s ease;
    z-index: -1;
}

.floating-contact-btn:hover,
.floating-contact-btn:focus-visible {
    color: #30785D;
    border-color: #30785D;
}

.floating-contact-btn:hover::before,
.floating-contact-btn:focus-visible::before {
    transform: translateX(0);
}

.privacy-page {
    background-color: #fafafa;
    color: #141414;
    min-height: 100vh;
}

.privacy-header {
    z-index: 120;
}

.privacy-header .scroll-header {
    border-bottom: 0;
}

.privacy-header.Header_Wrapper.is-visible {
    border-bottom: 1px solid #e5e5e5;
}

.privacy-main {
    max-width: 1260px;
    margin: 0 auto;
    padding: 145px 56px 160px 54px;
    line-height: 1.9;
}

.privacy-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    column-gap: 104px;
}

.privacy-title {
    font-family: 'Atten New', sans-serif;
    font-size: 36px;
    letter-spacing: 0.08em;
    margin-bottom: 0;
    position: sticky;
    top: 172px;
}

.privacy-content {
    min-width: 0;
}

.privacy-lead {
    font-size: 14px;
    margin-bottom: 40px;
}

.privacy-section {
    margin-bottom: 34px;
}

.privacy-section h2 {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 12px;
    letter-spacing: 0.04em;
}

.privacy-section p,
.privacy-section li {
    font-size: 14px;
}

.privacy-section ul {
    list-style: disc;
    padding-left: 1.4em;
}

.privacy-footer {
    margin-top: 56px;
    padding-top: 24px;
    border-top: 1px solid #d9d9d9;
    font-size: 13px;
}

.privacy-footer a {
    color: #141414;
}

@media only screen and (min-width: 1441px) {
    .mission-text {
        width: calc(327px + (100vw - 1440px) * 0.2271);
    }

    .mission-text p {
        max-width: none;
    }

    .l-mission .inner,
    .l-approach .inner,
    .l-strength .inner,
    .l-services .inner,
    .l-message .inner,
    .l-company .inner,
    .l-access .inner,
    .l-contact .inner,
    .l-thanks .inner,
    .privacy-main {
         width: 100%;
         max-width: min(1500px, calc(100% - 180px));
         margin-left: auto;
         margin-right: auto;
         box-sizing: border-box;
         padding-left: clamp(54px, calc(54px + (100vw - 1440px) * 0.25), 140px);
         padding-right: clamp(56px, calc(56px + (100vw - 1440px) * 0.25), 142px);
    }

    .scroll-header-inner {
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-left: var(--visual-inline-start);
        padding-right: var(--visual-inline-start);
        box-sizing: border-box;
    }

    .mission-items {
        padding-left: calc((100vw - min(1330px, calc(100vw - 180px))) / 2 + 54px);
    }

    .l-access .access-img img {
        margin-left: 0;
    }
}

/* タブレット版（600px〜1024px） */
@media only screen and (min-width: 600px) and (max-width: 1024px) {
    :root {
        --visual-inline-start: 32px;
    }

    .scroll-header-inner {
        padding: 16px var(--visual-inline-start);
        gap: 20px;
    }

    .scroll-header-nav {
        gap: 14px;
    }

    .scroll-header-nav a {
        font-size: 11px;
    }

    .Header_Wrapper .Header-sns {
        font-size: 12px;
    }

    .Header_Wrapper .Header-sns img {
        width: 18px;
        margin-left: 8px;
    }

    .visual-header .visual-text p {
        font-size: 12px;
        top: 34px;
        left: var(--visual-inline-start);
    }

    .visual-sns {
        font-size: 12px;
        top: 28px;
        right: 32px;
    }

    .visual-sns img {
        width: 18px;
        margin-left: 8px;
    }
    .visual-description{
        margin-bottom: 40px;
    }
    .visual-description p {
        /* position: static; */
        margin: 0;
    }

    .visual-description .description_t {
        font-size: 16px;
    }

    .visual-description .description_e {
        font-size: 10px;
    }

    .l-mission .inner,
    .l-approach .inner,
    .l-strength .inner,
    .l-services .inner,
    .l-message .inner,
    .l-company .inner,
    .l-access .inner,
    .l-contact .inner,
    .l-thanks .inner,
    .thanks-footer .footer__wrap,
    .scroll-header-inner {
        max-width: 100%;
        padding-left: 40px;
        padding-right: 42px;
    }

    .l-mission,
    .l-approach,
    .l-strength,
    .l-services,
    .l-message,
    .l-company,
    .l-access,
    .l-contact,
    .l-thanks {
        padding-top: 80px;
        padding-bottom: 60px;
    }

    .approach-container,
    .strength-container,
    .services-container,
    .message-container{
        flex-direction: row;
        gap: 70px;
        align-items: center;
    }
    .company-container,
    .mission-container{
        flex-direction: row;
        gap: 44px;
        align-items: center;
        margin-bottom: 95px;
    }
    .mission-img,
    .approach-img,
    .strength-img,
    .services-img,
    .message-img,
    .company-img {
        width: 58%;
        max-width: none;
        flex: none;
    }

    .mission-text,
    .approach-text,
    .services-text,
    .strength-text,
    .message-text,
    .company-text {
        width: 36%;
        max-width: none;
        flex: none;
    }
    .strength-img img{
        width: 90%;
    }
    .services-box h3{
        margin-bottom: 25px;
    }
    .services-img img{
        width: 90%;
    }
    .services-box{
        padding: 45px 50px;
    }
    .approach-text p{
        max-width: 236px;
    }
    .message-img img{
        width: 90%;
    }
    .access-container {
        flex-direction: row;
        gap: 32px;
        align-items: flex-start;
    }

    .access-text {
        flex: 1;
        align-items: center;
    }

    .access-container .access-text:nth-child(2) {
        margin-top: 25px;
    }

    .access-img {
        flex: 1;
    }

    .mission-items{
        display: flex;
    }
    .mission-item-overlay{
        position: absolute;
        right: 320px;
        top: 490px;
    }

    .mission-items {
        gap: 7px;
        padding-left: 40px;
        align-items: center;
        margin-bottom: 0px;
    }

    .mission-items img {
        display: block;
    }

    .l-mission .l_title,
    .l-strength .l_title,
    .l-company .l_title,
    .l-access .m-title h2,
    .l-contact .m-title h2,
    .l-thanks .m-title h2 {
        font-size: 26px;
    }

    .l_sub {
        font-size: 9px;
    }

    .l_e {
        font-size: 7px;
    }

    .se_title,
    .message-text .se_title {
        font-size: 14px;
        margin-bottom: 40px;
    }

    .mission-text p,
    .approach-text p,
    .strength-text p,
    .services-text p,
    .message-text .message-in,
    .company-text .company-info dt,
    .company-text .company-info dd,
    .access-text .access-title,
    .access-text .access-address,
    .access-text .access-tel,
    .thanks-message,
    .thanks-link {
        font-size: 10px;
    }

    .l-services .link a.c-button {
        width: auto;
        max-width: 430px;
    }
    .services-boxes{
        margin-top: 45px;
    }
    .services-text::after{
        margin-top: 45px;
    }
    .access-button p {
        font-size: 12px;
    }

    .access-button img {
        width: 22px;
        height: 22px;
    }

    .l-contact .contact-container2 {
        gap: 202px;
    }
    .l-contact{
        padding-bottom: 80px;
    }
    .l-contact .form-description {
        margin-bottom: 60px;
    }
    .company-container{
        margin-bottom: 20px;
    }
    .Form {
        width: 100%;
        min-width: auto;
    }

    .Form-Item {
        margin-bottom: 39px;
    }

    .contact__fields {
        grid-column-gap: 1.42rem;
    }

    .footer__wrap {
        padding: 60px 0 25px;
    }

    .footer-box {
        flex-direction: column;
        text-align: center;
    }

    .footer-main {
        margin-bottom: 65px;
        width: 100%;
        text-align: left;
        align-items: flex-start;
        justify-content: space-between;
        flex-direction: row;
        padding-left: 40px;
        padding-right: 42px;
    }

    .footer-logo {
        text-align: left;
    }

    .footer-logo img {
        width: 90px;
        height: auto;
        display: block;
    }

    .footer-logo-text {
        display: block;
        font-family: var(--font-en);
        margin-top: 35px;
        color: #fafafa;
        font-size: 9px;
        line-height: 1.6;
        text-align: left;
    }

    .footer-sns-mobile {
        display: block;
        line-height: 0;
        margin-top: 40px;
    }

    .footer-sns-mobile a {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #fafafa;
        font-family: var(--font-en);
        font-size: 14px;
        text-decoration: none;
        line-height: 1;
    }

    .footer-sns-mobile a span {
        text-decoration: underline;
        font-family: var(--font-en);
    }

    .footer-sns-mobile img {
        width: 19px;
        height: 19px;
        display: block;
    }

    .footer__links {
        flex-direction: column;
        gap: 10px;
        align-self: flex-start;
        margin-left: auto;
        margin-top: 12px;
        text-align: right;
    }

    .footer__links .footer-privacy-link {
        display: none;
    }

    .footer__links a {
        font-size: 12px;
    }

    .footer-sns-pc {
        display: none;
    }

    .footer_l p {
        font-size: 8px;
        margin-bottom: 0px;
    }

    .footer-sns {
        margin-left: 0;
        margin-top: 20px;
    }

    .footer__wrap > .footer-box:last-child .footer-sns {
        display: none;
    }

    .footer-copy {
        font-size: 10px;
        margin-top: 20px;
    }

    .privacy-main {
        padding: 120px 40px 96px;
    }

    .privacy-layout {
        display: block;
    }

    .privacy-title {
        position: static;
        margin-bottom: 18px;
        font-size: 30px;
    }

    .floating-contact-btn {
        display: none;
    }
}
/* SP版（600px以下） */
@media only screen and (max-width: 599px) {
    :root {
        --visual-inline-start: 20px;
    }

    html,
    body {
        font-family: var(--font-base);
    }

    .sp-break {
        display: inline;
    }

    .sp-hide-comma {
        display: none;
    }

    body.is-menu-open {
        overflow: hidden;
    }

    /* ヘッダー */
    .Header_Wrapper {
        display: block;
        height: 45px;
        background-color: rgba(250, 250, 250, 0.2);
        border-bottom: 0;
    }

    .Header_Wrapper.is-visible {
        border-bottom: 1px solid #b6b6b6;
    }

    .privacy-header.Header_Wrapper.is-visible {
        border-bottom: 1px solid #b6b6b6;
    }

    .Header_Wrapper .scroll-header {
        background-color: transparent;
        border-bottom: 0;
    }

    .Header_Wrapper .scroll-header-inner {
        display: none;
    }

    .privacy-page .hamburger {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .privacy-main {
        padding: 110px 25px 90px;
    }

    .privacy-layout {
        display: block;
    }

    .privacy-title {
        font-size: 26px;
        margin-bottom: 14px;
        position: static;
    }

    .privacy-lead,
    .privacy-section p,
    .privacy-section li {
        font-size: 13px;
    }

    .privacy-section h2 {
        font-size: 17px;
    }

    .floating-contact-btn {
        display: none;
    }

    .hamburger {
        position: fixed;
        top: 18px;
        left: 20px;
        z-index: 130;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 9px;
        width: 30px;
        height: auto;
        background-color: transparent;
        cursor: pointer;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-14px);
        transition: opacity 0.5s ease, transform 0.3s ease, visibility 0.3s ease;
    }

    .hamburger.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .Header_Wrapper.is-visible + .l-visual .hamburger {
        opacity: 1;
        visibility: visible;
        left: 25px;
        pointer-events: auto;
        transform: translateY(0);
    }

    .thanks-body .hamburger {
        opacity: 1;
        visibility: visible;
        left: 25px;
        pointer-events: auto;
        transform: translateY(0);
    }

    .hamburger .i {
        display: block;
        width: 30px;
        height: 1px;
        background-color: #141414;
        transition: transform 0.3s ease;
    }

    .hamburger.is-open .i:nth-child(1) {
        transform: translateY(5px) rotate(45deg);
    }

    .hamburger.is-open .i:nth-child(2) {
        transform: translateY(-5px) rotate(-45deg);
    }

    .l-nav {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 129;
        visibility: hidden;
        pointer-events: none;
    }

    .l-nav .bg {
        position: absolute;
        inset: 0;
        background-color: rgba(20, 20, 20, 0.2);
        opacity: 0;
        transition: opacity 0.5s ease;
    }

    .l-nav .modal {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        max-width: 375px;
        height: 100%;
        background-color: #fafafa;
        transform: translateX(-100%);
        transition: transform 0.6s ease;
        /* padding: 24px 32px 40px; */
        padding-top: 115px;
        padding-left: 45px;
        overflow-y: auto;
    }

    .l-nav.is-open {
        visibility: visible;
        pointer-events: auto;
    }

    .l-nav.is-open .bg {
        opacity: 1;
    }

    .l-nav.is-open .modal {
        transform: translateX(0);
    }

    .menu-close {
        display: none;
    }

    .menu-close span {
        position: absolute;
        top: 50%;
        left: 0;
        width: 28px;
        height: 1px;
        background-color: #141414;
    }

    .menu-close span:nth-child(1) {
        transform: rotate(45deg);
    }

    .menu-close span:nth-child(2) {
        transform: rotate(-45deg);
    }

    .menu-brand {
        margin-bottom: 46px;
    }

    .menu-brand img {
        width: 182px;
        height: auto;
        margin-bottom: 20px;
    }

    .menu-copy {
        font-size: 2.22vw; /* 8px / 360px * 100 */
        line-height: 1.5;
        color: #141414;
        margin-bottom: 10px;
    }

    .menu-links {
        margin-bottom: 52px;
    }

    .menu-links li {
        margin-bottom: 22px;
    }

    .menu-links a {
        font-family: var(--font-en);
        font-size: 4.17vw; /* 15px / 360px * 100 */
        color: #141414;
        text-decoration: none;
        letter-spacing: 0.08em;
    }

    .menu-instagram {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #141414;
        text-decoration: none;
        font-size: 4.17vw; /* 15px / 360px * 100 */
        font-family: var(--font-en);
    }

    .menu-instagram img {
        width: 19px;
        height: 19px;
    }
    .scroll-header-inner {
        max-width: 100%;
        padding: 0;
        gap: 16px;
    }

    .scroll-header-nav {
        gap: 12px;
        flex-wrap: wrap;
    }

    .scroll-header-nav a {
        font-size: 10px;
    }

    .Header_Wrapper .Header-sns {
        font-size: 3.33vw; /* 12px / 360px * 100 */
    }

    .Header_Wrapper .Header-sns img {
        width: 19px;
        margin-left: 0;
    }
    /* ビジュアル */
    .l-visual {
        position: relative;
        background-color: #e0e0e0;
    }

    .visual-header {
        position: absolute;
        top: 30px;
        top: calc(env(safe-area-inset-top) + 30px);
        left: 0;
        right: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 var(--visual-inline-start);
    }

.visual-header .visual-text p {
        font-size: 3.33vw; /* 12px / 360px * 100 */
        position: static;
        margin: 0;
    }

    .visual-sns img {
        width: 19px;
        margin-left: 0;
    }
    .visual-sns{
        font-size: 3.33vw; /* 12px / 360px * 100 */
        position: static;
        display: flex;
        align-items: center;

    }
    .visual-title .logo-center img {
        max-width: 28.09vw;
    }

    .visual-description {
        position: absolute;
        bottom: 60px;
        left: var(--visual-inline-start);
    }
   .visual-description p {
        position: static;
        margin: 0;
    }
    .visual-description .description_t {
        font-size: 3.61vw; /* 13px / 360px * 100 */
        letter-spacing: 0.1em;
        line-height: 1.85; /* 13px * 1.85 ≈ 24px */
        font-weight: 300;
        margin-bottom: 15px;
    }

    .visual-description .description_e {
        font-size: 1.94vw; /* 7px / 360px * 100 */
        letter-spacing: 0.1em;
        line-height: 1.85; /* 9px * 1.85 ≈ 16.65px */
        font-weight: 300;
        position: static;
    }

    /* ミッション */
    .l-mission {
        padding: 100px 0 70px 0;
    }

    .l-mission .inner {
        padding: 0 25px;
    }

    .mission-container {
        display: flex;
        flex-direction: column;
        gap: 0;
        margin-bottom: 40px;
    }

    .mission-img img {
        content: url("img/seg1/sp-mission.jpg");
        width: calc(100% + 25px);
        max-width: none;
        margin-bottom: 30px;
    }

    .mission-text {
        width: 100%;
        order: 1;
    }

    .mission-img {
        order: 2;
        margin-right: -25px;
    }

    .se_title {
        font-size: 15px; 
        line-height: 1.6;
        /* 
         * マージン計算式：基本値から行高さの影響を差し引く
         * 40px: 基本マージン値
         * (1.6 - 1) * 1em / 2: 行高さ(1.6)による余剰スペースを補正
         * 結果として、視覚的に一貫したスペーシングを実現
         */
        margin-bottom: calc(40px - (1.6 - 1) * 1em / 2);
    }

    .l-mission .l_title {
        font-size: 26px; /* 24px / 360px * 100 */
        margin-bottom: 15px;
    }

    .l_sub {
        font-size: 3.06vw; /* 11px / 360px * 100 */
        margin-bottom: 15px;
    }

    .l_e {
        font-size: 2.78vw; /* 10px / 360px * 100 */
        margin-bottom: 70px;
    }

    .mission-text p {
        width: 100%;
        font-size: 13px;
        line-height: 1.9; /* 13px * 1.7 ≈ 22.1px */
        margin-bottom: calc(60px - (1.7 - 1) * 1em / 2);
    }

    .mission-item-overlay {
        position: relative;
        top: 0;
        left: 50px;
        width: 66.67vw; /* 240px / 360px * 100 */
        order: 3;
        margin-top: -40px;
        pointer-events: auto;
    }

    .mission-items {
        padding-left: 0;
        margin-bottom: 0;
        justify-content: flex-start;
        width: calc(100% + 25px);
        margin-left: 0;
        margin-right: -25px;
    }

    .mission-items img:nth-child(1) {
        content: url("img/seg1/sp-m_item1.png");
    }

    .mission-items img:nth-child(2) {
        content: url("img/seg1/sp-m_item2.png");
    }

    .mission-items img:nth-child(3) {
        content: url("img/seg1/sp-m_item3.png");
    }

    .mission-items img:nth-child(4) {
        content: url("img/seg1/sp-m_item4.png");
    }

    .mission-items img:nth-child(5) {
        content: url("img/seg1/sp-m_item5.png");
    }

    /* アプローチ */
    .l-approach {
        padding: 60px 0 30px 0;
    }

    .l-approach .inner {
        padding: 0 25px;
    }

    .l-approach .l_title {
        font-size: 28px;
        margin-bottom: 20px;
        letter-spacing: 0.06em;
    }

    .m-line h2::after {
        display: none;
    }

    .m-line2 h2::after {
        display: none;
    }

    .approach-container {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .approach-img {
        order: 2;
        flex: none;
        margin-right: -25px;
        margin-bottom: 0;
    }

    .approach-img img {
        width: calc(100% + 25px);
        max-width: none;
    }

    .approach-text {
        order: 1;
        width: 100%;
        margin-bottom: 40px;
    }

    .approach-text p {
        width: 82.22vw; /* 295px / 360px * 100 */
        font-size: 13px; 
        line-height: 1.9; /* 13px * 1.8 ≈ 23.4px */

    }

    /* ストレングス */
    .l-strength {
        padding: 60px 0 30px 0;
    }

    .l-strength .inner {
        padding: 0 20px;
    }

    .l-strength .l_title {
        font-size: 28px;
        margin-bottom: 15px;
    }

    .strength-container {
        display: block;
        gap: 0;
    }


    .strength-img img {
        content: url("img/seg2/sp-strength.png");
    }

    .strength-feature-list {
        display: block;
        margin-top: 45px;
        padding: 0;
        list-style: none;
        background-color: #fafafa;
    }

    .strength-feature-item {
        border-top: 0.6px solid rgba(124, 163, 42, 0.5);
        padding: 16px 0;
    }

    .strength-feature-item:first-child {
        border-top: none;
    }

    .strength-feature-item:last-child {
        border-bottom: 0.6px solid rgba(124, 163, 42, 0.5);
    }

    .strength-feature-title {
        color: #7CA32A;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.03em;
        line-height: 1.4;
        margin-bottom: 6px;
    }

    .strength-feature-no {
        font-family: var(--font-en);
        font-size: 8px;
    }

    .strength-feature-text {
        color: #141414;
        font-size: 12px;
        line-height: 1.7;
    }

    .l-strength .l_e{
        margin-bottom: 70px;
    }
    .strength-text {
        padding-top: 0;
    }

    .strength-text p {
        width: 100%;
        font-size: 12px;
        margin-bottom: 70px;
    }

    .l-empty-bg {
        height: 200px;
    }

    /* サービス */
    .l-services {
        padding: 60px 0 70px 0;
    }

    .l-services .inner {
        padding: 0 25px;
    }

    .l-services .l_title {
        font-size: 28px;
        margin-bottom: 20px;
        letter-spacing: 0.06em;
    }

    .services-text .subtitle {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .services-text p {
        width: 100%;
        font-size: 12px;
    }

    .services-text::after {
        display: none;
    }

    .services-container {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .services-text {
        order: 2;
    }

    .services-img {
        order: 1;
        margin-bottom: 30px;
    }

    .l-services .link a.c-button {
        width: 100%;
        padding: 12px 20px;
        margin-top: 30px;
    }

    .services-boxes {
        flex-direction: column;
        gap: 15px;
        margin-top: 60px;
    }

    .services-box {
        padding: 30px 15px;
    }

    .services-box .subtitle {
        font-size: 11px;
    }

    .services-box h3 {
        font-size: 15px;
        margin-bottom: 20px;
    }

    .services-box .box-text {
        font-size: 12px;
    }

    /* メッセージ */
    .l-message {
        padding: 70px 0 0 0;
        z-index: 2;
    }

    .l-message .inner {
        padding: 0 20px;
    }

    .message-container {
        display: block;
        gap: 0;
    }

    .message-text .subtitle {
        font-size: 14px;
        margin-bottom: 60px;
    }

    .message-text .se_title {
        font-size: 4.17vw; /* 15px / 360px * 100 */
        margin-bottom: 40px;
        line-height: 1.6; /* 24px / 15px = 1.6 */
    }

    .message-text .message-in {
        width: 100%;
        font-size: 13px;
    }

    .message-img img {
        display: block;
        max-width: 100%;
        margin-bottom: 0;
        margin-top: 20px;
        position: relative;
        bottom: -40px;
        z-index: 2;
    }

    .message-sign {
        margin-top: 40px;
    }

    .message-sign .message-sign-title {
        font-size: 11px;
    }

    .message-sign .message-sign-name {
        font-size: 15px;
        margin-left: 15px;
    }

    .message-sign .message-sign-en {
        font-size: 11px;
        margin-left: 25px;
        margin-top: 5px;
    }

    /* カンパニー */
    .l-company {
        padding: 120px 0 40px 0;
    }

    .l-company .inner {
        padding: 0 20px;
    }

    .l-company .l_title {
        font-size: 28px;
        margin-bottom: 15px;
    }

    .company-container {
        display: block;
        gap: 0;
    }

    .company-img {
        margin-bottom: 45px;
    }

    .company-text .company-info dt {
        font-size: 13px;
        margin-bottom: 15px;
    }

    .company-text .company-info dd {
        font-size: 13px;
        margin-bottom: 25px;
    }

    .company-text .company-info dd:nth-child(2),
    .company-text .company-info dd:nth-child(4),
    .company-text .company-info dd:nth-child(6),
    .company-text .company-info dd:nth-child(8) {
        border-bottom: 0.5px solid #b6b6b6;
        padding-bottom: 25px;
    }

    .business-list li:nth-child(2),
    .business-list li:nth-child(3) {
        margin-top: 8px;
    }

    /* アクセス */
    .l-access {
        padding: 60px 0 40px 0;
    }

    .l-access .inner {
        padding: 0 20px;
    }

    .l-access .l_title {
        font-size: 28px;
        margin-bottom: 40px;
    }

    .l-access .m-title h2::after {
        display: none;
    }

    .access-text {
        flex-direction: column;
        gap: 20px;
        align-items: flex-start;
        text-align: left;
    }

    .access-text .access-title {
        font-size: 16px;
        text-align: left;
        align-self: flex-start;
    }

    .access-text .access-address,
    .access-text .access-tel {
        font-size: 13px;
        align-self: flex-start;
        text-align: left;
    }

    .access-container .access-text + .access-text {
        border-top: 0.5px solid #B6B6B6;
        margin-top: 30px;
        padding-top: 30px;
    }

    .access-button p{
        font-size: 12px;
    }
    .access-button {
        width: 100%;
        padding: 10px 20px;
    }
    .access-button img{
        width: 22px;
        height: 22px;
    }
    .access-img {
        overflow: hidden;
    }

    .l-access .access-img img {
        display: block;
        width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        object-position: center;
        transform-origin: center;
        margin-left: 0;
        margin-top: 65px !important;
        max-width: 100%;
    }

    /* コンタクト */
    .l-contact {
        padding: 60px 0 40px 0;
    }

    .l-contact .inner {
        padding: 0 20px;
    }

    .l-contact .contact-logo,
    .l-contact .l-sub {
        display: none;
    }

    .contact-logo img {
        width: 120px;
    }

    .l-contact .l_title {
        font-size: 28px;
    }

    .l-contact .contact-container2 {
        display: block;
        gap: 0;
    }

    .l-contact .form-description {
        font-size: 14px;
        margin-bottom: 40px;
    }

    .Form {
        margin-top: 55px;
        min-width: auto;
    }
    .Form-Item{
        margin-bottom: 25px;
    }
    .Form-Item-Label{
        margin-bottom: 13px;
        font-size: 13px;
    }
    .Form-Item-Checkbox .Form-Item-Label{
        margin-top:  15px;
        margin-bottom: 0px;
    }
    .contact__fields {
        grid-template-columns: repeat(2, 1fr);
        grid-column-gap: 10px;
    }
    .Form-Item select{
        border-radius: 2px;
    }
    .Form-Item-Input{
        border-radius: 2px;
    }
    .Form-Item-Input,
    .Form-Item textarea,
    .Form-Item select {
        font-size: 14px;
    }

    .Form-Item select {
        text-align: left;
        text-align-last: left;
    }

    .Form-Item select option {
        text-align: left;
    }

    .contact-btn {
        height: 45px;
        font-size: 14px;
    }

    .inner.m-inner {
        padding: 0 25px;
    }

    .l-thanks {
        padding: 110px 0 90px 0;
    }

    .l-thanks .inner {
        padding: 0 25px;
    }

    .l-thanks .l_title {
        font-size: 28px;
    }

    .l-thanks .m-title {
        margin-bottom: 16px;
    }

    .thanks-jp {
        font-size: 12px;
        margin-bottom: 10px;
    }

    .thanks-en {
        font-size: 10px;
        margin-bottom: 56px;
    }

    .thanks-panel {
        max-width: 100%;
        padding: 36px 0;
    }

    .thanks-message {
        font-size: 13px;
        line-height: 1.9;
        margin-bottom: 36px;
    }

    .thanks-link {
        font-size: 12px;
        padding: 12px 28px;
    }

    /* フッター */
    .footer {
        background-color: rgba(20, 20, 20, 0.5);
    }

    .footer__wrap {
        padding: 40px 25px 25px;
    }

    .footer-box {
        flex-direction: column;
        text-align: center;
    }

    .footer-main {
        margin-bottom: 65px;
        width: 100%;
        text-align: left;
        align-items: flex-start;
        justify-content: space-between;
        flex-direction: row;
    }

    .footer-logo {
        text-align: left;
    }

    .footer-logo img {
        width: 90px;
        height: auto;
        display: block;
    }

    .footer-logo-text {
        display: block;
        font-family: var(--font-en);
        margin-top: 35px;
        color: #fafafa;
        font-size: 9px;
        line-height: 1.6;
        text-align: left;
    }

    .footer-sns-mobile {
        display: block;
        line-height: 0;
        margin-top: 40px;
    }

    .footer-sns-mobile a {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #fafafa;
        font-family: var(--font-en);
        font-size: 14px;
        text-decoration: none;
        line-height: 1;
    }

    .footer-sns-mobile a span {
        text-decoration: underline;
        font-family: var(--font-en);

    }

    .footer-sns-mobile img {
        width: 19px;
        height: 19px;
        display: block;
    }

    .footer__links {
        flex-direction: column;
        gap: 10px;
        align-self: flex-start;
        margin-left: auto;
        margin-top: 12px;
        text-align: right;
    }

    .footer__links .footer-privacy-link {
        display: none;
    }

    .footer__links a {
        font-size: 12px;
    }

    .footer-sns-pc {
        display: none;
    }

    .footer_l p {
        font-size: 8px;
        margin-bottom: 0px;
    }

    .footer-sns {
        margin-left: 0;
        margin-top: 20px;
    }

    .footer__wrap > .footer-box:last-child .footer-sns {
        display: none;
    }

    .footer-copy {
        font-size: 10px;
        margin-top: 20px;
    }
}
