@charset "UTF-8";
/* ============================================================
   access.css ― アクセス・診療時間
   ⚠ 診療時間表：記号は aria-hidden、意味は .u-sr-only。
     .u-sr-only を置くセルには .u-anchor（position:relative）が要る。
     無いと包含ブロックがビューポートになり文書幅があふれる
     （REBUILD_SPEC 6-4 の事故）。
   ============================================================ */

.p-access {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

/* --- 地図（装飾のベクター。公開時にGoogleマップへ差し替え）--- */
.p-access__map {
  height: 440px;
  margin-bottom: 48px;
}

/* --- 見出し・本文 -------------------------------------------- */
.p-access__title {
  margin-bottom: 24px;
  font-family: var(--f-mincho);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: var(--ls-mincho);
  color: var(--c-ink-strong);
}
.p-access__title--table { margin-bottom: 32px; }

.p-access__address {
  margin-bottom: 20px;
  font-size: 14.5px;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--c-ink);
}
.p-access__route {
  font-size: 13.5px;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--c-ink-sub);
}
.p-access__lead {
  font-size: 13.5px;
  line-height: 2.3;
  letter-spacing: 0.05em;
  color: var(--c-ink-sub);
}

/* --- 診療時間表 ---------------------------------------------- */
.p-access__tablewrap { position: relative; }
.p-access__scroller { overflow-x: auto; }

.p-access__table {
  width: 100%;
  min-width: 640px;
  table-layout: fixed;
  border-collapse: collapse;
  border: var(--border);
  border-radius: var(--radius);
  background: var(--c-card);
  color: var(--c-ink);
}
.p-access__table th:first-child { width: 18.6%; }

/* 見出し行（濃色。背景と文字を対で指定する） */
.p-access__table thead tr {
  background: linear-gradient(135deg, var(--c-brand-dark), var(--c-brand));
  color: var(--c-gold-pale);
}
.p-access__table thead th {
  padding: 16px 0;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-align: center;
  color: var(--c-gold-pale);
}
.p-access__table thead th:first-child {
  padding: 16px 20px;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-align: left;
}

/* 本文行 */
.p-access__table tbody tr {
  background: var(--c-card);
  color: var(--c-ink);
  border-top: 1px solid var(--c-base-alt);
}
.p-access__table tbody th {
  padding: 18px 20px;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: left;
  color: var(--c-ink);
}
.p-access__cell {
  padding: 18px 0;
  text-align: center;
  font-family: var(--f-latin);
  font-size: 16px;
}
/* 記号の色は情報。白地の上で 4.5:1 を満たす3色だけを使う */
.p-access__cell--open   { color: var(--c-brand); }     /* ○ 診療        7.70:1 */
.p-access__cell--short  { color: var(--c-gold-info); } /* △ 土曜のみ短縮 4.84:1 */
.p-access__cell--closed { color: var(--c-mute); }      /* − 休診        4.94:1 */

/* 右端のグラデーション影＋注記（横スクロールできる合図）。
   1024px未満だけ出す（REBUILD_SPEC 2章・9章2） */
.p-access__fade {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 32px;
  background: linear-gradient(90deg, transparent, var(--c-base));
  pointer-events: none;
}
.p-access__hint { display: none; margin-top: 16px; }
.p-access__legend { margin-top: 16px; }

@media (max-width: 1023px) {
  .p-access__fade { display: block; }
  .p-access__hint { display: block; }
}
