/* ===== Facility (digest) ===== */
.digest-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center; }
.digest-copy p { margin: 0 0 16px; color: var(--text-body); font-size: 16px; line-height: 1.95; }
.digest-copy p:last-of-type { margin-bottom: 0; }
.digest-media { position: relative; display: flex; justify-content: center; }
.digest-media__circle { position: absolute; top: -24px; left: 0; width: 150px; height: 150px; border-radius: 50%; background: var(--blue-050); z-index: 0; }
.digest-media__photo { position: relative; z-index: 1; width: min(46vw, 500px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: var(--shadow-portrait); }
.digest-media__photo img { width: 100%; height: 100%; object-fit: cover; }
.digest-media__badge {
  position: absolute; bottom: 12px; right: 8px; z-index: 2; background: var(--blue-600); color: #fff;
  font-size: 14px; font-weight: 700; padding: 12px 22px; border-radius: var(--radius-pill); box-shadow: var(--shadow-chip);
}

.gallery-head { display: flex; align-items: flex-end; justify-content: space-between; margin: 90px 0 26px; }
.gallery-head__label { font-family: var(--font-latin); font-weight: 700; font-size: 14px; letter-spacing: var(--tracking-label); color: var(--text-meta); margin: 0; }
.gallery-head__link { font-weight: 700; font-size: 16px; color: var(--blue-600); }

.specs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 44px; }

/* ===== Case & voice ===== */
.case-carousel-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 28px; }
.case-track-wrap { overflow: hidden; padding: 6px; }
.case-track { display: flex; width: 100%; transition: transform var(--dur-carousel) var(--ease-out); }
.case-track__item { flex: 0 0 33.3333%; padding-right: 22px; box-sizing: border-box; }

/* ===== City ===== */
.city-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 22px; }
.city-video-panel { background: #fff; border-radius: var(--radius-panel); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow-panel); }
.city-video-panel__frame { position: relative; aspect-ratio: 16 / 9; background: #000; }
.city-video-panel__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.city-video-panel__body { padding: 34px 38px; }
.city-video-panel__title { font-family: var(--font-display); font-weight: 700; font-size: var(--size-h3); margin: 0 0 12px; }
.city-video-panel__desc { margin: 0 0 18px; color: var(--text-body); font-size: 16px; line-height: 1.9; }
.city-video-panel__link { font-weight: 700; font-size: 16px; color: var(--blue-600); }

.city-data-panel { background: var(--surface-navy); color: #fff; border-radius: var(--radius-panel); padding: 44px 40px; display: flex; flex-direction: column; }
.city-data-panel__title { font-family: var(--font-display); font-weight: 700; font-size: var(--size-h3); margin: 0 0 24px; }
.city-data-panel__list { display: flex; flex-direction: column; gap: 13px; flex: 1; }
.city-data-panel__link { margin-top: 26px; font-weight: 700; font-size: 16px; color: var(--blue-400); }

/* ===== Projects ===== */
.projects-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }

/* ===== News ===== */
.news-list { display: flex; flex-direction: column; gap: 12px; }

/* ===== SP (mobile) ===== */
@media (max-width: 767px) {
  .digest-grid { grid-template-columns: 1fr; gap: 40px; }
  .digest-media { order: -1; margin-bottom: 8px; }
  .digest-media__circle { width: 110px; height: 110px; }
  .digest-media__photo { width: min(70vw, 320px); }

  .gallery-head { flex-direction: column; align-items: flex-start; gap: 8px; margin: 56px 0 20px; }

  .specs-grid { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 32px; }

  .case-carousel-head { flex-direction: row; align-items: center; }
  .case-track__item { flex: 0 0 100%; padding-right: 0; }

  .city-video-panel__body { padding: 24px 22px; }

  .projects-grid, .support-grid { gap: 16px; }
}

