.hero {
    padding-block-end: 6vw;

    &::before {
        content: "";
        position: absolute;
        background: url(../imgs/svg/bg_g01.svg) no-repeat center center;
        background-size: cover;
        width: 80%;
        height: 100%;
        opacity: .5;
        top: 4.5vw;
        left: 0;
        z-index: -1;
    }

    .hero-img {
        position: absolute;
        width: 80vw;
        height: auto;
        object-fit: contain;
        right: 0;
        z-index: 1;
    }

    .hero-bg-text {
        position: absolute;
        font-size: 64px;
        font-weight: bold;
        color: var(--color-03);
        text-transform: uppercase;
        top: 20%;
        left: 1%;
        opacity: .5;
    }

    .features,
    .card {
        position: relative;
        z-index: 2;
    }

    .features {
        background: rgb(255 255 255 / 30%);
        display: inline-flex;
        font-family: var(--font-serif);
        padding: 3.3vw;
        margin-block-start: 9vw;
        margin-inline-start: 10vw;

        .hero-text {
            h2 {
                font-size: max(20px, 3.5vw);
                line-height: 140%;
            }

            h3 {
                font-size: max(14px, 1.25vw);
                line-height: 180%;
                font-weight: normal;
                margin-top: 1vw;
            }
        }
    }

    .card {
        display: flex;
        gap: 2vw;
        margin-inline-start: 13vw;

        div {
            background: var(--color-bg04);
            position: relative;
            display: flex;
            flex-flow: column;
            justify-content: center;
            width: max(150px, 16vw);
            align-items: center;
            border-radius: var(--radius-01);
            padding: 1.4vw;

            p {
                font-size: max(14px, 1.4vw);
                font-weight: bold;
                text-align: center;
                line-height: 150%;
                margin: unset;
            }

            small {
                font-size: 10px;
            }
        }

        div:nth-of-type(1) {
            p {
                position: relative;

                &::after {
                    content: "※";
                    font-size: 50%;
                    position: absolute;
                    margin-block-start: -.5em;
                }
            }
        }
    }
}

.cta {
    &::before {
        content: "";
        position: absolute;
        background: url(../imgs/raster/cat_bg01.png) no-repeat center center;
        background-size: cover;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        z-index: -1;
    }

    .cntr {
        padding-block: clamp(1.25rem, 0.625rem + 2.08vw, 2.5rem) clamp(1.25rem, 0.313rem + 3.13vw, 3.125rem);
        text-align: center;
    }

    h2 {
        color: var(--color-03);
        font-family: var(--font-serif);
        font-size: clamp(1.375rem, 1.063rem + 1.04vw, 2rem);
    }

    h3 {
        color: var(--color-03);
        font-size: clamp(0.875rem, 0.813rem + 0.21vw, 1rem);
        font-weight: normal;
        margin-block-start: .5em;
    }

    .btn-wrap {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0 2.8vw;
        margin-block-start: clamp(1.25rem, 0.625rem + 2.08vw, 2.5rem);
    }

    .tel,
    .mail {
        background: var(--color-03);
        display: flex;
        flex-flow: column;
        justify-content: center;
        align-items: center;
        font-weight: bold;
        padding-block: clamp(0.625rem, 0.313rem + 1.04vw, 1.25rem);
        padding-inline: clamp(1.25rem, 0.313rem + 3.13vw, 3.125rem);
        border-radius: var(--radius-01);
        box-shadow: var(--shadow-01);

        p:nth-of-type(1) {
            font-size: clamp(0.875rem, 0.75rem + 0.42vw, 1.125rem);
            line-height: 140%;
            margin: unset;
        }

        p:nth-of-type(2) {
            font-family: var(--font-serif);
            margin: unset;
        }

        small {
            font-size: var(--font-size-10-12);
            font-weight: normal;
        }
    }

    .tel {
        width: min(40vw, 360px);

        p:nth-of-type(2) {
            font-size: clamp(1.5rem, 1.25rem + 0.83vw, 2rem);
            line-height: 150%;
        }
    }

    .mail {
        background: #EBD997;
        padding-inline: clamp(0.625rem, 2.08vw, 1.875rem);

        p:nth-of-type(2) {
            font-size: clamp(1.125rem, 0.938rem + 0.63vw, 1.5rem);
        }
    }
}

.cta.sty02 {
    .grid-wrap {
        display: grid;
        grid-template-columns: minmax(0, 460px) minmax(0, 360px);
        justify-content: space-between;
        gap: 0 1em;
        max-width: 870px;
    }

    .link-list {
        display: grid;
        grid-template-rows: auto 1fr;
    }

    .btn-wrap {
        display: grid;
        grid-template-columns: 100%;
        margin-block-start: unset;

        span {
            font-weight: bold;
        }
    }

    .tel {
        width: 100%;
    }
}

.bg-color01 {
    background: var(--color-bg01);
}

.bg-color02 {
    background: var(--color-bg02);
}

.bg-color03 {
    background: var(--color-bg03);
}

.bg-text {
    position: absolute;
    font-family: var(--font-bg01);
    font-size: clamp(3.125rem, -1.563rem + 15.63vw, 12.5rem);
    font-weight: bold;
    text-transform: uppercase;
    overflow-wrap: break-word;
    line-height: 70%;
    margin: unset;
    right: 0;
    left: 0;
    opacity: .02;
}

.h2-sty01 {
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 1.313rem + 1.46vw, 2.625rem);
    letter-spacing: .06em;

    span {
        font-size: clamp(1.125rem, 0.938rem + 0.63vw, 1.5rem);
    }
}

.h2-sty01.center {
    text-align: center;
}

.h2-sty01.line-h {
    font-size: clamp(1.125rem, 0.375rem + 2.5vw, 2.625rem);

    span {
        font-size: clamp(1rem, 0.75rem + 0.83vw, 1.5rem);
        display: inline-block;
        line-height: 160%;
    }
}

.h2-sty01.font-22 {
    font-size: clamp(1.375rem, 0.75rem + 2.08vw, 2.625rem);
}

.h3-sty01 {
    font-family: var(--font-serif);
    font-size: clamp(1rem, 0.813rem + 0.63vw, 1.375rem);
    line-height: 160%;
}

.h3-sty01.center {
    text-align: center;
}

.h3-sty01.font-sb {
    font-size: clamp(1rem, 0.625rem + 1.25vw, 1.75rem);
}

section {
    position: relative;
    overflow: hidden;
    scroll-margin-top: 0px;
    .cntr {
        position: relative;
        width: min(100%, calc(1000px + clamp(2.5rem, 8.33vw, 7.5rem)));
        padding-inline: clamp(1.25rem, 4.17vw, 3.75rem);
        margin-inline: auto;

        p {
            font-size: clamp(0.813rem, 0.781rem + 0.1vw, 0.875rem);
            line-height: 200%;
            margin-block-start: 2em;
            text-align: justify;
        }

        .card-list {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(0, 300px));
            gap: 4em 0;
            justify-content: space-between;
            max-width: 980px;
            margin-block-start: 5em;
            margin-inline: auto;

            li {
                position: relative;
                background: var(--color-bg04);
                box-shadow: var(--shadow-02);
                display: flex;
                flex-flow: column;
                justify-content: start;
                align-items: center;
                text-align: center;
                padding-block: 3em 2em;
                padding-inline: 2em;

                .nb {
                    position: absolute;
                    color: var(--color-04);
                    font-family: var(--font-bg01);
                    font-size: 64px;
                    font-weight: bold;
                    margin: unset;
                    line-height: 0;
                    top: 0;
                }

                .pic {
                    display: flex;
                    align-items: center;
                    min-height: 120px;
                }

                h3 {
                    font-size: clamp(1.125rem, 1.063rem + 0.21vw, 1.25rem);
                    margin-top: 1em;
                }
            }
        }

        .link-form {
            background: var(--color-02);
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 0 .75em;
            width: fit-content;
            margin-block: clamp(2rem, 1.5rem + 1.67vw, 3rem) 0;
            margin-inline: auto;
            border-radius: var(--radius-01);
            padding: 1.5em 2em;
            box-shadow: var(--shadow-01);

            .text-wrap {
                display: flex;
                gap: 0 .5em;
            }

            p {
                margin: unset;
                color: var(--color-03);
                font-size: clamp(1.125rem, 0.688rem + 1.46vw, 2rem);
                font-weight: 500;
                word-break: keep-all;
            }

            b {
                color: var(--color-03);
                font-size: clamp(1.125rem, 0.688rem + 1.46vw, 2rem);
                font-weight: bold;

                span {
                    position: relative;

                    &::after {
                        content: "";
                        background: #FFD000;
                        position: absolute;
                        width: 8px;
                        height: 8px;
                        border-radius: 100%;
                        bottom: 0;
                        left: 50%;
                        transform: translate(-50%, 100%);
                    }
                }
            }
        }

        .link-form.sty-w {
            padding: 1em clamp(0.625rem, -0.063rem + 2.29vw, 2rem);
        }
    }
}

:where(section[class]):not(:where(.hero, .cta)) {
    padding-block: var(--sec-padg-top01);
}

.sec01 {
    .cntr {
        img {
            margin-block-start: clamp(1.875rem, 0.938rem + 3.13vw, 3.75rem);
            margin-inline: auto;
        }

        p {
            max-width: 870px;
            margin-inline: auto;
        }
    }
}

.sec03 {
    .cntr {
        .card-list {
            grid-template-columns: repeat(auto-fill, minmax(0, 220px));
            gap: 2em 0;
            margin-block-start: 3em;

            li {
                align-items: baseline;
                padding: 1.75em;
            }

            h3 {
                display: flex;
                align-items: center;
                gap: 0 .5em;
                width: 100%;
                min-height: 60px;
                margin: unset;
                border-bottom: 1px dotted;
                padding-block-end: 1em;
            }
        }
    }
}

.sec04 {
    .cntr {
        .center-wrap {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 0 3em;
            margin-block-start: var(--mar-top01);
        }

        .list {
            display: flex;
            flex-flow: column;
            gap: 1em 0;
            padding-inline: 1em 0;

            li {
                position: relative;
                padding-inline-start: .5em;
                font-size: clamp(0.938rem, 0.781rem + 0.52vw, 1.25rem);
                font-weight: bold;

                &::before {
                    content: "";
                    background: var(--color-05);
                    position: absolute;
                    width: .75em;
                    height: .75em;
                    left: 0;
                    border-radius: 100%;
                    transform: translate(-100%, 50%);
                }
            }
        }
    }
}

.sec05 {
    .cntr {
        .tit-wrap {
            display: flex;
            align-items: center;

            .n-wrap {
                position: relative;
                display: flex;
                align-items: baseline;
                font-family: var(--font-serif);
                font-weight: bold;
            }

            .nb {
                font-size: clamp(4.5rem, 2.625rem + 6.25vw, 8.25rem);
                color: var(--color-05);
                margin: unset;
                line-height: 1;
            }

            .p {
                font-size: 42px;
                line-height: 1;
                margin: unset;
            }

            .k {
                position: absolute;
                font-size: 18px;
                top: 0;
                right: 0;
                line-height: 1;
                margin: unset;
                transform: translate(0, 100%);
            }
        }

        img {
            margin-block-start: var(--mar-top01);
        }

        .p-wrap {
            max-width: 750px;
            margin-inline: auto;
            margin-block-start: var(--mar-top01);
        }
    }

}

.sec06 {
    .cntr {
        .main-pic {
            margin-inline: auto;
            margin-block-start: var(--mar-top01);
        }

        .text-wrap {
            p {
                max-width: 700px;
                text-align: center;
                margin-inline: auto;
            }
        }

        h3 {
            font-size: clamp(1rem, 0.5rem + 1.67vw, 2rem);
            text-align: center;
            margin-block-start: var(--mar-top01);

            span {
                background: linear-gradient(transparent 70%, #ffd000 30%);
                padding-inline: .5em;
            }

            b {
                color: var(--color-06);
            }
        }

        .list {
            margin: unset;
            background: var(--color-bg01);
            padding: 1em clamp(1.25rem, 0.375rem + 2.92vw, 3rem);

            >li {
                position: relative;
                display: flex;
                align-items: center;
                gap: 0 2em;
                padding-block: clamp(1.25rem, 0.875rem + 1.25vw, 2rem);

                &:not(:last-of-type)::after {
                    content: "";
                    background: #EFC3C3;
                    position: absolute;
                    height: 1px;
                    right: 2%;
                    bottom: 0;
                    left: 6%;
                }
            }

            >li:first-of-type {
                .nb {
                    width: 1.6em;
                }
            }

            .img-wrap {
                display: flex;
                gap: 0 2em;
            }

            .nb {
                align-self: flex-start;
            }

            .detail-wrap {
                ul {
                    display: flex;
                    flex-flow: column;
                    gap: .5em 0;
                    margin: 1em 0 0;

                    li {
                        font-size: clamp(0.813rem, 0.781rem + 0.1vw, 0.875rem);

                        &::before {
                            content: "→";
                        }
                    }
                }

                h4 {
                    font-size: clamp(0.938rem, 0.781rem + 0.52vw, 1.25rem);
                }
            }
        }

        .flow {
            background: var(--color-bg03);
            padding: 1em 1em clamp(1rem, 3.33vw, 3rem);

            >p {
                text-align: center;
                font-size: clamp(0.813rem, 0.75rem + 0.21vw, 0.938rem);
            }

            .flex-wrap {
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 0 1em;
                margin-block-start: clamp(1rem, 0.5rem + 1.67vw, 2rem);

                h5 {
                    font-size: 18px;
                }

                ul {
                    margin: unset;
                    display: flex;
                    flex-flow: column;
                    gap: .5em 0;

                    li {
                        position: relative;
                        display: flex;
                        align-items: center;
                        gap: 0 .5em;
                        font-size: clamp(0.875rem, 0.844rem + 0.1vw, 0.938rem);

                        &::before {
                            content: "";
                            background: #85B3D4;
                            width: .5em;
                            height: .5em;
                            border-radius: 100%;
                            transform: translate(0, 25%);
                        }
                    }
                }
            }
        }
    }
}

.sec07 {
    .cntr {
        .treatment {
            margin: unset;
            display: grid;
            grid-template-columns: repeat(auto-fill, clamp(20.625rem, 15.625rem + 10.42vw, 25rem));
            justify-content: space-between;
            gap: clamp(1.25rem, 0.375rem + 2.92vw, 3rem) 0;
            max-width: 850px;
            margin-block-start: var(--mar-top01);
            margin-inline: auto;

            li {
                display: flex;
                flex-flow: column;
                background: var(--color-03);
                box-shadow: var(--shadow-02);
            }

            h3 {
                font-size: clamp(1.375rem, 1.188rem + 0.63vw, 1.75rem);
                color: #356E9D;
                margin-block: clamp(1.25rem, 0.625rem + 2.08vw, 2.5rem) clamp(0.625rem, 0.313rem + 1.04vw, 1.25rem);
                margin-inline: 20px;
            }

            .p-wrap {
                padding: 0 20px 20px;
                border-bottom: 2px dotted #666;

                p:first-child {
                    margin-block-start: unset;
                }
            }

            .main-pic {
                width: 100%;
                max-height: 80px;
                object-fit: cover;
            }

            a {
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 0 1em;
                color: #356E9D;
                padding: clamp(0.625rem, 0.313rem + 1.04vw, 1.25rem);

                p {
                    margin: unset;
                }
            }
        }
    }
}

.sec08 {
    .cntr {
        .flow-list {
            display: flex;
            flex-flow: column;
            gap: 4.5em 0;
            max-width: 900px;
            margin-block-start: var(--mar-top01);
            margin-inline: auto;

            li {
                position: relative;
                background: var(--color-bg01);
                display: grid;
                grid-template-columns: auto 290px;
                align-items: center;
                gap: 0 2.5em;
                padding: clamp(1.25rem, 0.625rem + 2.08vw, 2.5rem);

                &:not(:last-child)::before {
                    content: "";
                    background: var(--color-04);
                    ;
                    position: absolute;
                    bottom: calc((-4.5em + 30px) / 2);
                    left: 50%;
                    transform: translate(-50%, 100%);
                    width: 60px;
                    height: calc(60px / 2);
                    clip-path: polygon(0 0, 100% 0, 50% 100%);
                }
            }

            li:first-child {
                .img-wrap {
                    img {
                        width: 3.5em;
                    }
                }
            }

            .text-wrap {
                display: flex;
                flex-flow: column;
                gap: 1em 0;

                h3 {
                    font-size: clamp(1.125rem, 0.813rem + 1.04vw, 1.75rem);
                }

                p {
                    margin-block-start: unset;
                }
            }

            .img-wrap {
                display: flex;
                align-items: center;
                gap: 0 .5em;

                &::before {
                    content: "flow";
                    font-size: 18px;
                    font-weight: bold;
                    text-transform: uppercase;
                    color: var(--color-04);
                }
            }
        }
    }
}

.sec09 {
    .cntr {
        .cost-list {
            background: var(--color-bg04);
            max-width: 900px;
            padding: clamp(1.25rem, 4.17vw, 3.75rem);
            margin-top: var(--mar-top01);
            margin-inline: auto;

            ul {
                display: flex;
                flex-flow: column;
                gap: .5em 0;

                li {
                    display: grid;
                    grid-template-columns: auto 1fr auto;
                    align-items: center;

                    .n {
                        margin: unset;
                        position: relative;
                        grid-column: 1;
                        font-size: clamp(1rem, 0.813rem + 0.63vw, 1.375rem);

                        span {
                            font-size: 75%;
                        }
                    }

                    .p {
                        margin: unset;
                        grid-column: 3;
                        font-family: var(--font-serif);
                        font-size: clamp(1rem, 0.813rem + 0.63vw, 1.375rem);
                        font-weight: bold;
                        text-align: right;
                    }

                    >span {
                        grid-column: 2;
                        height: 2px;
                        background-image: radial-gradient(circle, #aaaaaa 1px, transparent 1px);
                        background-position: left top;
                        background-repeat: repeat-x;
                        background-size: 12px 2px;
                        margin-inline: 1em;
                    }
                }
            }

            dl {

                dt {
                    position: relative;
                    grid-column: 1;

                }

                dd {
                    grid-column: 3;
                    text-align: right;
                }
            }

            >p {
                font-size: 12px;
            }
        }

        .notes {
            background: var(--color-bg04);
            max-width: 900px;
            padding: clamp(1.25rem, 4.17vw, 3.75rem);
            margin-top: var(--mar-top01);
            margin-inline: auto;

            h3 {
                font-size: clamp(0.75rem, 0.5rem + 0.83vw, 1.25rem);
                text-align: center;
                color: #999;
                margin-block: 0 1em;
            }

            p {
                margin: unset;
                margin-inline-start: 1em;
            }

            h4,
            h5,
            p {
                font-size: clamp(0.688rem, 0.656rem + 0.1vw, 0.75rem);
                font-weight: normal;
            }
        }
    }
}

.sec10 {
    .cntr {
        .qna {
            display: flex;
            flex-flow: column;
            gap: 3em 0;
            max-width: 850px;
            margin-block-start: var(--mar-top01);
            margin-inline: auto;

            li {
                display: flex;
                flex-flow: column;
                gap: 1.5em 0;
                border-bottom: 1px solid #888;
                padding-block-end: 2em;
            }

            .q {
                position: relative;

                &::before {
                    content: "";
                    position: absolute;
                    background: url(../icons/q.svg) no-repeat center center;
                    background-size: contain;
                    display: inline-block;
                    width: clamp(2rem, 1.5rem + 1.67vw, 3rem);
                    height: clamp(2rem, 1.75rem + 0.83vw, 2.5rem);
                }

                h3 {
                    font-family: var(--font-serif);
                    font-size: clamp(1rem, 0.75rem + 0.83vw, 1.5rem);
                    margin-inline-start: 2.5em;
                }
            }

            .a {
                position: relative;

                &::before {
                    content: "";
                    position: absolute;
                    background: url(../icons/a.svg) no-repeat center center;
                    background-size: contain;
                    display: inline-block;
                    width: clamp(1.5rem, 1.25rem + 0.83vw, 2rem);
                    height: 1.5em;
                    top: .25em;
                    left: .5em;
                }

                p:first-child {
                    margin-block-start: unset;
                }

                p {
                    font-size: clamp(0.813rem, 0.719rem + 0.31vw, 1rem);
                    margin-inline-start: clamp(2.5rem, 1.75rem + 2.5vw, 4rem);
                }
            }
        }
    }
}

.sec11 {
    .cntr {
        .add-list {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: .25em;
            max-width: 950px;
            margin-block-start: var(--mar-top01);
            margin-inline: auto;

            li {
                position: relative;

                .inf {
                    position: absolute;
                    background: rgb(0 0 0 / 40%);
                    width: 100%;
                    color: var(--color-03);
                    padding: 20px;
                    bottom: 0;

                    h3 {
                        font-size: clamp(1.25rem, 1rem + 0.83vw, 1.75rem);
                    }

                    address {
                        font-size: clamp(0.75rem, 0.688rem + 0.21vw, 0.875rem);
                    }
                }
            }
        }
    }
}

.sec12 {
    .cntr {
        .doctor-list {
            display: flex;
            flex-flow: column;
            gap: 3em 0;
            max-width: 950px;
            margin-block-start: var(--mar-top01);
            margin-inline: auto;

            >li {
                display: grid;
                grid-template-columns: min(40vw, 470px) 1fr;
                gap: 0 3em;
            }

            >li:not(:last-of-type) {
                padding-block-end: 2em;
                border-bottom: 1px solid var(--color-04);
            }

            .doctor {
                .name-wrap {
                    position: relative;
                    background: var(--color-bg04);
                    display: block;
                    padding: 10px 20px;
                    width: fit-content;
                    margin-inline: auto;
                    margin-block-start: -2.5em;

                    .title {
                        margin-block-start: unset;
                    }

                    h3 {
                        font-family: var(--font-serif);
                        font-size: clamp(1.5rem, 1.375rem + 0.42vw, 1.75rem);

                        span {
                            font-size: clamp(0.75rem, 0.563rem + 0.63vw, 1.125rem);
                            font-weight: normal;
                            margin-inline-start: .5em;
                        }
                    }
                }
            }

            .brief {
                h4 {
                    font-size: 15px;
                }

                h4:nth-of-type(2) {
                    margin-block-start: 1em;
                }

                ul {
                    display: flex;
                    flex-flow: column;
                    gap: .5em 0;
                    list-style: disc;
                    padding-inline-start: 1.75em;
                    font-size: 12px;
                    margin-block-start: .5em;

                    li::marker {
                        font-size: .75em;
                    }
                }
            }
        }
    }
}

.sec-end {
    position: relative;

    &::before {
        content: "";
        background: url(../imgs/svg/bg_g01.svg) no-repeat center center;
        background-size: cover;
        position: absolute;
        width: 100%;
        height: 50%;
        top: 0;
        left: 0;
        z-index: -1;
    }

    .tel-wrap {
        position: relative;
        width: fit-content;
        margin-inline: auto;
        z-index: 2;

        .tel {
            font-family: var(--font-serif);
            font-size: clamp(2.5rem, 1.25rem + 4.17vw, 5rem);
            font-weight: bold;
            text-align: center;
            color: var(--color-02);
        }

        .time {
            background: var(--color-02);
            font-size: clamp(1rem, 0.875rem + 0.42vw, 1.25rem);
            font-weight: bold;
            text-align: center;
            color: var(--color-03);
            padding: .75em 1em;

            b {
                font-size: 24px;
                color: #FCEDA4;
            }
        }
    }

    .main-pic01 {
        position: relative;
        width: 100%;
        padding-block-start: 29vw;
        margin-block-start: -1.5em;
        overflow: hidden;
        z-index: 1;

        img {
            position: absolute;
            top: -10vw;
            width: 110vw;
            height: 240%;
            object-fit: cover;
            object-position: 35%;
        }
    }

    ul {
        position: relative;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 0 clamp(0.625rem, -0.063rem + 2.29vw, 2rem);
        max-width: 950px;
        margin-block-start: max(-115px, -8vw);
        margin-inline: auto;
        text-align: center;
        padding-inline: 10px;
        z-index: 2;

        li {
            background: var(--color-bg04);
            padding: 1.5em clamp(0.625rem, 0.313rem + 1.04vw, 1.25rem);
            font-size: clamp(0.875rem, 0.688rem + 0.63vw, 1.25rem);
            font-weight: bold;
            line-height: 170%;
            word-break: keep-all;
            border-radius: var(--radius-01);
        }
    }

    >p {
        max-width: calc(900px + 40px);
        margin-inline: auto;
        font-family: var(--font-serif);
        font-size: clamp(0.875rem, 0.75rem + 0.42vw, 1.125rem);
        line-height: 200%;
        margin-top: 1em;
        padding-inline: 20px;
    }
}

#form {
    .notes {
        max-width: 870px;
        margin-inline: auto;
    }
    form {
        background:  rgb(255 255 255 / 60%);
        padding-block: clamp(1.25rem, 0.313rem + 3.13vw, 3.125rem);
        padding-inline: clamp(0.625rem, -0.313rem + 3.13vw, 2.5rem);
        display: flex;
        flex-flow: column;
        gap: 2em 0;
        margin-block-start: 3em;
    }
    input:not([type="checkbox"]),
    textarea {
        border: 1px solid #E2E2E2;
        min-height: 40px;
    }
    input[type="checkbox"] {
        -webkit-appearance: none;
        appearance: none;
        width: 20px;
        height: 20px;
        border: 1px solid #E2E2E2;
        border-radius: 4px;
        background-color: #fff;
        cursor: pointer;
        position: relative;
    }
    input[type="checkbox"]:checked {
        background-color: var(--color-02);
        border-color: var(--color-02);
    }
    input[type="checkbox"]:checked::after {
        content: '';
        position: absolute;
        top: 3px;
        left: 6px;
        width: 5px;
        height: 10px;
        border: solid var(--color-03);
        border-width: 0 2px 2px 0;
        transform: rotate(45deg);
    }
    .field:not(.field-privacy_agree) {
        position: relative;
        display: grid;
        grid-template-columns: repeat(2, 57% 43%);
        align-items: center;
        border-bottom: 1px solid #ECECEC;
        padding-block-end: 2em;
        >label {
            margin: unset;
            display: flex;
            align-items: center;
            gap: .5em;
            font-size: clamp(0.938rem, 0.906rem + 0.1vw, 1rem);
            font-weight: bold;
            border-left: 2px solid var(--color-02);
            padding-inline-start: 1em;
            .label-note {
                font-size: clamp(0.75rem, 0.688rem + 0.21vw, 0.875rem);
                font-weight: normal;
                letter-spacing: 0;
            }
        }
        .field__head {
            border-left: 2px solid var(--color-02);
            padding-inline-start: 1em;
            p {
                margin: unset;
                font-size: clamp(0.938rem, 0.906rem + 0.1vw, 1rem);
                font-weight: bold;
                .label-note {
                    font-size: clamp(0.75rem, 0.688rem + 0.21vw, 0.875rem);
                    font-weight: normal;
                    letter-spacing: 0;
                }
            }
        }
        span[aria-hidden="true"] {
            color: transparent;
            &::before {
                content: "※必須";
                background: #D35252;
                color: var(--color-03);
                font-size: 12px;
                padding: 3px 5px;
            }
        }
        label[for="address"] {
            &::after {
                content: "※任意";
                background: #B9B9B9;
                color: var(--color-03);
                font-size: 12px;
                padding: 3px 5px;
            }
        }
        .error {
            position: absolute;
            right: 0;
            bottom: 0;
            color: #D35252;
        }
    }
    .field-inquiry_items {
        .field__body {
            display: grid;
            gap: .5em;
            font-size: 14px;
            label {
                display: flex;
                align-items: center;
                gap: .5em;
            }
        }
    }
    .field-privacy_agree {
        h3 {
            text-align: center;
            font-size: 12px;
        }
        .privacy-text {
            background: var(--color-03);
            max-width: 650px;
            padding: 20px;
            margin-block-start: 1.5em;
            margin-inline: auto;
            p {
                margin: unset;
                font-size: clamp(0.625rem, 0.563rem + 0.21vw, 0.75rem);
            }
            ul {
                display: flex;
                flex-flow: column;
                gap: .5em 0;
                font-size: clamp(0.625rem, 0.563rem + 0.21vw, 0.75rem);
                margin-block: .5em;
            }
        }
        label[for="privacy_agree"] {
            display: flex;
            justify-content: center;
            align-items: end;
            gap: 0 .5em;
            margin-block-start: 1em;
        }
        .error {
            text-align: center;
            color: #D35252;
        }
    }
    button[type="submit"] {
        border: unset;
        background: var(--color-02);
        color: var(--color-03);
        width: fit-content;
        font-size: 24px;
        font-weight: bold;
        margin-inline: auto;
        padding: 20px 50px;
        border-radius: 6px;
        box-shadow: var(--shadow-01);
        cursor: pointer;
    }
}

.pages-h1-sty01 {
    background: url(../imgs/svg/bg_g01.svg) no-repeat center center;
    background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: var(--font-serif);
    font-size: clamp(1.5rem, 0.938rem + 1.88vw, 2.625rem);
    height: clamp(6.25rem, 3.125rem + 10.42vw, 12.5rem);
}

.pages-sec-first {
    max-width: calc(850px + (40px * 2));
    margin-inline: auto;
    padding-block-start: 2em;
    padding-inline: 40px;
    ul {
        display: flex;
        flex-flow: column;
        gap: .5em;
        list-style: disc;
        padding-inline-start: 1.5em;
        font-size: clamp(0.813rem, 0.781rem + 0.1vw, 0.875rem);
        margin-block-start: 1em;
        li {
            &::marker {
                font-size: .75em;
            }
        }
    }
    p {
        font-size: clamp(0.813rem, 0.781rem + 0.1vw, 0.875rem);
        line-height: 200%;
        margin-block-start: 1.5em;
        &.mo {
            text-align: right;
        }
    }
    dl {
        dt {
            font-size: clamp(1rem, 0.938rem + 0.21vw, 1.125rem);
            font-weight: bold;
            margin-block-start: 2em;
        }
    }
}

@media screen and (max-width:480px) {
    .hero {
        padding-block-end: 2.5em;

        &::before {
            width: 100%;
        }

        .hero-img {
            width: 100%;
        }

        .features {
            background: rgb(255 255 255 / 70%);
            margin-block-start: 27vw;
            margin-inline-start: 0;
        }

        .card {
            gap: 0 5px;
            margin-block-start: 1em;
            margin-inline: 10px;

            div {
                padding: 10px 0;

                p {
                    letter-spacing: 0;
                    word-break: keep-all;
                }

                small {
                    position: absolute;
                    width: 200%;
                    text-align: left;
                    bottom: -20%;
                    left: 5%;
                    transform: translate(0, 100%);
                }
            }
        }
    }

    .cta {
        .btn-wrap {
            flex-flow: column;
            gap: 1em;
        }

        .tel,
        .mail {
            width: 100%;
        }
    }

    .cta.sty02 {
        .grid-wrap {
            grid-template-columns: auto;
        }

        .btn-wrap {
            margin-block-start: 1em;

            .tel {
                p:nth-of-type(2) {
                    font-size: 32px;
                }
            }

            .mail {
                p:nth-of-type(2) {
                    font-size: 26px;
                }
            }
        }
    }

    .h2-sty01.line-h {
        white-space: nowrap;
        word-break: keep-all;
        span {
            margin-block-start: .5em;
        }
    }

    section {
        .cntr {
            .card-list {
                grid-template-columns: repeat(auto-fill, minmax(0, 95%));
                justify-content: center;
            }

            .link-form {
                width: 100%;
                padding: 1em;
                .text-wrap {
                    flex-flow: column;
                    text-align: center;
                }

                p {
                    font-weight: bold;
                    background: linear-gradient(transparent 80%, #ffd000 0%);
                    font-size: min(4.5vw, 16px);
                }

                b {
                    font-size: 24px;
                }
            }

            .link-form.sty-w {
                img {
                    width: 10%;
                }

                b {
                    font-size: 18px;
                }
            }
        }
    }

    .sec02 {
        .cntr {
            .card-list {
                li {
                    padding: 40px 20px 20px;
                }
            }
        }
    }

    .sec03 {
        .cntr {
            .card-list {
                grid-template-columns: repeat(auto-fill, minmax(0, 46%));
                justify-content: space-around;

                li {
                    padding: 10px;
                }
            }
            p {
                font-size: min(3.5vw, 13px);
                text-align: left;
                letter-spacing: unset;
            }
        }
    }

    .sec04 {
        .cntr {
            .center-wrap {
                flex-flow: column;
                gap: 1em 0;
            }
        }
    }

    .sec05 {
        .cntr {
            .tit-wrap {
                flex-flow: column;

                .k {
                    transform: translate(0, 50%);
                }
            }
        }
    }

    .sec06 {
        .cntr {
            .list {
                >li {
                    flex-flow: column;
                    gap: 1em;

                    &:not(:last-of-type)::after {
                        content: "";
                        right: 0;
                        left: 0;
                    }

                    .nb {
                        width: 3em;
                        align-self: center;
                    }
                }

                >li:first-of-type {
                    .nb {
                        width: 2.5em;
                    }
                }
                .detail-wrap {
                    h4 {
                        white-space: nowrap;
                    }
                }
            }

            .flow {
                margin-block-start: -1.5em;

                .flex-wrap {
                    flex-flow: column;
                    gap: 1em;
                }
            }
            .text-wrap {
                p {
                    text-align: left;
                }
            }
        }
    }

    .sec07 {
        .cntr {
            .treatment {
                grid-template-columns: repeat(auto-fill, minmax(0, 100%));
            }
        }
    }

    .sec08 {
        .cntr {
            .h2-sty01 {
                word-break: keep-all;
                font-size: 6.9vw;
            }
            .flow-list {
                li {
                    grid-template-columns: 1fr;
                    gap: 1em 0;

                    >img {
                        width: 100%;
                    }
                }
            }
        }
    }

    .sec09 {
        .cntr {
            .cost-list {
                ul {
                    li {
                        grid-template-columns: 1fr;
                        padding-block-end: .5em;
                        border-bottom: 1px solid #aaa;

                        .n,
                        .p {
                            grid-column: auto;
                        }

                        .p {
                            text-align: left;
                        }

                        >span {
                            display: none;
                        }
                    }
                }
            }
        }
    }

    .sec11 {
        .cntr {
            .add-list {
                grid-template-columns: 1fr;
            }
        }
    }

    .sec12 {
        .cntr {
            .doctor-list {
                >li {
                    grid-template-columns: 1fr;
                    gap: 1em;
                }
            }
        }
    }
    .sec-end {
        &::before {
            height: clamp(53.75rem, 22.5rem + 133.33vw, 62.5rem);
        }
        .tel-wrap {
            background: var(--color-02);
            width: calc(100% - 40px);
            margin-block-start: 2em;
            margin-inline: auto;
            padding: 10px 10px 0;
            .tel {
                color: var(--color-03);
            }
            .time {
                padding-block-start: unset;
                b {
                    display: block;
                }
            }
        }
        .main-pic01 {
            padding-block-start: 133vw;
            img {
                height: 110%;
                object-position: center;
            }
        }
        ul {
            grid-template-columns: 1fr;
            gap: 1em;
            margin-block-start: -75vw;
            padding-inline: 20px;
            li {
                font-size: min(5.35vw, 24px);
                padding: min(4vw, 20px);
            }
        }
        >p {
            margin-block-start: 13vw;
            text-align: justify;
        }
    }
    #form {
        .field:not(.field-privacy_agree) {
            grid-template-columns: 1fr;
            gap: 1em;
        }
        label[for="email_confirm"] {
            position: relative;
            padding-block-end: 2em;
            span[class="label-note"] {
                position: absolute;
                bottom: 0;
            }
        }
    }
    .new-block-20260318 {
        background: var(--color-bg04);
        padding: 20px;
        margin-block-start: 2em;
        .description,
        .note {
            margin: unset;
        }
        .description {
            font-size: min(4vw, 16px);
            b {
                color: #B22514;
                border-bottom: 3px solid #F9E0E0;
            }
        }
        .note {
            text-align: center;
            font-size: min(4vw, 16px);
            margin-block-start: 1em;
        }
        .phone-card {
            display: flex;
            flex-flow: column;
            justify-content: center;
            align-items: center;
            background: #fff;
            border: 1px solid #eee;
            border-radius: 10px;
            padding: 1em;
            b {
                font-size: min(9vw, 36px);
                font-weight: normal;
                color: #555;
                line-height: 1;
                margin-block-end: .25em;
            }
            > span {
                font-size: 12px;
                color: #666;
            }
        }
    }
}