:root {
  --text-primary: #000;
}

.bl_clinicPost {
  padding-inline: 0;
}

.bl_clinicPost_img {
  background: #00517c;
  aspect-ratio: 375 / 280;
  overflow: hidden;
  position: relative;
}

.bl_clinicPost_img::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  background: linear-gradient(360deg,
      #00517c 0%,
      rgba(0, 81, 124, 0.5) 14.88%,
      rgba(0, 81, 124, 0) 29.75%);
  width: 100%;
  height: 60%;
}

.bl_clinicShortDesc {
  color: #fff;
  background: #00517c;
  padding: 20px;
  text-align: center;
  font-weight: 700;
}

.bl_clinicShortDesc_inner {
  display: contents;
}

.bl_clinicShortDesc h1 {
  position: relative;
  font-size: clamp(1.25rem, 0.7143rem + 2.6786vw, 2rem);
  line-height: 1.8em;
}

.bl_clinicShortDesc p {
  font-size: clamp(1.25rem, 0.7143rem + 2.6786vw, 2rem);
}

.el_orange {
  color: #ff5000;
}

.el_txtBigger {
  font-size: clamp(1.75rem, 1.2143rem + 2.6786vw, 2.5rem);
}

.el_txtBiggest {
  font-size: clamp(2.5rem, 1.4286rem + 5.3571vw, 4rem);
}

.bl_clinicShortDesc ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 20px;
}

.bl_clinicShortDesc ul li {
  background: #fff;
  border-radius: 2px;
  display: flex;
  flex-direction: column;
  color: #00517c;
  align-items: center;
  justify-content: center;
  padding-block: 8px;
  font-size: clamp(0.75rem, 0.5rem + 1.25vw, 1.5rem);
  line-height: 1.4;
}

.bl_clinicShortDesc ul li span {
  white-space: nowrap;
  text-align: center;
}

.bl_clinicShortDesc ul li .el_orange {
  color: #ff5000;
  font-size: clamp(0.875rem, 0.625rem + 1.25vw, 2rem);
}

.bl_clinicShortDesc small {
  display: block;
  width: 100%;
  font-weight: 400;
  text-align: right;
  font-size: clamp(0.875rem, 0.6964rem + 0.8929vw, 1.125rem);
  color: #fff;
  margin-top: 18px;
}

.ly_clinicSwiper {
  overflow: clip;
}

/* ============================
  多くのお客様にご支持いただいております
 ============================ */

.ly_googleReviews {
  padding: 80px 20px 40px;
}

.ly_googleReviews h2 {
  border-radius: 2px;
  background: #d9a53d;
  color: #fff;
  text-align: center;
  font-size: clamp(1.25rem, 0.8929rem + 1.7857vw, 1.75rem);
  padding-block: 2px;
}

.ly_googleReviews svg {
  max-height: 100px;
  width: auto;
  height: 100%;
}

.bl_ratingAll_top {
  font-size: clamp(1.25rem, 0.7143rem + 2.6786vw, 2rem);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  text-align: center;
}

.bl_ratingAll_top .hp_txtLarge {
  font-size: clamp(2rem, 1.6429rem + 1.7857vw, 2.5rem);
}

.el_starsClip {
  display: inline-block;
  width: max-content;
  clip-path: polygon(0% 0%,
      var(--clip) 0%,
      calc(var(--clip) - 5%) 100%,
      0% 100%);
}

.bl_ratingAll_top .el_stars {
  max-width: 132px;
  width: 100%;
}

.bl_ratingAll_bottom {
  margin-inline: auto;
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-weight: 700;
  text-align: center;
  width: fit-content;
}

.bl_googleReviewsWidget {
  margin-top: 80px;
  font-family: 'YuGothic', sans-serif;
}

.bl_googleReviewsWidget .wp-google-reviews .wp-google-review {
  padding: 20px !important;
  background: #f2f9fd !important;
}

.bl_googleReviewsWidget .wp-google-reviews .wp-google-review .wp-google-time {
  display: none !important;
}

.bl_googleReviewsWidget .wp-google-reviews .wp-google-review .wp-google-stars {
  display: block !important;
}

.bl_topPointSwiper {
  margin-block: 0 30px;
}

/* ============================
  店舗情報
 ============================ */

.ly_clinicInfo {
  margin-top: 100px;
  padding-inline: 20px;
  padding-bottom: 40px;
  background: #f2f9fd;
  position: relative;
}

.ly_clinicInfo::before {
  aspect-ratio: 378 / 50;
  position: absolute;
  content: '';
  background: url(../../img/clinic/info-top.svg) no-repeat center;
  background-size: cover;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  transform: translateY(calc(-100% + 1px));
}

.bl_clinicInfoTable {
  margin-top: 46px;
}

.bl_clinicInfoTable img {
  aspect-ratio: 1 / 1;
  width: 100%;
}

.bl_clinicInfoTable ul {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 14px;
  font-feature-settings: 'palt';
  font-weight: 500;
}

.bl_clinicInfoTable ul li {
  display: grid;
  grid-template-columns: 0.3fr 1fr;
}

.bl_clinicInfoTable ul li span {
  display: inline-block;
  padding-bottom: 16px;
}

.bl_clinicInfoTable ul li span:first-child {
  border-bottom: 1px solid #00527e;
}

.bl_clinicInfoTable ul li span:last-child {
  padding-left: 12px;
  border-bottom: 1px solid #a8a8a8;
}

.bl_clinicInfoText {
  margin-top: 40px;
}

.bl_clinicInfoText h3 {
  color: #fff;
  width: calc(100% + 16px);
  margin-left: -8px;
  background: #00527e;
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 18px;
  font-weight: 700;
}

.bl_clinicInfoText .el_txtBigger {
  font-size: 20px;
}

.bl_clinicInfoText_content {
  padding: 48px 20px;
  border: 1px solid #e5e5e5;
  border-top: none;
  background: #fff;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

.bl_clinicInfoText_content h2,
.bl_clinicInfoText_content h3 {
  position: relative;
  padding-inline: 8px;
  font-weight: 400;
  font-size: 18px;
  margin-bottom: 16px;
}

.bl_clinicInfoText_content h2::before {
  position: absolute;
  content: '';
  top: 50%;
  left: 0;
  width: 8px;
  height: 100%;
  background: #f38353;
  border-radius: 2px;
  transform: translate(-100%, -50%);
}

.bl_clinicInfoText_contentPoints_ttl {
  margin-top: 40px;
  color: #00527e;
  display: flex;
  justify-content: center;
  gap: 16px;
  font-weight: 700;
  font-size: 20px;
  align-items: center;
}

.bl_clinicInfoText_contentPoints_ttl svg {
  width: 20px;
  height: 20px;
}

.bl_clinicInfoText_contentPoints ul {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  row-gap: 60px;
  column-gap: 16px;
}

.bl_clinicInfoText_contentPoints ul li {
  aspect-ratio: 1 / 1;
  background: url(../../img/clinic/points-bg.svg) no-repeat center;
  background-size: contain;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: calc(100% / 2 - 8px);
  max-width: 160px;
}

.bl_clinicInfoText_contentPoints ul li p {
  max-width: 96px;
  margin-inline: auto;
  color: #00527e;
  font-size: 16px;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.bl_shopPoints__number {
  color: #f38353;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.2;
}

.bl_clinicInfoTable_imgWrap {
  overflow: hidden;
  height: 100%;
}

.bl_clinicInfoTable img {
  object-fit: cover;
}

/* ============================
  アクセス
 ============================ */

.ly_clinicAccess {
  padding: 80px 20px;
}

.bl_clinicAccess_map {
  aspect-ratio: 1 / 1;
  margin-block: 40px;
}

.bl_clinicAccess_map iframe {
  width: 100%;
  height: 100%;
}

.bl_clinicAccess_info {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.bl_clinicAccess_info h4,
.un_WYSIWYG :is(h1, h2, h3, h4, h5, h6) {
  display: flex;
  gap: 6px;
  font-size: 18px;
  margin-bottom: 16px;
  margin-top: 40px;
}

.bl_clinicAccess_info h4::before,
.un_WYSIWYG :is(h1, h2, h3, h4, h5, h6)::before {
  content: '';
  top: 50%;
  left: 0;
  width: 4px;
  height: 100%;
  border-radius: 4px;
  background: #00527e;
  height: 24px;
}

.bl_clinicAccess_far {
  background: #f2f9fd;
  padding: 40px 20px 68px;
  margin-top: 40px;
}

.bl_clinicAccess_far h4 {
  color: #00527e;
  font-size: 20px;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

.bl_clinicAccess_far h4 span {
  display: inline-block;
  width: 30px;
  height: 2px;
  background: #f38353;
}

.ly_clinicMenu {
  padding: 80px 20px;
}

.bl_clinicMenuList {
  margin-top: 46px;
}

.bl_clinicMenuItem {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-block: 28px;
  border-top: 1px solid #e5e5e5;
}

.bl_clinicMenuItem:last-child {
  border-bottom: 1px solid #e5e5e5;
}

.bl_clinicMenuItem_desc {
  display: contents;
}

.bl_clinicMenuItem_price {
  text-align: right;
  font-feature-settings: 'palt';
  font-weight: 700;
  font-size: 20px;
}

.bl_clinicMenuItem_price .hp_txtOrange {
  font-size: 24px;
}

.ly_clinicGreeting {
  padding-inline: 20px;
  padding-bottom: 80px;
}

/* ============================
  院長ご挨拶
 ============================ */

.bl_clinicGreeting_img {
  aspect-ratio: 335 / 245;
  overflow: hidden;
  margin-top: 46px;
}

.bl_clinicGreeting_ttl {
  margin-top: 20px;
  color: #00527e;
  font-size: 14px;
  letter-spacing: 0.02em;
  font-weight: 700;
}

.bl_clinicGreeting_name {
  margin-block: 9px 24px;
  font-size: 20px;
  font-weight: 700;
  font-feature-settings: 'palt';
}

/* ============================
  スタッフ紹介
 ============================ */

.ly_clinicStaff {
  padding-inline: 20px;
  padding-bottom: 80px;
}

.bl_staffSwiper {
  margin-top: 40px;
}

.bl_staffItem {
  max-width: 320px;
  position: relative;
  background: #f2f9fd;
}

.bl_staffItem::after {
  content: '';
  position: absolute;
  bottom: -1px;
  right: -1px;
  background: url(../../img/clinic/staff-arrow-open.svg) no-repeat center;
  background-size: contain;
  width: 70px;
  height: 70px;
}

.bl_staffItem_img,
.bl_staffModal_img {
  aspect-ratio: 320 / 280;
  overflow: hidden;
}

.bl_staffItem_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.bl_staffSwiper .swiper-buttons {
  margin-top: 16px;
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 40px;
}

.bl_staffSwiper .swiper-button-next,
.bl_staffSwiper .swiper-button-prev {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  position: static;
  margin: 0;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  content: none;
}

.bl_staffSwiper .swiper-button-next {
  transform: rotate(180deg);
}

.bl_staffSwiper .swiper-pagination {
  position: static;
  --swiper-pagination-color: #e5e5e5;
  --swiper-pagination-bullet-size: 16px;
  width: fit-content;
}

.bl_staffSwiper .swiper-pagination-bullet-active {
  background: #fff;
  border: 4px solid #e5e5e5;
}

.bl_staffItem_desc,
.bl_staffModal_desc {
  background: #f2f9fd;
  padding: 16px 20px;
}

.bl_staffItem_desc .bl_staffItem_phrase {
  font-size: 18px;
  color: #f38353;
  font-weight: 700;
}

.bl_staffItem_desc h4 {
  margin-top: 20px;
  font-size: 20px;
  font-weight: 700;
}

.bl_staffModal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.5);
  inset: 0;
  padding: 80px 20px;
}

.bl_staffModal.active {
  display: flex;
}

body.modal-open {
  overflow: hidden;
  touch-action: none;
}

.bl_staffModal_inner {
  background: #f2f9fd;
  padding: 24px;
  z-index: 1;
  overflow: auto;
  height: 100%;
  padding-bottom: 80px;
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE and Edge */
}

.bl_staffModal_inner::-webkit-scrollbar {
  display: none;
  /* Chrome, Safari, Opera */
}

.bl_staffModal_outer {
  height: 100%;
  width: 100%;
  position: relative;
  max-height: 75vh;
}

.bl_staffModal_close {
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 70px;
  height: 70px;
  background: url(../../img/clinic/staff-arrow-close.svg) no-repeat center;
  background-size: cover;
  border: none;
  cursor: pointer;
}

.bl_staffModal .bl_staffModal_img {
  overflow: hidden;
  margin-bottom: 20px;
}

.bl_staffModal .bl_staffModal_name {
  font-size: 24px;
  font-weight: 700;
}

.bl_staffModal .bl_staffModal_position {
  font-size: 14px;
}

.bl_staffModal .bl_staffModal_phrase {
  font-size: 20px;
  color: #f38353;
  font-weight: 700;
  margin-block: 16px;
  letter-spacing: 0.04em;
}

/* ============================
  店舗風景
 ============================ */

.ly_clinicView {
  padding-inline: 20px;
  padding-bottom: 80px;
}

.bl_clinicViewSwiper {
  margin-top: 20px;
  aspect-ratio: 335 / 188;
  overflow: hidden;
}

.bl_clinicViewThumbs {
  margin-top: 20px;
}

.bl_clinicViewThumbs .swiper-slide {
  aspect-ratio: 60 / 26;
}

.bl_clinicViewThumbs .swiper-slide img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/* ============================
  当院で対応している症状
 ============================ */

.ly_clinicSymptoms {
  padding-block: 80px;
}

.ly_clinicSymptoms .bl_clinicSymptoms_ttl {
  padding-inline: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.bl_clinicSymptoms_ttl p {
  line-height: 1.8;
}

.ly_symptomsPickup,
.ly_clinicSymptoms {
  background: #e9f0f4;
}

.bl_symptomCategories {
  margin-inline: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.bl_symptomCategory {
  padding: 40px 20px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  background: #fff;
  transition: all 0.3s ease;
}

.bl_symptomCategory:has(.bl_symptomCategory_list[hidden]) {
  padding: 8px 20px;
}

.bl_symptomCategory_head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.bl_symptomCategory_ttl {
  font-size: clamp(1.25rem, 0.7143rem + 2.6786vw, 2rem);
}

.bl_symptomCategory_toggle {
  background: none;
  border: none;
  font-size: 14px;
  cursor: pointer;
  color: #00527e;
  line-height: 1;
}

.bl_symptomCategory_toggle svg {
  width: 20px;
  height: 20px;
}

.bl_symptomCategory_item {
  margin-bottom: 12px;
}

.bl_symptomCategory_title {
  background: #00527e;
  border: none;
  width: 100%;
  font-weight: bold;
  font-size: 20px;
  text-align: center;
  cursor: default;
  padding: 0;
  color: #fff;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.bl_symptomCategory_excerptWrap {
  margin-block: 20px 40px;
  line-height: 1.8;
}

.bl_symptomCategory_readmore {
  display: inline-block;
  margin-top: 20px;
  margin-left: auto;
  width: fit-content;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: flex-end;
  font-size: 16px;
  color: #00527e;
  font-weight: 700;
}

.bl_symptomCategory_readmore svg {
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
}

.bl_symptomCategory_toggle svg {
  transition: transform 0.3s ease;
}

.bl_symptomCategory_toggle.is-open svg {
  transform: rotate(45deg);
}

.bl_clinicVoiceList .el_toggleBtn {
  display: none;
}

.bl_clinicVoiceList .el_toggleBtn::before {
  content: none;
}

.ly_zessan {
  padding-block: 80px;
}

.bl_zessan_ttl,
.bl_clinicPoints_ttl {
  font-size: 20px;
  letter-spacing: 0.04em;
  color: #00517c;
  display: flex;
  justify-content: center;
}

.bl_clinicPoints_ttl h3 {
  font-size: clamp(1.125rem, 0.1429rem + 4.9107vw, 2.5rem);
}

.bl_zessan_ttl h3,
.bl_clinicPoints_ttl h3 {
  font-size: clamp(1.25rem, 0.3571rem + 4.4643vw, 2rem);
}

.bl_zessan_ttl .hp_txtAccent,
.bl_clinicPoints_ttl .hp_txtAccent {
  font-size: clamp(1.25rem, 0.0573rem + 5.0891vw, 2.5rem);
}

.bl_zessan_list {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  padding-inline: 20px;
  padding-bottom: 80px;
  gap: 40px;
  position: relative;
  overflow: hidden;
  max-height: 3000px;
  transition: max-height 0.5s ease;
}

.bl_zessan_item {
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: #f2f9fd;
  padding: 40px 26px;
}

.bl_zessan_item_img {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 18px;
  font-weight: 700;
}

.bl_zessan_item_img img {
  aspect-ratio: 14 / 13;
}

.bl_zessan_item_desc {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-size: clamp(1rem, 0.9107rem + 0.4464vw, 1rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.bl_zessan_itemLast {
  padding: 40px 20px;
  position: relative;
}

.bl_zessan_itemLast::after {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  background: #f2f9fd;
  z-index: -1;
  transform: translateX(-50%);
}

.bl_zessan_itemTtl {
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}

.bl_zessan_itemTtl .hp_txtBlue {
  color: #00517c;
  font-size: clamp(1.5rem, 0.6964rem + 4.0179vw, 2.625rem);
  font-weight: 700;
}

.bl_zessan_itemLast img {
  margin-top: 40px;
}

.bl_zessan_itemLast .bl_btn {
  justify-content: center;
}

.bl_zessan_item_descTtl {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: #ffff00;
  text-decoration-thickness: 6px;
  text-underline-offset: -4px;
  font-size: clamp(1.25rem, 1.0714rem + 0.8929vw, 1.5rem);
  font-weight: 700;
  letter-spacing: 0;
  font-feature-settings: 'palt';
}

.bl_clinicPoints {
  padding: 80px 20px 0;
}

.bl_clinicPoints_ttl h3 .el_txtBigger {
  font-size: clamp(1.5rem, 0.3073rem + 5.0891vw, 2.75rem);
}

.bl_clinicPoints_list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-block: 40px;
}

.bl_clinicPoints_list li {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-weight: 500;
}

.bl_clinicPoints_top {
  display: flex;
  gap: 4px;
  align-items: flex-end;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
  position: relative;
  width: fit-content;
}

.bl_clinicPoints_top::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 16px;
  background: #fdecd1;
  z-index: -1;
}

.bl_clinicPoints_top span {
  font-size: 40px;
  line-height: 1.2;
}

/* ============================
    中断・終了
============================ */

.ly_clinicBreak {
  padding: 80px 20px;
}

.bl_clinicBreakTop {
  background: #f2f9fd;
  padding: 40px 20px;
  border: 1px solid #00517c;
}

.bl_clinicBreakTop h3,
.bl_clinicBreakContent h3 {
  color: #00517c;
  font-size: clamp(1.25rem, 0.5344rem + 3.0534vw, 2rem);
  text-align: center;
}

.bl_clinicBreakTop h3 .hp_txtAccent {
  font-size: clamp(1.5rem, 0.3073rem + 5.0891vw, 2.75rem);
}

.bl_clinicBreakList {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 40px;
}

.bl_clinicBreakList li {
  border: 2px solid #00517c;
  background: #fff;
  padding: 20px 12.5px;
  font-size: 16px;
  text-align: center;
}

.bl_clinicBreakContent {
  padding-top: 80px;
}

.bl_clinicBreakImg {
  margin-block: 40px;
}

/* ============================
  豆知識
 ============================ */

.ly_mame {
  background: #f7f6f5;
  border-top-left-radius: 40px;
  border-top-right-radius: 40px;
  padding: 40px 20px;
}

.bl_mameTtl {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.bl_mameTtl h3 {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  font-size: clamp(1.75rem, 1.2143rem + 2.6786vw, 2rem);
  color: #00527e;
  align-items: center;
}

.bl_mameTtl h4 {
  font-size: clamp(1.25rem, 0.3571rem + 4.4643vw, 2rem);
  color: #00527e;
}

.bl_mameTtl p {
  margin-top: 8px;
  line-height: 1.8;
}

.bl_mameContent {
  margin-top: 40px;
}

.bl_mame .el_secTtl {
  font-size: clamp(1.25rem, 0.8929rem + 1.7857vw, 1.75rem);
  line-height: 1.8;
  padding-bottom: 0;
}

.bl_mameContent_imgCont {
  display: flex;
  flex-direction: column;
  margin-top: 20px;
  gap: 20px;
}

.bl_mameContent_imgCont_img {
  width: 100%;
  aspect-ratio: 335 / 188;
}

.bl_mameContent_imgCont_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.bl_mameContent_imgCont_txt {
  line-height: 1.4;
  background: #fff;
  padding: 20px;
}

.bl_mameContent_listCont {
  margin-top: 72px;
  display: flex;
  flex-direction: column;
  gap: 52px;
}

.bl_mameContent_listCont li {
  position: relative;
  background: #fff;
  border: 1px solid #00527e;
  border-radius: 4px;
  padding: 44px 20px 20px;
}

.bl_mameContent_listCont span {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 0;
  left: 50%;
  width: 128px;
  height: 64px;
  background: #00527e;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  transform: translate(-50%, -50%);
  border-radius: 4px;
}

.bl_mameContent_listCont p {
  line-height: 1.4;
}

/* ============================
  よくある質問
============================ */

.ly_qa {
  padding: 80px 20px;
}

.ly_qaSecTtl {
  margin-top: 40px;
  display: flex;
  gap: 16px;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 2px solid #00527e;
  color: #00527e;
  font-size: clamp(1.25rem, 1.0714rem + 0.8929vw, 1.25rem);
  line-height: 1;
}

.bl_qaSecList {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.bl_qaSecListItem_q {
  cursor: pointer;
  padding: 10px 40px 10px 20px;
  display: flex;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid #00527e66;
}

.bl_qaSecListItem_q svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.bl_qaSecListItem_a {
  height: 0;
  overflow: hidden;
  transition: height 0.4s ease;
}

.bl_qaSecListItem_a__inner {
  background: #e5ecf066;
  padding: 16px 40px 16px 54px;
}

.bl_columnHeader .el_heading {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: center;
  font-size: 32px;
}

.bl_columnHeader .el_heading::before {
  content: '';
  width: 40px;
  height: 36px;
  background: url(../../img/clinic/column-before.svg) no-repeat center;
  background-size: cover;
}

.bl_column_categories {
  padding-top: 26px;
  border-bottom: 0;
}

.bl_column_categories button {
  padding-bottom: 0;
}

.bl_reserve small {
  display: none;
}

[id] {
  scroll-margin-top: 80px;
}

.el_contentsFab {
  position: fixed;
  color: #00527e;
  right: clamp(20px, 4vw, 60px);
  bottom: 72px;
  z-index: 999;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 2px solid #ef7f45;
  background: #fff;
  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
  overflow: clip;
  cursor: pointer;
  transform: translateY(-8px);
  transition:
    width 0.22s ease,
    height 0.22s ease,
    border-radius 0.22s ease,
    box-shadow 0.22s ease,
    opacity 0.2s ease,
    transform 0.2s ease;
}

.el_contentsFab.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.el_contentsFab>summary {
  list-style: none;
}

.el_contentsFab>summary::-webkit-details-marker {
  display: none;
}

.el_contentsFab__toggle {
  position: relative;
  width: 100%;
  height: 100%;
  cursor: pointer;
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: center;
}

.el_contentsFab__label {
  font-weight: 700;
  font-size: 18px;
}

.el_contentsFab__panel {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  opacity: 0;
  pointer-events: none;
}

.el_contentsFab__title {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 20px 0;
  font-size: 20px;
  font-weight: 700;

  border-bottom: 2px solid #f38353;
  cursor: pointer;
}

.el_contentsFab__title svg {
  flex: 0 0 auto;
  width: 20px;
  height: auto;
}

.el_contentsFab__panel ul {
  margin: 0;
  padding: 20px 28px;
  list-style: none;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 18px;
}

.el_contentsFab__panel a {
  display: block;
  text-decoration: none;
}

.el_contentsFab__panel li {
  list-style: disc;
  list-style-position: inside;
}

.el_contentsFab__panel li {
  list-style: disc;
  list-style-position: inside;
  color: inherit;
}

.el_contentsFab__panel li::marker {
  color: #f38353;
}

.el_contentsFab__panel li a {
  display: inline-block;
}

.el_contentsFab__panel a:focus {
  text-decoration: underline;
}

.el_contentsFab[open] {
  width: min(86vw, 360px);
  height: min(68svh, 650px);
  border-radius: 14px;
  box-shadow: 0 24px 40px rgba(0, 0, 0, 0.18);
}

.el_contentsFab[open] .el_contentsFab__panel {
  opacity: 1;
  pointer-events: auto;
}

.el_contentsFab[open] summary {
  display: none;
}

@media screen and (min-width: 425px) {
  .bl_worryList li {
    width: 100%;
    max-width: 70vw;
  }
}

@media screen and (max-width: 374px) {
  .bl_clinicShortDesc ul li {
    font-size: clamp(0.65rem, 0.4rem + 1.2vw, 0.85rem);
    padding-inline: 4px;
  }

  .bl_clinicShortDesc ul li .el_orange {
    font-size: clamp(0.75rem, 0.5rem + 1.2vw, 1rem);
  }
}

@media screen and (min-width: 375px) and (max-width: 424px) {
  .bl_clinicShortDesc ul li {
    font-size: clamp(0.8rem, 0.5rem + 1.3vw, 1rem);
  }

  .bl_clinicShortDesc ul li .el_orange {
    font-size: clamp(0.9rem, 0.6rem + 1.3vw, 1.2rem);
  }
}

@media screen and (min-width: 768px) {
  .el_contentsFab {
    bottom: 40px;
    width: 120px;
    height: 120px;
  }

  .el_contentsFab__title {
    font-size: 26px;
  }

  .el_contentsFab__title svg {
    width: 26px;
    height: auto;
  }

  .el_contentsFab__label {
    font-size: 26px;
  }

  .bl_clinicShortDesc {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 80px 70px 22px 20px;
  }

  .bl_clinicShortDesc_inner {
    width: fit-content;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .bl_clinicShortDesc h1 {
    text-align: justify;
  }


  .bl_clinicShortDesc ul {
    margin-top: 40px;
    gap: 20px;
  }

  .bl_clinicShortDesc ul li {
    padding: 20px;
    border-radius: 4px;
    gap: 12px;
  }

  .bl_clinicShortDesc small {
    margin-top: 20px;
  }

  /* ============================
    多くのお客様にご支持いただいております
  ============================ */

  .ly_googleReviews h2,
  .ly_ratingAll {
    max-width: 740px;
    margin-inline: auto;
    padding-block: 10px;
  }

  .ly_googleReviews svg {
    max-height: 200px;
  }

  .bl_ratingAll_top .el_stars {
    margin-top: 16px;
    max-width: 280px;
  }

  .bl_ratingAll_bottom {
    gap: 20px;
  }

  .bl_ratingAll_bottom .line-yellow {
    letter-spacing: 0.04em;
    font-size: 18px;
  }

  .bl_googleReviewsWidget .el_secTtl {
    margin-bottom: 40px;
  }

  /* ============================
    店舗情報
  ============================ */

  .ly_clinicInfo {
    margin-top: 260px;
    padding-bottom: 80px;
  }

  .ly_clinicInfo::before {
    background: url(../../img/clinic/info-top-pc.svg) no-repeat center;
    background-size: cover;
    transform: translateY(calc(-100% + 5px));
  }

  .bl_clinicInfoTable {
    margin-top: 40px;
    display: grid;
    grid-template-columns: 0.42fr 0.46fr;
    justify-content: space-between;
  }

  .bl_clinicInfoTable_imgWrap {
    order: 2;
    overflow: hidden;
    height: 100%;
  }

  .bl_clinicInfoTable img {
    object-fit: cover;
    height: 100%;
  }

  .bl_clinicInfoTable ul {
    margin-top: 0;
  }

  .bl_clinicInfoTable ul li span {
    padding-bottom: 9px;
  }

  .bl_clinicInfoTable ul li span:first-child,
  .bl_clinicInfoTable ul li span:last-child {
    font-size: 16px;
  }

  .bl_clinicInfoTable ul li span:first-child {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .bl_clinicInfoText {
    margin-top: 112px;
    position: relative;
    padding-top: 32px;
  }

  .bl_clinicInfoText h3 {
    position: relative;
    font-size: 24px;
    padding: 11px 24px;
    width: max-content;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }

  .bl_clinicInfoText .el_txtBigger {
    font-size: 28px;
  }

  .bl_clinicInfoText_content {
    border: 1px solid #e5e5e5;
    padding: 64px 60px 32px;
  }

  .bl_clinicInfoText_content h2 {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .bl_clinicInfoText_contentPoints_ttl {
    font-size: 28px;
  }

  .bl_clinicInfoText_contentPoints_ttl svg {
    width: 40px;
    height: 40px;
  }

  .bl_clinicInfoText_contentPoints ul li p {
    font-size: 18px;
  }

  .bl_clinicInfoText_contentPoints ul {
    max-width: 720px;
    column-gap: 30px;
    margin-inline: auto;
  }

  /* ============================
    当院が選ばれる理由?
  ============================ */

  .ly_whyUs {
    padding-top: 140px;
    position: relative;
    z-index: 2;
    clip-path: polygon(50% 3.5%, 100% 0, 100% 100%, 0 100%, 0 0);
  }

  .bl_worryCta {
    z-index: 5;
  }

  .bl_worryList::before {
    height: 140%;
    transform: translateY(40%);
    right: 0vw;
  }

  .bl_worryList::after {
    right: 0vw;
    transform: unset;
  }

  /* ============================
  アクセス
 ============================ */

  .bl_clinicAccess_map {
    aspect-ratio: 335 / 170;
  }

  .bl_clinicAccess_info h4,
  .un_WYSIWYG :is(h1, h2, h3, h4, h5, h6) {
    font-size: 24px;
    /* margin-block: 12px; */
    align-items: center;
  }

  .bl_clinicAccess_info h4::before,
  .un_WYSIWYG :is(h1, h2, h3, h4, h5, h6)::before {
    height: 40px;
    align-items: center;
  }

  .bl_clinicAccess_info {
    gap: 0;
  }

  .bl_clinicAccess_far {
    padding: 40px 80px;
  }

  .bl_clinicAccess_far h4 {
    font-size: 32px;
    gap: 20px;
  }

  .bl_clinicAccess_far h4 span {
    width: 60px;
  }

  /* ============================
    メニュー紹介
  ============================ */

  .bl_clinicMenuItem {
    flex-direction: row;
    justify-content: space-between;
  }

  .bl_clinicMenuItem_desc {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  /* ============================
    院長ご挨拶
  ============================ */

  .bl_clinicMenuItem_desc h4 {
    font-size: 28px;
  }

  .bl_clinicMenuItem_price {
    display: flex;
    flex-direction: column;
    gap: 2px;
    justify-content: center;
  }

  .bl_clinicGreeting_inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }

  .bl_clinicGreeting_top {
    display: grid;
    gap: 60px;
    grid-template-columns: 0.52fr 0.46fr;
    margin-top: 40px;
    justify-content: space-between;
  }

  .bl_clinicGreeting_img {
    width: 100%;
    object-fit: cover;
    margin-top: 0;
  }

  .bl_clinicGreeting_ttl {
    margin-top: 0;
  }

  .bl_clinicGreeting_name {
    font-size: 24px;
    font-weight: 700;
    margin-block: 9px 18px;
  }

  /* ============================
    スタッフ紹介
  ============================ */

  .bl_staffSwiper .swiper-buttons {
    display: none !important;
  }

  .bl_staffSwiper .swiper-wrapper {
    display: grid;
    width: 100%;
    grid-template-columns: auto auto;
    justify-content: center;
    gap: 40px;
  }

  .bl_staffModal {}

  .bl_staffModal_outer {
    max-width: 1100px;
    width: 100%;
    margin-inline: auto;
    max-height: 600px;
  }

  .bl_staffModal_inner {
    display: grid;
    grid-template-columns: 4fr 0.5fr 5fr;
    gap: 0;
    justify-content: space-between;
    padding: 40px;
  }

  .bl_staffModal_right {
    overflow-y: scroll;
  }

  .bl_staffModal_img {
    aspect-ratio: 16 / 13;
    border-radius: 8px;
  }

  .bl_staffModal_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .bl_clinicViewSwiper {
    aspect-ratio: 1040 / 585;
  }

  .bl_clinicViewThumbs .swiper-slide {
    aspect-ratio: 18 / 8;
  }

  .bl_clinicViewSwiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .bl_symptomCategories {
    max-width: 1120px;
    margin-inline: auto;
    padding: 40px;
  }

  .bl_symptomCategory_list:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }

  .bl_symptomCategory_toggle svg {
    width: 32px;
    height: 32px;
  }

  .bl_symptomCategory:has(.bl_symptomCategory_list[hidden]) {
    padding: 12px 40px;
  }

  .bl_symptomCategory {
    padding: 12px 40px;
  }

  .bl_symptomCategory_readmore svg {
    width: 40px;
    height: 40px;
  }

  /* ============================
      絶賛のお声
  ============================ */
  .ly_zessan {
    padding-inline: 20px;
  }

  .bl_zessan_ttl {
    font-size: 40px;
    justify-content: flex-start;
  }

  .bl_zessan_list {
    padding-inline: 0;
    max-height: 1200px;
  }

  .bl_zessan_item {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 40px;
    padding: 40px;
  }

  .bl_zessan_item_img {
    order: 2;
  }

  .bl_clinicPoints_ttl {
    text-align: center;
  }

  .bl_clinicPoints_list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 440px));
    justify-content: space-between;
    row-gap: 40px;
  }

  .bl_clinicPoints>p {
    max-width: 960px;
  }

  /* ============================
    中断・終了
  ============================ */

  .bl_clinicBreakTop {
    max-width: 1280px;
    margin-inline: auto;
    border-width: 2px;
    border-radius: 16px;
    padding-block: 40px;
  }

  .bl_clinicBreakTop h3:nth-child(2) {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    width: 100%;
  }

  .bl_clinicBreakList {
    max-width: 1040px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 16px;
  }

  .bl_clinicBreakList li {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .bl_clinicBreakContent_inner {
    margin-top: 40px;
    display: grid;
    grid-template-columns: 1fr 0.875fr;
    max-width: 1000px;
    margin-inline: auto;
    justify-content: space-between;
  }

  .bl_clinicBreakImg {
    max-width: 480px;
    order: 2;
    margin-top: 0;
  }

  .bl_clinicBreakContent_inner p {
    max-width: 420px;
  }

  /* ============================
    豆知識
  ============================ */

  .ly_mame {
    padding-block: 80px;
    border-top-left-radius: 120px;
    border-top-right-radius: 120px;
  }


  .bl_mameTtl h3 img {
    width: 44px;
    height: auto;
  }

  .bl_mame .el_secTtl::after {
    content: unset;
  }

  .bl_mame .el_secTtl {
    border-bottom: 2px solid rgba(0, 82, 126, 0.2);
  }

  .bl_mameContent_imgCont {
    margin-block: 40px;
    padding-bottom: 40px;
  }

  .bl_mameContent_imgCont {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }

  .bl_mameContent_imgCont_img {
    aspect-ratio: unset;
    order: 2;
    z-index: 1;
  }

  .bl_mameContent_imgCont_txt {
    position: relative;
    top: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .bl_mameContent_imgCont_txt::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 100%;
    background: #fff;
    z-index: 0;
    transform: translateX(100%);
  }

  .bl_mameContent_listCont {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
  }

  .bl_mameContent+.bl_mameContent {
    margin-top: 80px;
  }

  /* ============================
    よくある質問
  ============================ */
  .ly_qaSecTtl {
    margin-top: 60px;
    padding-bottom: 10px;
  }

  /* ============================
    コラム
  ============================ */
  .ly_topColumn {
    position: relative;
    overflow: clip;
  }

  .ly_topColumn:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 60vw;
    height: 60vw;
    border-radius: 50%;
    background: #f2f9fd;
    z-index: -1;
    transform: translate(-30%, -55%);
  }

  .bl_column_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 80px 40px;
    width: 100%;
  }

  .bl_column_item {
    width: 100%;
  }
}

@media screen and (min-width: 1024px) {
  .bl_clinicPost {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .bl_clinicPost_img {
    aspect-ratio: unset;
    max-height: 600px;
  }

  .bl_clinicShortDesc {
    max-height: 600px;
  }

  .bl_clinicPost_img img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: top center;
  }

  .bl_clinicPost_img::after {
    bottom: 0px;
    right: 0;
    left: unset;
    background: linear-gradient(-90deg,
        #00517c 0%,
        rgba(0, 81, 124, 0.5) 14.88%,
        rgba(0, 81, 124, 0) 29.75%);
    width: 100%;
    height: 100%;
  }

  .bl_clinicShortDesc {
    padding-right: 90px;
  }

  /* ============================
    スタッフ紹介
  ============================ */

  .bl_staffSwiper .swiper-wrapper {
    grid-template-columns: auto auto auto;
  }
}