@charset "utf-8";

/* ==================================================== */
/*  フォント
/* ==================================================== */
/* ==================================================== */
/*  フォントサイズ
/* ==================================================== */
@media (min-width: 768px) {
  :root {
    --fs51: clamp(4.38rem, 3.73vw, 5.1rem);
    --fs40: clamp(3.44rem, 2.93vw, 4rem);
    --fs39: clamp(3.35rem, 2.86vw, 3.9rem);
    --fs38: clamp(3.26rem, 2.78vw, 3.8rem);
    --fs37: clamp(3.18rem, 2.71vw, 3.7rem);
    --fs36: clamp(3.09rem, 2.64vw, 3.6rem);
    --fs35: clamp(3.01rem, 2.56vw, 3.5rem);
    --fs34: clamp(2.92rem, 2.49vw, 3.4rem);
    --fs33: clamp(2.83rem, 2.42vw, 3.3rem);
    --fs32: clamp(2.75rem, 2.34vw, 3.2rem);
    --fs31: clamp(2.66rem, 2.27vw, 3.1rem);
    --fs30: clamp(2.58rem, 2.2vw, 3rem);
    --fs29: clamp(2.49rem, 2.12vw, 2.9rem);
    --fs28: clamp(2.41rem, 2.05vw, 2.8rem);
    --fs27: clamp(2.32rem, 1.98vw, 2.7rem);
    --fs26: clamp(2.23rem, 1.9vw, 2.6rem);
    --fs25: clamp(2.15rem, 1.83vw, 2.5rem);
    --fs24: clamp(2.06rem, 1.76vw, 2.4rem);
    --fs23: clamp(1.98rem, 1.68vw, 2.3rem);
    --fs22: clamp(1.89rem, 1.61vw, 2.2rem);
    --fs21: clamp(1.8rem, 1.54vw, 2.1rem);
    --fs20: clamp(1.72rem, 1.46vw, 2rem);
    --fs19: clamp(1.63rem, 1.39vw, 1.9rem);
    --fs18: clamp(1.55rem, 1.32vw, 1.8rem);
    --fs17: clamp(1.46rem, 1.24vw, 1.7rem);
    --fs16: clamp(15px, calc(15px + (16 - 15) * ((100vw - 768px) / (1366 - 768))), 16px);
    --fs15: clamp(14px, calc(14px + (15 - 14) * ((100vw - 768px) / (1366 - 768))), 15px);
    --fs14: clamp(13px, calc(13px + (14 - 13) * ((100vw - 768px) / (1366 - 768))), 14px);
    --fs13: clamp(12px, calc(12px + (13 - 12) * ((100vw - 768px) / (1366 - 768))), 13px);
    --fs12: clamp(11px, calc(11px + (12 - 11) * ((100vw - 768px) / (1366 - 768))), 12px);
  }
}
@media screen and (max-width: 767px) {
  :root {
    --fs40: min(10.67vw, 4rem);
    --fs39: min(10.4vw, 3.9rem);
    --fs38: min(10.13vw, 3.8rem);
    --fs37: min(9.87vw, 3.7rem);
    --fs36: min(9.6vw, 3.6rem);
    --fs35: min(9.33vw, 3.5rem);
    --fs34: min(9.07vw, 3.4rem);
    --fs33: min(8.8vw, 3.3rem);
    --fs32: min(8.53vw, 3.2rem);
    --fs31: min(8.27vw, 3.1rem);
    --fs30: min(8vw, 3rem);
    --fs29: min(7.73vw, 2.9rem);
    --fs28: min(7.47vw, 2.8rem);
    --fs27: min(7.2vw, 2.7rem);
    --fs26: min(6.93vw, 2.6rem);
    --fs25: min(6.67vw, 2.5rem);
    --fs24: min(6.4vw, 2.4rem);
    --fs23: min(6.13vw, 2.3rem);
    --fs22: min(5.87vw, 2.2rem);
    --fs21: min(5.6vw, 2.1rem);
    --fs20: min(5.33vw, 2rem);
    --fs19: min(5.07vw, 1.9rem);
    --fs18: min(4.8vw, 1.8rem);
    --fs17: min(4.5vw, 1.7rem);
    --fs16: min(4.26vw, 1.6rem);
    --fs15: min(4vw, 1.5rem);
    --fs14: min(3.7vw, 1.4rem);
    --fs13: min(3.46vw, 1.3rem);
    --fs12: min(3.2vw, 1.2rem);
    --fs11: min(2.96vw, 1.1rem);
    --fs10: min(2.6vw, 1rem);
  }
}

/* ==================================================== */
/*  基本
/* ==================================================== */
html,
body {
  width: 100%;
  height: 100%;
  font-size: 62.5%;
}
body {
  position: relative;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "HGMaruGothicMPRO", "HG丸ゴシックM-PRO", "Yu Gothic", "Meiryo", sans-serif;
  /* font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif; */
  font-size: 1.4em;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: #343434;

  -webkit-font-smoothing: antialiased;
}
body.active {
  /*ハンバーガーメニューを開いたら背景固定*/
  position: fixed;
  width: 100%;
}
main {
  display: block;
}
main figure {
  margin: 0;
}
a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}
a:hover {
  transition: opacity 0.3s ease;
  opacity: 0.7;
}
@media screen and (max-width: 1024px) {
  a a[href^="tel"] {
    pointer-events: none;
  }
  a:hover {
    transition: opacity 0.3s ease;
    opacity: 0.7;
  }
}
img {
  width: 100%;
  height: auto;
}
img[src$=".svg"] {
  /*IEでimgタグのsrcにsvgを指定した時に崩れる防止*/
  width: 100%;
  height: auto;
}
sup {
  position: relative;
  top: -0.1em;
  font-size: 70%;
  vertical-align: top;
}
sub {
  position: relative;
  bottom: -0.1em;
  font-size: 70%;
  vertical-align: bottom;
}

/* ==================================================== */
/*  flex
/* ==================================================== */
.flex {
  display: -webkit-box;
  display:    -moz-box;
  display: -webkit-flexbox;
  display:    -moz-flexbox;
  display:     -ms-flexbox;
  display: -webkit-flex;
  display:    -moz-flex;
  display:         flex;

  -js-display: flex;
}
.c-pc-only {
  display: inline-block !important;
}
.c-tab-only {
  display: none !important;
}
.c-sp-only {
  display: none !important;
}
.c-tab-over {
  display: inline-block !important;
}
.c-tab-less {
  display: none !important;
}
.c-tab-not {
  display: inline-block !important;
}
.clear {
  clear: both !important;
}
.c-justify {
  text-align: justify;
  text-justify: inter-ideograph;
  text-justify: inter-character;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .c-pc-only {
    display: none !important;
  }
  .c-tab-only {
    display: inline-block !important;
  }
  .c-sp-only {
    display: none !important;
  }
  .c-tab-over {
    display: inline-block !important;
  }
  .c-tab-less {
    display: inline-block !important;
  }
  .c-tab-not {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .c-pc-only {
    display: none !important;
  }
  .c-tab-only {
    display: none !important;
  }
  .c-sp-only {
    display: inline-block !important;
  }
  .c-tab-over {
    display: none !important;
  }
  .c-tab-less {
    display: inline-block !important;
  }
  .c-tab-not {
    display: inline-block !important;
  }
}

/* ==================================================== */
/*  header
/* ==================================================== */
/*header 基本*/
header {
  position: absolute;
  top: 0;
  z-index: 990;
  width: 100%;
  margin: 0 auto;
  pointer-events: none;
}
header .header-area {
  align-items: center;
  justify-content: space-between;
  /* padding: 32px 40px 0; */
}
/* header-logo */
header .header-area .header-logo {
  position: relative;
  z-index: 992;
  height: 78px;
  /* width: 300px; */
  padding: 30px 30px 0 37px;
  pointer-events: auto;
}
header .header-area .header-logo .flex {
  align-items: center;
  justify-content: flex-end;
}
header .header-area .header-logo .flex figure {
  width: 37.21px;
}
header .header-area .header-logo .flex .logo-txt {
  display: flex;
  align-items: center;
}
header .header-area .header-logo .flex .logo-txt span {
  display: inline-block;
  font-size: var(--fs13);
}
header .header-area .header-logo .flex .logo-txt p {
  font-size: var(--fs15);
  text-align: right;
  color: #f46aa5;
}
/* header-nav */
header .header-area .header-nav {
  /* flex: 1; */
  width: 20.278vw;
  min-width: 277px;
  margin-left: clamp(40px, 4.7vw, 92px);
  pointer-events: auto;
}
header .header-area .header-nav .header-nav-list {
  flex-direction: column;
  justify-content: flex-end;

  gap: 20px;
}
header .header-area .header-nav .header-nav-list figure.nav-logo {
  width: 239.89px;
  max-width: 17.561vw;
  margin-bottom: 10px;
}
header .header-area .header-nav .header-nav-list .menu-nav p {
  position: relative;
  margin-left: min(3.221vw, 44px);
  padding-left: 1em;
  font-size: var(--fs18);
  font-weight: bold;
}
header .header-area .header-nav .header-nav-list .menu-nav p::before {
  position: absolute;
  top: 0.8em;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #f4bfd7;
  content: "";
  transform: translateY(-50%);
}
header .header-area .header-nav .header-nav-list .tel-nav.flex {
  margin-top: 20px;

  gap: 10px;
}
header .header-area .header-nav .header-nav-list .tel-nav figure {
  width: 2.682vw;
  min-width: 28.91px;
  max-width: 36.64px;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text {
  flex-shrink: 0;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text a.tel-number {
  font-size: var(--fs33);
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text .day {
  margin: 5px 0;
  font-size: var(--fs14);
  letter-spacing: 0.02em;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text .day span {
  font-weight: 700;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text .day p:not(:last-child) {
  margin-bottom: 8px;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text a.access-link {
  font-size: var(--fs13);
  text-decoration: underline;
}
header .header-area .header-nav .header-nav-list .tel-nav .tel-text a.access-link::after {
  display: inline-block;
  width: 26px;
  height: 18px;
  margin: 0 0 4px 4px;
  background-image: url(../img/common/icon_map.svg) !important;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  content: "";
}
@media (max-width: 1024px) {
  header {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 990;
    /* overflow-y: scroll; */
    flex: auto;
    width: 100%;
    /* height: 100vh; */
    background-color: transparent;
  }
  header .header-area {
    padding: 0;
  }
  header .header-area .header-nav {
    width: auto;
    min-width: auto;
    margin-left: 0;
    padding: 100px 9% 100px;
  }
  header .header-area .header-logo .flex {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;
  }
  header .header-area .header-logo {
    position: relative;
    width: 100%;
    padding: 20px 23px 0;
    background-color: transparent;
  }
  header .header-area .header-logo .flex .logo-txt p {
    font-size: var(--fs10);
    text-align: left;
  }
  header .header-area .header-logo .flex .logo-txt p span {
    font-size: var(--fs9);
  }
  header .header-area .header-logo .flex figure {
    width: 169.5px;
    margin-top: 13px;
    margin-left: -5px;
  }
  header .header-area .header-nav .menu-nav {
    margin-bottom: 20px;
  }
  header .header-area .header-nav .menu-nav:nth-last-child(2) {
    margin-bottom: 0;
  }
  header .header-area .header-nav .header-nav-list .menu-nav p {
    margin-left: 0;
    padding-left: 0;
  }
  header .header-area .header-nav .header-nav-list .menu-nav p::before {
    top: 50%;
    left: 1.3em;
    z-index: 1;
  }
  header .header-area .header-nav .header-nav-list .menu-nav a {
    display: block;
    padding: 1em 1em 1em 2.5em;
    border-radius: 30px;
    box-shadow: 0 3px 10px rgba(183, 151, 151, 0.16);
    background: #fff;
    line-height: 1;
  }
  header .header-area .header-nav .header-nav-list {
    display: none;
  }
  header .header-area .header-nav .header-nav-list .menu-nav-parent .menu-nav-child {
    position: static;
    width: 100%;
    background-color: transparent;
    transform: none;
  }
  header .header-area .header-nav .header-nav-list .menu-nav-parent .menu-nav-child a {
    padding: 1em 1em 0 1em;
    border-bottom: 0;
    text-align: left;
  }
  /* ハンバーガーメニューオープン */
  .active header {
    position: fixed;
    overflow-x: hidden;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    height: 100dvh;
    background: linear-gradient(#fff 0%, #fff4f9 100%);
    pointer-events: auto;
  }
  .active header .header-nav {
    display: block;
  }
  .active header .header-nav::after {
    position: absolute;
    top: 36px;
    right: -240px;
    z-index: -1;
    width: 404px;
    height: 317px;
    border-radius: 50%;
    background: radial-gradient(circle, #ffe5e8 0%, rgba(255, 229, 232, 0) 70%);
    pointer-events: none;
    content: "";
  }
  .active header .header-area .header-logo {
    display: none;
  }
  .active header .header-area .header-nav .header-nav-list {
    display: block;
    width: 70vw;
    max-width: 500px;
    margin: 0 auto;
  }

  .active header .header-area .header-nav .header-nav-list figure.nav-logo {
    display: none !important;
  }
  .active header .header-area .header-nav .header-nav-list .tel-nav.flex {
    justify-content: center;
    margin-top: 50px;
  }
  .active header .header-area .header-nav .header-nav-list .tel-nav.flex {
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
  }
  .active header .header-area .header-nav .header-nav-list .tel-nav .tel-text {
    display: contents;
  }
  .active header .header-area .header-nav .header-nav-list .tel-nav .tel-text .day {
    width: 100%;
    margin-top: 10px;
    text-align: center;
  }
  .active header .header-area .header-nav .header-nav-list .tel-nav .tel-text a.access-link {
    width: 100%;
    text-align: center;
  }
  .active header .header-area .header-nav .header-nav-list .tel-nav .tel-text a.tel-number {
    pointer-events: auto;
  }
}
/* ==================================================== */
/*  header-hamburger ハンバーガーメニュー
/* ==================================================== */
.header-hamburger {
  position: fixed;
  top: 32px;
  right: 32px;
  z-index: 998;
  display: none;
  width: 28px;
  height: 10px;
}
.header-hamburger span {
  position: absolute;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background-color: #f46aa5;
  -webkit-transition: 0.5s;
          transition: 0.5s;
}
.header-hamburger span:first-of-type {
  top: 0;
}
.header-hamburger span:nth-of-type(2) {
  top: 50%;
}
.header-hamburger span:last-of-type {
  top: 100%;
}
.header-hamburger.active span:first-of-type {
  top: 50%;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.header-hamburger.active span:last-of-type {
  top: 50%;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
@media (max-width: 1024px) {
  .header-hamburger {
    display: block;
  }
  .header-hamburger:after {
    position: absolute;
    top: -15px;
    right: -15px;
    z-index: -1;
    display: block;
    width: 60px;
    height: 60px;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(183, 151, 151, 0.16);
    background: #fff;
    content: "";
  }
  .header-hamburger:before {
    position: absolute;
    bottom: -25px;
    left: -2px;
    font-size: 100%;
    font-size: 10px;
    color: #626262;
    content: "MENU";
    -webkit-transition: 0.5s;
            transition: 0.5s;
  }
  .active .header-hamburger:before {
    content: none;
  }
  .active .header-hamburger:after {
    box-shadow: none;
    background: transparent;
  }
}

/* ==================================================== */
/*  header スクロール
/* ==================================================== */
header.show .header-area {
  background-color: #fff;
}
/* ==================================================== */
/*  footer
/* ==================================================== */
footer {
  position: relative;
  z-index: 989;
  margin-top: 114px;
  padding: 58px 0 70px;
  background-color: #f4bfd7;
}

footer .footer-inner {
  max-width: 807px;
  margin: 0 auto;
  padding: 0 40px;
}
footer .dx_box {
  margin-bottom: 6.955vw;
  padding: 20px 55px 25px;
  border-radius: 20px;
  background-color: #fff;
}
footer .dx_box h4 {
  margin-bottom: 10px;
  font-size: var(--fs16);
  font-weight: 700;
  color: #ff89c0;
}
footer .dx_box p {
  font-size: var(--fs15);
}
footer .copyright {
  font-size: 10px;
  text-align: center;
  color: #fff;
}
footer .pagetop {
  position: fixed;
  right: 15px;
  bottom: 30px;
  display: none;
}
footer .pagetop a {
  position: relative;
  z-index: 3;
  display: inline-block;
  width: 42px;
  height: 42px;
  padding: 17px 14px 0;
  border-radius: 50%;
  background-color: #ff89c0;
}
footer .pagetop a:after {
  display: block;
  width: 12px;
  height: 12px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  content: "";
  -webkit-transform: rotate(315deg);
          transform: rotate(315deg);
}

@media (max-width: 767px) {
  footer .footer-inner {
    padding: 0 8%;
  }
  footer .dx_box {
    padding: 35px 30px 25px;
  }
  footer .dx_box h4,
  footer .dx_box p {
    font-size: var(--fs14);
  }
}

/* ====================================================
inner
==================================================== */
.inner {
  max-width: 1180px; /* 1100 */
  margin: 0 auto;
  padding: 0 40px;
}
.max-inner {
  max-width: 1385px; /* 1305 */
  margin: 0 auto;
  padding: 0 40px;
}
.med-inner {
  max-width: 1205px; /* 1125 */
  margin: 0 auto;
  padding: 0 40px;
}
@media (max-width: 767px) {
  .inner,
  .max-inner,
  .med-inner {
    padding: 0 8%;
  }
}

/* ====================================================
スクロールアニメーション
==================================================== */
.scr {
  transition: opacity 0.8s,
  transform 0.8s,
  -webkit-transform 0.8s;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  opacity: 0;
}
.scr.scr-on {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}
/* ====================================================
アイコン
==================================================== */
a[target="_blank"]::after {
  display: inline-block;
  width: 21.16px;
  height: 19px;
  margin: 0 0 2px 8px;
  background-image: url(../img/common/ico_target.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  content: "";
}
a[href$=".xlsx"]:after,
a[href$=".xls"]:after {
  display: inline-block;
  width: 21.16px;
  height: 24px !important;
  margin: 0 0 2px 8px;
  background-image: url(../img/common/icon_excel.svg) !important;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  content: "";
}
a[href*=".pdf"]:after {
  display: inline-block;
  width: 21.16px;
  height: 26px !important;
  margin: 0 0 2px 8px;
  background-image: url(../img/common/icon_pdf.svg) !important;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  content: "";
}
/* ==================================================== */
/*  コンテンツページ共通
/* ==================================================== */
.main.sub-contents {
  padding-top: 140px;
}
.main.sub-contents .cmn-contents_area {
  width: 65.154vw;
  margin: 0 0 0 33.163vw;
  padding: 0 40px;
}

.main.sub-contents .cmn-tlt_area .cmn-tlt {
  line-height: 1;
}
.main.sub-contents .cmn-tlt_area .cmn-tlt h2 {
  margin-bottom: 0.3em;
  font-size: var(--fs51);
  color: #f46aa5;
}
.main.sub-contents .cmn-tlt_area .cmn-tlt h3 {
  margin-bottom: 20px;
  margin-left: 0.5em;
  font-size: var(--fs16);
  color: #626262;
}
.main.sub-contents .cmn-tlt_area .cmn-tlt-img {
  overflow: hidden;
  width: 100%;
  height: 27.672vw;
  max-height: 378px;
  border-radius: 30vw;
}
.main.sub-contents .cmn-tlt_area .cmn-tlt-img img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}

@media screen and (max-width: 1024px) {
  .main.sub-contents {
    position: relative;
    padding-top: 240px;
    background-image: radial-gradient(circle, #ffe5e8 0%, rgba(255, 229, 232, 0) 70%);
    background-repeat: no-repeat;
    background-position: right -240px top 36px;
    background-size: 404px 317px;
  }
  .main.sub-contents .cmn-contents_area {
    width: 100%;
    margin: 0;
  }
  .main.sub-contents .cmn-tlt_area .cmn-tlt-img {
    height: 32vw;
  }
}
@media (max-width: 767px) {
  .main.sub-contents .cmn-contents_area {
    padding: 0 8%;
  }
  .main.sub-contents .cmn-tlt_area .cmn-tlt h2 {
    font-size: var(--fs28);
  }
  .main.sub-contents .cmn-tlt_area .cmn-tlt h3 {
    font-size: var(--fs12);
  }
  .main.sub-contents .cmn-tlt_area .cmn-tlt-img {
    width: 110%;
    height: 42.312vw;
    margin-right: -5%;
    margin-left: -5%;
  }
}

/* ==================================================== */
/*  コンテンツページ アクセスエリア contents-access
/* ==================================================== */
.contents-access {
  position: relative;
  padding-top: 90px;
  background-color: #fff;
}
.contents-access::before {
  position: absolute;
  top: -210px;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 210px;
  background: linear-gradient(to bottom, #fff 0%, #fff4f9 100%);
  content: "";
}
.contents-access .inner {
  max-width: 1165px;
}
.contents-access .flex {
  align-items: flex-end;
  justify-content: space-between;

  gap: 3.68%;
}
.contents-access .access-box {
  flex-shrink: 0;
  width: 46%;
}
.contents-access .access-box .access-text {
  margin-bottom: 30px;
}
.contents-access .access-box .access-text h2 {
  display: flex;
  align-items: center;
  margin-bottom: 15px;
  font-size: var(--fs30);
  line-height: 1;
}
.contents-access .access-box .access-text h2 span {
  margin-left: 10px;
  font-size: var(--fs15);
  color: #626262;
}
.contents-access .access-box .access-text p {
  margin-bottom: 8px;
  font-size: var(--fs18);
}
.contents-access .access-box .access-text .tel {
  margin-bottom: 10px;
  font-size: var(--fs38);
  font-weight: 700;
  color: #f46aa5;
}
.contents-access .access-box .access-text .tel span {
  padding-right: 5px;
  font-size: var(--fs23);
}
.contents-access .access-box .access-text p.note {
  position: relative;
  padding-left: 1em;
  font-size: var(--fs16);
  letter-spacing: 0;
}
.contents-access .access-box .access-text p.note::before {
  position: absolute;
  top: 0.8em;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #f4bfd7;
  content: "";
  transform: translateY(-50%);
}

/* --- テーブル --- */
.contents-access .clinic.flex {
  align-items: flex-start;
  justify-content: space-between;

  gap: 5%;
}
.contents-access .clinic .clinic-hours_box .schedule-table {
  display: flex;
  margin-bottom: 10px;
  padding: 1.5vw 2.8vw;
  border-radius: 20px;
  background-color: #f5f3f2;
}
.contents-access .clinic .clinic-hours_box .schedule-table thead {
  display: flex;
}
.contents-access .clinic .clinic-hours_box .schedule-table tbody {
  display: flex;
  flex: 1;
}
.contents-access .clinic .clinic-hours_box .schedule-table tr {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.contents-access .clinic .clinic-hours_box .schedule-table thead tr {
  flex: 0 0 clamp(100px, 9.88vw, 135px);
}
.contents-access .clinic .clinic-hours_box .schedule-table th,
.contents-access .clinic .clinic-hours_box .schedule-table td {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border-bottom: 1px solid #dcdcdc;
}
.contents-access .clinic .clinic-hours_box .schedule-table th:nth-child(1) {
  height: 45px;
  font-size: var(--fs17);
}
.contents-access .clinic .clinic-hours_box .schedule-table th:nth-child(2),
.contents-access .clinic .clinic-hours_box .schedule-table td:nth-child(2),
.contents-access .clinic .clinic-hours_box .schedule-table th:nth-child(3),
.contents-access .clinic .clinic-hours_box .schedule-table td:nth-child(3) {
  height: 70px;
}
.contents-access .clinic .clinic-hours_box .schedule-table th:nth-child(3),
.contents-access .clinic .clinic-hours_box .schedule-table td:nth-child(3) {
  border-bottom: none;
}
.contents-access .clinic .clinic-hours_box .schedule-table thead th:nth-child(1) {
  justify-content: flex-start;
  font-size: var(--fs16);
}
.contents-access .clinic .clinic-hours_box .schedule-table thead th:nth-child(2),
.contents-access .clinic .clinic-hours_box .schedule-table thead th:nth-child(3) {
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}
.contents-access .tag {
  padding: 5px 10px;
  border-radius: 12px;
  background-color: #ff89c0;
  font-size: var(--fs14);
  font-weight: bold;
  line-height: 1;
  color: #fff;
}
.contents-access .time {
  font-size: 13px;
  font-size: var(--fs18);
}
.contents-access .circle,
.contents-access .slash,
.contents-access .triangle {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
}
/* ○（丸） */
.contents-access .circle::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  border: 2px solid #343434;
  border-radius: 50%;
  content: "";
  transform: translate(-50%, -50%);
}
/* ／（斜線） */
.contents-access .slash::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.5px;
  height: 24px;
  border-radius: 2px;
  background-color: #343434;
  content: "";
  transform: translate(-50%, -50%) rotate(45deg);
}
/* △（三角） */
.contents-access .triangle::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 22px;
  background-image: url(../img/common/mark_triangle.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
  transform: translate(-50%, -50%);
}

.contents-access .schedule-note {
  padding-left: 2.8vw;
  font-size: var(--fs15);
}
.contents-access .schedule-note .slash,
.contents-access .schedule-note .triangle {
  top: 0.5em;

  scale: 0.8;
}
.contents-access .map_box {
  width: 47%;
}
.contents-access .map_box iframe {
  width: 100%;
  height: 300px;
  border-radius: 20px;
}
.contents-access .map_box .text {
  margin-bottom: 10px;
  padding-left: 0.5em;
  font-size: var(--fs16);
  color: #f46aa5;
}

.contents-access .map_box .map-btn {
  margin-top: 17px;
  text-align: right;
}
.contents-access .map_box .map-btn a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 26px 10px;
  border: 1px solid #f46aa5;
  border-radius: 50px;
  background-color: #fff;
  font-size: var(--fs14);
  font-weight: 700;
  color: #f46aa5;

  gap: 12px;
}
.contents-access .map_box .map-btn a::after {
  display: inline-block;
  width: 17px;
  height: 25.5px;
  margin: 0;
  background-image: url(../img/common/icon_map.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media screen and (max-width: 767px) {
  .contents-access {
    padding-top: 55px;
  }
  .contents-access .flex {
    flex-direction: column;

    gap: 34px;
  }
  .contents-access .access-box {
    width: 100%;
  }
  .contents-access .access-box .access-text {
    width: 100%;
  }
  .contents-access .access-box .access-text h2 {
    margin-bottom: 20px;
    font-size: var(--fs28);
  }
  .contents-access .access-box .access-text h2 span {
    margin-left: 10px;
    font-size: var(--fs14);
  }
  .contents-access .access-box .access-text p {
    margin-bottom: 0;
    font-size: var(--fs16);
  }
  .contents-access .access-box .access-text .tel {
    margin-bottom: 8px;
    font-size: var(--fs33);
  }
  .contents-access .access-box .access-text .tel span {
    font-size: var(--fs20);
  }
  .contents-access .access-box .access-text p.note {
    font-size: var(--fs14);
  }

  .contents-access .clinic.flex {
    align-items: center;
    flex-direction: column;

    gap: 30px;
  }
  .contents-access .clinic .clinic-hours_box {
    width: 100%;
    max-width: 567px;
    height: auto;
    margin: 0 auto;
    padding: 10px 14px 20px 15px;
    border-radius: 10px;
    background-color: #f5f3f2;
  }
  .contents-access .clinic .clinic-hours_box .schedule-table {
    margin-bottom: 10px;
    padding: 0;
    border-radius: 0;
    background-color: inherit;
  }
  .contents-access .clinic .clinic-hours_box .schedule-table thead th:nth-child(1) {
    font-size: var(--fs14);
  }
  .contents-access .clinic .clinic-hours_box .schedule-table th:nth-child(1) {
    font-size: var(--fs17);
  }
  .contents-access .time {
    font-size: var(--fs14);
  }
  .contents-access .circle,
  .contents-access .slash,
  .contents-access .triangle {
    scale: 0.8;
  }
  .contents-access .schedule-note {
    padding-left: 0;
    font-size: var(--fs12);
    letter-spacing: 0.03em;
  }
  .contents-access .schedule-note .slash,
  .contents-access .schedule-note .triangle {
    top: 0.2em;
    width: 15px;
    height: 15px;

    scale: 0.6;
  }

  .contents-access .map_box {
    display: flex;
    align-items: center;
    flex-direction: column;
    width: 100%;
    margin: 0 auto;
    text-align: center;
  }
  .contents-access .map_box iframe {
    order: 1;
    max-width: 567px;
    height: 225px;
    border-radius: 10px;
  }
  .contents-access .map_box .text {
    order: 2;
    margin: 15px 0 0;
    padding-left: 0;
    font-size: var(--fs16);
    text-align: center;
    color: #343434;
  }
  .contents-access .map_box .map-btn {
    order: 3;
  }
  .contents-access .map_box .map-btn a {
    padding: 9px 20px 10px;
    font-size: var(--fs14);
  }
  .contents-access .map_box .map-btn a::after {
    width: 13.23px;
    height: 19.71px;
  }
}
/* ==================================================== */
/* コンテンツページ(PC時)のメニュー固定とフッター前ストップ
/* ==================================================== */
@media screen and (min-width: 1025px) {
  /* 通常のスクロール追従（fixed） */
  body.contents header .header-area .header-nav {
    position: fixed;
    top: 78px; /* ★上部の余白。JSの fixedTop と同じ数値にしてください */
    left: 0;
    z-index: 995;
    /* transitionは不要になるので削除しました */
  }

  /* フッター前でピタッと止まる時のスタイル */
  body.contents header .header-area .header-nav.is-stopped {
    position: absolute; /* fixedからabsoluteに切り替えてスクロールに流す */
    /* top座標はJavaScriptで自動的に計算されて付与されます */
  }
}
