@charset "UTF-8";

/* base ____________________________________________________________*/

:root {
    --color-pink: #FE7CC2;
    --color-blue: #0183DB;
}

html {
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    background-image: url("../images/bg_image.png");
    background-size: 50%;
    background-repeat: repeat;
    background-attachment: fixed;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.33;
    font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
    letter-spacing: 0.05em;
}

.divider {
    width: 100%;
    height: auto;
    max-height: 96px;
}

.text-pink {
    color: var(--color-pink);
}

.pagetop {
    z-index: 999;
    position: fixed;
    right: 0;
    bottom: 0;
    width: fit-content;
    height: fit-content;
    padding: 20px 30px;
    border-top-left-radius: 10px;
    background-color: #F59DC4;
    color: #FFF;
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1.1;
    font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    letter-spacing: 0.04em;
}

.pagetop::before {
    position: absolute;
    top: 30px;
    left: 50%;
    width: 10px;
    height: 10px;
    transform: translateX(-50%) rotate(-45deg);
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
    content: "";
}

.pagetop span {
    display: block;
    padding-top: 25px;
    text-align: center;
}

h2 {
    color: #000;
    font-weight: 700;
    font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
    letter-spacing: 0.04em;
    text-align: center;
}

h2.logo-sml::before {
    display: block;
    width: 100px;
    height: 88px;
    margin-bottom: 20px;
    margin-inline: auto;
    background-image: url("../images/ajisai_logo_sml.png");
    background-position: center;
    background-size: 100px 88px;
    background-repeat: no-repeat;
    content: "";
}

h2.logo-big::before {
    display: block;
    width: 120px;
    height: 105px;
    margin-bottom: 40px;
    margin-inline: auto;
    background-image: url("../images/ajisai_logo_big.png");
    background-position: center;
    background-size: 120px 105px;
    background-repeat: no-repeat;
    content: "";
}

h2.underline::after {
    display: block;
    width: 60px;
    height: 3px;
    margin-top: 10px;
    margin-inline: auto;
    background-color: var(--color-pink);
    content: "";
}

h2.ajisai-blue::before {
    display: block;
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
    margin-inline: auto;
    padding-top: 10px;
    background-image: url("../images/ajisai_icon_blue.png");
    background-position: center;
    background-size: 50px;
    background-repeat: no-repeat;
    content: "";
}

h2.ajisai-pink::before {
    display: block;
    width: 50px;
    height: 50px;
    margin-bottom: 20px;
    margin-inline: auto;
    background-image: url("../images/ajisai_icon_pink.png");
    background-position: center;
    background-size: 50px;
    background-repeat: no-repeat;
    content: "";
}

h3 {
    color: #000;
    font-weight: 700;
    font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
    letter-spacing: 0.02em;
    text-align: center;
}

@media screen and (max-width: 767px) {
    .pc {
        display: none;
    }
}

@media screen and (min-width: 768px) {
    .smp {
        display: none;
    }

    h2.logo-sml::before {
        width: 166px;
        height: 146px;
        margin-bottom: 20px;
        margin-inline: auto;
        background-size: 166px 145px;
    }

    h2.ajisai-blue::before {
        margin-bottom: 40px;
    }

    h2.ajisai-pink::before {
        margin-bottom: 40px;
    }

    h2.logo-big::before {
        width: 166px;
        height: 146px;
        margin-bottom: 40px;
        background-size: 166px 146px;
    }
}



/* header __________________________________________________________*/

.header {
    z-index: 4;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.header-logo {
    margin-top: 40px;
    text-align: center;
}

.header-logo img {
    display: inline;
    width: 291px;
    height: auto;
}

@media screen and (min-width: 768px) {
    .header {
        z-index: 1;
        top: 98px;
        left: 0;
        width: auto;
    }

    .header-logo {
        margin-top: clamp(0px, -102.462px + 13.341vw, 111px);
        margin-left: clamp(60px, -13.846px + 9.615vw, 140px);
    }

    .header-logo img {
        width: 600px;
    }
}

@media screen and (min-width: 1920px) {
    .header-logo {
        margin-top: 111px;
        margin-left: 260px;
    }
}



/* firstview _______________________________________________________*/

.firstview {
    position: relative;
    height: 956px;
}

.firstview-visual {
    height: 812px;
    background-image: url("../images/fv_bg.png"), linear-gradient(270deg, rgba(255, 255, 255, 0) 54.81%, rgba(181, 207, 254, 0.2) 78.37%);
    background-position: 90% bottom;
    background-size: cover;
    background-repeat: no-repeat;
    background-blend-mode: overlay;
}

.firstview-copy {
    padding-top: 140px;
    padding-left: clamp(0px, -53.333px + 16.667vw, 20px);
}

.firstview-copy span {
    display: inline-block;
    margin-top: 10px;
    padding: 14px 10px;
    border-radius: 10px;
    background-color: #FFF;
    font-weight: 700;
    font-size: clamp(0.875rem, 0.208rem + 3.333vw, 1.125rem);
    line-height: 1;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    letter-spacing: 0.02em;
}

.firstview-decoration {
    z-index: 2;
    position: absolute;
    right: 0;
    bottom: 75px;
    left: 0;
    height: 205px;
    overflow: hidden;
}

.firstview-decoration img {
    position: absolute;
    bottom: 0;
    max-width: none;
}

.firstview-decoration-left {
    left: 25px;
    width: 806px;
    height: 205px;
}

.firstview-decoration-right {
    right: 25px;
    width: 543px;
    height: 205px;
}

.firstview-actions {
    display: flex;
    z-index: 998;
    position: fixed;
    bottom: 0;
    width: 100%;
    gap: 2px;
}

.firstview-actions a {
    display: flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: space-between;
    padding-block: 10px;
    line-height: 1.5;
}

.firstview-actions-tocontact {
    justify-content: flex-end;
    padding-inline: 10px;
    border-top-right-radius: 10px;
    background-color: var(--color-blue);
}

.firstview-actions-tojoinus {
    padding-inline: 10px;
    border-top-left-radius: 10px;
    background-color: var(--color-pink);
}

.firstview-actions-icon {
    display: grid;
    flex-shrink: 0;
    place-items: center;
    width: 26px;
    height: 26px;
    margin-block: 9px;
    border-radius: 50%;
    background-color: #FFF;
}

.firstview-actions-tocontact img {
    width: 17px;
    height: auto;
}

.firstview-actions-tocontact .firstview-actions-label {
    color: #FFF;
    font-weight: 700;
    font-size: clamp(1rem, 0.025rem + 4vw, 1.125rem);
}

.firstview-actions-tojoinus img {
    width: 14.3px;
    height: auto;
}

.firstview-actions-tojoinus .firstview-actions-label {
    color: #FFF;
    font-weight: 700;
    font-size: clamp(1rem, 0.025rem + 4vw, 1.125rem);
}

.firstview-actions-tocontact::after,
.firstview-actions-tojoinus::after {
    width: 9px;
    height: 9px;
    margin-top: -4px;
    margin-left: 2px;
    transform: rotate(45deg);
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    content: "";
}

@media (max-width: 430px) {
    .firstview-visual {
        background-position: clamp(85%, calc(9.09vw + 50.91%), 90%) bottom;
    }
}

@media screen and (min-width: 768px) {
    .firstview {
        container-name: fv-blocksize;
        container-type: inline-size;
        height: 970px;
        margin-bottom: 40px;
    }

    .firstview-visual {
        height: 900px;
        background-image: url("../images/fv_bg.png"), linear-gradient(270deg, rgba(255, 255, 255, 0) 54.81%, rgba(181, 207, 254, 0.2) 78.37%);
        background-position: right clamp(40%, calc(40% + (100vw - 1600px) * 0.05208), 50%);
    }

    .firstview-actions {
        z-index: 4;
        position: absolute;
        top: 0;
        bottom: unset;
        align-items: center;
        justify-content: flex-end;
        height: 98px;
        padding-right: 40px;
        gap: 10px;
    }

    .firstview-actions a {
        position: relative;
        flex: unset;
        width: 270px;
        height: 54px;
        padding-block: 0;
    }

    .firstview-actions-icon {
        width: 34px;
        height: 34px;
        margin-right: 0;
    }

    .firstview-actions-tocontact,
    .firstview-actions-tojoinus {
        justify-content: space-between;
        padding-inline: 10px 20px;
        padding-block: 10px;
        border: 0;
        border-radius: 100px;
        box-shadow: 0px 4px 0px 0px #0000001A;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .firstview-actions-tocontact::before,
    .firstview-actions-tojoinus::before {
        position: absolute;
        right: 0;
        width: 26px;
        height: 26px;
        margin-right: 20px;
        border-radius: 40px;
        background-color: #FFF;
        content: "";
    }

    .firstview-actions-tocontact::after,
    .firstview-actions-tojoinus::after {
        width: 8px;
        height: 8px;
        margin-inline: 9px;
    }

    .firstview-actions-tocontact:hover,
    .firstview-actions-tojoinus:hover {
        transform: translateY(4px);
        box-shadow: none;
    }

    .firstview-actions-tocontact::after {
        border-right: 2px solid var(--color-blue);
        border-bottom: 2px solid var(--color-blue);
    }

    .firstview-actions-tojoinus::after {
        border-right: 2px solid var(--color-pink);
        border-bottom: 2px solid var(--color-pink);
    }

    .firstview-actions-tocontact img {
        width: 20px;
        height: auto;
    }

    .firstview-actions-tocontact .firstview-actions-label {
        margin-right: 0;
        font-size: 1.3125rem;
        line-height: 1.76;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
    }

    .firstview-actions-tojoinus img {
        width: 17px;
        height: auto;
    }

    .firstview-actions-tojoinus .firstview-actions-label {
        margin: 0;
        font-size: 1.3125rem;
        line-height: 1.76;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
    }

    .firstview-copy {
        padding-top: 430px;
        padding-left: 40px;
    }

    .firstview-copy span {
        display: inline-block;
        margin-top: 20px;
        padding: 24px 20px;
        font-size: clamp(2.125rem, 2.010rem + 0.24vw, 2.25rem);
        line-height: 1.66;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
    }

    .firstview-decoration {
        bottom: 10px;
    }

    .firstview-decoration-left {
        left: -64px;
    }

    .firstview-decoration-right {
        right: -64px;
    }

    @container fv-blocksize (min-width: 1601px) {
        .firstview-copy {
            padding-top: clamp(430px, 369.774px + 3.762vw, 442px);
            padding-left: clamp(40px, -562.257px + 37.618vw, 160px);
        }

        .firstview-decoration-left {
            left: clamp(-64px, -867.009px + 50.157vw, 96px);
        }

        .firstview-decoration-right {
            right: clamp(-64px, -867.009px + 50.157vw, 96px);
        }
    }
}



    /* aboutus _________________________________________________________*/

    .aboutus {
        margin-bottom: 80px;
        padding-inline: 20px;
    }

    .aboutus-wrap {
        padding: 40px 20px;
        border-radius: 40px;
        background-image: url("../images/about_bg_smp.jpg"),
            linear-gradient(0deg, rgba(0, 82, 188, 0.2), rgba(0, 82, 188, 0.2)),
            linear-gradient(89.83deg, rgba(181, 207, 254, 0.35) 0.12%, rgba(181, 207, 254, 0) 68.67%);
        background-position: right bottom;
        background-size: cover;
        background-repeat: no-repeat;
        background-blend-mode: soft-light;
    }

    .aboutus-lead {
        display: flex;
        flex-direction: column;
        margin-bottom: 20px;
        padding-block: 20px;
        gap: 10px;
    }

    .aboutus-lead span {
        color: #FFF;
        font-weight: 700;
        font-size: clamp(1rem, 0.167rem + 4.167vw, 1.313rem);
        line-height: 1.76;
        letter-spacing: 0.04em;
    }

    .aboutus-text {
        margin-bottom: 144px;
        padding-block: 10px;
        color: #FFF;
        font-weight: 500;
        font-size: clamp(0.938rem, 0.438rem + 2.5vw, 1.125rem);
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
    }

    @media screen and (min-width: 768px) {
        .aboutus {
            margin-bottom: 100px;
            padding-inline: 40px;
        }

        .aboutus-wrap {
            max-width: 1520px;
            margin-inline: auto;
            padding: 80px 60px;
            border-radius: 100px;
            background-image: url("../images/about_bg.png"), linear-gradient(0deg, rgba(0, 82, 188, 0.2), rgba(0, 82, 188, 0.2)),
                linear-gradient(89.83deg, rgba(181, 207, 254, 0.35) 0.12%, rgba(181, 207, 254, 0) 68.67%);
            background-position: right bottom;
            background-size: cover;
        }

        .aboutus-lead {
            margin-bottom: 0;
            gap: 20px;
        }

        .aboutus-lead span {
            padding-block: 10px;
            color: #FFF;
            font-size: clamp(2.438rem, 2.380rem + 0.12vw, 2.5rem);
            line-height: 1.5;
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
            letter-spacing: 0.04em;
        }

        .aboutus-text {
            margin-bottom: 0;
            padding-block: 20px;
            font-weight: 500;
            font-size: 1.875rem;
            line-height: 1.9;
            font-family: "Noto Sans JP", sans-serif;
            text-box-trim: none;
            letter-spacing: 0.05em;
            word-break: keep-all;
            overflow-wrap: anywhere;
        }
    }



    /* service ________________________________________________________*/

    .service {
        padding-block: 40px;
        background-color: #FFF;
    }

    @media screen and (min-width: 768px) {
        .service {
            container-name: service-sectionsize;
            container-type: inline-size;
            padding-inline: 40px;
            padding-block: 40px 80px;
        }
    }

    @media screen and (min-width: 1601px) {
        .service {
            padding-inline: clamp(40px, -60.376px + 6.27vw, 60px);
        }
    }



    /** 訪問看護サービスとは？ ****/

    .service-overview {
        margin: 40px auto;
        padding-inline: 20px;
    }

    .service-overview h2 {
        margin-bottom: 10px;
        font-size: clamp(2.063rem, 0.896rem + 5.833vw, 2.5rem);
        line-height: 1.5;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
    }

    .service-overview p {
        padding-block: 10px;
        font-size: 1.125rem;
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    @media screen and (min-width: 768px) {
        .service-overview-wrap {
            container-name: service-overview-deco;
            container-type: inline-size;
            display: flex;
            margin-bottom: 120px;
            padding-inline: 0;
        }

        @container service-overview-deco (max-width: 1519px) {
            .service-overview-left {
                display: none;
            }

            .service-overview-right {
                display: none;
            }
        }

        .service-overview-wrap {
            justify-content: center;
        }

        .service-overview-left {
            position: relative;
            flex-shrink: 0;
            width: 380px;
            height: 380px;
            margin-right: 40px;
            isolation: isolate;
        }

        .service-overview-left-photo {
            z-index: 1;
            position: absolute;
            inset: 0;
            border: 1px solid #DBE8FA;
            border-radius: 50%;
            background-image: url("../images/svc_decoration_left.jpg");
            background-position: center;
            background-size: cover;
            background-repeat: no-repeat;
            box-shadow: 10px 20px 0px 0px #DBE8FA;
        }

        .service-overview-left::before {
            display: block;
            z-index: 2;
            position: absolute;
            top: 267px;
            right: 266px;
            width: 134px;
            height: 140px;
            background-image: url("../images/svc_item01.png");
            background-position: center;
            background-size: contain;
            background-repeat: no-repeat;
            content: "";
        }

        .service-overview-left::after {
            display: block;
            z-index: 3;
            position: absolute;
            top: 267px;
            left: 270px;
            width: 130px;
            height: 213px;
            background-image: url("../images/svc_item02.png");
            background-position: center;
            background-size: contain;
            background-repeat: no-repeat;
            content: "";
        }

        .service-overview-right {
            position: relative;
            flex-shrink: 0;
            width: 380px;
            height: 380px;
            margin-left: 40px;
            isolation: isolate;
        }

        .service-overview-right-photo {
            z-index: 1;
            position: absolute;
            inset: 0;
            border: 1px solid #FBE2ED;
            border-radius: 50%;
            background-image: url("../images/svc_decoration_right.jpg");
            background-position: center;
            background-size: cover;
            background-repeat: no-repeat;
            box-shadow: 10px 20px 0px 0px #EC6CA533;
        }

        .service-overview-right::before {
            display: block;
            z-index: 2;
            position: absolute;
            top: 198px;
            right: 272px;
            width: 130px;
            height: 202px;
            background-image: url("../images/svc_item03.png");
            background-position: center;
            background-size: contain;
            background-repeat: no-repeat;
            content: "";
        }

        .service-overview-right::after {
            display: block;
            z-index: 0;
            position: absolute;
            bottom: 249px;
            left: 221px;
            width: 179px;
            height: 204px;
            background-image: url("../images/svc_item04.png");
            background-position: center;
            background-size: contain;
            background-repeat: no-repeat;
            content: "";
        }

        .service-overview {
            max-width: 800px;
            margin-inline: 0;
            margin-block: 0;
            padding-inline: 15px;
        }

        .service-overview h2 {
            margin-bottom: 20px;
            font-size: 3.5rem;
            line-height: 1.43;
            letter-spacing: 0.04em;
        }

        .service-overview p {
            padding-block: 20px;
            font-size: 1.3125rem;
            line-height: 1.76;
            font-family: "Noto Sans JP", sans-serif;
            text-box-trim: none;
            letter-spacing: 0.01em;
        }
    }

    /** 「あじさい」の充実した訪問看護サービス ****/

    .service-feature {
        padding-top: 50px;
        padding-inline: 20px;
        border-radius: 40px 40px 0 0;
        background-color: #FFF3FB;
    }

    .service-feature h2 {
        margin-bottom: 40px;
        font-size: clamp(1.5rem, 0.500rem + 5vw, 1.875rem);
        line-height: 1.47;
    }

    .service-feature-list {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .service-feature-item {
        display: flex;
        position: relative;
        flex-direction: column;
        align-items: center;
        width: 100%;
        min-height: 234px;
        padding-inline: 20px;
        padding-block: 40px 20px;
        border-radius: 20px;
        background-color: #FFF;
        text-align: center;
    }

    .service-feature-item:nth-child(4) {
        min-height: 244px;
        word-break: keep-all;
        overflow-wrap: anywhere;
    }

    .service-feature-num {
        display: grid;
        position: absolute;
        top: -9.5px;
        left: 50%;
        place-items: center;
        width: 40px;
        height: 40px;
        transform: translateX(-50%);
        border-radius: 70px;
        background-color: var(--color-pink);
        color: #FFF;
        font-weight: 700;
        font-size: 1.5rem;
        line-height: 1;
        font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
    }

    .service-feature-item img {
        width: 60px;
        height: 60px;
        margin-block: 10px 5px;
        object-fit: contain;
    }

    .service-feature-item p {
        margin-block: auto;
        font-weight: 700;
        font-size: 1.25rem;
        line-height: 1.85;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    @media screen and (min-width: 768px) {
        .service-feature {
            container-name: service-feature-blocksize;
            container-type: inline-size;
            padding-block: 100px 80px;
            border-radius: 100px 100px 0 0;
            background-color: #FFF3FB;
        }
        .service-feature-num {
            top: -20px;
            width: 70px;
            height: 70px;
            padding-bottom: 5px;
            font-size: 2.875rem;
            font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
        }

        .service-feature h2 {
            margin-bottom: 20px;
            padding-bottom: 20px;
            font-size: 2.5rem;
            line-height: 1.45;
        }

        .service-feature-list {
            flex-direction: row;
            justify-content: center;
            padding-top: 60px;
            gap: 20px;
        }

        .service-feature-item {
            width: min(25%, 355px);
            min-height: 370px;
            padding-inline: 5px;
            padding-block: 60px 20px;
            border-radius: 20px;
            background-color: #FFF;
            text-align: center;
        }

        .service-feature-item img {
            width: 100px;
            height: 100px;
            margin-block: 10px 20px;
            object-fit: contain;
        }

        .service-feature-item p {
            margin-block: 0;
            padding-block: 20px;
            font-weight: 700;
            font-size: 1.125rem;
            line-height: 1.85;
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
            letter-spacing: 0.02em;
        }


        @container service-feature-blocksize (min-width: 904px) {
            .service-feature-list {
                flex-wrap: nowrap;
            }
        }
    }

    @media screen and (min-width: 1601px) {
        .service-feature {
            padding-inline: clamp(20px, -380.000px + 25vw, 100px);
        }
        .service-feature-item {
            width: min(25%, 385px);
        }
    }

    /** 訪問看護サービスの内容 ****/

    .service-detail {
        padding: 50px 10px;
        border-radius: 0 0 40px 40px;
        background-color: #FFF3FB;
    }

    .service-detail h2 {
        padding-block: 10px;
        font-size: clamp(1.5rem, 0.500rem + 5vw, 1.875rem);
        line-height: 1.16;
    }

    .service-detail>p {
        padding-block: 10px 20px;
        font-size: clamp(1.125rem, 0.625rem + 2.5vw, 1.3125rem);
        line-height: 1.76;
        font-family: "Noto Sans JP", sans-serif;
        text-align: center;
    }

    .service-detail-list {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding-inline: 17px;
        padding-block: 20px 10px;
        gap: 10px;
    }

    .service-detail-item {
        display: grid;
        grid-template: "image title" auto
            "image text" auto
            / 100px minmax(0, 1fr);
        align-content: center;
        width: 100%;
        padding: 20px 10px;
        gap: 10px;
        border-radius: 20px;
        background-color: #FFF;
    }

    .service-detail-item img {
        grid-area: image;
        align-self: center;
        width: 100px;
        height: 80px;
        object-fit: contain;
    }

    .service-detail-item h3 {
        grid-area: title;
        padding-block: 10px;
        font-size: 1.5rem;
        line-height: 1.5;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .service-detail-item p {
        grid-area: text;
        padding-block: 5px;
        font-size: 1.125rem;
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
        text-align: left;
    }

    @media screen and (min-width: 768px) {
        .service-detail {
            container-name: service-detail-blocksize;
            container-type: inline-size;
            padding-inline: 10px;
            padding-block: 40px 120px;
            border-radius: 0 0 100px 100px;
            background-color: #FFF3FB;
        }

        .service-detail h2 {
            padding-block: 0 40px;
            font-size: 2.5rem;
            line-height: 1.45;
        }

        .service-detail>p {
            padding-block: 10px 20px;
            font-size: 1.3125rem;
        }

        .service-detail-list {
            flex-direction: row;
            align-items: stretch;
            padding-inline: 20px;
            padding-block: 40px;
            gap: 20px;
        }

        .service-detail-item {
            display: flex;
            position: relative;
            flex-direction: column;
            align-content: center;
            align-items: center;
            justify-content: flex-start;
            width: min(20%, 280px);
            min-height: 360px;
            padding-inline: 10px;
            padding-block: 140px 20px;
            gap: 0;
        }

        .service-detail-item img {
            position: absolute;
            top: -20px;
            width: min(100%, 200px);
            height: min(100%, 160px);
        }

        .service-detail-item h3 {
            padding-block: 10px;
            text-align: center;
        }

        .service-detail-item p {
            padding: 10px;
        }

        @container service-detail-blocksize (min-width: 1501px) {
            .service-detail-list {
                padding-inline: clamp(20px, -380.000px + 25vw, 100px);
            }

            .service-detail-item {
                width: min(20%, 304px);
            }
        }
    }

    /** 訪問看護サービスの流れ ****/

    .service-flow {
        padding-block: 60px;
    }

    .service-flow-outer-wrap {
        padding-inline: 20px;
    }

    .service-flow-inner-wrap h2 {
        margin-bottom: 30px;
        font-size: clamp(1.813rem, -0.021rem + 9.167vw, 2.5rem);
        line-height: 1.45;
    }

    .service-flow-inner-wrap p {
        font-family: "Noto Sans JP", sans-serif;
    }

    .service-flow-lead {
        margin-bottom: 20px;
        padding-block: 10px;
        font-weight: 700;
        font-size: clamp(1.125rem, 0.625rem + 2.5vw, 1.3125rem);
        line-height: 1.76;
    }

    .service-flow-text {
        margin-bottom: 40px;
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        line-height: 1.66;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    .service-flow-image {
        width: max(100%, 360px);
        height: auto;
        margin-inline: auto;
        padding-inline: 20px;
    }

    @media screen and (min-width: 768px) {
        .service-flow {
            container-name: service-flow-blocksize;
            container-type: inline-size;
            padding-bottom: 0;
        }

        .service-flow-outer-wrap {
            display: flex;
            align-items: center;
            justify-content: center;
            width: min(100%, 1520px);
            margin-bottom: 80px;
            margin-inline: auto;
            padding-inline: 60px;
            padding-block: 60px 40px;
            gap: clamp(0px, -240.941px + 31.373vw, 80px);
        }

        .service-flow-inner-wrap {
            width: min(50%, 660px);
        }

        .service-flow-inner-wrap h2 {
            margin-bottom: 50px;
            font-size: 3.5rem;
            line-height: 1.43;
            letter-spacing: 0.04em;
        }

        .service-flow-lead {
            margin-bottom: 20px;
            font-size: 1.3125rem;
        }

        .service-flow-text {
            margin-bottom: 0;
            font-size: 1.125rem;
        }

        .service-flow-image {
            flex-shrink: 0;
            width: min(50%, 620px);
            height: auto;
            margin-inline: 20px;
        }


        @container service-flow-blocksize (min-width: 1521px) {
            .service-flow-outer-wrap {
                width: min(100%, 1400px);
                margin-inline: auto;
                padding-inline: 0;
            }
        }
    }

    /** お問い合わせ（サービス部） ****/

    .service-contact {
        padding-inline: 10px;
    }

    .service-contact-wrap {
        display: flex;
        flex-direction: column;
        padding-inline: 20px;
        padding-block: 40px 80px;
        gap: 40px;
        border-radius: 40px;
        background-image: url("../images/contact_bg.png");
        background-position: 79% center;
        background-size: cover;
        background-repeat: no-repeat;
        background-color: #FEA97C26;
        background-blend-mode: overlay;
    }

    .service-contact-text {
        display: flex;
        flex-direction: column;
        padding-block: 20px;
        gap: 40px;
    }

    .service-contact-text h2 {
        color: #FFF;
        font-size: clamp(2.25rem, 1.583rem + 3.333vw, 2.5rem);
        line-height: 1.2;
        letter-spacing: 0.04em;
        text-align: left;
    }

    .service-contact-text p {
        color: #FFF;
        font-size: clamp(1rem, 0.167rem + 4.167vw, 1.313rem);
        line-height: 1.71;
        font-family: "Noto Sans JP", sans-serif;
    }

    @media screen and (min-width: 768px) {
        .service-contact {
            container-name: service-contact-blocksize;
            container-type: inline-size;
            padding-inline: 0;
        }

        .service-contact-wrap {
            justify-content: space-between;
            width: min(100%, 1400px);
            margin-inline: auto;
            padding-inline: clamp(20px, -40.235px + 7.843vw, 40px);
            padding-block: clamp(40px, -80.471px + 15.686vw, 80px) 80px;
            gap: 40px;
            border-radius: 40px;
            background-position: right;
        }

        .service-contact-text {
            width: fit-content;
        }

        .service-contact-text h2 {
            font-size: clamp(2.5rem, -1.078rem + 7.454vw, 3.688rem);
            line-height: 1.2;
        }

        .service-contact-text p {
            font-size: 1.3125rem;
        }

        @container service-sectionsize (min-width: 944px) {
            .service-contact {
                min-block-size: calc( 54 / 175 * 100cqi);
                padding-inline: clamp(0px, -123.871px + 12.097vw, 60px);
            }

            @container service-contact-blocksize (min-width: 944px) {
                .service-contact-wrap {
                    flex-direction: row;
                    align-items: center;
                    justify-content: space-between;
                    width: min(100%, 1400px);
                    margin-inline: auto;
                    padding-inline: clamp(20px, -21.290px + 4.032vw, 40px);
                    padding-block: 80px;
                    gap: clamp(10px, -51.935px + 6.048vw, 40px);
                    border-radius: 40px;
                }

                .service-contact-text {
                    width: clamp(290px, 67.032px + 21.774vw, 398px);
                    padding-block: 20px;
                    gap: 40px;
                }

                .service-contact-text h2 {
                    font-size: clamp(2.5rem, 1.287rem + 2.527vw, 3.688rem);
                    line-height: 0.81;
                    text-align: left;
                }

                .service-contact-text p {
                    font-size: 1.3125rem;
                }
            }
        }

        @container service-contact-blocksize (min-width: 1520px) {
            .service-contact-text {
                width: 398px;
            }
        }
    }

    @media screen and (min-width: 1521px) {
        .service-contact {
            padding-inline: 0;
        }
    }




    /* contact cta _____________________________________________________*/

    .contactcta-info {
        padding-inline: 10px;
        padding-block: 20px;
        border-radius: 20px;
        background-color: #FFF;
        font-size: 1.125rem;
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        letter-spacing: 0.02em;
    }

    .contactcta-info h3 {
        display: flex;
        align-items: center;
        padding-inline: 10px;
        padding-block: 10px;
        gap: 10px;
        font-size: 1.25rem;
        line-height: 1.71;
    }

    .contactcta-tel {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-block: 10px;
        gap: 10px;
    }

    .contactcta-tel-icon {
        width: 22px;
        height: 32px;
    }

    .contactcta-tel-time {
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    .contactcta-tel-num {
        margin-bottom: 10px;
        padding-block: 5px 5px;
        font-weight: 700;
        font-size: clamp(2.125rem, -0.542rem + 13.333vw, 3.125rem);
        line-height: 0.72;
        font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .contactcta-mail {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-block: 10px;
    }

    .contactcta-mail-icon {
        width: 30px;
        height: 25px;
    }

    .contactcta-toform-wrap {
        padding-block: 10px;
    }

    .contactcta-toform {
        display: flex;
        position: relative;
        justify-content: center;
        padding-inline: 40px 84px;
        padding-block: 18px;
        border-radius: 100px;
        background-color: var(--color-pink);
        box-shadow: 0px 4px 0px 0px #0000001A;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .contactcta-toform span {
        color: #FFF;
        font-weight: 700;
        font-size: 1.125rem;
        line-height: 1.33;
        font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
        text-align: center;
    }

    .contactcta-toform::before {
        position: absolute;
        top: 50%;
        right: 20px;
        width: 44px;
        height: 44px;
        transform: translateY(-50%);
        border-radius: 40px;
        background-color: #FFF;
        content: "";
    }

    .contactcta-toform::after {
        z-index: 1;
        position: absolute;
        top: 50%;
        right: 38px;
        width: 8px;
        height: 8px;
        transform: translateY(-70%) rotate(45deg);
        border-right: 2px solid var(--color-pink);
        border-bottom: 2px solid var(--color-pink);
        content: "";
    }

    .contactcta-toform:hover {
        transform: translateY(4px);
        box-shadow: none;
    }

    @media screen and (min-width: 440px) {
        .contactcta-info {
            padding-inline: 20px;
        }

        .contactcta-info h3 {
            padding-inline: 0px;
        }
    }

    @media screen and (min-width: 768px) {
        .contactcta-info {
            container-name: contactcta-info-blocksize;
            container-type: inline-size;
            display: flex;
            flex-direction: row;
            align-items: flex-start;
            justify-content: space-between;
            max-width: 864px;
            padding: 0;
            border-radius: 20px;
            background-color: #FFF;
        }
        .contactcta-info h3 {
            width: max-content;
            min-height: 52px;
            font-size: clamp(1.313rem, -0.380rem + 3.526vw, 1.875rem);
            line-height: 1.2;
        }

        .contactcta-tel,
        .contactcta-mail {
            flex-direction: column;
            align-items: center;
            width: 50%;
            height: 100%;
            padding-inline: clamp(10px, -50.235px + 7.843vw, 30px);
            padding-block: clamp(0px, -90.353px + 11.765vw, 30px);
        }

        .contactcta-tel {
            gap: 10px;
        }

        .contactcta-tel-num {
            font-size: clamp(3.125rem, 1.243rem + 3.922vw, 3.75rem);
            line-height: 0.6;
        }

        .contactcta-toform {
            align-items: center;
            max-height: 84px;
            padding-inline: clamp(20px, -40.235px + 7.843vw, 40px) 84px;
            padding-block: 20px;
        }

        .contactcta-toform span {
            padding-block: 15px;
            font-size: clamp(1.125rem, 0.749rem + 0.784vw, 1.25rem);
            line-height: clamp(1.33rem, -0.236rem + 3.263vw, 1.85rem);
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
            letter-spacing: 0.04em;
            word-break: keep-all;
            overflow-wrap:break-word;
        }

        @container service-contact-blocksize (min-width: 944px) {
            .contactcta-info {
                display: flex;
                flex-direction: row;
                align-items: flex-start;
                justify-content: space-between;
                width: 65.5%;
                max-width: 864px;
                padding: 0;
                border-radius: 20px;
                background-color: #FFF;
            }
            .contactcta-info h3 {
                width: max-content;
                min-height: 52px;
                font-size: clamp(1.313rem, 0.149rem + 1.817vw, 1.875rem);
                line-height: 1.2;
            }

            .contactcta-tel,
            .contactcta-mail {
                flex-direction: column;
                align-items: center;
                width: 50%;
                height: 100%;
                padding-inline: clamp(10px, -31.290px + 4.032vw, 30px);
                padding-block: clamp(0px, -62.121px + 6.061vw, 30px);
            }

            .contactcta-tel {
                gap: 10px;
            }

            .contactcta-tel-num {
                font-size: clamp(3.125rem, 1.831rem + 2.02vw, 3.75rem);
                line-height: 0.6;
            }

            .contactcta-toform {
                align-items: center;
                max-height: 84px;
                padding-inline: clamp(20px, -360.000px + 25vw, 40px) 84px;
                padding-block: 20px;
            }

            .contactcta-toform span {
                padding-block: 15px;
                font-size: clamp(1.125rem, 0.866rem + 0.404vw, 1.25rem);
                line-height: clamp(1.33rem, 0.253rem + 1.681vw, 1.85rem);
                text-box-trim: trim-both;
                text-box-edge: cap alphabetic;
                letter-spacing: 0.04em;
                word-break: keep-all;
                overflow-wrap:break-word;
            }

            @container contactcta-info-blocksize (min-width: 805px) {
                .contactcta-info {
                    min-height: 220px;
                }

                .contactcta-info h3 {
                        font-size: 1.875rem;
                }
            }
        }


        @container service-contact-blocksize (min-width: 1520px) {
            .contactcta-info {
                flex-wrap: nowrap;
                width: clamp(864px, 774.000px + 5.625vw, 882px);
            }

            .contactcta-info h3 {
                width: max-content;
                letter-spacing: 0.05em;
            }

            .contactcta-tel {
                width: clamp(428px, 383.000px + 2.813vw, 437px);
            }

            .contactcta-tel h3,
            .contactcta-tel-time,
            .contactcta-tel-num,
            .contactcta-mail h3 {
                white-space: nowrap;
            }

            .contactcta-mail {
                width: clamp(436px, 391.000px + 2.813vw, 445px);
            }

            .contactcta-toform-wrap {
                min-width: 376px;
            }


            .contactcta-toform span {
                line-height: 1.85;
            }

        }
    }



    /* joinus __________________________________________________________*/

    .joinus {
        background-color: #FFF;
    }

    .joinus-wrap {
        padding-inline: 20px;
        padding-block: 20px 68px;
        border-radius: 40px;
        background-color: #F0F5FF;
        text-align: center;
    }

    .joinus h2 {
        margin-block: 20px;
        font-weight: 700;
        font-size: clamp(2.375rem, 2.042rem + 1.667vw, 2.5rem);
        line-height: 2;
        letter-spacing: 0.04em;
    }

    .joinus h2::after {
        margin-top: 20px;
    }

    .joinus-lead {
        margin-bottom: 40px;
        padding-top: 20px;
        font-weight: 700;
        font-size: clamp(1.5rem, 0.500rem + 5vw, 1.875rem);
        line-height: 1.43;
        letter-spacing: 0.04em;
    }

    .joinus-text {
        margin-bottom: 40px;
        padding-bottom: 20px;
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    .joinus-detail-list {
        display: flex;
        flex-direction: column;
        margin-bottom: 48px;
        gap: 40px;
    }

    .joinus-detail-item {
        display: flex;
        position: relative;
        flex-direction: column;
        min-width: 300px;
        padding-inline: 20px;
        padding-block: 100px 40px;
        border-radius: 20px;
        background-color: #FFF;
    }

    .joinus-detail-item h3 {
        margin-bottom: 20px;
        font-weight: 700;
        font-size: clamp(1.438rem, 1.271rem + 0.833vw, 1.5rem);
        line-height: 1.5;
    }

    .joinus-detail-item img {
        position: absolute;
        top: -20px;
        left: 50%;
        width: 247px;
        height: 110px;
        object-fit: contain;
        transform: translateX(-50%);
    }

    .joinus-item-num {
        font-weight: 700;
        font-size: 1.125rem;
        line-height: 1.33;
    }

    .joinus-item-num span {
        font-size: 1.625rem;
        line-height: 0.92;
    }

    .joinus-item-num::after {
        display: block;
        width: 36px;
        height: 1px;
        margin: 12px auto;
        background-color: var(--color-pink);
        content: "";
    }

    .joinus-item-text {
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .joinus-wrap .contactcta-toform-wrap {
        padding-block: 8px;
    }

    .joinus-wrap .contactcta-toform {
        max-width: 440px;
        margin: 0;
        margin-inline: auto;
        padding-inline: 30px 74px;
        padding-block: 20px;
    }

    .joinus-wrap .contactcta-toform span {
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        font-family: "Noto Sans JP", sans-serif;
    }

    @media screen and (min-width: 768px) {
        .joinus {
            container-name: joinus-block-size;
            container-type: inline-size;
        }

        .joinus-wrap {
            padding-inline: 60px;
            padding-block: 20px 150px;
            border-radius: 100px;
        }

        .joinus h2 {
            margin-block: 40px;
            font-size: 3.5rem;
            line-height: 1.43;
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
        }

        .joinus h2::after {
            margin-top: 20px;
        }

        .joinus-lead {
            font-size: 2.5rem;
            line-height: 1.45;
        }

        .joinus-text {
            margin-bottom: 60px;
            font-size: 1.125rem;
            line-height: 1.67;
        }

        .joinus-detail-list {
            flex-direction: row;
            flex-wrap: wrap;
            justify-content: center;
            margin-bottom: 50px;
            padding-block: 20px;
        }

        .joinus-detail-item {
            display: flex;
            position: relative;
            flex-direction: column;
            padding-inline: 40px;
            padding-block: 100px 40px;
            border-radius: 20px;
            background-color: #FFF;
        }

        .joinus-detail-item h3 {
            font-size: 1.5rem;
        }

        .joinus-item-text {
            font-size: 1.125rem;
        }

        .joinus-wrap .contactcta-toform-wrap {
            padding-block: 10px;
        }

        .joinus-wrap .contactcta-toform {
            width: fit-content;
            max-width: none;
            padding-inline: 40px 84px;
            padding-block: 20px;
        }

        .joinus-wrap .contactcta-toform span {
            font-size: 1.5rem;
            line-height: 1.85;
            font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
            letter-spacing: 0.02em;
        }

        @container joinus-block-size (min-width: 1024px) {
            .joinus-wrap {
                padding-inline: 60px;
                padding-block: 20px 150px;
                border-radius: 100px;
            }

            .joinus h2 {
                margin-block: 40px;
                font-size: 3.5rem;
                line-height: 1.43;
                text-box-trim: trim-both;
                text-box-edge: cap alphabetic;
            }

            .joinus h2::after {
                margin-top: 20px;
            }

            .joinus-lead {
                font-size: 2.5rem;
                line-height: 1.45;
            }

            .joinus-text {
                margin-bottom: 60px;
                font-size: 1.125rem;
                line-height: 1.67;
            }

            .joinus-detail-list {
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: center;
                margin-bottom: 50px;
                padding-inline: clamp(0px, -248.889px + 24.306vw, 140px);
                padding-block: 20px;
            }

            .joinus-detail-item {
                display: flex;
                position: relative;
                flex-direction: column;
                width: calc(50% - clamp(40px, -102.222px + 13.889vw, 120px));
                padding-inline: clamp(20px, -15.556px + 3.472vw, 40px);
                padding-block: 100px 40px;
                border-radius: 20px;
                background-color: #FFF;
            }

            .joinus-detail-item h3 {
                font-size: 1.5rem;
            }

            .joinus-item-text {
                font-size: 1.125rem;
            }
        }

        @container joinus-block-size (min-width: 1601px) {
            .joinus-detail-item {
                width: 50%;
                max-width: 580px;
                padding-inline: clamp(20px, -15.556px + 3.472vw, 40px);
                padding-block: 100px 40px;
                border-radius: 20px;
                background-color: #FFF;
            }

            .joinus-wrap .contactcta-toform {
                width: 440px;
            }

            .joinus-wrap .contactcta-toform span {
                font-size: 1.3125rem;
                line-height: 1.76;
                letter-spacing: 0.04em;
            }
        }

        @container joinus-block-size (min-width: 1921px) {
            .joinus-detail-list {
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: center;
                max-width: 1200px;
                margin-bottom: 50px;
                margin-inline: auto;
                padding-inline: 0;
                padding-block: 20px;
            }
        }
    }

    /* instagram _______________________________________________________*/

    .instagram {
        padding: 60px 12px 80px;
        background-color: #FFF;
        text-align: center;
    }

    .instagram h2 {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 20px;
        gap: 20px;
        font-weight: 700;
        font-size: 1.875rem;
        line-height: 0.7;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
    }

    .instagram h2::before {
        display: block;
        width: 40px;
        height: 40px;
        background-image: url("../images/insta_icon.png");
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
        content: "";
    }

    .instagram-heading {
        display: inline-block;
        margin-bottom: 20px;
        font-size: 1.125rem;
        line-height: 0.72;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    .instagram-feed {
        padding-block: 20px;
        background-color: #FFF;
    }

    .instagram-feed-wrap {
        width: 100%;
        margin-inline: auto;
    }

		.instagram-feed-wrap img {
			border-radius: 10px;
		}

    .instagram-more {
        display: block;
        padding-inline: 20px;
        text-align: right;
    }

    .instagram-more a {
        display: inline-block;
        position: relative;
        padding-right: 30px;
        font-weight: 700;
        font-size: 1.125rem;
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    .instagram-more a::before {
        position: absolute;
        top: 50%;
        right: 0;
        width: 21px;
        height: 1px;
        transform: translateY(-50%);
        background-color: var(--color-pink);
        content: "";
    }

    .instagram-more a::after {
        position: absolute;
        top: 50%;
        right: 0;
        width: 6px;
        height: 6px;
        transform: translateY(-50%) rotate(45deg);
        border-top: 1px solid var(--color-pink);
        border-right: 1px solid var(--color-pink);
        content: "";
    }

    @media screen and (min-width: 768px) {
        .instagram {
            padding-inline: 60px;
        }
        .instagram h2 {
            font-size: 2.5rem;
        }
    }



    /* contact _________________________________________________________*/

    .contact {
        padding-inline: 20px;
        padding-block: 40px 100px;
    }

    .contact-outer-wrap {
        padding-top: 20px;
    }

    .contact-catch {
        display: flex;
        justify-content: center;
        margin-bottom: 10px;
        padding-top: 15px;
        font-weight: 700;
        font-size: clamp(1.5rem, 0.500rem + 5vw, 1.875rem);
        line-height: 1;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.04em;
    }

    .contact h2 {
        margin-bottom: 20px;
        padding-top: 20px;
        font-size: clamp(2rem, 0.667rem + 6.667vw, 2.5rem);
        line-height: 1.45;
        letter-spacing: 0.04em;
        word-break: keep-all;
        overflow-wrap:break-word;
    }

    .contact h2::after {
        margin-top: 20px;
    }

    .contact-text {
        width: fit-content;
        margin-bottom: 40px;
        margin-inline: auto;
        padding-top: 20px;
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        line-height: 1.66;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    .contact .contactcta-tel {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 20px;
        padding-inline: 0;
        padding-block: 0 20px;
        gap: 10px;
        background-color: transparent;
    }

    .contact .contactcta-tel h3 {
        display: flex;
        align-items: center;
        padding-block: 0;
        gap: 0;
        font-size: 1.625rem;
        line-height: 1.38;
        letter-spacing: 0;
    }

    .contact .contactcta-tel-num {
        padding-block: 0 5px;
        font-size: 3.125rem;
        letter-spacing: 0.04em;
    }

    @media screen and (min-width: 768px) {
        .contact {
            container-name: contact-block-size;
            container-type: inline-size;
            display: flex;
            flex-direction: column;
            align-items: center;
            padding-inline: clamp(70px, -50.000px + 15.625vw, 200px);
            padding-block: 60px 80px;
        }

        .contact-outer-wrap {
            width: stretch;
            max-width: 1040px;
            margin-inline: clamp(0px, -73.846px + 9.615vw, 80px);
            padding-top: 0;
        }

        .contact-catch {
            margin-bottom: 0;
            padding-top: 20px;
            font-size: 2.25rem;
            line-height: 1.67;
            letter-spacing: 0.04em;
        }

        .contact h2 {
            margin-bottom: 40px;
            padding-top: 0;
            font-size: 3.5rem;
            line-height: 1.43;
        }

        .contact h2::after {
            margin-top: 30px;
        }

        .contact-inner-wrap {
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 40px;
            padding-block: 20px;
            gap: 20px;
        }

        .contact-text {
            margin-bottom: 0;
            margin-inline: 0;
            padding-top: 0;
            font-size: 1.125rem;
            line-height: 1.67;
        }

        .contact .contactcta-tel {
            width: 377px;
            margin-bottom: 0;
            padding-inline: 0;
            padding-block: 0;
        }

        .contact .contactcta-tel h3 {
            width: max-content;
            gap: 10px;
            font-size: 1.875rem;
            line-height: 1.2;
            letter-spacing: 0.05em;
        }

        .contact .contactcta-tel-num {
            padding-block: 0 15px;
            font-size: 3.75rem;
            line-height: 0.6;
            letter-spacing: 0;
        }
    }

    @media screen and (min-width: 1600px) {
        .contact {
            padding-inline: clamp(200px, -600.000px + 50vw, 360px);
    }

}



    /* Contact Form7 ___________________________________________________*/

    .wpcf7 .form-wrap {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .wpcf7 .form-wrap label {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-block: 14px;
        font-weight: 700;
        font-size: 1.3125rem;
        line-height: 1.71;
        font-family: "Noto Sans JP", sans-serif;
    }

    .wpcf7 .form-wrap .required {
        display: inline-block;
        padding: 8px 10px;
        border-radius: 20px;
        background-color: var(--color-pink);
        color: #FFF;
        font-weight: 700;
        font-size: 1rem;
        line-height: 1.5;
        font-family: "Noto Sans JP", sans-serif;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
    }

    .wpcf7 .form-wrap select,
    .wpcf7 .form-wrap input.wpcf7-text,
    .wpcf7 .form-wrap textarea {
        width: 100%;
        min-height: 4rem;
        padding-inline: 20px;
        border: 1px solid var(--color-pink);
        border-radius: 12px;
        font-size: 1.125rem;
        line-height: 1.875;
        font-family: "Noto Sans JP", sans-serif;
        letter-spacing: 0.02em;
    }

    .wpcf7 .form-wrap textarea {
        max-height: 180px;
    }

    .wpcf7 .form-wrap select {
        appearance: none;
    }

    .wpcf7 .select-arrow {
        display: block;
        position: relative;
    }

    .wpcf7 .select-arrow::after {
        z-index: 1;
        position: absolute;
        top: 50%;
        right: 20px;
        width: 8px;
        height: 8px;
        transform: translateY(-70%) rotate(45deg);
        border-right: 2px solid var(--color-pink);
        border-bottom: 2px solid var(--color-pink);
        content: "";
    }

    .wpcf7 .acceptance-box {
        display: flex;
        justify-content: center;
        padding-top: 20px;
    }

    .wpcf7 .acceptance-box label {
        font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
    }

    .wpcf7-acceptance input[type="checkbox"] {
        display: none;
    }

    .wpcf7-list-item-label {
        position: relative;
        padding-left: 30px;
        font-weight: 400;
        font-size: 0.9375rem;
        line-height: 1.8;
        letter-spacing: 0.04em;
    }

    .wpcf7-list-item-label::before {
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
        width: 25px;
        height: 25px;
        padding: 2px;
        transform: translateY(-50%);
        border: 1px solid var(--color-pink);
        border-radius: 5px;
        background: #fff;
        content: "";
    }

    .wpcf7-acceptance input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
        display: block;
        position: absolute;
        top: 50%;
        left: 5px;
        width: 15px;
        height: 10px;
        transform: translateY(-50%) rotate(135deg);
        border-top: 3px solid var(--color-pink);
        border-right: 3px solid var(--color-pink);
        content: "";
    }

    .wpcf7 .acceptance {
        margin-block: 0 30px;
        font-weight: 400;
        font-size: 0.875rem;
        line-height: 1.86;
        font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
        text-align: center;
    }

    .wpcf7 .acceptance a {
        color: var(--color-pink);
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    .wpcf7 .submit-button {
        position: relative;
        width: min(100%, 340px);
        margin-inline: auto;
        transition: transform 0.2s ease;
    }

    .wpcf7 .submit-button:hover {
        transform: translateY(4px);
    }

    .wpcf7 .submit-button p {
        margin: 0;
        padding: 0;
    }

    .wpcf7 .submit-button::before {
        z-index: 1;
        position: absolute;
        top: 50%;
        right: 20px;
        width: 44px;
        height: 44px;
        transform: translateY(-50%);
        border-radius: 50%;
        background-color: #FFF;
        content: "";
        pointer-events: none;
    }

    .wpcf7 .submit-button::after {
        z-index: 2;
        position: absolute;
        top: 50%;
        right: 40px;
        width: 7px;
        height: 7px;
        transform: translateY(-50%) rotate(45deg);
        border-top: 2px solid #9C9C9C;
        border-right: 2px solid #9C9C9C;
        content: "";
        pointer-events: none;
    }

    .wpcf7 .wpcf7-submit {
        box-sizing: border-box;
        display: block;
        appearance: none;
        width: 100%;
        height: 84px;
        padding-inline: clamp(20px, -54.667px + 23.333vw, 48px) 75px;
        border: 0;
        border-radius: 100px;
        background-color: var(--color-pink);
        box-shadow: 0 4px 0 #0000001A;
        color: #FFF;
        font-weight: 700;
        font-size: clamp(1rem, 0.667rem + 1.667vw, 1.125rem);
        line-height: 1.44;
        font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
        letter-spacing: 0.04em;
        text-align: left;
        cursor: pointer;
        transition: box-shadow 0.2s ease;
    }

    .wpcf7 .wpcf7-submit:hover {
        box-shadow: none;
        opacity: 0.85;
    }

    .wpcf7 .wpcf7-submit:focus-visible {
        outline: 3px solid var(--color-pink);
        outline-offset: 3px;
    }

    .wpcf7 .wpcf7-submit:disabled {
        background-color: #9C9C9C;
        cursor: not-allowed;
        opacity: 0.6;
    }

    .wpcf7 .submit-button .wpcf7-spinner {
        position: absolute;
        top: calc(100% + 10px);
        left: 50%;
        margin: 0;
        transform: translateX(-50%);
    }

    @media screen and (min-width: 768px) {

        .wpcf7 .form-wrap {
            padding-bottom: 0;
        }

        .wpcf7 .form-wrap > p {
            display: flex;
            align-items: flex-start;
            margin-block: 10px;
            gap: 40px;
        }

        .wpcf7 .form-wrap label {
            display: flex;
            align-items: center;
            min-width: clamp(230px, 79.412px + 19.608vw, 280px);
            gap: clamp(0px, -150.588px + 19.608vw, 50px);
            font-size: 1.3125rem;
            line-height: 1.76;
        }

        .wpcf7 .form-wrap .required {
            text-box-trim: none;
            text-box-edge: cap alphabetic;
        }

        .wpcf7 .form-wrap .wpcf7-form-control-wrap,
        .wpcf7 .form-wrap .select-arrow {
            flex-grow: 1;
        }

        .wpcf7 .form-wrap select,
        .wpcf7 .form-wrap input.wpcf7-text,
        .wpcf7 .form-wrap textarea {
            min-height: 54px;
            padding: 20px;
            font-size: 1.125rem;
            line-height: 1.33;
        }

        .wpcf7 .form-wrap textarea {
            min-height: 360px;
        }

        .wpcf7 .acceptance-box {
            margin-top: 40px;
            padding-top: 30px;
        }

        .wpcf7 .wpcf7-list-item-label {
            margin-bottom: 20px;
            margin-left: 20px;
            font-size: 1.3125rem;
            line-height: 1.76;
            font-family: "Noto Sans JP", sans-serif;
            letter-spacing: 0.05em;
        }

        .wpcf7 .acceptance {
            margin-block: 20px 40px;
            font-size: 1.3125rem;
            line-height: 1.76;
            font-family: "Noto Sans JP", sans-serif;
            text-align: center;
        }

        .wpcf7 .submit-button {
            width: min(100%, 440px);
            margin-bottom: 40px;
        }

        .wpcf7 .wpcf7-submit {
            padding-inline: 40px 84px;
            background-color: var(--color-pink);
            box-shadow: 0px 4px 0px 0px #0000001A;
            font-size: 1.5rem;
            line-height: 1.5;
            font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
            letter-spacing: 0.05em;
            text-align: center;
        }

        .wpcf7 .wpcf7-submit:disabled {
            background-color: #9C9C9C;
            cursor: not-allowed;
        }
    }



    /* access __________________________________________________________*/

    .access {
        padding-bottom: 30px;
        background-color: #FFF;
    }

    .access-map {
        position: relative;
        height: 400px;
    }

    .access-map-panelhidden {
        height: 100%;
        overflow: hidden;
    }

    .access-map-panelhidden iframe {
        display: block;
        width: 100%;
        height: calc(100% + 300px);
        margin-top: -150px;
        border: 0;
    }

    .access-decoration {
        z-index: 1;
        position: absolute;
        right: 0;
        bottom: -45px;
        left: 0;
        height: clamp(78px, 37.756px + 9.146vw, 108px);
        overflow: hidden;
        pointer-events: none;
    }

    .access-decoration img {
        position: absolute;
        bottom: 0;
        max-width: none;
    }

    .access-decoration-left {
        left: -65px;
        width: auto;
        height: 100%;
        transform: scale(-1, 1);
    }

    .access-decoration-right {
        right: -20px;
        width: auto;
        height: 100%;
        transform: scale(-1, 1);
    }

    .access-info-wrap {
        display: flex;
        flex-direction: column;
        padding-inline: 20px;
        background-color: #FFF;
        font-size: clamp(16px, 10.667px + 1.667vw, 18px);
        font-family: "Noto Sans JP", sans-serif;
    }

    .access-logo {
        width: 283px;
        height: auto;
        margin-bottom: 10px;
        margin-inline: auto;
        padding-top: 70px;
    }

    .access-info p {
        line-height: 1.33;
    }

    .access-info-tel-fax {
        display: flex;
        column-gap: 10px;
        flex-wrap: wrap;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        letter-spacing: 0.02em;
    }

    @media screen and (min-width: 768px) {
        .access {
            padding-bottom: 20px;
        }

        .access-map {
            height: 420px;
        }

        .access-decoration {
            bottom: -75px;
            height: 140px;
        }

        .access-decoration-left {
            left: 20px;
            transform: none;
        }

        .access-decoration-right {
            right: clamp(0px, -184.615px + 24.038vw, 200px);
            transform: none;
        }

        .access-info-wrap {
            flex-direction: row;
            padding-top: 103px;
            padding-inline: 40px;
            gap: 20px;
            font-size: 1.125rem;
        }

        .access-logo {
            width: 283px;
            height: 89px;
            margin-bottom: 0;
            margin-inline: 0;
            padding-top: 0;
        }

        .access-info-tel-fax {
            display: flex;
            column-gap: 10px;
            flex-wrap: wrap;
            text-box-trim: trim-both;
            text-box-edge: cap alphabetic;
            letter-spacing: 0.02em;
        }
    }

    @media screen and (min-width: 1601px) {
        .access-decoration-right {
            right: clamp(200px, -1406.019px + 100.313vw, 520px);
        }
    }



    /* footer __________________________________________________________*/

    footer {
        padding-block: 14px;
        text-box-trim: trim-both;
        text-box-edge: cap alphabetic;
        text-align: center;
    }

    footer .copyright {
        font-size: 0.625rem;
        line-height: 1.5;
        letter-spacing: 0.04em;
    }

    @media screen and (max-width: 767px) {
        footer {
            margin-bottom: 64px;
        }
    }
