@charset "utf-8";

:root {
    /* ---------- フォント設定 ---------- */
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;

    --noto-serif: "Noto Serif JP", serif;
    --zen-maru: "Zen Maru Gothic", sans-serif;
    /* medium bold */
    --zen-mincho: "Zen Old Mincho", serif;
    /* semibold */
    --mrs-saint: "Mrs Saint Delafield", cursive;
    /* regular */
    --m1-rounded: "M PLUS Rounded 1c", sans-serif;
    /* medium bold */

    --demilight: 350;
    --regular: 400;
    --medium: 500;
    --semibold: 600;
    --bold: 700;
    --black: 900;

    /* ---------- カスタムプロパティ(カラー設定ほか) ---------- */
    --white: rgb(255 255 255 / 1.0);
    --white-bg: rgb(255 255 255 / 0.8);
    --vision-bgcolor: rgb(255 255 255 / 0.5);
    --hero-word-bg: rgb(255 255 255 / 0.6);
    --site-bgcolor: rgb(253 117 104 / 1.0);
    --link-bgcolor: rgb(255 112 112 / 1.0);
    --link-hover: rgb(202 47 47 / 1.0);
    --site-palecolor: rgb(255 230 218 / 1.0);
    --pale-bgcolor: rgb(255 240 224 / 1.0);
    --vision-title: rgb(235 77 116 / 1.0);
    --vision-mainword: rgb(253 133 121 / 1.0);
    --vision-word: rgb(255 160 56 / 1.0);
    --border-graycolor: rgb(135 135 135 / 1.0);
    --border-orcolor: rgb(255 168 51 / 1.0);
    --dot-color: rgb(227 227 227 / 1.0);
    --dot-active: rgb(255 158 131 / 1.0);
    --return-btn-color: rgb(235 77 116 / 1.0);
    --news-img-bgcolor: rgb(255 248 220 / 1.0);
    --text-color: rgb(82 81 81 / 1.0);
    --text-graycolor: rgb(153 153 153 / 1.0);
    --current-text: rgb(148 71 71 / 0.6);
    /* ----- ハンガーメニュー ----- */
    --navi-bgcolor: rgb(255 247 247 / 1.0);
    --navi-text: rgb(255 146 146 / 1.0);


    color: var(--text-color);
}

/* -----------sp　全体レイアウト ---------- */
:root {
    font-size: 4.2666vw;
    /* 16px/375 */
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

.break,
.s-break {
    display: block;
}

/* -----------tablet　全体レイアウト ---------- */
@media screen and (width > 499px) {
    :root {
        font-size: min(2.0833vw, 16px);
        /* 16px/768 */
    }

    .s-wrapper {
        max-width: 768px;
        margin: auto;
    }

    .s-break {
        display: inline;
    }

    .t-break {
        display: block;
    }
}

/* -----------PC　全体レイアウト ---------- */
@media screen and (width > 1023px) {
    :root {
        font-size: min(1.25vw, 16px);
        /* 16px/1280- */
    }

    .s-wrapper {
        position: relative;
        max-width: 1280px;
        margin: auto;
    }

    .t-break {
        display: inline;
    }

    .t-wrapper {
        max-width: 1920px;
        margin: auto;
    }
}




/* ---------- ページ切り替え表示 ---------- */ 
body {
  opacity: 0;
  animation: fadeIn 0.2s ease forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}



/* ---------- アニメーション ---------- */
@keyframes updown {
    0% {
        transform: translateY(-15px);
    }

    100% {
        transform: translateY(15px);
    }
}

@keyframes side {
    0% {
        transform: translateX(-10px);
    }

    100% {
        transform: translateX(10px);
    }
}

@keyframes blinking {

    2.5%,
    7.5% {
        opacity: 0;
    }

    0%,
    5%,
    10%,
    100% {
        opacity: 1;
    }
}

.mascot-img {
    animation: updown 6s infinite ease-in-out alternate;

    img {
        animation: side 11s infinite ease-in-out alternate;
    }
}

.news-new {
    animation: blinking 10s infinite ease-in-out;
}


/* ----------- アニメーション停止 ---------- */
@media (prefers-reduced-motion: reduce) {

    *,
    .mascot-img,
    .news-new {
        animation: none;
    }
}





/* ---------- スキップリンク ---------- */
.skip-link {
    position: absolute;
    top: -100%;
    /* 通常時は画面外に隠す */
    left: 0;
    padding: 8px 16px;
    background: #000;
    color: #fff;
    text-decoration: none;
    z-index: 9999;
}

/* フォーカス時だけ表示 */
.skip-link:focus {
    top: 0;
}





/* ---------- ヘッダーレイアウト ---------- */

/* ---------- sp レイアウト ---------- */
header {
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 1000;
    background-color: var(--white);

    .h-wrapper {
        .header-area {
            margin: 1.25rem 1.25rem 1.25rem 1.0625rem;
            width: calc(100% - 1.25rem - 1.0625rem);
            display: flex;
            justify-content: space-between;
            align-items: center;

            .header-logo-area {
                margin: 0;
                padding: 0;

                img {
                    width: 10.3125rem;
                    height: auto;
                    font-size: 1rem;
                }
            }

            .hamburger {
                margin: 0;
                padding: 0;
                height: 1.75rem;
                display: flex;
                flex-direction: column;
                gap: 0.6875rem;
                z-index: 1500;
                cursor: pointer;
                border: none;
                background-color: inherit;

                span {
                    display: block;
                    width: 2.0625rem;
                    height: 0.125rem;
                    border-radius: 0.0625rem;
                    background-color: var(--site-bgcolor);
                    transition: all 0.3s;
                    transform-origin: center;
                }
            }

            .hamburger.active span:nth-child(1) {
                transform: translate(0.58rem, 0.8125rem) rotate(45deg);
            }

            .hamburger.active span:nth-child(2) {
                opacity: 0;
            }

            .hamburger.active span:nth-child(3) {
                transform: translate(0.58rem, -0.8125rem) rotate(-45deg);
            }

            .header-nav {
                position: fixed;
                inset: 0;
                z-index: 1100;
                width: 100vw;
                height: 100vh;
                background-color: var(--navi-bgcolor);
                transition: all 0.3s;
                opacity: 0;
                visibility: hidden;
                display: grid;
                place-items: center;

                ul {
                    margin: 0;
                    padding: 0;
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    gap: 7.4963dvh;

                    li {

                        a {
                            text-align: center;
                            display: block;
                            font-size: 1.625rem;
                            font-family: var(--zen-maru);
                            font-weight: var(--medium);
                            color: var(--navi-text);
                            line-height: 1.4625;
                        }

                        &.current_page_item {
                            pointer-events: none;

                            a {
                                color: var(--link-hover);
                            }
                        }
                    }
                }
            }

            .header-nav.active {
                opacity: 1;
                visibility: visible;
            }
        }
    }
}

main {
    margin-top: 5.4375rem;
}

/* ---------- tablet レイアウト ---------- */
@media screen and (width > 499px) {
    header {
        width: 100vw;

        .h-wrapper {
            padding: 1.125rem 0 1.0625rem;

            .header-area {
                justify-content: center;
                align-items: center;
                gap: 1.6875rem;

                .header-logo-area {
                    margin: 0;

                    img {
                        width: 12.975rem;
                        height: auto;
                    }
                }

                .hamburger {
                    margin: 0;
                    gap: 0.6875rem;

                    span {
                        width: 2.3125rem;
                        height: 2.125rem;
                    }
                }

                .hamburger.active span:nth-child(1) {
                    transform: translate(10.955rem, 0.8125rem) rotate(45deg);
                }

                .hamburger.active span:nth-child(3) {
                    transform: translate(10.955rem, -0.8125rem) rotate(-45deg);
                }

                .header-nav {
                    ul {
                        margin: 0;

                        li {
                            a {
                                font-size: 1.875rem;
                            }
                        }
                    }
                }
            }
        }
    }

    main {
        margin-top: 8.375rem;
    }
}

/* ---------- pc レイアウト ---------- */
@media screen and (width > 1023px) {
    header {
        max-width: 1920px;
        margin: auto;
        .h-wrapper {
            max-width: 1280px;
            margin: auto;
            padding: 2.5625rem 6.625rem 2.4375rem 4.75rem;

            .header-area {
                display: flex;
                justify-content: space-between;
                align-items: center;

                .header-logo-area {
                    margin: 0;

                    a {
                        transition: all 0.3s;

                        &:hover,
                        &:focus {
                            filter: drop-shadow(0 0 6px var(--site-bgcolor));
                        }
                    }

                    img {
                        width: 13.8125rem;
                        height: auto;
                    }
                }

                .hamburger {
                    display: none;
                }

                .header-nav {
                    display: inherit;
                    position: inherit;
                    visibility: visible;
                    opacity: 1;
                    width: auto;
                    height: 2.4375rem;
                    background-color: var(--white);
                    transition: none;

                    ul {
                        margin: 0;
                        padding-bottom: 0;
                        height: auto;
                        display: flex;
                        flex-direction: row;
                        flex-wrap: wrap;
                        justify-content: end;
                        gap: 1.5625rem;

                        li {
                            border: none;
                            margin-bottom: 0;

                            a {
                                padding: 0;
                                margin: 0;
                                display: block;
                                width: 8.375rem;
                                font-size: 1rem;
                                font-weight: var(--regular);
                                color: var(--white);
                                text-align: center;
                                line-height: 2.4375rem;
                                background-color: var(--link-bgcolor);
                                border-radius: 0.5rem;
                                transition: all 0.3s;

                                &:hover,
                                &:focus {
                                    background-color: var(--link-hover);
                                }
                            }

                            &.current_page_item {
                                a {
                                    pointer-events: none;
                                    border: 1px solid var(--link-bgcolor);
                                    background-color: var(--white);
                                    color: var(--link-bgcolor);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    main {
        margin-top: 11.4375rem;
    }
}





/* ----------- フッターエリア ---------- */

/* ---------- sp レイアウト ----------- */
footer {
    position: inherit;
    color: var(--white);
    background-color: var(--site-bgcolor);

    .f-wrapper {
        padding: 1.3125rem 0 1.1875rem;

        address {
            display: flex;
            flex-direction: column;
            align-items: center;
            font-style: normal;
            gap: 1.125rem;

            .footer-logo {
                img {
                    width: 8.75rem;
                    height: auto;
                }
            }

            .tel {
                a {
                    width: 18.8125rem;
                    height: 3.3125rem;
                    border-radius: 1.5625rem;
                    background-color: var(--white);
                    font-size: 1.125rem;
                    font-weight: var(--bold);
                    color: var(--site-bgcolor);
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    gap: 0.375rem;

                    img {
                        width: 0.9375rem;
                        height: 1.3125rem;
                    }

                    &:active {
                        background-color: var(--site-palecolor);
                    }
                }
            }


            .address {
                margin: 0 auto 1.4375rem;
                padding: 0 0 0 1rem;
                display: block;
                font-size: 0.8125rem;
                font-weight: var(--regular);
                line-height: 1.2308;

                .nowrap {
                    white-space: nowrap;
                }
            }
        }

        .footer-nav {
            ul {
                margin: 0 0 1px;
                padding: 0;
                display: grid;
                grid-template-columns: repeat(6, 3.25rem);
                justify-content: center;
                gap: 0;

                li {
                    width: fit-content;

                    a {
                        display: flex;
                        justify-content: flex-end;
                        align-items: center;
                        gap: 0.5em;
                        width: 5.2em;
                        height: 2.1875rem;
                        font-size: 1.25rem;
                        font-weight: bold;
                        color: var(--white);
                        letter-spacing: 0.05em;
                        line-height: 2.1875rem;
                        text-align: center;

                        &::after {
                            display: block;
                            content: "";
                            height: 100%;
                            width: 1px;
                            background-color: var(--white);
                        }
                    }

                    &:first-child {
                        grid-column: 2 / 4;
                    }

                    &:nth-child(2) {
                        grid-column: 4 / 6;

                        a::after {
                            background-color: inherit;
                        }
                    }

                    &:nth-child(3) {
                        grid-row: 2;
                        grid-column: 1 / 3;

                    }

                    &:nth-child(n+3) {
                        grid-row: 2;
                        grid-column: span 2;
                    }

                    &:last-child {
                        a::after {
                            background-color: inherit;
                        }
                    }

                    &.current_page_item {
                        pointer-events: none;

                        a {
                            color: var(--current-text);
                        }
                    }
                }
            }
        }

        .copyright {
            text-align: center;

            small {
                font-size: 0.8125rem;
            }
        }
    }
}

/* ---------- tablet レイアウト ----------- */
@media screen and (width > 499px) {
    footer {
        .f-wrapper {
            padding: 3.875rem 0 0.75rem;

            address {
                margin-bottom: 3.6875rem;
                display: grid;
                grid-template-columns: 11.25rem 27.5rem;
                justify-content: center;
                gap: 0 3.25rem;

                .footer-logo {
                    margin: 0;
                    grid-row: 1 / 3;

                    img {
                        width: 11.25rem;
                        height: auto;
                    }
                }

                .tel {
                    align-self: end;
                    justify-self: center;

                    a {
                        margin: 0;
                        font-size: 1.1875rem;
                        gap: 5px;
                        pointer-events: none;

                        img {
                            width: 0.9375rem;
                            height: auto;
                        }
                    }
                }

                .address {
                    align-self: center;
                    margin: 0;
                    padding: 0;
                    font-size: 1.0625rem;
                    line-height: 1.1765;
                }
            }

            .footer-nav {
                ul {
                    margin: 0 0 1.625rem;
                    padding: 0.625rem 0;
                    display: flex;
                    justify-content: center;
                    gap: 0;

                    li {
                        width: fit-content;

                        a {
                            padding: 0 0.5em;
                            display: block;
                            width: fit-content;
                            height: auto;
                            font-size: 1.625rem;
                            font-weight: bold;
                            color: var(--white);
                            letter-spacing: 0.05em;
                            line-height: 1;
                            text-align: center;
                            border-right: 1px solid var(--white);

                            &::after {
                                display: none;
                            }
                        }

                        &:last-child a {
                            border-right: none;
                        }
                    }
                }
            }
        }


        .copyright {
            small {
                font-size: 0.9375rem;
                line-height: 1.3333;
            }
        }
    }
}

/* ---------- PC レイアウト ----------- */
@media screen and (width > 1023px) {
    footer {
        .f-wrapper {
            padding: 7.25rem 0 1.5rem;

            address {
                margin-bottom: 5rem;
                grid-template-columns: 11.25rem 37.5rem;
                align-items: end;
                gap: 0 3rem;

                .footer-logo {
                    a {
                        img {
                            transition: all 0.3s;
                        }

                        &:hover,
                        &:focus {
                            img {
                                filter: drop-shadow(0 0 10px var(--white-bg))
                            }
                        }
                    }
                }

                .tel {
                    a {
                        margin: 0;
                        font-size: 1.125rem;
                        gap: 0.4rem;
                        pointer-events: none;
                    }
                }

                .address {
                    align-self: inherit;
                    font-size: 1.4375rem;
                    line-height: 1.2134;
                }
            }

            .footer-nav {
                ul {
                    margin: 0 0 5rem;
                    padding: 0.406rem 0;

                    li {
                        a {
                            height: 2.2rem;
                            font-size: 2rem;
                            transition: all 0.3s;

                            &:hover,
                            &:focus {
                                text-shadow: 0 0 15px var(--white);
                            }
                        }

                        &.current_page_item {
                            a:focus {
                                text-shadow: none;
                            }
                        }
                    }
                }
            }

            .copyright {
                small {
                    font-size: 1.25rem;
                    line-height: 1.3333;
                }
            }
        }
    }
}





/* ---------- ご相談を　エリア ---------- */

/* ----- sp レイアウト ----- */
.contact-link-area {
    .s-wrapper {
        padding: 0 1.625rem 4.875rem;

        h2 {
            text-align: center;
            font-size: 2.625rem;
            color: var(--site-bgcolor);
            font-family: var(--zen-maru);
            font-weight: var(--medium);
            line-height: 1.4524;
        }

        .mascot-img {
            margin: 1.5625rem auto 4.0625rem;
            width: 9.5625rem;

            img {
                width: 100%;
                height: auto;
                object-fit: contain;
            }
        }

        p {
            margin-bottom: 1.75em;
            font-size: 1.125rem;
            font-weight: var(--medium);
            line-height: 1.75;
            letter-spacing: 0.03em;
            text-align: center;
        }

        ul {
            margin: 0;
            padding: 0;
            margin-top: 4.0625rem;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.5625rem;

            li {
                width: 100%;

                a {
                    width: 100%;
                    height: 3.3125rem;
                    border-radius: 1.5625rem;
                    background-color: var(--link-bgcolor);
                    font-size: 1.125rem;
                    font-weight: var(--bold);
                    color: var(--white);
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    gap: 0.4rem;
                    transition: all 0.3s;

                    &:active {
                        background-color: var(--link-hover);
                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .contact-link-area {
        .s-wrapper {
            padding: 0 1.625rem 3.6875rem;

            h2 {
                font-size: 3.125rem;
            }

            .mascot-img {
                margin: 0.9375rem auto;
                width: 12.5rem;
            }

            p {
                font-size: 1.375rem;
            }

            ul {
                margin-top: 5.25rem;
                gap: 2.375rem;

                li {
                    width: 27.6875rem;

                    a {
                        height: 4.875rem;
                        border-radius: 2.35rem;
                        font-size: 1.65rem;
                        gap: 0.57rem;
                    }

                    .tel-link {
                        pointer-events: none;
                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 1023px) {
    .contact-link-area {
        .s-wrapper {
            padding-bottom: 6.1875rem;

            h2 {
                font-size: 4.375rem;
            }

            .mascot-img {
                margin: 2.75rem auto;
                width: 17.875rem;
            }

            p {
                font-size: 1.625rem;
            }

            ul {
                margin-top: 8.5rem;
                flex-direction: row;
                justify-content: center;
                gap: 4.4375rem;

                li {
                    width: 25.5625rem;

                    a {
                        height: 4.5rem;
                        border-radius: 2.1875rem;
                        font-size: 1.1875rem;
                        gap: 0.4375rem;

                        &.tel-link {
                            pointer-events: none;
                        }

                        &:hover,
                        &.contact-link:focus {
                            background-color: var(--link-hover);
                        }
                    }
                }
            }
        }
    }
}





/* ----------- ヒーローイメージ エリア ---------- */
/* ----- sp レイアウト ----- */

.hero-img-top,
.hero-img {
    position: fixed;
    z-index: -1;
    width: 100vw;

    img {
        width: 100%;
        height: auto;
    }
}
.hero-img {
    img {
        height: 30vw;
        object-position: center;
        object-fit: cover;
        overflow: hidden;
    }
}

.hero-word-area {
    padding-top: 1.0625rem;
    height: 30vw;/* 61.3333vw; */

    .word-jp {
        height: 2.3125rem;
        font-family: var(--zen-mincho);
        font-size: 1.4375rem;
        line-height: 2.3125rem;
        font-weight: var(--semibold);

    }

    .word-en {
        margin-top: 0.5rem;
        height: 1.375rem;
        font-family: var(--mrs-saint);
        font-size: 1.5625rem;
        line-height: 1.5625rem;
    }

    .word-en,
    .word-jp {
        text-align: center;
        background-color: var(--hero-word-bg);
        color: var(--return-btn-color);
    }
}

.home {
    .hero-word-area {
        height: 100vw;
    }
}

.container {
    width: 100vw;
    position: relative;
    background-color: var(--white-bg);
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .hero-img {
        height: 25vw;
        img {
            height: 25vw;
        }
    }
    .hero-word-area {
        padding-top: 0.75rem;
        height: 25vw;/* auto; 
        aspect-ratio: 768 / 321;*/

        .word-jp {
            height: 3.0625rem;
            font-size: 1.875rem;
            line-height: 3.0625rem;
        }

        .word-en {
            margin-top: 0.8125rem;
            height: 2.4375rem;
            font-size: 2.125rem;
            line-height: 1;
        }
    }

    .home {
        .hero-word-area {
            height: auto;
            aspect-ratio: 768 / 432;
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 1023px) {

    .hero-img-top,
    .hero-img {
        max-width: 1920px;
        margin: auto;
    }

    .hero-img {
        height: 250px;
        img {
            height: 250px;
        }
    }
    .hero-word-area {
        padding-top: 1.375rem;
        height: 250px;
        /* aspect-ratio: 1280 / 495; */

        .word-jp {
            height: 5.5rem;
            font-size: 2.9375rem;
            line-height: 5.5rem;
        }

        .word-en {
            margin-top: 1.3125rem;
            height: 3.75rem;
            font-size: 3.5625rem;
            line-height: 1;
        }
    }

    .home {
        .hero-word-area {
            aspect-ratio: 1280 / 720;
        }
    }
    .container {
        max-width: 1920px;
        margin: auto;
    }
}


/* ---------- トップページ ---------- */

/* ----- sp レイアウト ----- */
.home {
    .container {
        padding-bottom: 6.75rem;

        .vision-area {
            background-color: var(--vision-bgcolor);

            .s-wrapper {
                margin-bottom: 6.25rem;
                position: relative;

                .circle {
                    margin: auto;
                    width: 21.5rem;
                    height: 5.4375rem;

                    img {
                        width: 100%;
                        height: auto;
                        object-fit: contain;
                    }
                }

                .heading02-area {
                    margin: auto;
                    width: 20.5rem;
                    height: 8.9375rem;
                    position: relative;
                    background-size: contain;
                    background-position-y: bottom;
                    background-repeat: no-repeat;

                    .mascot-img {
                        position: absolute;
                        left: 5.5rem;
                        width: 10.75rem;

                        img {
                            width: 100%;
                            height: auto;
                            object-fit: contain;
                        }
                    }

                    h2 {
                        padding-top: 4.625rem;
                        font-family: var(--m1-rounded);
                        font-weight: var(--bold);
                        font-size: 1.4375rem;
                        text-align: center;
                        color: var(--vision-title);
                    }
                }

                .text-area {
                    .main-text {
                        margin-top: 1.5625rem;
                        margin-bottom: 1.5rem;
                        font-family: var(--m1-rounded);
                        font-weight: var(--medium);
                        font-size: 1.5rem;
                        color: var(--vision-title);
                        text-align: center;
                        letter-spacing: 0.1em;
                        text-indent: 0.7em;
                    }

                    p {
                        margin-bottom: 1.75rem;
                        color: var(--border-orcolor);
                        text-align: center;
                        font-family: var(--m1-rounded);
                        font-weight: var(--medium);
                        line-height: 1.75;
                        text-indent: 0.7em;
                        letter-spacing: 0.1em;

                        .easy,
                        .pace,
                        .space {
                            font-size: 1.4375rem;
                            color: var(--vision-title);
                        }

                        .space {
                            color: var(--vision-title);
                        }

                        &:last-child {
                            margin-bottom: 1.5rem;
                        }
                    }
                }

                .flower-img {
                    position: absolute;
                    bottom: 1.875rem;
                    right: 1.375rem;
                    width: 3.6875rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }
            }
        }

        .traits-area {
            .s-wrapper {
                margin-bottom: 8.875rem;

                .heading02-area {
                    position: relative;

                    .mascot-img {
                        position: absolute;
                        top: -4.0625rem;
                        right: 1.5rem;
                        width: 7.0625rem;

                        img {
                            width: 100%;
                            height: auto;
                        }
                    }

                    h2 {
                        margin-left: 1.5625rem;
                        margin-bottom: 4rem;
                        display: flex;
                        align-items: end;
                        gap: 0.5rem;

                        img {
                            width: 13.75rem;
                            height: auto;
                        }

                        font-family: var(--zen-maru);
                        font-weight: var(--medium);
                        font-size: 1.375rem;
                    }
                }

                .traits-img {
                    margin: 0 1rem 3rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                p {
                    font-size: 1.0625rem;
                    line-height: 1.75;
                    letter-spacing: 0.1em;
                    margin: 0 1.375rem calc(1.0625rem * 1.75) 1.8125rem;

                    &:last-child {
                        margin-bottom: 1.5rem;
                    }
                }
            }
        }

        .works-area {
            .s-wrapper {
                margin-bottom: 5.625rem;

                .heading02-area {
                    position: relative;

                    .mascot-img {
                        position: absolute;
                        top: -7.375rem;
                        right: 0.625rem;
                        width: 11.875rem;

                        img {
                            width: 100%;
                            height: auto;
                        }
                    }

                    h2 {
                        margin-left: 1.4375rem;
                        margin-bottom: 4.3125rem;
                        display: flex;
                        align-items: end;
                        font-family: var(--zen-maru);
                        font-weight: var(--medium);
                        font-size: 1.375rem;
                        line-height: 1.5;

                        img {
                            width: 13.75rem;
                            height: auto;
                        }

                        span {
                            margin-bottom: -1.5em;
                        }
                    }
                }

                .works-list {
                    margin: 0 1rem;
                    padding: 0;

                    li {
                        margin-top: 2.75rem;

                        p {
                            margin-bottom: 1.125rem;
                            font-size: 1.0625rem;
                            font-weight: var(--bold);
                            line-height: 1.1765;
                            text-align: center;

                            &::before {
                                content: "【";
                            }

                            &::after {
                                content: "】";
                            }
                        }

                        img {
                            width: 100%;
                            height: 7.875rem;
                            object-position: center;
                            object-fit: cover;
                            border-radius: 0.9375rem;
                        }

                        &::after {
                            margin: auto;
                            margin-top: 3.3125rem;
                            display: block;
                            content: "";
                            height: 1px;
                            width: 18.1875rem;
                            border-bottom: 1px dashed var(--border-orcolor);
                        }

                        &:last-child {
                            margin-bottom: 5.6875rem;

                            &::after {
                                display: none;
                            }
                        }
                    }

                }
            }
        }

        .working-image {
            margin-bottom: 7.625rem;

            .heading03-area {
                position: relative;

                .mascot-img {
                    position: absolute;
                    top: -2.4375rem;
                    right: 5.9375rem;
                    width: 4.8125rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                P {
                    margin-left: 5.9375rem;
                    margin-bottom: 0.75rem;
                    font-size: 1.5625rem;
                }

                &::after {
                    margin: auto;
                    content: "";
                    display: block;
                    height: 1px;
                    width: 16.25rem;
                    border-bottom: 1px dashed var(--border-orcolor);
                }
            }

            /* prefers-reduced-motion: アニメーション無効化 */
            @media (prefers-reduced-motion: reduce) {
                .carousel-track {
                    transition: none !important;
                }
            }

            .carousel-wrap {
                margin-bottom: 3.5625rem;
                position: relative;
                width: 100%;
                padding: 1.5625rem 0 0.5rem;
                box-sizing: border-box;
                overflow: hidden;
                user-select: none;
            }

            .carousel-track-container {
                width: 100%;
                overflow: visible;
                position: relative;
                height: 16.125rem;
            }

            .carousel-track {
                display: flex;
                align-items: center;
                height: 100%;
                transition: transform .5s cubic-bezier(.4, 0, .2, 1);
            }

            .carousel-slide {
                padding: 1rem 0.71875rem;
                flex: 0 0 71.4286%;
                max-width: 71.4286%;
                height: 280px;
                overflow: hidden;
                position: relative;
                flex-shrink: 0;
            }

            .carousel-slide img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                display: block;
                pointer-events: none;
            }

            /* インジケーター */
            .indicators {
                display: flex;
                justify-content: center;
                gap: 0.21rem;
                margin-top: 1.25rem;
            }

            /* タッチターゲットを44×44pxに確保しつつ、見た目は8×8px */
            .dot {
                width: 8px;
                height: 8px;
                border-radius: 50%;
                background: var(--dot-color);
                border: none;
                padding: 0px;
                /* クリック領域を44px相当に拡大 */
                margin: 0px;
                /* 隣接ドットとの見た目の間隔を維持 */
                box-sizing: content-box;
                cursor: pointer;
                transition: background .3s, transform .3s;
                position: relative;
            }

            /* paddingで広げた領域内に実際のドットを描く */
            .dot::after {
                content: '';
                position: absolute;
                inset: 0;
                border-radius: 50%;
                background: var(--dot-color);
                transition: background .3s, transform .3s;
            }

            .dot.active::after {
                background: var(--dot-active);
            }

            /* フォーカスリングをdot本体に表示 */
            .dot:focus-visible {
                outline: 2px solid #555;
                outline-offset: 2px;
                border-radius: 50%;
            }

            /* 一時停止ボタン */
            .pause-btn {
                position: absolute;
                bottom: 0;
                right: 1.25rem;
                background: var(--white);
                border: 0.76px solid var(--text-color);
                border-radius: 50%;
                /* padding: 0.5rem 0.46rem; */
                width: 1.375rem;
                height: 1.375rem;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
                color: black;

                &:has(span.is-play) {
                    background-color: var(--site-bgcolor);
                    border-color: var(--site-bgcolor);
                }
            }

            /* アイコン共通 */
            .btn-icon {
                display: inline-block;
                width: 0.3rem;
                height: 0.31rem;
                position: relative;
                flex-shrink: 0;
            }

            /* ── 一時停止アイコン：縦二本線 ── */
            .btn-icon::before,
            .btn-icon::after {
                content: '';
                position: absolute;
                top: -1px;
                width: 0.125rem;
                height: 0.4375rem;
                background: currentColor;
            }

            .btn-icon::before {
                left: -0.07rem;
            }

            .btn-icon::after {
                left: 0.23rem;
            }

            /* ── 再生アイコン：右向き三角 ── */
            .btn-icon.is-play::before {
                width: 0;
                height: 0;
                background: transparent;
                border-radius: 0;
                border-style: solid;
                border-width: 0.26rem 0 0.26rem 0.46rem;
                border-color: transparent transparent transparent var(--white);
                top: -0.1rem;
                left: -0.01rem;
            }

            .btn-icon.is-play::after {
                display: none;
                /* 三角は::beforeだけで描く */
            }

            .pause-btn:focus-visible {
                outline: 2px solid #555;
                outline-offset: 2px;
            }
        }

        .flow-area {
            .s-wrapper {
                .heading02-area {
                    margin-bottom: 3.25rem;
                    position: relative;

                    .heading-bg {
                        position: absolute;
                        left: 5.3125rem;
                        top: 0;
                        width: 12.75rem;

                        img {
                            width: 100%;
                            height: auto;
                        }
                    }

                    .mascot-img {
                        position: absolute;
                        left: 6.0625rem;
                        top: -4.1875rem;
                        width: 11.9375rem;

                        img {
                            width: 100%;
                            height: auto;
                        }
                    }

                    h2 {
                        position: relative;
                        z-index: 1;
                        font-family: var(--zen-maru);
                        text-align: center;
                        font-size: 1.875rem;
                        line-height: 10.5rem;
                        font-weight: var(--medium);
                        text-indent: -1em;
                    }
                }

                .flow-list {
                    margin: 0 1rem 7rem;

                    dt {
                        margin-top: 0.6875rem;
                        margin-bottom: 1.1875rem;
                        background-color: var(--site-palecolor);
                        border-radius: 0.5rem;

                        .step {
                            padding-top: 0.4375rem;
                            font-size: 1.0625rem;
                            font-weight: var(--black);
                            line-height: 1.1765;

                            &::after {
                                display: block;
                                content: "";
                                margin-top: 0.375rem;
                                margin-left: 2.5rem;
                                width: 16.75rem;
                                height: 1px;
                                border-bottom: 1px dashed var(--site-bgcolor);
                            }
                        }

                        .title {
                            padding: 0.4375rem 0;
                            font-weight: var(--bold);
                            line-height: 1.1875;
                        }

                        .step,
                        .title {
                            text-align: center;
                            color: var(--site-bgcolor);
                        }
                    }

                    dd {
                        display: flex;
                        align-items: center;
                        flex-wrap: wrap;
                        gap: 1.25rem 2.375rem;

                        p {
                            /* flex: 1; */
                            width: 12.8125rem;
                        }

                        &:first-of-type {
                            padding-left: 0.6875rem;

                            img {
                                width: 4.8125rem;
                                height: auto;
                            }

                            &::after {
                                margin-left: calc(11.0625rem - 0.6875rem);
                            }
                        }

                        &:nth-of-type(2) {
                            padding-left: 1.4375rem;

                            img {
                                width: 3.375rem;
                                height: auto;
                            }

                            &::after {
                                margin-left: calc(11.0625rem - 1.4375rem);
                            }
                        }

                        &:nth-of-type(3) {
                            padding-left: 0.6875rem;

                            img {
                                width: 4.875rem;
                                height: auto;
                            }

                            &::after {
                                margin-left: calc(11.0625rem - 0.6875rem);
                            }
                        }

                        &:nth-last-of-type(2) {
                            padding-left: 1.3125rem;

                            img {
                                width: 3.5625rem;
                                height: auto;
                            }

                            &::after {
                                margin-left: calc(11.0625rem - 1.3125rem);
                            }
                        }

                        &:last-of-type {
                            img {
                                width: 6rem;
                                height: auto;
                            }

                            &::after {
                                display: none;
                            }
                        }

                        &::after {
                            content: "▼";
                            display: block;
                            font-size: 1.4375rem;
                            color: var(--site-bgcolor);
                        }
                    }
                }
            }
        }


        .news-area {
            .s-wrapper {
                margin: 0;

                .news-list {
                    margin: 0 1rem;
                    padding: 1.1875rem 2.375rem;
                    border-radius: 0.625rem;
                    border: 1px solid var(--border-graycolor);

                    h2 {
                        margin-left: 0.5rem;
                        margin-bottom: 0.375rem;
                        font-size: 1.125rem;
                    }

                    ul {
                        margin: 0;
                        padding: 0;

                        li {
                            height: fit-content;
                            border-top: 1px solid var(--border-graycolor);

                            &:last-child {
                                border-bottom: 1px solid var(--border-graycolor);
                            }

                            a {
                                height: fit-content;
                                margin: 0.375rem 0;

                                .news-date {
                                    display: inline-block;
                                    margin-left: 0.25rem;
                                    margin-right: 0.5625rem;
                                    font-size: 0.875rem;
                                    line-height: 1.0625rem;
                                    width: 7.5em;
                                }

                                .news-cat {
                                    display: inline-block;
                                    width: 11.7em;
                                    text-align: center;
                                    font-size: 0.75rem;
                                    color: var(--white);
                                    line-height: 1.0625rem;
                                    background-color: var(--link-bgcolor);
                                }

                                .news-title {
                                    padding: 0.375rem 0.25rem 0.25rem;
                                    line-height: 1.1875;
                                    white-space: nowrap;
                                    overflow: hidden;
                                    text-overflow: ellipsis;
                                }
                            }
                        }

                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .home {
        .container {
            padding-bottom: 6.25rem;

            .vision-area {
                .s-wrapper {
                    margin-bottom: 8.125rem;

                    .circle {
                        margin-left: min(calc(50% - 50vw), auto);
                        margin-right: min(calc(50% - 50vw), auto);
                        width: 48rem;
                        height: 12.125rem;
                    }

                    .heading02-area {
                        margin-top: -6.0625rem;
                        width: 27.4375rem;
                        height: 12rem;

                        .mascot-img {
                            left: 6.5rem;
                            width: 14.4375rem;
                        }

                        h2 {
                            padding-top: 6.6875rem;
                            font-size: 1.6875rem;
                        }
                    }

                    .text-area {
                        .main-text {
                            margin-top: 2.5rem;
                            margin-bottom: 3.125rem;
                            font-size: 1.875rem;
                        }

                        p {
                            margin-bottom: calc(1.313rem * 1.75);
                            font-size: 1.313rem;

                            .easy,
                            .pace,
                            .space {
                                font-size: 2rem;
                            }

                            &:last-child {
                                margin-bottom: 2.5625rem;
                            }
                        }
                    }

                    .flower-img {
                        bottom: 8.5rem;
                        right: 5.438rem;
                        width: 5.625rem;
                    }
                }
            }

            .traits-area {
                .s-wrapper {
                    margin-bottom: 15.9375rem;

                    .heading02-area {

                        .mascot-img {
                            top: -5.3125rem;
                            right: 4.0625rem;
                            width: 12.43rem;
                        }

                        h2 {
                            margin-left: 4.125rem;
                            margin-bottom: 6rem;
                            gap: 0.75rem;

                            img {
                                width: 25rem;
                            }

                            font-size: 2rem;
                        }
                    }

                    .traits-img {
                        margin: 0 1.5rem 2.75rem;
                    }

                    p {
                        font-size: 1.4375rem;
                        letter-spacing: normal;
                        margin: 0 2.875rem calc(1.4375rem * 1.75);

                        &:last-child {
                            margin-bottom: 0;
                        }
                    }
                }
            }

            .works-area {
                .s-wrapper {
                    margin-bottom: 7.375rem;

                    .heading02-area {
                        .mascot-img {
                            top: -7.9375rem;
                            right: 4.3125rem;
                            width: 14rem;
                        }

                        h2 {
                            margin-left: 5.375rem;
                            margin-bottom: 4.375rem;
                            font-size: 1.4375rem;
                            display: flex;
                            align-items: center;
                            gap: 0.75rem;

                            img {
                                width: 25rem;
                            }

                            span {
                                margin-bottom: 0;
                            }
                        }
                    }

                    .works-list {
                        margin: 0 1.8125rem;
                        padding: 0;
                        display: grid;
                        justify-content: center;
                        grid-template-columns: repeat(2, 20.875rem);
                        gap: 7.125rem 2.5625rem;

                        li {
                            margin-top: 0;

                            p {
                                margin-bottom: 1.625rem;
                                font-size: 1.5625rem;
                                line-height: 1.2;
                            }

                            img {
                                width: 100%;
                                height: 20.875rem;
                                border-radius: 1.375rem;
                            }

                            &::after {
                                display: none;
                            }

                            &:last-child {
                                margin-bottom: 0rem;
                            }
                        }

                    }
                }
            }

            .working-image {
                margin-bottom: 7.375rem;

                .heading03-area {
                    margin-bottom: 3.8758rem;

                    .mascot-img {
                        top: -2.875rem;
                        right: 13rem;
                        width: 9.125rem;
                    }

                    P {
                        margin-left: 13.125rem;
                        margin-bottom: 1.5rem;
                        font-size: 2.9375rem;
                    }

                    &::after {
                        width: 30.625rem;
                        border-bottom: 2.66px dashed var(--border-orcolor);
                    }
                }

                .carousel-wrap {
                    margin-left: calc(50% - 50vw);
                    margin-right: calc(50% - 50vw);
                    margin-bottom: 0;
                    width: 100vw;
                    padding: 0.9375rem 0;
                }

                .carousel-track-container {
                    height: 32.4375rem;
                }

                .carousel-slide {
                    padding: 1rem 1.531rem;
                    flex: 0 0 71.4286%;
                    max-width: 71.4286%;
                    height: 32.4375rem;
                }

                /* インジケーター */
                .indicators {
                    gap: 0.29rem;
                    margin-top: 0.5625rem;
                }

                /* タッチターゲットを44×44pxに確保しつつ、見た目は8×8px */
                .dot {
                    width: 10px;
                    height: 10px;
                    border-radius: 50%;
                }

                /* 一時停止ボタン */
                .pause-btn {
                    position: absolute;
                    bottom: 0;
                    right: 1.875rem;
                    border: 1.21px solid var(--text-color);
                    width: 2.1875rem;
                    height: 2.1875rem;
                }

                /* アイコン共通 */
                .btn-icon {
                    top: 1px;
                    width: 0.5rem;
                    height: 0.5rem;
                }

                /* ── 一時停止アイコン：縦二本線 ── */
                .btn-icon::before,
                .btn-icon::after {
                    width: 0.15rem;
                    height: 0.5rem;
                }

                .btn-icon::before {
                    left: -0.03rem;
                }

                .btn-icon::after {
                    left: 0.345rem;
                }

                /* ── 再生アイコン：右向き三角 ── */
                .btn-icon.is-play::before {
                    border-width: 0.39rem 0 0.39rem 0.69rem;
                    top: -0.15rem;
                    left: 0rem;
                }
            }

            .flow-area {
                .s-wrapper {
                    .heading02-area {
                        margin-bottom: 6.75rem;

                        .heading-bg {
                            z-index: 1;
                            left: 11.125rem;
                            top: 0;
                            width: 26.6rem;
                        }

                        .mascot-img {
                            z-index: 2;
                            left: 12.5625rem;
                            top: -8.75rem;
                            width: 24.813rem;
                        }

                        h2 {
                            position: relative;
                            z-index: 3;
                            font-size: 3.875rem;
                            line-height: 21.875rem;
                            text-indent: -1em;
                        }
                    }

                    .flow-list {
                        margin: 0 1.6875rem 12.1875rem;

                        dt {
                            margin-top: 1.5rem;
                            margin-bottom: 1.9375rem;
                            border-radius: 1rem;

                            .step {
                                /* ここから */
                                padding-top: 0.875rem;
                                font-size: 2.1875rem;
                                line-height: 1.2;

                                &::after {
                                    margin-top: 0.75rem;
                                    margin: auto;
                                    width: 34.9375rem;
                                }
                            }

                            .title {
                                padding: 0.875rem 0;
                                font-size: 2.0625rem;
                                line-height: 1.212;
                            }
                        }

                        dd {
                            display: flex;
                            align-items: center;
                            flex-wrap: wrap;
                            gap: 2.5rem 4.9375rem;

                            p {
                                width: 12em;
                                font-size: 2.0625rem;
                                line-height: 1.7;
                            }

                            &:first-of-type {
                                padding-left: 1.5rem;

                                img {
                                    width: 10rem;
                                }

                                &::after {
                                    margin-left: calc(23rem - 1.5rem);
                                }
                            }

                            &:nth-of-type(2) {
                                padding-left: 3rem;

                                img {
                                    width: 7rem;
                                }

                                &::after {
                                    margin-left: calc(23rem - 3rem);
                                }
                            }

                            &:nth-of-type(3) {
                                padding-left: 1.4375rem;

                                img {
                                    width: 10.125rem;
                                }

                                &::after {
                                    margin-left: calc(23rem - 1.4375rem);
                                }
                            }

                            &:nth-last-of-type(2) {
                                padding-left: 2.812rem;

                                img {
                                    width: 7.375rem;
                                }

                                &::after {
                                    margin-left: calc(23rem - 2.812rem);
                                }
                            }

                            &:last-of-type {
                                img {
                                    width: 12.42rem;
                                }
                            }

                            &::after {
                                font-size: 3rem;
                            }
                        }
                    }
                }
            }


            .news-area {
                margin: 2.5625rem 0 0;

                .s-wrapper {
                    margin: 0 auto;

                    .news-list {
                        margin: 0 1.5625rem;
                        padding: 1.0625rem 2.0625rem;

                        h2 {
                            margin-left: 1.25rem;
                            margin-bottom: 0.5625rem;
                            font-size: 1.25rem;
                        }

                        ul {
                            li {
                                a {
                                    display: flex;
                                    align-items: center;
                                    margin: 1.0625rem 0 0.9375rem;

                                    .news-date {
                                        margin-left: 0.625rem;
                                        margin-right: 0.5625rem;
                                        font-size: 1rem;
                                        line-height: 1.1875rem;
                                        width: 8em;
                                        /* white-space: nowrap; */
                                    }

                                    .news-cat {
                                        width: 10.625rem;
                                        font-size: 1.0625rem;
                                        line-height: 1.1875rem;
                                    }

                                    .news-title {
                                        margin-left: 1.5625rem;
                                        padding: 0;
                                        width: 22rem;
                                        font-size: 1.125rem;
                                        line-height: 1.1875;
                                    }
                                }
                            }

                        }
                    }
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 1023px) {
    .home {
        .container {
            padding-bottom: 12.9375rem;

            .vision-area {
                .s-wrapper {
                    margin-bottom: 7.25rem;

                    .circle {
                        margin-left: 8.75rem;
                        margin-right: 8.75rem;
                        width: 62.5rem;
                        height: auto;
                    }

                    .heading02-area {
                        margin-top: 12.75rem;
                        width: 46.25rem;
                        height: 11rem;

                        .mascot-img {
                            top: -9.125rem;
                            left: 12.375rem;
                            width: 24.25rem;
                        }

                        h2 {
                            padding-top: 1.5rem;
                            font-size: 3.25rem;
                        }
                    }

                    .text-area {
                        .main-text {
                            margin-top: 4.1875rem;
                            margin-bottom: 3.3125rem;
                            font-size: 3rem;
                            line-height: 1.75;
                        }

                        p {
                            margin-bottom: calc(2.25rem * 1.75);
                            font-size: 2.25rem;

                            .easy,
                            .pace,
                            .space {
                                font-size: 3.25rem;
                            }

                            &:last-child {
                                margin-bottom: 3.0625rem;
                            }
                        }
                    }

                    .flower-img {
                        bottom: 8.9375rem;
                        right: 10.375rem;
                        width: 11.437rem;
                    }
                }
            }

            .traits-area {
                .s-wrapper {
                    margin-bottom: 19rem;

                    .heading02-area {

                        .mascot-img {
                            top: -9.625rem;
                            right: 16.125rem;
                            width: 16.875rem;
                        }

                        h2 {
                            margin-left: 16.875rem;
                            margin-bottom: 9.0625rem;
                            gap: 0.6525rem;

                            img {
                                width: 31rem;
                            }

                            font-size: 1.8125rem;
                        }
                    }

                    .traits-img {
                        margin: 0 9.5625rem 6.25rem;
                    }

                    p {
                        /* ここから */
                        font-size: 1.875rem;
                        margin: 0 11.1875rem calc(1.875rem * 1.75);

                        &:last-child {
                            margin-bottom: calc(1.875rem * 1.75);
                        }
                    }
                }
            }

            .works-area {
                .s-wrapper {
                    margin-bottom: 15.25rem;

                    .heading02-area {
                        .mascot-img {
                            top: -9.625rem;
                            right: 16.125rem;
                            width: 16.875rem;
                        }

                        h2 {
                            margin-left: 17.625rem;
                            margin-bottom: 9.625rem;
                            font-size: 1.75rem;
                            gap: 0.9375rem;

                            img {
                                width: 30.1875rem;
                            }
                        }
                    }

                    .works-list {
                        margin: 0 9.375rem;
                        grid-template-columns: repeat(2, 29.1875rem);
                        gap: 9.375rem 2.75rem;

                        li {

                            p {
                                margin-bottom: 2.3125rem;
                                font-size: 2.1875rem;
                            }

                            div {
                                width: 100%;
                                height: 29.1875rem;
                                border-radius: 1.9375rem;
                                overflow: hidden;

                                img {
                                    width: 100%;
                                    height: 29.1875rem;
                                    border-radius: 1.9375rem;
                                    transition: all 0.7s ease-in-out;

                                    &:hover,
                                    &:focus {
                                        scale: 1.1;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            .working-image {
                margin-bottom: 27.75rem;

                .heading03-area {
                    margin-bottom: 8.12rem;

                    .mascot-img {
                        top: -4.525rem;
                        right: 23.3125rem;
                        width: 14rem;
                    }

                    P {
                        margin-left: 23.3125rem;
                        margin-bottom: 3.125rem;
                        font-size: 3.75rem;
                    }

                    &::after {
                        border-width: 4px;
                        width: 46.875rem;
                    }
                }

                .carousel-wrap {
                    margin: 0;
                    margin-bottom: 1.0625rem;
                    padding: 1.5rem 0;
                    width: 100%;
                }

                .carousel-track-container {
                    height: 51.9375rem;
                }

                .carousel-slide {
                    padding: 0 2.4375rem;
                    flex: 0 0 71.4286%;
                    max-width: 71.4286%;
                    height: 51.9375rem;
                }

                /* インジケーター */
                .indicators {
                    gap: 0.375rem;
                    margin-top: 02.4375rem;
                }


                .dot {
                    width: 13px;
                    height: 13px;
                }

                /* 一時停止ボタン */
                .pause-btn {
                    bottom: 0;
                    /* ここから */
                    right: 10rem;
                    border: 1.21px solid var(--text-color);
                    width: 3.0625rem;
                    height: 3.0625rem;
                }

                /* アイコン共通 */
                .btn-icon {
                    width: 0.75rem;
                    height: 0.75rem;
                }

                /* ── 一時停止アイコン：縦二本線 ── */
                .btn-icon::before,
                .btn-icon::after {
                    width: 0.1875rem;
                    height: 0.75rem;
                }

                .btn-icon::before {
                    left: 0.05rem;
                }

                .btn-icon::after {
                    left: 0.55rem;
                }

                /* ── 再生アイコン：右向き三角 ── */
                .btn-icon.is-play::before {
                    border-width: 0.585rem 0 0.585rem 1.035rem;
                    top: -0.3rem;
                    left: 0rem;
                }
            }

            .flow-area {
                .s-wrapper {
                    .heading02-area {
                        margin-bottom: 6.75rem;

                        .heading-bg {
                            left: 25.0625rem;
                            top: 0;
                            width: 29.875rem;
                        }

                        .mascot-img {
                            left: 26.6875rem;
                            top: -9.8125rem;
                            width: 27.875rem;
                        }

                        h2 {
                            font-size: 4.375rem;
                            line-height: 24.5625rem;
                        }
                    }

                    .flow-list {
                        margin: 0 9.0625rem 13.75rem;

                        dt {
                            margin-top: 2.4375rem;
                            margin-bottom: 7.9375rem;
                            border-radius: 1.44rem;

                            .step {
                                padding-top: 1.25rem;
                                font-size: 3.0625rem;

                                &::after {
                                    margin-top: 0.94rem;
                                    width: 49.1875rem;
                                }
                            }

                            .title {
                                padding: 1.2rem 0;
                                font-size: 2.9375rem;
                                line-height: 1.2;
                            }
                        }

                        dd {

                            p {
                                width: 14em;
                                font-size: 2.5rem;
                            }

                            &:first-of-type {
                                padding-left: 6rem;
                                gap: 4.25rem 4.1875rem;

                                img {
                                    width: 14.0625rem;
                                }

                                &::after {
                                    margin-left: calc(28.8125rem - 6rem);
                                }
                            }

                            &:nth-of-type(2) {
                                padding-left: 6.5625rem;
                                gap: 4.25rem 7.875rem;


                                img {
                                    width: 9.875rem;
                                }

                                &::after {
                                    margin-left: calc(28.8125rem - 6.5625rem);
                                }
                            }

                            &:nth-of-type(3) {
                                padding-left: 5.125rem;

                                img {
                                    width: 14.25rem;
                                }

                                &::after {
                                    margin-left: calc(28.8125rem - 5.125rem);
                                }
                            }

                            &:nth-last-of-type(2) {
                                padding-left: 6.75rem;
                                gap: 4.25rem 7.125rem;

                                img {
                                    width: 10.4375rem;
                                }

                                &::after {
                                    margin-left: calc(28.8125rem - 6.75rem);
                                }
                            }

                            &:last-of-type {
                                padding-left: 2.75rem;
                                gap: 4.25rem 4rem;

                                img {
                                    width: 17.5625rem;
                                }
                            }

                            &::after {
                                font-size: 4.1875rem;
                            }
                        }
                    }
                }
            }


            .news-area {
                margin: 10rem 0 0;

                .s-wrapper {
                    .news-list {
                        margin: 0 9.375rem;
                        padding: 3.4375rem 3rem;

                        h2 {
                            margin-left: 0.8125rem;
                            margin-bottom: 0.875rem;
                            font-size: 1.5rem;
                        }

                        ul {
                            li {
                                a {
                                    margin: 0;
                                    padding: 1.6875rem 0 1.4375rem;
                                    transition: all 0.3s;

                                    .news-date {
                                        margin-left: 0.8125rem;
                                        margin-right: 2.5rem;
                                        font-size: 1.125rem;
                                        line-height: 1.4375rem;
                                        width: 8em;
                                        /* white-space: nowrap; */
                                    }

                                    .news-cat {
                                        width: 10.335rem;
                                        font-size: 1.0625rem;
                                        line-height: 1.4375rem;
                                        transition: all 0.3s;
                                    }

                                    .news-title {
                                        margin-left: 2.4375rem;
                                        width: 26em;
                                        line-height: 1.4375rem;
                                    }

                                    &:hover,
                                    &:focus {
                                        color: black;

                                        .news-cat {
                                            background-color: var(--link-hover);
                                        }
                                    }
                                }
                            }

                        }
                    }
                }
            }
        }
    }
}





/* ---------- 新着情報 ページ ---------- */
/* ----- sp レイアウト ----- */
.news-page {
    .news-area {
        .s-wrapper {
            padding-top: 4rem;

            .news-list {
                .heading-area {
                    position: relative;
                    margin: 0 0 1.375rem;

                    .mascot-img {
                        position: absolute;
                        top: -2rem;
                        left: 12.375rem;
                        width: 5.3125rem;

                        img {
                            width: 100%;
                            height: auto;
                        }
                    }

                    h1 {
                        margin-left: 6rem;
                        font-size: 1.5625rem;
                        font-weight: var(--regular);
                        line-height: 1.2;
                    }

                    &::after {
                        margin: 0.75rem auto 0;
                        display: block;
                        content: "";
                        height: 0;
                        width: 16.25rem;
                        border-bottom: 1.41px dashed var(--border-orcolor);
                    }
                }

                ul {
                    margin: 0;
                    padding: 0;
                    display: grid;
                    grid-template-columns: 21.4375rem;
                    justify-content: center;
                    gap: 1.375rem;

                    li {
                        display: flex;
                        border-radius: 0.3125rem;
                        border: 1px solid var(--border-graycolor);
                        background-color: var(--vision-bgcolor);
                        overflow: hidden;

                        .news-thumb {
                            position: relative;

                            a {
                                display: grid;
                                place-items: center;
                                width: 7.25rem;
                                height: 6.0625rem;
                                background-color: var(--news-img-bgcolor);
                                margin-right: 1.125rem;


                                img {
                                    width: 100%;
                                    height: 100%;
                                    object-fit: cover;
                                    object-position: center;
                                    overflow: hidden;
                                }

                                div {
                                    width: 80%;

                                    img {
                                        width: 100%;
                                        height: auto;
                                        opacity: 0.5;
                                    }
                                }

                                .news-new {
                                    display: block;
                                    position: absolute;
                                    top: 8px;
                                    left: 0;
                                    background: var(--link-bgcolor);
                                    color: white;
                                    padding: 2px 10px;
                                    font-size: 10px;
                                    font-weight: bold;
                                }
                            }
                        }

                        .news-meta {
                            padding-right: 1.1875rem;

                            a {
                                .time-cat-area {
                                    margin: 1rem 0 0.6rem;
                                    display: flex;
                                    align-items: center;

                                    .news-date {
                                        width: 7.5em;
                                        font-size: 0.875rem;
                                    }

                                    .news-cat {
                                        padding: 0.15625rem 0;
                                        display: block;
                                        line-height: 1.4166;
                                        font-size: 0.75rem;
                                        color: var(--white);
                                        text-align: center;
                                        background-color: var(--link-bgcolor);
                                        width: 7em;
                                        white-space: nowrap;
                                    }
                                }

                                .news-title {
                                    display: -webkit-box;
                                    -webkit-box-orient: vertical;
                                    -webkit-line-clamp: 2;
                                    /* 2行で省略 */
                                    height: calc(0.875rem * 1.4 * 2);
                                    font-size: 0.875rem;
                                    font-weight: var(--regular);
                                    line-height: 1.4;
                                    overflow: hidden;
                                    overflow: clip;
                                    line-clamp: 2;
                                }
                            }
                        }
                    }
                }
            }

            .pagination {
                .page-list {
                    margin: 1.875rem 1rem 4.0625rem;
                    padding: 0;
                    display: flex;
                    justify-content: space-between;

                    li {
                        width: 7.5rem;
                        height: 1.3125rem;
                    }

                    .first-list,
                    .last-list {

                        a,
                        .disabled {
                            display: flex;
                            align-items: center;
                            gap: 0.25rem;
                            width: 100%;
                            height: 100%;
                            border-radius: 0.6563rem;

                            .prev-arrow,
                            .next-arrow {
                                height: 0.5625rem;
                                display: block;
                                border-top: 0.3125rem solid transparent;
                                border-bottom: 0.3125rem solid transparent;
                            }

                            .text {
                                font-size: 0.75rem;
                                font-weight: var(--bold);
                            }
                        }

                        .disabled {
                            pointer-events: none;
                            opacity: 0.5;
                        }
                    }

                    .first-list {

                        a,
                        .disabled {
                            background-color: var(--link-bgcolor);

                            .prev-arrow {
                                margin-left: 1.125rem;
                                border-right: 0.5625rem solid var(--white);
                            }

                            .text {
                                color: var(--white);
                            }
                        }
                    }

                    .last-list {

                        a,
                        .disabled {
                            background-color: var(--vision-bgcolor);
                            border: 1px solid var(--link-bgcolor);
                            justify-content: flex-end;

                            .next-arrow {
                                margin-right: 1.125rem;
                                border-left: 0.5625rem solid var(--link-bgcolor);
                            }

                            .text {
                                color: var(--link-bgcolor);
                            }
                        }
                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .news-page {
        .news-area {
            .s-wrapper {
                padding-top: 7.3125rem;

                .news-list {
                    .heading-area {
                        margin: 0 0 5.3125rem;

                        .mascot-img {
                            top: -4.625rem;
                            left: 24.25rem;
                            width: 11.5rem;
                        }

                        h1 {
                            margin-left: 13.125rem;
                            font-size: 2.9375rem;
                        }

                        &::after {
                            margin: 1.5rem auto 0;
                            width: 30.625rem;
                            border-bottom: 2.66px dashed var(--border-orcolor);
                        }
                    }

                    ul {
                        margin: 0;
                        padding: 0;
                        display: grid;
                        grid-template-columns: repeat(2, 19rem);
                        justify-content: center;
                        gap: 1.5rem;

                        li {
                            display: flex;
                            flex-direction: column;

                            .news-thumb {
                                a {
                                    width: 100%;
                                    height: 8rem;
                                    margin-right: 0;

                                    .news-new {
                                        display: block;
                                        padding: 3.5px 8px;
                                        top: 18px;
                                        width: 11.5885vw;
                                        text-align: center;
                                        font-size: 2.3437vw;
                                        font-weight: normal;
                                    }
                                }
                            }

                            .news-meta {
                                padding: 0 1.75rem 1rem;

                                a {
                                    .time-cat-area {
                                        margin: 1.3125rem 0 0.6rem;

                                        .news-date {
                                            width: 10em;
                                            font-size: 1rem;
                                        }

                                        .news-cat {
                                            padding: 0.1062rem 0;
                                            line-height: 1.2329;
                                            font-size: 0.9125rem;
                                            width: 7.25rem;
                                        }
                                    }

                                    .news-title {
                                        -webkit-line-clamp: 3;
                                        /* 2行で省略 */
                                        height: calc(0.9375rem * 1.75 * 3);
                                        font-size: 0.9375rem;
                                        line-height: 1.75;
                                        line-clamp: 3;
                                    }
                                }
                            }
                        }
                    }
                }

                .pagination {
                    .page-list {
                        margin: 2.6875rem 4rem 5.0625rem;

                        li {
                            width: 13.4375rem;
                            height: 2.375rem;
                        }

                        .first-list,
                        .last-list {

                            a,
                            .disabled {
                                gap: 0.4375rem;
                                border-radius: 1.1875rem;

                                .prev-arrow,
                                .next-arrow {
                                    height: 1.125rem;
                                    border-top: 0.5625rem solid transparent;
                                    border-bottom: 0.5625rem solid transparent;
                                }

                                .text {
                                    font-size: 0.8125rem;
                                }
                            }
                        }

                        .first-list {

                            a,
                            .disabled {

                                .prev-arrow {
                                    margin-left: 2rem;
                                    border-right: 1rem solid var(--white);
                                }
                            }
                        }

                        .last-list {

                            a,
                            .disabled {
                                .next-arrow {
                                    margin-right: 2rem;
                                    border-left: 1rem solid var(--link-bgcolor);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 1023px) {
    .news-page {
        .news-area {
            .s-wrapper {
                padding-top: 7.5rem;

                .news-list {
                    .heading-area {
                        margin-bottom: 7.5625rem;

                        .mascot-img {
                            top: -2.6875rem;
                            left: 43.625rem;
                            width: 12.0625rem;
                        }

                        h1 {
                            margin-left: 26.875rem;
                            font-size: 3.75rem;
                        }

                        &::after {
                            margin: 2.1875rem auto 0;
                            width: 32.5rem;
                            border-bottom: 3.53px dashed var(--border-orcolor);
                        }
                    }

                    ul {
                        grid-template-columns: repeat(3, 19.25rem);
                        gap: 1.75rem;

                        li {
                            .news-thumb {
                                a {

                                    height: 8.125rem;

                                    .news-new {
                                        top: 1rem;
                                        width: 4rem;
                                        font-size: 1rem;
                                    }

                                    div {
                                        width: 60%;
                                    }

                                    img {
                                        transition: all 0.7s;
                                    }

                                    &:hover img,
                                    &:focus img {
                                        transform: scale(1.1);
                                    }
                                }

                                &:has(a:hover)+.news-meta a,
                                &:has(a:focus)+.news-meta a {
                                    .time-cat-area {

                                        .news-date {
                                            color: black;
                                        }

                                        .news-cat {
                                            background-color: var(--link-hover);
                                        }
                                    }

                                    .news-title {
                                        color: black;
                                    }
                                }
                            }

                            .news-meta {
                                padding: 0 2rem 1rem;

                                a {

                                    .time-cat-area {
                                        margin: 1.3125rem 0 0.4375rem;

                                        .news-date {
                                            transition: all 0.3s;
                                            width: 8em;
                                        }

                                        .news-cat {
                                            transition: all 0.3s;
                                        }
                                    }

                                    .news-title {
                                        transition: all 0.3s;
                                    }

                                    &:hover,
                                    &:focus {
                                        .time-cat-area {

                                            .news-date {
                                                color: black;
                                            }

                                            .news-cat {
                                                background-color: var(--link-hover);
                                            }
                                        }

                                        .news-title {
                                            color: black;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                .pagination {
                    .page-list {
                        margin: 4.4375rem 19.75rem 11.5rem;

                        li {
                            width: 15.6875rem;
                            height: 2.75rem;
                        }

                        .first-list,
                        .last-list {

                            a,
                            .disabled {
                                gap: 0.5rem;
                                border-radius: 1.375rem;

                                .prev-arrow,
                                .next-arrow {
                                    height: 1.125rem;
                                    border-top: 0.6rem solid transparent;
                                    border-bottom: 0.6rem solid transparent;
                                }

                                .text {
                                    font-size: 0.9375rem;
                                }
                            }
                        }

                        .first-list {

                            a,
                            .disabled {
                                transition: all 0.3s;

                                .prev-arrow {
                                    margin-left: 2.3125rem;
                                    border-right: 1.125rem solid var(--white);
                                }

                                &:hover,
                                &:focus {
                                    background-color: var(--link-hover);
                                }
                            }
                        }

                        .last-list {

                            a,
                            .disabled {
                                transition: all 0.3s;

                                .next-arrow {
                                    transition: all 0.3s;
                                    margin-right: 2.3125rem;
                                    border-left: 1.125rem solid var(--link-bgcolor);
                                }

                                .text {
                                    transition: all 0.3s;
                                }

                                &:hover,
                                &:focus {
                                    border: 1px solid var(--link-hover);

                                    .next-arrow {
                                        border-left-color: var(--link-hover);
                                    }

                                    .text {
                                        color: var(--link-hover);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}





/* ---------- 個別投稿 ページ ---------- */

/* ----- sp レイアウト ------ */
.single-page {
    .post-area {
        width: 100vw;
        overflow: hidden;

        .s-wrapper {
            padding: 3.25rem 1rem 0;

            .contents-area {
                .post-thumb {
                    width: 100%;
                    height: 10.5rem;
                    margin-bottom: 1.75rem;

                    img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        object-position: center;
                    }
                }

                .logo-thumb {
                    background-color: var(--news-img-bgcolor);
                    display: grid;
                    place-items: center;

                    picture {
                        width: 60%;
                        opacity: 0.5;

                        img {
                            width: 100%;
                        }
                    }
                }

                .date-cat-area {
                    margin: 0 1.3125rem 1.125rem;

                    .post-date,
                    .post-cat {
                        display: inline-block;
                    }

                    .post-date {
                        font-size: 1.0625rem;
                        width: 8.5rem;
                    }

                    .post-cat {
                        width: 10em;
                        font-size: 1rem;
                        height: 22px;
                        line-height: 22px;
                        text-align: center;
                        background-color: var(--link-bgcolor);
                        color: var(--white);
                    }
                }

                .post-title {
                    margin: 0 2.25rem 1rem;
                    font-size: 1.25rem;
                }

                .post-content {
                    font-size: 0.9375rem;
                    line-height: 1.8333;
                    margin: 0 2.25rem 5.74rem;

                    h2 {
                        font-size: 1.2rem;
                    }

                    h3 {
                        font-size: 1.15rem;
                    }

                    h4 {
                        font-size: 1rem;
                    }

                    h5,
                    h6 {
                        font-size: 0.9375rem;
                    }

                    h2,
                    h3,
                    h4,
                    h5,
                    h6 {
                        margin-top: 1em;
                        font-weight: bold;
                        line-height: 1.35;
                    }

                    p {
                        margin-top: 0.75em;
                    }

                    h2+p,
                    h3+p,
                    h4+p,
                    h5+p,
                    h6+p {
                        margin-top: 1em;
                    }

                    ul,
                    ol {
                        margin-top: 0.6em;

                        li {
                            line-height: 1.6;
                            list-style-position: outside;
                        }
                    }

                    ul {
                        li {
                            list-style-type: disc;
                        }
                    }

                    ol {
                        li {
                            list-style-type: decimal;
                        }
                    }

                    figure {
                        margin-top: 0.5em;
                        margin-bottom: 1em;
                    }

                    a {
                        text-decoration: underline;
                        color: var(--link-bgcolor);
                    }
                }
            }

            .pagination {
                .page-list {
                    margin: 1.875rem 1rem 4.0625rem;
                    padding: 0;
                    display: flex;
                    justify-content: space-between;

                    li {
                        width: 7.5rem;
                        height: 1.75rem;
                    }

                    .first-list,
                    .last-list {

                        a,
                        .disabled {
                            display: flex;
                            align-items: center;
                            gap: 0.5rem;
                            width: 100%;
                            height: 100%;
                            border-radius: 0.875rem;

                            .prev-arrow,
                            .next-arrow {
                                height: 0.5625rem;
                                display: block;
                                border-top: 0.3125rem solid transparent;
                                border-bottom: 0.3125rem solid transparent;
                            }

                            .text {
                                font-size: 0.75rem;
                                font-weight: var(--bold);
                            }
                        }

                        .disabled {
                            pointer-events: none;
                            opacity: 0.5;
                        }
                    }

                    .first-list {

                        a,
                        .disabled {
                            background-color: var(--link-bgcolor);

                            .prev-arrow {
                                margin-left: 1.5rem;
                                border-right: 0.5625rem solid var(--white);
                            }

                            .text {
                                color: var(--white);
                            }
                        }
                    }

                    .last-list {

                        a,
                        .disabled {
                            background-color: var(--vision-bgcolor);
                            border: 1px solid var(--link-bgcolor);
                            justify-content: flex-end;

                            .next-arrow {
                                margin-right: 1.5rem;
                                border-left: 0.5625rem solid var(--link-bgcolor);
                            }

                            .text {
                                color: var(--link-bgcolor);
                            }
                        }
                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .single-page {
        .post-area {
            .s-wrapper {
                padding: 10.125rem 1.5rem 0;

                .contents-area {
                    margin-bottom: 8rem;

                    .post-thumb {
                        width: 100%;
                        height: 20.5625rem;
                        margin-bottom: 3.375rem;
                    }

                    .logo-thumb {
                        picture {
                            width: 40%;
                        }
                    }

                    .date-cat-area {
                        margin: 0 5.6875rem 2.1875rem;

                        .post-date {
                            font-size: 1.125rem;
                            width: 7.6em;
                        }

                        .post-cat {
                            width: 10em;
                            font-size: 1rem;
                            height: 1.6375rem;
                            line-height: 1.6375rem;
                        }
                    }

                    .post-title {
                        margin: 0 5.6875rem 2rem;
                        font-size: 2rem;
                    }

                    .post-content {
                        margin: 0 5.6875rem 3.0625rem;
                        font-size: 1rem;
                        line-height: 1.75;


                        h2 {
                            font-size: 1.7rem;
                        }

                        h3 {
                            font-size: 1.4rem;
                        }

                        h4 {
                            font-size: 1.15rem;
                        }

                        h5,
                        h6 {
                            font-size: 1rem;
                        }
                    }
                }

                .pagination {
                    .page-list {
                        margin: 0 2rem 11.875rem;

                        li {
                            width: 19.6875rem;
                            height: 3.4375rem;
                        }

                        .first-list,
                        .last-list {

                            a,
                            .disabled {
                                gap: 0.875rem;
                                border-radius: 1.7188rem;

                                .prev-arrow,
                                .next-arrow {
                                    height: 1.125rem;
                                    border-top: 0.6rem solid transparent;
                                    border-bottom: 0.6rem solid transparent;
                                }

                                .text {
                                    font-size: 1.1875rem;
                                }
                            }
                        }

                        .first-list {

                            a,
                            .disabled {

                                .prev-arrow {
                                    margin-left: 2.9375rem;
                                    border-right: 1rem solid var(--white);
                                }
                            }
                        }

                        .last-list {

                            a,
                            .disabled {
                                .next-arrow {
                                    margin-right: 2.9375rem;
                                    border-left: 1rem solid var(--link-bgcolor);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 1023px) {
    .single-page {
        .post-area {
            .s-wrapper {
                padding: 13.75rem 9.5rem 0;

                .contents-area {
                    margin-bottom: 8rem;

                    .post-thumb {
                        width: 100%;
                        height: 32.5rem;
                        margin-bottom: 5.4375rem;
                    }

                    .logo-thumb {
                        picture {
                            width: 40%;
                        }
                    }

                    .date-cat-area {
                        margin: 0 0.875rem 3.5625rem;

                        .post-date {
                            font-size: 2.2rem;
                            width: 8.6em;
                        }

                        .post-cat {
                            width: 10.5em;
                            font-size: 2rem;
                            height: 2.6rem;
                            line-height: 2.6rem;
                        }
                    }

                    .post-title {
                        margin: 0 0.875rem 1.5rem;
                        font-size: 2.3rem;
                        line-height: 1.3333;
                    }

                    .post-content {
                        margin: 0 0.875rem 8rem;
                        font-size: 1.25rem;
                        line-height: 1.75;


                        h2 {
                            font-size: 2.1rem;
                            margin-top: 3em;
                        }

                        h3 {
                            font-size: 1.8rem;
                            margin-top: 2em;
                        }

                        h4 {
                            font-size: 1.5rem;
                        }

                        h5,
                        h6 {
                            font-size: 1.25rem;
                        }

                        figure {
                            margin-bottom: 1.5em;
                        }
                    }
                }

                .pagination {
                    .page-list {
                        margin: 8rem 0rem 20.5625rem;

                        li {
                            width: 25.625rem;
                            height: 4.5rem;
                        }

                        .first-list,
                        .last-list {

                            a,
                            .disabled {
                                gap: 1.25rem;
                                border-radius: 2.25rem;

                                .prev-arrow,
                                .next-arrow {
                                    height: 1.125rem;
                                    border-top: 0.6rem solid transparent;
                                    border-bottom: 0.6rem solid transparent;
                                }

                                .text {
                                    font-size: 1.5rem;
                                }
                            }
                        }

                        .first-list {

                            a,
                            .disabled {
                                transition: all 0.3s;

                                .prev-arrow {
                                    margin-left: 3.8125rem;
                                    border-right: 1.125rem solid var(--white);
                                }

                                &:hover,
                                &:focus {
                                    background-color: var(--link-hover);
                                }
                            }
                        }

                        .last-list {

                            a,
                            .disabled {
                                transition: all 0.3s;

                                .next-arrow {
                                    transition: all 0.3s;
                                    margin-right: 3.8125rem;
                                    border-left: 1.125rem solid var(--link-bgcolor);
                                }

                                .text {
                                    transition: all 0.3s;
                                }

                                &:hover,
                                &:focus {
                                    border-color: var(--link-hover);

                                    .next-arrow {
                                        border-left-color: var(--link-hover);
                                    }

                                    .text {
                                        color: var(--link-hover);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}



/* ---------- 事業紹介 ページ ---------- */
/* -----sp レイアウト ----- */
.works-page {
    padding-bottom: 3.6875rem;

    .works-area {
        .s-wrapper {
            padding-top: 8.4375rem;
            margin-bottom: 5.625rem;

            .heading01-area {
                position: relative;

                .mascot-img {
                    position: absolute;
                    top: -7.375rem;
                    right: 0.625rem;
                    width: 11.875rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h1 {
                    margin-left: 1.4375rem;
                    margin-bottom: 4.3125rem;
                    display: flex;
                    align-items: end;
                    font-family: var(--zen-maru);
                    font-weight: var(--medium);
                    font-size: 1.375rem;
                    line-height: 1.5;

                    img {
                        width: 13.75rem;
                        height: auto;
                    }

                    span {
                        margin-bottom: -1.5em;
                    }
                }
            }

            .works-list {
                margin: 0 1rem;
                padding: 0;

                li {
                    margin-top: 2.5rem;

                    h3 {
                        margin-bottom: 1.125rem;
                        font-size: 1.0625rem;
                        font-weight: var(--bold);
                        line-height: 1.1765;
                        text-align: center;

                        &::before {
                            content: "【";
                        }

                        &::after {
                            content: "】";
                        }
                    }

                    img {
                        width: 100%;
                        height: 7.875rem;
                        object-position: center;
                        object-fit: cover;
                        border-radius: 0.9375rem;
                    }

                    p {
                        margin: 0.4375rem 0.6875rem;
                        height: 5rem;
                        font-size: 1.0625rem;
                        line-height: 1.5;

                    }
                }

            }
        }
    }

    .pcwork-img-area {
        .s-wrapper {
            margin-top: 10rem;
            margin-bottom: 13.3125rem;

            .heading02-area {
                margin-bottom: 2.875rem;
                position: relative;

                .mascot-img {
                    position: absolute;
                    top: -7.75rem;
                    left: 7.3125rem;
                    width: 8.8125rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h2 {
                    font-size: 1.5625rem;
                    text-align: center;
                    font-weight: var(--regular);
                }

                &:after {
                    margin: 1rem auto 0;
                    content: "";
                    display: block;
                    height: 0;
                    width: 16.25rem;
                    border-bottom: 1px dashed var(--border-orcolor);
                }
            }

            .img {
                margin: 0 1rem;
                height: 11.25rem;
                overflow: hidden;

                img {
                    width: 100%;
                    height: 11.25rem;
                    object-fit: cover;
                    object-position: center 45%;
                }
            }
        }
    }

    .office-img-area {
        .s-wrapper {
            margin-bottom: 8.5rem;

            .heading02-area {
                margin-bottom: 3.0625rem;
                position: relative;

                .mascot-img {
                    position: absolute;
                    top: -7.9375rem;
                    left: 7.125rem;
                    width: 8.8125rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h2 {
                    font-size: 1.5625rem;
                    text-align: center;
                    font-weight: var(--regular);
                }

                &::after {
                    margin: 1rem auto 0;
                    content: "";
                    display: block;
                    height: 0;
                    width: 16.25rem;
                    border-bottom: 1px dashed var(--border-orcolor);
                }
            }

            .img-area {
                margin: 0 1rem;
                display: grid;
                grid-template-columns: 1fr 1fr;
                justify-content: center;
                gap: 0.5rem 0.6875rem;

                figure {
                    img {
                        width: 100%;
                        height: 9.875rem;
                        object-fit: cover;
                    }

                    &:first-child {
                        grid-column: 1 / 3;

                        img {
                            width: 100%;
                            height: 11.25rem;
                        }
                    }

                    figcaption {
                        margin-top: 0.25rem;
                        font-size: 0.75rem;
                        line-height: 1.166;
                        color: var(--text-graycolor);

                        &::before {
                            content: "■ ";
                        }

                    }
                }
            }
        }
    }

    .staff-area {
        .s-wrapper {
            margin-bottom: 5.375rem;

            .heading02-area {
                margin-bottom: 3.4375rem;
                position: relative;

                .mascot-img {
                    position: absolute;
                    top: -7rem;
                    left: 7.3125rem;
                    width: 8.8125rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h2 {
                    font-size: 1.5625rem;
                    font-weight: var(--regular);
                    text-align: center;
                }

                &::after {
                    margin: 1rem auto 0;
                    content: "";
                    display: block;
                    height: 0;
                    width: 16.25rem;
                    border-bottom: 1px dashed var(--border-orcolor);
                }
            }

            .intro-area {
                display: grid;
                grid-template-columns: 1fr;
                justify-content: center;
                gap: 4.25rem;

                .staff {
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    gap: 1.4375rem;

                    .face-img {
                        width: 6.25rem;
                        height: 6.25rem;
                        border-radius: 50%;
                        overflow: hidden;

                        img {
                            width: 100%;
                            height: 100%;
                        }
                    }

                    h3 {
                        font-size: 1.0625rem;
                        font-weight: var(--regular);
                        text-align: center;
                        letter-spacing: 0.03em;
                    }

                    p {
                        margin: auto;
                        width: 15rem;
                        font-size: 0.9375rem;
                        letter-spacing: 0.03em;
                    }
                }
            }
        }
    }
}

/* -----tb レイアウト ----- */
@media screen and (width > 499px) {
    .works-page {
        padding-bottom: 7.625rem;

        .works-area {
            .s-wrapper {
                padding-top: 15.5625rem;
                margin-bottom: 17.75rem;

                .heading01-area {
                    .mascot-img {
                        top: -7.9375rem;
                        right: 4.3125rem;
                        width: 14rem;
                    }

                    h1 {
                        margin-left: 5.375rem;
                        margin-bottom: 4.375rem;
                        font-size: 1.4375rem;
                        display: flex;
                        align-items: center;
                        gap: 0.75rem;

                        img {
                            width: 25rem;
                        }

                        span {
                            margin-bottom: 0;
                        }
                    }
                }

                .works-list {
                    margin: 0 1.8125rem;
                    padding: 0;
                    display: grid;
                    justify-content: center;
                    grid-template-columns: repeat(2, 20.875rem);
                    gap: 7.125rem 2.5625rem;

                    li {
                        margin-top: 0;

                        h3 {
                            margin-bottom: 1.625rem;
                            font-size: 1.5625rem;
                            line-height: 1.2;
                        }

                        img {
                            width: 100%;
                            height: 20.875rem;
                            border-radius: 1.375rem;
                        }

                        p {
                            height: auto;
                            margin: 0;
                            padding: 1.1875rem 0.75rem 0;
                            font-size: 1.5625rem;
                            line-height: 1.75;
                        }
                    }
                }
            }
        }

        .pcwork-img-area {
            .s-wrapper {
                margin-top: 0;
                margin-bottom: 21.375rem;

                .heading02-area {
                    margin-bottom: 3rem;

                    .mascot-img {
                        top: -13.875rem;
                        left: 15.5625rem;
                        width: 16.625rem;
                    }

                    h2 {
                        font-size: 2.9375rem;
                    }

                    &:after {
                        margin: 2rem auto 0;
                        width: 30.625rem;
                        border-bottom: 2.66px dashed var(--border-orcolor);
                    }
                }

                .img {
                    margin: 0 1.5625rem;
                    height: 23.25rem;

                    img {
                        width: 100%;
                        height: 23.25rem;
                    }
                }
            }
        }

        .office-img-area {
            .s-wrapper {
                margin-bottom: 24.0625rem;

                .heading02-area {
                    margin-bottom: 5.6875rem;

                    .mascot-img {
                        top: -14.625rem;
                        left: 15.375rem;
                        width: 16.75rem;
                    }

                    h2 {
                        font-size: 2.9375rem;
                    }

                    &::after {
                        margin: 2rem auto 0;
                        width: 30.75rem;
                        border-bottom: 2.66px dashed var(--border-orcolor);
                    }
                }

                .img-area {
                    margin: 0 1.5rem;
                    gap: 2.375rem 1.5625rem;

                    figure {
                        img {
                            height: 24.875rem;
                        }

                        &:first-child {

                            img {
                                height: 23.125rem;
                            }
                        }

                        figcaption {
                            margin-top: 0.75rem;
                            font-size: 0.875rem;
                        }
                    }
                }
            }
        }

        .staff-area {
            .s-wrapper {
                margin-bottom: 14rem;

                .heading02-area {
                    margin-bottom: 5.6875rem;

                    .mascot-img {
                        top: -13.75rem;
                        left: 15.25rem;
                        width: 17.1875rem;
                    }

                    h2 {
                        font-size: 2.9375rem;
                    }

                    &::after {
                        margin: 2.5rem auto 0;
                        width: 30.625rem;
                        border-bottom: 2.66px dashed var(--border-orcolor);
                    }
                }

                .intro-area {
                    gap: 11.25rem;

                    .staff {
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                        gap: 3.0625rem;

                        .face-img {
                            width: 14rem;
                            height: 14rem;
                        }

                        h3 {
                            font-size: 1.9375rem;
                        }

                        p {
                            width: 31.25rem;
                            font-size: 2rem;
                        }
                    }
                }
            }
        }
    }
}

/* -----pc レイアウト ----- */
@media screen and (width > 1023px) {
    .works-page {
        padding-bottom: 14.375rem;

        .works-area {
            .s-wrapper {
                padding-top: 9.25rem;
                margin-bottom: 16.75rem;

                .heading01-area {
                    .mascot-img {
                        top: -10.35rem;
                        right: 17.0625rem;
                        width: 16.875rem;
                    }

                    h1 {
                        margin-left: 16.6875rem;
                        margin-bottom: 6.75rem;
                        font-size: 2.25rem;
                        gap: 0.9375rem;

                        img {
                            width: 30.1875rem;
                        }
                    }
                }

                .works-list {
                    grid-template-columns: repeat(2, 29.0625rem);
                    gap: 6.1875rem 2.375rem;

                    li {

                        h3 {
                            margin-bottom: 2.25rem;
                            font-size: 2.1875rem;
                        }

                        div {
                            width: 100%;
                            aspect-ratio: 1 / 1;
                            border-radius: 1.875rem;
                            overflow: hidden;

                            img {
                                aspect-ratio: 1 / 1;
                                height: auto;
                                border-radius: 1.875rem;
                                transition: all 0.7s ease-in-out;

                                &:hover,
                                &:focus {
                                    scale: 1.1;
                                }
                            }
                        }

                        p {
                            padding: 2.3125rem 0.625rem 0;
                            font-size: 1.625rem;
                        }
                    }
                }
            }
        }

        .pcwork-img-area {
            .s-wrapper {
                margin-bottom: 22.3125rem;

                .heading02-area {
                    margin-bottom: 6.5rem;

                    .mascot-img {
                        top: -14.75rem;
                        left: 31.1875rem;
                        width: 17.625rem;
                    }

                    h2 {
                        font-size: 3.75rem;
                    }

                    &:after {
                        width: 32.5rem;
                        border-bottom: 3.6px dashed var(--border-orcolor);
                    }
                }

                .img {
                    margin: 0 9.5625rem;
                    height: 32.0625rem;

                    img {
                        width: 100%;
                        height: 32.0625rem;
                    }
                }
            }
        }

        .office-img-area {
            .s-wrapper {
                margin-bottom: 22.75rem;

                .heading02-area {
                    margin-bottom: 6.5rem;

                    .mascot-img {
                        top: -15.5rem;
                        left: 31.1875rem;
                        width: 17.625rem;
                    }

                    h2 {
                        font-size: 3rem;
                    }

                    &::after {
                        margin: 2.1875rem auto 0;
                        width: 32.5rem;
                        border-bottom: 3.6px dashed var(--border-orcolor);
                    }
                }

                .img-area {
                    margin: 0 9.5625rem;
                    gap: 4.3125rem 2.9375rem;

                    figure {
                        img {
                            height: 34.9375rem;
                        }

                        &:first-child {

                            img {
                                height: 32.0625rem;
                            }
                        }

                        figcaption {
                            margin-top: 1.0625rem;
                            margin-left: 1.125rem;
                            font-size: 0.9375rem;
                        }
                    }
                }
            }
        }

        .staff-area {
            .s-wrapper {
                margin-bottom: 10.625rem;

                .heading02-area {
                    margin-bottom: 9.5625rem;

                    .mascot-img {
                        top: -16.0625rem;
                        left: 31.6875rem;
                        width: 18.25rem;
                    }

                    h2 {
                        font-size: 3.125rem;
                    }

                    &::after {
                        margin: 2.625rem auto 0;
                        width: 32.5rem;
                        border-bottom: 3.6px dashed var(--border-orcolor);
                    }
                }

                .intro-area {
                    display: grid;
                    grid-template-columns: repeat(2, 23.6875rem);
                    justify-content: center;
                    gap: 5.6875rem 8rem;

                    .staff {
                        gap: 2.375rem;

                        .face-img {
                            width: 17.9375rem;
                            height: 17.9375rem;
                        }

                        h3 {
                            font-size: 2.375rem;
                        }

                        p {
                            width: 23.6875rem;
                            font-size: 2rem;
                        }

                        &:first-child {
                            grid-column: 1 / 3;
                            justify-self: center;
                        }
                    }
                }
            }
        }
    }
}





/* ---------- アクセス ページ ---------- */
/* ----- sp レイアウト ----- */
.access-page {
    .info-area {
        .s-wrapper {
            padding-top: 7.75rem;
            margin-bottom: 2.8125rem;

            .heading-area {
                position: relative;
                margin-bottom: 1.875rem;

                .mascot-img {
                    position: absolute;
                    top: -6rem;
                    left: 7.75rem;
                    width: 7.5rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h1 {
                    font-size: 1.75rem;
                    font-weight: var(--regular);
                    line-height: 3rem;
                    text-align: center;
                }

                &::after {
                    margin: auto;
                    display: block;
                    content: "";
                    height: 0;
                    width: 16.25rem;
                    border-bottom: 1.4px dashed var(--border-orcolor);
                }
            }

            .info-list {
                margin: 0 1.875rem 2rem;
                display: grid;
                grid-template-columns: 1fr;
                gap: 1.9375rem;

                dt {
                    padding-bottom: 2px;
                    padding-left: 0.3125rem;
                    width: 100%;
                    font-size: 1.25rem;
                    line-height: 1.7;
                    border-bottom: 1px solid var(--text-color);
                }

                dd {
                    padding-top: 0.75rem;
                    font-size: 0.9375rem;
                    line-height: 1.7;
                    padding-left: 0.3125rem;
                }
            }

            .map-area {
                margin: 0 1.75rem;
                display: flex;
                flex-direction: column;
                gap: 1.0625rem;

                iframe {
                    width: 100%;
                    height: 18rem;
                }

                figure {
                    width: 100%;

                    img {
                        width: 100%;
                        height: auto;
                        object-fit: cover;
                    }

                    figcaption {
                        margin-top: 0.3125rem;
                        font-size: 0.9375rem;
                        font-weight: var(--bold);

                        &::before {
                            content: "■ ";
                        }
                    }
                }
            }
        }
    }
}

/* -----tb レイアウト ----- */
@media screen and (width > 499px) {
    .access-page {
        .info-area {
            .s-wrapper {
                padding: 12.0625rem 3rem 3.625rem;
                margin-bottom: 0;

                .heading-area {
                    margin-bottom: 5.625rem;

                    .mascot-img {
                        top: -11.125rem;
                        left: 17rem;
                        width: 14.125rem;
                    }

                    h1 {
                        line-height: 5.375rem;
                        font-size: 3.125rem;
                    }

                    &::after {
                        margin-top: 0.25rem;
                        width: 30.625rem;
                        border-bottom: 2.66px dashed var(--border-orcolor);
                    }
                }

                .info-list {
                    margin: 0 0 3.875rem;
                    display: grid;
                    grid-template-columns: repeat(2, 19.6875rem);
                    grid-template-rows: 8.5rem 4.75rem 4.75rem;
                    grid-auto-flow: column;
                    gap: 1.9375rem;

                    dt {
                        font-size: 1.25rem;

                        dd {
                            font-size: 1.0625rem;
                        }
                    }
                }

                .map-area {
                    margin: 0;
                    display: flex;
                    flex-direction: row;
                    gap: 2.25rem;

                    iframe {
                        width: 20rem;
                        height: 28.0625rem;
                    }

                    figure {
                        width: 20rem;

                        img {
                            height: 28.0625rem;
                        }

                        figcaption {
                            margin-top: 0.6875rem;
                            font-size: 0.9375rem;
                        }
                    }
                }
            }
        }
    }
}

/* -----pc レイアウト ----- */
@media screen and (width > 1023px) {
    .access-page {
        .info-area {
            .s-wrapper {
                padding: 11rem 9.375rem 7.25rem;

                .heading-area {

                    .mascot-img {
                        top: -11.75rem;
                        left: 32.5rem;
                        width: 15rem;
                    }

                    h1 {
                        line-height: 7.875rem;
                        font-size: 4rem;
                    }

                    &::after {
                        margin-top: 0.375rem;
                        width: 32.5rem;
                        border-bottom: 4.08px dashed var(--border-orcolor);
                    }
                }

                .info-list {
                    margin: 0 0 7.25rem;
                    grid-template-columns: repeat(2, 29.1875rem);
                    grid-template-rows: 11.625rem 6.8125rem 6.8125rem;
                    gap: 2.875rem;

                    dt {
                        font-size: 1.8125rem;
                    }

                    dd {
                        font-size: 1.375rem;
                    }
                }


                .map-area {
                    margin: 0;
                    gap: 2.6875rem;

                    iframe {
                        width: 29.1875rem;
                        height: 39.25rem;
                    }

                    figure {
                        width: 29.1875rem;

                        img {
                            height: 39.25rem;
                        }

                        figcaption {
                            margin-top: 0.5rem;
                            font-size: 1rem;
                        }
                    }
                }
            }
        }
    }
}





/* ---------- 会社概要 ページ ---------- */
/* ----- sp レイアウト ----- */
.company-page {
    .greeting-area {
        .s-wrapper {
            padding-top: 6.125rem;

            .heading-area {
                position: relative;
                margin-bottom: 1.125rem;

                .mascot-img {
                    position: absolute;
                    top: -5.5rem;
                    left: 8.5625rem;
                    width: 6.25rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h1 {
                    font-size: 1.0625rem;
                    font-weight: var(--regular);
                    line-height: 1.4117;
                    text-align: center;
                }

                &::after {
                    margin: 0.5rem auto 0;
                    display: block;
                    content: "";
                    height: 0;
                    width: 11.5rem;
                    border-bottom: 1px dashed var(--border-orcolor);
                }
            }

            .text-area {
                margin: 0 1.6875rem;
                padding: 2.75rem 2.25rem;
                background-color: var(--pale-bgcolor);

                p {
                    margin-bottom: calc(0.9375rem * 1.75 * 2);
                    font-family: var(--noto-serif);
                    font-size: 0.9375rem;
                    line-height: 1.75;

                    &:nth-last-child(2) {
                        margin-bottom: calc(0.9375rem * 1.75);
                    }
                }

                .repre {
                    margin: 0;
                    font-size: 1.0625rem;
                    text-align: right;
                }
            }
        }
    }

    .outline-area {
        .s-wrapper {
            margin: 9.1875rem 0 4.375rem;

            .heading-area {
                position: relative;
                margin-bottom: 3.5rem;

                .mascot-img {
                    position: absolute;
                    top: -4.75rem;
                    left: 8.25rem;
                    width: 6.75rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                h2 {
                    font-size: 1.6875rem;
                    font-weight: var(--regular);
                    text-align: center;
                }

                &::after {
                    margin: 0.6875rem auto;
                    display: block;
                    content: "";
                    height: 0;
                    width: 15.625rem;
                    border-bottom: 1.36px dashed var(--border-orcolor);
                }
            }

            .outline-list {
                margin: 0 1.5rem;
                display: flex;
                justify-content: center;
                flex-wrap: wrap;

                dt {
                    width: 5.3125rem;
                    color: var(--white);
                    display: grid;
                    place-items: center;
                    background-color: var(--border-orcolor);
                    border-bottom: 1px solid var(--white);

                    &:last-of-type {
                        border-bottom: 1px solid var(--border-orcolor);
                    }
                }

                dd {
                    padding-left: 0.5625rem;
                    width: 14.75rem;
                    line-height: 1.7;
                    border-bottom: 1px solid var(--border-orcolor);
                }

                dt,
                dd {
                    padding-top: 0.4375rem;
                    padding-bottom: 0.4375rem;
                    font-size: 0.875rem;
                    line-height: 1.7;

                    &:first-of-type {
                        border-top: 1px solid var(--border-orcolor);
                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .company-page {
        .greeting-area {
            .s-wrapper {
                padding-top: 16rem;

                .heading-area {
                    margin-bottom: 2.4375rem;

                    .mascot-img {
                        top: -10.4375rem;
                        left: 17.75rem;
                        width: 12.5rem;
                    }

                    h1 {
                        font-size: 2.125rem;
                        line-height: 1.4412;
                    }

                    &::after {
                        margin: 0.75rem auto 0;
                        width: 16rem;
                        border-bottom: 2.14px dashed var(--border-orcolor);
                    }
                }

                .text-area {
                    margin: 0 4rem;
                    padding: 3.25rem 4.4375rem;

                    p {
                        margin-bottom: calc(1.875rem * 1.75 * 2);
                        font-size: 1.875rem;

                        &:nth-last-child(2) {
                            margin-bottom: calc(1.875rem * 1.75);
                        }
                    }

                    .repre {
                        margin-right: 0.7em;
                        font-size: 1.875rem;
                        ;

                    }
                }
            }
        }

        .outline-area {
            .s-wrapper {
                margin: 16.875rem auto 14.6875rem;

                .heading-area {
                    margin-bottom: 6.25rem;

                    .mascot-img {
                        top: -7.5rem;
                        left: 18.375rem;
                        width: 10.6875rem;
                    }

                    h2 {
                        font-size: 2.6875rem;
                    }

                    &::after {
                        margin: 1.0625rem auto;
                        width: 24.687rem;
                        border-bottom: 2.14px dashed var(--border-orcolor);
                    }
                }

                .outline-list {
                    margin: 0 2.4rem;

                    dt {
                        width: 11.375rem;
                        border-bottom: 2px solid var(--white);

                        &:last-of-type {
                            border-bottom: 2px solid var(--border-orcolor);
                        }
                    }

                    dd {
                        padding-left: 1.1875rem;
                        width: 31.625rem;
                        border-bottom: 2px solid var(--border-orcolor);
                    }

                    dt,
                    dd {
                        padding-top: 1.0625rem;
                        padding-bottom: 1.0625rem;
                        font-size: 1.875rem;

                        &:first-of-type {
                            border-top: 2px solid var(--border-orcolor);
                        }
                    }
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 1023px) {
    .company-page {
        .greeting-area {
            .s-wrapper {
                padding-top: 12.625rem;

                .heading-area {
                    margin-bottom: 5.0625rem;

                    .mascot-img {
                        top: -14.5625rem;
                        left: 30.9375rem;
                        width: 18rem;
                    }

                    h1 {
                        font-size: 3.0625rem;
                        line-height: 1.3265;
                    }

                    &::after {
                        margin: 1rem auto 0;
                        width: 23.0625rem;
                        border-bottom: 3.6px dashed var(--border-orcolor);
                    }
                }

                .text-area {
                    margin: 0 9.375rem;
                    padding: 9.1875rem 6.8125rem;

                    p {
                        margin-bottom: calc(2rem * 1.75 * 2);
                        font-size: 2rem;

                        &:nth-last-child(2) {
                            margin-bottom: calc(2rem * 1.75);
                        }
                    }

                    .repre {
                        margin-right: 1em;
                        font-size: 2rem;
                        ;

                    }
                }
            }
        }

        .outline-area {
            .s-wrapper {
                margin: 18.5rem auto 10.3125rem;

                .heading-area {
                    margin-bottom: 9.0625rem;

                    .mascot-img {
                        top: -12rem;
                        left: 32.75rem;
                        width: 14.125rem;
                    }

                    h2 {
                        font-size: 3.75rem;
                    }

                    &::after {
                        margin: 2.625rem auto;
                        width: 32.5rem;
                        border-bottom: 3.6px dashed var(--border-orcolor);
                    }
                }

                .outline-list {
                    margin: 0 6.9rem;

                    dt {
                        width: 17.375rem;
                        border-bottom: 3px solid var(--white);

                        &:last-of-type {
                            border-bottom: 3px solid var(--border-orcolor);
                        }
                    }

                    dd {
                        padding-left: 1.1875rem;
                        width: 43.875rem;
                        border-bottom: 3px solid var(--border-orcolor);
                    }

                    dt,
                    dd {
                        padding-top: 1.4375rem;
                        padding-bottom: 1.4375rem;
                        font-size: 1.9375rem;

                        &:first-of-type {
                            border-top: 3px solid var(--border-orcolor);
                        }
                    }
                }
            }
        }
    }
}





/* --------- お問合せ ページ --------- */
/* ----- sp レイアウト ----- */
.form-area {
    .s-wrapper {
        margin: 1.875rem 2.4375rem 5.9375rem;

        h1 {
            font-size: 1.6875rem;
            text-align: center;
            font-weight: var(--regular);
        }

        label {
            .title {
                display: block;
                margin-top: 1.5625rem;
                margin-bottom: 0.6875rem;
                font-size: 1.25rem;

            }

            input,
            textarea {
                width: 100%;
                border: 1px solid var(--text-color);
            }

            input {
                min-height: 1.875rem;
            }

            textarea {
                height: 10.5625rem;
            }
        }

        .submit-btn {
            width: 13.1875rem;
            height: 2.3125rem;
            border-radius: 1.65625rem;
            border: none;
            background-color: var(--link-bgcolor);
            font-size: 0.75rem;
            font-weight: var(--bold);
            color: var(--white);
            display: block;
            margin: 2.5625rem auto 0;
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .form-area {
        .s-wrapper {
            margin: 8rem auto 7.0625rem;
            padding: 0 5.125rem;

            h1 {
                margin-bottom: 4.25rem;
                font-size: 2.875rem;
            }

            label {
                .title {
                    margin-top: 3.25rem;
                    margin-bottom: 1.5rem;
                    font-size: 2.5625rem;
                }

                input,
                textarea {
                    font-size: 1.875rem;
                }

                input {
                    min-height: 3.875rem;
                }

                textarea {
                    height: 22rem;
                }
            }

            .submit-btn {
                width: 27.5rem;
                height: 4.8125rem;
                border-radius: 2.40625rem;
                font-size: 1.625rem;
                margin: 5.3125rem auto 0;
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 1023px) {
    .form-area {
        .s-wrapper {
            margin: 9.3125rem auto 12.375rem;
            padding: 0 12.625rem;

            h1 {
                margin-bottom: 6.1875rem;
                font-size: 4.125rem;
            }

            label {
                .title {
                    margin-top: 4.6875rem;
                    margin-bottom: 3.1875rem;
                    font-size: 2.8125rem;
                }

                input,
                textarea {
                    font-size: 2.5rem;
                }

                input {
                    min-height: 5.625rem;
                }

                textarea {
                    height: 31.9375rem;
                }
            }

            .submit-btn {
                width: 39.875rem;
                height: 7rem;
                border-radius: 3.5rem;
                font-size: 2.375rem;
                margin: 7.75rem auto 0;
                transition: all 0.3s;

                &:hover,
                &:focus {
                    background-color: var(--link-hover);
                }
            }
        }
    }
}

/* ---------- お問い合わせ内容確認　ページ ---------- */

/* ----- sp レイアウト ----- */
.confirm-area {
    .s-wrapper {
        margin: 2.9375rem 0 4.75rem;
        padding: 0 2.6875rem;

        h1 {
            margin-bottom: 1.6875rem;
            font-size: 1.6875rem;
            text-align: center;
            font-weight: var(--regular);
        }

        dl {
            dt {
                margin-top: 1.5625rem;
                margin-bottom: 0.6875rem;
                font-size: 1.25rem;
            }

            dd {
                border: 1px solid var(--text-color);
                padding: 0.375rem 0.625rem;
                font-size: 0.9375rem;
            }
        }

        .button-area {
            margin-top: 3.375rem;
            display: flex;
            justify-content: center;
            gap: 2.9375rem;

            .return-btn,
            .send-btn {
                width: 7.5625rem;
                height: 2.3125rem;
                border-radius: 1.15625rem;
                font-size: 0.8125rem;
                font-weight: var(--bold);
            }

            .return-btn {
                border: 1px solid var(--link-bgcolor);
                background-color: var(--white);
                color: var(--link-bgcolor);
            }

            .send-btn {
                border: none;
                background-color: var(--link-bgcolor);
                color: var(--white);
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .confirm-area {
        .s-wrapper {
            margin: 7.0625rem auto 8.125rem;
            padding: 0 5.125rem;

            h1 {
                margin-bottom: 4.25rem;
                font-size: 2.875rem;
            }

            dl {
                dt {
                    margin-top: 3.25rem;
                    margin-bottom: 1.5rem;
                    font-size: 2.5625rem;
                }

                dd {
                    padding: 0.8125rem 1.25rem;
                    font-size: 1.875rem;
                }
            }

            .button-area {
                margin-top: 5.4375rem;
                gap: 4.8125rem;

                div {
                    width: 12.25rem;
                    height: 3.8125rem;
                }

                .return-btn,
                .send-btn {
                    width: 100%;
                    height: 100%;
                    border-radius: 1.90625rem;
                    font-size: 1.25rem;
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 1023px) {
    .confirm-area {
        .s-wrapper {
            margin: 9.3125rem auto 13.1875rem;
            padding: 0 12.625rem;

            h1 {
                margin-bottom: 6.1875rem;
                font-size: 4.125rem;
            }

            dl {
                dt {
                    margin-top: 4.6875rem;
                    margin-bottom: 3.1875rem;
                    font-size: 2.5625rem;
                }

                dd {
                    padding: 1.3125rem 1.875rem;
                    font-size: 2.5rem;
                }
            }

            .button-area {
                margin-top: 8rem;
                gap: 7.5rem;

                div {
                    width: 19.125rem;
                    height: 5.9375rem;
                }

                .return-btn,
                .send-btn {
                    width: 100%;
                    height: 100%;
                    border-radius: 2.9688rem;
                    font-size: 2rem;
                    transition: all 0.3s;
                }

                .return-btn {

                    &:hover,
                    &:focus {
                        background-color: var(--return-btn-color);
                        color: var(--white);
                        border: none;
                    }
                }

                .send-btn {

                    &:hover,
                    &:focus {
                        background-color: var(--link-hover);
                    }
                }
            }
        }
    }
}





/* ---------- ありがとうございました ページ ---------- */
/* ----- sp レイアウト ----- */
.thanks-page {
    .thanks-area {
        .s-wrapper {
            padding: 13.1875rem 0 21.625rem;

            p {
                margin-bottom: 2.8125rem;
                font-size: 1.6875rem;
                text-align: center;
            }

            a {
                display: block;
                margin: auto;
                width: 15.5rem;
                height: 3.3125rem;
                font-size: 1.125rem;
                font-weight: var(--bold);
                color: var(--link-bgcolor);
                text-align: center;
                line-height: 3.3125rem;
                border-radius: 1.6563rem;
                border: 1px solid var(--link-bgcolor);
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 499px) {
    .thanks-page {
        .thanks-area {
            .s-wrapper {
                padding: 19.875rem 0;

                p {
                    margin-bottom: 5.625rem;
                    font-size: 3.125rem;
                }

                a {
                    width: 29.375rem;
                    height: 6.25rem;
                    font-size: 2.125rem;
                    line-height: 6.25rem;
                    border-radius: 3.125rem;
                }
            }
        }
    }
}

/* ----- tb レイアウト ----- */
@media screen and (width > 1023px) {
    .thanks-page {
        .thanks-area {
            .s-wrapper {
                padding: 16.8125rem 0 20.9375rem;

                p {
                    margin-bottom: 10rem;
                    font-size: 5.25rem;
                }

                a {
                    width: 38.8125rem;
                    height: 8.25rem;
                    font-size: 2.8125rem;
                    line-height: 8.25rem;
                    border-radius: 4.125rem;
                    transition: all 0.3s;

                    &:hover,
                    &:focus {
                        background-color: var(--return-btn-color);
                        color: var(--white);
                    }
                }
            }
        }
    }
}






/* ---------- 404 ページ ----------*/
.error404 {
    .error-404 {
        height: 60vh;

        .page-header {
            position: relative;
            top: 35%;
        }

        .page-content {
            position: relative;
            top: 40%;

            a {
                text-decoration: underline;
            }
        }

        h1,
        p {
            text-align: center;
            margin-bottom: 20px;
        }

        h1 {
            font-size: 1.8rem;
        }
    }
}