/* =========================
   フォント統一（最重要）
========================= */
:root {
--nav-height: 0;
--bs-font-sans-serif:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
--bs-body-font-family: var(--bs-font-sans-serif);
/* フォントサイズ基準 */
--bs-body-font-size: 1.1rem; /* =16px */
--bs-body-line-height: 1.7;
}

/* =========================
   見出しのズレ防止
========================= */
h1, h2, h3, h4, h5 {font-weight: 700;line-height: 1.4;}
/* =========================
Windowsの游ゴシック問題対策
========================= */
@supports (-ms-ime-align:auto) {body {font-family:"Noto Sans JP","Segoe UI",Meiryo,sans-serif;}}
/* =========================
スマホ調整
========================= */
@media (max-width: 768px) {html {font-size: 10px; /* 少しだけ縮小 */ }}
/* =========================
レイアウト安定化
========================= */
p {margin-bottom: 1rem;}
/****************************************************/
.menulist a{ color:#fff;}
.menulist a:hover{ background-color:#00b09b;}
.menulist i{ color:#EDE574;}

html {font-size:16px;  -webkit-text-size-adjust:100%;  text-size-adjust:100%;}
body{  color:#4A433D; font-family: var(--bs-font-sans-serif);-webkit-font-smoothing: antialiased; line-height:1.6; font-weight:400;/* Mac対策 */-moz-osx-font-smoothing: grayscale;text-rendering: optimizeLegibility;background: #fffffb;padding-top: var(--nav-height);}

/*
**********************************************************************************************
ナビゲーション
**********************************************************************************************
*/
/* ------------------------------------------
   Header
------------------------------------------ */
#header{position: fixed;top:40px;left:0;width:100%;z-index:9999;display:flex;justify-content:center;transition:top 1.85s ease;}

/* Bootstrapのcontainer */
#header .container{max-width:1320px;width:calc(100% - 40px);margin:0 auto;transition:width .95s ease;}

/* ナビ */
#mainNav{}
/* PC */
@media (min-width:992px){
#mainNav{display:none;background:rgba(255,255,255,.8);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:999px;padding:14px 32px;box-shadow:0 10px 30px rgba(0,0,0,.08);transform:scale(1);transition:border-radius .95s ease,background-color .95s ease,padding .95s ease,box-shadow .95s ease;}
}
/* タブレット・スマホ */
@media (max-width:991px){
#mainNav{background:transparent;box-shadow:none;backdrop-filter:none;border-radius:0;}
.navbar-collapse{margin-top:1rem;background:rgba(255,255,255,.95);border-radius:20px;box-shadow:0 8px 20px rgba(0,0,0,.08);padding:1rem;}
}
/* ===========================
   Scroll後
=========================== */
#header.scrolled{top:0;}
#header.scrolled .container{width:100%;max-width:100%;}
#header.scrolled #mainNav{transform:scale(1.02);background:rgba(255,255,255,.8);backdrop-filter:blur(20px);border-radius:0;padding:10px 40px;box-shadow:0 2px 15px rgba(0,0,0,.08);}

/* ロゴ */
.navbar-brand{font-size: 1.5rem;}

/* メニュー文字 */
.nav-link{position: relative;margin-left: 1rem;font-weight: 500;white-space: nowrap;}

/* 下線アニメ */
.nav-link::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:#8bbfa5;transition:.3s;}
.nav-link:hover::after{width:100%;}

/* スマホメニュー開いた時 */
@media (max-width: 991px){
.navbar-collapse{margin-top: 1rem;padding: 1rem;background: rgba(255,255,255,.95);backdrop-filter: blur(12px);border-radius: 20px;box-shadow: 0 8px 20px rgba(0,0,0,.08);}
.nav-link{margin-left: 0;padding: .8rem 1rem;}
}

.hero-menu{

    background:
        linear-gradient(rgba(255,255,255,.15),rgba(255,255,255,.15)),
        url("../WebP/bg-menu.webp") center/cover no-repeat;

    padding:25px 0;

}
.hero-menu a{

    display:block;

    color:#fff;

    text-align:center;

    padding:18px;

    text-decoration:none;

    font-size:1.2rem;

    font-weight:600;

    transition:.35s;

    border-right:1px solid rgba(255,255,255,.3);

}
.hero-menu .col:last-child a{

    border-right:none;

}
.hero-menu a:hover{

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(6px);

}

/*
**********************************************************************************************
ヒーロー
**********************************************************************************************
*/

.hero01{background: url("../WebP/hero01.webp") bottom left / cover no-repeat;}
.hero {aspect-ratio:1920 / 800;background-size:cover;background-repeat:no-repeat;}
.hero,.hero img{width:100%;max-width:100%;}

@media (max-width:1199px){
.hero01{background-image:url(WebP/hero-tab.webp);}
}

@media (max-width:767px){
.hero {width:100%;aspect-ratio:800 / 1000;background-size:cover;background-repeat:no-repeat;}
.hero01{background:url(../WebP/hero01-sb.webp) bottom left / cover no-repeat;}
}

.midasi-reg{height:80px;}
.midasi-doc{height:120px;}
.midasi-med{height:120px;}
.midasi-sinryo{height:30px;}
.midasi-sinryo-sp{height:50px;}
.midasi-camera{height:180px;}
.midasi-doctor{height:180px;}
.recruit-icon{height:70px;}
.yobosesyu-icon{height:80px;}

@media (max-width:991px){
.midasi-reg{height:50px;}
.midasi-sinryo{height:20px;}
.midasi-sinryo-sp{height:30px;}
.midasi-doctor{height:90px;}
}
.bt-hoiken-base a{font-size:0;}
.bt-hoiken-base img{vertical-align:bottom;}
.bt-hoikeenlink{display:block;width:100%;height:auto;}
.hoiku-link{display:block;}

/*波紋アニメーション*/
.hoiku-link{position:relative;overflow:hidden;display:block;}
.hoiku-link::before{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;background:rgba(255,255,255,.35);border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:0;}
.hoiku-link:hover::before{animation:ripple .9s ease-out;}
@keyframes ripple{
0%{transform:translate(-50%,-50%) scale(0);opacity:.8;}
100%{transform:translate(-50%,-50%) scale(30);opacity:0;}
}
/*
**********************************************************************************************
右サイドボタン
**********************************************************************************************
*/
.floating-links{position:fixed;top:180px;right:0;z-index:9990;display:flex;flex-direction:column;gap:12px;}
.floating-btn{width:84px;padding:18px 10px;color:#fff;text-decoration:none;text-align:center;font-size:.9rem;font-weight:600;line-height:1.6;border-radius:16px 0 0 16px;box-shadow:0 6px 20px rgba(0,0,0,.15);transition:.35s;}
.reserve{background:rgba(41,171,226,1);}
.recruit{background:rgba(217,224,33,1);color:#333;}
.floating-btn:hover{width:90px;transform:translateX(-8px);box-shadow:0 12px 30px rgba(0,0,0,.25);}
@media (max-width:991px){.floating-links{display:none;}}

/*
**********************************************************************************************
TOPへボタン
**********************************************************************************************
*/
#pageTop{position:fixed;right:20px;bottom:20px;width:58px;height:58px;display:flex;justify-content:center;align-items:center;background:rgba(71,174,185,1);color:#fff;border-radius:50%;text-decoration:none;font-size:1.5rem;font-weight:bold;box-shadow:0 8px 20px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity .4s,transform .4s,background-color .3s;}

#pageTop.show{opacity:1;visibility:visible;transform:translateY(0);}

#pageTop:hover{background:#29abe2;transform:translateY(-4px);}


@media (max-width:991px){#pageTop{bottom:90px;}}
/*
**********************************************************************************************
リンクボタン
**********************************************************************************************
*/
.btn-line{position: relative;display:inline-flex;align-items:center;gap:.8rem;padding: 16px 36px;background: #fff;color: rgba(71,174,185,1);border: 1px solid rgba(71,174,185,1);border-radius: 999px;font-weight: 600;text-decoration: none;overflow: hidden;transition: color .35s ease;z-index: 1;box-shadow:0 4px 12px rgba(0,0,0,.05);}

/* 左から広がる背景 */
.btn-line::before{content: "";position: absolute;inset: 0;background: rgba(71,174,185,1);transform: scaleX(0);transform-origin: left center;transition: transform .4s ease;z-index: -1;}

/* Hover */
.btn-line:hover{color: #fff; box-shadow:0 8px 20px rgba(71,174,185,.25);}
.btn-line:hover::before{transform: scaleX(1);}
.btn-line span{transition:transform .3s ease;}
.btn-line:hover span{transform:translateX(6px);}

/*
**********************************************************************************************
枠線付きBOX
**********************************************************************************************
*/
.box-area{width:100%;background: rgba(255,254,248,1);border:1px solid rgba(165,221,86,1);border-radius:24px;padding:48px;margin:50px 0;box-shadow:0 8px 24px rgba(0,0,0,.04);}
@media (max-width:991px){.box-area{padding:24px;border-radius:16px;}}

.box-area-att{width:100%;
background: rgba(254,247,250,1);border:1px solid rgba(213,165,196,1);border-radius:24px;padding:48px;margin:50px 0;box-shadow:0 8px 24px rgba(0,0,0,.04);}
@media (max-width:991px){.box-area-att{padding:24px;border-radius:16px;}}

.check-list{list-style:none;padding-left:0;}
.check-list li{position:relative;padding-left:2.2rem;margin-bottom:1rem;}
.check-list li::before{content:"✓";position:absolute;left:0;top:.1rem;width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center;background:rgba(254,247,250,.12);color:rgba(213,165,196,1);border-radius:50%;font-size:.9rem;font-weight:bold;}

/*
**********************************************************************************************
背景付きBOX
**********************************************************************************************
*/
.haikei-image{height:500px;background:url(../SVG/bg-sinryoka.svg) center/contain  no-repeat;}
.haikei-text{transform: translateY(-140px);}
.haikei-box{margin-bottom:-80px;}

/*
**********************************************************************************************
価格表
**********************************************************************************************
*/
.info-box{background:rgba(245,251,254,1);border:1px solid rgba(104,165,196,1);border-radius:24px;padding:40px;}
.info-table{width:100%;border-collapse:collapse;}
.info-table tr{border-bottom:1px solid rgba(104,165,196,1);}
.info-table tr:last-child{border-bottom:none;}
.info-table th{width:50%;padding:20px 0;text-align:left;color:rgba(71,174,185,1);font-weight:700;}
.info-table td{padding:20px 0;}
@media (max-width:768px){
.info-box{padding:24px;}
.info-table th,.info-table td{display:block;width:100%;padding:8px 0;}
.info-table tr{display:block;padding:16px 0;}
}

/*
**********************************************************************************************
プロフィール
**********************************************************************************************
*/
.doctor-profile{border-radius: 24px;padding: 40px;}
.doctor-table{width: 100%;border-collapse: collapse;}
.doctor-table tr{border-bottom: 1px solid rgba(104,165,196,.35);}
.doctor-table tr:last-child{border-bottom: none;}
.doctor-table th{width: 180px;padding: 20px 10px 20px 0;text-align: left;vertical-align: top;color: rgba(71,174,185,1);font-weight: 700;}
.doctor-table td{padding: 20px 0;line-height: 2;}
@media (max-width:768px){
.doctor-profile{padding:24px;}
.doctor-table,.doctor-table tbody,.doctor-table tr,.doctor-table th,.doctor-table td{display:block;width:100%;}
.doctor-table tr{padding:16px 0;border-bottom:1px solid rgba(104,165,196,.35);}
.doctor-table th{padding:0 0 8px;}
.doctor-table td{padding:0;}
}

/*
**********************************************************************************************
医院概要
**********************************************************************************************
*/
.clinic-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid rgb(204,204,204);border-radius:16px;overflow:hidden;}
.clinic-table th,.clinic-table td{padding:20px 24px;vertical-align:middle;}
.clinic-table th{width:180px;background:rgba(213,234,226,1);font-weight:700;text-align:center;color:#333;}
.clinic-table td{background:rgba(248,249,240,1);color:#333;line-height:1.8;}
@media (max-width:768px){
.clinic-table,.clinic-table tbody,.clinic-table tr,.clinic-table th,.clinic-table td{display:block;width:100%;}
.clinic-table th{border-bottom:none;text-align:left;padding:14px 18px;}
.clinic-table td{border-top:none;padding:16px 18px;}
}


/*
**********************************************************************************************
紹介写真
**********************************************************************************************
*/
.facility-card{position:relative;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:.35s;}
.facility-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.15);}
.facility-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;transition:.5s;}
.facility-card:hover img{transform:scale(1.05);}
.facility-caption{position:absolute;left:20px;right:20px;bottom:20px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-radius:999px;padding:12px;text-align:center;font-weight:600;box-shadow:0 5px 20px rgba(0,0,0,.12);}

/*
**********************************************************************************************
googlemap
**********************************************************************************************
*/
.map-wrap{padding:15px;background:white;border:4px dashed #9cc;border-radius:30px;}
.gmapbox{width:100%; height:449px; background:transparent url(../images/bg_googlemap.jpg) top center no-repeat; background-size:contain;}
#map_canvas0{ position:relative; max-width:100%; height:50vh;}

/* スマホ */
@media (max-width:768px){
#map_canvas0{ position:relative; max-width:100%; height:30vh;}
}

/*
**********************************************************************************************
BOX
**********************************************************************************************
*/
.fuwafuwa-box{position: relative;width:min(90%);margin:auto;padding:4rem;background: #fff3df;backdrop-filter: blur(8px);animation: morph 8s ease-in-out infinite;box-shadow: 0 10px 30px rgba(0,0,0,.08);/* 画像がはみ出せるように */overflow: visible;}

.content{position: relative;z-index: 2;}

/* 右下画像 */
.corner-image{position:absolute;height:auto;z-index:3;/* 画像も少し浮かせる */animation: float 4s ease-in-out infinite;}


.top-left{width:160px;left:-35px;top:-25px;}/* 左上 */
.top-right{width:200px;right:-25px;top:-25px;}/* 右上 */
.bottom-left{width:80px;left:50px;bottom:-20px;}/* 左下 */
.bottom-right{width:80px;right:-30px;bottom:-20px;}/* 右下 */
.bottom-right2{width:80px;right:-90px;bottom:-20px;}/* 右下2 */
.bottom-right3{width:70px;right:-30px;bottom:-20px;}/* 右下3 */

/* 枠の変形 */
@keyframes morph{
0%,100%{border-radius:53% 47% 62% 38% /40% 52% 48% 60%; }
50%{border-radius:45% 55% 38% 62% /55% 40% 60% 45%;}}
/* 画像ふわふわ */
@keyframes float{
0%,100%{transform: translateY(0);}
50%{transform: translateY(-12px);}
}

/* スマホ */
@media (max-width:768px){
.fuwafuwa-box{padding:2rem; }
.corner-image{width:80px;right:-10px;bottom:-10px;}

.top-left{width:120px;left:-35px;top:-25px;}/* 左上 */
.top-right{width:160px;right:-25px;top:-25px;}/* 右上 */
.bottom-left{width:70px;left:-40px;bottom:-20px;}/* 左下 */
.bottom-right{width:70px;right:-35px;bottom:-20px;}/* 右下 */
.bottom-right2{width:80px;right:-90px;bottom:-20px;}/* 右下2 */
.bottom-right3{width:50px;right:-40px;bottom:-20px;}/* 右下3 */
}

/*
**********************************************************************************************
footer
**********************************************************************************************
*/

#footer{width:100%; background:rgba(213,234,226,.8)}

.bottom-cta{position: fixed;left: 10px;right: 10px;bottom: 10px;display: flex;gap: 10px;z-index: 9999;}
/* ボタン */
.cta-btn{flex: 1;display:block;border-radius: 18px;overflow: hidden;}
.cta-btn:active{transform: scale(.97);}
.cta-btn img{width:100%;height:auto;display:block;}
/* 本文が隠れないよう余白 */
body{padding-bottom: 95px;}
/* PCは消す */
@media (min-width:992px){body{padding-bottom:0;}}
/*
