/*
Theme Name: Yamada Dental Clinic Ortho Theme
Theme URI: https://yamada-dc-ortho.com/
Author: Antigravity
Author URI: https://github.com/google-deepmind
Description: Custom WordPress theme for Yamada Dental Clinic & Orthodontics.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yamada-dc-ortho
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Infant:ital,wght@0,400;0,600&family=Noto+Sans+JP:wght@400;500;600&family=Shippori+Mincho:wght@500&display=swap');

html,
body {
    overflow-x: hidden;
}

body {
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #faf9f6;
    color: #575757;
}

main {
    /* overflow: hidden; */
}

/* Responsive visibility utilities */
.pc-only {
    display: inline;
}

.sp-only {
    display: none;
}

@media (max-width: 590px) {
    .pc-only {
        display: none !important;
    }

    .sp-only {
        display: inline !important;
    }

    span.sp-only,
    div.sp-only {
        display: block !important;
    }
}

/* Floating Header Wrapper */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 170px;
    padding: 40px 80px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    background: transparent;
    z-index: 1000;
}

.admin-bar .site-header {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar .site-header {
        top: 46px;
    }
}

/* Pill-shaped Header Container */
.header-container {
    background-color: #ffffff;
    box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.03), 0px 0px 1.5px rgba(0, 0, 0, 0.1);
    height: 85px;
    width: 100%;
    max-width: 1800px;
    border-radius: 106.463px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px 0 40px;
    gap: 24px;
    box-sizing: border-box;
}

/* Logo Area */
.site-branding {
    flex-shrink: 0;
}

.site-branding-heading,
.site-branding-inner {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: normal;
    line-height: inherit;
    display: flex;
    align-items: center;
    height: 100%;
}

.logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    height: 100%;
}

.logo-group {
    display: flex;
    align-items: center;
    gap: 15px;
}

.logo-mark-container {
    position: relative;
    width: 35px;
    height: 47px;
}

.logo-mark-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.logo-text-img {
    height: 18.716px;
    width: auto;
    display: block;
}

/* Navigation Menu Area (Right) */
.header-menu {
    display: flex;
    align-items: center;
    gap: 24px;
}

.header-buttons {
    display: flex;
    align-items: center;
    gap: 17.034px;
}

/* Header Reusable Button Styles */
.header-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    height: 58.554px;
    border-radius: 53.231px;
    padding: 17.034px 34.068px;
    box-sizing: border-box;
    text-decoration: none;
    color: #ffffff !important;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: background-color 0.2s ease, opacity 0.2s ease;
}

.header-btn:hover {
    opacity: 0.9;
}

.header-btn .btn-icon {
    display: block;
    object-fit: contain;
}

.header-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    line-height: 1.6;
    white-space: nowrap;
}

/* Specific button colors & adjustments */
.btn-phone {
    background-color: #2faa87;
    padding-right: 42.585px;
}

.btn-phone .btn-icon {
    width: 29.81px;
    height: 29.81px;
}

.btn-phone span {
    font-size: 21.293px;
    letter-spacing: 0.6388px;
}

.btn-reserve {
    background-color: #63574d;
    padding-right: 42.585px;
}

.btn-reserve .btn-icon {
    width: 34.068px;
    height: 34.068px;
}

.btn-reserve span,
.btn-first span {
    font-size: 19.163px;
    letter-spacing: 0.9582px;
}

.btn-first {
    background-color: #575757;
}



/* Instagram Icon link */
.header-instagram,
.header-line {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57.49px;
    height: 57.49px;
    transition: opacity 0.2s ease;
    text-decoration: none;
}

.header-line {
    background-color: #06C755;
    border-radius: 14.195px;
}

.header-instagram:hover,
.header-line:hover {
    opacity: 0.8;
}

.instagram-icon {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.line-icon {
    width: 44px;
    height: 44px;
    display: block;
    object-fit: contain;
}

/* Hamburger Menu button */
.header-hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    width: 63.878px;
    height: 63.878px;
    background-color: #2faa87;
    border: none;
    border-radius: 53.231px;
    cursor: pointer;
    padding-top: 3.194px;
    box-sizing: border-box;
    transition: background-color 0.2s ease;
    position: relative;
}

.header-hamburger:hover {
    background-color: #268c6f;
}

.hamburger-line {
    position: relative;
    left: auto;
    width: 33px;
    height: 2px;
    background-color: #ffffff;
    border-radius: 2px;
    transform: none;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.hamburger-icon {
    width: 33.003px;
    height: 21.293px;
    display: block;
    object-fit: contain;
}

body.is-navigation-open {
    overflow: hidden;
}

body.is-navigation-open .site-header {
    z-index: 1300;
    pointer-events: none;
}

body.is-navigation-open .header-container {
    background: transparent;
    box-shadow: none;
    justify-content: flex-end;
    pointer-events: none;
}

body.is-navigation-open .site-branding,
body.is-navigation-open .header-buttons,
body.is-navigation-open .header-line,
body.is-navigation-open .header-instagram {
    opacity: 0;
    pointer-events: none;
}

body.is-navigation-open .header-hamburger {
    pointer-events: auto;
}

/* Open state: center both lines in the button so the X does not depend on gap/padding */
body.is-navigation-open .hamburger-line {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -1px;
}

body.is-navigation-open .hamburger-line:first-child {
    transform: translateX(-50%) rotate(45deg);
}

body.is-navigation-open .hamburger-line:nth-child(2) {
    opacity: 0;
}

body.is-navigation-open .hamburger-line:nth-child(3) {
    transform: translateX(-50%) rotate(-45deg);
}

.site-navigation-overlay[hidden] {
    display: none;
}

.site-navigation-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    grid-template-columns: minmax(330px, 556px) minmax(0, 1fr);
    min-height: 100vh;
    background-color: #f1f1f1;
    color: #575757;
    overflow-y: auto;
}

.navigation-sidebar {
    height: 100%;
    background-color: #575757;
    border-top-right-radius: 100px;
    display: flex;
    justify-content: center;
    padding: 93px 56px 92px;
    box-sizing: border-box;
}

.navigation-sidebar-inner {
    width: 305px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.navigation-logo-link {
    display: block;
    width: 283px;
    height: 110px;
}

.navigation-logo-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.navigation-sns {
    display: flex;
    gap: 16px;
    align-items: center;
}

.navigation-instagram,
.navigation-line {
    display: flex;
    width: 39px;
    height: 39px;
    align-items: center;
    justify-content: center;
}

.navigation-line {
    background-color: #06C755;
    border-radius: 9.6px;
}

.navigation-instagram img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.nav-line-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
    display: block;
}

.navigation-info-list {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.navigation-info-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.navigation-info-item h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #ffffff;
}

.navigation-info-item h2 span {
    width: 6px;
    height: 30px;
    border-radius: 10px;
    background-color: #ffffff;
    flex-shrink: 0;
}

.navigation-info-item p {
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #ffffff;
}

.navigation-map-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 30px;
    padding: 6px 16px;
    border-radius: 50px;
    background-color: #ffffff;
    color: #575757;
    text-decoration: none;
    box-sizing: border-box;
}

.navigation-map-btn img {
    width: 14.4px;
    height: 14.4px;
    object-fit: contain;
}

.navigation-map-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.65px;
}

.navigation-cta-box {
    width: 100%;
    padding: 24px;
    border-radius: 20px;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
}

.navigation-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 55px;
    padding: 12px 24px;
    border-radius: 50px;
    color: #ffffff;
    text-decoration: none;
    box-sizing: border-box;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.05);
    transition: opacity 0.2s ease;
}

.navigation-cta:hover {
    opacity: 0.9;
}

.navigation-cta img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex-shrink: 0;
}

.navigation-cta-reserve img {
    width: 32px;
    height: 32px;
}

.navigation-cta span {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.navigation-cta-phone span {
    font-size: 20px;
    letter-spacing: 0.5px;
}

.navigation-cta-phone {
    background-color: #2faa87;
}

.navigation-cta-reserve {
    background-color: #63574d;
}

.navigation-cta-first,
.navigation-cta-line {
    background-color: #575757;
}

.navigation-cta-line img {
    width: 32px;
    height: 32px;
}

.navigation-main {
    display: grid;
    grid-template-columns: minmax(420px, 592px) minmax(360px, 477px);
    gap: clamp(40px, 4.64vw, 89px);
    align-content: start;
    justify-content: center;
    padding: 155px 80px 80px 50px;
    box-sizing: border-box;
}

.navigation-schedule {
    display: flex;
    flex-direction: column;
    gap: 64px;
}

.navigation-schedule-card {
    width: 100%;
    border-radius: 20px;
    background-color: #ffffff;
    padding: 32px 34px;
    box-sizing: border-box;
}

.navigation-schedule-card h2 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #63574d;
}

.navigation-schedule-card h2 span {
    width: 5px;
    height: 25px;
    border-radius: 8px;
    background-color: #2faa87;
    flex-shrink: 0;
}

.navigation-table-scroll {
    width: 100%;
    overflow-x: visible;
}

.navigation-hours-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
}

.navigation-hours-table th,
.navigation-hours-table td {
    height: 45px;
    text-align: center;
    vertical-align: middle;
    border-bottom: 1px solid rgba(47, 170, 135, 0.22);
    font-family: 'Noto Sans JP', sans-serif;
    box-sizing: border-box;
}

.navigation-hours-table th {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.7px;
    color: #575757;
}

.navigation-hours-table td {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.65px;
    color: #2faa87;
}

.navigation-hours-table th:first-child,
.navigation-hours-table td:first-child {
    width: 25%;
    text-align: left;
    padding-left: 4px;
    white-space: nowrap;
}

.nav-symbol-circle,
.nav-symbol-dash {
    color: #2faa87;
    font-size: 15px;
    line-height: 1;
}

/* 注記が列幅より広いため、セル幅いっぱいの flex にして左右均等にはみ出させ、●/★ を列の中心に揃える */
.nav-sat-note,
.nav-sun-note {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 34px;
    color: #2faa87;
}

.nav-sat-note small,
.nav-sun-note small {
    font-size: 9px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.45px;
    white-space: nowrap;
}

.nav-sun-note img {
    width: 15px;
    height: 15px;
    object-fit: contain;
    display: block;
}

.navigation-table-notes {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 16px;
}

.navigation-table-notes p {
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.65px;
    color: #2faa87;
}

.navigation-links-area {
    display: flex;
    min-height: 708px;
    flex-direction: column;
    justify-content: space-between;
    gap: 40px;
}

.navigation-links {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 80px;
}

.navigation-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.navigation-links a {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #575757;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.5px;
    white-space: nowrap;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.navigation-links a:hover {
    color: #2faa87;
}

.navigation-links a span {
    color: #2faa87;
    font-size: 10px;
    line-height: 1.6;
}


.navigation-dental-dock {
    position: relative;
    display: block;
    width: 100%;
    max-width: 477px;
    aspect-ratio: 477 / 172;
    overflow: hidden;
    border-radius: 20px;
    color: #ffffff;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.navigation-dental-dock:hover {
    opacity: 0.9;
}

.navigation-dental-dock img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Responsive adjustments */
@media (max-width: 1800px) {

    .site-header {
        padding: 2.083vw 4.167vw;
        height: auto;
    }

    .header-container {
        height: 4.427vw;
        border-radius: 5.545vw;
        padding: 0 2.222vw;
        gap: 1.250vw;
    }

    .header-menu {
        gap: 1.25vw;
    }

    .header-buttons {
        gap: 0.887vw;
    }

    .header-btn {
        gap: 0.887vw;
        height: 3.05vw;
        border-radius: 2.772vw;
        padding: 0.887vw 1.774vw;
    }

    .btn-phone span {
        font-size: 1.109vw;
        letter-spacing: 0.035vw;
    }

    .btn-reserve span,
    .btn-first span {
        font-size: 0.998vw;
        letter-spacing: 0.053vw;
    }

    .header-btn .btn-icon {
        width: 1.892vw;
        height: 1.892vw;
    }

    .btn-phone .btn-icon {
        width: 1.553vw;
        height: 1.553vw;
    }

    .header-instagram,
    .header-line {
        width: 2.994vw;
        height: 2.994vw;
        border-radius: 0.777vw;
    }

    .header-line {
        border-radius: 0.739vw;
    }

    .line-icon {
        width: 2.292vw;
        height: 2.292vw;
    }

    .header-hamburger {
        width: 3.327vw;
        height: 3.327vw;
        border-radius: 2.772vw;
        gap: 0.417vw;
    }

    .hamburger-line {
        width: 1.719vw;
        height: 2px;
        border-radius: 2px;
    }

    body.is-navigation-open .hamburger-line:first-child {
        transform: translateX(-50%) rotate(45deg);
    }

    body.is-navigation-open .hamburger-line:nth-child(3) {
        transform: translateX(-50%) rotate(-45deg);
    }

    .logo-mark-container {
        width: 1.823vw;
        height: 2.448vw;
    }

    .logo-text-img {
        height: 0.975vw;
    }

    .logo-group {
        gap: 0.781vw;
    }

    .logo-link {
        height: 4.140vw;
    }

    .site-navigation-overlay {
        grid-template-columns: minmax(17.188vw, 28.958vw) minmax(0, 1fr);
    }

    .navigation-sidebar {
        padding: 4.844vw 2.917vw 4.792vw;
        border-top-right-radius: 5.208vw;
    }

    .navigation-sidebar-inner {
        gap: 2.083vw;
    }

    .navigation-logo-link {
        width: 14.74vw;
        height: 5.729vw;
    }

    .navigation-info-list {
        gap: 2.083vw;
    }

    .navigation-info-item {
        gap: 0.833vw;
    }

    .navigation-info-item h2 {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .navigation-info-item p {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .navigation-cta-box {
        padding: 1.25vw;
        gap: 0.833vw;
        border-radius: 1.042vw;
    }

    .navigation-cta span {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .navigation-cta-icon {
        width: 1.667vw;
        height: 1.667vw;
    }

    .navigation-cta-phone span {
        font-size: 1.042vw;
        letter-spacing: 0.026vw;
    }

    .navigation-sns {
        gap: 0.833vw;
    }

    .navigation-instagram,
    .navigation-line {
        width: 2.031vw;
        height: 2.031vw;
    }

    .navigation-line {
        border-radius: 0.5vw;
    }

    .navigation-main {
        grid-template-columns: minmax(21.875vw, 30.833vw) 1fr;
        padding: 7.031vw 4.167vw 3.125vw;
        gap: 4.635vw;
    }

    .navigation-schedule {
        gap: 3.333vw;
    }

    .navigation-schedule-card {
        padding: 1.667vw 1.771vw;
        border-radius: 1.042vw;
    }

    .navigation-schedule-card h2 {
        margin-bottom: 1.250vw;
        font-size: 0.833vw;
        letter-spacing: 0.042vw;
    }

    .navigation-hours-table th,
    .navigation-hours-table td {
        font-size: 0.729vw;
        height: 2.344vw;
    }

    .navigation-hours-table td {
        font-size: 0.677vw;
    }

    .navigation-hours-table th {
        letter-spacing: 0.036vw;
    }

    .navigation-hours-table td {
        letter-spacing: 0.034vw;
    }

    .nav-symbol-circle,
    .nav-symbol-dash {
        font-size: 0.781vw;
    }

    .nav-sat-note small,
    .nav-sun-note small {
        font-size: 0.469vw;
        letter-spacing: 0.023vw;
    }

    .navigation-table-notes p {
        font-size: 0.677vw;
        letter-spacing: 0.034vw;
    }

    .navigation-map-btn span {
        font-size: 0.677vw;
        letter-spacing: 0.034vw;
    }

    .navigation-links {
        gap: 4.167vw;
    }

    .navigation-links ul {
        gap: 1.667vw;
    }

    .navigation-links a {
        font-size: 0.938vw;
        gap: 0.417vw;
        letter-spacing: 0.026vw;
    }

    .navigation-links a span {
        font-size: 0.521vw;
    }

    .navigation-dental-dock {
        border-radius: 1.042vw;
    }
}

/* Narrow PC header: tighten button spacing so the menu does not overlap the logo */
@media (max-width: 1280px) {
    .header-buttons {
        gap: 0.625vw;
    }

    .header-btn {
        padding: 0.946vw 1.250vw;
    }
}

/* Tablet header: phone button becomes icon-only so the menu does not overlap the logo */
@media (max-width: 1024px) {
    /* 1800px 以下を完全比例（vw）にしたため、タブレット以下は従来の値を維持する */
    .header-line {
        border-radius: 0.777vw;
    }

    .navigation-hours-table td {
        font-size: calc(8.64px + 0.279vw);
    }

    .site-header {
        padding: 2.222vw 4.444vw;
    }

    .header-container {
        height: 4.722vw;
        border-radius: 5.914vw;
    }

    .header-menu {
        gap: 0.833vw;
    }

    .header-buttons {
        gap: 0.946vw;
    }

    .header-btn {
        gap: 0.946vw;
        height: 3.253vw;
        border-radius: 2.957vw;
        padding: 0.946vw 1.892vw;
    }

    .btn-phone span {
        font-size: calc(10.99px + 0.625vw);
    }

    .btn-reserve span, .btn-first span {
        font-size: calc(10.35px + 0.503vw);
    }

    .btn-phone .btn-icon {
        width: 1.656vw;
        height: 1.656vw;
    }

    .header-instagram, .header-line {
        width: 3.193vw;
        height: 3.193vw;
    }

    .line-icon {
        width: 2.444vw;
        height: 2.444vw;
    }

    .header-hamburger {
        width: 3.548vw;
        height: 3.548vw;
        border-radius: 2.957vw;
        gap: 0.444vw;
    }

    .hamburger-line {
        width: 1.833vw;
    }

    .logo-mark-container {
        width: 1.940vw;
        height: 2.614vw;
    }

    .logo-text-img {
        height: 1.039vw;
    }

    .logo-group {
        gap: 0.580vw;
    }

    .navigation-sidebar {
        padding: 6.771vw 4.167vw 3.125vw;
    }

    .navigation-sidebar-inner {
        gap: 3.125vw;
    }

    .navigation-logo-link {
        width: 14.167vw;
        height: 5.521vw;
    }

    .navigation-info-list {
        gap: 1.667vw;
    }

    .navigation-info-item h2 {
        font-size: calc(9.42px + 0.447vw);
        letter-spacing: 0.5px;
    }

    .navigation-info-item p {
        font-size: calc(9.56px + 0.335vw);
        letter-spacing: 0.052vw;
    }

    .navigation-cta-box {
        padding: 1.667vw;
        gap: 1.250vw;
    }

    .navigation-cta span {
        font-size: calc(9.42px + 0.447vw);
        letter-spacing: 0.5px;
    }

    .navigation-cta-phone span {
        font-size: calc(10.74px + 0.587vw);
        letter-spacing: 0.5px;
    }

    .navigation-schedule {
        gap: 1.667vw;
    }

    .navigation-schedule-card {
        padding: 1.667vw 2.083vw;
    }

    .navigation-schedule-card h2 {
        font-size: calc(9.42px + 0.447vw);
        letter-spacing: 0.8px;
    }

    .navigation-hours-table th, .navigation-hours-table td {
        font-size: calc(8.64px + 0.279vw);
        height: 3.125vw;
    }

    .navigation-hours-table th {
        letter-spacing: 0.7px;
    }

    .navigation-hours-table td {
        letter-spacing: 0.65px;
    }

    .nav-symbol-circle, .nav-symbol-dash {
        font-size: calc(8.71px + 0.327vw);
    }

    .nav-sat-note small, .nav-sun-note small {
        font-size: calc(5.99px + 0.156vw);
        letter-spacing: 0.45px;
    }

    .navigation-table-notes p {
        font-size: calc(7.85px + 0.268vw);
        letter-spacing: 0.65px;
    }

    .navigation-map-btn span {
        font-size: calc(7.85px + 0.268vw);
        letter-spacing: 0.65px;
    }

    .navigation-links a {
        font-size: calc(9.42px + 0.447vw);
        letter-spacing: 0.5px;
    }

    .navigation-links a span {
        font-size: calc(6.78px + 0.168vw);
    }

    .header-btn.btn-phone {
        flex: 0 0 auto;
        width: 3.253vw;
        padding: 0;
    }

    .header-btn.btn-phone span {
        display: none;
    }
}

@media (max-width: 768px) {

    /* Hide unwanted buttons on mobile header */
    .header-line,
    .header-instagram {
        display: none !important;
    }

    .site-header {
        padding: 10px;
    }

    .header-container {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
        height: auto;
        border-radius: 24px;
        padding: 15px;
        gap: 15px;
        align-items: center;
    }

    .site-branding {
        grid-column: 1 / 2;
        grid-row: 1 / 2;
        justify-self: start;
    }

    .logo-link {
        height: auto;
        display: flex;
        align-items: center;
    }

    .logo-group {
        gap: 10px;
        align-items: center;
    }

    .logo-mark-container {
        width: 24px;
        height: 32px;
    }

    .logo-text-img {
        height: 12px;
        display: block;
        /* ensure it shows */
    }

    .header-menu {
        display: contents;
        /* Pulls children out for grid layout */
    }

    .header-hamburger {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
        width: 44px;
        height: 44px;
        padding-top: 0;
        gap: 6px;
    }

    .hamburger-line {
        width: 20px;
    }

    .header-buttons {
        grid-column: 1 / 3;
        grid-row: 2 / 3;
        display: flex;
        width: 100%;
        gap: 10px;
        justify-content: space-between;
    }

    .header-btn {
        flex: 1;
        height: 48px;
        border-radius: 24px;
        padding: 0 15px;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 6px;
    }

    .header-btn.btn-phone {
        flex: 0 0 48px;
        width: 48px;
        padding: 0;
    }

    .header-btn.btn-phone span {
        display: none !important;
    }

    .btn-phone .btn-icon {
        width: 22px;
        height: 22px;
    }

    .header-buttons span {
        display: inline;
        /* Show text */
        font-size: 13px;
        letter-spacing: 0.5px;
    }

    .header-btn .btn-icon {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 590px) {
    .site-header {
        padding: 8px;
    }

    .header-container {
        padding: 12px;
        gap: 12px;
        border-radius: 20px;
    }

    .logo-mark-container {
        width: 20px;
        height: 27px;
    }

    .logo-text-img {
        height: 10px;
    }

    .header-hamburger {
        width: 38px;
        height: 38px;
        gap: 5px;
    }

    .header-buttons {
        gap: 8px;
    }

    .header-btn {
        height: 44px;
        border-radius: 22px;
        padding: 0 8px;
        gap: 4px;
    }

    .header-btn.btn-phone {
        flex: 0 0 44px;
        width: 44px;
        padding: 0;
    }

    .btn-phone .btn-icon {
        width: 20px;
        height: 20px;
    }

    .header-buttons span {
        font-size: 11px;
    }

    .header-btn .btn-icon {
        width: 18px;
        height: 18px;
    }
}






@media (max-width: 1180px) {
    .site-navigation-overlay {
        display: flex;
        flex-direction: column;
    }

    .navigation-main {
        display: flex;
        flex-direction: column;
    }

    .navigation-links-area {
        order: 1;
        min-height: 0;
    }

    .navigation-schedule {
        order: 2;
    }


    .navigation-sidebar {
        order: 2;
        border-top-right-radius: 64px;
        padding: 88px 32px 40px;
    }

    .navigation-sidebar-inner {
        width: 100%;
        max-width: 900px;
        display: grid;
        grid-template-columns: 260px minmax(0, 1fr);
        align-items: start;
        gap: 32px 40px;
    }

    .navigation-logo-link,
    .navigation-instagram {
        justify-self: center;
    }

    /* ロゴと SNS は横並びにせず、左列でロゴの下に SNS を置く */
    .navigation-logo-link {
        grid-column: 1;
        grid-row: 1;
    }

    .navigation-sns {
        grid-column: 1;
        grid-row: 2;
        justify-self: center;
        justify-content: center;
        width: 240px;
    }

    .navigation-info-list {
        grid-column: 2;
        grid-row: 1 / span 3;
        gap: 24px;
    }

    .navigation-cta-box {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: center;
    }

    .navigation-cta {
        flex: 1 1 0;
        padding: 10px 16px;
    }

    .navigation-cta span {
        font-size: 15px;
    }

    .navigation-cta-phone span {
        font-size: 16px;
    }

    .navigation-main {
        order: 1;
        width: 100%;
        padding: 48px 32px 60px;
    }

    /* タブレット以下のナビ: 1800px 以下の vw / calc 指定が混ざってサイズがばらつかないよう固定値でそろえる */
    .navigation-logo-link {
        width: 240px;
        height: auto;
    }

    .navigation-logo-img {
        width: 100%;
        height: auto;
    }

    .navigation-instagram {
        width: 44px;
        height: 44px;
    }

    .navigation-info-item {
        gap: 12px;
    }

    .navigation-info-item h2 {
        font-size: 16px;
        gap: 8px;
    }

    .navigation-info-item h2 span {
        width: 5px;
        height: 24px;
    }

    .navigation-info-item p {
        font-size: 15px;
    }

    .navigation-map-btn {
        min-height: 32px;
        padding: 6px 16px;
        gap: 6px;
    }

    .navigation-map-btn img {
        width: 14px;
        height: 14px;
    }

    .navigation-map-btn span {
        font-size: 13px;
    }

    .navigation-cta-box {
        padding: 20px;
        gap: 12px;
    }

    .navigation-cta {
        min-height: 54px;
        gap: 12px;
    }

    .navigation-cta img {
        width: 28px;
        height: 28px;
    }

    .navigation-schedule {
        gap: 24px;
    }

    .navigation-schedule-card {
        padding: 24px;
    }

    .navigation-schedule-card h2 {
        font-size: 16px;
        gap: 8px;
    }

    .navigation-hours-table th,
    .navigation-hours-table td {
        font-size: 14px;
        height: 44px;
    }

    .nav-symbol-circle,
    .nav-symbol-dash {
        font-size: 14px;
    }

    .nav-sat-note small,
    .nav-sun-note small {
        font-size: 10px;
    }

    .nav-sun-note img {
        width: 14px;
        height: 14px;
    }

    .navigation-table-notes p {
        font-size: 13px;
    }

    .navigation-links a {
        font-size: 15px;
        gap: 6px;
    }

    .navigation-links a span {
        font-size: 10px;
    }
}

@media (max-width: 768px) {
    body.is-navigation-open .hamburger-line:first-child {
        transform: translateX(-50%) rotate(45deg);
    }

    body.is-navigation-open .hamburger-line:nth-child(3) {
        transform: translateX(-50%) rotate(-45deg);
    }

    .navigation-sidebar {
        border-top-left-radius: 40px;
        border-top-right-radius: 40px;
        padding: 56px 20px 36px;
    }

    .navigation-sidebar-inner {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        max-width: 520px;
        width: 100%;
        margin: 0 auto;
        gap: 28px;
    }

    .navigation-logo-link {
        display: block;
        width: 220px;
        height: auto;
        aspect-ratio: 283 / 110;
        margin: 0 auto;
    }

    .navigation-logo-img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .navigation-sns {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        margin-top: -8px;
    }

    .navigation-instagram {
        display: flex;
        width: 52px;
        height: 52px;
        align-items: center;
        justify-content: center;
        margin: 0 auto;
        transition: transform 0.2s ease, opacity 0.2s ease;
    }

    .navigation-instagram:hover {
        opacity: 0.9;
        transform: scale(1.05);
    }

    .navigation-info-list {
        gap: 24px;
    }

    .navigation-info-item {
        gap: 12px;
    }

    .navigation-info-item h2,
    .navigation-info-item p {
        font-size: 15px;
    }

    .navigation-info-item h2 span {
        width: 5px;
        height: 24px;
    }

    .navigation-map-btn {
        min-height: 32px;
        padding: 6px 16px;
        margin-top: 4px;
    }

    .navigation-cta-box {
        flex-direction: column;
        padding: 20px 16px;
        gap: 12px;
        border-radius: 18px;
    }

    .navigation-cta {
        min-height: 50px;
        padding: 10px 16px;
        gap: 12px;
    }

    .navigation-cta span {
        font-size: 15px;
    }

    .navigation-cta-phone span {
        font-size: 16px;
    }

    .navigation-main {
        padding: 60px 20px 48px;
    }

    .navigation-schedule {
        gap: 24px;
    }

    .navigation-schedule-card {
        padding: 24px 16px;
        border-radius: 16px;
    }

    .navigation-schedule-card h2 {
        margin-bottom: 18px;
        font-size: 15px;
    }

    .navigation-links {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .navigation-links a {
        font-size: 14px;
        letter-spacing: 0.4px;
        white-space: normal;
    }

    .navigation-links ul {
        gap: 18px;
    }


    .navigation-dental-dock {
        border-radius: 16px;
    }
}

@media (max-width: 590px) {
    .navigation-dental-dock {
        border-radius: 12px;
    }

    .hamburger-line {
        width: 18px;
        height: 2px;
    }


    .navigation-sidebar {
        border-top-left-radius: 32px;
        border-top-right-radius: 32px;
        padding: 44px 16px 32px;
    }

    .navigation-sidebar-inner {
        gap: 24px;
    }

    .navigation-logo-link {
        width: 190px;
    }

    .navigation-sns {
        margin-top: -6px;
    }

    .navigation-instagram {
        width: 48px;
        height: 48px;
    }

    .navigation-info-list {
        gap: 20px;
    }

    .navigation-info-item {
        gap: 10px;
    }

    .navigation-info-item h2 {
        font-size: 14.5px;
    }

    .navigation-info-item h2 span {
        width: 4px;
        height: 20px;
    }

    .navigation-info-item p {
        font-size: 14px;
    }

    .navigation-cta-box {
        padding: 16px 14px;
        gap: 10px;
        border-radius: 16px;
    }

    .navigation-cta {
        min-height: 46px;
        padding: 10px 14px;
        gap: 10px;
    }

    .navigation-cta span {
        font-size: 14px;
    }

    .navigation-cta-phone span {
        font-size: 15px;
    }

    .navigation-cta img {
        width: 22px;
        height: 22px;
    }

    .navigation-cta-reserve img {
        width: 24px;
        height: 24px;
    }

    .navigation-main {
        padding: 52px 16px 44px;
    }

    .navigation-hours-table {
        min-width: 0;
    }

    .navigation-hours-table th,
    .navigation-hours-table td {
        height: 38px;
        font-size: 12px;
        letter-spacing: 0.2px;
    }

    .navigation-hours-table th:first-child,
    .navigation-hours-table td:first-child {
        width: 23%;
        padding-left: 0;
    }

    .nav-symbol-circle,
    .nav-symbol-dash {
        font-size: 12px;
    }

    .nav-sat-note small,
    .nav-sun-note small {
        font-size: 8px;
        letter-spacing: 0;
        /* セル幅が狭いので「月1回／日曜日」のように折り返してセル内に収める */
        display: block;
        max-width: 100%;
        white-space: normal;
        line-height: 1.2;
        text-align: center;
    }

    .nav-sun-note img {
        width: 12px;
        height: 12px;
    }

    .navigation-links {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 360px) {
    .navigation-schedule-card {
        padding-left: 10px;
        padding-right: 10px;
    }

    .navigation-hours-table th,
    .navigation-hours-table td {
        height: 34px;
        font-size: 11px;
        line-height: 1.35;
        letter-spacing: 0;
    }

    .navigation-hours-table th:first-child,
    .navigation-hours-table td:first-child {
        width: 24%;
    }

    .nav-symbol-circle,
    .nav-symbol-dash {
        font-size: 12px;
    }

    .nav-sat-note,
    .nav-sun-note {
        min-height: 30px;
        gap: 1px;
    }

    .nav-sat-note small,
    .nav-sun-note small {
        font-size: 8px;
        line-height: 1.15;
    }

    .nav-sun-note img {
        width: 10px;
        height: 10px;
    }

    .medical-card-title {
        font-size: 13px !important;
    }
}

/* --- MV (Main Visual) Section Styles --- */

.main-visual {
    position: relative;
    width: 100%;
    height: 1222px;
    background-color: #faf9f6;
    overflow: hidden;
}

/* Background Wave */
.mv-bg {
    position: absolute;
    left: 0;
    top: 111px;
    width: 100%;
    height: 758px;
    pointer-events: none;
    z-index: 1;
}

.mv-bg-img {
    width: 100%;
    height: 100%;
    display: block;
}

/* Container */
.mv-container {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 170px;
    /* Offset below header */
    width: 1920px;
    height: 790px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 2;
    box-sizing: border-box;
}

/* Left Images Block */
.mv-left-images {
    width: 571px;
    height: 790px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-shrink: 0;
}

.mv-img-top {
    width: 571px;
    height: 404px;
    border-bottom-right-radius: 100px;
    border-top-right-radius: 20px;
    overflow: hidden;
}

.mv-img-bottom {
    width: 415px;
    height: 300px;
    border-bottom-right-radius: 20px;
    border-top-right-radius: 100px;
    overflow: hidden;
}

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

.fader-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    animation: mvCrossfade 15s infinite ease-in-out;
}

.fader-1 {
    animation-delay: 0s;
}

.fader-2 {
    animation-delay: 5s;
}

.fader-3 {
    animation-delay: 10s;
}

@keyframes mvCrossfade {
    0% {
        opacity: 0;
    }

    5% {
        opacity: 1;
    }

    33% {
        opacity: 1;
    }

    38% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}


/* Middle Text Block (Vertical Japanese) */
.mv-text-container {
    width: 125px;
    height: 790px;
    position: relative;
    flex-shrink: 0;
}

.mv-text-1,
.mv-text-2 {
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    font-size: 46px;
    line-height: 1.25;
    color: #575757;
    margin: 0;
    position: absolute;
    font-feature-settings: "vert";
    letter-spacing: .25em;
}

.mv-text-1 {
    left: 78px;
    top: 35px;
    width: 47px;
}

.mv-text-2 {
    left: 0;
    top: 117px;
    height: 695px;
    width: 47px;
}

.mv-text-container .text-brand {
    color: #2faa87;
}

/* Right main image block */
.mv-right-image {
    position: relative;
    width: 1030px;
    height: 790px;
    border-bottom-left-radius: 21.293px;
    border-top-left-radius: 106.463px;
    overflow: hidden;
    flex-shrink: 0;
}

/* Leaf decorations */
.mv-leaf-group-1,
.mv-leaf-group-2 {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 50%;
    transform: translateX(-50%);
    top: 110px;
    pointer-events: none;
    z-index: 3;
    max-width: 1920px;
}

/* Shared leaf style */
.leaf {
    position: absolute;
}

/* Group 1 */
.leaf-1 {
    width: 72.319px;
    height: 72.319px;
    left: 1867px;
    top: 1131px;
    transform: rotate(84.32deg);
}

.leaf-2 {
    width: 189.036px;
    height: 189.036px;
    left: 1333px;
    top: 833px;
    transform: rotate(105.45deg);
}

.leaf-3 {
    width: 87.362px;
    height: 87.362px;
    left: 1680.01px;
    top: 985.01px;
    transform: rotate(38.03deg);
}

.leaf-4 {
    width: 151.096px;
    height: 151.096px;
    left: 828px;
    top: 666px;
    transform: rotate(90.7deg);
}

.leaf-5 {
    width: 106.159px;
    height: 106.159px;
    left: 1047px;
    top: 783px;
    transform: rotate(33.51deg);
}

/* Group 2 */
.leaf-6 {
    width: 57.468px;
    height: 57.468px;
    left: 511px;
    top: 471px;
    transform: rotate(105.03deg);
}

.leaf-7 {
    width: 38.137px;
    height: 38.137px;
    left: 411px;
    top: 453px;
    transform: rotate(37.14deg);
}

.leaf-8 {
    width: 38.137px;
    height: 38.137px;
    left: 373px;
    top: 378px;
    transform: rotate(98.8deg);
}

/* Responsive adjustments for MV */
@media (max-width: 1800px) {

    .main-visual {
        height: 63.645vw;
        /* 1222px */
    }

    .mv-bg {
        left: 0;
        transform: none;
        width: 100%;
        height: 39.479vw;
        /* 758px */
        top: 5.781vw;
        /* 111px */
    }

    .mv-container {
        width: 100vw;
        height: 41.145vw;
        /* 790px */
        top: 8.854vw;
        /* 170px */
        padding: 0;
    }

    .mv-left-images {
        width: 29.740vw;
        /* 571px */
        height: 41.145vw;
        /* 790px */
    }

    .mv-img-top {
        width: 29.740vw;
        height: 21.042vw;
        /* 404px */
        border-bottom-right-radius: 5.208vw;
        /* 100px */
        border-top-right-radius: 1.042vw;
        /* 20px */
    }

    .mv-img-bottom {
        width: 21.615vw;
        /* 415px */
        height: 15.625vw;
        /* 300px */
        border-bottom-right-radius: 1.042vw;
        /* 20px */
        border-top-right-radius: 5.208vw;
        /* 100px */
    }

    .mv-text-container {
        width: 6.510vw;
        /* 125px */
        height: 41.145vw;
        /* 790px */
    }

    .mv-text-1,
    .mv-text-2 {
        font-size: 2.396vw;
        /* 46px */
        line-height: 1.25;
        writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        position: absolute;
        font-feature-settings: "vert";
    }

    .mv-text-1 {
        left: 4.0625vw;
        /* 78px */
        top: 1.823vw;
        /* 35px */
        width: 2.448vw;
        /* 47px */
    }

    .mv-text-2 {
        left: 0;
        top: 6.094vw;
        /* 117px */
        width: 2.448vw;
        /* 47px */
        height: 36.198vw;
    }

    .mv-right-image {
        width: 53.646vw;
        /* 1030px */
        height: 41.145vw;
        /* 790px */
        border-bottom-left-radius: 1.109vw;
        /* 21.293px */
        border-top-left-radius: 5.545vw;
        /* 106.463px */
    }

    /* Leaf group wrappers */
    .mv-leaf-group-1,
    .mv-leaf-group-2 {
        display: block;
        max-width: none;
        width: 100vw;
        height: 63.645vw;
    }

    /* Leaf positioning & sizing in vw */
    .leaf-1 {
        width: 3.767vw;
        height: 3.767vw;
        left: 97.240vw;
        top: 58.906vw;
    }

    .leaf-2 {
        width: 9.846vw;
        height: 9.846vw;
        left: 69.427vw;
        top: 43.385vw;
    }

    .leaf-3 {
        width: 4.550vw;
        height: 4.550vw;
        left: 87.501vw;
        top: 51.303vw;
    }

    .leaf-4 {
        width: 7.870vw;
        height: 7.870vw;
        left: 43.125vw;
        top: 34.688vw;
    }

    .leaf-5 {
        width: 5.529vw;
        height: 5.529vw;
        left: 54.531vw;
        top: 40.781vw;
    }

    .leaf-6 {
        width: 2.993vw;
        height: 2.993vw;
        left: 26.615vw;
        top: 24.531vw;
    }

    .leaf-7 {
        width: 1.986vw;
        height: 1.986vw;
        left: 21.406vw;
        top: 23.594vw;
    }

    .leaf-8 {
        width: 1.986vw;
        height: 1.986vw;
        left: 19.427vw;
        top: 19.688vw;
    }
}

/* For mobile/tablet stack layout */
@media (max-width: 1024px) {
    .main-visual {
        height: auto;
        padding-top: 100px;
        padding-bottom: 60px;
    }

    .mv-bg {
        display: none;
    }

    .mv-container {
        position: relative;
        left: 0;
        transform: none;
        width: 100%;
        height: auto;
        flex-direction: column-reverse;
        align-items: center;
        gap: 40px;
        top: 0;
        padding: 0 20px;
    }

    .mv-left-images {
        flex-direction: row;
        width: 100%;
        height: auto;
        justify-content: center;
        gap: 20px;
    }

    .mv-img-top {
        width: 48%;
        height: 250px;
        border-radius: 20px;
    }

    .mv-img-bottom {
        width: 48%;
        height: 250px;
        border-radius: 20px;
    }

    .mv-text-container {
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
    }

    .mv-text-1,
    .mv-text-2 {
        position: relative;
        left: 0;
        top: 0;
        writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
        width: auto;
        height: auto;
        font-size: 32px;
        line-height: 1.4;
        text-align: center;
        font-feature-settings: normal;
    }

    .mv-right-image {
        width: 100%;
        max-width: 800px;
        height: 400px;
        border-radius: 30px;
    }

    .mv-leaf-group-1,
    .mv-leaf-group-2 {
        display: none;
    }
}

@media (max-width: 768px) {
    .main-visual {
        padding-top: 175px;
    }

    .mv-text-1,
    .mv-text-2 {
        font-size: 24px;
    }

    .mv-right-image {
        height: 250px;
    }

    .mv-img-top,
    .mv-img-bottom {
        height: 150px;
    }
}

@media (max-width: 590px) {
    .main-visual {
        padding-top: 150px;
    }

    .mv-left-images {
        gap: 12px;
    }

    .mv-img-top,
    .mv-img-bottom {
        width: calc(50% - 6px);
        height: auto;
        aspect-ratio: 4 / 3;
        border-radius: 12px;
    }

    .mv-text-container {
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }

    .mv-text-1,
    .mv-text-2 {
        font-size: 20px;
    }

    .mv-right-image {
        height: auto;
        aspect-ratio: 16 / 10;
        border-radius: 16px;
    }
}

/* --- About Us Section Styles --- */
.about-us {
    position: relative;
    width: auto;
    /* 1920px 時は 1600px。左端はコンテンツ基準、右は画面端まで伸ばす */
    height: auto;
    /* Dynamic height */
    margin-left: calc(50% - 640px);
    /* 1920px 時の left:320px（コンテンツ左端 200px + 120px）を画面中央基準で固定 */
    margin-top: 160px;
    /* Standard section spacing */
    background-color: #ffffff;
    border-top-left-radius: 100px;
    border-bottom-left-radius: 20px;
    box-sizing: border-box;
    padding: 38px 0 38px 38px;
    /* Padding top/bottom and left */
    overflow: hidden;
}

.about-container {
    position: relative;
    width: 1240px;
    display: flex;
    align-items: center;
    gap: 64px;
}

.about-image-wrapper {
    position: relative;
    width: 692px;
    height: 443px;
    border-top-left-radius: 80px;
    border-top-right-radius: 20px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    overflow: hidden;
    flex-shrink: 0;
}

.about-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Vertical divider line */
.about-divider {
    position: relative;
    width: 1px;
    height: 336px;
    background-color: #ebdccb;
    /* Standard elegant divider color */
    flex-shrink: 0;
}

.about-text-block {
    position: relative;
    width: 621px;
    /* Figma: コンテンツ幅 1240px の右側へはみ出す */
    display: flex;
    flex-direction: column;
    gap: 46px;
    flex-shrink: 0;
}

.about-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.about-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.about-leaf-wrapper,
.news-leaf-wrapper,
.reason-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

/* Small organic leaf icon */
.about-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: inline-block;
    flex-shrink: 0;
}

.about-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.about-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.about-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.9px;
    padding-left: 30px;
}

.about-description p {
    margin: 0;
    text-align: justify;
}

.about-description p:first-child {
    margin-bottom: 21px;
}

.about-description .about-subheading {
    font-family: "Shippori Mincho", "Noto Serif JP", serif;
    font-weight: 500;
    font-size: 34px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.02px;
    white-space: nowrap;
}

/* 折り返す場合も「予防歯科×矯正歯科」「による包括的治療」の単位で改行する */
.about-subheading .text-brand,
.about-subheading .about-nowrap {
    display: inline-block;
    white-space: nowrap;
}

/* Responsive adjustments for About Us */
@media (max-width: 1800px) {

    .about-us {
        width: 83.333vw;
        /* 1600px */
        margin-left: auto;
        height: auto;
        /* Dynamic */
        margin-top: 8.333vw;
        /* 160px */
        border-top-left-radius: 5.208vw;
        /* 100px */
        border-bottom-left-radius: 1.042vw;
        /* 20px */
        padding: 1.979vw 0 1.979vw 1.979vw;
    }

    .about-container {
        width: 64.583vw;
        /* 1240px */
        gap: 3.333vw;
        /* 64px */
    }

    .about-image-wrapper {
        width: 36.042vw;
        /* 692px */
        height: 23.073vw;
        /* 443px */
        border-top-left-radius: 4.167vw;
        /* 80px */
        border-top-right-radius: 1.042vw;
        /* 20px */
        border-bottom-left-radius: 1.042vw;
        /* 20px */
        border-bottom-right-radius: 1.042vw;
        /* 20px */
    }

    .about-divider {
        width: 1px;
        height: 17.500vw;
        /* 336px */
    }

    .about-text-block {
        width: 32.344vw;
        /* 621px */
        gap: 2.396vw;
        /* 46px */
    }

    .about-heading {
        gap: 0.417vw;
        /* 8px */
    }

    .about-title-row {
        gap: 0.417vw;
        /* 8px */
    }

    .about-leaf-wrapper,
    .news-leaf-wrapper,
    .reason-leaf-wrapper {
        height: 2.917vw;
        /* 56px */
    }

    .about-leaf-icon {
        width: 1.042vw;
        /* 20px */
        height: 1.042vw;
        /* 20px */
        border-top-left-radius: 1.563vw;
        /* 30px */
        border-top-right-radius: 0.104vw;
        /* 2px */
        border-bottom-left-radius: 0.104vw;
        /* 2px */
        border-bottom-right-radius: 1.563vw;
        /* 30px */
    }

    .about-en-title {
        font-size: 2.917vw;
        /* 56px */
        letter-spacing: 0.088vw;
        /* 1.68px */
    }

    .about-jp-subtitle {
        font-size: 1.042vw;
        /* 20px */
        letter-spacing: 0.052vw;
        /* 1px */
        padding-left: 1.563vw;
        /* 30px */
    }

    .about-description {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.047vw;
        /* 0.9px */
        padding-left: 1.563vw;
        /* 30px */
    }

    .about-description p:first-child {
        margin-bottom: 1.094vw;
        /* 21px */
    }

    .about-description .about-subheading {
        font-size: 1.771vw;
        /* 34px（PC スケーリング中も 1 行に収めるため vw のみで縮小） */
        letter-spacing: 0.053vw;
        /* 1.02px */
    }
}

/* Tablet / Mobile Layout for About Us */
@media (max-width: 1024px) {
    /* 1800px 以下を完全比例（vw）にしたため、タブレット以下は従来の値を維持する */
    .about-description {
        letter-spacing: 0.026vw;
    }

    .about-us {
        width: 100%;
        height: auto;
        margin-top: 80px;
        border-top-left-radius: 40px;
        border-bottom-left-radius: 0;
    }

    .about-container {
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 40px;
        padding: 40px 24px;
        box-sizing: border-box;
    }

    .about-image-wrapper {
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        max-width: 692px;
        height: auto;
        aspect-ratio: 692 / 443;
        border-top-left-radius: 40px;
        border-top-right-radius: 10px;
        border-bottom-left-radius: 10px;
        border-bottom-right-radius: 10px;
    }

    .about-divider {
        display: none;
    }

    .about-text-block {
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        max-width: 600px;
        height: auto;
        gap: 30px;
    }

    .about-leaf-wrapper,
    .news-leaf-wrapper,
    .reason-leaf-wrapper {
        height: 36px;
        /* 英語タイトル36pxに合わせる */
    }

    .about-en-title {
        font-size: 36px;
    }

    .about-jp-subtitle {
        font-size: 18px;
        padding-left: 0;
    }

    .about-description {
        font-size: 16px;
        padding-left: 0;
    }

    .about-description p:first-child {
        margin-bottom: 16px;
    }

    .about-description .about-subheading {
        font-size: 26px;
        letter-spacing: 0.78px;
        white-space: normal;
    }
}

/* Phone Layout for About Us */
@media (max-width: 590px) {
    .about-us {
        margin-top: 60px;
    }

    .about-container {
        padding: 30px 16px;
        gap: 24px;
    }

    .about-image-wrapper {
        border-top-left-radius: 30px;
    }

    .about-text-block {
        gap: 20px;
    }

    .about-leaf-wrapper,
    .news-leaf-wrapper,
    .reason-leaf-wrapper {
        height: 28px;
        /* 英語タイトル28pxに合わせる */
    }

    .about-en-title {
        font-size: 28px;
    }

    .about-jp-subtitle {
        font-size: 16px;
    }

    .about-description {
        font-size: 15px;
    }

    .about-description p:first-child {
        margin-bottom: 12px;
    }

    .about-description .about-subheading {
        font-size: 21px;
        letter-spacing: 0.63px;
    }
}

/* --- News Section Styles --- */
.news-section {
    position: relative;
    width: 1520px;
    height: auto;
    /* Dynamic height */
    margin: 160px auto 0;
    /* Centered with 160px margin top */
    background-color: #ffffff;
    border-radius: 30px;
    box-sizing: border-box;
    padding: 91.5px 120px;
    /* Centered padding */
    overflow: hidden;
}

.news-container {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.news-left-block {
    width: 350px;
    height: 217px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-shrink: 0;
}

.news-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.news-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Small organic leaf icon */
.news-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: inline-block;
    flex-shrink: 0;
}

.news-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.news-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 40px;
}

.news-btn-wrapper {
    padding-left: 30px;
}

.news-archive-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: opacity 0.2s ease, background-color 0.2s ease;
}

.news-archive-btn:hover {
    opacity: 0.9;
}

.news-archive-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.news-btn-arrow-circle {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-btn-arrow-icon {
    width: 100%;
    height: 100%;
    transform: rotate(90deg);
    /* Rotates up arrow to point right */
}

.news-list-block {
    width: 800px;
    display: flex;
    flex-direction: column;
    gap: 32px;
    flex-shrink: 0;
}

.news-item {
    height: 91px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 16px;
    box-sizing: border-box;
    border-bottom: 1px solid #ebdccb;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.news-item:hover {
    opacity: 0.85;
}

.news-meta {
    display: flex;
    align-items: center;
    gap: 16px;
}

.news-tag {
    background-color: #2faa87;
    color: #ffffff;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 16px;
    padding: 3px 8px;
    border-radius: 5px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    display: inline-block;
}

.news-date {
    color: #575757;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
}

.news-title-row {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 20px;
}

.news-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news-list-arrow-circle {
    width: 30px;
    height: 30px;
    background-color: #2faa87;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background-color 0.2s ease;
}

.news-item:hover .news-list-arrow-circle {
    background-color: #268c6f;
}

.news-list-arrow-icon {
    width: 21px;
    height: 21px;
    transform: rotate(90deg);
    /* Rotates up arrow to point right */
}



/* Responsive adjustments for News */
@media (max-width: 1800px) {

    .news-section {
        width: 79.167vw;
        /* 1520px */
        height: auto;
        /* Dynamic */
        margin-top: 8.333vw;
        /* 160px */
        border-radius: 1.563vw;
        /* 30px */
        padding: 4.766vw 6.250vw;
        /* 91.5px 120px */
    }

    .news-container {
        width: 100%;
    }

    .news-left-block {
        width: 18.229vw;
        /* 350px */
        height: 11.302vw;
        /* 217px */
    }

    .news-heading {
        gap: 0.417vw;
        /* 8px */
    }

    .news-title-row {
        gap: 0.417vw;
        /* 8px */
    }

    .news-leaf-icon {
        width: 1.042vw;
        /* 20px */
        height: 1.042vw;
        /* 20px */
        border-top-left-radius: 1.563vw;
        /* 30px */
        border-top-right-radius: 0.104vw;
        /* 2px */
        border-bottom-left-radius: 0.104vw;
        /* 2px */
        border-bottom-right-radius: 1.563vw;
        /* 30px */
    }

    .news-en-title {
        font-size: 2.917vw;
        /* 56px */
        letter-spacing: 0.088vw;
        /* 1.68px */
    }

    .news-jp-subtitle {
        font-size: 1.042vw;
        /* 20px */
        letter-spacing: 0.052vw;
        /* 1px */
        padding-left: 2.1vw;
    }

    .news-btn-wrapper {
        padding-left: 1.563vw;
        /* 30px */
    }

    .news-archive-btn {
        width: 16.667vw;
        /* 320px */
        height: 3.073vw;
        /* 59px */
        gap: 0.887vw;
        /* 17.034px */
        border-radius: 2.772vw;
        /* 53.231px */
    }

    .news-archive-btn span {
        font-size: 0.99vw;
        /* 19.163px */
        letter-spacing: 0.050vw;
        /* 0.9582px */
    }

    .news-btn-arrow-circle {
        width: 1.164vw;
        /* 22.357px */
        height: 1.164vw;
        /* 22.357px */
    }

    .news-list-block {
        width: 41.667vw;
        /* 800px */
        gap: 1.667vw;
        /* 32px */
    }

    .news-item {
        height: 4.740vw;
        /* 91px */
        padding-bottom: 0.833vw;
        /* 16px */
    }

    .news-meta {
        gap: 0.833vw;
        /* 16px */
    }

    .news-tag {
        font-size: 0.833vw;
        /* 16px */
        padding: 0.156vw 0.417vw;
        /* 3px 8px */
        border-radius: 0.260vw;
        /* 5px */
        letter-spacing: 0.042vw;
        /* 0.8px */
    }

    .news-date {
        font-size: 0.833vw;
        /* 16px */
        letter-spacing: 0.042vw;
        /* 0.8px */
    }

    .news-title-row {
        gap: 1.042vw;
        /* 20px */
    }

    .news-title {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.026vw;
        /* 0.9px */
    }

    .news-list-arrow-circle {
        width: 1.563vw;
        /* 30px */
        height: 1.563vw;
        /* 30px */
    }

    .news-list-arrow-icon {
        width: 1.094vw;
        /* 21px */
        height: 1.094vw;
        /* 21px */
    }
}

/* Tablet / Mobile Layout for News */
@media (max-width: 1024px) {
    /* 1800px 以下を完全比例（vw）にしたため、タブレット以下は従来の値を維持する */
    .news-en-title {
        font-size: calc(21.68px + 1.788vw);
    }

    .news-jp-subtitle {
        font-size: calc(10.35px + 0.503vw);
    }

    .news-archive-btn span {
        font-size: calc(10.42px + 0.447vw);
    }

    .news-tag {
        font-size: calc(9.56px + 0.335vw);
    }

    .news-date {
        font-size: calc(9.56px + 0.335vw);
    }

    .news-section {
        width: 100%;
        height: auto;
        margin-top: 80px;
        border-radius: 0;
    }

    .news-container {
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 40px;
        padding: 40px 24px;
        box-sizing: border-box;
    }

    .news-left-block {
        width: 100%;
        max-width: 600px;
        height: auto;
        display: flex;
        flex-direction: column;
        gap: 24px;
    }

    .news-btn-wrapper {
        padding-left: 0;
    }

    .news-archive-btn {
        width: 100%;
        max-width: 320px;
        height: 59px;
    }

    .news-list-block {
        width: 100%;
        max-width: 800px;
        gap: 24px;
    }

    .news-item {
        height: auto;
        padding-bottom: 16px;
    }

    .news-jp-subtitle {
        padding-left: 0;
    }

    .news-title {
        font-size: 16px;
        white-space: normal;
        /* Allow title to wrap on mobile */
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        text-overflow: ellipsis;
    }

    .news-list-arrow-circle {
        width: 26px;
        height: 26px;
    }

    .news-list-arrow-icon {
        width: 18px;
        height: 18px;
    }
}

/* Phone Layout for News */
@media (max-width: 590px) {
    .news-section {
        margin-top: 60px;
    }

    .news-container {
        padding: 30px 16px;
        gap: 30px;
    }

    .news-archive-btn {
        width: 100%;
        max-width: 100%;
        height: 52px;
    }

    .news-archive-btn span {
        font-size: 16px;
    }

    .news-en-title {
        font-size: 36px;
    }

    .news-jp-subtitle {
        font-size: 16px;
    }

    .news-meta {
        gap: 12px;
        align-items: center;
    }

    .news-tag {
        font-size: 12px;
        padding: 3px 8px;
        border-radius: 4px;
        line-height: 1.3;
        letter-spacing: 0.04em;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-weight: 500;
    }

    .news-date {
        font-size: 13px;
    }

    .news-title {
        font-size: 15px;
    }
}

/* --- Why Choose Us Section Styles --- */
.reason-section {
    position: relative;
    width: 100%;
    margin-top: 96px;
    /* Spacing below News */
    box-sizing: border-box;
    padding-bottom: 80px;
    overflow: hidden;
}

.reason-bg {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -14px;
    width: 1920px;
    height: 855px;
    pointer-events: none;
    z-index: 1;
}

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

.reason-container {
    position: relative;
    z-index: 2;
    width: 1520px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
    box-sizing: border-box;
    padding-top: 64px;
}

.reason-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
}

.reason-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Small organic leaf icon */
.reason-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: inline-block;
    flex-shrink: 0;
}

.reason-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.reason-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.reason-lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    padding-left: 30px;
}

.reason-cards {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    /* All cards have equal height matching the tallest */
    width: 100%;
}

.reason-card {
    position: relative;
    box-sizing: border-box;
    width: 468px;
    height: auto;
    /* Dynamic height */
    min-height: 630px;
    /* Standard minimum height */
    background-color: #ffffff;
    border-radius: 30px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
    overflow: hidden;
    box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.02), 0px 0px 1.5px rgba(0, 0, 0, 0.08);
}

.reason-card-image-wrapper {
    position: relative;
    width: 420px;
    height: 269px;
    border-radius: 20px;
    overflow: visible;
    flex-shrink: 0;
}

.reason-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    display: block;
}

.reason-badge {
    position: absolute;
    left: -24px;
    top: -24px;
    width: 113px;
    height: 113px;
    background-color: #2faa87;
    border-top-left-radius: 47.881px;
    border-top-right-radius: 11.3px;
    border-bottom-left-radius: 11.3px;
    border-bottom-right-radius: 169.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
}

.reason-badge-num {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 48px;
    line-height: 1.3;
    color: #ffffff;
    letter-spacing: 1.44px;
    position: absolute;
    left: 24px;
    top: 18px;
}

.reason-card-content {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 16px;
}

.reason-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1.2px;
    margin: 0;
    text-align: center;
}

.reason-card-desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 13px;
    min-height: 212px;
    /* Set min-height to match Card 2 max text height */
}

.reason-card-desc p {
    margin: 0;
    text-align: justify;
    line-height: 1.6;
}

.text-highlight {
    font-weight: 600;
    color: #2faa87;
}

.reason-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    /* Reset margin since parent is flex container with gap */
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.reason-bullets li {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: #2faa87;
    letter-spacing: 0.5px;
    padding-left: 20px;
    line-height: 1.6;
}

.reason-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0.45em;
    font-size: 10px;
    color: #2faa87;
    display: inline-block;
    vertical-align: middle;
}

/* --- First Time Section --- */
.first-time-section {
    background-color: #ffffff;
    border-radius: 100px;
    padding: 124px 0;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 124px;
    /* Spacing below Reason section */
    position: relative;
    overflow: hidden;
}

.first-time-container {
    width: 1280px;
    display: flex;
    flex-direction: column;
    gap: 120px;
    box-sizing: border-box;
}

.first-time-main-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    position: relative;
}

.first-time-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
}

.first-time-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.first-time-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.first-time-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.first-time-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
}

.first-time-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.first-time-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.first-time-desc-block {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-left: 30px;
    width: 100%;
    box-sizing: border-box;
}

.first-time-desc-block p {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: justify;
}

.first-time-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.first-time-bullets li {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: #2faa87;
    letter-spacing: 0.5px;
    padding-left: 20px;
    line-height: 1.6;
}

.first-time-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0.45em;
    font-size: 10px;
    color: #2faa87;
    display: inline-block;
}

.first-time-btn-wrapper {
    padding-left: 30px;
}

.first-time-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: opacity 0.2s ease;
}

.first-time-btn:hover {
    opacity: 0.9;
}

.first-time-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.first-time-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.first-time-image-wrapper {
    width: 692px;
    height: 572px;
    border-radius: 20px;
    overflow: hidden;
    flex-shrink: 0;
}

.first-time-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Center divider arrow */
.first-time-divider {
    position: absolute;
    left: 763px;
    top: 55px;
    width: 0;
    height: 336px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.first-time-divider-inner {
    transform: rotate(-90deg);
    flex-shrink: 0;
}

.first-time-divider-img {
    width: 336px;
    height: auto;
    display: block;
}

/* --- Flow of Treatment Section --- */
.first-time-flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 88px;
    width: 100%;
}

.first-time-flow-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1.2px;
    margin: 0;
    text-align: center;
}

.first-time-flow-steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.first-time-step-card {
    background-color: #f1f1f1;
    width: 213px;
    height: 157px;
    border-radius: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: 16px;
    position: relative;
    flex-shrink: 0;
}

.first-time-step-card p {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    color: #63574d;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: center;
}

.first-time-step-circle-bg {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -27px;
    width: 80px;
    height: 80px;
    z-index: 2;
}

.first-time-step-circle-img {
    width: 100%;
    height: 100%;
    display: block;
}

/* Icons within circles */
.first-time-step-icon-container {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -27px;
    width: 80px;
    height: 80px;
    z-index: 3;
}

/* Counseling icon (Step 1) */
.icon-counseling-wrapper {
    position: absolute;
    width: 57.604px;
    height: 44.247px;
    left: 11.69px;
    top: 18.37px;
}

.icon-counseling-1 {
    position: absolute;
    top: 4.21%;
    left: 6.13%;
    width: 66.25%;
    height: 91.22%;
    object-fit: contain;
}

.icon-counseling-2 {
    position: absolute;
    top: 7.61%;
    left: 62.92%;
    width: 34.61%;
    height: 41.64%;
    object-fit: contain;
}

/* Exam icon (Step 2) */
.icon-exam-wrapper {
    position: absolute;
    left: 17.74px;
    /* Figma left: 84.24px - Circle left: 66.5px */
    top: 23px;
    /* Figma top: -4px - Circle top: -27px */
    width: 43px;
    height: 34px;
}

.icon-exam-1 {
    position: absolute;
    top: 2.22%;
    left: 1.8%;
    width: 96.38%;
    height: 95.56%;
}

.icon-exam-2 {
    position: absolute;
    top: 18.11%;
    left: 24.14%;
    width: 51.72%;
    height: 63.78%;
}

.icon-exam-3 {
    position: absolute;
    top: 8.52%;
    left: 4.89%;
    width: 8.41%;
    height: 82.96%;
}

.icon-exam-4 {
    position: absolute;
    top: 8.52%;
    left: 86.7%;
    width: 8.41%;
    height: 82.96%;
}

/* Diagnosis icon (Step 3) */
.icon-diagnosis-wrapper {
    position: absolute;
    left: 22px;
    /* Figma left: 88.5px - Circle left: 66.5px */
    top: 19px;
    /* Figma top: -8px - Circle top: -27px */
    width: 36px;
    height: 42px;
}

.icon-diagnosis-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Explanation icon (Step 4) */
.icon-explanation-wrapper {
    position: absolute;
    left: 17.25px;
    /* Figma left: 83.75px - Circle left: 66.5px */
    top: 16px;
    /* Figma top: -11px - Circle top: -27px */
    width: 47px;
    height: 43px;
}

.icon-explanation-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Treatment icon (Step 5) */
.icon-treatment-wrapper {
    position: absolute;
    left: 16.5px;
    /* Figma left: 83px - Circle left: 66.5px */
    top: 18px;
    /* Figma top: -9px - Circle top: -27px */
    width: 43px;
    height: 43px;
}

.icon-treatment-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Step Arrow */
.first-time-step-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 29px;
    flex-shrink: 0;
}

.first-time-step-arrow-inner {
    transform: rotate(90deg);
    flex-shrink: 0;
}

.first-time-step-arrow-img {
    width: 29px;
    height: 20px;
    display: block;
}

/* --- Medical Information Section --- */
.medical-section {
    background-color: #faf9f6;
    padding: 124px 0;
    margin-top: 0;
}

.medical-container {
    width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    box-sizing: border-box;
}

.medical-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
}

.medical-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
}

.medical-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.medical-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: inline-block;
    flex-shrink: 0;
}

.medical-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.medical-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    text-align: center;
}

.medical-lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #575757;
    text-align: center;
    margin: 0;
    width: 812px;
}

.medical-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px 20px;
    width: 100%;
}

.medical-card {
    display: block;
    position: relative;
    width: 240px;
    height: 240px;
    background-color: #ffffff;
    border-radius: 21.293px;
    box-shadow: 0px 0px 10.647px rgba(0, 0, 0, 0.04);
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    flex-shrink: 0;
}

.medical-card:hover {
    transform: translateY(-5px);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.08);
}

.medical-card-icon-wrapper {
    position: absolute;
}

.medical-card-icon-wrapper img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

/* 各アイコンのサイズと位置 (PC用) */
.size-preventative {
    width: 100px;
    height: 88px;
    left: 70px;
    top: 53px;
}

.size-pediatric {
    left: 44px;
    top: 50px;
    width: 149.52px;
    height: 89px;
}

.size-periodontal {
    width: 89px;
    height: 86px;
    left: 76px;
    top: 54px;
}

.size-denture {
    left: 75px;
    top: 60px;
    width: 90px;
    height: 66px;
}

.size-implant {
    width: 82px;
    height: 84.368px;
    left: 79px;
    top: 52px;
}

.size-whitening {
    width: 96px;
    height: 85px;
    left: 69px;
    top: 56px;
}

.size-ortho {
    width: 107.151px;
    height: 59.525px;
    left: 66px;
    top: 64px;
}

.size-rootcanal {
    width: 83.832px;
    height: 83.551px;
    left: 79px;
    top: 54px;
}

.size-esthetic {
    width: 86.104px;
    height: 88.402px;
    left: 78px;
    top: 48px;
}

.size-extraction {
    left: 65px;
    top: 48px;
    width: 111.6px;
    height: 88.9px;
}

.medical-card-text-area {
    position: absolute;
    left: 16px;
    bottom: 16px;
    right: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: calc(100% - 32px);
}

.medical-card-divider {
    height: 1px;
    background-color: #e6e6e2;
    width: 100%;
}

.medical-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.medical-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: #2faa87;
    margin: 0;
}

.medical-card-arrow {
    width: 31.939px;
    height: 31.939px;
    background-color: #2faa87;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
    flex-shrink: 0;
}

.medical-card-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

.medical-card:hover .medical-card-arrow {
    background-color: #63574d;
}

.medical-bottom-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin-top: 16px;
}

.medical-bottom-lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: #575757;
    margin: 0;
}

.medical-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    border-radius: 53.231px;
    text-decoration: none;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    gap: 17.034px;
    flex-shrink: 0;
}

.medical-btn:hover {
    background-color: #4e443c;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);
}

.medical-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    color: #ffffff;
    letter-spacing: 0.9582px;
    line-height: 1.6;
}

.medical-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.medical-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

/* --- Dental Dock Section --- */
.dental-dock-section {
    position: relative;
    margin-top: 36px;
    margin-bottom: 160px;
    padding: 48px 0;
    overflow: hidden;
}

.dental-dock-section::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: calc(50% + 660px);
    background-color: #ffffff;
    border-radius: 0 100px 20px 0;
    box-shadow: 0px 0px 10.647px rgba(0, 0, 0, 0.04);
    z-index: 1;
}

.dental-dock-container {
    width: 1240px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 2;
    padding: 0;
    box-sizing: border-box;
}

.dental-dock-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
    width: 1240px;
}

.dental-dock-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
}

.dental-dock-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
}

.dental-dock-title-row {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.dental-dock-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.dental-dock-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: block;
}

.dental-dock-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.dental-dock-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.dental-dock-body {
    padding-left: 30px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.dental-dock-intro {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #575757;
    margin: 0;
}

.dental-dock-bullets {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.dental-dock-bullets li {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #2faa87;
    position: relative;
    padding-left: 20px;
}

.dental-dock-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    color: #2faa87;
}

.dental-dock-explanation {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #575757;
    margin: 0;
}

.dental-dock-suggestion {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.dental-dock-suggestion-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #575757;
    margin: 0;
}

.dental-dock-suggestion-bullets {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.dental-dock-suggestion-bullets li {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #2faa87;
    position: relative;
    padding-left: 20px;
}

.dental-dock-suggestion-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    color: #2faa87;
}

.dental-dock-btn-wrapper {
    padding-left: 30px;
}

.dental-dock-btn {
    display: flex;
    position: relative;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    padding: 17.034px 34.068px;
    transition: background-color 0.3s ease, transform 0.3s ease;
    box-sizing: border-box;
}

.dental-dock-btn:hover {
    background-color: #2faa87;
}

.dental-dock-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    color: #ffffff;
    letter-spacing: 0.9582px;
    line-height: 1.6;
}

.dental-dock-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dental-dock-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

.dental-dock-image-block {
    width: 700px;
    display: flex;
    flex-direction: column;
    gap: 32px;
    flex-shrink: 0;
}

.dental-dock-main-img-wrapper {
    width: 700px;
    height: 659px;
    border-radius: 20px 80px 20px 20px;
    overflow: hidden;
}

.dental-dock-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.dental-dock-sub-images-row {
    display: flex;
    justify-content: space-between;
    gap: 34px;
    width: 100%;
}

.dental-dock-sub-img-wrapper {
    width: 333px;
    height: 260px;
    border-radius: 20px;
    overflow: hidden;
}

.dental-dock-sub-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.dental-dock-sub-img-wrapper:first-child .dental-dock-sub-img {
    object-position: bottom;
}

/* --- Orthodontics Consultation Section --- */
.ortho-consult-section {
    position: relative;
    margin-top: 160px;
    margin-bottom: 160px;
    padding: 48px 0;
    overflow: hidden;
}

.ortho-consult-section::before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: calc(50% + 674px);
    background-color: #ffffff;
    border-radius: 100px 0 0 20px;
    box-shadow: 0px 0px 10.647px rgba(0, 0, 0, 0.04);
    z-index: 1;
}

.ortho-consult-container {
    width: 1240px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 2;
    padding: 0;
    box-sizing: border-box;
}

.ortho-consult-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
    width: 1240px;
}

.ortho-consult-image-block {
    width: 700px;
    display: flex;
    flex-direction: column;
    gap: 40px;
    flex-shrink: 0;
}

.ortho-consult-main-img-wrapper {
    width: 700px;
    height: 483px;
    border-radius: 80px 20px 20px 20px;
    overflow: hidden;
}

.ortho-consult-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom;
    display: block;
}

.ortho-consult-sub-text-area {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.ortho-consult-sub-heading {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ortho-consult-sub-bar {
    height: 30px;
    width: 6px;
    border-radius: 10px;
    background-color: #2faa87;
    display: block;
    flex-shrink: 0;
}

.ortho-consult-sub-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    color: #63574d;
    letter-spacing: 0.5px;
    margin: 0;
}

.ortho-consult-sub-desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #575757;
    margin: 0;
}

.ortho-consult-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
}

.ortho-consult-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
}

.ortho-consult-title-row {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.ortho-consult-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.ortho-consult-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: block;
}

.ortho-consult-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.ortho-consult-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.ortho-consult-body {
    padding-left: 30px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.ortho-consult-intro {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #575757;
    margin: 0;
}

.ortho-consult-bullets {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.ortho-consult-bullets li {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: #2faa87;
    position: relative;
    padding-left: 20px;
}

.ortho-consult-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    color: #2faa87;
}

.ortho-consult-buttons {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-left: 30px;
}

.ortho-consult-btn {
    display: flex;
    position: relative;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    padding: 17.034px 34.068px;
    transition: background-color 0.3s ease, transform 0.3s ease;
    box-sizing: border-box;
}

.ortho-consult-btn:hover {
    background-color: #2faa87;
}

.ortho-consult-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    color: #ffffff;
    letter-spacing: 0.9582px;
    line-height: 1.6;
}

.ortho-consult-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ortho-consult-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

/* Responsive adjustments for Reason */
/* Responsive adjustments for Reason */

/* --- Adult Orthodontics Section Styles --- */
.adult-ortho-section {
    position: relative;
    width: 100%;
    margin-top: 160px;
    box-sizing: border-box;
}

.adult-ortho-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: calc(50% + 660px);
    /* 1240/2 + 40px */
    height: 100%;
    background-color: #ffffff;
    border-radius: 0 100px 20px 0;
    z-index: 1;
}

.adult-ortho-container {
    position: relative;
    z-index: 2;
    max-width: 1240px;
    margin: 0 auto;
    padding: 48px 0;
    box-sizing: border-box;
}

.adult-ortho-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
}

.adult-ortho-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
}

.adult-ortho-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.adult-ortho-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.adult-ortho-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.adult-ortho-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
}

.adult-ortho-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    white-space: nowrap;
}

.adult-ortho-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.adult-ortho-body {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-left: 30px;
    box-sizing: border-box;
}

.adult-ortho-intro,
.adult-ortho-explanation,
.adult-ortho-explanation-end {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: justify;
}

.adult-ortho-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.adult-ortho-bullets li {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: #2faa87;
    letter-spacing: 0.5px;
    padding-left: 20px;
    line-height: 1.6;
}

.adult-ortho-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0.45em;
    font-size: 10px;
    color: #2faa87;
    display: inline-block;
}

.adult-ortho-btn-wrapper {
    padding-left: 30px;
}

.adult-ortho-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: background-color 0.3s ease;
}

.adult-ortho-btn:hover {
    background-color: #2faa87;
}

.adult-ortho-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.adult-ortho-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.adult-ortho-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

.adult-ortho-image-block {
    width: 700px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex-shrink: 0;
}

.adult-ortho-main-img-wrapper {
    width: 700px;
    height: 443px;
    border-radius: 20px 80px 20px 20px;
    overflow: hidden;
}

.adult-ortho-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.adult-ortho-sub-images-row {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.adult-ortho-sub-img-wrapper {
    width: 333px;
    height: 260px;
    border-radius: 20px;
    overflow: hidden;
}

.adult-ortho-sub-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- Child Orthodontics Section Styles --- */
.child-ortho-section {
    position: relative;
    width: 100%;
    margin-top: 160px;
    box-sizing: border-box;
}

.child-ortho-section::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: calc(50% + 660px);
    height: 100%;
    background-color: #ffffff;
    border-radius: 100px 0 0 20px;
    z-index: 1;
}

.child-ortho-container {
    position: relative;
    z-index: 2;
    max-width: 1240px;
    margin: 0 auto;
    padding: 48px 0;
    box-sizing: border-box;
}

.child-ortho-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
}

.child-ortho-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
}

.child-ortho-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.child-ortho-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.child-ortho-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.child-ortho-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
}

.child-ortho-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    white-space: nowrap;
}

.child-ortho-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.child-ortho-body {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-left: 30px;
    box-sizing: border-box;
}

.child-ortho-intro,
.child-ortho-explanation {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: justify;
}

.child-ortho-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.child-ortho-bullets li {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: #2faa87;
    letter-spacing: 0.5px;
    padding-left: 20px;
    line-height: 1.6;
}

.child-ortho-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0.45em;
    font-size: 10px;
    color: #2faa87;
    display: inline-block;
}

.child-ortho-btn-wrapper {
    padding-left: 30px;
}

.child-ortho-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: background-color 0.3s ease;
}

.child-ortho-btn:hover {
    background-color: #2faa87;
}

.child-ortho-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.child-ortho-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.child-ortho-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

.child-ortho-image-block {
    width: 700px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}

.child-ortho-main-img-wrapper {
    width: 700px;
    height: 659px;
    border-radius: 80px 20px 20px 20px;
    overflow: hidden;
}

.child-ortho-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- Implant Section Styles --- */
.implant-section {
    position: relative;
    width: 100%;
    margin-top: 160px;
    box-sizing: border-box;
}

.implant-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: calc(50% + 660px);
    height: 100%;
    background-color: #ffffff;
    border-radius: 0 100px 20px 0;
    z-index: 1;
}

.implant-container {
    position: relative;
    z-index: 2;
    max-width: 1240px;
    margin: 0 auto;
    padding: 48px 0;
    box-sizing: border-box;
}

.implant-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
}

.implant-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
}

.implant-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.implant-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.implant-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.implant-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
}

.implant-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    white-space: nowrap;
}

.implant-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.implant-body {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-left: 30px;
    box-sizing: border-box;
}

.implant-intro,
.implant-explanation {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: justify;
}

.implant-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.implant-bullets li {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: #2faa87;
    letter-spacing: 0.5px;
    padding-left: 20px;
    line-height: 1.6;
}

.implant-bullets li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0.45em;
    font-size: 10px;
    color: #2faa87;
    display: inline-block;
}

.implant-btn-wrapper {
    padding-left: 30px;
}

.implant-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: background-color 0.3s ease;
}

.implant-btn:hover {
    background-color: #2faa87;
}

.implant-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.implant-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.implant-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

.implant-image-block {
    width: 700px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex-shrink: 0;
}

.implant-main-img-wrapper {
    width: 700px;
    height: 443px;
    border-radius: 20px 80px 20px 20px;
    overflow: hidden;
}

.implant-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.implant-sub-images-row {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.implant-sub-img-wrapper {
    width: 333px;
    height: 260px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #d4d4d4;
}

.implant-sub-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* --- Doctors Section (医師紹介) Styles --- */
.doctors-section {
    position: relative;
    width: 100%;
    margin-top: 160px;
    box-sizing: border-box;
}

.doctors-container {
    position: relative;
    z-index: 2;
    max-width: 1520px;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
}

.doctors-card {
    position: relative;
    width: 1400px;
    background-color: #ffffff;
    border-radius: 30px;
    box-sizing: border-box;
    overflow: visible;
    padding: 83px 120px;
}

.doctors-content {
    position: relative;
    display: flex;
    gap: 64px;
    align-items: center;
    box-sizing: border-box;
}

.doctors-text-block {
    width: 480px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex-shrink: 0;
    align-items: flex-start;
}

.doctors-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.doctors-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.doctors-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.doctors-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
}

.doctors-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    white-space: nowrap;
}

.doctors-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 30px;
}

.doctors-body {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-left: 30px;
    box-sizing: border-box;
}

.doctors-body p {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: justify;
}

.doctors-btn-wrapper {
    display: flex;
    padding-left: 30px;
}

.doctors-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: background-color 0.3s ease;
}

.doctors-btn:hover {
    background-color: #2faa87;
}

.doctors-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.doctors-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.doctors-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

.doctors-images-block {
    display: flex;
    gap: 64px;
    flex-shrink: 0;
}

.doctors-img-wrapper {
    width: 444px;
    height: 601px;
    border-radius: 20px;
    overflow: hidden;
}

.doctors-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

/* --- Doctors Curve Decoration (曲線02 - Node 3162:1032) Styles --- */
.doctors-decor-curve {
    position: absolute;
    right: 0;
    bottom: -146px;
    width: 630px;
    height: 354px;
    transform: rotate(180deg);
    transform-origin: center center;
    pointer-events: none;
    z-index: 1;
    overflow: visible;
}

.doctors-decor-curve .leaf-teal {
    left: -79.72px;
    top: 122.17px;
    width: 199.826px;
    height: 199.826px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctors-decor-curve .leaf-teal img {
    width: 151.54px;
    height: 151.54px;
    transform: rotate(156.19deg);
    display: block;
}

.doctors-decor-curve .leaf-lightgreen {
    left: 316.63px;
    top: 49.83px;
    width: 122.034px;
    height: 122.034px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctors-decor-curve .leaf-lightgreen img {
    width: 94.528px;
    height: 94.528px;
    transform: rotate(-20.9deg);
    display: block;
}

.doctors-decor-curve .leaf-green {
    left: 146.05px;
    top: 141.03px;
    width: 163.46px;
    height: 163.46px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctors-decor-curve .leaf-green img {
    width: 115.803px;
    height: 115.803px;
    transform: rotate(41.48deg);
    display: block;
}

.doctors-decor-curve .leaf-teal-small {
    left: 490.83px;
    top: 79.29px;
    width: 105.168px;
    height: 105.168px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctors-decor-curve .leaf-teal-small img {
    width: 75.67px;
    height: 75.67px;
    transform: rotate(34.34deg);
    display: block;
}

/* --- Clinic Tour Section Styles --- */
.clinic-tour-section {
    position: relative;
    width: 100%;
    margin-top: 160px;
    box-sizing: border-box;
    padding-bottom: 160px;
    /* Space for curve decoration */
    overflow: visible;
}

.clinic-tour-container {
    position: relative;
    z-index: 2;
    width: 1520px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    box-sizing: border-box;
}

.clinic-tour-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
}

.clinic-tour-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.clinic-tour-leaf-wrapper {
    display: flex;
    align-items: flex-start;
    height: 56px;
    flex-shrink: 0;
}

.clinic-tour-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
}

.clinic-tour-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    white-space: nowrap;
}

.clinic-tour-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
}

.clinic-tour-lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    margin: 0;
    text-align: center;
    max-width: 812px;
}

.clinic-tour-gallery {
    display: flex;
    gap: 12.664px;
    width: 100%;
}

.clinic-tour-gallery-left {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 12.664px;
    width: 939px;
}

.clinic-tour-gallery-item {
    border-radius: 20px;
    overflow: hidden;
    position: relative;
}

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

.tour-item-large {
    width: 625px;
    height: 301px;
}

.tour-item-square-1 {
    width: 301px;
    height: 301px;
}

.tour-item-square-2 {
    width: 301px;
    height: 301px;
}

.tour-item-large-2 {
    width: 625px;
    height: 301px;
}

.clinic-tour-gallery-right {
    width: 568px;
}

.tour-item-vertical {
    width: 568px;
    height: 618px;
}

.clinic-tour-btn-wrapper {
    display: flex;
    justify-content: center;
    width: 100%;
}

.clinic-tour-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff !important;
    border-radius: 53.231px;
    text-decoration: none;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: background-color 0.3s ease;
}

.clinic-tour-btn:hover {
    background-color: #2faa87;
}

.clinic-tour-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 19.163px;
    line-height: 1.6;
    letter-spacing: 0.9582px;
}

.clinic-tour-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.clinic-tour-btn-arrow img {
    width: 22.357px;
    height: 22.357px;
    transform: rotate(90deg);
    display: block;
}

/* --- Curve Decoration (曲線02 - Node 3162:1041) Styles --- */
.clinic-tour-decor-curve {
    position: absolute;
    left: 0;
    bottom: -218px;
    width: 687.779px;
    height: 368px;
    pointer-events: none;
    z-index: 3;
    overflow: visible;
}

.curve-leaf {
    position: absolute;
    display: block;
}

/* 葉っぱ1 */
.clinic-tour-decor-curve .leaf-teal {
    left: -86.33px;
    top: 88.08px;
    width: 218.059px;
    height: 218.059px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.clinic-tour-decor-curve .leaf-teal img {
    width: 165.367px;
    height: 165.367px;
    transform: rotate(156.19deg);
    display: block;
}

/* 葉っぱ2 */
.clinic-tour-decor-curve .leaf-lightgreen {
    left: 346.17px;
    top: 8.74px;
    width: 133.168px;
    height: 133.168px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.clinic-tour-decor-curve .leaf-lightgreen img {
    width: 103.153px;
    height: 103.153px;
    transform: rotate(-20.9deg);
    display: block;
}

/* 葉っぱ3 */
.clinic-tour-decor-curve .leaf-green {
    left: 160.03px;
    top: 108.26px;
    width: 178.374px;
    height: 178.374px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.clinic-tour-decor-curve .leaf-green img {
    width: 126.369px;
    height: 126.369px;
    transform: rotate(41.48deg);
    display: block;
}

/* 葉っぱ4 */
.clinic-tour-decor-curve .leaf-teal-small {
    left: 536.29px;
    top: 41.29px;
    width: 114.763px;
    height: 114.763px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.clinic-tour-decor-curve .leaf-teal-small img {
    width: 82.575px;
    height: 82.575px;
    transform: rotate(34.34deg);
    display: block;
}


/* --- Symptom Search Section Styles --- */
.symptom-section {
    position: relative;
    width: 1920px;
    margin: 0 auto;
    padding: 134px 194px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    z-index: 1;
}

.symptom-bg-wrapper {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 100px;
    overflow: hidden;
    z-index: 0;
}

.symptom-bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.symptom-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.2);
}

.symptom-inner-card {
    position: relative;
    width: 1532px;
    height: 876px;
    background-color: rgba(255, 255, 255, 0.7);
    border-radius: 100px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    backdrop-filter: blur(10px);
}

.symptom-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    width: 1280px;
    margin: 0 auto;
}

.symptom-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.symptom-title-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.symptom-leaf-wrapper {
    height: 56px;
    display: flex;
    align-items: flex-start;
}

.symptom-leaf-icon {
    background-color: #2faa87;
    width: 20px;
    height: 20px;
    border-radius: 30px 2px;
}

.symptom-en-title {
    font-family: 'Cormorant Infant', serif;
    font-size: 56px;
    font-weight: 400;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    white-space: nowrap;
}

.symptom-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: -16px 0 0 0;
}

.symptom-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    width: 1280px;
}

.symptom-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    width: 410px;
    height: 137px;
    background-color: #ffffff;
    border-radius: 20px;
    text-decoration: none;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.02);
    transition: all 0.3s ease;
    box-sizing: border-box;
    padding: 0 24px;
}

.symptom-item:hover {
    transform: translateY(-4px);
    box-shadow: 0px 8px 30px rgba(47, 170, 135, 0.15);
}

.symptom-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 80px;
    flex-shrink: 0;
}

.symptom-icon {
    display: block;
    object-fit: contain;
}

.symptom-icon-pain {
    width: 60px;
    height: 60px;
}

.symptom-icon-gum {
    width: 64px;
    height: 58px;
}

.symptom-icon-ortho {
    width: 73px;
    height: 53px;
}

.symptom-icon-whitening {
    width: 65px;
    height: 58px;
}

.symptom-icon-denture {
    width: 95px;
    height: 47px;
}

.symptom-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #2faa87;
    letter-spacing: 0.5px;
    white-space: nowrap;
    flex-grow: 1;
}

.symptom-btn-wrapper {
    display: flex;
    justify-content: center;
    width: 100%;
}

.symptom-btn {
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff;
    border-radius: 53.231px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 19.163px;
    font-weight: 500;
    letter-spacing: 0.9582px;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.symptom-btn:hover {
    background-color: #53473d;
    transform: translateY(-2px);
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
}

.symptom-btn span {
    font-size: 19.163px;
}

.symptom-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.symptom-btn-arrow img {
    width: 100%;
    height: 100%;
    transform: rotate(90deg);
    display: block;
}


/* --- Clinic Hours & Access Section Styles --- */
.access-section {
    position: relative;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto -100px auto;
    padding: 134px 0 160px 0;
    box-sizing: border-box;
    background-color: #ffffff;
    border-radius: 0 0 100px 100px;
    z-index: 3;
}

.access-container {
    width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.access-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-bottom: 123px;
}

.access-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.access-leaf-wrapper {
    height: 56px;
    display: flex;
    align-items: flex-start;
}

.access-leaf-icon {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-radius: 30px 2px 30px 2px;
}

.access-en-title {
    font-family: 'Cormorant Infant', serif;
    font-size: 56px;
    font-weight: 400;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
    line-height: 1.3;
}

.access-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
    line-height: 1.6;
}

/* Top Block: Photos and Table */
.access-top-block {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 152px;
}

.access-photos {
    width: 530px;
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.access-main-photo {
    width: 530px;
    height: 530px;
    border-radius: 20px;
    overflow: hidden;
}

.access-main-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.access-sub-photos {
    display: flex;
    justify-content: space-between;
    gap: 22px;
}

.access-sub-photo {
    width: 254px;
    height: 177px;
    border-radius: 20px;
    overflow: hidden;
}

.access-sub-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.access-schedule {
    width: 631px;
    display: flex;
    flex-direction: column;
    gap: 100px;
}

.access-table-group {
    display: flex;
    flex-direction: column;
}

.access-table-header-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 40px;
}

.access-table-attention {
    display: none;
}

.access-table-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0;
}

.access-bar-icon {
    width: 6px;
    height: 30px;
    background-color: #2faa87;
    border-radius: 10px;
    display: block;
    flex-shrink: 0;
}

.access-table-title h3 {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: #63574d;
    margin: 0;
    letter-spacing: 1px;
    line-height: 1.6;
}

.access-table {
    width: 631px;
    border-collapse: collapse;
}

.access-table th,
.access-table td {
    text-align: center;
    vertical-align: middle;
    height: 61px;
    box-sizing: border-box;
}

.access-table th {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #575757;
    letter-spacing: 0.5px;
    border-bottom: 1.948px solid #2faa87;
    width: 53px;
}

.access-table th.time-col {
    width: 128px;
    text-align: left;
    padding-left: 8px;
}

.access-table td {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #2faa87;
    border-bottom: 1px solid #2faa87;
}

.access-table td.time-col {
    font-size: 15px;
    text-align: left;
    padding-left: 8px;
    color: #2faa87;
    width: 128px;
    letter-spacing: 0.75px;
}

.access-table .symbol-circle {
    font-size: 18px;
    color: #2faa87;
    line-height: 1;
}

.access-table .symbol-dash {
    font-size: 18px;
    color: #2faa87;
    font-weight: 400;
    line-height: 1;
}

.access-table .symbol-star {
    width: 18px;
    height: 18px;
    object-fit: contain;
    display: block;
}

.access-table .sat-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.access-table .sat-note {
    font-size: 11px;
    color: #2faa87;
    font-weight: 600;
    letter-spacing: 0.55px;
    line-height: 1.6;
    white-space: nowrap;
}

.access-table .sun-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.access-table .sun-note {
    font-size: 11px;
    color: #2faa87;
    font-weight: 600;
    letter-spacing: 0.55px;
    line-height: 1.3;
    text-align: center;
    white-space: nowrap;
}

.access-table-notes {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 24px;
}

.access-table-notes .note-item {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #2faa87;
    margin: 0;
    letter-spacing: 0.75px;
    line-height: 1.6;
}

/* Bottom Block: Info and Map */
.access-bottom-block {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 124px;
}

.access-info {
    width: 320px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 48px;
}

.access-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.access-logo .logo-mark {
    width: 35px;
    height: 46px;
}

.access-logo .logo-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.logo-text-en {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.logo-text-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #231815;
    line-height: 1.2;
    letter-spacing: 0.5px;
}

.logo-text-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 10px;
    font-weight: 500;
    color: #231815;
    line-height: 1.2;
    letter-spacing: 4px;
    margin-top: 2px;
    text-indent: 4px;
}

.access-info-list {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.access-info-item {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}

.access-info-item .info-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.access-bar-icon-small {
    width: 6px;
    height: 30px;
    background-color: #2faa87;
    border-radius: 10px;
    display: block;
    flex-shrink: 0;
}

.access-info-item .info-title h4 {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #63574d;
    margin: 0;
    letter-spacing: 0.5px;
    line-height: 1.6;
}

.access-info-item .info-value {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: #575757;
    margin: 0;
    letter-spacing: 0.5px;
    line-height: 1.6;
}

.google-map-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background-color: #575757;
    padding: 8px 16px;
    border-radius: 50px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.google-map-btn:hover {
    background-color: #444444;
}

.google-map-btn img {
    width: 14.4px;
    height: 14.4px;
    object-fit: contain;
    display: block;
}

.google-map-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #ffffff;
    letter-spacing: 0.65px;
    line-height: 1.6;
}

.access-map {
    width: 839px;
    height: 610px;
    border-radius: 20px;
    overflow: hidden;
}

.access-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Bottom Button */
.access-btn-wrapper {
    display: flex;
    justify-content: center;
}

.access-btn {
    width: 320px;
    height: 59px;
    background-color: #63574d;
    color: #ffffff;
    border-radius: 53.231px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 17.034px;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 19.163px;
    font-weight: 500;
    letter-spacing: 0.9582px;
    box-shadow: 0px 0px 2.129px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.access-btn:hover {
    background-color: #53473d;
    transform: translateY(-2px);
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
}

.access-btn span {
    font-size: 19.163px;
}

.access-btn-arrow {
    width: 22.357px;
    height: 22.357px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.access-btn-arrow img {
    width: 100%;
    height: 100%;
    transform: rotate(90deg);
    display: block;
}

/* --- Footer Section Styles --- */
.site-footer {
    background-color: #575757;
    position: relative;
    width: 100%;
    overflow: hidden;
}

.footer-slider-section {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 498.245px;
    z-index: 1;
}

.footer-slider-container {
    position: absolute;
    top: 235px;
    left: 0;
    width: 100%;
    overflow: hidden;
    z-index: 2;
}

.footer-slider-track {
    display: flex;
    width: max-content;
    animation: footerScroll 40s linear infinite;
}

.footer-slider-item {
    width: 498.245px;
    height: 498.245px;
    margin-right: 42.585px;
    flex-shrink: 0;
    border-radius: 21.293px;
    overflow: hidden;
}

.footer-slider-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@keyframes footerScroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-3785.81px);
    }
}

.footer-main-content {
    width: 100%;
    padding-top: 900px;
    padding-bottom: 80px;
    box-sizing: border-box;
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 160px;
}

.footer-container {
    max-width: 1620px;
    width: 100%;
    margin: 0 auto;
    padding: 0 80px;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-left-block {
    width: 305px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.footer-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.footer-logo .logo-mark {
    width: 283px;
    height: 110px;
    aspect-ratio: 283 / 110;
}

.footer-logo .logo-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.footer-logo .logo-text-en {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.footer-logo .logo-text-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.2;
    letter-spacing: 0.5px;
}

.footer-logo .logo-text-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 10px;
    font-weight: 500;
    color: #ffffff;
    line-height: 1.2;
    letter-spacing: 4px;
    margin-top: 2px;
    text-indent: 4px;
}

.footer-instagram-link {
    width: 39px;
    height: 39px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer-instagram-link img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.footer-address {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    text-align: center;
}

.footer-address .address-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: #ffffff;
    line-height: 1.6;
    letter-spacing: 0.5px;
    margin: 0;
}

.footer-google-map-btn {
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 50px;
    text-decoration: none;
    width: fit-content;
    transition: background-color 0.3s ease;
    box-sizing: border-box;
}

.footer-google-map-btn:hover {
    background-color: #e2e2e2;
}

.footer-google-map-btn img {
    width: 14.396px;
    height: 14.396px;
    object-fit: contain;
}

.footer-google-map-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #575757;
    line-height: 1.6;
    letter-spacing: 0.65px;
}

.footer-cta-buttons {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.footer-cta-btn {
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    height: 55px;
    border-radius: 50px;
    text-decoration: none;
    width: 100%;
    box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.05);
    transition: background-color 0.3s ease;
    box-sizing: border-box;
}

.footer-cta-btn:hover {
    background-color: #e2e2e2;
}

.footer-cta-btn img {
    object-fit: contain;
}

.footer-cta-btn.btn-tel img {
    width: 28px;
    height: 28px;
}

.footer-cta-btn.btn-calendar img,
.footer-cta-btn.btn-line img {
    width: 32px;
    height: 32px;
}

.footer-cta-btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    color: #575757;
    line-height: 1.6;
}

.footer-cta-btn.btn-tel span {
    font-size: 20px;
    letter-spacing: 0.5px;
}

.footer-cta-btn.btn-calendar span,
.footer-cta-btn.btn-line span {
    font-size: 18px;
    letter-spacing: 0.5px;
}

.footer-right-block {
    display: flex;
    gap: 85.17px;
    align-items: flex-start;
}

.footer-nav-col {
    display: flex;
    flex-direction: column;
}

.footer-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 34.068px;
}

.footer-nav-list li a {
    display: flex;
    align-items: center;
    gap: 8.517px;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 19.163px;
    font-weight: 400;
    color: #ffffff;
    line-height: 1.6;
    letter-spacing: 0.958px;
    transition: opacity 0.3s ease;
}

.footer-nav-list li a:hover {
    opacity: 0.8;
}

.footer-nav-list li a .dot {
    font-size: 10.646px;
    color: #2faa87;
    line-height: 1.6;
    letter-spacing: 0.532px;
}

.footer-copyright {
    width: 100%;
    max-width: 1620px;
    display: flex;
    justify-content: center;
    text-align: center;
}

.footer-copyright p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15.969px;
    font-weight: 500;
    color: #ffffff;
    line-height: 1.6;
    letter-spacing: 0.479px;
    margin: 0;
    text-align: center;
}

/* PC layout calibration against the Figma TOP frame */
@media (min-width: 1025px) {
    .about-us {
        margin-top: -80px;
    }


    .first-time-section {
        padding-top: 84px;
        padding-bottom: 84px;
    }

    .first-time-container {
        gap: 80px;
    }

    .medical-section {
        padding-top: 80px;
        padding-bottom: 80px;
        box-sizing: border-box;
    }

    .dental-dock-section {
        padding-top: 24px;
        padding-bottom: 24px;
        box-sizing: border-box;
    }

    .ortho-consult-section {
        box-sizing: border-box;
    }

    .adult-ortho-section {}

    .adult-ortho-text-block,
    .adult-ortho-body {
        gap: 32px;
    }

    .child-ortho-section {}

    .implant-section {}

    .doctors-section {}

    .clinic-tour-section {
        padding-bottom: 108px;
    }
}

/* Responsive adjustments for Reason */
/* Responsive adjustments for Reason */
@media (max-width: 1800px) {

    .reason-section {
        padding-bottom: 4.167vw;
        /* 80px */
    }

    .reason-bg {
        width: 100vw;
        height: 44.531vw;
        /* 855px */
        top: -0.729vw;
        /* -14px */
    }

    .reason-container {
        width: 79.167vw;
        /* 1520px */
        gap: 4.167vw;
        /* 80px */
        padding-top: 3.333vw;
        /* 64px */
    }

    .reason-heading {
        gap: 0.625vw;
        /* 12px */
    }

    .reason-title-row {
        gap: 0.417vw;
        /* 8px */
    }

    .reason-leaf-icon {
        width: 1.042vw;
        /* 20px */
        height: 1.042vw;
        /* 20px */
        border-top-left-radius: 1.563vw;
        /* 30px */
        border-top-right-radius: 0.104vw;
        /* 2px */
        border-bottom-left-radius: 0.104vw;
        /* 2px */
        border-bottom-right-radius: 1.563vw;
        /* 30px */
    }

    .reason-en-title {
        font-size: 2.917vw;
        /* 56px */
        letter-spacing: 0.088vw;
        /* 1.68px */
    }

    .reason-jp-subtitle {
        font-size: 1.042vw;
        /* 20px */
        letter-spacing: 0.052vw;
        /* 1px */
        padding-left: 1.563vw;
        /* 30px */
    }

    .reason-lead {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.026vw;
        /* 0.9px */
        padding-left: 1.563vw;
        /* 30px */
    }

    .reason-card {
        width: 24.375vw;
        /* 468px */
        height: auto;
        /* Dynamic height */
        min-height: 32.813vw;
        /* 630px */
        padding: 1.250vw;
        /* 24px */
        gap: 1.667vw;
        /* 32px */
        border-radius: 1.563vw;
        /* 30px */
    }

    .reason-card-image-wrapper {
        width: 21.875vw;
        /* 420px */
        height: 14.010vw;
        /* 269px */
        border-radius: 1.042vw;
        /* 20px */
    }

    .reason-card-img {
        border-radius: 1.042vw;
        /* 20px */
    }

    .reason-badge {
        left: -1.250vw;
        /* -24px */
        top: -1.250vw;
        /* -24px */
        width: 5.885vw;
        /* 113px */
        height: 5.885vw;
        /* 113px */
        border-top-left-radius: 2.494vw;
        /* 47.881px */
        border-top-right-radius: 0.589vw;
        /* 11.3px */
        border-bottom-left-radius: 0.589vw;
        /* 11.3px */
        border-bottom-right-radius: 8.828vw;
        /* 169.5px */
    }

    .reason-badge-num {
        font-size: 2.5vw;
        /* 48px */
        letter-spacing: 0.075vw;
        /* 1.44px */
        left: 1.250vw;
        /* 24px */
        top: 0.938vw;
        /* 18px */
    }

    .reason-card-content {
        gap: 2.083vw;
        /* 40px */
        padding: 0 0.833vw;
        /* 16px */
    }

    .reason-card-title {
        font-size: 1.25vw;
        /* 24px */
        letter-spacing: 0.062vw;
        /* 1.2px */
    }

    .reason-card-desc {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.026vw;
        /* 0.9px */
        gap: 0.677vw;
        min-height: 11.042vw;
        /* 212px */
    }

    .reason-bullets {
        margin: 0;
        gap: 0.417vw;
        /* 16px */
    }

    .reason-bullets li {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.026vw;
        /* 0.9px */
        padding-left: 1.042vw;
        /* 20px */
    }

    .reason-bullets li::before {
        font-size: 0.521vw;
        /* 10px */
    }

    /* --- First Time Section (1800px) --- */
    .first-time-section {
        border-radius: 5.208vw;
        /* 100px */
        padding: 6.458vw 0;
        /* 124px */
        margin-top: 6.458vw;
    }

    .first-time-container {
        width: 66.667vw;
        /* 1280px */
        gap: 6.250vw;
        /* 120px */
    }

    .first-time-main-row {
        width: 100%;
    }

    .first-time-text-block {
        width: 25.000vw;
        /* 480px */
        gap: 3.333vw;
        /* 64px */
    }

    .first-time-heading {
        gap: 0.417vw;
        /* 8px */
    }

    .first-time-title-row {
        gap: 0.417vw;
        /* 8px */
    }

    .first-time-leaf-wrapper {
        height: 2.917vw;
        /* 56px */
    }

    .first-time-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
    }

    .first-time-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .first-time-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .first-time-desc-block {
        gap: 2.083vw;
        /* 40px */
        padding-left: 1.563vw;
    }

    .first-time-desc-block p {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.026vw;
    }

    .first-time-bullets {
        gap: 0.417vw;
        /* 8px */
    }

    .first-time-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .first-time-bullets li::before {
        font-size: 0.521vw;
    }

    .first-time-btn-wrapper {
        padding-left: 1.563vw;
    }

    .first-time-btn {
        width: 16.667vw;
        /* 320px */
        height: 3.073vw;
        /* 59px */
        gap: 0.887vw;
        border-radius: 2.772vw;
    }

    .first-time-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .first-time-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .first-time-image-wrapper {
        width: 36.042vw;
        /* 692px */
        height: 29.792vw;
        /* 572px */
        border-radius: 1.042vw;
    }

    .first-time-divider {
        left: 39.740vw;
        /* 763px */
        top: 2.865vw;
        /* 55px */
        height: 17.500vw;
        /* 336px */
    }

    .first-time-divider-img {
        width: 17.500vw;
    }

    .first-time-flow {
        gap: 4.583vw;
        /* 88px */
    }

    .first-time-flow-title {
        font-size: 1.25vw;
        /* 24px */
        letter-spacing: 0.062vw;
    }

    .first-time-flow-steps {
        width: 66.667vw;
    }

    .first-time-step-card {
        width: 11.094vw;
        /* 213px */
        height: 8.177vw;
        /* 157px */
        border-radius: 1.042vw;
        padding-top: 0.833vw;
    }

    .first-time-step-card p {
        font-size: 0.938vw;
        /* 18px */
        letter-spacing: 0.026vw;
    }

    .first-time-step-circle-bg {
        top: -1.406vw;
        /* -27px */
        width: 4.167vw;
        /* 80px */
        height: 4.167vw;
    }

    .first-time-step-icon-container {
        top: -1.406vw;
        width: 4.167vw;
        height: 4.167vw;
    }

    .icon-counseling-wrapper {
        width: 3.000vw;
        /* 57.604px */
        height: 2.305vw;
        /* 44.247px */
        left: 0.609vw;
        /* 11.69px */
        top: 0.957vw;
        /* 18.37px */
    }

    .icon-exam-wrapper {
        left: 0.924vw;
        /* 17.74px */
        top: 1.198vw;
        /* 23px */
        width: 2.240vw;
        /* 43px */
        height: 1.771vw;
        /* 34px */
    }

    .icon-diagnosis-wrapper {
        left: 1.146vw;
        /* 22px */
        top: 0.990vw;
        /* 19px */
        width: 1.875vw;
        /* 36px */
        height: 2.188vw;
        /* 42px */
    }

    .icon-explanation-wrapper {
        left: 0.898vw;
        /* 17.25px */
        top: 0.833vw;
        /* 16px */
        width: 2.448vw;
        /* 47px */
        height: 2.240vw;
        /* 43px */
    }

    .icon-treatment-wrapper {
        left: 0.859vw;
        /* 16.5px */
        top: 0.938vw;
        /* 18px */
        width: 2.240vw;
        /* 43px */
        height: 2.240vw;
        /* 43px */
    }

    .first-time-step-arrow {
        width: 1.042vw;
        height: 1.510vw;
    }

    .first-time-step-arrow-img {
        width: 1.510vw;
        height: 1.042vw;
    }

    /* --- Medical Section (1800px) --- */
    .medical-section {
        padding: 6.458vw 0;
    }

    .medical-container {
        width: 66.667vw;
        gap: 3.333vw;
        box-sizing: border-box;
    }

    .medical-heading {
        gap: 0.417vw;
    }

    .medical-title-row {
        gap: 0.417vw;
    }

    .medical-leaf-wrapper {
        height: 2.917vw;
    }

    .medical-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-bottom-right-radius: 1.563vw;
        border-top-right-radius: 0.104vw;
        border-bottom-left-radius: 0.104vw;
    }

    .medical-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .medical-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
    }

    .medical-lead {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        width: 42.292vw;
    }

    .medical-grid {
        gap: 0.833vw 1.042vw;
    }

    .medical-card {
        width: 12.500vw;
        height: 12.500vw;
        border-radius: 1.109vw;
        box-shadow: 0px 0px 0.555vw rgba(0, 0, 0, 0.04);
    }

    .medical-card:hover {
        transform: translateY(-0.260vw);
        box-shadow: 0px 0.521vw 1.042vw rgba(0, 0, 0, 0.08);
    }

    /* 各アイコンの位置サイズ vw */
    .size-preventative {
        width: 5.208vw;
        height: 4.583vw;
        left: 3.646vw;
        top: 2.760vw;
    }

    .size-pediatric {
        left: 2.292vw;
        top: 2.604vw;
        width: 7.788vw;
        height: 4.635vw;
    }

    .size-periodontal {
        width: 4.635vw;
        height: 4.479vw;
        left: 3.958vw;
        top: 2.813vw;
    }

    .size-denture {
        left: 3.906vw;
        top: 3.125vw;
        width: 4.688vw;
        height: 3.438vw;
    }

    .size-implant {
        width: 4.271vw;
        height: 4.394vw;
        left: 4.115vw;
        top: 2.708vw;
    }

    .size-whitening {
        width: 5.000vw;
        height: 4.427vw;
        left: 3.594vw;
        top: 2.917vw;
    }

    .size-ortho {
        width: 5.581vw;
        height: 3.100vw;
        left: 3.438vw;
        top: 3.333vw;
    }

    .size-rootcanal {
        width: 4.366vw;
        height: 4.352vw;
        left: 4.115vw;
        top: 2.813vw;
    }

    .size-esthetic {
        width: 4.485vw;
        height: 4.604vw;
        left: 4.063vw;
        top: 2.500vw;
    }

    .size-extraction {
        left: 3.385vw;
        top: 2.500vw;
        width: 5.813vw;
        height: 4.630vw;
    }

    .medical-card-text-area {
        left: 0.833vw;
        bottom: 0.833vw;
        right: 0.833vw;
        gap: 0.521vw;
        width: calc(100% - 1.667vw);
    }

    .medical-card-title {
        font-size: 0.938vw;
    }

    .medical-card-arrow {
        width: 1.664vw;
        height: 1.664vw;
    }

    .medical-card-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    .medical-bottom-row {
        margin-top: 0.833vw;
    }

    .medical-bottom-lead {
        font-size: 0.938vw;
    }

    .medical-btn {
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        gap: 0.887vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
    }

    .medical-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .medical-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .medical-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    /* --- Dental Dock Section (1800px) --- */
    .dental-dock-section {
        margin-top: 1.875vw;
        margin-bottom: 8.333vw;
        padding: 2.500vw 0;
    }

    .dental-dock-section::before {
        width: calc(50% + 34.375vw);
        border-radius: 0 5.208vw 1.042vw 0;
        box-shadow: 0px 0px 0.555vw rgba(0, 0, 0, 0.04);
    }

    .dental-dock-container {
        width: 64.583vw;
        padding: 0;
        box-sizing: border-box;
    }

    .dental-dock-content {
        gap: 3.125vw;
        width: 64.583vw;
        align-items: center;
    }

    .dental-dock-text-block {
        width: 25.000vw;
        gap: 3.333vw;
    }

    .dental-dock-heading {
        gap: 0.417vw;
    }

    .dental-dock-title-row {
        gap: 0.417vw;
    }

    .dental-dock-leaf-wrapper {
        height: 2.917vw;
    }

    .dental-dock-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-top-right-radius: 0.104vw;
        border-bottom-left-radius: 0.104vw;
        border-bottom-right-radius: 1.563vw;
    }

    .dental-dock-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .dental-dock-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .dental-dock-body {
        padding-left: 1.563vw;
        gap: 2.083vw;
    }

    .dental-dock-intro {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .dental-dock-bullets {
        gap: 0.417vw;
    }

    .dental-dock-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .dental-dock-bullets li::before {
        font-size: 0.521vw;
    }

    .dental-dock-explanation {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .dental-dock-suggestion {
        gap: 1.250vw;
    }

    .dental-dock-suggestion-title {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .dental-dock-suggestion-bullets {
        gap: 0.417vw;
    }

    .dental-dock-suggestion-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .dental-dock-suggestion-bullets li::before {
        font-size: 0.521vw;
    }

    .dental-dock-btn-wrapper {
        padding-left: 1.563vw;
    }

    .dental-dock-btn {
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
        gap: 0.887vw;
        padding: 0.887vw 1.774vw;
    }

    .dental-dock-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .dental-dock-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .dental-dock-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    .dental-dock-image-block {
        width: 36.458vw;
        gap: 1.667vw;
    }

    .dental-dock-main-img-wrapper {
        width: 36.458vw;
        height: 34.323vw;
        border-radius: 1.042vw 4.167vw 1.042vw 1.042vw;
    }

    .dental-dock-sub-images-row {
        gap: 1.771vw;
    }

    .dental-dock-sub-img-wrapper {
        width: 17.344vw;
        height: 13.542vw;
        border-radius: 1.042vw;
    }

    /* --- Orthodontics Consultation Section (1800px) --- */
    .ortho-consult-section {
        margin-top: 8.333vw;
        margin-bottom: 8.333vw;
        padding: 2.500vw 0;
    }

    .ortho-consult-section::before {
        width: calc(50% + 35.104vw);
        border-radius: 5.208vw 0 0 1.042vw;
        box-shadow: 0px 0px 0.555vw rgba(0, 0, 0, 0.04);
    }

    .ortho-consult-container {
        width: 64.583vw;
        padding: 0;
        box-sizing: border-box;
    }

    .ortho-consult-content {
        gap: 3.125vw;
        width: 64.583vw;
        align-items: center;
    }

    .ortho-consult-image-block {
        width: 36.458vw;
        gap: 2.083vw;
    }

    .ortho-consult-main-img-wrapper {
        width: 36.458vw;
        height: 25.156vw;
        border-radius: 4.167vw 1.042vw 1.042vw 1.042vw;
    }

    .ortho-consult-sub-text-area {
        gap: 1.250vw;
    }

    .ortho-consult-sub-heading {
        gap: 0.417vw;
    }

    .ortho-consult-sub-bar {
        height: 1.563vw;
        width: 0.313vw;
        border-radius: 0.521vw;
    }

    .ortho-consult-sub-title {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .ortho-consult-sub-desc {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .ortho-consult-text-block {
        width: 25.000vw;
        gap: 3.333vw;
    }

    .ortho-consult-heading {
        gap: 0.417vw;
    }

    .ortho-consult-title-row {
        gap: 0.417vw;
    }

    .ortho-consult-leaf-wrapper {
        height: 2.917vw;
    }

    .ortho-consult-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-top-right-radius: 0.104vw;
        border-bottom-left-radius: 0.104vw;
        border-bottom-right-radius: 1.563vw;
    }

    .ortho-consult-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .ortho-consult-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .ortho-consult-body {
        padding-left: 1.563vw;
        gap: 2.083vw;
    }

    .ortho-consult-intro {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .ortho-consult-bullets {
        gap: 0.417vw;
    }

    .ortho-consult-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .ortho-consult-bullets li::before {
        font-size: 0.521vw;
    }

    .ortho-consult-buttons {
        gap: 1.250vw;
        padding-left: 1.563vw;
    }

    .ortho-consult-btn {
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
        gap: 0.887vw;
        padding: 0.887vw 1.774vw;
    }

    .ortho-consult-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .ortho-consult-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .ortho-consult-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    /* --- Adult Orthodontics Section (1800px) --- */
    .adult-ortho-section {
        margin-top: 8.333vw;
    }

    .adult-ortho-section::before {
        width: calc(50% + 34.375vw);
        /* 660px */
        border-radius: 0 5.208vw 1.042vw 0;
    }

    .adult-ortho-container {
        max-width: 64.583vw;
        padding: 2.5vw 0;
    }

    .adult-ortho-content {
        gap: 3.125vw;
    }

    .adult-ortho-text-block {
        width: 25vw;
        gap: 3.333vw;
    }

    .adult-ortho-heading {
        gap: 0.417vw;
    }

    .adult-ortho-title-row {
        gap: 0.417vw;
    }

    .adult-ortho-leaf-wrapper {
        height: 2.917vw;
    }

    .adult-ortho-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-bottom-right-radius: 1.563vw;
    }

    .adult-ortho-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .adult-ortho-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .adult-ortho-body {
        gap: 2.083vw;
        padding-left: 1.563vw;
    }

    .adult-ortho-intro,
    .adult-ortho-explanation,
    .adult-ortho-explanation-end {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .adult-ortho-bullets {
        gap: 0.417vw;
    }

    .adult-ortho-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .adult-ortho-bullets li::before {
        font-size: 0.521vw;
        left: 0;
    }

    .adult-ortho-btn-wrapper {
        padding-left: 1.563vw;
    }

    .adult-ortho-btn {
        gap: 0.887vw;
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
    }

    .adult-ortho-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .adult-ortho-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .adult-ortho-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    .adult-ortho-image-block {
        width: 36.458vw;
        gap: 1.25vw;
    }

    .adult-ortho-main-img-wrapper {
        width: 36.458vw;
        height: 23.073vw;
        border-radius: 1.042vw 4.167vw 1.042vw 1.042vw;
    }

    .adult-ortho-sub-images-row {
        gap: 1.25vw;
    }

    .adult-ortho-sub-img-wrapper {
        width: 17.344vw;
        height: 13.542vw;
        border-radius: 1.042vw;
    }

    /* --- Child Orthodontics Section (1800px) --- */
    .child-ortho-section {
        margin-top: 8.333vw;
    }

    .child-ortho-section::before {
        width: calc(50% + 34.375vw);
        /* 660px */
        border-radius: 5.208vw 0 0 1.042vw;
    }

    .child-ortho-container {
        max-width: 64.583vw;
        padding: 2.5vw 0;
    }

    .child-ortho-content {
        gap: 3.125vw;
    }

    .child-ortho-text-block {
        width: 25vw;
        gap: 3.333vw;
    }

    .child-ortho-heading {
        gap: 0.417vw;
    }

    .child-ortho-title-row {
        gap: 0.417vw;
    }

    .child-ortho-leaf-wrapper {
        height: 2.917vw;
    }

    .child-ortho-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-bottom-right-radius: 1.563vw;
    }

    .child-ortho-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .child-ortho-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .child-ortho-body {
        gap: 2.083vw;
        padding-left: 1.563vw;
    }

    .child-ortho-intro,
    .child-ortho-explanation {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .child-ortho-bullets {
        gap: 0.417vw;
    }

    .child-ortho-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .child-ortho-bullets li::before {
        font-size: 0.521vw;
        left: 0;
    }

    .child-ortho-btn-wrapper {
        padding-left: 1.563vw;
    }

    .child-ortho-btn {
        gap: 0.887vw;
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
    }

    .child-ortho-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .child-ortho-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .child-ortho-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    .child-ortho-image-block {
        width: 36.458vw;
    }

    .child-ortho-main-img-wrapper {
        width: 36.458vw;
        height: 34.323vw;
        border-radius: 4.167vw 1.042vw 1.042vw 1.042vw;
    }

    /* --- Implant Section (1800px) --- */
    .implant-section {
        margin-top: 8.333vw;
    }

    .implant-section::before {
        width: calc(50% + 34.375vw);
        /* 660px */
        border-radius: 0 5.208vw 1.042vw 0;
    }

    .implant-container {
        max-width: 64.583vw;
        padding: 2.5vw 0;
    }

    .implant-content {
        gap: 3.125vw;
    }

    .implant-text-block {
        width: 25vw;
        gap: 3.333vw;
    }

    .implant-heading {
        gap: 0.417vw;
    }

    .implant-title-row {
        gap: 0.417vw;
    }

    .implant-leaf-wrapper {
        height: 2.917vw;
    }

    .implant-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-bottom-right-radius: 1.563vw;
    }

    .implant-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .implant-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .implant-body {
        gap: 2.083vw;
        padding-left: 1.563vw;
    }

    .implant-intro,
    .implant-explanation {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .implant-bullets {
        gap: 0.417vw;
    }

    .implant-bullets li {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        padding-left: 1.042vw;
    }

    .implant-bullets li::before {
        font-size: 0.521vw;
        left: 0;
    }

    .implant-btn-wrapper {
        padding-left: 1.563vw;
    }

    .implant-btn {
        gap: 0.887vw;
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
    }

    .implant-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .implant-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .implant-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    .implant-image-block {
        width: 36.458vw;
        gap: 1.25vw;
    }

    .implant-main-img-wrapper {
        width: 36.458vw;
        height: 23.073vw;
        border-radius: 1.042vw 4.167vw 1.042vw 1.042vw;
    }

    .implant-sub-images-row {
        gap: 1.25vw;
    }

    .implant-sub-img-wrapper {
        width: 17.344vw;
        height: 13.542vw;
        border-radius: 1.042vw;
    }

    /* --- Clinic Tour Section (1800px) --- */
    .clinic-tour-section {
        margin-top: 8.333vw;
        padding-bottom: 8.333vw;
    }

    .clinic-tour-container {
        width: 79.167vw;
        gap: 3.333vw;
    }

    .clinic-tour-heading {
        gap: 0.625vw;
    }

    .clinic-tour-title-row {
        gap: 0.417vw;
    }

    .clinic-tour-leaf-wrapper {
        height: 2.917vw;
    }

    .clinic-tour-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-bottom-right-radius: 1.563vw;
    }

    .clinic-tour-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .clinic-tour-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
    }

    .clinic-tour-lead {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        max-width: 42.292vw;
    }

    .clinic-tour-gallery {
        gap: 0.66vw;
    }

    .clinic-tour-gallery-left {
        gap: 0.833vw 0.66vw;
        width: 48.906vw;
    }

    .clinic-tour-gallery-item {
        border-radius: 1.042vw;
    }

    .tour-item-large {
        width: 32.552vw;
        height: 15.677vw;
    }

    .tour-item-square-1 {
        width: 15.677vw;
        height: 15.677vw;
    }

    .tour-item-square-2 {
        width: 15.677vw;
        height: 15.677vw;
    }

    .tour-item-large-2 {
        width: 32.552vw;
        height: 15.677vw;
    }

    .clinic-tour-gallery-right {
        width: 29.583vw;
    }

    .tour-item-vertical {
        width: 29.583vw;
        height: 32.188vw;
    }

    .clinic-tour-btn {
        gap: 0.887vw;
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
    }

    .clinic-tour-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.050vw;
    }

    .clinic-tour-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .clinic-tour-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    /* 背景曲線02 (1800px) */
    .clinic-tour-decor-curve {
        bottom: -11.354vw;
        width: 35.822vw;
        height: 19.167vw;
    }

    .clinic-tour-decor-curve .leaf-teal {
        left: -4.496vw;
        top: 4.588vw;
        width: 11.357vw;
        height: 11.357vw;
    }

    .clinic-tour-decor-curve .leaf-teal img {
        width: 8.613vw;
        height: 8.613vw;
    }

    .clinic-tour-decor-curve .leaf-lightgreen {
        left: 18.03vw;
        top: 0.455vw;
        width: 6.936vw;
        height: 6.936vw;
    }

    .clinic-tour-decor-curve .leaf-lightgreen img {
        width: 5.373vw;
        height: 5.373vw;
    }

    .clinic-tour-decor-curve .leaf-green {
        left: 8.335vw;
        top: 5.639vw;
        width: 9.29vw;
        height: 9.29vw;
    }

    .clinic-tour-decor-curve .leaf-green img {
        width: 6.582vw;
        height: 6.582vw;
    }

    .clinic-tour-decor-curve .leaf-teal-small {
        left: 27.932vw;
        top: 2.151vw;
        width: 5.977vw;
        height: 5.977vw;
    }

    .clinic-tour-decor-curve .leaf-teal-small img {
        width: 4.298vw;
        height: 4.298vw;
    }

    /* Responsive adjustments for Doctors (1800px) */
    .doctors-section {
        margin-top: 8.333vw;
    }

    .doctors-container {
        max-width: 79.167vw;
    }

    .doctors-card {
        width: 72.917vw;
        border-radius: 1.563vw;
        padding: 4.323vw 6.25vw;
    }

    .doctors-content {
        gap: 3.333vw;
    }

    .doctors-text-block {
        width: 25vw;
        gap: 3.333vw;
    }

    .doctors-heading {
        gap: 0.417vw;
    }

    .doctors-title-row {
        gap: 0.417vw;
    }

    .doctors-leaf-wrapper {
        height: 2.917vw;
    }

    .doctors-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-top-right-radius: 0.104vw;
        border-bottom-left-radius: 0.104vw;
        border-bottom-right-radius: 1.563vw;
    }

    .doctors-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .doctors-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.563vw;
    }

    .doctors-body {
        gap: 1.25vw;
        padding-left: 1.563vw;
    }

    .doctors-body p {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .doctors-btn-wrapper {
        padding-left: 1.563vw;
    }

    .doctors-btn {
        gap: 0.887vw;
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        box-shadow: 0px 0px 0.111vw rgba(0, 0, 0, 0.05);
    }

    .doctors-btn span {
        font-size: 0.99vw;
        letter-spacing: 0.05vw;
    }

    .doctors-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    .doctors-btn-arrow img {
        width: 1.164vw;
        height: 1.164vw;
    }

    .doctors-images-block {
        gap: 3.333vw;
    }

    .doctors-img-wrapper {
        width: 23.125vw;
        height: 31.302vw;
        border-radius: 1.042vw;
    }

    /* 背景曲線02 - Doctors (1800px) */
    .doctors-decor-curve {
        bottom: -7.604vw;
        width: 32.813vw;
        height: 18.438vw;
    }

    .doctors-decor-curve .leaf-teal {
        left: -4.152vw;
        top: 6.363vw;
        width: 10.408vw;
        height: 10.408vw;
    }

    .doctors-decor-curve .leaf-teal img {
        width: 7.893vw;
        height: 7.893vw;
    }

    .doctors-decor-curve .leaf-lightgreen {
        left: 16.491vw;
        top: 2.595vw;
        width: 6.356vw;
        height: 6.356vw;
    }

    .doctors-decor-curve .leaf-lightgreen img {
        width: 4.923vw;
        height: 4.923vw;
    }

    .doctors-decor-curve .leaf-green {
        left: 7.607vw;
        top: 7.345vw;
        width: 8.514vw;
        height: 8.514vw;
    }

    .doctors-decor-curve .leaf-green img {
        width: 6.031vw;
        height: 6.031vw;
    }

    .doctors-decor-curve .leaf-teal-small {
        left: 25.564vw;
        top: 4.130vw;
        width: 5.478vw;
        height: 5.478vw;
    }

    .doctors-decor-curve .leaf-teal-small img {
        width: 3.941vw;
        height: 3.941vw;
    }

    /* --- Symptom Search Section (1800px) --- */
    .symptom-section {
        width: 100vw;
        padding: 6.979vw 10.104vw;
    }

    .symptom-bg-wrapper {
        border-radius: 5.208vw;
    }

    .symptom-inner-card {
        width: 79.792vw;
        height: 45.625vw;
        border-radius: 5.208vw;
        backdrop-filter: blur(10px);
    }

    .symptom-content {
        gap: 3.333vw;
        width: 66.667vw;
    }

    .symptom-heading {
        gap: 1.25vw;
    }

    .symptom-title-row {
        gap: 0.417vw;
    }

    .symptom-leaf-wrapper {
        height: 2.917vw;
    }

    .symptom-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-radius: 1.563vw 0.104vw;
    }

    .symptom-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .symptom-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        margin-top: -0.833vw;
    }

    .symptom-grid {
        gap: 1.25vw;
        width: 66.667vw;
    }

    .symptom-item {
        gap: 2.083vw;
        width: 21.354vw;
        height: 7.135vw;
        border-radius: 1.042vw;
        padding: 0 1.25vw;
    }

    .symptom-icon-wrapper {
        width: 5.208vw;
        height: 4.167vw;
    }

    .symptom-icon-pain {
        width: 3.125vw;
        height: 3.125vw;
    }

    .symptom-icon-gum {
        width: 3.333vw;
        height: 3.021vw;
    }

    .symptom-icon-ortho {
        width: 3.802vw;
        height: 2.76vw;
    }

    .symptom-icon-whitening {
        width: 3.385vw;
        height: 3.021vw;
    }

    .symptom-icon-denture {
        width: 4.948vw;
        height: 2.448vw;
    }

    .symptom-text {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .symptom-btn {
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        gap: 0.887vw;
        font-size: 0.99vw;
        letter-spacing: 0.05vw;
    }

    .symptom-btn span {
        font-size: 0.99vw;
    }

    .symptom-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    /* --- Clinic Hours & Access Section (1800px) --- */
    .access-section {
        width: 100%;
        max-width: 100vw;
        padding: 6.979vw 0 8.333vw 0;
        border-radius: 0 0 5.208vw 5.208vw;
        margin-bottom: -5.208vw;
    }

    .access-container {
        width: 66.667vw;
    }

    .access-heading {
        gap: 0.833vw;
        margin-bottom: 6.406vw;
    }

    .access-title-row {
        gap: 0.417vw;
    }

    .access-leaf-wrapper {
        height: 2.917vw;
    }

    .access-leaf-icon {
        width: 1.042vw;
        height: 1.042vw;
        border-radius: 1.563vw 0.104vw 1.563vw 0.104vw;
    }

    .access-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .access-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        margin: 0;
    }

    .access-top-block {
        margin-bottom: 7.917vw;
    }

    .access-photos {
        width: 27.604vw;
        gap: 0.677vw;
    }

    .access-main-photo {
        width: 27.604vw;
        height: 27.604vw;
        border-radius: 1.042vw;
    }

    .access-sub-photos {
        gap: 1.146vw;
    }

    .access-sub-photo {
        width: 13.229vw;
        height: 9.219vw;
        border-radius: 1.042vw;
    }

    .access-schedule {
        width: 32.865vw;
        gap: 5.208vw;
    }

    .access-table-title {
        gap: 0.417vw;
        margin-bottom: 0;
    }

    .access-table-header-wrap {
        margin-bottom: 2.083vw;
    }

    .access-bar-icon {
        width: 0.313vw;
        height: 1.563vw;
        border-radius: 0.521vw;
    }

    .access-table-title h3 {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
    }

    .access-table {
        width: 32.865vw;
    }

    .access-table th,
    .access-table td {
        height: 3.177vw;
    }

    .access-table th {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        border-bottom-width: 0.101vw;
        width: 2.76vw;
    }

    .access-table th.time-col {
        width: 6.667vw;
        padding-left: 0.417vw;
    }

    .access-table td {
        font-size: 0.938vw;
        border-bottom-width: 0.052vw;
    }

    .access-table td.time-col {
        font-size: 0.781vw;
        padding-left: 0.417vw;
        width: 6.667vw;
        letter-spacing: 0.039vw;
    }

    .access-table .symbol-circle {
        font-size: 0.938vw;
    }

    .access-table .symbol-dash {
        font-size: 0.938vw;
    }

    .access-table .symbol-star {
        width: 0.938vw;
        height: 0.938vw;
    }

    .access-table .sat-wrapper {
        gap: 0.104vw;
    }

    .access-table .sat-note {
        font-size: 0.573vw;
        letter-spacing: 0.029vw;
    }

    .access-table .sun-wrapper {
        gap: 0.104vw;
    }

    .access-table .sun-note {
        font-size: 0.573vw;
        letter-spacing: 0.029vw;
    }

    .access-table-notes {
        gap: 0.833vw;
        margin-top: 1.250vw;
    }

    .access-table-notes .note-item {
        font-size: 0.781vw;
        letter-spacing: 0.039vw;
    }

    .access-bottom-block {
        margin-bottom: 6.458vw;
    }

    .access-info {
        width: 16.667vw;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2.5vw;
    }

    .access-logo {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.625vw;
    }

    .access-logo .logo-mark {
        width: 1.823vw;
        height: 2.396vw;
    }

    .access-logo .logo-mark img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block;
    }

    .logo-text-en {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .logo-text-main {
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 0.781vw;
        font-weight: 700;
        color: #231815;
        line-height: 1.2;
        letter-spacing: 0.026vw;
    }

    .logo-text-sub {
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 0.521vw;
        font-weight: 500;
        color: #231815;
        line-height: 1.2;
        letter-spacing: 0.208vw;
        margin-top: 0.104vw;
        text-indent: 0.208vw;
    }

    .access-info-list {
        gap: 2.083vw;
    }

    .access-info-item {
        gap: 0.833vw;
    }

    .access-info-item .info-title {
        gap: 0.417vw;
    }

    .access-bar-icon-small {
        width: 0.313vw;
        height: 1.563vw;
        border-radius: 0.521vw;
    }

    .access-info-item .info-title h4 {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .access-info-item .info-value {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .google-map-btn {
        gap: 0.313vw;
        padding: 0.417vw 0.833vw;
    }

    .google-map-btn img {
        width: 0.75vw;
        height: 0.75vw;
    }

    .google-map-btn span {
        font-size: 0.677vw;
        letter-spacing: 0.034vw;
    }

    .access-map {
        width: 43.698vw;
        height: 31.771vw;
        border-radius: 1.042vw;
    }

    .access-btn {
        width: 16.667vw;
        height: 3.073vw;
        border-radius: 2.772vw;
        gap: 0.887vw;
        font-size: 0.99vw;
        letter-spacing: 0.05vw;
    }

    .access-btn span {
        font-size: 0.99vw;
    }

    .access-btn-arrow {
        width: 1.164vw;
        height: 1.164vw;
    }

    /* Footer responsive styles */
    .footer-slider-section {
        height: 25.95vw;
    }

    .footer-slider-container {
        top: 12.24vw;
    }

    .footer-slider-item {
        width: 25.95vw;
        height: 25.95vw;
        margin-right: 2.218vw;
        border-radius: 1.109vw;
    }

    @keyframes footerScroll {
        0% {
            transform: translateX(0);
        }

        100% {
            transform: translateX(-197.178vw);
        }
    }

    .footer-main-content {
        padding-top: 46.875vw;
        padding-bottom: 4.167vw;
        gap: 8.333vw;
    }

    .footer-container {
        max-width: 84.375vw;
        padding: 0 4.167vw;
    }

    .footer-left-block {
        width: 15.885vw;
        gap: 2.083vw;
    }

    .footer-logo {
        gap: 0.625vw;
    }

    .footer-logo .logo-mark {
        width: 14.74vw;
        height: 5.729vw;
    }

    .footer-logo .logo-text-main {
        font-size: 0.781vw;
        letter-spacing: 0.026vw;
    }

    .footer-logo .logo-text-sub {
        font-size: 0.521vw;
        letter-spacing: 0.208vw;
        margin-top: 0.104vw;
        text-indent: 0.208vw;
    }

    .footer-instagram-link {
        width: 2.031vw;
        height: 2.031vw;
    }

    .footer-address {
        gap: 1.25vw;
    }

    .footer-address .address-text {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .footer-google-map-btn {
        gap: 0.313vw;
        padding: 0.417vw 0.833vw;
    }

    .footer-google-map-btn img {
        width: 0.75vw;
        height: 0.75vw;
    }

    .footer-google-map-btn span {
        font-size: 0.677vw;
        letter-spacing: 0.034vw;
    }

    .footer-cta-buttons {
        gap: 0.833vw;
    }

    .footer-cta-btn {
        gap: 0.833vw;
        height: 2.865vw;
    }

    .footer-cta-btn.btn-tel img {
        width: 1.458vw;
        height: 1.458vw;
    }

    .footer-cta-btn.btn-calendar img,
    .footer-cta-btn.btn-line img {
        width: 1.667vw;
        height: 1.667vw;
    }

    .footer-cta-btn.btn-tel span {
        font-size: 1.042vw;
        letter-spacing: 0.031vw;
    }

    .footer-cta-btn.btn-calendar span,
    .footer-cta-btn.btn-line span {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }

    .footer-right-block {
        gap: 4.436vw;
    }

    .footer-nav-list {
        gap: 1.774vw;
    }

    .footer-nav-list li a {
        gap: 0.444vw;
        font-size: 0.99vw;
        letter-spacing: 0.05vw;
    }

    .footer-nav-list li a .dot {
        font-size: 0.573vw;
        letter-spacing: 0.028vw;
    }

    .footer-copyright {
        max-width: 84.375vw;
    }

    .footer-copyright p {
        font-size: 0.833vw;
        letter-spacing: 0.025vw;
    }

}

/* @media (min-width: 1025px) で詰めた余白を、1025〜1800px でも同じ比率（vw）にする */
@media (min-width: 1025px) and (max-width: 1800px) {
    .about-us {
        margin-top: -4.167vw;
    }

    .first-time-section {
        padding-top: 4.375vw;
        padding-bottom: 4.375vw;
    }

    .first-time-container {
        gap: 4.167vw;
    }

    .medical-section {
        padding-top: 4.167vw;
        padding-bottom: 4.167vw;
    }

    .dental-dock-section {
        padding-top: 1.25vw;
        padding-bottom: 1.25vw;
    }

    .adult-ortho-text-block,
    .adult-ortho-body {
        gap: 1.667vw;
    }

    .clinic-tour-section {
        padding-bottom: 5.625vw;
    }
}

/* Tablet / Mobile Layout for Reason */
@media (max-width: 1024px) {
    /* 1800px 以下を完全比例（vw）にしたため、タブレット以下は従来の値を維持する */
    .reason-en-title {
        font-size: calc(21.68px + 1.788vw);
    }

    .reason-jp-subtitle {
        font-size: calc(10.35px + 0.503vw);
    }

    .reason-bullets {
        gap: 0.3vw;
    }

    .first-time-btn span {
        font-size: calc(10.42px + 0.447vw);
    }

    .dental-dock-bullets li::before {
        font-size: calc(6.78px + 0.168vw);
    }

    .dental-dock-suggestion-bullets li::before {
        font-size: calc(6.78px + 0.168vw);
    }

    .ortho-consult-bullets li::before {
        font-size: calc(6.78px + 0.168vw);
    }

    .adult-ortho-bullets li::before {
        font-size: calc(6.78px + 0.168vw);
    }

    .child-ortho-bullets li::before {
        font-size: calc(6.78px + 0.168vw);
    }

    .implant-bullets li::before {
        font-size: calc(6.78px + 0.168vw);
    }

    .access-table-title h3 {
        font-size: calc(10.35px + 0.503vw);
    }

    .access-table th {
        font-size: calc(9.42px + 0.447vw);
    }

    .access-table td {
        font-size: calc(9.42px + 0.447vw);
    }

    .access-table td.time-col {
        font-size: calc(8.71px + 0.327vw);
    }

    .access-table .symbol-circle {
        font-size: calc(9.42px + 0.447vw);
    }

    .access-table .symbol-dash {
        font-size: calc(9.42px + 0.447vw);
    }

    .access-table .sat-note {
        font-size: calc(6.92px + 0.212vw);
    }

    .access-table .sun-note {
        font-size: calc(6.92px + 0.212vw);
    }

    .logo-text-main {
        font-size: calc(8.71px + 0.327vw);
    }

    .logo-text-sub {
        font-size: calc(6.78px + 0.168vw);
    }

    .reason-section {
        margin-top: 80px;
        padding-bottom: 60px;
    }

    .reason-bg {
        display: none;
    }

    .reason-container {
        width: 100%;
        gap: 40px;
        padding: 0 24px;
    }

    .reason-heading {
        gap: 8px;
    }

    .reason-jp-subtitle {
        padding-left: 0;
    }

    .reason-lead {
        padding-left: 0;
        font-size: 16px;
    }

    .reason-cards {
        flex-direction: column;
        align-items: center;
        gap: 48px;
    }

    .reason-card {
        width: 100%;
        max-width: 468px;
        height: auto;
        min-height: 0;
        /* Reset min-height for stacked layout */
        padding: 24px;
        border-radius: 30px;
        gap: 24px;
        box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.1);
    }

    .reason-card-image-wrapper {
        width: 100%;
        height: auto;
        aspect-ratio: 420 / 269;
    }

    .reason-badge {
        left: -24px;
        top: -24px;
        width: 113px;
        height: 113px;
        border-top-left-radius: 47.881px;
        border-top-right-radius: 11.3px;
        border-bottom-left-radius: 11.3px;
        border-bottom-right-radius: 169.5px;
    }

    .reason-badge-num {
        font-size: 48px;
        letter-spacing: 1.44px;
        left: 24px;
        top: 18px;
    }

    .reason-card-content {
        gap: 24px;
        padding: 0;
    }

    .reason-card-title {
        font-size: 22px;
    }

    .reason-card-desc {
        font-size: 16px;
        gap: 16px;
        min-height: 0;
        /* Reset for stacked layout */
    }

    .reason-bullets li {
        font-size: 16px;
        padding-left: 18px;
    }

    .reason-bullets li::before {
        font-size: 8px;
        top: 0.5em;
    }

    /* --- First Time Section (1024px) --- */
    .first-time-section {
        border-radius: 40px;
        padding: 60px 0;
        margin-top: 80px;
    }

    .first-time-container {
        width: 100%;
        padding: 0 24px;
        gap: 60px;
    }

    .first-time-main-row {
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .first-time-text-block {
        width: 100%;
        max-width: 600px;
        gap: 30px;
    }

    .first-time-leaf-wrapper {
        height: 36px;
    }

    .first-time-en-title {
        font-size: 36px;
    }

    .first-time-jp-subtitle {
        font-size: 18px;
        padding-left: 0;
    }

    .first-time-desc-block {
        padding-left: 0;
        gap: 24px;
    }

    .first-time-desc-block p {
        font-size: 16px;
    }

    .first-time-bullets li {
        font-size: 16px;
        padding-left: 18px;
    }

    .first-time-bullets li::before {
        font-size: 8px;
        top: 0.5em;
    }

    .first-time-btn-wrapper {
        padding-left: 0;
    }

    .first-time-btn {
        width: 100%;
        max-width: 320px;
        height: 59px;
    }

    .first-time-image-wrapper {
        width: 100%;
        max-width: 692px;
        height: auto;
        aspect-ratio: 692 / 572;
        border-radius: 20px;
    }

    .first-time-divider {
        display: none;
    }

    /* Flow of Treatment */
    .first-time-flow {
        gap: 32px;
    }

    .first-time-flow-title {
        font-size: 20px;
    }

    .first-time-flow-steps {
        flex-direction: column;
        gap: 16px;
        width: 100%;
        align-items: center;
    }

    .first-time-step-card {
        width: 100%;
        max-width: 300px;
        height: 120px;
        padding-top: 10px;
    }

    .first-time-step-card p {
        font-size: 16px;
    }

    .first-time-step-arrow {
        width: 20px;
        height: 29px;
        margin-top: 12px;
        margin-bottom: 28px;
    }

    .first-time-step-arrow-inner {
        transform: rotate(180deg);
        /* Point downwards */
    }

    .first-time-step-arrow-img {
        width: 20px;
        height: 29px;
    }

    /* Reset Flow Circle & Icon sizes to px in Tablet/SP to prevent scaling down to zero */
    .first-time-step-circle-bg {
        top: -24px;
        width: 64px;
        height: 64px;
    }

    .first-time-step-icon-container {
        top: -24px;
        width: 64px;
        height: 64px;
    }

    .icon-counseling-wrapper {
        width: 46px;
        height: 35px;
        left: 9px;
        top: 15px;
    }

    .icon-exam-wrapper {
        left: 18px;
        top: 15px;
        width: 34px;
        height: 27px;
    }

    .icon-diagnosis-wrapper {
        left: 17px;
        top: 15px;
        width: 29px;
        height: 34px;
    }

    .icon-explanation-wrapper {
        left: 14px;
        top: 13px;
        width: 38px;
        height: 34px;
    }

    .icon-treatment-wrapper {
        left: 13px;
        top: 15px;
        width: 38px;
        height: 35px;
    }

    /* --- Medical Section (1024px) --- */
    .medical-section {
        padding: 80px 0;
    }

    .medical-container {
        width: 100%;
        padding: 0 40px;
        gap: 48px;
        box-sizing: border-box;
    }

    .medical-heading {
        gap: 8px;
    }

    .medical-leaf-wrapper {
        height: 40px;
    }

    .medical-leaf-icon {
        width: 16px;
        height: 16px;
        border-radius: 24px 2px;
        display: inline-block;
        flex-shrink: 0;
    }

    .medical-en-title {
        font-size: 40px;
    }

    .medical-jp-subtitle {
        font-size: 18px;
    }

    .medical-lead {
        font-size: 16px;
        width: 100%;
    }

    .medical-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px 20px;
    }

    .medical-card {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-radius: 16px;
    }

    .medical-card-icon-wrapper {
        left: 50% !important;
        transform: translateX(-50%) !important;
        top: 18% !important;
    }

    .medical-card-icon-wrapper img {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }

    .size-preventative {
        width: 43.18% !important;
        height: 38% !important;
    }

    .size-pediatric {
        width: 63.84% !important;
        height: 38% !important;
    }

    .size-periodontal {
        width: 39.33% !important;
        height: 38% !important;
    }

    .size-denture {
        width: 38.18% !important;
        height: 28% !important;
        top: 22% !important;
    }

    .size-implant {
        width: 36.93% !important;
        height: 38% !important;
    }

    .size-whitening {
        width: 42.92% !important;
        height: 38% !important;
    }

    .size-ortho {
        width: 46.80% !important;
        height: 26% !important;
        top: 24% !important;
    }

    .size-rootcanal {
        width: 38.13% !important;
        height: 38% !important;
    }

    .size-esthetic {
        width: 37.01% !important;
        height: 38% !important;
    }

    .size-extraction {
        width: 47.70% !important;
        height: 38% !important;
    }

    .medical-card-text-area {
        left: 16px;
        bottom: 16px;
        right: 16px;
        gap: 8px;
        width: calc(100% - 32px);
    }

    .medical-card-title {
        font-size: 16px;
    }

    .medical-card-arrow {
        width: 30px;
        height: 30px;
    }

    .medical-card-arrow img {
        width: 20px;
        height: 20px;
    }

    .medical-bottom-row {
        flex-direction: column;
        gap: 24px;
        align-items: center;
        text-align: center;
        margin-top: 16px;
    }

    .medical-bottom-lead {
        font-size: 16px;
    }

    .medical-btn {
        width: 320px;
        height: 56px;
        border-radius: 28px;
    }

    .medical-btn span {
        font-size: 18px;
    }

    /* --- Dental Dock Section (1024px) --- */
    .dental-dock-section {
        margin-top: 80px;
        margin-bottom: 80px;
        padding: 0;
    }

    .dental-dock-section::before {
        width: 100% !important;
        border-radius: 0 80px 20px 0 !important;
    }

    .dental-dock-container {
        width: 100% !important;
        padding: 60px 40px !important;
        box-sizing: border-box !important;
    }

    .dental-dock-content {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 40px !important;
        width: 100% !important;
    }

    .dental-dock-text-block {
        width: 100% !important;
        gap: 40px !important;
    }

    .dental-dock-heading {
        gap: 8px !important;
    }

    .dental-dock-leaf-wrapper {
        height: 40px !important;
    }

    .dental-dock-leaf-icon {
        width: 16px !important;
        height: 16px !important;
    }

    .dental-dock-en-title {
        font-size: 40px !important;
    }

    .dental-dock-jp-subtitle {
        font-size: 18px !important;
        padding-left: 0 !important;
    }

    .dental-dock-body {
        padding-left: 0 !important;
        gap: 32px !important;
    }

    .dental-dock-intro {
        font-size: 16px !important;
    }

    .dental-dock-bullets li {
        font-size: 16px !important;
    }

    .dental-dock-explanation {
        font-size: 16px !important;
    }

    .dental-dock-suggestion-title {
        font-size: 16px !important;
    }

    .dental-dock-suggestion-bullets li {
        font-size: 16px !important;
    }

    .dental-dock-btn-wrapper {
        padding-left: 0 !important;
    }

    .dental-dock-btn {
        width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .dental-dock-btn span {
        font-size: 18px !important;
    }

    .dental-dock-image-block {
        width: 100% !important;
        gap: 24px !important;
    }

    .dental-dock-main-img-wrapper {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 700 / 659 !important;
        border-radius: 20px 60px 20px 20px !important;
    }

    .dental-dock-sub-images-row {
        gap: 20px !important;
    }

    .dental-dock-sub-img-wrapper {
        width: 48% !important;
        height: auto !important;
        aspect-ratio: 333 / 260 !important;
    }

    /* --- Orthodontics Consultation Section (1024px) --- */
    .ortho-consult-section {
        margin-top: 80px;
        margin-bottom: 80px;
        padding: 0;
    }

    .ortho-consult-section::before {
        width: 100% !important;
        border-radius: 80px 0 0 20px !important;
    }

    .ortho-consult-container {
        width: 100% !important;
        padding: 60px 40px !important;
        box-sizing: border-box !important;
    }

    .ortho-consult-content {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 40px !important;
        width: 100% !important;
    }

    .ortho-consult-image-block {
        width: 100% !important;
        gap: 24px !important;
    }

    .ortho-consult-main-img-wrapper {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 700 / 483 !important;
        border-radius: 60px 20px 20px 20px !important;
    }

    .ortho-consult-sub-text-area {
        gap: 16px !important;
    }

    .ortho-consult-sub-heading {
        gap: 8px !important;
    }

    .ortho-consult-sub-bar {
        height: 24px !important;
        width: 5px !important;
    }

    .ortho-consult-sub-title {
        font-size: 16px !important;
    }

    .ortho-consult-sub-desc {
        font-size: 16px !important;
    }

    .ortho-consult-text-block {
        width: 100% !important;
        gap: 40px !important;
    }

    .ortho-consult-heading {
        gap: 8px !important;
    }

    .ortho-consult-leaf-wrapper {
        height: 40px !important;
    }

    .ortho-consult-leaf-icon {
        width: 16px !important;
        height: 16px !important;
    }

    .ortho-consult-en-title {
        font-size: 40px !important;
    }

    .ortho-consult-jp-subtitle {
        font-size: 18px !important;
        padding-left: 0 !important;
    }

    .ortho-consult-body {
        padding-left: 0 !important;
        gap: 32px !important;
    }

    .ortho-consult-intro {
        font-size: 16px !important;
    }

    .ortho-consult-bullets li {
        font-size: 16px !important;
    }

    .ortho-consult-buttons {
        gap: 16px !important;
        padding-left: 0 !important;
    }

    .ortho-consult-btn {
        width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .ortho-consult-btn span {
        font-size: 18px !important;
    }

    /* --- Adult Orthodontics Section (1024px) --- */
    .adult-ortho-section {
        width: 100%;
        margin-top: 80px;
    }

    .adult-ortho-section::before {
        width: 100% !important;
        border-radius: 0 80px 20px 0 !important;
    }

    .adult-ortho-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 60px 40px !important;
    }

    .adult-ortho-content {
        flex-direction: column-reverse !important;
        gap: 40px !important;
        width: 100% !important;
    }

    .adult-ortho-text-block {
        width: 100% !important;
        max-width: 100% !important;
        gap: 40px !important;
    }

    .adult-ortho-heading {
        gap: 8px !important;
    }

    .adult-ortho-en-title {
        font-size: 40px !important;
    }

    .adult-ortho-jp-subtitle {
        font-size: 18px !important;
        padding-left: 0 !important;
    }

    .adult-ortho-body {
        gap: 30px !important;
        padding-left: 0 !important;
    }

    .adult-ortho-intro,
    .adult-ortho-explanation,
    .adult-ortho-explanation-end {
        font-size: 16px !important;
    }

    .adult-ortho-bullets li {
        font-size: 16px !important;
    }

    .adult-ortho-btn-wrapper {
        padding-left: 0 !important;
    }

    .adult-ortho-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .adult-ortho-btn span {
        font-size: 18px !important;
    }

    .adult-ortho-image-block {
        width: 100% !important;
        max-width: 700px !important;
        gap: 20px !important;
    }

    .adult-ortho-main-img-wrapper {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 700 / 443 !important;
        border-radius: 15px 40px 15px 15px !important;
    }

    .adult-ortho-sub-images-row {
        gap: 20px !important;
    }

    .adult-ortho-sub-img-wrapper {
        width: calc(50% - 10px) !important;
        height: auto !important;
        aspect-ratio: 333 / 260 !important;
        border-radius: 15px !important;
    }

    /* --- Child Orthodontics Section (1024px) --- */
    .child-ortho-section {
        width: 100%;
        margin-top: 80px;
    }

    .child-ortho-section::before {
        width: 100% !important;
        border-radius: 80px 0 0 20px !important;
    }

    .child-ortho-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 60px 40px !important;
    }

    .child-ortho-content {
        flex-direction: column !important;
        gap: 40px !important;
        width: 100% !important;
    }

    .child-ortho-text-block {
        width: 100% !important;
        max-width: 100% !important;
        gap: 40px !important;
    }

    .child-ortho-heading {
        gap: 8px !important;
    }

    .child-ortho-en-title {
        font-size: 40px !important;
    }

    .child-ortho-jp-subtitle {
        font-size: 18px !important;
        padding-left: 0 !important;
    }

    .child-ortho-body {
        gap: 30px !important;
        padding-left: 0 !important;
    }

    .child-ortho-intro,
    .child-ortho-explanation {
        font-size: 16px !important;
    }

    .child-ortho-bullets li {
        font-size: 16px !important;
    }

    .child-ortho-btn-wrapper {
        padding-left: 0 !important;
    }

    .child-ortho-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .child-ortho-btn span {
        font-size: 18px !important;
    }

    .child-ortho-image-block {
        width: 100% !important;
        max-width: 700px !important;
    }

    .child-ortho-main-img-wrapper {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 700 / 659 !important;
        border-radius: 40px 15px 15px 15px !important;
    }

    /* --- Implant Section (1024px) --- */
    .implant-section {
        width: 100%;
        margin-top: 80px;
    }

    .implant-section::before {
        width: 100% !important;
        border-radius: 0 80px 20px 0 !important;
    }

    .implant-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 60px 40px !important;
    }

    .implant-content {
        flex-direction: column-reverse !important;
        gap: 40px !important;
        width: 100% !important;
    }

    .implant-text-block {
        width: 100% !important;
        max-width: 100% !important;
        gap: 40px !important;
    }

    .implant-heading {
        gap: 8px !important;
    }

    .implant-en-title {
        font-size: 40px !important;
    }

    .implant-jp-subtitle {
        font-size: 18px !important;
        padding-left: 0 !important;
    }

    .implant-body {
        gap: 30px !important;
        padding-left: 0 !important;
    }

    .implant-intro,
    .implant-explanation {
        font-size: 16px !important;
    }

    .implant-bullets li {
        font-size: 16px !important;
    }

    .implant-btn-wrapper {
        padding-left: 0 !important;
    }

    .implant-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .implant-btn span {
        font-size: 18px !important;
    }

    .implant-image-block {
        width: 100% !important;
        max-width: 700px !important;
        gap: 20px !important;
    }

    .implant-main-img-wrapper {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 700 / 443 !important;
        border-radius: 15px 40px 15px 15px !important;
    }

    .implant-sub-images-row {
        gap: 20px !important;
    }

    .implant-sub-img-wrapper {
        width: calc(50% - 10px) !important;
        height: auto !important;
        aspect-ratio: 333 / 260 !important;
        border-radius: 15px !important;
    }

    /* --- Clinic Tour Section (1024px) --- */
    .clinic-tour-section {
        margin-top: 80px;
        padding-bottom: 80px;
    }

    .clinic-tour-container {
        width: 100% !important;
        gap: 40px !important;
        padding: 0 24px !important;
    }

    .clinic-tour-en-title {
        font-size: 40px !important;
    }

    .clinic-tour-jp-subtitle {
        font-size: 18px !important;
    }

    .clinic-tour-lead {
        font-size: 16px !important;
        max-width: 100% !important;
    }

    .clinic-tour-gallery {
        flex-direction: column !important;
        gap: 16px !important;
        width: 100% !important;
    }

    .clinic-tour-gallery-left {
        width: 100% !important;
        gap: 16px 12px !important;
    }

    .tour-item-large,
    .tour-item-square-1,
    .tour-item-square-2,
    .tour-item-large-2 {
        width: calc(50% - 6px) !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
    }

    .tour-item-large,
    .tour-item-large-2 {
        aspect-ratio: 625 / 301 !important;
    }

    .clinic-tour-gallery-right {
        width: 100% !important;
    }

    .tour-item-vertical {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 568 / 301 !important;
    }

    .clinic-tour-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .clinic-tour-btn span {
        font-size: 18px !important;
    }

    /* 背景曲線02 (1024px) */
    .clinic-tour-decor-curve {
        display: none !important;
    }

    /* Responsive adjustments for Doctors (1024px) */
    .doctors-section {
        margin-top: 80px !important;
    }

    .doctors-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 24px !important;
    }

    .doctors-card {
        width: 100% !important;
        height: auto !important;
        padding: 60px 40px !important;
        border-radius: 20px !important;
    }

    .doctors-content {
        position: static !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 48px !important;
        width: 100% !important;
    }

    .doctors-text-block {
        width: 100% !important;
        gap: 32px !important;
    }

    .doctors-heading {
        align-items: flex-start !important;
    }

    .doctors-leaf-wrapper {
        height: auto !important;
    }

    .doctors-en-title {
        font-size: 38px !important;
    }

    .doctors-jp-subtitle {
        font-size: 18px !important;
        padding-left: 0 !important;
    }

    .doctors-body {
        padding-left: 0 !important;
        gap: 16px !important;
    }

    .doctors-body p {
        font-size: 16px !important;
    }

    .doctors-btn-wrapper {
        padding-left: 0 !important;
    }

    .doctors-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 56px !important;
        border-radius: 28px !important;
    }

    .doctors-btn span {
        font-size: 18px !important;
    }

    .doctors-images-block {
        width: 100% !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        gap: 24px !important;
    }

    .doctors-img-wrapper {
        width: calc(50% - 12px) !important;
        height: auto !important;
        aspect-ratio: 444 / 601 !important;
        border-radius: 15px !important;
        overflow: hidden !important;
    }

    .doctors-img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: top center !important;
    }

    .doctors-decor-curve {
        display: none !important;
    }

    /* --- Symptom Search Section (1024px) --- */
    .symptom-section {
        width: 100% !important;
        height: auto !important;
        padding: 60px 40px !important;
    }

    .symptom-bg-wrapper {
        border-radius: 40px !important;
    }

    .symptom-inner-card {
        width: 100% !important;
        height: auto !important;
        border-radius: 40px !important;
        padding: 60px 40px !important;
        backdrop-filter: blur(10px) !important;
    }

    .symptom-content {
        width: 100% !important;
        gap: 40px !important;
    }

    .symptom-heading {
        gap: 16px !important;
    }

    .symptom-title-row {
        gap: 8px !important;
    }

    .symptom-leaf-wrapper {
        height: auto !important;
    }

    .symptom-leaf-icon {
        width: 16px !important;
        height: 16px !important;
        border-radius: 24px 2px !important;
    }

    .symptom-en-title {
        font-size: 36px !important;
        letter-spacing: 1px !important;
    }

    .symptom-jp-subtitle {
        font-size: 16px !important;
        letter-spacing: 1px !important;
        margin-top: -8px !important;
    }

    .symptom-grid {
        width: 100% !important;
        gap: 16px !important;
    }

    .symptom-item {
        width: calc(50% - 8px) !important;
        height: 110px !important;
        gap: 20px !important;
        border-radius: 16px !important;
        padding: 0 20px !important;
    }

    .symptom-icon-wrapper {
        width: 70px !important;
        height: 60px !important;
    }

    .symptom-icon-pain {
        width: 42px !important;
        height: 42px !important;
    }

    .symptom-icon-gum {
        width: 45px !important;
        height: 41px !important;
    }

    .symptom-icon-ortho {
        width: 51px !important;
        height: 37px !important;
    }

    .symptom-icon-whitening {
        width: 46px !important;
        height: 41px !important;
    }

    .symptom-icon-denture {
        width: 67px !important;
        height: 33px !important;
    }

    .symptom-text {
        font-size: 16px !important;
        letter-spacing: 0.8px !important;
    }

    .symptom-btn {
        width: 280px !important;
        height: 50px !important;
        border-radius: 25px !important;
        gap: 12px !important;
        font-size: 16px !important;
    }

    .symptom-btn span {
        font-size: 16px !important;
    }

    .symptom-btn-arrow {
        width: 18px !important;
        height: 18px !important;
    }

    /* --- Clinic Hours & Access Section (1024px) --- */
    .access-section {
        width: 100% !important;
        height: auto !important;
        padding: 80px 40px !important;
        border-radius: 0 0 50px 50px !important;
        margin-bottom: -50px !important;
    }

    .access-container {
        width: 100% !important;
        max-width: 760px !important;
        margin: 0 auto !important;
    }

    .access-heading {
        margin-bottom: 48px !important;
        gap: 8px !important;
    }

    .access-en-title {
        font-size: 36px !important;
    }

    .access-jp-subtitle {
        font-size: 16px !important;
        margin-top: 0 !important;
    }

    .access-top-block {
        flex-direction: column !important;
        align-items: center !important;
        gap: 48px !important;
        margin-bottom: 64px !important;
    }

    .access-photos {
        width: 100% !important;
        max-width: 530px !important;
        gap: 12px !important;
    }

    .access-main-photo {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        border-radius: 16px !important;
    }

    .access-sub-photos {
        width: 100% !important;
        gap: 12px !important;
    }

    .access-sub-photo {
        width: calc(50% - 6px) !important;
        height: auto !important;
        aspect-ratio: 254 / 177 !important;
        border-radius: 14px !important;
    }

    .access-schedule {
        width: 100% !important;
        max-width: 631px !important;
        gap: 48px !important;
    }

    .access-table-header-wrap {
        margin-bottom: 24px !important;
    }

    .access-table-title {
        margin-bottom: 0 !important;
    }

    .access-bar-icon {
        width: 6px !important;
        height: 26px !important;
        border-radius: 8px !important;
    }

    .access-table-wrapper {
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 8px !important;
    }

    .access-table {
        width: 100% !important;
        min-width: 540px !important;
    }

    .access-table th,
    .access-table td {
        height: 50px !important;
        font-size: 16px !important;
    }

    .access-table th.time-col,
    .access-table td.time-col {
        width: 110px !important;
        font-size: 13px !important;
    }

    .access-table th {
        width: 48px !important;
    }

    .access-table-notes {
        gap: 12px !important;
        margin-top: 20px !important;
    }

    .access-table-notes .note-item {
        font-size: 13px !important;
        font-weight: 500 !important;
    }

    .access-bottom-block {
        flex-direction: column !important;
        align-items: center !important;
        gap: 48px !important;
        margin-bottom: 64px !important;
    }

    .access-info {
        width: 100% !important;
        max-width: 640px !important;
        align-items: center !important;
        gap: 36px !important;
    }

    .access-logo {
        align-items: center !important;
        gap: 12px !important;
    }

    .access-logo .logo-mark {
        width: 35px !important;
        height: 46px !important;
    }

    .access-info-list {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 30px !important;
    }

    .access-info-item {
        align-items: flex-start !important;
        text-align: left !important;
        gap: 12px !important;
    }

    .access-info-item .info-title {
        justify-content: flex-start !important;
        gap: 8px !important;
    }

    .access-bar-icon-small {
        width: 5px !important;
        height: 24px !important;
        border-radius: 6px !important;
    }

    .access-info .logo-text-main {
        font-size: 15px !important;
    }

    .access-info .logo-text-sub {
        font-size: 10px !important;
    }

    .access-info-item .info-title h4 {
        font-size: 16px !important;
    }

    .access-info-item .info-value {
        font-size: 16px !important;
    }

    .google-map-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        padding: 6px 14px !important;
        border-radius: 50px !important;
    }

    .google-map-btn img {
        width: 14.4px !important;
        height: 14.4px !important;
    }

    .google-map-btn span {
        font-size: 13px !important;
        letter-spacing: 0.65px !important;
    }

    .access-map {
        width: 100% !important;
        max-width: 760px !important;
        height: 420px !important;
        border-radius: 16px !important;
    }

    .access-btn {
        width: 280px !important;
        height: 52px !important;
        border-radius: 26px !important;
        font-size: 16px !important;
        gap: 12px !important;
    }

    .access-btn span {
        font-size: 16px !important;
    }

    .access-btn-arrow {
        width: 18px !important;
        height: 18px !important;
    }

    /* Footer tablet styles */
    .footer-slider-section {
        height: 370px;
    }

    .footer-slider-container {
        top: 120px;
    }

    .footer-slider-item {
        width: 250px;
        height: 250px;
        margin-right: 16px;
        border-radius: 16px;
    }

    @keyframes footerScroll {
        0% {
            transform: translateX(0);
        }

        100% {
            transform: translateX(-1862px);
        }
    }

    .footer-main-content {
        padding-top: 450px;
        padding-bottom: 60px;
        gap: 80px;
    }

    .footer-container {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 60px;
        padding: 0 32px;
        width: 100%;
        max-width: 640px;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
        text-align: center;
    }

    .footer-left-block {
        width: 100%;
        max-width: 360px;
        margin-left: auto;
        margin-right: auto;
        align-items: center;
        text-align: center;
        gap: 32px;
    }

    .footer-logo {
        gap: 12px;
        align-items: center;
        text-align: center;
    }

    .footer-logo .logo-mark {
        width: 283px;
        height: 110px;
        margin-left: auto;
        margin-right: auto;
    }

    .footer-logo .logo-text-main {
        font-size: 15px;
    }

    .footer-logo .logo-text-sub {
        font-size: 10px;
    }

    .footer-instagram-link {
        width: 39px;
        height: 39px;
        margin-left: auto;
        margin-right: auto;
    }

    .footer-address {
        gap: 16px;
        align-items: center;
        text-align: center;
    }

    .footer-address .address-text {
        font-size: 16px;
        text-align: center;
    }

    .footer-google-map-btn {
        padding: 6px 12px;
        margin-left: auto;
        margin-right: auto;
    }

    .footer-google-map-btn img {
        width: 12px;
        height: 12px;
    }

    .footer-google-map-btn span {
        font-size: 12px;
    }

    .footer-cta-buttons {
        gap: 12px;
        width: 100%;
        max-width: 360px;
        margin-left: auto;
        margin-right: auto;
        align-items: center;
    }

    .footer-cta-btn {
        height: 48px;
        gap: 12px;
        width: 100%;
    }

    .footer-cta-btn.btn-tel img {
        width: 22px;
        height: 22px;
    }

    .footer-cta-btn.btn-calendar img,
    .footer-cta-btn.btn-line img {
        width: 24px;
        height: 24px;
    }

    .footer-cta-btn.btn-tel span {
        font-size: 16px;
    }

    .footer-cta-btn.btn-calendar span,
    .footer-cta-btn.btn-line span {
        font-size: 15px;
    }

    .footer-right-block {
        width: 100%;
        max-width: 520px;
        margin-left: auto;
        margin-right: auto;
        display: flex;
        justify-content: space-between;
        gap: 32px;
        align-items: flex-start;
    }

    .footer-nav-col {
        width: calc(50% - 16px);
    }

    .footer-nav-list {
        gap: 20px;
    }

    .footer-nav-list li a {
        font-size: 16px;
        gap: 6px;
    }

    .footer-nav-list li a .dot {
        font-size: 8px;
    }

    .footer-copyright {
        width: 100%;
        display: flex;
        justify-content: center;
        text-align: center;
    }

    .footer-copyright p {
        font-size: 14px;
        text-align: center;
    }
}

/* Responsive adjustments for Access Section (768px) */
@media (max-width: 768px) {
    .access-section {
        padding: 60px 20px !important;
        border-radius: 0 0 35px 35px !important;
        margin-bottom: -35px !important;
    }

    .access-heading {
        margin-bottom: 36px !important;
    }

    .access-en-title {
        font-size: 32px !important;
    }

    .access-jp-subtitle {
        font-size: 15px !important;
    }

    .access-top-block {
        gap: 40px !important;
        margin-bottom: 50px !important;
    }

    .access-photos {
        gap: 10px !important;
    }

    .access-main-photo {
        border-radius: 14px !important;
    }

    .access-sub-photos {
        gap: 10px !important;
    }

    .access-sub-photo {
        border-radius: 12px !important;
    }

    .access-schedule {
        gap: 40px !important;
    }

    .access-table-header-wrap {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        margin-bottom: 16px !important;
    }

    .access-table-attention.sp-only {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        padding: 4px 10px !important;
        background-color: #f0fbf7 !important;
        border: 1px solid rgba(47, 170, 135, 0.35) !important;
        border-radius: 12px !important;
        color: #2faa87 !important;
        font-size: 11px !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        letter-spacing: 0.2px !important;
        white-space: nowrap !important;
        box-shadow: 0 1px 4px rgba(47, 170, 135, 0.08) !important;
    }

    .access-table-attention-arrow {
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        color: #2faa87 !important;
    }

    .access-table-wrapper {
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 8px !important;
        box-sizing: border-box !important;
    }

    .access-table {
        width: 100% !important;
        min-width: 540px !important;
    }

    .access-bottom-block {
        gap: 40px !important;
        margin-bottom: 50px !important;
    }

    .access-info {
        gap: 30px !important;
    }

    .access-info-list {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    .access-map {
        height: 350px !important;
        border-radius: 14px !important;
    }

    .access-btn {
        width: 260px !important;
        height: 48px !important;
        border-radius: 24px !important;
        font-size: 15px !important;
    }

    .access-btn span {
        font-size: 15px !important;
    }
}

/* Phone Layout for Reason */
@media (max-width: 590px) {
    .reason-section {
        margin-top: 60px;
    }

    .reason-container {
        padding: 0 16px;
        gap: 32px;
    }

    .reason-en-title {
        font-size: 36px;
    }

    .reason-jp-subtitle {
        font-size: 16px;
    }

    .reason-lead {
        font-size: 14px;
        text-align: left;
    }

    .reason-cards {
        gap: 40px;
    }

    .reason-card {
        padding: 16px;
        border-radius: 20px;
        gap: 20px;
        min-height: 0;
        /* Reset min-height */
    }

    .reason-card-image-wrapper {
        border-radius: 15px;
    }

    .reason-card-img {
        border-radius: 15px;
    }

    .reason-badge {
        width: 96px;
        height: 96px;
        left: -16px;
        top: -16px;
        border-top-left-radius: 34px;
        border-bottom-left-radius: 9px;
        border-top-right-radius: 9px;
        border-bottom-right-radius: 144px;
    }

    .reason-badge-num {
        font-size: 40px;
        left: 14px;
        top: 18px;
    }

    .reason-card-title {
        font-size: 18px;
    }

    .reason-card-desc {
        font-size: 14px;
        gap: 12px;
    }

    .reason-bullets li {
        font-size: 14px;
        padding-left: 16px;
    }

    .reason-bullets li::before {
        font-size: 6px;
        top: 1.1em;
    }

    /* --- First Time Section (590px) --- */
    .first-time-section {
        margin-top: 60px;
        padding: 40px 0;
    }

    .first-time-container {
        padding: 0 16px;
        gap: 40px;
    }

    .first-time-en-title {
        font-size: 28px;
    }

    .first-time-jp-subtitle {
        font-size: 16px;
    }

    .first-time-desc-block p {
        font-size: 15px;
    }

    .first-time-bullets li {
        font-size: 15px;
        padding-left: 17px;
    }

    .first-time-bullets li::before {
        font-size: 7px;
        top: 1.1em;
    }

    .first-time-btn {
        max-width: 100%;
        height: 52px;
    }

    .first-time-btn span {
        font-size: 16px;
    }

    /* --- Medical Section (590px) --- */
    .medical-section {
        padding: 60px 0;
    }

    .medical-container {
        width: 100%;
        box-sizing: border-box;
        padding: 0 16px;
        gap: 32px;
    }

    .medical-en-title {
        font-size: 32px;
    }

    .medical-jp-subtitle {
        font-size: 16px;
    }

    .medical-lead {
        font-size: 14px;
    }

    .medical-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px 12px;
    }

    .medical-card {
        border-radius: 12px;
    }

    .medical-card-icon-wrapper {
        top: 20% !important;
    }

    .size-preventative {
        width: 39.77% !important;
        height: 35% !important;
    }

    .size-pediatric {
        width: 58.80% !important;
        height: 35% !important;
    }

    .size-periodontal {
        width: 36.22% !important;
        height: 35% !important;
    }

    .size-denture {
        width: 34.09% !important;
        height: 25% !important;
        top: 24% !important;
    }

    .size-implant {
        width: 34.02% !important;
        height: 35% !important;
    }

    .size-whitening {
        width: 39.53% !important;
        height: 35% !important;
    }

    .size-ortho {
        width: 43.20% !important;
        height: 24% !important;
        top: 26% !important;
    }

    .size-rootcanal {
        width: 35.12% !important;
        height: 35% !important;
    }

    .size-esthetic {
        width: 34.09% !important;
        height: 35% !important;
    }

    .size-extraction {
        width: 43.94% !important;
        height: 35% !important;
    }

    .medical-card-text-area {
        left: 12px;
        bottom: 12px;
        right: 12px;
        gap: 6px;
        width: calc(100% - 24px);
    }

    .medical-card-title {
        font-size: 14px;
    }

    .medical-card-arrow {
        width: 26px;
        height: 26px;
    }

    .medical-card-arrow img {
        width: 16px;
        height: 16px;
    }

    .medical-bottom-row {
        gap: 16px;
        margin-top: 8px;
    }

    .medical-bottom-lead {
        font-size: 14px;
        line-height: 1.5;
    }

    .medical-btn {
        width: 100%;
        max-width: 320px;
        height: 52px;
    }

    .medical-btn span {
        font-size: 16px;
    }

    .medical-leaf-wrapper {
        height: 28px !important;
        display: flex !important;
        align-items: flex-start !important;
        flex-shrink: 0 !important;
    }

    .medical-leaf-icon {
        width: 18px !important;
        height: 18px !important;
        border-radius: 20px 2px 20px 2px !important;
        display: inline-block !important;
        flex-shrink: 0 !important;
    }

    /* --- Dental Dock Section (590px) --- */
    .dental-dock-section {
        margin-top: 60px;
        margin-bottom: 60px;
    }

    .dental-dock-section::before {
        border-radius: 0 40px 20px 0 !important;
    }

    .dental-dock-container {
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 40px 16px !important;
    }

    .dental-dock-content {
        gap: 32px !important;
    }

    .dental-dock-text-block {
        gap: 32px !important;
    }

    .dental-dock-heading {
        gap: 6px !important;
    }

    .dental-dock-en-title {
        font-size: 32px !important;
    }

    .dental-dock-jp-subtitle {
        font-size: 16px !important;
    }

    .dental-dock-body {
        gap: 24px !important;
        padding-left: 15px !important;
    }

    .dental-dock-intro {
        font-size: 14px !important;
    }

    .dental-dock-bullets {
        gap: 6px !important;
    }

    .dental-dock-bullets li {
        font-size: 14px !important;
        padding-left: 15px !important;
    }

    .dental-dock-bullets li::before {
        font-size: 8px !important;
    }

    .dental-dock-explanation {
        font-size: 14px !important;
    }

    .dental-dock-suggestion {
        gap: 16px !important;
    }

    .dental-dock-suggestion-title {
        font-size: 14px !important;
    }

    .dental-dock-suggestion-bullets {
        gap: 6px !important;
    }

    .dental-dock-suggestion-bullets li {
        font-size: 14px !important;
        padding-left: 15px !important;
    }

    .dental-dock-suggestion-bullets li::before {
        font-size: 8px !important;
    }

    .dental-dock-btn-wrapper {
        padding-left: 15px !important;
    }

    .dental-dock-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .dental-dock-btn span {
        font-size: 16px !important;
    }

    .dental-dock-image-block {
        gap: 16px !important;
    }

    .dental-dock-main-img-wrapper {
        border-radius: 15px 40px 15px 15px !important;
    }

    .dental-dock-sub-images-row {
        gap: 12px !important;
    }

    .dental-dock-sub-img-wrapper {
        width: calc(50% - 6px) !important;
        border-radius: 15px !important;
    }

    /* --- Orthodontics Consultation Section (590px) --- */
    .ortho-consult-section {
        margin-top: 60px;
        margin-bottom: 60px;
    }

    .ortho-consult-section::before {
        border-radius: 40px 0 0 20px !important;
    }

    .ortho-consult-container {
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 40px 16px !important;
    }

    .ortho-consult-content {
        gap: 32px !important;
    }

    .ortho-consult-main-img-wrapper {
        border-radius: 40px 15px 15px 15px !important;
    }

    .ortho-consult-sub-text-area {
        gap: 12px !important;
    }

    .ortho-consult-sub-heading {
        gap: 6px !important;
    }

    .ortho-consult-sub-bar {
        height: 20px !important;
        width: 4px !important;
    }

    .ortho-consult-sub-title {
        font-size: 14px !important;
    }

    .ortho-consult-sub-desc {
        font-size: 14px !important;
    }

    .ortho-consult-text-block {
        gap: 32px !important;
    }

    .ortho-consult-heading {
        gap: 6px !important;
    }

    .ortho-consult-en-title {
        font-size: 32px !important;
    }

    .ortho-consult-jp-subtitle {
        font-size: 16px !important;
    }

    .ortho-consult-body {
        gap: 24px !important;
        padding-left: 15px !important;
    }

    .ortho-consult-intro {
        font-size: 14px !important;
    }

    .ortho-consult-bullets {
        gap: 6px !important;
    }

    .ortho-consult-bullets li {
        font-size: 14px !important;
        padding-left: 15px !important;
    }

    .ortho-consult-bullets li::before {
        font-size: 8px !important;
    }

    .ortho-consult-buttons {
        gap: 16px !important;
        padding-left: 15px !important;
    }

    .ortho-consult-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .ortho-consult-btn span {
        font-size: 16px !important;
    }

    /* --- Adult Orthodontics Section (590px) --- */
    .adult-ortho-section {
        margin-top: 60px;
        margin-bottom: 60px;
    }

    .adult-ortho-section::before {
        border-radius: 0 40px 20px 0 !important;
    }

    .adult-ortho-container {
        padding: 40px 16px !important;
    }

    .adult-ortho-content {
        gap: 32px !important;
    }

    .adult-ortho-text-block {
        gap: 32px !important;
    }

    .adult-ortho-heading {
        gap: 6px !important;
    }

    .adult-ortho-en-title {
        font-size: 32px !important;
    }

    .adult-ortho-jp-subtitle {
        font-size: 16px !important;
    }

    .adult-ortho-body {
        gap: 24px !important;
        padding-left: 15px !important;
    }

    .adult-ortho-intro,
    .adult-ortho-explanation,
    .adult-ortho-explanation-end {
        font-size: 14px !important;
    }

    .adult-ortho-bullets {
        gap: 6px !important;
    }

    .adult-ortho-bullets li {
        font-size: 14px !important;
        padding-left: 15px !important;
    }

    .adult-ortho-bullets li::before {
        font-size: 8px !important;
    }

    .adult-ortho-btn-wrapper {
        padding-left: 15px !important;
    }

    .adult-ortho-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .adult-ortho-btn span {
        font-size: 16px !important;
    }

    .adult-ortho-image-block {
        gap: 16px !important;
    }

    .adult-ortho-main-img-wrapper {
        border-radius: 15px 40px 15px 15px !important;
    }

    .adult-ortho-sub-images-row {
        gap: 12px !important;
    }

    .adult-ortho-sub-img-wrapper {
        width: calc(50% - 6px) !important;
        border-radius: 15px !important;
    }

    /* --- Child Orthodontics Section (590px) --- */
    .child-ortho-section {
        margin-top: 60px;
        margin-bottom: 60px;
    }

    .child-ortho-section::before {
        border-radius: 40px 0 0 20px !important;
    }

    .child-ortho-container {
        padding: 40px 16px !important;
    }

    .child-ortho-content {
        gap: 32px !important;
    }

    .child-ortho-text-block {
        gap: 32px !important;
    }

    .child-ortho-heading {
        gap: 6px !important;
    }

    .child-ortho-en-title {
        font-size: 32px !important;
    }

    .child-ortho-jp-subtitle {
        font-size: 16px !important;
    }

    .child-ortho-body {
        gap: 24px !important;
        padding-left: 15px !important;
    }

    .child-ortho-intro,
    .child-ortho-explanation {
        font-size: 14px !important;
    }

    .child-ortho-bullets {
        gap: 6px !important;
    }

    .child-ortho-bullets li {
        font-size: 14px !important;
        padding-left: 15px !important;
    }

    .child-ortho-bullets li::before {
        font-size: 8px !important;
    }

    .child-ortho-btn-wrapper {
        padding-left: 15px !important;
    }

    .child-ortho-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .child-ortho-btn span {
        font-size: 16px !important;
    }

    .child-ortho-main-img-wrapper {
        border-radius: 40px 15px 15px 15px !important;
    }

    /* --- Implant Section (590px) --- */
    .implant-section {
        margin-top: 60px;
        margin-bottom: 60px;
    }

    .implant-section::before {
        border-radius: 0 40px 20px 0 !important;
    }

    .implant-container {
        padding: 40px 16px !important;
    }

    .implant-content {
        gap: 32px !important;
    }

    .implant-text-block {
        gap: 32px !important;
    }

    .implant-heading {
        gap: 6px !important;
    }

    .implant-en-title {
        font-size: 32px !important;
    }

    .implant-jp-subtitle {
        font-size: 16px !important;
    }

    .implant-body {
        gap: 24px !important;
        padding-left: 15px !important;
    }

    .implant-intro,
    .implant-explanation {
        font-size: 14px !important;
    }

    .implant-bullets {
        gap: 6px !important;
    }

    .implant-bullets li {
        font-size: 14px !important;
        padding-left: 15px !important;
    }

    .implant-bullets li::before {
        font-size: 8px !important;
    }

    .implant-btn-wrapper {
        padding-left: 15px !important;
    }

    .implant-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .implant-btn span {
        font-size: 16px !important;
    }

    .implant-image-block {
        gap: 16px !important;
    }

    .implant-main-img-wrapper {
        border-radius: 15px 40px 15px 15px !important;
    }

    .implant-sub-images-row {
        gap: 12px !important;
    }

    .implant-sub-img-wrapper {
        width: calc(50% - 6px) !important;
        border-radius: 15px !important;
    }

    /* --- Clinic Tour Section (590px) --- */
    .clinic-tour-section {
        margin-top: 60px;
        padding-bottom: 60px;
    }

    .clinic-tour-container {
        padding: 0 16px !important;
        gap: 32px !important;
    }

    .clinic-tour-en-title {
        font-size: 32px !important;
    }

    .clinic-tour-jp-subtitle {
        font-size: 16px !important;
    }

    .clinic-tour-lead {
        font-size: 14px !important;
    }

    .clinic-tour-gallery {
        gap: 12px !important;
    }

    .clinic-tour-gallery-left {
        gap: 12px 10px !important;
    }

    .tour-item-large,
    .tour-item-square-1,
    .tour-item-square-2,
    .tour-item-large-2 {
        width: 100% !important;
        aspect-ratio: 343 / 200 !important;
    }

    .tour-item-vertical {
        width: 100% !important;
        aspect-ratio: 343 / 200 !important;
    }

    .clinic-tour-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .clinic-tour-btn span {
        font-size: 16px !important;
    }

    /* Responsive adjustments for Doctors (590px) */
    .doctors-section {
        margin-top: 60px !important;
    }

    .doctors-container {
        padding: 0 16px !important;
    }

    .doctors-card {
        padding: 40px 20px !important;
        border-radius: 15px !important;
    }

    .doctors-content {
        gap: 32px !important;
    }

    .doctors-text-block {
        gap: 24px !important;
    }

    .doctors-en-title {
        font-size: 32px !important;
    }

    .doctors-jp-subtitle {
        font-size: 16px !important;
    }

    .doctors-body p {
        font-size: 14px !important;
    }

    .doctors-btn-wrapper {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        padding-left: 0 !important;
        box-sizing: border-box !important;
    }

    .doctors-btn {
        width: 100% !important;
        max-width: 320px !important;
        height: 52px !important;
    }

    .doctors-btn span {
        font-size: 16px !important;
    }

    .doctors-images-block {
        flex-direction: column !important;
        gap: 16px !important;
    }

    .doctors-img-wrapper {
        width: 100% !important;
        aspect-ratio: 444 / 601 !important;
    }

    /* 背景曲線02 (590px) */
    .doctors-decor-curve,
    .clinic-tour-decor-curve {
        display: none !important;
    }

    /* --- Symptom Search Section (590px) --- */
    .symptom-section {
        padding: 40px 16px !important;
    }

    .symptom-bg-wrapper {
        border-radius: 30px !important;
    }

    .symptom-inner-card {
        border-radius: 30px !important;
        padding: 40px 20px !important;
    }

    .symptom-content {
        gap: 32px !important;
    }

    .symptom-heading {
        gap: 12px !important;
    }

    .symptom-en-title {
        font-size: 28px !important;
    }

    .symptom-jp-subtitle {
        font-size: 14px !important;
        margin-top: -6px !important;
    }

    .symptom-grid {
        gap: 12px !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    .symptom-item {
        width: 100% !important;
        height: 80px !important;
        gap: 16px !important;
        border-radius: 12px !important;
        padding: 0 16px !important;
    }

    .symptom-icon-wrapper {
        width: 50px !important;
        height: 45px !important;
    }

    .symptom-icon-pain {
        width: 30px !important;
        height: 30px !important;
    }

    .symptom-icon-gum {
        width: 32px !important;
        height: 29px !important;
    }

    .symptom-icon-ortho {
        width: 36px !important;
        height: 26px !important;
    }

    .symptom-icon-whitening {
        width: 33px !important;
        height: 29px !important;
    }

    .symptom-icon-denture {
        width: 48px !important;
        height: 24px !important;
    }

    .symptom-text {
        font-size: 14px !important;
        letter-spacing: 0.7px !important;
    }

    .symptom-btn {
        width: 240px !important;
        height: 44px !important;
        border-radius: 22px !important;
        gap: 10px !important;
        font-size: 14px !important;
    }

    .symptom-btn span {
        font-size: 14px !important;
    }

    .symptom-btn-arrow {
        width: 16px !important;
        height: 16px !important;
    }

    /* --- Clinic Hours & Access Section (590px) --- */
    .access-section {
        padding: 40px 16px 50px 16px !important;
        border-radius: 0 0 25px 25px !important;
        margin-bottom: -25px !important;
    }

    .access-container {
        width: 100% !important;
    }

    .access-heading {
        gap: 8px !important;
        margin-bottom: 28px !important;
    }

    .access-en-title {
        font-size: 28px !important;
    }

    .access-jp-subtitle {
        font-size: 14px !important;
        margin-top: 0 !important;
    }

    .access-top-block {
        gap: 32px !important;
        margin-bottom: 40px !important;
    }

    .access-photos {
        gap: 8px !important;
    }

    .access-main-photo {
        border-radius: 12px !important;
    }

    .access-sub-photos {
        gap: 8px !important;
    }

    .access-sub-photo {
        width: calc(50% - 4px) !important;
        border-radius: 10px !important;
    }

    .access-schedule {
        gap: 32px !important;
    }

    .access-table-header-wrap {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    .access-table-attention.sp-only {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        padding: 3px 8px !important;
        background-color: #f0fbf7 !important;
        border: 1px solid rgba(47, 170, 135, 0.35) !important;
        border-radius: 12px !important;
        color: #2faa87 !important;
        font-size: 10px !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        letter-spacing: 0.2px !important;
        white-space: nowrap !important;
        box-shadow: 0 1px 4px rgba(47, 170, 135, 0.08) !important;
    }

    .access-table-attention-arrow {
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        color: #2faa87 !important;
    }

    .access-table-title {
        margin-bottom: 0 !important;
    }

    .access-bar-icon {
        width: 5px !important;
        height: 22px !important;
        border-radius: 6px !important;
    }

    .access-table-title h3 {
        font-size: 16px !important;
    }

    .access-table-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 6px !important;
        box-sizing: border-box !important;
    }

    .access-table {
        width: 100% !important;
        min-width: 520px !important;
        border-collapse: collapse !important;
    }

    .access-table th,
    .access-table td {
        height: 42px !important;
        box-sizing: border-box !important;
    }

    .access-table th.time-col,
    .access-table td.time-col {
        width: 105px !important;
        min-width: 105px !important;
        font-size: 12px !important;
        padding: 0 4px !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    .access-table th:not(.time-col) {
        width: 51px !important;
        min-width: 48px !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        text-align: center !important;
        border-bottom: 1.5px solid #2faa87 !important;
    }

    .access-table td:not(.time-col) {
        font-size: 14px !important;
        text-align: center !important;
        border-bottom: 1px solid #2faa87 !important;
    }

    .access-table .symbol-circle,
    .access-table .symbol-dash {
        font-size: 14px !important;
        line-height: 1 !important;
    }

    .access-table .symbol-star {
        width: 14px !important;
        height: 14px !important;
        margin: 0 auto !important;
    }

    .access-table .sat-wrapper,
    .access-table .sun-wrapper {
        gap: 2px !important;
    }

    .access-table .sat-note {
        font-size: 10px !important;
        line-height: 1.2 !important;
        letter-spacing: 0 !important;
        white-space: nowrap !important;
    }

    .access-table .sun-note {
        font-size: 10px !important;
        line-height: 1.2 !important;
        letter-spacing: 0 !important;
        white-space: nowrap !important;
    }

    .access-table-notes {
        gap: 8px !important;
        margin-top: 14px !important;
    }

    .access-table-notes .note-item {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .access-bottom-block {
        gap: 32px !important;
        margin-bottom: 40px !important;
    }

    .access-info {
        width: 100% !important;
        max-width: 100% !important;
        align-items: flex-start !important;
        gap: 24px !important;
    }

    .access-logo {
        align-items: flex-start !important;
        gap: 12px !important;
    }

    .access-logo .logo-mark {
        width: 35px !important;
        height: 46px !important;
    }

    .access-logo .logo-text-en {
        align-items: flex-start !important;
        text-align: left !important;
    }

    .access-info-list {
        grid-template-columns: 1fr !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        width: 100% !important;
    }

    .access-info-item {
        align-items: flex-start !important;
        text-align: left !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .access-info-item .info-title {
        justify-content: flex-start !important;
        gap: 8px !important;
    }

    .access-bar-icon-small {
        width: 4px !important;
        height: 20px !important;
        border-radius: 5px !important;
    }

    .access-info .logo-text-main {
        font-size: 15px !important;
    }

    .access-info .logo-text-sub {
        font-size: 10px !important;
    }

    .access-info-item .info-title h4 {
        font-size: 15px !important;
    }

    .access-info-item .info-value {
        font-size: 14px !important;
        line-height: 1.6 !important;
    }

    .google-map-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        padding: 6px 14px !important;
        border-radius: 50px !important;
    }

    .google-map-btn img {
        width: 14.4px !important;
        height: 14.4px !important;
    }

    .google-map-btn span {
        font-size: 13px !important;
        letter-spacing: 0.65px !important;
    }

    .access-map {
        width: 100% !important;
        height: 280px !important;
        border-radius: 12px !important;
    }

    .access-btn {
        width: 240px !important;
        height: 44px !important;
        border-radius: 22px !important;
        font-size: 14px !important;
        gap: 10px !important;
    }

    .access-btn span {
        font-size: 14px !important;
    }

    .access-btn-arrow {
        width: 16px !important;
        height: 16px !important;
    }

    /* Footer mobile styles */
    .footer-slider-section {
        height: 180px;
    }

    .footer-slider-container {
        top: 80px;
    }

    .footer-slider-item {
        width: 180px;
        height: 180px;
        margin-right: 16px;
        border-radius: 12px;
    }

    @keyframes footerScroll {
        0% {
            transform: translateX(0);
        }

        100% {
            transform: translateX(-1372px);
        }
    }

    .footer-main-content {
        padding-top: 300px;
        padding-bottom: 40px;
        gap: 60px;
    }

    .footer-container {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 48px;
        padding: 0 16px;
        width: 100%;
        max-width: 375px;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
        text-align: center;
    }

    .footer-left-block {
        width: 100%;
        max-width: 343px;
        margin-left: auto;
        margin-right: auto;
        gap: 24px;
        align-items: center;
        text-align: center;
    }

    .footer-logo {
        align-items: center;
        text-align: center;
    }

    .footer-logo .logo-mark {
        width: min(283px, 82.507vw);
        height: auto;
        margin-left: auto;
        margin-right: auto;
    }

    .footer-logo .logo-text-main {
        font-size: 15px;
    }

    .footer-logo .logo-text-sub {
        font-size: 10px;
    }

    .footer-instagram-link {
        margin-left: auto;
        margin-right: auto;
    }

    .footer-address {
        align-items: center;
        text-align: center;
    }

    .footer-address .address-text {
        font-size: 15px;
        text-align: center;
    }

    .footer-google-map-btn {
        margin-left: auto;
        margin-right: auto;
    }

    .footer-cta-buttons {
        width: 100%;
        max-width: 343px;
        margin-left: auto;
        margin-right: auto;
        align-items: center;
    }

    .footer-cta-btn {
        height: 48px;
        gap: 12px;
        width: 100%;
    }

    .footer-cta-btn.btn-tel img {
        width: 22px;
        height: 22px;
    }

    .footer-cta-btn.btn-calendar img,
    .footer-cta-btn.btn-line img {
        width: 24px;
        height: 24px;
    }

    .footer-cta-btn.btn-tel span {
        font-size: 16px;
    }

    .footer-cta-btn.btn-calendar span,
    .footer-cta-btn.btn-line span {
        font-size: 15px;
    }

    .footer-right-block {
        width: 100%;
        max-width: 343px;
        margin-left: auto;
        margin-right: auto;
        gap: 16px;
        justify-content: space-between;
    }

    .footer-nav-col {
        width: calc(50% - 8px);
    }

    .footer-nav-list {
        gap: 20px;
    }

    .footer-nav-list li a {
        font-size: 14px;
        gap: 6px;
        white-space: normal;
        word-break: break-all;
    }

    .footer-nav-list li a .dot {
        font-size: 8px;
    }

    .footer-copyright {
        width: 100%;
        display: flex;
        justify-content: center;
        text-align: center;
    }

    .footer-copyright p {
        font-size: 12px;
        white-space: normal;
        line-height: 1.5;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Readability-first tablet and phone refinements */
@media (max-width: 1024px) {
    body {
        line-height: 1.7;
    }

    .about-container,
    .news-container,
    .reason-container,
    .first-time-container,
    .medical-container,
    .dental-dock-container,
    .ortho-consult-container,
    .adult-ortho-container,
    .child-ortho-container,
    .implant-container,
    .doctors-container,
    .clinic-tour-container,
    .access-container {
        max-width: 760px;
        margin-left: auto;
        margin-right: auto;
    }

    .about-description,
    .reason-lead,
    .reason-card-desc,
    .first-time-desc-block,
    .dental-dock-body,
    .ortho-consult-body,
    .adult-ortho-body,
    .child-ortho-body,
    .implant-body,
    .doctors-body,
    .clinic-tour-lead,
    .access-info-list {
        max-width: 640px;
    }

    .about-description p,
    .reason-lead,
    .reason-card-desc p,
    .first-time-desc-block p,
    .dental-dock-intro,
    .dental-dock-explanation,
    .ortho-consult-intro,
    .ortho-consult-sub-desc,
    .adult-ortho-intro,
    .adult-ortho-explanation,
    .adult-ortho-explanation-end,
    .child-ortho-intro,
    .child-ortho-explanation,
    .implant-intro,
    .implant-explanation,
    .doctors-body p,
    .clinic-tour-lead,
    .access-info-item .info-value {
        line-height: 1.75;
    }

    .first-time-flow {
        gap: 28px;
    }

    .first-time-flow-steps {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 16px;
        align-items: stretch;
    }

    .first-time-step-arrow {
        display: none;
    }

    .first-time-step-card {
        width: 100%;
        max-width: none;
        min-height: 132px;
        height: auto;
        padding: 52px 10px 20px;
    }

    .first-time-step-card p {
        line-height: 1.45;
    }

    .medical-grid {
        max-width: 680px;
        margin-left: auto;
        margin-right: auto;
    }

    .access-table-wrapper {
        padding-bottom: 6px;
    }

    .access-table-notes {
        max-width: 631px;
    }
}

@media (max-width: 767px) {

    .about-container,
    .news-container,
    .reason-container,
    .first-time-container,
    .medical-container,
    .dental-dock-container,
    .ortho-consult-container,
    .adult-ortho-container,
    .child-ortho-container,
    .implant-container,
    .doctors-container,
    .clinic-tour-container,
    .access-container {
        max-width: 430px;
    }

    .about-description,
    .reason-lead,
    .reason-card-desc,
    .first-time-desc-block,
    .dental-dock-body,
    .ortho-consult-body,
    .adult-ortho-body,
    .child-ortho-body,
    .implant-body,
    .doctors-body {
        max-width: none;
    }

    .first-time-flow-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .first-time-step-card {
        min-height: 116px;
        padding: 46px 8px 16px;
    }

    .first-time-step-card:last-child {
        grid-column: 1 / -1;
        width: calc(50% - 8px);
        justify-self: center;
    }

    .medical-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .footer-right-block {
        align-items: flex-start;
    }
}

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

    .about-container,
    .news-container,
    .reason-container,
    .first-time-container,
    .medical-container,
    .dental-dock-container,
    .ortho-consult-container,
    .adult-ortho-container,
    .child-ortho-container,
    .implant-container,
    .doctors-container,
    .clinic-tour-container,
    .symptom-inner-card,
    .symptom-content,
    .access-container,
    .footer-container {
        width: calc(100% - 48px) !important;
        max-width: 640px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .footer-left-block {
        width: 100% !important;
        max-width: 360px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        align-items: center !important;
        text-align: center !important;
    }

    .footer-right-block {
        width: 100% !important;
        max-width: 520px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
    }
}

@media (max-width: 590px) {

    html,
    body {
        overflow-x: hidden;
    }

    .main-visual {
        padding-top: 150px !important;
        padding-bottom: 44px;
    }

    .admin-bar .main-visual {
        padding-top: calc(150px + 46px) !important;
    }

    .about-us,
    .news-section,
    .reason-section,
    .first-time-section,
    .medical-section,
    .dental-dock-section,
    .ortho-consult-section,
    .adult-ortho-section,
    .child-ortho-section,
    .implant-section,
    .doctors-section,
    .clinic-tour-section {
        margin-top: 52px !important;
    }

    .about-container,
    .news-container,
    .reason-container,
    .first-time-container,
    .medical-container,
    .dental-dock-container,
    .ortho-consult-container,
    .adult-ortho-container,
    .child-ortho-container,
    .implant-container,
    .doctors-container,
    .clinic-tour-container,
    .access-container {
        width: 100% !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }

    .about-en-title,
    .news-en-title,
    .reason-en-title,
    .first-time-en-title,
    .medical-en-title,
    .dental-dock-en-title,
    .ortho-consult-en-title,
    .adult-ortho-en-title,
    .child-ortho-en-title,
    .implant-en-title,
    .doctors-en-title,
    .clinic-tour-en-title {
        font-size: 34px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
    }

    .symptom-en-title,
    .access-en-title {
        font-size: 30px !important;
        line-height: 1.18 !important;
        white-space: normal !important;
        text-align: center;
    }

    .about-jp-subtitle,
    .news-jp-subtitle,
    .reason-jp-subtitle,
    .first-time-jp-subtitle,
    .medical-jp-subtitle,
    .dental-dock-jp-subtitle,
    .ortho-consult-jp-subtitle,
    .adult-ortho-jp-subtitle,
    .child-ortho-jp-subtitle,
    .implant-jp-subtitle,
    .doctors-jp-subtitle,
    .clinic-tour-jp-subtitle,
    .symptom-jp-subtitle,
    .access-jp-subtitle {
        font-size: 15px !important;
        line-height: 1.55 !important;
    }

    .about-description,
    .reason-lead,
    .reason-card-desc,
    .first-time-desc-block p,
    .dental-dock-intro,
    .dental-dock-explanation,
    .dental-dock-suggestion-title,
    .ortho-consult-intro,
    .ortho-consult-sub-desc,
    .adult-ortho-intro,
    .adult-ortho-explanation,
    .adult-ortho-explanation-end,
    .child-ortho-intro,
    .child-ortho-explanation,
    .implant-intro,
    .implant-explanation,
    .doctors-body p,
    .clinic-tour-lead,
    .access-info-item .info-value,
    .access-table-notes .note-item {
        font-size: 15px !important;
        line-height: 1.75 !important;
        letter-spacing: 0.04em !important;
    }

    .reason-lead,
    .clinic-tour-lead,
    .medical-lead,
    .medical-bottom-lead {
        text-align: left !important;
    }

    .reason-card-title,
    .first-time-flow-title,
    .access-table-title h3 {
        font-size: 18px !important;
        line-height: 1.5 !important;
    }

    .medical-card-title {
        font-size: 14px !important;
        line-height: 1.4 !important;
        letter-spacing: 0.02em !important;
    }

    .reason-bullets li,
    .first-time-bullets li,
    .dental-dock-bullets li,
    .dental-dock-suggestion-bullets li,
    .ortho-consult-bullets li,
    .adult-ortho-bullets li,
    .child-ortho-bullets li,
    .implant-bullets li {
        font-size: 15px !important;
        line-height: 1.65 !important;
        padding-left: 18px !important;
    }

    .news-archive-btn,
    .first-time-btn,
    .medical-btn,
    .dental-dock-btn,
    .ortho-consult-btn,
    .adult-ortho-btn,
    .child-ortho-btn,
    .implant-btn,
    .doctors-btn,
    .clinic-tour-btn,
    .symptom-btn,
    .access-btn {
        width: 100% !important;
        max-width: 320px !important;
        min-height: 48px !important;
    }

    .news-archive-btn span,
    .first-time-btn span,
    .medical-btn span,
    .dental-dock-btn span,
    .ortho-consult-btn span,
    .adult-ortho-btn span,
    .child-ortho-btn span,
    .implant-btn span,
    .doctors-btn span,
    .clinic-tour-btn span,
    .symptom-btn span,
    .access-btn span {
        font-size: 15px !important;
        letter-spacing: 0.04em !important;
    }

    .medical-card {
        min-height: 156px;
    }

    .symptom-item {
        min-height: 76px !important;
        height: auto !important;
    }

    .clinic-tour-decor-curve {
        display: none !important;
    }

    .footer-nav-list li a {
        line-height: 1.55;
        word-break: keep-all;
    }
}

/* Keep treatment flow directional while preserving readability */
@media (min-width: 768px) and (max-width: 1024px) {
    .first-time-flow-steps {
        display: grid;
        grid-template-columns: minmax(96px, 1fr) 20px minmax(96px, 1fr) 20px minmax(96px, 1fr) 20px minmax(96px, 1fr) 20px minmax(96px, 1fr);
        gap: 10px;
        align-items: center;
    }

    .first-time-step-arrow {
        display: flex;
        width: 20px;
        height: 29px;
        margin: 0;
        align-self: center;
        justify-self: center;
    }

    .first-time-step-arrow-inner {
        transform: rotate(90deg);
    }

    .first-time-step-card {
        min-height: 128px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .first-time-step-card p {
        font-size: 15px !important;
    }
}

@media (max-width: 767px) {
    .first-time-flow-steps {
        display: flex;
        flex-direction: column;
        gap: 0;
        align-items: center;
    }

    .first-time-step-arrow {
        display: flex;
        width: 20px;
        height: 29px;
        margin: 14px 0 28px;
    }

    .first-time-step-arrow-inner {
        transform: rotate(180deg);
    }

    .first-time-step-card {
        width: 100%;
        max-width: 300px;
        min-height: 116px;
    }

    .first-time-step-card:last-child {
        width: 100%;
        max-width: 300px;
    }
}

.about-en-title,
.news-en-title,
.reason-en-title,
.first-time-en-title,
.medical-en-title,
.dental-dock-en-title,
.ortho-consult-en-title,
.adult-ortho-en-title,
.child-ortho-en-title,
.implant-en-title,
.doctors-en-title,
.clinic-tour-en-title,
.symptom-en-title,
.access-en-title {
    line-height: 1 !important;
}

/* トップページのボタン: 1800px 以下の vw 値がタブレットに残って矢印が小さくなるのを防ぐ */
@media (max-width: 1024px) {

    .news-archive-btn,
    .first-time-btn,
    .medical-btn,
    .dental-dock-btn,
    .ortho-consult-btn,
    .adult-ortho-btn,
    .child-ortho-btn,
    .implant-btn,
    .doctors-btn,
    .clinic-tour-btn {
        gap: 12px;
    }

    .first-time-btn-arrow,
    .medical-btn-arrow,
    .dental-dock-btn-arrow,
    .ortho-consult-btn-arrow,
    .adult-ortho-btn-arrow,
    .child-ortho-btn-arrow,
    .implant-btn-arrow,
    .doctors-btn-arrow,
    .clinic-tour-btn-arrow,
    .symptom-btn-arrow,
    .access-btn-arrow {
        width: 22px !important;
        height: 22px !important;
        flex: 0 0 22px !important;
    }

    .first-time-btn-arrow img,
    .medical-btn-arrow img,
    .dental-dock-btn-arrow img,
    .ortho-consult-btn-arrow img,
    .adult-ortho-btn-arrow img,
    .child-ortho-btn-arrow img,
    .implant-btn-arrow img,
    .doctors-btn-arrow img,
    .clinic-tour-btn-arrow img,
    .symptom-btn-arrow img,
    .access-btn-arrow img {
        width: 22px !important;
        height: 22px !important;
    }

    .news-btn-arrow-circle {
        width: 22px;
        height: 22px;
        flex: 0 0 22px;
    }

    .doctors-btn-wrapper {
        width: 100%;
    }
}

@media (max-width: 590px) {
    .first-time-btn-wrapper {
        display: flex;
        justify-content: center;
    }
}

@media (max-width: 590px) {

    .first-time-btn-arrow,
    .medical-btn-arrow,
    .dental-dock-btn-arrow,
    .ortho-consult-btn-arrow,
    .adult-ortho-btn-arrow,
    .child-ortho-btn-arrow,
    .implant-btn-arrow,
    .doctors-btn-arrow,
    .clinic-tour-btn-arrow,
    .symptom-btn-arrow,
    .access-btn-arrow {
        width: 22px !important;
        height: 22px !important;
        flex: 0 0 22px !important;
    }

    .first-time-btn-arrow img,
    .medical-btn-arrow img,
    .dental-dock-btn-arrow img,
    .ortho-consult-btn-arrow img,
    .adult-ortho-btn-arrow img,
    .child-ortho-btn-arrow img,
    .implant-btn-arrow img,
    .doctors-btn-arrow img,
    .clinic-tour-btn-arrow img,
    .symptom-btn-arrow img,
    .access-btn-arrow img {
        width: 22px !important;
        height: 22px !important;
    }

    .news-btn-arrow-circle,
    .news-list-arrow-circle {
        width: 30px !important;
        height: 30px !important;
        flex: 0 0 30px !important;
    }

    .news-btn-arrow-icon,
    .news-list-arrow-icon {
        width: 14px !important;
        height: 14px !important;
    }

    .medical-card-arrow {
        width: 30px !important;
        height: 30px !important;
    }

    .medical-card-arrow img {
        width: 18px !important;
        height: 18px !important;
    }
}

/* --- Sub-page Footer Overrides --- */
.footer-main-content.sub-footer-content {
    padding-top: 180px;
}

@media (max-width: 1800px) {

    .footer-main-content.sub-footer-content {
        padding-top: max(100px, 9.375vw);
    }
}

@media (max-width: 1024px) {
    .footer-main-content.sub-footer-content {
        padding-top: 100px;
    }
}

@media (max-width: 590px) {
    .footer-main-content.sub-footer-content {
        padding-top: 60px;
    }
}

/* =========================================
   BOTTOM CTA RESERVATION BANNER
   ========================================= */
.common-reservation-section {
    width: 100%;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    height: 899px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.common-reservation-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.common-reservation-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.common-reservation-bg-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.1);
    z-index: 2;
}

/* Transparent Content Card Overlay */
.common-reservation-card {
    position: relative;
    z-index: 3;
    background-color: rgba(255, 255, 255, 0.7);
    border-radius: 100px;
    width: 1520px;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 94px 120px;
}

.common-reservation-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    margin-bottom: 64px;
    text-align: center;
}

.common-reservation-en-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.common-reservation-leaf {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: inline-block;
    flex-shrink: 0;
}

.common-reservation-en-title {
    font-family: 'Cormorant Infant', serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1.3;
    color: #63574d;
    letter-spacing: 1.68px;
    margin: 0;
}

.common-reservation-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    color: #2faa87;
    letter-spacing: 1px;
    margin: 0;
}

.common-reservation-intro {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    line-height: 1.6;
    color: #575757;
    letter-spacing: 0.5px;
    text-align: center;
    margin: 0 0 64px 0;
}

.common-reservation-buttons-row {
    display: flex;
    gap: 64px;
    justify-content: center;
    width: 100%;
}

.common-reservation-column {
    background-color: #ffffff;
    border-radius: 30px;
    width: 500px;
    height: 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    box-sizing: border-box;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.033);
}

.common-reservation-col-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.6;
    letter-spacing: 1px;
    margin: 0;
}

.common-reservation-col-title.color-green {
    color: #2faa87;
}

.common-reservation-col-title.color-brown {
    color: #63574d;
}

.common-reservation-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    height: 55px;
    border-radius: 50px;
    padding: 12px 40px 12px 32px;
    box-sizing: border-box;
    text-decoration: none;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
    width: 251px;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.common-reservation-cta:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

.common-reservation-cta.btn-green {
    background-color: #2faa87;
}

.common-reservation-cta.btn-brown {
    background-color: #63574d;
}

.common-reservation-cta-icon {
    width: 28px;
    height: 28px;
    object-fit: contain;
    display: block;
}

.common-reservation-cta-icon.btn-icon-calendar {
    width: 32px;
    height: 32px;
}

.common-reservation-cta-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 20px;
    color: #ffffff;
    letter-spacing: 0.5px;
    line-height: 1.6;
    white-space: nowrap;
}

.common-reservation-cta-text.small-text {
    font-size: 18px;
    letter-spacing: 0.5px;
}

@media (max-width: 1800px) {

    .common-reservation-section {
        width: 100%;
        height: 46.823vw;
    }

    .common-reservation-card {
        width: 79.167vw;
        height: auto;
        border-radius: 5.208vw;
        padding: 4.896vw 6.25vw;
    }

    .common-reservation-header {
        gap: 1.25vw;
        margin-bottom: 3.333vw;
    }

    .common-reservation-en-row {
        gap: 0.417vw;
    }

    .common-reservation-leaf {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-top-right-radius: 0.104vw;
        border-bottom-left-radius: 0.104vw;
        border-bottom-right-radius: 1.563vw;
    }

    .common-reservation-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .common-reservation-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
    }

    .common-reservation-intro {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
        margin-bottom: 3.333vw;
    }

    .common-reservation-buttons-row {
        gap: 3.333vw;
    }

    .common-reservation-column {
        width: 26.042vw;
        height: 8.333vw;
        border-radius: 1.563vw;
        gap: 1.25vw;
    }

    .common-reservation-col-title {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
    }

    .common-reservation-cta {
        width: 13.073vw;
        height: 2.865vw;
        border-radius: 2.6vw;
        gap: 0.833vw;
        padding: 0.625vw 2.083vw 0.625vw 1.667vw;
    }

    .common-reservation-cta-icon {
        width: 1.458vw;
        height: 1.458vw;
    }

    .common-reservation-cta-icon.btn-icon-calendar {
        width: 1.667vw;
        height: 1.667vw;
    }

    .common-reservation-cta-text {
        font-size: 1.042vw;
        letter-spacing: 0.026vw;
    }

    .common-reservation-cta-text.small-text {
        font-size: 0.938vw;
        letter-spacing: 0.026vw;
    }
}

@media (max-width: 1024px) {
    /* 1800px 以下を完全比例（vw）にしたため、タブレット以下は従来の値を維持する */
    .common-reservation-leaf {
        width: 20px;
        height: 20px;
        border-top-left-radius: 30px;
        border-top-right-radius: 2px;
        border-bottom-left-radius: 2px;
        border-bottom-right-radius: 30px;
    }

    .common-reservation-en-title {
        font-size: calc(21.68px + 1.788vw);
    }

    .common-reservation-jp-subtitle {
        font-size: calc(10.35px + 0.503vw);
    }

    .common-reservation-intro {
        font-size: calc(9.42px + 0.447vw);
    }

    .common-reservation-col-title {
        font-size: calc(10.35px + 0.503vw);
        letter-spacing: 1px;
    }

    .common-reservation-cta-text {
        font-size: 16px;
        letter-spacing: 0.5px;
    }

    .common-reservation-cta-text.small-text {
        font-size: 15px;
        letter-spacing: 0.5px;
    }

    .common-reservation-section {
        width: 100%;
        height: auto;
        padding: 40px 0;
    }

    .common-reservation-card {
        width: calc(100% - 80px);
        height: auto;
        padding: 40px 20px;
        border-radius: 40px;
    }

    .common-reservation-buttons-row {
        flex-direction: column;
        align-items: center;
        gap: 24px;
    }

    .common-reservation-column {
        width: 100%;
        max-width: 450px;
        height: 140px;
        border-radius: 20px;
        padding: 20px;
    }

    .common-reservation-cta {
        width: 220px;
        height: 50px;
        border-radius: 25px;
        padding: 0 20px 0 16px;
        gap: 10px;
    }

    .common-reservation-cta-icon,
    .common-reservation-cta-icon.btn-icon-calendar {
        width: 22px;
        height: 22px;
    }
}

@media (max-width: 768px) {
    .common-reservation-card {
        width: calc(100% - 32px);
        padding: 30px 16px;
        border-radius: 20px;
        height: auto;
    }

    .common-reservation-en-title {
        font-size: 28px;
    }

    .common-reservation-jp-subtitle {
        font-size: 14px;
    }

    .common-reservation-header {
        margin-bottom: 24px;
        gap: 4px;
    }

    .common-reservation-intro {
        font-size: 14px;
        line-height: 1.7;
        margin-bottom: 24px;
        text-align: left;
    }

    .common-reservation-buttons-row {
        gap: 16px;
    }

    .common-reservation-column {
        width: 100%;
        max-width: 320px;
        height: auto;
        padding: 16px 20px;
        border-radius: 16px;
        gap: 12px;
    }

    .common-reservation-col-title {
        font-size: 15px;
    }

    .common-reservation-cta {
        width: 100%;
        max-width: 260px;
        height: 48px;
        padding: 0 16px;
        gap: 10px;
        border-radius: 24px;
    }

    .common-reservation-cta-icon {
        width: 22px;
        height: 22px;
    }

    .common-reservation-cta-icon.btn-icon-calendar {
        width: 22px;
        height: 22px;
    }

    .common-reservation-cta-text {
        font-size: 16px;
        letter-spacing: 0.5px;
    }

    .common-reservation-cta-text.small-text {
        font-size: 15px;
    }
}

/* ==========================================================================
   Sub Page MV (Unified)
   ========================================================================== */
.sub-mv {
    width: 100%;
    margin-top: 170px;
    padding: 0;
}

.sub-mv-container {
    width: 1520px;
    margin: 0 auto;
    position: relative;
}

.sub-mv-image-wrapper {
    position: relative;
    width: 100%;
    height: 400px;
    border-radius: 30px;
    overflow: hidden;
}

.sub-mv-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.sub-mv-heading-card {
    position: absolute;
    left: 120px;
    bottom: 0;
    background-color: #f1f1f1;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
    padding: 24px 64px 24px 48px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    box-sizing: border-box;
    z-index: 2;
}

.sub-mv-heading-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sub-mv-leaf-decor {
    width: 20px;
    height: 20px;
    background-color: #2faa87;
    border-top-left-radius: 30px;
    border-top-right-radius: 2px;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 30px;
    display: inline-block;
}

.sub-mv-en-title {
    font-family: 'Cormorant Infant', serif;
    font-size: 56px;
    font-weight: 400;
    color: #63574d;
    line-height: 1.3;
    letter-spacing: 1.68px;
    margin: 0;
}

.sub-mv-jp-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: #2faa87;
    line-height: 1.6;
    letter-spacing: 1px;
    margin: 0;
    padding-left: 28px;
}

@media (max-width: 1800px) {
    .sub-mv {
        margin-top: 8.854vw;
    }

    .sub-mv-container {
        width: 79.167vw;
    }

    .sub-mv-image-wrapper {
        height: 20.833vw;
        border-radius: 1.563vw;
    }

    .sub-mv-heading-card {
        left: 6.25vw;
        border-top-left-radius: 1.563vw;
        border-top-right-radius: 1.563vw;
        padding: 1.25vw 3.333vw 1.25vw 2.5vw;
        gap: 0.781vw;
    }

    .sub-mv-heading-title-row {
        gap: 0.417vw;
    }

    .sub-mv-leaf-decor {
        width: 1.042vw;
        height: 1.042vw;
        border-top-left-radius: 1.563vw;
        border-top-right-radius: 0.104vw;
        border-bottom-left-radius: 0.104vw;
        border-bottom-right-radius: 1.563vw;
    }

    .sub-mv-en-title {
        font-size: 2.917vw;
        letter-spacing: 0.088vw;
    }

    .sub-mv-jp-subtitle {
        font-size: 1.042vw;
        letter-spacing: 0.052vw;
        padding-left: 1.458vw;
    }
}

@media (max-width: 1024px) {
    .sub-mv {
        margin-top: 115px;
    }

    .sub-mv-container {
        width: 100%;
        padding: 0;
    }

    .sub-mv-image-wrapper {
        height: 250px;
        border-radius: 0;
    }

    .sub-mv-heading-card {
        left: 40px;
        min-width: 0;
        max-width: calc(100% - 80px);
        box-sizing: border-box;
        padding: 16px 36px 16px 24px;
        border-top-left-radius: 20px;
        border-top-right-radius: 20px;
        gap: 8px;
    }

    .sub-mv-en-title {
        font-size: 36px;
    }

    .sub-mv-jp-subtitle {
        font-size: 16px;
        padding-left: 20px;
    }

    .sub-mv-leaf-decor {
        width: 16px;
        height: 16px;
        border-top-left-radius: 16px;
        border-bottom-right-radius: 16px;
        border-top-right-radius: 2px;
        border-bottom-left-radius: 2px;
    }
}

@media (max-width: 768px) {
    .sub-mv {
        margin-top: 175px !important;
    }

    .admin-bar .sub-mv {
        margin-top: calc(175px + 46px) !important;
    }
}

@media (max-width: 590px) {
    .sub-mv {
        margin-top: 150px !important;
    }

    .admin-bar .sub-mv {
        margin-top: calc(150px + 46px) !important;
    }

    .sub-mv-image-wrapper {
        height: 180px;
    }

    .sub-mv-heading-card {
        left: 16px;
        min-width: 0;
        max-width: calc(100% - 32px);
        box-sizing: border-box;
        padding: 12px 24px 12px 16px;
        border-top-left-radius: 15px;
        border-top-right-radius: 15px;
        gap: 4px;
    }

    .sub-mv-en-title {
        font-size: 28px;
    }

    .sub-mv-jp-subtitle {
        font-size: 14px;
        padding-left: 16px;
    }

    .sub-mv-leaf-decor {
        width: 18px;
        height: 18px;
        border-top-left-radius: 20px;
        border-bottom-right-radius: 20px;
        border-top-right-radius: 2px;
        border-bottom-left-radius: 2px;
    }

    /* SP見出しリーフアイコンの統一サイズ (18px) */
    .about-leaf-icon,
    .news-leaf-icon,
    .reason-leaf-icon,
    .first-time-leaf-icon,
    .medical-leaf-icon,
    .dental-dock-leaf-icon,
    .ortho-consult-leaf-icon,
    .adult-ortho-leaf-icon,
    .child-ortho-leaf-icon,
    .implant-leaf-icon,
    .doctors-leaf-icon,
    .clinic-tour-leaf-icon,
    .symptom-leaf-icon,
    .access-leaf-icon,
    .sub-mv-leaf-decor {
        width: 18px !important;
        height: 18px !important;
        border-radius: 20px 2px 20px 2px !important;
        display: inline-block;
        flex-shrink: 0;
    }
}

/* SP見出しの中央寄せ対応 (SP Section Headings Centering) */
@media (max-width: 768px) {

    .about-heading,
    .news-heading,
    .first-time-heading,
    .dental-dock-heading,
    .ortho-consult-heading,
    .adult-ortho-heading,
    .child-ortho-heading,
    .implant-heading,
    .doctors-heading {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        width: 100% !important;
    }

    .about-title-row,
    .news-title-row,
    .first-time-title-row,
    .dental-dock-title-row,
    .ortho-consult-title-row,
    .adult-ortho-title-row,
    .child-ortho-title-row,
    .implant-title-row,
    .doctors-title-row {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
    }

    .about-jp-subtitle,
    .news-jp-subtitle,
    .first-time-jp-subtitle,
    .dental-dock-jp-subtitle,
    .ortho-consult-jp-subtitle,
    .adult-ortho-jp-subtitle,
    .child-ortho-jp-subtitle,
    .implant-jp-subtitle,
    .doctors-jp-subtitle {
        padding-left: 0 !important;
        text-align: center !important;
        width: 100% !important;
    }

    /* 1800px 以下の vw 指定が SP で極端に小さくならないよう px に戻す */
    .about-heading {
        gap: 8px;
    }

    .about-title-row {
        gap: 8px;
    }

    .news-heading {
        gap: 8px;
    }

    .news-title-row {
        gap: 16px;
    }

    .reason-title-row {
        gap: 8px;
    }

    .reason-bullets {
        gap: 8px;
    }

    .first-time-heading {
        gap: 8px;
    }

    .first-time-title-row {
        gap: 8px;
    }

    .first-time-bullets {
        gap: 8px;
    }

    .first-time-step-card {
        border-radius: 20px;
    }

    .medical-title-row {
        gap: 8px;
    }

    .dental-dock-title-row {
        gap: 8px;
    }

    .dental-dock-btn {
        padding: 16px 17px;
    }

    .ortho-consult-sub-bar {
        border-radius: 10px;
    }

    .ortho-consult-title-row {
        gap: 8px;
    }

    .ortho-consult-btn {
        padding: 16px 17px;
    }

    .adult-ortho-title-row {
        gap: 8px;
    }

    .child-ortho-title-row {
        gap: 8px;
    }

    .implant-title-row {
        gap: 8px;
    }

    .clinic-tour-heading {
        gap: 12px;
    }

    .clinic-tour-title-row {
        gap: 8px;
    }

    .clinic-tour-gallery-item {
        border-radius: 20px;
    }

    .doctors-heading {
        gap: 8px;
    }

    .doctors-title-row {
        gap: 8px;
    }

    .access-title-row {
        gap: 8px;
    }

    .access-table-title {
        gap: 8px;
    }

    .logo-text-sub {
        margin-top: 2px;
    }

    .footer-google-map-btn {
        gap: 6px;
    }

    .common-reservation-en-row {
        gap: 8px;
    }

    .sub-mv-heading-title-row {
        gap: 8px;
    }
}
