﻿/* レイアウトのベース */
.wrapper{
width:100%;
margin:auto;
}
.whole{
background-color:#ffffee;
}

/* ヘッダー */
.wrap{
width:90%;
margin:auto;
}
.header{
margin:auto;
width:80%;
display:flex;
align-items:flex-start;
}
.header a{
display:inline-block;
color:#333;
text-decoration:none;
transition:all 0.3s ease;
}
.header a:hover{
transform:translateY(-4px);
filter:drop-shadow(0 4px 6px rgba(0,0,0,.2));
}
.logo{
margin-right:20px;
}
.header-content{
display:flex;
}
.address{
padding-top:15px;
text-align:center;
font-size:15px;
font-weight:bold;
}
.left-column,
.right-column{
display:flex;
flex-direction:column;
padding:30px;
}
.header img{
max-width:100%;
height:auto;
}

/* グローバルナビ */
nav ul{
display:flex;
list-style:none;
padding:0;
margin:0 auto;
width:90%;
}
nav li{
position:relative;
width:16.6%;
padding:0;
text-align:center;
font-size:16px;
cursor:pointer;
border-right:1px #333 solid;
}
nav li a{
display:block;
width:100%;
height:100%;
padding:5px 0;
color:#333;
text-decoration:none;
transition:all 0.3s ease;
}
nav li a:hover{
font-weight:bold;
transform:translateY(-4px);
}
.home{
border-left:1px #333 solid;
}

/* タイトル */
.title{
margin-top:30px;
padding:30px;
color:#fff;
font-size:50px;
text-align:center;
background-color:#16be7d;
}

/* 本文（無料駐車場） */
.free-top{
width:60%;
margin:auto;
text-align:center;
padding-top:150px;
border-bottom:2px #000 solid;
margin-bottom:100px;
}
.free{
color:#005fff;
font-size:30px;
padding-bottom:50px;
}
.text{
font-size:20px;
padding-bottom:20px;
}

/* マップ */
.map-wrapper{
width:80%;
max-width:1000px;
margin:0 auto;
padding:100px 0;
}
.map-wrapper iframe{
width:100%;
height:550px;
border:none;
}

/* 情報 */
.access-info{
width:60%;
margin:auto;
text-align:center;
padding-bottom:200px;
}
.access-info h2{
font-size:25px;
font-weight:bold;
padding:50px 0;
}
.access-info p{
font-size:20px;
padding-bottom:50px;
}

/* サイドボタン */
.page-top,
.page-top1{
position:fixed;
right:-80px;
z-index:1000;
display:block;
width:60px;
height:80px;
opacity:0;
visibility:hidden;
transition:0.2s;
}
.page-top img,
.page-top1 img{
display:block;
width:100%;
height:auto;
}
.page-top1{
bottom:420px;
z-index:1001;
}
.page-top{
bottom:200px;
}
.is-active{
opacity:1;
visibility:visible;
}
.page-top.is-active,
.page-top1.is-active{
right:-2px;
}
.page-top:hover,
.page-top1:hover{
transform:translateY(-5px);
transition:transform 0.3s ease, box-shadow 0.3s ease;
}

/* フッター */
.foot{
padding-top:10px;
padding-bottom:10px;
background-color:#eee;
}
.bottom1{
text-align:center;
padding-top:10px;
padding-bottom:20px;
}
.bottom1 a{
display:inline-block;
transition:all 0.3s ease;
}
.bottom1 a:hover{
transform:translateY(-4px);
filter:drop-shadow(0 4px 6px rgba(0,0,0,.2));
}
.last{
display:flex;
width:80%;
margin:auto;
}
.left-items{
display:flex;
flex-direction:column;
gap:20px;
width:50%;
text-align:center;
padding-top:40px;
}
.right-items{
display:flex;
flex-direction:column;
gap:30px;
width:50%;
text-align:center;
padding-bottom:50px;
}
.bottom-address{
font-size:25px;
}
.last a{
display:inline-block;
color:#333;
text-decoration:none;
transition:all 0.3s ease;
}
.last a:hover{
transform:translateY(-4px);
filter:drop-shadow(0 4px 6px rgba(0,0,0,.2));
}
.foot-nav{
width:80%;
margin:auto;
padding:20px 0;
}
.foot-nav ul{
display:flex;
list-style:none;
justify-content:center;
padding:0;
margin:0;
}
.foot-nav li a{
color:#333;
text-decoration:none;
transition:all 0.3s ease;
}
.foot-nav li a:hover{
font-weight:bold;
transform:translateY(-4px);
}
.leg{
text-align:center;
font-weight:normal;
padding-top:10px;
padding-bottom:10px;
}

/* スクロールで“ゆっくり”下からスライドイン（地図以外に .fade-slide を付与） */
.fade-slide{
opacity:0;
transform:translateY(60px);
transition:opacity 1.4s ease, transform 1.4s cubic-bezier(.22,.61,.36,1);
will-change:opacity, transform;
}
.fade-slide.is-show{
opacity:1;
transform:translateY(0);
}

/* 動きを苦手な方への配慮 */
@media (prefers-reduced-motion: reduce){
.fade-slide{
transition:none;
opacity:1;
transform:none;
}
}
/* ----------------------------------------------------
     モバイルレイアウト（768px 以下）
   ---------------------------------------------------- */
@media screen and (max-width: 768px) {

  /* 全体 */
  html, body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
  }

  .wrapper, .whole, .wrap {
    width: 100%;
    margin: 0 auto;
  }

  /* ===== 固定ヘッダー ===== */
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
    background: #fff;
    padding: 0 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  }

  .whole { margin-top: 70px; }

  .logo img {
    height: 70px;
    width: auto;
  }

  /* PC メニューは非表示 */
  nav, .header-content {
    display: none;
  }

  /* ===== ハンバーガーメニュー ===== */
  .hamburger {
    display: block;
    width: 40px;
    height: 28px;
    cursor: pointer;
  }
  .hamburger span {
    display: block;
    height: 3px;
    background: #16be7d;
    margin: 6px 0;
    border-radius: 2px;
    transition: 0.3s;
  }
  .hamburger.open span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
  }
  .hamburger.open span:nth-child(2) {
    opacity: 0;
  }
  .hamburger.open span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
  }

  /* ===== 開閉されるモバイルメニュー ===== */
  .mobile-menu {
    display: none;
    position: fixed;
    top: 70px;
    left: 0;
    width: 100%;
    max-height: calc(100vh - 70px);
    background: #fff;
    z-index: 2000;
    overflow-y: auto;
    padding: 10px 0 20px;

    /* アニメーション（上からスライド） */
    transform: translateY(-20%);
    opacity: 0;
    transition: 0.6s ease-out;
  }
  .mobile-menu.show {
    display: block;
    transform: translateY(0);
    opacity: 1;
  }

  /* ===== メニュー項目（HOME〜ご予約） ===== */
  .mobile-menu .menu-links {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
  }
  .mobile-menu .menu-links li {
    border-top: 1px solid #b4d9c7;
    opacity: 0;
    transform: translateY(-12px);
    transition: 0.45s ease-out;
  }
  .mobile-menu .menu-links li:last-child {
    border-bottom: 1px solid #b4d9c7;
  }
  .mobile-menu.show .menu-links li {
    opacity: 1;
    transform: translateY(0);
  }
  .mobile-menu .menu-links a {
    display: block;
    padding: 14px 0;
    font-size: 16px;
    background: #e3f6ec;
    color: #0f6f45;
    text-align: center;
    font-weight: 600;
    text-decoration: none;
  }

  /* ===== メニューフッター（電話・住所・診療時間） ===== */
  .mobile-menu .menu-footer {
    text-align: center;
    padding-bottom: 0;
  }

  .mobile-menu .menu-tel img {
    width: 180px;
    margin-top: 10px;
  }
  .mobile-menu .menu-address {
    font-size: 13px;
    margin-top: 10px;
    font-weight: bold;
    line-height: 1.6;
    padding: 0 20px;
  }
  .mobile-menu .menu-time img {
    width: 300px;
    margin: 15px auto 0;
  }

  /* ===== ページタイトル ===== */
  .title {
    font-size: 28px;
    text-align: center;
    margin-top: 70px;
    padding: 16px 10px;
    background-color: #16be7d;
    color: #fff;
  }

  /* ===== フッター ===== */
  .foot {
    padding: 10px;
    text-align: center;
  }
  .bottom1 img {
    height: 100px;
    width: auto;
  }
  .last {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .left-items, .right-items {
    width: 100%;
    gap: 10px;
  }
  .telephon img,
  .business-hour img,
  .reservation img {
    width: 280px;
    margin-top: 10px;
  }

  .bottom-address a {
    font-size: 13px;
    color: #333;
  }

  .foot-nav { display: none; }
  footer .leg {
    margin-top: 24px;
    font-size: 11px;
  }




    /* 無料駐車場エリア */
  .free-top {
    width: 90%;
    padding-top: 60px;
    margin: 0 auto 40px;
    border-bottom: 1px solid #ccc;
  }

  .free {
    font-size: 20px;        /* 30px → 読みやすいサイズに */
    padding-bottom: 20px;
  }

  .text {
    font-size: 15px;        /* 20px → 適正サイズ */
    line-height: 1.6;
    padding-bottom: 12px;
  }

  /* アクセス情報（住所・電車・バス） */
  .access-info {
    width: 90%;             /* 60% → 画面に合わせて90%へ */
    padding-bottom: 80px;
  }

  .access-info h2 {
    font-size: 18px;        /* 25px → スマホ向けに縮小 */
    padding: 30px 0 10px;
  }

  .access-info p {
    font-size: 15px;        /* 20px → 小さめで読みやすい */
    line-height: 1.7;
    padding-bottom: 20px;
  }

  /* Google マップ */
  .map-wrapper {
    width: 95%;             /* 横幅を広げて見やすく */
    padding: 40px 0;
  }

  .map-wrapper iframe {
    height: 300px;          /* スマホでは 550px は大きすぎる */
  }

  /* フッター内文字の読みやすさ調整 */
  .bottom-address a {
    font-size: 14px;
    line-height: 1.5;
  }

  .leg {
    font-size: 11px;
  }
}

/* PC ではハンバーガー非表示 */
@media screen and (min-width: 769px) {
  .hamburger,
  .mobile-menu {
    display: none !important;
  }
}
/* ===== スマホ用：サイドボタンの位置を下げる ===== */
@media screen and (max-width: 768px) {

  .page-top1 {
    bottom: 250px;   /* ← 予約ボタン（下げる） */
  }

  .page-top {
    bottom: 30px;    /* ← TOPへ（下げる） */
  }

}
