@charset "utf-8";
/* Google Fontsの正しいインポート */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

:root {
  --easing: cubic-bezier(0.2, 1, 0.2, 1);
  --transition: 0.8s var(--easing);
  --color-base: #fff;
  --color-gray: #ccc;
  --color-gray-light: #f5f5f5;
  --color-gray-darken: #535353;
  --color-theme: #f38a84;
  --color-theme-light: #f5d1cf;
  --color-theme-light-light: #fde8e6;
  --color-theme-light-rgb: 253, 229, 222;
  --color-theme-dark: #aa605c;
  --color-theme-second: #fe5959;
  --color-theme-third: #f3a19d;
  --color-gold: #84755c;
  --color-accent: #c6a9d3;
  --color-accent-dark: #755794;
  --color-red: #cc0000;
  --color-blue: #7ecef4;
  --color-sky: #dcf4ff;
  --color-green: #b6e597;
  --color-green-dark: #4aa012;
  --color-orange: #f5a300;
  --color-yellow: #fec601;
  --color-cream: #ffef8f;
  --color-cream-light: #ffffee;
  --color-insta: #ff0069;
  --color-insta-light: #ff96c1;
  --font-base: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  --box-shadow: 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.05), -0.8rem -0.8rem 1.2rem #fff;
  --box-shadow-hover: 1rem 1rem 1.5rem rgba(0, 0, 0, 0.08), -1rem -1rem 1.5rem #fff;
  --box-shadow-inset: inset 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.05), inset -0.8rem -0.8rem 1.2rem #fff;
  --box-shadow-dark: 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.1), -0.8rem -0.8rem 1.2rem rgba(#fff, 0.2);
}

/*源暎ラテゴ*/
@font-face {
  font-family: 'GenEiLate';
  src: url('../fonts/GenEiLateMinN_v2.ttf') format('truetype');
}

/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
/* prettier-ignore */
html {
  font-size: 62.5%;
  /* ブラウザ拡大時にレイアウトが崩れないように */
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  width: 100%;
  scroll-padding-top: 160px; /* アンカーリンクのスクロールマージン */
}

/* PC版で固定ナビの高さに合わせてスクロールマージンを調整 */
@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  html {
    scroll-padding-top: 120px; /* 小さいPC用（固定ナビ100px + 余裕20px） */
  }

  /* すべてのアンカーリンクターゲットにスクロールマージンを設定 */
  [id] {
    scroll-margin-top: 120px;
  }
}

@media only screen and (min-width: 1367px) {
  html {
    scroll-padding-top: 140px; /* 大きいPC用（固定ナビ120px + 余裕20px） */
  }

  /* すべてのアンカーリンクターゲットにスクロールマージンを設定 */
  [id] {
    scroll-margin-top: 140px;
  }
}

body {
  font-family: var(--font-base);
  box-sizing: border-box;
  line-height: 1.5;
  font-size: 1.6rem;
  color: #333;
  background-color: var(--color-base);
  /* 横スクロールを防ぐ、縦スクロールは有効 */
  overflow-x: hidden;
  overflow-y: auto;
  width: 100%;
  max-width: 1920px;
  min-width: 320px;
  position: relative;
  /* 中央揃え */
  margin: 0 auto;
  min-height: 100vh;
}
/*タブレット以下ではスクロールを有効化*/
@media only screen and (max-width: 768px) {
  html {
    scroll-padding-top: 60px; /* モバイルでのアンカーリンクのスクロールマージン */
  }
  html,
  body {
    overflow-x: hidden;
    overflow-y: auto;
    height: auto;
    min-height: 100%;
  }
}

/* Reset for all elements */
/* prettier-ignore */
div,span,object,iframe,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  font-style: normal;
}

a {
  color: var(--color-theme);
  text-decoration: none;
}

body.fixed {
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
}

/* MARK:レスポンシブ表示制御 */
@media only screen and (max-width: 768px) {
  html {
    -webkit-text-size-adjust: 100%;
  }
}

/* スマホでは非表示（タブレット以上で表示）*/
@media only screen and (max-width: 768px) {
  .sp-hide {
    display: none !important;
  }
}

/* タブレットでは非表示（PC・スマホで表示）*/
@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .tab-hide {
    display: none !important;
  }
}

/* PCでは非表示（モバイル・タブレットで表示）*/
@media only screen and (min-width: 1025px) {
  .pc-hide {
    display: none !important;
  }
}

/* スマホのみ表示 */
@media only screen and (min-width: 600px) {
  .smp-only {
    display: none !important;
  }
}

/* タブレット以下のみ表示 */
@media only screen and (min-width: 769px) {
  .tab-ika {
    display: none !important;
  }
}

/* タブレットのみ表示 */
@media only screen and (max-width: 599px), only screen and (min-width: 1025px) {
  .tab-only {
    display: none !important;
  }
}

/* PCのみ表示 */
@media only screen and (max-width: 768px) {
  .pc-only {
    display: none !important;
  }
}

/* Form Elements */
input[type='text'],
input[type='tel'],
input[type='email'],
input[type='number'],
textarea,
select {
  border-radius: 3px;
  border: solid 1px #bfbfbf;
  background-color: #f5f5f5;
  padding: 0.5rem;
  box-sizing: border-box;
  margin: 5px 0;
}

select {
  min-height: 40px;
}

@media only screen and (min-width: 1025px) {
  input[type='text'],
  input[type='tel'],
  input[type='email'],
  textarea {
    max-width: 100%;
  }
  textarea {
    width: 100%;
  }
}
@media screen and (max-width: 599px) {
  /* 幅を制御したい特定のinput要素に対して */
  input[type='text'].full-width,
  input[type='tel'].full-width,
  input[type='email'].full-width,
  textarea.full-width {
    width: 100%;
  }
}
/* Input Styles */
input:-webkit-autofill {
  transition: background-color 5000s ease-in-out 0s !important;
}

input:focus::placeholder {
  color: transparent;
}

/* Opacity Animation */
.opa {
  transition: var(--transition);
  backface-visibility: hidden;
}

.opa:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
  backface-visibility: hidden;
}

/*ヘッダー*/
.site-header {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 13;
  transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  pointer-events: none; /* ヘッダー自体はクリック不可 */
}

.site-header * {
  pointer-events: auto; /* 子要素（ロゴ、電話など）はクリック可能 */
}

.subpage .site-header {
  position: relative;
  pointer-events: auto; /* サブページでは通常通り */
}

@media only screen and (max-width: 768px) {
  .site-header {
    opacity: 0;
    z-index: 20;
  }
  .site-header.scroll,
  .site-header.scroll-mobile {
    background-color: #fff;
    opacity: 1;
    transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  }
}
@media only screen and (max-width: 1024px) {
  .site-header {
    opacity: 1;
    z-index: 20;
  }
  .home-page .site-header.scroll,
  .home-page .site-header.scroll-mobile {
    background-color: initial;
  }

  /* .subpage .site-header {
    position: relative;
    height: initial;
    opacity: initial;
  } */
}
/* タブレット縦画面（〜1024px） */
@media only screen and (max-width: 1024px) and (orientation: portrait) {
  .subpage .site-header.scroll,
  .subpage .site-header.scroll-mobile {
    position: fixed;
  }
}
.home-page .site-header::before {
  content: '';
  display: block;
  background-image: url(../common/images/h_bg01.png);
  background-repeat: no-repeat;
  background-position: bottom right;
  width: 100%;
  height: 340px;
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  top: 0;
}

.header-inner {
  width: 100%;
  padding: 1.5rem 2rem;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.h-logo-tel-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media only screen and (max-width: 1024px) {
  .header-inner {
    padding: 0;
  }
  .h-logo {
    width: 460px;
  }
}
/* タブレット縦画面（769px〜1024px） */
@media only screen and (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {
  .home-page .site-header::before {
    display: none;
  }
  .header-inner {
    padding: 1.5rem 2rem;
  }
}

/* タブレット横画面（1024px〜） */
@media only screen and (max-width: 1024px) and (orientation: landscape) {
  .home-page .site-header::before {
    height: 280px;
  }
  .header-inner {
    padding: 1.5rem 2rem;
  }
}

@media only screen and (max-width: 1024px) {
  .site-header {
    height: 12rem;
  }
  .mainimage {
    margin-top: 12rem; /* header分の余白 */
  }
}

@media only screen and (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {
  .site-header {
    position: fixed;
  }
}

@media only screen and (max-width: 768px) {
  .home-page .site-header::before {
    display: none;
  }
  .site-header {
    position: fixed;
    height: 8rem;
  }
}
@media only screen and (max-width: 599px) {
  .site-header {
    position: fixed;
    height: 6rem;
  }

  .header-inner {
    padding: 0 7rem 0 1rem;
  }
  .home-page .site-header::before {
    display: none;
  }
}

.h-tel p {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}
.h-tel .dial {
  font-size: 4.8rem;
  text-decoration: none;
  color: #4b4b4b;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
}
.h-tel .dial::before {
  content: '';
  display: inline-block;
  width: 40px;
  height: 40px;
  aspect-ratio: 40/40;
  background-image: url(../common/images/tel_icon.png);
  margin-right: 10px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

@media only screen and (max-width: 1024px) {
  .h-tel p {
    font-size: 1.6rem;
  }
  .h-tel .dial {
    font-size: 3.6rem;
  }
  .h-tel .dial::before {
    width: 30px;
    height: 30px;
    aspect-ratio: 30 / 30;
  }
}

@media only screen and (max-width: 768px) {
  .h-tel {
    display: none;
  }
}
/* Navigation */

.g-nav {
  position: relative;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  background-color: var(--color-theme);
  transition: all 0.3s ease;
  z-index: 100;
  height: 120px; /* ナビゲーションの高さを定義 */
}

.g-nav > ul {
  width: 90vw;
  margin: 0 auto;
  padding: 2rem;
  display: grid;
  justify-content: space-between;
  grid-template-columns: repeat(8, 1fr);
}
/* タブレット以上（ノートPC等）1024px〜 */
@media only screen and (min-width: 1024px) {
  .g-nav {
    margin-top: -120px !important;
  }
  .subpage .g-nav {
    margin-top: 0 !important;
  }
  .g-nav.fixed {
    position: fixed !important;
    margin-top: 0 !important;
    top: 0;
    bottom: auto;
    left: 0 !important;
    right: 0 !important;
    transform: initial !important;
    z-index: 9999;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  }
}

/* PC版でスクロール時に上部に固定 */
@media only screen and (min-width: 1025px) {
  .g-nav {
    margin-top: -120px !important;
  }
  .subpage .g-nav {
    margin-top: 0 !important;
  }
  .g-nav.fixed {
    position: fixed !important;
    margin-top: 0 !important;
    top: 0;
    bottom: auto;
    left: 0 !important;
    right: 0 !important;
    transform: initial !important;
    z-index: 9999;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  }
}

/* タブレット横画面（1024px〜） */
@media only screen and (min-width: 1024px) and (orientation: landscape) {
  .g-nav {
    margin-top: -120px !important;
  }
  .subpage .g-nav {
    margin-top: 0 !important;
  }
  .g-nav.fixed {
    position: fixed !important;
    margin-top: 0 !important;
    top: 0;
    bottom: auto;
    left: 0 !important;
    right: 0 !important;
    transform: initial !important;
    z-index: 9999;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  }
}

/* 小さいノートPC（1366px以下） */
@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  .g-nav {
    height: 100px; /* 小さいノートPC用に高さを小さく */
    margin-top: -100px !important;
  }
  .subpage .g-nav {
    margin-top: 0 !important;
  }
  .g-nav.fixed {
    margin-top: 0 !important;
  }

  .g-nav > ul {
    padding: 1rem;
  }
}

/* 大きい画面（1367px以上） */
@media only screen and (min-width: 1367px) {
  .g-nav {
    height: 120px; /* 大きい画面では120pxを維持 */
    margin-top: -120px !important;
  }
  .subpage .g-nav {
    margin-top: 0 !important;
  }
  .g-nav.fixed {
    margin-top: 0 !important;
  }
}

@media only screen and (max-width: 1280px) {
  .g-nav > ul {
    width: 90vw;
    min-width: 1200px;
  }
}

@media only screen and (max-width: 1024px) {
  .g-nav > ul {
    width: 100%;
    min-width: 100%;
  }
}

/* .g-nav > ul > li {
  position: relative;
  height: 100%;
  width: 100%;
} */

.g-nav > ul > li > a {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  color: #fff;
  border-left: solid 1px #fff;
  padding: 1rem;
  font-size: 1.6rem;
  font-weight: 500;
}

.g-nav > ul > li > a .submenu-toggle {
  display: none;
}

@media only screen and (max-width: 1280px) {
  .g-nav > ul > li > a {
    font-size: 1.4rem;
  }
}

.g-nav > ul > li > a::after {
  content: '';
  display: block;
  width: 32px;
  height: 32px;
  aspect-ratio: 32/32;

  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.g-nav > ul > li:nth-child(1) > a::after {
  background-image: url(../common/images/icon-home.png);
}

.g-nav > ul > li:nth-child(2) > a::after {
  background-image: url(../common/images/icon-info.png);
}

.g-nav > ul > li:nth-child(3) > a::after {
  background-image: url(../common/images/icon-clinic.png);
}

.g-nav > ul > li:nth-child(4) > a::after {
  background-image: url(../common/images/icon-medical.png);
}

.g-nav > ul > li:nth-child(5) > a::after {
  background-image: url(../common/images/icon-freeze.png);
}

.g-nav > ul > li:nth-child(6) > a::after {
  background-image: url(../common/images/icon-access.png);
}

.g-nav > ul > li:nth-child(7) > a::after {
  background-image: url(../common/images/icon-staff.png);
}

.g-nav > ul > li:nth-child(8) > a::after {
  background-image: url(../common/images/icon-contact.png);
}

.g-nav > ul > li:last-of-type > a {
  border-right: solid 1px #fff;
}

.g-nav > ul > li > a:hover {
  color: var(--color-theme-dark);
}

@media only screen and (max-width: 768px) {
  .g-nav > ul {
    justify-content: center;
  }
}

@media only screen and (max-width: 768px) {
  .g-nav > ul > li {
    position: relative;
  }

  .g-nav > ul > li > a {
    padding-right: 4.5rem;
  }

  .g-nav > ul > li > a .submenu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 1.5rem;
    top: 50%;
    width: 1.6rem;
    height: 1.6rem;
    transform: translateY(-50%);
    pointer-events: none;
  }

  .g-nav > ul > li > a .submenu-toggle::before,
  .g-nav > ul > li > a .submenu-toggle::after {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 2px;
    background-color: var(--color-theme);
    transform: translateY(-50%);
    transition:
      opacity 0.2s ease,
      transform 0.2s ease;
  }

  .g-nav > ul > li > a .submenu-toggle::after {
    transform: translateY(-50%) rotate(90deg);
  }

  .g-nav > ul > li.open > a .submenu-toggle::after {
    opacity: 0;
  }

  .g-nav > ul > li.open > a .submenu-toggle::before {
    background-color: var(--color-theme-dark);
  }
}

@media only screen and (max-width: 1024px) and (orientation: portrait) {
  .g-nav > ul > li > a {
    padding: 1rem;
    color: var(--color-theme);
  }
  .g-nav > ul > li > a::after {
    display: none;
  }
}

/* スマートフォン用のサブメニュースタイル */
@media only screen and (max-width: 1024px) {
  .menu-tel-info {
    background-color: var(--color-theme);
    padding: 25px;
    color: #fff;
    width: 100%;
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    margin-top: auto;
    z-index: 5;
  }

  .menu-tel-info .tel_logo img {
    margin: 0 auto;
  }
  .menu-tel-info .tel_txt {
    font-size: 1.4rem;
    text-align: center;
  }

  .menu-tel-info .tel_dial {
    text-align: center;
  }
  .menu-tel-info .tel_dial a {
    color: #fff;
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 4rem;
  }

  .menu-tel-info .tel_dial a::before {
    content: '';
    display: inline-block;
    width: 40px;
    aspect-ratio: 35/35;
    background-image: url(../common/images/tel_icon_w.png);
    margin-right: 10px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }

  .g-nav.show > ul > li {
    opacity: 1;
    padding: 0;
  }
}

/* ハンバーガーメニュー */
.navbtn {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 1rem;
  z-index: 9999;
  position: relative;
  width: 30px;
  height: 30px;
}

.navbtn .hamburger,
.navbtn .hamburger::before,
.navbtn .hamburger::after {
  display: block;
  width: 25px;
  height: 2px;
  background: #fff;
  position: absolute;
  transition: all 0.3s ease-in-out;
}

.navbtn .hamburger {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.navbtn .hamburger::before,
.navbtn .hamburger::after {
  content: '';
  width: 100%;
}

.navbtn .hamburger::before {
  top: -8px;
}

.navbtn .hamburger::after {
  bottom: -8px;
}

/* アクティブ時 */
.navbtn.active .hamburger {
  background: transparent;
}

.navbtn.active .hamburger::before {
  top: 0;
  transform: rotate(45deg);
}

.navbtn.active .hamburger::after {
  bottom: 0;
  transform: rotate(-45deg);
}

/*アクセシビリティ対策menuという文字を非表示*/
.navbtn .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ハンバーガーメニューPCでは非表示 */
@media only screen and (min-width: 1025px) {
  .h-tool,
  .navbtn {
    display: none;
  }
}

@media only screen and (max-width: 768px) {
  .h-tool {
    background-color: var(--color-theme);
    padding: 15px;
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1000; /* メニューより上に表示 */
  }
  .navbtn {
    z-index: 1001; /* メニューボタンが確実に上に表示されるように */
  }
}

@media only screen and (max-width: 599px) {
  .h-tool {
    width: 60px;
    height: 60px;
  }
}

/* スマホグローバルナビ */
@media only screen and (max-width: 768px) {
  .navbtn {
    display: block;
  }

  /*ハンバーガーメニュー開閉時のグローバルナビ*/
  .g-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.9);
    display: block;
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.2s ease,
      visibility 0.2s ease;
    z-index: 900;
  }
  .subpage .g-nav {
    position: fixed;
    bottom: initial;
  }

  .g-nav.show {
    opacity: 1;
    visibility: visible;
    overflow: auto;
  }

  .g-nav > ul:first-child {
    margin-top: 6rem;
    margin-bottom: 2.5rem;
  }
  .g-nav > ul {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 100%;
    margin: 0;
    gap: initial;
    padding: 3rem;
  }

  .g-nav > ul > li {
    opacity: 0;
    transition:
      opacity 0.2s ease,
      transform 0.2s ease;
    overflow: hidden;
  }

  .g-nav > ul > li > a {
    position: relative;
    display: block;
    font-size: 1.6rem;
    border-bottom: 1px solid #999;
    border-left: 0;
    min-width: 180px;
    text-align: center;
  }

  .g-nav.show > ul > li {
    opacity: 1;
    padding: 0;
  }
}

@media only screen and (max-width: 1024px) {
  .g-nav.show {
    overflow: hidden;
  }
}

/* タブレット縦画面（769px〜1024px） */
@media only screen and (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {
  .h-tel {
    display: none;
  }
  .h-tool {
    background-color: var(--color-theme);
    padding: 15px;
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1000; /* メニューより上に表示 */
  }
  .navbtn {
    display: block;
    z-index: 1001; /* メニューボタンが確実に上に表示されるように */
  }

  /*ハンバーガーメニュー開閉時のグローバルナビ*/
  .g-nav {
    position: relative;
    width: 100%;
    height: 120px;
    background-color: var(--color-theme);
    display: flex;
    flex-wrap: wrap;
    opacity: 1;
    visibility: visible;
    transition:
      opacity 0.2s ease,
      visibility 0.2s ease;
    z-index: 100;
    margin-top: 0 !important; /* PC用の設定を上書き */
  }
  .subpage .g-nav {
    position: relative;
  }

  /* メニューが開いたときだけ全画面表示 */
  .g-nav.show {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.9);
    display: block;
    opacity: 1;
    visibility: visible;
    overflow: auto;
    z-index: 900;
  }

  .g-nav > ul:first-child {
    margin-top: 6rem;
    margin-bottom: 2.5rem;
  }
  .g-nav > ul {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 100%;
    margin: 0;
    gap: initial;
    padding: 3rem;
  }

  .g-nav > ul > li {
    opacity: 0;
    transition:
      opacity 0.2s ease,
      transform 0.2s ease;
    overflow: hidden;
  }

  .g-nav > ul > li > a {
    position: relative;
    display: block;
    font-size: 1.6rem;
    border-bottom: 1px solid #999;
    border-left: 0;
    min-width: 180px;
    text-align: center;
  }

  .g-nav.show > ul > li {
    opacity: 1;
    padding: 0;
  }
}

/* 1024pxの縦画面専用設定（PC用の設定を上書き） */
@media only screen and (min-width: 1024px) and (max-width: 1024px) and (orientation: portrait) {
  .g-nav {
    margin-top: 0 !important; /* PC用の設定を上書き */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.9);
    display: block;
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.2s ease,
      visibility 0.2s ease;
    z-index: 900;
    overflow: auto;
  }

  /* メニューが開いたときのみ表示 */
  .g-nav.show {
    opacity: 1;
    visibility: visible;
  }

  .g-nav > ul:first-child {
    margin-top: 6rem;
    margin-bottom: 2.5rem;
  }
  .g-nav > ul {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 100%;
    margin: 0;
    gap: initial;
    padding: 3rem;
  }

  .g-nav > ul > li {
    opacity: 0;
    transition:
      opacity 0.2s ease,
      transform 0.2s ease;
    overflow: hidden;
  }

  .g-nav > ul > li > a {
    position: relative;
    display: block;
    font-size: 1.6rem;
    border-bottom: 1px solid #999;
    border-left: 0;
    min-width: 180px;
    text-align: center;
  }

  .g-nav.show > ul > li {
    opacity: 1;
    padding: 0;
  }
}

@media only screen and (max-width: 768px) {
  .g-nav > ul > li > a {
    padding: 25px 10px;
  }
}

/* タブレット縦画面（〜1024px） */
@media only screen and (max-width: 1024px) and (orientation: portrait) {
  .g-nav > ul > li > a {
    padding: 25px 10px;
  }
}

@media only screen and (max-width: 1024px) and (max-height: 375px) {
  .g-nav > ul:first-child {
    margin-top: 25vh;
    margin-bottom: 2.5rem;
  }
}

@media only screen and (max-width: 1024px) {
  .g-nav > ul > li {
    border-bottom: 1px solid #999;
    overflow: visible;
  }

  .g-nav > ul > li:last-child {
    border-bottom: none;
  }

  .g-nav > ul > li > a {
    border-bottom: none;
  }

  .g-nav,
  .g-nav.show {
    display: flex;
    flex-direction: column;
    height: 100vh;
  }

  .g-nav > ul {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: 14rem;
  }

  .menu-tel-info {
    flex-shrink: 0;
  }
}

/* Submenu */
.sub-menu {
  position: absolute;
  min-width: 211px;
  top: calc(100% + 0.1rem);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  overflow: hidden;
  width: max-content;
  background: rgba(255, 255, 255, 0.9);
  z-index: 1000;
}

.g-nav > ul > li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
}

/* 未スクロール時はサブメニューを「上」に表示（PC想定） */
@media only screen and (min-width: 769px) {
  body.at-top:not(.subpage) .g-nav > ul > li .sub-menu {
    top: auto;
    bottom: calc(100% + 0.1rem);
  }
}

.sub-menu li {
  width: 100%;
  position: relative;
}

.sub-menu li a {
  color: #000;
  font-size: 1.4rem;
  padding: 1rem 5rem 1rem 1.5rem;
  white-space: normal;
  display: block;
  transition: background-color 0.3s ease;
}

.sub-menu li:not(:last-child) a {
  border-bottom: solid 1px var(--color-theme);
}

/*サブメニュー矢印*/
.sub-menu li a::after {
  content: '\f138';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8em;
  color: var(--color-theme);
}

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

/* スマートフォン用のサブメニュースタイル */
@media only screen and (max-width: 768px) {
  .sub-menu {
    position: static;
    box-shadow: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    opacity: 1;
    visibility: visible;
    transform: none;
    width: 100%;
    min-width: auto;
    border-radius: 0;
    padding-left: 20px;
    border-top: 1px solid #e0e0e0;

    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  .g-nav > ul > li > .sub-menu {
    padding: 0;
  }
  .g-nav > ul > li.open > .sub-menu {
    max-height: 1000px;

    border-bottom: solid 1px var(--color-theme);
  }

  .sub-menu > li > a {
    font-size: 1.4rem;
    padding: 2rem 4rem 2rem 2rem;
    color: #333;
    background-color: transparent;
  }
}

/*MARK:mainimage*/

.mainimage {
  position: relative;
  width: 100%;
  height: 100%; /* 画像のアスペクト比を保持 */
}

@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  .mainimage {
    position: relative;
    width: 100%;
    height: auto; /* 画像のアスペクト比を保持 */
  }
}

.mainimage-inner {
  width: 100%;
  height: auto; /* 画像のアスペクト比を保持 */
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  position: relative;
}

.mainimage-title {
  width: 100%;
  line-height: 1.5;
  color: var(--color-gold);
  position: relative;
  z-index: 13;
}

.mainimage-title h1,
.mainimage-title h2 {
  line-height: 1.2;
  text-shadow:
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1);
}

.mainimage-title h1 {
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 3.6rem;
  margin-bottom: 2rem;
  color: var(--color-gold);
}

.mainimage-title h1 em {
  font-size: 5.4rem;
  font-weight: 500;
  color: var(--color-theme);
}

.mainimage-title h2 {
  font-size: 2.4rem;
  letter-spacing: 2px;
  line-height: 1.5;
}

/* デフォルトで非表示（スマホのみ表示） */
.mainimage-title-logo {
  display: none;
}

@media only screen and (min-width: 1025px) {
  .mainimage-inner {
    padding-bottom: 160px;
    padding-left: 40px;
  }
}
/* タブレット縦画面（768px〜1024px） */
@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .mainimage {
    height: auto; /* 画像のアスペクト比を保持 */
    margin-top: 12rem; /* header分の余白 */
  }
}
/* スマホ（〜768px） */
@media only screen and (max-width: 768px) {
  .mainimage {
    height: auto; /* 画像のアスペクト比を保つ */
    margin-top: 8rem; /* header分の余白 */
  }
  .mainimage-inner {
    width: 100%;
    height: auto; /* 画像のアスペクト比を保持 */
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }
  .mainimage-title {
    width: 100%;
    max-width: 100%;
    padding: 3rem;
  }
  .mainimage-title h1 {
    font-size: 3rem;
    -webkit-text-stroke: 5px white;
    paint-order: stroke fill;
  }
  .mainimage-title h1 em {
    font-size: 4rem;
  }
  .mainimage-title h2 {
    display: none;
  }
}
@media only screen and (max-width: 599px) {
  .mainimage {
    margin-top: 6rem; /* header分の余白（599px以下） */
  }
  .mainimage-title-logo {
    display: block;
    margin-bottom: 4rem;
  }
}

.mainimage-subpage {
  position: relative;
  z-index: 20;
  background-image: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.3)), url(../common/images/subpage-bg.jpg);
  background-size: auto, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
}
.mainimage-subpage-inner {
  position: relative;
  z-index: 2;
  width: 80vw;
  max-width: 1200px;
  height: 250px;
  margin: 0 auto;
  padding: 6rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mainimage-subpage-title {
  font-size: 3.6rem;
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  color: var(--color-theme);
  text-shadow:
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1);
}

/* MARK:Footer */
#footer {
  width: 100%;
  margin: 0;
  background: #fff;
}

.footer-inner {
  font-size: 1.6rem;
  width: 1200px;
  margin: 0 auto;
  padding: 4rem 0;
  text-align: center;
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 4rem;
}

.f_logo {
  display: block;
}

.f_logo img {
  transition: all 0.3s ease;
}
@media only screen and (max-width: 1024px) {
  .footer-inner {
    width: 100%;
    padding: 3rem;
  }
  .f_logo {
    display: block;
    width: 100%;
    margin: 3rem 0;
  }

  .f_logo img {
    margin-inline: auto;
  }
}
.f_nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.f_nav ul {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}

.f_nav ul::before {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--color-theme);
  display: block;
  margin-bottom: 1rem;
}

.f_nav ul:nth-child(1)::before {
  content: '当院について';
}
.f_nav ul:nth-child(2)::before {
  content: '診療案内';
}
.f_nav ul:nth-child(3)::before {
  content: 'その他のコンテンツ';
}

.f_nav ul li a {
  position: relative;
  text-align: left;
  text-decoration: none;
  color: #333; /* リンクのを適宜調整 */
  display: inline-block;
  transition: color 0.3s ease; /* テキストの色変化のアニメーション */
  font-size: 1.4rem;
  font-weight: bold;
  border-left: solid 1px #ccc;
  padding: 1rem 1rem 1rem 2rem;
}

.f_nav ul li a:hover {
  color: var(--color-theme);
}

.insta-icon {
  display: inline-block;
  vertical-align: middle;
  width: 26px;
  margin-right: 5px;
}

@media only screen and (max-width: 768px) {
  .footer-inner {
    grid-template-columns: 1fr;
    padding: 3rem;
  }
  .f_nav {
    grid-template-columns: repeat(2, 1fr);
  }
}
.address_txt {
  text-align: center;
  padding: 5px;
  min-height: 42px;
  font-style: normal;
  font-size: 1.2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  background-color: var(--color-theme);
  color: #fff;
}

@media only screen and (max-width: 768px) {
  .footer-inner {
    width: 100%;
  }
}

/*MARK:パンくず*/
.breadcrumb-nav {
  padding: 1.5rem 0;
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}

.breadcrumb li {
  font-size: 1.6rem;
}
.breadcrumb li:not(:last-child)::after {
  content: '»';
  margin: 0 0.5em;
}

/* メインコンテンツ */
main {
  position: relative;
  min-height: 100vh;
}

/* @media only screen and (max-width: 768px) {
  main {
    padding-top: 20px;
  }
} */

section {
  width: 100%;
  margin: 0 auto;
  text-align: left;
}

.main-content {
  width: 85vw;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 0;
  line-height: 1.5;
  font-size: 1.6rem;
}

.main-content p {
  margin-bottom: 1.5rem;
}

.main-content figure {
  padding-bottom: 3rem;
}

/* メインコンテンツレスポンシブ */
/* @media only screen and (min-width: 1025px) {
  .main-content {
    width: 1200px;
  }
} */

@media only screen and (max-width: 768px) {
  .main-content {
    width: 100%;
    max-width: 100%;
    padding: 2rem;
  }
}

@media only screen and (max-width: 768px) {
  .main-content {
    width: 100%;
    max-width: 100%;
    padding: 3rem;
  }
}

/* サイトマップグリッド */
.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  margin-top: 4rem;
}

.sitemap-category {
  background-color: #fafafa;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

/* .sitemap-category:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
} */

.sitemap-category .title {
  margin-top: 0;
  margin-bottom: 2rem;
  font-size: 2.4rem;
  /* border-bottom: 2px solid var(--color-theme-third); */
  padding-bottom: 1rem;
}

.sitemap-category .disc-list {
  margin: 0;
  padding-left: 2rem;
}

.sitemap-category .disc-list li {
  margin-bottom: 0.8rem;
}

.sitemap-category .disc-list li a {
  color: var(--color-theme);
  text-decoration: none;
  transition: color 0.3s ease;
}

.sitemap-category .disc-list li a:hover {
  color: var(--color-theme-third);
  text-decoration: underline;
}

@media only screen and (max-width: 768px) {
  .sitemap-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media only screen and (max-width: 768px) {
  .sitemap-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .sitemap-category {
    padding: 1.5rem;
  }
}

.section-title {
  margin: 2rem 0;
}

.section-title span {
  display: block;
}

.section-title span.en {
  font-family: 'Montserrat', sans-serif;
  font-size: 3.6rem;
  font-weight: 500;
  color: var(--color-theme);
}

.section-title span.ja {
  font-size: 3.6rem;
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  margin-top: 2rem;
  line-height: 1.2;
}

@media only screen and (max-width: 768px) {
  .section-title span.en {
    font-size: 2.4rem;
  }
  .section-title span.ja {
    font-size: 3rem;
    margin-top: 1rem;
  }
}

/*MARK:サブコンテンツ*/

#news {
  background-image: url(../common/images/h_bg02.png);
  background-size: cover;
  background-position: bottom;
  background-repeat: no-repeat;
  min-height: 800px;
  margin-top: -280px;
  position: relative;
  z-index: 10;
  display: flex;
  align-items: flex-end;
}

#news .main-content {
  margin-bottom: 8rem;
}

.news-title .section-title {
  margin-bottom: 8rem;
}

.news-wrap {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 30px;
}

/* 小さいノートPC（1366px以下） */
@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  #news {
    background-size: contain;
    background-position: bottom;
    min-height: 880px;
    margin-top: -540px;
  }
  #news .main-content {
    margin-bottom: 0;
  }
}

@media only screen and (max-width: 1024px) {
  #news {
    background-size: contain;
    background-position: bottom;
    min-height: 780px;
    margin-top: -280px;
  }
  #news .main-content {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 768px) {
  #news {
    margin-top: 0;
    min-height: 800px;
    align-items: flex-start;
  }
  #news .main-content {
    margin-bottom: 4rem;
  }

  .news-title .section-title {
    margin-bottom: 3rem;
  }
  .news-wrap {
    grid-template-columns: 1fr;
  }
}
@media only screen and (max-width: 599px) {
  #news {
    background-size: auto 80%;
    margin-top: 0;
    min-height: initial;
  }
}
.news_list {
  background-color: #fff;
  padding: 2rem;
  border-radius: 1rem;
}
.news_item {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px dashed var(--color-theme);
}

@media only screen and (max-width: 768px) {
  .news_item {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
}

.news_item:last-child {
  border-bottom: none;
}
.news_item dt {
  font-size: 1.6rem;
  font-family: 'Lato', sans-serif;
  font-weight: 400;
  font-style: normal;
}
.news_item dd {
  font-size: 1.6rem;
  font-weight: 400;
}
.news_item dd a {
  color: var(--color-theme);
  text-decoration: none;
  font-size: 1.6rem;
  font-weight: 400;
}
.news_item dd a:hover {
  color: var(--color-theme);
  text-decoration: underline;
}
.news_item dd a::before {
  content: '\f0da';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  margin-right: 1rem;
  color: var(--color-theme);
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  transition:
    var(--transition),
    transform 0.3s ease;
}

#about,
#shinryou {
  height: 100vh;
  background-attachment: scroll, fixed;
  background-size:
    100% 100%,
    cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
}

#about {
  background-image: linear-gradient(to bottom, rgb(255, 255, 255, 1) 0%, rgb(255, 255, 255, 0.9) 75%, rgb(255, 255, 255, 0) 100%), url(../common/images/about-bg.jpg);
}

#shinryou {
  background-image: linear-gradient(to bottom, rgba(var(--color-theme-light-rgb), 0.95) 0%, rgba(var(--color-theme-light-rgb), 0.95) 45%, transparent 100%), url(../common/images/about-bg.jpg);
  /* counter-reset: reason-counter; */
}

#about .section-sub-title {
  font-size: 2.4rem;
  color: var(--color-theme);
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  margin-bottom: 2rem;
}

#about figure img {
  border-radius: 1rem;
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin-bottom: 2rem;
}

#about figure figcaption {
  font-weight: 700;
  text-align: center;
}

@media screen {
  #about,
  #shinryou {
    height: min(100vh, 1080px); /* 1080pxを上限に */
  }
}

@media only screen and (max-width: 768px) {
  #about,
  #shinryou {
    height: 100vh;
  }
  #about {
    height: auto;
    margin-bottom: 0;
  }

  #about .main-content {
    padding: 3rem 3rem 15rem 3rem;
  }
}

@media only screen and (max-width: 1024px) {
  #about .incho-img {
    max-width: 400px;
    margin: 0 auto;
  }
  #about .bt_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

#reason > .main-content > p {
  font-size: 1.8rem;
  margin: 3rem 0;
}

.reason-cont {
  border: solid 1px #ccc;
}

.reason-wrap-flex {
  display: flex;
  align-items: center;
}

.reason-wrap-flex:nth-child(odd) {
  flex-direction: row-reverse;
}

.reason-wrap-flex .img-box {
  flex-shrink: 0;
  width: 50%;
  height: 360px;
}

.reason-wrap-flex figure.img-box {
  padding: 0;
}

.reason-wrap-flex .img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reason-wrap-flex .txt-box {
  flex: 1;
  padding: 3rem;
}
.reason-wrap-flex .reason-number {
  text-align: center;
}
.reason-wrap-flex .reason-number span {
  font-size: 1.8rem;
  font-weight: 700;
  background-color: var(--color-theme);
  color: #fff;
  padding: 1rem 2rem;
  border-radius: 10rem;
  margin-bottom: 1rem;
  display: inline-block;
  line-height: 1;
}
.reason-wrap-flex .reason-title {
  font-size: 2.2rem;
  color: var(--color-theme);
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  margin-bottom: 2rem;
}

.reason-wrap-flex .txt-box p:first-child {
  counter-reset: none;
}

@media only screen and (max-width: 768px) {
  .reason-wrap-flex,
  .reason-wrap-flex:nth-child(odd) {
    flex-direction: column-reverse;
  }
  .reason-wrap-flex .img-box {
    width: 100%;
  }
}

#shinryou .main-content {
  padding: 100px 0;
}

/* 理由セクションのボタンリスト */
.bt_list {
  display: flex;
  gap: 2rem;
  justify-content: center;
  margin-top: 4rem;
  list-style: none;
  padding: 0;
}

.bt-list-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  justify-content: center;
  margin-top: 3rem;
  list-style: none;
  padding: 0;
  margin-bottom: 3rem;
}

@media only screen and (max-width: 768px) {
  .bt-list-3 {
    grid-template-columns: 1fr;
  }
}

.reason-bt,
.about-bt {
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.4rem;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 3rem 3.5rem;
  background-color: rgba(var(--color-theme-light-rgb), 1);
  border-radius: 15px;
  text-decoration: none;
  font-size: 1.8rem;
  font-weight: 500;
  transition: all 0.3s ease;
  min-width: 300px;
  position: relative;
  box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 1);
  outline: 2px dashed rgba(255, 255, 255, 1);
  outline-offset: -8px;
}

.about-bt {
  min-width: 220px;
}

.reason-bt::before {
  content: '';
  display: inline-block;
  width: 50px;
  height: 50px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

.bt_list > li:nth-child(1) .reason-bt::before {
  background-image: url(../common/images/reason-icon01.png);
}

.bt_list > li:nth-child(2) .reason-bt::before {
  background-image: url(../common/images/reason-icon02.png);
}

.bt_list > li:nth-child(3) .reason-bt::before {
  background-image: url(../common/images/reason-icon03.png);
}

.reason-bt::after,
.about-bt::after {
  font-family: 'Font Awesome 6 Free';
  content: '\f138';
  font-weight: 900;
  color: var(--color-theme-third);
  font-size: 1.8rem;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  transition: transform 0.3s ease;
}

.reason-bt:hover,
.about-bt:hover {
  transform: translateY(-2px);
}

.reason-bt:hover::after,
.about-bt:hover::after {
  transform: translateX(3px);
}

@media only screen and (max-width: 768px) {
  #shinryou .main-content {
    padding: 3rem;
  }
}

/*MARK:サブページ*/

#subpage {
  background-color: #fff;
}

#subpage .title {
  font-size: 3rem;
  font-family: 'GenEiLate', sans-serif;
  font-weight: 400;
  font-style: normal;
  margin-bottom: 2rem;
  position: relative;
  padding: 0 0 0 2rem;
  scroll-margin-top: 160px; /* アンカーリンクのスクロールマージン（デフォルト） */
}

/* PC版で固定ナビの高さに合わせてスクロールマージンを調整 */
@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  #subpage .title {
    scroll-margin-top: 120px; /* 小さいPC用（固定ナビ100px + 余裕20px） */
  }
}

@media only screen and (min-width: 1367px) {
  #subpage .title {
    scroll-margin-top: 140px; /* 大きいPC用（固定ナビ120px + 余裕20px） */
  }
}

#subpage .title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  border-radius: 5px;
  background: var(--color-theme);
}

#subpage .title:not(:first-of-type) {
  margin-top: 8rem;
}

#subpage .sub-title {
  font-size: 2.4rem;
  margin-bottom: 2rem;
  background-color: var(--color-theme);
  color: #fff;
  padding: 1rem;
  border-radius: 5px;
  margin-top: 6rem;
}

.medical-list-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.medical-item {
  padding: 2rem 0;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.medical-item h3 {
  color: var(--color-theme);
  font-size: 2.4rem;
  font-weight: 700;
  margin: 2rem 0;
}

.medical-wrap {
  padding: 2rem;
  background-color: var(--color-theme-light-light);
  border-radius: 10px;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.medical-wrap .sub-title {
  margin-top: 0 !important;
}

.bg-white {
  background-color: #fff;
  padding: 1rem;
  border-radius: 1rem;
}

.senshin-box {
  background-color: #fff;
  padding: 2rem;
  border-radius: 1rem;
}

.senshin-box .senshin-title {
  font-size: 2rem;
  font-weight: 700;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: solid 2px var(--color-theme);
}

.contact-box {
  background-color: var(--color-theme-light-light);
  padding: 4rem 2rem;
  margin-top: 4rem;
  margin-bottom: 4rem;
  font-size: 1.8rem;
  line-height: 1.5;
}

.procedure-notice {
  background-color: var(--color-theme-light-light);
  padding: 4rem;
  border-radius: 1rem;
  margin-top: 4rem;
  margin-bottom: 4rem;
}

.procedure-notice h4 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.procedure-notice p:last-child {
  margin-bottom: 0;
}

.procedure-title,
.sub-sub-title {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 1rem;
  border-bottom: solid 2px var(--color-theme);
  padding-bottom: 1rem;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.sub-sub-title:first-child {
  margin-top: 0;
}

.staff-flex-wrap {
  display: flex;
  align-items: flex-start;
  gap: 6rem;
  background-color: var(--color-theme-light-light);
  padding: 4rem;
  border-radius: 1rem;
  margin-top: 4rem;
  margin-bottom: 4rem;
}

.staff-flex-wrap .txt-box {
  width: 75%;
}

.staff-flex-wrap .img-box {
  width: 25%;
}

@media only screen and (max-width: 768px) {
  .staff-flex-wrap {
    flex-direction: column;
    gap: 2rem;
  }
  .staff-flex-wrap .img-box {
    width: 100%;
  }
  .staff-flex-wrap .txt-box {
    width: 100%;
  }
}

.staff-flex-wrap .img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1rem;
}

.staff-title .ja {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.staff-title .en {
  font-size: 1.6rem;
  font-weight: 400;
  margin-bottom: 1rem;
}

.staff-keireki div {
  margin: 2rem 0;
}

.staff-keireki dt {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
  border-left: 10px solid var(--color-theme);
  padding-left: 1rem;
}

.staff-keireki dd {
  font-size: 1.6rem;
  font-weight: 400;
  margin-bottom: 1rem;
}

.access-box {
  background-color: var(--color-theme-light-light);
  padding: 4rem;
  border-radius: 1rem;
  margin-top: 4rem;
  margin-bottom: 4rem;
}

.access-title {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
  position: relative;
  padding-left: 40px;
}

.access-title.car::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 30px;
  aspect-ratio: 50/50;
  background-image: url(../common/images/car-icon.png);
  background-size: cover;
  background-position: center;
  position: absolute;
  left: 0;
  top: 0;
}

.access-title.train::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 30px;
  aspect-ratio: 50/50;
  background-image: url(../common/images/train-icon.png);
  background-size: cover;
  background-position: center;
  position: absolute;
  left: 0;
  top: 0;
}
.faq-container {
  max-width: 1200px;
  margin: 0 auto;
  margin-top: 6rem;
}

.faq-item {
  background-color: #fff;
  border: 3px solid var(--color-theme);
  border-radius: 15px;
  margin-bottom: 3rem;
  padding: 2.5rem 3rem;
  overflow: hidden;
}

.faq-question {
  display: flex;
  align-items: center;
  padding-bottom: 2rem;
  gap: 2rem;
  border-bottom: 2px solid var(--color-theme);
  position: relative;
}

.faq-question::before {
  content: 'Q';
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: var(--color-theme);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  font-weight: bold;
  flex-shrink: 0;
}

.faq-answer {
  display: flex;
  align-items: flex-start;
  padding-top: 2rem;
  gap: 2rem;
  position: relative;
}

.faq-answer::before {
  content: 'A';
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: var(--color-gray-darken);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  font-weight: bold;
  flex-shrink: 0;
}

.faq-question {
  font-size: 2rem;
  font-weight: bold;
  color: var(--color-theme);
  line-height: 1.8;
}

.faq-answer {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #333;
}

@media only screen and (max-width: 768px) {
  #faq {
    padding: 6rem 0;
  }

  .faq-container {
    margin-top: 4rem;
  }

  .faq-question {
    padding-bottom: 2rem;
    gap: 1.5rem;
  }

  .faq-answer {
    padding-top: 2rem;
    gap: 1.5rem;
  }

  .faq-question::before,
  .faq-answer::before {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 2rem;
  }

  .faq-question {
    font-size: 1.8rem;
  }

  .faq-answer {
    font-size: 1.4rem;
  }
}

@media only screen and (max-width: 599px) {
  #faq {
    padding: 4rem 0;
  }

  .faq-container {
    margin-top: 3rem;
  }

  .faq-question {
    padding-bottom: 1.5rem;
    gap: 1rem;
  }

  .faq-answer {
    padding-top: 1.5rem;
    gap: 1rem;
  }

  .faq-question::before,
  .faq-answer::before {
    width: 3rem;
    height: 3rem;
    font-size: 1.8rem;
  }

  .faq-question {
    font-size: 1.6rem;
  }

  .faq-answer {
    font-size: 1.3rem;
    line-height: 1.6;
  }

  .faq-item {
    margin-bottom: 2rem;
  }
}

/* MARK:Tables */
.legal_notice {
  border-collapse: collapse;
  width: 100%;
  margin: 2rem auto;
  padding: 0;
  border-left: 1px solid #e3e3e3;
  border-top: 1px solid #e3e3e3;
}

.legal_notice th {
  text-align: left;
  vertical-align: middle;
  padding: 2rem 1rem;
  background: #f5f5f5;
  color: #000;
  font-size: 1.6rem;
  font-weight: 400;
  border-right: 1px solid #e3e3e3;
  border-bottom: 1px solid #e3e3e3;
  width: 20%;
}

.legal_notice td {
  background: #fff;
  padding: 2rem 1rem;
  border-right: 1px solid #e3e3e3;
  color: #000;
  font-size: 1.6rem;
  border-bottom: 1px solid #e3e3e3;
}

.shinryou-naiyou-table {
  border-collapse: collapse;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  border-left: 1px solid #e3e3e3;
  border-top: 1px solid #e3e3e3;
}

.shinryou-naiyou-table th {
  text-align: center;
  vertical-align: middle;
  padding: 2rem 1rem;
  background: var(--color-theme);
  color: #fff;
  font-size: 2rem;
  font-weight: 500;
  border-right: 1px solid #e3e3e3;
  border-bottom: 1px solid #e3e3e3;
  width: 20%;
}

.shinryou-naiyou-table td {
  background: initial;
  padding: 2rem 1rem;
  color: #000;
  font-size: 1.6rem;
  border-right: 1px solid #e3e3e3;
  border-bottom: 1px solid #ccc;
}

@media screen and (min-width: 769px) {
  .shinryou-table {
    border-collapse: collapse;
    width: 100%;
    margin: 0 auto 2rem auto;
    padding: 0;
    border: 1px solid var(--color-theme);
    border-radius: 5px;
    display: grid;
    grid-template-columns: auto 1fr;
  }

  .shinryou-table thead th,
  .shinryou-table tbody th {
    display: block;
    background-color: var(--color-theme);
    color: #fff;
    text-align: center;
  }
  .shinryou-table thead th {
    border-bottom: 1px solid #fff;
  }

  .shinryou-table thead th:last-child {
    border-bottom: none;
  }

  .shinryou-table tbody {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
  }

  .shinryou-table tbody tr {
    border-left: 1px solid var(--color-theme);
  }

  .shinryou-table th {
    padding: 1rem;
    min-height: 45px;
    font-size: 1.6rem;
    font-weight: 400;
    border-bottom: 1px solid var(--color-theme);
  }
  .shinryou-table tbody th {
    border-right: 1px solid #fff;
  }
  .shinryou-table tbody tr:last-child th {
    border-right: none;
  }

  .shinryou-table tbody tr:first-child th {
    border-left: 1px solid #fff;
  }

  .shinryou-table td {
    background-color: #fff;
    min-height: 45px;
    font-size: 2rem;
    line-height: 1;
    display: block;
    padding: 1rem;
    color: var(--color-theme);
    border-bottom: 1px solid var(--color-theme);
    text-align: center;
  }

  .shinryou-table tbody td:last-child {
    border-bottom: none;
    border-radius: 0 0 5px 0;
  }
}

@media only screen and (max-width: 768px) {
  .shinryou-table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    margin: 2rem auto;
    padding: 0;
    border: 1px solid var(--color-theme);
    border-radius: 10px;
    overflow: hidden;
  }

  .shinryou-table thead th {
    border-bottom: 1px solid var(--color-theme);
    border-right: 1px solid #fff;
    background-color: var(--color-theme);
    color: #fff;
    text-align: center;
    width: 33.33%;
  }

  .shinryou-table thead th:first-child {
    border-bottom: 1px solid #fff;
  }

  .shinryou-table thead th:last-child {
    border-right: none;
  }

  .shinryou-table th {
    text-align: left;
    vertical-align: middle;
    padding: 1rem 0.5rem;
    background: initial;
    color: #000;
    font-size: 1.6rem;
    font-weight: 400;
  }

  .shinryou-table tbody th {
    background-color: var(--color-theme);
    color: #fff;
    text-align: center;
    font-size: 1.6rem;
    border-bottom: 1px solid #fff;
  }

  .shinryou-table tbody th:last-child {
    border-right: none;
  }

  .shinryou-table tbody td {
    border-right: 1px solid var(--color-theme);
    border-bottom: 1px solid var(--color-theme);
    background-color: #fff;
    text-align: center;
  }

  .shinryou-table tbody td:last-child {
    border-right: none;
  }

  .shinryou-table tbody tr:last-child th,
  .shinryou-table tbody tr:last-child td {
    border-bottom: none;
  }

  .shinryou-table td {
    background: initial;
    padding: 1rem 0.5rem;
    color: var(--color-theme);
    font-size: 2.4rem;
    line-height: 1;
  }
}

.kensa-title {
  font-size: 2.4rem;
  font-weight: 700;
  margin-top: 4rem;
  margin-bottom: 2rem;
  color: var(--color-theme);
}

.kensa-sub-title {
  background-color: var(--color-theme);
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 1rem;
  margin-top: 2rem;
}

.kensa-table,
.procedure-table {
  border-collapse: collapse;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  border-left: 1px solid #e3e3e3;
  border-top: 1px solid #ccc;
}

.kensa-table thead th,
.procedure-table thead th {
  color: #fff;
  background-color: var(--color-theme);
  font-weight: 700;
  border-right: solid 1px #fff;
}

.kensa-table th,
.procedure-table th {
  text-align: left;
  padding: 1rem;
  border-right: 0px solid #e3e3e3;
  color: #000;
  font-size: 1.6rem;
  font-weight: 400;
  border-bottom: 1px solid #ccc;
}

.kensa-table td,
.procedure-table td {
  vertical-align: top;
  padding: 1rem;
  border-right: 1px solid #e3e3e3;
  color: #000;
  font-size: 1.6rem;
  border-bottom: 1px solid #ccc;
}

.kensa-table th,
.kensa-table td {
  width: 50%;
}

.procedure-table {
  margin: 2rem 0;
}

.procedure-table td {
  width: 33.33%;
  vertical-align: middle;
}

.notice-box {
  background-color: var(--color-gray-light);
  font-size: 1.4rem;
  color: var(--color-red);
  padding: 2rem;
  border-radius: 1rem;
  border: solid 1px var(--color-gray);
  margin-top: 2rem;
}

.notice-box p:last-child {
  margin-bottom: 0;
}

.pink-table {
  border-collapse: collapse;
  width: 100%;
  margin: 4rem auto;
  padding: 0;
  border-left: 1px solid var(--color-theme);
  border-top: 1px solid var(--color-theme);
}

.pink-table th {
  text-align: left;
  vertical-align: middle;
  padding: 1rem;
  background: var(--color-theme-third);
  color: #fff;
  font-size: 1.6rem;
  border-right: 1px solid var(--color-theme);
  border-bottom: 1px solid var(--color-theme);
}

.pink-table td {
  background: #fff;
  padding: 1rem;
  border-right: 1px solid var(--color-theme);
  color: #000;
  font-size: 1.6rem;
  border-bottom: 1px solid var(--color-theme);
}

.cost-table {
  border-collapse: collapse;
  width: 100%;
  margin: 4rem auto;
  padding: 0;
  border-left: 1px solid var(--color-theme);
  border-top: 1px solid var(--color-theme);
}

.cost-table th {
  text-align: left;
  vertical-align: middle;
  padding: 1rem;
  background: var(--color-theme-third);
  color: #fff;
  font-size: 1.6rem;
  border-right: 1px solid var(--color-theme);
  border-bottom: 1px solid var(--color-theme);
}

.cost-table td {
  background: #fff;
  padding: 1rem;
  border-right: 1px solid var(--color-theme);
  color: #000;
  font-size: 1.6rem;
  border-bottom: 1px solid var(--color-theme);
  text-align: right;
  width: 400px;
}

@media only screen and (max-width: 768px) {
  .cost-table th {
    display: block;
    width: 100%;
  }
  .cost-table td {
    display: block;
    width: 100%;
  }
}

.form {
  border-collapse: collapse;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  border-left: 0px solid #e3e3e3;
  border-top: 1px solid #ccc;
  margin-bottom: 20px;
}
.form th {
  text-align: left;
  vertical-align: top;
  padding: 13px 15px;
  border-right: 0px solid #e3e3e3;
  background: initial;
  color: #000;
  font-size: 14px;
  border-bottom: 1px solid #ccc;
  width: 35%;
  position: relative;
}

.form td {
  padding: 13px 15px;
  border-right: 0px solid #e3e3e3;
  color: #000;
  font-size: 14px;
  border-bottom: 1px solid #ccc;
}

.chart-title {
  font-size: 2rem;
  font-weight: 700;
  padding: 1.5rem;
  background-color: var(--color-green-light);
  color: var(--color-green-dark);
}

.chart-table {
  border-collapse: collapse;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  border-left: 1px solid #e3e3e3;
  border-top: 1px solid #e3e3e3;
}

.chart-table th {
  text-align: left;
  vertical-align: middle;
  padding: 2rem 1rem;
  background: #f5f5f5;
  color: #000;
  font-size: 1.6rem;
  font-weight: 400;
  border-right: 1px solid #e3e3e3;
  border-bottom: 1px solid #e3e3e3;
}

.chart-table td {
  background: #f5f5f5;
  padding: 2rem 1rem;
  border-right: 1px solid #e3e3e3;
  font-size: 1.6rem;
  border-bottom: 1px solid #e3e3e3;
  width: 10%;
  text-align: center;
}

@media only screen and (max-width: 768px) {
  .chart-table td {
    width: 20%;
  }
}

.chart-box {
  background: #f5f5f5;
  padding: 2rem 1rem;
  border: solid 1px #e3e3e3;
}

.chart-result {
  display: flex;
  gap: 10rem;
  justify-content: center;
}

@media only screen and (max-width: 768px) {
  .chart-result {
    flex-direction: column;
    gap: 1rem;
  }
}

.chart-result-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.chart-yes-title {
  display: inline-flex;
  padding: 1rem 2rem;
  border: solid 2px var(--color-theme);
  border-radius: 1rem;
  font-size: 2rem;
  font-weight: 700;
}
.chart-result-item::before {
  content: '';
  display: inline-block;
  font-family: 'Font Awesome 6 Free';
  content: '\f107';
  font-weight: 900;
  font-size: 6rem;
  color: var(--color-theme);
}
.chart-result-item.no-item::before {
  color: var(--color-blue);
}

.chart-yes-text {
  display: inline-flex;
  padding: 1rem 2rem;
  border: solid 2px var(--color-theme);
  border-radius: 1rem;
  min-width: 400px;
  justify-content: center;
  font-size: 2rem;
  font-weight: 700;
}

@media only screen and (max-width: 768px) {
  .chart-yes-text {
    min-width: 100%;
  }
}

.chart-no-title {
  display: inline-flex;
  padding: 1rem 2rem;
  border: solid 2px var(--color-blue);
  border-radius: 1rem;
  font-size: 2rem;
  font-weight: 700;
}
.chart-no-text {
  display: inline-flex;
  padding: 1rem 2rem;
  border: solid 2px var(--color-blue);
  border-radius: 1rem;
  min-width: 400px;
  justify-content: center;
  font-size: 2rem;
  font-weight: 700;
}

@media only screen and (max-width: 768px) {
  .chart-no-text {
    min-width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .legal_notice th {
    width: 20%;
  }
}

@media only screen and (max-width: 768px) {
  .legal_notice th,
  .form th {
    display: block;
    width: 100%;
    border-bottom: 0;
  }

  .legal_notice th {
    padding: 1rem;
    font-weight: 900;
  }

  .legal_notice td,
  .form td {
    display: block;
    width: 100%;
  }

  .legal_notice td {
    padding: 1rem;
  }

  .form th {
    padding-bottom: 0;
  }
}

@media only screen and (max-width: 768px) {
  .form td {
    padding: 10px;
  }

  .form th .red {
    margin-left: 5px;
  }
  .form input[type='text'],
  .form input[type='tel'],
  .form input[type='email'],
  .form textarea {
    width: 90%;
    max-width: 400px;
  }
  .form .must,
  .form .nin-i {
    position: relative;
    top: initial;
    left: initial;
    transform: initial;
  }
}

@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .form input[type='text'],
  .form input[type='tel'],
  .form input[type='email'],
  .form textarea {
    width: 90%;
    max-width: 400px;
  }
}

/* MARK:ページトップボタン */
#page-top {
  position: fixed;
  bottom: 0;
  right: 0;
  font-size: 1.2rem;
  z-index: 999;
  margin: 0 !important;
}

#page-top a {
  background: var(--color-theme);
  text-decoration: none;
  color: #fff;
  width: 42px;
  height: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media only screen and (min-width: 1025px) {
  #page-top a:hover {
    text-decoration: none;
    background: var(--color-theme-light);
  }
}

@media only screen and (max-width: 1024px) {
  #page-top {
    font-size: 1.6rem;
  }
  #page-top a {
    width: 60px;
    height: 60px;
  }
}

@media only screen and (max-width: 768px) {
  #page-top {
    bottom: 57px;
  }
}

/*MARK:gmap*/
@media only screen and (max-width: 768px) {
  .gmap {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9の比率 */
    overflow: hidden;
  }

  .gmap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
  }
}

/* Button Style */

/* 矢印リスト */
.arrow_list li {
  padding: 1rem;
  color: var(--color-green-dark);
  font-size: 1.6rem;
  position: relative;
}

.arrow_list li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f054';
  font-weight: 900;
  margin-right: 10px;
}

/* リンクリスト */
.link_list,
.link_list_center {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin: 3rem 0;
}
.link_list_center {
  justify-content: center;
}
.link_list li::before,
.link_list_center li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f138';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-theme);
  font-size: 1.8rem;
}
.link_list li a,
.link_list_center li a {
  display: inline-block;
  color: #000;
  font-size: 1.8rem;
  position: relative;
  text-decoration: none;
  padding-bottom: 2px;
  padding-left: 0;
}

.link_list li a::after,
.link_list_center li a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background-color: var(--color-theme);
  transition: width 0.3s ease;
}

.link_list li a:hover::after,
.link_list_center li a:hover::after {
  width: 100%;
}

/* ボタンリスト */
.bt_list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 1.5rem 0;
}
@media only screen and (max-width: 768px) {
  .bt_list li a {
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .bt_list li {
    width: 100%;
  }
}

/* Button 共通 */
.bt01,
.bt02,
.form_bt,
.procedure-bt01,
.procedure-bt02,
.procedure-bt03,
.procedure-bt04 {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  transition:
    var(--transition),
    transform 0.3s ease;
  font-weight: bold;
  height: 100%;
  text-decoration: none !important;
}

.bt01 {
  background-color: var(--color-accent);
  color: #fff;
  border-radius: 5px;
  font-size: 1.6rem;
  padding: 15px 30px;
}

.bt01::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  padding-left: 1rem; /*文字との隙間*/
  color: #fff;
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle; /* 縦中央に配置 */
  display: inline-block; /* インラインブロック要素に変更 */
  transition:
    var(--transition),
    transform 0.3s ease;
}

.bt01:hover {
  transform: translateY(-5px);
}

.bt02 {
  border: solid 1px var(--color-theme);
  color: var(--color-theme);
  min-width: 250px;
  padding: 10px 20px;
  position: relative;
  background-color: #fff;
  opacity: 1;
}

.bt02:hover {
  background-color: var(--color-theme);
  color: #fff;
  transform: translateY(-5px);
}

.bt02::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  padding-left: 1rem; /*文字との隙間*/
  color: var(--color-theme);
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle; /* 縦中央に配置 */
  display: inline-block; /* インラインブロック要素に変更 */
  transition:
    var(--transition),
    transform 0.3s ease;
}

.bt02:hover::after {
  color: #fff;
}

.procedure-bt01,
.procedure-bt02,
.procedure-bt03,
.procedure-bt04 {
  display: flex;
  border: solid 1px var(--color-theme);
  color: var(--color-theme);
  padding: 10px 50px 10px 20px;
  position: relative;
  background-color: #fff;
  opacity: 1;
  text-align: center;
}

.procedure-bt02,
.procedure-bt03,
.procedure-bt04 {
  display: inline-block;
  color: #fff;
}

.procedure-bt02 {
  background-color: var(--color-theme);
}

.procedure-bt03 {
  background-color: var(--color-blue);
  border: solid 1px var(--color-blue);
}

.procedure-bt04 {
  background-color: var(--color-green);
  border: solid 1px var(--color-green);
}

.procedure-bt01:hover,
.procedure-bt02:hover,
.procedure-bt03:hover,
.procedure-bt04:hover {
  transform: translateY(-5px);
}

.procedure-bt01::after,
.procedure-bt02::after,
.procedure-bt03::after,
.procedure-bt04::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  padding-left: 1rem; /*文字との隙間*/
  color: var(--color-theme);
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle; /* 縦中央に配置 */
  display: inline-block; /* インラインブロック要素に変更 */
  transition:
    var(--transition),
    transform 0.3s ease;
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
}

.procedure-bt02::after,
.procedure-bt03::after,
.procedure-bt04::after {
  color: #fff;
}

.bt-list-3 li a.procedure-bt02,
.bt-list-3 li a.procedure-bt03,
.bt-list-3 li a.procedure-bt04 {
  display: flex;
}

/* フォームボタン */
.form_bt {
  border: solid 1px var(--color-theme);
  background-color: var(--color-theme);
  color: #fff;
  min-width: 250px;
  padding: 10px 20px;
  position: relative;
  opacity: 1;
}

.form_bt:hover {
  transform: translateY(-5px);
}

.form_bt::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  padding-left: 1rem; /*文字との隙間*/
  color: #fff;
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle; /* 縦中央に配置 */
  display: inline-block; /* インラインブロック要素に変更 */
  transition:
    var(--transition),
    transform 0.3s ease;
}

/*MARK:リスト共通*/

/*番号リスト*/
.main-content > ol {
  margin-left: 3.5rem;
}

.main-content > ol > li {
  list-style-type: decimal;
  margin-bottom: 1.5rem;
}
.main-content p a {
  text-decoration: underline;
}

/* チェックリスト1 */
.check-list {
  margin: 3rem 0;
  background-color: var(--color-gray-light);
  padding: 3rem;
  border-radius: 10px;
}

.check-list li {
  font-size: 1.8rem;
  position: relative;
}

.check-list li:not(:last-child) {
  margin-bottom: 1rem;
}

.check-list li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f058';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-green);
  font-size: 2.4rem;
}

.check-list-inline {
  margin: 3rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.check-list-inline li {
  font-size: 1.8rem;
  position: relative;
  display: inline-flex;
  align-items: center;
  background-color: #fff;
  border-radius: 100px;
  padding: 0.5rem 1.5rem;
  border: 2px solid var(--color-theme);
}

.check-list-inline li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f044';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-green);
  font-size: 2.4rem;
}

/* チェックリスト2 */
.check-list2 {
  margin: 6rem 0;
}

.check-list2 li {
  font-size: 1.8rem;
  position: relative;
}

.check-list2 li:not(:last-child) {
  margin-bottom: 1rem;
}

.check-list2 li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f058';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-green);
  font-size: 2.4rem;
}

.medical-list {
  margin: 3rem 0;
  background-color: var(--color-theme-light-light);
  padding: 3rem;
  border-radius: 10px;
}

.medical-list li {
  font-size: 1.8rem;
  position: relative;
  padding-left: 3rem;
  padding-top: 0.5rem;
}

.medical-list li:not(:last-child) {
  margin-bottom: 1rem;
}

.medical-list li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f15c';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-theme);
  font-size: 2.4rem;
  position: absolute;
  left: 0;
  top: 0;
}

.text-list {
  margin: 3rem 0;
}

.text-list li {
  font-size: 1.6rem;
  position: relative;
  padding-left: 3rem;
  padding-top: 0.5rem;
}

.text-list li:not(:last-child) {
  margin-bottom: 1rem;
}

.text-list li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f15c';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-theme);
  font-size: 2.4rem;
  position: absolute;
  left: 0;
  top: 0;
}

/* ulリスト共通 */
.disc-list {
  list-style: disc;
  margin-left: 3.5rem;
  margin-bottom: 3rem;
}
.disc-list li::marker {
  color: var(--color-theme);
  font-size: 2.4rem;
}

.disc-list.men li::marker {
  color: var(--color-blue);
  font-size: 2.4rem;
}

.comment-list {
  margin-bottom: 2rem;
}

.comment-list li {
  font-size: 1.8rem;
  position: relative;
  margin-bottom: 1.5rem;
}

.comment-list li::before {
  display: inline-block;
  content: '';
  background-image: url(../common/images/icon-comment.png);
  width: 26px;
  height: 26px;
  aspect-ratio: 26/26;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  margin-right: 10px;
}

.flow-item {
  display: flex;
  align-items: flex-start;
  position: relative;
  gap: 20px;
}
.flow-item:last-child {
  margin-bottom: 0;
}

.flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.step-circle {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  border: 3px solid var(--color-theme);
  background-color: var(--color-theme);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  font-weight: 700;
  font-size: 2rem;
  color: #fff;
  line-height: 1;
}
@media only screen and (max-width: 768px) {
  .step-circle {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 2rem;
  }
}

@media only screen and (max-width: 599px) {
  .step-circle {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 1.8rem;
  }
}

.flow-line {
  width: 3px;
  height: calc(2rem + 2rem);
  background-color: var(--color-theme-light);
}

.flow-txt {
  font-size: 1.8rem;
  margin: 1rem 0;
  line-height: 1;
}

@media only screen and (max-width: 768px) {
  .flow-txt {
    font-size: 1.4rem;
  }
}

/* ===== END SECTION HEADER COMMON STYLES ===== */

/*横向きスマホ*/
@media only screen and (max-width: 960px) and (orientation: landscape) and (max-height: 430px) {
  .gmap iframe {
    max-height: 300px;
  }
}

/*グリッドレイアウト*/
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4rem;
}

@media only screen and (max-width: 768px) {
  .grid-2 {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}
@media only screen and (min-width: 769px) {
  .grid-2.gap-40 {
    gap: 4rem;
  }

  .grid-2.gap-60 {
    gap: 6rem;
  }
}

.grid-2 .img-box {
  width: 100%;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
}

.grid-4 img {
  margin-bottom: 1.5rem;
}

.img-txt-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 3rem;
}

.img-txt-grid-s {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 3rem;
}

.txt-img-grid {
  display: grid;
  grid-template-columns: 1fr 500px;
  gap: 2rem;
}

.txt-img-grid.img400 {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 2rem;
}

@media only screen and (max-width: 768px) {
  .img-txt-grid,
  .img-txt-grid-s,
  .txt-img-grid,
  .txt-img-grid.img400 {
    grid-template-columns: 1fr;
  }
  .grid-3 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media only screen and (max-width: 768px) {
  .img-txt-grid,
  .img-txt-grid-s,
  .txt-img-grid {
    grid-template-columns: 1fr;
  }

  .img-txt-grid img {
    margin-inline: auto;
  }
  .img-txt-grid-s img {
    margin-inline: auto;
  }

  .grid-4 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
  .grid-4 img {
    margin-bottom: 0;
  }
}

.img-txt-grid .img-box {
  width: 100%;
}

.img-txt-grid .txt-box {
  width: 100%;
}

.txt-img-grid.center,
.img-txt-grid.center {
  align-items: center;
}

/*画像影*/
.box-shadow img {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

/*最大幅950px*/
.max-w-800 {
  max-width: 800px;
  margin-inline: auto;
}

.max-w-950 {
  max-width: 950px;
  margin-inline: auto;
}

/*記事関連*/
.post-wrap {
  margin: 40px 0;
}

.date {
  margin-bottom: 0 !important;
  font-size: 1.4rem;
}

/* テキスト中央寄せなど */
.txt-center {
  text-align: center;
}
.txt-right {
  text-align: right;
}

/*画像中央寄せ*/
.img-center img {
  margin-inline: auto;
}

.w300 {
  width: 300px;
}

@media only screen and (max-width: 768px) {
  .w300 {
    width: 100%;
  }
}

/*MARK:Margin Padding*/

.mtb-2 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.mtb-4 {
  margin-top: 4rem;
  margin-bottom: 4rem;
}

.mt-0 {
  margin-top: 0;
}

.mt-3 {
  margin-top: 3rem;
}
.mt-4 {
  margin-top: 4rem;
}
.mt-6 {
  margin-top: 6rem;
}

.mb-0 {
  margin-bottom: 0;
}
.mb-1 {
  margin-bottom: 1rem;
}

.mb-2 {
  margin-bottom: 2rem;
}

.mb-4 {
  margin-bottom: 4rem;
}

/* Colors */
.color-theme {
  color: var(--color-theme);
}
.red {
  color: var(--color-red);
}
.blue {
  color: var(--color-blue);
}
.green {
  color: var(--color-green);
}
.orange {
  color: var(--color-orange);
}
.yellow {
  color: var(--color-yellow);
}
.pink {
  color: var(--color-theme);
}

.txt-black {
  color: #000 !important;
}

/* Font Sizes */
.txt_s {
  font-size: 1rem;
}
.txt12 {
  font-size: 1.2rem;
}
.txt14 {
  font-size: 1.4rem;
}
.txt16 {
  font-size: 1.6rem;
}
.txt18 {
  font-size: 1.8rem;
}
.txt20 {
  font-size: 2rem;
}
.txt24 {
  font-size: 2.4rem;
}

.txt30 {
  font-size: 3rem;
}

/*MARK:フォントファミリー*/

.noto_san {
  font-family: 'Noto Sans JP', sans-serif;
}

.lato-bold {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-style: normal;
}

.montserrat-700 {
  font-family: 'Montserrat', sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

/*文字装飾*/

.bold {
  font-weight: 900;
}

.bold-700 {
  font-weight: 700;
}

.marker {
  background: linear-gradient(transparent 55%, #fff100 55%);
}

.marker-red {
  background: linear-gradient(transparent 55%, var(--color-theme) 55%);
}

/* MARK: Nursery Tabs */
.nursery-tabs {
  margin: 2rem 0;
}

.tab-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  border-bottom: 2px solid var(--color-theme);
}

.tab-button {
  background: none;
  border: 2px solid var(--color-theme);
  color: var(--color-theme);
  padding: 1rem 2rem;
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: 600;
  border-radius: 0.5rem 0.5rem 0 0;
  transition: all 0.3s ease;
  position: relative;
  flex: 1;
  min-width: 120px;
}

.tab-button:hover {
  background-color: var(--color-theme-light);
  color: var(--color-theme-dark);
}

.tab-button.active {
  background-color: var(--color-theme);
  color: white;
  border-color: var(--color-theme);
}

.tab-button.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--color-theme);
}

.tab-contents {
  position: relative;
}

.tab-content {
  display: none;
  padding: 2rem;
  border-radius: 0 0 1rem 1rem;
  border: 2px solid var(--color-theme);
}

.tab-content.active {
  display: block;
}

.tab-content h4 {
  color: var(--color-theme);
  margin-bottom: 1.5rem;
  font-size: 1.8rem;
  font-weight: 700;
}

.nursery-info p {
  margin-bottom: 1rem;
  line-height: 1.6;
}

.nursery-info strong {
  color: var(--color-theme-dark);
  font-weight: 700;
}

/* レスポンシブ対応 */
@media only screen and (max-width: 768px) {
  .tab-buttons {
    flex-direction: column;
  }

  .tab-button {
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
  }

  .tab-button.active::after {
    display: none;
  }

  .tab-content {
    padding: 1.5rem;
  }
}

/* MARK: Page Title */
.h-page-title {
  /* display: none; デフォルトで非表示 */
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--color-theme);
  padding: 0 2rem;
}

.h-page-title.show {
  display: block;
}

.home-page .h-page-title {
  color: #84755c;
  text-shadow:
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 10px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1),
    1px 1px 20px rgba(255, 255, 255, 1);
}

/* トップページ以外でのみ表示 */
body:not(.home-page) .h-page-title {
  display: block;
}

/* レスポンシブ対応 */
@media only screen and (max-width: 768px) {
  .h-page-title {
    /* スマホでは視覚的に非表示だがSEOとスクリーンリーダーには認識される */
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

/* MARK: Gallery Grid */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  margin-top: 3rem;
}

.gallery-grid figure {
  margin: 0;
  transition: transform 0.3s ease;
}

.gallery-grid figure:hover {
  transform: translateY(-5px);
}

.gallery-grid figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
}

.gallery-grid figure:hover img {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.gallery-grid figure a {
  display: block;
  cursor: pointer;
}

.gallery-grid figure figcaption {
  margin-top: 1rem;
  font-size: 1.6rem;
  text-align: center;
  color: var(--color-gray-darken);
}

@media only screen and (max-width: 768px) {
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media only screen and (max-width: 768px) {
  .gallery-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/*pagenavi*/
.wp-pagenavi {
  clear: both;
  text-align: center;
  font-size: 14px;
  padding: 25px 0;
}
.wp-pagenavi a,
.wp-pagenavi span {
  color: #fff;
  background-color: var(--color-theme);
  border: 1px solid var(--color-theme);
  padding: 5px 15px;
  margin: 0 2px;
  white-space: nowrap;
  border-radius: 3px;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.wp-pagenavi a:hover {
  background-color: #fff;
  color: var(--color-theme);
  border-color: var(--color-theme);
}
.wp-pagenavi span.current {
  color: var(--color-theme);
  background-color: #fff;
  border-color: var(--color-theme);
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .wp-pagenavi a,
  .wp-pagenavi span {
    color: #fff;
    background-color: var(--color-theme);
    border: 1px solid var(--color-theme);
    padding: 1% 3%;
    margin: 2% 2px;
    white-space: nowrap;
    border-radius: 3px;
    transition: 0.2s ease-in-out;
    text-align: center;
    text-decoration: none;
    display: inline-block;
  }
}

.page-numbers {
  clear: both;
  text-align: center;
}
.page-numbers li {
  display: inline-block;
}
.page-numbers a,
.page-numbers span {
  color: #fff;
  background-color: var(--color-theme);
  border: 1px solid var(--color-theme);
  padding: 8px 15px;
  margin: 0 2px;
  white-space: nowrap;
  border-radius: 3px;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none;
}
.page-numbers a:hover {
  background-color: #fff;
  color: var(--color-theme);
  border-color: var(--color-theme);
}
.page-numbers span.current {
  color: var(--color-theme);
  background-color: #fff;
  border-color: var(--color-theme);
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .page-numbers a,
  .page-numbers span {
    color: #fff;
    background-color: var(--color-theme);
    border: 1px solid var(--color-theme);
    padding: 5px 13px;
    margin: 2% 2px;
    white-space: nowrap;
    border-radius: 3px;
    transition: 0.2s ease-in-out;
    text-align: center;
    text-decoration: none;
    display: inline-block;
  }
}

/* MARK: Post */

#post_wrap {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 2rem;
}

@media only screen and (max-width: 1024px) {
  #post_wrap {
    grid-template-columns: 1fr;
  }
}

.post-category {
  margin: 3rem 0;
}

.post-content {
  word-wrap: break-word;
  word-break: break-word;
}

.post-eyecatch {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.post-eyecatch img {
  margin-inline: auto;
}

.archive .post_item,
.search .post_item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #ccc;
}

@media only screen and (max-width: 599px) {
  .archive .post_item,
  .search .post_item {
    grid-template-columns: 1fr;
  }
}

.archive .post_item-thumb img,
.search .post_item-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.post-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}
.post-categories a {
  display: inline-block;
  padding: 5px 15px;
  background-color: var(--color-theme);
  border: 1px solid var(--color-theme);
  color: #fff;
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.3s ease;
}
.post-categories a:hover {
  background-color: #fff;
  color: var(--color-theme);
  border: 1px solid var(--color-theme);
}

.category-column h2,
.category-column h3,
.category-column h4,
.category-column h5,
.category-column h6 {
  margin-bottom: 2rem;
}

.post_item .post_item-category .post-categories {
  margin-bottom: 0;
}

.post_item .post_item-category .post-categories a {
  padding: 2px 5px;
  font-size: 1.2rem;
}
.widget-title {
  font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
  font-size: 2rem;
  margin: 30px 0;
  position: relative;
  color: var(--color-theme);
}
.widget-title::after {
  display: inline-block;
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 58px;
  border-bottom: dotted 2px #000;
  content: '';
}

.widget ul,
.widget ol {
  background-color: #f5f5f5;
  padding: 20px !important;
  border-radius: 10px;
  font-size: 1.4rem;
  margin-left: 0;
}

.widget li {
  list-style-type: disc;
  margin-left: 20px;
  margin-bottom: 15px;
  font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
}
.widget li:last-child {
  margin-bottom: 0;
}
.widget li a {
  color: #000;
  position: relative;
  padding: 0 5px 5px 5px;
}

.widget li a::after {
  border-bottom: solid 1px #000;
  padding-bottom: 0px;
  left: 0;
  content: '';
  display: block;
  position: absolute;
  transition: all 0.3s ease;
  width: 0;
}

.widget li a:hover::after {
  width: 100%;
}
.widget li::marker {
  color: #ccc;
}

.nav-links {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem !important;
}

@media only screen and (max-width: 768px) {
  .nav-links {
    grid-template-columns: 1fr;
  }
}

.post-navigation {
  margin-top: 4rem;
}

.nav-previous a,
.nav-next a {
  display: inline-block;
  transition:
    var(--transition),
    transform 0.3s ease;
  font-weight: bold;
  width: 100%;
  height: 100%;
  text-decoration: none !important;
  background-color: var(--color-theme);
  color: #fff;
  border-radius: 5px;
  font-size: 1.6rem;
  padding: 15px 30px;
  position: relative;
}

.nav-previous a:hover,
.nav-next a:hover {
  transform: translateY(-5px);
}

.nav-previous a::before,
.nav-next a::before {
  content: '';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  font-size: 2rem;
  display: inline-block; /* インラインブロック要素に変更 */
  position: absolute;
  color: #fff;
}

.nav-previous a::before {
  content: '\f104';
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.nav-next a::before {
  content: '\f105';
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

/* MARK: エディタスタイル（フロントエンド用） */

.post-title {
  color: var(--color-theme);
  font-size: 2.4rem;
}

.lead-box {
  background-color: var(--color-theme-light-light);
  padding: 2rem 2.5rem;
  border-radius: 0.5rem;
  margin: 2rem 0 3rem;
  line-height: 1.8;
}

.post-subtitle01 {
  font-size: 2.4rem;
  margin-bottom: 2rem;
  background-color: var(--color-theme);
  color: #fff;
  padding: 1rem;
  border-radius: 5px;
  margin-top: 6rem;
}

.post-subtitle02 {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 1rem;
  border-bottom: solid 2px var(--color-theme);
  padding-bottom: 1rem;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.post-subtitle03 {
  margin: 3rem 0;
  position: relative;
  padding-bottom: 2rem;
}

.post-subtitle03::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  content: '';
  background-image: -webkit-repeating-linear-gradient(135deg, var(--color-theme), var(--color-theme) 1px, transparent 2px, transparent 5px);
  background-image: repeating-linear-gradient(-45deg, var(--color-theme), var(--color-theme) 1px, transparent 2px, transparent 5px);
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.post-content ul {
  list-style: disc;
  margin-bottom: 3rem;
  background-color: var(--color-theme-light-light);
  padding: 2rem;
  border-radius: 5px;
  list-style-position: outside;
  padding-left: 4rem;
}

.post-content ul li::marker {
  color: var(--color-theme);
  font-size: 2.4rem;
}

.post-content ol {
  list-style: decimal;
  margin-bottom: 3rem;
  background-color: var(--color-theme-light-light);
  padding: 2rem;
  border-radius: 5px;
  list-style-position: outside;
  padding-left: 4rem;
}

.post-content ol li:not(:last-child) {
  margin-bottom: 1.5rem;
}

.post-content ol li::marker {
  color: var(--color-theme);
  font-size: 1.6rem;
  font-weight: 700;
}

/* 小さいノートPC（1366px以下） */
@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  .h-logo {
    width: 540px;
  }
}

/*タブレット横*/
@media (orientation: landscape) and (max-width: 1024px) {
  .h-tool {
    width: 80px;
    height: 80px;
    position: fixed;
    top: 0;
    right: 0;
  }
  .mainimage-inner {
    width: 100%;
    height: 80vh;
    max-height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }
}

/*MARK: スマホ横向き用*/
@media screen and (orientation: landscape) and (max-width: 960px) and (max-height: 430px) {
  .h-page-title,
  body:not(.home-page) .h-page-title {
    /* スマホでは視覚的に非表示だがSEOとスクリーンリーダーには認識される */
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .home-page .site-header::before {
    display: none;
  }
  .mainimage-title {
    padding: 2rem;
  }
  .mainimage-title-logo {
    margin-bottom: 0;
    max-width: 400px;
  }
  .mainimage-inner {
    align-items: flex-start;
  }
  .navbtn {
    display: block;
  }
  .h-logo {
    width: 400px;
  }
  .h-tel {
    display: none;
  }
  .h-tool {
    background-color: var(--color-theme);
    padding: 15px;
    width: 60px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 999;
    position: fixed;
    top: 0;
    right: 0;
  }
  /*ハンバーガーメニュー開閉時のグローバルナビ*/
  .g-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.9);
    display: block;
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.2s ease,
      visibility 0.2s ease;
    z-index: 900;
  }
  .subpage .g-nav {
    position: fixed;
    bottom: initial;
  }

  .g-nav.show {
    opacity: 1;
    visibility: visible;
    overflow: auto;
  }

  .g-nav > ul:first-child {
    margin-top: 6rem;
    margin-bottom: 2.5rem;
  }
  .g-nav > ul {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 100%;
    margin: 0;
    gap: initial;
    padding: 3rem;
  }

  .g-nav > ul > li {
    opacity: 0;
    transition:
      opacity 0.2s ease,
      transform 0.2s ease;
    overflow: hidden;
  }

  .g-nav > ul > li > a {
    position: relative;
    display: block;
    font-size: 1.6rem;
    border-bottom: 1px solid #999;
    border-left: 0;
    min-width: 180px;
    text-align: center;
  }

  .g-nav.show > ul > li {
    opacity: 1;
    padding: 0;
  }
  .g-nav > ul > li > a {
    padding: 2rem;
    color: var(--color-theme);
  }
  .g-nav > ul > li > a::after {
    display: none;
  }
  .menu-tel-info {
    position: static;
  }
  .footer-inner {
    display: block;
    padding: 3rem;
  }

  #news {
    min-height: 600px;
    margin-top: -160px;
  }
  #about,
  #shinryou {
    height: initial;
  }

  .incho-img {
    max-width: 300px;
  }

  .img-txt-grid {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 3rem;
  }

  #shinryou .main-content {
    padding: 10rem 3rem 3rem;
  }
  .shinryou-table thead th {
    border-bottom: 1px solid #fff;
    font-size: 1.2rem;
  }
  #post_wrap {
    display: block;
  }
  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
