p,a,li,div {
  font-size: 17px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  list-style: none;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

header,footer{
	  color: #fdfae2;
}

html, body {
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
}

a{
    text-decoration: none;
}

a:hover {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}


.shippori-mincho-regular {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.trajan{
  font-family: "trajan-pro-3", serif;
  font-weight: 300;
  font-style: normal;
}

/* 登場アニメーション */
.fade-in-top, .fade-in-bottom, .fade-in-left, .fade-in-right,
.slide-in-top, .slide-in-bottom, .slide-in-left, .slide-in-right {
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px); /* 初期位置を下げる */
  transition: all 0.6s ease-out; /* スムーズなアニメーション */
}

/* .showが付いたときの表示状態 */
.fade-in-top.show,.fade-in-bottom.show,.fade-in-left.show,.fade-in-right.show,
.slide-in-top.show,.slide-in-bottom.show,.slide-in-left.show,.slide-in-right.show {
  opacity: 1;
  visibility: visible;
  transform: translate(0, 0); /* 元の位置に戻す */
}

/* positionで位置調整した要素はこちらで */
.fade-soft {
  opacity: 0;
  transition: all 0.8s ease-out;
  visibility: hidden;
}

.fade-soft.show {
  opacity: 1;
  visibility: visible;
}

/* フェードイン */
.fade-in-top { transform: translateY(-30px); }
.fade-in-bottom { transform: translateY(30px); }
.fade-in-left { transform: translateX(-30px); }
.fade-in-right { transform: translateX(30px); }

/* スライドイン */
.slide-in-top {transform: translateY(50px);}
.slide-in-bottom { transform: translateY(50px); }
.slide-in-left { transform: translateX(-50px); }
.slide-in-right { transform: translateX(50px); }

/* ハンバーガーメニュー展開時の背景制御 */
body.fixed, html.fixed {
  overflow: hidden;
  height: 100%;
  position: fixed;
  width: 100%;
}

.hamburger{
    display: none;
}

.sp-nav{
  display: none;
}

.follow-nav{
    display: none;
}

.sp{
  display: none;
}


/* ヘッダー全体 */
#header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  line-height: 80px;
  background-color: #4b0303;
}

#header.hide {
  transform: translateY(-100%);
}

#header.show {
  transform: translateY(0);
}

header nav{
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: #f0e598 1px solid;
  top:0;
  left: 0;
  z-index: 1;
}

.nav-left {
  flex: 1;
  padding-left: 60px;
}

.nav-center {
  flex: 2;
  display: flex;
  justify-content: center;
}

.nav-center ul {
  display: flex;
  gap: 60px;
  list-style: none;
  padding: 0;
  margin: 0;
  white-space: nowrap;
}

.nav-right {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  padding-right: 40px;
}

header nav ul li a{
    font-size: 18px;
    color:#f0e598;;
}

/* ホバーリンク */
header nav ul .has-dropdown {
  position: relative;
  padding-right: 30px;
}

header nav ul .has-dropdown::before {
  position: absolute;
  content: "";
  background-image: url(../img/nav-drop-down.png);
  background-repeat: no-repeat;
  width: 12px;
  height: 7px;
  right: 5px;
  top: 49%;
  cursor: pointer;
  pointer-events: auto;
}

header nav ul .has-dropdown .dropdown {
  display: none;
  position: absolute;
  top: 80%;
  left: -33px;
  background-color: #fff;
  max-width: 200px;
  min-width:150px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  z-index: 10;
}

header nav ul .has-dropdown:hover .dropdown {
  display: block;
  border: #f0e598 solid 1px;
}

header nav ul .dropdown li {
  position: relative;
  text-align: center;
  background-color: #2b0202;
  height: 50px;
  line-height: 50px;
}

header nav ul .dropdown li:not(:last-child)::before {
  position: absolute;
  content: "";
  width: 85%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  border: #f0e598 solid 1px;
}

header nav ul .dropdown li a {
  color: #f0e598;
}

header .header-btn{
  position: relative;
  color: #fef4b0;
  width: 195px;
  height: 50px;
  line-height: 46px;
  padding-left: 52px;
  border-radius: 6px;
  border: #f0e598 solid 2px;
  background-color: #6a0808;
  margin-left: auto;
}

header .header-btn::before{
  position: absolute;
  content: "";
  background-image: url(../img/tel-icon.png);
  background-repeat: no-repeat;
  width: 19px;
  height: 30px;
  top: 7px;
  left: 14px;
}

header .header-btn::after{
  position: absolute;
  content: "";
  background-repeat: no-repeat;
  width: 0;
  height: 0;
  bottom: 4px;
  right: 4px;
  border-left: 13px solid transparent;
  border-bottom: 13px solid #f0e598;
}

@media (max-width: 1400px) {
  #header{
    height: 0;
    line-height: 5;
  }

.title-line {
  display: block;
}

.header-nav {
  display: none;
}

.hamburger {
  display: flex;
}

.sp-nav {
  display: block;
}

/* ハンバーガーのベース */
.hamburger {
  position: fixed;
  top: 47px;
  right: 49px;
  width: 36px;
  height: 28px;
  z-index: 2001;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 1000;
  border-radius: 2px;
  transition: transform 0.4s ease, opacity 0.4s ease, width 0.4s ease;
  transform-origin: center;
}

.hamburger span {
  display: block;
  height: 3px;
  width: 100%;
  background-color: #f0e598;
  border-radius: 2px;
}

.hamburger-box {
  position: fixed;
  background-color: #4b0303;
  border: solid 1px #f0e598;
  top: 31px;
  right: 39px;
  width: 60px;
  height: 60px;
  border-radius: 10px;
  z-index: 2001;
}

.hamburger span {
  position: relative;
  display: block;
  height: 2px;
  border-radius: 2px;
  background-color: #f0e598;
  transition: all 0.4s ease;
  z-index: 2002;
}

.hamburger >span{
  width: 30px;
  }

  .hamburger.active span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
  width: 30px;
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
  width: 30px;
}
}


/* SPナビ（非表示時） */
.sp-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #330000;
  z-index: 2000;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  padding: 20px;
  box-sizing: border-box;
}

.sp-nav-inner h1 {
  margin-bottom: 20px;
  font-size: 18px;
  text-align: center;
  color: #f0e598;
}

.sp-nav-inner {
  padding: 40px 20px 30px;
}

/* SPナビ開くとき */
.sp-nav.active {
  transform: translateX(0%);
}

.sp-nav ul {
  padding: 0 20px;
  border: 1px solid #f0e598;
  border-radius: 8px;
  margin-top: 130px;
}

.sp-nav li {
  position: relative;
  border-bottom: 1px solid #f0e598;
  padding-left: 15px;
}

.sp-nav li::before {
  position: absolute;
  content: "";
  background-image: url(../img/sp-nav-arrow.png);
  background-repeat: no-repeat;
  width: 31px;
  height: 31px;
  z-index: 1;
  right: 20px;
  top: 50%;
  transform: translateY(-50%) scale(0.8);
  pointer-events: none;
}

.sp-nav li:last-child {
  border-bottom: none;
}

.sp-nav a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #f0e598;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.sp-nav .header-btn {
  margin: 50px auto;
  text-align: center;
  letter-spacing: 0.04em;
  padding-left: 53px;
}

@media (max-width: 500px) {
h1 a {
    font-size: 20px;
}

.sp-nav li::before {
  transform: translateY(-50%) scale(0.6);
}

.sp-nav a {
  font-size: 14px;
}

.sp-nav .header-btn {
    padding-left: 58px;
}

.hamburger {
  width: 36px;
  height: 24px;
  top: 28px;
  right: 17px;
}

.hamburger-box {
  top: 15px;
  right: 15px;
  width: 50px;
  height: 50px;
}

.hamburger >span {
    width: 27px;
}

.hamburger.active span:nth-child(1) {
    transform: translateX(-2px) translateY(9px) rotate(45deg);
    width: 30px;
}

.hamburger.active span:nth-child(3) {
    transform: translate(-2px) translateY(-7px) rotate(-45deg);
    width: 30px;
}

.sp-nav ul {
    margin-top: 60px;
}
}

/* footer */
footer{
  padding-top: 140px;
  background-color: #390202;
}

footer .footer-flex{
display: flex;
justify-content: center;
width: 100%;
max-width: 1500px;
margin: 0 auto 150px;
padding: 0 20px;
gap: 4vw;
flex-wrap: wrap;
}

.footer-flex-item01 p{
  flex: 1 1 0;
  white-space:nowrap;
}

.footer-flex-item02 {
  flex: 1 1 0;
}

.medical-schedule-scroll {
  overflow-x: auto;
  max-width: 100%;
}

footer .medical-schedule table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  text-align: center;
  font-size: 20px;
  margin-bottom: 20px;
  background-color: #390202;
  color: #fdfae2;
  border: 1px solid #fef4b0;
}

footer .medical-schedule th,
footer .medical-schedule td {
  font-size: 20px;
  padding: 15px;
}

footer .medical-schedule thead th {
  border-bottom: 1px solid #fef4b0;
}

footer .medical-schedule table {
  border-left: 1px solid #fef4b0;
  border-right: 1px solid #fef4b0;
}

footer .medical-schedule th:first-child,
footer .medical-schedule td:first-child {
  font-weight: normal;
  padding-right: 80px;
  white-space: nowrap;
}

footer .medical-schedule td:not(:first-child) {
  color: #dcca65;
}

footer .tel-icon{
  position: relative;
  display: block;
  width: 195px;
  height: 50px;
  line-height: 46px;
  margin-bottom: 30px;
  padding-left: 52px;
  border-radius: 6px;
  border: #f0e598 solid 2px;
  background-color: #6a0808;
}

footer .tel-icon::before {
  position: absolute;
  content: "";
  background-image: url(../img/tel-icon.png);
  background-repeat: no-repeat;
  width: 19px;
  height: 30px;
  top: 7px;
  left: 14px;
}

footer .tel-icon::after {
position: absolute;
content: "";
background-repeat: no-repeat;
width: 0;
height: 0;
bottom: 4px;
right: 4px;
border-left: 13px solid transparent;
border-bottom: 13px solid #f0e598;
}

footer .medical-schedule-scroll {
  width: 100%;
  overflow-x: auto;
}

footer .medical-schedule-scroll table {
  min-width: 450px;
}

footer .footer-clinic-name{
  font-size: 22px;
  margin-bottom: 15px;
}

.footer-clinic-adress{
  line-height: 25px;
  margin-bottom: 35px;
}

.footer-holiday{
	margin:20px 0 5px;
}

footer .map-wrapper{
  width: 100%;
}

footer .map-wrapper iframe{
  width: 100%;
}

footer small a{
  display: block;
  text-align: center;
  font-size: 12px;
  padding: 25px 0;
}

footer .c-floatbnr {
  position: fixed;
  bottom: 20px;
  right: 40px;
  display: flex;
  align-items: center;
  gap: 20px;
  z-index: 998;
/*   transform: translateY(110px); */
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
}

footer .c-floatbnr.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

footer .tel-icon{
	color: #fef4b0;
	margin-bottom:0;
}

footer .c-floatbnr .tel-box-text{
    margin-bottom: 0px;
    color: #f0e598;
    font-size: 17px;
}

footer .access-note{
	margin-top:30px;
}

footer .c-floatbnr li {
  list-style: none;
}

footer .scroll-hint-icon{
	margin-top:-25px;
}

@media screen and (max-width: 1200px) {
footer {
    padding-top: 150px;
}

  footer .footer-flex {
    display: flex;
    flex-direction: column-reverse;
    gap: 100px;
}

footer .footer-flex-item01{
  margin: auto;
}

footer .footer-flex-item02{
    width: 100%;
    max-width: 761px;
    margin: auto;
  }

  footer .footer-flex{
    padding: 0 20px;
}

footer .footer-clinic-name {
    text-align: center;
}

footer .c-floatbnr {
    gap: 0;
}

footer .c-floatbnr .c-pagetop img{
  transform: scale(0.7);
}

/* .c-floatbnr .footer-btn {
    transform: scale(0.8);
} */

}

@media screen and (max-width: 768px) {
footer {
    padding-top: 100px;
    background-color: #390202;
}

footer .footer-flex{
  margin: 0 auto 100px;
}

.footer-flex-item01{
  margin: auto;
}

.footer-flex-item01 p{
  white-space:wrap;
}

footer .medical-schedule th,
footer .medical-schedule td {
    font-size: 16px;
    padding: 10px;
}

footer .medical-schedule th:first-child, 
footer .medical-schedule td:first-child {
		font-weight: normal;
        padding-right: 0px;
}



footer p.footer-clinic-name{
font-size: 20px;
}

footer .map-wrapper iframe {
  height: 300px;
}

footer .tel-icon {
/*   left: 50%; */
/*   transform: translateX(-50%); */
	margin-bottom: 0;
}

footer .c-floatbnr .footer-btn {
/*     left: 85%; */
/*     transform: translateX(20%) scale(0.6); */
}

footer .c-floatbnr .c-pagetop img {
    transform: scale(0.5);
}

footer .c-floatbnr {
    right: 10px;
}
}

@media screen and (max-width: 450px) {

footer .medical-schedule th,
footer .medical-schedule td {
    padding: 5px;
}
}
/* 見出し・共通事項 */

/* .inner{
    padding-bottom: 200px !important;	
} */
.footer {
    padding-top: 100px !important;
}
/* 
 p:not(:last-child) {
    margin-bottom: 1em;
} */

p{
	font-size: 17px;
}

.text_box{
font: 400 17px / 1.7647058824 "Noto Sans JP", sans-serif;	
}

.mt80_40{
	margin-top: clamp(40px, 4vw, 80px)!important;
}
.mt50_30{
	margin-top: clamp(30px, 4vw, 50px)!important;
}
.mt30_15{
    margin-top: clamp(15px, 4vw, 30px)!important;
}
.mt15_8{
    margin-top: clamp(8px, 4vw, 15px)!important;
}

.mb50_30{
	margin-bottom: clamp(30px, 4vw, 50px)!important;
}
.mb30_15{
	margin-bottom: clamp(15px, 4vw, 30px)!important;
}
.mb15_8{
	margin-bottom: clamp(8px, 4vw, 15px)!important;
}

/* main.subpage{
  font-size: 17px;
  color: #333;
  background:#fff;	
  padding: 0;
  box-sizing: border-box;
  list-style: none;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}
.sub_top {
  position: relative;
  height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 70px;
  overflow: hidden;
} */
/* 
.inner {
    max-width: 1200px;
    margin: 0 auto;
}



h1{
    margin-right: auto;
	    color: #f0e598;
}

h1 a{
    font-size: 24px;
}

h2{
  font-size: 140px;
  font-family: "trajan-pro-3", serif;
  font-weight: 300;
  font-style: normal;
}
 */

/* h3.top-title{
  position:relative;
  padding-top: 80px;
  font-size:40px ;
  color: #6b0e0e;
  text-align: center;
}

h3.top-title::before{
    position: absolute;
    content: "";
    border: #6b0e0e solid 1px;
    width: 80%;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
} */

/* h4.title{
  position:relative;
  font-size:30px ;
  color: #6b0e0e;
  text-align: center;
}

h4.title::before{
    position: absolute;
    content: "";
    border: #6b0e0e solid 1px;
    width: 60px;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 10px;
} */
/* @media screen and (max-width: 1400px) {
.sub_top {
  position: relative;
  height: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  overflow: hidden;
}
}

@media screen and (max-width: 1100px) {
.sub_top_box {
    width: 95%;
}	
}
@media screen and (max-width: 1000px) {
.sub_top_box_text {
    width: 48%;
}
}


	
.sub_top_box_text {
    width: 100%;
	    margin-top: 30px;
}
.sub_top_box_img{
    width: 100%;
}
.sub_top_box {
    flex-direction: column;
	    align-items: center;
}
	
	.sub_top {
		height: 230px;
	}
	
.sub_top h2 {
    font-size: 36px;
}

	.sub_top_box_text span{
		font-size: 110%;
	}
	 */
/* 	h3.top-title{
		font-size:36px;
	}
	
	h3.top-title::before {
    border: #6b0e0e solid 2px;
	bottom:-10px;
} */
	
/* h4.title{
  position:relative;
  font-size:30px ;
  color: #6b0e0e;
  text-align: center;
}
 */
@media screen and (max-width: 600px) {
	p{
		    font-size: 16px;
	}
	    .inner {
        max-width: calc(1760px + 40px);
        padding: 0px;
    } 
footer .tel-icon{
    width: 175px;		
	}
footer .tel-icon {
	padding-left: 45px;
	}	
/* 
	h3.top-title {
    font-size: 30px;
}
	
h4.title{
  font-size:22px ;
} */
	footer .c-floatbnr{
        right: 0px;
		    bottom: 0px;
	}
}