/*
Theme Name: Clinic Original
Theme URI: https://example.com/
Author: Sayaka Tanaka
Author URI: https://example.com/
Description: かわぐち内科クリニックテーマ（修正版 - グリーン統一＆レイアウト調整）
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: clinic-original
Tags: clinic, medical, hospital, two-columns, custom-logo, featured-images, responsive-layout
*/

/*==================================================
 共通設定
==================================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
    color:#333;
    font-size:16px;
    line-height:1.8;
    background:#fff;
}

img{
    max-width:100%;
    height:auto;
    display:block;
}

a{
    color:#008b72;
    text-decoration:none;
    transition:.3s;
}

a:hover{
    opacity:.8;
}

.wrap{
    width:1200px;
    max-width:92%;
    margin:0 auto;
}

section{
    padding:80px 0;
}

.section-title{
    text-align:center;
    font-size:34px;
    font-weight:bold;
    margin-bottom:50px;
    color:#006b5c;
    position:relative;
}

.section-title:after{
    content:"";
    display:block;
    width:70px;
    height:4px;
    background:#3fb7a0;
    margin:20px auto 0;
}


/*==================================================
 Header Layout
==================================================*/

#wrapper {
    overflow: hidden;
}

/* ヘッダー全体（追従型） */
#header {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    background: #fff;
    z-index: 9999;
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
    height: auto !important; /* コンテンツに合わせて自動伸縮 */
    padding: 15px 0 0 !important; /* ナビ表示のため下部余白を調整 */
}

/* ヘッダー内部（3つのブロックを横並びにする） */
.header-inner {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    max-width: 1200px;
    width: 92%;
    margin: 0 auto;
    height: auto !important;
    min-height: 80px;
}

/* 左側：ロゴ（比率調整） */
.header-left {
    flex: 0 0 auto !important;
    max-width: 380px;
}

.logo {
    margin: 0;
    padding: 0;
}

.logo a {
    display: flex;
    align-items: center;
}

.logo img {
    height: 70px !important; /* ロゴ高さを固定 */
    width: auto !important;  /* 横幅は自動（縦に潰れるのを防ぐ） */
    object-fit: contain !important; /* 比率を維持して領域に収める */
    display: block;
}

/* 中央：診療時間表（グリーンベースに変更） */
.header-timetable {
    flex: 0 1 auto !important;
    margin: 0 30px !important;
    font-size: 13px !important;
    color: #4a4a4a !important;
    min-width: 380px;
}

.header-time-table {
    border-collapse: collapse !important;
    width: 100% !important;
    margin-bottom: 5px !important;
}

.header-time-table th, 
.header-time-table td {
    padding: 4px 8px !important;
    text-align: center !important;
    font-weight: bold !important;
    border: none !important;
    font-size: 13px !important;
}

.header-time-table th {
    background-color: #e2f2ee !important; /* やわらかい薄グリーンに変更 */
    color: #006b5c !important;
    font-weight: bold !important;
}

/* 診療時間のテキスト列 */
.header-time-table td:first-child {
    font-weight: bold !important;
    color: #555 !important;
}

/* 診療実施マーク（グリーン丸印に変更） */
.header-time-table td {
    color: #209c85 !important; /* オレンジの丸からグリーンに変更 */
    font-size: 15px !important;
}

/* テーブル下の注意書き */
.timetable-notice {
    margin: 0 !important;
    text-align: center !important;
    font-size: 11px !important;
    color: #555 !important;
    font-weight: bold !important;
}

/* 右側：連絡先（文字とアイコンのサイズを揃える） */
.header-contact-info {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-end !important;
}

.contact-row {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 6px !important;
}

.contact-row:last-child {
    margin-bottom: 0 !important;
}

.contact-row a {
    text-decoration: none !important;
    color: inherit !important;
    display: flex !important;
    align-items: center !important;
}

/* 電話・FAXアイコン共通（グリーンに変更） */
.contact-icon {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 6px !important;
    background-color: #209c85 !important; /* オレンジからグリーンに変更 */
    color: #fff !important;
    margin-right: 8px !important;
    font-size: 14px !important;
    font-weight: bold !important;
    flex-shrink: 0 !important;
}

/* FAXアイコン共通（グリーンに変更） */
.contact-icon.fax-bg {
    background-color: #3cb39b !important; /* 少し明るいグリーンに変更 */
    font-size: 9px !important;
}

/* 電話番号・FAX番号の文字サイズを統一 */
.contact-row strong {
    font-size: 20px !important; /* 電話とFAXのフォントサイズを20pxに統一 */
    color: #4a4a4a !important;
    font-weight: bold !important;
    letter-spacing: 0.02em !important;
    line-height: 1 !important;
}


/* ==================================================
   グローバルナビゲーション（表示担保）
=================================================== */

.global-nav {
    background: #fff !important;
    border-top: 1px solid #e0e0e0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
    margin-top: 10px !important;
    width: 100% !important;
    display: block !important; /* 確実に表示 */
}

.global-nav .wrap {
    max-width: 1200px;
    margin: 0 auto;
}

.header-menu-list {
    display: flex !important;
    justify-content: space-between !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

.header-menu-list li {
    flex: 1 !important;
    text-align: center !important;
    border-left: 1px solid #e0e0e0 !important;
    position: relative !important;
}

.header-menu-list li:last-child {
    border-right: 1px solid #e0e0e0 !important;
}

.header-menu-list li a {
    display: block !important;
    padding: 12px 0 18px !important;
    color: #333 !important;
    text-decoration: none !important;
    transition: background-color 0.3s !important;
}

/* メニューの日本語テキスト */
.header-menu-list li a .menu-title-ja {
    display: block !important;
    font-size: 16px !important;
    font-weight: bold !important;
    color: #333 !important;
    line-height: 1.2 !important;
}

/* メニューの英語サブタイトル */
.header-menu-list li a .menu-title-en {
    display: block !important;
    font-size: 9px !important;
    color: #666 !important;
    text-transform: uppercase !important;
    margin-top: 2px !important;
    font-weight: bold !important;
}

/* アクティブ/ホバー時のピンク色の矢印マーク */
.header-menu-list li a::after {
    content: "" !important;
    position: absolute !important;
    bottom: 5px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 0 !important;
    height: 0 !important;
    border-style: solid !important;
    border-width: 0 6px 8px 6px !important;
    border-color: transparent transparent #209c85 transparent !important; /* 三角形もグリーンに変更 */
    opacity: 0 !important;
    transition: opacity 0.3s !important;
}

.header-menu-list li a:hover::after,
.header-menu-list li.current-menu-item a::after {
    opacity: 1 !important;
}

.header-menu-list li a:hover {
    background-color: #fafafa !important;
}


/*==================================================
 MainVisual（被り・レイアウト調整）
==================================================*/

.top-mainvisual{
    margin-top: 185px !important; /* メニュー付きヘッダーの高さ分、開始位置を下げて被りを完全に解消 */
    position:relative;
    z-index: 1;
}

.top-mainvisual .metaslider{
    margin:0;
}

.top-mainvisual img{
    width:100%;
}

.top-mainvisual:after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:80px; /* グラデーションの被りを少し控えめに調整 */
    background:linear-gradient(
        rgba(255,255,255,0),
        rgba(255,255,255,1)
    );
    z-index: 2;
}


/*==================================================
 Recruit Banner
==================================================*/

.top-recruit{
    padding:40px 0;
    background:#fff;
}

.top-recruit img{
    width:100%;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 20px rgba(0,0,0,.12);
    transition:.4s;
}

.top-recruit img:hover{
    transform:translateY(-5px);
}


/*==================================================
 Recruit Message
==================================================*/

.recruit-message{
    padding:0 0 60px;
}

.recruit-message p{
    text-align:center;
    font-size:18px;
}

.recruit-message a{
    display:inline-block;
    margin-top:15px;
    color:#2ca089;
    font-weight:bold;
}


/*==================================================
 Contact Area
==================================================*/

.top-contact{
    background:#f5faf8;
    padding:70px 0;
}

.top-contact .wrap{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.contact-left{
    width:45%;
}

.contact-right{
    width:48%;
}


/*==================================================
 Clinic Menu
==================================================*/

.clinic-menu{
    display:flex;
    flex-wrap:wrap;
    list-style:none;
    margin-bottom:35px;
}

.clinic-menu li{
    background:#2ca089;
    color:#fff;
    border-radius:30px;
    padding:10px 22px;
    margin:8px;
    font-weight:bold;
}


/*==================================================
 TEL Area
==================================================*/

.tel-area{
    background:#fff;
    border-radius:10px;
    padding:30px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.tel-area a{
    display:flex;
    align-items:center;
}

.tel-area .icon{
    width:70px;
    margin-right:20px;
}

.tel-area .number{
    font-size:42px;
    font-weight:bold;
    color:#006b5c;
}


/*==================================================
 Time Table
==================================================*/

.contact-right table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.contact-right th{
    width:35%;
    background:#2ca089;
    color:#fff;
    padding:20px;
    text-align:center;
}

.contact-right td{
    padding:20px;
    border-bottom:1px solid #ececec;
}

.contact-right tr:last-child td{
    border-bottom:none;
}


/*==================================================
 Button
==================================================*/

.btn-more{
    display:inline-block;
    padding:16px 42px;
    border-radius:40px;
    background:#2ca089;
    color:#fff;
    font-weight:bold;
    transition:.3s;
}

.btn-more:hover{
    background:#006b5c;
}


/*==================================================
 Utility
==================================================*/

.pc{
    display:block;
}

.sp{
    display:none;
}


/*==================================================
 院長あいさつ
==================================================*/

.top-message{
    background:#fff;
}

.top-message .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:60px;
}

.message-text{
    width:55%;
}

.message-text h2{
    font-size:34px;
    color:#006b5c;
    margin-bottom:30px;
    line-height:1.4;
}

.message-text p{
    margin-bottom:20px;
    font-size:17px;
    color:#555;
}

.message-photo{
    width:40%;
    text-align:center;
}

.message-photo img{
    width:100%;
    border-radius:20px;
    box-shadow:0 12px 35px rgba(0,0,0,.15);
}


/*==================================================
 当院の特徴
==================================================*/

.top-feature{
    background:url("../images/feature_bg.jpg") center center no-repeat;
    background-size:cover;
    position:relative;
    padding:100px 0;
}

.top-feature::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.75);
}

.feature-bg{
    position:relative;
    z-index:2;
}

.feature-box{
    background:rgba(255,255,255,.95);
    border-radius:25px;
    padding:70px;
    box-shadow:0 15px 45px rgba(0,0,0,.12);
}

.feature-list{
    list-style:none;
}

.feature-list li{
    display:flex;
    align-items:flex-start;
    margin-bottom:35px;
    padding-bottom:35px;
    border-bottom:1px solid #e7e7e7;
}

.feature-list li:last-child{
    margin-bottom:0;
    padding-bottom:0;
    border:none;
}

.feature-no{
    width:110px;
    min-width:110px;
    height:110px;
    border-radius:50%;
    background:#2ca089;
    color:#fff;
    font-size:15px;
    font-weight:bold;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    margin-right:35px;
    line-height:1.4;
}

.feature-text{
    flex:1;
}

.feature-text h3{
    color:#006b5c;
    font-size:24px;
    margin-bottom:12px;
}

.feature-text p{
    color:#555;
    line-height:2;
}

.feature-btn{
    text-align:center;
    margin-top:50px;
}


/*==================================================
 診療案内
==================================================*/

.top-treatment{
    background:#f7fbfa;
}

.treatment-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:35px;
}

.treatment-item{
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    transition:.35s;
}

.treatment-item:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 45px rgba(0,0,0,.16);
}

.treatment-item a{
    display:block;
    color:inherit;
}

.treatment-item img{
    width:100%;
    height:260px;
    object-fit:cover;
    transition:.5s;
}

.treatment-item:hover img{
    transform:scale(1.08);
}

.overlay{
    padding:30px;
    background:#fff;
}

.overlay h3{
    color:#006b5c;
    font-size:26px;
    margin-bottom:15px;
}

.overlay p{
    color:#666;
    line-height:1.8;
    font-size:16px;
}


/*==================================================
 診療案内ボタン
==================================================*/

.treatment-button{
    text-align:center;
    margin-top:55px;
}

.treatment-button .btn-more{
    min-width:260px;
}


/*==================================================
 Hover Animation
==================================================*/

.feature-list li,
.treatment-item{
    transition:all .3s ease;
}

.feature-list li:hover{
    transform:translateX(8px);
}

.feature-list li:hover .feature-no{
    background:#006b5c;
}


/*==================================================
 背景装飾
==================================================*/

.top-treatment::before{
    content:"";
    display:block;
    width:120px;
    height:5px;
    background:#2ca089;
    margin:0 auto 50px;
    border-radius:5px;
}


/*==================================================
 予防接種・健康診断
==================================================*/

.top-checkup{
    padding:100px 0;
    background:#fff;
}

.top-checkup .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:60px;
}

.checkup-image{
    width:48%;
}

.checkup-image img{
    width:100%;
    border-radius:20px;
    box-shadow:0 15px 35px rgba(0,0,0,.12);
}

.checkup-content{
    width:52%;
}

.checkup-content .lead{
    font-size:22px;
    font-weight:bold;
    color:#006b5c;
    margin-bottom:20px;
}

.checkup-content p{
    margin-bottom:20px;
    color:#555;
    line-height:2;
}

.checkup-btn{
    margin-top:35px;
    display:flex;
    gap:20px;
}

.btn-green{
    display:inline-block;
    padding:15px 35px;
    background:#2ca089;
    color:#fff;
    border-radius:40px;
    font-weight:bold;
    transition:.3s;
}

.btn-green:hover{
    background:#006b5c;
}


/*==================================================
 院長紹介
==================================================*/

.top-director{
    background:#f7fbfa;
    padding:100px 0;
}

.director-content{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:70px;
}

.director-message{
    width:55%;
}

.director-message p{
    margin-bottom:20px;
    color:#555;
    line-height:2;
}

.director-photo{
    width:40%;
    text-align:center;
}

.director-photo img{
    width:100%;
    border-radius:20px;
    box-shadow:0 15px 35px rgba(0,0,0,.15);
}


/*==================================================
 医院紹介
==================================================*/

.top-clinic{
    background:#fff;
    padding:100px 0;
}

.clinic-wrap{
    display:flex;
    justify-content:space-between;
    gap:50px;
}

.clinic-info{
    width:48%;
}

.clinic-map{
    width:48%;
}

.clinic-map iframe{
    width:100%;
    height:520px;
    border:0;
    border-radius:15px;
    box-shadow:0 10px 30px rgba(0,0,0,.1);
}

.clinic-table{
    width:100%;
    border-collapse:collapse;
    margin-bottom:40px;
}

.clinic-table th{
    width:30%;
    background:#2ca089;
    color:#fff;
    padding:16px;
    text-align:center;
}

.clinic-table td{
    padding:16px;
    border:1px solid #e5e5e5;
    background:#fff;
}

.time-table{
    margin-top:30px;
}

.time-table h3{
    margin-bottom:20px;
    color:#006b5c;
}

.time-table table{
    width:100%;
    border-collapse:collapse;
}

.time-table th{
    background:#2ca089;
    color:#fff;
    padding:12px;
    border:1px solid #fff;
}

.time-table td{
    text-align:center;
    padding:12px;
    border:1px solid #ddd;
}

.holiday{
    margin-top:15px;
    color:#777;
}


/*==================================================
 新着情報
==================================================*/

.top-news{
    background:#f8fbfb;
    padding:100px 0;
}

.section-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:40px;
}

.section-head h2{
    color:#006b5c;
    font-size:34px;
}

.section-head a{
    color:#2ca089;
    font-weight:bold;
}

.news-list{
    list-style:none;
    background:#fff;
    border-radius:15px;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
}

.news-list li{
    border-bottom:1px solid #eee;
}

.news-list li:last-child{
    border-bottom:none;
}

.news-list a{
    display:flex;
    align-items:center;
    padding:22px 30px;
    transition:.3s;
}

.news-list a:hover{
    background:#f3fbf8;
}

.news-list .date{
    width:150px;
    color:#2ca089;
    font-weight:bold;
}

.news-list .title{
    flex:1;
    color:#333;
}


/*==================================================
 下部バナー
==================================================*/

.bottom-banner{
    padding:70px 0;
    background:#fff;
}

.banner-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
}

.banner-grid img{
    width:100%;
    border-radius:15px;
    transition:.3s;
    box-shadow:0 8px 20px rgba(0,0,0,.1);
}

.banner-grid img:hover{
    transform:translateY(-6px);
}


/*==================================================
 右側固定バナー（PC用・グリーン仕様に修正）
==================================================*/

.side-reserve-bar {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 110px;
    z-index: 100;
    display: flex;
    flex-direction: column;
    box-shadow: -2px 0 10px rgba(0,0,0,.1);
}

.side-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 90px;
    text-decoration: none;
    font-size: 12px;
    font-weight: bold;
    text-align: center;
    transition: opacity 0.3s;
}

.side-btn:hover {
    opacity: 0.9;
}

/* 電話予約 */
.side-btn.btn-tel {
    background-color: #ffffff;
    color: #333;
    border: 3px solid #209c85; /* オレンジからグリーンに変更 */
    border-right: none;
    box-sizing: border-box;
}

/* WEB予約 */
.side-btn.btn-web {
    background-color: #e2f2ee; /* 薄いミントグリーンに変更 */
    color: #006b5c;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

/* ページトップ */
.side-btn.btn-pagetop {
    background-color: #209c85; /* 明るいグリーンに変更 */
    color: #fff;
}

.side-btn span {
    margin-top: 5px;
    font-size: 10px;
}


/*==================================================
 Footer Contact
==================================================*/

.footer-contact{
    background:#0f8a76;
    color:#fff;
    text-align:center;
    padding:80px 20px;
}

.footer-contact h2{
    font-size:34px;
    margin-bottom:25px;
    font-weight:700;
}

.footer-contact p{
    margin-top:20px;
    opacity:.9;
    font-size:16px;
}

.footer-contact .tel-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:320px;
    padding:18px 40px;
    border-radius:999px;
    background:#fff;
    color:#0f8a76;
    font-size:30px;
    font-weight:bold;
    transition:.3s;
}

.footer-contact .tel-btn:hover{
    background:#f4f4f4;
    transform:translateY(-2px);
}


/*==================================================
 Footer
==================================================*/

footer{
    background:#03493f;
    color:#fff;
    padding:60px 0 30px;
}

footer a{
    color:#fff;
}

footer .footer-inner{
    width:1200px;
    max-width:92%;
    margin:auto;
}

footer .footer-nav{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:18px 30px;
    margin-bottom:35px;
}

footer .footer-nav li{
    list-style:none;
}

footer .copyright{
    text-align:center;
    font-size:14px;
    opacity:.8;
}


/*==================================================
 PageTop
==================================================*/

.pagetop{
    position:fixed;
    right:25px;
    bottom:25px;
    width:58px;
    height:58px;
    border-radius:50%;
    background:#2ca089;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(0,0,0,.18);
    transition:.3s;
    z-index:999;
}

.pagetop:hover{
    background:#006b5c;
    transform:translateY(-4px);
}


/*==================================================
 Scroll Animation
==================================================*/

.fadeUp{
    opacity:0;
    transform:translateY(40px);
    transition:all .8s ease;
}

.fadeUp.show{
    opacity:1;
    transform:translateY(0);
}

.fadeLeft{
    opacity:0;
    transform:translateX(-40px);
    transition:.8s;
}

.fadeLeft.show{
    opacity:1;
    transform:none;
}

.fadeRight{
    opacity:0;
    transform:translateX(40px);
    transition:.8s;
}

.fadeRight.show{
    opacity:1;
    transform:none;
}


/*==================================================
 Header Scroll
==================================================*/

.header-scroll{
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(8px);
    box-shadow:0 2px 15px rgba(0,0,0,.12);
}


/*==================================================
 Hamburger Menu
==================================================*/

.menu-toggle{
    display:none;
    width:42px;
    height:42px;
    cursor:pointer;
    position:relative;
}

.menu-toggle span{
    position:absolute;
    left:7px;
    width:28px;
    height:3px;
    background:#006b5c;
    transition:.3s;
}

.menu-toggle span:nth-child(1){
    top:11px;
}

.menu-toggle span:nth-child(2){
    top:19px;
}

.menu-toggle span:nth-child(3){
    top:27px;
}

.menu-toggle.active span:nth-child(1){
    transform:rotate(45deg);
    top:19px;
}

.menu-toggle.active span:nth-child(2){
    opacity:0;
}

.menu-toggle.active span:nth-child(3){
    transform:rotate(-45deg);
    top:19px;
}


/*==================================================
 FOOTER (Second block in style.css)
==================================================*/

#footer{
    margin-top:80px;
}

.footer-main{
    background:#f5efdf;
    padding:60px 0;
}

.footer-inner{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:50px;
}

.footer-box h3{
    color:#6b8e23;
    font-size:22px;
    margin-bottom:20px;
    border-bottom:1px solid #d8ceb4;
    padding-bottom:10px;
}

.footer-menu,
.footer-link{
    list-style:none;
    margin:0;
    padding:0;
}

.footer-menu li,
.footer-link li{
    margin-bottom:10px;
}

.footer-menu a,
.footer-link a{
    color:#666;
    text-decoration:none;
}

.footer-menu a:hover,
.footer-link a:hover{
    color:#6b8e23;
}

.footer-access{
    width:100%;
    border-collapse:collapse;
}

.footer-access th{
    width:80px;
    text-align:left;
    color:#6b8e23;
    padding:8px 0;
    vertical-align:top;
}

.footer-access td{
    padding:8px 0;
    color:#555;
}

.footer-copy{
    background:#7fbf00;
    color:#fff;
    text-align:center;
    padding:18px 0;
    font-size:14px;
}

.footer-copy a{
    color:#fff;
}


/*==================================================
 Single
==================================================*/

.single-wrap{
    max-width:960px;
    margin:70px auto;
}

.single-article{
    background:#fff;
    padding:60px;
    border-radius:20px;
    box-shadow:0 8px 30px rgba(0,0,0,.08);
}

.single-header{
    margin-bottom:35px;
}

.single-meta{
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:18px;
}

.single-meta time{
    color:#2ca089;
    font-weight:bold;
}

.single-title{
    font-size:38px;
    color:#006b5c;
    line-height:1.5;
}

.single-thumbnail{
    margin-bottom:40px;
}

.single-thumbnail img{
    width:100%;
    height:auto;
    border-radius:15px;
}

.entry-content{
    line-height:2;
    color:#555;
}

.entry-content h2{
    margin:60px 0 25px;
    padding-left:18px;
    border-left:6px solid #2ca089;
    color:#006b5c;
    font-size:32px;
}

.entry-content h3{
    margin:40px 0 20px;
    color:#006b5c;
    font-size:26px;
}

.entry-content p{
    margin-bottom:25px;
}

.entry-content img{
    max-width:100%;
    height:auto;
    border-radius:12px;
}

.entry-content ul{
    margin:25px 0;
    padding-left:22px;
}

.entry-content li{
    margin-bottom:10px;
}

.entry-content table{
    width:100%;
    border-collapse:collapse;
    margin:35px 0;
}

.entry-content th{
    background:#2ca089;
    color:#fff;
    padding:15px;
}

.entry-content td{
    border:1px solid #ddd;
    padding:15px;
}


/*==============================
 Navigation
==============================*/

.post-navigation{
    margin-top:50px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
}

.post-navigation a{
    color:#2ca089;
    font-weight:bold;
}

.nav-center{
    flex:1;
    text-align:center;
}


/*==================================================
 Search Form
==================================================*/

.search-form{
    width:100%;
    margin:40px auto;
}

.search-form-inner{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:15px;
}

.search-field{
    width:420px;
    max-width:100%;
    height:54px;
    padding:0 20px;
    border:2px solid #d9e6e4;
    border-radius:999px;
    font-size:16px;
    background:#fff;
    transition:.3s;
    outline:none;
}

.search-field:focus{
    border-color:#2ca089;
    box-shadow:0 0 0 4px rgba(44,160,137,.15);
}

.search-submit{
    height:54px;
    padding:0 28px;
    border:none;
    border-radius:999px;
    background:#2ca089;
    color:#fff;
    font-size:16px;
    font-weight:bold;
    cursor:pointer;
    transition:.3s;
}

.search-submit:hover{
    background:#006b5c;
    transform:translateY(-2px);
}

.search-submit:active{
    transform:translateY(0);
}


/*==================================================
 Search Result
==================================================*/

.search-keyword{
    font-size:18px;
    color:#666;
    margin-top:15px;
}

.search-keyword strong{
    color:#006b5c;
}

.no-post{
    text-align:center;
    padding:80px 20px;
}

.no-post h2{
    font-size:30px;
    color:#006b5c;
    margin-bottom:20px;
}

.no-post p{
    color:#666;
    margin-bottom:30px;
    line-height:1.8;
}


/*==============================
index.php (Blog index / News list)
==============================*/

.page-header{
    margin:120px 0 50px;
    text-align:center;
}

.page-title{
    font-size:36px;
    color:#006b5c;
}

.news-article{
    background:#fff;
    border-radius:15px;
    overflow:hidden;
    box-shadow:0 5px 20px rgba(0,0,0,.08);
    margin-bottom:40px;
    transition:.3s;
}

.news-article:hover{
    transform:translateY(-5px);
}

.news-article a{
    display:block;
    color:#333;
}

.post-thumbnail img{
    width:100%;
    display:block;
}

.post-content{
    padding:30px;
}

.post-date{
    color:#2ca089;
    font-weight:bold;
    margin-bottom:10px;
}

.post-title{
    font-size:26px;
    margin-bottom:15px;
}

.post-excerpt{
    line-height:1.9;
}

.pagination{
    margin:70px 0;
    text-align:center;
}

.pagination .page-numbers{
    display:inline-block;
    padding:12px 18px;
    margin:0 5px;
    background:#f4f4f4;
    border-radius:6px;
}

.pagination .current{
    background:#2ca089;
    color:#fff;
}


/*==================================================
 レスポンシブ & メディアクエリ
==================================================*/

@media screen and (max-width:1024px){

    .top-message .wrap,
    .top-checkup .wrap,
    .director-content,
    .clinic-wrap {
        flex-direction:column;
    }

    .message-text,
    .message-photo,
    .checkup-image,
    .checkup-content,
    .director-message,
    .director-photo,
    .clinic-info,
    .clinic-map {
        width:100%;
    }

    .feature-box{
        padding:50px;
    }

    .feature-list li{
        flex-direction:column;
    }

    .feature-no{
        margin:0 auto 25px;
    }

    .feature-text{
        text-align:center;
    }

    .treatment-grid{
        grid-template-columns:1fr;
    }

    .banner-grid{
        grid-template-columns:1fr 1fr;
    }

    /* タブレット時は時間表を非表示にしてスッキリさせる */
    .header-timetable {
        display: none !important;
    }
}

@media screen and (max-width:960px) {
    /* メニューバーと追従サイドボタンを隠す */
    .global-nav {
        display: none !important;
    }
    .side-reserve-bar {
        display: none !important;
    }
    .menu-toggle {
        display: block !important;
    }
    #header {
        height: 70px !important;
        padding: 10px 0 !important;
    }
    .header-inner {
        height: 50px !important;
        min-height: 50px !important;
    }
    .logo img {
        height: 45px !important;
    }
    .top-mainvisual {
        margin-top: 70px !important;
    }
}

@media screen and (max-width:767px){

    .wrap {
        width:94%;
    }

    section {
        padding:60px 0;
    }

    .section-title {
        font-size:28px;
        margin-bottom:35px;
    }

    .top-message,
    .top-checkup,
    .top-director,
    .top-clinic,
    .top-news {
        padding:60px 0;
    }

    .message-text h2{
        font-size:28px;
    }

    .feature-box{
        padding:35px 25px;
    }

    .feature-no{
        width:80px;
        height:80px;
        min-width:80px;
        font-size:13px;
    }

    .feature-text h3{
        font-size:20px;
    }

    .treatment-item img{
        height:220px;
    }

    .overlay{
        padding:22px;
    }

    .overlay h3{
        font-size:22px;
    }

    .checkup-btn{
        flex-direction:column;
    }

    .btn-green{
        width:100%;
        text-align:center;
    }

    .section-head{
        display:block;
        text-align:center;
    }

    .section-head a{
        display:inline-block;
        margin-top:15px;
    }

    .news-list a{
        display:block;
    }

    .news-list .date{
        display:block;
        width:auto;
        margin-bottom:8px;
    }

    .banner-grid{
        grid-template-columns:1fr;
    }

    .clinic-map iframe{
        height:320px;
    }

    /* Contact Block */
    .top-contact .wrap{
        flex-direction:column;
    }

    .contact-left,
    .contact-right{
        width:100%;
    }

    .contact-right{
        margin-top:35px;
    }

    .tel-area .number{
        font-size:30px;
    }

    .tel-area{
        padding:20px;
    }

    .clinic-menu{
        justify-content:center;
    }

    .clinic-menu li{
        font-size:14px;
        padding:8px 15px;
    }

    /* Single post article */
    .single-article{
        padding:30px;
    }

    .single-title{
        font-size:28px;
    }

    .single-meta{
        flex-wrap:wrap;
    }

    .post-navigation{
        flex-direction:column;
    }

    .nav-center{
        width:100%;
    }

    /* Footer Access and Menus */
    .footer-inner{
        grid-template-columns:1fr;
        gap:40px;
    }

    .footer-contact h2{
        font-size:26px;
    }

    .footer-contact .tel-btn{
        width:100%;
        min-width:inherit;
        font-size:24px;
    }

    footer{
        padding:45px 0 20px;
    }

    footer .footer-nav{
        display:block;
        text-align:center;
    }

    footer .footer-nav li{
        margin-bottom:15px;
    }

    /* PageTop */
    .pagetop{
        right:15px;
        bottom:15px;
        width:48px;
        height:48px;
        font-size:14px;
    }

    /* モバイル・スマホ時のヘッダー連絡先 */
    .header-contact-info {
        display: none !important; /* スマホでは時間表に加えて上部ヘッダーの連絡先も隠してシンプルにする */
    }
}

@media screen and (max-width:480px){
    body{
        font-size:15px;
    }

    .section-title{
        font-size:24px;
    }

    .tel-area .number{
        font-size:26px;
    }

    .footer-contact .tel-btn{
        font-size:20px;
        padding:16px;
    }
}
/*==================================================
 Header Layout (固定ヘッダーの高さを安全に定義)
==================================================*/

#wrapper {
    overflow: hidden;
}

/* ヘッダー全体（追従型） */
#header {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    background: #fff;
    z-index: 9999;
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
    height: auto !important; 
    padding: 15px 0 0 !important; 
}

/* ヘッダー内部 */
.header-inner {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    max-width: 1200px;
    width: 92%;
    margin: 0 auto;
    height: auto !important;
    min-height: 80px;
}

/* 左側：ロゴ */
.header-left {
    flex: 0 0 auto !important;
    max-width: 380px;
}

.logo a {
    display: flex;
    align-items: center;
}

.logo img {
    height: 70px !important; 
    width: auto !important;  
    object-fit: contain !important; 
    display: block;
}

/* 中央：診療時間表 */
.header-timetable {
    flex: 0 1 auto !important;
    margin: 0 30px !important;
    font-size: 13px !important;
    color: #4a4a4a !important;
    min-width: 380px;
}

.header-time-table {
    border-collapse: collapse !important;
    width: 100% !important;
    margin-bottom: 5px !important;
}

.header-time-table th, 
.header-time-table td {
    padding: 4px 8px !important;
    text-align: center !important;
    font-weight: bold !important;
    border: none !important;
    font-size: 13px !important;
}

.header-time-table th {
    background-color: #e2f2ee !important; 
    color: #006b5c !important;
    font-weight: bold !important;
}

.header-time-table td {
    color: #209c85 !important; 
    font-size: 15px !important;
}

.timetable-notice {
    margin: 0 !important;
    text-align: center !important;
    font-size: 11px !important;
    color: #555 !important;
    font-weight: bold !important;
}

/* 右側：連絡先 */
.header-contact-info {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-end !important;
}

.contact-row {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 6px !important;
}

.contact-row a {
    text-decoration: none !important;
    color: inherit !important;
    display: flex !important;
    align-items: center !important;
}

.contact-icon {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 6px !important;
    background-color: #209c85 !important; 
    color: #fff !important;
    margin-right: 8px !important;
    font-size: 14px !important;
    font-weight: bold !important;
    flex-shrink: 0 !important;
}

.contact-icon.fax-bg {
    background-color: #3cb39b !important; 
    font-size: 9px !important;
}

.contact-row strong {
    font-size: 20px !important; 
    color: #4a4a4a !important;
    font-weight: bold !important;
    letter-spacing: 0.02em !important;
    line-height: 1 !important;
}


/* ==================================================
   グローバルナビゲーション（重ね順 z-index 確保と表示）
=================================================== */

.global-nav {
    background: #fff !important;
    border-top: 1px solid #e0e0e0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
    margin-top: 10px !important;
    width: 100% !important;
    display: block !important; 
    position: relative !important;
    z-index: 10000 !important; /* スライダーよりも前面に */
}

.global-nav .wrap {
    max-width: 1200px;
    margin: 0 auto;
}

.header-menu-list {
    display: flex !important;
    justify-content: space-between !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

.header-menu-list li {
    flex: 1 !important;
    text-align: center !important;
    border-left: 1px solid #e0e0e0 !important;
    position: relative !important;
}

.header-menu-list li:last-child {
    border-right: 1px solid #e0e0e0 !important;
}

.header-menu-list li a {
    display: block !important;
    padding: 12px 0 18px !important;
    color: #333 !important;
    text-decoration: none !important;
}

.header-menu-list li a .menu-title-ja {
    display: block !important;
    font-size: 16px !important;
    font-weight: bold !important;
    color: #333 !important;
    line-height: 1.2 !important;
}

.header-menu-list li a .menu-title-en {
    display: block !important;
    font-size: 9px !important;
    color: #666 !important;
    text-transform: uppercase !important;
    margin-top: 2px !important;
    font-weight: bold !important;
}


/*==================================================
 MainVisual（高さを崩さず、後続の引き上げを完全に防止）
==================================================*/

.top-mainvisual {
    margin-top: 185px !important; /* ヘッダー＋ナビの高さ分の余白（PCサイズ） */
    position: relative !important;
    z-index: 5 !important;
    width: 100% !important;
    display: block !important;
    clear: both !important; /* floatによる高さ消失を防ぐ */
    overflow: hidden !important;
}

/* MetaSliderが読み込まれるエリア自体の浮き上がりを防ぐ */
.top-mainvisual .metaslider {
    margin: 0 !important;
    clear: both !important;
    display: block !important;
}

.top-mainvisual img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* 下部グラデーション効果 */
.top-mainvisual::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 80px; 
    background: linear-gradient(
        rgba(255,255,255,0),
        rgba(255,255,255,1)
    );
    z-index: 10 !important;
    pointer-events: none; /* 下の要素へのクリックを邪魔しない */
}

/* 固定サイドボタンのレイアウト崩れ防止 */
.side-reserve-bar {
    position: fixed !important;
    top: 50% !important;
    right: 0 !important;
    transform: translateY(-50%) !important;
    width: 110px !important;
    z-index: 99999 !important; /* 常に最前面 */
    display: flex !important;
    flex-direction: column !important;
    box-shadow: -2px 0 10px rgba(0,0,0,.1);
}
.contact-image{
    display:block;
    width:100%;
    max-width:1600px;
    margin:0 auto;
}

.message-image{
    display:block;
    width:100%;
    max-width:1600px;
    margin:0 auto;
}