/******* トップページ用CSS *******/

/****** 製品紹介 ******/
/* .sol_box {
	display: flex;
	justify-content: space-between;
	flex-wrap:wrap;
	align-items: stretch;
}

.sol_box li {
	width: 32.5%;
    overflow: hidden;
    border: 1px solid #ddd;
    background: #fff;
	display:flex;
	flex-direction:column;
	background-position:center 0;
	background-repeat:no-repeat;
    background-size: contain;
	background-position:center 95px;
	margin:0 0 2vh;
	object-fit:cover;
}

.sol_box li.hiroiex {
	background-image: url(/wp/wp-content/uploads/2021/01/hiroi_img.jpg);
	background-color:#218D76;
}
.sol_box li.honmaru {
	background-image: url(/wp/wp-content/uploads/2021/01/honmaru_img.jpg);
	background-color:#3B7BC2;
}
.sol_box li.ninomaru {
	background-image: url(/wp/wp-content/uploads/2021/01/ninomaru_img.jpg);
	background-color:#E23958;
}
.sol_box li.plannerex {
	background-image: url(/wp/wp-content/uploads/2021/01/plannerex_img.jpg);
	background-color:#D3C036;
}
.sol_box li.writeless {
	background-image: url(/wp/wp-content/uploads/2021/01/writeless_img.jpg);
	background-color:#5C8BB7;
}
.sol_box li.smart {
	background-image: url(/wp/wp-content/uploads/2021/01/smart_img.jpg);
	background-color:#B2742B;
}

.sol_box li a:hover {
	opacity:.9;
	background-color:rgba(255,255,255,.3);
}

.sol_box li dl {
	display:block;
	height:100%;
	margin:0;
}
.sol_box li dt {
	padding:2.5vh 0;
	text-align:center;
	font-size: 30px;
	height:90px;
	background:#fff;
	margin:0;
}
.sol_box li dt span {
    display: block;
    font-size: 0.5em;
    margin-bottom: 0.5em;
}

.sol_box li dd {
	margin: 220px 1.5vh 1.5vh;
	background:rgba(255,255,255,.95);
	padding:15px;
	line-height:1.5;
	border-radius:5px;
	font-size: calc(0.25vw + .8rem);
} */

/* @media screen and (max-width: 1024px) {
	.sol_box li {
	width: 48.5%;
	}
	.sol_box li dd {
		margin-top:100px;
	}
	.sol_box li dd p {
	display: -webkit-box;

-webkit-box-orient: vertical;

-webkit-line-clamp: 4;
overflow: hidden;
		min-height:0;
	}
} */

/******* コンタクト ********/

.top_contact_txt {
    margin: 0 auto var(--size-20-30);
    font-size: var(--size-13-15);
    line-height: 1.5;
}

@media screen and (max-width: 480px) {}

/******* プロモーション動画 ********/
.video_box.top {
    text-align: center;
    margin: 0 auto var(--size-30-50);
    width: min(100%, 800px);
    aspect-ratio: 16 / 9;
}

/******************************
暫定トップ （20251025_nakamura）
******************************/
/* ----------------------*
 * カルーセル
 * ----------------------*/
.slider-container-dot-manual {
    --height: 600px;

    .carousel {
        /* 基準にするため、アンカー名を指定 */
        anchor-name: --carousel;
        height: var(--height);
        display: grid;
        grid-auto-columns: 100%;
        /* アイテムを横並びにする */
        grid-auto-flow: column;
        overflow-x: auto;
        /* X方向にスナップ */
        scroll-snap-type: x mandatory;
        /* 1度に1枚ずつ移動 */
        scroll-snap-stop: always;
        /* スムーズにスクロールさせる */
        scroll-behavior: smooth;
        /* インジケーターの表示 */
        scroll-marker-group: after;
        scrollbar-width: none;
        overflow: hidden;
        list-style: none

        /* スクロールバー非表示（Chrome、Safari） */
        &::-webkit-scrollbar {
            display: none;
        }

        /* 前へ・次へボタン */
        &::scroll-button(*) {
            /* カルーセルの位置を基準にする */
            position-anchor: --carousel;
            position: absolute;
            top: anchor(center);
            transform: translateY(-50%);
            width: 30px;
            height: 30px;
            border-radius: 50%;
            border: none;
            background-color: rgba(255, 255, 255, .6);
            padding: 0;
            transition: background-color 0.2s, color 0.2s;
            z-index: 3;
            color: #fff;
        }

        /* ホバー時スタイル */
        &::scroll-button(*):not(:disabled):hover {
            background-color: rgba(0, 0, 0, .3);
            color: #fff;
            cursor: pointer;
        }

        &::scroll-button(*):disabled {
            color: rgba(255, 255, 255, .3);
        }

        /* 前へボタン */
        &::scroll-button(left) {
            /* コンテンツ / 代替テキスト */
            content: "◀" / "前へ";
            left: calc(anchor(left) + 20px);
        }

        /* 次へボタン */
        &::scroll-button(right) {
            /* コンテンツ / 代替テキスト */
            content: "▶" / "次へ";
            right: calc(anchor(right) + 20px);
        }
    }

    /* ----------------------*
	* カルーセルの画像アイテム
	* ----------------------*/
    .item {
        position: relative;
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: var(--size-15-20);
        /* 		height: var(--height); */
        scroll-snap-align: center;
        transition: 0.3s ease-out;
        background-size: cover;
        background-position: center right;
        padding: var(--size-20-40);
        &.slide_01 {
            background-image: url(/wp/wp-content/themes/nano-child/image/top/mv_01.webp);
            .slide_text_area {
                display: flex;
                flex-direction: column;
                color: #fff;
                .clr {
                    color: red;
                }
                img {
                    /* width: min(100%, 700px); */
                }
            }

        }

        &.slide_02 {
            background-image: url(/wp/wp-content/themes/nano-child/image/top/mv_02.webp);
        }

        &.slide_03 {
            background-image: url(/wp/wp-content/themes/nano-child/image/top/mv_03.webp);
        }
        .slide_text_area {
            max-width: min(100%, 700px);
            display: flex;
            flex-direction: column;
            gap: var(--size-15-20);
            p {
                font-size: var(--size-15-30);
                font-weight: 600;
                line-height: 1.6;
            }
        }
        .butto_area {
            display: flex;
            flex-wrap: wrap;
            gap: var(--size-10-15);
        }

        .video {
            position: absolute;
            right: var(--size-10-20);
            bottom: var(--size-10-20);
            z-index: 2;

        }

        img {
            display: block;
            /* width: 100%;
            height: 100%; */
            object-fit: cover;

            &.right {
                object-position: right;
            }
        }

        @media (any-hover: hover) {
            /*             &:hover {
                filter: brightness(60%);
            } */
        }
    }

    @media (width < 600px) {
        .carousel {
            height: 300px;
            /*&::scroll-button(*) {
				top: calc(anchor(bottom) - 60px);
			}

			&::scroll-button(left) {
				left: calc(anchor(left) + 16px);
			}

			&::scroll-button(right) {
				right: calc(anchor(right) + 16px);
			} */
        }
    }
}

/*
|--------------------------------------------------------------------------
| Base & Utilities (共通設定)
|--------------------------------------------------------------------------
*/
:root {
    --main-clr: #1e4ba0;
    --sub-clr: #f4f6f9;
    --accent-clr: #F7BB00;
    --member-clr: #D90000;
    --content-inner: min(100%, 1170px);
    --txt-cmn: var(--size-15-17);
    --txt-cmn-s: var(--size-14-16);
}

.body {
    position: relative;
}

.toppage_area {
    * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }

    img {
        width: 100%;
    }

    .con_text {
        font-size: var(--txt-cmn);

        &.text_left {
            text-align: left;
        }
    }

    button {
        cursor: pointer;
        border: none;
        padding: 10px 20px;
        border-radius: 50vh;
    }

    .section-area {
        padding: clamp(40px, 30.909px + 2.424vw, 60px) 15px;
        margin: 0 auto;
    }

    /* 共通セクションタイトル */
    .section-title {
        position: relative;
        /* 		display: inline-block; */
        text-align: center;
        margin: 0 auto var(--size-30-50);
        font-size: clamp(25px, 13.636px + 3.03vw, 50px);
        font-weight: 700;

        /* セレクタ展開: .section-title .small-text */
        .small-text {
            display: block;
            font-size: 0.6em;
        }

        &::before {
            content: "";
            width: 100px;
            /* 線の長さ */
            height: 5px;
            /* 線の太さ */
            bottom: -15px;
            /* 線の縦の開始位置 */
            left: 50%;
            border-radius: 50vh;
            transform: translateX(-50%);
            position: absolute;
            background: var(--accent-clr);
        }
    }

    .section-lead {
        text-align: center;
        padding: 0 0 var(--size-20-30);
    }

    /* 共通コンテンツボタン */
    .button-area {
        text-align: center;
        padding: var(--size-20-30) 0 0;

        .button-con {
            background-color: var(--sub-clr);
            border: 2px solid var(--main-clr);
            color: var(--main-clr);
            font-size: 1.2rem;
            padding: 15px 50px;
            border-radius: 50vh;
            width: fit-content;
            font-weight: bold;

            &:hover {
                opacity: .8;
            }

            a {
                color: var(--main-clr);
            }
        }
    }

    /* 画像タグは非表示 */
    [class*="image of"] {
        display: none;
    }


    /*
    |--------------------------------------------------------------------------
    | News & Information Section
    |--------------------------------------------------------------------------
    */
    .news-area {
        width: min(100%, 1000px);

        .news-wrapper {
            display: flex;
            border: 1px solid #ccc;
            /* 外側の枠線 */
            border-radius: 8px;
            overflow: hidden;
            /* 角丸とボーダーのために必要 */
        }
    }

    .news-tab-label {
        /* 左側の濃いグレーのエリア */
        background: #555;
        color: #fff;
        display: flex;
        padding: 10px;
        align-items: center;
        justify-content: center;
        /* 文字を縦書き風にする（ここでは縦中央配置のみ） */
    }

    .news-content-area {
        flex-grow: 1;
        padding: var(--size-15-20);
        background-color: white;

        .news-list-container {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .news-item {
            display: flex;
            align-items: center;
            padding: 10px 0;
            border-bottom: 1px solid #eee;
            /* 各記事の下線 */
            font-size: 0.95rem;

            &.last-item {
                border-bottom: none;
                /* 最後の下線は消す */
            }

            .date {
                color: #666;
                flex-shrink: 0;
                width: 100px;
            }

            .tag {
                flex-shrink: 0;
                margin-right: 15px;
                padding: 2px 8px;
                border-radius: 3px;
                color: white;
                font-size: 0.8rem;
                font-weight: bold;

                /* タグの色付け */
                &.pickup {
                    background-color: red;
                }

                &.seminar {
                    background-color: #79a6d0;
                }

                &.meeting {
                    background-color: #a4c979;
                }

                &.press {
                    background-color: #e5004f;
                }
            }

            .news-text {
                flex-grow: 1;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                /* はみ出しを三点リーダーに */
            }

            /* PICKUPアイテム */
            &.pickup-item {
                padding: 15px 10px;
                margin: -10px -10px 0 -10px;
                /* 領域を広げる */
                border-bottom: 2px solid #ddd;
            }
        }

        /* お知らせ一覧ボタン */
        .news-button-area {
            text-align: right;
            padding-top: 15px;
            padding-bottom: 5px;
        }

        .news-all-button {
            background-color: white;
            border: 1px solid #666;
            color: #555;
            padding: 8px 30px;
            border-radius: 30px;
            font-weight: normal;
            font-size: 0.9rem;
        }
    }


    /*
    |--------------------------------------------------------------------------
    | Service Steps Area (.service-steps)
    |--------------------------------------------------------------------------
    */
    .service-box {
        display: flex;
        justify-content: center;
        gap: 20px;
        padding: 0 20px;
        width: min(100%, 1100px);
        margin: 0 auto;
    }

    /* .service-block */
    .service-block {
        width: var(--content-inner);
        /*         width: 50%; */
        border: 1px solid #ddd;
        padding: var(--size-20-25);

        /*         border-radius: 8px; */
        .card-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            place-content: center;
            /* 			display: flex;
			flex-wrap: wrap; */
            justify-content: center;
            gap: 20px;

            a {
                color: #fff;

                &:hover {
                    opacity: .75;
                }
            }

            .card-title {
                padding-top: var(--size-10-15);
                height: var(--size-20-30);
            }

            .card {
                /* 				width: min(45%, 150px); */
                height: auto;
                aspect-ratio: 1 / 1;
                text-align: center;
                /* 				padding: 15px 5px; */
                font-size: var(--size-15-17);
                border-radius: 8px;
                color: #FFF;
                font-weight: bold;
                background: rgb(from var(--main-clr) r g b / 0.8);
                /*背景色*/
                border-bottom: solid 3px var(--main-clr);
                /*少し濃い目の色に*/
                border-radius: 12px;
                /*角の丸み*/
                box-shadow: inset 0 3px 0 rgba(255, 255, 255, 0.3), 0 2px 3px rgba(0, 0, 0, 0.19);
                font-weight: bold;

                img {
                    padding: 0 var(--size-10-20);
                }
            }
        }

        &.challenge {}

        &.solution {
            .card {
                /* 				width: 140px; */
            }
        }

        .block-title {
            font-size: var(--size-18-24);
            font-weight: 600;
            text-align: center;
            margin-bottom: var(--size-15-20);
        }
    }


    /* シリーズ画像プロモ (.series-image-promo) とフローボタン (.flow-button-area) */
    .series-image-promo {
        background-color: #666;
        width: min(100%, 800px);
        aspect-ratio: 16 / 9;
        margin: var(--size-30-50) auto 0;
        position: relative;
        border-radius: 8px;
        overflow: hidden;
    }

    /*
    |--------------------------------------------------------------------------
    | Features Area (.features)
    |--------------------------------------------------------------------------
    */
    .feature-area {
        .section-title {}

        .feature-cards-wrapper {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            justify-content: center;
            gap: 20px;
            width: var(--content-inner);
            margin: 0 auto;
        }

        .feature-card {
            position: relative;
            background-color: white;
            color: #333;
            padding: 30px 20px;
            /*             width: calc(100% / 3 - 20px); */
            border-radius: 5px;
            border: 1px solid #ddd;
            box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1);

            h3 {
                position: relative;
                padding-bottom: 20px;
                font-size: var(--size-18-24);
                text-align: center;
                z-index: 2;
            }

            .number {
                display: inline-block;
                position: absolute;
                top: -5px;
                left: 10px;
                margin: 0;
                padding: 5px 0 3px;
                z-index: 2;
                width: 40px;
                text-align: center;
                font-size: 24px;
                font-weight: 600;
                color: white;
                background: red;

                &:after {
                    content: '';
                    position: absolute;
                    left: 0;
                    top: 100%;
                    height: 0;
                    width: 0;
                    border-left: 20px solid red;
                    border-right: 20px solid red;
                    border-bottom: 12px solid transparent;
                    ;
                }
            }
        }
    }


    /*
    |--------------------------------------------------------------------------
    | Testimonial Slider Area (お客様の声 / 自動カルーセル)
    |--------------------------------------------------------------------------
    */
    .testimonial-area {
        padding: 60px 0;
        overflow: hidden;
        /* スライダーからはみ出た部分を非表示 */
        background-color: var(--sub-clr);
    }

    .testimonial-wrapper {
        /* PC/Desktop: スライダーの両端を見切らせるため、左右に余白を設定 */
        padding: 0 40px;
    }

    .horizontal-slide {
        /*         overflow: hidden; */
        white-space: nowrap;
        /* 子要素を一行に並べる */
    }

    .testimonial-track {
        display: flex;
        /* PCのアニメーションを適用 */
        animation: scroll-testimonial-pc 60s linear infinite;
        white-space: nowrap;

        /* ホバーでアニメーションを停止 */
        animation-play-state: running;
        /* 初期状態は実行中 */

        &:hover {
            animation-play-state: paused;
        }
    }

    .slide-card {
        flex-shrink: 0;
        /* 幅固定 */
        display: flex;
        flex-direction: column;
        width: 320px;
        height: auto;
        margin-right: 20px;
        /* カード間の間隔 */
        background-color: white;
        border: 1px solid #ddd;
        border-radius: 8px;
        padding: var(--size-15-20);
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        white-space: normal;
        /* テキストは折り返す */

        .role-tag {
            width: fit-content;
            background-color: #555;
            /* ベースのグレー */
            color: white;
            font-size: var(--size-13-15);
            font-weight: bold;
            padding: 5px 10px;
            margin-bottom: 15px;
            border-radius: 4px;

            &.blue {
                background-color: #007bff;
            }

            &.dark {
                background-color: #333;
            }
        }

        .comment {
            font-size: var(--size-14-16);
            line-height: 1.6;
            color: #555;
            margin-bottom: 20px;
            min-height: 75px;
            /* 高さの固定はそのまま残し、コメントの長さに対応 */
        }

        .illust {
            background-color: #eee;
            height: 150px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-top: auto;
        }
    }


    /*
    |--------------------------------------------------------------------------
    | Footer CTA & Footer
    |--------------------------------------------------------------------------
    */
    .cta-banner {
        color: white;
        text-align: center;
        padding: 50px 15px 50px;
        width: 100%;
        background: linear-gradient(rgba(30, 75, 160, .7), rgba(0, 0, 0, .7)), url('/wp/wp-content/uploads/2021/01/company_main.jpg');
        background-attachment: fixed;
        background-size: cover;
        background-position: center;

        .cta-lead-text {
            font-size: var(--size-15-17);
            /* 少し大きめ */
            line-height: 1.8;
            /* 行間を広げる */
            margin-bottom: 40px;
            /* ボタンとの間隔 */
        }

        .cta-buttons {
            display: flex;
            justify-content: center;
            gap: 30px;
            /* ボタン間の間隔 */
            margin-bottom: 50px;
            /* 電話番号との間隔 */
        }

        .cta-button {
            background-color: white;
            color: #333;
            font-size: 1.3rem;
            /* ボタンのテキストサイズ */
            font-weight: bold;
            padding: 20px 40px;
            /* ボタンのサイズ */
            border-radius: 40px;
            /* 角丸を大きく */
            min-width: 280px;
            /* ボタンの最低幅 */
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
            /* 軽い影 */
            transition: background-color 0.3s, color 0.3s;
            /* ホバーアニメーション */

            &:hover {
                background-color: #f0f0f0;
                /* ホバー時の背景色 */
            }
        }

        .cta-phone-number {
            font-size: var(--size-30-50);
            /* 電話番号を非常に大きく */
            font-weight: 900;
            /* 極太 */
            color: white;
            /* 純粋な白に近づける */
            letter-spacing: 2px;
            /* 文字間隔 */
            margin-bottom: 10px;
            /* 受付時間との間隔 */
        }

        .cta-time {
            font-size: var(--size-13-15);
            /* 受付時間のサイズ */
            color: #f0f0f0;
            /* 少し薄い白 */
        }
    }


    /*
    |--------------------------------------------------------------------------
    | Seminar Horizontal Slide Section (自動カルーセル)
    |--------------------------------------------------------------------------
    */
    .seminar-area {
        overflow: hidden;
        /* 		background: rgb(from var(--accent-clr) r g b / 0.1); */
        background-image: repeating-linear-gradient(-45deg, var(--sub-clr), var(--sub-clr) 2px, transparent 2px, transparent 6px);

    }

    .seminar-slide-wrapper {
        /* 左右に見切れるようにパディングはつけず、画面幅いっぱいを使う */
        padding: 0;
    }

    .seminar-track {
        display: flex;
        /* スライド6枚分 (220px + 20px) * 6 = 1440px */
        animation: seminar-scroll 50s linear infinite;
        white-space: nowrap;

        &:hover {
            animation-play-state: paused;
        }
    }

    .seminar-card {
        flex-shrink: 0;
        width: 240px;
        /* カードの幅を固定 */
        height: auto;
        margin-right: 20px;
        /* カード間の間隔 */
        background-color: white;
        border: 1px solid #ddd;
        border-radius: 4px;
        overflow: hidden;
        display: inline-block;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
        white-space: normal;

        @media (max-width: 768px) {
            width: 200px;
            margin-right: 10px;
        }

        .card-image-placeholder {
            width: 100%;
            height: 140px;
            background-color: #e0f0ff;
            /* 青系の画像プレースホルダー */
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.8rem;
            color: #555;
            border-bottom: 1px solid #ddd;

            img {
                object-fit: cover;
            }
        }

        .card-body {
            padding: 10px;

            .meta-info {
                display: flex;
                justify-content: space-between;
                align-items: center;
                margin-bottom: 5px;
            }

            .seminar-tag {
                background-color: #e5004f;
                /* 赤系のタグ */
                color: white;
                font-size: 0.7rem;
                font-weight: bold;
                padding: 3px 6px;
                border-radius: 2px;
                flex-shrink: 0;
            }

            .date {
                font-size: 0.7rem;
                color: #888;
                flex-shrink: 0;
            }

            .card-title {
                font-size: 0.85rem;
                line-height: 1.4;
                color: #333;
                /* 2行表示に制限 */
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
                height: 4.2em;
            }
        }
    }


    /*
    |--------------------------------------------------------------------------
    | FAQ Section
    |--------------------------------------------------------------------------
    */
    .faq-area {
        .faq-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: var(--size-15-30);
            width: min(100%, 900px);
            margin: 0 auto;
        }

        .faq-card {
            border: 1px solid #ddd;
            padding: var(--size-20-25);
            border-radius: 8px;

            .q-title {
                text-align: center;
            }
        }

        .faq-all-button {
            background-color: #333;
            color: white;
            padding: 12px 40px;
            margin: 20px auto 60px;
            display: block;
            /* ボタンを中央寄せするために追加 */
            width: fit-content;
        }
    }


    /*
    |--------------------------------------------------------------------------
    | Gallery & Media Section
    |--------------------------------------------------------------------------
    */
    .gallery-area {
        .thumbnail-slider {
            display: flex;
            overflow-x: scroll;
            padding: 10px 20px 30px;
            gap: 10px;
        }

        .media-logos {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: 1vw;
            width: min(100%, 900px);
            margin: 0 auto;

            .media-logo {
                border: 1px solid #ddd;
                /* 				width: calc(100% / 4 - 20px); */
            }
        }
    }
}

/* end of .toppage_area */

/*
|--------------------------------------------------------------------------
| Footer-nav
|--------------------------------------------------------------------------
*/
.footer-nav {
    position: fixed;
    bottom: 0;
    z-index: 10;

    .nav_inner {
        position: relative;
        background-color: rgba(0, 0, 0, .25);
/*         border-top: 1px solid #ddd; */
        width: 100vw;
        padding: var(--size-15-20);
        margin: 0 auto;
        transition: padding 0.3s ease-out;
        .button {
            position: absolute;
            top: 10px;
            right: 20px;
            width: 20px;
            height: 20px;
            border: 1px solid #ccc;
            background-color: rgba(255, 255, 255, .6);
            border-radius: 3px;
            cursor: pointer;

            &:before {
                content: "－";
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                font-size: var(--size-15-17);
                color: #666;
                transition: transform 0.3s;
            }

            &.abb:before {
                content: "＋";
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                font-size: var(--size-15-17);
                color: #666;
            }
        }

        ul {
            display: flex;
            justify-content: center;
            gap: 1vw;
            width: min(100%, 1000px);
            margin: 0 auto;
            list-style: none;

            li {
                flex: 1;
/*                 border: 1px solid #ccc; */
                border-radius: 4px;
                background-color: #fff;

                a {
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    padding: var(--size-10-15) 10px;

                    h3 {
                        font-size: var(--size-15-17);
                        font-weight: 600;
                        margin: 0;
                    }

                    .f-nav-txt {
                        margin-top: var(--size-10-15);
                        font-size: var(--size-12-14);
                        line-height: 1.5;
                        max-height: 100px;
                        opacity: 1;
                        overflow: hidden;
                        transition: max-height 0.4s ease-out, opacity 0.4s ease-out, margin 0.4s ease-out;
                    }
                }

                &.member {
                    background: var(--member-clr);
/*                     border-color: var(--member-clr); */
                    h3,.f-nav-txt {
                        color: #fff;
                    }
                }
            }
        }

        &.abb p.f-nav-txt {
            max-height: 0;
            opacity: 0;
            margin-top: 0;
            margin-bottom: 0;
        }
    }
}

/*
|--------------------------------------------------------------------------
| Footer
|--------------------------------------------------------------------------
*/
.footer_area {
    background-color: #f7f7f7;
    padding: 40px 20px 20px;

    .footer-nav-grid {
        border-bottom: 1px solid #ddd;
    }

    .footer-col {
        .col-title {
            color: #e5004f;
        }

        &.logo-and-badge {
            align-items: flex-end;
        }
    }
}

/*
|--------------------------------------------------------------------------
| Keyframes (これらはグローバルで維持)
|--------------------------------------------------------------------------
*/

/* --------------------------------------------------------------------------
Keyframes for PC/Desktop (4枚分移動)
-------------------------------------------------------------------------- */
@keyframes scroll-testimonial-pc {
    from {
        transform: translateX(0);
    }

    to {
        /* 4枚分の幅を正確に移動: (320px * 4) + (20px * 4) = 1360px */
        transform: translateX(-1360px);
    }
}

/* 自動スライドのためのKeyframesアニメーション (セミナー) */
@keyframes seminar-scroll {
    from {
        transform: translateX(0);
    }

    to {
        /* 6枚分の幅 (220px * 6 + 20px * 6 = 1440px) を正確に移動 */
        transform: translateX(-1440px);
    }
}


/*
|--------------------------------------------------------------------------
| Responsive Adjustments (Max-width 1024px, Tablet) - Testimonial Only
|--------------------------------------------------------------------------
*/
@media (max-width: 1024px) {

    /* Keyframes for Tablet (4枚分移動) */
    @keyframes scroll-testimonial-tablet {
        from {
            transform: translateX(0);
        }

        to {
            /* 4枚分の幅を正確に移動: (320px * 4) + (20px * 4) = 1360px */
            transform: translateX(-1360px);
        }
    }

    .testimonial-track {
        /* PCと同じアニメーションを使用 */
        animation-name: scroll-testimonial-tablet;
        animation-duration: 60s;
    }
}

/*
|--------------------------------------------------------------------------
| Responsive Adjustments (Max-width 768px, Mobile) - Testimonial & Global
|--------------------------------------------------------------------------
*/
@media (max-width: 768px) {

    /* Keyframes for Mobile (4枚分移動) */
    @keyframes scroll-testimonial-mobile {
        from {
            transform: translateX(0);
        }

        to {
            /* 4枚分の幅を移動: (80vw * 4) + (15px * 4) = calc(320vw + 60px) */
            transform: translateX(calc(-320vw - 60px));
        }
    }

    .testimonial-wrapper {
        padding: 0 10px;
        /* モバイルではさらに余白を小さく */
    }

    .slide-card {
        /* モバイルではカード幅を画面幅の80%に設定（見切れ具合を調整） */
        width: 220px !important;
        margin-right: 10px;
    }

    .testimonial-track {
        /* モバイル専用のアニメーションを適用 */
        animation-name: scroll-testimonial-mobile;
        animation-duration: 40s;
        /* モバイルでは少し速くする */
    }

    /* Global Responsive Adjustments (768px未満) - .toppage_areaのネストに対応 */
    .toppage_area .section-title {
        /*         font-size: 1.5rem; */
    }

    /* ニュースセクション */
    .news-wrapper {
        flex-direction: column;
    }

    .news-tab-label {
        width: 100%;
        height: 60px;
    }

    .news-content-area {
        padding: 15px 15px 5px 15px;

        .news-item {
            flex-wrap: wrap;

            .date {
                width: auto;
                margin-right: 10px;
            }

            .news-text {
                white-space: normal;
                /* モバイルでは折り返す */
                overflow: visible;
                text-overflow: clip;
                width: 100%;
                margin-top: 5px;
                font-size: 0.9rem;
            }

            .tag {
                margin-right: 5px;
            }
        }
    }

    /* サービスブロック */
    .service-blocks-wrapper {
        flex-direction: column;
        gap: 30px;
    }

    .service-block {
        width: 100%;

        &.solution .card-grid {
            grid-template-columns: repeat(2, 1fr);
            /* モバイルでは2列に */
        }
    }

    /* 特徴セクション */
    .features .feature-cards-wrapper {
        flex-direction: column;
        gap: 15px;
    }

    .features .feature-card {
        width: 100%;
    }

    /* CTAバナー */
    .cta-banner {
        padding: 50px 15px;

        .cta-buttons {
            flex-direction: column;
            gap: 15px;
        }

        .cta-button {
            min-width: 100%;
            font-size: 1.1rem;
        }

        .cta-phone-number {
            font-size: 2.5rem;
        }
    }

    /* FAQ */
    .faq .faq-grid {
        grid-template-columns: 1fr;
    }

    /* Footer */
    .footer_area .footer-nav-grid {
        display: flex;
        /* gridからflexに変更 */
        flex-direction: column;
    }

    .footer_area .footer-col.logo-and-badge {
        align-items: flex-start;
        margin-top: 20px;
    }
}