@charset "utf-8";

/* =====================================================
   TOP：Information
===================================================== */

.top-information {
    background: #FBFDFD;
    padding: 72px 20px 70px;
    box-sizing: border-box;
}

.top-information * {
    box-sizing: border-box;
}

.top-information__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 90px minmax(360px, 520px) minmax(420px, 1fr);
    align-items: center;
    gap: 34px;
}

.top-information__heading {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
}

.top-information__heading h2 {
    margin: 0;
    color: #5AB7AA;
    text-align: center;
    font-family: "Zen Old Mincho", serif;
    font-size: 48px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 3.36px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    background: linear-gradient(90deg, #5AB7AA 0%, #C6E6E2 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.top-information__image {
    line-height: 0;
}

.top-information__image img {
    display: block;
    width: 100%;
    height: auto;
}

.top-information__list {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.top-information__item {
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: center;
    gap: 14px;
    padding-bottom: 13px;
    border-bottom: 1px solid rgba(90, 183, 170, 0.32);
}

.top-information__icon {
    width: 42px;
    line-height: 0;
}

.top-information__icon img {
    display: block;
    width: 100%;
    height: auto;
}

.top-information__item p {
    margin: 0;
    color: #0E201E;
    text-align: left;
    font-family: "Zen Old Mincho", serif;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.04em;
}

.top-information__accent {
    color: #5AB7AA;
    font-family: "Zen Old Mincho", serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.top-information__num {
    color: #0E201E;
    font-family: "Zen Old Mincho", serif;
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

/* =====================================================
   TOP：Information PC 2つ目だけアイコンごと右へ移動
   ※ !important 不使用
===================================================== */

@media screen and (min-width: 1025px) {
    .top-information__item--parking {
        transform: translateX(28px);
    }
}


/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-information {
        padding: 64px 28px 66px;
    }

    .top-information__inner {
        max-width: 820px;
        grid-template-columns: 72px 1fr;
        grid-template-areas:
            "heading image"
            "list list";
        gap: 30px 28px;
    }

    .top-information__heading {
        grid-area: heading;
    }

    .top-information__heading h2 {
        font-size: 42px;
        letter-spacing: 2.94px;
    }

    .top-information__image {
        grid-area: image;
        max-width: 560px;
    }

    .top-information__list {
        grid-area: list;
        width: 100%;
        max-width: 620px;
        margin: 0 auto;
        gap: 18px;
    }

    .top-information__item {
        grid-template-columns: 38px 1fr;
        gap: 12px;
        padding-bottom: 12px;
    }

    .top-information__icon {
        width: 38px;
    }

    .top-information__item p {
        font-size: 22px;
    }

    .top-information__accent {
        font-size: 29px;
    }

    .top-information__num {
        font-size: 36px;
    }
}

/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-information {
        padding: 52px 20px 48px;
    }

    .top-information__inner {
        display: block;
        max-width: 390px;
        margin: 0 auto;
    }

    .top-information__heading {
        display: block;
        margin-bottom: 14px;
    }

    .top-information__heading h2 {
        text-align: left;
        font-family: "Zen Old Mincho", serif;
        font-size: 32px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 2.24px;
        writing-mode: horizontal-tb;
        background: linear-gradient(90deg, #5AB7AA 0%, #C6E6E2 100%);
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    .top-information__image {
        width: 100%;
        margin-bottom: 26px;
    }

    .top-information__list {
        width: calc(100% - 30px);
        margin: 0 0 0 30px;
        gap: 14px;
    }

    .top-information__item {
        grid-template-columns: 24px 1fr;
        gap: 8px;
        padding-bottom: 8px;
        border-bottom: 1px solid rgba(90, 183, 170, 0.32);
    }

    .top-information__icon {
        width: 24px;
    }

    .top-information__item p {
        color: #0E201E;
        text-align: left;
        font-family: "Zen Old Mincho", serif;
        font-size: 13px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 0.03em;
        white-space: nowrap;
    }

    .top-information__accent {
        color: #5AB7AA;
        font-family: "Zen Old Mincho", serif;
        font-size: 20px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
    }

    .top-information__num {
        color: #0E201E;
        font-family: "Zen Old Mincho", serif;
        font-size: 20px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
    }
}


@media screen and (min-width: 1025px) {
    .top-information {
        padding: 38px 20px 34px;
    }

    .top-information__inner {
        max-width: 1120px;
        grid-template-columns: 82px 520px 1fr;
        gap: 28px;
        align-items: center;
    }

    .top-information__heading {
        justify-content: flex-start;
    }

    .top-information__heading h2 {
        font-size: 48px;
        letter-spacing: 3.36px;
        background: linear-gradient(180deg, #5AB7AA 0%, #C6E6E2 100%);
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    .top-information__image {
        width: 520px;
    }

    .top-information__list {
        gap: 20px;
        padding-top: 6px;
    }

    .top-information__item {
        grid-template-columns: 44px 1fr;
        gap: 14px;
        padding-bottom: 14px;
    }

    .top-information__icon {
        width: 44px;
    }

    .top-information__item p {
        font-size: 24px;
        letter-spacing: 0.02em;
    }

    .top-information__accent {
        font-size: 32px;
    }

    .top-information__num {
        font-size: 40px;
    }
}

/* =====================================================
   TOP：大切にしていること
   PC / Tablet / SP 整理版
   ※ !important 不使用
===================================================== */

/* ------------------------------
   PC：1025px〜
------------------------------ */

.top-important {
    background: #FBFDFD;
    padding: 60px 0;
    box-sizing: border-box;
}

.top-important * {
    box-sizing: border-box;
}

.top-important__heading {
    padding: 0 20px;
    margin-bottom: 44px;
    text-align: center;
}

.top-important__title {
    display: inline;
    margin: 0;
    color: #0E201E;
    text-align: center;
    font-family: "Zen Old Mincho", serif;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-decoration: none;
    background:
        linear-gradient(to bottom,
            transparent 52%,
            rgba(127, 137, 199, 0.30) 52%,
            rgba(127, 137, 199, 0.30) 86%,
            transparent 86%);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

.top-important__title-main,
.top-important__title-small,
.top-important__title-accent {
    text-decoration: none;
}

.top-important__title-main {
    color: #0E201E;
    font-size: 36px;
    letter-spacing: 2.52px;
}

.top-important__title-small {
    color: #0E201E;
    font-size: 32px;
    letter-spacing: 2.24px;
}

.top-important__title-accent {
    color: #7F89C7;
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 2.8px;
}

.top-important__sp-break {
    display: none;
}

.top-important__body {
    position: relative;
    width: 100%;
    min-height: clamp(500px, 34vw, 640px);
    overflow: hidden;
    background: #FBFDFD;
}

/* 背景画像専用レイヤー：左右余白を出さず、横幅に合わせる */
.top-important__body::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(0deg, rgba(255, 255, 255, 0.20) 0%, rgba(255, 255, 255, 0.20) 100%),
        url("../images/top-important-back-pc.png") top center / 100% auto no-repeat;
    pointer-events: none;
}

.top-important__cards-bg::before,
.top-important__band {
    display: none;
    content: none;
}

/* カード周辺だけに薄い白背景 */
.top-important__cards-bg {
    position: relative;
    z-index: 1;
    width: calc(100% - 40px);
    max-width: 850px;
    margin: 0 auto;
    padding: 40px 20px 48px;
    background: rgba(251, 253, 253, 0.60);
}

.top-important__cards {
    width: 100%;
    max-width: 790px;
    margin: 0 auto;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 40px;
    background: transparent;
}

.top-important__card {
    display: flex;
    max-width: 358px;
    width: 100%;
    padding: 20px;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    border-radius: 20px;
    background: #FBFDFD;
    box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.10);
}

.top-important__card-title {
    margin: 0;
    color: #0E201E;
    text-align: center;
    font-family: "Zen Old Mincho", serif;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: 1.68px;
}

.top-important__card-title span {
    color: #7F89C7;
    font-family: "Zen Old Mincho", serif;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 1.68px;
}

.top-important__card-img {
    width: 100%;
    max-width: 263px;
    line-height: 0;
}

.top-important__card-img img {
    display: block;
    width: 100%;
    height: auto;
}

.top-important__card-text {
    margin: 0;
    padding: 0 10px;
    color: #0E201E;
    font-family: "Zen Old Mincho", serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 1.12px;
    text-align: left;
}


/* ------------------------------
   Tablet：768px〜1024px
   背景画像はSP版を使用
------------------------------ */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-important {
        padding: 50px 0;
    }

    .top-important__heading {
        padding: 0 24px;
        margin-bottom: 36px;
    }

    .top-important__title {
        line-height: 1.45;
    }

    .top-important__title-main {
        font-size: 32px;
        letter-spacing: 2.24px;
    }

    .top-important__title-small {
        font-size: 28px;
        letter-spacing: 1.96px;
    }

    .top-important__title-accent {
        font-size: 36px;
        letter-spacing: 2.52px;
    }

    .top-important__body {
        min-height: auto;
        padding: 48px 24px;
        background: #FBFDFD;
    }

    .top-important__body::before {
        background:
            linear-gradient(0deg, rgba(255, 255, 255, 0.20) 0%, rgba(255, 255, 255, 0.20) 100%),
            url("../images/top-important-back-sp.png") center top / cover no-repeat;
    }

    .top-important__cards-bg {
        width: 100%;
        max-width: 760px;
        margin: 0 auto;
        padding: 36px 20px;
        background: rgba(251, 253, 253, 0.60);
    }

    .top-important__cards {
        max-width: 720px;
        display: flex;
        justify-content: center;
        align-items: stretch;
        gap: 24px;
    }

    .top-important__card {
        max-width: 338px;
        padding: 20px;
    }

    .top-important__card-img {
        max-width: 263px;
    }

    .top-important__card-text {
        font-size: 15px;
        line-height: 1.6;
        letter-spacing: 1px;
    }
}


/* ------------------------------
   SP：〜767px
------------------------------ */

@media screen and (max-width: 767px) {
    .top-important {
        padding: 40px 0;
    }

    .top-important__heading {
        padding: 0 20px;
        margin-bottom: 34px;
    }

    .top-important__title {
        line-height: 1.45;
    }

    .top-important__sp-break {
        display: block;
    }

    .top-important__title-main {
        color: #0E201E;
        text-align: center;
        font-family: "Zen Old Mincho", serif;
        font-size: 30px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 2.1px;
    }

    .top-important__title-small {
        color: #0E201E;
        font-family: "Zen Old Mincho", serif;
        font-size: 24px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 1.68px;
    }

    .top-important__title-accent {
        color: #7F89C7;
        font-family: "Zen Old Mincho", serif;
        font-size: 32px;
        font-style: normal;
        font-weight: 700;
        line-height: normal;
        letter-spacing: 2.24px;
    }

    .top-important__body {
        min-height: auto;
        padding: 40px 8px;
        background: #FBFDFD;
    }

    .top-important__body::before {
        background:
            linear-gradient(0deg, rgba(255, 255, 255, 0.20) 0%, rgba(255, 255, 255, 0.20) 100%),
            url("../images/top-important-back-sp.png") center top / cover no-repeat;
    }

    .top-important__cards-bg {
        width: 100%;
        max-width: 390px;
        margin: 0 auto;
        padding: 40px 12px;
        background: rgba(251, 253, 253, 0.60);
    }

    .top-important__cards {
        max-width: 338px;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .top-important__card {
        display: flex;
        max-width: 338px;
        width: 100%;
        padding: 20px;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        border-radius: 20px;
        background: #FBFDFD;
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.10);
    }

    .top-important__card-title {
        color: #0E201E;
        text-align: center;
        font-family: "Zen Old Mincho", serif;
        font-size: 24px;
        font-style: normal;
        font-weight: 400;
        line-height: 1.45;
        letter-spacing: 1.68px;
    }

    .top-important__card-title span {
        color: #7F89C7;
        font-family: "Zen Old Mincho", serif;
        font-size: 24px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 1.68px;
    }

    .top-important__card-img {
        max-width: 263px;
    }

    .top-important__card-text {
        font-size: 16px;
        line-height: 1.6;
        letter-spacing: 1.12px;
        padding: 0 10px;
    }
}

/* =====================================================
   TOP：選ばれる理由
===================================================== */

#top-reason {
    background: #FBFDFD;
    overflow: hidden;
    padding-bottom: 100px;
}

#top-reason * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* ------------------------------
   H2
------------------------------ */

.reason-hero {
    background: linear-gradient(180deg, #C6E6E2 0%, #E0EDEB 100%);
}

.reason-hero__inner {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 56px 20px 54px;
}

.reason-hero__title {
    margin: 0 auto;
    width: 100%;
}

.reason-hero__line {
    display: flex;
    align-items: flex-end;
    gap: 0 7px;
}

.reason-hero__line--1 {
    justify-content: flex-start;
}

.reason-hero__line--2 {
    justify-content: flex-end;
    margin-top: 22px;
}

.reason-hero__char {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: rgba(251, 253, 253, 0.88);
    box-shadow: 3px 4px 4px 0 rgba(14, 32, 30, 0.10);
    color: #0E201E;
    text-align: center;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
}

.reason-hero__char--accent {
    width: 103px;
    height: 103px;
    color: #5AB7AA;
    font-size: 64px;
    letter-spacing: 2.4px;
}

.reason-hero__char--dark {
    width: 80px;
    height: 80px;
    color: #0E201E;
    font-size: 48px;
    letter-spacing: 1.8px;
}

/* ------------------------------
   Reason List
------------------------------ */

.reason-list {
    background: #FBFDFD;
}

.reason-list__inner {
    width: 100%;
}

.reason-item {
    position: relative;
    width: 100%;
    min-height: 390px;
    overflow: hidden;
    background: #FBFDFD;
}

.reason-item__visual {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
}

.reason-item--01 .reason-item__visual {
    background-image: url("../images/top-reason-back1.png");
    background-position: center center;
}

.reason-item--02 .reason-item__visual {
    background-image: url("../images/top-reason-back2.png");
    background-position: center center;
}

.reason-item--03 .reason-item__visual {
    background-image: url("../images/top-reason-back3.png");
    background-position: center center;
}

.reason-item--04 .reason-item__visual {
    background-image: url("../images/top-reason-back4.png");
    background-position: center center;
}

.reason-item--05 .reason-item__visual {
    background-image: url("../images/top-reason-back5.png");
    background-position: center top;
}

.reason-item__content {
    position: relative;
    z-index: 3;
    width: 56.7%;
    min-height: 390px;
}

.reason-item--reverse .reason-item__content {
    margin-left: auto;
}

.reason-item__catch-pc {
    position: absolute;
    top: 38px;
    left: 0;
    z-index: 5;
    width: 100%;
    margin: 0;
    padding: 6px 16px 7px;
    text-align: center;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 1.08px;
    white-space: nowrap;
}

.reason-item:nth-child(odd) .reason-item__catch-pc {
    background: #5AB7AA;
    color: #FFF;
}

.reason-item:nth-child(even) .reason-item__catch-pc {
    background: #C6E6E2;
    color: #575757;
}

.reason-item__catch-sp {
    display: none;
}

.reason-item__panel {
    width: 100%;
    min-height: 390px;
    padding: 88px 72px 34px 86px;
    background: linear-gradient(90deg,
            rgba(251, 253, 253, 0.96) 0%,
            rgba(251, 253, 253, 0.88) 78%,
            rgba(251, 253, 253, 0.18) 100%);
}

.reason-item--reverse .reason-item__panel {
    padding: 88px 86px 34px 72px;
    background: linear-gradient(270deg,
            rgba(251, 253, 253, 0.96) 0%,
            rgba(251, 253, 253, 0.88) 78%,
            rgba(251, 253, 253, 0.18) 100%);
}

.reason-item__title {
    margin: 0;
    color: #0E201E;
    text-align: center;
    font-size: 36px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: 1.68px;
}

.reason-item__title-marker {
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: none;
    text-decoration-color: rgba(90, 183, 170, 0.37);
    text-decoration-thickness: 35%;
    text-underline-offset: -12%;
    text-underline-position: from-font;
}

.reason-item__title-num {
    font-size: 34px;
}

.reason-item__divider {
    width: 100%;
    height: 1px;
    margin: 22px 0 20px;
    background: #0E201E;
    opacity: 0.72;
}

.reason-item__detail {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 24px;
}

.reason-item__thumb {
    flex: 0 0 190px;
    max-width: 190px;
    line-height: 0;
}

.reason-item__thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.reason-item__text {
    max-width: 382px;
    margin: 0;
    color: #0E201E;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.96px;
    text-align: left;
}

.reason-item__mark {
    color: #0E201E;
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-decoration-skip-ink: auto;
    text-decoration-color: #5AB7AA;
    text-decoration-thickness: 12%;
    text-underline-offset: 10%;
}

/* ------------------------------
   Tablet：768px〜1024px
------------------------------ */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .reason-hero__inner {
        max-width: 760px;
        padding: 44px 24px 46px;
    }

    .reason-hero__line {
        gap: 0 5px;
    }

    .reason-hero__line--2 {
        margin-top: 18px;
    }

    .reason-hero__char--accent {
        width: 56px;
        height: 56px;
        font-size: 36px;
    }

    .reason-hero__char--dark {
        width: 44px;
        height: 44px;
        font-size: 28px;
    }

    .reason-item {
        min-height: 360px;
    }

    .reason-item__content {
        width: 62%;
        min-height: 360px;
    }

    .reason-item__panel,
    .reason-item--reverse .reason-item__panel {
        min-height: 360px;
        padding: 78px 34px 28px;
    }

    .reason-item__catch-pc {
        top: 32px;
        font-size: 15px;
        padding: 5px 12px 6px;
    }

    .reason-item__title {
        font-size: 23px;
        letter-spacing: 1.3px;
    }

    .reason-item__title-num {
        font-size: 29px;
    }

    .reason-item__divider {
        margin: 18px 0 16px;
    }

    .reason-item__detail {
        gap: 14px;
    }

    .reason-item__thumb {
        flex: 0 0 112px;
        max-width: 112px;
    }

    .reason-item__text {
        font-size: 14px;
        line-height: 1.65;
        letter-spacing: 0.7px;
    }
}

/* ------------------------------
   SP：〜767px
------------------------------ */

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

    #top-reason {
        padding-bottom: 40px;
    }

    .reason-hero__inner {
        padding: 20px 10px 22px;
    }

    .reason-hero__title {
        max-width: 335px;
    }

    .reason-hero__line {
        gap: 0 2px;
    }

    .reason-hero__line--1 {
        justify-content: flex-start;
    }

    .reason-hero__line--2 {
        justify-content: flex-end;
        margin-top: 12px;
    }

    .reason-hero__char {
        box-shadow: 1px 2px 3px 0 rgba(14, 32, 30, 0.10);
    }

    .reason-hero__char--accent {
        width: 29px;
        height: 29px;
        font-size: 19px;
        letter-spacing: 0.8px;
    }

    .reason-hero__char--dark {
        width: 24px;
        height: 24px;
        font-size: 14px;
        letter-spacing: 0.7px;
    }

    .reason-list {
        background: #FBFDFD;
    }

    .reason-item {
        min-height: 0;
        padding-bottom: 44px;
        background: #FBFDFD;
    }

    .reason-item__visual,
    .reason-item--reverse .reason-item__visual {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        aspect-ratio: 375 / 246;
        background-size: cover;
        background-position: center center;
    }

    .reason-item__content,
    .reason-item--reverse .reason-item__content {
        width: 100%;
        min-height: 0;
        margin-left: 0;
    }

    .reason-item__catch-pc {
        display: none;
    }

    .reason-item__catch-sp {
        position: absolute;
        left: 14px;
        bottom: 14px;
        z-index: 4;
        display: block;
        margin: 0;
    }

    .reason-item__catch-sp span {
        display: inline-block;
        width: fit-content;
        padding: 6px 12px 7px;
        font-size: 16px;
        font-style: normal;
        font-weight: 400;
        line-height: 1.45;
        letter-spacing: 0.7px;
        white-space: nowrap;
    }

    .reason-item:nth-child(odd) .reason-item__catch-sp span {
        background: #5AB7AA;
        color: #FFF;
    }

    .reason-item:nth-child(even) .reason-item__catch-sp span {
        background: #C6E6E2;
        color: #575757;
    }

    .reason-item__catch-sp span+span {
        display: block;
        margin-left: 34px;
    }

    .reason-item__panel,
    .reason-item--reverse .reason-item__panel {
        min-height: 0;
        padding: 34px 24px 0;
        background: transparent;
    }

    .reason-item__title {
        font-size: 22px;
        line-height: 1.55;
        letter-spacing: 1.1px;
    }

    .reason-item__title-num {
        font-size: 26px;
    }

    .reason-item__divider {
        width: 100%;
        max-width: 320px;
        margin: 18px auto 18px;
        background: #0E201E;
        opacity: 0.68;
    }

    .reason-item__detail {
        display: block;
        max-width: 320px;
        margin: 0 auto;
    }

    .reason-item__thumb {
        display: none;
    }

    .reason-item__text {
        max-width: none;
        font-size: 16px;
        line-height: 1.75;
        letter-spacing: 0.75px;
    }

    .reason-item__mark {
        text-decoration-color: #5AB7AA;
    }
}

/* =====================================================
   TOP：選ばれる理由 微調整
   PC：背景の高さを確保
   SP：背景画像を拡大し、被写体位置を調整
   ※ !important 不使用
===================================================== */

/* ------------------------------
   PC：1025px〜
------------------------------ */
@media screen and (min-width: 1025px) {
    .reason-item {
        min-height: 545px;
    }

    .reason-item__content {
        min-height: 545px;
    }

    .reason-item__panel {
        min-height: 400px;
        padding-top: 120px;
        padding-bottom: 42px;
        margin-top: 40px;
    }

    .reason-item--reverse .reason-item__panel {
        min-height: 400px;
        padding-top: 120px;
        padding-bottom: 42px;
        margin-top: 40px;
    }

    .reason-item__catch-pc {
        top: 44px;
    }

    .reason-item__visual {
        height: 100%;
    }
}

/* ------------------------------
   SP：〜767px
   背景画像を少し拡大して、被写体を中央寄せ
------------------------------ */
@media screen and (max-width: 767px) {

    .reason-item__visual,
    .reason-item--reverse .reason-item__visual {
        aspect-ratio: 375 / 246;
        background-size: auto 116%;
        background-repeat: no-repeat;
    }

    /* 1：駅・女性 */
    .reason-item--01 .reason-item__visual {
        background-position: 88% center;
    }

    /* 2：治療風景 */
    .reason-item--02 .reason-item__visual {
        background-position: 13% center;
    }

    /* 3：通勤イメージ */
    .reason-item--03 .reason-item__visual {
        background-position: 90% center;
    }

    /* 4：個別診療室・キッズスペース */
    .reason-item--04 .reason-item__visual {
        background-position: 10% center;
    }

    /* 5：美容・エイジングケア */
    .reason-item--05 .reason-item__visual {
        background-position: 95% top;
    }
}

/* =====================================================
   TOP：ピックアップ診療
===================================================== */

#top-pickup {
    background: #FBFDFD;
    overflow: hidden;
}

#top-pickup * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.pickup-card {
    position: relative;
    overflow: hidden;
    padding: 70px 20px;
    background: var(--pickup-bg);
}


/* CSSで作っていた古いドットは使わない */
.pickup-card::before {
    content: none;
}

/* 三角装飾 */
.pickup-card::after {
    content: "";
    position: absolute;
    z-index: 0;
    width: 360px;
    height: 360px;
    background: var(--pickup-triangle);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
    pointer-events: none;
}

/* 左画像ブロック：三角は右下 */
.pickup-card--image-left::after {
    right: 0;
    bottom: 0;
}

/* 右画像ブロック：三角は左下 */
.pickup-card--image-right::after {
    left: 0;
    bottom: 0;
    transform: scaleX(-1);
}

/* 色設定 */
.pickup-card--ceramic {
    --pickup-bg: #D1E5F0;
    --pickup-accent: #5C96B7;
    --pickup-arrow: #3F6C86;
    --pickup-border: #96BDD3;
    --pickup-triangle: #96BDD3;
}

.pickup-card--whitening {
    --pickup-bg: #F9FFFE;
    --pickup-accent: #5AB7AA;
    --pickup-arrow: #3A746C;
    --pickup-border: #5AB7AA;
    --pickup-triangle: #DFF2F0;
}

.pickup-card--aging {
    --pickup-bg: #D8DCF2;
    --pickup-accent: #7F89C7;
    --pickup-arrow: #555C86;
    --pickup-border: #ABB2DC;
    --pickup-triangle: #ABB2DC;
}

.pickup-card--implant {
    --pickup-bg: #C6E6E2;
    --pickup-accent: #5AB7AA;
    --pickup-arrow: #3A746C;
    --pickup-border: #5AB7AA;
    --pickup-triangle: #90CEC6;
}

.pickup-card__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1180px;
    min-height: 430px;
    margin: 0 auto;
}

/* 白いボックス */
.pickup-card__content {
    position: relative;
    z-index: 3;
    width: 820px;
    min-height: 350px;
    padding: 48px 70px 42px;
    background: #FBFDFD;
}

.pickup-card--image-left .pickup-card__content {
    margin-left: auto;
    padding-left: 78px;
}

.pickup-card--image-right .pickup-card__content {
    margin-right: auto;
    padding-right: 78px;
}

/* メイン画像 */
.pickup-card__image {
    position: absolute;
    z-index: 4;
    top: -44px;
    width: 400px;
    max-width: 400px;
    line-height: 0;
    overflow: visible;
}

.pickup-card--image-left .pickup-card__image {
    left: 0;
}

.pickup-card--image-right .pickup-card__image {
    right: 0;
}

.pickup-card__image picture,
.pickup-card__image picture img {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: auto;
}

/* ドット画像 */
.pickup-card__dot-img {
    position: absolute;
    z-index: 1;
    display: block;
    width: 230px;
    height: auto;
    pointer-events: none;
}

/* PC：左画像ブロックのドット */
.pickup-card--image-left .pickup-card__dot-img {
    left: -70px;
    bottom: -90px;
}

/* PC：右画像ブロックのドット */
.pickup-card--image-right .pickup-card__dot-img {
    right: -70px;
    bottom: -90px;
}

/* 見出し */
.pickup-card__title {
    margin: 0 0 24px;
    text-align: center;
    font-weight: 600;
    line-height: normal;
}

.pickup-card__title-large {
    color: #0E201E;
    text-align: center;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.20);
    font-size: 36px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.pickup-card__title-small {
    color: #0E201E;
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.20);
}

.pickup-card__title-accent {
    color: var(--pickup-accent);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.20);
    font-size: 40px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

/* 本文 */
.pickup-card__text {
    max-width: 683px;
    margin: 0 auto 26px;
    color: #0E201E;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.8;
    text-align: left;
}

/* 価格 */
.pickup-card__price-list {
    display: flex;
    justify-content: center;
    gap: 18px;
    margin-bottom: 30px;
}

.pickup-card__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    min-width: 285px;
    padding: 10px 18px;
	border: 1px solid var(--pickup-border);
    background: #FBFDFD;
    white-space: nowrap;
}

.pickup-card__price-name {
    flex: 0 0 auto;
    color: #0E201E;
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.2px;
    white-space: nowrap;
}

.pickup-card__price-num {
    flex: 0 0 auto;
    color: var(--pickup-accent);
    font-size: 36px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.72px;
    white-space: nowrap;
}

.pickup-card__price-yen {
    flex: 0 0 auto;
    color: #0E201E;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.4px;
    white-space: nowrap;
}

/* ホワイトニング料金 */
.pickup-card__price-list--vertical .pickup-card__price {
    display: block;
    text-align: center;
}

.pickup-card__price-list--vertical .pickup-card__price-name {
    display: block;
    margin-bottom: 4px;
}

.pickup-card__price-row {
    display: block;
    white-space: nowrap;
}

/* インプラント料金：PCはカンプ通り2カラム */
.pickup-card--implant .pickup-card__price-list {
    gap: 12px;
    max-width: 460px;
    margin: 0 auto 30px;
}

.pickup-card--implant .pickup-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0 5px;
    width: calc((100% - 12px) / 2);
    min-width: 0;
    min-height: 68px;
    padding: 8px 10px;
    text-align: center;
    white-space: normal;
}

.pickup-card--implant .pickup-card__price-name {
    flex: 0 0 100%;
    display: block;
    margin: 0 0 5px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.1px;
    text-align: center;
    white-space: normal;
}

.pickup-card--implant .pickup-card__price-num {
    display: inline-block;
    font-size: 30px;
    line-height: 1;
    letter-spacing: 0.5px;
}

.pickup-card--implant .pickup-card__price-yen {
    display: inline-block;
    font-size: 14px;
    line-height: 1;
}

/* ボタン */
.pickup-card__btn-wrap {
    display: flex;
    justify-content: center;
}








/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .pickup-card {
        padding: 60px 24px;
    }

    .pickup-card::after {
        width: 260px;
        height: 260px;
    }

    .pickup-card__inner {
        max-width: 760px;
        min-height: 360px;
    }

    .pickup-card__content {
        width: calc(100% - 120px);
        min-height: 0;
        padding: 42px 44px 38px;
    }

    .pickup-card--image-left .pickup-card__content {
        margin-left: auto;
        padding-left: 100px;
    }

    .pickup-card--image-right .pickup-card__content {
        margin-right: auto;
        padding-right: 100px;
    }

    .pickup-card__image {
        top: -24px;
        width: 250px;
        max-width: 250px;
    }

    .pickup-card__dot-img {
        width: 205px;
    }

    .pickup-card--image-left .pickup-card__dot-img {
        left: -87px;
        bottom: -92px;
    }

    .pickup-card--image-right .pickup-card__dot-img {
        right: -87px;
        bottom: -92px;
    }

    .pickup-card__title-large {
        font-size: 30px;
    }

    .pickup-card__title-small {
        font-size: 20px;
    }

    .pickup-card__title-accent {
        font-size: 34px;
    }

    .pickup-card__price-list {
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }

    .pickup-card__price {
        width: 100%;
        max-width: 340px;
        min-width: 0;
    }

    .pickup-card--implant .pickup-card__price-list {
        max-width: 340px;
    }

    .pickup-card--implant .pickup-card__price {
        width: 100%;
        min-height: 64px;
    }
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .pickup-card {
        padding: 22px 10px 40px;
    }


    /* 旧ドット用の疑似要素は使わない */
    .pickup-card::before,
    .pickup-card__image::before,
    .pickup-card__image::after {
        content: none;
        display: none;
    }

    .pickup-card::after {
        width: 180px;
        height: 180px;
    }

    /* SP：奇数ブロックは三角を右下へ */
    .pickup-card:nth-child(odd)::after {
        right: -16px;
        left: auto;
        bottom: 0;
        transform: none;
    }

    /* SP：偶数ブロックは三角を左下へ */
    .pickup-card:nth-child(even)::after {
        left: -18px;
        right: auto;
        bottom: 0;
        transform: scaleX(-1);
    }

    .pickup-card__inner {
        position: relative;
        max-width: 350px;
        min-height: 0;
        margin: 0 auto;
        overflow: visible;
    }

    .pickup-card__image {
        position: static;
        top: auto;
        left: auto;
        right: auto;
        z-index: auto;
        width: 100%;
        max-width: 327px;
        margin: 0 auto -42px;
        overflow: visible;
        line-height: 0;
    }

    .pickup-card__image picture,
    .pickup-card__image picture img {
        position: relative;
        z-index: 4;
        display: block;
        width: 100%;
        height: auto;
    }

    .pickup-card__content,
    .pickup-card--image-left .pickup-card__content,
    .pickup-card--image-right .pickup-card__content {
        position: relative;
        z-index: 3;
        width: 100%;
        max-width: 350px;
        min-height: 0;
        margin: 0 auto;
        padding: 64px 16px 28px;
        background: #FBFDFD;
    }

    /* ドット画像 */
    .pickup-card__dot-img {
        position: absolute;
        z-index: 1;
        display: block;
        width: 128px;
        height: auto;
        pointer-events: none;
    }

    /* 奇数ブロック：セラミック・エイジングケア
       三角が右下なので、ドットは左下の背面へ */
    .pickup-card:nth-child(odd) .pickup-card__dot-img {
        left: -54px;
        right: auto;
        bottom: 70px;
    }

    /* 偶数ブロック：ホワイトニング・インプラント
       三角が左下なので、ドットは右下の背面へ */
    .pickup-card:nth-child(even) .pickup-card__dot-img {
        right: -54px;
        left: auto;
        bottom: 70px;
    }

    /* セラミック：少し上げて見出しに干渉しない位置へ */
    .pickup-card--ceramic .pickup-card__dot-img {
        left: -54px;
        bottom: 88px;
    }

    /* ホワイトニング：右下側 */
    .pickup-card--whitening .pickup-card__dot-img {
        right: -54px;
        bottom: 76px;
    }

    /* エイジングケア：左下側 */
    .pickup-card--aging .pickup-card__dot-img {
        left: -54px;
        bottom: 82px;
    }

    /* インプラント：右側の中段寄り */
    .pickup-card--implant .pickup-card__dot-img {
        right: -54px;
        bottom: 118px;
    }

    .pickup-card__title {
        margin-bottom: 22px;
    }

    .pickup-card__title-large {
        font-size: 20px;
    }

    .pickup-card__title-small {
        font-size: 14px;
    }

    .pickup-card__title-accent {
        font-size: 32px;
    }

    .pickup-card__text {
        margin-bottom: 22px;
        font-size: 16px;
        line-height: 1.6;
    }

    .pickup-card__price-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-bottom: 24px;
    }

    .pickup-card__price {
        display: flex;
        align-items: baseline;
        justify-content: center;
        gap: 6px;
        width: 100%;
        min-width: 0;
        padding: 10px 12px;
        white-space: nowrap;
        text-align: center;
    }

    .pickup-card__price-name {
        flex: 0 0 auto;
        font-size: 15px;
        font-weight: 400;
        white-space: nowrap;
    }

    .pickup-card__price-num {
        flex: 0 0 auto;
        font-size: 32px;
        white-space: nowrap;
    }

    .pickup-card__price-yen {
        flex: 0 0 auto;
        font-size: 15px;
        white-space: nowrap;
    }

    .pickup-card__price-list--vertical .pickup-card__price {
        display: block;
        text-align: center;
        white-space: normal;
    }

    .pickup-card__price-list--vertical .pickup-card__price-name {
        display: block;
        margin-bottom: 4px;
        white-space: normal;
    }

    .pickup-card__price-list--vertical .pickup-card__price-row {
        display: block;
        white-space: nowrap;
    }

    /* SP：インプラント料金 */
    .pickup-card--implant .pickup-card__price-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
        max-width: none;
        margin: 0 0 24px;
    }

    .pickup-card--implant .pickup-card__price {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: none;
        min-height: 0;
        padding: 14px 12px;
		border: 1px solid var(--pickup-border);
        background: #FBFDFD;
        text-align: center;
        white-space: normal;
        overflow: hidden;
    }

    .pickup-card--implant .pickup-card__price-name {
        display: block;
        width: 100%;
        margin: 0 0 6px;
        color: #0E201E;
        font-size: 14px;
        font-style: normal;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: 0;
        text-align: center;
        white-space: normal;
        word-break: keep-all;
        overflow-wrap: anywhere;
    }

    .pickup-card--implant .pickup-card__price-num {
        display: inline-block;
        color: var(--pickup-accent);
        font-size: 32px;
        font-style: normal;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.4px;
        white-space: nowrap;
        vertical-align: baseline;
    }

    .pickup-card--implant .pickup-card__price-yen {
        display: inline-block;
        color: #0E201E;
        font-size: 15px;
        font-style: normal;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
        vertical-align: baseline;
    }

    

    
}

/* =====================================================
   TOP：診療案内
   PC / Tablet / SP
   ※ !important 不使用
===================================================== */

.top-medical-information {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(0deg, rgba(255, 255, 255, 0.26) 0%, rgba(255, 255, 255, 0.26) 100%),
        url("../images/top-medical-information-back.png") lightgray 50% / cover no-repeat;
}

.top-medical-information * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

.top-medical-information__inner {
    width: 100%;
    max-width: 1280px;
    min-height: 600px;
    margin: 0 auto;
    padding: 72px 40px 84px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.top-medical-information__title {
    margin: 0 0 28px;
    color: #5C96B7;
    text-align: right;
    font-size: 48px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 3.36px;
}

.top-medical-information__list {
    width: 100%;
    max-width: 720px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px 22px;
}

.top-medical-information__item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 78px;
    padding: 12px 28px 12px 18px;
    background: rgba(255, 255, 255, 0.80);
    box-shadow: 0 4px 14px rgba(14, 32, 30, 0.12);
    color: #0E201E;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: 0.72px;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.top-medical-information__item:hover {
    opacity: 0.82;
    transform: translateY(-2px);
}

.top-medical-information__arrow {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 24px;
    height: 24px;
}

.top-medical-information__item--dental .top-medical-information__arrow {
    background: #5C96B7;
}

.top-medical-information__item--aging .top-medical-information__arrow {
    background: #7F89C7;
}

.top-medical-information__arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 8px solid #fff;
    transform: translate(-38%, -50%);
}

.top-medical-information__item--aging-start {
    grid-column: 1;
}

/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-medical-information {
        background-position: center center;
    }

    .top-medical-information__inner {
        max-width: 760px;
        min-height: 620px;
        padding: 48px 32px 60px;
        align-items: center;
    }

    .top-medical-information__title {
        margin-bottom: 26px;
        text-align: center;
        font-size: 40px;
        letter-spacing: 2.8px;
    }

    .top-medical-information__list {
        max-width: 620px;
        grid-template-columns: repeat(2, 1fr);
        gap: 14px 18px;
    }

    .top-medical-information__item {
        min-height: 62px;
        font-size: 16px;
        letter-spacing: 0.64px;
    }
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-medical-information {
        background:
            linear-gradient(0deg, rgba(255, 255, 255, 0.26) 0%, rgba(255, 255, 255, 0.26) 100%),
            url("../images/top-medical-information-back.png") lightgray 50% / cover no-repeat;
    }

    .top-medical-information__inner {
        padding: 40px 35px;
        align-items: center;
    }

    .top-medical-information__title {
        margin: 0 0 24px 155px;
        color: #5C96B7;
        text-align: center;
        font-size: 32px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 2.24px;
    }

    .top-medical-information__list {
        width: 100%;
        max-width: 306px;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px 14px;
    }

    .top-medical-information__item {
        min-height: 51px;
        padding: 8px 22px 8px 10px;
        background: rgba(255, 255, 255, 0.80);
        box-shadow: 0 3px 10px rgba(14, 32, 30, 0.10);
        font-size: 16px;
        line-height: 1.45;
        letter-spacing: 0.48px;
    }

    .top-medical-information__arrow {
        width: 20px;
        height: 20px;
    }

    .top-medical-information__arrow::before {
        border-top-width: 5px;
        border-bottom-width: 5px;
        border-left-width: 7px;
    }
}

/* =====================================================
   TOP：院内設備・感染対策
===================================================== */

.top-equipment {
    overflow: hidden;
    background: #FBFDFD;
}

.top-equipment * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.top-equipment__heading {
    position: relative;
    overflow: hidden;
    min-height: 210px;
    background: #EBF5F5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.top-equipment__heading::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: #C6E6E2;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.top-equipment__title {
    position: relative;
    z-index: 1;
    margin: 0;
    text-align: center;
    font-weight: 400;
    line-height: normal;
}

.top-equipment__title-main {
    color: #0E201E;
    text-align: center;
    font-size: 40px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.8px;
}

.top-equipment__title-small {
    color: #0E201E;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.48px;
}

.top-equipment__title-accent {
    color: #5AB7AA;
    font-size: 48px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.96px;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: none;
    text-decoration-color: rgba(255, 255, 255, 0.35);
    text-decoration-thickness: 40%;
    text-underline-offset: -15%;
    text-underline-position: from-font;
}

.top-equipment__body {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 100px 20px;
}

.top-equipment__block {
    position: relative;
}

.top-equipment__block+.top-equipment__block {
    margin-top: 104px;
}

.top-equipment__lead {
    position: relative;
    display: grid;
    grid-template-columns: 500px 500px;
    justify-content: center;
    align-items: start;
    column-gap: 60px;
}

/* 01：左テキスト / 右画像 */
.top-equipment__block--01 .top-equipment__text-area {
    grid-column: 1;
    grid-row: 1;
}

.top-equipment__block--01 .top-equipment__main-img {
    grid-column: 2;
    grid-row: 1;
}

/* 02：左画像 / 右テキスト */
.top-equipment__block--02 .top-equipment__main-img {
    grid-column: 1;
    grid-row: 1;
}

.top-equipment__block--02 .top-equipment__text-area {
    grid-column: 2;
    grid-row: 1;
}

.top-equipment__main-img {
    position: relative;
    z-index: 2;
    width: 500px;
    max-width: 500px;
}

.top-equipment__main-img img {
    display: block;
    width: 100%;
    height: auto;
}

.top-equipment__text-area {
    width: 500px;
    max-width: 500px;
}

.top-equipment__number {
    position: absolute;
    z-index: 4;
    margin: 0;
    display: flex;
    align-items: baseline;
    font-size: 104px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 2px;
    pointer-events: none;
}

.top-equipment__block--01 .top-equipment__number {
    right: -32px;
    top: -40px;
}

.top-equipment__block--02 .top-equipment__number {
    left: -20px;
    top: -34px;
}

.top-equipment__number-zero {
    color: #C6E6E2;
}

.top-equipment__number-main {
    color: #5AB7AA;
}

.top-equipment__block-title {
    margin: 0 0 30px;
    color: #5AB7AA;
    font-size: 33px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.72px;
}

.top-equipment__text {
    max-width: 500px;
    margin: 0;
    color: #000;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.32px;
}

.top-equipment__thumbs {
    position: relative;
    z-index: 3;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.top-equipment__thumbs--01 {
    gap: 64px;
    margin-top: -28px;
}

.top-equipment__thumbs--02 {
    gap: 64px;
    margin-top: -28px;
}

.top-equipment__thumb {
    width: 250px;
    line-height: 0;
}

.top-equipment__thumb img {
    display: block;
    width: 100%;
    height: auto;
}


/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-equipment__heading {
        min-height: 180px;
    }

    .top-equipment__title-main {
        font-size: 32px;
        letter-spacing: 0.64px;
    }

    .top-equipment__title-small {
        font-size: 20px;
        letter-spacing: 0.4px;
    }

    .top-equipment__title-accent {
        font-size: 40px;
        letter-spacing: 0.8px;
    }

    .top-equipment__body {
        max-width: 760px;
        padding: 78px 28px 88px;
    }

    .top-equipment__block+.top-equipment__block {
        margin-top: 86px;
    }

    .top-equipment__lead,
    .top-equipment__block--01 .top-equipment__lead,
    .top-equipment__block--02 .top-equipment__lead {
        display: block;
    }

    .top-equipment__main-img {
        width: 100%;
        max-width: 620px;
        margin: 0 auto 34px;
    }

    .top-equipment__text-area {
        width: 100%;
        max-width: 620px;
        margin: 0 auto;
    }

    .top-equipment__number {
        font-size: 88px;
    }

    .top-equipment__block--01 .top-equipment__number {
        right: 18px;
        top: -36px;
    }

    .top-equipment__block--02 .top-equipment__number {
        left: 0;
        top: -36px;
    }

    .top-equipment__block-title {
        font-size: 30px;
        letter-spacing: 0.6px;
    }

    .top-equipment__text {
        max-width: none;
    }

    .top-equipment__thumbs {
        flex-wrap: wrap;
        gap: 28px 36px;
        margin-top: 36px;
    }

    .top-equipment__thumb {
        width: 210px;
    }
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-equipment__heading {
        min-height: 167px;
        align-items: center;
    }

    .top-equipment__heading::before {
        clip-path: polygon(0 0, 100% 0, 50% 100%);
    }

    .top-equipment__title {
        display: block;
        width: 100%;
        padding: 0 20px;
    }

    .top-equipment__title-main {
        font-size: 22px;
        letter-spacing: 0.4px;
    }

    .top-equipment__title-small {
        font-size: 16px;
        letter-spacing: 0.28px;
    }

    .top-equipment__title-accent {
        display: block;
        margin-top: 8px;
        font-size: 32px;
        letter-spacing: 0.64px;
    }

    .top-equipment__body {
        width: 100%;
        max-width: 375px;
        padding: 72px 24px 76px;
    }

    .top-equipment__block+.top-equipment__block {
        margin-top: 90px;
    }

    .top-equipment__lead,
    .top-equipment__block--01 .top-equipment__lead,
    .top-equipment__block--02 .top-equipment__lead {
        display: block;
    }

    .top-equipment__main-img {
        width: 100%;
        max-width: none;
        margin: 0 auto 30px;
    }

    .top-equipment__text-area {
        width: 100%;
        max-width: none;
    }

    .top-equipment__number {
        font-size: 68px;
        letter-spacing: 1px;
    }

    .top-equipment__block--01 .top-equipment__number {
        right: 4px;
        top: -24px;
    }

    .top-equipment__block--02 .top-equipment__number {
        left: -6px;
        top: -34px;
    }

    .top-equipment__block-title {
        margin: 0 0 24px;
        color: #5AB7AA;
        font-size: 20px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 0.4px;
    }

    .top-equipment__text {
        max-width: none;
        color: #000;
        font-size: 16px;
        font-style: normal;
        font-weight: 400;
        line-height: 1.6;
        letter-spacing: 0.32px;
    }

    .top-equipment__thumbs {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 18px 16px;
        margin-top: 34px;
    }

    .top-equipment__thumb {
        width: calc((100% - 16px) / 2);
        max-width: 158px;
    }

    .top-equipment__thumb:nth-child(3) {
        margin-top: 10px;
    }

    .top-equipment__pc-break {
        display: none;
    }
}

/* =====================================================
   TOP：院長挨拶
===================================================== */

.top-greeting {
    overflow: hidden;
    background: #FBFDFD;
}

.top-greeting * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.top-greeting__heading {
    position: relative;
    background: #5AB7AA;
    min-height: 220px;
    padding: 0 20px;
    text-align: center;

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

/* 上の白線 */
.top-greeting__heading::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 0;
    right: 0;
    z-index: 1;
    height: 1px;
    background: #FFF;
    pointer-events: none;
}

/* 下の白線 */
.top-greeting__heading::after {
    content: "";
    position: absolute;
    bottom: 8px;
    left: 0;
    right: 0;
    z-index: 1;
    height: 1px;
    background: #FFF;
    pointer-events: none;
}

.top-greeting__en {
    position: relative;
    z-index: 2;
    margin: 0 0 8px;
    text-align: center;
    line-height: normal;
}

.top-greeting__title {
    position: relative;
    z-index: 2;
    margin: 0;
}

.top-greeting__en-initial {
    color: #C6E6E2;
    text-align: center;
    font-family: "Zen Old Mincho", serif;
    font-size: 64px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 12.8px;
}

.top-greeting__en-text {
    color: #FFF;
    font-size: 64px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 12.8px;
}

.top-greeting__title {
    margin: 0;
    color: #FFF;
    text-align: center;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 1.2px;
}

.top-greeting__body {
    padding: 96px 20px 104px;
}

.top-greeting__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 500px;
    align-items: center;
    column-gap: 60px;
    width: 100%;
    max-width: 1090px;
    margin: 0 auto;
}

.top-greeting__content {
    max-width: 530px;
}

.top-greeting__profile {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    margin-bottom: 48px;
}

.top-greeting__position {
    display: flex;
    height: 44px;
    margin: 0;
    padding: 0 20px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    background: #5AB7AA;
    color: #FFF;
    text-align: center;
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
}

.top-greeting__name {
    margin: 0;
    color: #0E201E;
    text-align: center;
    font-size: 40px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
}

.top-greeting__text {
    margin: 0 0 72px;
    color: #0E201E;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.8;
}

.top-greeting__btn-wrap {
    justify-content: center;
}

/* ボタン：ピックアップ診療と同じデザイン */






.top-greeting__visual {
    position: relative;
    width: 100%;
}

.top-greeting__image {
    width: 100%;
    line-height: 0;
}

.top-greeting__image img {
    display: block;
    width: 100%;
    height: auto;
}

.top-greeting__vertical {
    position: absolute;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-feature-settings: "vrt2" on;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.36em;
    z-index: 2;
}

.top-greeting__vertical--main {
    right: -24px;
    top: -40px;
    display: flex;
    width: 46px;
    padding: 10px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    background: #5AB7AA;
    color: #FFF;
    font-size: 24px;
}

.top-greeting__vertical--sub {
    right: 32px;
    top: 36px;
    display: flex;
    width: 44px;
    padding: 10px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    background: #FFF;
    color: #5AB7AA;
    font-size: 24px;
}


/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-greeting__heading {
        padding: 52px 20px 46px;
    }

    .top-greeting__en-initial,
    .top-greeting__en-text {
        font-size: 48px;
        letter-spacing: 9.6px;
    }

    .top-greeting__body {
        padding: 72px 28px 84px;
    }

    .top-greeting__inner {
        max-width: 720px;
        display: flex;
        flex-direction: column-reverse;
        gap: 54px;
    }

    .top-greeting__visual {
        max-width: 500px;
    }

    .top-greeting__content {
        width: 100%;
    }

    .top-greeting__profile {
        margin-bottom: 36px;
    }

    .top-greeting__text {
        margin-bottom: 52px;
        font-size: 18px;
        text-align: left;
    }
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-greeting__heading {
        min-height: 146px;
        padding: 0 20px;
    }

    .top-greeting__en {
        margin-bottom: 4px;
    }

    .top-greeting__en-initial {
        font-size: 32px;
        letter-spacing: 6.4px;
    }

    .top-greeting__en-text {
        font-size: 32px;
        letter-spacing: 6.4px;
    }

    .top-greeting__title {
        font-size: 24px;
        letter-spacing: 1.2px;
    }

    .top-greeting__body {
        padding: 56px 26px 66px;
    }

    .top-greeting__inner {
        display: flex;
        flex-direction: column-reverse;
        max-width: 323px;
        margin: 0 auto;
    }

    .top-greeting__visual {
        width: 100%;
        margin-bottom: 38px;
    }

    .top-greeting__vertical--main {
        right: -13px;
        top: -26px;
        width: 29px;
        padding: 8px 6px;
        font-size: 15px;
        letter-spacing: 0.4em;
    }

    .top-greeting__vertical--sub {
        right: 24px;
        top: 22px;
        width: 28px;
        padding: 8px 6px;
        font-size: 15px;
        letter-spacing: 0.4em;
    }

    .top-greeting__profile {
        gap: 42px;
        margin-bottom: 42px;
    }

    .top-greeting__position {
        height: 34px;
        padding: 0 20px;
        font-size: 20px;
    }

    .top-greeting__name {
        font-size: 24px;
    }

    .top-greeting__text {
        margin: 0 0 42px;
        color: #0E201E;
        font-size: 16px;
        font-style: normal;
        font-weight: 400;
        line-height: 1.6;
    }

    .top-greeting__text br {
        display: none;
    }

    .top-greeting__btn-wrap {
        justify-content: center;
    }

    

    
}

/* =====================================================
   TOP：初診の方へ
===================================================== */

.top-first-examination {
    overflow: hidden;
    background:
        linear-gradient(0deg, rgba(255, 255, 255, 0.70) 0%, rgba(255, 255, 255, 0.70) 100%),
        url("../images/top-first-examination-back.png") center center / cover no-repeat;
}

.top-first-examination * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.top-first-examination__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 90px 20px 100px;
}

.top-first-examination__title {
    margin: 0 0 58px;
    text-align: center;
    font-weight: 400;
    line-height: normal;
}

.top-first-examination__title-accent {
    color: #5AB7AA;
    text-align: center;
    font-size: 48px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 1.28px;
}

.top-first-examination__title-text {
    color: #000;
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.96px;
}

/* はじめてご来院 */
.top-first-examination__message {
    width: 100%;
    max-width: 980px;
    margin: 0 auto 60px;
    padding: 34px 40px 32px;
    border: 1px solid #5AB7AA;
    background: #FBFDFD;
}

.top-first-examination__message-title,
.top-first-examination__flow-title {
    margin: 0;
    color: #5AB7AA;
    text-align: center;
    font-size: 32px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.8px;
}

.top-first-examination__message-title {
    margin-bottom: 32px;
}

.top-first-examination__message-text {
    margin: 0;
    color: #000;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.4px;
}

.top-first-examination__message-text span {
    color: #5AB7AA;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.4px;
}

.top-first-examination__flow-title {
    margin-bottom: 84px;
}

/* ステップ */
.top-first-examination__steps {
    display: grid;
    grid-template-columns: repeat(3, 312px);
    justify-content: center;
    gap: 88px 78px;
}

.top-first-examination__step {
    position: relative;
}

.top-first-examination__step--04 {
    grid-column: 1;
}

.top-first-examination__step--05 {
    grid-column: 2;
}

.top-first-examination__step-card {
    position: relative;
    z-index: 2;
    height: stretch;
    padding: 32px 20px 24px;
    background: #FBFDFD;
    border: 1px solid var(--step-color);
}

.top-first-examination__step--01 {
    --step-color: #A5D3CD;
}

.top-first-examination__step--02 {
    --step-color: #86CEC3;
}

.top-first-examination__step--03 {
    --step-color: #6FC6C1;
}

.top-first-examination__step--04 {
    --step-color: #5CBBC0;
}

.top-first-examination__step--05 {
    --step-color: #4CAFC0;
}

.top-first-examination__step-number {
    position: absolute;
    left: -42px;
    top: -48px;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 86px;
    height: 86px;
    border-radius: 50%;
    background: var(--step-color);
    color: #FFF;
    text-align: center;
}

.top-first-examination__step-number span {
    margin-right: 4px;
    color: #FFF;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
}

.top-first-examination__step-number strong {
    color: #FFF;
    font-size: 44px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
}

.top-first-examination__step-title {
    margin: 0 0 14px;
    color: #000;
    text-align: center;
    font-size: 22px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.48px;
}

.top-first-examination__step-img {
    width: 100%;
    margin-bottom: 14px;
    line-height: 0;
}

.top-first-examination__step-img img {
    display: block;
    width: 100%;
    height: auto;
}

.top-first-examination__step-text {
    margin: 0;
    color: #000;
    font-family: "Zen Old Mincho", serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.4px;
}

/* PC：カード間の矢印 */
.top-first-examination__step::after {
    content: "";
    position: absolute;
    z-index: 1;
    width: 44px;
    height: 44px;
    background: rgba(90, 183, 170, 0.80);
    clip-path: polygon(0 34%,
            55% 34%,
            55% 16%,
            100% 50%,
            55% 84%,
            55% 66%,
            0 66%);
    pointer-events: none;
}

.top-first-examination__step--01::after,
.top-first-examination__step--02::after,
.top-first-examination__step--04::after {
    right: -62px;
    top: 50%;
    transform: translateY(-50%);
}

.top-first-examination__step--03::after,
.top-first-examination__step--05::after {
    content: none;
}

/* ボタン */
.top-first-examination__btn-wrap {
    display: flex;
    justify-content: center;
    margin-top: 64px;
}








/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-first-examination {
        background:
            linear-gradient(0deg, rgba(255, 255, 255, 0.70) 0%, rgba(255, 255, 255, 0.70) 100%),
            url("../images/top-first-examination-back.png") lightgray center center / cover no-repeat;
    }

    .top-first-examination__inner {
        max-width: 760px;
        padding: 72px 28px 82px;
    }

    .top-first-examination__title-accent {
        font-size: 52px;
    }

    .top-first-examination__title-text {
        font-size: 38px;
    }

    .top-first-examination__message {
        padding: 32px 28px;
    }

    .top-first-examination__steps {
        grid-template-columns: repeat(2, 300px);
        justify-content: center;
        gap: 90px 62px;
    }

    .top-first-examination__step--04 {
        grid-column: auto;
    }

    .top-first-examination__step--05 {
        grid-column: auto;
    }

    /* タブレット版では矢印を非表示 */
    .top-first-examination__step::after,
    .top-first-examination__step--01::after,
    .top-first-examination__step--02::after,
    .top-first-examination__step--03::after,
    .top-first-examination__step--04::after,
    .top-first-examination__step--05::after {
        content: none;
        display: none;
    }

    .top-first-examination__step-text {
        font-size: 16px;
    }

    .top-first-examination__message-text {
        font-size: 16px;
    }

    .top-first-examination__message-text span {
        font-size: 16px;
    }
}

/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-first-examination {
        background:
            linear-gradient(0deg, rgba(255, 255, 255, 0.70) 0%, rgba(255, 255, 255, 0.70) 100%),
            url("../images/top-first-examination-back.png") lightgray center top / cover no-repeat;
    }

    .top-first-examination__inner {
        max-width: 375px;
        padding: 34px 17px 64px;
    }

    .top-first-examination__title {
        margin: 0 0 36px;
        text-align: center;
    }

    .top-first-examination__title-accent {
        display: inline;
        font-size: 32px;
        letter-spacing: 0.64px;
    }

    .top-first-examination__title-text {
        display: inline;
        margin-top: 4px;
        font-size: 24px;
        letter-spacing: 0.48px;
    }

    .top-first-examination__message {
        max-width: 100%;
        margin: 0 auto 46px;
        padding: 22px 13px 24px;
        background: #FBFDFD;
    }

    .top-first-examination__message-title,
    .top-first-examination__flow-title {
        font-size: 24px;
        letter-spacing: 0.48px;
    }

    .top-first-examination__message-title {
        margin-bottom: 24px;
    }

    .top-first-examination__message-text {
        text-align: left;
        font-size: 16px;
        line-height: 1.6;
        letter-spacing: 0.32px;
    }

    .top-first-examination__message-text span {
        font-size: 16px;
        letter-spacing: 0.32px;
    }

    .top-first-examination__flow-title {
        margin-bottom: 62px;
    }

    .top-first-examination__steps {
        display: block;
        width: 100%;
    }

    .top-first-examination__step {
        width: 100%;
        margin-bottom: 80px;
    }

    .top-first-examination__step:last-child {
        margin-bottom: 0;
    }

    .top-first-examination__step-card {
        min-height: 0;
        padding: 28px 8px;
    }

    .top-first-examination__step-number {
        left: -10px;
        top: -38px;
        width: 70px;
        height: 70px;
    }

    .top-first-examination__step-number span {
        margin-right: 3px;
        font-size: 12px;
    }

    .top-first-examination__step-number strong {
        font-size: 36px;
    }

    .top-first-examination__step-title {
        margin-bottom: 12px;
        font-size: 20px;
        letter-spacing: 0.4px;
    }

    .top-first-examination__step-img {
        max-width: 279px;
        margin: 0 auto 12px;
    }

    .top-first-examination__step-text {
        padding: 0 4px;
        font-size: 16px;
        line-height: 1.6;
        letter-spacing: 0.32px;
    }

    .top-first-examination__step::after {
        left: 50%;
        right: auto;
        top: auto;
        bottom: -56px;
        width: 34px;
        height: 36px;
        transform: translateX(-50%) rotate(90deg);
    }

    .top-first-examination__step--05::after {
        content: none;
    }

    .top-first-examination__btn-wrap {
        display: none;
    }
}

/* =====================================================
   TOP：採用情報
===================================================== */

.top-recruit {
    overflow: hidden;
    background: #C6E6E2;
}

.top-recruit * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.top-recruit__inner {
    position: relative;
    width: 100%;
    max-width: 1220px;
    margin: 0 auto;
    padding: 72px 20px 0;
}

.top-recruit__heading {
    position: relative;
    z-index: 3;
    text-align: center;
    margin-bottom: 34px;
}

.top-recruit__en {
    margin: 0 0 8px;
    text-align: center;
    line-height: normal;
}

.top-recruit__en-accent {
    color: #5AB7AA;
    text-align: center;
    font-size: 48px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 3.36px;
}

.top-recruit__en-text {
    color: #0E201E;
    font-size: 48px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 3.36px;
}

.top-recruit__title {
    margin: 0;
    color: #FFF;
    text-align: center;
    font-family: "Zen Old Mincho", serif;
    font-size: 36px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.72px;
}

.top-recruit__panel {
    position: relative;
    min-height: 434px;
    padding: 72px 40px 54px;
    border-radius: 60px 60px 0 0;
    background: #FFF;
}

.top-recruit__illust {
    position: absolute;
    z-index: 4;
    top: -128px;
    width: 180px;
    line-height: 0;
    pointer-events: none;
}

.top-recruit__illust img {
    display: block;
    width: 100%;
    height: auto;
}

.top-recruit__illust--man {
    left: 210px;
}

.top-recruit__illust--woman {
    right: 210px;
}

.top-recruit__content {
    max-width: 875px;
    margin: 0 auto;
    text-align: center;
}

.top-recruit__lead {
    margin: 0 0 42px;
    color: #5AB7AA;
    text-align: center;
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.48px;
}

.top-recruit__text {
    margin: 0 0 42px;
    color: #000;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.32px;
}

.top-recruit__btn-wrap {
    display: flex;
    justify-content: center;
}

/* ボタン：これまでのデザインと同様 */







/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-recruit__inner {
        max-width: 760px;
        padding: 60px 28px 0;
    }

    .top-recruit__heading {
        margin-bottom: 30px;
    }

    .top-recruit__panel {
        min-height: 420px;
        padding: 70px 36px 54px;
        border-radius: 48px 48px 0 0;
    }

    .top-recruit__illust {
        top: -112px;
        width: 150px;
    }

    .top-recruit__illust--man {
        left: 70px;
    }

    .top-recruit__illust--woman {
        right: 70px;
    }

    .top-recruit__lead {
        font-size: 22px;
    }

    .top-recruit__text {
        line-height: 1.8;
        text-align: start;
    }
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-recruit {
        min-height: 800px;
    }

    .top-recruit__inner {
        max-width: 375px;
        padding: 48px 20px 0;
    }

    .top-recruit__heading {
        margin-bottom: 42px;
    }

    .top-recruit__en {
        margin-bottom: 8px;
    }

    .top-recruit__en-accent {
        font-size: 32px;
        letter-spacing: 2.24px;
    }

    .top-recruit__en-text {
        font-size: 32px;
        letter-spacing: 2.24px;
    }

    .top-recruit__title {
        font-size: 24px;
        letter-spacing: 0.48px;
    }

    .top-recruit__panel {
        min-height: 0;
        padding: 58px 20px 46px;
        border-radius: 42px 42px 0 0;
        background: #FFF;
    }

    .top-recruit__illust {
        top: -92px;
        width: 90px;
    }

    .top-recruit__illust--man {
        left: 20px;
    }

    .top-recruit__illust--woman {
        right: 20px;
    }

    .top-recruit__lead {
        margin: 0px auto 30px;
        font-size: 20px;
        letter-spacing: 0.4px;
    }

    .top-recruit__text {
        margin-bottom: 34px;
        font-size: 16px;
        line-height: 1.6;
        letter-spacing: 0.32px;
        text-align: left;
    }


    

    
}

/* =====================================================
   TOP：LINE公式アカウント
===================================================== */

.top-line {
    overflow: hidden;
    padding: 100px 20px;
    background: #FBFDFD;
}

.top-line * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.top-line__inner {
    position: relative;
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    width: 100%;
    max-width: 1100px;
    min-height: 500px;
    margin: 0 auto;
    padding: 40px 50px;
    border: 2px solid #06C755;
    border-radius: 24px;
    background:
        linear-gradient(0deg, rgba(255, 255, 255, 0.68) 0%, rgba(255, 255, 255, 0.68) 100%),
        repeating-linear-gradient(45deg,
            rgba(6, 199, 85, 0.06) 0,
            rgba(6, 199, 85, 0.06) 10px,
            transparent 10px,
            transparent 22px),
        repeating-linear-gradient(-45deg,
            rgba(6, 199, 85, 0.045) 0,
            rgba(6, 199, 85, 0.045) 10px,
            transparent 10px,
            transparent 22px),
        #EEF8F6;
}

.top-line__visual {
    width: 100%;
    max-width: 310px;
    line-height: 0;
    margin: 0 auto;
}

.top-line__visual img {
    display: block;
    width: 100%;
    height: auto;
}

.top-line__content {
    min-width: 0;
}

.top-line__logo {
    width: 450px;
    max-width: 100%;
    margin: 0 0 24px;
    line-height: 0;
}

.top-line__logo img {
    display: block;
    width: 100%;
    height: auto;
}

.top-line__heading-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 40px;
}

.top-line__mark {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}

.top-line__mark span {
    display: block;
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid #F6A034;
}

.top-line__title {
    margin: 0;
    color: #06C755;
    font-size: 28px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 1.4px;
}

.top-line__text {
    margin: 0 0 38px;
    color: #2E3E4D;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.8px;
}

/* ボタン：他ブロック共通デザイン＋LINEカラー */
.top-line__btn-wrap {
    display: flex;
    justify-content: flex-start;
}







/* 旧LINEボタン用アイコンを使っていた場合の保険 */



/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-line {
        padding: 56px 28px;
    }

    .top-line__inner {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 42px;
        max-width: 760px;
        min-height: 440px;
        padding: 54px 44px;
        border-width: 5px;
        border-radius: 22px;
    }

    .top-line__visual {
        max-width: 280px;
    }

    .top-line__logo {
        width: 330px;
        margin-bottom: 18px;
    }

    .top-line__heading-wrap {
        gap: 18px;
        margin-bottom: 28px;
    }

    .top-line__title {
        font-size: 19px;
        letter-spacing: 1.1px;
    }

    .top-line__text {
        margin-bottom: 30px;
        font-size: 15px;
        line-height: 1.9;
    }

    
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-line {
        padding: 40px 10px;
        background: #F6F7FA;
    }

    .top-line__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        width: 100%;
        max-width: 334px;
        min-height: 0;
        margin: 0 auto;
        padding: 48px 20px 34px;
        border: 2px solid #06C755;
        border-radius: 17px;
        background:
            linear-gradient(0deg, rgba(255, 255, 255, 0.64) 0%, rgba(255, 255, 255, 0.64) 100%),
            repeating-linear-gradient(45deg,
                rgba(6, 199, 85, 0.06) 0,
                rgba(6, 199, 85, 0.06) 8px,
                transparent 8px,
                transparent 18px),
            repeating-linear-gradient(-45deg,
                rgba(6, 199, 85, 0.045) 0,
                rgba(6, 199, 85, 0.045) 8px,
                transparent 8px,
                transparent 18px),
            #EEF8F6;
    }

    .top-line__visual {
        width: 100%;
        max-width: 232px;
        margin: 0 auto 42px;
    }

    .top-line__logo {
        width: 252px;
        max-width: 100%;
        margin: 0 auto 34px;
    }

    .top-line__heading-wrap {
        display: block;
        margin-bottom: 24px;
        text-align: center;
    }

    .top-line__mark {
        justify-content: center;
        gap: 5px;
        margin-bottom: 12px;
    }

    .top-line__mark span {
        border-top-width: 6px;
        border-bottom-width: 6px;
        border-left-width: 9px;
    }

    .top-line__title {
        color: #06C755;
        text-align: center;
        font-size: 17px;
        font-weight: 700;
        line-height: normal;
        letter-spacing: 0.85px;
        white-space: nowrap;
    }

    .top-line__text {
        width: 100%;
        margin: 0 0 24px;
        color: #2E3E4D;
        text-align: left;
        font-size: 16px;
        line-height: 1.6;
        letter-spacing: 0.32px;
    }

    .top-line__text br {
        display: none;
    }

    .top-line__btn-wrap {
        justify-content: center;
        width: 100%;
    }

    

    
}


/* =====================================================
   TOP：ヒアルロン酸治療専門サイト
===================================================== */

.top-esthetic-link {
    position: relative;
    overflow: hidden;
    padding: 96px 20px;
    background: linear-gradient(180deg, #EEF4F3 0%, #F7FAFA 100%);
}

.top-esthetic-link * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}


/* =====================================================
   PC：1025px〜
===================================================== */

.top-esthetic-link__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 44% 56%;
    align-items: stretch;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    overflow: hidden;
    border: 2px solid #5AB7AA;
    border-radius: 26px;
    background: #FFF;
    box-shadow: 0 18px 40px rgba(14, 32, 30, 0.08);
}

.top-esthetic-link__image {
    position: relative;
    z-index: 1;
    min-height: 430px;
    line-height: 0;
    overflow: hidden;
    background: #F7F7F7;
}

.top-esthetic-link__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-esthetic-link__content {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 430px;
    padding: 58px 64px 54px;
    flex-direction: column;
    justify-content: center;
    background: #FFF;
}


.top-esthetic-link__en {
    margin: 0 0 18px;
    line-height: 1;
}

.top-esthetic-link__en-accent {
    color: #5AB7AA;
    font-size: 56px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 3.2px;
}

.top-esthetic-link__en-text {
    color: #0E201E;
    font-size: 56px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 3.2px;
}

.top-esthetic-link__logo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    color: #5AB7AA;
    font-size: 26px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 1.04px;
}

.top-esthetic-link__logo img {
    display: block;
    width: 30px;
    height: auto;
    flex: 0 0 auto;
}

.top-esthetic-link__lead {
    margin: 0 0 22px;
    color: #5AB7AA;
    font-size: 32px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 1.28px;
}

.top-esthetic-link__text {
    max-width: 590px;
    margin: 0 0 34px;
    color: #0E201E;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0.32px;
}

.top-esthetic-link__btn-wrap {
    display: flex;
    justify-content: flex-start;
}

/* ボタン：既存共通デザインベース */






/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-esthetic-link {
        padding: 72px 28px;
    }

    .top-esthetic-link::before {
        top: 30px;
        left: -130px;
        width: 240px;
        height: 240px;
    }

    .top-esthetic-link::after {
        right: 36px;
        bottom: 48px;
        width: 120px;
        height: 120px;
    }

    .top-esthetic-link__inner {
        max-width: 760px;
        grid-template-columns: 42% 58%;
        border-radius: 24px;
    }

    .top-esthetic-link__image {
        min-height: 390px;
    }

    .top-esthetic-link__content {
        min-height: 390px;
        padding: 44px 38px 42px;
    }

    .top-esthetic-link__content::before {
        right: 18px;
        bottom: 18px;
        width: 120px;
        height: 96px;
    }

    .top-esthetic-link__en-accent,
    .top-esthetic-link__en-text {
        font-size: 44px;
        letter-spacing: 2.4px;
    }

    .top-esthetic-link__logo {
        font-size: 22px;
    }

    .top-esthetic-link__lead {
        font-size: 24px;
    }

    .top-esthetic-link__text {
        line-height: 1.8;
    }

    
}

/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-esthetic-link {
        padding: 54px 20px;
        background: linear-gradient(180deg, #EEF4F3 0%, #F8FAFA 100%);
    }

    .top-esthetic-link::before {
        top: 20px;
        left: -120px;
        width: 220px;
        height: 220px;
    }

    .top-esthetic-link::after {
        right: 18px;
        bottom: 38px;
        width: 90px;
        height: 90px;
        background-size: 12px 12px;
    }

    .top-esthetic-link__inner {
        display: block;
        max-width: 300px;
        margin: 0 auto;
        border: 2px solid #5AB7AA;
        border-radius: 18px;
        background: #FFF;
        overflow: hidden;
        box-shadow: 0 10px 24px rgba(14, 32, 30, 0.08);
    }

    .top-esthetic-link__image {
        min-height: 0;
        aspect-ratio: 300 / 202;
    }

    .top-esthetic-link__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
    }

    .top-esthetic-link__content {
        min-height: 0;
        padding: 28px 20px 34px;
        background: #FFF;
        text-align: center;
    }

    .top-esthetic-link__content::before {
        right: 8px;
        bottom: 82px;
        width: 110px;
        height: 88px;
        opacity: 0.08;
    }

    .top-esthetic-link__en {
        margin-bottom: 20px;
        text-align: left;
    }

    .top-esthetic-link__en-accent,
    .top-esthetic-link__en-text {
        font-size: 42px;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 2.1px;
    }

    .top-esthetic-link__logo {
        justify-content: center;
        gap: 9px;
        margin-bottom: 22px;
        font-size: 20px;
        line-height: 1.4;
        letter-spacing: 0.8px;
    }

    .top-esthetic-link__logo img {
        width: 30px;
    }

    .top-esthetic-link__lead {
        margin-bottom: 18px;
        font-size: 20px;
        line-height: 1.6;
        letter-spacing: 0.8px;
        text-align: center;
    }

    .top-esthetic-link__text {
        margin-bottom: 26px;
        font-size: 16px;
        line-height: 1.7;
        letter-spacing: 0.32px;
        text-align: left;
    }

    .top-esthetic-link__btn-wrap {
        justify-content: center;
    }

    

    
}

/* =====================================================
   ヒアルロン酸治療専門サイト：背景あしらい調整
===================================================== */

.top-esthetic-link {
    position: relative;
    overflow: hidden;
    padding: 96px 20px;
    background:
        radial-gradient(circle at 8% 18%, rgba(198, 230, 226, 0.62) 0 0, transparent 310px),
        radial-gradient(circle at 92% 88%, rgba(127, 137, 199, 0.18) 0 0, transparent 330px),
        linear-gradient(180deg, #EEF4F3 0%, #F7FAFA 100%);
}




/* =====================================================
   TOP：ヒアルロン酸治療専門サイト
===================================================== */

.top-esthetic-link {
    position: relative;
    overflow: hidden;
    padding: 96px 20px;
    background-color: #DFF2F0;
    background-image:
        linear-gradient(rgba(90, 183, 170, 0.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(90, 183, 170, 0.16) 1px, transparent 1px);
    background-size: 28px 28px;
}

.top-esthetic-link * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}


/* =====================================================
   PC：1025px〜
===================================================== */

.top-esthetic-link__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    overflow: hidden;
    border: 2px solid #5AB7AA;
    border-radius: 28px;
    background: #FFF;
    box-shadow: 0 18px 38px rgba(80, 112, 120, 0.10);
}

.top-esthetic-link__image {
    position: relative;
    z-index: 1;
    min-height: 540px;
    line-height: 0;
    overflow: hidden;
    background: #F7F7F7;
}

.top-esthetic-link__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-esthetic-link__content {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 540px;
    padding: 40px;
    flex-direction: column;
    justify-content: center;
    background: #FFF;
}

.top-esthetic-link__en {
    margin: 0 0 14px;
    color: #0E201E;
    font-size: 64px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 1.6px;
}

.top-esthetic-link__en-accent,
.top-esthetic-link__en-first {
    color: #5AB7AA;
}

.top-esthetic-link__en-text {
    color: #0E201E;
}

.top-esthetic-link__logo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 34px;
    color: #5AB7AA;
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.96px;
}

.top-esthetic-link__logo img,
.top-esthetic-link__logo-mark {
    display: block;
    width: 30px;
    height: auto;
    flex: 0 0 auto;
}

.top-esthetic-link__logo-text {
    color: #5AB7AA;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.4;
}

.top-esthetic-link__lead,
.top-esthetic-link__title {
    margin: 0 0 24px;
    color: #5AB7AA;
    font-size: 26px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
}

.top-esthetic-link__text {
    max-width: 590px;
    margin: 0 0 38px;
    color: #0E201E;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.02em;
}

.top-esthetic-link__btn-wrap {
    display: flex;
    justify-content: flex-start;
}

/* ボタン：既存共通デザイン */






/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .top-esthetic-link {
        padding: 72px 28px;
        background-size: 26px 26px;
    }

    .top-esthetic-link__inner {
        max-width: 760px;
        grid-template-columns: 1fr 1fr;
        border-width: 2px;
        border-radius: 24px;
    }

    .top-esthetic-link__image {
        min-height: 440px;
    }

    .top-esthetic-link__content {
        min-height: 440px;
        padding: 48px 36px 44px;
    }

    .top-esthetic-link__en {
        font-size: 52px;
        letter-spacing: 1.4px;
    }

    .top-esthetic-link__logo,
    .top-esthetic-link__logo-text {
        font-size: 20px;
    }

    .top-esthetic-link__lead,
    .top-esthetic-link__title {
        font-size: 19px;
        line-height: 1.7;
    }

    .top-esthetic-link__text {
        line-height: 1.9;
    }

    
}

/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    .top-esthetic-link {
        padding: 48px 20px;
        background-size: 22px 22px;
    }

    .top-esthetic-link__inner {
        display: block;
        max-width: 340px;
        margin: 0 auto;
        border-width: 2px;
        border-radius: 22px;
        background: #FFF;
        overflow: hidden;
        box-shadow: 0 10px 24px rgba(14, 32, 30, 0.08);
    }

    .top-esthetic-link__image {
        min-height: auto;
        line-height: 0;
    }

    .top-esthetic-link__image img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: cover;
    }

    .top-esthetic-link__content {
        display: block;
        min-height: 0;
        padding: 26px 20px 28px;
        background: #FFF;
        text-align: center;
    }

    .top-esthetic-link__en {
        margin: 0 0 12px;
        text-align: left;
        font-size: 46px;
        line-height: 1;
        letter-spacing: 1.2px;
    }

    .top-esthetic-link__logo {
        justify-content: center;
        gap: 10px;
        margin-bottom: 22px;
        font-size: 18px;
        line-height: 1.5;
        letter-spacing: 0.72px;
    }

    .top-esthetic-link__logo img,
    .top-esthetic-link__logo-mark {
        width: 28px;
    }

    .top-esthetic-link__logo-text {
        font-size: 18px;
        line-height: 1.5;
    }

    .top-esthetic-link__lead,
    .top-esthetic-link__title {
        margin: 0 0 18px;
        font-size: 20px;
        line-height: 1.7;
        letter-spacing: 0.8px;
        text-align: center;
    }

    .top-esthetic-link__text {
        max-width: none;
        margin: 0 0 26px;
        font-size: 16px;
        line-height: 1.9;
        letter-spacing: 0.32px;
        text-align: left;
    }

    .top-esthetic-link__btn-wrap {
        justify-content: center;
    }

    

    
}

/* =====================================================
   TOP：お知らせ＆診療スケジュール
===================================================== */

#top-news-schedule {
    overflow: hidden;
    padding: 60px 20px;
    background: #FBFDFD;
}

#top-news-schedule * {
    box-sizing: border-box;
    font-family: "Zen Old Mincho", serif;
}

/* =====================================================
   PC：1025px〜
===================================================== */

.top-news-schedule__inner {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 50px;
    width: 100%;
    max-width: 1148px;
    margin: 0 auto;
}

.top-news-schedule__card {
    display: flex;
    width: 549px;
	padding: 20px 30px 46px;
    flex-direction: column;
    align-items: flex-start;
    border-radius: 20px;
    border: 1px solid #5C96B7;
    background: #FFFEFE;
}

.top-news-schedule__heading {
    display: flex;
    align-items: baseline;
    gap: 17px;
    width: 100%;
    margin-bottom: 62px;
    justify-content: center;
}

.top-news-schedule__en {
    flex: 0 0 auto;
    margin: 0;
    line-height: 1;
}

.top-news-schedule__en-accent {
    color: #5C96B7;
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 2.8px;
}

.top-news-schedule__en-text {
    color: #0E201E;
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 2.8px;
}

.top-news-schedule__title {
    margin: 0;
    color: #0E201E;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 2px;
}

/* お知らせ */
.top-news-schedule__news-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    width: 100%;
    margin-bottom: auto;
}

.top-news-schedule__news-item {
    display: grid;
    grid-template-columns: 138px minmax(0, 1fr);
    align-items: center;
    color: #0E201E;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.top-news-schedule__news-item:hover {
    opacity: 0.7;
}

.top-news-schedule__news-date,
.top-news-schedule__news-title,
.top-news-schedule__news-empty {
    color: #0E201E;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 1.6px;
}

.top-news-schedule__news-title {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.top-news-schedule__news-empty {
    margin: 0;
}

/* カレンダー */
.top-news-schedule__calendar {
    width: 100%;
    margin-top: -10px;
}

.top-news-schedule__calendar table {
    width: 100%;
    max-width: 100%;
}

.top-news-schedule__calendar img,
.top-news-schedule__calendar iframe {
    max-width: 100%;
}

/* ボタン */
.top-news-schedule__btn-wrap {
    display: flex;
    justify-content: flex-start;
    width: 100%;
    margin-top: 42px;
}








/* =====================================================
   Tablet：768px〜1024px
===================================================== */

@media screen and (min-width: 768px) and (max-width: 1024px) {
    #top-news-schedule {
        padding: 54px 28px;
    }

    .top-news-schedule__inner {
        max-width: 830px;
        gap: 28px;
    }

    .top-news-schedule__card {
        width: calc((100% - 28px) / 2);
        height: 540px;
        padding: 18px 28px 34px;
        gap: 0;
    }

    .top-news-schedule__heading {
        gap: 7px;
        margin-bottom: 52px;
    }

    .top-news-schedule__en-accent,
    .top-news-schedule__en-text {
        font-size: 30px;
        letter-spacing: 2.38px;
    }

    .top-news-schedule__title {
        font-size: 16px;
        letter-spacing: 1.8px;
    }

    .top-news-schedule__news-item {
        grid-template-columns: 118px minmax(0, 1fr);
    }

    .top-news-schedule__news-date,
    .top-news-schedule__news-title,
    .top-news-schedule__news-empty {
        font-size: 14px;
        letter-spacing: 1.4px;
    }

    
}


/* =====================================================
   SP：〜767px
===================================================== */

@media screen and (max-width: 767px) {
    #top-news-schedule {
        padding: 30px 19px;
        background: #FBFDFD;
    }

    .top-news-schedule__inner {
        display: flex;
        flex-direction: column;
        gap: 27px;
        width: 100%;
        max-width: 337px;
        margin: 0 auto;
    }

    .top-news-schedule__card {
        display: flex;
        width: 100%;
        height: auto;
		padding: 16px 10px 28px;
        flex-direction: column;
        align-items: flex-start;
		justify-content:space-between;
        gap: 0;
        flex: 1 0 0;
        border-radius: 20px;
        border: 1px solid #5C96B7;
        background: #FFFEFE;
    }

    .top-news-schedule__card--schedule {
        min-height: 570px;
    }

    .top-news-schedule__heading {
        gap: 12px;
        width: 100%;
        margin-bottom: 40px;
    }

    .top-news-schedule__en-accent {
        color: #5C96B7;
        font-size: 32px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 2.24px;
    }

    .top-news-schedule__en-text {
        color: #0E201E;
        font-size: 24px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 1.68px;
    }

    .top-news-schedule__title {
        color: #0E201E;
        font-size: 20px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 2px;
        white-space: nowrap;
    }

    .top-news-schedule__news-list {
        gap: 22px;
        margin-bottom: 0;
    }

    .top-news-schedule__news-item {
        display: block;
    }

    .top-news-schedule__news-date,
    .top-news-schedule__news-title,
    .top-news-schedule__news-empty {
        display: block;
        color: #0E201E;
        font-size: 16px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 1.6px;
    }

    .top-news-schedule__news-date {
        margin-bottom: 8px;
    }

    .top-news-schedule__news-title {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .top-news-schedule__btn-wrap {
        justify-content: center;
        margin-top: 36px;
    }
    

    .top-news-schedule__calendar {
        width: 100%;
        margin-top: 0;
        overflow-x: auto;
    }
}

/* ======================================
診療カレンダー
薬師堂すがわら歯科
====================================== */

.clinic-cal {
  --cal-text: #0E201E;
  --cal-green: #5AB7AA;
  --cal-green-dark: #3A746C;
  --cal-green-light: #EBF4F3;
  --cal-green-pale: #F4FAF9;
  --cal-blue: #5C96B7;
  --cal-blue-light: #EEF4FA;
  --cal-blue-border: #C9DDEA;
  --cal-purple: #7F89C7;
  --cal-purple-light: #F1F0FA;
  --cal-purple-pale: #F8F8FD;
  --cal-purple-badge: #E8E9F7;
  --cal-purple-border: #D8DCF2;
  --cal-border: #D6E8E5;
  --cal-white: #FFFEFE;
  --cal-empty: #F8FAFC;

  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  color: var(--cal-text);
  font-family: "Zen Old Mincho", serif;
}

.clinic-cal * {
  box-sizing: border-box;
}

/* --------------------------------------
   Header
-------------------------------------- */

.clinic-cal-head {
  margin-bottom: 24px;
}

.clinic-cal-title {
  margin: 0 0 20px;
  color: var(--cal-text);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.clinic-cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.clinic-cal-month {
  margin: 0;
  color: var(--cal-text);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.clinic-cal-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 65px;
  padding: 10px 16px;
  border: 1px solid #C6E6E2;
  background: #FBFDFD;
  color: var(--cal-green-dark);
  font-size: 14px;
  line-height: 1.2;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.clinic-cal-nav-btn:hover {
  border-color: var(--cal-green);
  background: var(--cal-green-light);
  color: var(--cal-text);
}

/* --------------------------------------
   Legend
-------------------------------------- */

.clinic-cal-legend {
  display: none;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.clinic-cal-legend .legend-item {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 999px;
  color: var(--cal-text);
  font-size: 13px;
  line-height: 1.4;
}

.clinic-cal-legend .is-open,
.clinic-cal-legend .is-thu_am,
.clinic-cal-legend .is-am {
  background: var(--cal-green-light);
  color: var(--cal-green-dark);
}

.clinic-cal-legend .is-sat_short,
.clinic-cal-legend .is-pm {
  background: var(--cal-blue-light);
  color: var(--cal-blue);
}

.clinic-cal-legend .is-closed {
  background: var(--cal-purple-badge);
  color: #6E78B7;
}

/* --------------------------------------
   Table
-------------------------------------- */

.clinic-cal-table-wrap {
  overflow-x: auto;
}

.clinic-cal-table {
  width: 100%;
  min-width: 760px;
  border: 1px solid var(--cal-border);
  border-collapse: collapse;
  table-layout: fixed;
  background: var(--cal-white);
}

.clinic-cal-table th,
.clinic-cal-table td {
  border: 1px solid var(--cal-border);
  vertical-align: top;
}

.clinic-cal-table th {
  padding: 8px 6px;
  background: var(--cal-green-light);
  color: var(--cal-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.clinic-cal-table th.is-sun {
  background: var(--cal-purple-light);
  color: var(--cal-purple);
}

.clinic-cal-table th.is-sat {
  background: var(--cal-blue-light);
  color: var(--cal-blue);
}

.clinic-cal-table td {
  height: 67px;
  padding: 10px 8px;
}

.clinic-cal-table td.is-empty {
  background: var(--cal-empty);
}

/* --------------------------------------
   Day
-------------------------------------- */

.clinic-cal-day .day-num {
  margin-bottom: 10px;
  color: var(--cal-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}

.clinic-cal-day .day-badge {
  display: inline-block;
  min-width: 60px;
  padding: 2px 10px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
}

.clinic-cal-day .day-note {
  margin-top: 8px;
  color: #5B6663;
  font-size: 12px;
  line-height: 1.5;
  word-break: break-word;
}

.clinic-cal-day.status-open {
  background: var(--cal-white);
}

.clinic-cal-day.status-open .day-badge {
  background: var(--cal-green-pale);
  color: var(--cal-green-dark);
  border: 1px solid #C6E6E2;
}

.clinic-cal-day.status-closed {
  background: var(--cal-purple-pale);
}

.clinic-cal-day.status-closed .day-badge {
  background: var(--cal-purple-badge);
  color: #6E78B7;
  border: 1px solid var(--cal-purple-border);
}

.clinic-cal-day.status-thu_am,
.clinic-cal-day.status-am_closed {
  background: #F8FCFB;
}

.clinic-cal-day.status-thu_am .day-badge,
.clinic-cal-day.status-am_closed .day-badge {
  background: var(--cal-green-light);
  color: var(--cal-green-dark);
  border: 1px solid #C6E6E2;
}

.clinic-cal-day.status-sat_short,
.clinic-cal-day.status-pm_closed {
  background: #F8FBFD;
}

.clinic-cal-day.status-sat_short .day-badge,
.clinic-cal-day.status-pm_closed .day-badge {
  background: var(--cal-blue-light);
  color: var(--cal-blue);
  border: 1px solid var(--cal-blue-border);
}

.clinic-cal-day.is-sun .day-num {
  color: var(--cal-purple);
}

.clinic-cal-day.is-sat .day-num {
  color: var(--cal-blue);
}

.clinic-cal-day.is-today {
  outline: 2px solid var(--cal-green);
  outline-offset: -2px;
  background:
    linear-gradient(0deg, rgba(90, 183, 170, 0.05) 0%, rgba(90, 183, 170, 0.05) 100%),
    var(--cal-white);
}

/* --------------------------------------
   診療時間補足
-------------------------------------- */

.clinic-cal-time-notes {
  margin-top: 14px;
  padding: 12px 14px;
  background: #FBFDFD;
  border: 1px solid var(--cal-border);
  border-radius: 10px;
}

.clinic-cal-time-notes p {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0;
  color: var(--cal-text);
  font-family: "Zen Old Mincho", serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.4px;
}

.clinic-cal-time-notes p + p {
  margin-top: 4px;
}

.clinic-cal-time-notes span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 70px;
  padding: 2px 8px;
  border: 1px solid #C6E6E2;
  border-radius: 999px;
  background: var(--cal-green-pale);
  color: var(--cal-green-dark);
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
}

.clinic-cal-time-notes p:nth-child(1) span {
  background: var(--cal-green-pale);
  color: var(--cal-green-dark);
  border-color: #C6E6E2;
}

.clinic-cal-time-notes p:nth-child(2) span {
  background: var(--cal-green-light);
  color: var(--cal-green-dark);
  border-color: #C6E6E2;
}

.clinic-cal-time-notes p:nth-child(3) span {
  background: var(--cal-blue-light);
  color: var(--cal-blue);
  border-color: var(--cal-blue-border);
}

/* --------------------------------------
   備考欄を使う場合
-------------------------------------- */

.clinic-cal-notes {
  margin-top: 20px;
  padding: 20px;
  background: #FBFDFD;
  border: 1px solid var(--cal-border);
}

.clinic-cal-notes-title {
  margin: 0 0 10px;
  color: var(--cal-text);
  font-size: 16px;
  font-weight: 700;
}

.clinic-cal-notes-list p {
  margin: 0;
  color: var(--cal-text);
  font-size: 14px;
  line-height: 1.8;
}

.clinic-cal-notes-list p + p {
  margin-top: 4px;
}

/* ======================================
TOP：診療スケジュール内のコンパクト表示
====================================== */

#top-news-schedule .top-news-schedule__card--schedule {
  overflow: hidden;
}

#top-news-schedule .top-news-schedule__calendar {
  width: 100%;
  margin-top: -6px;
  overflow: hidden;
}

#top-news-schedule .clinic-cal {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

#top-news-schedule .clinic-cal-head {
  margin-bottom: 8px;
}

#top-news-schedule .clinic-cal-nav {
  gap: 8px;
  margin-bottom: 8px;
}

#top-news-schedule .clinic-cal-month {
  font-size: 15px;
  line-height: 1.3;
}

#top-news-schedule .clinic-cal-nav-btn {
  min-width: 56px;
  padding: 6px 8px;
  font-size: 11px;
}

#top-news-schedule .clinic-cal-table-wrap {
  width: 100%;
  overflow: hidden;
}

#top-news-schedule .clinic-cal-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

#top-news-schedule .clinic-cal-table th,
#top-news-schedule .clinic-cal-table td {
  padding: 4px 2px;
}

#top-news-schedule .clinic-cal-table th {
  font-size: 11px;
  line-height: 1.2;
}

#top-news-schedule .clinic-cal-table td {
  height: 51px;
  min-height: 51px;
}

#top-news-schedule .clinic-cal-day .day-num {
  margin-bottom: 4px;
  font-size: 11px;
  line-height: 1;
}

#top-news-schedule .clinic-cal-day .day-badge {
  display: block;
  width: 92%;
  min-width: 0;
  margin: 0 auto;
  padding: 1px 2px;
  border-radius: 8px;
  font-size: 9px;
  line-height: 1.3;
  letter-spacing: -0.4px;
  white-space: nowrap;
}

#top-news-schedule .clinic-cal-day .day-note {
  margin-top: 3px;
  font-size: 9px;
  line-height: 1.2;
}

#top-news-schedule .clinic-cal-time-notes {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
}

#top-news-schedule .clinic-cal-time-notes p {
  gap: 6px;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0;
}

#top-news-schedule .clinic-cal-time-notes span {
  min-width: 56px;
  padding: 1px 5px;
  font-size: 10px;
}

/* ======================================
SP：〜767px
====================================== */

@media screen and (max-width: 767px) {
  .clinic-cal {
    width: 100%;
  }

  .clinic-cal-head {
    margin-bottom: 18px;
  }

  .clinic-cal-nav {
    gap: 10px;
    margin-bottom: 14px;
  }

  .clinic-cal-month {
    font-size: 18px;
  }

  .clinic-cal-nav-btn {
    min-width: 58px;
    padding: 8px 10px;
    font-size: 12px;
  }

  .clinic-cal-table-wrap {
    overflow-x: visible;
  }

  .clinic-cal-table {
    width: 100%;
    min-width: 100%;
    table-layout: fixed;
  }

  .clinic-cal-table th,
  .clinic-cal-table td {
    height: auto;
    min-height: 80px;
    padding: 6px 2px;
  }

  .clinic-cal-table th {
    font-size: 12px;
  }

  .clinic-cal-day .day-num {
    margin-bottom: 4px;
    font-size: 14px;
    text-align: center;
  }

  .clinic-cal-day .day-badge {
    display: block;
    width: 95%;
    min-width: auto;
    margin: 0 auto;
    padding: 2px 0;
    border-radius: 4px;
    font-size: 9px;
    line-height: 1.4;
    letter-spacing: -0.5px;
    transform: scale(0.95);
  }

  .clinic-cal-day .day-note {
    margin-top: 4px;
    font-size: 9px;
    line-height: 1.2;
    text-align: center;
  }

  .clinic-cal-time-notes {
    margin-top: 10px;
    padding: 10px;
  }

  .clinic-cal-time-notes p {
    display: block;
    font-size: 12px;
    line-height: 1.6;
  }

  .clinic-cal-time-notes p + p {
    margin-top: 6px;
  }

  .clinic-cal-time-notes span {
    min-width: 62px;
    margin-right: 6px;
    font-size: 10px;
  }

  #top-news-schedule .clinic-cal-time-notes p {
    font-size: 10px;
  }
}

/* ======================================
TOP：お知らせカードと診療スケジュールカードの余白調整
====================================== */

@media screen and (max-width: 767px) {
    /* 共通カードの左右余白は一旦リセット寄りに */
    #top-news-schedule .top-news-schedule__card {
        padding-top: 16px;
        padding-bottom: 28px;
    }

    /* お知らせ側：余白を広めにして左寄り感を解消 */
    #top-news-schedule .top-news-schedule__card--news {
        padding-left: 24px;
        padding-right: 24px;
    }

    #top-news-schedule .top-news-schedule__card--news .top-news-schedule__heading {
        margin-bottom: 38px;
    }

    #top-news-schedule .top-news-schedule__card--news .top-news-schedule__news-list {
        width: 100%;
    }

    #top-news-schedule .top-news-schedule__card--news .top-news-schedule__btn-wrap {
        width: 100%;
        justify-content: center;
    }

    /* 診療スケジュール側：カレンダーを収めるため左右余白は狭めに維持 */
    #top-news-schedule .top-news-schedule__card--schedule {
        padding-left: 10px;
        padding-right: 10px;
    }
}


/* ======================================
TOP：診療スケジュール内カレンダー バッジはみ出し修正
====================================== */

#top-news-schedule .clinic-cal-day .day-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 1px 4px;
    border-radius: 999px;
    font-size: 8.5px;
    line-height: 1.25;
    letter-spacing: -0.7px;
    white-space: nowrap;
    transform: none;
}

/* セル内でバッジが左に寄りすぎないよう微調整 */
#top-news-schedule .clinic-cal-table td {
    text-align: left;
}

#top-news-schedule .clinic-cal-day .day-num {
    text-align: left;
}

/* SPではさらに少しだけ詰める */
@media screen and (max-width: 767px) {
    #top-news-schedule .clinic-cal-day .day-badge {
        padding: 1px 3px;
        font-size: 8px;
        letter-spacing: -0.8px;
    }
}