/* 基本リセット */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

a{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
}

/* レイアウト設定 */
body {
    font-family: "Zen Kaku Gothic New", zen-kaku-gothic-new, "Noto Sans", "Yu Gothic", "HiraKakuProN-W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, Osaka, "MS UI Gothic", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    line-height: 1.6;
    overflow-x: hidden; /* 横スクロールを防ぐ */
}

/*追従メニューここまで*/

      .header {
            position: fixed;
            top: 0;
            width: 100%;
            justify-content: space-between;
            align-items: center;
            /*background-color: #333;
            color: white;
            padding: 10px 20px;*/
            z-index: 100;
            transition: all 0.3s ease;
        }

/*        .header.shrink {
            padding: 5px 10px;
        }
*/
        .logo-container {
            display: flex;
            align-items: center;
        }

        .logo {
            height: 40px;
            transition: height 0.3s ease;
        }

 /*        .header.shrink .logo {
            height: 30px;
        }
*/

        .header.shrink .contact-wrapper{
            text-align: center;
            background-color: rgb(255 255 255 / 0%);
            border: none;
            padding: 0;
            display: grid;
        }

         .header.shrink img {
            display: none;
        }


     .header.shrink .menu-container {
    border: none;
    margin-top: 0;
    }

    nav .header.shrink .menu-container {
    display: none;
    }




        .company-name {
            font-size: 1.5em;
            font-weight: bold;
        }

        .header.shrink .menu-container {
            margin: 0 auto;
            display: block;
            background-color: rgb(255 255 255 / 85%);
            border-radius: 0 0 10px 10px;
            width: 65%;
        }

        .menu-container {
            display: flex;
            align-items: center;
        }

        .hamburger {
            font-size: 1.5em;
            cursor: pointer;
        }

        .mobile-menu {
            display: none;
            position: fixed;
            top: 0;
            right: 0;
            width: 100%;
            height: 100%;
            background-color: #333;
            color: white;
            z-index: 1001;
            transform: translateX(100%);
            transition: transform 0.3s ease;
        }

        .mobile-menu.active {
            transform: translateX(0);
        }

        .close-icon {
            font-size: 2em;
            cursor: pointer;
            padding: 10px;
        }

        .mobile-menu ul {
            list-style: none;
            padding: 0;
            margin: 0;
            text-align: center;
        }

        .mobile-menu ul li {
            padding: 0 0;
        }

        .mobile-menu ul li a {
            color: white;
            text-decoration: none;
            font-size: 1.2em;
        }

        main {
            padding-top: 15%;
        }


/*追従メニューここまで*/



header {
    background: transparent;
    color: #231815;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 2;
}

nav .menu-container {
    display: flex;
    align-items: center;
    background: rgba(255, 255, 255, 1);
    border: 1px solid #231815;
    border-radius: 20px;
    padding: 0.5vw 0 0.5vw 2vw;
    margin: 2.5vw auto;
    max-width: 1200px;
    width: 65%;
    z-index: 3;
}

.logo-item {
    margin-right: 2.5vw;
}

.logo-container{
    display: none;
}

nav ul {
    list-style: none;
    display: flex;
    flex-grow: 1;
    padding: 0 1vw 0 0;
    margin: 0;
    justify-content: space-around;
    align-items: center;
}


.shrink nav ul{
    align-items: baseline; 
    padding: 7px 0;
}


.menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

nav ul li {
    margin: 0 1em;
}

nav ul li a {
    color: #231815;
    text-decoration: none;
    padding: 0em 0;
    display: block;
    transition: background 0.3s;
    font-weight: 600;
    font-size: 0.8vw;
    margin-inline: auto;
}

nav ul li p {
    color: #231815;
    text-decoration: none;
    padding: 0em 0;
    display: block;
    transition: background 0.3s;
    font-weight: 600;
    font-size: 0.8vw;
    margin-inline: auto;
    margin-bottom: -5px;
}

nav ul li:hover {
    background: #f0f0f0;
}


nav a:hover {
    background: #f0f0f0;
}

nav .logo {
    width: 5vw;
    height: 5vw;
    object-fit: cover;
}

.icon {
    width: 4vw;
    height: 4vw;
    margin-bottom: -0.3em;
}

.contact-wrapper img{
    width: 3.8vw;
    height: auto;
    margin-right: 1vw;
}

.contact-wrapper-right a{
    font-size: 0.8vw;
    margin-bottom: -5px;
}

.roman {
    color: #666666;
    font-size: 0.5em;
    margin-top: 0em;
}

.contact-item {
    margin: 0.5vw 2vw;
}

.contact-wrapper {
    display: flex;
    background-color: #f9f7dc;
    border: solid 1px #231815;
    border-radius: 10px;
    padding: 0.7vw 3vw;
    width: max-content;
    margin: 0;
    align-items: center;
}

/* 初期状態では非表示 */
#mobile-menu {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 1);
    color: white;
    z-index: 1000;
    text-align: center;
    padding-top: 50px;
}

/* activeクラスが追加された時に表示 */
#mobile-menu.active {
    display: block;
}

/* クローズアイコンのスタイル */
#close-icon {
    font-size: 2em;
    cursor: pointer;
    position: absolute;
    top: 20px;
    right: 20px;
}

/* モバイルメニュー内のリンクのスタイル */
#mobile-menu ul {
    list-style: none;
    padding: 0;
}

#mobile-menu li {
    margin: 10px 0;
}

#mobile-menu a {
    color: #333;
    text-decoration: none;
    font-size: 1.2em;
}

.hamburger-menu-icon {
        display: none;
        /*
        position: absolute;
        top: 15px;
        right: 15px;
        background-color: #fff;
        padding: 3vw 3.5vw;*/
}

.hamburger-menu-icon .bar {
    display: block;
    width: 35px;
    height: 3px;
    margin: 7px auto;
    transition: all 0.3s ease-in-out;
    background-color: #231815;
}


.main-visual {
    position: relative;
    overflow: hidden;
    background-image: url('../images/main-visual.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 55vw;
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-visual-content {
    position: relative;
    z-index: 1;
    color: #fff;
    text-align: center;
    padding: 1em;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 10px;
}

.main-visual h1 {
    font-size: 2.5em;
    margin-bottom: 0.5em;
}

.main-visual p {
    font-size: 1.2em;
    margin-bottom: 1em;
}

.main-visual .btn {
    display: inline-block;
    background-color: #e62e70;
    color: #fff;
    text-decoration: none;
    padding: 0.8em 2em;
    border-radius: 5px;
    transition: background-color 0.3s;
}

.main-visual .btn:hover {
    background-color: #c42462;
}

.button-section {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0;
    flex-direction: column; /* ボタンとコンテンツを縦方向に配置 */
    position: relative;
    overflow: hidden;
    background-image: url('../images/main-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.button-container {
    display: flex;
    justify-content: space-around;
    width: 75%;
    margin-bottom: 3vw;
    margin-top: 5vw;
}

.custom-button {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.1vw 4vw;;
    border: 1px solid transparent;
    border-radius: 17px;
    background-color: #fff;
    text-decoration: none;
    box-shadow: 0 12px 12px rgba(0, 0, 0, 0.3);
    transition: background-color 0.3s, box-shadow 0.3s;
    font-size: 2vw;
    font-weight: bold;
}

.button-icon {
    width: 6.5vw;
    height: auto;
    margin-right: 4vw;
}

.button1 {
    color: #ed6ea2;
    border-color: #ed6ea2; /* ボタン1の枠線色 */
}

.button1:hover {
    background-color: #ed6ea2; /* ボタン1のhover時の背景色 */
    color: #fff;
}

.button2 {
    border-color: #6eb944; /* ボタン2の枠線色 */
    color: #6eb944;
}

.button2:hover {
    background-color: #6eb944; /* ボタン2のhover時の背景色 */
    color: #fff;
}

.main-message {
    text-align: center;
    margin-top: 0;
    margin-bottom: 5em;
    padding: 0em 2em;
}

.center-logo {
    width: 8em; /* アイコンのサイズを調整 */
    height: auto;
    margin-bottom: 1em; /* アイコンとH2の間にスペースを作る */
}

.main-message h2 {
    font-size: 2vw;
    margin-bottom: 5vw;
}

.main-message h2 span{
    color: #ed6ea2;
}

.main-message p {
    font-size: 1.3vw;
    color: #333333;
    width: 80%;
    margin: 0 auto;
    line-height: 2.5;
}


/*カルーセル*/
.carousel-container {
    overflow: hidden;
    width: 100%;
}

.carousel-track {
    display: flex;
    gap: 3em; /* スライドの間隔を設定 */
    padding: 20px; /* カルーセル全体のパディングを設定 */
    animation: scrollCarousel 50s infinite linear; /* カルーセルのアニメーションを定義 */
}

.carousel-slide {
    flex: 0 0 calc(100% / 3 - 40px); /* 画面に3枚表示する */
    max-width: calc(100% / 3 - 40px);
    border-radius: 15px; /* 角丸にする */
    overflow: hidden; /* 角丸にするために必要 */
    position: relative;
}

.carousel-slide img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 15px; /* 画像も角丸にする */
}

@keyframes scrollCarousel {
    0% {
        transform: translateX(0); /* 最初の位置 */
    }
    100% {
        transform: translateX(-120%); /* スライド全体の幅分左にスクロール */
    }
}

.big-circle{
    min-height: 50vh; /* 画面の高さいっぱいに表示 */
    background-image: url('../images/memo-bg2.png'); /* 背景画像のURLを指定 */
    background-repeat: repeat-y; /* 縦方向にリピート */
    background-size: 100% auto; /* 横幅を100%にして縦幅を自動調整 */
    background-position: left top; /* 画像の位置を左上に設定 */
    background-position-x: 0; /* 横方向の位置を調整 */
    background-position-y: 0; /* 縦方向の位置を調整 */
}

/* 緑サークル部分 */
.circle {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding-top: 10vw;
    width: 90%;
    margin-left: 3%;
}

.circle-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* 上寄せ */
    width: 95%; /* コンテンツの幅を指定 */
    max-width: 1200px; /* コンテンツの最大幅を指定 */
    padding: 0 0 0 0;
}

.left-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* 左寄せ */
    width: 2%; /* 左側のコンテンツの幅を設定 */
    z-index: 1; /* 重なり順序 */
    padding-left: 0;
    margin-top: 3vw;
}

.circle-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* 左寄せ */
    width: 98%; /* 右側のコンテンツの幅を設定 */
}

.small-circle {
    width: 1vw; /* ビューポート幅に基づいて設定 */
    height: 1vw; /* ビューポート幅に基づいて設定 */
    background-color: #6eb944; /* 小さいサークルの色 */
    border-radius: 50%; /* 円形にする */
    margin-bottom: 2vw; /* ビューポート高さに基づいて設定 */
}

.small-green-circle {
    width: 30.5vw;
    height: 30.5vw;
    background-color: #edf7eb;
    border-radius: 50%;
    margin: 0 1.5vw;
    flex-shrink: 0;
}

.circle-image1 {
    width: 35vw;
    height: 35vw;
    border-radius: 50%;
    object-fit: cover;
    margin-top: 5vw;
    margin-left: 0.5vw;
    flex-shrink: 0;
}

.circle-image2 {
    width: 23.5vw;
    height: 23.5vw;
    border-radius: 50%;
    object-fit: cover;
    margin-left: 13vw;
    margin-top: -20vw;
    flex-shrink: 0;
}

.large-circle-group {
    display: flex;
    align-items: center; /* 要素を中央に揃える */
    gap: 1.5vw; /* 要素間の間隔 */
    margin-top: 1.5vw; /* グループ間の間隔 */
}

.large-circle {
    width: 35vw;
    height: 35vw;
    background-color: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: -30vw;
    margin-left: 10vw;
    padding: 6vw 0 0 0vw;
    text-align: center;
}

.large-circle h3{
    font-size: 2vw;
    text-align: center;
    border: none;
    margin-bottom: 0;
}

.large-circle h4{
    font-size: 1.5vw;
    text-align: center;
    color: #6eb944;
}

.large-circle p{
    font-size: 1.3vw;
    text-align: left;
    color: #333;
    padding: 2vw 4vw 0 4vw;
    margin-bottom: 5%;
}

/* ボタンのスタイル */
.styled-button {
    background-color: #6eb944; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 1vw 4vw; /* ボタンの内側の余白 */
    font-size: 14px; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    margin: 6vw 5vw 0 5vw;
}

/* ボタンホバー時のスタイル */
.styled-button:hover {
    background-color: #5ca832; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button:active {
    background-color: #4e8c2b; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}


.side-by-side {
    display: flex;
    align-items: normal;
    gap: 1.5vw; /* 要素間の間隔 */
    margin-bottom: 1.5vw; /* グループ間の間隔 */
}


/* ピンクサークル部分 */
.circle2 {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    min-height: 50vh; /* 画面の高さいっぱいに表示 */
    padding-top: 13vw;
    padding-bottom: 13vw;
    margin-right: 3%;
}

.circle-container2 {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* 上寄せ */
    width: 90%; /* コンテンツの幅を指定 */
    max-width: 1200px; /* コンテンツの最大幅を指定 */
    padding: 0; /* コンテンツの内側の余白を設定 */
}

.right-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* 左寄せ */
    width: 2%; /* 左側のコンテンツの幅を設定 */
    z-index: 1; /* 重なり順序 */
    padding-left: 0;
    margin-top: 3vw;
}

.circle-content2 {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 98%; /* 右側のコンテンツの幅を設定 */
}

.small-circle2 {
    width: 1vw; /* ビューポート幅に基づいて設定 */
    height: 1vw; /* ビューポート幅に基づいて設定 */
    background-color: #f09dc1; /* 小さいサークルの色 */
    border-radius: 50%; /* 円形にする */
    margin-bottom: 2vw; /* ビューポート高さに基づいて設定 */
}

.small-pink-circle {
    width: 30.5vw;
    height: 30.5vw;
    background-color: #f9eaef;
    border-radius: 50%;
    margin: 0 1.5vw;
    flex-shrink: 0;
}

.circle-image1-2 {
    width: 35vw;
    height: 35vw;
    border-radius: 50%;
    object-fit: cover;
    margin-top: 5vw;
    margin-right: 0.5vw;
    flex-shrink: 0;
}

.circle-image2-2 {
    width: 23.5vw;
    height: 23.5vw;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 13vw;
    margin-top: -20vw;
    flex-shrink: 0;
}

.large-circle-group2 {
    display: flex;
    align-items: center; /* 要素を中央に揃える */
    gap: 1.5vw; /* 要素間の間隔 */
    margin-top: 1.5vw; /* グループ間の間隔 */
}

.large-circle2 {
    width: 35vw;
    height: 35vw;
    background-color: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: -30vw;
    margin-right: 10vw;
    padding: 6vw 0 0 0vw;
    text-align: center;
}

.large-circle2 h3{
    font-size: 2vw;
    text-align: center;
    border: none;
    margin-bottom: 0;
}

.large-circle2 h4{
    font-size: 1.5vw;
    text-align: center;
    color: #f09dc1;
}

.large-circle2 p{
    font-size: 1.3vw;
    text-align: left;
    color: #333;
    padding: 2vw 4vw 0 4vw;
    margin-bottom: 5%;
}

/* ボタンのスタイル */
.styled-button-pink {
    background-color: #f09dc1; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 1vw 4vw; /* ボタンの内側の余白 */
    font-size: 14px; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    margin: 6vw 5vw 0 5vw;
}

/* ボタンホバー時のスタイル */
.styled-button-pink:hover {
    background-color: #e094b8; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button-pink:active {
    background-color: #c482a1; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}


.side-by-side2 {
    display: flex;
    align-items: normal;
    gap: 1.5vw; /* 要素間の間隔 */
    margin-bottom: 1.5vw; /* グループ間の間隔 */
}




/* 法人部分 */
/* ロゴのスタイル */
.center-logo-container {
    text-align: center;
    margin-top: -5vw;
}

.center-logo {
    width: 20vw; /* ロゴのサイズを調整 */
    height: 20vw;
    border-radius: 50%; /* 丸くする */
    background-color: white; /* 白い背景色 */
    padding: 2vw;
}


.houjin-main-message {
    text-align: center;
    padding: 2em;
    width: 80%;
    margin: 0 auto;
    margin-top: 1em;
    margin-bottom: 5vw;
}

.center-logo {
    width: 12vw; /* アイコンのサイズを調整 */
    height: auto;
    margin-bottom: 0vw;
}

.houjin-main-message p {
    font-size: 1.3vw;
    color: #333333;
    line-height: 2.5;
}
.houjin-main-message h2 {
    font-size: 2vw;
    margin-bottom: 5.5vw;
}
.houjin-main-message h2 span{
    color: #6eb944;
}


.service_container{
    border-radius: 10px;
    background-color: #f7f9f7;
    width: 70%;
    height: auto;
    margin: 0 auto;
    display: flex;
    padding: 2.5vw 0 2.5vw 0;
    align-items: center;
    margin-bottom: 5vw;
}

.left{
    border-left: solid 3px #6eb944;
    margin-left: 5vw;
    width: 50%;
}

.left h4{
    margin-left: 3vw;
    font-size: 2vw;
}
.left p{
    margin-left: 3vw;
    font-size: 1.2vw;
    padding-top: 1vw;
    color: #333;
}


.right{
    margin: 0 auto;
    width: 50%;
    text-align: center;
}

/* 障害福祉サービスボタンのスタイル */
.styled-button-hukushi {
    background-color: #6eb944; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 1vw 4vw; /* ボタンの内側の余白 */
    font-size: 1.5vw; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    font-weight: bold;
}

/* ボタンホバー時のスタイル */
.styled-button-hukushi:hover {
    background-color: #e62e70; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button-hukushi:active {
    background-color: #4e8c2b; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}

/* ボタンホバー時のスタイル */
.styled-button-pink:hover {
    background-color: #e094b8; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button-pink:active {
    background-color: #c482a1; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}


.product{
    width: 70%;
    margin: 0 auto;
    margin-bottom: 10vw;
}

.product h2{
    margin-left: 6vw;
    border-bottom: solid 3px #6eb944;
    width: 23vw;
    font-size: 5vw;
     margin-bottom: -5vw;
    position: relative;
    z-index: 0;
    font-family: "gineso", sans-serif;
    font-weight: 900;
    font-style: normal;

}

.product_left{
    margin: 0 auto;
    width: 55%;
    margin-left: 0vw;
}

.product_container{
    border-radius: 10px;
    background-color: #f7f9f7;
    height: auto;
    display: flex;
    padding: 7.5vw 6vw 4.5vw 6vw;
    align-items: center;
    margin-bottom: 5vw;
}

.product_container h3{
    color:#6eb944;
    font-size: 2vw;
    border: none;
    margin-bottom: 0;
}

.product_container p{
    color: #333333;
    margin-top: 2vw;
    font-size: 1.2vw;
    padding-right: 10%;
}

.product_right{
    margin: 0 auto;
    width: 45%;
    display: inline-grid;
    justify-content: center;
}

.product_right img{
    width: 23vw;
    height: auto;
    margin-bottom: 2.5vw;
}

/* 障害福祉サービスボタンのスタイル */
.styled-button-product {
    background-color: #6eb944; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 0.8vw 4vw; /* ボタンの内側の余白 */
    font-size: 1.5vw; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    font-weight: bold;
}

.styled-button-product a{
    text-align: center;
}

/* ボタンホバー時のスタイル */
.styled-button-product:hover {
    background-color: #e62e70; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button-product:active {
    background-color: #4e8c2b; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}


.case-study-title h2 {
        font-size: 1.5em;
        margin-top: 10vw;
        text-align: center;
}

.case-study-title p {
    font-size: 1.2vw;
    color: #6eb944;;
    margin-bottom: 5vw;
    text-align: center;
    font-weight: bold;
}


.case-study{
    width:  65%;
    margin: 0 auto;
}


/* 障害福祉サービスボタンのスタイル */
.styled-button-case {
    background-color: #6eb944; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 0.5vw 3vw; /* ボタンの内側の余白 */
    font-size: 1.2vw; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    width: 100%;
}

/* ボタンホバー時のスタイル */
.styled-button-case:hover {
    background-color: #6eb944; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button-case:active {
    background-color: #6eb944; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}

.case-study {
    display: flex;
    gap:5%;
    margin-bottom: 6vw;
}

.case-study img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 15px; /* 画像も角丸にする */
}

.case-study h5{
    color: #333;
    font-size: 1.5vw;
    font-weight: bold;
}


.case-study h6{
    color: #6eb944;
    font-size: 1.2vw;
}

.case-study p{
    padding: 1vw 0 2vw 0;
    font-size: 1vw;
    width: 100%;
}


.case-circle {
    width: 5.5vw;
    height: 5.5vw;
    background-color: #6eb944;
    border-radius: 50%;
    margin: -3.5vw 0 0 26vw;
    text-align: right;
    position: relative;
    z-index: 1;
}

/* 初期状態でカルーセルを非表示にする */
.case-carousel {
    display: none;
    overflow: hidden;
    width: 100%;
    position: relative;
}

.carousel-slide {
    width: 100%;
}

.carousel-slide.active {
    display: block; /* active クラスがあるスライドのみ表示 */
}

.contact-mobile{
    display: none;
}

.contact{
    border-radius: 10px;
box-shadow: 0 2px 2px rgba(0,0,0,0.2), 1px -4px 5px -2px #f9f9f9 inset;
    display: flex;
    width: 64%;
    margin: 4vw auto 4vw auto;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    background: #fafafa;
}


.phone {
    width: 50%;
    border-right: solid 3px #e62e70;
    padding-left:2.5vw;
    padding-right: 2.5vw;
}

.contact-banner {
    width: 50%;
    padding-left:2.5vw;
    padding-right: 2.5vw;
    text-align: center;
}

.contact-banner h6{
    font-size: 0.9vw;
    margin-bottom: 1.5vw;
    color: #000;
}

.phone h5{
    text-align: center;
    color:#e62e70; 
    font-size: 2vw;
    font-family: "ysans-std", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.phone h6{
    text-align: center;
    font-size: 0.9vw;
    color: #000;
}

.phone p{
    text-align: center;
    font-size: 0.9vw;
    font-weight: bold;
    color: #000;
}


img.mail-logo {
    width: 4vw;
    height: auto;
}



footer {
    background: #fffef6;
    color: #070707;
    text-align: center;
    padding: 1em 0;
    position: relative;
    z-index: 1;
    font-size: 0.9vw;
}




/* メディアクエリ */
@media (max-width: 768px) {



.button-container {
    flex-direction: column;
}

.button1 {
    margin-bottom: 1.5em;
}


.header.shrink img {
    display: block;
}

    .logo-container img{
        width: 15%;
        height: auto;
    }

    nav .header.shrink .menu-container {
    display: flex;
    }


        .logo-container {
        position: sticky;
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        padding: 1% 5% 1% 5%;
        justify-content: space-between;
        background-color: #fff;
        top: 0;
        box-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
    }

    .header.shrink　.logo-container {
        position: fixed;
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        padding: 2% 5% 2% 5%;
        justify-content: space-between;
        background-color: #fff;
        top: 0;
        box-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
    }




    .main-menu {
        display: none;
    }

    .hamburger-menu-icon {
        display: block;
        /*
        position: absolute;
        top: 15px;
        right: 15px;
        padding: 3vw 2.5vw;*/
    }

    .hamburger-menu-icon p{
        font-size: 2.8vw;
        text-align: center;
    }

    .mobile-menu {
        display: none;
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        background: #fff/*rgba(0, 0, 0, 0.8)*/;
        z-index: 10;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .mobile-menu ul {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        margin-top: 0;
        width: 100%;
    }

    .mobile-menu li {
        margin: 0;
        border-bottom: solid 1px #333;
        width: 80%;
    }


    .menu-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .close-icon {
        position: absolute;
        top: 20px;
        right: 20px;
        font-size: 30px;
        color: #333;
        cursor: pointer;
    }

    nav ul li a {
    color: #231815;
    text-decoration: none;
    padding: 0em 0;
    display: block;
    transition: background 0.3s;
    font-weight: 600;
    font-size: 1em;
    padding: clamp(12px, 4.857vw, 17px) 0;
    text-align: center;
}


.button-icon {
    width: 8.5vw;
    height: auto;
    margin-right: 4vw;
}

.custom-button {
    border-radius: 8px;
    font-size: 20px;
}

.button-container {
    width: 85%;
}

.main-message p {
    font-size: 16px;
    color: #333333;
    width: 85%;
    margin: 0 auto;
}

.main-message h2 {
    font-size: 20px;
    margin-bottom: 5vw;
}

.main-message {
    text-align: center;
    margin-top: 0;
    margin-bottom: 0;
    padding: 2em;
}

.carousel-slide {
    flex: 0 0 calc(100% / 1.5 - 0px);
    max-width: calc(100% / 1.5 - 0px);
    border-radius: 0px;
    overflow: hidden;
    position: relative;
}

.carousel-track {
    display: flex;
    gap: 3vw;
    padding-top: 3vw;
    animation: scrollCarousel 50s infinite linear;
}

.carousel-slide img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 5px;
}





.large-circle p {
    font-size: 0.3em;
}

.large-circle2 p {
    font-size: 0.3em;
}

.large-circle h3 {
    font-size: 2.5vw;
}

.large-circle2 h3 {
    font-size: 2.5vw;
}

.styled-button {
    padding: 1.5vw 3.5vw;
    font-size: 12px;
    margin: 1vw 5vw 0 5vw;
}

.styled-button-pink{
    padding: 1.5vw 3.5vw;
    font-size: 12px;
    margin: 1vw 5vw 0 5vw;
}



.center-logo {
    width: 20vw;
    height: auto;
    border-radius: 50%; /* 丸くする */
    background-color: white; /* 白い背景色 */
    padding: 2vw;
}

.houjin-main-message {
    text-align: center;
    padding: 0em;
    width: 90%;
    margin: 0 auto;
    margin-top: 3vw;
    margin-bottom: 1vw;
}

.houjin-main-message p {
    font-size: 16px;
    color: #333333;
    width: 85%;
    margin: 0 auto;
}
.houjin-main-message h2 {
    color: #333333;
    font-size: 20px;
    margin-bottom: 5vw;
    text-align: center;
}

.houjin-main-message h2 span {
    color: #6eb944;
}

.service_container {
    border-radius: 10px;
    background-color: #f7f9f7;
    width: 80%;
    height: auto;
    margin: 5vw auto 5vw auto;
    display: flex;
    padding: 4.5vw 0 5.5vw 0;
    align-items: center;
    margin-bottom: 0vw;
    flex-direction: column;
    margin-top: 20vw;
}

.product {
    width: 80%;
}


.left h4{
    margin-left: 0;
    font-size: 20px;
    border-bottom: solid 3px #6eb944; 
    padding-bottom: 2.5vw;  
}

.left {
    border-left: none;
    margin-left: 0;
    width: 90%;
    text-align: center;
}

.left p {
    margin-left: 0;
    font-size: 16px;
    padding: 4vw 0 3vw 0;
    margin-bottom: 3%;
}

.right {
    margin: 0 auto;
    width: 100%;
    text-align: center;
}

.styled-button-hukushi {
    background-color: #6eb944;
    color: white;
    padding: 2vw 7vw;
    font-size: 14px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
    font-weight: bold;
    width: 65%;
}

.product_container {
    border-radius: 10px;
    background-color: #f7f9f7;
    height: auto;
    display: flex;
    padding: 10vw 0 4.5vw 0;
    align-items: center;
    margin-bottom: 5vw;
    flex-direction: column;
}


.product h2 {
    margin-left: 8vw;
    border-bottom: solid 3px #6eb944;
    width: 33vw;
    font-size: 7.5vw;
    margin-bottom: -5vw;
    position: relative;
    z-index: 0;
    margin-top: 10vw;
}


.product_left {
    margin: 0 auto;
    width: 90%;
    margin-left: 8vw;
    margin-bottom: 5vw;
}

.product_container h3 {
    color: #6eb944;
    font-size: 24px;
}

.product_container p {
    color: #333333;
    margin-top: 2vw;
    font-size: 14px;
}

.product_right {
    margin: 0 auto;
    width: 100%;
    display: contents;
    justify-content: center;
    margin-top: 3vw;
}

.styled-button-product {
    background-color: #6eb944;
    text-align: center;
    color: white;
    padding: 1.5vw 3vw;
    font-size: 14px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
    font-weight: bold;
    width: 65%;
}


.case-study-title h2 {
    font-size: 1.5em;
    margin-top: 10vw;
    text-align: center;
}

.case-study-title p {
    font-size: 1.5vw;
    color: #6eb944;
    margin-bottom: 5vw;
    text-align: center;
    font-weight: bold;
}

.case-study img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 5px;
}


.case-study h5 {
    font-size: 14px;
    width: 100%;
}


.case-study h6 {
    font-size: 14px;
    width: 100%;
}

.case-study p {
    font-size: 12px;
    width: 100%;
}

.case-study {
    width: 80%;
    margin: 0 auto;
    margin-bottom: 20vw;
}

.case-circle {
    width: 3vw;
    height: 3vw;
    background-color: #6eb944;
    border-radius: 50%;
    margin: -1.5vw 0 0 29vw;
    text-align: right;
    position: relative;
    z-index: 1;
}

.styled-button-case {
    background-color: #6eb944;
    color: white;
    padding: 0.5vw 3vw;
    font-size: 14px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
    width: 100%;
}


.contact {
    display: none;
}




footer {
    background: #e62e70;
    color: #fff;
    font-size: 1.5vw;
    text-align: center;
    padding: 0.5em 0;
    position: relative;
    z-index: 1;
}

}


/* メディアクエリ */
@media (max-width: 480px) {

    .logo-container img {
        width: 15%;
        height: auto;
    }


.main-visual {
display: none;
}

.mobilemain-visual {
display: block;
position: relative;
    overflow: hidden;
    background-image: url(../images/mobilemain-visual.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 77vw;
    margin-top: 15%;
    display: flex;
    align-items: center;
    justify-content: center;

}

    .button1 {
        margin-bottom: 1.3em;
    }

.button-container {
    width: 95%;
}

.custom-button {
    border-radius: 5px;
    font-size: 4vw;
    padding: 1vw 4vw;
}

.button-icon {
    width: 8.5vw;
    height: auto;
    margin-right: 4vw;
}

.main-message h2 {
    font-size: 4.5vw;
    margin-bottom: 5vw;
}

.main-message p {
        font-size: 3.5vw;
        width: 100%;
        text-align: left;
}

    .main-message {
        text-align: center;
        margin-top: 0;
        margin-bottom: 0;
        padding: 0em;
        width: 85%;
    }

.circle {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 30vh; /* 画面の高さいっぱいに表示 */
    padding-top: 10vw;
}

.circle2 {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 30vh;
    padding-bottom: 10vw;
}

.large-circle {
    width: 60vw;
    height: 60vw;
    background-color: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: -30vw;
    margin-left: 0vw;
    padding: 8vw 0 0 0vw;
    text-align: center;
}

.large-circle2 {
    width: 60vw;
    height: 60vw;
    background-color: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: -30vw;
    margin-right: 0vw;
    padding: 8vw 0 0 0vw;
    text-align: center;
}

.large-circle h3{
    font-size: 16px;
    text-align: center;
}

.large-circle h4{
    font-size: 12px;
    text-align: center;
    color: #6eb944;
}

.large-circle p{
    font-size: 3vw;
    text-align: left;
    color: #333;
    padding: 2vw 4vw 0 4vw;
}

.large-circle2 h3{
    font-size: 16px;
    text-align: center;
}

.large-circle2 h4{
    font-size: 12px;
    text-align: center;
    color: #f09dc1;
}

.large-circle2 p{
    font-size: 3vw;
    text-align: left;
    color: #333;
    padding: 2vw 4vw 0 4vw;
}

.circle-image2 {
    width: 23.5vw;
    height: 23.5vw;
    border-radius: 50%;
    object-fit: cover;
    margin-left: 5vw;
    margin-top: -20vw;
    flex-shrink: 0;
}

.circle-image2-2 {
    width: 23.5vw;
    height: 23.5vw;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 5vw;
    margin-top: -20vw;
    flex-shrink: 0;
}

/* ボタンのスタイル */
.styled-button-pink {
    background-color: #f09dc1; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 2vw 5vw; /* ボタンの内側の余白 */
    font-size: 10px; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    margin: 7vw 0 0 0;
}

/* ボタンのスタイル */
.styled-button {
    background-color: #6eb944; /* ボタンの背景色 */
    color: white; /* ボタンのテキスト色 */
    padding: 2vw 5vw; /* ボタンの内側の余白 */
    font-size: 10px; /* ボタンのテキストサイズ */
    border: none; /* ボタンの枠線を消す */
    border-radius: 5px; /* ボタンの角を丸くする */
    cursor: pointer; /* ポインタを変更 */
    transition: background-color 0.3s ease, transform 0.3s ease; /* アニメーション効果 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
    margin: 7vw 0 0 0;
}

.houjin-main-message h2 {
    font-size: 4.5vw;
}

    .houjin-main-message p {
        font-size: 3.5vw;
        width: 90%;
        text-align: left;
    }

.left h4 {
    font-size: 5vw;
    }

.left p {
    font-size: 3.5vw;
}

.styled-button-hukushi {
    font-size: 3.8vw;
    padding: 2.5vw 8vw;
}

.product_container h3 {
    font-size: 5.5vw;
}

.product_container p {
    font-size: 3.5vw;
    }

.product_right img {
    width: 45vw;
    height: auto;
    margin-bottom: 5vw;
}

.styled-button-product {
    margin-bottom: 5vw;
}

.styled-button-product {
        font-size: 3.8vw;
}

.case-carousel {
        display: block;
    }

.case-study {
        display: none;
    }

.case-carousel{
    width: 80%;
    margin: 0 auto;
}


.service_container {
        border-radius: 10px;
        background-color: #f7f9f7;
        width: 90%;
        height: auto;
        margin: 5vw auto 5vw auto;
        display: flex;
        padding: 4.5vw 0 5.5vw 0;
        align-items: center;
        margin-bottom: 0vw;
        flex-direction: column;
        margin-top: 20vw;
    }

/* 障害福祉サービスボタンのスタイル */
.styled-button-case {
    font-size: 4.5vw;; /* ボタンのテキストサイズ */
}

/* ボタンホバー時のスタイル */
.styled-button-case:hover {
    background-color: #e094b8; /* ホバー時の背景色 */
    transform: translateY(-3px); /* ホバー時の位置 */
}

/* ボタンアクティブ時のスタイル */
.styled-button-case:active {
    background-color: #c482a1; /* アクティブ時の背景色 */
    transform: translateY(0); /* アクティブ時の位置 */
}

.product {
    width: 90%;
    margin: 0 auto;
    margin-bottom: 10vw;
}

    .case-study-title h2 {
        font-size: 5vw;
        margin-top: 10vw;
        text-align: center;
    }

    .case-study-title p {
        font-size: 3vw;
        color: #6eb944;
        margin-bottom: 5vw;
        text-align: center;
        font-weight: bold;
    }

/* .case-carousel内の.carousel-slideを非表示にする */
.case-carousel .carousel-slide {
    display: none;
}

/* .case-carousel内の.activeクラスを持つ.carousel-slideは表示する */
.case-carousel .carousel-slide.active {
    display: block;
}


.case-carousel {
    display: flex;
    width: 100%;
    margin: 0 auto;
    justify-content: center;
    align-items: flex-start;
    margin-bottom: 8vw;
}

.case-carousel img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 5px; /* 画像も角丸にする */
}

.case-carousel h5{
    color: #333;
    font-size: 4.5vw;
    font-weight: bold;
    margin-top: 3vw;
}


.case-carousel h6{
    color: #6eb944;
    font-size: 4.5vw;
}

.case-carousel p{
    padding: 1vw 0 2vw 0;
    font-size: 3.5vw;
}


.case-circle {
display: none;
}

.styled-button-case {
    border-radius: 3px;
}

.case{
    margin-bottom: 20vw;
}

.carousel-prev{
    border-radius: 50%;
    border: none;
    width: 8vw;
    height: 8vw;
    opacity: 0.8;
    margin-right: 4vw;
    margin-top: 45vw;
    color: #6eb944;
    font-weight: 900;
}

.carousel-next {
    border-radius: 50%;
    border: none;
    width: 8vw;
    height: 8vw;
    opacity: 0.8;
    margin-left: 4vw;
    margin-top: 45vw;
    color: #6eb944;
    font-weight: 900;
}


.carousel-pagination {
    position: absolute;
    bottom: 45px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
}

.carousel-pagination span {
    width: 2.5vw;
    height: 2.5vw;
    margin: 0 4px;
    background-color: #ccc;
    border-radius: 50%;
    cursor: pointer;
}

.carousel-pagination .active {
    background-color: #333;
}



footer {
    background: none;
    color: #000;
    font-size: 2vw;
    text-align: center;
    padding: 0.5em 0;
    position: relative;
    z-index: 1;
}



}

