@charset "UTF-8";
/* 個別ページ用 */

/* @group medicalcare */

/* @group flow */

.flow {
  counter-reset: flow;
}

.flow * {
  margin-bottom: 0;
}

.flow .col {
  position: relative;
  padding-left: 82px;
  padding: 0 0 0 82px;
  border-bottom: 1px dashed var(--main);
  counter-increment: flow;
}

.flow .col::after {
  position: absolute;
  content: counter(flow, decimal-leading-zero);
  left: 0;
  top: 30px;
  font-size: 20px;
  width: 46px;
  font-family: var(--en);
  color: var(--main);
  text-align: center;
  padding-top: 11px;
  font-weight: var(--mid);
}

.flow .col::before {
  position: absolute;
  content: "";
  background: #E3F2FF;
  aspect-ratio: 1 / 1;
  width: 46px;
  left: 0;
  top: 28px;
  border-radius: 50%;
}

.flow .col .head {
  position: relative;
  font-size: 22px;
  font-weight: var(--fw-semi);
  color: var(--main);
  margin-bottom: 7px;
}

.flow .col .wrap {
  padding: 20px 0 28px;
}

table.doctor-schedule th,
table.doctor-schedule td {
  padding: 15px 10px;
}

table.doctor-schedule td {
  font-size: 0.823em;
}

table.doctor-schedule strong {
  font-weight: var(--fw-mid);
}

/* @end */

/* @end */

/* @group examination */
/* @end */

/* @group clinic */

table.bus-tbl th,
table.bus-tbl td {
  padding: 13px 10px;
  text-align: center;
  line-height: 1.3;
}

table.bus-tbl td {
  color: var(--main);
}

table.bus-tbl tr:has(.sub-head) td:nth-child(2n+1),
table.bus-tbl tr:not(:has(.sub-head)) td:nth-child(2n) {
  background: inherit;
}

table.bus-tbl tr:nth-child(2n) td {
  background: var(--gray1) !important;
}

table.bus-tbl td + td {
border-color: var(--gray3);
  border-style: solid;
  border-width: 0 1px 1px 1px;
}

/* @group facilities */

.facilities-slider {
  display: flex;
  gap: 16px;
  width: 100%;
  position: relative;
}

.facilities-slider .slide-item {
  margin-bottom: 0;
  width: 964px;
  max-width: 100%;
  min-width: 0;
}

.facilities-slider .slide-item li figure {
  margin-bottom: 20px;
}

.facilities-slider .splide__slide img {
  width: 100%;
}

.facilities-slider .slider-caption .head {
  color: var(--main);
  font-size: 1.25em;    /* 文字基本サイズ → 20px */
  font-weight: var(--fw-bold);
  line-height: 1.5;
  margin-bottom: 7px;
}

.facilities-slider .slider-caption p:last-child {
  margin-bottom: 0;
}

.facilities-slider .slide-thumb {
  flex: 1;
  overflow: hidden;
  margin-bottom: 0;
}

.facilities-slider .slide-thumb .splide__slide {
  aspect-ratio: 220 / 120;
  cursor: pointer;
  width: 100%;
  margin-bottom: 15px;
  overflow: hidden;
  position: relative;
}

.facilities-slider .slide-thumb .splide__slide::before {
  box-shadow: inset 0 0 0 4px var(--main);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
  opacity: 0;
}

.facilities-slider .slide-thumb .splide__slide.is-visible.is-active::before {
  opacity: 1;
}

.facilities-slider .slide-thumb .splide__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 769px) {
  .facilities-slider .slide-thumb {
    height: 482px;
  }
}

.facilities-slider .arrow-box {
	display: flex;
	gap: 24px;
	position: absolute;
	bottom: 0;
	right: 0;
  z-index: 2;
}

.facilities-slider .arrow-box .splide-prev,
.facilities-slider .arrow-box .splide-next {
  font-size: 0;
  color: transparent;
  background: var(--main);
  width: 40px;
  aspect-ratio: 1 / 1;
  border: 0;
  position: relative;
  border-radius: var(--radius);
  cursor: pointer;
}

.facilities-slider .arrow-box .splide-prev::before,
.facilities-slider .arrow-box .splide-next::before {
  position: absolute;
  content: "";
  mask-image: url("../images/icon_arrow.svg");
  mask-size: 12px 12px;
  width: 12px;
  height: 12px;
  background-color: #fff;
  top: calc(50% - 6px);
  right: 13px;
}

.facilities-slider .arrow-box .splide-prev::before {
  transform: rotate(180deg);
}

.facilities-slider .arrow-box .splide-prev:hover::before {
  animation: 0.4s forwards arrowToLeft;
}

.facilities-slider .arrow-box .splide-next:hover::before {
  animation: 0.4s forwards arrowToRight;
}

/* @end */

/* @end of clinic */

/* @group sitemap */

#sitemap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 800px;
}

#sitemap p {
  width: 100%;
}

#sitemap a {
  color: var(--normal);
}

#sitemap a:hover {
  color: var(--main);
  text-decoration-color: var(--main);
}

#sitemap .nav-lv2 {
  padding: 0;
}

#sitemap .nav-lv2 .parent,
#sitemap a .ai-arrow,
#sitemap li:has( > a[href*="/sitemap/"]),
#sitemap li:has( > a[href*="/access/"]) {
  display: none;
}

#sitemap a .ai-out {
  background-color: transparent;
  border-color: transparent;
}

#sitemap a .ai-out::after {
  background-color: var(--main);
  width: 12px;
}

#sitemap .list {
  margin-bottom: 0;
}

#sitemap .list,
#sitemap .list ul {
  row-gap: 15px;
}

#sitemap .list ul {
  margin-top: 15px;
  padding: 0;
}

#sitemap li:has(.nav-lv2) + li {
  margin-top: 10px;
}

/* @end */

/* @group rss-note */

#note-rss {
	display: flex;
	gap: 30px;
	flex-wrap: wrap;
}

#note-rss .col {
  background-color: #F8F8F8;
	font-size: 17px;
  line-height: 1.76;
	padding: 30px;
	width: calc((100% - 60px) / 3);
}

#note-rss img {
	display: flex;
	max-height: 324px;
	width: auto;
	margin: 0 auto;
}

#note-rss .date {
  color: #677F8D;
  font-family: var(--en);
  font-size: var(--fz-sp);
}

#note-rss h3 {
  color: var(--bunin);
  font-size: 20px;
  font-weight: var(--fw-mid);
  line-height: 1.45;
  margin-top: .45em;
  margin-bottom: .6em;
}

#note-rss p {
	margin-bottom: 0;
}

#note-rss .col > h3 + * {
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3; /* 任意の行数を指定 */
}

#note-rss .col > figure {
  aspect-ratio: 309 / 232;
  margin: 1.76em 0 .94em;
  width: 100%;
}

#note-rss .col > figure img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/* @end of rss-note */

/* @group error404 */

#error404 #h1-area h1 {
  font-size: 1.82em;
  min-height: 80px;
  padding: 0;
}

#error404 .heading-h2 {
  font-size: 1.35em;
}

/* @end */


/**************************** 
 SP
**************************** */

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

/* @group medicalcare */

/* @group flow */

.flow .col {
  padding-left: 50px;
}

.flow .col::after {
  top: 30px;
  font-size: 16px;
  width: 32px;
  padding-top: 1px;
}

.flow .col::before {
  width: 32px;
  left: 0;
  top: 23px;
}

.flow .col .head {
  font-size: 18px;
  margin-bottom: 7px;
}

.flow .col .wrap {
  padding: 20px 0 28px;
}

/* @end */

  [class*="pattern1-"].list {
    gap: 5px;
  }

/* @end */

/* @group examination */
/* @end */

/* @group clinic */

/* @group facilities slider */

h2:has( + .facilities-slider) {
  padding-right: 100px;
}

.facilities-slider {
  flex-direction: column;
}

.facilities-slider .slide-item {
  width: 100%;
}
  
.facilities-slider .slide-item li figure {
  margin-bottom: 0;
  height: 44.66vw;
	width: 100%;
	overflow: hidden;
}

.facilities-slider .slide-item li figure img {
	height: 100%;
	max-width: inherit;
	object-fit: cover;
}
  
.facilities-slider .slider-caption {
	margin-top: calc(10vw + 30px);
}

.facilities-slider .slider-caption .head {
  font-size: 1.125em;    /* 文字基本SPサイズ → 18px */
}

.facilities-slider .arrow-box {
  top: -60px;
  bottom: auto;
  gap: 7px;
}

.facilities-slider .arrow-box .splide-prev,
.facilities-slider .arrow-box .splide-next {
  transform: scale(0.75);
}

.facilities-slider .slide-thumb {
  width: calc(100% + 11px);
  position: absolute;
  top: calc(44.66vw + 15px);
  left: -11px;
}

.facilities-slider .slide-thumb .splide__list{
  gap: 11px;
}

.facilities-slider .slide-thumb .splide__slide {
  width: calc((100vw - (var(--main-pd) * 2) - (12px * 3)) / 4) !important;
  aspect-ratio: 150 / 75;
}

/* @end */

/* @end of clinic */

/* @group sitemap */

#sitemap {}

#sitemap .nav-lv2 {
  display: block;
  margin-bottom: 15px;
}

#sitemap li:has(.nav-lv2) + li {
  margin-top: 0;
}

#sitemap .list + .list {
  margin-top: 10px;
}

/* @end */

/* @group rss-note */

#note-rss {
  flex-direction: column;
  gap: 20px;
}

#note-rss .col {
  font-size: var(--fz-sp);
  padding: 30px 20px;
  width: 100%;
}

#note-rss .date {
  font-size: 14px;
}

#note-rss h3 {
  font-size: 17px;
}

#note-rss .col > figure {
  margin: 1.25em 0;
}

/* @end of rss-note */

/* @group error404 */

#error404 #h1-area h1 {
  font-size: 1.6em;
  min-height: 136px;
  padding: 20px 0;;
}

#error404 .heading-h2 {
  font-size: 1.25em;
}

/* @end */

}
