/* 2026.9.29追加 店舗（店舗一覧・店舗詳細・掲示事項）と、営業時間の共通表示 */

/* ------------------------------
  仮の内容の注記 blocks/bl_kari.php
------------------------------ */
.bl_kari {
  display: block;
  background-color: #FFF6D6;
  border: 2px dashed #F5A623;
  border-radius: 8px;
  color: #7A4B00;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: left;
  padding: 8px 12px;
  margin-bottom: 12px;
}

.bl_kari_label {
  color: #D0021B;
}

/* ------------------------------
  ボタン
------------------------------ */
.bl_shop_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 10px 24px;
  border: 2px solid #55CCFF;
  border-radius: 25px;
  background-color: #55CCFF;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  box-shadow: 0 0 8px rgba(0, 0, 0, .16);
}

.bl_shop_btn:hover {
  background-color: #fff;
  color: #55CCFF;
  opacity: 1;
}

.bl_shop_btn--line {
  background-color: #fff;
  color: #55CCFF;
}

.bl_shop_btn--line:hover {
  background-color: #55CCFF;
  color: #fff;
}

.bl_shop_btn--epark {
  border-color: #F0727F;
  background-color: #F0727F;
}

.bl_shop_btn--epark:hover {
  background-color: #fff;
  color: #F0727F;
}

/* ------------------------------
  営業時間の表 blocks/bl_shop_hours.php
------------------------------ */
.bl_shop_hours {
  width: 100%;
  color: #55CCFF;
}

.bl_shop_hours_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #55CCFF;
  border-radius: 10px;
  overflow: hidden;
  background-color: #fff;
  table-layout: fixed;
}

.bl_shop_hours_table th,
.bl_shop_hours_table td {
  border-right: 1px solid #55CCFF;
  border-bottom: 1px solid #55CCFF;
  padding: 10px 2px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
  vertical-align: middle;
}

.bl_shop_hours_table tr > *:last-child {
  border-right: none;
}

.bl_shop_hours_table tbody tr:last-child > * {
  border-bottom: none;
}

.bl_shop_hours_table .bl_shop_hours_time {
  width: 34%;
  white-space: nowrap;
}

.bl_shop_hours_table small {
  display: block;
  font-size: 10px;
  white-space: normal;
}

.bl_shop_hours_open {
  font-size: 14px;
}

.bl_shop_hours_close {
  font-size: 16px;
  font-weight: 400;
}

.bl_shop_hours_notes {
  margin-top: 12px;
  color: #333;
  font-size: 14px;
  line-height: 1.7;
}

.bl_shop_hours_label {
  display: inline-block;
  background-color: #55CCFF;
  border-radius: 6px;
  color: #fff;
  font-weight: 700;
  padding: 0 10px;
  margin-right: 10px;
}

.bl_shop_hours_note {
  margin-top: 6px;
  font-size: 13px;
}

/* ------------------------------
  店舗カード blocks/bl_shop_card.php
------------------------------ */
.shop-list_lead {
  line-height: 2;
}

.shop-list_items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}

.bl_shop_card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0 0 12px rgba(0, 0, 0, .12);
  overflow: hidden;
}

.bl_shop_card_img {
  display: block;
}

.bl_shop_card_img img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.bl_shop_card_body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 28px 30px 32px;
}

.bl_shop_card_ttl {
  color: #55CCFF;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.bl_shop_card_catch {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.7;
}

.bl_shop_card_tel {
  margin-top: 14px;
}

.bl_shop_card_tel a {
  display: inline-flex;
  align-items: center;
  column-gap: 10px;
  color: #55CCFF;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.bl_shop_card_tel img {
  width: 22px;
  /* tel.svg は白なので、サイトの青（#55CCFF）に着色する */
  filter: brightness(0) saturate(100%) invert(72%) sepia(45%) saturate(1500%) hue-rotate(169deg) brightness(103%) contrast(101%);
}

.bl_shop_card .bl_shop_hours {
  margin-top: 16px;
}

.bl_shop_card_info {
  margin-top: 16px;
  font-size: 14px;
  line-height: 1.7;
}

.bl_shop_card_info > div {
  display: flex;
  align-items: flex-start;
  column-gap: 14px;
}

.bl_shop_card_info > div + div {
  margin-top: 8px;
}

.bl_shop_card_info dt {
  flex: 0 0 76px;
  background-color: #55CCFF;
  border-radius: 6px;
  color: #fff;
  font-weight: 700;
  text-align: center;
}

.bl_shop_card_map {
  display: inline-block;
  margin-left: 8px;
  border: 1px solid #55CCFF;
  border-radius: 16px;
  color: #55CCFF;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
  padding: 0 14px;
  white-space: nowrap;
}

.bl_shop_card_map:hover {
  background-color: #55CCFF;
  color: #fff;
  opacity: 1;
}

.bl_shop_card_btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: auto;
  padding-top: 24px;
}

.bl_shop_card_btns .bl_shop_btn {
  flex: 1 1 200px;
  min-width: 0;
}

/* ------------------------------
  店舗詳細 single-shop.php
------------------------------ */
.shop-sub_ttl {
  border-left: 6px solid #55CCFF;
  color: #333;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  padding-left: 14px;
  margin-bottom: 20px;
}

/* 店舗紹介 */
.shop-intro_wrap {
  display: flex;
  align-items: flex-start;
  column-gap: 60px;
}

.shop-intro_photo {
  flex: 0 0 52%;
  min-width: 0;
}

.shop-intro_photo_main img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 20px;
}

.shop-intro_photo_thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.shop-intro_photo_thumbs button {
  display: block;
  width: 100%;
  padding: 0;
  border: 3px solid transparent;
  border-radius: 10px;
  background: none;
  overflow: hidden;
  cursor: pointer;
}

.shop-intro_photo_thumbs button.is-current {
  border-color: #55CCFF;
}

.shop-intro_photo_thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.shop-intro_body {
  flex: 1;
  min-width: 0;
}

.shop-intro_ttl {
  color: #55CCFF;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.shop-intro_catch {
  margin-top: 10px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.shop-intro_text {
  margin-top: 20px;
  line-height: 2;
}

.shop-intro_tel {
  display: inline-flex;
  align-items: center;
  column-gap: 12px;
  margin-top: 24px;
  color: #55CCFF;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.shop-intro_tel img {
  width: 26px;
  filter: brightness(0) saturate(100%) invert(72%) sepia(45%) saturate(1500%) hue-rotate(169deg) brightness(103%) contrast(101%);
}

.shop-intro_btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

/* 営業時間・店舗情報 */
.shop-info {
  background-color: #F2FBFF;
  border-radius: 120px 0 0 0;
}

.shop-info_wrap {
  display: flex;
  align-items: flex-start;
  column-gap: 60px;
}

.shop-info_hours {
  flex: 0 0 44%;
  min-width: 0;
}

.shop-info_table {
  flex: 1;
  min-width: 0;
  border-top: 1px solid #55CCFF;
}

.shop-info_table .bl_tables_item {
  padding: 14px 10px;
}

.shop-service_list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.shop-service_list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  row-gap: 10px;
  background-color: #fff;
  border-radius: 16px;
  box-shadow: 0 0 8px rgba(0, 0, 0, .08);
  color: #333;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .04em;
  text-align: center;
  padding: 20px 10px 18px;
}

.shop-service_icon {
  flex: 0 0 auto;
  box-sizing: content-box;
  width: 30px;
  height: 30px;
  padding: 13px;
  border-radius: 50%;
  background-color: #55CCFF;
  color: #fff;
}

.shop-service_list li:nth-child(3n + 2) .shop-service_icon {
  background-color: #CCFF54;
  color: #2B7A9B;
}

.shop-notice-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 30px;
  background-color: #fff;
  border-radius: 20px;
  padding: 24px 30px;
  line-height: 1.8;
}

.shop-notice-link .bl_shop_btn {
  flex: 0 0 auto;
}

/* 処方せんの受付 */
.shop-reserve {
  background-color: #55CCFF;
  border-radius: 0 0 120px 0;
  color: #fff;
}

.shop-reserve_lead {
  font-weight: 700;
}

.shop-reserve_items {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 40px;
}

.shop-reserve_items li {
  flex: 0 1 500px;
  min-width: 0;
}

.shop-reserve_items a {
  display: block;
  height: 100%;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 12px rgba(0, 0, 0, .16);
}

.shop-reserve_items img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shop-reserve_items a.shop-reserve_line {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  row-gap: 8px;
  background-color: #fff;
  color: #06C755;
  padding: 20px;
  text-align: center;
}

.shop-reserve_line_sub {
  font-size: 14px;
  font-weight: 700;
}

.shop-reserve_line_main {
  color: #333;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.shop-reserve_line_btn {
  background-color: #06C755;
  border-radius: 20px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 4px 28px;
}

/* アクセス */
.shop-access_wrap {
  display: flex;
  align-items: flex-start;
  column-gap: 60px;
}

.shop-access_body {
  flex: 0 0 40%;
  min-width: 0;
}

.shop-access_info {
  line-height: 1.8;
}

.shop-access_info > div {
  display: flex;
  align-items: flex-start;
  column-gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid #55CCFF;
}

.shop-access_info > div:first-child {
  border-top: 1px solid #55CCFF;
}

.shop-access_info dt {
  flex: 0 0 90px;
  background-color: #55CCFF;
  border-radius: 6px;
  color: #fff;
  font-weight: 700;
  text-align: center;
}

.shop-access_map {
  flex: 1;
  min-width: 0;
}

.shop-access_map iframe {
  display: block;
  width: 100%;
  aspect-ratio: 1.5;
  border-radius: 20px;
}

/* Instagram */
.shop-instagram {
  background-color: #F2FBFF;
}

.shop-instagram_embed {
  display: flex;
  justify-content: center;
}

.shop-instagram_embed .instagram-media {
  width: 100%;
  max-width: 540px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  background-color: #fff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
}

.shop-instagram_more,
.shop-posts_more {
  text-align: center;
}

/* お知らせ・ブログ */
.shop-posts_empty {
  color: #707070;
}

/* ------------------------------
  掲示事項 single-shop-notice.php
------------------------------ */
.shop-notice_inner {
  max-width: 860px;
}

.shop-notice_ttl {
  color: #55CCFF;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.shop-notice_lead {
  line-height: 2;
}

.shop-notice_updated {
  color: #707070;
  font-size: 14px;
}

.shop-notice_toc {
  background-color: #F2FBFF;
  border-radius: 20px;
  padding: 24px 30px;
}

.shop-notice_toc_ttl {
  color: #55CCFF;
  font-weight: 700;
  margin-bottom: 8px;
}

.shop-notice_toc ol {
  list-style: decimal;
  padding-left: 22px;
  line-height: 2;
}

.shop-notice_toc a {
  text-decoration: underline;
}

.shop-notice_item {
  scroll-margin-top: 120px;
}

.shop-notice_item_ttl {
  background-color: #55CCFF;
  border-radius: 10px;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  padding: 10px 20px;
}

.shop-notice_item_body {
  padding: 20px 10px 0;
  line-height: 2;
}

.shop-notice_item_body p + p,
.shop-notice_item_body ul,
.shop-notice_item_body ol {
  margin-top: 10px;
}

.shop-notice_item_body ul {
  list-style: disc;
  padding-left: 22px;
}

.shop-notice_item_body ol {
  list-style: decimal;
  padding-left: 22px;
}

/* ------------------------------
  ヘッダー header.php
------------------------------ */
.header_tel.header_shop {
  font-size: 19px;
  white-space: nowrap;
}

.header_tel.header_shop:hover svg path {
  fill: #55CCFF;
}

.sp-global-menu_shop_name {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 6px;
}

@media screen and (max-width: 1350px) {
  .sp-global-menu_bottom.sp-global-menu_shops {
    flex-direction: column;
    align-items: center;
    row-gap: 20px;
  }

  .sp-global-menu_shop {
    text-align: center;
  }

  .sp-global-menu_shops .header_tel {
    margin: 0;
    padding: 4px 24px;
    align-items: center;
  }
}

/* ------------------------------
  フッター footer.php
------------------------------ */
.footer_shops_head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 40px;
}

.footer_shops_logo {
  max-width: 334px;
  width: 100%;
}

.footer_shops_contact {
  flex: 0 0 340px;
}

.footer_shops_contact .bl_btn_2 {
  width: 100%;
  padding: 8px 0;
}

.footer_shops_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}

.bl_shop_card--footer {
  background-color: #F2FBFF;
  box-shadow: none;
}

/* ------------------------------
  お問い合わせ page-contact.php
------------------------------ */
.page-contact_shops {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}

.page-contact_shop_name {
  font-size: 18px;
  margin-bottom: 4px;
}

.page-contact_head .page-contact_shop_name {
  font-size: 18px;
}

/* ------------------------------
  トップページ front-page.php
------------------------------ */
.mv_shops_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  width: 95%;
}

.mv_shops_list a {
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  height: 100%;
  background-color: #fff;
  border-radius: 14px;
  color: #55CCFF;
  padding: 14px 16px;
  letter-spacing: 0;
}

.mv_shops_list a:hover {
  opacity: .8;
}

.mv_shops_name {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.mv_shops_hours {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}

.mv_shops_address {
  color: #333;
  font-size: 12px;
  line-height: 1.5;
}

.mv_shops_more {
  display: inline-block;
  margin-top: 14px;
  border: 1px solid #fff;
  border-radius: 16px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 16px;
}

.mv_shops_more:hover {
  background-color: #fff;
  color: #55CCFF;
  opacity: 1;
}

.top-shop {
  background-color: #F2FBFF;
}

/* banner_epark_1000.png（1000×400）に合わせる */
.epark-banner_item {
  width: 500px;
}

/* ------------------------------
  のため薬局について page-about.php
------------------------------ */
.aboutus_link {
  color: #55CCFF;
  font-weight: 700;
  text-decoration: underline;
}

/* ------------------------------
  スマホ・タブレット
------------------------------ */
@media screen and (max-width: 1000px) {
  .shop-service_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .shop-service_list li {
    font-size: 13px;
    padding: 16px 6px 14px;
  }

  .shop-service_icon {
    width: 26px;
    height: 26px;
    padding: 11px;
  }

  .bl_shop_btn {
    min-width: 0;
    width: 100%;
    font-size: 14px;
  }

  .bl_shop_hours_table th,
  .bl_shop_hours_table td {
    font-size: 13px;
    padding: 8px 1px;
  }

  .bl_shop_hours_table .bl_shop_hours_time {
    width: 36%;
  }

  .shop-list_items,
  .footer_shops_list {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .bl_shop_card_body {
    padding: 22px 18px 26px;
  }

  .bl_shop_card_ttl {
    font-size: 20px;
  }

  .bl_shop_card_tel a {
    font-size: 28px;
  }

  .bl_shop_card_btns .bl_shop_btn {
    flex-basis: 100%;
  }

  .shop-sub_ttl {
    font-size: 18px;
  }

  .shop-intro_wrap,
  .shop-info_wrap,
  .shop-access_wrap {
    display: block;
  }

  .shop-intro_body {
    margin-top: 30px;
  }

  .shop-intro_ttl,
  .shop-notice_ttl {
    font-size: 24px;
  }

  .shop-intro_catch {
    font-size: 16px;
  }

  .shop-intro_tel {
    font-size: 32px;
  }

  .shop-info {
    border-radius: 60px 0 0 0;
  }

  .shop-info_table {
    margin-top: 30px;
  }

  .shop-info_table .bl_tables_item {
    padding: 13px 0;
  }

  .shop-notice-link {
    display: block;
    padding: 20px;
  }

  .shop-notice-link .bl_shop_btn {
    margin-top: 16px;
  }

  .shop-reserve {
    border-radius: 0 0 60px 0;
  }

  .shop-reserve_items {
    flex-direction: column;
    gap: 20px;
  }

  .shop-reserve_items li {
    flex: 0 0 auto;
  }

  .shop-reserve_line_main {
    font-size: 20px;
  }

  .shop-access_map {
    margin-top: 30px;
  }

  .shop-access_map iframe {
    aspect-ratio: calc(375 / 300);
  }

  .shop-access_info dt {
    flex-basis: 80px;
  }

  .shop-notice_toc {
    padding: 20px;
  }

  .shop-notice_item_ttl {
    font-size: 17px;
    padding: 10px 14px;
  }

  .shop-notice_item_body {
    padding: 16px 0 0;
  }

  .footer_shops_head {
    display: block;
  }

  .footer_shops_logo {
    max-width: 222px;
  }

  .footer_shops_contact {
    margin-top: 24px;
  }

  .mv_shops_list {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .epark-banner_item {
    width: 100%;
  }
}

/* 店舗詳細: この店舗の求人への案内（.shop-notice-link と同じ見た目） */
.shop-recruit-link + .shop-notice-link {
  margin-top: 20px;
}

/* ------------------------------
  開店前（Coming Soon）の店舗
------------------------------ */
.bl_shop_card_soon,
.shop-soon_label,
.mv_shops_soon {
  display: inline-block;
  border-radius: 14px;
  background-color: #CCFF54;
  color: #333;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .08em;
  padding: 1px 14px;
}

.bl_shop_card--soon .bl_shop_card_body {
  justify-content: flex-start;
}

.bl_shop_card--soon .bl_shop_card_soon {
  margin-bottom: 10px;
}

.mv_shops_list .is-soon a {
  background-color: #F2FBFF;
  border: 2px dashed #55CCFF;
}

.mv_shops_soon {
  margin-left: 8px;
  font-size: 11px;
  padding: 0 10px;
  vertical-align: middle;
}

.shop-soon_card {
  border-radius: 30px;
  background-color: #F2FBFF;
  padding: 50px 60px;
}

.shop-soon_label {
  margin-bottom: 14px;
}

.shop-soon_ttl {
  color: #55CCFF;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.shop-soon_catch {
  margin-top: 8px;
  font-weight: 700;
}

.shop-soon_lead,
.shop-soon_text {
  margin-top: 20px;
  line-height: 2;
}

.shop-soon_info {
  margin-top: 20px;
}

.shop-soon_info div {
  display: flex;
  align-items: flex-start;
  column-gap: 16px;
}

.shop-soon_info dt {
  flex: 0 0 90px;
  border-radius: 6px;
  background-color: #55CCFF;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  padding: 3px 0;
}

.shop-soon_info dd {
  line-height: 1.8;
  padding-top: 2px;
}

.shop-soon_contact {
  margin-top: 40px;
  border-radius: 30px;
  border: 2px solid #55CCFF;
  background-color: #fff;
  text-align: center;
  padding: 40px 30px;
}

.shop-soon_contact_ttl {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.shop-soon_contact_text {
  margin-top: 10px;
  line-height: 1.9;
}

.shop-soon_contact_tel {
  display: inline-flex;
  align-items: center;
  column-gap: 8px;
  margin-top: 16px;
  color: #55CCFF;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.2;
}

.shop-soon_contact_tel img {
  width: 28px;
  height: 28px;
  filter: brightness(0) saturate(100%) invert(73%) sepia(45%) saturate(1300%) hue-rotate(170deg) brightness(101%) contrast(101%);
}

.shop-soon_contact_hours {
  margin-top: 8px;
  color: #555;
  font-size: 14px;
}

.shop-soon_contact_btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 20px;
  margin-top: 24px;
}

@media screen and (max-width: 1000px) {
  .shop-soon_card {
    border-radius: 20px;
    padding: 30px 22px;
  }

  .shop-soon_ttl {
    font-size: 24px;
  }

  .shop-soon_contact {
    border-radius: 20px;
    padding: 30px 20px;
  }

  .shop-soon_contact_ttl {
    font-size: 18px;
  }

  .shop-soon_contact_tel {
    font-size: 30px;
  }

  .shop-soon_contact_btns .bl_shop_btn {
    width: 100%;
  }
}
