@font-face {
    font-family: "LocalYuMin";
    src: url("../fonts/yuminl.woff2") format("woff2");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "LocalYuMin";
    src: url("../fonts/yumin.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "LocalYuMin";
    src: url("../fonts/yumindb.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "LocalYuGothic";
    src: url("../fonts/YuGothM.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "LocalYuGothic";
    src: url("../fonts/YuGothB.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "LocalDShirmn";
    src: url("../fonts/DShirmn4.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

:root {
    --color-brown: #4d3a2b;
    --color-gold: #cda261;
    --color-line: #08b83e;
    --color-text: #4b4038;
    --font-mincho: "LocalYuMin", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    --font-logo: "LocalDShirmn", "Yu Mincho", "YuMincho", serif;
    --font-gothic: "LocalYuGothic", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
    --font-gothic-bold: "LocalYuGothic", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
}

html {
    font-size: calc(100vw / 1920 * 10);
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    color: var(--color-text);
    font-family: var(--font-gothic);
    font-size: 1.6rem;
    line-height: 1.7;
    background: #fff;
}

* {
    box-sizing: border-box;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 0;
}

a {
    color: inherit;
    text-decoration: none;
	transition: all .3s ease-in-out;
}

a:hover{
    opacity: 0.8;
}

button {
    font: inherit;
}

.siteHeader {
    position: absolute;
    top: -2.3rem;
    left: 3.7rem;
    z-index: 100;
    display: flex;
    align-items: flex-start;
    width: 184.3rem;
    height: 12.7rem;
    pointer-events: none;
}

.headerLogo {
    width: 39.2rem;
    height: 12.7rem;
    padding: 3.0rem 2.1rem 0;
    border-radius: 0 0 0.6rem 0.6rem;
    background: rgba(255, 255, 255, 0.95);
    pointer-events: auto;
}

.headerLogoLead {
    position: absolute;
    top: 3.3rem;
    left: 2.3rem;
    width: 34.5rem;
    margin: 0;
    font-family: var(--font-mincho);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1;
    color: #3d2d23;
    white-space: nowrap;
}

.headerLogoLeadPc {
    display: none;
}

.headerLogoTitle {
    margin: 2.7rem 0 0;
    text-align: center;
}

.headerLogoImage {
    width: 30.8rem;
    height: 5.7rem;
    object-fit: contain;
    margin: auto;
}

.headerAccess {
    position: absolute;
    top: 5.3rem;
    left: 83.3rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 32.9rem;
    margin: 0;
    color: #fff;
    font-family: var(--font-mincho);
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.35);
    pointer-events: auto;
}

.headerAccess span {
    white-space: nowrap;
    margin-top: 0.5rem;
}

.headerAccessIcon {
    width: 2.6rem;
    /* height: 2.2rem; */
    /* object-fit: contain; */
    /* filter: brightness(0) invert(1); */
}

.headerContact {
    position: absolute;
    top: 2.9rem;
    left: 120.0rem;
    display: block;
    width: 54.8rem;
    height: 8.7rem;
    pointer-events: auto;
}

.headerContactItem {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 18.4rem;
    height: 8.7rem;
    color: #fff;
    font-family: var(--font-mincho);
    line-height: 1;
}

.headerContactItemWeb {
    position: absolute;
    top: 0;
    left: 0;
}

.headerContactItemLine {
    position: absolute;
    top: 0;
    left: 18.2rem;
}

.headerContactItemTel {
    position: absolute;
    top: 0;
    left: 36.4rem;
}

.headerContactItem::after {
    content: "";
    position: absolute;
    right: 0.5rem;
    bottom: 0.4rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 1.8rem 1.8rem;
    border-color: transparent transparent #fff transparent;
}

.headerContactItemWeb {
    background: var(--color-brown);
}

.headerContactItemLine {
    background: var(--color-line);
}

.headerContactItemTel {
    background: var(--color-gold);
}

.headerContactMain {
    display: block;
    font-size: 2.7rem;
    font-weight: 600;
}

.headerContactSub {
    display: block;
    margin-top: 0.5rem;
    font-size: 2rem;
    font-weight: 600;
}

.headerContactItemTel .headerContactMain {
    font-size: 2.0rem;
    white-space: nowrap;
}

.headerContactLineIcon {
    width: 3.6rem;
    height: 3.5rem;
    margin-bottom: 1rem;
    object-fit: contain;
}

.headerContactPhone {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.8rem;
    font-size: 2.2rem;
    font-weight: 600;
    white-space: nowrap;
}

.headerContactPhoneIcon {
    width: 2.4rem;
    height: 2.4rem;
    object-fit: contain;
}

.menuButton {
    position: absolute;
    top: 2.9rem;
    left: 175.6rem;
    width: 8.7rem;
    height: 8.7rem;
    padding: 1.7rem 1.5rem 1.2rem;
    border: 0;
    background: rgba(239, 234, 228, 0.95);
    color: #4d3a2b;
    cursor: pointer;
    pointer-events: auto;
}

.menuButtonLine {
    display: block;
    width: 5.6rem;
    height: 0.4rem;
    margin: 0 0 1.0rem;
    background: #4d3a2b;
}

.menuButtonText {
    display: block;
    margin-top: 0.2rem;
    font-family: var(--font-mincho);
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1;
}

.headerInstagram,
.pcNavMenuItemOverview,
.pcNavSpRecruit.pcNavLink {
    display: none;
}

.pcNavOverlay {
    display: none;
}

.spFloatingBanner {
    display: none;
}

.hero {
    position: relative;
    width: 100%;
    height: 93.8rem;
    overflow: hidden;
    background: #d6c5b8;
}

.heroBg,
.heroBgImage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.heroBgSlide {
    opacity: 0;
    transition: opacity 1.4s ease;
}

.heroBgSlide.is-active {
    opacity: 1;
}

.heroBgImage {
    object-fit: cover;
}

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(57, 42, 31, 0.18);
    pointer-events: none;
}

.heroCopy {
    position: absolute;
    top: 28.8rem;
    left: 68.0rem;
    z-index: 20;
    width: 55.5rem;
    height: 40.7rem;
    color: #fff;
    font-family: var(--font-mincho);
    text-align: center;
    text-shadow: 0.3rem 0.4rem 0.5rem rgba(0, 0, 0, 0.35);
}

.heroCopyMain {
    position: relative;
    height: 22.1rem;
    padding-bottom: 3.3rem;
    border-bottom: 0.1rem solid rgba(255, 255, 255, 0.82);
}

.heroCopyMain::after {
    content: "";
    position: absolute;
    left: 0.1rem;
    bottom: -18.6rem;
    width: 55.4rem;
    height: 0.1rem;
    background: rgba(255, 255, 255, 0.82);
}

.heroCopyLine,
.heroCopySubLine {
    margin: 0;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.02em;
}

.heroCopyLine {
    font-size: 6.4rem;
}

.heroCopyLineSecond {
    margin-top: 5.0rem;
}

.heroCopySub {
    padding-top: 3.6rem;
}

.heroCopySubLine {
    font-size: 4.1rem;
}

.heroCopySubSecond {
    margin-top: 3.0rem;
}

.heroBadges {
    position: absolute;
    z-index: 30;
    inset: 0;
    pointer-events: none;
}

.heroBadge {
    position: absolute;
    width: 24.8rem;
    height: 22.7rem;
    color: #4d3a2b;
    font-family: var(--font-mincho);
    text-align: center;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    pointer-events: auto;
}

.heroBadge::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: 50%;
    background: #e7ded7;
}

.heroBadge::after {
    content: "";
    position: absolute;
    right: -0.2rem;
    bottom: 3.3rem;
    z-index: -1;
    width: 5.2rem;
    height: 4.0rem;
    background: #e7ded7;
    transform: rotate(18deg);
}

.heroBadgeStation {
    top: 63.4rem;
    left: 6.3rem;
}

.heroBadgePrivate {
    top: 64.4rem;
    left: 29.8rem;
}

.heroBadgePrivate::before,
.heroBadgePrivate::after {
    background: #d6caa4;
}

.heroBadgeIcon {
    margin-right: auto;
    margin-left: auto;
    object-fit: contain;
}

.heroBadgeIconTrain {
    width: 5.1rem;
    height: 6.4rem;
    margin-top: 2.8rem;
}

.heroBadgeIconPrivate {
    width: 7.5rem;
    height: 7.6rem;
    margin-top: 2.5rem;
}

.heroBadgeText {
    margin: 1.5rem 0 0;
    font-size: 3.0rem;
    font-weight: 600;
    line-height: 1.55;
}

.heroBadgePrivate .heroBadgeText {
    margin-top: 1.1rem;
}

.firstSection {
    display: none;
}

.infoSection {
    display: none;
}

.conceptSection {
    display: none;
}

.caseSection {
    display: none;
}

.voiceSection {
    display: none;
}

.featureSection {
    display: none;
}

.serviceSection {
    display: none;
}

.onayamiSection {
    display: none;
}

.omakaseSection {
    display: none;
}

.medicalMenuSection {
    display: none;
}

.greetingSection {
    display: none;
}

.clinicSection {
    display: none;
}

.contactSection {
    display: none;
}

.siteFooter {
    display: none;
}

.featureInitial {
    color: #c89b5d;
}

.clinicSpBreak,
.footerSpBreak,
.clinicAccessTitleSp {
    display: none;
}

.onayamiSpBreak {
    display: none;
}

.conceptSpBreak {
    display: none;
}

.infoSpBreak {
    display: none;
}

.medicalMenuSpBreak {
    display: none;
}

@media screen and (min-width: 769px) {
    .siteHeader {
        left: 0;
        width: 100%;
        padding-left: 3.7rem;
    }
    .siteHeader::before {
        content: "";
        position: absolute;
        top: 2.3rem;
        left: 0;
        z-index: -1;
        width: 100%;
        height: 10.3rem;
        background: #fff;
    }

    .headerLogo {
        background: transparent;
        border-radius: 0;
    }

    .headerLogoLeadSp {
        display: none;
    }

    .headerLogoLeadPc {
        display: block;
    }

    .headerLogoLead {
        left: 8rem;
        width: auto;
        font-size: 1.4rem;
        letter-spacing: 0.056rem;
        color: #4b3a2a;
    }

    .headerLogoTitle {
        margin-top: 2.5rem;
    }

    .headerLogoImage {
        margin-left: 1.9rem;
        margin-right: 0;
    }

    .headerAccess {
        top: 6.3rem;
        left: 87rem;
        align-items: flex-start;
        gap: 1.2rem;
        color: #4b3a2a;
        font-size: 2.4rem;
        letter-spacing: 0.04rem;
        font-feature-settings: "palt";
        text-shadow: none;
    }

    .headerAccess span {
        margin-top: 0;
    }

    .headerAccessIcon {
        flex-shrink: 0;
        width: 1.6rem;
        height: 2.2rem;
        object-fit: fill;
        filter: brightness(0) invert(19.51%) sepia(100%) saturate(152.54%) hue-rotate(-12.23deg);
    }

    .headerContact {
        top: 3.1rem;
        right: 13.6rem;
        left: auto;
        width: 54.5rem;
        height: 8.4rem;
    }

    .headerContactItem {
        justify-content: flex-start;
        width: 18.1rem;
        height: 8.4rem;
    }

    .headerContactItemWeb {
        padding-top: 1.8rem;
        background: #4b3a2a;
    }

    .headerContactItemLine {
        padding-top: 0.9rem;
        background: #00b832;
    }

    .headerContactItemTel {
        padding-top: 2rem;
        background: #c39961;
    }

    .headerContactItem::after {
        right: 0.4rem;
        bottom: 0.3rem;
        border-width: 0 0 1.5rem 1.5rem;
    }

    .headerContactItemTel::after {
        content: none;
    }

    .headerContactItemWeb .headerContactMain {
        padding-top: 0;
        font-size: 2.6rem;
        margin-top: 0.2rem;
        margin-left: 0.5rem;
        letter-spacing: 0.15rem;
    }

    .headerContactSub {
        margin-top: 0.7rem;
    }

    .headerContactLineIcon {
        margin-bottom: 0.7rem;
    }

    .headerContactItemLine .headerContactMain {
        font-size: 2.2rem;
        margin-left: 0.2rem;
        letter-spacing: 0.11rem;
    }

    .headerContactItemTel .headerContactMain {
        margin-left: 0.2rem;
    }

    .headerContactPhone {
        gap: 0.6rem;
        margin-top: 0.9rem;
        margin-right: 0.2rem;
    }

    .menuButton {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        top: 3.1rem;
        right: 4.1rem;
        left: auto;
        width: 8.4rem;
        height: 8.4rem;
        padding: 1.6rem 1.5rem 0.8rem;
        border: 0.1rem solid #4b3a2a;
        background: #fff;
        color: #4b3a2a;
    }

    .menuButtonLine {
        width: 5.3rem;
        height: 0.3rem;
        margin-bottom: 1.1rem;
        background: #4b3a2a;
    }

    .menuButtonLineBottom {
        margin-bottom: 0.5rem;
    }

    .menuButtonText {
        width: 5.3rem;
        margin-top: 0.4rem;
        margin-left: -0.1rem;
        font-size: 1.6rem;
        text-align: center;
    }

    .menuButton.isOpen {
        padding: 0;
    }

    .menuButton.isOpen .menuButtonLine {
        position: absolute;
        left: 2.3rem;
        width: 4.3rem;
        height: 0.3rem;
        margin: 0;
    }

    .menuButton.isOpen .menuButtonLineTop {
        top: 3.4rem;
        transform: rotate(45deg);
    }

    .menuButton.isOpen .menuButtonLineMiddle {
        display: none;
    }

    .menuButton.isOpen .menuButtonLineBottom {
        top: 3.4rem;
        transform: rotate(-45deg);
    }

    .menuButton.isOpen .menuButtonText {
        position: absolute;
        top: 5.9rem;
        left: 1.6rem;
        width: 5.6rem;
        margin: 0;
    }

    .pcNavOverlay.isOpen {
        position: absolute;
        top: 9.1rem;
        left: 58.6rem;
        z-index: 90;
        display: block;
        width: 132.4rem;
        height: 78.7rem;
        padding: 5.3rem 3.5rem 3.9rem;
        background: #e7e2de;
        color: #2f2b27;
        font-family: var(--font-gothic);
    }

    .pcNavPrimary {
        display: grid;
        grid-template-columns: 12.5rem 14.9rem 17.4rem 17.6rem 12.3rem 17.4rem 10.7rem;
        column-gap: 3.5rem;
        margin: 0;
        padding: 0 1.7rem;
        list-style: none;
    }

    .pcNavPrimaryItem,
    .pcNavMenuItem {
        margin: 0;
        padding: 0;
    }

    .pcNavLink {
        position: relative;
        display: inline-block;
        padding-left: 1.5rem;
        color: #2f2b27;
        font-size: 1.8rem;
        font-weight: 400;
        line-height: 1.2;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .pcNavPrimary .pcNavLink {
        font-weight: 700;
    }

    .pcNavLink::before {
        content: "";
        position: absolute;
        top: 0.57em;
        left: 0;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0.45rem 0 0.45rem 0.8rem;
        border-color: transparent transparent transparent #a99b91;
        transform: translateY(-50%);
    }

    .pcNavSection {
        margin: 4.7rem 0 0;
    }

    .pcNavSectionConcern {
        margin-top: 4.4rem;
    }

    .pcNavSectionTitle {
        position: relative;
        margin: 0 0 1.4rem 1.7rem;
        padding-left: 1.5rem;
        color: #2f2b27;
        font-size: 1.8rem;
        font-weight: 700;
        line-height: 1;
    }

    .pcNavSectionTitle::before {
        content: "";
        position: absolute;
        top: 0.45em;
        left: 0;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0.45rem 0 0.45rem 0.8rem;
        border-color: transparent transparent transparent #a99b91;
        transform: translateY(-50%);
    }

    .pcNavSectionConcern .pcNavSectionTitle {
        margin-left: 3.2rem;
        padding-left: 0;
    }

    .pcNavSectionConcern .pcNavSectionTitle::before {
        display: none;
    }

    .pcNavMenuList {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        column-gap: 3.0rem;
        row-gap: 4.7rem;
        width: 125.4rem;
        margin: 0;
        padding: 4.0rem 2.2rem 6.0rem;
        list-style: none;
        background: #fff;
    }

    .pcNavMenuListMedical {
        height: 36.2rem;
    }

    .pcNavMenuListConcern {
        height: 16.0rem;
        row-gap: 4.0rem;
    }

    .heroCopyMain {
        height: 22.0rem;
    }

    .heroCopyMain::after {
        left: 0;
        bottom: -18.6rem;
    }

    .heroCopyLine,
    .heroCopySubLine {
        display: inline-block;
        white-space: nowrap;
    }

    .heroCopyLineFirst {
        font-size: 7.45rem;
        line-height: 0.953;
        letter-spacing: 0;
    }

    .heroCopySmall {
        font-size: 5.53rem;
    }

    .heroCopyLineSecond {
        margin-top: 4.1rem;
        font-size: 7.85rem;
        line-height: 0.93;
        letter-spacing: 0;
    }

    .heroCopySub {
        padding-top: 3.7rem;
    }

    .heroCopySubFirst {
        font-size: 4.4rem;
        line-height: 0.955;
    }

    .heroCopySubSecond {
        margin-top: 2.68rem;
        font-size: 4.0rem;
        line-height: 0.95;
    }

    .heroBadge {
        background-size: 24.8rem 22.7rem;
    }

    .heroBadge::before,
    .heroBadge::after {
        display: none;
    }

    .heroBadgeStation {
        background-image: url("../img/hero_fukidashi1.png");
        background-position: left top;
    }

    .heroBadgePrivate {
        background-image: url("../img/hero_fukidashi2.png");
        background-position: left top;
    }

    .heroBadgeIconTrain {
        margin-left: 8.9rem;
    }

    .heroBadgeIconPrivate {
        margin-top: 2.9rem;
        margin-left: 9.5rem;
    }

    .heroBadgeStation .heroBadgeText {
        display: grid;
        grid-template-rows: 3.2rem 4.6rem;
        width: 13.6rem;
        height: 7.8rem;
        margin-top: 1.7rem;
        margin-left: 4.45rem;
        font-size: 3.2rem;
        line-height: 1;
        overflow: visible;
    }

    .heroBadgeStation .heroBadgeText br {
        display: none;
    }

    .heroBadgePrivate .heroBadgeText {
        width: 15.2rem;
        margin-top: 1.3rem;
        margin-left: 5.3rem;
        font-size: 3.0rem;
        line-height: 1.2;
        white-space: nowrap;
        text-align: center;
        letter-spacing: -0.3rem;
    }

    .heroBadgeWalk {
        display: block;
        font-size: 2.8rem;
        line-height: 4.6rem;
        white-space: nowrap;
        padding-top: 0.5rem;
    }

    .heroBadgeStationLine {
        display: block;
        line-height: 3.2rem;
        white-space: nowrap;
    }

    .heroBadgeNumber {
        display: inline-block;
        font-size: 4.5rem;
        line-height: 1;
    }
}

@media screen and (max-width: 768px) {
    html {
        font-size: calc(100vw / 750 * 10);
    }

    body {
        font-size: 2.8rem;
    }
.menuButton {
    position: fixed;
}
    .siteHeader {
        top: 0;
        left: 0;
        width: 100%;
        height: auto;
        min-height: 12.4rem;
        background: #fff;
    }

    .siteHeader.isSpNavOpen {
        top: 0;
        left: 0;
        width: 75.0rem;
        height: 12.3rem;
        background: #fff;
        position: fixed;
    }

    .headerLogo {
        width: 56rem;
        height: auto;
        padding: 5.2rem 0 1.5rem 3.5rem;
        border-radius: 0;
        background: transparent;
    }

    .headerLogoLead {
        top: 1.9rem;
        left: 3.4rem;
        width: 52rem;
        font-size: 2rem;
        letter-spacing: 0.08rem;
        text-align: left;
        color: #4b3a2a;
    }

    .headerLogoTitle {
        margin-top: 0;
    }

    .headerLogoImage {
        width: 30.8rem;
        height: 5.7rem;
        margin: 0;
    }

    .siteHeader.isSpNavOpen .headerLogo {
        width: 34.2rem;
        height: 12.3rem;
        padding: 2.6rem 0 0 1.5rem;
        background: transparent;
    }

    .siteHeader.isSpNavOpen .headerLogoLead {
        display: none;
    }

    .siteHeader.isSpNavOpen .headerLogoTitle {
        margin: 0;
    }

    .siteHeader.isSpNavOpen .headerLogoImage {
        width: 32.7rem;
        height: 7.1rem;
        margin: 0;
    }

    .headerAccess,
    .headerContact {
        display: none;
    }

    .menuButton {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        top: 1.2rem;
        right: 2.6rem;
        left: auto;
        width: 10rem;
        height: 10rem;
        padding: 2.2rem 2.2rem 1rem;
        border: 0.1rem solid #4b3a2a;
        background: #fff;
        color: #4b3a2a;
    }

    .menuButtonLine {
        width: 5.3rem;
        height: 0.3rem;
        margin-bottom: 1.2rem;
        background: #4b3a2a;
    }

    .menuButtonLineBottom {
        margin-bottom: 1rem;
    }

    .menuButtonText {
        width: 5.3rem;
        margin-top: 0.3rem;
        font-size: 1.8rem;
        text-align: center;
    }

    .siteHeader.isSpNavOpen .headerInstagram {
        position: absolute;
        top: 2.7rem;
        left: 49.2rem;
        display: block;
        width: 7.6rem;
        height: 7.6rem;
        border-radius: 0.8rem;
        background: url("../img/icon_instagram.png") center / cover no-repeat;
        pointer-events: auto;
    }

    .menuButton.isOpen {
        top: 1.6rem;
        left: 62.2rem;
        width: 10.3rem;
        height: 10.3rem;
        padding: 0;
    }

    .menuButton.isOpen .menuButtonLine {
        position: absolute;
        left: 3.0rem;
        width: 4.3rem;
        height: 0.3rem;
        margin: 0;
    }

    .menuButton.isOpen .menuButtonLineTop {
        top: 3.9rem;
        transform: rotate(45deg);
    }

    .menuButton.isOpen .menuButtonLineMiddle {
        display: none;
    }

    .menuButton.isOpen .menuButtonLineBottom {
        top: 3.9rem;
        transform: rotate(-45deg);
    }

    .menuButton.isOpen .menuButtonText {
        position: absolute;
        top: 7.1rem;
        left: 2rem;
        width: 6.4rem;
        margin: 0;
        font-size: 1.8rem;
    }

    .pcNavOverlay.isOpen {
        position: fixed;
        top: 11.7rem;
        left: 0;
        z-index: 90;
        display: block;
        width: 75.0rem;
        min-height: 88.3rem;
        padding: 7.3rem 0 7.0rem;
        background: #e7e2de;
        color: #2f2b27;
        font-family: var(--font-gothic);
    }

    .pcNavPrimary {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 1.0rem;
        row-gap: 5.45rem;
        width: 69.0rem;
        margin: 0;
        padding: 0 0 0 2.4rem;
        list-style: none;
    }

    .pcNavPrimaryItemRecruit {
        display: none;
    }

    .pcNavPrimaryItem,
    .pcNavMenuItem {
        margin: 0;
        padding: 0;
    }

    .pcNavLink {
        position: relative;
        display: inline-block;
        padding-left: 2.6rem;
        color: #2f2b27;
        font-size: 2.7rem;
        font-weight: 400;
        line-height: 1.25;
        letter-spacing: 0;
    }

    .pcNavPrimary .pcNavLink,
    .pcNavSpRecruit {
        font-weight: 700;
    }

    .pcNavLink::before {
        content: "";
        position: absolute;
        top: 0.57em;
        left: 0;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0.8rem 0 0.8rem 1.4rem;
        border-color: transparent transparent transparent #a99b91;
        transform: translateY(-50%);
    }

    .pcNavSection {
        margin: 4.3rem 0 0;
    }

    .pcNavSectionConcern {
        margin-top: 5.5rem;
    }

    .pcNavOverlay.hasMedicalOpen .pcNavSectionConcern {
        margin-top: 3.25rem;
    }

    .pcNavSectionTitle {
        position: relative;
        display: inline-block;
        margin: 0 0 0 2.9rem;
        color: #2f2b27;
        font-size: 2.7rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0;
        cursor: pointer;
    }

    .pcNavSectionTitle::after {
        content: "+";
        display: inline-block;
        margin-left: 1.3rem;
        color: #a98f7d;
        font-size: 3.2rem;
        font-weight: 400;
        line-height: 0.8;
        vertical-align: 0.1rem;
    }

    .pcNavMenuList {
        display: none;
        grid-template-columns: 1fr 1fr;
        column-gap: 2.2rem;
        margin: 0.4rem 0 0 0.9rem;
        padding: 3.5rem 2.8rem 3.6rem;
        list-style: none;
        background: #fff;
    }

    .pcNavSection.isOpen .pcNavMenuList {
        display: grid;
    }

    .pcNavMenuListMedical {
        row-gap: 5.4rem;
        width: 73.1rem;
    }

    .pcNavMenuItemOverview {
        display: block;
        grid-column: 1 / -1;
    }

    .pcNavMenuListConcern {
        row-gap: 5.1rem;
        width: 73.1rem;
        min-height: 41.5rem;
    }

    .pcNavMenuList .pcNavLink {
        font-weight: 400;
        white-space: normal;
    }

    .pcNavSpRecruit.pcNavLink {
        display: inline-block;
        margin: 7.0rem 0 0 2.4rem;
    }

    .hero {
        height: 89.2rem;
    }

    .heroCopy {
        top: 21.2rem;
        left: 9.1rem;
        width: 55.4rem;
        height: 37.7rem;
    }

    .heroCopyMain {
        height: 18.7rem;
        border-bottom: 0;
    }

    .heroCopyMain::after {
        left: 0;
        bottom: -18.9rem;
        width: 55.4rem;
    }

    .heroCopyLine {
        display: inline-block;
        font-size: 6.4rem;
        line-height: 1.1;
        white-space: nowrap;
    }

    .heroCopyLineFirst {
        font-size: 7.45rem;
        line-height: 0.953;
        letter-spacing: 0;
    }

    .heroCopySmall {
        font-size: 5.53rem;
    }

    .heroCopyLineSecond {
        margin-top: 4.3rem;
        font-size: 7.85rem;
        line-height: 0.93;
        letter-spacing: 0;
    }

    .heroCopySub {
        padding-top: 4.0rem;
    }

    .heroCopySubLine {
        display: inline-block;
        white-space: nowrap;
    }

    .heroCopySubFirst {
        font-size: 4.4rem;
        line-height: 0.955;
    }

    .heroCopySubSecond {
        margin-top: 2.9rem;
        font-size: 4.0rem;
        line-height: 0.95;
    }

    .heroBadge {
        background-size: 24.8rem 22.7rem;
    }

    .heroBadge::before,
    .heroBadge::after {
        display: none;
    }

    .heroBadgeStation {
        top: 62.7rem;
        left: 13.0rem;
        background-image: url("../img/hero_fukidashi1.png");
    }

    .heroBadgePrivate {
        top: 63.7rem;
        left: 36.5rem;
        background-image: url("../img/hero_fukidashi2.png");
    }

    .heroBadgeIconTrain {
        margin-top: 2.8rem;
        margin-left: 8.9rem;
    }

    .heroBadgeIconPrivate {
        margin-top: 2.5rem;
        margin-left: 9.6rem;
    }

    .heroBadgeStation .heroBadgeText {
        display: grid;
        grid-template-rows: 3.2rem 4.6rem;
        width: 13.6rem;
        height: 7.8rem;
        margin-top: 1.7rem;
        margin-left: 4.45rem;
        font-size: 3.2rem;
        line-height: 1;
        overflow: visible;
    }

    .heroBadgeStation .heroBadgeText br {
        display: none;
    }

    .heroBadgePrivate .heroBadgeText {
        width: 15.2rem;
        margin-top: 1.5rem;
        margin-left: 4.9rem;
        font-size: 3.2rem;
        line-height: 1.125;
        white-space: nowrap;
        letter-spacing: -0.3rem;
    }

    .heroBadgeWalk {
        display: block;
        font-size: 2.8rem;
        line-height: 4.6rem;
        white-space: nowrap;
        margin-top: 1rem;
    }

    .heroBadgeStationLine {
        display: block;
        line-height: 3.2rem;
        white-space: nowrap;
    }

    .heroBadgeNumber {
        display: inline-block;
        font-size: 4.5rem;
        line-height: 0.3;
    }
}

@media screen and (max-width: 768px) {
    .firstSection {
        display: block;
        position: relative;
        width: 100%;
        overflow: hidden;
        background: #e9e4e0;
    }

    .firstVisual {
        position: relative;
        width: 100%;
        height: 145.7rem;
        overflow: hidden;
        background: #fff url("../img/first_bg-sp2.jpg") center top / 75.0rem 146rem no-repeat;
    }

    .firstVisualPicture {
        display: block;
        width: 100%;
    }

    .firstVisualImage {
        width: 75.0rem;
        height: 38.6rem;
        object-fit: cover;
    }

    .firstCopyBox {
        position: absolute;
        top: 37.0rem;
        left: 1.6rem;
        width: 72.0rem;
        height: 54.2rem;
        padding-top: 2.7rem;
        background: #f6f5f4;
        color: #4b3a2a;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .firstTitle {
        margin: 0 0 0 2rem;
        font-family: var(--font-mincho);
        font-size: 6rem;
        font-weight: 600;
        line-height: 1.05;
        letter-spacing: 0;
        white-space: nowrap;
        text-align: center;
    }

    .firstTitleParticle {
        font-size: 5rem;
    }

    .firstTitleConclusion {
        display: inline-block;
        margin-left: -1rem;
    }

    .firstLabel {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 68.8rem;
        height: 8.9rem;
        margin: 3.5rem auto 0;
        color: #c39961;
        font-family: var(--font-mincho);
        font-size: 4.4rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.08em;
        background: #FFF;
    }

    .firstText {
        margin: 0;
        color: #4b3a2a;
        font-family: var(--font-mincho);
        font-size: 2.8rem;
        font-weight: 600;
        line-height: 1.75;
        letter-spacing: 0;
        text-align: center;
        white-space: nowrap;
    }

    .firstTextLead {
        margin-top: 3.7rem;
    }

    .firstTextBody {
        margin-top: 2.9rem;
    }

    .firstBadges {
        position: absolute;
        top: 95.4rem;
        left: 6.2rem;
        display: grid;
        grid-template-columns: 59.3rem;
        gap: 2.2rem;
        width: 62.3rem;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .firstBadge {
        display: flex;
        align-items: center;
        width: 62.3rem;
        height: 9.8rem;
        padding: 0 2.0rem 0 1.8rem;
        background: #4b3626;
        color: #fff;
    }

    .firstBadgeIcon {
        flex: 0 0 auto;
        width: 5.3rem;
        height: 5.3rem;
        object-fit: contain;
    }

    .firstBadgeText {
        display: block;
        margin-left: 2.1rem;
        font-family: var(--font-gothic-bold);
        font-size: 3.4rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
        white-space: nowrap;
    }

    .firstMessage {
        position: relative;
        width: 100%;
        height: 67.8rem;
        padding-top: 3.9rem;
        background: #e9e4e0;
    }

    .firstMessageFrame {
        position: relative;
        width: 68.1rem;
        height: 54.8rem;
        margin: 0 auto;
        border: 0.6rem solid #d9bf82;
        background: rgba(255, 255, 255, 0.9);
    }

    .firstMessageFrame::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -6.1rem;
        width: 20.9rem;
        height: 6.1rem;
        background: #d9bf82;
        clip-path: polygon(0 0, 100% 0, 50% 100%);
        transform: translateX(-50%);
    }

    .firstMessageText {
        position: absolute;
        left: 0;
        width: 100%;
        margin: 0;
        color: #4b3a2a;
        font-family: var(--font-mincho);
        font-size: 4.0rem;
        font-weight: 600;
        line-height: 1.75;
        letter-spacing: 0;
        text-align: center;
    }

    .firstMessageText span {
        color: #c39961;
    }

    .firstMessageTextFirst {
        top: 2.8rem;
    }

    .firstMessageTextSecond {
        top: 23.2rem;
        left: 1.7rem;
    }

    .firstMessageTextSecond br {
        display: none;
    }

    .firstMessageTextThird {
        top: 37.2rem;
        left: 1rem;
    }

    .firstMessageTextSecond::before,
    .firstMessageTextThird::before {
        content: "";
        position: absolute;
        top: -3.7rem;
        left: 2.0rem;
        width: 61.7rem;
        height: 0.2rem;
        background: #dfd2b1;
    }

    .firstCta {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 3.2rem;
        width: 100%;
        height: 59.5rem;
        padding-top: 4.5rem;
        background: #f2f0ed url("../img/first_btn_bg-sp.jpg") center top / cover no-repeat;
    }

    .firstCtaButton {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 43.1rem;
        height: 14.6rem;
        color: #fff;
        font-family: var(--font-mincho);
        font-weight: 600;
        line-height: 1;
    }

    .firstCtaButton::after {
        content: "";
        position: absolute;
        right: 0.8rem;
        bottom: 0.8rem;
        width: 3.0rem;
        height: 3.0rem;
        background: #fff;
        clip-path: polygon(100% 0, 100% 100%, 0 100%);
    }

    .firstCtaButtonWeb {
        gap: 1.4rem;
        background: #4b3626;
    }

    .firstCtaButtonLine {
        gap: 1.5rem;
        background: #00bd3d;
    }

    .firstCtaButtonTel {
        flex-direction: column;
        background: #c99c5d;
    }

    .firstCtaButtonTel::after {
        display: none;
    }

    .firstCtaSmall {
        font-size: 3.0rem;
    }

    .firstCtaMain {
        font-size: 4.6rem;
        letter-spacing: 0;
    }

    .firstCtaLineIcon {
        width: 6.5rem;
        height: 6.4rem;
        object-fit: contain;
    }

    .firstCtaTelLabel {
        display: block;
        font-size: 3.6rem;
        line-height: 1;
    }

    .firstCtaTelNumber {
        display: flex;
        align-items: center;
        margin-top: 1.2rem;
        font-size: 4.0rem;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .firstCtaPhoneIcon {
        width: 4.3rem;
        height: 4.3rem;
        margin-right: 1.1rem;
        object-fit: contain;
    }

    .infoSection {
        display: block;
        position: relative;
        width: 100%;
        height: 138.5rem;
        overflow: hidden;
        background: #f2f0ee url("../img/info_bg.jpg") center top / cover no-repeat;
        margin-top: 0.1rem;
    }

    .infoInner {
        position: absolute;
        top: 5.0rem;
        left: 0.8rem;
        width: 73.0rem;
        height: 129.3rem;
        background: #fff;
    }

    .infoTitleBlock {
        position: absolute;
        top: 5.0rem;
        left: 20.3rem;
        width: 32.0rem;
        height: 5.6rem;
        text-align: center;
        transform: none;
    }

    .infoTitle {
        margin: 0;
        color: #000;
        font-family: var(--font-mincho);
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
    }

    .infoTitleInitial {
        color: #c89b5d;
    }

    .infoTitleMark {
        position: absolute;
        left: 11.3rem;
        bottom: 0;
        width: 10.1rem;
        height: 1.1rem;
        transform: none;
    }

    .infoTitleMark::before {
        content: "";
        position: absolute;
        top: 0.5rem;
        left: 0.6rem;
        width: 8.9rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .infoTitleMark::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
            radial-gradient(circle at 0.55rem 0.55rem, #c89b5d 0 0.55rem, transparent 0.56rem),
            radial-gradient(circle at 9.55rem 0.55rem, #c89b5d 0 0.55rem, transparent 0.56rem);
    }

    .infoPhotoPicture {
        display: block;
    }

    .infoPhoto {
        position: absolute;
        top: 14.1rem;
        left: 1.8rem;
        width: 69.5rem;
        height: 34.7rem;
        object-fit: cover;
    }

    .infoContent {
        position: absolute;
        top: 51.5rem;
        left: 1.7rem;
        display: block;
        width: 69.6rem;
    }

    .infoSchedule {
        position: relative;
        width: 69.6rem;
        height: 32.4rem;
    }

    .infoScheduleTable {
        width: 69.6rem;
        height: 23.7rem;
        border-collapse: collapse;
        table-layout: fixed;
        font-family: var(--font-gothic);
    }

    .infoScheduleTable th,
    .infoScheduleTable td {
        padding: 0;
        text-align: center;
        vertical-align: middle;
    }

    .infoScheduleTable thead th {
        height: 6.2rem;
        background: #4b3626;
        color: #fff;
        font-size: 2.4rem;
        font-weight: 700;
        line-height: 1;
    }

    .infoScheduleTable thead th:first-child {
        width: 18.0rem;
    }

    .infoScheduleTable tbody th,
    .infoScheduleTable tbody td {
        height: 8.75rem;
        background: #ebe7e3;
        border-bottom: 0.1rem solid #7c746f;
    }

    .infoScheduleTable tbody th {
        padding-left: 2.0rem;
        color: #161616;
        font-size: 2.4rem;
        font-weight: 700;
        line-height: 1;
        text-align: left;
    }

    .infoScheduleTable tbody td {
        color: #c89b5d;
        font-size: 2.2rem;
        font-weight: 700;
        line-height: 1;
    }

    .infoOpen,
    .infoClosed {
        display: inline-block;
        color: #c89b5d;
        font-weight: 700;
        line-height: 1;
    }

    .infoScheduleNote {
        width: 63.7rem;
        margin: 1.7rem 0 0 1.5rem;
        color: #3e352e;
        font-family: var(--font-gothic);
        font-size: 2.4rem;
        font-weight: 400;
        line-height: 1.65;
        white-space: normal;
        letter-spacing: -0.03rem;
    }

    .infoPcSpace {
        display: none;
    }

    .infoSpBreak {
        display: block;
    }

    .infoClinic {
        position: absolute;
        top: 37.5rem;
        left: 2.1rem;
        width: 57rem;
        margin: 0;
        padding: 0;
        color: #3e352e;
        font-family: var(--font-gothic);
        text-align: left;
    }

    .infoClinicName,
    .infoClinicLabel {
        margin: 0;
        font-size: 2.8rem;
        font-weight: 700;
        line-height: 1;
    }

    .infoClinicText {
        margin: 2.2rem 0 0;
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1.85;
    }

    .infoClinicLabel {
        margin-top: 3.4rem;
    }
}

@media screen and (max-width: 768px) {
    .conceptSection {
        display: block;
        position: relative;
        width: 100%;
        height: 278.8rem;
        overflow: hidden;
        background: #d9d1ca;
    }

    .conceptVisual {
        position: relative;
        z-index: 20;
        width: 100%;
        height: 103.9rem;
        overflow: visible;
        background: none;
    }

    .conceptVisual::before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        z-index: 10;
        width: 75.0rem;
        height: 136.6rem;
        background: url("../img/concept_top_sp.png") center top / 75.0rem 136.6rem no-repeat;
        transform: translateX(-50%);
        pointer-events: none;
    }

    .conceptVisualImage {
        width: 75.0rem;
        height: 103.9rem;
        object-fit: cover;
        opacity: 0;
    }

    .conceptBgTitle {
        position: absolute;
        top: 0.7rem;
        left: 0.6rem;
        width: 68.7rem;
        margin: 0;
        color: rgba(83, 74, 67, 0.27);
        font-family: var(--font-mincho);
        font-size: 13.8rem;
        font-weight: 300;
        line-height: 0.76;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .conceptBgTitle::first-letter {
        color: rgba(200, 155, 93, 0.28);
    }

    .conceptCatch {
        position: absolute;
        top: 32.7rem;
        left: 2.6rem;
        width: 69.8rem;
        height: 103.4rem;
        background: #fff;
        clip-path: polygon(0 11.4%, 100% 0, 100% 87.5%, 0 99%);
        opacity: 0;
    }

    .conceptCatchBand {
        position: absolute;
        top: 15.0rem;
        left: 5.5rem;
        width: 12.6rem;
        height: 82.7rem;
        background: #c89b5d;
        clip-path: polygon(100% 0, 100% 92%, 0 100%, 0 8%);
    }

    .conceptCatchBandText,
    .conceptCatchText {
        position: absolute;
        margin: 0;
        font-family: var(--font-mincho);
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        writing-mode: vertical-rl;
        text-orientation: upright;
    }

    .conceptCatchBandText {
        top: 8.1rem;
        left: 4.0rem;
        width: 4.3rem;
        height: 67.2rem;
        color: #fff;
        font-size: 3.3rem;
        font-weight: 600;
        line-height: 1.18;
    }

    .conceptCatchText {
        color: #3f362f;
        font-size: 7.0rem;
    }

    .conceptCatchDentist {
        top: 21.0rem;
        left: 23.4rem;
        color: #c89b5d;
        font-size: 9.2rem;
        letter-spacing: 0.06em;
        line-height: 1.04;
    }

    .conceptCatchSuffix {
        top: 60.5rem;
        left: 24.5rem;
        font-size: 6.6rem;
        letter-spacing: 0.16em;
        line-height: 1.04;
    }

    .conceptCatchMiddle {
        top: 20.8rem;
        left: 38.7rem;
        font-size: 6.4rem;
        letter-spacing: 0.07em;
        line-height: 1.16;
    }

    .conceptCatchMain {
        top: 9.9rem;
        left: 52.0rem;
        color: #c89b5d;
        font-size: 8.2rem;
        line-height: 1.16;
    }

    .conceptCatchMain::before,
    .conceptCatchMain::after {
        content: "";
        position: absolute;
        right: -3.1rem;
        width: 4.4rem;
        height: 4.4rem;
        border-color: #c89b5d;
        border-style: solid;
    }

    .conceptCatchMain::before {
        top: -3.6rem;
        border-width: 0.4rem 0.4rem 0 0;
    }

    .conceptCatchMain::after {
        bottom: -2.4rem;
        border-width: 0 0.4rem 0.4rem 0;
    }

    .conceptBody {
        position: relative;
        z-index: 10;
        width: 100%;
        height: 174.9rem;
        background: #d9d1ca;
    }

    .conceptBodyInner {
        position: relative;
        width: 75.0rem;
        height: 174.9rem;
        margin: 0 auto;
    }

    .conceptLead,
    .conceptText,
    .conceptMessage {
        position: absolute;
        margin: 0;
        color: #3f3832;
        font-family: var(--font-gothic);
        font-size: 3.2rem;
        font-weight: 400;
        line-height: 1.78;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: normal;
    }

    .conceptLead {
        top: 36.7rem;
        left: 2.1rem;
        width: 70.6rem;
    }

    .conceptText {
        top: 64.1rem;
        left: 2.1rem;
        width: 70.6rem;
    }

    .conceptMessage {
        top: 86.8rem;
        left: 2.1rem;
        width: 70.6rem;
        font-weight: 400;
    }

    .conceptMessageStrong {
        font-weight: 700;
    }

    .conceptSpBreak {
        display: block;
    }

    .conceptMessage::first-line {
        font-weight: 700;
    }

    .conceptPhotos {
        position: absolute;
        top: 114.1rem;
        left: 0;
        width: 75.2rem;
        height: 54.9rem;
    }

    .conceptPhotoFrame {
        position: absolute;
        width: 37.4rem;
        height: 26.5rem;
        overflow: hidden;
        /* background: #fff; */
    }

    .conceptPhotoFrameFirst {
        top: 0;
        left: -1.3rem;
    }

    .conceptPhotoFrameSecond {
        top: 0;
        left: 37.8rem;
    }

    .conceptPhotoFrameThird {
        top: 28.5rem;
        left: 17.6rem;
        height: 26.4rem;
    }

    .conceptPhotoFrame::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        z-index: 10;
        width: 11.1rem;
        height: 9.1rem;
        background: #d9d1ca;
        clip-path: polygon(0 0, 100% 0, 0 100%);
    }

    .conceptPhoto {
        position: absolute;
        max-width: none;
        /* object-fit: cover; */
    }

    .conceptPhotoFrameFirst .conceptPhoto {
        top: 0.2rem;
        left: -2.4rem;
        width: 43.7rem;
        height: 29.2rem;
    }

    .conceptPhotoFrameSecond .conceptPhoto {
        top: -0.6rem;
        left: -2.0rem;
        width: 42.8rem;
        height: 28.7rem;
    }

    .conceptPhotoFrameThird .conceptPhoto {
        top: 0.1rem;
        left: -0.3rem;
        width: 39.5rem;
        height: 26.3rem;
    }

    .caseSection {
        display: block;
        position: relative;
        width: 100%;
        height: 157.3rem;
        overflow: hidden;
        background: #ece7e3;
    }

    .caseSection::before,
    .caseSection::after {
        content: "";
        position: absolute;
        left: 50%;
        width: 75.0rem;
        pointer-events: none;
        transform: translateX(-50%);
    }

    .caseSection::before {
        top: 0;
        height: 44.0rem;
        background: url("../img/case_bg1-sp.jpg") center top / 75.0rem 44.0rem no-repeat;
    }

    .caseSection::after {
        top: 44.2rem;
        height: 118.1rem;
        background: url("../img/case_bg2-sp.jpg") center top / 75.0rem 117.1rem no-repeat;
    }

    .caseHeader,
    .casePanel {
        position: absolute;
        z-index: 10;
    }

    .caseHeader {
        top: 4.8rem;
        left: 4.9rem;
        width: 65.0rem;
        height: 26.0rem;
        color: #fff;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .caseHeaderEn {
        position: absolute;
        top: 0;
        left: 26.8rem;
        width: 10.5rem;
        margin: 0;
        font-size: 3.0rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.12em;
    }

    .caseHeaderIcon {
        position: absolute;
        top: 4.5rem;
        left: 27.1rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .caseHeaderDot,
    .caseHeaderLine {
        position: absolute;
        display: block;
        background: #fff;
    }

    .caseHeaderDot {
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
    }

    .caseHeaderDotLeft {
        left: 0;
    }

    .caseHeaderDotRight {
        right: 0;
    }

    .caseHeaderLine {
        top: 0.6rem;
        left: 0.4rem;
        width: 9.0rem;
        height: 0.1rem;
    }

    .caseHeaderTitle {
        position: absolute;
        top: 8.2rem;
        left: 24.8rem;
        width: 15.4rem;
        margin: 0;
        font-family: var(--font-mincho);
        font-size: 7.3rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
    }

    .caseHeaderDivider {
        position: absolute;
        top: 18.1rem;
        left: 0;
        display: block;
        width: 65.0rem;
        height: 0.1rem;
        background: rgba(255, 255, 255, 0.88);
    }

    .caseHeaderLead {
        position: absolute;
        top: 22.0rem;
        left: 7.5rem;
        width: 47.4rem;
        margin: 0;
        font-size: 4.1rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .casePanel {
        top: 37.7rem;
        left: 0.8rem;
        width: 73.4rem;
        height: 115.6rem;
        background: #fff;
    }

    .casePanelTitle,
    .caseImages,
    .caseInfo {
        position: absolute;
    }

    .casePanelTitle {
        top: 4.5rem;
        left: 1.4rem;
        width: 70.5rem;
        height: 6.1rem;
        color: #3f362f;
        font-family: var(--font-mincho);
    }

    .casePanelLabel,
    .casePanelName {
        position: absolute;
        top: 0;
        margin: 0;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .casePanelLabel {
        left: 2.1rem;
        width: 7.7rem;
        font-size: 3.7rem;
    }

    .casePanelName {
        left: 12.0rem;
        width: 27.6rem;
        font-size: 3.8rem;
    }

    .casePanelTitleLine {
        position: absolute;
        top: 6.0rem;
        left: 0;
        display: block;
        width: 70.5rem;
        height: 0.1rem;
        background: #cda261;
    }

    .caseImages {
        top: 13.8rem;
        left: 2.1rem;
        width: 68.9rem;
        height: 27.1rem;
    }

    .caseImageBox,
    .caseImageCaption {
        position: absolute;
    }

    .caseImageBox {
        top: 0;
        width: 32.7rem;
        height: 24.1rem;
        background: #ccc;
    }

    .caseImageBefore {
        left: 0;
    }

    .caseImageAfter {
        left: 36.2rem;
    }

    .caseImageCaption {
        top: 25.2rem;
        margin: 0;
        color: #313131;
        font-family: var(--font-gothic);
        font-size: 2.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
        text-align: center;
    }

    .caseImageCaptionBefore {
        left: 13.3rem;
        width: 7.0rem;
    }

    .caseImageCaptionAfter {
        left: 50.4rem;
        width: 5.4rem;
    }

    .caseInfo {
        top: 45.1rem;
        left: 4.2rem;
        width: 64.2rem;
        height: 64.2rem;
        color: #313131;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        line-height: 1.75;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .caseInfoLabel,
    .caseInfoText {
        position: absolute;
        margin: 0;
        color: #313131;
        text-align: left;
    }

    .caseInfoLabel {
        left: 0.1rem;
        font-size: 2.8rem;
        font-weight: 700;
        line-height: 1;
        white-space: nowrap;
    }

    .caseInfoText {
        left: 0.8rem;
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1.75;
        white-space: normal;
    }

    .caseInfoPeriodText,
    .caseInfoCostText {
        white-space: nowrap;
    }

    .caseInfoPeriodLabel {
        top: 0;
        width: 12.7rem;
    }

    .caseInfoPeriodText {
        top: 4.7rem;
        width: 36.0rem;
    }

    .caseInfoCostLabel {
        top: 12.0rem;
        width: 9.9rem;
    }

    .caseInfoCostText {
        top: 16.4rem;
        width: 25.9rem;
    }

    .caseInfoTreatmentLabel {
        top: 23.6rem;
        width: 12.7rem;
    }

    .caseInfoTreatmentText {
        top: 28.7rem;
        width: 62.9rem;
    }

    .caseInfoRiskLabel {
        top: 41.0rem;
        width: 21.1rem;
    }

    .caseInfoRiskText {
        left: 0;
        top: 46.6rem;
        width: 64.2rem;
        line-height: 1.75;
    }

    .caseInfoRiskText br {
        display: none;
    }

    .voiceSection {
        display: block;
        position: relative;
        width: 100%;
        height: 129.3rem;
        margin-top: 2.8rem;
        overflow: hidden;
        background: #ede9e6;
    }

    .voiceTitle,
    .voicePhotoFrame,
    .voiceMessage {
        position: absolute;
    }

    .voicePhotoFrame {
        top: 3.6rem;
        left: 0;
        z-index: 10;
        width: 75.0rem;
        height: 37.2rem;
        overflow: visible;
        clip-path: inset(-3.6rem 0 0 0);
    }

    .voicePhotoPicture {
        display: block;
        width: 75.0rem;
        height: 37.2rem;
    }

    .voicePhoto {
        display: block;
        position: static;
        width: 75.0rem;
        height: 37.2rem;
        max-width: none;
        object-fit: cover;
    }

    .voicePhotoText {
        position: absolute;
        top: -3.6rem;
        left: 65.4rem;
        width: 9.8rem;
        height: 40.8rem;
        margin: 0;
        color: rgba(108, 85, 67, 0.34);
        font-family: var(--font-mincho);
        font-size: 12.2rem;
        font-weight: 300;
        line-height: 0.82;
        letter-spacing: 0.02em;
        writing-mode: vertical-rl;
        text-orientation: mixed;
    }

    .voicePhotoText::first-letter {
        color: rgba(200, 155, 93, 0.34);
    }

    .voiceTitle {
        top: 45.5rem;
        left: 2.3rem;
        z-index: 20;
        width: 70.8rem;
        height: 17.6rem;
        color: #333;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .voiceTitleLine {
        position: absolute;
        left: 0;
        display: block;
        width: 70.8rem;
        height: 0.1rem;
        background: #6c5543;
    }

    .voiceTitleLineTop {
        top: 0;
    }

    .voiceTitleLineBottom {
        top: 10.8rem;
    }

    .voiceTitleMain,
    .voiceTitleCatch {
        position: absolute;
        margin: 0;
        font-family: var(--font-mincho);
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        white-space: nowrap;
    }

    .voiceTitleMain {
        top: 3.8rem;
        left: 0.9rem;
        width: 64.8rem;
        color: #333;
        font-size: 4rem;
        text-align: center;
    }
    .voiceTitleMain .voiceTitleMain-small{
        font-size: 3.6rem;
    }

    .voiceTitleMain br,
    .voiceTitleCatch br {
        display: none;
    }

    .voiceTitleCatch {
        top: 14.0rem;
        left: -0.3rem;
        width: 67.6rem;
        color: #c89b5d;
        font-size: 3.3rem;
        font-weight: 600;
        letter-spacing: 0.04em;
        text-align: center;
    }

    .voiceMessage {
        top: 67.4rem;
        left: 1.6rem;
        z-index: 30;
        width: 71.9rem;
        height: 54.4rem;
        background: #fff;
        color: #333;
        font-family: var(--font-mincho);
    }

    .voiceMessageCorner {
        position: absolute;
        display: block;
        width: 14.2rem;
        height: 14.0rem;
        pointer-events: none;
    }

    .voiceMessageCorner::before,
    .voiceMessageCorner::after {
        content: "";
        position: absolute;
        display: block;
        background: #6c5543;
    }

    .voiceMessageCornerLeft {
        top: 1.2rem;
        left: 1.7rem;
    }

    .voiceMessageCornerRight {
        right: 1.7rem;
        bottom: 1.6rem;
    }

    .voiceMessageCornerLeft::before,
    .voiceMessageCornerRight::before {
        width: 14.2rem;
        height: 0.1rem;
    }

    .voiceMessageCornerLeft::after,
    .voiceMessageCornerRight::after {
        width: 0.1rem;
        height: 14.0rem;
    }

    .voiceMessageCornerLeft::before,
    .voiceMessageCornerLeft::after {
        top: 0;
        left: 0;
    }

    .voiceMessageCornerRight::before {
        right: 0;
        bottom: 0;
    }

    .voiceMessageCornerRight::after {
        right: 0;
        bottom: 0;
    }

    .voiceMessageText {
        position: absolute;
        left: 6.0rem;
        width: 58.4rem;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 5.0rem;
        letter-spacing: 0;
        /* text-align: center; */
        white-space: normal;
    }

    .voiceMessageTextFirst {
        top: 5.5rem;
    }

    .voiceMessageTextSecond {
        top: 29.1rem;
    }

    .voiceMessageStrong {
        font-weight: 700;
    }

    .featureSection {
        display: block;
        position: relative;
        width: 100%;
        height: 507.1rem;
        overflow: hidden;
        background: #ede9e6;
        margin-top: 2rem;
    }

    .featureSection::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 75.0rem;
        height: 154.3rem;
        background: url("../img/feature_bg-sp.jpg") center top / 75.0rem 154.3rem no-repeat;
    }

    .featureTitle,
    .featureItem,
    .featurePhotoFrame,
    .featureContent,
    .featureNumber,
    .featureItemTitle,
    .featureItemLine,
    .featureItemText {
        position: absolute;
    }

    .featureTitle {
        top: 9.3rem;
        left: -1.5rem;
        z-index: 20;
        width: 78.0rem;
        height: 25.0rem;
        color: #3f362f;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .featureTitleEn {
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
    }
/*
    .featureTitleEn::first-letter {
        color: #000;
    }*/

    .featureTitleIcon {
        position: absolute;
        top: 4.5rem;
        left: 33.8rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .featureTitleDot,
    .featureTitleLine {
        position: absolute;
        display: block;
        background: #c89b5d;
    }

    .featureTitleDot {
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
    }

    .featureTitleDotLeft {
        left: 0;
    }

    .featureTitleDotRight {
        right: 0;
    }

    .featureTitleLine {
        top: 0.6rem;
        left: 0.3rem;
        width: 9.0rem;
        height: 0.1rem;
    }

    .featureTitleMain {
        position: absolute;
        top: 9.2rem;
        left: 7.2rem;
        width: 63.0rem;
        margin: 0;
        color: #333;
        font-family: var(--font-mincho);
        font-size: 6.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        white-space: nowrap;
    }

    .featureTitleDivider {
        position: absolute;
        top: 18.1rem;
        left: 0;
        display: block;
        width: 78.0rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .featureTitleLead {
        position: absolute;
        top: 21.4rem;
        left: 0;
        width: 78.0rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-mincho);
        font-size: 3.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .featureItem {
        left: 0;
        z-index: 10;
        width: 75.0rem;
        background: #ede9e6;
    }

    .featureItemFirst {
        top: 40.8rem;
        height: 90.0rem;
        background: transparent;
    }

    .featureItemSecond {
        top: 159.2rem;
        height: 111rem;
        background: #dcd5cf;
    }

    .featureItemThird {
        top: 269.7rem;
        height: 117.9rem;
        background: #fff;
    }

    .featureItemFourth {
        top: 387.6rem;
        height: 122.0rem;
    }

    .featureItemFourth::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        z-index: 0;
        width: 75.0rem;
        height: 6.5rem;
        background: #fff;
    }

    .featurePhotoFrame {
        top: 7px;
        z-index: 10;
        width: 59.3rem;
        height: 42.0rem;
        overflow: hidden;
    }

    .featurePhotoFrameLeft {
        left: 1.9rem;
    }

    .featurePhotoFrameRight {
        left: 13.8rem;
    }

    .featurePhoto {
        display: block;
        width: 59.3rem;
        height: 42.0rem;
        max-width: none;
        object-fit: cover;
    }

    .featureContent {
        top: 0;
        left: 0;
        z-index: 20;
        width: 75.0rem;
        height: 100%;
        color: #3f362f;
        font-family: var(--font-mincho);
    }

    .featureNumber {
        top: 0;
        z-index: 30;
        width: 25.7rem;
        height: 25.8rem;
        background: transparent;
        color: #333;
        font-family: var(--font-mincho);
        text-align: left;
    }

    .featureNumber::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        display: block;
        background: #fff;
    }

    .featureNumberRight {
        right: -0.6rem;
    }

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

    .featureNumberLeft {
        left: -0.1rem;
    }

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

    .featureNumberText {
        position: absolute;
        top: 2.2rem;
        left: 5.6rem;
        z-index: 1;
        margin: 0;
        color: #333;
        font-size: 13.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.06em;
        white-space: nowrap;
    }

    .featureNumberDigitGold {
        color: #c89b5d;
    }

    .featureNumberLabel {
        position: absolute;
        top: 15.7rem;
        left: 5.3rem;
        z-index: 1;
        width: 16.0rem;
        margin: 0;
        color: #000;
        font-size: 2.8rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.16em;
        white-space: nowrap;
    }

    .featureItemThird .featureNumber::before {
        background: #ede9e6;
    }

    .featureItemThird .featurePhotoFrame {
        top: 1.8rem;
    }

    .featureItemTitle {
        top: 45.7rem;
        left: 13.3rem;
        width: 50.4rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-mincho);
        font-size: 4.4rem;
        font-weight: 400;
        line-height: 1.59;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .featureItemLine {
        top: 60.6rem;
        left: 3.2rem;
        display: block;
        width: 68.8rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .featureItemText {
        top: 63.7rem;
        left: 5.2rem;
        width: 64.2rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1.79;
        letter-spacing: 0.02em;
        text-align: left;
        white-space: normal;
    }

    .featureItemSecond .featureItemTitle {
        top: 45.5rem;
        left: 18.6rem;
        width: 40.8rem;
    }

    .featureItemSecond .featureItemLine {
        top: 60.4rem;
        left: 2.9rem;
    }

    .featureItemSecond .featureItemText {
        top: 63.6rem;
        left: 5.1rem;
    }

    .featureItemThird .featureItemTitle {
        top: 46.4rem;
        left: 20.9rem;
        width: 35rem;
    }

    .featureItemThird .featureItemLine {
        top: 61.3rem;
        left: 3.1rem;
    }

    .featureItemThird .featureItemText {
        top: 64.5rem;
        left: 5.3rem;
        width: 63.1rem;
    }

    .featureItemFourth .featureItemTitle {
        top: 45.6rem;
        left: 15.2rem;
        width: 45.7rem;
    }

    .featureItemFourth .featureItemLine {
        top: 60.5rem;
        left: 2.9rem;
    }

    .featureItemFourth .featureItemText {
        top: 63.7rem;
        left: 5.1rem;
    }

    .serviceSection {
        display: block;
        position: relative;
        width: 100%;
        height: 398.4rem;
        overflow: hidden;
        background: #d2cfca url("../img/service_bg2.jpg") center 51.1rem / 398.4rem auto repeat-y;
    }

    .serviceSection::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0;
        width: 75.0rem;
        height: 51.3rem;
        background: url("../img/service_bg1-sp.jpg") center top / 75.0rem 51.0rem no-repeat;
    }

    .serviceTitle,
    .serviceTitleLine,
    .serviceCards,
    .serviceCard,
    .serviceCardLabel,
    .serviceCardPhotoFrame,
    .serviceCardTitle,
    .serviceCardLine,
    .serviceCardText,
    .serviceCardButton {
        position: absolute;
    }

    .serviceTitle {
        top: 4.0rem;
        left: 23.2rem;
        z-index: 10;
        width: 28.1rem;
        height: 38.7rem;
        color: #fff;
        font-family: var(--font-mincho);
    }

    .serviceTitleLine {
        top: 0;
        width: 0.1rem;
        height: 38.7rem;
        background: rgba(255, 255, 255, 0.85);
    }

    .serviceTitleLineLeft {
        left: 0;
    }

    .serviceTitleLineRight {
        right: 0;
    }

    .serviceTitleText {
        position: absolute;
        top: -1.1rem;
        left: 8.0rem;
        width: 12.2rem;
        height: 35.0rem;
        margin: 0;
        color: #fff;
        font-family: var(--font-mincho);
        font-size: 4.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
    }

    .serviceTitlePhrase {
        position: absolute;
        display: block;
        writing-mode: vertical-rl;
        text-orientation: mixed;
        white-space: nowrap;
    }

    .serviceTitlePhraseRight {
        top: 0;
        right: 0;
    }

    .serviceTitlePhraseLeft {
        top: 7.2rem;
        left: 0;
    }

    .serviceCards {
        top: 47.5rem;
        left: 2.7rem;
        z-index: 20;
        width: 69.3rem;
        height: 342.5rem;
    }

    .serviceCard {
        left: 0;
        width: 69.3rem;
        background: #fff;
        color: #3f362f;
        font-family: var(--font-mincho);
    }

    .serviceCardFirst {
        top: 0;
        height: 113.3rem;
    }

    .serviceCardSecond {
        top: 117.7rem;
        height: 113.3rem;
    }

    .serviceCardThird {
        top: 235.2rem;
        height: 108.3rem;
    }

    .serviceCardLabel {
        top: 0.7rem;
        left: 0.7rem;
        width: 67.9rem;
        height: 11.3rem;
        margin: 0;
        color: #fff;
        font-size: 5.2rem;
        font-weight: 600;
        line-height: 11.3rem;
        letter-spacing: 0;
        text-align: center;
        white-space: nowrap;
        background: #6c5746;
    }

    .serviceCardSecond .serviceCardLabel {
        background: #c39861;
    }

    .serviceCardThird .serviceCardLabel {
        background: #7e4210;
    }

    .serviceCardPhotoFrame {
        top: 14.3rem;
        left: 2.1rem;
        width: 65.3rem;
        height: 34.2rem;
        overflow: hidden;
        /* border: 0.1rem solid rgba(255, 255, 255, 0.7); */
        /* outline: 0.1rem solid rgba(255, 255, 255, 0.7); */
        outline-offset: -1.3rem;
    }

    .serviceCardThird .serviceCardPhotoFrame {
        left: 2.3rem;
    }

    .serviceCardPhoto {
        display: block;
        width: 65.3rem;
        height: 34.2rem;
        max-width: none;
        object-fit: cover;
    }

    .serviceCardTitle {
        top: 51.8rem;
        left: 0;
        width: 69.3rem;
        margin: 0;
        color: #3f362f;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
        text-align: center;
        white-space: nowrap;
    }

    .serviceCardLine {
        top: 58.6rem;
        left: 2.4rem;
        display: block;
        width: 64.9rem;
        height: 0.1rem;
        background: #c39861;
    }

    .serviceCardText {
        top: 62.0rem;
        left: 4.6rem;
        width: 59.1rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1.79;
        letter-spacing: 0.02em;
        text-align: left;
        white-space: normal;
    }

    .serviceCardSecond .serviceCardText {
        top: 61.9rem;
        left: 4.7rem;
        width: 58.6rem;
    }

    .serviceCardThird .serviceCardText {
        top: 62.0rem;
        left: 4.7rem;
        width: 58.9rem;
    }

    .serviceCardButton {
        top: 99.2rem;
        left: 14.7rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1.4rem;
        width: 39.4rem;
        height: 8.7rem;
        color: #fff;
        font-family: var(--font-mincho);
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0;
        text-align: center;
        white-space: nowrap;
        background: #4b3525;
        border-radius: 0.6rem;
    }

    .serviceCardSecond .serviceCardButton {
        top: 100.2rem;
    }

    .serviceCardThird .serviceCardButton {
        top: 96.2rem;
    }

    .serviceCardButtonIcon {
        width: 1.6rem;
        height: 2.1rem;
        flex: 0 0 auto;
    }

    .onayamiSection {
        display: block;
        position: relative;
        z-index: 30;
        width: 100%;
        height: 302.9rem;
        margin-top: 3.2rem;
        overflow: hidden;
        background: #ede9e6 url("../img/onayami_bg-sp.jpg") center top / 75.0rem 302.9rem no-repeat;
        font-family: var(--font-mincho);
    }

    .onayamiTitle,
    .onayamiTitleLabel,
    .onayamiTitleIcon,
    .onayamiTitleMain,
    .onayamiTitleLine,
    .onayamiCards,
    .onayamiCard,
    .onayamiCardFrame,
    .onayamiCardCorner,
    .onayamiCardTitle,
    .onayamiCardNumber,
    .onayamiCardHeading,
    .onayamiCardLine,
    .onayamiCardPhotoFrame,
    .onayamiCardLead,
    .onayamiCardText,
    .onayamiCardButton {
        position: absolute;
    }

    .onayamiTitle {
        top: 8.0rem;
        left: 0;
        width: 75.0rem;
        height: 27.4rem;
        color: #333;
        font-family: var(--font-mincho);
    }

    .onayamiTitleLabel {
        top: 0;
        left: 27.0rem;
        width: 20.5rem;
        margin: 0;
        color: #000;
        font-size: 3.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.18em;
        text-align: center;
    }

    .featureNumberLabel::first-letter {
        color: #c89b5d;
    }

    .onayamiTitleLabel::first-letter {
        color: #c39863;
    }

    .onayamiTitleIcon {
        top: 4.5rem;
        left: 32.4rem;
        width: 10.1rem;
        height: 1.1rem;
        background: linear-gradient(#c39863, #c39863) center / 9.0rem 0.1rem no-repeat;
    }

    .onayamiTitleIcon::before,
    .onayamiTitleIcon::after {
        content: "";
        position: absolute;
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
        background: #c39863;
    }

    .onayamiTitleIcon::before {
        left: 0;
    }

    .onayamiTitleIcon::after {
        right: 0;
    }

    .onayamiTitleMain {
        top: 9.7rem;
        left: 1.8rem;
        width: 74.9rem;
        margin: 0;
        color: #333;
        font-size: 6.0rem;
        font-weight: 400;
        line-height: 1.45;
        letter-spacing: -0.5rem;
        text-align: center;
        white-space: normal;
    }

    .onayamiTitleLine {
        top: 28.3rem;
        left: 2rem;
        display: block;
        width: 71rem;
        height: 0.1rem;
        background: #c39961;
    }

    .onayamiCards {
        top: 40.8rem;
        left: 1.2rem;
        width: 72.2rem;
        height: 252.3rem;
    }

    .onayamiCard {
        left: 0;
        width: 72.2rem;
        height: 124.1rem;
        font-family: var(--font-mincho);
    }

    .onayamiCardFirst {
        top: 0;
        color: #fff;
        background: #6c5746;
    }

    .onayamiCardSecond {
        top: 128.2rem;
        color: #333;
        background: #cdc3ba;
    }

    .onayamiCardFrame {
        top: 1.0rem;
        left: 1.0rem;
        width: 70.2rem;
        height: 122.1rem;
        border: 0.1rem solid rgba(255, 255, 255, 0.75);
        pointer-events: none;
    }

    .onayamiCardCorner {
        right: 1.8rem;
        bottom: 1.8rem;
        width: 9.1rem;
        height: 9.1rem;
        background: linear-gradient(135deg, transparent 0 50%, #fff 51% 100%);
    }

    .onayamiCardTitle {
        top: 4.8rem;
        left: 2.8rem;
        width: 66.6rem;
        height: 14.2rem;
    }

    .onayamiCardNumber {
        top: 0;
        left: 1.1rem;
        width: 13.8rem;
        margin: 0;
        color: #fff;
        font-size: 10.2rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0;
    }

    .onayamiCardFirst .onayamiCardNumber {
        width: 13.1rem;
    }

    .onayamiCardHeading {
        top: 0;
        left: 14.5rem;
        width: 52.3rem;
        margin: 0;
        font-size: 4.4rem;
        font-weight: 400;
        line-height: 1.33;
        letter-spacing: 0.02em;
        text-align: left;
        white-space: normal;
    }

    .onayamiCardLine {
        top: 13.1rem;
        left: 0;
        display: block;
        width: 66.6rem;
        height: 1.1rem;
        background: #c39863;
    }

    .onayamiCardSecond .onayamiCardLine {
        background: #4b392b;
    }

    .onayamiCardPhotoFrame {
        top: 20.7rem;
        left: 10.0rem;
        width: 53.5rem;
        height: 41.8rem;
        overflow: hidden;
    }

    .onayamiCardPhoto {
        width: 53.5rem;
        height: 41.8rem;
        max-width: none;
        object-fit: cover;
    }

    .onayamiCardLead {
        top: 66.2rem;
        left: 6.5rem;
        width: 45.2rem;
        margin: 0;
        font-size: 4rem;
        font-weight: 400;
        line-height: 1.55;
        letter-spacing: 0.04em;
        text-align: left;
        white-space: normal;
    }

    .onayamiCardFirst .onayamiCardLead {
        width: 55.2rem;
    }

    .onayamiSpBreak {
        display: block;
    }

    .onayamiCardSecond .onayamiCardLead {
        width: 45.2rem;
    }

    .onayamiCardText {
        top: 81.8rem;
        left: 6.1rem;
        width: 60.0rem;
        margin: 0;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1.79;
        letter-spacing: 0.02em;
        text-align: left;
        white-space: normal;
    }

    .onayamiCardSecond .onayamiCardText {
        width: 59.5rem;
    }

    .onayamiCardButton {
        top: 110.0rem;
        left: 18.7rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1.8rem;
        width: 34.4rem;
        height: 8.7rem;
        color: #4b3a2a;
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
        background: #fff;
        border-radius: 0.6rem;
    }

    .onayamiCardButtonIcon {
        flex: 0 0 auto;
        width: 1.3rem;
        height: 1.7rem;
        object-fit: contain;
    }


}

@media screen and (max-width: 768px) {
    .omakaseSection {
        display: block;
        position: relative;
        width: 100%;
        height: 256.2rem;
        overflow: hidden;
        background: #e9e6e2 url("../img/omakase_bg-sp.jpg") center top / 75.0rem 290.2rem no-repeat;
        font-family: var(--font-mincho);
    }
/*
    .omakaseSection::before {
        content: "";
        position: absolute;
        top: 103.4rem;
        left: 0;
        width: 100%;
        height: 157.8rem;
        background: rgba(233, 230, 226, 0.96);
        pointer-events: none;
    }*/

    .omakaseTitleBox,
    .omakaseTitleGold,
    .omakaseTitleText,
    .omakaseCards,
    .omakaseCard,
    .omakaseCardIcon,
    .omakaseCardLine,
    .omakaseCardTitle,
    .omakaseCardLabel,
    .omakaseCardCorner,
    .omakaseLead {
        position: absolute;
    }

    .omakaseTitleBox {
        top: 39.5rem;
        left: 2.7rem;
        z-index: 2;
        width: 69.6rem;
        height: 68.2rem;
        background: #fff;
    }

    .omakaseTitleGold {
        top: 4.3rem;
        left: 4.4rem;
        width: 20.6rem;
        height: 58.7rem;
        color: #fff;
        background: #c39861;
        clip-path: polygon(0 8%, 100% 0, 100% 92%, 0 100%);
    }

    .omakaseTitleGold p {
        position: absolute;
        top: 9.8rem;
        left: 3.7rem;
        width: 10.8rem;
        height: 43.5rem;
        margin: 0;
        font-size: 4.4rem;
        font-weight: 600;
        line-height: 1.56;
        letter-spacing: 0;
    }

    .omakaseTitleGoldLine {
        position: absolute;
        top: -2.5rem;
        writing-mode: vertical-rl;
        white-space: nowrap;
    }

    .omakaseTitleGoldLineRight {
        right: -2.5rem;
    }

    .omakaseTitleGoldLineLeft {
        left: 0;
    }

    .omakaseTitleText {
        margin: 0;
        color: #333;
        font-weight: 400;
        writing-mode: vertical-rl;
        text-orientation: mixed;
    }

    .omakaseTitleTextCenter {
        top: 29rem;
        left: 29rem;
        width: 7.5rem;
        height: 36.0rem;
        font-size: 8.0rem;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .omakaseTitleTextLarge {
        top: 6.0rem;
        left: 38.4rem;
        width: 22.2rem;
        height: 52.3rem;
        color: #c39861;
        font-size: 10.0rem;
        line-height: 1.3;
        letter-spacing: 0;
    }

    .omakaseTitleLargeLine {
        position: absolute;
        writing-mode: vertical-rl;
        white-space: nowrap;
    }

    .omakaseTitleLargeLineRight {
        top: 0;
        right: -27px;
    }

    .omakaseTitleLargeLineLeft {
        top: 11.0rem;
        left: -3px;
    }

    .omakaseCards {
        top: 112.5rem;
        left: 0;
        z-index: 2;
        width: 75.0rem;
        height: 118.9rem;
    }

    .omakaseCard {
        width: 35.6rem;
        height: 27.8rem;
        background: #fff;
    }

    .omakaseCard1 {
        top: 0;
        left: 1.1rem;
    }

    .omakaseCard2 {
        top: 0;
        left: 38.2rem;
    }

    .omakaseCard3 {
        top: 30.4rem;
        left: 1.1rem;
    }

    .omakaseCard4 {
        top: 30.4rem;
        left: 38.2rem;
    }

    .omakaseCard5 {
        top: 61.0rem;
        left: 1.1rem;
    }

    .omakaseCard6 {
        top: 61.0rem;
        left: 38.2rem;
    }

    .omakaseCard7 {
        top: 91.1rem;
        left: 17.6rem;
        width: 39.6rem;
    }

    .omakaseCardIcon {
        max-width: none;
        object-fit: contain;
    }

    .omakaseCard1 .omakaseCardIcon {
        top: 4.7rem;
        left: 14.0rem;
        width: 8.1rem;
        height: 8.5rem;
    }

    .omakaseCard2 .omakaseCardIcon {
        top: 4.7rem;
        left: 14.4rem;
        width: 7.2rem;
        height: 8.3rem;
    }

    .omakaseCard3 .omakaseCardIcon {
        top: 5.2rem;
        left: 11.5rem;
        width: 12.6rem;
        height: 7.3rem;
    }

    .omakaseCard4 .omakaseCardIcon {
        top: 5.3rem;
        left: 13.0rem;
        width: 9.7rem;
        height: 7.5rem;
    }

    .omakaseCard5 .omakaseCardIcon {
        top: 5.2rem;
        left: 12.4rem;
        width: 10.8rem;
        height: 8.0rem;
    }

    .omakaseCard6 .omakaseCardIcon {
        top: 6.1rem;
        left: 12.7rem;
        width: 10.2rem;
        height: 5.8rem;
    }

    .omakaseCard7 .omakaseCardIcon {
        top: 6.5rem;
        left: 11.0rem;
        width: 17.2rem;
        height: 5.5rem;
    }

    .omakaseCardLine {
        top: 14.6rem;
        left: 1.2rem;
        display: block;
        width: 33.2rem;
        height: 0.1rem;
        background: #c39861;
    }

    .omakaseCard7 .omakaseCardLine {
        left: 2.9rem;
    }

    .omakaseCardTitle {
        top: 17.7rem;
        margin: 0;
        color: #333;
        font-size: 3.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .omakaseCard1 .omakaseCardTitle {
        left: 3.7rem;
        width: 28.2rem;
    }

    .omakaseCard2 .omakaseCardTitle {
        left: 6.4rem;
        width: 22.8rem;
    }

    .omakaseCard3 .omakaseCardTitle {
        left: 1.0rem;
        width: 33.6rem;
    }

    .omakaseCard4 .omakaseCardTitle {
        left: 5.8rem;
        width: 24.0rem;
    }

    .omakaseCard5 .omakaseCardTitle {
        left: 5.8rem;
        width: 24.0rem;
    }

    .omakaseCard6 .omakaseCardTitle {
        left: 0.9rem;
        width: 33.8rem;
    }

    .omakaseCard7 .omakaseCardTitle {
        top: 16.9rem;
        left: 2.2rem;
        width: 35.2rem;
    }

    .omakaseCardLabel {
        top: 22.7rem;
        margin: 0;
        color: #c39861;
        font-size: 2.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
        white-space: nowrap;
    }

    .omakaseCard1 .omakaseCardLabel {
        left: 10.2rem;
        width: 15.1rem;
    }

    .omakaseCard2 .omakaseCardLabel {
        left: 14.4rem;
        width: 6.8rem;
    }

    .omakaseCard3 .omakaseCardLabel {
        left: 13.8rem;
        width: 8.0rem;
    }

    .omakaseCard4 .omakaseCardLabel {
        left: 11.2rem;
        width: 13.2rem;
    }

    .omakaseCard5 .omakaseCardLabel {
        left: 14.4rem;
        width: 6.8rem;
    }

    .omakaseCard6 .omakaseCardLabel {
        left: 13.7rem;
        width: 8.3rem;
    }

    .omakaseCard7 .omakaseCardLabel {
        left: 15.0rem;
        width: 9.2rem;
    }

    .omakaseCardCorner {
        top: 22.0rem;
        right: 1.0rem;
        display: block;
        width: 5.1rem;
        height: 5.1rem;
        background: linear-gradient(135deg, transparent 0 50%, #c39861 51% 100%);
    }

    .omakaseLead {
        top: 235.0rem;
        left: 7.5rem;
        z-index: 2;
        width: 60.0rem;
        margin: 0;
        color: #333;
        font-size: 4.77rem;
        font-weight: 400;
        line-height: 1.48;
        letter-spacing: 0.02em;
        text-align: center;
    }

    .medicalMenuSection {
        display: block;
        position: relative;
        width: 100%;
        height: 239.0rem;
        overflow: hidden;
        background: #fff url("../img/menu_bg1.jpg") center top / 192.0rem 100.0rem no-repeat;
        font-family: var(--font-mincho);
        margin-top: 4rem;
    }

    .medicalMenuSection::before {
        content: "";
        position: absolute;
        top: 44.1rem;
        left: 0;
        width: 100%;
        height: 194.9rem;
        background: url("../img/menu_bg2.jpg") center top / 192.2rem 202.9rem no-repeat;
    }

    .medicalMenuTitle,
    .medicalMenuTitleEn,
    .medicalMenuTitleIcon,
    .medicalMenuTitleDot,
    .medicalMenuTitleLineShort,
    .medicalMenuTitleMain,
    .medicalMenuTitleLine,
    .medicalMenuLead,
    .medicalMenuCards,
    .medicalMenuCard,
    .medicalMenuCardTitle,
    .medicalMenuCardLabel,
    .medicalMenuCardCorner {
        position: absolute;
    }

    .medicalMenuTitle {
        top: 8.0rem;
        left: -26.2rem;
        z-index: 2;
        width: 131.0rem;
        height: 18.2rem;
    }

    .medicalMenuTitleEn {
        top: 0;
        left: 53.9rem;
        width: 19.9rem;
        margin: 0;
        color: #000;
        font-size: 3.0rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
        text-align: center;
    }

    .medicalMenuTitleEn::first-letter {
        color: #c39861;
    }

    .medicalMenuTitleIcon {
        top: 4.5rem;
        left: 59.0rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .medicalMenuTitleDot {
        top: 0;
        display: block;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
        background: #c39861;
    }

    .medicalMenuTitleDotLeft {
        left: 0;
    }

    .medicalMenuTitleDotRight {
        right: 0;
    }

    .medicalMenuTitleLineShort {
        top: 0.5rem;
        left: 0.4rem;
        display: block;
        width: 9.3rem;
        height: 0.1rem;
        background: #c39861;
    }

    .medicalMenuTitleMain {
        top: 8.2rem;
        left: 42.2rem;
        width: 45.1rem;
        margin: 0;
        color: #333;
        font-size: 7.2rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuTitleLine {
        top: 18.1rem;
        left: 0;
        display: block;
        width: 131.0rem;
        height: 0.1rem;
        background: #c39861;
    }

    .medicalMenuLead {
        top: 30.4rem;
        left: 9.8rem;
        z-index: 2;
        width: 58.9rem;
        margin: 0;
        color: #333;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1.28;
        letter-spacing: 0.04em;
        text-align: center;
    }

    .medicalMenuCards {
        top: 48.0rem;
        left: 0;
        z-index: 2;
        width: 75.0rem;
        height: 184.4rem;
    }

    .medicalMenuCard {
        width: 35.9rem;
        height: 16.1rem;
        background: #fff;
    }

    .medicalMenuCard1,
    .medicalMenuCard3,
    .medicalMenuCard5,
    .medicalMenuCard7,
    .medicalMenuCard9,
    .medicalMenuCard11,
    .medicalMenuCard13,
    .medicalMenuCard15,
    .medicalMenuCard17,
    .medicalMenuCard19 {
        left: 0.7rem;
    }

    .medicalMenuCard2,
    .medicalMenuCard4,
    .medicalMenuCard6,
    .medicalMenuCard8,
    .medicalMenuCard10,
    .medicalMenuCard12,
    .medicalMenuCard14,
    .medicalMenuCard16,
    .medicalMenuCard18,
    .medicalMenuCard20 {
        left: 38.2rem;
    }

    .medicalMenuCard1,
    .medicalMenuCard2 {
        top: 0;
    }

    .medicalMenuCard3,
    .medicalMenuCard4 {
        top: 18.3rem;
    }

    .medicalMenuCard5,
    .medicalMenuCard6 {
        top: 36.8rem;
    }

    .medicalMenuCard7,
    .medicalMenuCard8 {
        top: 55.3rem;
    }

    .medicalMenuCard9,
    .medicalMenuCard10 {
        top: 73.7rem;
    }

    .medicalMenuCard11,
    .medicalMenuCard12 {
        top: 92.4rem;
    }

    .medicalMenuCard13,
    .medicalMenuCard14 {
        top: 111.3rem;
    }

    .medicalMenuCard15,
    .medicalMenuCard16 {
        top: 130.4rem;
    }

    .medicalMenuCard17,
    .medicalMenuCard18 {
        top: 149.4rem;
    }

    .medicalMenuCard19,
    .medicalMenuCard20 {
        top: 168.3rem;
    }

    .medicalMenuCardTitle {
        top: 5.7rem;
        left: 2.0rem;
        width: 31.9rem;
        margin: 0;
        color: #333;
        font-size: 3.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuCardNote {
        font-size: 2.8rem;
    }

    .medicalMenuCard11 .medicalMenuCardTitle {
        top: 3.3rem;
        left: 2.0rem;
        width: 31.9rem;
        line-height: 1.1;
        white-space: nowrap;
    }

    .medicalMenuSpBreak {
        display: block;
    }

    .medicalMenuCard7 .medicalMenuCardTitle,
    .medicalMenuCard15 .medicalMenuCardTitle {
        left: 0.8rem;
        width: 34.3rem;
        font-size: 3.2rem;
    }

    .medicalMenuCard16 .medicalMenuCardTitle {
        left: 0.6rem;
        width: 34.7rem;
        font-size: 2.9rem;
    }

    .medicalMenuCard14 .medicalMenuCardTitle,
    .medicalMenuCard18 .medicalMenuCardTitle,
    .medicalMenuCard19 .medicalMenuCardTitle {
        top: 3.3rem;
        line-height: 1.25;
    }

    .medicalMenuCardLabel {
        top: 10.5rem;
        left: 2.0rem;
        width: 31.9rem;
        margin: 0;
        color: #c39861;
        font-size: 1.9rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuCard11 .medicalMenuCardLabel,
    .medicalMenuCard14 .medicalMenuCardLabel,
    .medicalMenuCard18 .medicalMenuCardLabel,
    .medicalMenuCard19 .medicalMenuCardLabel {
        top: 12.2rem;
    }

    .medicalMenuCardCorner {
        right: 1.4rem;
        bottom: 1.0rem;
        display: block;
        width: 5.1rem;
        height: 5.1rem;
        background: linear-gradient(135deg, transparent 0 50%, #c39861 51% 100%);
    }

}

@media screen and (min-width: 769px) {
    .firstSection {
        display: block;
        position: relative;
        width: 100%;
        height: 153.8rem;
        overflow: hidden;
        background: #f3f2f0;
    }

    .firstVisual {
        position: relative;
        width: 100%;
        height: 93.5rem;
        overflow: visible;
    }

    .firstVisualImage {
        width: 192rem;
        height: 93.5rem;
        object-fit: cover;
    }

    .firstCopyBox {
        position: absolute;
        top: 4.9rem;
        left: 57.6rem;
        width: 79.4rem;
        height: 57.2rem;
        padding-top: 2.8rem;
        background: transparent;
        color: #4b3a2a;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .firstTitle {
        margin: 0;
        font-family: var(--font-mincho);
        font-size: 6.0rem;
        font-weight: 600;
        line-height: 0.95;
        letter-spacing: 0;
    }

    .firstLabel {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 71.8rem;
        height: 8.9rem;
        margin: 3.4rem auto 0;
        color: #c39961;
        font-family: var(--font-mincho);
        font-size: 4.4rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0;
        background: rgba(255, 255, 255, 0.88);
    }

    .firstText {
        margin: 0;
        color: #4b3a2a;
        font-family: var(--font-mincho);
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1.75;
        letter-spacing: 0;
        text-align: center;
    }

    .firstTextLead {
        margin-top: 3.1rem;
    }

    .firstTextBody {
        margin-top: 3.0rem;
    }

    .firstBadges {
        position: absolute;
        top: 63.8rem;
        left: 35.2rem;
        display: grid;
        grid-template-columns: 59.3rem 59.3rem;
        gap: 3.6rem 3.1rem;
        width: 121.7rem;
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .firstTitleConclusion {
        margin-left: -2rem;
    }

    .firstBadge {
        display: flex;
        align-items: center;
        width: 59.3rem;
        height: 9.8rem;
        padding: 0 2.0rem 0 1.8rem;
        background: #4b3626;
        color: #fff;
    }

    .firstBadgeIcon {
        flex: 0 0 auto;
        width: 5.3rem;
        height: 5.3rem;
        object-fit: contain;
    }

    .firstBadgeText {
        display: block;
        margin-left: 2.1rem;
        font-family: var(--font-gothic-bold);
        font-size: 3.4rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
        white-space: nowrap;
    }

    .firstMessage {
        position: relative;
        width: 100%;
        height: 35.8rem;
        padding-top: 3.8rem;
        background: #e9e4e0;
    }

    .firstMessageFrame {
        position: relative;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        align-items: center;
        width: 166.1rem;
        height: 24.8rem;
        margin: 0 auto;
        border: 0.4rem solid #d9bf82;
        background: #fff;
    }

    .firstMessageFrame::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -6.1rem;
        width: 20.9rem;
        height: 6.1rem;
        background: #d9bf82;
        clip-path: polygon(0 0, 100% 0, 50% 100%);
        transform: translateX(-50%);
    }

    .firstMessageText {
        position: relative;
        margin: 0;
        color: #4b3a2a;
        font-family: var(--font-mincho);
        font-size: 4.0rem;
        font-weight: 600;
        line-height: 1.75;
        letter-spacing: 0.02em;
        text-align: center;
    }

    .firstMessageTextSecond::before,
    .firstMessageTextThird::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        width: 0.1rem;
        height: 18.1rem;
        background: #dfd2b1;
        transform: translateY(-50%);
    }

    .firstMessageText span {
        color: #c39961;
    }

    .firstCta {
        display: flex;
        justify-content: center;
        gap: 6.1rem;
        width: 100%;
        height: 24.5rem;
        padding-top: 5.2rem;
        background: #f2f0ed url("../img/first_btn_bg.jpg") center top / cover no-repeat;
    }

    .firstCtaButton {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 39.0rem;
        height: 14.6rem;
        color: #fff;
        font-family: var(--font-mincho);
        font-weight: 600;
        line-height: 1;
    }

    .firstCtaButton::after {
        content: "";
        position: absolute;
        right: 0.8rem;
        bottom: 0.8rem;
        width: 3.0rem;
        height: 3.0rem;
        background: #fff;
        clip-path: polygon(100% 0, 100% 100%, 0 100%);
    }

    .firstCtaButtonWeb {
        gap: 1.8rem;
        width: 39.1rem;
        background: #4b3626;
    }

    .firstCtaButtonLine {
        gap: 1.5rem;
        background: #00bd3d;
    }

    .firstCtaButtonTel {
        flex-direction: column;
        align-items: flex-start;
        padding-left: 5.5rem;
        background: #c99c5d;
    }

    .firstCtaButtonTel::after {
        display: none;
    }

    .firstCtaSmall {
        font-size: 3.0rem;
    }

    .firstCtaMain {
        font-size: 4.6rem;
        letter-spacing: 0;
    }

    .firstCtaLineIcon {
        width: 6.5rem;
        height: 6.4rem;
        object-fit: contain;
    }

    .firstCtaTelLabel {
        display: block;
        font-size: 3.6rem;
        line-height: 1;
    }

    .firstCtaTelNumber {
        display: flex;
        align-items: center;
        margin-top: 1.2rem;
        margin-left: -0.5rem;
        font-size: 4.0rem;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .firstCtaPhoneIcon {
        width: 4.3rem;
        height: 4.3rem;
        margin-right: 1.1rem;
        object-fit: contain;
    }
}

@media screen and (min-width: 769px) {
    .conceptSection {
        display: block;
        position: relative;
        width: 100%;
        height: 194.7rem;
        margin-top: -0.2rem;
        overflow: hidden;
        background: #d9d1ca;
    }

    .conceptVisual {
        position: relative;
        width: 100%;
        height: 113.3rem;
        overflow: hidden;
        background: url("../img/concept_top_pc.png") center top / 100% 100% no-repeat;
    }

    .conceptVisualImage {
        width: 192.0rem;
        height: 113.3rem;
        object-fit: cover;
        opacity: 0;
    }

    .conceptBgTitle {
        position: absolute;
        top: -1.2rem;
        left: 91.0rem;
        width: 116.0rem;
        margin: 0;
        color: rgba(83, 74, 67, 0.24);
        font-family: var(--font-mincho);
        font-size: 18.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
        opacity: 0;
    }

    .conceptBgTitle::first-letter {
        color: rgba(200, 155, 93, 0.28);
    }

    .conceptCatch {
        position: absolute;
        top: 4.7rem;
        left: 19.5rem;
        width: 69.8rem;
        height: 103.4rem;
        background: #fff;
        clip-path: polygon(0 11.6%, 100% 0, 100% 87.5%, 0 99%);
        opacity: 0;
    }

    .conceptCatchBand {
        position: absolute;
        top: 19.5rem;
        left: 5.5rem;
        width: 12.6rem;
        height: 82.7rem;
        background: #c89b5d;
        clip-path: polygon(100% 0, 100% 92%, 0 100%, 0 8%);
    }

    .conceptCatchBandText,
    .conceptCatchText {
        margin: 0;
        font-family: var(--font-mincho);
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        writing-mode: vertical-rl;
        text-orientation: upright;
    }

    .conceptCatchBandText {
        position: absolute;
        top: 12.6rem;
        left: 3.8rem;
        width: 4.3rem;
        height: 67.2rem;
        color: #fff;
        font-size: 3.3rem;
        font-weight: 600;
        line-height: 1.18;
    }

    .conceptCatchText {
        position: absolute;
        color: #3f362f;
        font-size: 7.0rem;
    }

    .conceptCatchDentist {
        top: 25.5rem;
        left: 23.4rem;
        color: #c89b5d;
        font-size: 9.2rem;
        letter-spacing: 0.06em;
        line-height: 1.04;
    }

    .conceptCatchSuffix {
        top: 65.4rem;
        left: 24.6rem;
        font-size: 6.6rem;
        letter-spacing: 0.16em;
        line-height: 1.04;
    }

    .conceptCatchMiddle {
        top: 25.1rem;
        left: 38.2rem;
        font-size: 6.4rem;
        letter-spacing: 0.07em;
        line-height: 1.16;
    }

    .conceptCatchMain {
        top: 14.4rem;
        left: 52.0rem;
        color: #c89b5d;
        font-size: 8.2rem;
        line-height: 1.16;
    }

    .conceptCatchMain::before,
    .conceptCatchMain::after {
        content: "";
        position: absolute;
        right: -3.1rem;
        width: 4.4rem;
        height: 4.4rem;
        border-color: #c89b5d;
        border-style: solid;
    }

    .conceptCatchMain::before {
        top: -3.6rem;
        border-width: 0.4rem 0.4rem 0 0;
    }

    .conceptCatchMain::after {
        bottom: -2.4rem;
        border-width: 0 0.4rem 0.4rem 0;
    }

    .conceptBody {
        position: relative;
        width: 100%;
        height: 82.4rem;
        background: #d9d1ca;
    }

    .conceptBodyInner {
        position: relative;
        width: 192.0rem;
        height: 82.4rem;
        margin: 0 auto;
    }

    .conceptLead,
    .conceptText,
    .conceptMessage {
        position: absolute;
        margin: 0;
        color: #3f3832;
        font-family: var(--font-gothic);
        font-size: 2.4rem;
        font-weight: 400;
        letter-spacing: 0.03em;
        text-align: center;
        white-space: nowrap;
    }

    .conceptLead {
        top: 6.6rem;
        left: 49.2rem;
        width: 92.0rem;
        line-height: 1.8;
    }

    .conceptText {
        top: 18.9rem;
        left: 27.1rem;
        width: 136.3rem;
        line-height: 1.25;
    }

    .conceptMessage {
        top: 26.7rem;
        left: 56.8rem;
        width: 76.2rem;
        font-weight: 400;
        line-height: 1.75;
    }

    .conceptMessage::first-line {
        font-weight: 700;
    }

    .conceptPhotos {
        position: absolute;
        top: 40.8rem;
        left: 10.9rem;
        width: 166.0rem;
        height: 38.0rem;
    }

    .conceptPhotoFrame {
        position: absolute;
        top: 0;
        width: 56.8rem;
        height: 38.0rem;
        overflow: hidden;
        /* background: #fff; */
    }

    .conceptPhotoFrameFirst {
        left: 0;
    }

    .conceptPhotoFrameSecond {
        left: 55.7rem;
    }

    .conceptPhotoFrameThird {
        left: 112.2rem;
    }

    .conceptPhotoFrame::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        z-index: 10;
        width: 15.8rem;
        height: 13.0rem;
        background: #d9d1ca;
        clip-path: polygon(0 0, 100% 0, 0 100%);
    }

    .conceptPhoto {
        position: absolute;
        /* max-width: none; */
        /* object-fit: cover; */
    }

    .conceptPhotoFrameFirst .conceptPhoto {
        top: 0.2rem;
        left: -3.5rem;
        width: 63.1rem;
        height: 42.1rem;
    }

    .conceptPhotoFrameSecond .conceptPhoto {
        top: -0.9rem;
        left: -2.9rem;
        width: 61.8rem;
        height: 41.3rem;
    }

    .conceptPhotoFrameThird .conceptPhoto {
        top: 0.1rem;
        left: -0.6rem;
        width: 57.0rem;
        height: 38.0rem;
        object-fit: cover;
    }

    .caseSection {
        display: block;
        position: relative;
        width: 100%;
        height: 94.7rem;
        margin-top: 3.2rem;
        overflow: hidden;
        background: #fff;
    }

    .caseSection::before,
    .caseSection::after {
        content: "";
        position: absolute;
        left: 0;
        width: 192.0rem;
        pointer-events: none;
    }

    .caseSection::before {
        top: 0;
        height: 44.3rem;
        background: url("../img/case_bg1.jpg") center top / 192.0rem 44.0rem no-repeat;
    }

    .caseSection::after {
        top: 43.9rem;
        height: 46.4rem;
        background: url("../img/case_bg2.jpg") center top / 192.0rem 46.1rem no-repeat;
    }

    .caseHeader,
    .casePanel {
        position: absolute;
        z-index: 10;
    }

    .caseHeader {
        top: 4.8rem;
        left: 63.3rem;
        width: 65.0rem;
        height: 26.0rem;
        color: #fff;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .caseHeaderEn {
        position: absolute;
        top: 0;
        left: 26.8rem;
        width: 10.5rem;
        margin: 0;
        font-size: 3.8rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.12em;
    }

    .caseHeaderIcon {
        position: absolute;
        top: 4.5rem;
        left: 27.1rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .caseHeaderDot,
    .caseHeaderLine {
        position: absolute;
        display: block;
        background: #fff;
    }

    .caseHeaderDot {
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
    }

    .caseHeaderDotLeft {
        left: 0;
    }

    .caseHeaderDotRight {
        right: 0;
    }

    .caseHeaderLine {
        top: 0.6rem;
        left: 0.4rem;
        width: 9.0rem;
        height: 0.1rem;
    }

    .caseHeaderTitle {
        position: absolute;
        top: 8.2rem;
        left: 24.8rem;
        width: 15.4rem;
        margin: 0;
        font-family: var(--font-mincho);
        font-size: 7.3rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
    }

    .caseHeaderDivider {
        position: absolute;
        top: 18.1rem;
        left: 0;
        display: block;
        width: 65.0rem;
        height: 0.1rem;
        background: rgba(255, 255, 255, 0.88);
    }

    .caseHeaderLead {
        position: absolute;
        top: 22.0rem;
        left: 7.5rem;
        width: 47.4rem;
        margin: 0;
        font-size: 4.1rem;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .casePanel {
        top: 37.7rem;
        left: 12.9rem;
        width: 166.2rem;
        height: 44.6rem;
        background: #fff;
    }

    .casePanelTitle,
    .caseImages,
    .caseInfo {
        position: absolute;
    }

    .casePanelTitle {
        top: 5.4rem;
        left: 3.5rem;
        width: 70.5rem;
        height: 4.6rem;
        color: #3f362f;
        font-family: var(--font-mincho);
    }

    .casePanelLabel,
    .casePanelName {
        position: absolute;
        top: 0;
        margin: 0;
        font-size: 3.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .casePanelLabel {
        left: 2.1rem;
        width: 6.1rem;
    }

    .casePanelName {
        left: 11.3rem;
        width: 22.1rem;
    }

    .casePanelTitleLine {
        position: absolute;
        top: 4.5rem;
        left: 0;
        display: block;
        width: 70.5rem;
        height: 0.1rem;
        background: #cda261;
    }

    .caseImages {
        top: 13.2rem;
        left: 4.2rem;
        width: 68.9rem;
        height: 26.8rem;
    }

    .caseImageBox,
    .caseImageCaption {
        position: absolute;
    }

    .caseImageBox {
        top: 0;
        width: 32.7rem;
        height: 24.1rem;
        background: #ccc;
    }

    .caseImageBefore {
        left: 0;
    }

    .caseImageAfter {
        left: 36.2rem;
    }

    .caseImageCaption {
        top: 25.2rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-gothic);
        font-size: 1.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        text-align: center;
    }

    .caseImageCaptionBefore {
        left: 13.2rem;
        width: 5.9rem;
    }

    .caseImageCaptionAfter {
        left: 50.4rem;
        width: 4.5rem;
    }

    .caseInfo {
        top: 6.7rem;
        left: 80.7rem;
        width: 79.7rem;
        height: 32.3rem;
        color: #3f362f;
        font-family: var(--font-gothic);
        font-size: 2.0rem;
        line-height: 1.45;
        letter-spacing: 0;
    }

    .caseInfoLabel,
    .caseInfoText {
        position: absolute;
        margin: 0;
        text-align: left;
    }

    .caseInfoLabel {
        left: 0;
        font-size: 2.0rem;
        font-weight: 700;
        line-height: 1;
        white-space: nowrap;
    }

    .caseInfoText {
        left: 0.3rem;
        font-size: 2.0rem;
        font-weight: 400;
        line-height: 1.45;
        white-space: nowrap;
    }

    .caseInfoPeriodLabel {
        top: 0;
        width: 9.2rem;
    }

    .caseInfoPeriodText {
        top: 3.4rem;
        width: 25.7rem;
    }

    .caseInfoCostLabel {
        top: 8.0rem;
        width: 7.2rem;
    }

    .caseInfoCostText {
        top: 11.1rem;
        width: 18.5rem;
    }

    .caseInfoTreatmentLabel {
        top: 15.6rem;
        width: 9.2rem;
    }

    .caseInfoTreatmentText {
        top: 18.8rem;
        width: 55.7rem;
    }

    .caseInfoRiskLabel {
        top: 23.7rem;
        width: 15.2rem;
    }

    .caseInfoRiskText {
        left: 0.1rem;
        top: 27.2rem;
        width: 79.7rem;
        font-size: 1.9rem;
        line-height: 2.45rem;
        white-space: normal;
    }

    .voiceSection {
        display: block;
        position: relative;
        width: 100%;
        height: 98.4rem;
        margin-top: 1.6rem;
        overflow: hidden;
        background: #ede9e6;
    }

    .voiceTitle,
    .voicePhotoFrame,
    .voiceMessage {
        position: absolute;
    }

    .voiceTitle {
        top: 9.3rem;
        left: 13.6rem;
        z-index: 20;
        width: 53.8rem;
        height: 42.7rem;
        color: #333;
        font-family: var(--font-mincho);
        text-align: left;
    }

    .voiceTitleLine {
        position: absolute;
        left: 0;
        display: block;
        width: 53.8rem;
        height: 0.1rem;
        background: #695647;
    }

    .voiceTitleLineTop {
        top: 0;
    }

    .voiceTitleLineBottom {
        top: 25.5rem;
        background: #705540;
    }

    .voiceTitleMain,
    .voiceTitleCatch {
        position: absolute;
        margin: 0;
        font-family: var(--font-mincho);
        font-weight: 400;
        white-space: nowrap;
    }

    .voiceTitleMain {
        top: 1.8rem;
        left: 3.1rem;
        width: 47.5rem;
        font-size: 6.0rem;
        line-height: 1.83;
        letter-spacing: 0;
        color: #333;
    }
    .voiceTitleMain .voiceTitleMain-small{
        font-size: 5.0rem;
    }

    .voiceTitleCatch {
        top: 30.5rem;
        left: 3.4rem;
        width: 45.3rem;
        font-size: 4.4rem;
        font-weight: 600;
        line-height: 1.82;
        letter-spacing: 0;
        color: #c39961;
    }

    .voicePhotoFrame {
        top: 6.5rem;
        left: 69.4rem;
        z-index: 10;
        width: 122.6rem;
        height: 53.9rem;
        overflow: visible;
    }

    .voicePhotoPicture {
        display: block;
        width: 122.6rem;
        height: 53.9rem;
    }

    .voicePhoto {
        display: block;
        position: static;
        width: 122.6rem;
        height: 53.9rem;
        max-width: none;
        object-fit: cover;
    }

    .voicePhotoText {
        position: absolute;
        top: 0.2rem;
        left: 120.6rem;
        width: 70.8rem;
        height: 18.2rem;
        margin: 0;
        color: rgba(104, 94, 82, 0.5);
        font-family: var(--font-mincho);
        font-size: 19.4rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.02em;
        writing-mode: horizontal-tb;
        text-orientation: mixed;
        transform: rotate(90deg);
        transform-origin: left top;
    }

    .voicePhotoText::first-letter {
        color: rgba(195, 153, 97, 0.38);
    }

    .voiceMessage {
        top: 63.8rem;
        left: 24.4rem;
        z-index: 30;
        width: 142.9rem;
        height: 30.8rem;
        background: #fff;
        color: #333;
        font-family: var(--font-mincho);
    }

    .voiceMessageCorner {
        position: absolute;
        display: block;
        width: 14.2rem;
        height: 14.0rem;
        pointer-events: none;
    }

    .voiceMessageCorner::before,
    .voiceMessageCorner::after {
        content: "";
        position: absolute;
        display: block;
        background: #705540;
    }

    .voiceMessageCornerLeft {
        top: 1.3rem;
        left: 1.7rem;
    }

    .voiceMessageCornerRight {
        right: 1.8rem;
        bottom: 2.0rem;
    }

    .voiceMessageCornerLeft::before,
    .voiceMessageCornerRight::before {
        width: 14.2rem;
        height: 0.1rem;
    }

    .voiceMessageCornerLeft::after,
    .voiceMessageCornerRight::after {
        width: 0.1rem;
        height: 14.0rem;
    }

    .voiceMessageCornerLeft::before,
    .voiceMessageCornerLeft::after {
        top: 0;
        left: 0;
    }

    .voiceMessageCornerRight::before {
        right: 0;
        bottom: 0;
    }

    .voiceMessageCornerRight::after {
        right: 0;
        bottom: 0;
    }

    .voiceMessageText {
        position: absolute;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.2rem;
        font-weight: 400;
        line-height: 4.0rem;
        letter-spacing: 0;
        text-align: left;
        white-space: nowrap;
    }

    .voiceMessageTextFirst {
        top: 6.8rem;
        left: 7.7rem;
        width: 126.0rem;
    }

    .voiceMessageTextSecond {
        top: 17.5rem;
        left: 7.7rem;
        width: 83.1rem;
    }

    .voiceMessageStrong {
        font-weight: 700;
    }

    .featureSection {
        display: block;
        position: relative;
        width: 100%;
        height: 352.8rem;
        margin-top: 3.7rem;
        overflow: hidden;
        /* background: #ede9e6; */
    }

    .featureSection::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 192.0rem;
        height: 116.0rem;
        background: url("../img/feature_bg.jpg") center top / 192.0rem 116.0rem no-repeat;
    }

    .featureTitle,
    .featureItem,
    .featurePhotoFrame,
    .featureContent,
    .featureNumber,
    .featureItemTitle,
    .featureItemLine,
    .featureItemText {
        position: absolute;
    }

    .featureTitle {
        top: 9.0rem;
        left: 0;
        z-index: 20;
        width: 100%;
        height: 26.1rem;
        color: #3f362f;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .featureTitleEn {
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
    }
/*
    .featureTitleEn::first-letter {
        color: #000;
    }*/

    .featureTitleIcon {
        position: absolute;
        top: 5.7rem;
        left: 90.1rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .featureTitleDot,
    .featureTitleLine {
        position: absolute;
        display: block;
        background: #c89b5d;
    }

    .featureTitleDot {
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
    }

    .featureTitleDotLeft {
        left: 0;
    }

    .featureTitleDotRight {
        right: 0;
    }

    .featureTitleLine {
        top: 0.6rem;
        left: 0.3rem;
        width: 9.0rem;
        height: 0.1rem;
    }

    .featureTitleMain {
        position: absolute;
        top: 9.2rem;
        /* left: 3.4rem; */
        width: 100%;
        margin: 0;
        color: #333;
        font-family: var(--font-mincho);
        font-size: 7.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.03em;
        white-space: nowrap;
    }

    .featureTitleDivider {
        position: absolute;
        top: 19.1rem;
        left: 55.8rem;
        display: block;
        width: 78.0rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .featureTitleLead {
        position: absolute;
        top: 22.2rem;
        left: 0;
        width: 100%;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-mincho);
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        /* letter-spacing: 0.08em; */
        white-space: nowrap;
    }

    .featureItem {
        left: 0;
        z-index: 10;
        width: 192.0rem;
        height: 77.8rem;
        background: #ede9e6;
    }

    .featureItemFirst {
        top: 38.5rem;
        background: transparent;
    }

    .featureItemSecond {
        top: 116.4rem;
        background: #ded7d1;
    }

    .featureItemThird {
        top: 193.8rem;
        background: #fff;
    }

    .featureItemFourth {
        top: 271.3rem;
    }

    .featurePhotoFrame {
        top: 4.7rem;
        width: 96.3rem;
        height: 68.1rem;
        overflow: hidden;
    }

    .featurePhotoFrameLeft {
        left: -0.2rem;
    }

    .featurePhotoFrameRight {
        left: 95.9rem;
    }

    .featurePhoto {
        display: block;
        width: 96.3rem;
        height: 68.1rem;
        max-width: none;
        object-fit: cover;
    }

    .featureContent {
        top: 0;
        width: 96.0rem;
        height: 77.8rem;
        color: #3f362f;
        font-family: var(--font-mincho);
    }

    .featureContentLeft {
        left: 0;
    }

    .featureContentRight {
        left: 96.0rem;
    }

    .featureNumber {
        top: 0;
        width: 25.7rem;
        height: 25.8rem;
        background: transparent;
        color: #333;
        font-family: var(--font-mincho);
        text-align: center;
    }

    .featureNumber::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        display: block;
        background: #fff;
    }

    .featureNumberRight {
        right: 0;
    }

    .featureNumberRight::before {
        background: #fbfaf8;
        clip-path: polygon(0 0, 100% 0, 100% 100%);
    }

    .featureNumberLeft {
        left: 0;
    }

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

    .featureNumberText {
        position: absolute;
        top: 2.8rem;
        left: 3.8rem;
        margin: 0;
        z-index: 1;
        font-size: 14.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.05em;
    }

    .featureNumberDigitGold {
        color: #c89b5d;
    }

    .featureNumberLabel {
        position: absolute;
        top: 16.8rem;
        left: 3.9rem;
        width: 15.4rem;
        margin: 0;
        z-index: 1;
        color: #000;
        font-size: 2.8rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.12em;
    }

    .featureItemThird .featureNumberText {
        top: 4.7rem;
        left: 5.3rem;
        font-size: 12.8rem;
    }

    .featureItemThird .featureNumber::before {
        background: #ede9e6;
    }

    .featureItemThird .featureNumberLabel {
        top: 16.4rem;
        left: 5.4rem;
        width: 18.0rem;
        font-size: 2.5rem;
        font-weight: 300;
    }

    .featureItemTitle {
        top: 15.1rem;
        width: 64.8rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-mincho);
        font-size: 4.4rem;
        font-weight: 400;
        line-height: 1.62;
        letter-spacing: 0.08em;
        text-align: center;
        white-space: nowrap;
    }

    .featureContentRight .featureItemTitle {
        left: 10.2rem;
    }

    .featureContentLeft .featureItemTitle {
        left: 21.0rem;
    }

    .featureItemLine {
        top: 30.0rem;
        display: block;
        width: 64.8rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .featureContentRight .featureItemLine {
        left: 10.2rem;
    }

    .featureContentLeft .featureItemLine {
        left: 21.0rem;
    }

    .featureItemText {
        top: 33.1rem;
        width: 63.7rem;
        margin: 0;
        color: #3f362f;
        font-family: var(--font-gothic);
        font-size: 2.2rem;
        font-weight: 400;
        line-height: 2.2;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .featureContentRight .featureItemText {
        left: 10.4rem;
    }

    .featureContentLeft .featureItemText {
        left: 21.1rem;
    }

    .serviceSection {
        display: block;
        position: relative;
        width: 100%;
        height: 153.1rem;
        overflow: hidden;
        background: url("../img/service_bg2.jpg") center 51.2rem / 192.0rem 97.7rem no-repeat;
    }

    .serviceSection::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 192.0rem;
        height: 51.0rem;
        background: url("../img/service_bg1.jpg") center top / 192.0rem 51.0rem no-repeat;
    }

    .serviceTitle,
    .serviceTitleLine,
    .serviceCards,
    .serviceCard,
    .serviceCardLabel,
    .serviceCardPhotoFrame,
    .serviceCardTitle,
    .serviceCardLine,
    .serviceCardText,
    .serviceCardButton {
        position: absolute;
    }

    .serviceTitle {
        top: 4.1rem;
        left: 81.6rem;
        z-index: 20;
        width: 28.1rem;
        height: 38.7rem;
        color: #fff;
        font-family: var(--font-mincho);
    }

    .serviceTitleLine {
        top: 0;
        display: block;
        width: 0.1rem;
        height: 38.7rem;
        background: rgba(255, 255, 255, 0.9);
    }

    .serviceTitleLineLeft {
        left: 0;
    }

    .serviceTitleLineRight {
        right: 0;
    }

    .serviceTitleText {
        position: absolute;
        top: -2.1rem;
        left: 8.0rem;
        width: 12.2rem;
        height: 35.0rem;
        margin: 0;
        font-size: 4.4rem;
        text-align: center;
    }

    .serviceTitlePhrase {
        position: absolute;
        color: #fff;
        font-size: 4.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        text-align: center;
        writing-mode: vertical-rl;
        white-space: nowrap;
        transform-origin: top center;
    }

    .serviceTitlePhraseRight {
        top: 0;
        right: 0;
        /* transform: scaleY(0.82); */
    }

    .serviceTitlePhraseLeft {
        top: 7.2rem;
        left: 0;
    }

    .serviceCards {
        top: 47.6rem;
        left: 9.8rem;
        z-index: 30;
        width: 172.3rem;
        height: 94.3rem;
    }

    .serviceCard {
        top: 0;
        width: 53.3rem;
        height: 94.3rem;
        background: #fff;
        color: #333;
        font-family: var(--font-mincho);
    }

    .serviceCardFirst {
        left: 0;
    }

    .serviceCardSecond {
        left: 59.4rem;
    }

    .serviceCardThird {
        left: 119.1rem;
        width: 53.2rem;
    }

    .serviceCardLabel {
        top: 0.7rem;
        left: 0.7rem;
        width: 51.9rem;
        height: 11.3rem;
        margin: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        font-size: 4.6rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        background: #6c5746;
    }

    .serviceCardSecond .serviceCardLabel {
        background: #c39861;
    }

    .serviceCardThird .serviceCardLabel {
        left: 0.8rem;
        background: #7e4210;
    }

    .serviceCardPhotoFrame {
        top: 13.1rem;
        left: 2.4rem;
        width: 48.5rem;
        height: 25.5rem;
        overflow: hidden;
        border: 0.1rem solid rgba(255, 255, 255, 0.95);
        outline-offset: -1.0rem;
    }

    .serviceCardPhoto {
        width: 48.5rem;
        height: 25.5rem;
        max-width: none;
        object-fit: cover;
    }

    .serviceCardTitle {
        top: 41.8rem;
        left: 5.1rem;
        width: 41.5rem;
        margin: 0;
        color: #333;
        font-size: 3.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
        white-space: nowrap;
    }

    .serviceCardSecond .serviceCardTitle {
        left: 4.2rem;
        width: 42.5rem;
    }

    .serviceCardThird .serviceCardTitle {
        left: 0.2rem;
        width: 45.4rem;
    }

    .serviceCardTitleTightQuote,
    .serviceCardTitleTightComma {
        display: inline-block;
    }

    .serviceCardTitleTightQuote {
        margin-left: -0.18em;
    }

    .serviceCardTitleTightComma {
        margin-left: -0.16em;
    }

    .serviceCardLine {
        top: 47.6rem;
        left: 1.7rem;
        display: block;
        width: 50.4rem;
        height: 0.1rem;
        background: #bf9b5f;
    }

    .serviceCardSecond .serviceCardLine {
        left: 1.8rem;
    }

    .serviceCardThird .serviceCardLine {
        left: 1.3rem;
    }

    .serviceCardText {
        top: 51.0rem;
        left: 4.4rem;
        width: 43.8rem;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.2rem;
        font-weight: 400;
        line-height: 1.65;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .serviceCardSecond .serviceCardText {
        left: 4.8rem;
        width: 43.9rem;
    }

    .serviceCardThird .serviceCardText {
        left: 4.3rem;
        width: 44.1rem;
    }

    .serviceCardButton {
        left: 6.1rem;
        bottom: 4.4rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1.4rem;
        width: 39.4rem;
        height: 8.7rem;
        color: #fff;
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
        background: #4b3a2a;
        border-radius: 0.6rem;
    }

    .serviceCardSecond .serviceCardButton {
        left: 6.7rem;
    }

    .serviceCardThird .serviceCardButton {
        left: 8.1rem;
    }

    .serviceCardButtonIcon {
        flex: 0 0 auto;
        width: 1.3rem;
        height: 1.7rem;
        object-fit: contain;
    }

    .onayamiSection {
        display: block;
        position: relative;
        width: 100%;
        height: 175.4rem;
        overflow: hidden;
        background: url("../img/onayami_bg.jpg") center top / 192.0rem 175.4rem no-repeat;
        font-family: var(--font-mincho);
    }

    .onayamiTitle,
    .onayamiTitleLabel,
    .onayamiTitleIcon,
    .onayamiTitleMain,
    .onayamiTitleLine,
    .onayamiCards,
    .onayamiCard,
    .onayamiCardFrame,
    .onayamiCardCorner,
    .onayamiCardTitle,
    .onayamiCardNumber,
    .onayamiCardHeading,
    .onayamiCardLine,
    .onayamiCardPhotoFrame,
    .onayamiCardLead,
    .onayamiCardText,
    .onayamiCardButton {
        position: absolute;
    }

    .onayamiTitle {
        top: 8.0rem;
        /* left: 32.1rem; */
        width: 100%;
        height: 18.2rem;
    }

    .onayamiTitleLabel {
        top: 0;
        /* left: 53.6rem; */
        width: 100%;
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.18em;
        text-align: center;
    }

    .featureNumberLabel::first-letter {
        color: #c89b5d;
    }

    .onayamiTitleLabel::first-letter {
        color: #c39863;
    }

    .onayamiTitleIcon {
        top: 5rem;
        left: 90rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .onayamiTitleIcon::before,
    .onayamiTitleIcon::after {
        content: "";
        position: absolute;
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
        background: #c39863;
    }

    .onayamiTitleIcon::before {
        left: 0;
    }

    .onayamiTitleIcon::after {
        right: 0;
    }

    .onayamiTitleIcon {
        background: linear-gradient(#c39863, #c39863) center / 9.0rem 0.1rem no-repeat;
    }

    .onayamiTitleMain {
        top: 8.1rem;
        /* left: 2.1rem; */
        width: 100%;
        margin: 0;
        color: #333;
        font-size: 7.8rem;
        font-weight: 400;
        line-height: 1;
        /* letter-spacing: 0.05em; */
        text-align: center;
        white-space: nowrap;
    }

    .onayamiTitleLine {
        top: 18.1rem;
        left: 26rem;
        display: block;
        width: 139rem;
        height: 0.1rem;
        background: #c39961;
    }

    .onayamiCards {
        top: 32.6rem;
        left: 12.9rem;
        width: 166.2rem;
        height: 133.3rem;
    }

    .onayamiCard {
        left: 0;
        width: 166.2rem;
        height: 63.1rem;
    }

    .onayamiCardFirst {
        top: 0;
        color: #fff;
        background: #6c5746;
    }

    .onayamiCardSecond {
        top: 70.2rem;
        color: #333;
        background: #cdc3ba;
    }

    .onayamiCardFrame {
        top: 1.0rem;
        left: 1.0rem;
        width: 164.2rem;
        height: 61.1rem;
        border: 0.1rem solid rgba(255, 255, 255, 0.75);
        pointer-events: none;
    }

    .onayamiCardCorner {
        right: 1.7rem;
        bottom: 1.7rem;
        width: 9.1rem;
        height: 9.1rem;
        background: linear-gradient(135deg, transparent 0 50%, #fff 51% 100%);
    }

    .onayamiCardTitle {
        top: 3.8rem;
        left: 2.9rem;
        width: 145.5rem;
        height: 10.3rem;
    }

    .onayamiCardNumber {
        top: 0;
        left: 0;
        width: 13.8rem;
        margin: 0;
        color: #fff;
        font-size: 14rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0;
    }

    .onayamiCardFirst .onayamiCardNumber {
        width: 13.1rem;
    }

    .onayamiCardHeading {
        top: 1.4rem;
        left: 17.7rem;
        width: 125.0rem;
        margin: 0;
        font-size: 6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.05em;
        text-align: center;
        white-space: nowrap;
    }

    .onayamiCardSecond .onayamiCardHeading {
        left: 30.0rem;
        width: 100.7rem;
    }

    .onayamiCardLine {
        top: 10.1rem;
        left: 14.9rem;
        display: block;
        width: 134.6rem;
        height: 0.8rem;
        background: #c39863;
    }

    .onayamiCardSecond .onayamiCardLine {
        background: #4b392b;
    }

    .onayamiCardPhotoFrame {
        top: 17.7rem;
        left: 7.0rem;
        width: 53.5rem;
        height: 41.8rem;
        overflow: hidden;
    }

    .onayamiCardPhoto {
        width: 53.5rem;
        height: 41.8rem;
        max-width: none;
        object-fit: cover;
    }

    .onayamiCardLead {
        top: 21.3rem;
        left: 67.2rem;
        width: 92.0rem;
        margin: 0;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.05em;
        white-space: nowrap;
    }

    .onayamiCardSecond .onayamiCardLead {
        width: 80.9rem;
    }

    .onayamiCardText {
        top: 28.8rem;
        left: 66.9rem;
        width: 91.0rem;
        margin: 0;
        font-family: var(--font-gothic);
        font-size: 2.3rem;
        font-weight: 400;
        line-height: 1.72;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .onayamiCardSecond .onayamiCardText {
        width: 90.4rem;
    }

    .onayamiCardButton {
        top: 45.0rem;
        left: 67.3rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2.0rem;
        width: 34.4rem;
        height: 8.7rem;
        color: #4b3a2a;
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        background: #fff;
        border-radius: 0.6rem;
    }

    .onayamiCardButtonIcon {
        flex: 0 0 auto;
        width: 1.3rem;
        height: 1.7rem;
        object-fit: contain;
    }
    .omakaseSection {
        display: block;
        position: relative;
        z-index: 20;
        width: 100%;
        height: 172.2rem;
        margin-top: 4.3rem;
        overflow: hidden;
        background: #ede9e6 url("../img/omakase_bg.jpg") center top / 192.0rem 174.5rem no-repeat;
        font-family: var(--font-mincho);
    }

    .omakaseTitleBox,
    .omakaseTitleGold,
    .omakaseTitleText,
    .omakaseCards,
    .omakaseCard,
    .omakaseCardIcon,
    .omakaseCardLine,
    .omakaseCardTitle,
    .omakaseCardLabel,
    .omakaseCardCorner,
    .omakaseLead {
        position: absolute;
    }

    .omakaseTitleBox {
        top: 13.9rem;
        left: 108.1rem;
        width: 69.8rem;
        height: 68.4rem;
        background: #fff;
    }

    .omakaseTitleGold {
        top: 4.4rem;
        left: 4.5rem;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 18.4rem;
        height: 58.7rem;
        color: #fff;
        background: #c39861;
        clip-path: polygon(0 8%, 100% 0, 100% 92%, 0 100%);
    }

    .omakaseTitleGold p {
        position: absolute;
        top: 8.1rem;
        left: 4.8rem;
        width: 8.7rem;
        height: 43.5rem;
        margin: 0;
        font-size: 4.4rem;
        font-weight: 600;
        line-height: 1;
        /* letter-spacing: 0.2em; */
    }

    .omakaseTitleGoldLine {
        position: absolute;
        top: 0;
        writing-mode: vertical-rl;
        white-space: nowrap;
    }

    .omakaseTitleGoldLineRight {
        right: -0.5rem;
    }

    .omakaseTitleGoldLineLeft {
        left: -0.5rem;
    }

    .omakaseTitleText {
        margin: 0;
        color: #333;
        font-size: 10.0rem;
        font-weight: 400;
        line-height: 1.3;
        letter-spacing: 0.08em;
        writing-mode: vertical-rl;
        text-orientation: mixed;
    }

    .omakaseTitleTextCenter {
        top: 28.7rem;
        left: 28.3rem;
        width: 7.5rem;
        height: 36.0rem;
        font-size: 8.0rem;
        line-height: 1.12;
        white-space: nowrap;
    }

    .omakaseTitleTextLarge {
        top: 4.4rem;
        left: 36.9rem;
        width: 22.2rem;
        height: 52.3rem;
        color: #c39861;
        font-size: 10.0rem;
        line-height: 1.28;
    }

    .omakaseTitleLargeLine {
        position: absolute;
        writing-mode: vertical-rl;
        white-space: nowrap;
    }

    .omakaseTitleLargeLineRight {
        top: 0;
        right: -4rem;
    }

    .omakaseTitleLargeLineLeft {
        top: 11.5rem;
        left: 0;
    }

    .omakaseCards {
        top: 92.9rem;
        left: 12.8rem;
        width: 166.3rem;
        height: 61.4rem;
    }

    .omakaseCard {
        width: 39.9rem;
        height: 28.1rem;
        background: #fff;
    }

    .omakaseCard1 {
        top: 0;
        left: 0;
    }

    .omakaseCard2 {
        top: 0;
        left: 42.1rem;
    }

    .omakaseCard3 {
        top: 0;
        left: 84.3rem;
    }

    .omakaseCard4 {
        top: 0;
        left: 126.4rem;
    }

    .omakaseCard5 {
        top: 33.3rem;
        left: 0;
    }

    .omakaseCard6 {
        top: 33.3rem;
        left: 42.2rem;
    }

    .omakaseCard7 {
        top: 33.3rem;
        left: 84.3rem;
    }

    .omakaseCardIcon {
        max-width: none;
        object-fit: contain;
    }

    .omakaseCard1 .omakaseCardIcon {
        top: 4.7rem;
        left: 16.0rem;
        width: 8.1rem;
        height: 8.5rem;
    }

    .omakaseCard2 .omakaseCardIcon {
        top: 4.7rem;
        left: 16.4rem;
        width: 7.2rem;
        height: 8.3rem;
    }

    .omakaseCard3 .omakaseCardIcon {
        top: 5.2rem;
        left: 13.7rem;
        width: 12.6rem;
        height: 7.3rem;
    }

    .omakaseCard4 .omakaseCardIcon {
        top: 5.3rem;
        left: 15.2rem;
        width: 9.7rem;
        height: 7.5rem;
    }

    .omakaseCard5 .omakaseCardIcon {
        top: 5.2rem;
        left: 14.5rem;
        width: 10.8rem;
        height: 8.0rem;
    }

    .omakaseCard6 .omakaseCardIcon {
        top: 6.1rem;
        left: 14.9rem;
        width: 10.2rem;
        height: 5.8rem;
    }

    .omakaseCard7 .omakaseCardIcon {
        top: 6.5rem;
        left: 11.2rem;
        width: 17.2rem;
        height: 5.5rem;
    }

    .omakaseCardLine {
        top: 14.6rem;
        left: 3.1rem;
        display: block;
        width: 33.2rem;
        height: 0.1rem;
        background: #c39861;
    }

    .omakaseCard2 .omakaseCardLine,
    .omakaseCard3 .omakaseCardLine,
    .omakaseCard5 .omakaseCardLine,
    .omakaseCard6 .omakaseCardLine {
        left: 3.4rem;
    }

    .omakaseCard4 .omakaseCardLine,
    .omakaseCard7 .omakaseCardLine {
        left: 3.2rem;
    }

    .omakaseCardTitle {
        top: 17.7rem;
        left: 7.6rem;
        width: 24.8rem;
        margin: 0;
        color: #333;
        font-size: 3.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .omakaseCard2 .omakaseCardTitle {
        left: 11.2rem;
        width: 17.6rem;
    }

    .omakaseCard3 .omakaseCardTitle {
        left: 4.1rem;
        width: 31.7rem;
    }

    .omakaseCard4 .omakaseCardTitle {
        left: 9.2rem;
        width: 20.7rem;
    }

    .omakaseCard5 .omakaseCardTitle {
        left: 9.4rem;
        width: 20.9rem;
    }

    .omakaseCard6 .omakaseCardTitle {
        left: 3.7rem;
        width: 32.1rem;
    }

    .omakaseCard7 .omakaseCardTitle {
        left: 3.1rem;
        width: 33.0rem;
    }

    .omakaseCardLabel {
        top: 22.7rem;
        left: 14.5rem;
        width: 11.1rem;
        margin: 0;
        color: #c39861;
        font-size: 1.8rem;
        font-weight: 400;
        line-height: 1.05;
        letter-spacing: 0.02em;
        text-align: center;
        white-space: nowrap;
    }

    .omakaseCard2 .omakaseCardLabel {
        left: 17.5rem;
        width: 5.1rem;
    }

    .omakaseCard3 .omakaseCardLabel {
        left: 17.1rem;
        width: 6.0rem;
    }

    .omakaseCard4 .omakaseCardLabel {
        left: 15.0rem;
        width: 9.8rem;
    }

    .omakaseCard5 .omakaseCardLabel {
        left: 17.5rem;
        width: 5.0rem;
    }

    .omakaseCard6 .omakaseCardLabel {
        left: 16.9rem;
        width: 6.3rem;
    }

    .omakaseCard7 .omakaseCardLabel {
        left: 16.5rem;
        width: 6.8rem;
    }

    .omakaseCardCorner {
        top: 22.0rem;
        left: 33.7rem;
        display: block;
        width: 5.1rem;
        height: 5.1rem;
        background: linear-gradient(135deg, transparent 0 50%, #c39861 51% 100%);
    }

    .omakaseCard2 .omakaseCardCorner,
    .omakaseCard6 .omakaseCardCorner {
        left: 33.5rem;
    }

    .omakaseCard3 .omakaseCardCorner,
    .omakaseCard7 .omakaseCardCorner {
        left: 33.3rem;
    }

    .omakaseCard4 .omakaseCardCorner {
        left: 33.3rem;
    }

    .omakaseCard5 .omakaseCardCorner {
        left: 33.4rem;
    }

    .omakaseLead {
        top: 160.0rem;
        left: 41.0rem;
        width: 109.6rem;
        margin: 0;
        color: #333;
        font-size: 4.2rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        text-align: center;
        white-space: nowrap;
    }

    .omakaseLead::before {
        content: "＼";
    }

    .omakaseLead::after {
        content: "／";
    }

    .omakaseLead br {
        display: none;
    }

    .medicalMenuSection {
        display: block;
        position: relative;
        width: 100%;
        height: 144.7rem;
        margin-top: 3.0rem;
        overflow: hidden;
        background: #fff url("../img/menu_bg1.jpg") center top / 192.0rem 100.0rem no-repeat;
        font-family: var(--font-mincho);
    }

    .medicalMenuSection::before {
        content: "";
        position: absolute;
        top: 40.1rem;
        left: 0;
        width: 100%;
        height: 104.4rem;
        background: url("../img/menu_bg2.jpg") center top / 192.0rem 104.4rem no-repeat;
    }

    .medicalMenuTitle,
    .medicalMenuTitleEn,
    .medicalMenuTitleIcon,
    .medicalMenuTitleDot,
    .medicalMenuTitleLineShort,
    .medicalMenuTitleMain,
    .medicalMenuTitleLine,
    .medicalMenuLead,
    .medicalMenuCards,
    .medicalMenuCard,
    .medicalMenuCardTitle,
    .medicalMenuCardLabel,
    .medicalMenuCardCorner {
        position: absolute;
    }

    .medicalMenuTitle {
        top: 8.0rem;
        left: 32.1rem;
        z-index: 2;
        width: 131.0rem;
        height: 18.2rem;
    }

    .medicalMenuTitleEn {
        top: 0;
        left: 53.9rem;
        width: 19.9rem;
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
        text-align: center;
    }

    .medicalMenuTitleEn::first-letter {
        color: #c39861;
    }

    .medicalMenuTitleIcon {
        top: 4.8rem;
        left: 59.0rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .medicalMenuTitleDot {
        top: 0;
        display: block;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
        background: #c39861;
    }

    .medicalMenuTitleDotLeft {
        left: 0;
    }

    .medicalMenuTitleDotRight {
        right: 0;
    }

    .medicalMenuTitleLineShort {
        top: 0.5rem;
        left: 0.4rem;
        display: block;
        width: 9.3rem;
        height: 0.1rem;
        background: #c39861;
    }

    .medicalMenuTitleMain {
        top: 8.1rem;
        left: 42.2rem;
        width: 45.1rem;
        margin: 0;
        color: #333;
        font-size: 7.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuTitleLine {
        top: 18.1rem;
        left: 0;
        display: block;
        width: 131.0rem;
        height: 0.1rem;
        background: #c39861;
    }

    .medicalMenuLead {
        top: 30.4rem;
        left: 48.1rem;
        z-index: 2;
        width: 93.0rem;
        margin: 0;
        color: #333;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuCards {
        top: 44.0rem;
        left: 12.8rem;
        z-index: 2;
        width: 166.2rem;
        height: 90.0rem;
    }

    .medicalMenuCard {
        width: 39.9rem;
        height: 16.1rem;
        background: #fff;
    }

    .medicalMenuCard1,
    .medicalMenuCard5,
    .medicalMenuCard9,
    .medicalMenuCard13,
    .medicalMenuCard17 {
        left: 0;
    }

    .medicalMenuCard2,
    .medicalMenuCard6,
    .medicalMenuCard10,
    .medicalMenuCard14,
    .medicalMenuCard18 {
        left: 42.1rem;
    }

    .medicalMenuCard3,
    .medicalMenuCard7,
    .medicalMenuCard11,
    .medicalMenuCard15,
    .medicalMenuCard19 {
        left: 84.2rem;
    }

    .medicalMenuCard4,
    .medicalMenuCard8,
    .medicalMenuCard12,
    .medicalMenuCard16,
    .medicalMenuCard20 {
        left: 126.3rem;
    }

    .medicalMenuCard1,
    .medicalMenuCard2,
    .medicalMenuCard3,
    .medicalMenuCard4 {
        top: 0;
    }

    .medicalMenuCard5,
    .medicalMenuCard6,
    .medicalMenuCard7,
    .medicalMenuCard8 {
        top: 18.3rem;
    }

    .medicalMenuCard9,
    .medicalMenuCard10,
    .medicalMenuCard11,
    .medicalMenuCard12 {
        top: 36.7rem;
    }

    .medicalMenuCard13,
    .medicalMenuCard14,
    .medicalMenuCard15,
    .medicalMenuCard16 {
        top: 55.2rem;
    }

    .medicalMenuCard17,
    .medicalMenuCard18,
    .medicalMenuCard19,
    .medicalMenuCard20 {
        top: 73.9rem;
    }

    .medicalMenuCardTitle {
        top: 5.8rem;
        left: 2.0rem;
        width: 35.9rem;
        margin: 0;
        color: #333;
        font-size: 3.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuCard14 .medicalMenuCardTitle,
    .medicalMenuCard18 .medicalMenuCardTitle,
    .medicalMenuCard19 .medicalMenuCardTitle {
        top: 4.1rem;
        line-height: 1.12;
    }

    .medicalMenuCardLabel {
        top: 10.9rem;
        left: 2.0rem;
        width: 35.9rem;
        margin: 0;
        color: #c39861;
        font-size: 1.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
        white-space: nowrap;
    }

    .medicalMenuCard14 .medicalMenuCardLabel,
    .medicalMenuCard18 .medicalMenuCardLabel,
    .medicalMenuCard19 .medicalMenuCardLabel {
        top: 12.0rem;
    }

    .medicalMenuCardCorner {
        right: 1.4rem;
        bottom: 1.0rem;
        display: block;
        width: 4.8rem;
        height: 4.8rem;
        background: linear-gradient(135deg, transparent 0 50%, #c39861 51% 100%);
    }
}

@media screen and (max-width: 768px) {
    .greetingSection {
        display: block;
        position: relative;
        width: 100%;
        height: 177.2rem;
        overflow: hidden;
        background: #e9e6e2 url("../img/greeting_bg-sp.jpg") center top / 75.0rem 176.9rem no-repeat;
        font-family: var(--font-mincho);
        margin-top: 3rem;
    }

    .greetingTitle,
    .greetingTitleMain,
    .greetingTitleLine,
    .greetingTitleLead,
    .greetingPhotoFrame,
    .greetingPhoto,
    .greetingBgText,
    .greetingMessage,
    .greetingMessageFrame,
    .greetingMessageTitle,
    .greetingMessageLine,
    .greetingMessageText,
    .greetingNameBox,
    .greetingNameRole,
    .greetingNameMain,
    .greetingNameKana {
        position: absolute;
    }

    .greetingTitle {
        top: 6.3rem;
        left: 3.5rem;
        z-index: 4;
        width: 68.5rem;
        height: 16.6rem;
        text-align: center;
    }

    .greetingTitleMain {
        top: 0;
        left: 24.3rem;
        width: 23.3rem;
        margin: 0;
        color: #333;
        font-size: 5.5rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .greetingTitleLine {
        top: 8.6rem;
        left: 6.9rem;
        display: block;
        width: 53.8rem;
        height: 0.1rem;
        background: #4b4038;
    }

    .greetingTitleLead {
        top: 12.0rem;
        left: 0;
        width: 68.5rem;
        margin: 0;
        color: #c39861;
        font-size: 4.7rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .greetingPhotoFrame {
        top: 26.2rem;
        left: 0;
        z-index: 1;
        width: 75.0rem;
        height: 69.2rem;
        overflow: hidden;
    }

    .greetingPhoto {
        top: 0;
        left: -42.5rem;
        width: 130.3rem;
        height: 68.9rem;
        max-width: none;
        object-fit: cover;
    }

    .greetingBgText {
        top: 28.8rem;
        left: 65.1rem;
        z-index: 2;
        width: 8.4rem;
        height: 57.3rem;
        margin: 0;
        color: rgba(101, 91, 82, 0.34);
        font-size: 10.8rem;
        font-weight: 300;
        line-height: 0.83;
        letter-spacing: 0.02em;
        writing-mode: vertical-rl;
        text-orientation: mixed;
        pointer-events: none;
    }

    .greetingBgText::first-letter {
        color: rgba(195, 152, 97, 0.55);
    }

    .greetingNameBox {
        top: 66.8rem;
        left: 2.5rem;
        z-index: 6;
        width: 30.8rem;
        height: 19.2rem;
        background: #fff;
        text-align: center;
    }

    .greetingNameRole {
        top: 2.6rem;
        left: 12.3rem;
        width: 6.3rem;
        margin: 0;
        color: #4b4038;
        font-size: 3.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        white-space: nowrap;
    }

    .greetingNameMain {
        top: 7.3rem;
        left: 4.0rem;
        width: 23.0rem;
        margin: 0;
        color: #333;
        font-size: 4.7rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        white-space: nowrap;
    }

    .greetingNameKana {
        top: 13.5rem;
        left: 3.1rem;
        width: 20.7rem;
        margin: 0;
        color: #333;
        font-size: 2.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        white-space: nowrap;
    }

    .greetingMessage {
        top: 88.7rem;
        left: 0.7rem;
        z-index: 5;
        width: 72.9rem;
        height: 80.8rem;
        background: #fff;
    }

    .greetingMessageFrame {
        top: 1.7rem;
        left: 1.7rem;
        display: block;
        width: 69.7rem;
        height: 77.6rem;
        background:
            linear-gradient(#4b4038, #4b4038) left top / 14.2rem 0.1rem no-repeat,
            linear-gradient(#4b4038, #4b4038) left top / 0.1rem 13.8rem no-repeat,
            linear-gradient(#4b4038, #4b4038) right bottom / 14.2rem 0.1rem no-repeat,
            linear-gradient(#4b4038, #4b4038) right bottom / 0.1rem 13.8rem no-repeat;
        pointer-events: none;
    }

    .greetingMessageFrame::after,
    .greetingMessageFrame::before {
        content: none;
    }

    .greetingMessageTitle {
        top: 8.0rem;
        left: 25.8rem;
        width: 20.5rem;
        margin: 0;
        color: #6c5645;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .greetingMessageLine {
        top: 13.0rem;
        left: 25.7rem;
        display: block;
        width: 22.1rem;
        height: 1.1rem;
        background: #c39861;
    }

    .greetingMessageText {
        top: 19.8rem;
        left: 7.6rem;
        width: 58.7rem;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1.75;
        letter-spacing: 0.03em;
        text-align: left;
    }

    .clinicSection {
        display: block;
        position: relative;
        width: 100%;
        height: 231.2rem;
        overflow: hidden;
        background: #e9e6e2;
        font-family: var(--font-mincho);
        margin-top: 3rem;
    }

    .clinicTitle,
    .clinicTitleEn,
    .clinicTitleIcon,
    .clinicTitleMain,
    .clinicInner,
    .clinicPhotoFrame,
    .clinicPhoto,
    .clinicCatch,
    .clinicDivider,
    .clinicContent,
    .clinicSchedule,
    .clinicInfo,
    .clinicButtons,
    .clinicButton,
    .clinicButtonIcon,
    .clinicButtonText,
    .clinicNews,
    .clinicNewsTitle,
    .clinicNewsLine,
    .clinicNewsList,
    .clinicNewsItem,
    .clinicNewsDate,
    .clinicNewsText {
        position: absolute;
    }

    .clinicTitle {
        top: 8.5rem;
        left: 21.8rem;
        width: 32.2rem;
        height: 15.5rem;
        text-align: center;
    }

    .clinicTitleEn {
        top: 0;
        left: 8.1rem;
        width: 15.0rem;
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.15em;
        white-space: nowrap;
    }

    .clinicTitleEn::first-letter {
        color: #c39961;
    }

    .clinicTitleIcon {
        top: 4.6rem;
        left: 10.7rem;
        display: block;
        width: 10.1rem;
        height: 1.1rem;
        background:
            radial-gradient(circle, #c39961 0 0.55rem, transparent 0.6rem) left center / 1.1rem 1.1rem no-repeat,
            radial-gradient(circle, #c39961 0 0.55rem, transparent 0.6rem) right center / 1.1rem 1.1rem no-repeat,
            linear-gradient(#c39961, #c39961) center center / 9.0rem 0.1rem no-repeat;
    }

    .clinicTitleMain {
        top: 8.2rem;
        left: 0;
        width: 32.2rem;
        margin: 0;
        color: #333;
        font-size: 7.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.1em;
        white-space: nowrap;
    }

    .clinicInner {
        top: 28.0rem;
        left: 0.9rem;
        width: 73.0rem;
        height: 126.5rem;
        background: #fff;
    }

    .clinicPhotoFrame {
        top: 2.9rem;
        left: 2.0rem;
        width: 69.5rem;
        height: 34.7rem;
        overflow: hidden;
    }

    .clinicPhoto {
        top: 0;
        left: 0;
        width: 69.5rem;
        height: 34.7rem;
        max-width: none;
        object-fit: cover;
    }

    .clinicCatch {
        top: 41.9rem;
        left: 9.4rem;
        width: 53.9rem;
        margin: 0;
        color: #c39961;
        font-size: 5.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .clinicDivider {
        top: 49.6rem;
        left: 2.0rem;
        display: block;
        width: 69.5rem;
        height: 0.1rem;
        background: #c39961;
    }

    .clinicContent {
        top: 52.5rem;
        left: 1.8rem;
        width: 69.6rem;
        height: 68.1rem;
    }

    .clinicSchedule {
        top: 0;
        left: 0;
        width: 69.6rem;
        height: 32.4rem;
        font-family: var(--font-gothic);
    }

    .clinicScheduleTable {
        width: 69.6rem;
        border-collapse: collapse;
        table-layout: fixed;
        color: #1e0e07;
        font-family: var(--font-gothic);
        text-align: center;
    }

    .clinicScheduleTable th,
    .clinicScheduleTable td {
        padding: 0;
        border: 0;
        vertical-align: middle;
    }

    .clinicScheduleTable thead th {
        height: 6.2rem;
        background: #4b3929;
        color: #fff;
        font-size: 2.2rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .clinicScheduleTable thead th:first-child,
    .clinicScheduleTable tbody th {
        width: 18.4rem;
    }

    .clinicScheduleTable tbody th {
        height: 8.75rem;
        background: #e8e3de;
        border-bottom: 0.1rem solid #928b84;
        font-size: 2.0rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
    }

    .clinicScheduleTable tbody td {
        height: 8.75rem;
        background: #e8e3de;
        border-bottom: 0.1rem solid #928b84;
        color: #c39961;
        font-size: 2.4rem;
        font-weight: 700;
        line-height: 1;
    }

    .clinicScheduleNote {
        margin: 1.7rem 0 0 1.5rem;
        color: #333;
        font-size: 2.4rem;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: 0.02em;
        white-space: normal;
    }

    .clinicInfo {
        top: 37.5rem;
        left: 2.1rem;
        width: 54.0rem;
        height: 30.6rem;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .clinicName,
    .clinicAddress,
    .clinicPhone,
    .clinicAccessTitle,
    .clinicAccessText {
        margin: 0;
        white-space: nowrap;
    }

    .clinicName,
    .clinicAccessTitle {
        font-weight: 700;
    }

    .clinicName {
        width: 19.4rem;
        font-size: 2.8rem;
        line-height: 1;
    }

    .clinicAddress {
        width: 54.0rem;
        margin-top: 2.5rem;
        font-size: 2.8rem;
        line-height: 1.55;
    }

    .clinicPhone {
        display: none;
    }

    .clinicAccessTitle {
        width: 11.0rem;
        margin-top: 4.3rem;
        font-size: 2.8rem;
        line-height: 1;
    }

    .clinicAccessTitlePc {
        display: none;
    }

    .clinicAccessTitleSp,
    .clinicSpBreak {
        display: inline;
    }

    .clinicAccessText {
        width: 40.9rem;
        margin-top: 2.1rem;
        font-size: 2.8rem;
        line-height: 1.55;
    }

    .clinicButtons {
        top: 160.0rem;
        left: 4.6rem;
        width: 65.6rem;
        height: 21.3rem;
    }

    .clinicButton {
        display: block;
        width: 30.4rem;
        height: 8.7rem;
        background: #c39961;
        border-radius: 0.5rem;
        color: #fff;
        font-family: var(--font-mincho);
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.02em;
        text-decoration: none;
    }

    .clinicButton01 {
        top: 0;
        left: 0;
    }

    .clinicButton02 {
        top: 0;
        left: 35.3rem;
        width: 30.3rem;
    }

    .clinicButton03 {
        top: 12.6rem;
        left: 0;
    }

    .clinicButton04 {
        top: 12.6rem;
        left: 35.3rem;
        width: 30.3rem;
    }

    .clinicButtonIcon {
        top: 3.3rem;
        left: 7.1rem;
        width: 1.6rem;
        height: 2.1rem;
    }

    .clinicButtonText {
        top: 3.1rem;
        left: 9.7rem;
        white-space: nowrap;
    }

    .clinicButton02 .clinicButtonIcon {
        left: 5.0rem;
    }

    .clinicButton02 .clinicButtonText {
        left: 7.6rem;
    }

    .clinicButton03 .clinicButtonIcon {
        left: 6.1rem;
    }

    .clinicButton03 .clinicButtonText {
        left: 8.6rem;
    }

    .clinicButton04 .clinicButtonIcon {
        left: 5.0rem;
    }

    .clinicButton04 .clinicButtonText {
        left: 7.5rem;
    }

    .clinicNews {
        top: 189.3rem;
        left: 0.7rem;
        width: 73.2rem;
        height: 36.5rem;
        background: #fff;
    }

    .clinicNewsTitle {
        top: 3.9rem;
        left: 17.5rem;
        width: 38.7rem;
        margin: 0;
        color: #c39961;
        font-size: 4.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        text-align: center;
        white-space: nowrap;
    }

    .clinicNewsLine {
        top: 10.4rem;
        left: 1.6rem;
        display: block;
        width: 71.8rem;
        height: 0.1rem;
        background: #6c625a;
    }

    .clinicNewsList {
        top: 14.5rem;
        left: 4.2rem;
        width: 61.0rem;
        height: 16.5rem;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
    }

    .clinicNewsItem {
        left: 0;
        width: 61.0rem;
        height: 2.8rem;
    }

    .clinicNewsItem01 {
        top: 0;
    }

    .clinicNewsItem02 {
        top: 7.1rem;
    }

    .clinicNewsItem03 {
        top: 14.2rem;
    }

    .clinicNewsDate {
        top: 0;
        left: 0;
        width: 12.3rem;
        margin: 0;
        font-weight: 700;
        white-space: nowrap;
    }

    .clinicNewsText {
        top: 0;
        left: 16.5rem;
        margin: 0;
        font-weight: 400;
        white-space: nowrap;
    }
}
@media screen and (min-width: 769px) {
    .greetingSection {
        display: block;
        position: relative;
        width: 100%;
        height: 105.2rem;
        overflow: hidden;
        background: #e9e6e2 url("../img/greeting_bg.jpg") center top / 192.0rem 104.9rem no-repeat;
        font-family: var(--font-mincho);
    }

    .greetingTitle,
    .greetingTitleMain,
    .greetingTitleLine,
    .greetingTitleLead,
    .greetingPhotoFrame,
    .greetingPhoto,
    .greetingBgText,
    .greetingMessage,
    .greetingMessageFrame,
    .greetingMessageTitle,
    .greetingMessageLine,
    .greetingMessageText,
    .greetingNameBox,
    .greetingNameRole,
    .greetingNameMain,
    .greetingNameKana {
        position: absolute;
    }

    .greetingTitle {
        top: 6.3rem;
        left: 58.6rem;
        z-index: 4;
        width: 71.3rem;
        height: 16.6rem;
        text-align: center;
    }

    .greetingTitleMain {
        top: 0;
        left: 25.9rem;
        width: 23.3rem;
        margin: 0;
        color: #333;
        font-size: 5.5rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .greetingTitleLine {
        top: 8.6rem;
        left: 8.5rem;
        display: block;
        width: 53.8rem;
        height: 0.1rem;
        background: #4b4038;
    }

    .greetingTitleLead {
        top: 11.9rem;
        left: 0;
        width: 71.3rem;
        margin: 0;
        color: #c39861;
        font-size: 4.7rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .greetingPhotoFrame {
        top: 26.2rem;
        left: 61.7rem;
        z-index: 1;
        width: 130.3rem;
        height: 68.9rem;
        overflow: hidden;
    }

    .greetingPhoto {
        top: 0;
        left: 0;
        width: 130.3rem;
        height: 68.9rem;
        max-width: none;
        object-fit: cover;
    }

    .greetingBgText {
        top: 0.5rem;
        right: 0.7rem;
        z-index: 2;
        width: 15.2rem;
        height: 104.4rem;
        margin: 0;
        color: rgba(101, 91, 82, 0.34);
        font-size: 19.5rem;
        font-weight: 300;
        line-height: 0.83;
        letter-spacing: 0.02em;
        writing-mode: vertical-rl;
        text-orientation: mixed;
        pointer-events: none;
    }

    .greetingBgText::first-letter {
        color: rgba(195, 152, 97, 0.55);
    }

    .greetingMessage {
        top: 33.3rem;
        left: 13.0rem;
        z-index: 5;
        width: 75.9rem;
        height: 65.8rem;
        background: #fff;
    }

    .greetingMessageFrame {
        top: 1.6rem;
        left: 1.6rem;
        display: block;
        width: 72.7rem;
        height: 62.4rem;
        background:
            linear-gradient(#4b4038, #4b4038) left top / 14.2rem 0.1rem no-repeat,
            linear-gradient(#4b4038, #4b4038) left top / 0.1rem 13.8rem no-repeat,
            linear-gradient(#4b4038, #4b4038) right bottom / 14.2rem 0.1rem no-repeat,
            linear-gradient(#4b4038, #4b4038) right bottom / 0.1rem 13.8rem no-repeat;
        pointer-events: none;
    }

    .greetingMessageFrame::after {
        content: none;
    }

    .greetingMessageFrame::before {
        content: none;
    }

    .greetingMessageTitle {
        top: 7.8rem;
        left: 26.8rem;
        width: 20.5rem;
        margin: 0;
        color: #6c5645;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .greetingMessageLine {
        top: 12.9rem;
        left: 25.7rem;
        display: block;
        width: 22.1rem;
        height: 1.1rem;
        background: #c39861;
    }

    .greetingMessageText {
        top: 19.7rem;
        left: 7.6rem;
        width: 59.2rem;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.0rem;
        font-weight: 400;
        line-height: 1.93;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .greetingNameBox {
        top: 71.8rem;
        left: 96.7rem;
        z-index: 6;
        width: 30.8rem;
        height: 19.2rem;
        background: #fff;
        text-align: center;
    }

    .greetingNameRole {
        top: 2.6rem;
        left: 12.2rem;
        width: 6.3rem;
        margin: 0;
        color: #4b4038;
        font-size: 3.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        white-space: nowrap;
    }

    .greetingNameMain {
        top: 7.3rem;
        left: 4.0rem;
        width: 23.0rem;
        margin: 0;
        color: #333;
        font-size: 4.7rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.08em;
        white-space: nowrap;
    }

    .greetingNameKana {
        top: 13.5rem;
        left: 5.1rem;
        width: 20.7rem;
        margin: 0;
        color: #333;
        font-size: 2.6rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.04em;
        white-space: nowrap;
    }
}

@media screen and (min-width: 769px) {
    .clinicSection {
        display: block;
        position: relative;
        width: 100%;
        height: 188.5rem;
        overflow: hidden;
        background: #e9e6e2;
        font-family: var(--font-mincho);
        margin-top: 3rem;
    }

    .clinicTitle,
    .clinicTitleEn,
    .clinicTitleIcon,
    .clinicTitleMain,
    .clinicInner,
    .clinicPhotoFrame,
    .clinicPhoto,
    .clinicCatch,
    .clinicDivider,
    .clinicContent,
    .clinicSchedule,
    .clinicInfo,
    .clinicButtons,
    .clinicButton,
    .clinicButtonIcon,
    .clinicButtonText,
    .clinicNews,
    .clinicNewsTitle,
    .clinicNewsLine,
    .clinicNewsList,
    .clinicNewsItem,
    .clinicNewsDate,
    .clinicNewsText {
        position: absolute;
    }

    .clinicTitle {
        top: 8.7rem;
        left: 80.3rem;
        width: 32.2rem;
        height: 15.5rem;
        text-align: center;
    }

    .clinicTitleEn {
        top: 0;
        left: 8.1rem;
        width: 15.0rem;
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.15em;
        white-space: nowrap;
    }

    .clinicTitleEn::first-letter {
        color: #c39961;
    }

    .clinicTitleIcon {
        top: 4.6rem;
        left: 10.7rem;
        display: block;
        width: 10.1rem;
        height: 1.1rem;
        background:
            radial-gradient(circle, #c39961 0 0.55rem, transparent 0.6rem) left center / 1.1rem 1.1rem no-repeat,
            radial-gradient(circle, #c39961 0 0.55rem, transparent 0.6rem) right center / 1.1rem 1.1rem no-repeat,
            linear-gradient(#c39961, #c39961) center center / 9.0rem 0.1rem no-repeat;
    }

    .clinicTitleMain {
        top: 8.2rem;
        left: 0;
        width: 32.2rem;
        margin: 0;
        color: #333;
        font-size: 7.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.1em;
        white-space: nowrap;
    }

    .clinicInner {
        top: 28.2rem;
        left: 50%;
        width: 166.2rem;
        height: 99.5rem;
        transform: translateX(-50%);
        background: #fff;
    }

    .clinicPhotoFrame {
        top: 2.9rem;
        left: 4.9rem;
        width: 156.4rem;
        height: 47.4rem;
        overflow: hidden;
    }

    .clinicPhoto {
        top: 0;
        left: 0;
        width: 156.4rem;
        height: 47.4rem;
        max-width: none;
        object-fit: cover;
    }

    .clinicCatch {
        top: 53.9rem;
        left: 54.3rem;
        width: 53.9rem;
        margin: 0;
        color: #c39961;
        font-size: 5.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.04em;
        text-align: center;
        white-space: nowrap;
    }

    .clinicDivider {
        top: 61.6rem;
        left: 5.1rem;
        display: block;
        width: 156.4rem;
        height: 0.1rem;
        background: #c39961;
    }

    .clinicContent {
        top: 66.1rem;
        left: 5.0rem;
        width: 148.5rem;
        height: 27.7rem;
    }

    .clinicSchedule {
        top: 0;
        left: 0;
        width: 73.6rem;
        height: 27.7rem;
        font-family: var(--font-gothic);
    }

    .clinicScheduleTable {
        width: 73.6rem;
        border-collapse: collapse;
        table-layout: fixed;
        color: #1e0e07;
        font-family: var(--font-gothic);
        text-align: center;
    }

    .clinicScheduleTable th,
    .clinicScheduleTable td {
        padding: 0;
        border: 0;
        vertical-align: middle;
    }

    .clinicScheduleTable thead th {
        height: 6.2rem;
        background: #4b3929;
        color: #fff;
        font-size: 2.2rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .clinicScheduleTable thead th:first-child,
    .clinicScheduleTable tbody th {
        width: 20.8rem;
    }

    .clinicScheduleTable tbody th {
        height: 8.7rem;
        background: #e8e3de;
        border-bottom: 0.1rem solid #928b84;
        font-size: 2.0rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
    }

    .clinicScheduleTable tbody td {
        height: 8.7rem;
        background: #e8e3de;
        border-bottom: 0.1rem solid #928b84;
        color: #c39961;
        font-size: 2.4rem;
        font-weight: 700;
        line-height: 1;
    }

    .clinicScheduleNote {
        margin: 2.05rem 0 0;
        color: #333;
        font-size: 2.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        white-space: nowrap;
    }

    .clinicInfo {
        top: 0.6rem;
        left: 82.6rem;
        width: 70.0rem;
        height: 26.6rem;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: left;
    }

    .clinicName,
    .clinicAddress,
    .clinicPhone,
    .clinicAccessTitle,
    .clinicAccessText {
        margin: 0;
        white-space: nowrap;
    }

    .clinicName,
    .clinicAccessTitle {
        font-weight: 700;
    }

    .clinicName {
        width: 16.6rem;
    }

    .clinicAddress {
        width: 59.5rem;
        margin-top: 2.1rem;
    }

    .clinicPhone {
        width: 27.2rem;
        margin-top: 1.8rem;
    }

    .clinicAccessTitle {
        width: 9.2rem;
        margin-top: 5.1rem;
    }

    .clinicAccessText {
        width: 35.0rem;
        margin-top: 1.5rem;
        line-height: 1.35;
    }

    .clinicButtons {
        top: 131.2rem;
        left: 27.6rem;
        width: 136.1rem;
        height: 8.7rem;
    }

    .clinicButton {
        top: 0;
        display: block;
        height: 8.7rem;
        background: #c39961;
        border-radius: 0.5rem;
        color: #fff;
        font-family: var(--font-mincho);
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.02em;
        text-decoration: none;
    }

    .clinicButton01 {
        left: 0;
        width: 30.4rem;
    }

    .clinicButton02 {
        left: 35.3rem;
        width: 30.3rem;
    }

    .clinicButton03 {
        left: 70.5rem;
        width: 30.4rem;
    }

    .clinicButton04 {
        left: 105.8rem;
        width: 30.3rem;
    }

    .clinicButtonIcon {
        top: 3.3rem;
        left: 7.1rem;
        width: 1.6rem;
        height: 2.1rem;
    }

    .clinicButtonText {
        top: 3.1rem;
        left: 9.7rem;
        white-space: nowrap;
    }

    .clinicButton02 .clinicButtonIcon {
        left: 5.0rem;
    }

    .clinicButton02 .clinicButtonText {
        left: 7.6rem;
    }

    .clinicButton03 .clinicButtonIcon {
        left: 6.1rem;
    }

    .clinicButton03 .clinicButtonText {
        left: 8.6rem;
    }

    .clinicButton04 .clinicButtonIcon {
        left: 5.0rem;
    }

    .clinicButton04 .clinicButtonText {
        left: 7.5rem;
    }

    .clinicNews {
        top: 146.6rem;
        left: 12.9rem;
        width: 166.2rem;
        height: 36.5rem;
        background: #fff;
    }

    .clinicNewsTitle {
        top: 3.9rem;
        left: 63.5rem;
        width: 38.7rem;
        margin: 0;
        color: #c39961;
        font-size: 4.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        text-align: center;
        white-space: nowrap;
    }

    .clinicNewsLine {
        top: 10.4rem;
        left: 7.8rem;
        display: block;
        width: 149.7rem;
        height: 0.1rem;
        background: #6c625a;
    }

    .clinicNewsList {
        top: 14.6rem;
        left: 8.2rem;
        width: 72.0rem;
        height: 16.5rem;
        margin: 0;
        color: #333;
        font-family: var(--font-gothic);
        font-size: 2.4rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.02em;
    }

    .clinicNewsItem {
        left: 0;
        width: 72.0rem;
        height: 2.4rem;
    }

    .clinicNewsItem01 {
        top: 0;
    }

    .clinicNewsItem02 {
        top: 7.1rem;
    }

    .clinicNewsItem03 {
        top: 14.2rem;
    }

    .clinicNewsDate {
        top: 0;
        left: 0;
        width: 12.3rem;
        margin: 0;
        font-weight: 700;
        white-space: nowrap;
    }

    .clinicNewsText {
        top: 0;
        left: 16.4rem;
        margin: 0;
        font-weight: 400;
        white-space: nowrap;
    }
}

@media screen and (max-width: 768px) {
    .contactSection {
        display: block;
        position: relative;
        width: 100%;
        height: 118.1rem;
        overflow: hidden;
        background: url("../img/contact_bg2-sp.jpg") center 58.6rem / 75.0rem 59.5rem no-repeat,
            url("../img/contact_bg1-sp.jpg") center top / 75.0rem 101.6rem no-repeat;
        font-family: var(--font-mincho);
        margin-top: 1rem;
    }

    .contactTitle,
    .contactTitleEn,
    .contactTitleIcon,
    .contactTitleMain,
    .contactTitleDivider,
    .contactLead,
    .contactButtons,
    .contactButton,
    .contactButtonSmall,
    .contactButtonMain,
    .contactButtonLineIcon,
    .contactButtonTelLabel,
    .contactButtonTelNumber,
    .contactButtonPhoneIcon {
        position: absolute;
    }

    .contactTitle {
        top: 8.0rem;
        left: -26.6rem;
        width: 131.0rem;
        height: 18.2rem;
        text-align: center;
    }

    .contactTitleEn {
        top: 0;
        left: 0;
        width: 131.0rem;
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
    }

    .contactInitial {
        color: #c89b5d;
    }

    .contactTitleIcon {
        top: 4.5rem;
        left: 59.0rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .contactTitleDot,
    .contactTitleLine {
        position: absolute;
        display: block;
        background: #c89b5d;
    }

    .contactTitleDot {
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
    }

    .contactTitleDotLeft {
        left: 0;
    }

    .contactTitleDotRight {
        right: 0;
    }

    .contactTitleLine {
        top: 0.6rem;
        left: 0.3rem;
        width: 9.0rem;
        height: 0.1rem;
    }

    .contactTitleMain {
        top: 9.4rem;
        left: 0;
        width: 131.0rem;
        margin: 0;
        color: #333;
        font-size: 6.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }

    .contactTitleDivider {
        left: 0;
        bottom: 0;
        display: block;
        width: 131.0rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .contactLead {
        top: 30.5rem;
        left: 5.5rem;
        width: 64.0rem;
        margin: 0;
        color: #333;
        font-size: 3.2rem;
        font-weight: 400;
        line-height: 1.78;
        letter-spacing: 0.08em;
        text-align: center;
    }

    .contactButtons {
        top: 62.5rem;
        left: 15.7rem;
        width: 43.1rem;
        height: 50.2rem;
    }

    .contactButton {
        left: 0;
        display: block;
        width: 43.1rem;
        height: 14.6rem;
        color: #fff;
        text-decoration: none;
    }

    .contactButtonWeb {
        top: 0;
        background: #4d3a2b;
    }

    .contactButtonLine {
        top: 17.8rem;
        background: #00bf3f;
    }

    .contactButtonTel {
        top: 35.6rem;
        background: #c99a5c;
    }

    .contactButtonSmall {
        top: 5.8rem;
        left: 6.0rem;
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
    }

    .contactButtonMain {
        top: 5.3rem;
        font-size: 4.2rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.02em;
        white-space: nowrap;
    }

    .contactButtonWeb .contactButtonMain {
        left: 16.4rem;
    }

    .contactButtonLine .contactButtonMain {
        left: 13.9rem;
    }

    .contactButtonLineIcon {
        top: 4.3rem;
        left: 5.5rem;
        width: 6.5rem;
        height: 6.4rem;
        object-fit: contain;
    }

    .contactButtonTelLabel {
        top: 3.2rem;
        left: 7.9rem;
        width: 28.3rem;
        font-size: 3.4rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
    }

    .contactButtonTelNumber {
        top: 8.1rem;
        left: 6.6rem;
        display: flex;
        align-items: center;
        gap: 1.3rem;
        color: #fff;
        font-size: 3.8rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
    }

    .contactButtonPhoneIcon {
        position: static;
        width: 4.3rem;
        height: 4.3rem;
        object-fit: contain;
    }

    .contactButtonCorner {
        position: absolute;
        right: 0.7rem;
        bottom: 0.8rem;
        display: block;
        width: 3.0rem;
        height: 3.0rem;
        background: #fff;
        clip-path: polygon(100% 0, 100% 100%, 0 100%);
    }
}

@media screen and (max-width: 768px) {
    .siteFooter {
        display: block;
        position: relative;
        width: 100%;
        height: 207.3rem;
        overflow: hidden;
        background: #ede9e5;
        color: #333;
        font-family: var(--font-gothic);
    }

    .footerBanners,
    .footerBanner,
    .footerInfo,
    .footerLogo,
    .footerAddress,
    .footerNav,
    .footerPageLinks,
    .footerPageItem,
    .footerMenu,
    .footerMenuTitle,
    .footerMenuList,
    .footerMenuItem,
    .footerCopyright,
    .footerCopyrightText {
        position: absolute;
    }

    .footerBanners {
        top: 5.0rem;
        left: 4.2rem;
        width: 66.4rem;
        height: 33.6rem;
    }

    .footerBanner {
        left: 0;
        display: block;
        overflow: hidden;
        text-decoration: none;
    }

    .footerBannerPatient {
        top: 0;
        width: 66.1rem;
        height: 14.6rem;
    }

    .footerBannerRecruit {
        top: 18.7rem;
        width: 66.4rem;
        height: 14.9rem;
    }

    .footerBannerImage {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .footerInfo {
        top: 44.1rem;
        left: 2.0rem;
        width: 56.6rem;
        height: 18.4rem;
    }

    .footerLogo {
        top: 0;
        left: 0;
        width: 36.3rem;
        height: 7.9rem;
        object-fit: contain;
    }

    .footerAddress {
        top: 11.0rem;
        left: 2.6rem;
        width: 54.0rem;
        margin: 0;
        color: #333;
        font-size: 2.6rem;
        font-weight: 400;
        line-height: 1.42;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .footerNav {
        top: 70.4rem;
        left: 4.4rem;
        width: 64.7rem;
        height: 125.3rem;
        color: #333;
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
    }

    .footerNav ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .footerNav a {
        color: inherit;
        text-decoration: none;
    }

    .footerSpBreak {
        display: block;
    }

    .footerPageLinks {
        top: 0;
        left: 0;
        width: 50.5rem;
        height: 26.6rem;
    }

    .footerPageItem {
        height: 2.9rem;
        line-height: 1;
        white-space: nowrap;
    }

    .footerPageItemTop {
        top: 0;
        left: 0;
    }

    .footerPageItemDoctor {
        top: 8.0rem;
        left: 0;
    }

    .footerPageItemPrice {
        top: 16.0rem;
        left: 0;
    }

    .footerPageItemRecruit {
        top: 24.0rem;
        left: 0;
    }

    .footerPageItemClinic {
        top: 0;
        left: 33.9rem;
    }

    .footerPageItemFirst {
        top: 8.0rem;
        left: 33.9rem;
    }

    .footerPageItemAccess {
        top: 16.0rem;
        left: 33.9rem;
    }

    .footerMenu {
        top: 35.4rem;
        left: 0.4rem;
        width: 64.3rem;
        height: 89.9rem;
    }

    .footerMenuTitle {
        top: 0;
        left: 0;
        margin: 0;
        color: #333;
        font-size: 2.8rem;
        font-weight: 700;
        line-height: 1;
        white-space: nowrap;
    }

    .footerMenuList {
        top: 0;
        left: 0;
        width: 64.3rem;
        height: 82.6rem;
        color: #333;
        font-size: 2.8rem;
        font-weight: 400;
        line-height: 1;
    }

    .footerMenuItem {
        height: 3.0rem;
        line-height: 1;
        white-space: nowrap;
    }

    .footerMenuItemCaries {
        top: 7.3rem;
        left: 0;
    }

    .footerMenuItemRoot {
        top: 15.3rem;
        left: 0;
    }

    .footerMenuItemPerio {
        top: 23.3rem;
        left: 0;
    }

    .footerMenuItemSurgery {
        top: 31.3rem;
        left: 0;
    }

    .footerMenuItemGaku {
        top: 39.3rem;
        left: 0;
    }

    .footerMenuItemEngagement {
        top: 47.3rem;
        left: 0;
    }

    .footerMenuItemBoroboro {
        top: 55.3rem;
        left: 0;
    }

    .footerMenuItemDenture {
        top: 63.3rem;
        left: -33.5rem;
    }

    .footerMenuItemShinbi {
        top: 71.3rem;
        left: -33.5rem;
    }

    .footerMenuItemCeramic {
        top: 79.3rem;
        left: -33.5rem;
    }

    .footerMenuItemMaintenance {
        top: 7.3rem;
        left: 0;
    }

    .footerMenuItemWhitening {
        top: 15.3rem;
        left: 0;
    }

    .footerMenuItemImplant {
        top: 23.3rem;
        left: 0;
    }

    .footerMenuItemInvisalign {
        top: 31.3rem;
        left: 0;
        height: 7.2rem;
        line-height: 1.42;
    }

    .footerMenuItemChild {
        top: 39.3rem;
        left: 0;
    }

    .footerMenuItemDirect {
        top: 47.3rem;
        left: 0;
    }

    .footerMenuItemLaminate {
        top: 55.3rem;
        left: 0;
    }

    .footerMenuItemFull {
        top: 63.3rem;
        left: 0;
    }

    .footerMenuItemSedation {
        top: 71.3rem;
        left: 0;
        width: 31.0rem;
        height: 7.2rem;
        line-height: 1.42;
        white-space: normal;
    }

    .footerMenuItemShort {
        top: 83.3rem;
        left: 0;
    }

    .footerMenuList01 {
        left: 0;
    }

    .footerMenuList02 {
        left: 33.5rem;
    }

    .footerMenuList03 {
        left: 33.5rem;
    }

    .footerCopyright {
        left: 0;
        bottom: 0;
        width: 100%;
        height: 5.9rem;
        background: #4a3b28;
    }

    .footerCopyrightText {
        top: 1.9rem;
        left: 20.4rem;
        width: 33.9rem;
        margin: 0;
        color: #fff;
        font-size: 2.0rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }
}

@media screen and (min-width: 769px) {
    .contactSection {
        display: block;
        position: relative;
        width: 100%;
        height: 71.2rem;
        overflow: hidden;
        background: url("../img/contact_bg2.jpg") center 46.6rem / 192.0rem 26.7rem no-repeat,
            url("../img/contact_bg1.jpg") center top / 192.0rem 100.0rem no-repeat;
        font-family: var(--font-mincho);
        margin-top: 1rem;
    }

    .contactTitle,
    .contactTitleEn,
    .contactTitleIcon,
    .contactTitleMain,
    .contactTitleDivider,
    .contactLead,
    .contactButtons,
    .contactButton,
    .contactButtonSmall,
    .contactButtonMain,
    .contactButtonLineIcon,
    .contactButtonTelLabel,
    .contactButtonTelNumber,
    .contactButtonPhoneIcon {
        position: absolute;
    }

    .contactTitle {
        top: 8.0rem;
        left: 32.0rem;
        width: 131.0rem;
        height: 18.3rem;
        text-align: center;
    }

    .contactTitleEn {
        top: 0;
        left: 0;
        width: 131.0rem;
        margin: 0;
        color: #000;
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
    }

    .contactInitial {
        color: #c89b5d;
    }

    .contactTitleIcon {
        top: 4.5rem;
        left: 59.0rem;
        width: 10.1rem;
        height: 1.1rem;
    }

    .contactTitleDot,
    .contactTitleLine {
        position: absolute;
        display: block;
        background: #c89b5d;
    }

    .contactTitleDot {
        top: 0;
        width: 1.1rem;
        height: 1.1rem;
        border-radius: 50%;
    }

    .contactTitleDotLeft {
        left: 0;
    }

    .contactTitleDotRight {
        right: 0;
    }

    .contactTitleLine {
        top: 0.6rem;
        left: 0.3rem;
        width: 9.0rem;
        height: 0.1rem;
    }

    .contactTitleMain {
        top: 8.2rem;
        left: 0;
        width: 131.0rem;
        margin: 0;
        color: #333;
        font-size: 7.3rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.06em;
    }

    .contactTitleDivider {
        left: 0;
        bottom: 0;
        display: block;
        width: 131.0rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .contactLead {
        top: 30.5rem;
        left: 35.1rem;
        width: 127.2rem;
        margin: 0;
        color: #333;
        font-size: 3.6rem;
        font-weight: 400;
        line-height: 1.85;
        letter-spacing: 0.08em;
        text-align: center;
        white-space: nowrap;
    }

    .contactButtons {
        top: 51.8rem;
        left: 33.0rem;
        width: 130.0rem;
        height: 14.6rem;
    }

    .contactButton {
        top: 0;
        display: block;
        height: 14.6rem;
        color: #fff;
        text-decoration: none;
    }

    .contactButtonWeb {
        left: 0;
        width: 39.1rem;
        background: #4d3a2b;
    }

    .contactButtonLine {
        left: 45.6rem;
        width: 39.0rem;
        background: #00bf3f;
    }

    .contactButtonTel {
        left: 91.0rem;
        width: 39.0rem;
        background: #c99a5c;
    }

    .contactButtonSmall {
        top: 5.6rem;
        left: 3.9rem;
        font-size: 3.0rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
    }

    .contactButtonMain {
        top: 4.8rem;
        font-size: 4.8rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.02em;
        white-space: nowrap;
    }

    .contactButtonWeb .contactButtonMain {
        left: 14.3rem;
    }

    .contactButtonLine .contactButtonMain {
        left: 11.8rem;
    }

    .contactButtonLineIcon {
        top: 4.3rem;
        left: 3.5rem;
        width: 6.5rem;
        height: 6.4rem;
        object-fit: contain;
    }

    .contactButtonTelLabel {
        top: 3.2rem;
        left: 5.8rem;
        width: 28.3rem;
        font-size: 3.4rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
    }

    .contactButtonTelNumber {
        top: 8.6rem;
        left: 4.6rem;
        display: flex;
        align-items: center;
        gap: 1.3rem;
        color: #fff;
        font-size: 3.8rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
    }

    .contactButtonPhoneIcon {
        position: static;
        width: 4.3rem;
        height: 4.3rem;
        object-fit: contain;
    }

    .contactButtonCorner {
        position: absolute;
        right: 0.7rem;
        bottom: 0.8rem;
        display: block;
        width: 3.0rem;
        height: 3.0rem;
        background: #fff;
        clip-path: polygon(100% 0, 100% 100%, 0 100%);
    }
}

@media screen and (min-width: 769px) {
    .siteFooter {
        display: block;
        position: relative;
        width: 100%;
        height: 77.9rem;
        overflow: hidden;
        background: #ede9e5;
        color: #333;
        font-family: var(--font-gothic);
    }

    .footerBanners,
    .footerBanner,
    .footerInfo,
    .footerLogo,
    .footerAddress,
    .footerNav,
    .footerPageLinks,
    .footerMenu,
    .footerMenuTitle,
    .footerMenuList,
    .footerCopyright,
    .footerCopyrightText {
        position: absolute;
    }

    .footerBanners {
        top: 4.9rem;
        left: 15.2rem;
        width: 159.4rem;
        height: 17.0rem;
    }

    .footerBanner {
        top: 0;
        display: block;
        width: 77.1rem;
        height: 17.0rem;
        overflow: hidden;
        text-decoration: none;
    }

    .footerBannerPatient {
        left: 0;
    }

    .footerBannerRecruit {
        left: 82.3rem;
    }

    .footerBannerImage {
        display: block;
        width: 77.1rem;
        height: 17.0rem;
        object-fit: cover;
    }

    .footerInfo {
        top: 30.7rem;
        left: 16.0rem;
        width: 45.5rem;
        height: 16.6rem;
    }

    .footerLogo {
        top: 0;
        left: 0;
        width: 30.8rem;
        height: 5.7rem;
        object-fit: contain;
    }

    .footerAddress {
        top: 8.2rem;
        left: 0.8rem;
        width: 42.4rem;
        margin: 0;
        color: #333;
        font-size: 2.2rem;
        font-weight: 500;
        line-height: 1.7;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .footerNav {
        top: 30.3rem;
        left: 72.7rem;
        width: 100.0rem;
        height: 38.5rem;
        color: #333;
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0;
    }

    .footerNav ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .footerNav a {
        color: inherit;
        text-decoration: none;
    }

    .footerPageLinks {
        top: 0;
        left: 0;
        width: 13.0rem;
        height: 31.5rem;
    }

    .footerPageLinks li,
    .footerMenuList li {
        height: 5.0rem;
        line-height: 1;
        white-space: nowrap;
    }

    .footerMenu {
        top: 0;
        left: 22.7rem;
        width: 79.0rem;
        height: 38.5rem;
    }

    .footerMenuTitle {
        top: 0;
        left: 0;
        width: 10.6rem;
        margin: 0;
        color: #333;
        font-size: 1.8rem;
        font-weight: 700;
        line-height: 1;
        white-space: nowrap;
    }

    .footerMenuList {
        top: 4.2rem;
        color: #333;
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1;
    }

    .footerMenuList01 {
        left: 0.6rem;
        width: 16.1rem;
    }

    .footerMenuList02 {
        left: 25.8rem;
        width: 19.6rem;
    }

    .footerMenuList03 {
        left: 52.0rem;
        width: 24.0rem;
    }

    .footerMenuList02 li:last-child {
        line-height: 2.5rem;
    }

    .footerCopyright {
        left: 0;
        bottom: 0;
        width: 100%;
        height: 5.3rem;
        background: #4a3b28;
    }

    .footerCopyrightText {
        top: 1.7rem;
        left: 80.7rem;
        width: 30.5rem;
        margin: 0;
        color: #fff;
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }
}

@media screen and (min-width: 769px) {
    .infoSection {
        display: block;
        width: 100%;
        height: 112.2rem;
        overflow: hidden;
        background: #f2f0ee url("../img/info_bg.jpg") center top / 192.0rem auto no-repeat;
    }

    .infoInner {
        position: relative;
        top: 5.0rem;
        width: 165.9rem;
        height: 100.2rem;
        margin: 0 auto;
        background: #fff;
    }

    .infoTitleBlock {
        position: absolute;
        top: 5.0rem;
        left: 50%;
        width: 32.0rem;
        height: 5.6rem;
        transform: translateX(-50%);
        text-align: center;
    }

    .infoTitle {
        margin: 0;
        color: #000;
        font-family: var(--font-mincho);
        font-size: 3.6rem;
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.18em;
    }

    .infoTitleInitial {
        color: #c89b5d;
    }

    .infoTitleMark {
        position: absolute;
        left: 50%;
        bottom: 0;
        width: 10.1rem;
        height: 1.1rem;
        transform: translateX(-50%);
    }

    .infoTitleMark::before {
        content: "";
        position: absolute;
        top: 0.5rem;
        left: 0.6rem;
        width: 8.9rem;
        height: 0.1rem;
        background: #c89b5d;
    }

    .infoTitleMark::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
            radial-gradient(circle at 0.55rem 0.55rem, #c89b5d 0 0.55rem, transparent 0.56rem),
            radial-gradient(circle at 9.55rem 0.55rem, #c89b5d 0 0.55rem, transparent 0.56rem);
    }

    .infoPhoto {
        position: absolute;
        top: 14.9rem;
        left: 4.75rem;
        width: 156.4rem;
        height: 47.4rem;
        object-fit: cover;
    }

    .infoContent {
        position: absolute;
        top: 66.1rem;
        left: 4.75rem;
        display: flex;
        width: 142.25rem;
        align-items: flex-start;
        justify-content: space-between;
    }

    .infoSchedule {
        width: 78.1rem;
    }

    .infoScheduleTable {
        width: 78.1rem;
        height: 23.8rem;
        border-collapse: collapse;
        table-layout: fixed;
        font-family: var(--font-gothic);
    }

    .infoScheduleTable th,
    .infoScheduleTable td {
        padding: 0;
        text-align: center;
        vertical-align: middle;
    }

    .infoScheduleTable thead th {
        height: 6.2rem;
        background: #4b3626;
        color: #fff;
        font-size: 2.4rem;
        font-weight: 700;
        line-height: 1;
    }

    .infoScheduleTable thead th:first-child {
        width: 21.1rem;
    }

    .infoScheduleTable tbody th,
    .infoScheduleTable tbody td {
        height: 8.8rem;
        background: #ebe7e3;
        border-bottom: 0.1rem solid #7c746f;
    }

    .infoScheduleTable tbody th {
        padding-left: 2.9rem;
        color: #161616;
        font-size: 2.2rem;
        font-weight: 700;
        line-height: 1;
        text-align: left;
    }

    .infoScheduleTable tbody td {
        color: #c89b5d;
        font-size: 2.1rem;
        font-weight: 700;
        line-height: 1;
    }

    .infoOpen,
    .infoClosed {
        display: inline-block;
        color: #c89b5d;
        font-weight: 700;
        line-height: 1;
    }

    .infoScheduleNote {
        margin: 1.8rem 0 0;
        color: #3e352e;
        font-family: var(--font-gothic);
        font-size: 2.0rem;
        font-weight: 400;
        line-height: 1;
        white-space: nowrap;
    }

    .infoClinic {
        width: 59.6rem;
        margin-top: 1.0rem;
        padding-top: 0.9rem;
        color: #3e352e;
        font-family: var(--font-gothic);
        text-align: left;
    }

    .infoClinicName,
    .infoClinicLabel {
        margin: 0;
        font-size: 2.4rem;
        font-weight: 700;
        line-height: 1;
    }

    .infoClinicText {
        margin: 1.7rem 0 0;
        font-size: 2.2rem;
        font-weight: 400;
        line-height: 1.85;
    }

    .infoClinicLabel {
        margin-top: 3.0rem;
    }
}

@media screen and (max-width: 768px) {
    body {
        padding-bottom: 0;
    }

    .siteFooter {
        margin-bottom: calc(11.9rem + env(safe-area-inset-bottom));
    }

    .spFloatingBanner {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 80;
        display: flex;
        width: 100%;
        height: 11.9rem;
        font-family: var(--font-mincho);
        color: #fff;
        line-height: 1;
    }

    .spFloatingBannerItem {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 33.333333%;
        height: 11.9rem;
        color: #fff;
        font-weight: 600;
        overflow: hidden;
    }

    .spFloatingBannerItemWeb {
        flex-direction: column;
        background: #4b3a2a;
    }

    .spFloatingBannerItemLine {
        gap: 0.9rem;
        background: #00b832;
    }

    .spFloatingBannerItemTel {
        gap: 0.7rem;
        background: #c39861;
    }

    .spFloatingBannerWebSmall {
        display: block;
        margin-bottom: 0.6rem;
        font-size: 2.7rem;
        line-height: 1;
    }

    .spFloatingBannerMain {
        display: block;
        font-size: 3.3rem;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .spFloatingBannerLineIcon {
        width: 6.5rem;
        height: 6.4rem;
        object-fit: contain;
    }

    .spFloatingBannerPhoneIcon {
        width: 4.3rem;
        height: 4.3rem;
        object-fit: contain;
    }

    .spFloatingBannerTelText {
        display: block;
        font-size: 2.9rem;
        line-height: 1.23;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .spFloatingBannerCorner {
        position: absolute;
        right: 0.8rem;
        bottom: 0.8rem;
        width: 3.0rem;
        height: 3.0rem;
        background: #fff;
        clip-path: polygon(100% 0, 100% 100%, 0 100%);
    }
}

@media screen and (min-width: 769px) {
    .headerContactItem,
    .headerInstagram,
    .menuButton,
    .firstCtaButton,
    .serviceCardButton,
    .onayamiCardButton,
    .omakaseCard,
    .medicalMenuCard,
    .clinicButton,
    .contactButton,
    .footerBanner {
        transition: opacity 0.3s ease;
    }

    .headerContactItem:hover,
    .headerInstagram:hover,
    .menuButton:hover,
    .firstCtaButton:hover,
    .serviceCardButton:hover,
    .onayamiCardButton:hover,
    .omakaseCard:hover,
    .medicalMenuCard:hover,
    .clinicButton:hover,
    .contactButton:hover,
    .footerBanner:hover {
        opacity: 0.8;
    }

    .period-indent{
        margin-left: -1.1rem;
    }
    .period-indent-large{
        margin-left: -3.1rem;
    }
    br.sp{
        display: none;
    }
}
@media screen and (max-width: 768px) {
    .period-indent-sp{
        margin-left: -1.1rem;
    }
    .period-indent-sp-large{
        margin-left: -2.1rem;
    }
    .infoScheduleNote .period-indent-sp{
        margin-left: -0.8rem;
    }
}
