/*
Theme Name: 土井医院
Theme URI: https://doi-clinic.jp
Author: Claude Code
Author URI: https://claude.ai
Description: 在宅療養支援診療所 土井医院のオリジナルテーマ
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: doi-clinic
*/

/* カラー設定 */
:root {
    --color-blue: #5D87B7;
    --color-blue-text: #446285;
    --color-pink: #faf2fa;
    --color-pink-text: #e999ab;
    --color-light-blue: #f0f7fa;
    --color-grey: #F8F8F8;
    --color-beige: #FCF9F4;
    --color-brown: #846045;
}

/* リセットとベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Zen Maru Gothic', sans-serif;
    color: #333;
    line-height: 1.6;
}

main {
    padding-top: 100px;
}

/* ユーティリティクラス */
.sp-only {
    display: none !important;
}

.pc-only {
    display: inline;
}

.medical-flow-image-pc.pc-only {
    display: block;
}

.medical-flow-image-sp.sp-only {
    display: none !important;
}

/* ヘッダー */
.header {
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
}

.header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1400px;
    margin: 0 auto;
    padding: 15px 30px;
    gap: 30px;
}

/* ロゴ */
.logo img {
    height: 70px;
    width: auto;
}

/* ヘッダー中央部分 */
.header-center {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    flex: 1;
}

/* ナビゲーション */
.nav-list {
    display: flex;
    list-style: none;
    gap: 35px;
    align-items: center;
}

.nav-list a {
    text-decoration: none;
    color: #333;
    font-size: 15px;
    font-weight: 500;
    transition: color 0.3s;
}

.nav-list a:hover {
    color: var(--color-blue);
}

/* ドロップダウンメニュー */
.nav-list li {
    position: relative;
}

.menu-item-has-children {
    position: relative;
}

.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    min-width: 180px;
    padding: 10px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
    z-index: 1000;
}

.menu-item-has-children:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.sub-menu li {
    list-style: none;
    margin: 0;
}

.sub-menu a {
    display: block;
    padding: 10px 20px;
    color: #333;
    text-decoration: none;
    font-size: 14px;
    transition: background-color 0.3s, color 0.3s;
}

.sub-menu a:hover {
    background-color: var(--color-light-blue);
    color: var(--color-blue);
}

/* 電話番号 */
.phone {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-blue);
    font-size: 20px;
    font-weight: 600;
}

.phone-icon {
    font-size: 24px;
}

.phone-link {
    display: flex;
    align-items: center;
    gap: 8px;
    color: inherit;
    text-decoration: none;
}

.phone-number {
    letter-spacing: 0.05em;
}

/* お問合わせボタン */
.contact-btn {
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 20px 35px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 500;
    transition: background-color 0.3s;
}

.contact-btn:hover {
    background-color: #4a6fa0;
}

.mail-icon {
    font-size: 20px;
}

/* Instagramボタン */
.header-instagram-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 55px;
    height: 55px;
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    color: #fff;
    border-radius: 50%;
    text-decoration: none;
    font-size: 22px;
    flex-shrink: 0;
    transition: opacity 0.3s, transform 0.3s;
}

.header-instagram-btn:hover {
    opacity: 0.82;
    transform: scale(1.07);
}

/* ハンバーガーメニュー（デスクトップでは非表示） */
.hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    z-index: 1002;
}

.hamburger-line {
    display: block;
    width: 25px;
    height: 3px;
    background-color: #333;
    border-radius: 2px;
    transition: transform 0.3s, opacity 0.3s;
}

.hamburger-line:nth-child(1) {
    margin-bottom: 5px;
}

.hamburger-line:nth-child(3) {
    margin-top: 5px;
}

/* ハンバーガーメニュー開いた時のアニメーション */
.hamburger.active .hamburger-line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.hamburger.active .hamburger-line:nth-child(2) {
    opacity: 0;
}

.hamburger.active .hamburger-line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* モバイル用お問い合わせボタン（デスクトップでは非表示） */
.mobile-contact-btn {
    display: none;
}

/* メインビジュアル */
/* メインビジュアル スライダー */
.main-visual-slider {
    width: 100%;
    aspect-ratio: 21 / 9;
    position: relative;
    overflow: hidden;
}

.slider-container {
    width: 100%;
    height: 100%;
    position: relative;
}

.slider-wrapper {
    width: 100%;
    height: 100%;
    position: relative;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    display: flex;
    align-items: flex-start;
}

.slide.active {
    opacity: 1;
    z-index: 1;
}

.slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.1);
    pointer-events: none;
}

.slide-content {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0;
    width: 100%;
}

/* スライダー インジケーター */
.slider-indicators {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 10;
}

.indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid #fff;
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.indicator:hover {
    background-color: rgba(255, 255, 255, 0.5);
}

.indicator.active {
    background-color: #fff;
}

/* メインタイトル */
.main-title {
    font-size: 42px;
    font-weight: 500;
    color: #333;
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 40px rgba(255, 255, 255, 0.3);
}

.title-line {
    display: block;
}

/* 共通コンテナ */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 30px;
}

/* このような方のためセクション */
.for-these-people {
    background-color: #fff;
    padding: 40px 0 80px 0;
    position: relative;
}

.for-these-people::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 400px;
    height: 200px;
    background-color: var(--color-pink);
    border-radius: 0 0 200px 200px;
    z-index: 0;
    pointer-events: none;
}

.for-these-people .container {
    position: relative;
    z-index: 1;
}

.section-title {
    text-align: center;
    font-size: 32px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 100px;
    padding-top: 0;
    line-height: 1.8;
}

.section-title .title-line {
    display: block;
}

/* カードグリッド */
.cards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-bottom: 60px;
}

.card {
    background-color: #fff;
    border: 2px solid var(--color-blue);
    border-radius: 12px;
    padding: 40px 30px;
    text-align: center;
}

.card-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 25px;
    line-height: 1.6;
    min-height: 77px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-icon {
    margin-bottom: 25px;
}

.card-icon img {
    width: 100px;
    height: 100px;
    object-fit: contain;
}

.card-description {
    font-size: 16px;
    color: #666;
    line-height: 1.8;
    margin-bottom: 25px;
}

.card-link {
    display: inline-block;
    background-color: var(--color-light-blue);
    color: var(--color-blue-text);
    text-decoration: none;
    padding: 12px 40px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 700;
    transition: background-color 0.3s, transform 0.3s;
}

.card-link:hover {
    background-color: #d9eef5;
    transform: translateY(-2px);
}

/* セクションCTA */
.section-cta {
    text-align: center;
}

.cta-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 80px;
    border-radius: 50px;
    font-size: 20px;
    font-weight: 500;
    transition: background-color 0.3s, transform 0.3s;
}

.cta-button:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* お知らせセクション */
.news {
    background-color: #fff;
    padding: 80px 0 40px 0;
}

.news-content {
    display: flex;
    gap: 60px;
    align-items: flex-start;
}

.news-header {
    flex-shrink: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.news-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.news-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.news-label::before {
    content: '●';
    margin-right: 8px;
}

.news-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.news-list {
    flex: 1;
}

.news-item {
    display: flex;
    gap: 30px;
    padding: 25px 0;
    position: relative;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

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

.news-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--color-blue);
}

.news-item:first-child {
    padding-top: 0;
}

.news-date {
    flex-shrink: 0;
    font-size: 16px;
    color: #666;
    font-weight: 400;
}

.news-text {
    flex: 1;
    font-size: 16px;
    color: #333;
    line-height: 1.6;
}

.news-link-wrapper {
    display: flex;
    justify-content: flex-end;
    padding-top: 30px;
}

.news-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-blue-text);
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: color 0.3s;
}

.news-link:hover {
    color: #4a6fa0;
}

.news-link-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 院長挨拶セクション */
.greeting {
    background-color: #fff;
    padding: 0 0 80px 0;
    position: relative;
}

.greeting-header {
    max-width: 1400px;
    margin: 0 auto;
    padding: 40px 30px 0 60px;
    position: relative;
    z-index: 2;
}

.greeting-title-wrapper {
    position: relative;
    display: inline-block;
}

.greeting-title-en {
    font-size: 120px;
    font-weight: 700;
    color: var(--color-pink);
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0;
    opacity: 0.9;
}

.greeting-title-ja {
    position: absolute;
    top: 75%;
    left: 20px;
    transform: translateY(-50%);
    font-size: 20px;
    color: #333;
    font-weight: 500;
    letter-spacing: 0.1em;
    margin: 0;
}

.greeting-content {
    width: 100%;
    background-image: url('image/greeting-bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    display: flex;
    align-items: center;
    padding: 0;
    margin-top: -10px;
    z-index: 1;
}

.greeting-content-inner {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
    padding: 0 30px 0 60px;
    display: flex;
    align-items: center;
}

.greeting-text {
    max-width: 600px;
    padding: 50px 40px;
}

.greeting-heading {
    font-size: 28px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.8;
    margin-bottom: 30px;
}

.greeting-paragraph {
    font-size: 16px;
    line-height: 2;
    color: #333;
    margin-bottom: 20px;
}

.greeting-paragraph:last-of-type {
    margin-bottom: 30px;
}

.greeting-signature {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    text-align: left;
    margin: 0;
}

/* スタッフ紹介セクション */
.staff {
    background-color: var(--color-light-blue);
}

.staff-intro {
    padding: 80px 0 60px;
}

.staff-section-header {
    text-align: center;
    margin-bottom: 80px;
}

.staff-section-line {
    width: 100px;
    height: 3px;
    background-color: var(--color-blue-text);
    margin: 0 auto 15px;
}

.staff-subtitle {
    font-size: 32px;
    color: var(--color-blue-text);
    font-weight: 500;
    letter-spacing: 0.05em;
}

.staff-title-area {
    margin-bottom: 60px;
    display: flex;
    justify-content: center;
}

.staff-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.staff-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.staff-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.staff-label::before {
    content: '●';
    margin-right: 8px;
}

.staff-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.staff-content-wrapper {
    display: flex;
    gap: 50px;
    align-items: center;
    margin-top: 40px;
}

.staff-team-photo {
    flex-shrink: 0;
    width: 500px;
    aspect-ratio: 4 / 3;
}

.staff-team-photo img {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 8px;
    object-fit: cover;
}

.staff-description {
    flex: 1;
}

.staff-description-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 20px;
    line-height: 1.8;
    text-align: left;
}

.staff-description-text {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 12px;
}

/* 医学博士セクション */
.doctor-main {
    display: flex;
    gap: 80px;
    background-color: #fff;
    padding: 60px 50px 60px 100px;
    margin: 10px 0 60px;
    border-radius: 8px;
    align-items: flex-start;
}

.doctor-main-left {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.doctor-main-photo {
    flex-shrink: 0;
    width: 220px;
    margin-bottom: 20px;
}

.doctor-main-photo img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.doctor-main-info {
    flex: 1;
}

.doctor-main-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 30px;
    text-align: left;
}

.doctor-main-name {
    font-size: 22px;
    font-weight: 500;
    color: #333;
    margin-bottom: 0;
    text-align: center;
}

.doctor-main-career {
    margin-bottom: 25px;
}

.doctor-main-career p {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 8px;
}

.doctor-main-roles p {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 5px;
}

/* 医師カードグリッド */
.doctors-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-bottom: 60px;
}

.doctor-card {
    background-color: #fff;
    padding: 35px 30px;
    border-radius: 8px;
}

.doctor-card-specialty {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 12px;
    text-align: center;
}

.doctor-card-name {
    font-size: 20px;
    font-weight: 500;
    color: #333;
    margin-bottom: 25px;
    text-align: center;
}

.doctor-card-education {
    margin-bottom: 20px;
}

.doctor-card-education p {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    text-align: center;
}

/* チーム体制テキスト */
.staff-team-description {
    margin-top: 60px;
    margin-bottom: 50px;
}

/* スタッフCTA */
.staff-cta {
    text-align: center;
    padding-bottom: 80px;
}

.staff-cta-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 80px;
    border-radius: 50px;
    font-size: 20px;
    font-weight: 500;
    transition: background-color 0.3s, transform 0.3s;
}

.staff-cta-button:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* メディカルケアステーションセクション */
.medical-care {
    background-color: var(--color-light-blue);
}

.medical-care-header {
    position: relative;
    padding: 80px 0 120px;
    overflow: visible;
    max-width: 1400px;
    margin: 0 auto;
}

.medical-care-header::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 350px;
    height: 350px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 2;
}

.medical-care-title-wrapper {
    position: relative;
    z-index: 3;
    padding-left: 20px;
    max-width: 1200px;
}

.medical-care-label {
    font-size: 14px;
    color: var(--color-blue-text);
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
}

.medical-care-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-care-title {
    font-size: 28px;
    font-weight: 500;
    color: #333;
    line-height: 1.6;
    letter-spacing: 0.05em;
}

.medical-care-subtitle {
    font-size: 18px;
    display: block;
    margin-top: 5px;
}

.medical-care-content {
    position: relative;
    min-height: 600px;
    margin-top: -80px;
    z-index: 1;
}

.medical-care-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

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

/* スマホ用画像はデフォルト非表示 */
.medical-care-image-sp {
    display: none;
}

.medical-care-text-overlay {
    position: relative;
    z-index: 4;
    min-height: 600px;
    display: flex;
    align-items: center;
}

.medical-care-overlay-content {
    max-width: 1000px;
    padding: 50px 40px 50px 200px;
}

.medical-care-overlay-title {
    font-size: 22px;
    font-weight: 500;
    margin-bottom: 25px;
    line-height: 1.6;
    color: var(--color-blue-text);
}

.medical-care-overlay-text {
    font-size: 16px;
    line-height: 1.9;
    margin-bottom: 15px;
    color: #333;
}

.medical-care-partners {
    margin-top: 30px;
}

.medical-care-partners-title {
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 15px;
    color: #333;
}

.medical-care-partners-text {
    font-size: 16px;
    line-height: 1.9;
    margin-bottom: 10px;
    color: #333;
}

.medical-care-info {
    background-color: var(--color-light-blue);
    padding: 80px 0;
}

.medical-care-info-content {
    display: flex;
    gap: 40px;
    align-items: center;
    background-color: #fff;
    padding: 20px 60px;
    border-radius: 10px;
    max-width: 950px;
    margin: 0 auto;
}

.medical-care-info-header {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
}

.medical-care-info-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 80px;
    font-weight: 700;
    color: #e0e0e0;
}

.medical-care-info-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin: 0;
}

.medical-care-info-text {
    flex: 1;
}

.medical-care-info-description {
    font-size: 16px;
    line-height: 1.9;
    color: var(--color-blue-text);
    margin-bottom: 10px;
}

/* 体制セクション */
.support {
    background-color: var(--color-light-blue);
    padding: 60px 0;
}

.support-section {
    margin-bottom: 100px;
}

.support-section:last-of-type {
    margin-bottom: 60px;
}

.support-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.support-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.support-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.support-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.support-label::before {
    content: '●';
    margin-right: 8px;
}

.support-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.support-content {
    display: flex;
    gap: 50px;
    align-items: center;
}

.support-image {
    flex-shrink: 0;
    width: 400px;
}

.support-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.support-text {
    flex: 1;
}

.support-text-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 25px;
    line-height: 1.6;
}

.support-text-description {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 15px;
}

/* 相談室セクション */
.consultation-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.consultation-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.consultation-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.consultation-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.consultation-label::before {
    content: '●';
    margin-right: 8px;
}

.consultation-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.consultation-content {
    display: flex;
    gap: 50px;
    align-items: center;
}

.consultation-text {
    flex: 1;
}

.consultation-text-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 30px;
    line-height: 1.6;
}

.consultation-section {
    margin-bottom: 25px;
}

.consultation-section-title {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    margin-bottom: 10px;
}

.consultation-section-text {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 8px;
}

.consultation-image {
    flex-shrink: 0;
    width: 400px;
}

.consultation-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

/* サポートCTA */
.support-cta {
    text-align: center;
}

.support-cta-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 80px;
    border-radius: 50px;
    font-size: 20px;
    font-weight: 500;
    transition: background-color 0.3s, transform 0.3s;
}

.support-cta-button:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* 患者さまの声セクション */
.reviews {
    background-color: #fff;
    padding: 80px 0;
    position: relative;
}

.reviews::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40%;
    background-color: var(--color-blue);
    z-index: 0;
    pointer-events: none;
}

.reviews .container {
    position: relative;
    z-index: 1;
}

.reviews-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
    margin-bottom: 60px;
}

.reviews-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.reviews-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.reviews-label::before {
    content: '●';
    margin-right: 8px;
}

.reviews-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.reviews-description {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 50px;
    padding-left: 60px;
}

.reviews-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    margin-bottom: 20px;
}

.review-card {
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    display: block;
    transition: opacity 0.3s ease;
}

.review-card:hover {
    opacity: 0.7;
}

.review-card-image {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    border-radius: 12px;
}

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

.review-card-title {
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    padding: 25px 30px 15px;
    text-align: center;
}

.review-card-author {
    font-size: 14px;
    color: #fff;
    padding: 0 30px 30px;
    text-align: center;
}

.reviews-cta {
    text-align: center;
}

.reviews-cta-button {
    display: inline-block;
    background-color: #fff;
    color: var(--color-blue-text);
    text-decoration: none;
    padding: 18px 80px;
    border-radius: 50px;
    font-size: 20px;
    font-weight: 500;
    border: 2px solid #fff;
    transition: background-color 0.3s, transform 0.3s;
}

.reviews-cta-button:hover {
    background-color: rgba(255, 255, 255, 0.9);
    transform: translateY(-2px);
}

/* 選ばれる理由セクション */
.why-choose {
    padding: 100px 0 40px;
}

.why-choose .container {
    max-width: 1400px;
}

.why-choose-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.why-choose-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.why-choose-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.why-choose-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.why-choose-label::before {
    content: '●';
    margin-right: 8px;
}

.why-choose-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.why-choose-items {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.why-choose-item {
    display: flex;
    gap: 60px;
    align-items: center;
    background-color: #fff;
    padding: 50px;
    border-radius: 8px;
}

.why-choose-item-reverse {
    flex-direction: row-reverse;
}

.why-choose-item-image {
    flex-shrink: 0;
    width: 500px;
}

.why-choose-item-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.why-choose-item-text {
    flex: 1;
}

.why-choose-item-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 25px;
    line-height: 1.6;
}

.why-choose-item-description {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 12px;
}

/* 地域活動セクション */
.community {
    padding: 40px 0;
}

.community-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.community-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.community-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.community-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.community-label::before {
    content: '●';
    margin-right: 8px;
}

.community-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

/* ぴのカフェ */
.pino-cafe {
    background-color: var(--color-beige);
    padding: 30px 50px 50px 50px;
    border-radius: 20px;
    margin-bottom: 60px;
}

.pino-cafe-intro {
    display: flex;
    gap: 30px;
    align-items: center;
    margin-bottom: 40px;
}

.pino-cafe-logo {
    flex-shrink: 0;
    width: 150px;
}

.pino-cafe-logo img {
    width: 100%;
    height: auto;
    display: block;
}

.pino-cafe-description {
    flex: 1;
}

.pino-cafe-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-brown);
    margin-bottom: 15px;
}

.pino-cafe-text {
    font-size: 15px;
    line-height: 1.9;
    color: #333;
}

.pino-cafe-images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.pino-cafe-image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
}

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

.pino-cafe-cta {
    text-align: center;
}

.pino-cafe-button {
    display: inline-block;
    background-color: var(--color-brown);
    color: #fff;
    text-decoration: none;
    padding: 15px 60px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 500;
    transition: background-color 0.3s, transform 0.3s;
}

.pino-cafe-button:hover {
    background-color: #6d4f37;
    transform: translateY(-2px);
}

/* 学会活動 */
.academic {
    background-color: var(--color-grey);
    padding: 50px;
    border-radius: 20px;
}

.academic-intro {
    display: flex;
    gap: 40px;
    align-items: center;
    margin-bottom: 40px;
}

.academic-title {
    flex-shrink: 0;
    font-size: 28px;
    font-weight: 500;
    color: var(--color-blue-text);
    letter-spacing: 0.1em;
    position: relative;
    padding-right: 25px;
}

.academic-title::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: var(--color-blue-text);
}

.academic-description {
    flex: 1;
}

.academic-text {
    font-size: 15px;
    line-height: 1.9;
    color: #333;
}

.academic-images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.academic-image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
}

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

.academic-cta {
    text-align: center;
}

.academic-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 15px 60px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 500;
    transition: background-color 0.3s, transform 0.3s;
}

.academic-button:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* 採用情報セクション */
.recruit {
    padding: 80px 0;
}

.recruit-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.recruit-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.recruit-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.recruit-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.recruit-label::before {
    content: '●';
    margin-right: 8px;
}

.recruit-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.recruit-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    margin-bottom: 60px;
}

.recruit-card {
    background-color: transparent;
    padding: 0;
    border-radius: 12px;
}

.recruit-card-title {
    font-size: 22px;
    font-weight: 500;
    color: #333;
    text-align: center;
    margin-bottom: 25px;
    padding: 20px 35px;
    background-color: var(--color-light-blue);
    border-radius: 12px;
}

.recruit-card-content {
    font-size: 16px;
    padding: 0 35px;
}

.recruit-card-intro {
    line-height: 1.9;
    color: #333;
    margin-bottom: 0;
    min-height: 80px;
}

.recruit-card-intro:last-of-type {
    margin-bottom: 30px;
}

.recruit-card-details {
    margin-top: 0;
    padding-top: 10px;
    padding-bottom: 20px;
    border-top: 1px solid #ddd;
}

.recruit-detail-item {
    display: flex;
    gap: 20px;
    padding: 15px 0;
    border-bottom: 1px solid #ddd;
}

.recruit-detail-label {
    flex-shrink: 0;
    width: 100px;
    font-size: 16px;
    font-weight: 500;
    color: var(--color-blue-text);
}

.recruit-detail-text {
    flex: 1;
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

.recruit-cta {
    text-align: center;
}

.recruit-cta-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 80px;
    border-radius: 50px;
    font-size: 20px;
    font-weight: 500;
    transition: background-color 0.3s, transform 0.3s;
}

.recruit-cta-button:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* フッター */
.footer {
    background-color: var(--color-blue);
    color: #fff;
    padding: 40px 0 20px;
}

.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 60px;
    margin-bottom: 30px;
}

.footer-info {
    text-align: left;
    flex-shrink: 0;
}

.footer-clinic-name {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}

.footer-address {
    font-size: 15px;
    margin-bottom: 8px;
    line-height: 1.6;
}

.footer-phone {
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 0;
}

.footer-nav {
    flex: 1;
}

.footer-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(5, auto);
    gap: 0 30px;
}

.footer-nav-list li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding: 8px 0;
}

.footer-nav-list li:nth-last-child(-n+4) {
    border-bottom: none;
}

.footer-nav-list li a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.3s ease;
    letter-spacing: 0.03em;
}

.footer-nav-list li a:hover {
    color: #fff;
}

.footer-copyright {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-copyright p {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.8);
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
    .nav-list {
        gap: 20px;
    }

    .nav-list a {
        font-size: 14px;
    }

    .phone {
        font-size: 18px;
    }

    .contact-btn {
        padding: 15px 25px;
        font-size: 14px;
    }

    .main-title {
        font-size: 36px;
    }

    .section-title {
        font-size: 26px;
    }

    .cards-grid {
        gap: 20px;
    }

    .news-content {
        gap: 40px;
    }

    .news-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .news-header::before {
        width: 130px;
        height: 130px;
    }

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

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

    .greeting-title-en {
        font-size: 100px;
    }

    .greeting-title-ja {
        font-size: 18px;
    }

    .greeting-content {
        min-height: 450px;
        padding: 60px 0;
    }

    .greeting-content-inner {
        padding: 0 30px 0 40px;
    }

    .greeting-text {
        padding: 40px 35px;
    }

    .greeting-heading {
        font-size: 26px;
    }

    .staff-section-header {
        margin-bottom: 40px;
    }

    .staff-subtitle {
        font-size: 16px;
    }

    .staff-title-area {
        margin-bottom: 50px;
    }

    .staff-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .staff-header::before {
        width: 130px;
        height: 130px;
    }

    .staff-title {
        font-size: 22px;
    }

    .staff-label {
        font-size: 13px;
    }

    .staff-content-wrapper {
        gap: 40px;
    }

    .staff-team-photo {
        width: 350px;
    }

    .staff-description-title {
        font-size: 18px;
    }

    .doctor-main {
        gap: 30px;
        padding: 50px 40px;
    }

    .doctor-main-photo {
        width: 240px;
    }

    .doctors-grid {
        gap: 20px;
    }

    .medical-care-header {
        padding: 60px 0 100px;
    }

    .medical-care-header::before {
        width: 300px;
        height: 300px;
    }

    .medical-care-title-wrapper {
        padding-left: 50px;
    }

    .medical-care-title {
        font-size: 26px;
    }

    .medical-care-subtitle {
        font-size: 16px;
    }

    .medical-care-content {
        min-height: 550px;
    }

    .medical-care-text-overlay {
        min-height: 550px;
    }

    .medical-care-overlay-content {
        padding: 40px 35px;
    }

    .medical-care-overlay-title {
        font-size: 20px;
    }

    .medical-care-info-content {
        padding: 40px 50px;
    }

    .medical-care-info-icon {
        width: 100px;
        height: 100px;
        font-size: 70px;
    }

    .medical-care-info-title {
        font-size: 20px;
    }

    .support {
        padding: 60px 0;
    }

    .support-section {
        margin-bottom: 60px;
    }

    .support-header {
        min-width: 220px;
        padding-left: 65px;
        margin-bottom: 40px;
    }

    .support-header::before {
        width: 130px;
        height: 130px;
    }

    .support-title {
        font-size: 28px;
    }

    .support-label {
        font-size: 13px;
    }

    .support-content {
        gap: 40px;
    }

    .support-image {
        width: 350px;
    }

    .support-text-title {
        font-size: 20px;
    }

    .consultation-header {
        min-width: 220px;
        padding-left: 65px;
        margin-bottom: 40px;
    }

    .consultation-header::before {
        width: 130px;
        height: 130px;
    }

    .consultation-title {
        font-size: 28px;
    }

    .consultation-label {
        font-size: 13px;
    }

    .consultation-content {
        gap: 40px;
    }

    .consultation-image {
        width: 350px;
    }

    .consultation-text-title {
        font-size: 20px;
    }

    .reviews {
        padding: 60px 0;
    }

    .reviews-header {
        min-width: 220px;
        padding-left: 65px;
        margin-bottom: 50px;
    }

    .reviews-header::before {
        width: 130px;
        height: 130px;
    }

    .reviews-title {
        font-size: 28px;
    }

    .reviews-label {
        font-size: 13px;
    }

    .reviews-description {
        font-size: 14px;
        padding-left: 40px;
        margin-bottom: 40px;
    }

    .reviews-cards {
        gap: 30px;
    }

    .review-card-title {
        font-size: 18px;
        padding: 20px 25px 12px;
    }

    .review-card-author {
        font-size: 13px;
        padding: 0 25px 25px;
    }

    .why-choose {
        padding: 60px 0;
    }

    .why-choose-header-wrapper {
        margin-bottom: 50px;
    }

    .why-choose-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .why-choose-header::before {
        width: 130px;
        height: 130px;
    }

    .why-choose-title {
        font-size: 28px;
    }

    .why-choose-label {
        font-size: 13px;
    }

    .why-choose-items {
        gap: 50px;
    }

    .why-choose-item {
        gap: 40px;
        padding: 40px;
    }

    .why-choose-item-image {
        width: 450px;
    }

    .why-choose-item-title {
        font-size: 20px;
    }

    .community {
        padding: 60px 0;
    }

    .community-header-wrapper {
        margin-bottom: 50px;
    }

    .community-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .community-header::before {
        width: 130px;
        height: 130px;
    }

    .community-title {
        font-size: 28px;
    }

    .community-label {
        font-size: 13px;
    }

    .pino-cafe {
        padding: 40px;
        margin-bottom: 50px;
    }

    .pino-cafe-logo {
        width: 120px;
    }

    .pino-cafe-title {
        font-size: 22px;
    }

    .pino-cafe-images {
        gap: 15px;
        margin-bottom: 35px;
    }

    .academic {
        padding: 40px;
    }

    .academic-intro {
        gap: 30px;
        margin-bottom: 35px;
    }

    .academic-title {
        font-size: 26px;
        padding-right: 22px;
    }

    .academic-images {
        gap: 15px;
        margin-bottom: 35px;
    }

    .recruit {
        padding: 60px 0;
    }

    .recruit-header-wrapper {
        margin-bottom: 50px;
    }

    .recruit-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .recruit-header::before {
        width: 130px;
        height: 130px;
    }

    .recruit-title {
        font-size: 28px;
    }

    .recruit-label {
        font-size: 13px;
    }

    .recruit-cards {
        gap: 30px;
        margin-bottom: 50px;
    }

    .recruit-card {
        padding: 35px 30px;
    }

    .recruit-card-title {
        font-size: 20px;
    }
}

@media (max-width: 768px) {
    /* スマホのみ表示 */
    .sp-only {
        display: inline !important;
    }

    .medical-flow-image-sp.sp-only {
        display: block !important;
    }

    /* PCのみ表示（スマホでは非表示） */
    .pc-only {
        display: none !important;
    }

    /* コンテナのパディング調整 */
    .container {
        padding: 0 20px;
    }

    /* ヘッダー - モバイル用 */
    .header-container {
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 0;
        padding: 10px 15px;
        position: relative;
    }

    .logo img {
        height: 50px;
    }

    /* ハンバーガーメニュー表示 */
    .hamburger {
        display: flex;
        order: 3;
        margin-left: 10px;
    }

    /* デスクトップ用お問い合わせボタン非表示 */
    .desktop-contact-btn {
        display: none;
    }

    /* モバイル用Instagramボタン（ハンバーガーの左） */
    .header-instagram-btn {
        order: 2;
        margin-left: auto;
        width: 36px;
        height: 36px;
        font-size: 18px;
    }

    /* ナビゲーション（モバイルメニュー） */
    .header-center {
        position: fixed;
        top: -100vh;
        left: 0;
        right: 0;
        height: 100vh;
        background-color: rgba(255, 255, 255, 0.98);
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
        padding: 70px 30px 30px;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s, top 0s 0.3s;
        z-index: 1001;
        overflow-y: auto;
    }

    .header-center.active {
        top: 0;
        opacity: 1;
        pointer-events: auto;
        transition: opacity 0.3s, top 0s 0s;
    }

    .nav {
        width: 100%;
        text-align: center;
    }

    .nav-list {
        flex-direction: column;
        gap: 0;
        width: 100%;
    }

    .nav-list li {
        width: 100%;
        border-bottom: 1px solid #eee;
    }

    .nav-list a {
        display: block;
        padding: 14px 20px;
        font-size: 16px;
    }

    /* サブメニュー - モバイル用（メニュー閉じている時は非表示） */
    .sub-menu {
        position: static;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: none;
        box-shadow: none;
        background-color: #f9f9f9;
        padding: 0;
        min-width: auto;
    }

    /* メニューが開いている時のみサブメニューを表示・タッチ可能にする */
    .header-center.active .sub-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .sub-menu a {
        padding: 15px 30px;
        font-size: 15px;
    }


    .main-title {
        font-size: 18px;
        line-height: 1.8;
    }

    /* スライダーレスポンシブ */
    .main-visual-slider {
        aspect-ratio: 16 / 9;
    }

    .slide {
        align-items: flex-end;
    }

    .slide-content {
        padding: 0 20px 50px;
    }

    .slider-indicators {
        bottom: 20px;
        gap: 10px;
    }

    .indicator {
        width: 10px;
        height: 10px;
    }

    .section-title {
        font-size: 20px;
    }

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

    .card-title {
        font-size: 20px;
        min-height: auto;
    }

    .card-icon img {
        width: 80px;
        height: 80px;
    }

    .for-these-people {
        padding: 30px 0 60px 0;
    }

    .for-these-people::before {
        width: 350px;
        height: 175px;
        border-radius: 0 0 175px 175px;
    }

    .cta-button {
        padding: 15px 50px;
        font-size: 14px;
    }

    .news {
        padding: 60px 0;
    }

    .news-content {
        flex-direction: column;
        gap: 30px;
        align-items: center;
    }

    .news-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .news-header::before {
        width: 120px;
        height: 120px;
    }

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

    .news-label {
        font-size: 12px;
    }

    .news-list {
        width: 100%;
    }

    .news-item {
        flex-direction: column;
        gap: 10px;
        padding: 20px 0;
        text-align: center;
    }

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

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

    .news-link-wrapper {
        justify-content: center;
    }

    .greeting {
        padding: 0 0 60px 0;
    }

    .greeting-header {
        padding: 60px 20px 20px;
    }

    .greeting-title-en {
        font-size: 80px;
    }

    .greeting-title-ja {
        font-size: 16px;
        left: 15px;
    }

    .greeting-content {
        min-height: 400px;
        padding: 40px 0;
        background-image: none;
        background-color: #fff;
    }

    .greeting-content-inner {
        padding: 0 20px;
    }

    .greeting-text {
        max-width: 100%;
        padding: 20px 25px;
    }

    .greeting-heading {
        font-size: 22px;
        margin-bottom: 20px;
    }

    .greeting-paragraph {
        font-size: 15px;
        line-height: 1.9;
    }

    .greeting-signature {
        font-size: 15px;
    }

    .staff-intro {
        padding: 40px 0 40px;
    }

    .staff-section-header {
        margin-bottom: 60px;
    }

    .staff-section-line {
        width: 50px;
        height: 2px;
    }

    .staff-subtitle {
        font-size: 18px;
    }

    .staff-title-area {
        margin-bottom: 40px;
    }

    .staff-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .staff-header::before {
        width: 120px;
        height: 120px;
    }

    .staff-title {
        font-size: 20px;
    }

    .staff-label {
        font-size: 12px;
    }

    .staff-content-wrapper {
        flex-direction: column;
        gap: 30px;
        margin-top: 60px;
    }

    .staff-team-photo {
        width: 100%;
        max-width: 400px;
        height: auto;
        aspect-ratio: auto;
        margin: 0 auto;
    }

    .staff-team-photo img {
        height: auto;
        object-fit: fill;
    }

    .staff-description-title {
        font-size: 17px;
    }

    .staff-description-text {
        font-size: 14px;
    }

    .doctor-main {
        flex-direction: column;
        padding: 40px 20px;
        margin: 40px 0;
    }

    .doctor-main-photo {
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
    }

    .doctor-main-title {
        font-size: 16px;
    }

    .doctor-main-name {
        font-size: 20px;
        margin-bottom: 25px;
    }

    .doctor-main-career p {
        font-size: 14px;
    }

    .doctor-main-roles p {
        font-size: 14px;
    }

    .doctors-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 40px;
    }

    .doctor-card {
        padding: 20px 25px;
    }

    .doctor-card-specialty {
        font-size: 15px;
    }

    .doctor-card-name {
        font-size: 18px;
    }

    .staff-cta {
        padding-bottom: 60px;
    }

    .staff-cta-button {
        padding: 15px 50px;
        font-size: 18px;
    }

    .medical-care-header {
        padding: 50px 0 80px;
    }

    .medical-care-header::before {
        display: none;
    }

    .medical-care-title-wrapper {
        padding-left: 40px;
    }

    .medical-care-title {
        font-size: 22px;
    }

    .medical-care-subtitle {
        font-size: 15px;
    }

    .medical-care-content {
        min-height: 700px;
        margin-top: -60px;
    }

    .medical-care-content::before {
        content: '';
        position: absolute;
        left: -60px;
        top: -200px;
        width: 250px;
        height: 250px;
        background-color: var(--color-pink);
        border-radius: 50%;
        z-index: 2;
    }

    /* スマホではPC用画像を非表示、スマホ用画像を表示 */
    .medical-care-image-pc {
        display: none;
    }

    .medical-care-image-sp {
        display: block;
        z-index: 1;
    }

    .medical-care-image {
        z-index: 1;
    }

    .medical-care-text-overlay {
        min-height: 700px;
        position: relative;
        z-index: 3;
    }

    .medical-care-overlay-content {
        max-width: 100%;
        padding: 20px 25px;
    }

    .medical-care-overlay-title {
        font-size: 18px;
    }

    .medical-care-overlay-text {
        font-size: 14px;
    }

    .medical-care-partners-title {
        font-size: 15px;
    }

    .medical-care-partners-text {
        font-size: 13px;
    }

    .medical-care-info {
        padding: 60px 0;
    }

    .medical-care-info-content {
        flex-direction: column;
        gap: 20px;
        padding: 20px 25px;
        text-align: left;
    }

    .medical-care-info-header {
        display: flex;
        align-items: center;
        gap: 15px;
        width: 100%;
    }

    .medical-care-info-icon {
        width: 40px;
        height: 40px;
        font-size: 30px;
        flex-shrink: 0;
    }

    .medical-care-info-title {
        font-size: 16px;
    }

    .medical-care-info-text {
        width: 100%;
    }

    .medical-care-info-description {
        font-size: 14px;
    }

    .support {
        padding: 60px 0;
    }

    .support-section {
        margin-bottom: 50px;
    }

    .support-section:last-of-type {
        margin-bottom: 40px;
    }

    .support-header-wrapper {
        margin-bottom: 50px;
    }

    .support-header {
        min-width: 200px;
        padding-left: 60px;
        margin-bottom: 30px;
    }

    .support-header::before {
        width: 120px;
        height: 120px;
    }

    .support-title {
        font-size: 24px;
    }

    .support-label {
        font-size: 12px;
    }

    .support-content {
        flex-direction: column;
        gap: 30px;
    }

    .support-image {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }

    .support-text-title {
        font-size: 18px;
    }

    .support-text-description {
        font-size: 14px;
    }

     .community-header-wrapper {
        margin-bottom: 50px;
    }

    .consultation-header-wrapper {
        margin-bottom: 50px;
    }

    .consultation-header {
        min-width: 200px;
        padding-left: 60px;
        margin-bottom: 30px;
    }

    .consultation-header::before {
        width: 120px;
        height: 120px;
    }

    .consultation-title {
        font-size: 19px;
        white-space: nowrap;
    }

    .consultation-title .sp-only {
        display: none;
    }

    .consultation-label {
        font-size: 12px;
    }

    .consultation-content {
        flex-direction: column;
        gap: 30px;
    }

    .consultation-text-title {
        font-size: 18px;
        text-align: center;
    }

    .consultation-section-title {
        font-size: 15px;
    }

    .consultation-section-text {
        font-size: 14px;
    }

    .consultation-image {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }

    .support-cta-button {
        padding: 15px 50px;
        font-size: 18px;
    }

    .reviews {
        padding: 60px 0;
    }

    .reviews::after {
        height: 60%;
    }

    .reviews-header {
        min-width: 200px;
        padding-left: 60px;
        margin: 0 auto 40px auto;
        width: fit-content;
    }

    .reviews-header::before {
        width: 120px;
        height: 120px;
    }

    .reviews-title {
        font-size: 24px;
    }

    .reviews-label {
        font-size: 12px;
    }

    .reviews-description {
        font-size: 14px;
        padding-left: 20px;
        margin-bottom: 35px;
    }

    .reviews-cards {
        grid-template-columns: 1fr;
        gap: 25px;
        margin-bottom: 40px;
    }

    .review-card-title {
        font-size: 17px;
        padding: 20px 25px 12px;
    }

    .review-card-author {
        font-size: 13px;
        padding: 0 25px 25px;
    }

    .reviews-cta-button {
        padding: 15px 20px;
        font-size: 18px;
    }

    .why-choose {
        padding: 60px 0;
    }

    .why-choose-header-wrapper {
        margin-bottom: 40px;
    }

    .why-choose-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .why-choose-header::before {
        width: 120px;
        height: 120px;
    }

    .why-choose-title {
        font-size: 24px;
    }

    .why-choose-label {
        font-size: 12px;
    }

    .why-choose-items {
        gap: 40px;
    }

    .why-choose-item {
        flex-direction: column;
        gap: 30px;
        padding: 20px 25px;
    }

    .why-choose-item-reverse {
        flex-direction: column;
    }

    .why-choose-item-image {
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }

    .why-choose-item-title {
        font-size: 18px;
        margin-bottom: 20px;
    }

    .why-choose-item-description {
        font-size: 14px;
    }

    .community {
        padding: 60px 0;
    }

    .community-header-wrapper {
        margin-bottom: 50px;
    }

    .community-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .community-header::before {
        width: 120px;
        height: 120px;
    }

    .community-title {
        font-size: 24px;
    }

    .community-label {
        font-size: 12px;
    }

    .pino-cafe {
        padding: 20px 25px;
        margin-bottom: 40px;
    }

    .pino-cafe-intro {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 10px;
        margin-bottom: 30px;
    }

    .pino-cafe-logo {
        width: 60px;
        flex-shrink: 0;
    }

    .pino-cafe-logo img {
        display: block;
        width: 100%;
    }

    .pino-cafe-description {
        display: contents;
    }

    .pino-cafe-title {
        font-size: 22px;
        margin: 0;
        flex-shrink: 0;
    }

    .pino-cafe-text {
        font-size: 14px;
        text-align: center;
        margin: 0;
        width: 100%;
        flex-basis: 100%;
    }

    .pino-cafe-images {
        grid-template-columns: 1fr;
        gap: 15px;
        margin-bottom: 30px;
    }

    .pino-cafe-button {
        padding: 12px 40px;
        font-size: 15px;
    }

    .academic {
        padding: 20px 25px;
    }

    .academic-intro {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 30px;
        text-align: center;
    }

    .academic-title {
        font-size: 22px;
        padding-right: 20px;
        text-align: center;
        display: inline-block;
    }

    .academic-title::after {
        height: 30px;
        top: 50%;
        transform: translateY(-50%);
        bottom: auto;
    }

    .academic-text {
        font-size: 14px;
        text-align: center;
    }

    .academic-images {
        grid-template-columns: 1fr;
        gap: 15px;
        margin-bottom: 30px;
    }

    .academic-button {
        padding: 12px 40px;
        font-size: 15px;
    }

    .recruit {
        padding: 60px 0;
    }

    .recruit-header-wrapper {
        margin-bottom: 40px;
    }

    .recruit-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .recruit-header::before {
        width: 120px;
        height: 120px;
    }

    .recruit-title {
        font-size: 24px;
    }

    .recruit-label {
        font-size: 12px;
    }

    .recruit-cards {
        grid-template-columns: 1fr;
        gap: 25px;
        margin-bottom: 40px;
    }

    .recruit-card {
        padding: 20px 25px;
    }

    .recruit-card-title {
        font-size: 18px;
        margin-bottom: 20px;
    }

    .recruit-card-intro {
        font-size: 14px;
    }

    .recruit-detail-item {
        flex-direction: column;
        gap: 8px;
        padding: 12px 0;
    }

    .recruit-detail-label {
        width: auto;
        font-size: 13px;
    }

    .recruit-detail-text {
        font-size: 13px;
    }

    .recruit-cta-button {
        padding: 15px 50px;
        font-size: 18px;
    }
}

/* ==========================================================================
   学会活動ページ
   ========================================================================== */

/* メインビジュアル */
.academic-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 21 / 6;
    background-image: url('./image/academic-hero.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-start;
}

.academic-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.1);
}

.academic-hero-content {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0 100px;
    width: 100%;
}

.academic-hero-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 40px rgba(255, 255, 255, 0.3);
}

/* 目的セクション */
.academic-purpose {
    background-color: #fff;
    padding: 0 0 40px 0;
    position: relative;
}

.academic-purpose::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 400px;
    height: 200px;
    background-color: var(--color-pink);
    border-radius: 0 0 200px 200px;
    z-index: 0;
}

.academic-purpose .container {
    position: relative;
    z-index: 1;
}

.academic-purpose .section-title {
    margin-bottom: 40px;
    padding-top: 40px;
}

.academic-purpose-description {
    text-align: left;
    margin: 0 auto 60px;
    max-width: 800px;
}

.academic-purpose-description p {
    font-size: 18px;
    line-height: 1.9;
    color: var(--color-blue-text);
    margin-bottom: 5px;
}

.academic-purpose-container {
    background-color: var(--color-grey);
    padding: 60px 40px;
    border-radius: 20px;
    max-width: 850px;
    margin: 0 auto;
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    gap: 40px;
}

.academic-purpose-item {
    flex: 1;
    text-align: left;
    max-width: 220px;
}

.academic-purpose-icon {
    position: relative;
    width: 100px;
    height: 100px;
    margin: 0 auto 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.academic-purpose-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.academic-purpose-text {
    font-size: 15px;
    line-height: 1.8;
    color: #333;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .academic-hero {
        aspect-ratio: 16 / 6;
    }

    .academic-hero-content {
        padding: 40px 20px 0 60px;
    }

    .academic-hero-title {
        font-size: 36px;
    }

    .academic-purpose {
        padding: 0 0 60px 0;
    }

    .academic-purpose::before {
        width: 350px;
        height: 175px;
        border-radius: 0 0 175px 175px;
    }

    .academic-purpose-description {
        max-width: 100%;
    }

    .academic-purpose-container {
        flex-direction: column;
        gap: 30px;
        padding: 40px 20px;
        margin: 0 20px;
    }

    .academic-purpose-item {
        max-width: 100%;
    }

    .academic-purpose-description p {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .for-these-people::before {
        width: 280px;
        height: 140px;
        border-radius: 0 0 140px 140px;
    }

    .academic-hero {
        aspect-ratio: 4 / 2;
    }

    .academic-hero-content {
        padding: 30px 15px 0 40px;
    }

    .academic-hero-title {
        font-size: 28px;
    }

    .academic-purpose::before {
        width: 280px;
        height: 140px;
        border-radius: 0 0 140px 140px;
    }

    .academic-purpose-description {
        max-width: 100%;
    }

    .academic-purpose-container {
        padding: 30px 15px;
        margin: 0 15px;
    }

    .academic-purpose-item {
        max-width: 100%;
    }

    .academic-purpose-icon {
        width: 80px;
        height: 80px;
    }

    .academic-purpose-text {
        font-size: 14px;
    }
}

/* 学会参加・発表実績セクション */
.academic-record {
    background-color: #fff;
    padding: 80px 0;
}

.academic-record-title-area {
    margin-bottom: 80px;
    display: flex;
    justify-content: center;
}

.academic-record-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.academic-record-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.academic-record-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.academic-record-label::before {
    content: '●';
    margin-right: 8px;
}

.academic-record-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.academic-record-table {
    max-width: 900px;
    margin: 0 auto;
}

.academic-record-thead {
    display: grid;
    grid-template-columns: 180px 1fr;
    background-color: var(--color-blue);
    color: #fff;
}

.academic-record-th {
    padding: 20px 25px;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    border-right: 2px solid #fff;
}

.academic-record-th:last-child {
    border-right: none;
}

.academic-record-row {
    display: grid;
    grid-template-columns: 180px 1fr auto;
    border-bottom: 2px solid #ddd;
    align-items: center;
    background-color: #fff;
}

.academic-record-td {
    padding: 25px;
    font-size: 16px;
    color: #333;
}

.academic-record-td-date {
    text-align: center;
    font-weight: 500;
}

.academic-record-td-content {
    line-height: 1.8;
    padding-left: 50px;
}

.academic-record-td-link {
    padding: 25px 30px;
    text-align: center;
}

.academic-record-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    text-decoration: none;
    color: var(--color-blue);
}

.academic-record-link:hover .academic-record-circle {
    background-color: #4a6fa0;
}

.academic-record-circle {
    width: 30px;
    height: 30px;
    background-color: var(--color-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    transition: background-color 0.3s ease;
}

.academic-record-link-text {
    font-size: 12px;
    font-weight: 500;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .academic-record {
        padding: 60px 0;
    }

    .academic-record-title-area {
        margin-bottom: 60px;
    }

    .academic-record-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .academic-record-header::before {
        width: 130px;
        height: 130px;
    }

    .academic-record-title {
        font-size: 22px;
    }

    .academic-record-label {
        font-size: 13px;
    }

    .academic-record-table {
        margin: 0 20px;
    }

    .academic-record-thead {
        grid-template-columns: 1fr;
    }

    .academic-record-th {
        border-right: none;
        border-bottom: 2px solid #fff;
    }

    .academic-record-th:last-child {
        border-bottom: none;
    }

    .academic-record-th-date {
        display: none;
    }

    .academic-record-row {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 20px;
    }

    .academic-record-td {
        padding: 0;
    }

    .academic-record-td-date {
        text-align: left;
        font-size: 14px;
    }

    .academic-record-td-link {
        padding: 0;
        display: flex;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .academic-record-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .academic-record-header::before {
        width: 120px;
        height: 120px;
    }

    .academic-record-title {
        font-size: 20px;
    }

    .academic-record-label {
        font-size: 12px;
    }

    .academic-record-table {
        margin: 0 15px;
    }

    .academic-record-circle {
        width: 50px;
        height: 50px;
        font-size: 18px;
    }

    .academic-record-link-text {
        font-size: 11px;
    }
}

/* 学術活動・研究体制セクション */
.academic-system {
    background-color: var(--color-light-blue);
    padding: 60px 0;
}

.academic-system-header {
    text-align: center;
    margin-bottom: 40px;
}

.academic-system-line {
    width: 100px;
    height: 3px;
    background-color: var(--color-blue-text);
    margin: 0 auto 15px;
}

.academic-system-title {
    font-size: 36px;
    color: var(--color-blue-text);
    font-weight: 500;
    margin-bottom: 10px;
    letter-spacing: 0.05em;
}

.academic-system-subtitle {
    font-size: 24px;
    color: var(--color-blue-text);
    font-weight: 400;
    letter-spacing: 0.1em;
}

.academic-system-description {
    text-align: left;
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 60px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.academic-system-items {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 800px;
    margin: 0 auto;
}

.academic-system-item {
    background-color: #fff;
    padding: 35px 40px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.academic-system-item-title {
    font-size: 20px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}

.academic-system-item-text {
    font-size: 16px;
    line-height: 1.9;
    color: #555;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .academic-system {
        padding: 60px 0;
    }

    .academic-system-header {
        margin-bottom: 40px;
    }

    .academic-system-line {
        width: 50px;
        height: 2px;
    }

    .academic-system-title {
        font-size: 28px;
    }

    .academic-system-subtitle {
        font-size: 16px;
    }

    .academic-system-description {
        font-size: 16px;
        margin-bottom: 40px;
        padding: 0 20px;
    }

    .academic-system-items {
        gap: 20px;
        margin: 0 20px;
    }

    .academic-system-item {
        padding: 25px 20px;
    }

    .academic-system-item-title {
        font-size: 18px;
        margin-bottom: 12px;
    }

    .academic-system-item-text {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .academic-system {
        padding: 50px 0;
    }

    .academic-system-title {
        font-size: 24px;
    }

    .academic-system-subtitle {
        font-size: 14px;
    }

    .academic-system-description {
        font-size: 14px;
        padding: 0 15px;
    }

    .academic-system-items {
        margin: 0 15px;
    }

    .academic-system-item {
        padding: 20px 15px;
    }

    .academic-system-item-title {
        font-size: 16px;
    }

    .academic-system-item-text {
        font-size: 13px;
    }
}

/* 学会活動の意義セクション */
.academic-significance {
    background-color: #fff;
    padding: 80px 0;
}

.academic-significance-title-area {
    margin-bottom: 80px;
    display: flex;
    justify-content: center;
}

.academic-significance-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.academic-significance-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.academic-significance-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.academic-significance-label::before {
    content: '●';
    margin-right: 8px;
}

.academic-significance-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.academic-significance-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto;
}

.academic-significance-image {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.academic-significance-image img {
    width: 100%;
    height: auto;
    display: block;
}

.academic-significance-text {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
}

.academic-significance-text p {
    margin-bottom: 1.2em;
}

.academic-significance-text p:last-child {
    margin-bottom: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .academic-significance {
        padding: 60px 0;
    }

    .academic-significance-title-area {
        margin-bottom: 60px;
    }

    .academic-significance-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .academic-significance-header::before {
        width: 130px;
        height: 130px;
    }

    .academic-significance-title {
        font-size: 22px;
    }

    .academic-significance-label {
        font-size: 13px;
    }

    .academic-significance-content {
        grid-template-columns: 1fr;
        gap: 30px;
        margin: 0 20px;
    }

    .academic-significance-text {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .academic-significance-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .academic-significance-header::before {
        width: 120px;
        height: 120px;
    }

    .academic-significance-title {
        font-size: 20px;
    }

    .academic-significance-label {
        font-size: 12px;
    }

    .academic-significance-content {
        margin: 0 15px;
    }

    .academic-significance-text {
        font-size: 13px;
    }
}

/* ==========================================================================
   診療案内ページ
   ========================================================================== */

/* メインビジュアル */
.medical-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 21 / 6;
    background-image: url('./image/academic-hero.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-start;
}

.medical-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.1);
}

.medical-hero-content {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0 100px;
    width: 100%;
}

.medical-hero-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 40px rgba(255, 255, 255, 0.3);
    margin-bottom: 10px;
}

.medical-hero-subtitle {
    font-size: 24px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5);
}

/* 対応できることセクション */
.medical-services {
    background-color: #fff;
    padding: 0 0 40px 0;
    position: relative;
}

.medical-services::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 400px;
    height: 200px;
    background-color: var(--color-pink);
    border-radius: 0 0 200px 200px;
    z-index: 0;
}

.medical-services .container {
    position: relative;
    z-index: 1;
}

.medical-services .section-title {
    margin-bottom: 120px;
    padding-top: 50px;
}

.medical-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
}

.medical-service-card {
    background-color: var(--color-light-blue);
    padding: 40px 30px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.medical-service-title {
    font-size: 18px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 20px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.medical-service-icon {
    width: 100px;
    height: 100px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.medical-service-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.medical-service-text {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    text-align: left;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-hero {
        aspect-ratio: 16 / 6;
    }

    .medical-hero-content {
        padding: 40px 20px 0 60px;
    }

    .medical-hero-title {
        font-size: 36px;
    }

    .medical-hero-subtitle {
        font-size: 16px;
    }

    .medical-services {
        padding: 0 0 60px 0;
    }

    .medical-services::before {
        width: 350px;
        height: 175px;
        border-radius: 0 0 175px 175px;
    }

    .medical-services .section-title {
        padding-top: 20px;
    }

    .medical-services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
        margin: 0 20px;
    }

    .medical-service-card {
        padding: 30px 20px;
    }

    .medical-service-icon {
        width: 80px;
        height: 80px;
        margin-bottom: 20px;
    }

    .medical-service-title {
        font-size: 20px;
        height: auto;
    }
}

@media (max-width: 480px) {
    .medical-hero {
        aspect-ratio: 4 / 2;
    }

    .medical-hero-content {
        padding: 30px 15px 0 40px;
    }

    .medical-hero-title {
        font-size: 28px;
    }

    .medical-hero-subtitle {
        font-size: 14px;
    }

    .medical-services::before {
        width: 280px;
        height: 140px;
        border-radius: 0 0 140px 140px;
    }

    .medical-services-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        margin: 0 15px;
    }

    .medical-service-card {
        padding: 25px 20px;
    }

    .medical-service-icon {
        width: 70px;
        height: 70px;
        margin-bottom: 15px;
    }

    .medical-service-title {
        font-size: 20px;
        height: auto;
    }
}

/* 診療項目セクション */
.medical-items {
    background-color: #fff;
    padding: 80px 0;
}

.medical-items-title-area {
    margin-bottom: 80px;
    display: flex;
    justify-content: center;
}

.medical-items-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-items-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-items-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-items-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-items-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-items-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 1100px;
    margin: 0 auto;
}

.medical-item {
    display: grid;
    grid-template-columns: 180px 1fr;
    align-items: center;
    background-color: #fff;
    border: 2px solid var(--color-blue);
    border-radius: 12px;
    padding: 40px;
    gap: 40px;
}

.medical-item-title {
    font-size: 20px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
    position: relative;
    padding-right: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 80px;
}

.medical-item-title::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 80px;
    background-color: var(--color-blue-text);
}

.medical-item-content {
    font-size: 16px;
    line-height: 1.9;
    color: #555;
}

.medical-item-content p {
    margin-bottom: 0.8em;
}

.medical-item-content p:last-child {
    margin-bottom: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-items {
        padding: 60px 0;
    }

    .medical-items-title-area {
        margin-bottom: 40px;
    }

    .medical-items-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .medical-items-header::before {
        width: 130px;
        height: 130px;
    }

    .medical-items-title {
        font-size: 22px;
    }

    .medical-items-label {
        font-size: 13px;
    }

    .medical-items-list {
        gap: 20px;
        margin: 0 20px;
    }

    .medical-item {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 30px 20px;
    }

    .medical-item-title {
        font-size: 20px;
        padding-right: 0;
        padding-bottom: 0;
    }

    .medical-item-title::after {
        display: none;
    }

    .medical-item-content {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .medical-items-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .medical-items-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-items-title {
        font-size: 20px;
    }

    .medical-items-label {
        font-size: 12px;
    }

    .medical-items-list {
        margin: 0 15px;
    }

    .medical-item {
        padding: 25px 15px;
    }

    .medical-item-title {
        font-size: 18px;
    }

    .medical-item-content {
        font-size: 13px;
    }
}

/* 希望される方へセクション */
.medical-support {
    background-color: var(--color-grey);
    padding: 40px 0;
}

.medical-support-header {
    text-align: center;
    margin-bottom: 60px;
}

.medical-support-line {
    width: 100px;
    height: 3px;
    background-color: var(--color-blue-text);
    margin: 0 auto 15px;
}

.medical-support-title {
    font-size: 36px;
    color: var(--color-blue-text);
    font-weight: 500;
    letter-spacing: 0.05em;
}

.medical-support-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto 60px;
}

.medical-support-image {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.medical-support-image img {
    width: 100%;
    height: auto;
    display: block;
}

.medical-support-text {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
}

.medical-support-text p {
    margin-bottom: 1.2em;
}

.medical-support-text p:last-child {
    margin-bottom: 0;
}

.medical-support-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 1000px;
    margin: 0 auto 60px;
}

.medical-support-card {
    background-color: #fff;
    padding: 40px 30px;
    border-radius: 12px;
    border: 2px solid var(--color-pink);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    text-align: center;
}

.medical-support-card-title {
    font-size: 20px;
    font-weight: 500;
    color: #eba3b3;
    margin-bottom: 20px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.medical-support-card-text {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    text-align: left;
}

.medical-support-cta {
    text-align: center;
}

.medical-support-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 60px;
    border-radius: 50px;
    font-size: 18px;
    font-weight: 500;
    transition: background-color 0.3s ease;
}

.medical-support-button:hover {
    background-color: #4a6fa0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-support {
        padding: 60px 0;
    }

    .medical-support-header {
        margin-bottom: 40px;
    }

    .medical-support-line {
        width: 50px;
        height: 2px;
    }

    .medical-support-title {
        font-size: 28px;
    }

    .medical-support-intro {
        grid-template-columns: 1fr;
        gap: 30px;
        margin: 0 20px 40px;
    }

    .medical-support-text {
        font-size: 14px;
    }

    .medical-support-cards {
        grid-template-columns: 1fr;
        gap: 20px;
        margin: 0 20px 40px;
    }

    .medical-support-card {
        padding: 30px 20px;
    }

    .medical-support-card-title {
        font-size: 16px;
        height: 54px;
    }

    .medical-support-card-text {
        font-size: 13px;
    }

    .medical-support-button {
        padding: 15px 50px;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .medical-support-title {
        font-size: 22px;
    }

    .medical-support-intro {
        margin: 0 15px 30px;
    }

    .medical-support-text {
        font-size: 13px;
    }

    .medical-support-cards {
        margin: 0 15px 30px;
    }

    .medical-support-card {
        padding: 25px 15px;
    }

    .medical-support-card-title {
        font-size: 15px;
        height: 50px;
    }

    .medical-support-card-text {
        font-size: 12px;
    }

    .medical-support-button {
        padding: 12px 40px;
        font-size: 15px;
    }
}

/* 診療開始までの流れセクション */
.medical-flow {
    background-color: #fff;
    padding: 100px 0;
}

.medical-flow-title-area {
    margin-bottom: 100px;
    display: flex;
    justify-content: center;
}

.medical-flow-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-flow-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-flow-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-flow-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-flow-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-flow-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    align-items: center;
}

.medical-flow-text-box {
    background-color: #fff;
    padding: 50px 60px;
    border-radius: 12px;
    position: relative;
    z-index: 2;
    margin-right: -100px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.medical-flow-text {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 1.5em;
}

.medical-flow-text:last-of-type {
    margin-bottom: 30px;
}

.medical-flow-button-wrapper {
    text-align: center;
}

.medical-flow-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 60px;
    border-radius: 50px;
    font-size: 18px;
    font-weight: 500;
    transition: background-color 0.3s ease;
}

.medical-flow-button:hover {
    background-color: #4a6fa0;
}

.medical-flow-image {
    width: 100%;
    height: 550px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 1;
}

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

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-flow {
        padding: 60px 0;
    }

    .medical-flow-title-area {
        margin-bottom: 60px;
    }

    .medical-flow-header {
        padding-left: 50px;
        min-width: 200px;
    }

    .medical-flow-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-flow-label {
        font-size: 12px;
    }

    .medical-flow-title {
        font-size: 26px;
    }

    .medical-flow-content {
        grid-template-columns: 1fr;
        gap: 30px;
        margin: 0 20px;
    }

    .medical-flow-image-sp {
        width: 100%;
        height: auto;
    }

    .medical-flow-image-sp img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    .medical-flow-text-box {
        padding: 40px 30px;
        margin-right: 0;
    }

    .medical-flow-text {
        font-size: 14px;
    }

    .medical-flow-text:last-of-type {
        margin-bottom: 25px;
    }

    .medical-flow-button {
        padding: 15px 50px;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .medical-flow-header {
        padding-left: 40px;
    }

    .medical-flow-header::before {
        width: 100px;
        height: 100px;
    }

    .medical-flow-label {
        font-size: 11px;
    }

    .medical-flow-title {
        font-size: 22px;
    }

    .medical-flow-content {
        margin: 0 15px;
    }

    .medical-flow-image-sp {
        width: 100%;
        height: auto;
    }

    .medical-flow-image-sp img {
        width: 100%;
        height: auto;
    }

    .medical-flow-text-box {
        padding: 30px 20px;
    }

    .medical-flow-text {
        font-size: 13px;
    }

    .medical-flow-button {
        padding: 12px 40px;
        font-size: 15px;
    }
}

/* 訪問エリアセクション */
.medical-area {
    background-color: #fff;
    padding: 40px 0;
}

.medical-area-title-area {
    margin-bottom: 80px;
}

.medical-area-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-area-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-area-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-area-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-area-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-area-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto 60px;
}

.medical-area-map {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.medical-area-map img {
    width: 100%;
    height: auto;
    display: block;
}

.medical-area-info {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.medical-area-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.medical-area-list li {
    font-size: 20px;
    color: #333;
    line-height: 2;
    padding-left: 20px;
    position: relative;
}

.medical-area-list li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: #333;
}

.medical-area-notes {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.medical-area-note {
    font-size: 16px;
    line-height: 1.8;
    color: #666;
    margin: 0;
}

.medical-area-cta {
    text-align: center;
}

.medical-area-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 18px 60px;
    border-radius: 50px;
    font-size: 18px;
    font-weight: 500;
    transition: background-color 0.3s ease;
}

.medical-area-button:hover {
    background-color: #4a6fa0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-area {
        padding: 60px 0;
    }

    .medical-area-title-area {
        margin-bottom: 40px;
    }

    .medical-area-header {
        padding-left: 50px;
        min-width: 200px;
        width: fit-content;
        margin: 0 auto;
    }

    .medical-area-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-area-label {
        font-size: 12px;
    }

    .medical-area-title {
        font-size: 26px;
    }

    .medical-area-content {
        grid-template-columns: 1fr;
        gap: 40px;
        margin: 0 20px 40px;
    }

    .medical-area-list li {
        font-size: 16px;
    }

    .medical-area-note {
        font-size: 14px;
    }

    .medical-area-button {
        padding: 15px 50px;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .medical-area-header {
        padding-left: 40px;
    }

    .medical-area-header::before {
        width: 100px;
        height: 100px;
    }

    .medical-area-label {
        font-size: 11px;
    }

    .medical-area-title {
        font-size: 22px;
    }

    .medical-area-content {
        margin: 0 15px 30px;
    }

    .medical-area-list li {
        font-size: 15px;
    }

    .medical-area-note {
        font-size: 13px;
    }

    .medical-area-button {
        padding: 12px 40px;
        font-size: 15px;
    }
}

/* 連携医療機関セクション */
.medical-partner {
    background-color: #fff;
    padding: 80px 0;
}

.medical-partner-title-area {
    margin-bottom: 80px;
    display: flex;
    justify-content: center;
}

.medical-partner-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-partner-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-partner-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-partner-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-partner-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-partner-content {
    max-width: 1100px;
    margin: 0 auto;
}

.medical-partner-note {
    text-align: right;
    font-size: 14px;
    color: #666;
    margin-top: 20px;
}

.medical-partner-section {
    background-color: var(--color-light-blue);
    padding: 50px;
    border-radius: 12px;
}

.medical-partner-section-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    text-align: center;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.medical-partner-section-title-second {
    margin-top: 50px;
}

.medical-partner-grid {
    display: grid;
    gap: 20px;
}

.medical-partner-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.medical-partner-grid-3 .medical-partner-item {
    grid-column: span 1;
}

.medical-partner-grid:first-of-type {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.medical-partner-grid:first-of-type .medical-partner-item {
    width: calc((100% - 40px) / 3);
}

.medical-partner-item {
    background-color: #fff;
    padding: 20px 30px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

a.medical-partner-item[href]:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}

a.medical-partner-item:not([href]) {
    cursor: default;
}

.medical-partner-name {
    font-size: 16px;
    color: #333;
    font-weight: 500;
    flex: 1;
    text-align: center;
}

.medical-partner-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-blue);
    flex-shrink: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-partner {
        padding: 60px 0;
    }

    .medical-partner-title-area {
        margin-bottom: 40px;
    }

    .medical-partner-header {
        padding-left: 50px;
        padding-right: 50px;
    }

    .medical-partner-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-partner-label {
        font-size: 12px;
    }

    .medical-partner-title {
        font-size: 26px;
    }

    .medical-partner-content {
        margin: 0 20px;
    }

    .medical-partner-section {
        padding: 40px 30px;
    }

    .medical-partner-section-title {
        font-size: 20px;
    }

    .medical-partner-section-title-second {
        margin-top: 40px;
    }

    .medical-partner-grid-3 {
        grid-template-columns: 1fr;
    }

    .medical-partner-grid:first-of-type .medical-partner-item {
        width: 100%;
    }

    .medical-partner-item {
        padding: 16px 25px;
    }

    .medical-partner-name {
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .medical-partner-header {
        padding-left: 40px;
        padding-right: 40px;
    }

    .medical-partner-header::before {
        width: 100px;
        height: 100px;
    }

    .medical-partner-label {
        font-size: 11px;
    }

    .medical-partner-title {
        font-size: 22px;
    }

    .medical-partner-content {
        margin: 0 15px;
    }

    .medical-partner-section {
        padding: 30px 20px;
    }

    .medical-partner-section-title {
        font-size: 18px;
    }

    .medical-partner-section-title-second {
        margin-top: 30px;
    }

    .medical-partner-grid:first-of-type .medical-partner-item {
        width: 100%;
    }

    .medical-partner-item {
        padding: 14px 20px;
    }

    .medical-partner-name {
        font-size: 14px;
    }
}

/* 医療費についてセクション */
.medical-fees {
    background-color: #fff;
    padding: 60px 0;
}

.medical-fees-title-area {
    margin-bottom: 80px;
    display: flex;
    justify-content: center;
}

.medical-fees-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-fees-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-fees-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-fees-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-fees-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-fees-content {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.medical-fees-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.medical-fees-card {
    border: 2px solid var(--color-blue);
    border-radius: 12px;
    padding: 40px;
    background-color: #fff;
}

.medical-fees-card-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    text-align: center;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.medical-fees-card-content {
    background-color: var(--color-grey);
    padding: 30px;
    border-radius: 8px;
    text-align: center;
}

.medical-fees-case {
    font-size: 18px;
    color: #333;
    margin-bottom: 20px;
    line-height: 1.8;
}

.medical-fees-condition {
    font-size: 18px;
    color: #333;
}

.medical-fees-amount {
    font-size: 18px;
    color: #333;
    font-weight: 500;
    margin: 0;
}

.medical-fees-other {
    border: 2px solid var(--color-blue);
    border-radius: 12px;
    padding: 40px;
    background-color: #fff;
}

.medical-fees-other-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    text-align: center;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.medical-fees-other-content {
    text-align: center;
}

.medical-fees-other-content p {
    font-size: 18px;
    color: #333;
    text-align: center;
    line-height: 1.9;
    margin: 10px;
}

.medical-fees-other-content p:last-child {
    margin-bottom: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-fees {
        padding: 60px 0;
    }

    .medical-fees-title-area {
        margin-bottom: 40px;
    }

    .medical-fees-header {
        padding-left: 50px;
        padding-right: 50px;
    }

    .medical-fees-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-fees-label {
        font-size: 12px;
    }

    .medical-fees-title {
        font-size: 26px;
    }

    .medical-fees-content {
        margin: 0 20px;
    }

    .medical-fees-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .medical-fees-card {
        padding: 30px 20px;
    }

    .medical-fees-card-title {
        font-size: 20px;
    }

    .medical-fees-card-content {
        padding: 25px 20px;
    }

    .medical-fees-case {
        font-size: 14px;
    }

    .medical-fees-condition {
        font-size: 14px;
    }

    .medical-fees-amount {
        font-size: 16px;
    }

    .medical-fees-other {
        padding: 30px 20px;
    }

    .medical-fees-other-title {
        font-size: 20px;
    }

    .medical-fees-other-content p {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .medical-fees-header {
        padding-left: 40px;
        padding-right: 40px;
    }

    .medical-fees-header::before {
        width: 100px;
        height: 100px;
    }

    .medical-fees-label {
        font-size: 11px;
    }

    .medical-fees-title {
        font-size: 22px;
    }

    .medical-fees-content {
        margin: 0 15px;
    }

    .medical-fees-card {
        padding: 25px 15px;
    }

    .medical-fees-card-title {
        font-size: 18px;
    }

    .medical-fees-card-content {
        padding: 20px 15px;
    }

    .medical-fees-case {
        font-size: 13px;
    }

    .medical-fees-condition {
        font-size: 13px;
    }

    .medical-fees-amount {
        font-size: 15px;
    }

    .medical-fees-other {
        padding: 25px 15px;
    }

    .medical-fees-other-title {
        font-size: 18px;
    }

    .medical-fees-other-content p {
        font-size: 13px;
    }
}

/* 診療までの流れセクション */
.medical-process {
    background-color: #fff;
    padding: 80px 0;
}

.medical-process-header-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1100px;
    margin: 0 auto 60px;
}

.medical-process-title-area {
    flex-shrink: 0;
}

.medical-process-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-process-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-process-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-process-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-process-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-process-intro {
    flex: 1;
    padding-left: 100px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.medical-process-intro p {
    font-size: 20px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 5px 0;
}

.medical-process-intro p:last-child {
    margin-bottom: 0;
}

.medical-process-content {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.medical-process-step {
    background-color: #fff;
}

.medical-process-step-header {
    background: linear-gradient(to bottom, transparent 30%, var(--color-light-blue) 30%);
    padding: 40px 30px 30px;
    position: relative;
    min-height: 120px;
    display: flex;
    align-items: flex-end;
}

.medical-process-step:nth-child(2) .medical-process-step-header {
    background: linear-gradient(to bottom, transparent 30%, var(--color-grey) 30%);
}

.medical-process-step-number {
    font-size: 48px;
    font-weight: 700;
    color: var(--color-blue-text);
    position: absolute;
    top: 10px;
    left: 30px;
    line-height: 1;
}

.medical-process-step-title {
    font-size: 20px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin: 0;
    letter-spacing: 0.05em;
    padding-left: 80px;
}

.medical-process-step-content {
    padding: 30px 100px 10px 100px;
    background-color: #fff;
}

.medical-process-step-text {
    font-size: 16px;
    line-height: 1.5;
    color: #333;
    margin-bottom: 15px;
}

.medical-process-step-text:last-child {
    margin-bottom: 0;
}

.medical-process-contact {
    display: flex;
    flex-direction: column;
    margin-top: 25px;
    gap: 20px;
}

.medical-process-contact-top {
    display: flex;
    align-items: center;
    gap: 30px;
}

.medical-process-hours-times {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.medical-process-hours-closed {
    display: flex;
    align-items: center;
}

.medical-process-contact-bottom {
    display: flex;
    justify-content: center;
}

.medical-process-tel {
    display: flex;
    align-items: center;
    gap: 10px;
}

.medical-process-tel-label {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-blue-text);
}

.medical-process-tel-number {
    font-size: 30px;
    font-weight: 600;
    color: var(--color-blue-text);
}

.medical-process-hours {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.medical-process-hours-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.medical-process-hours-note {
    display: flex;
}

.medical-process-tel-badge {
    border: 2px solid var(--color-blue);
    background-color: #fff;
    color: var(--color-blue);
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 14px;
}

.medical-process-tel-time {
    font-size: 18px;
    color: #333;
}

.medical-process-tel-note {
    font-size: 16px;
    color: #666;
}

.medical-process-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 12px 30px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 500;
    transition: background-color 0.3s ease;
    flex-shrink: 0;
}

.medical-process-button::before {
    content: '✉';
    font-size: 18px;
}

.medical-process-button:hover {
    background-color: #4a6fa0;
}

.medical-process-note {
    margin-top: 5px;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.medical-process-note-label {
    display: inline-block;
    border: 2px solid var(--color-blue);
    color: var(--color-blue);
    padding: 6px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    flex-shrink: 0;
}

.medical-process-note-text {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin: 0;
    flex: 1;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-process {
        padding: 60px 0;
    }

    .medical-process-header-wrapper {
        flex-direction: column;
        gap: 30px;
        margin: 0 20px 40px;
    }

    .medical-process-header {
        padding-left: 50px;
        width: fit-content;
        margin: 0 auto;
    }

    .medical-process-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-process-label {
        font-size: 12px;
    }

    .medical-process-title {
        font-size: 26px;
    }

    .medical-process-intro {
        padding-left: 50px;
        text-align: left;
    }

    .medical-process-intro p {
        font-size: 14px;
    }

    .medical-process-content {
        margin: 0 20px;
    }

    .medical-process-step-header {
        padding: 35px 20px 25px;
        min-height: 100px;
        align-items: center;
        background: linear-gradient(to bottom, transparent 20%, var(--color-light-blue) 20%) !important;
    }

    .medical-process-step:nth-child(2) .medical-process-step-header {
        background: linear-gradient(to bottom, transparent 20%, var(--color-grey) 20%) !important;
    }

    .medical-process-step-number {
        font-size: 40px;
        top: 8px;
        left: 20px;
    }

    .medical-process-step-title {
        font-size: 18px;
        padding-left: 70px;
        align-self: center;
    }

    .medical-process-step-content {
        padding: 25px 20px;
    }

    .medical-process-step-text {
        font-size: 14px;
    }

    .medical-process-contact {
        gap: 20px;
    }

    .medical-process-contact-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .medical-process-tel {
        gap: 10px;
    }

    .medical-process-tel-number {
        font-size: 20px;
    }

    .medical-process-tel-time {
        font-size: 16px;
    }

    .medical-process-button {
        width: 100%;
        justify-content: center;
    }

    .medical-process-note {
        padding: 15px;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .medical-process-note-text {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .medical-process-header {
        padding-left: 40px;
    }

    .medical-process-header::before {
        width: 100px;
        height: 100px;
    }

    .medical-process-label {
        font-size: 11px;
    }

    .medical-process-title {
        font-size: 22px;
    }

    .medical-process-intro {
        padding-left: 40px;
    }

    .medical-process-intro p {
        font-size: 13px;
    }

    .medical-process-content {
        margin: 0 15px;
    }

    .medical-process-step-header {
        padding: 30px 15px 20px;
        min-height: 90px;
        align-items: center;
        background: linear-gradient(to bottom, transparent 20%, var(--color-light-blue) 20%) !important;
    }

    .medical-process-step:nth-child(2) .medical-process-step-header {
        background: linear-gradient(to bottom, transparent 20%, var(--color-grey) 20%) !important;
    }

    .medical-process-step-number {
        font-size: 36px;
        top: 5px;
        left: 15px;
    }

    .medical-process-step-title {
        font-size: 16px;
        padding-left: 60px;
        align-self: center;
    }

    .medical-process-step-content {
        padding: 20px 15px;
    }

    .medical-process-step-text {
        font-size: 13px;
    }

    .medical-process-tel {
        gap: 8px;
    }

    .medical-process-tel-number {
        font-size: 20px;
    }

    .medical-process-tel-time {
        font-size: 16px;
    }

    .medical-process-note {
        padding: 12px;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .medical-process-note-text {
        font-size: 13px;
    }
}

/* アクセスセクション */
.medical-access {
    background-color: #fff;
    padding: 100px 0 40px;
}

.medical-access-title-area {
    margin-bottom: 80px;
    display: flex;
    justify-content: flex-start;
}

.medical-access-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.medical-access-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.medical-access-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.medical-access-label::before {
    content: '●';
    margin-right: 8px;
}

.medical-access-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.medical-access-content {
    max-width: 1000px;
    margin: 0 auto;
}

.medical-access-box {
    background-color: var(--color-light-blue);
    padding: 50px 100px;
    border-radius: 12px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: center;
}

.medical-access-info {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-left: 50px;
}

.medical-access-logo img {
    max-width: 300px;
    height: auto;
}

.medical-access-details p {
    font-size: 20px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 3px 0;
}

.medical-access-details p:last-child {
    margin-bottom: 0;
}

.medical-access-postal {
    font-weight: 500;
}

.medical-access-address {
    font-weight: 500;
}

.medical-access-tel {
    font-weight: 500;
}

.medical-access-tel span {
    font-size: 26px;
    font-weight: 600;
    color: #333;
}

.medical-access-directions p {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 5px 0;
}

.medical-access-directions p:last-child {
    margin-bottom: 0;
}

.medical-access-station {
    color: var(--color-blue-text) !important;
    font-weight: 500;
}

.medical-access-map {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    position: relative;
    padding-bottom: 100%;
    height: 0;
}

.medical-access-map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.medical-access-map img {
    width: 100%;
    height: auto;
    display: block;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .medical-access {
        padding: 80px 0 60px;
    }

    .medical-access-title-area {
        margin-bottom: 40px;
        padding-left: 50px;
    }

    .medical-access-header {
        padding-left: 50px;
        padding-right: 0;
    }

    .medical-access-header::before {
        width: 120px;
        height: 120px;
    }

    .medical-access-label {
        font-size: 12px;
    }

    .medical-access-title {
        font-size: 26px;
    }

    .medical-access-content {
        margin: 0 20px;
    }

    .medical-access-box {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 40px 30px;
    }

    .medical-access-logo img {
        max-width: 250px;
    }

    .medical-access-details p {
        font-size: 14px;
    }

    .medical-access-tel span {
        font-size: 18px;
    }

    .medical-access-directions p {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .medical-access-title-area {
        padding-left: 100px;
    }

    .medical-access-header {
        padding-left: 40px;
        padding-right: 0;
    }

    .medical-access-header::before {
        width: 100px;
        height: 100px;
    }

    .medical-access-label {
        font-size: 11px;
    }

    .medical-access-title {
        font-size: 22px;
    }

    .medical-access-content {
        margin: 0 15px;
    }

    .medical-access-box {
        padding: 30px 20px;
    }

    .medical-access-logo img {
        max-width: 200px;
    }

    .medical-access-details p {
        font-size: 13px;
    }

    .medical-access-tel span {
        font-size: 16px;
    }

    .medical-access-directions p {
        font-size: 13px;
    }
}

/* 投稿コンテンツスタイル（お知らせ・学会活動など） */
.post-content,
.conference-content {
    /* 段落の行間 */
}

.post-content p,
.conference-content p {
    margin-bottom: 1.5em;
}

.post-content p:last-child,
.conference-content p:last-child {
    margin-bottom: 0;
}

/* brタグのみの行間は通常の line-height に従う */

/* 画像スタイル */
.post-content img,
.conference-content img {
    max-width: 100%;
    height: auto;
}

.post-content .aligncenter,
.post-content img.aligncenter,
.conference-content .aligncenter,
.conference-content img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.post-content figure.aligncenter,
.conference-content figure.aligncenter {
    display: table;
    margin-left: auto;
    margin-right: auto;
}

/* 表のスタイル */
.post-content table,
.conference-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 16px;
}

.post-content thead,
.conference-content thead {
    background-color: var(--color-blue);
    color: #fff;
}

.post-content th,
.conference-content th {
    padding: 15px 20px;
    text-align: left;
    font-weight: 500;
    border-right: 2px solid #fff;
}

.post-content th:last-child,
.conference-content th:last-child {
    border-right: none;
}

.post-content td,
.conference-content td {
    padding: 15px 20px;
    border-bottom: 1px solid #ddd;
    color: #333;
}

.post-content tr:last-child td,
.conference-content tr:last-child td {
    border-bottom: none;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .post-content table,
    .conference-content table {
        font-size: 14px;
    }

    .post-content th,
    .post-content td,
    .conference-content th,
    .conference-content td {
        padding: 12px 15px;
    }
}

/* ============================================
   ぴのカフェ ページスタイル
   ============================================ */

/* メインビジュアル */
.cafe-hero {
    background-color: var(--color-beige);
    margin-top: -100px;
    padding-top: 100px;
}

/* 全幅画像エリア */
.cafe-hero-image {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.cafe-hero-image img {
    width: 100%;
    height: 520px;
    display: block;
    object-fit: cover;
}

.cafe-hero-title-wrap {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0 100px;
    z-index: 2;
}

.cafe-hero-title {
    font-size: 48px;
    color: var(--color-brown);
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 40px rgba(255, 255, 255, 0.3);
}

/* 画像下テキストエリア */
.cafe-hero-text {
    background-color: var(--color-beige);
    padding: 50px 40px 60px;
}

.cafe-hero-description {
    max-width: 800px;
    margin: 0 auto;
}

.cafe-hero-description-inner {
    text-align: center;
    font-size: 16px;
    color: var(--color-brown);
    line-height: 2.2;
    letter-spacing: 0.04em;
}

.cafe-hero-description-inner > p {
    margin: 0;
}

/* 下2行 + 葉っぱ横並び */
.cafe-hero-bottom-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-top: 4px;
}

.cafe-hero-bottom-text p {
    margin: 0;
}

.cafe-hero-highlight {
    color: #f78a0a;
    font-size: 20px;
    font-weight: 500;
    margin: 4px 0;
}

/* 葉っぱ装飾 */
.cafe-hero-leaf {
    width: 40px;
    height: auto;
    flex-shrink: 0;
    opacity: 0.6;
}

.cafe-hero-leaf--right {
    transform: scaleX(-1);
}

/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .cafe-hero-image img {
        height: 450px;
    }

    .cafe-hero-title {
        font-size: 42px;
    }

    .cafe-hero-description-inner {
        font-size: 15px;
    }
}

@media (max-width: 768px) {
    .cafe-hero {
        margin-top: -100px;
        padding-top: 100px;
    }

    .cafe-hero-image img {
        height: 350px;
    }

    .cafe-hero-title-wrap {
        padding: 40px 24px 0 24px;
    }

    .cafe-hero-title {
        font-size: 34px;
    }

    .cafe-hero-text {
        padding: 36px 24px 48px;
    }

    .cafe-hero-description-inner {
        font-size: 14px;
        line-height: 2;
    }

    .cafe-hero-highlight {
        font-size: 16px;
    }

    .cafe-hero-bottom-row {
        gap: 16px;
    }

    .cafe-hero-leaf {
        width: 50px;
    }
}

@media (max-width: 480px) {
    .cafe-hero-image img {
        height: 260px;
    }

    .cafe-hero-title-wrap {
        padding: 30px 16px 0 16px;
    }

    .cafe-hero-title {
        font-size: 28px;
    }

    .cafe-hero-text {
        padding: 30px 16px 40px;
    }

    .cafe-hero-description-inner {
        font-size: 13px;
    }

    .cafe-hero-bottom-row {
        gap: 10px;
    }

    .cafe-hero-leaf {
        width: 36px;
    }
}

/* 目的・理念セクション */
.cafe-purpose {
    background-color: var(--color-beige);
    padding: 100px 0 60px 0;
}

.cafe-purpose-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
}

/* セクションヘッダー（ピンの円デザイン） */
.cafe-purpose-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 80px;
}

.cafe-purpose-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.cafe-purpose-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.cafe-purpose-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    margin-bottom: 5px;
}

.cafe-purpose-label::before {
    content: '●';
    margin-right: 8px;
}

.cafe-purpose-title {
    font-size: 32px;
    color: #333;
    font-weight: 500;
    position: relative;
    z-index: 1;
    line-height: 1.4;
}

/* 4つの項目グリッド */
.cafe-purpose-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px 50px;
    max-width: 1100px;
    margin: 0 auto;
}

.cafe-purpose-item {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cafe-purpose-item-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.cafe-purpose-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cafe-purpose-item-text {
    font-size: 16px;
    line-height: 1.9;
    color: var(--color-brown);
    letter-spacing: 0.02em;
}

/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .cafe-purpose-container {
        padding: 0 40px;
    }

    .cafe-purpose-grid {
        gap: 50px 40px;
    }

    .cafe-purpose-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .cafe-purpose-header::before {
        width: 130px;
        height: 130px;
    }

    .cafe-purpose-title {
        font-size: 28px;
    }

    .cafe-purpose-label {
        font-size: 13px;
    }
}

@media (max-width: 768px) {
    .cafe-purpose {
        padding: 60px 0;
    }

    .cafe-purpose-container {
        padding: 0 30px;
    }

    .cafe-purpose-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .cafe-purpose-header-wrapper {
        margin-bottom: 60px;
    }

    .cafe-purpose-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .cafe-purpose-header::before {
        width: 120px;
        height: 120px;
    }

    .cafe-purpose-title {
        font-size: 24px;
    }

    .cafe-purpose-label {
        font-size: 12px;
    }

    .cafe-purpose-item-text {
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .cafe-purpose {
        padding: 50px 0;
    }

    .cafe-purpose-container {
        padding: 0 20px;
    }

    .cafe-purpose-grid {
        gap: 35px;
    }

    .cafe-purpose-title {
        font-size: 20px;
    }

    .cafe-purpose-item-text {
        font-size: 14px;
    }
}

/* ご参加くださいセクション */
.cafe-join {
    background-color: var(--color-beige);
    padding: 80px 0;
}

.cafe-join-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 60px;
}

/* セクションタイトル */
.cafe-join-title {
    font-size: 32px;
    color: var(--color-brown);
    font-weight: 500;
    text-align: center;
    margin-bottom: 60px;
    letter-spacing: 0.05em;
}

/* 3つの円形カード */
.cafe-join-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px;
    max-width: 1000px;
    margin: 0 auto 60px;
}

.cafe-join-card {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cafe-join-card-icon {
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background-color: #fff;
    border: 1px solid var(--color-pink-text);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px;
    gap: 15px;
    box-sizing: border-box;
}

.cafe-join-card-icon img {
    width: 120px;
    height: 120px;
    object-fit: contain;
    flex-shrink: 0;
}

.cafe-join-card-text {
    font-size: 18px;
    color: var(--color-pink-text);
    font-weight: 500;
    text-align: center;
    line-height: 1.6;
}

/* お問い合わせボタン */
.cafe-join-cta {
    text-align: center;
}

.cafe-join-button {
    display: inline-block;
    background-color: var(--color-brown);
    color: #fff;
    text-decoration: none;
    padding: 18px 80px;
    border-radius: 50px;
    font-size: 18px;
    font-weight: 500;
    transition: opacity 0.3s, transform 0.3s;
    box-shadow: 0 4px 15px rgba(132, 97, 69, 0.3);
}

.cafe-join-button:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .cafe-join-container {
        padding: 0 40px;
    }

    .cafe-join-cards {
        gap: 50px;
    }

    .cafe-join-card-icon {
        width: 240px;
        height: 240px;
    }

    .cafe-join-card-icon img {
        width: 100px;
        height: 100px;
    }

    .cafe-join-title {
        font-size: 28px;
    }
}

@media (max-width: 768px) {
    .cafe-join {
        padding: 60px 0;
    }

    .cafe-join-container {
        padding: 0 30px;
    }

    .cafe-join-cards {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-bottom: 50px;
    }

    .cafe-join-card-icon {
        width: 220px;
        height: 220px;
    }

    .cafe-join-card-icon img {
        width: 90px;
        height: 90px;
    }

    .cafe-join-title {
        font-size: 24px;
        margin-bottom: 50px;
    }

    .cafe-join-title .pc-only {
        display: none !important;
    }

    .cafe-join-card-text {
        font-size: 16px;
    }

    .cafe-join-button {
        padding: 15px 60px;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .cafe-join {
        padding: 50px 0;
    }

    .cafe-join-container {
        padding: 0 20px;
    }

    .cafe-join-card-icon {
        width: 200px;
        height: 200px;
        padding: 25px;
    }

    .cafe-join-card-icon img {
        width: 80px;
        height: 80px;
    }

    .cafe-join-title {
        font-size: 20px;
        margin-bottom: 40px;
    }

    .cafe-join-card-text {
        font-size: 15px;
    }

    .cafe-join-button {
        padding: 14px 50px;
        font-size: 15px;
    }
}

/* 開催情報セクション */
.cafe-schedule {
    background-color: var(--color-beige);
    padding: 60px 0;
}

.cafe-schedule-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
}

/* セクションヘッダー（ピンの円デザイン） */
.cafe-schedule-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 80px;
}

.cafe-schedule-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.cafe-schedule-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.cafe-schedule-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    margin-bottom: 5px;
}

.cafe-schedule-label::before {
    content: '●';
    margin-right: 8px;
}

.cafe-schedule-title {
    font-size: 32px;
    color: #333;
    font-weight: 500;
    position: relative;
    z-index: 1;
    line-height: 1.4;
}

/* 開催情報リスト */
.cafe-schedule-list {
    max-width: 650px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.cafe-schedule-item {
    display: flex;
    align-items: center;
    gap: 40px;
}

.cafe-schedule-item-label {
    background-color: var(--color-beige);
    border: 2px solid var(--color-brown);
    border-radius: 15px;
    padding: 15px 40px;
    font-size: 18px;
    color: var(--color-brown);
    font-weight: 500;
    white-space: nowrap;
    min-width: 160px;
    text-align: center;
}

.cafe-schedule-item-content {
    font-size: 18px;
    color: var(--color-brown);
    line-height: 1.8;
    letter-spacing: 0.05em;
}

/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .cafe-schedule-container {
        padding: 0 40px;
    }

    .cafe-schedule-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .cafe-schedule-header::before {
        width: 130px;
        height: 130px;
    }

    .cafe-schedule-title {
        font-size: 28px;
    }

    .cafe-schedule-label {
        font-size: 13px;
    }
}

@media (max-width: 768px) {
    .cafe-schedule {
        padding: 60px 0;
    }

    .cafe-schedule-container {
        padding: 0 30px;
    }

    .cafe-schedule-header-wrapper {
        margin-bottom: 60px;
    }

    .cafe-schedule-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .cafe-schedule-header::before {
        width: 120px;
        height: 120px;
    }

    .cafe-schedule-title {
        font-size: 24px;
    }

    .cafe-schedule-label {
        font-size: 12px;
    }

    .cafe-schedule-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .cafe-schedule-item-label {
        font-size: 16px;
        padding: 12px 30px;
        min-width: 140px;
    }

    .cafe-schedule-item-content {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .cafe-schedule {
        padding: 50px 0;
    }

    .cafe-schedule-container {
        padding: 0 20px;
    }

    .cafe-schedule-title {
        font-size: 20px;
    }

    .cafe-schedule-list {
        gap: 25px;
    }

    .cafe-schedule-item-label {
        font-size: 15px;
        padding: 10px 25px;
        min-width: 120px;
    }

    .cafe-schedule-item-content {
        font-size: 15px;
    }
}

/* 安全・配慮事項セクション */
.cafe-safety {
    background-color: var(--color-beige);
    padding: 80px 0;
}

.cafe-safety-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
}

/* セクションヘッダー（ピンの円デザイン） */
.cafe-safety-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 80px;
}

.cafe-safety-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.cafe-safety-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.cafe-safety-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    margin-bottom: 5px;
}

.cafe-safety-label::before {
    content: '●';
    margin-right: 8px;
}

.cafe-safety-title {
    font-size: 32px;
    color: #333;
    font-weight: 500;
    position: relative;
    z-index: 1;
    line-height: 1.4;
}

/* 配慮事項リスト */
.cafe-safety-list {
    max-width: 850px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.cafe-safety-item {
    background-color: #fff;
    padding: 20px 40px 40px 40px;
    border-radius: 20px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.cafe-safety-item-title {
    font-size: 20px;
    color: var(--color-brown);
    font-weight: 500;
    margin-bottom: 20px;
    padding-top: 10px;
    text-align: center;
    position: relative;
}

.cafe-safety-item-title::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background-color: var(--color-brown);
}

.cafe-safety-item-text {
    font-size: 16px;
    color: #333;
    line-height: 1.9;
    letter-spacing: 0.02em;
}

/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .cafe-safety-container {
        padding: 0 40px;
    }

    .cafe-safety-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .cafe-safety-header::before {
        width: 130px;
        height: 130px;
    }

    .cafe-safety-title {
        font-size: 28px;
    }

    .cafe-safety-label {
        font-size: 13px;
    }

    .cafe-safety-list {
        gap: 35px;
    }
}

@media (max-width: 768px) {
    .cafe-safety {
        padding: 60px 0;
    }

    .cafe-safety-container {
        padding: 0 30px;
    }

    .cafe-safety-header-wrapper {
        margin-bottom: 60px;
    }

    .cafe-safety-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .cafe-safety-header::before {
        width: 120px;
        height: 120px;
    }

    .cafe-safety-title {
        font-size: 24px;
    }

    .cafe-safety-label {
        font-size: 12px;
    }

    .cafe-safety-list {
        gap: 30px;
    }

    .cafe-safety-item {
        padding: 30px;
    }

    .cafe-safety-item-title {
        font-size: 18px;
        margin-bottom: 15px;
        padding-top: 22px;
    }

    .cafe-safety-item-title::before {
        width: 70px;
    }

    .cafe-safety-item-text {
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .cafe-safety {
        padding: 50px 0;
    }

    .cafe-safety-container {
        padding: 0 20px;
    }

    .cafe-safety-title {
        font-size: 20px;
    }

    .cafe-safety-list {
        gap: 25px;
    }

    .cafe-safety-item {
        padding: 25px;
    }

    .cafe-safety-item-title {
        font-size: 17px;
        margin-bottom: 12px;
        padding-top: 20px;
    }

    .cafe-safety-item-title::before {
        width: 60px;
    }

    .cafe-safety-item-text {
        font-size: 14px;
    }
}

/* よくある質問セクション */
.cafe-faq {
    background-image: url('image/cafe-faq-bg.jpg');
    padding: 80px 0;
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* 背景画像を設定する場合は、このコメントを外して画像パスを指定してください */
/* .cafe-faq {
    background-image: url('../image/cafe-faq-bg.jpg');
} */

.cafe-faq-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
    position: relative;
    z-index: 1;
}

/* セクションヘッダー（ピンの円デザイン） */
.cafe-faq-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 80px;
}

.cafe-faq-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.cafe-faq-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.cafe-faq-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    margin-bottom: 5px;
}

.cafe-faq-label::before {
    content: '●';
    margin-right: 8px;
}

.cafe-faq-title {
    font-size: 32px;
    color: #333;
    font-weight: 500;
    position: relative;
    z-index: 1;
    line-height: 1.4;
}

/* FAQ リスト */
.cafe-faq-list {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 35px;
}

.cafe-faq-item {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-bottom: 35px;
    border-bottom: 1px solid #444444;
}

.cafe-faq-question,
.cafe-faq-answer {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.cafe-faq-q {
    font-size: 24px;
    color: var(--color-brown);
    font-weight: 600;
    min-width: 40px;
    flex-shrink: 0;
}

.cafe-faq-question-text {
    font-size: 18px;
    color: var(--color-brown);
    font-weight: 500;
    line-height: 1.8;
    padding-top: 2px;
}

.cafe-faq-a {
    font-size: 24px;
    color: var(--color-pink-text);
    font-weight: 600;
    min-width: 40px;
    flex-shrink: 0;
}

.cafe-faq-answer-text {
    font-size: 16px;
    color: #333;
    line-height: 1.9;
    letter-spacing: 0.02em;
    padding-top: 2px;
}

/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .cafe-faq-container {
        padding: 0 40px;
    }

    .cafe-faq-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .cafe-faq-header::before {
        width: 130px;
        height: 130px;
    }

    .cafe-faq-title {
        font-size: 28px;
    }

    .cafe-faq-label {
        font-size: 13px;
    }
}

@media (max-width: 768px) {
    .cafe-faq {
        padding: 60px 0;
    }

    .cafe-faq-container {
        padding: 0 30px;
    }

    .cafe-faq-header-wrapper {
        margin-bottom: 60px;
    }

    .cafe-faq-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .cafe-faq-header::before {
        width: 120px;
        height: 120px;
    }

    .cafe-faq-title {
        font-size: 24px;
    }

    .cafe-faq-label {
        font-size: 12px;
    }

    .cafe-faq-list {
        gap: 30px;
    }

    .cafe-faq-item {
        padding-bottom: 30px;
    }

    .cafe-faq-q,
    .cafe-faq-a {
        font-size: 20px;
        min-width: 35px;
    }

    .cafe-faq-question-text {
        font-size: 16px;
    }

    .cafe-faq-answer-text {
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .cafe-faq {
        padding: 50px 0;
    }

    .cafe-faq-container {
        padding: 0 20px;
    }

    .cafe-faq-title {
        font-size: 20px;
    }

    .cafe-faq-list {
        gap: 25px;
    }

    .cafe-faq-item {
        padding-bottom: 25px;
    }

    .cafe-faq-question,
    .cafe-faq-answer {
        gap: 10px;
    }

    .cafe-faq-q,
    .cafe-faq-a {
        font-size: 18px;
        min-width: 30px;
    }

    .cafe-faq-question-text {
        font-size: 15px;
    }

    .cafe-faq-answer-text {
        font-size: 14px;
    }
}

/* ==========================================================================
   Instagramセクション（ぴのカフェ）
   ========================================================================== */

.cafe-instagram {
    background-color: var(--color-beige);
    padding: 100px 0;
}

.cafe-instagram-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.cafe-instagram-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.cafe-instagram-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.cafe-instagram-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    margin-bottom: 5px;
}

.cafe-instagram-label::before {
    content: '●';
    margin-right: 8px;
}

.cafe-instagram-title {
    font-size: 32px;
    color: #333;
    font-weight: 500;
    position: relative;
    z-index: 1;
    line-height: 1.4;
}

.cafe-instagram-feed {
    max-width: 1000px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .cafe-instagram {
        padding: 80px 0;
    }

    .cafe-instagram-header-wrapper {
        margin-bottom: 40px;
    }

    .cafe-instagram-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .cafe-instagram-header::before {
        width: 130px;
        height: 130px;
    }

    .cafe-instagram-title {
        font-size: 28px;
    }

    .cafe-instagram-label {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .cafe-instagram-header-wrapper {
        margin-bottom: 60px;
    }

    .cafe-instagram-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .cafe-instagram-header::before {
        width: 120px;
        height: 120px;
    }

    .cafe-instagram-title {
        font-size: 24px;
    }

    .cafe-instagram-label {
        font-size: 12px;
    }
}

/* ==========================================================================
   当院についてページ
   ========================================================================== */

/* メインビジュアル */
.about-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 21 / 6;
    background-image: url('./image/academic-hero.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-start;
}

.about-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.1);
}

.about-hero-content {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0 100px;
    width: 100%;
}

.about-hero-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 40px rgba(255, 255, 255, 0.3);
}

/* 土井医院概要セクション */
.about-overview {
    background-color: #fff;
    padding: 40px 0 80px 0;
    position: relative;
}

.about-overview::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 400px;
    height: 200px;
    background-color: var(--color-pink);
    border-radius: 0 0 200px 200px;
    z-index: 0;
}

.about-overview .container {
    position: relative;
    z-index: 1;
}

.about-overview .section-title {
    margin-bottom: 40px;
    padding-top: 10px;
}

.about-overview-table {
    max-width: 1000px;
    margin: 120px auto 0;
    background-color: #fff;
    border: 2px solid var(--color-grey);
    border-radius: 8px;
    overflow: hidden;
}

.about-overview-row {
    display: grid;
    grid-template-columns: 250px 1fr;
    border-bottom: 2px solid var(--color-grey);
}

.about-overview-row:last-child {
    border-bottom: none;
}

.about-overview-label {
    background-color: var(--color-light-blue);
    padding: 25px 30px;
    font-weight: 600;
    color: var(--color-blue-text);
    font-size: 16px;
    display: flex;
    align-items: center;
    border-right: 2px solid var(--color-grey);
}

.about-overview-content {
    padding: 25px 30px;
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-phone-link {
    color: #333;
    text-decoration: none;
    transition: color 0.3s;
}

.about-phone-link:hover {
    color: var(--color-blue-text);
}

.about-overview-note {
    font-size: 14px;
    color: #666;
    margin-top: 5px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .about-hero {
        aspect-ratio: 16 / 6;
    }

    .about-hero-content {
        padding: 40px 20px 0 60px;
    }

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

    .about-overview {
        padding: 30px 0 60px 0;
    }

    .about-overview::before {
        width: 350px;
        height: 175px;
        border-radius: 0 0 175px 175px;
    }

    .about-overview-table {
        margin: 80px 20px 0;
    }

    .about-overview-row {
        grid-template-columns: 200px 1fr;
    }

    .about-overview-label {
        padding: 20px 20px;
        font-size: 15px;
    }

    .about-overview-content {
        padding: 20px 20px;
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .about-hero {
        aspect-ratio: 4 / 2;
    }

    .about-hero-content {
        padding: 30px 15px 0 40px;
    }

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

    .about-overview::before {
        width: 280px;
        height: 140px;
        border-radius: 0 0 140px 140px;
    }

    .about-overview-table {
        margin: 80px 15px 0;
    }

    .about-overview-row {
        grid-template-columns: 1fr;
    }

    .about-overview-label {
        border-right: none;
        border-bottom: 1px solid var(--color-light-blue);
        padding: 15px 20px;
        font-size: 14px;
    }

    .about-overview-content {
        padding: 15px 20px;
        font-size: 14px;
    }

    .about-overview-note {
        font-size: 13px;
    }
}

/* 医師紹介セクション */
.about-doctors {
    background-color: var(--color-beige);
    padding: 0 0 40px 0;
}

.about-doctors-bg {
    padding: 80px 0 60px 0;
}

.about-doctors-title-area {
    margin-bottom: 0;
    display: flex;
    justify-content: left;
}

.about-doctors-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.about-doctors-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.about-doctors-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.about-doctors-label::before {
    content: '●';
    margin-right: 8px;
}

.about-doctors-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .about-doctors {
        padding: 0 0 60px 0;
    }

    .about-doctors-bg {
        padding: 80px 0 50px 0;
    }

    .about-doctors-title-area {
        margin-bottom: 0;
    }

    .about-doctors-header {
        min-width: 220px;
        padding-left: 65px;
        width: fit-content;
        margin: 0 auto;
    }

    .about-doctors-header::before {
        width: 130px;
        height: 130px;
    }

    .about-doctors-title {
        font-size: 22px;
    }

    .about-doctors-label {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .about-doctors-bg {
        padding: 70px 0 40px 0;
    }

    .about-doctors-title-area {
        margin-bottom: 0;
    }

    .about-doctors-header {
        min-width: 200px;
        padding-left: 60px;
        width: fit-content;
        margin: 0 auto;
    }

    .about-doctors-header::before {
        width: 120px;
        height: 120px;
    }

    .about-doctors-title {
        font-size: 20px;
    }

    .about-doctors-label {
        font-size: 12px;
    }
}

/* ==========================================================================
   指針についてセクション
   ========================================================================== */

.about-guidelines {
    background-color: #fff;
    padding: 0 0 80px 0;
}

.about-guidelines-bg {
    padding: 80px 0 60px 0;
}

.about-guidelines-title-area {
    margin-bottom: 0;
    display: flex;
}

.about-guidelines-header {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 80px;
    min-width: 260px;
}

.about-guidelines-header::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.about-guidelines-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
    position: relative;
    z-index: 1;
}

.about-guidelines-label::before {
    content: '●';
    margin-right: 8px;
}

.about-guidelines-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.about-guidelines-content {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.about-guidelines-item {
    padding: 30px 40px;
    border-radius: 8px;
    background-color: var(--color-light-blue);
}

.about-guidelines-item-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-blue-text);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-blue-text);
    line-height: 1.6;
}

.about-guidelines-item-body p {
    font-size: 15px;
    line-height: 1.9;
    color: #444;
    margin-bottom: 12px;
}

.about-guidelines-item-body p:last-child {
    margin-bottom: 0;
}

.about-guidelines-sign {
    margin-top: 24px !important;
    font-size: 14px !important;
    color: #666 !important;
    text-align: right;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .about-guidelines {
        padding: 0 0 60px 0;
    }

    .about-guidelines-bg {
        padding: 80px 0 80px 0;
    }

    .about-guidelines-title-area {
        justify-content: center;
        margin-bottom: 0;
    }

    .about-guidelines-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .about-guidelines-header::before {
        width: 130px;
        height: 130px;
    }

    .about-guidelines-title {
        font-size: 22px;
    }

    .about-guidelines-label {
        font-size: 13px;
    }

    .about-guidelines-content {
        gap: 20px;
        margin-top: 40px;
    }

    .about-guidelines-item {
        padding: 25px 20px;
    }

    .about-guidelines-item-title {
        font-size: 16px;
    }

    .about-guidelines-item-body p {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .about-guidelines-bg {
        padding: 70px 0 40px 0;
    }

    .about-guidelines-title-area {
        justify-content: center;
        margin-bottom: 0;
    }

    .about-guidelines-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .about-guidelines-header::before {
        width: 120px;
        height: 120px;
    }

    .about-guidelines-title {
        font-size: 20px;
    }

    .about-guidelines-label {
        font-size: 12px;
    }

    .about-guidelines-item {
        padding: 20px 15px;
    }

    .about-guidelines-item-title {
        font-size: 15px;
    }

    .about-guidelines-item-body p {
        font-size: 13px;
    }
}

/* ==========================================================================
   施設基準についてセクション
   ========================================================================== */

.about-standards {
    background-color: #fff;
    padding: 0 0 80px 0;
}

.about-standards-bg {
    padding: 80px 0 60px 0;
}

.about-standards-title-area {
    margin-bottom: 0;
    display: flex;
    justify-content: flex-start;
}

.about-standards-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.about-standards-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.about-standards-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.about-standards-label::before {
    content: '●';
    margin-right: 8px;
}

.about-standards-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.about-standards-content {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 20px;
}

.about-standards-item {
    padding: 30px 40px;
    border-radius: 8px;
}

.about-standards-item:nth-child(odd) {
    background-color: var(--color-grey);
}

.about-standards-item:nth-child(even) {
    background-color: var(--color-beige);
}

.about-standards-item-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-blue-text);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-blue-text);
    line-height: 1.6;
}

.about-standards-item-body p {
    font-size: 15px;
    line-height: 1.9;
    color: #555;
    margin-bottom: 10px;
}

.about-standards-item-body p:last-child {
    margin-bottom: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .about-standards {
        padding: 0 0 60px 0;
    }

    .about-standards-bg {
        padding: 80px 0 50px 0;
    }

    .about-standards-title-area {
        justify-content: center;
        margin-bottom: 0;
    }

    .about-standards-header {
        min-width: 220px;
        padding-left: 65px;
        padding-right: 30px;
    }

    .about-standards-header::before {
        width: 130px;
        height: 130px;
    }

    .about-standards-title {
        font-size: 22px;
    }

    .about-standards-label {
        font-size: 13px;
    }

    .about-standards-content {
        gap: 20px;
    }

    .about-standards-item {
        padding: 25px 20px;
    }

    .about-standards-item-title {
        font-size: 16px;
    }

    .about-standards-item-body p {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .about-standards-bg {
        padding: 70px 0 40px 0;
    }

    .about-standards-title-area {
        justify-content: center;
        margin-bottom: 0;
    }

    .about-standards-header {
        min-width: 200px;
        padding-left: 60px;
        padding-right: 20px;
    }

    .about-standards-header::before {
        width: 120px;
        height: 120px;
    }

    .about-standards-title {
        font-size: 20px;
    }

    .about-standards-label {
        font-size: 12px;
    }

    .about-standards-item {
        padding: 20px 15px;
    }

    .about-standards-item-title {
        font-size: 15px;
    }

    .about-standards-item-body p {
        font-size: 13px;
    }
}

/* ==========================================================================
   ご家族の声ページ
   ========================================================================== */

/* メインビジュアル */
.reviews-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 21 / 6;
    background-image: url('./image/academic-hero.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-start;
}

.reviews-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.1);
}

.reviews-hero-content {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0 100px;
    width: 100%;
}

.reviews-hero-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 40px rgba(255, 255, 255, 0.3);
    margin-bottom: 10px;
}

.reviews-hero-subtitle {
    font-size: 24px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.05em;
    text-shadow:
        0 0 10px rgba(255, 255, 255, 0.9),
        0 0 20px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5);
}

/* イントロダクションテキスト */
.reviews-intro {
    background-color: #fff;
    padding: 80px 0;
}

.reviews-intro-highlight {
    font-size: 28px;
    font-weight: 500;
    color: var(--color-pink-text);
    text-align: center;
    margin: 0 0 40px 0;
    letter-spacing: 0.05em;
    line-height: 1.8;
}

.reviews-intro-text {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.reviews-intro-text p {
    font-size: 18px;
    color: #333;
    line-height: 2;
    margin: 0;
    letter-spacing: 0.05em;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .reviews-hero {
        aspect-ratio: 16 / 6;
    }

    .reviews-hero-content {
        padding: 40px 20px 0 60px;
    }

    .reviews-hero-title {
        font-size: 36px;
    }

    .reviews-hero-subtitle {
        font-size: 16px;
    }

    .reviews-intro {
        padding: 60px 0;
    }

    .reviews-intro-highlight {
        font-size: 22px;
        margin: 0 0 30px 0;
    }

    .reviews-intro-text p {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .reviews-hero {
        aspect-ratio: 4 / 2;
    }

    .reviews-hero-content {
        padding: 30px 15px 0 40px;
    }

    .reviews-hero-title {
        font-size: 28px;
    }

    .reviews-hero-subtitle {
        font-size: 14px;
    }

    .reviews-intro {
        padding: 50px 0;
    }

    .reviews-intro-highlight {
        font-size: 20px;
        padding: 0 20px;
    }

    .reviews-intro-text {
        padding: 0 20px;
    }

    .reviews-intro-text p {
        font-size: 15px;
    }
}

/* ご家族の声セクション */
.reviews-voices {
    padding: 100px 0 80px;
}

.reviews-voices .container {
    max-width: 1300px;
}

.reviews-voices-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.reviews-voices-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.reviews-voices-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.reviews-voices-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.reviews-voices-label::before {
    content: '●';
    margin-right: 8px;
}

.reviews-voices-title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.reviews-voices-items {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.reviews-voice-item {
    display: flex;
    gap: 60px;
    align-items: center;
    background-color: #fff;
    padding: 50px;
    border-radius: 8px;
}

.reviews-voice-item-reverse {
    flex-direction: row-reverse;
}

.reviews-voice-image {
    flex-shrink: 0;
    width: 500px;
}

.reviews-voice-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.reviews-voice-text {
    flex: 1;
}

.reviews-voice-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 25px;
    line-height: 1.6;
}

.reviews-voice-content {
    margin-bottom: 20px;
}

.reviews-voice-content p {
    font-size: 16px;
    color: #333;
    line-height: 1.9;
    margin-bottom: 12px;
}

.reviews-voice-author {
    font-size: 14px;
    color: #666;
    margin-bottom: 20px;
    text-align: left;
}

.reviews-voice-link-wrapper {
    text-align: left;
}

.reviews-voice-link {
    display: inline-block;
    background-color: var(--color-light-blue);
    color: var(--color-blue-text);
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    padding: 10px 30px;
    border: 2px solid var(--color-light-blue);
    border-radius: 50px;
    transition: background-color 0.3s, transform 0.3s;
}

.reviews-voice-link:hover {
    background-color: #d9eef5;
    transform: translateY(-2px);
}

.reviews-contact {
    text-align: center;
    margin-top: 60px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .reviews-voices {
        padding: 80px 0 60px;
    }

    .reviews-voices-header-wrapper {
        margin-bottom: 50px;
    }

    .reviews-voices-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .reviews-voices-header::before {
        width: 130px;
        height: 130px;
    }

    .reviews-voices-title {
        font-size: 28px;
    }

    .reviews-voices-label {
        font-size: 13px;
    }

    .reviews-voices-items {
        gap: 50px;
    }

    .reviews-voice-item {
        gap: 40px;
        padding: 40px;
    }

    .reviews-voice-image {
        width: 450px;
    }

    .reviews-voice-title {
        font-size: 20px;
    }
}

@media (max-width: 480px) {
    .reviews-voices {
        padding: 60px 0 50px;
    }

    .reviews-voices-header-wrapper {
        margin-bottom: 40px;
    }

    .reviews-voices-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .reviews-voices-header::before {
        width: 120px;
        height: 120px;
    }

    .reviews-voices-title {
        font-size: 24px;
    }

    .reviews-voices-label {
        font-size: 12px;
    }

    .reviews-voices-items {
        gap: 40px;
    }

    .reviews-voice-item {
        flex-direction: column;
        gap: 30px;
        padding: 30px 25px;
    }

    .reviews-voice-item-reverse {
        flex-direction: column;
    }

    .reviews-voice-image {
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }

    .reviews-voice-title {
        font-size: 18px;
        margin-bottom: 20px;
    }

    .reviews-voice-content p {
        font-size: 14px;
    }

    .reviews-voice-author {
        font-size: 13px;
    }

    .reviews-voice-link {
        font-size: 14px;
        padding: 8px 25px;
    }
}

/* ==============================
   看護師さんセクション
   ============================== */
.reviews-nurses {
    background-color: var(--color-beige);
    padding: 100px 0 80px;
}

.reviews-nurses .container {
    max-width: 1400px;
}

.reviews-nurses-items {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.reviews-nurses-item {
    display: flex;
    gap: 60px;
    align-items: center;
    background-color: var(--color-beige);
    padding: 50px;
}

.reviews-nurses-item-reverse {
    flex-direction: row-reverse;
}

.reviews-nurses-image {
    flex-shrink: 0;
    width: 500px;
}

.reviews-nurses-image img {
    width: 100%;
    height: auto;
    display: block;
}

.reviews-nurses-text {
    flex: 1;
}

.reviews-nurses-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 20px;
}

.reviews-nurses-content {
    color: #666;
    line-height: 1.9;
}

.reviews-nurses-content p {
    margin-bottom: 16px;
}

.reviews-nurses-content p:last-child {
    margin-bottom: 0;
}

.reviews-nurses-contact {
    text-align: center;
    margin-top: 60px;
}

/* タブレット対応 */
@media (max-width: 768px) {
    .reviews-nurses {
        padding: 80px 0 60px;
    }

    .reviews-nurses-items {
        gap: 40px;
    }

    .reviews-nurses-item {
        gap: 40px;
        padding: 40px 35px;
    }

    .reviews-nurses-image {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .reviews-nurses-title {
        font-size: 22px;
        margin-bottom: 18px;
    }

    .reviews-nurses-content {
        font-size: 15px;
    }

    .reviews-nurses-contact {
        margin-top: 50px;
    }
}

/* スマホ対応 */
@media (max-width: 480px) {
    .reviews-nurses {
        padding: 60px 0 50px;
    }

    .reviews-nurses-items {
        gap: 30px;
    }

    .reviews-nurses-item {
        flex-direction: column;
        gap: 30px;
        padding: 30px 25px;
    }

    .reviews-nurses-item-reverse {
        flex-direction: column;
    }

    .reviews-nurses-image {
        flex: 1;
        max-width: 100%;
    }

    .reviews-nurses-title {
        font-size: 20px;
        margin-bottom: 16px;
    }

    .reviews-nurses-content {
        font-size: 14px;
    }

    .reviews-nurses-content p {
        margin-bottom: 14px;
    }

    .reviews-nurses-contact {
        margin-top: 40px;
    }
}

/* ==============================
   母との筆談セクション
   ============================== */
.reviews-letter {
    background-color: #fff;
    padding: 100px 0;
}

.reviews-letter-image {
    max-width: 1200px;
    margin: 0 auto 60px;
}

.reviews-letter-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.reviews-letter-content {
    max-width: 1000px;
    margin: 0 auto;
}

.reviews-letter-title {
    font-size: 28px;
    font-weight: 500;
    color: var(--color-blue-text);
    text-align: center;
    margin-bottom: 50px;
    line-height: 1.6;
}

.reviews-letter-text {
    color: #666;
    line-height: 2;
    font-size: 16px;
}

.reviews-letter-text p {
    margin-bottom: 24px;
}

.reviews-letter-text p:last-child {
    margin-bottom: 0;
}

/* タブレット対応 */
@media (max-width: 768px) {
    .reviews-letter {
        padding: 80px 0;
    }

    .reviews-letter-image {
        margin-bottom: 50px;
    }

    .reviews-letter-title {
        font-size: 24px;
        margin-bottom: 40px;
    }

    .reviews-letter-text {
        font-size: 15px;
    }

    .reviews-letter-text p {
        margin-bottom: 20px;
    }

    .reviews-letter-highlight {
        font-size: 17px !important;
        margin-top: 35px !important;
    }
}

/* スマホ対応 */
@media (max-width: 480px) {
    .reviews-letter {
        padding: 60px 0;
    }

    .reviews-letter-image {
        margin-bottom: 40px;
    }

    .reviews-letter-title {
        font-size: 20px;
        margin-bottom: 35px;
    }

    .reviews-letter-text {
        font-size: 14px;
        line-height: 1.9;
    }

    .reviews-letter-text p {
        margin-bottom: 18px;
    }

    .reviews-letter-highlight {
        font-size: 16px !important;
        margin-top: 30px !important;
    }
}

.reviews-letter-contact {
    text-align: center;
    margin-top: 60px;
}

@media (max-width: 768px) {
    .reviews-letter-contact {
        margin-top: 50px;
    }
}

@media (max-width: 480px) {
    .reviews-letter-contact {
        margin-top: 40px;
    }
}

/* ==============================
   在宅医療のある日常セクション
   ============================== */
.reviews-daily {
    background-color: var(--color-light-blue);
    padding: 60px 0;
}

.reviews-daily-header {
    text-align: center;
    margin-bottom: 40px;
}

.reviews-daily-line {
    width: 100px;
    height: 3px;
    background-color: var(--color-blue-text);
    margin: 0 auto 15px;
}

.reviews-daily-title {
    font-size: 36px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 10px;
    letter-spacing: 0.05em;
}

.reviews-daily-subtitle {
    font-size: 24px;
    color: var(--color-blue-text);
    font-weight: 400;
    letter-spacing: 0.1em;
}

.reviews-daily-intro {
    text-align: left;
    max-width: 700px;
    margin: 0 auto 60px;
    color: #666;
    line-height: 1.9;
}

.reviews-daily-intro p {
    margin-bottom: 10px;
}

.reviews-daily-intro p:last-child {
    margin-bottom: 0;
}

/* カレンダー */
.reviews-daily-calendar {
    max-width: 1000px;
    margin: 0 auto 50px;
    padding: 30px;
}

.calendar-header {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    margin-bottom: 0;
}

.calendar-day {
    text-align: center;
    font-weight: 600;
    font-size: 20px;
    padding: 15px 0;
    color: var(--color-blue);
}

.calendar-body {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    background-color: var(--color-blue);
    border: 3px solid var(--color-blue);
}

.calendar-cell {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0;
    position: relative;
    background-color: #fff;
}

.calendar-cell.sun {
    color: #e74c3c;
}

.calendar-cell.sat {
    color: #0072d4;
}

.calendar-cell.prev-month,
.calendar-cell.next-month {
    color: #ccc;
}

.calendar-date {
    position: absolute;
    top: 8px;
    left: 8px;
    font-weight: 600;
    font-size: 24px;
    z-index: 1;
}

.calendar-icon {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 10px;
}

/* 凡例 */
.reviews-daily-legend {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    margin-bottom: 40px;
    background-color: #fff;
    padding: 20px 30px;
    border-radius: 20px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.legend-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.legend-icon {
    width: 100px;
    height: 100px;
    object-fit: contain;
}

.legend-text {
    font-size: 16px;
    color: #666;
    margin: 0;
    text-align: center;
}

/* 注意書き */
.reviews-daily-notes {
    text-align: center;
    color: #666;
    font-size: 16px;
    line-height: 1.8;
}

.reviews-daily-notes p {
    margin-bottom: 5px;
}

.reviews-daily-notes p:last-child {
    margin-bottom: 0;
}

/* タブレット対応 */
@media (max-width: 768px) {
    .reviews-daily {
        padding: 80px 0;
    }

    .reviews-daily-header {
        margin-bottom: 50px;
    }

    .reviews-daily-title {
        font-size: 28px;
    }

    .reviews-daily-subtitle {
        font-size: 15px;
    }

    .reviews-daily-intro {
        margin-bottom: 50px;
        font-size: 15px;
    }

    .reviews-daily-calendar {
        padding: 20px;
    }

    .calendar-day {
        font-size: 16px;
        padding: 12px 0;
    }

    .calendar-date {
        font-size: 18px;
        top: 6px;
        left: 6px;
    }

    .legend-icon {
        width: 80px;
        height: 80px;
    }

    .reviews-daily-legend {
        gap: 30px;
        padding: 30px 20px;
    }
}

/* スマホ対応 */
@media (max-width: 480px) {
    .reviews-daily {
        padding: 60px 0;
    }

    .reviews-daily-header {
        margin-bottom: 40px;
    }

    .reviews-daily-title {
        font-size: 24px;
    }

    .reviews-daily-subtitle {
        font-size: 14px;
    }

    .reviews-daily-intro {
        margin-bottom: 40px;
        font-size: 14px;
    }

    .reviews-daily-calendar {
        padding: 15px;
    }

    .calendar-day {
        font-size: 14px;
        padding: 10px 0;
    }

    .calendar-date {
        font-size: 12px;
        top: 3px;
        left: 3px;
    }

    .reviews-daily-legend {
        gap: 20px;
        padding: 25px 15px;
    }

    .legend-icon {
        width: 60px;
        height: 60px;
    }

    .legend-text {
        font-size: 13px;
    }

    .reviews-daily-notes {
        font-size: 13px;
    }
}

/* ==============================
   よくある質問セクション
   ============================== */
.reviews-faq {
    padding: 100px 0;
}

.reviews-faq-header-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 80px;
}

.reviews-faq-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 80px;
}

.reviews-faq-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.reviews-faq-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
}

.reviews-faq-label::before {
    content: '●';
    margin-right: 8px;
}

.reviews-faq-title {
    font-size: 32px;
    color: #333;
    font-weight: 500;
    position: relative;
    z-index: 1;
    margin: 5px 0 0;
}

.reviews-faq-list {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 35px;
}

.reviews-faq-item {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-bottom: 35px;
    border-bottom: 1px solid #444444;
}

.reviews-faq-question,
.reviews-faq-answer {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.reviews-faq-q {
    font-size: 24px;
    color: var(--color-blue);
    font-weight: 600;
    min-width: 40px;
    flex-shrink: 0;
}

.reviews-faq-question-text {
    font-size: 18px;
    color: var(--color-blue-text);
    font-weight: 500;
    line-height: 1.8;
    padding-top: 2px;
}

.reviews-faq-a {
    font-size: 24px;
    color: #333;
    font-weight: 600;
    min-width: 40px;
    flex-shrink: 0;
}

.reviews-faq-answer-text {
    color: #333;
    line-height: 1.9;
    letter-spacing: 0.02em;
    padding-top: 2px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.reviews-faq-answer-text p {
    font-size: 16px;
    margin: 0;
}

.reviews-faq-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--color-blue);
    margin-top: 8px;
    transition: all 0.3s ease;
}

.reviews-faq-link:hover .reviews-faq-arrow {
    background-color: #4a6fa0;
}

.reviews-faq-arrow {
    width: 30px;
    height: 30px;
    background-color: var(--color-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    transition: background-color 0.3s ease;
}

.reviews-faq-link-text {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-blue);
}

/* タブレット対応 */
@media (max-width: 1024px) {
    .reviews-faq-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .reviews-faq-header::before {
        width: 130px;
        height: 130px;
    }

    .reviews-faq-title {
        font-size: 28px;
    }

    .reviews-faq-label {
        font-size: 13px;
    }
}

@media (max-width: 768px) {
    .reviews-faq {
        padding: 60px 0;
    }

    .reviews-faq-header-wrapper {
        margin-bottom: 40px;
    }

    .reviews-faq-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .reviews-faq-header::before {
        width: 120px;
        height: 120px;
    }

    .reviews-faq-title {
        font-size: 24px;
    }

    .reviews-faq-label {
        font-size: 12px;
    }

    .reviews-faq-list {
        gap: 30px;
    }

    .reviews-faq-item {
        padding-bottom: 30px;
    }

    .reviews-faq-q,
    .reviews-faq-a {
        font-size: 20px;
        min-width: 35px;
    }

    .reviews-faq-question-text {
        font-size: 16px;
    }

    .reviews-faq-answer-text p {
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .reviews-faq {
        padding: 50px 0;
    }

    .reviews-faq-title {
        font-size: 20px;
    }

    .reviews-faq-list {
        gap: 25px;
    }

    .reviews-faq-item {
        padding-bottom: 25px;
    }

    .reviews-faq-question,
    .reviews-faq-answer {
        gap: 10px;
    }

    .reviews-faq-q,
    .reviews-faq-a {
        font-size: 18px;
        min-width: 30px;
    }

    .reviews-faq-question-text {
        font-size: 15px;
    }

    .reviews-faq-answer-text p {
        font-size: 14px;
    }

    .reviews-faq-arrow {
        width: 26px;
        height: 26px;
        font-size: 16px;
    }

    .reviews-faq-link-text {
        font-size: 13px;
    }
}

/* ================================================
   ブログ・お知らせ用見出しスタイル
   ================================================ */

/* H2: 黒文字、ブルー下線、右端にピンクの円 */
.entry-content h2,
.post-content h2 {
    position: relative;
    font-size: 26px;
    font-weight: 600;
    color: #333;
    padding-bottom: 15px;
    padding-left: 20px;
    margin: 60px 0 30px;
    overflow: visible;
    isolation: isolate;
}

.entry-content h2::before,
.post-content h2::before {
    content: '';
    position: absolute;
    left: -20px;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;
    height: 80px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: -1;
}

.entry-content h2::after,
.post-content h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background-color: var(--color-blue);
}

/* H3: 左にブルーのアクセントバー */
.entry-content h3,
.post-content h3 {
    position: relative;
    font-size: 22px;
    font-weight: 600;
    color: #333;
    padding-left: 18px;
    margin: 50px 0 25px;
    border-left: 4px solid var(--color-blue);
}

/* H4: ブルーのドットアクセント */
.entry-content h4,
.post-content h4 {
    position: relative;
    font-size: 18px;
    font-weight: 600;
    color: var(--color-blue-text);
    padding-left: 20px;
    margin: 40px 0 20px;
}

.entry-content h4::before,
.post-content h4::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    background-color: var(--color-blue);
    border-radius: 50%;
}

/* 最初の見出しはマージン上を小さく */
.entry-content h2:first-child,
.post-content h2:first-child,
.entry-content h3:first-child,
.post-content h3:first-child,
.entry-content h4:first-child,
.post-content h4:first-child {
    margin-top: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .entry-content h2,
    .post-content h2 {
        font-size: 22px;
        padding-bottom: 12px;
        margin: 45px 0 25px;
    }

    .entry-content h2::before,
    .post-content h2::before {
        width: 60px;
        height: 60px;
        left: -10px;
    }

    .entry-content h3,
    .post-content h3 {
        font-size: 19px;
        padding-left: 15px;
        margin: 40px 0 20px;
    }

    .entry-content h4,
    .post-content h4 {
        font-size: 16px;
        padding-left: 18px;
        margin: 35px 0 18px;
    }
}

@media (max-width: 480px) {
    .entry-content h2,
    .post-content h2 {
        font-size: 20px;
        margin: 40px 0 20px;
    }

    .entry-content h2::before,
    .post-content h2::before {
        width: 50px;
        height: 50px;
        left: -5px;
    }

    .entry-content h3,
    .post-content h3 {
        font-size: 17px;
        margin: 35px 0 18px;
    }

    .entry-content h4,
    .post-content h4 {
        font-size: 15px;
        margin: 30px 0 15px;
    }
}

/* ==========================================================================
   ブログ一覧ページ
   ========================================================================== */

/* ブログ一覧ページ全体 */
.blog-archive-page {
    background-color: var(--color-grey);
}

/* タイトルセクション（ピンク円 + 英語ラベル + 日本語タイトル） */
.blog-title-section {
    background-color: var(--color-grey);
    padding: 80px 0;
}

.blog-title-area {
    display: flex;
    justify-content: center;
}

.blog-title-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.blog-title-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.blog-title-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.blog-title-label::before {
    content: '●';
    margin-right: 8px;
}

.blog-title-text {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
    margin: 0;
}

/* 記事一覧セクション */
.blog-list-section {
    background-color: var(--color-grey);
    padding: 60px 0 80px;
}

.blog-list-wrapper {
    max-width: 800px;
    margin: 0 auto;
}

/* 記事カード */
.blog-archive-card {
    background: #fff;
    padding: 30px;
    margin-bottom: 30px;
    border-radius: 8px;
    border: 2px solid var(--color-blue);
}

.blog-archive-thumbnail {
    margin-bottom: 20px;
    border-radius: 8px;
    overflow: hidden;
}

.blog-archive-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.blog-archive-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 15px;
}

.blog-archive-title a {
    text-decoration: none;
    color: var(--color-blue-text);
    transition: opacity 0.3s;
}

.blog-archive-title a:hover {
    opacity: 0.7;
}

.blog-archive-meta {
    font-size: 14px;
    color: #666;
    margin-bottom: 15px;
    display: flex;
    gap: 15px;
    align-items: center;
}

.blog-archive-category {
    background-color: var(--color-light-blue);
    color: var(--color-blue-text);
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 12px;
}

.blog-archive-excerpt {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

.blog-archive-readmore {
    display: inline-block;
    margin-top: 15px;
    color: var(--color-blue);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.3s;
}

.blog-archive-readmore:hover {
    opacity: 0.7;
}

/* ページネーション */
.blog-archive-pagination {
    margin-top: 40px;
    text-align: center;
}

.blog-archive-pagination .page-numbers {
    display: inline-block;
    padding: 10px 15px;
    margin: 0 5px;
    background-color: #fff;
    color: var(--color-blue-text);
    text-decoration: none;
    border-radius: 4px;
    border: 1px solid var(--color-light-blue);
    transition: all 0.3s;
}

.blog-archive-pagination .page-numbers:hover,
.blog-archive-pagination .page-numbers.current {
    background-color: var(--color-blue);
    color: #fff;
    border-color: var(--color-blue);
}

/* 記事なしメッセージ */
.blog-archive-empty {
    text-align: center;
    padding: 60px 0;
}

.blog-archive-empty h2 {
    font-size: 24px;
    color: #666;
    margin-bottom: 20px;
}

.blog-archive-empty p {
    font-size: 16px;
    color: #666;
}

/* トップへ戻るボタン */
.blog-archive-back {
    text-align: center;
    margin-top: 60px;
}

.blog-archive-back-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 15px 50px;
    border-radius: 50px;
    font-size: 16px;
    transition: opacity 0.3s;
}

.blog-archive-back-button:hover {
    opacity: 0.8;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .blog-title-section {
        padding: 60px 0;
    }

    .blog-title-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .blog-title-header::before {
        width: 130px;
        height: 130px;
    }

    .blog-title-text {
        font-size: 26px;
    }

    .blog-title-label {
        font-size: 13px;
    }

    .blog-list-section {
        padding: 50px 0 60px;
    }

    .blog-archive-card {
        padding: 25px;
        margin-bottom: 25px;
    }

    .blog-archive-title {
        font-size: 20px;
        font-weight: 500;
    }
}

@media (max-width: 480px) {
    .blog-title-section {
        padding: 50px 0;
    }

    .blog-title-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .blog-title-header::before {
        width: 120px;
        height: 120px;
    }

    .blog-title-text {
        font-size: 22px;
    }

    .blog-title-label {
        font-size: 12px;
    }

    .blog-list-section {
        padding: 40px 0 50px;
    }

    .blog-archive-card {
        padding: 20px;
        margin-bottom: 20px;
    }

    .blog-archive-title {
        font-size: 18px;
        font-weight: 500;
    }

    .blog-archive-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .blog-archive-excerpt {
        font-size: 14px;
    }

    .blog-archive-back-button {
        padding: 12px 40px;
        font-size: 14px;
    }
}

/* ==========================================================================
   お知らせ一覧ページ
   ========================================================================== */

/* お知らせ一覧ページ全体 */
.news-archive-page {
    background-color: var(--color-light-blue);
}

/* タイトルセクション（ピンク円 + 英語ラベル + 日本語タイトル） */
.news-title-section {
    background-color: var(--color-light-blue);
    padding: 80px 0;
}

.news-title-area {
    display: flex;
    justify-content: center;
}

.news-title-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 250px;
    padding-left: 60px;
}

.news-title-header::before {
    content: '';
    position: absolute;
    left: 0;
    width: 150px;
    height: 150px;
    background-color: var(--color-pink);
    border-radius: 50%;
    z-index: 0;
}

.news-title-label {
    color: var(--color-blue-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    position: relative;
    z-index: 1;
}

.news-title-label::before {
    content: '●';
    margin-right: 8px;
}

.news-title-text {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
    white-space: nowrap;
    margin: 0;
}

/* 記事一覧セクション */
.news-list-section {
    background-color: var(--color-light-blue);
    padding: 60px 0 80px;
}

.news-list-wrapper {
    max-width: 800px;
    margin: 0 auto;
}

/* 記事カード */
.news-archive-card {
    background: #fff;
    padding: 30px;
    margin-bottom: 30px;
    border-radius: 8px;
    border: 2px solid var(--color-blue);
}

.news-archive-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-blue-text);
    margin-bottom: 15px;
}

.news-archive-title a {
    text-decoration: none;
    color: var(--color-blue-text);
    transition: opacity 0.3s;
}

.news-archive-title a:hover {
    opacity: 0.7;
}

.news-archive-meta {
    font-size: 14px;
    color: #666;
    margin-bottom: 15px;
}

.news-archive-excerpt {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

.news-archive-readmore {
    display: inline-block;
    margin-top: 15px;
    color: var(--color-blue);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.3s;
}

.news-archive-readmore:hover {
    opacity: 0.7;
}

/* ページネーション */
.news-archive-pagination {
    margin-top: 40px;
    text-align: center;
}

.news-archive-pagination .page-numbers {
    display: inline-block;
    padding: 10px 15px;
    margin: 0 5px;
    background-color: #fff;
    color: var(--color-blue-text);
    text-decoration: none;
    border-radius: 4px;
    border: 1px solid var(--color-blue);
    transition: all 0.3s;
}

.news-archive-pagination .page-numbers:hover,
.news-archive-pagination .page-numbers.current {
    background-color: var(--color-blue);
    color: #fff;
}

/* 記事なしメッセージ */
.news-archive-empty {
    text-align: center;
    padding: 60px 0;
}

.news-archive-empty h2 {
    font-size: 24px;
    color: #666;
    margin-bottom: 20px;
}

.news-archive-empty p {
    font-size: 16px;
    color: #666;
}

/* トップへ戻るボタン */
.news-archive-back {
    text-align: center;
    margin-top: 60px;
}

.news-archive-back-button {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    padding: 15px 50px;
    border-radius: 50px;
    font-size: 16px;
    transition: opacity 0.3s;
}

.news-archive-back-button:hover {
    opacity: 0.8;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .news-title-section {
        padding: 60px 0;
    }

    .news-title-header {
        min-width: 220px;
        padding-left: 65px;
    }

    .news-title-header::before {
        width: 130px;
        height: 130px;
    }

    .news-title-text {
        font-size: 26px;
    }

    .news-title-label {
        font-size: 13px;
    }

    .news-list-section {
        padding: 50px 0 60px;
    }

    .news-archive-card {
        padding: 25px;
        margin-bottom: 25px;
    }

    .news-archive-title {
        font-size: 20px;
        font-weight: 500;
    }
}

@media (max-width: 480px) {
    .news-title-section {
        padding: 50px 0;
    }

    .news-title-header {
        min-width: 200px;
        padding-left: 60px;
    }

    .news-title-header::before {
        width: 120px;
        height: 120px;
    }

    .news-title-text {
        font-size: 22px;
    }

    .news-title-label {
        font-size: 12px;
    }

    .news-list-section {
        padding: 40px 0 50px;
    }

    .news-archive-card {
        padding: 20px;
        margin-bottom: 20px;
    }

    .news-archive-title {
        font-size: 18px;
        font-weight: 500;
    }

    .news-archive-excerpt {
        font-size: 14px;
    }

    .news-archive-back-button {
        padding: 12px 40px;
        font-size: 14px;
    }
}

/* フッターナビ レスポンシブ */
@media (max-width: 768px) {
    .footer-content {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }

    .footer-info {
        text-align: center;
    }

    .footer-nav {
        width: 100%;
    }

    .footer-nav-list {
        grid-template-columns: repeat(3, auto);
        gap: 0 20px;
    }

    .footer-nav-list li,
    .footer-nav-list li:nth-last-child(-n+5) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding: 8px 0;
    }

    .footer-nav-list li:nth-last-child(-n+3) {
        border-bottom: none;
    }
}

@media (max-width: 480px) {
    .footer-nav-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 0 16px;
    }

    .footer-nav-list li,
    .footer-nav-list li:nth-last-child(-n+5),
    .footer-nav-list li:nth-last-child(-n+3) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
        padding: 8px 0;
    }

    .footer-nav-list li:last-child {
        border-bottom: none;
    }
}

/* ===========================
   お問い合わせページ
   =========================== */

/* ヒーローセクション */
.contact-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 21 / 6;
    background-image: url('./image/academic-hero.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-start;
}

.contact-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.3);
}

.contact-hero-content {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 30px 0 100px;
    width: 100%;
}

.contact-hero-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-blue-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
}

/* お問い合わせセクション */
.contact-section {
    padding: 60px 0 80px;
}

.contact-intro {
    font-size: 20px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 5px;
}

/* 電話ボックス */
.contact-phone-box {
    display: flex;
    align-items: center;
    border: 2px solid #ddd;
    border-radius: 4px;
    margin: 40px 0 60px;
    overflow: hidden;
}

.contact-phone-label {
    background-color: var(--color-blue);
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    padding: 50px 35px;
    white-space: nowrap;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
}

.contact-phone-info {
    display: flex;
    align-items: center;
    flex: 1;
    padding: 20px 50px;
    gap: 50px;
}

.contact-phone-number {
    font-size: 28px;
    font-weight: 700;
    white-space: nowrap;
}

.contact-phone-number a {
    text-decoration: none;
    color: #333;
}

.contact-phone-hours p {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
}

.contact-phone-note {
    font-size: 16px !important;
    color: #666 !important;
}

/* フォームセクション */
.contact-form-section {
    margin-top: 0;
}

.contact-form-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-blue);
    margin-top: 40px;
    margin-bottom: 20px;
}

.contact-form-icon {
    margin-right: 8px;
    font-size: 20px;
}

.contact-form-desc {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

.contact-required {
    color: #e74c3c;
    font-weight: 700;
}

.contact-privacy-link {
    text-align: right;
    margin: 25px 0 15px;
}

.contact-privacy-link a {
    color: var(--color-blue);
    text-decoration: none;
    font-size: 16px;
}

.contact-privacy-link a:hover {
    text-decoration: underline;
}

/* フォームテーブル */
.contact-form-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid #ddd;
}

.contact-form-table tr {
    border-bottom: 1px solid #ddd;
}

.contact-form-table th {
    text-align: left;
    font-size: 16px;
    font-weight: 700;
    color: #333;
    padding: 20px 25px;
    width: 220px;
    vertical-align: middle;
    background-color: #fff;
}

.contact-form-table td {
    padding: 15px 20px;
}

.contact-form-table input[type="text"],
.contact-form-table input[type="email"],
.contact-form-table input[type="tel"],
.contact-form-table textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    transition: border-color 0.3s;
}

.contact-form-table input[type="text"]:focus,
.contact-form-table input[type="email"]:focus,
.contact-form-table input[type="tel"]:focus,
.contact-form-table textarea:focus {
    outline: none;
    border-color: var(--color-blue);
    box-shadow: 0 0 0 2px rgba(93, 135, 183, 0.15);
}

.contact-form-table select {
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 16px;
    background-color: #fff;
    cursor: pointer;
}

.contact-form-table select:focus {
    outline: none;
    border-color: var(--color-blue);
}

.contact-input-short {
    width: 250px !important;
}

.contact-radio-group {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
}

.contact-radio-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    cursor: pointer;
}

.contact-radio-label input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: var(--color-blue);
    cursor: pointer;
}

.contact-field-note {
    font-size: 16px;
    color: #888;
    margin-top: 5px;
}

.contact-form-table textarea {
    resize: vertical;
    min-height: 160px;
}

/* 送信ボタン */
.contact-form-submit {
    text-align: center;
    margin-top: 40px;
}

.contact-submit-btn {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 18px;
    font-weight: 700;
    padding: 16px 50px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    letter-spacing: 0.05em;
    transition: background-color 0.3s, transform 0.2s;
}

.contact-submit-btn:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* 確認画面 */
.contact-confirm-table td {
    font-size: 16px;
    line-height: 1.8;
    padding: 20px;
}

.contact-confirm-message {
    white-space: pre-wrap;
}

.contact-confirm-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
}

.contact-back-btn {
    display: inline-block;
    background-color: #999;
    color: #fff;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 18px;
    font-weight: 700;
    padding: 16px 50px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    letter-spacing: 0.05em;
    transition: background-color 0.3s, transform 0.2s;
}

.contact-back-btn:hover {
    background-color: #777;
    transform: translateY(-2px);
}

/* 送信完了画面 */
.contact-complete {
    text-align: center;
    padding: 60px 0 40px;
}

.contact-complete-icon {
    font-size: 64px;
    color: var(--color-blue);
    margin-bottom: 25px;
}

.contact-error-icon {
    color: #e74c3c;
}

.contact-complete-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--color-blue-text);
    margin-bottom: 25px;
}

.contact-complete-text {
    font-size: 20px;
    line-height: 2;
    color: #555;
    margin-bottom: 40px;
}

.contact-complete-action {
    margin-top: 10px;
}

.contact-back-home-btn {
    display: inline-block;
    background-color: var(--color-blue);
    color: #fff;
    text-decoration: none;
    font-size: 16px;
    font-weight: 700;
    padding: 16px 50px;
    border-radius: 50px;
    letter-spacing: 0.05em;
    transition: background-color 0.3s, transform 0.2s;
}

.contact-back-home-btn:hover {
    background-color: #4a6fa0;
    transform: translateY(-2px);
}

/* エラー表示 */
.contact-errors {
    background-color: #fdf0f0;
    border: 1px solid #e74c3c;
    border-radius: 4px;
    padding: 15px 20px;
    margin: 20px 0;
}

.contact-errors ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.contact-errors li {
    color: #e74c3c;
    font-size: 14px;
    line-height: 1.8;
    padding-left: 20px;
    position: relative;
}

.contact-errors li::before {
    content: '!';
    position: absolute;
    left: 0;
    font-weight: 700;
}

/* お問い合わせ レスポンシブ */
@media screen and (max-width: 1024px) {
    .contact-hero {
        aspect-ratio: 16 / 6;
    }

    .contact-hero-content {
        padding: 40px 20px 0 60px;
    }

    .contact-hero-title {
        font-size: 36px;
    }

    .contact-intro {
        font-size: 17px;
    }

    .contact-form-desc {
        font-size: 14px;
    }

    .contact-phone-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

@media screen and (max-width: 768px) {
    .contact-hero {
        aspect-ratio: 4 / 2;
    }

    .contact-hero-content {
        padding: 30px 15px 0 40px;
    }

    .contact-hero-title {
        font-size: 28px;
    }

    .contact-section {
        padding: 40px 0 60px;
    }

    .contact-phone-box {
        flex-direction: column;
        margin: 30px 0 50px;
    }

    .contact-phone-label {
        width: 100%;
        text-align: center;
        justify-content: center;
        padding: 15px 20px;
    }

    .contact-phone-info {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 20px;
        gap: 10px;
    }

    .contact-phone-number {
        font-size: 22px;
    }

    .contact-form-table th {
        display: block;
        width: 100%;
        padding: 15px 15px 5px;
    }

    .contact-form-table td {
        display: block;
        padding: 5px 15px 15px;
    }

    .contact-input-short {
        width: 100% !important;
    }

    .contact-intro {
        font-size: 15px;
    }

    .contact-form-desc {
        font-size: 13px;
    }

    .contact-form-title {
        font-size: 18px;
    }

    .contact-back-btn,
    .contact-confirm-buttons .contact-submit-btn {
        padding: 16px 30px;
        white-space: nowrap;
    }
}

/* ===== スマホ用固定ボトムバー ===== */
.sp-fixed-bottom-bar {
    display: none;
}

@media (max-width: 768px) {
    .sp-fixed-bottom-bar {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 9999;
        box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
    }

    .sp-bottom-btn {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 50%;
        padding: 10px 0;
        text-decoration: none;
        color: #fff;
        font-size: 12px;
        font-weight: 600;
        gap: 4px;
    }

    .sp-bottom-btn i {
        font-size: 20px;
    }

    .sp-bottom-phone {
        background-color: var(--color-blue);
        border-right: 2px solid #fff;
    }

    .sp-bottom-contact {
        background-color: var(--color-blue);
    }

    /* フッターが固定バーに隠れないよう余白を追加 */
    .footer {
        padding-bottom: 70px;
    }
}

/* ==========================================================================
   スマホタッチ対策: 装飾用疑似要素がタッチイベントを奪わないようにする
   ========================================================================== */

/* 各セクションヘッダーの装飾用ピンク丸 */
.news-header::before,
.staff-header::before,
.medical-care-header::before,
.support-header::before,
.consultation-header::before,
.reviews-header::before,
.why-choose-header::before,
.community-header::before,
.recruit-header::before,
.academic-record-header::before,
.academic-significance-header::before,
.medical-items-header::before,
.medical-flow-header::before,
.medical-area-header::before,
.medical-partner-header::before,
.medical-fees-header::before,
.medical-process-header::before,
.medical-access-header::before,
.cafe-purpose-header::before,
.cafe-schedule-header::before,
.cafe-safety-header::before,
.cafe-faq-header::before,
.cafe-instagram-header::before,
.about-doctors-header::before,
.about-standards-header::before,
.about-guidelines-header::before,
.reviews-voices-header::before,
.reviews-faq-header::before,
.blog-title-header::before,
.news-title-header::before {
    pointer-events: none;
}

/* 各ラベルの●装飾 */
.news-label::before,
.staff-label::before,
.medical-care-label::before,
.support-label::before,
.consultation-label::before,
.reviews-label::before,
.why-choose-label::before,
.community-label::before,
.recruit-label::before,
.academic-record-label::before,
.academic-significance-label::before,
.medical-items-label::before,
.medical-flow-label::before,
.medical-area-label::before,
.medical-partner-label::before,
.medical-fees-label::before,
.medical-process-label::before,
.medical-access-label::before,
.cafe-purpose-label::before,
.cafe-schedule-label::before,
.cafe-safety-label::before,
.cafe-faq-label::before,
.cafe-instagram-label::before,
.about-doctors-label::before,
.about-standards-label::before,
.about-guidelines-label::before,
.reviews-voices-label::before,
.reviews-faq-label::before,
.blog-title-label::before,
.news-title-label::before {
    pointer-events: none;
}

/* 各ページヒーローのオーバーレイ */
.academic-hero::before,
.medical-hero::before,
.about-hero::before,
.reviews-hero::before,
.contact-hero::before {
    pointer-events: none;
}

/* 各ページセクション上部の装飾（ピンク半円） */
.academic-purpose::before,
.medical-services::before,
.about-overview::before {
    pointer-events: none;
}

/* 診療案内の区切り線装飾 */
.medical-item-title::after {
    pointer-events: none;
}

/* 学会活動タイトル装飾 */
.academic-title::after {
    pointer-events: none;
}

/* カフェページの装飾 */
.cafe-safety-item-title::before {
    pointer-events: none;
}

/* 診療案内エリアリスト装飾 */
.medical-area-list li::before {
    pointer-events: none;
}

/* お問い合わせページエラー装飾 */
.contact-errors li::before {
    pointer-events: none;
}

/* ブログ記事見出し装飾 */
.post-content h2::before,
.post-content h2::after,
.post-content h4::before {
    pointer-events: none;
}

/* 診療プロセスボタン装飾 */
.medical-process-button::before {
    pointer-events: none;
}

/* ニュースアイテムの下線 */
.news-item::after {
    pointer-events: none;
}

/* スマホ向けタッチターゲット改善 */
@media (max-width: 768px) {
    /* タップ領域を十分に確保（最低44px） */
    .card-link {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .cta-button,
    .support-cta-button,
    .reviews-cta-button,
    .staff-cta-button,
    .recruit-cta-button,
    .pino-cafe-button,
    .academic-button {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* ニュースリンクのタップ領域確保 */
    .news-item {
        min-height: 44px;
    }

    .news-link {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    /* カード間の余白を確保してタップミスを防止 */
    .cards-grid {
        gap: 24px;
    }

    /* レビューカード間の余白確保 */
    .reviews-cards {
        gap: 24px;
    }
}

