/* セールカレンダー・定例キャンペーンの常設ページ（2026-11-02）。
   枠・表・結論は koramu.css の部品をそのまま使う。ここはこの面だけの部品。色は style.css の token。 */

/* koramu-section の ul/ol/li の字下げ・行間（本文の箇条書き用）をこの面の一覧には効かせない */
.koramu-section .cal-hubs, .koramu-section .cal-month, .koramu-section .cal-mday-evs,
.koramu-section .cal-days, .koramu-section .cal-links { padding-left: 0; margin: 0; list-style: none; }
.koramu-section .cal-hubs > li, .koramu-section .cal-month > li, .koramu-section .cal-mday-evs > li,
.koramu-section .cal-days > li, .koramu-section .cal-links > li { margin: 0; }

/* koramu-section の本文リンク（下線・緑）をカードや一覧には効かせない */
.koramu-section a.cal-hub, .koramu-section .cal-monthnav a { text-decoration: none; }
.koramu-section .cal-ev a { color: var(--text); text-decoration: none; }
.koramu-section .cal-ev a:hover { color: var(--brand-deep); }

/* 2 列の表は横スクロールさせない（koramu-table の min-width:480px は多列表向け） */
.cal-page .cal-facts, .cal-page .cal-past { min-width: 0; }
.cal-page .cal-facts th { width: 30%; white-space: normal; background: var(--brand-lighter); vertical-align: top; }
.cal-page .cal-facts td { color: var(--text); word-break: break-word; }
.cal-past-month { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* モール札 */
.cal-plat {
  display: inline-flex; align-items: center; flex-shrink: 0;
  padding: 2px 8px; border-radius: 999px;
  font-size: 0.72rem; font-weight: 700; line-height: 1.5;
  background: var(--border-light); color: var(--text-secondary);
}
.cal-plat-rakuten { background: #fdecec; color: #a30000; }   /* 7.6:1 */
.cal-plat-yahoo { background: #feecef; color: #b0002a; }     /* 6.4:1 */
.cal-plat-amazon { background: #fff4e0; color: #8a4b00; }    /* 6.0:1 */
.cal-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--muted); margin-right: 8px; flex-shrink: 0; }
.cal-dot-rakuten { background: #bf0000; }
.cal-dot-yahoo { background: #ff0033; }

/* 「次はいつ」の大きな 1 行 */
.cal-hero {
  margin: 0 0 22px; padding: 18px 20px;
  background: var(--brand-bg); border: 1px solid var(--brand-lighter); border-left: 4px solid var(--brand);
  border-radius: var(--radius-sm);
}
.cal-hero-none { border-left-color: var(--muted); background: var(--card); border-color: var(--border); }
.cal-state {
  display: inline-block; padding: 2px 10px; border-radius: 999px;
  font-size: 0.78rem; font-weight: 700; background: var(--brand-deep); color: #fff;
}
.cal-hero-none .cal-state { background: var(--text-secondary); }
.cal-hero-date {
  margin: 8px 0 0; font-size: 1.6rem; font-weight: 800; line-height: 1.35;
  color: var(--text); font-variant-numeric: tabular-nums; letter-spacing: -0.01em;
}
.cal-hero-date-sub { font-size: 1.05rem; font-weight: 700; color: var(--text-secondary); }
.cal-hero-answer { margin: 10px 0 0; padding-left: 1.2em; }
.cal-hero-answer li { font-size: 0.93rem; line-height: 1.75; color: var(--text); }
.cal-cta {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 14px;
  min-height: 44px; padding: 0 20px; border-radius: var(--radius-sm);
  background: var(--brand-deep); color: #fff; font-weight: 700; font-size: 0.95rem; text-decoration: none;
  transition: background 0.15s ease;
}
.cal-cta:hover { background: var(--brand-darker); }
.cal-cta:focus-visible, .cal-hub:focus-visible, .cal-month a:focus-visible { outline: 3px solid var(--brand-mid); outline-offset: 2px; }

/* 定例日の一覧（ルール型のページ） */
.cal-days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.cal-day {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-height: 44px; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--card);
}
.cal-day-date { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text); }
.cal-day-tag { font-size: 0.72rem; font-weight: 700; color: var(--brand-deep); }
.cal-day.is-rule .cal-day-tag { color: var(--muted); font-weight: 600; }
.cal-day.is-today { border-color: var(--brand); background: var(--brand-bg); }

.cal-note { margin: 12px 0 0; font-size: 0.82rem; line-height: 1.7; color: var(--text-secondary); }

/* 次回の一覧（他の定例キャンペーン） */
.cal-hubs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 8px; }
.cal-hub {
  display: flex; flex-direction: column; gap: 2px; min-height: 44px; padding: 10px 14px;
  border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--card);
  text-decoration: none; transition: border-color 0.15s ease, background 0.15s ease;
}
.cal-hub:hover { border-color: var(--brand); background: var(--brand-bg); }
.cal-hub-name { display: flex; align-items: center; font-weight: 700; color: var(--text); font-size: 0.93rem; }
.cal-hub-when { font-size: 0.82rem; color: var(--text-secondary); font-variant-numeric: tabular-nums; padding-left: 16px; }
.cal-more { margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 0.9rem; }
.cal-more a, .cal-links a { color: var(--brand-deep); font-weight: 600; }

.cal-links { list-style: none; margin: 0; padding: 0; }
.cal-links li { padding: 8px 0; border-bottom: 1px solid var(--border-light); display: flex; flex-wrap: wrap; gap: 4px 12px; }
.cal-links li:last-child { border-bottom: none; }
.cal-links-sub { font-size: 0.86rem; color: var(--text-secondary); }

.cal-faq { margin: 0; }
.cal-faq dt { font-weight: 700; color: var(--text); margin-top: 16px; line-height: 1.6; }
.cal-faq dt:first-child { margin-top: 0; }
.cal-faq dd { margin: 4px 0 0; color: var(--text-secondary); line-height: 1.8; }

/* 月の一覧 */
.cal-month { list-style: none; margin: 0; padding: 0; }
.cal-mday {
  display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 10px;
  padding: 10px 8px; border-bottom: 1px solid var(--border-light);
}
.cal-mday:last-child { border-bottom: none; }
.cal-mday.is-past { opacity: 0.55; }
.cal-mday.is-today { background: var(--brand-bg); border-radius: var(--radius-sm); }
.cal-mday-date { font-weight: 700; font-size: 0.9rem; color: var(--text); font-variant-numeric: tabular-nums; line-height: 1.9; }
.cal-mday-today { display: block; font-size: 0.7rem; color: var(--brand-deep); }
.cal-mday-evs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cal-ev { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 0.92rem; line-height: 1.6; }
.cal-ev a { color: var(--text); text-decoration: none; border-bottom: 1px solid var(--border); }
.cal-ev a:hover { color: var(--brand-deep); border-bottom-color: var(--brand); }
.cal-ev.is-big a, .cal-ev.is-big > span:not(.cal-plat):not(.cal-ev-tag):not(.cal-ev-time) { font-weight: 800; }
.cal-ev-tag { font-size: 0.7rem; color: var(--muted); border: 1px solid var(--border); border-radius: 999px; padding: 0 6px; }
.cal-ev-time { flex-basis: 100%; font-size: 0.8rem; color: var(--text-secondary); padding-left: 2px; }
.cal-monthnav { display: flex; justify-content: space-between; margin-top: 16px; }
.cal-monthnav a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
  border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--brand-deep); font-weight: 700; text-decoration: none;
}

/* 手机は表を「見出しの下に値」の縦積みに（2 列だと見出しが 1 字ずつ折れる） */
@media (max-width: 639px) {
  .cal-page .cal-facts tr { display: block; border-bottom: 1px solid var(--border-light); }
  .cal-page .cal-facts tr:last-child { border-bottom: none; }
  .cal-page .cal-facts th, .cal-page .cal-facts td { display: block; width: auto; border-bottom: none; }
  .cal-page .cal-facts th { padding: 8px 12px 2px; font-size: 0.78rem; background: transparent; color: var(--brand-deep); }
  .cal-page .cal-facts td { padding: 0 12px 10px; }
  .cal-mday { grid-template-columns: 64px minmax(0, 1fr); gap: 8px; padding: 10px 4px; }
}
@media (min-width: 640px) {
  .cal-hubs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cal-hero-date { font-size: 1.85rem; }
  .cal-ev-time { flex-basis: auto; }
}
@media (min-width: 1000px) {
  .cal-hubs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cal-mday { grid-template-columns: 110px minmax(0, 1fr); padding: 10px 12px; }
}

[data-theme="dark"] .cal-plat-rakuten { background: rgba(248, 113, 113, 0.14); color: #fca5a5; }
[data-theme="dark"] .cal-plat-yahoo { background: rgba(251, 113, 133, 0.14); color: #fda4af; }
[data-theme="dark"] .cal-plat-amazon { background: rgba(251, 191, 36, 0.14); color: #fcd34d; }
[data-theme="dark"] .cal-page .cal-facts th { background: var(--brand-bg); color: var(--text); }
[data-theme="dark"] .cal-day-tag, [data-theme="dark"] .cal-mday-today,
[data-theme="dark"] .cal-more a, [data-theme="dark"] .cal-links a, [data-theme="dark"] .cal-monthnav a { color: #6ee7b7; }
