body {
  font-family: "Zen Maru Gothic", serif, "游ゴシック", YuGothic, "メイリオ", Meiryo, Verdana, sans-serif;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  background: linear-gradient(to bottom, #ffffff, #f0f8ff);
  overflow-x: hidden;
  }
  .zen-maru-gothic-regular {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 400;
    font-style: normal;
  }
  .zen-maru-gothic-medium {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 500;
    font-style: normal;
  }
  
  
  h1 {
    font-family: "Zen Maru Gothic", serif;
    font-weight: bold;
    color: #1E2D40;
  }
 h2 {
  font-family: "Zen Maru Gothic", serif;
  width: 70%;
  margin: 10px auto 50px auto; /* 全体を中央に配置 */
  font-size: 1.5rem; /* タイトルとしてやや大きめ */
  font-weight: bold;
  color: #333; /* 落ち着いたグレー */
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); /* ごくわずかな影 */
  text-align: left;
  }

  h3 {
  color: #1E2D40;
  }
  h5 {
  text-align: center;
  color: #1E2D40;
  }
  
a {
color: #00688B
}
.row {
  margin-top: 50px;   /*院長挨拶*/
}
  
  /* ヘッダーナビ */
  .nav-link {
    font-family: "Zen Maru Gothic Medium",serif;
    color: #1E2D40;
    font-size: 1.3rem;
　}
  .dropdown-menu {
    background-color: #e0effa;
  }
  header.nav-link {
  color: #1E2D40;
  font-size: 1rem;
  padding: 0.5rem 1rem;
}

header.nav-link:hover {
  text-decoration: underline;
  color: #035aa6;
}

.nav-link.nav-reserve {
  background-color: #f5790e;
  color: #fff;
  border-radius: 8px;
  padding: 6px 14px;
  font-weight: bold;
  transition: background-color 0.3s ease;
}

.nav-link.nav-reserve:hover {
  background-color: #035aa6;
  color: #fff ;
}
 
  /* スマホ用ナビを非表示 */
  #nav-sp {
      display: none;
  }

  #hamburger {
    display: none;
  }

  header .nav-link:hover {
    text-decoration: underline;
    }
/* ロゴ */
  .navbar-brand {
    padding-bottom: 5px;
    padding-left: 10px;
  }

  .header {
  width: 100%;
  box-sizing: border-box
  }
 
/* キャプション */

.carousel-caption h2 {
  font-size: 2rem; 
  color: #024059; 
  font-weight: 600;
  line-height: 1.8;
  text-shadow: none; 
  position: relative;
    bottom: -24px;
 left: 7px;
}
.carousel-caption {
 background: rgba(255, 255, 255, 0.6); /* 半透明白背景 */
  backdrop-filter: blur(3px); /* 背景ぼかし */
  border-radius: 1rem;
  padding: 0.5rem;
  max-width: 27rem;
width:27rem;
  height: 20rem;
  margin: 0 auto;
  bottom: 18rem;     
  position: absolute;
  top: 3rem;
  left: 15rem;
}

/* 画像フィット調整 */
.carousel-inner img {
  object-fit: cover; /* 画像をコンテナいっぱいに収まるように拡大縮小する*/
  height: 100vh; /* 画面いっぱいに */
}
.carousel-inner {
  height: 800px;
}
/* コントロールボタン（前後の矢印） */
.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-size: 100%, 100%;
  color: #cfeaf2;
}

/* フェード効果 */
.carousel-fade .carousel-item {
  transition: opacity 1s ease;
}
/* Animate.cssがあればこれでOK */
  @keyframes fadeInUp {
    0% {
      opacity: 0;
      transform: translateY(30px);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
    }
  }
   .animated {
    animation: fadeInUp 1.5s ease-out;
  }

.fadeInUp {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.6s ease, transform 0.6s ease;
}

.fadeInUp.show {
opacity: 1;
transform: translateY(0);
}
  

/* ブログ記事 TOPページ*/
#blog-articles-top .blog_title {
  margin: 0 -30px 0 -30px;
  padding: 0px 20px 40px 20px;
}
/* ブログ記事 TOPページタイトル*/
#blog-articles-top h5 {
  text-align: left;
}
/* ブログ記事 TOPページ下地*/
#blog-articles-top {
  background-color: #f0f4f9; 
  padding: 60px 100px;
  max-width: 1000px;
  margin: 10px auto 200px auto;
}

.blog-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 30px;
  gap: 20px;
}
/* ブログ記事タイトル */
.blog-post h5 {
  font-size: 1.4rem;
  color: #024059;
  margin-bottom: 10px;
}

/*ブログ 日付・著者 */
.post-date,
.post-author {
  font-size: 0.9rem;
  color: #333;
  margin-bottom: 10px;
}

/* 記事本文 */
.blog-post p {
  font-size: 1.1rem;
  color: #333;
  line-height: 1.6;
  margin: 0 10px 0 10px;
  text-align: left;
}

/* ブログ続きを読むボタン */
.read-more-topblog {
  display: inline-block;
  padding: 8px 20px;
  background-color: #00688B;
  color: #ffffff;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.3s ease;
  white-space: nowrap;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  cursor: pointer;
  }
/* ブログ続きを読むボタンホバー */
.read-more-topblog:hover {
  background-color: #f6f7f1; /* lightyellow*/
  text-decoration: underline;
  }

/* 親要素に text-align を使って中央寄せ */
.blog-post,#blog-list, #tips-list, #tips-articles {
  text-align: center;
}


/* TOP豆知識 */
#tips-articles {
  background-color: #f0f4f9;
  padding: 0 100px 60px 100px;
  max-width: 1000px;
  margin: 50px auto;
  text-align: left;
}
.post-content h5 {
  font-size: 1.4rem;
  color: #00688B;
  margin-bottom: 10px;
}


/*豆知識続きを読むボタン */
.read-more-toptips {
  display: inline-block;
  padding: 8px 20px;
  background-color: #00688B;
  color: #ffffff;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.3s ease;
  white-space: nowrap;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
 cursor: pointer;
}
/*豆知識続きを読むボタン ホバー*/
.read-more-toptips:hover {
  background-color: #f6f7f1;
 text-decoration: underline;
 }
/*豆知識タイトル*/
#tips-articles h2 {
  padding: 50px 0px 20px 0px;
  text-align: left;
  margin: 10px;
}
.post-date {
  color: #333;
}
.tip-preview h3 {
text-align: center;
}

.wp-block-list li{
  margin: 0px 63px;
}
/* 1記事の全体ラッパー */
.tips-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 30px;
}
/* テキストエリア */
.tips-text {
  flex: 1;
}
.tips-btn {
  flex-shrink: 0;
  align-self: flex-start;
}


/* ブログ/豆知識一覧ページ */
#blog-list {
  text-align: left;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
#blog-list h5 {
  text-align: left;
}

#tips-list {
  text-align: left;
  width: 800px;
  height: auto;
  margin: 0 auto;
}
#tips-list h5 {
  text-align: left;
}

.blog-post .post-category {
text-align: left;
}
.post-category  {
position: relative;
right: 375px;
bottom: 10px;
}

/* ブログ一覧ページボタン */
.read-more-blogindex {
  display: inline-block;
  padding: 8px 20px;
  background-color: #00688B;
  color: #ffffff;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.3s ease;
  white-space: nowrap;
  position: relative;
    left: 277px;
    bottom: 31px;
  cursor: pointer;
}
/* ブログ一覧ページボタンホバー */
.read-more-blogindex:hover {
  background-color: #f6f7f1;
  color: #035aa6;
  text-decoration: underline;
}
/* 各ブログの記事ページ */
#blog-post {
 margin: 100px auto;
 padding: 50px 30px;;
  width: 70%;
  height: auto;
  background: #ffffff; 
  box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* ほんのり影*/
  border-radius: 8px; 
}
.wp-block-heading {
  margin: 0px 51px;
    color: #035aa6;
    font-size: 1.2rem;
}
.post-content h2 {
  margin: 30px auto 30px 39px;
  width: 87%;
}


/* コンセプト */
.concept_title h2{
  margin: 20px auto 50px -10px; 
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333; 
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); /* ごくわずかな影 */
  text-align: left;
} 


.concept_message {
  width: 100%;
  margin: 0;
  text-align: left; /* テキストは左揃え */;
  }
.concept_message h4 {
  margin-bottom: 28px;
  font-size: 1.2rem;
  text-shadow: 0.5px 0.5px 2px rgb(191, 191, 191);
  color: #1E2D40;
}    
.concept_message p {
  font-size: 18px;
}

.card-text-reception {
  text-align: left;
  margin-top: 30px;
}
.info_adress {
  text-align: left;
}
.info_tel {
  text-align: left;
}

.my-5 {
  margin-bottom: 200px;
}
.concept_message img {
  width: 100px;
  height: auto;
}
.row_concept .col-md-6{
  width: 390px;
  height: auto;
}
.thead {
  position: relative;
  right: 40px;
}


.btn-primary-access-reception {
  margin-top: 20px;
  background-color: #00688B;
  color: white;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.3s ease; /*一回だけの機能*/
  
}
.btn-primary-access-reception:hover {
  background-color: #f6f7f1; 
  color: #333;
  text-decoration: underline;
}

/* 大切なこと*/
.point_title h2 {
  margin: 100px auto 50px 165px;;
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: left;
}
/* point部分 */
.card-deck {
  margin-right: 0;
  margin-left: 0;
  margin-bottom: 100px;
  margin-top: 30px;
position: relative;
} 
.card-img-top_point {
  width: 10%;
  height: auto;
  margin: 0px auto;
}
.card {
  background-color: #e0effa;
  animation: fadeInUp 1.5s ease-out
}

/* ポイント部分のリンクボタン */
.btn-primary-point {
  background-color: #00688B;
  color: white;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.3s ease;
  position: absolute;
    left: 8rem;
bottom: 1rem
}
.btn-primary-point:hover {
  background-color: #f6f7f1; /* ホバー時に少し濃く */
  color: #333;
  text-decoration: underline;
}



/* 特徴 */
.character_title {
  margin: 50px auto;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333; 
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: center;
  margin: 50px auto;  
}
.character_img {
  border-radius: 12px; 
  display: block;
}
.no-border-bottom {
  border-bottom: none !important;
  box-shadow: none !important; /* シャドウが付いてる場合も消す */
}
.card-body {
  background-color: #e0effa; 
  padding: 1.5rem;


}
.custom-card {
  transform: scale(0.85); /* 約30%小さく表示 */
  transform-origin: center;
  margin: 20px auto;
}



/* 院長ご挨拶 */
.greeting_title  {
  margin: 0px auto;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: left;
}

.greeting_text {
  text-align: left;
  margin: 1rem 2rem;
}
.greeting_title img {
  width: 100%;
  border-radius: 10px;
}


/* ご予約・アクセス */
.access_title {
  margin: 200px auto 10px 82px;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333; 
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: left;  
}



.access-map-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 30px; /*1つ目が行間、2つ目が列間*/
  margin: 50px auto;
  justify-content: space-between;
}
.embed-responsive {
  width: 90%;
}

.access-info {
  flex: 1;
  min-width: 300px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.flex-container {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 10px 50px 10px 80px;
}


.flex-image img {
  width: 50px;
  height: 50px;
  object-fit: contain; /*contain: 画像の縦横比を維持しながら、コンテナ内に収まるように拡大縮小*/
}

.flex-text h5 {
  margin: 0 auto;
  text-align: left;
}

.map-container {
  flex: 1;
  min-width: 300px;
  height: 450px;
}


.mt-5rem {
  margin-top: 5rem;
}
.col_about img {
  width: 200px;
  height: 200px;
  object-fit: cover; /*cover: 画像の縦横比を維持しながら、コンテナ全体を覆うように拡大縮小*/
  border-radius: 50%;
  border: 3px solid #ccc; 
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* ほんのり影 */
}

/* 予約ボタン固定 */
.fixed-reserve-btn {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.fixed-reserve-btn.active {
  opacity: 1;
  pointer-events: auto;
}

.fixed-reserve-btn {
  position: fixed;
  top: 25%;
  right: 0;
  transform: translateY(-50%); /*要素をその自身の幅の50%だけ水平方向にマイナス方向（左に）移動させる*/
  background-color: #f5790e;
  color: #fff;
  padding: 20px;
  border-radius: 8px 0 0 8px;
  font-weight: bold;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  z-index: 1000;
  transition: background-color 0.3s; /*一回だけの機能*/

  writing-mode: vertical-rl; /* ← 縦書き（右から左） */
  text-align: center;
  line-height: 1.5;
}

.fixed-reserve-btn:hover {
  background-color: #035aa6;
  color: #fff;
  text-decoration-line: none;
}



/* フッター */
/* スマホ用footer非表示 */
.fixed-footer {
  display: none;
}
footer {
  width: 100%;
  padding: 40px 0;
  text-align: center;
}

footer .nav-link {
  color: #1E2D40;
  font-size: 1rem;
  padding: 0.5rem 1rem;
}

footer .nav-link:hover {
  text-decoration: underline;
  color: #035aa6;
}
footer .nav {
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
footer small {
  display: block;
  color: #666;
  font-size: 0.8rem;
}

/* アクセス */
.vehicle-icon {
  width: 50px;
  height: auto;
}


/* 診療内容ページ */
.service_title h2 {
  text-align: left;
  margin: 0 5rem;
}
.card-img-top-service {
  margin: 0 auto;
  width: 26%;
  height: auto;
}

.service_reserve_btn {
  text-align: center;   /* 子の a タグを中央に */
  margin: 20px 0 100px;
  position: static;
}

.list-group-item {
  border: none; /* すべての横線（ボーダー）を消す */
  text-align: left;
} 
.btn-primary-access {
  width: 300px;
  height: auto;
  background-color: #024059;
  color: #fff;
}
.btn-primary-access:hover {
  background-color: #f6f7f1; /* ホバー時に少し濃く */
}

/* 診療時間表 */
table {
  width: 100%;
  height: auto;
  line-height: 3rem;
}
th,
td {
  padding: 2px 8px 0;
  text-align: center;
  border: 0px none;
  vertical-align: baseline;
}

thead > tr > th {
  background-color: #fff;
  font-size: 16px;
}

td {
  background-color: #e8f5f8;
}

/* map */
.map-container-service {
  width: 595px;
  position: relative;
  right: 30px;
  bottom: 30px;
  background-color: transparent;
}

.reception-time-box ,
.map-box {
  max-width: 100%;     /* 幅を制限 */
  width: 100%;
  margin: 15px auto;
}
/* MAPカラムのカードだけ背景透明にする */
.card.map-card,
.card.map-card .card-body {
  background-color: transparent !important;
  box-shadow: none !important;
}

/* クリニックについてページ */
.character_title h2 {
  text-align: left;
  margin: 0 5rem;
}
.card-img-top_about {
  width: 300px;
  height: auto;
  border-radius: 50%;
  position: relative;
  left: 67px;
    filter: opacity(90%);
}
.character_text h5 {
  text-align: left;
  margin: 2rem 5rem;
}
.character_text p {
text-align: left;
  margin: 0 5rem;
}
.container_about p {
font-size: 20px;
}

.display-4 {
  position: relative;
  }
/* タイトル画像 */
.about-top {
  filter: opacity(50%);
  z-index: 10;
}
.about-top h2 {
  font-size: 2rem;
}
.card-body {
  padding: 2.5rem;
  text-align: left;
}
.col {
  margin: 10px 5px 0 5px
}
.about_title {
  text-align: center;
}

/* スタッフ紹介 */
.staff-top {
  position: relative;
  height: 300px; /* お好みで調整可能 */
  overflow: hidden;
}

/* 背景画像に関するスタイル */
.staff-img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像が縦横比を保って全体にフィット */
  filter: opacity(50%);
}

/* タイトルを中央配置 各ページのタイトル共通*/
.staff-title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #fff; 
}

.staff_title h2 {
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333; 
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); /* ごくわずかな影 */
  text-align: left;
  margin-left: 174px;
}

.card-img-top_staff {
  width: 300px;
  height: auto;
  border-radius: 50%;
  position: relative;
  left: 67px;
    filter: opacity(90%);
    top: 23px;
}
/* タイトル画像 */
.staff-top {
  filter: opacity(90%);
  z-index: 10;
  margin-bottom: 50px;
}
.staff-top img {
  width: 100%;
  display: block; /* 画像下の余白対策 */
}

.staff-top h2 {
  font-size: 2rem;
}
/* staff画像下のテキスト部分 */
.card-body {
  padding: 2rem;
}


/*トップに戻るボタン*/
#top-btn {
  position: fixed;
  bottom: 38px;
  right: 20px;
  background-color: #035aa6;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  padding: 28px 24px;
  border-radius: 50%;
  font-family: Noto Sans JP, sans-serif;
}
/* FAQページ */
.faq_title {
  margin: 20px auto 50px auto;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333; 
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); /* ごくわずかな影 */
  text-align: left;
}
.faq_text {
  margin: 20px 230px 30px 230px;
}

/* アコーディオン */
.card_faq {
  margin: 50px auto 20px auto;
  background-color: #f0f8ff;
  text-align: left;
  max-width: 1000px;
}

.accordion-003 {
  max-width: 1000px;
  margin-bottom: 7px;
  border-bottom: 2px solid #fff;
  text-align: left;
  }
  
  .accordion-003 summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 1em 2em;
  color: #333333;
  font-weight: 600;
  cursor: pointer;
  }
  
  .accordion-003 summary::-webkit-details-marker {
  display: none;
  }
  
  .accordion-003 summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid #333333b3;
  border-right: 3px solid #333333b3;
  content: '';
  transition: transform .3s;
  }
  
  .accordion-003[open] summary::after {
  transform: rotate(225deg);
  }
  
  .accordion-003 p {
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  padding: .3em 2em 1.5em;
  color: #333333;
  transition: transform .5s, opacity .5s;
  }
  
  .accordion-003[open] p {
  transform: none;
  opacity: 1;
  background-color: #e0effa;
  }

  /* コンタクトページ */
  .contact_title h2 {
    margin: 30px auto 30px 0px;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: left;
  }
  .contactform_title {
    margin: 100px auto 30px 167px;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: left;
  }

  /* お問い合わせフォーム */
  
/* フォームの外側コンテナを中央寄せ＋幅を制限 */
.wpforms-container-full {
  margin: 0 auto;            /* ページ中央に配置 */
  max-width: 1000px !important; /* お好みの幅に調整 */
  width: 100% !important;
}

/* フォーム本体にも幅100%を指定 */
.wpforms-container-full .wpforms-form {
  width: 100% !important;
  box-sizing: border-box;    /* パディングを含めた幅計算 */
}
.wpforms-submit {
  background-color: #035aa6 !important;
  color: white;
  border-radius: 5px;
}



/* 予約ページ */
.reserve_title {
  margin:  50px auto 30px 147px;
  font-size: 1.5rem; 
  font-weight: bold;
  color: #333;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05); 
  text-align: left;
}
.reserve_text {
  margin: 50px auto 30px 147px;
}
.reserve_tel {
  color: #333;
}
/* カレンダー */
.calendar {
    margin: 5em;
}
.opening_effect_calendar {
    margin: 50px 100px;
}

 /* ========================================================
      スマートフォン対応 
 =========================================================*/ 

@media (max-width: 768px) {
  /* ヘッダー固定 */
  header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  }
  body {
    padding-top: 70px;  /* ヘッダー高さ分を確保 */
　 padding-bottom: 80px; /* フッター固定ナビ用 */
    margin: 0;
   width: 100%;
   
  }
  h2 {
    width: 100%;
    
  }

  /* スマホ用ナビゲーション */
/* PC用ナビゲーション非表示 */
#nav-pc {
  display: none;
}


/* ハンバーガーメニュー */
#menu-sp {
  position: absolute;
  top: 0px;
  right: 0px;
}
nav.nav {
  display: none;
}
/* スマホ用ナビゲーションの表示切替*/
    /* 初期状態、レイアウトと非表示設定 */
    #nav-sp {
      background-color: #91ccd9;
      
      position: fixed;
      left: 0;
      top: 0;
      height: 80vh;
      width: 100%;
      z-index: 100;
      padding-bottom: 80px;  /* ← フッターナビ分のスペースを確保 */
      }
  #hamburger {
    display: flex;
    width: 40px;
    cursor: pointer;
    flex-direction: column;
    justify-content: space-around;
    height: 30px;
    position: relative;
        right: 25px;
  }
  .bar {
    height: 3px;
    background-color: #333;
    border-radius: 2px;
  }
  /* ×ボタン */
  #close {
      position: absolute;
      top: 11px;
      right: 20px;
      font-size: 3rem;
      cursor: pointer;
      color: #333;
      z-index: 200;
  }
/* ナビゲーションのリンクの装飾設定 */
#nav-sp > a {
  display: block;
  
}

#nav-sp > a:link {
  color: #ffffff;
}
#nav-sp > a:visited {
  color: #212529;
}
#nav-sp > a:hover {
  color: #035aa6;
  text-decoration: underline;
}
#nav-sp > a:active {
  color: #ffffff;
}

#nav-sp > .menu {
  text-decoration: none;
  display: block;
  margin: 25px 20px 45px 20px;
  height: 44px;
  font-size: 16px;
  
}
a.menu {
margin-top: 30px auto;
transition: all 0.3s ease;
}
.submenu {
  display: none;
  padding-left: 1em;
  background-color: #f0f0f0;
}
.submenu-title {
  cursor: pointer;
}
.has-submenu {
  cursor: pointer;
}

.has-submenu.open .submenu {
  display: block;
}
/* PC用予約ボタン非表示 */
.fixed-reserve-btn {
  display: none;
}

/* カルーセル */
.carousel-inner img {
  height: 60vh;
}
.carousel-inner {
  height: 615px;
}
.carousel-caption {
 background: rgba(255, 255, 255, 0.6);
  padding: 5px 5px;
  max-width: 300px;
  height: 200px;
  margin: 0 auto;
  bottom: 13rem;
  left: 3rem;
  animation: fadeInUp 1.5s ease-out;
}

.carousel-caption h2 {
  font-size: 1.4rem;
  line-height: 2rem;
 text-align: center;
}

/* ブログ */
.blog-item,
  .tips-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }

  .read-more-topblog,
  .read-more-toptips {
    display: inline-block;
    background-color: #00688B;
    color: #fff;
    padding: 8px 20px;
    border-radius: 5px;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 600;
    margin: 10px auto 0 auto;
    align-self: center;
    text-align: center;
    position: relative;
        left: 120px;
  }

  .read-more-topblog:hover,
  .read-more-toptips:hover {
    background-color: #f6f7f1;
   color: #333333;
   text-decoration: underline;
  }

  #blog-list,
  #tips-list,
  #tips-articles {
    padding: 2rem 1rem;
    width: 93%;
    box-sizing: border-box;
    margin: 2rem 1rem;
  }

  .blog_title,
  .tip_title {
    width: 100%;
    margin: 30px 15px;
    text-align: left;
  }

  .blog-post,
  .tip-preview {
    margin: 20px 5px 50px 5px;
    text-align: left;
  }

.post-content p {
margin: 10px 15px 20px 15px;
}
#blog-articles-top {
        padding: 1rem 2rem;
        margin: 2rem 1rem 2rem 1rem;
}

#blog-post {
    width: 100%;
}
.read-more-blogindex {
 position: relative;
    left: 95px;
    top: 20px;
}
.post-category {
    position: relative;
    right: 0;
    bottom: 10px;
}

/* 診療時間表 */
table {
  width: 100%;
  height: auto;
   line-height: 2rem;
  margin: 0;
}

th,
td {
  margin: 0;
  padding: 0;
  text-align: center;
  border: 0px none;
  vertical-align: baseline;
}

thead > tr > th {
  background-color: #fff;
  font-size: 14px;
}
.h100 {
  width: 370px;
}
.col {
  margin: 10px 2px 0 2px
}
/* 診療時間の下枠 */


.concept_title h2{
  font-size: 1.4rem;
  width: 100%;
  margin: 30px 5px 30px 5px;
        
}
.my-5 {
  margin-top: 3rem !important;
}
.btn-primary-access-reception {
  position: relative;
        left: 9px;
        bottom: 9px;
}

/* アクセス */
.access_title {
  margin: 100px 5px 20px 5px;
}
.access-info {
  position: relative;
  right: 32px;
}  
  /* Googleマップ */
  .access-map-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .map-container {
    width: 100%;
    height: 300px;
  }
  .embed-responsive {
    width: 98%;
    left: 5px;
  
  }
  

/* コンセプトメッセージ */
.concept_message {
  width: auto;
  margin: 0 5px;
  text-align: left;
  font-size: 20px;
}
.concept_title {
  width: 100%;
  margin: 100px auto 50px auto;
  font-size: 1.4rem;
  font-weight: bold;
  color: #333;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.05);
  text-align: center;
}

.btn-primary-point {
  position: absolute;
  left: 2.8rem;
  bottom: 0.5rem;
}

/* ３つの大切なこと */
.point_title h2 {
  margin: 10px 0px 20px 6px;
}


/* 院長挨拶 */
.greeting_title img {
width: 95%;
height: auto;
margin: 0 1rem;
}
.greeting_title {
margin: 0 1rem;
}
.container_greeting {
  margin: 10px 5px 10px 5px;
}


/* フッター */
/* PC用ナビ非表示 */
.footer-pcnv {
  display: none;
}
/* フッターボタン固定画面 */
.fixed-footer {
  position: fixed;
  bottom: 0;
  width: 99%;
  display: flex;
  justify-content: space-around;
  background-color: rgba(10, 10, 100, 0.1);
  z-index: 999;
}
.footer-btn-access,
  .footer-btn-reserve,
  .footer-btn-contact {
    flex: 1;
    text-align: center;
    padding: 9px;
    font-size: 1rem;
    font-weight: bold;
    color: #ffffff;
    text-decoration: none;
    border: solid 1px #f5790e;
    margin: 1px;
    border-radius: 5px;
    background-color: #f5790e;
    transition: all 0.2s ease;
    line-height: 2rem;
  }
/* クリック中（押している間） */
.footer-btn-access:active,
.footer-btn-reserve:active,
.footer-btn-contact:active{
  background-color: #f6f7f1;
  color: #1e2d40;
  transition: all 0.3s ease;
}
/* フォーカス状態 */
.footer-btn-access:focus,
.footer-btn-reserve:focus,
.footer-btn-contact:focus {
  outline: none;
  background-color: #f6f7f1;
  color: #1e2d40;
  border: 1px solid #1e2d40;
  text-decoration: underline;
}

.footer-btn-access:hover,
.footer-btn-reserve:hover,
.footer-btn-contact:hover {
  background-color: #f6f7f1;
  color: #1e2d40;
  border: 1px solid #1e2d40;
  text-decoration: underline;
}
/* 訪問済みリンク（←ここが重要！）*/
.footer-btn-access:visited,
.footer-btn-reserve:visited,
.footer-btn-contact:visited {
  background-color: #f5790e;
  color: #fff;
  border: 1px solid #f5790e;
  text-decoration: underline;
}


  .footer-pcnv {
    display: none;
  }

  #top-btn {
    display: none;
  }

footer small {
    margin-bottom: 45px;
}


/* クリニックについて */
.display-4 {
  font-size: 2.5rem;
  width: 375px;
}
.character_text h5 {
  margin: 0 1rem 3rem 1rem;
}
.character_text p {
  margin: 0 1rem 3rem 1rem;
}
.character_title h2 {
margin: 0 1rem 1rem 1rem;
font-size: 1.4rem
}
/* スタッフ紹介 */
.staff_title h2 {
  margin: 0 5px 20px 5px;
}
.card-img-top_staff {
  margin-top: 10px;
  left: 46px;
}
/* 治療について */

.card {
  margin: 20px 10px 0 10px;
}
.list-group-item {
  text-align: center;
}
.card-img-top-service {
 margin: 1rem auto;
    width: 21%;
    height: auto;
}
.card-title-map {
  margin-bottom: 24px;
}

.service_title h2 {
  margin: 0 1rem 1rem 1rem;
}

.btn-primary-reserve {
  width: 90%;         /* 画面幅の90%に縮小 */
    font-size: 16px;    /* 小さめに */
    padding: 10px 0;
}

.map-container-service {
  width: 390px;
  position: relative;
  right: 58px;
}
/* お問合せページ */
.contactform_title {
  margin: 100px auto 30px 5px;
}
.wpforms-container-full .wpforms-form {
  padding: 10px 5px;
}
 .reserve_title {
    margin: 50px 0 30px 5px;
} 
.reserve_text {
    margin: 50px 0 30px 5px;
}

/* よくある質問 */
.faq_title {
  margin: 10px 0 50px 5px;
}
.faq_text {
  margin: 20px 5px 30px 5px;
}

.my-5.faqpage {
margin-top: 100px;
}
/* TOPに戻るボタン */
#top-btn {
  display: none;
}

.wpforms-container,
.bookingpackage-wrapper {
  width: 100% !important;
  max-width: 100%;
  overflow-x: auto;
}

/* 予約ページカレンダー */
#booking-package_calendarPage {
position: relative;
right: 86px;
background-color:  transparent !important;
}
#booking-package_calendarPage .calendarHeader {
position: relative;
left: 85px;
}
.opening_effect_calendar {
margin: 50px 10px;
}
.calendar {
margin: 10px 5px;
position: relative;
left: 85px;
}  
}