@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@100;400;700;800&display=swap');
/* 店舗情報
---------------------------------------------------------- */
/* 店舗枠 */
section.c-shopList {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 60px;
  list-style: none;
}
section.c-shopList div {
  width: 32%;
  min-width: 256px;
}
/* 店舗_赤 */
.shopBadge_red {
  --size: 256px;
  --ring: 3px; /* 外周の赤いリング */
  --labelH: 46%; /* 下の赤帯の高さ */
  width: var(--size);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: grid;
  grid-template-rows: calc(100% - var(--labelH)) var(--labelH);
  overflow: hidden;
  position: relative;
  text-decoration: none;
  transition: opacity .2s ease, box-shadow .2s ease;
}
.shopBadge_red:hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
  color: #ff3b4b;
  text-decoration: none;
}
/* 外周リング（画像の赤い縁） */
.shopBadge_red::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 var(--ring) #e70013 inset;
  pointer-events: none;
}
/* 店舗_青 */
.shopBadge_blue {
  --size: 256px;
  --ring: 3px; /* 外周の赤いリング */
  --labelH: 46%; /* 下の青帯の高さ */
  width: var(--size);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: grid;
  grid-template-rows: calc(100% - var(--labelH)) var(--labelH);
  overflow: hidden;
  position: relative;
  text-decoration: none;
  transition: opacity .2s ease, box-shadow .2s ease;
}
.shopBadge_blue:hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
  color: #1d82d1;
  text-decoration: none;
}
/* 外周リング（画像の青い縁） */
.shopBadge_blue::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 var(--ring) #0063b1 inset;
  pointer-events: none;
}
/* 上：写真 */
.shopBadge__photo {
  display: block;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* 下：赤帯＋白文字 */
.shopBadge_red__label {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e70013;
  color: #fff;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 800;
  min-width: 0;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  line-break: strict;
  line-height: 1.15;
  text-align: center;
  padding: 0 12px;
  font-size: clamp(1.125rem, calc(0.989rem + 0.68vw), 1.5rem);
  letter-spacing: 0.01em;
}
/* 下：青帯＋白文字 */
.shopBadge_blue__label {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0063b1;
  color: #fff;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 800;
  min-width: 0;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  line-break: strict;
  line-height: 1.15;
  text-align: center;
  padding: 0 12px;
  font-size: clamp(1.125rem, calc(0.989rem + 0.68vw), 1.5rem);
  letter-spacing: 0.01em;
}
/* 英語だけ：Soramachi store が円から切れないように調整 */
html[lang="en"] .shopBadge_red__label, html[lang="en"] .shopBadge_blue__label {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: auto;
  line-height: 1.1;
  padding: 0 14px;
  letter-spacing: 0;
  font-size: clamp(1rem, calc(0.891rem + 0.55vw), 1.3rem);
}
/* ==========================
   背景ゾーン
   ========================== */
.top-red-zone {
  background-image: url("../img/bg_top_red.webp");
  background-repeat: repeat;
  padding: clamp(24px, 6vw, 40px) 0;
}
.top-blue-zone {
  background-image: url("../img/bg_top_blue.webp");
  background-repeat: repeat;
  padding: clamp(24px, 6vw, 40px) 0;
  margin-bottom: 45px;
}
/* ==========================
   タイトル影
   ========================== */
.red-text-shadow {
  text-shadow: 0px 0px 10px rgba(156, 0, 0, 1), 1px 1px 10px rgba(156, 0, 0, 1), -1px -1px 10px rgba(156, 0, 0, 1);
}
.blue-text-shadow {
  text-shadow: 0px 0px 10px rgba(0, 61, 163, 1), 1px 1px 10px rgba(0, 61, 163, 1), -1px -1px 10px rgba(0, 61, 163, 1);
}
/* ==========================
   CARD GRID / CARD
   ========================== */
.c-cardGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(8px, 1.5vw, 20px);
  padding-inline: 0;
  margin-bottom: 45px;
}
.c-card {
  background: #fff;
  border-radius: clamp(6px, 1vw, 12px);
  padding: clamp(8px, 1vw, 12px);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 800;
  min-width: 0;
}
.c-card__heading_red {
  margin: 0 0 clamp(6px, 0.8vw, 10px);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 800;
  font-size: clamp(0.813rem, calc(0.608rem + 1.02vw), 1.375rem);
  line-height: 1.1;
  color: #111;
  min-width: 0;
  white-space: normal;
  border-bottom: 5px solid #d7141b;
  display: inline-block;
  padding-bottom: 5px;
  text-align: left;
}
.c-card__heading_blue {
  margin: 0 0 clamp(6px, 0.8vw, 10px);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 800;
  font-size: clamp(0.813rem, calc(0.608rem + 1.02vw), 1.375rem);
  line-height: 1.1;
  color: #111;
  min-width: 0;
  white-space: normal;
  border-bottom: 5px solid #175da5;
  display: inline-block;
  padding-bottom: 5px;
  text-align: left;
}
.c-card__media {
  overflow: hidden;
  background: #f2f2f2;
  /*  aspect-ratio: 4 / 3;*/
  margin-bottom: clamp(6px, 0.8vw, 10px);
}
.c-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-card__title_red {
  margin: 0 0 clamp(4px, 0.6vw, 8px);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.688rem, calc(0.528rem + 0.8vw), 1.125rem);
  line-height: 1;
  color: #d7141b;
  text-align: left;
}
.c-card__title_blue {
  margin: 0 0 clamp(4px, 0.6vw, 8px);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.688rem, calc(0.528rem + 0.8vw), 1.125rem);
  line-height: 1;
  color: #175da5;
  text-align: left;
}
.c-card__text {
  margin: 0 0 clamp(4px, 0.6vw, 8px);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 400;
  font-size: clamp(0.625rem, calc(0.489rem + 0.68vw), 1rem);
  line-height: 1.6;
  color: #111;
  text-align: left;
}
.c-card__price {
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.75rem, calc(0.659rem + 0.45vw), 1rem);
  line-height: 1.4;
  color: #fff;
  background-color: #212121;
  text-align: center;
  margin: 0 0 0.4em;
  padding: 0.4em 0.2em;
}
.c-card__tax {
  font-size: 0.88em;
  opacity: 0.9;
  margin-left: 0.25em;
}
.c-card__note {
  margin: 0;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 400;
  font-size: clamp(0.563rem, calc(0.449rem + 0.57vw), 0.875rem);
  line-height: 1.3;
  color: #111;
  text-align: left;
}
/* カレンダーボタン
---------------------------------------------------------- */
html[lang="en"] .btn_calender_month_red, html[lang="en"] .btn_calender_month_blue {
  font-size: 0.75rem;
  letter-spacing: 0;
}
.img_white_line {
  position: relative;
  border: solid 1px #f1ebdc;
  margin: 0 0 1em;
}
/* PDFアイコン */
.icon_cal_box {
  position: relative;
  width: 100%;
}
.icon_cal_pdf {
  position: absolute;
  display: inline-block;
  width: 2em;
  height: 2em;
  top: -6%;
  right: -0.1em;
  transform: none;
}
.icon_cal_pdf::before {
  content: "";
  position: absolute;
  inset: -0.35em;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
  z-index: 0;
}
/* PDFアイコン画像 */
.icon_cal_pdf img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  display: block;
}
.btn_calender_container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin: 0.5em 0 0;
}
.btn_calender_month_red {
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.1;
  text-align: center;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.625rem, calc(0.598rem + 0.14vw), 0.75rem);
  color: #9f1515 !important;
  border-radius: 50px;
  padding: 0.45em 0.6em;
  border: 1px solid #e2afaf;
  background-image: linear-gradient(0deg, rgba(255, 227, 227, 1), rgba(255, 255, 255, 1));
  box-shadow: 0px 2px 4px rgba(0, 0, 0, .3);
  transition: 0.3s;
}
.btn_calender_month_red:hover {
  transform: translateY(2px);
  box-shadow: 0 0 rgba(0, 0, 0, 0);
}
.btn_calender_month_red.is-disabled {
  opacity: 0.45;
  color: #999;
  border-color: #ddd;
  box-shadow: none;
  cursor: not-allowed;
  pointer-events: none;
  background-image: linear-gradient(0deg, #f3f3f3, #ffffff);
}
.btn_calender_month_red.is-disabled:hover {
  transform: none;
  box-shadow: none;
}
.btn_calender_month_blue {
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.1;
  text-align: center;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  font-size: clamp(0.625rem, calc(0.598rem + 0.14vw), 0.75rem);
  color: #000c7b !important;
  border-radius: 50px;
  padding: 0.45em 0.6em;
  background-image: linear-gradient(180deg, rgba(219, 237, 255, 1), rgba(189, 189, 189, 1));
  box-shadow: 0px 2px 4px rgba(0, 0, 0, .3);
  transition: 0.3s;
}
.btn_calender_month_blue:hover {
  transform: translateY(2px);
  box-shadow: 0 0 rgba(0, 0, 0, 0);
}
.btn_calender_month_blue.is-disabled {
  opacity: 0.45;
  color: #999;
  border-color: #ddd;
  box-shadow: none;
  cursor: not-allowed;
  pointer-events: none;
  background-image: linear-gradient(0deg, #dbedff, #ffffff);
}
.btn_calender_month_blue.is-disabled:hover {
  transform: none;
  box-shadow: none;
}
/* ポップアップ
---------------------------------------------------------- */
.c-card_popup {
  border: 1px solid #000;
  box-shadow: none;
}
/* インフォメーション
---------------------------------------------------------- */
.Top_InfoZone {
  background: #e6e6e6;
  padding: clamp(40px, 6vw, 80px) 0;
  margin-bottom: 100px;
}
.c-infoList {
  margin: 0;
  padding: 0;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 800;
  list-style: none;
}
.c-infoItem {
  display: grid;
  grid-template-columns: clamp(160px, 18vw, 240px) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: clamp(8px, 1vw, 2em);
  row-gap: 0;
  padding: 2px 0;
  margin: 0 0 14px;
}
.c-infoItem p {
  margin: 0;
}
.c-infoLeft {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.c-infoItem .c-infoList__tagWrap {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  justify-content: center;
}
.c-infoItem .c-infoList__date {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  justify-content: center;
  margin-top: 3px;
  line-height: 1;
}
.c-infoList__tag {
  background: #fff;
  border: 2px solid #d9d9d9;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(160px, 18vw, 240px);
  height: 35px;
  padding: 0;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1;
  white-space: nowrap;
}
.c-infoList__tag_notice {
  color: #e60012;
}
.c-infoList__tag_shop {
  color: #333;
}
.c-infolist__date {
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 400;
  font-size: 0.7rem;
  color: #666;
}
.c-infoItem .c-infoList__text {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  min-width: 0;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.6;
  padding-top: 5px;
  text-align: left;
}
.c-infoItem .c-infoList__text a {
  display: block;
  width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.c-cardGrid a, .c-cardGrid a:hover {
  text-decoration: none !important;
}
.c-cardGrid a:hover .c-card__text {
  text-decoration: none !important;
}
.c-cardGrid a:hover .c-card_popup {
  border: 1px solid #808080;
}
/* PDFアイコン */
.icon_pdf:after {
  content: '';
  display: inline-block;
  width: 13px;
  height: 13px;
  background-image: url('../../common/2026/img/icon_pdf_01.webp');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 13px auto;
  margin: 0 5px;
}