/* =========================================================
   MAIN VISUAL
========================================================= */

.mv {
    position: relative;
    width: 100%;
    height: min(760px, 78vh);
    min-height: 620px;
    overflow: hidden;
    background: #eee;
}

.mv-mosaic {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 1.15fr .85fr 1fr 1.1fr;
    grid-template-rows: 1fr 1fr 1fr;
    gap: 2px;
    background: #fff;
}

.mv-mosaic__item {
    position: relative;
    overflow: hidden;
    /*
     * 順番にふわっと表示（スクリプトを使わず CSS だけで行う）
     * 1枚目はすぐ表示して、ページの表示速度の評価を下げない
     */
    animation: mv-fade .6s ease both;
}

.mv-mosaic__item--01 { animation: none; }
.mv-mosaic__item--02 { animation-delay: .08s; }
.mv-mosaic__item--03 { animation-delay: .16s; }
.mv-mosaic__item--04 { animation-delay: .24s; }
.mv-mosaic__item--05 { animation-delay: .32s; }
.mv-mosaic__item--06 { animation-delay: .40s; }
.mv-mosaic__item--07 { animation-delay: .48s; }
.mv-mosaic__item--08 { animation-delay: .56s; }

@keyframes mv-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .mv-mosaic__item { animation: none; }
}

/* 写真を枠いっぱいに表示（枠と写真の縦横比が違っても隙間を作らない） */
.mv-mosaic__item img,
.mv-mosaic__item picture {
    display: block;
    width: 100%;
    height: 100%;
}

.mv-mosaic__item img {
    object-fit: cover;
}

.mv-mosaic__item--01 {
    grid-column: 1;
    grid-row: 1 / 3;
}

.mv-mosaic__item--02 {
    grid-column: 2;
    grid-row: 1;
}

.mv-mosaic__item--03 {
    grid-column: 3 / 5;
    grid-row: 1;
}

.mv-mosaic__item--04 {
    grid-column: 2 / 4;
    grid-row: 2;
}

.mv-mosaic__item--05 {
    grid-column: 4;
    grid-row: 2 / 4;
}

.mv-mosaic__item--06 {
    grid-column: 1 / 3;
    grid-row: 3;
}

.mv-mosaic__item--07 {
    grid-column: 3;
    grid-row: 3;
}

/* PCでは予備画像を非表示 */
.mv-mosaic__item--08 {
    display: none;
}

.mv__copy {
    position: absolute;
    z-index: 5;
    left: clamp(40px, 7vw, 120px);
    top: 50%;
    width: clamp(380px, 50vw, 620px);
    padding: clamp(28px, 3.2vw, 45px) clamp(22px, 2.6vw, 35px);
    transform: translateY(-50%);
    /* 見出しの文字サイズを、白い枠の内側の幅から決める（cqi） */
    container-type: inline-size;
}

.mv__copy::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: rgba(255,255,255,.8);
}

.mv__copy .eyebrow {
    display: block;
    margin-bottom: 18px;
    font-size: 12px;
    letter-spacing: .22em;
}

.mv__copy h1 {
    margin: 0;
    font-size: clamp(28px, 3.2vw, 54px);
    /* 一番長い行（追求する専門クリニック：11文字＋字間）が枠の内側にちょうど収まる大きさ */
    font-size: min(54px, 100cqi / 11.6);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .04em;
}

/* 見出しは常に3行。行の途中では折り返さない */
.mv__copy h1 span {
    display: block;
    white-space: nowrap;
}

/* H1 の先頭に入れた小さなラベル（以前の ALL-ON-4 CLINIC GINZA の位置） */
.mv__copy h1 .mv__h1-label {
    margin-bottom: 16px;

    color: #8a7450;

    font-size: 13px;
    line-height: 1.6;
    letter-spacing: 0.14em;
    white-space: normal;
}

.mv__copy p {
    margin: 24px 0 0;
    font-size: 16px;
    line-height: 1.8;
}

/* 説明文を折り返すときは「、」の後で */
.mv__copy p span {
    display: inline-block;
}



/* =========================================================
   MAIN VISUAL SP
========================================================= */

@media (max-width: 767px) {

    .mv {
        height: 720px;
        min-height: 0;
    }

    .mv-mosaic {
        grid-template-columns: 1.2fr .8fr;
        grid-template-rows: 150px 125px 145px 125px 175px;
        gap: 2px;
    }

    .mv-mosaic__item--01 {
        grid-column: 1;
        grid-row: 1 / 3;
    }

    .mv-mosaic__item--02 {
        grid-column: 2;
        grid-row: 1;
    }

    .mv-mosaic__item--03 {
        grid-column: 2;
        grid-row: 2;
    }

    .mv-mosaic__item--04 {
        grid-column: 1 / 3;
        grid-row: 3;
    }

    .mv-mosaic__item--05 {
        grid-column: 1;
        grid-row: 4;
    }

    .mv-mosaic__item--06 {
        grid-column: 2;
        grid-row: 4;
    }

    .mv-mosaic__item--07 {
        grid-column: 1;
        grid-row: 5;
    }

    .mv-mosaic__item--08 {
        display: block;
        grid-column: 2;
        grid-row: 5;
    }

    .mv__copy {
        top: auto;
        right: 20px;
        bottom: 350px;
        left: 20px;
        width: auto;
        padding: 18px 15px;
        transform: none;
    }

    .mv__copy::before {
        inset: 0;
        background: rgba(255, 255, 255, .8);
        filter: none;
    }

    .mv__copy .eyebrow {
        margin-bottom: 12px;
        font-size: 10px;
    }

    .mv__copy h1 .mv__h1-label {
        margin-bottom: 10px;

        font-size: 11px;
        letter-spacing: 0.1em;
    }

    .mv__copy h1 {
        font-size: clamp(22px, 7vw, 32px);
        font-size: min(32px, 100cqi / 11.6);
        line-height: 1.55;
    }

    .mv__copy p {
        margin-top: 16px;
        font-size: 14px;
    }
}

/* =========================================================
   NOTICE
========================================================= */

.notice-strip {
    padding: 13px 20px;

    border-top: 1px solid #dddddd;
    border-bottom: 1px solid #dddddd;

    text-align: center;

    font-size: 12px;
}


/* 最新のお知らせ（1件だけの細い帯） */

.top-news {
    border-bottom: 1px solid #dddddd;
}

.top-news__inner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 13px;
    line-height: 1.5;
}

.top-news__label {
    flex: none;
    color: var(--gold-dark, #8a6d3b);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
}

.top-news__date {
    flex: none;
    color: #777;
}

.top-news__title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.top-news__title:hover {
    text-decoration: underline;
}

.top-news__more {
    flex: none;
    color: #8a6d3b;
    font-size: 12px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 767px) {

    .top-news__inner {
        gap: 10px;
        font-size: 12px;
    }

    .top-news__date {
        display: none;
    }
}




/* =========================================================
   MONITOR
========================================================= */

.monitor-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 10px;

    align-items: end;
}

.monitor-row img {
    width: 100%;

    aspect-ratio: 1 / 1.15;
    object-fit: cover;
}


/* =========================================================
   HOME RESULTS
========================================================= */

.home-results {
    position: relative;
    padding: 90px 0 85px;
    overflow: hidden;
    color: #2f2b26;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.94) 0%,
            rgba(255, 255, 255, 0.82) 34%,
            rgba(255, 255, 255, 0.42) 65%,
            rgba(255, 255, 255, 0.16) 100%
        ),
        url('../img/top/haike-1600.webp')
        center center / cover
        no-repeat;
}


/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.home-results::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 55%;

    background:
        linear-gradient(
            180deg,
            rgba(245, 241, 234, 0) 0%,
            rgba(245, 241, 234, 0.60) 100%
        );

    pointer-events: none;
}

.home-results__bg-text {
    position: absolute;
    top: 42px;
    right: -25px;

    color: rgba(255, 255, 255, 0.30);

    font-family:
        "Times New Roman",
        serif;

    font-size: clamp(110px, 14vw, 220px);
    line-height: 1;
    letter-spacing: -0.04em;

    pointer-events: none;
}


/* =========================================================
   HEADING
========================================================= */

.home-results__heading {
    position: relative;
    z-index: 2;

    max-width: 820px;
    margin-bottom: 70px;
}

.home-results__heading-en {
    display: flex;
    align-items: center;
    gap: 20px;

    margin-bottom: 22px;
}

.home-results__heading-en span {
    color: #92703a;

    font-family:
        "Times New Roman",
        serif;

    font-size: 14px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.24em;
}

.home-results__heading-en i {
    display: block;

    width: 80px;
    height: 1px;

    background: #a78349;
}

.home-results__heading h2 {
    margin: 0;

    color: #27231e;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: clamp(40px, 4vw, 45px);
    line-height: 1.55;

    font-weight: 500;

    letter-spacing: 0.04em;
}

.home-results__heading h2 em {
    color: #9a763d;
    font-style: normal;
}

.home-results__heading > p {
    max-width: 820px;

    margin: 28px 0 0;

    color: #514b43;

    font-size: 16px;
    line-height: 2;

    font-weight: 500;

    letter-spacing: 0.02em;
}

/*
 * 句のまとまりの途中で折り返さない
 * （1〜2文字だけ次の行に送られるのを防ぐ）
 */
.home-results__heading > p span,
.home-results__bottom p span {
    display: inline-block;
}


/* =========================================================
   RESULTS GRID
========================================================= */

.home-results__grid {
    position: relative;
    z-index: 3;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;

    align-items: stretch;
}


/* =========================================================
   RESULT CARD
========================================================= */

.home-result-card {
    position: relative;

    min-width: 0;

    padding: 38px 32px 30px;

    display: flex;
    flex-direction: column;

    background: rgba(255, 255, 255, 0.92);

    border-top: 4px solid #b39767;

    box-shadow:
        0 20px 55px
        rgba(58, 48, 34, 0.15);

    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.home-result-card--main {
    background: rgba(250, 247, 240, 0.97);

    border-top-color: #98733b;

    box-shadow:
        0 25px 65px
        rgba(58, 48, 34, 0.20);
}


/* =========================================================
   CARD HEADER
========================================================= */

.home-result-card__head {
    min-height: 92px;

    display: grid;
    grid-template-columns: 45px 1fr;

    gap: 15px;

    align-items: start;
}

.home-result-card__number {
    padding-top: 4px;

    color: #9b7741;

    font-family:
        "Times New Roman",
        serif;

    font-size: 16px;
    line-height: 1;

    font-weight: 600;
}

.home-result-card__head small {
    display: block;

    margin-bottom: 10px;

    color: #9b7741;

    font-family:
        "Times New Roman",
        serif;

    font-size: 11px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.15em;
}

.home-result-card__head h3 {
    margin: 0;

    color: #2c2925;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 20px;
    line-height: 1.55;

    font-weight: 600;

    letter-spacing: 0.02em;
}


/* =========================================================
   SUB TEXT
========================================================= */

.home-result-card__sub {
    margin: -3px 0 0 60px;

    color: #6d6459;

    font-size: 13px;
    line-height: 1.6;

    font-weight: 500;
}


/* =========================================================
   TOTAL NUMBER
========================================================= */

.home-result-card__total {
    width: 100%;

    min-height: 20px;

    margin-top: 25px;

    display: flex;
    align-items: flex-end;

    gap: 10px;
}

.home-result-card__total strong {
    flex: 0 1 auto;

    color: #957039;

    font-family:
        "Times New Roman",
        serif;

    font-size: clamp(54px, 4.3vw, 70px);
    line-height: 0.9;

    font-weight: 400;

    letter-spacing: -0.045em;

    white-space: nowrap;
}

.home-result-card__total span {
    flex: 0 0 auto;

    padding-bottom: 6px;

    color: #3f3932;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 17px;
    line-height: 1;

    font-weight: 600;

    white-space: nowrap;
}


/* =========================================================
   PERIOD DATA
========================================================= */

.home-result-card__periods {
    margin-top: 24px;

    border-top: 1px solid #d2c8b9;
}

.home-result-card__periods > div {
    min-height: 72px;

    padding: 14px 0;

    display: grid;
    grid-template-columns: 1fr auto;

    gap: 15px;

    align-items: center;

    border-bottom: 1px solid #d2c8b9;
}

.home-result-card__periods span {
    color: #625b52;

    font-family:
        "Times New Roman",
        serif;

    font-size: 17px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.06em;
}

.home-result-card__periods strong {
    color: #2e2a25;

    font-family:
        "Times New Roman",
        serif;

    font-size: 30px;
    line-height: 1;

    font-weight: 400;

    white-space: nowrap;
}

.home-result-card__periods strong small {
    margin-left: 5px;

    color: #5e574f;

    font-family:
        "Noto Sans JP",
        sans-serif;

    font-size: 13px;

    font-weight: 500;
}

.home-result-card__periods--two {
    margin-bottom: 72px;
}


/* =========================================================
   CASE LINK
========================================================= */

.home-result-card__link {
    position: relative;

    min-height: 88px;

    margin-top: auto;

    padding:
        20px
        60px
        20px
        0;

    display: flex;
    flex-direction: column;

    justify-content: center;

    border-bottom: 1px solid #aa8a57;

    transition:
        padding-left 0.3s ease,
        color 0.3s ease;
}

.home-result-card__link::before {
    content: "";

    position: absolute;

    left: 0;
    bottom: -1px;

    width: 0;
    height: 2px;

    background: #957039;

    transition: width 0.35s ease;
}

.home-result-card__link:hover {
    padding-left: 10px;
}

.home-result-card__link:hover::before {
    width: 100%;
}

.home-result-card__link > span {
    margin-bottom: 8px;

    color: #94703a;

    font-family:
        "Times New Roman",
        serif;

    font-size: 10px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.16em;
}

.home-result-card__link strong {
    color: #302b26;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 15px;
    line-height: 1.5;

    font-weight: 600;
}

.home-result-card__link i {
    position: absolute;

    top: 50%;
    right: 4px;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #a98b5a;
    border-radius: 50%;

    color: #8d6932;

    font-size: 18px;
    font-style: normal;

    transform: translateY(-50%);

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.home-result-card__link:hover i {
    background: #98733b;

    color: #ffffff;

    transform:
        translateY(-50%)
        translateX(3px);
}


/* =========================================================
   BOTTOM MESSAGE
========================================================= */

.home-results__bottom {
    position: relative;
    z-index: 3;

    max-width: 900px;

    margin: 60px auto 0;

    display: grid;
    grid-template-columns: 150px 1fr;

    gap: 35px;

    align-items: center;
}

.home-results__bottom > span {
    color: #80602f;

    font-family:
        "Times New Roman",
        serif;

    font-size: 13px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.20em;
}

.home-results__bottom p {
    position: relative;

    margin: 0;
    padding-left: 35px;

    color: #39342e;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 15px;
    line-height: 2;

    font-weight: 500;
}

.home-results__bottom p::before {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 1px;

    background: #aa8a57;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1050px) {

    .home-results {
        padding: 75px 0 70px;
    }

    .home-results__grid {
        gap: 14px;
    }

    .home-result-card {
        padding:
            32px
            23px
            27px;
    }

    .home-result-card__head {
        grid-template-columns:
            35px
            1fr;
    }

    .home-result-card__head h3 {
        font-size: 17px;
    }

    .home-result-card__total strong {
        font-size: 54px;
    }

    .home-result-card__total span {
        font-size: 14px;
    }

    .home-result-card__periods strong {
        font-size: 25px;
    }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .home-results {
        padding: 60px 0 10px;

        background:
            linear-gradient(
                180deg,
                rgba(255, 255, 255, 0.91) 0%,
                rgba(255, 255, 255, 0.75) 37%,
                rgba(245, 241, 234, 0.66) 100%
            ),
            url('../img/top/haike-800.webp')
            54% center / cover
            no-repeat;
    }


    /* =====================================================
       BACKGROUND TEXT
    ===================================================== */

    .home-results__bg-text {
        top: 25px;
        right: -10px;

        color: rgba(255, 255, 255, 0.35);

        font-size: 75px;
    }


    /* =====================================================
       HEADING
    ===================================================== */

    .home-results__heading {
        margin-bottom: 42px;
    }

    .home-results__heading-en {
        margin-bottom: 17px;
    }

    .home-results__heading-en span {
        font-size: 11px;
    }

    .home-results__heading-en i {
        width: 45px;
    }

    .home-results__heading h2 {
        font-size: 28px;
        line-height: 1.65;
    }

    .home-results__heading > p {
        margin-top: 20px;

        font-size: 14px;
        line-height: 1.95;
    }


    /* =====================================================
       GRID
    ===================================================== */

    .home-results__grid {
        grid-template-columns: 1fr;

        gap: 20px;
    }


    /* =====================================================
       CARD
    ===================================================== */

    .home-result-card,
    .home-result-card--main {
        padding:
            30px
            22px
            25px;
    }

    .home-result-card__head {
        min-height: auto;

        grid-template-columns:
            38px
            1fr;
    }

    .home-result-card__number {
        font-size: 14px;
    }

    .home-result-card__head small {
        font-size: 10px;
    }

    .home-result-card__head h3 {
        font-size: 19px;
    }

    .home-result-card__sub {
        margin:
            8px
            0
            0
            53px;

        font-size: 12px;
    }


    /* =====================================================
       TOTAL
    ===================================================== */

    .home-result-card__total {
        /*min-height: 115px;*/

        margin-top: 20px;

        /*padding-bottom: 25px;*/
    }

    .home-result-card__total strong {
        font-size: 57px;
    }

    .home-result-card__total span {
        padding-bottom: 5px;

        font-size: 15px;
    }


    /* =====================================================
       PERIOD
    ===================================================== */

    .home-result-card__periods > div {
        min-height: 67px;
    }

    .home-result-card__periods span {
        font-size: 18px;
    }

    .home-result-card__periods strong {
        font-size: 27px;
    }

    .home-result-card__periods strong small {
        font-size: 12px;
    }

    .home-result-card__periods--two {
        margin-bottom: 0;
    }


    /* =====================================================
       LINK
    ===================================================== */

    .home-result-card__link strong {
        font-size: 14px;
    }


    /* =====================================================
       BOTTOM
    ===================================================== */

    .home-results__bottom {
        margin-top: 40px;

        display: block;
    }

    .home-results__bottom > span {
        font-size: 18px;
    }

    .home-results__bottom p {
        margin-top: 17px;

        padding:
            18px
            0
            0;

        border-top:
            1px solid
            rgba(151, 112, 57, 0.45);

        font-size: 17px;
        line-height: 1.9;
    }

    .home-results__bottom p::before {
        display: none;
    }

}


/* =========================================================
   HOME DOCTOR
========================================================= */

.home-doctor {
    position: relative;

    padding: 100px 0 105px;

    overflow: hidden;

    background: #f3f1ed;
}


/* =========================================================
   HOME DOCTOR
   SECTION HEADING
========================================================= */

.home-doctor__heading {
    position: relative;
    z-index: 3;

    margin-bottom: 50px;

    display: flex;
    align-items: center;
    gap: 22px;
}

.home-doctor__heading::after {
    content: "";

    width: 90px;
    height: 1px;

    background: #c6b79b;
}

.home-doctor__heading-sub {
    margin: 0;

    color: #999188;

    font-family:
        "Times New Roman",
        serif;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.22em;
}


/* =========================================================
   HOME DOCTOR
   PANEL
========================================================= */

.home-doctor__panel {
    position: relative;

    display: grid;
    grid-template-columns: 46% 54%;

    align-items: stretch;

    background: #ffffff;
}


/* =========================================================
   HOME DOCTOR
   LEFT VISUAL
========================================================= */

.home-doctor__visual {
    position: relative;

    padding: 85px 0 55px;

    background:
        linear-gradient(
            135deg,
            #e8e4de 0%,
            #f3f0eb 100%
        );
}


/* =========================================================
   HOME DOCTOR
   BACKGROUND TYPOGRAPHY
========================================================= */

.home-doctor__bg-name {
    position: absolute;
    z-index: 1;

    top: 32px;
    left: 35px;

    color: rgba(255, 255, 255, 0.70);

    font-family:
        "Times New Roman",
        serif;

    font-size: 68px;
    line-height: 0.84;
    letter-spacing: -0.04em;

    pointer-events: none;
}


/* =========================================================
   HOME DOCTOR
   DECORATIVE LINE
========================================================= */

.home-doctor__decor-line {
    position: absolute;
    z-index: 2;

    top: -45px;
    left: 65px;

    width: 1px;
    height: 145px;

    background: var(--gold);
}


/* =========================================================
   HOME DOCTOR
   PHOTO

   IMPORTANT:
   ・横幅100%
   ・高さ指定なし
   ・画像比率をそのまま使用
   ・object-fitを使用しない
========================================================= */

.home-doctor__photo {
    position: relative;
    z-index: 3;

    width: calc(100% + 45px);

    margin-left: -45px;
    margin-top: 60px;
}

.home-doctor__photo img {
    display: block;

    width: 100%;
    height: auto;
}


/* =========================================================
   HOME DOCTOR
   NAME UNDER PHOTO
========================================================= */

.home-doctor__visual-name {
    position: relative;
    z-index: 4;

    margin-top: 38px;
    padding: 0 55px 0 42px;
}

.home-doctor__visual-position {
    position: relative;

    margin: 0 0 18px;
    padding-left: 18px;

    color: #000;

    font-size: 13px;
    line-height: 1.8;
    letter-spacing: 0.06em;
}

.home-doctor__visual-position::before {
    content: "";

    position: absolute;

    top: 4px;
    bottom: 4px;
    left: 0;

    width: 1px;

    background: var(--gold);
}

.home-doctor__visual-name h3 {
    margin: 0;

    color: #292722;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 32px;
    line-height: 1.35;
    font-weight: 400;
    letter-spacing: 0.14em;
}

.home-doctor__visual-name h3 span {
    margin-left: 8px;
}

.home-doctor__visual-name-en {
    margin: 12px 0 0;

    color: #9b8d79;

    font-family:
        "Times New Roman",
        serif;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.24em;
}


/* =========================================================
   HOME DOCTOR
   ACHIEVEMENT
========================================================= */

.home-doctor__achievement {
    position: absolute;
    z-index: 5;

    top: 50%;
    right: -58px;

    width: 165px;
    min-height: 165px;

    padding: 24px 20px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    background: #282623;
    color: #ffffff;

    transform: translateY(-10%);
}

.home-doctor__achievement > span {
    margin-bottom: 6px;

    color: #c5ad7c;

    font-family:
        Arial,
        sans-serif;

    font-size: 8px;
    line-height: 1;
    letter-spacing: 0.22em;
}

.home-doctor__achievement strong {
    display: block;

    font-family:
        "Times New Roman",
        serif;

    font-size: 39px;
    line-height: 1;
    font-weight: 400;
    letter-spacing: -0.02em;
}

.home-doctor__achievement strong small {
    margin-left: 2px;

    color: var(--gold);

    font-size: 21px;
}

.home-doctor__achievement p {
    margin: 12px 0 0;

    color: #d8d5cf;

    font-size: 10px;
    line-height: 1.6;
    letter-spacing: 0.08em;
}


/* =========================================================
   HOME DOCTOR
   RIGHT CONTENT
========================================================= */

.home-doctor__content {
    position: relative;

    padding: 70px 65px 65px 95px;
}


/* =========================================================
   HOME DOCTOR
   MESSAGE
========================================================= */

.home-doctor__message {
    position: relative;

    padding-bottom: 45px;

    border-bottom: 1px solid #ddd7ce;
}

.home-doctor__message-label {
    display: block;

    margin-bottom: 20px;

    color: var(--gold);

    font-family:
        "Times New Roman",
        serif;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.25em;
}

.home-doctor__message h2 {
    margin: 0;

    color: #292722;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: clamp(28px, 2.0vw, 39px);
    line-height: 1.65;
    font-weight: 400;
    letter-spacing: 0.04em;
}

.home-doctor__message h2 em {
    position: relative;

    color: #8d6e35;

    font-style: normal;
}

.home-doctor__message h2 em::after {
    content: "";

    position: absolute;

    right: 0;
    bottom: -7px;
    left: 0;

    height: 1px;

    background: #c6ad7d;
}


/* =========================================================
   HOME DOCTOR
   LEAD
========================================================= */

.home-doctor__lead {
    position: relative;

    margin-top: 34px;
    padding-left: 25px;
}

.home-doctor__lead::before {
    content: "";

    position: absolute;

    top: 4px;
    bottom: 4px;
    left: 0;

    width: 2px;

    background: var(--gold);
}

.home-doctor__lead p {
    margin: 0;

    color: #37332e;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 19px;
    line-height: 1.9;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.home-doctor__message-text {
    margin: 24px 0 0;

    color: #000;

    font-size: 16px;
    line-height: 2.15;
}


/* =========================================================
   HOME DOCTOR
   PROFILE

   ※氏名・肩書きは左側へ移動したため
     右側にはPROFILEのみ表示
========================================================= */

.home-doctor__profile {
    position: relative;

    padding: 38px 0 10px;
}

.home-doctor__profile-label {
    display: block;

    margin-bottom: 22px;

    color: #a58c60;

    font-family:
        "Times New Roman",
        serif;

    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.22em;
}

.home-doctor__profile p {
    margin: 0 0 18px;

    color: #000;

    font-size: 15px;
    line-height: 1.8;
}


/* =========================================================
   HOME DOCTOR
   PROFILE BUTTON
========================================================= */

.home-doctor__button {
    margin-top: 25px;
}

.home-doctor__more {
    position: relative;

    min-height: 90px;

    padding: 20px 80px 20px 25px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border-top: 1px solid #cdbfa5;
    border-bottom: 1px solid #cdbfa5;

    transition:
        background 0.3s ease,
        padding-left 0.3s ease;
}

.home-doctor__more::before {
    content: "";

    position: absolute;

    top: -1px;
    bottom: -1px;
    left: 0;

    width: 3px;

    background: var(--gold);

    transform: scaleY(0);
    transform-origin: bottom;

    transition: transform 0.35s ease;
}

.home-doctor__more:hover {
    padding-left: 33px;

    background: #f7f4ee;
}

.home-doctor__more:hover::before {
    transform: scaleY(1);
}

.home-doctor__more span {
    margin-bottom: 7px;

    color: #a58c60;

    font-family:
        Arial,
        sans-serif;

    font-size: 8px;
    line-height: 1;
    letter-spacing: 0.2em;
}

.home-doctor__more strong {
    color: #302d29;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 14px;
    line-height: 1.5;
    font-weight: 400;
}

.home-doctor__more i {
    position: absolute;

    top: 50%;
    right: 25px;

    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #cdbfa5;
    border-radius: 50%;

    color: var(--gold);

    font-family:
        Arial,
        sans-serif;

    font-size: 16px;
    line-height: 1;
    font-style: normal;

    transform: translateY(-50%);

    transition:
        background 0.3s ease,
        color 0.3s ease;
}

.home-doctor__more:hover i {
    background: var(--gold);
    color: #ffffff;
}


/* =========================================================
   HOME REASONS
   当院が選ばれる理由
========================================================= */

.home-reasons {
    position: relative;
    padding: 95px 0 100px;
    overflow: hidden;
    background: #f4f1ec;
}


/* =========================================================
   HEADING
========================================================= */

.home-reasons__heading {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 40px;

    margin-bottom: 80px;
}

.home-reasons__heading-left {
    max-width: 850px;
}

.home-reasons__en {
    display: block;

    margin-bottom: 18px;

    color: #9e7c43;

    font-family:
        "Times New Roman",
        serif;

    font-size: 12px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.26em;
}

.home-reasons__heading h2 {
    margin: 0;

    color: #2c2924;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: clamp(36px, 4vw, 45px);
    line-height: 1.6;

    font-weight: 400;

    letter-spacing: 0.04em;
}

.home-reasons__heading h2 em {
    color: #98753d;
    font-style: normal;
}


/* =========================================================
   HEADING 01 — 06
========================================================= */

.home-reasons__heading-right {
    display: flex;
    align-items: center;

    gap: 14px;

    padding-bottom: 10px;
}

.home-reasons__heading-right span {
    color: #9a7b49;

    font-family:
        "Times New Roman",
        serif;

    font-size: 14px;
    line-height: 1;

    letter-spacing: 0.08em;
}

.home-reasons__heading-right i {
    display: block;

    width: 90px;
    height: 1px;

    background: #c4b18f;
}


/* =========================================================
   REASON LIST
========================================================= */

.home-reasons__list {
    position: relative;
    z-index: 2;

    display: grid;

    gap: 110px;
}


/* =========================================================
   REASON ITEM
========================================================= */

.home-reason {
    position: relative;

    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(0, 0.85fr);

    align-items: center;

    gap: 0;
}


/* =========================================================
   REVERSE ITEM
========================================================= */

.home-reason--reverse {
    grid-template-columns:
        minmax(0, 0.85fr)
        minmax(0, 1.15fr);
}

.home-reason--reverse .home-reason__image {
    order: 2;
}

.home-reason--reverse .home-reason__content {
    order: 1;
}


/* =========================================================
   IMAGE
========================================================= */

.home-reason__image {
    position: relative;

    z-index: 3;

    overflow: visible;
}

.home-reason__image img {
    display: block;

    width: 100%;
    height: auto;

    object-fit: cover;
}


/* =========================================================
   IMAGE DECORATION
========================================================= */

.home-reason__image::before {
    content: "";

    position: absolute;

    top: -16px;
    left: -16px;

    z-index: 1;

    width: 105px;
    height: 105px;

    border-top: 1px solid #b4945c;
    border-left: 1px solid #b4945c;

    pointer-events: none;
}

.home-reason--reverse .home-reason__image::before {
    right: -16px;
    left: auto;

    border-top: 1px solid #b4945c;
    border-right: 1px solid #b4945c;
    border-left: 0;
}


/* =========================================================
   REASON TITLE + NUMBER
========================================================= */

.home-reason__title {
    position: relative;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 25px;

    margin-bottom: 26px;
    padding-bottom: 24px;

    border-bottom: 1px solid #d6c8b1;
}


/* =========================================================
   TITLE
========================================================= */

.home-reason__title h3 {
    margin: 0;

    color: #302c27;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 29px;
    line-height: 1.55;

    font-weight: 500;

    letter-spacing: 0.05em;
}


/* =========================================================
   NUMBER
========================================================= */

.home-reason__number {
    flex: 0 0 auto;

    margin-top: -8px;

    color: rgba(158, 123, 67, 0.38);

    font-family:
        "Times New Roman",
        serif;

    font-size: 62px;
    line-height: 1;

    font-weight: 400;

    letter-spacing: -0.05em;

    white-space: nowrap;
}


/* =========================================================
   GOLD LINE
========================================================= */

.home-reason__title::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -1px;

    width: 55px;
    height: 2px;

    background: #ac8a51;
}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .home-reason__title {
        gap: 15px;

        margin-bottom: 21px;
        padding-bottom: 18px;
    }

    .home-reason__title h3 {
        font-size: 23px;
        line-height: 1.5;
    }

    .home-reason__number {
        margin-top: -3px;

        color: rgba(158, 123, 67, 0.34);

        font-size: 48px;
    }

}


/* =========================================================
   SMALL SMARTPHONE
========================================================= */

@media (max-width: 390px) {

    .home-reason__title h3 {
        font-size: 21px;
    }

    .home-reason__number {
        font-size: 43px;
    }

}


/* =========================================================
   CONTENT PANEL
========================================================= */

.home-reason__content {
    position: relative;

    z-index: 2;

    margin-left: -55px;

    padding:
        58px
        55px
        58px
        72px;

    background:
        rgba(255, 255, 255, 0.97);

    box-shadow:
        0 22px 60px
        rgba(68, 57, 41, 0.10);
}


/* =========================================================
   REVERSE CONTENT PANEL
========================================================= */

.home-reason--reverse .home-reason__content {
    margin-right: -55px;
    margin-left: 0;

    padding:
        58px
        72px
        58px
        55px;
}


/* =========================================================
   ENGLISH LABEL
========================================================= */

.home-reason__label {
    display: block;

    margin-bottom: 15px;

    color: #9e7b43;

    font-family:
        "Times New Roman",
        serif;

    font-size: 11px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 0.22em;
}


/* =========================================================
   TITLE
========================================================= */

.home-reason__content h3 {
    position: relative;

    margin:
        0
        0
        26px;

    padding-bottom: 24px;

    color: #302c27;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 29px;
    line-height: 1.55;

    font-weight: 500;

    letter-spacing: 0.05em;
}

.home-reason__content h3::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 55px;
    height: 1px;

    background: #ac8a51;
}


/* =========================================================
   TEXT
========================================================= */

.home-reason__content p {
    margin: 0;

    color: #000;

    font-size: 17px;
    line-height: 2.15;

    font-weight: 400;

    letter-spacing: 0.02em;
}


/* =========================================================
   SUBTLE BACKGROUND DECORATION
========================================================= */

.home-reasons::before {
    content: "WHY CHOOSE US";

    position: absolute;

    top: 35px;
    right: -35px;

    color: rgba(143, 112, 62, 0.045);

    font-family:
        "Times New Roman",
        serif;

    font-size: clamp(90px, 12vw, 190px);
    line-height: 1;

    letter-spacing: -0.04em;

    white-space: nowrap;

    pointer-events: none;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

    .home-reasons {
        padding: 75px 0 85px;
    }

    .home-reasons__heading {
        margin-bottom: 65px;
    }

    .home-reasons__list {
        gap: 85px;
    }

    .home-reason {
        grid-template-columns:
            minmax(0, 1.1fr)
            minmax(0, 0.9fr);
    }

    .home-reason--reverse {
        grid-template-columns:
            minmax(0, 0.9fr)
            minmax(0, 1.1fr);
    }

    .home-reason__content {
        margin-left: -35px;

        padding:
            45px
            38px
            45px
            50px;
    }

    .home-reason--reverse .home-reason__content {
        margin-right: -35px;
        margin-left: 0;

        padding:
            45px
            50px
            45px
            38px;
    }

    .home-reason__content h3 {
        font-size: 25px;
    }

    .home-reason__content p {
        font-size: 16px;
    }

    .home-reason__number {
        right: -20px;
        bottom: -35px;

        font-size: 88px;
    }

    .home-reason--reverse .home-reason__number {
        right: auto;
        left: -20px;
    }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .home-reasons {
        padding: 60px 0 70px;
    }


    /* =====================================================
       BACKGROUND DECORATION
    ===================================================== */

    .home-reasons::before {
        top: 25px;
        right: -20px;

        font-size: 65px;
    }


    /* =====================================================
       HEADING
    ===================================================== */

    .home-reasons__heading {
        display: block;

        margin-bottom: 55px;
    }

    .home-reasons__en {
        margin-bottom: 15px;

        font-size: 10px;
    }

    .home-reasons__heading h2 {
        font-size: 29px;
        line-height: 1.7;

        letter-spacing: 0.02em;
    }


    /* =====================================================
       HEADING NUMBER
    ===================================================== */

    .home-reasons__heading-right {
        margin-top: 20px;
        padding-bottom: 0;
    }

    .home-reasons__heading-right span {
        font-size: 12px;
    }

    .home-reasons__heading-right i {
        width: 55px;
    }


    /* =====================================================
       LIST
    ===================================================== */

    .home-reasons__list {
        gap: 70px;
    }


    /* =====================================================
       ITEM
    ===================================================== */

    .home-reason,
    .home-reason--reverse {
        display: block;
    }

    .home-reason--reverse .home-reason__image,
    .home-reason--reverse .home-reason__content {
        order: initial;
    }


    /* =====================================================
       IMAGE
    ===================================================== */

    .home-reason__image {
        position: relative;

        z-index: 3;
    }

    .home-reason__image img {
        width: 100%;
        height: auto;
    }


    /* =====================================================
       IMAGE DECORATION
    ===================================================== */

    .home-reason__image::before {
        top: -9px;
        left: -9px;

        width: 60px;
        height: 60px;
    }

    .home-reason--reverse .home-reason__image::before {
        right: -9px;
        left: auto;
    }


    /* =====================================================
       BIG NUMBER
    ===================================================== */

    .home-reason__number,
    .home-reason--reverse .home-reason__number {
        right: 12px;
        bottom: -31px;
        left: auto;

        z-index: 10;

        color: #a88348;

        font-size: 78px;
        line-height: 0.82;

        text-shadow:
            0 2px 14px
            rgba(255, 255, 255, 0.65);
    }


    /* =====================================================
       CONTENT PANEL
    ===================================================== */

    .home-reason__content,
    .home-reason--reverse .home-reason__content {
        position: relative;

        z-index: 2;

        width: calc(100% - 24px);

        margin:
            -10px
            0
            0
            auto;

        padding:
            42px
            25px
            34px;

        background:
            rgba(255, 255, 255, 0.98);

        box-shadow:
            0 16px 40px
            rgba(68, 57, 41, 0.09);
    }

    .home-reason:nth-child(even) .home-reason__content {
        margin:
            -10px
            auto
            0
            0;
    }


    /* =====================================================
       LABEL
    ===================================================== */

    .home-reason__label {
        margin-bottom: 12px;

        font-size: 10px;
    }


    /* =====================================================
       TITLE
    ===================================================== */

    .home-reason__content h3 {
        margin-bottom: 21px;
        padding-bottom: 19px;

        font-size: 23px;
        line-height: 1.55;
    }

    .home-reason__content h3::after {
        width: 45px;
    }


    /* =====================================================
       TEXT
    ===================================================== */

    .home-reason__content p {
        font-size: 16px;
        line-height: 2;
    }

}


/* =========================================================
   SMALL SMARTPHONE
========================================================= */

@media (max-width: 390px) {

    .home-reasons__heading h2 {
        font-size: 26px;
    }

    .home-reason__number,
    .home-reason--reverse .home-reason__number {
        right: 10px;
        bottom: -27px;

        font-size: 68px;
    }

    .home-reason__content,
    .home-reason--reverse .home-reason__content {
        width: calc(100% - 18px);

        padding:
            38px
            19px
            30px;
    }

    .home-reason__content h3 {
        font-size: 21px;
    }

    .home-reason__content p {
        font-size: 16px;
    }

}


/* =========================================================
   CASE
========================================================= */

.case-card {
    background: #ffffff;

    border: 1px solid #e4dfd7;
}

.case-card__body {
    padding: 22px;
}

.case-card img {
    width: 100%;

    aspect-ratio: 16 / 9;
    object-fit: cover;
}


/* =========================================================
   HOME YOUTUBE
========================================================= */

.home-youtube {
    position: relative;

    padding: 90px 0 95px;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #252421 0%,
            #302e2a 55%,
            #252421 100%
        );

    color: #ffffff;
}


/* =========================================================
   BACKGROUND TYPOGRAPHY
========================================================= */

.home-youtube__bg-text {
    position: absolute;

    right: -20px;
    bottom: -45px;

    color: rgba(255, 255, 255, 0.025);

    font-family:
        "Times New Roman",
        serif;

    font-size: clamp(120px, 18vw, 280px);
    line-height: 0.8;
    letter-spacing: -0.05em;

    pointer-events: none;
}


/* =========================================================
   INNER
========================================================= */

.home-youtube__inner {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns: 0.78fr 1.22fr;

    gap: 75px;

    align-items: center;
}


/* =========================================================
   CONTENT
========================================================= */

.home-youtube__content {
    position: relative;

    padding-left: 30px;
}

.home-youtube__content::before {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            #b89a61 0%,
            rgba(184, 154, 97, 0.15) 100%
        );
}


/* =========================================================
   ENGLISH
========================================================= */

.home-youtube__en {
    display: block;

    margin-bottom: 18px;

    color: #c5aa77;

    font-family:
        "Times New Roman",
        serif;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.25em;
}


/* =========================================================
   TITLE
========================================================= */

.home-youtube__content h2 {
    margin: 0;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 35px;
    line-height: 1.65;
    font-weight: 400;
    letter-spacing: 0.05em;
}


/* =========================================================
   TEXT
========================================================= */

.home-youtube__lead {
    margin: 28px 0 0;

    color: #ffffff;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 15px;
    line-height: 2;
}

.home-youtube__text {
    margin: 15px 0 0;

    color: #fff;

    font-size: 13px;
    line-height: 2.1;
}


/* =========================================================
   CHANNEL BUTTON
========================================================= */

.home-youtube__channel {
    position: relative;

    width: 100%;
    max-width: 390px;
    min-height: 82px;

    margin-top: 38px;
    padding: 15px 65px 15px 18px;

    display: flex;
    align-items: center;
    gap: 15px;

    border-top: 1px solid rgba(197, 170, 119, 0.5);
    border-bottom: 1px solid rgba(197, 170, 119, 0.5);

    transition:
        background 0.3s ease,
        padding-left 0.3s ease;
}

.home-youtube__channel:hover {
    padding-left: 24px;

    background: rgba(255, 255, 255, 0.05);
}


/* =========================================================
   YOUTUBE ICON
========================================================= */

.home-youtube__channel-icon {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    /* YouTube のロゴの赤（再生マークは白） */
    color: #ff0000;
}

.home-youtube__channel-icon svg {
    width: 30px;
    height: 30px;
}


/* =========================================================
   CHANNEL TEXT
========================================================= */

.home-youtube__channel-text {
    display: flex;
    flex-direction: column;
}

.home-youtube__channel-text small {
    margin-bottom: 5px;

    color: #c5aa77;

    font-family:
        "Times New Roman",
        serif;

    font-size: 8px;
    line-height: 1;
    letter-spacing: 0.2em;
}

.home-youtube__channel-text strong {
    color: #ffffff;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 13px;
    line-height: 1.5;
    font-weight: 400;
}


/* =========================================================
   CHANNEL ARROW
========================================================= */

.home-youtube__channel-arrow {
    position: absolute;

    top: 50%;
    right: 20px;

    color: #c5aa77;

    font-size: 17px;

    transform: translateY(-50%);

    transition: transform 0.3s ease;
}

.home-youtube__channel:hover
.home-youtube__channel-arrow {
    transform:
        translateY(-50%)
        translateX(5px);
}


/* =========================================================
   MOVIE
========================================================= */

.home-youtube__movie {
    position: relative;
}

.home-youtube__movie::before {
    content: "";

    position: absolute;

    top: -18px;
    right: -18px;

    width: 110px;
    height: 110px;

    border-top: 1px solid #9f8659;
    border-right: 1px solid #9f8659;

    pointer-events: none;
}

.home-youtube__movie::after {
    content: "";

    position: absolute;

    bottom: -18px;
    left: -18px;

    width: 110px;
    height: 110px;

    border-bottom: 1px solid #9f8659;
    border-left: 1px solid #9f8659;

    pointer-events: none;
}


/* =========================================================
   MOVIE BUTTON
========================================================= */

.home-youtube__movie-button {
    position: relative;

    width: 100%;

    padding: 0;

    display: block;

    overflow: hidden;

    border: 0;

    background: #111111;

    cursor: pointer;
}

.home-youtube__movie-button img {
    display: block;

    width: 100%;
    height: auto;

    transition: transform 0.7s ease;
}

.home-youtube__movie-button:hover img {
    transform: scale(1.035);
}


/* =========================================================
   MOVIE OVERLAY
========================================================= */

.home-youtube__movie-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.03) 20%,
            rgba(0, 0, 0, 0.55) 100%
        );

    transition: background 0.35s ease;
}

.home-youtube__movie-button:hover
.home-youtube__movie-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0) 20%,
            rgba(0, 0, 0, 0.42) 100%
        );
}


/* =========================================================
   PLAY
========================================================= */

.home-youtube__play {
    position: absolute;

    top: 50%;
    left: 50%;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 13px;

    transform: translate(-50%, -50%);
}

.home-youtube__play-circle {
    width: 82px;
    height: 82px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;

    background: rgba(0, 0, 0, 0.20);
    color: #ffffff;

    backdrop-filter: blur(3px);

    transition:
        background 0.35s ease,
        border-color 0.35s ease,
        transform 0.35s ease;
}

.home-youtube__play-circle svg {
    width: 27px;
    height: 27px;

    margin-left: 4px;
}

.home-youtube__movie-button:hover
.home-youtube__play-circle {
    border-color: #b89a61;

    background: #b89a61;

    transform: scale(1.08);
}

.home-youtube__play-text {
    color: #ffffff;

    font-family:
        "Times New Roman",
        serif;

    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.25em;
}


/* =========================================================
   MOVIE LABEL
========================================================= */

.home-youtube__movie-label {
    position: absolute;

    right: 25px;
    bottom: 22px;
    left: 25px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;

    text-align: left;
}

.home-youtube__movie-label small {
    color: #c5aa77;

    font-family:
        "Times New Roman",
        serif;

    font-size: 8px;
    letter-spacing: 0.2em;
}

.home-youtube__movie-label strong {
    color: #ffffff;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 12px;
    font-weight: 400;
}


/* =========================================================
   YOUTUBE MODAL
========================================================= */

.youtube-modal {
    position: fixed;
    z-index: 10000;

    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 50px;

    visibility: hidden;
    opacity: 0;

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;
}

.youtube-modal.is-open {
    visibility: visible;
    opacity: 1;
}


/* =========================================================
   MODAL BACKDROP
========================================================= */

.youtube-modal__backdrop {
    position: absolute;

    inset: 0;

    background: rgba(15, 14, 13, 0.92);

    backdrop-filter: blur(5px);
}


/* =========================================================
   MODAL DIALOG
========================================================= */

.youtube-modal__dialog {
    position: relative;
    z-index: 2;

    width: min(1100px, 100%);
}


/* =========================================================
   MODAL MOVIE
========================================================= */

.youtube-modal__movie {
    position: relative;

    width: 100%;

    aspect-ratio: 16 / 9;

    background: #000000;

    box-shadow:
        0 30px 80px
        rgba(0, 0, 0, 0.45);
}

.youtube-modal__movie iframe {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    border: 0;
}


/* =========================================================
   MODAL CLOSE
========================================================= */

.youtube-modal__close {
    position: absolute;
    z-index: 5;

    top: -52px;
    right: 0;

    width: 42px;
    height: 42px;

    padding: 0;

    border: 0;

    background: transparent;

    cursor: pointer;
}

.youtube-modal__close span {
    position: absolute;

    top: 50%;
    left: 50%;

    width: 32px;
    height: 1px;

    background: #ffffff;
}

.youtube-modal__close span:first-child {
    transform:
        translate(-50%, -50%)
        rotate(45deg);
}

.youtube-modal__close span:last-child {
    transform:
        translate(-50%, -50%)
        rotate(-45deg);
}


/* =========================================================
   MODAL BODY LOCK
========================================================= */

body.youtube-modal-open {
    overflow: hidden;
}


/* =========================================================
   YOUTUBE RESPONSIVE
========================================================= */

@media (max-width: 767px) {

    .home-youtube {
        padding: 60px 0 70px;
    }


    /* =====================================================
       INNER
    ===================================================== */

    .home-youtube__inner {
        grid-template-columns: 1fr;

        gap: 55px;
    }


    /* =====================================================
       CONTENT
    ===================================================== */

    .home-youtube__content {
        padding-left: 20px;
    }

    .home-youtube__content h2 {
        font-size: 27px;
        line-height: 1.65;
    }

    .home-youtube__lead {
        margin-top: 20px;

        font-size: 14px;
    }

    .home-youtube__text {
        font-size: 12px;
        line-height: 2;
    }


    /* =====================================================
       CHANNEL BUTTON
    ===================================================== */

    .home-youtube__channel {
        max-width: none;

        margin-top: 30px;
    }


    /* =====================================================
       MOVIE
    ===================================================== */

    .home-youtube__movie::before {
        top: -10px;
        right: -10px;

        width: 60px;
        height: 60px;
    }

    .home-youtube__movie::after {
        bottom: -10px;
        left: -10px;

        width: 60px;
        height: 60px;
    }

    .home-youtube__play-circle {
        width: 64px;
        height: 64px;
    }

    .home-youtube__play-circle svg {
        width: 22px;
        height: 22px;
    }

    .home-youtube__play-text {
        font-size: 8px;
    }

    .home-youtube__movie-label {
        right: 15px;
        bottom: 13px;
        left: 15px;
    }

    .home-youtube__movie-label strong {
        display: none;
    }


    /* =====================================================
       MODAL
    ===================================================== */

    .youtube-modal {
        padding: 20px;
    }

    .youtube-modal__close {
        top: -48px;
    }

}


/* =========================================================
   TREATMENT
========================================================= */

.treatment-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.treatment-grid > a {
    position: relative;
    isolation: isolate;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    min-width: 0;
    height: 150px;

    padding: 25px 28px;

    overflow: hidden;

    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;

    color: #34291f;
    text-decoration: none;

    box-shadow:
        0 10px 28px rgba(55, 43, 28, .20);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}


.treatment-grid > a::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index: -1;

    /*background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, .93) 0%,
            rgba(255, 255, 255, .80) 45%,
            rgba(255, 255, 255, .20) 100%
        );*/

    pointer-events: none;
}

/* =========================================================
   左上・右下の装飾
========================================================= */

.treatment-grid__corner {
    position: absolute;

    z-index: 5;

    width: 32px;
    height: 32px;

    pointer-events: none;
}


/* 左上 ┌ */

.treatment-grid__corner--tl {
    top: 10px;
    left: 10px;

    border-top: 1px solid #aa8245;
    border-left: 1px solid #aa8245;
}


/* 右下 ┘ */

.treatment-grid__corner--br {
    right: 10px;
    bottom: 10px;

    border-right: 1px solid #aa8245;
    border-bottom: 1px solid #aa8245;
}

.treatment-grid > a::after {
    content: "";
    position: absolute;

    left: 42px;
    bottom: 28px;

    width: 38px;
    height: 1px;

    background: #aa8245;

    z-index: 2;

    transition: width .3s ease;
}

.treatment-grid__en,
.treatment-grid__ja {
    position: relative;
    z-index: 3;
}


/* ENGLISH */

.treatment-grid__en {
    position: relative;

    z-index: 2;

    display: block;

    margin: 0 0 5px;

    color: #9a7841;

    font-family:
        "Times New Roman",
        "Yu Mincho",
        "YuMincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 9px;
    font-weight: 400;
    line-height: 1.4;

    letter-spacing: .16em;
}

.treatment-grid__ja {
    position: relative;

    z-index: 2;

    display: block;

    margin: 0;
    padding: 0;

    color: #352a21;

    font-family:
        "Yu Mincho",
        "YuMincho",
        "Hiragino Mincho ProN",
        "Hiragino Mincho Pro",
        "Noto Serif JP",
        serif;

    font-size: 20px;
    font-weight: 500;
    line-height: 1.45;

    letter-spacing: .04em;
}

/* =========================================================
   以前の装飾を完全無効化
========================================================= */

.treatment-grid__en::before,
.treatment-grid__en::after,
.treatment-grid__ja::before,
.treatment-grid__ja::after {
    content: none !important;
    display: none !important;
}

/* ---------------------------------------------------------
   左上
--------------------------------------------------------- */

.treatment-grid__en::before {
    content: "";

    position: absolute;

    top: -165px;
    left: -15px;

    width: 45px;
    height: 45px;

    border-top: 1px solid #b39259;
    border-left: 1px solid #b39259;

    pointer-events: none;

    transition:
        width .35s ease,
        height .35s ease;
}


/* ---------------------------------------------------------
   右下
--------------------------------------------------------- */

.treatment-grid__ja::after {
    content: "";

    position: absolute;

    right: -15px;
    bottom: -16px;

    width: 45px;
    height: 45px;

    border-right: 1px solid #b39259;
    border-bottom: 1px solid #b39259;

    pointer-events: none;

    transition:
        width .35s ease,
        height .35s ease;
}

/* ---------------------------------------------------------
   HOVER
--------------------------------------------------------- */

.treatment-grid > a:hover {
    transform: translateY(-2px);

    box-shadow:
        0 9px 25px rgba(55, 43, 28, .11);
}

.treatment-grid > a:hover .treatment-grid__corner {
    width: 42px;
    height: 42px;
}

/* =========================================================
   CLINIC
========================================================= */

.clinic-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);

    gap: 0;
}

.clinic-gallery img {
    width: 100%;

    aspect-ratio: 1.5;
    object-fit: cover;
}

.home-clinic {
    padding-bottom: 0;
}

.clinic-info {
    position: relative;

    padding: 80px 0 86px;

    background: #23211d;
    color: #e9e3d8;

    overflow: hidden;
}

.clinic-info::before {
    content: "GINZA";

    position: absolute;
    right: -10px;
    bottom: -38px;

    color: rgba(255, 255, 255, 0.035);

    font-family:
        "Times New Roman",
        serif;

    font-size: 200px;
    line-height: 1;
    letter-spacing: 0.08em;

    pointer-events: none;
}

.clinic-info__inner {
    position: relative;

    display: grid;
    grid-template-columns: 1fr 1.05fr 1.2fr;
}

.clinic-info__inner > div {
    min-width: 0;

    padding: 0 48px;
}

.clinic-info__inner > div:first-child {
    padding-left: 0;
}

.clinic-info__inner > div:last-child {
    padding-right: 0;
}

.clinic-info__inner > div + div {
    border-left: 1px solid rgba(201, 176, 122, 0.28);
}


/* 医院名・住所・電話 */

.clinic-info__logo {
    display: block;

    width: 230px;
    height: auto;

    margin-bottom: 30px;

    filter: brightness(0) invert(1);
}

.clinic-info__address {
    margin: 0 0 32px;

    color: #cfc7b9;

    font-size: 15px;
    line-height: 1.9;
}

.clinic-info__tel {
    position: relative;

    display: inline-block;

    padding-left: 18px;

    color: #ffffff;
}

.clinic-info__tel::before {
    content: "";

    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;

    width: 1px;

    background: #c9b07a;
}

.clinic-info__tel small {
    display: block;

    margin-bottom: 6px;

    color: #c9b07a;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.2em;
}

.clinic-info__tel strong {
    display: block;

    font-family:
        "Times New Roman",
        serif;

    font-size: 32px;
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: 0.03em;
}

.clinic-info__tel span {
    display: block;

    margin-top: 6px;

    color: #a9a194;

    font-size: 12px;
}


/* 見出しラベル */

.clinic-info__label {
    display: flex;
    align-items: center;
    gap: 14px;

    margin: 0 0 22px;

    color: #c9b07a;

    font-size: 12px;
    line-height: 1;
    letter-spacing: 0.3em;
}

.clinic-info__label::after {
    content: "";

    width: 36px;
    height: 1px;

    background: #c9b07a;
}


/* アクセス */

.clinic-info__access {
    margin: 0;
    padding: 0;

    list-style: none;
}

.clinic-info__access li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;

    padding: 15px 0;

    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.clinic-info__access li:first-child {
    padding-top: 4px;
}

.clinic-info__station {
    color: #ffffff;

    font-size: 15px;
    line-height: 1.5;
}

.clinic-info__station small {
    margin-left: 8px;

    color: #a9a194;

    font-size: 12px;
}

.clinic-info__walk {
    flex: 0 0 auto;

    color: #cfc7b9;

    font-size: 12px;
    white-space: nowrap;
}

.clinic-info__walk b {
    margin: 0 2px;

    color: #c9b07a;

    font-family:
        "Times New Roman",
        serif;

    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}


/* 診療時間 */

.clinic-info__hours {
    width: 100%;

    border-collapse: collapse;

    font-size: 13px;
    text-align: center;
}

.clinic-info__hours th,
.clinic-info__hours td {
    padding: 13px 2px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.1);

    font-weight: 400;
}

.clinic-info__hours thead th {
    padding-top: 2px;

    color: #a9a194;

    font-size: 12px;
}

.clinic-info__hours tbody th {
    padding-right: 8px;

    color: #ffffff;

    font-family:
        "Times New Roman",
        serif;

    font-size: 16px;
    text-align: left;
    white-space: nowrap;
}

.clinic-info__hours td {
    color: #c9b07a;
}

.clinic-info__hours td.is-close {
    color: #6f695f;
}

.clinic-info__sr {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.clinic-info__note {
    margin: 12px 0 0;

    color: #a9a194;

    font-size: 12px;
}

.clinic-info__links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;

    margin-top: 28px;
}

.clinic-info__link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    min-height: 50px;
    padding: 0 18px;

    border: 1px solid rgba(201, 176, 122, 0.6);

    color: #ffffff;

    font-size: 14px;
    letter-spacing: 0.06em;

    transition:
        background 0.3s ease,
        color 0.3s ease;
}

.clinic-info__link span {
    color: #c9b07a;

    transition: color 0.3s ease;
}

.clinic-info__link:hover {
    background: #c9b07a;
    color: #23211d;
}

.clinic-info__link:hover span {
    color: #23211d;
}

/* =========================================================
   CONSULT
========================================================= */

.consult {
    position: relative;

    background: #f3f0ed;
}


/* =========================================================
   CONSULT LAYOUT
========================================================= */

.consult-box {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;

    gap: 70px;

    align-items: center;
}


/* =========================================================
   CONSULT CONTENT
========================================================= */

.consult-box__content {
    position: relative;

    padding-left: 28px;
}

.consult-box__content::before {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 1px;

    background: var(--gold);
}

.consult-box__content h2 {
    margin: 12px 0 22px;

    color: #292722;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 34px;
    line-height: 1.6;
    font-weight: 400;
    letter-spacing: 0.04em;
}

.consult-box__content p {
    margin: 0;

    color: #6f6961;

    font-size: 13px;
    line-height: 2;
}


/* =========================================================
   CONSULT RESERVATION
========================================================= */

.consult-box__reservation {
    position: relative;

    width: 100%;

    padding: 18px;

    background: #ffffff;

    border: 1px solid #ded6c8;
}




/* =========================================================
   CONSULT IFRAME
========================================================= */

.consult-box__reservation iframe {
    display: block;

    width: 100%;
    height: 210px;

    border: 0;

    background: #ffffff;
}


/* =========================================================
   CONSULT RESPONSIVE
========================================================= */

@media (max-width: 767px) {

    .consult-box {
        grid-template-columns: 1fr;

        gap: 35px;
    }


    /* =====================================================
       CONTENT
    ===================================================== */

    .consult-box__content {
        padding-left: 20px;
    }

    .consult-box__content h2 {
        margin-top: 10px;

        font-size: 27px;
        line-height: 1.65;
    }

    .consult-box__content p {
        font-size: 12px;
        line-height: 1.9;
    }


    /* =====================================================
       RESERVATION
    ===================================================== */

    .consult-box__reservation {
        width: 100%;

        padding: 12px;
    }


    .consult-box__reservation iframe {
        width: 100%;
        height: 210px;
    }

}


/* =========================================================
   TABLET
   901px - 1100px
========================================================= */

@media (max-width: 1100px) {

    /* =====================================================
       HOME DOCTOR
    ===================================================== */

    .home-doctor__panel {
        grid-template-columns: 45% 55%;
    }

    .home-doctor__content {
        padding:
            60px
            45px
            55px
            75px;
    }

    .home-doctor__achievement {
        right: -45px;

        width: 145px;
        min-height: 145px;
    }

    .home-doctor__bg-name {
        font-size: 58px;
    }

}


/* =========================================================
   SMARTPHONE
   900px以下
========================================================= */

@media (max-width: 900px) {

    /* =====================================================
       HOME DOCTOR
    ===================================================== */

    .home-doctor {
        padding: 60px 0 65px;
    }

    .home-doctor__heading {
        margin-bottom: 35px;
    }

    .home-doctor__panel {
        display: block;
    }


    /* =====================================================
       HOME DOCTOR VISUAL
    ===================================================== */

    .home-doctor__visual {
        padding: 65px 0 45px;
    }

    .home-doctor__bg-name {
        top: 28px;
        left: 20px;

        font-size: 58px;
    }

    .home-doctor__decor-line {
        top: -30px;
        left: 35px;

        height: 110px;
    }


    /* =====================================================
       HOME DOCTOR PHOTO
    ===================================================== */

    .home-doctor__photo {
        width: calc(100% + 15px);

        margin-left: -15px;
    }

    .home-doctor__photo img {
        width: 100%;
        height: auto;
    }


    /* =====================================================
       HOME DOCTOR NAME
    ===================================================== */

    .home-doctor__visual-name {
        margin-top: 30px;

        padding: 0 25px;
    }

    .home-doctor__visual-name h3 {
        font-size: 27px;
    }


    /* =====================================================
       HOME DOCTOR ACHIEVEMENT
    ===================================================== */

    .home-doctor__achievement {
        top: auto;
        right: -5px;
        bottom: 105px;

        width: 140px;
        min-height: 140px;

        padding: 18px;

        transform: none;
    }

    .home-doctor__achievement strong {
        font-size: 34px;
    }


    /* =====================================================
       HOME DOCTOR CONTENT
    ===================================================== */

    .home-doctor__content {
        padding: 60px 25px 45px;
    }

    .home-doctor__message h2 {
        font-size: 27px;
    }

    .home-doctor__lead {
        margin-top: 28px;
    }

    .home-doctor__lead p {
        font-size: 17px;
    }

    .home-doctor__message-text {
        font-size: 16px;
    }

    .home-doctor__profile p {
        font-size: 13px;
    }

}


/* =========================================================
   SMARTPHONE
   767px以下
========================================================= */

@media (max-width: 767px) {

    /* =====================================================
       MONITOR
    ===================================================== */

    .monitor-row {
        grid-template-columns: repeat(4, 1fr);
    }


    /* =====================================================
       RESULTS
    ===================================================== */

    .result-grid {
        grid-template-columns: 1fr;
    }


    /* =====================================================
       REASONS
    ===================================================== */

    .reason-grid {
        grid-template-columns: 1fr;
    }


    /* =====================================================
       TREATMENT
    ===================================================== */

    .treatment-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .treatment-grid > a {
        min-height: 180px;

        padding:
            28px
            25px
            26px;
    }


    .treatment-grid__en {
        font-size: 9px;
        letter-spacing: .14em;
    }


    .treatment-grid__ja {
        font-size: 20px;
    }


    /* 左上 */

    .treatment-grid__en::before {
        top: -120px;
        left: -10px;

        width: 35px;
        height: 35px;
    }


    /* 右下 */

    .treatment-grid__ja::after {
        right: -10px;
        bottom: -12px;

        width: 35px;
        height: 35px;
    }


    .treatment-grid > a:hover {
        transform: none;
    }


    /* =====================================================
       CLINIC
    ===================================================== */

    .clinic-gallery {
        grid-template-columns: repeat(2, 1fr);
    }


}


/* =========================================================
   SMALL SMARTPHONE
   600px以下
========================================================= */

@media (max-width: 600px) {

    /* =====================================================
       HOME DOCTOR
    ===================================================== */

    .home-doctor {
        padding: 50px 0 10px;
    }


    /* =====================================================
       HOME DOCTOR HEADING
    ===================================================== */

    .home-doctor__heading {
        gap: 15px;
    }

    .home-doctor__heading::after {
        width: 45px;
    }

    .home-doctor__heading-sub {
        font-size: 8px;
    }


    /* =====================================================
       HOME DOCTOR VISUAL
    ===================================================== */

    .home-doctor__visual {
        padding: 55px 0 40px;
    }

    .home-doctor__bg-name {
        top: 22px;
        left: 15px;

        font-size: 45px;
    }

    .home-doctor__decor-line {
        left: 28px;
    }


    /* =====================================================
       HOME DOCTOR PHOTO
    ===================================================== */

    .home-doctor__photo {
        width: calc(100% + 10px);

        margin-left: -10px;
    }

    .home-doctor__photo img {
        width: 100%;
        height: auto;
    }


    /* =====================================================
       HOME DOCTOR NAME
    ===================================================== */

    .home-doctor__visual-name {
        margin-top: 25px;

        padding: 0 20px;
    }

    .home-doctor__visual-position {
        margin-bottom: 15px;

        font-size: 10px;
        line-height: 1.8;
    }

    .home-doctor__visual-name h3 {
        font-size: 25px;
    }

    .home-doctor__visual-name-en {
        margin-top: 10px;

        font-size: 9px;
    }


    /* =====================================================
       HOME DOCTOR ACHIEVEMENT
    ===================================================== */

    .home-doctor__achievement {
        right: -5px;
        bottom: 105px;

        width: 125px;
        min-height: 125px;

        padding: 15px;
    }

    .home-doctor__achievement strong {
        font-size: 29px;
    }

    .home-doctor__achievement strong small {
        font-size: 17px;
    }

    .home-doctor__achievement p {
        margin-top: 9px;

        font-size: 9px;
    }


    /* =====================================================
       HOME DOCTOR CONTENT
    ===================================================== */

    .home-doctor__content {
        padding: 50px 20px 35px;
    }

    .home-doctor__message {
        padding-bottom: 35px;
    }

    .home-doctor__message-label {
        margin-bottom: 16px;
    }

    .home-doctor__message h2 {
        font-size: 20px;
        line-height: 1.7;
    }

    .home-doctor__lead {
        margin-top: 28px;
        padding-left: 18px;
    }

    .home-doctor__lead p {
        font-size: 16px;
        line-height: 1.9;
    }

    .home-doctor__message-text {
        font-size: 16px;
        line-height: 2;
    }


    /* =====================================================
       HOME DOCTOR PROFILE
    ===================================================== */

    .home-doctor__profile {
        padding-top: 30px;
    }

    .home-doctor__profile p {
        font-size: 13px;
        line-height: 2;
    }


    /* =====================================================
       HOME DOCTOR BUTTON
    ===================================================== */

    .home-doctor__button {
        margin-top: 20px;
    }

    .home-doctor__more {
        min-height: 85px;

        padding:
            18px
            65px
            18px
            20px;
    }

    .home-doctor__more strong {
        font-size: 13px;
    }

    .home-doctor__more i {
        right: 18px;

        width: 35px;
        height: 35px;
    }


    /* =====================================================
       PC ONLY
    ===================================================== */

    .pc-only {
        display: none;
    }

}


/* =========================================================
   ALL-ON-4 MONITOR PATIENTS
========================================================= */

.home-monitor {
    position: relative;

    padding: 85px 0 95px;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #f7f5f1 100%
        );
}


/* =========================================================
   MONITOR HEADING
========================================================= */

.home-monitor__head {
    position: relative;

    max-width: 720px;

    margin: 0 auto 55px;

    text-align: center;
}

.home-monitor__head::before {
    content: "";

    display: block;

    width: 1px;
    height: 55px;

    margin: 0 auto 25px;

    background: #b39459;
}

.home-monitor__en {
    display: block;

    margin-bottom: 17px;

    color: #a28756;

    font-family:
        "Times New Roman",
        serif;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.28em;
}

.home-monitor__head h2 {
    margin: 0;

    color: #292722;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 34px;
    line-height: 1.65;
    font-weight: 400;
    letter-spacing: 0.06em;
}

.home-monitor__head p {
    margin: 22px 0 0;

    color: #000;

    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.04em;
}


/* =========================================================
   MONITOR VISUAL
========================================================= */

.home-monitor__visual {
    position: relative;

    max-width: 1080px;

    margin: 0 auto;
}

.home-monitor__visual::before {
    content: "";

    position: absolute;
    z-index: 3;

    top: -18px;
    left: -18px;

    width: 95px;
    height: 95px;

    border-top: 1px solid #b39459;
    border-left: 1px solid #b39459;

    pointer-events: none;
}

.home-monitor__visual::after {
    content: "";

    position: absolute;
    z-index: 3;

    right: -18px;
    bottom: -18px;

    width: 95px;
    height: 95px;

    border-right: 1px solid #b39459;
    border-bottom: 1px solid #b39459;

    pointer-events: none;
}


/* =========================================================
   MONITOR BACKGROUND TEXT
========================================================= */

.home-monitor__number {
    position: absolute;
    z-index: 1;

    top: -53px;
    right: -5px;

    color: rgba(154, 128, 79, 0.08);

    font-family:
        "Times New Roman",
        serif;

    font-size: 82px;
    line-height: 1;
    letter-spacing: 0.06em;

    pointer-events: none;
}


/* =========================================================
   MONITOR IMAGE
========================================================= */

.home-monitor__image {
    position: relative;
    z-index: 2;

    width: 100%;

    overflow: hidden;

    background: #ebe7e0;
}

.home-monitor__image::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0) 65%,
            rgba(32, 28, 22, 0.08) 100%
        );

    pointer-events: none;
}

.home-monitor__image img {
    display: block;

    width: 100%;
    height: auto;
}


/* =========================================================
   MONITOR ACTION
========================================================= */

.home-monitor__action {
    position: relative;
    z-index: 5;

    width: min(520px, calc(100% - 60px));

    margin: -1px auto 0;
}


/* =========================================================
   MONITOR BUTTON
========================================================= */

.home-monitor__button {
    position: relative;

    min-height: 105px;

    padding: 23px 85px 23px 35px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    background: #292722;
    color: #ffffff;

    transition:
        background 0.35s ease,
        transform 0.35s ease;
}

.home-monitor__button::before {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 3px;

    background: #b39459;

    transition: width 0.35s ease;
}

.home-monitor__button:hover {
    background: #1e1d1a;

    transform: translateY(-3px);
}

.home-monitor__button:hover::before {
    width: 6px;
}


/* =========================================================
   MONITOR BUTTON ENGLISH
========================================================= */

.home-monitor__button-en {
    display: block;

    margin-bottom: 9px;

    color: #c4aa79;

    font-family:
        "Times New Roman",
        serif;

    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.24em;
}


/* =========================================================
   MONITOR BUTTON JAPANESE
========================================================= */

.home-monitor__button strong {
    display: block;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 17px;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: 0.08em;
}


/* =========================================================
   MONITOR BUTTON ARROW
========================================================= */

.home-monitor__button-arrow {
    position: absolute;

    top: 50%;
    right: 30px;

    width: 44px;
    height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(196, 170, 121, 0.7);
    border-radius: 50%;

    color: #c4aa79;

    font-family:
        Arial,
        sans-serif;

    font-size: 17px;
    line-height: 1;

    transform: translateY(-50%);

    transition:
        background 0.35s ease,
        color 0.35s ease,
        transform 0.35s ease;
}

.home-monitor__button:hover
.home-monitor__button-arrow {
    background: #b39459;
    color: #ffffff;

    transform:
        translateY(-50%)
        translateX(4px);
}


/* =========================================================
   MONITOR RESPONSIVE
========================================================= */

@media (max-width: 767px) {

    .home-monitor {
        padding: 55px 0 65px;
    }


    /* =====================================================
       HEADING
    ===================================================== */

    .home-monitor__head {
        margin-bottom: 40px;
    }

    .home-monitor__head::before {
        height: 38px;

        margin-bottom: 20px;
    }

    .home-monitor__en {
        margin-bottom: 14px;

        font-size: 8px;
    }

    .home-monitor__head h2 {
        font-size: 25px;
        line-height: 1.7;
    }

    .home-monitor__head p {
        margin-top: 17px;

        font-size: 14px;
        line-height: 1.9;
    }


    /* =====================================================
       VISUAL
    ===================================================== */

    .home-monitor__visual::before {
        top: -10px;
        left: -10px;

        width: 55px;
        height: 55px;
    }

    .home-monitor__visual::after {
        right: -10px;
        bottom: -10px;

        width: 55px;
        height: 55px;
    }

    .home-monitor__number {
        top: -30px;

        font-size: 44px;
    }


    /* =====================================================
       BUTTON
    ===================================================== */

    .home-monitor__action {
        width: calc(100% - 30px);
    }

    .home-monitor__button {
        min-height: 90px;

        padding:
            19px
            70px
            19px
            25px;
    }

    .home-monitor__button strong {
        font-size: 15px;
    }

    .home-monitor__button-arrow {
        right: 20px;

        width: 38px;
        height: 38px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .treatment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .treatment-grid > a {
        min-height: 170px;
        padding: 30px;
    }

    .treatment-grid > a::after {
        left: 30px;
        bottom: 24px;
    }

    .treatment-grid__ja {
        font-size: 21px;
    }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .treatment-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .treatment-grid > a {
        height: 125px;
        padding: 20px 23px;
    }

    .treatment-grid__corner {
        width: 27px;
        height: 27px;
    }

    .treatment-grid > a::before {
        /*background:
            linear-gradient(
                90deg,
                rgba(249, 243, 231, .97) 0%,
                rgba(249, 243, 231, .88) 52%,
                rgba(249, 243, 231, .30) 100%
            );*/
    }

    .treatment-grid__corner--tl {
        top: 8px;
        left: 8px;
    }

    .treatment-grid__corner--br {
        right: 8px;
        bottom: 8px;
    }

    .treatment-grid__en {
        font-size: 8px;
    }

    .treatment-grid__ja {
        font-size: 18px;
    }

    .treatment-grid > a:hover {
        transform: none;
    }

    .treatment-grid > a::after {
        left: 25px;
        bottom: 22px;

        width: 30px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

    .treatment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

}

/* 幅の狭いスマホ（360px以下）では、ひとまとまりの言葉が途中で折り返さないよう少し小さく */
@media (max-width: 360px) {

    .home-reason__content p,
    .home-doctor__message-text {
        font-size: 15px;
    }
}


/* 無料相談の説明文：2行目が1行に収まる幅のときだけ「、」の後で改行する */
.consult-box__br {
    display: none;
}

@media (min-width: 1240px) {

    .consult-box__br {
        display: inline;
    }
}


/* =========================================================
   HOME DOCTOR 経歴（年は太字）
========================================================= */

.home-doctor__history {
    margin: 0;
}

.home-doctor__history > div {
    display: grid;
    grid-template-columns: 5em minmax(0, 1fr);
    gap: 16px;
    padding: 12px 0;
    border-top: 1px solid #e3dccf;
}

.home-doctor__history > div:last-child {
    border-bottom: 1px solid #e3dccf;
}

.home-doctor__history dt {
    color: #000;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.8;
}

.home-doctor__history dd {
    margin: 0;
    color: #000;
    font-size: 15px;
    line-height: 1.8;
}

@media (max-width: 767px) {

    .home-doctor__history > div {
        grid-template-columns: 4em minmax(0, 1fr);
        gap: 12px;
    }

    .home-doctor__history dt,
    .home-doctor__history dd {
        font-size: 14px;
    }
}

/* 2行目が1行に収まる幅（1200px以上）のときだけ改行する */
.br-wide {
    display: none;
}

@media (min-width: 1200px) {

    .br-wide {
        display: inline;
    }
}

/* 「ォ」「ッ」などの小さい文字が行頭に来ないようにする */
.home-reason__content p {
    line-break: strict;
}


/* =========================================================
   CLINIC INFO RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .clinic-info__inner {
        grid-template-columns: 1fr 1fr;
        row-gap: 50px;
    }

    .clinic-info__inner > div {
        padding: 0 40px;
    }

    .clinic-info__inner > div:nth-child(1) {
        padding-left: 0;
    }

    .clinic-info__inner > div:nth-child(2) {
        padding-right: 0;
    }

    .clinic-info__inner > div:nth-child(3) {
        grid-column: 1 / -1;

        padding: 50px 0 0;

        border-left: 0;
        border-top: 1px solid rgba(201, 176, 122, 0.28);

        display: grid;
        grid-template-columns: minmax(0, 1fr) 240px;
        grid-template-areas:
            "label ."
            "table links"
            "note  links";
        column-gap: 48px;
    }

    .clinic-info__inner > div:nth-child(3) .clinic-info__label {
        grid-area: label;
    }

    .clinic-info__inner > div:nth-child(3) .clinic-info__hours {
        grid-area: table;
    }

    .clinic-info__inner > div:nth-child(3) .clinic-info__note {
        grid-area: note;
    }

    .clinic-info__inner > div:nth-child(3) .clinic-info__links {
        grid-area: links;
        grid-template-columns: 1fr;
        align-content: center;

        margin-top: 0;
    }

}

@media (max-width: 767px) {

    .clinic-info {
        padding: 56px 0 64px;
    }

    .clinic-info::before {
        bottom: -18px;

        font-size: 96px;
    }

    .clinic-info__inner {
        grid-template-columns: 1fr;
        row-gap: 0;
    }

    .clinic-info__inner > div,
    .clinic-info__inner > div:nth-child(n) {
        padding: 36px 0 0;
        margin-top: 36px;

        border-left: 0;
        border-top: 1px solid rgba(201, 176, 122, 0.28);
    }

    .clinic-info__inner > div:first-child {
        padding-top: 0;
        margin-top: 0;

        border-top: 0;
    }

    .clinic-info__inner > div:nth-child(3) {
        display: block;
    }

    .clinic-info__inner > div:nth-child(3) .clinic-info__links {
        margin-top: 28px;
    }

    .clinic-info__logo {
        width: 200px;

        margin-bottom: 24px;
    }

    .clinic-info__address {
        margin-bottom: 26px;
    }

    .clinic-info__tel strong {
        font-size: 30px;
    }

    .clinic-info__links {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 360px) {

    .clinic-info__station small {
        margin-left: 6px;
    }

    .clinic-info__hours tbody th {
        font-size: 14px;
    }

}
