@charset "UTF-8";
/* CSS Document */
html {
  background:#fff;
  scroll-behavior: smooth;
  scroll-margin-top: 100px;
}
body{
  color:#333;
  font-size: 16px;
  line-height:1.8;
}
.l-wrap{
    max-width:950px;
    margin:0 auto;
    position: relative;
    padding-top: 0;
}
img {
  width: 100%;
  height: auto;
}
.w80 {
  width: 80%;
  margin: auto
}
.w90 {
  width: 90%;
  margin: auto
}
.mb10 {
  margin-bottom: 10px;
}
.mb20 {
  margin-bottom: 20px;
}
.mb30 {
  margin-bottom: 30px;
}
.mb40 {
  margin-bottom: 40px;
}
.pa10 {
  padding: 10px;
}
.pa20 {
  padding: 20px;
}

.header {
  display: flex;
  justify-content: space-between;
  padding: 10px;
  position: fixed;
  width: 100%;
  background: #fff;
  z-index: 999;
  height: auto;
}
.header .logo {
  width: 40%;
}
.header .header_nav {
  width: 50%;
  display: flex;
  height: fit-content;
  justify-content: end;
}
.header .header_nav a{
  width:48%;
}
.header .header_nav img {
  width: 100%;
  height: auto;
  display: block;
}
.conts_inner{
  width:calc(100% - 20px);
  margin:  auto;
}
.cta{
    display: block;
    width: 90%;
    margin: 10px auto 20px;
}
/** アニメーションの定義 */
@keyframes bound {
  /** 開始時は１倍の大きさ */
  from { transform: scale(1); }
  /** 0%～25%にかけて1.15倍する */
  25% { transform: scale(1.05); }
  /** 25%～50%にかけて0.95倍する */
  50% { transform: scale(0.95); }
  /** 50%～75%にかけて1.05倍する */
  75% { transform: scale(1.05); }
  /** 終了時は元の大きさに戻す */
  to { transform: scale(1); }
}
.cta img{
  animation: bound 0.9s cubic-bezier(0.55, 0, 0.63, 1.03) infinite;
}

.bnr_as{
  text-align:center;
  font-size:14px;
}
.ttl_conts{
    padding: 20px;
    margin: 60px 0 30px;
}
.intro_inner{
    background: #FFE6E7;
    /* padding: 20px; */
    padding-bottom: 60px;
}
.intro .campaign{
    background: #fff;
    padding: 30px 20px 60px;
    position: relative;
    width: 90%;
    margin: 0 auto;
}
.intro .campaign .btn_campaign{
    position: absolute;
    bottom: -60px;
    width: 85vw;
    transform: translateX(-50%);
    left: 50%;
}

.reason_nav{
    display:flex;
    align-items: baseline;
    gap: 10px;
    padding: 0 10px 30px;
}

.reason_nav img{
   min-width: 0; 
}

.reason_box{
  border:2px solid #333;
  width: 92%;
  margin:0 auto 30px;
  padding:20px;
  box-shadow:5px 5px rgb(0 0 0 / 10%);
}
.slider_wrap{
  width:90%;
  margin:30px auto 60px;
}
.slider_wrap .swiper-pagination-bullet-active{
  background-color: #ff9f9f;
}
.faq a{
  display:inline;
  text-decoration:underline;
  color:#ff9f9f;
}
.faq .faq_list{
  width:90%;
  margin: 40px auto 0;
}
.faq .faq_q{
  position:relative;
  padding-left:50px;
  margin-bottom: 1em;
  font-weight:bold;
  min-height: 40px;
  display: flex;
  line-height:1.5;
  align-items: center;
  border-bottom: 1px dotted #ccc;
  padding-bottom: 1em;
}
.faq .faq_q:last-of-type{
  border:none
}
.faq .faq_q:before{
  content:"";
  /* top: 4px; */
  left:0;
  width:40px;
  height:40px;
  position: absolute;
  background-image: url(../img/faq_icon_q.png);
  background-size:100%;
}
.faq .faq_a{
  display: none;
  position:relative;
  padding-left:50px;
  margin-bottom: 2em;
}
.faq .faq_a:before{
  content:"";
  top: 7px;
  left:0;
  width:40px;
  height:40px;
  position: absolute;
  background-image: url(../img/faq_icon_a.png);
  background-size:100%;
}
.summary{
  padding: 10px 0;
    border: 1px solid #ccc;
    width:90%;
  margin:0 auto
}
.summary_ttl{
  margin:1em 0;
  text-align:center;
  font-size: 18px;
}
.summary_list{

  margin:0 auto;
  line-height:1.5;

  padding: 10px;
}
.summary_list dt{
  background: #eee;
  font-weight:bold;
  margin-bottom:0.5em;
  font-size: 14px;
  text-align: center;
  padding: 0.25em 0;
}.summary_list dd{
  margin-bottom:1em;
    font-size: 14px;
}
.doctor{
 background-image: url(../img/doctor_bg.jpg);
  background-size:cover;
  padding:0 0 20px
}

.doctor_list{
  display:flex;
  flex-flow:wrap;
  gap:20px;
  width:90%;
  margin:0 auto
}
.doctor_list .doctor_item{
  width:calc((100% - 20px) /2);
}
.doctor_list .doctor_item:first-child{
  width:100%;
}
.access{
  background:#333;
  padding-bottom: 40px;
}
.access_ttl{
  color:#fff;
  text-align:center;
  font-weight:normal;
  padding:1em 0;
}
.access_list{
  width:90%;
  margin:0 auto;
}
.access .clinic{
  background:#fff;
  text-align:center;
  font-weight:bold;
  font-size:20px;
  margin-top:20px;
  letter-spacing: 1px;
  padding: 0.25em 0;
}
.access .address{
  display:none;
  background:#fff;
  margin-bottom:20px;
  /* padding: 0 20px 20px 20px; */
}.access .address table{
  font-size:14px;
  border-collapse: collapse;
  width: 100%;
  border-top: 1px solid #ccc;
}
.access .address table th{background:#ccc;width:6em;border-bottom: 1px solid #fff;padding: 0.5em;}
.access .address table td{
  padding:0.5em;
  border-bottom: 1px solid #ccc;
}
.access .address.active{
　display:block; 
}
.access .address iframe{
  width:100%;
  height:40vh;
}
#web_reserve ul{
  display: block;
}
#web_reserve ul li{
  width:60%;
  margin: 0 auto !important;!i;!;
}
footer{
  text-align:center;
  font-size:14px;
}

@media print, screen and (min-width: 761px) {
  body {
    /* width: 760px; */
    margin: 0 auto;
    position: relative;
    /* min-width: auto; */
  }
  .header {
    width: 950px;
  }
     .header .header_nav a{
       width:48%;
     }
   .header .header_nav img{
     width:100%;
   }
  .intro .campaign{
    margin-bottom:50px;
    padding-bottom: 80px;
  }
.intro .campaign .btn_campaign {
    position: absolute;
    bottom: -110px;
    width: 90%;
    transform: translateX(-50%);
    left: 50%;
}
  .faq .faq_list{
    width: 100%;
  }
  .slide_group{
  display:flex;
  flex-flow:wrap;
  gap:40px
}
.slide_group .slider_wrap{
  width:calc((100% - 40px) / 2 );
}
}