.race-section {
  padding:90px 0
}
.race-type-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:45px
}
.race-type-tabs a {
  padding:11px 25px;
  border:1px solid #d5dfe6;
  border-radius:999px;
  color:#42566a;
  text-decoration:none
}
.race-type-tabs a.is-active {
  background:#193d63;
  color:#fff;
  border-color:#193d63
}
.race-layout {
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:55px
}
.race-archive {
  align-self:start;
  padding:23px;
  background:#f5f8fa;
  border-radius:12px
}
.race-archive h2 {
  margin:0 0 15px;
  color:#193d63;
  font-size:15px
}
.race-archive a {
  display:block;
  padding:10px 8px;
  border-bottom:1px solid #e1e7eb;
  color:#42566a;
  text-decoration:none
}
.race-archive a.is-active {
  color:#9b7a45;
  font-weight:700
}
.race-group {
  margin-bottom:50px
}
.race-group h2 {
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:2px solid #193d63;
  color:#193d63;
  font-size:20px
}
.race-table-wrap {
  overflow-x:auto
}
.race-table {
  width:100%;
  border-collapse:collapse
}
.race-table th,.race-table td {
  padding:14px 16px;
  border-bottom:1px solid #dfe5e9;
  text-align:left;
  font-size:14px
}
.race-table th {
  color:#7b8791;
  font-weight:700;
  font-size:12px
}
.race-pdf-link {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 16px;
  border-radius:6px;
  background:#193d63;
  color:#fff;
  text-decoration:none;
  font-size:13px
}
.race-pdf-link:hover {
  background:#0f2c48
}
.race-empty {
  padding:50px;
  text-align:center;
  background:#f7f9fa;
  color:#7b8791
}
.race-sub-heading {
  margin:70px 0 20px;
  padding-bottom:12px;
  border-bottom:2px solid #9b7a45;
  color:#193d63;
  font-size:22px
}
@media(max-width:760px) {
  .race-section {
    padding:60px 0
  }
  .race-layout {
    display:block
  }
  .race-archive {
    margin-bottom:30px
  }
  .race-archive a {
    display:inline-block;
    margin-right:8px
  }
}
.race-card-list {
  display:grid;
  gap:16px
}
.race-result-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:24px 28px;
  background:#fff;
  border:1px solid #e0e7eb;
  border-radius:12px;
  box-shadow:0 8px 24px rgba(25,61,99,.05)
}
.race-result-main {
  min-width:0
}
.race-result-org {
  margin:0 0 6px;
  color:#8a7450;
  font-size:12px;
  font-weight:700
}
.race-result-card h3 {
  margin:0;
  color:#193d63;
  font-size:19px
}
.race-result-summary {
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  margin-top:10px;
  color:#65717b;
  font-size:13px
}
.race-result-summary span {
  display:inline-flex;
  align-items:center;
  gap:6px
}
.race-result-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  flex-shrink:0
}
.race-result-actions a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 15px;
  border:1px solid #193d63;
  border-radius:6px;
  color:#193d63;
  text-decoration:none;
  font-size:13px;
  font-weight:700
}
.race-result-actions a:first-child {
  background:#193d63;
  color:#fff
}
.race-detail {
  padding:40px;
  background:#fff;
  border:1px solid #e0e7eb;
  border-radius:16px;
  box-shadow:0 12px 35px rgba(25,61,99,.06)
}
.race-detail-heading {
  padding-bottom:25px;
  border-bottom:2px solid #193d63
}
.race-detail-year {
  display:inline-block;
  margin-bottom:8px;
  color:#9b7a45;
  font-weight:700
}
.race-detail-heading h2 {
  margin:0;
  color:#193d63;
  font-size:clamp(24px,3vw,34px)
}
.race-detail-heading p {
  margin:10px 0 0;
  color:#66737e
}
.race-detail-subtitle {
  margin:35px 0 18px;
  color:#193d63;
  font-size:20px
}
.race-detail-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid #dfe5e9;
  border-left:1px solid #dfe5e9
}
.race-detail-grid>div {
  display:grid;
  grid-template-columns:145px 1fr;
  border-right:1px solid #dfe5e9;
  border-bottom:1px solid #dfe5e9
}
.race-detail-grid dt,.race-detail-grid dd {
  margin:0;
  padding:15px
}
.race-detail-grid dt {
  background:#f5f8fa;
  color:#526271;
  font-weight:700
}
.race-detail-grid dd {
  color:#202d38
}
.race-pdf-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px
}
.race-pdf-actions a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 22px;
  border-radius:7px;
  text-decoration:none;
  font-weight:700
}
.race-action-primary {
  background:#193d63;
  color:#fff
}
.race-action-secondary {
  border:1px solid #193d63;
  color:#193d63
}
.race-action-pedigree {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 22px;
  border-radius:7px;
  border:1px solid #8b6a2f;
  background:#fffaf0;
  color:#765822;
  font-weight:700;
  text-decoration:none
}
.race-winner-media {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:20px;
  margin-top:28px
}
.race-winner-image {
  width:100%;
  max-width:300px;
  margin:0
}
.race-winner-image figcaption {
  margin-bottom:10px;
  color:#193d63;
  font-size:16px;
  font-weight:700
}
.race-winner-image figcaption small {
  color:#65717b;
  font-size:11px;
  font-weight:400
}
.race-winner-image a {
  display:block;
  cursor:zoom-in
}
.race-winner-image img {
  display:block;
  width:100%;
  height:auto;
  max-height:680px;
  object-fit:contain;
  border:1px solid #e0e4e8;
  border-radius:8px;
  background:#f7f8f8
}
.race-result-winner-media {
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0
}
.race-result-winner-media>a:first-child {
  cursor:zoom-in
}
.race-result-winner-image {
  display:block;
  width:120px;
  height:90px;
  object-fit:contain;
  border-radius:7px
}
.race-lightbox {
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(8,18,25,.86);
  opacity:0;
  visibility:hidden;
  transition:opacity .2s ease,visibility .2s ease
}
.race-lightbox.is-open {
  opacity:1;
  visibility:visible
}
.race-lightbox-content {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%
}
.race-lightbox-image {
  display:block;
  max-width:calc(100vw - 48px);
  max-height:calc(100vh - 48px);
  width:auto;
  height:auto;
  border-radius:8px;
  box-shadow:0 16px 60px rgba(0,0,0,.45)
}
.race-lightbox-close {
  position:absolute;
  top:0;
  right:0;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid rgba(255,255,255,.65);
  border-radius:50%;
  background:rgba(0,0,0,.45);
  color:#fff;
  cursor:pointer;
  font-size:28px;
  line-height:1
}
.race-lightbox-close:hover {
  background:#fff;
  color:#193d63
}
.race-pdf-preview {
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:24px
}
.race-pdf-preview img {
  width:100%;
  height:auto;
  display:block;
  border:1px solid #e0e4e8;
  border-radius:6px;
  box-shadow:0 4px 12px rgba(0,0,0,.06)
}
@media(max-width:760px) {
  .race-lightbox {
    padding:15px
  }
  .race-lightbox-image {
    max-width:calc(100vw - 30px);
    max-height:calc(100vh - 30px)
  }
  .race-lightbox-close {
    top:8px;
    right:8px
  }
  .race-result-card {
    display:block;
    padding:20px
  }
  .race-result-actions {
    justify-content:flex-start;
    margin-top:18px
  }
  .race-detail {
    padding:24px 18px
  }
  .race-detail-grid {
    grid-template-columns:1fr
  }
  .race-detail-grid>div {
    grid-template-columns:110px 1fr
  }
  .race-pdf-actions a {
    width:100%;
    justify-content:center
  }
  .race-result-winner-image {
    width:100%;
    height:auto;
    max-height:320px;
    object-fit:contain
  }
  .race-result-winner-media {
    align-items:stretch;
    flex-direction:column;
    margin-top:18px
  }
  .race-winner-media {
    align-items:stretch;
    flex-direction:column
  }
  .race-winner-media .race-action-pedigree {
    width:100%
  }
}
/* レース概要：旧結果表を意識したコンパクトな罫線表示 */
.race-detail-list {
  display:grid;
  gap:28px
}
.race-detail-compact {
  padding:28px 30px
}
.race-detail-compact .race-detail-heading {
  padding-bottom:16px
}
.race-detail-compact .race-detail-heading h3 {
  margin:0;
  color:#193d63;
  font-size:22px
}
.race-detail-compact .race-detail-subtitle {
  margin:22px 0 10px;
  font-size:16px
}
.race-overview-table {
  border-top:1px solid #6f777d;
  border-left:1px solid #6f777d;
  background:#fff
}
.race-overview-row {
  display:grid
}
.race-overview-row-3 {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.race-overview-row-2 {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.race-overview-row-1 {
  grid-template-columns:1fr
}
.race-overview-cell {
  display:grid;
  grid-template-columns:minmax(88px,34%) minmax(0,1fr);
  min-height:42px;
  border-right:1px solid #6f777d;
  border-bottom:1px solid #6f777d;
  font-size:13px;
  line-height:1.5
}
.race-overview-cell span,.race-overview-cell strong {
  display:flex;
  align-items:center;
  padding:8px 10px
}
.race-overview-cell span {
  justify-content:center;
  background:#f5f7f7;
  color:#344451;
  font-weight:700;
  letter-spacing:.04em;
  white-space:nowrap
}
.race-overview-cell strong {
  color:#202d38;
  font-weight:500
}
@media(max-width:760px) {
  .race-detail-compact {
    padding:22px 16px
  }
  .race-overview-row-3,.race-overview-row-2 {
    grid-template-columns:1fr
  }
  .race-overview-cell {
    grid-template-columns:105px minmax(0,1fr);
    font-size:12px
  }
  .race-overview-cell span,.race-overview-cell strong {
    padding:8px
  }
}
.race-result-table-wrap{margin:0 0 35px;overflow-x:auto;border:1px solid #d7dce1;border-radius:8px;background:#fff}.race-result-table{width:100%;min-width:900px;border-collapse:collapse;font-size:14px}.race-result-table th,.race-result-table td{padding:12px 10px;border-right:1px solid #e3e6e9;border-bottom:1px solid #e3e6e9;text-align:center;white-space:nowrap}.race-result-table th{background:#1b4164;color:#fff;font-weight:700}.race-result-table tbody tr:nth-child(even){background:#f7f9fb}.race-result-table td:last-child,.race-result-table th:last-child{border-right:0}.race-pdf-actions{flex-wrap:wrap}
.race-result-table th:nth-child(1),.race-result-table td:nth-child(1){width:58px;padding-left:7px;padding-right:7px}.race-result-table th:nth-child(4),.race-result-table td:nth-child(4){width:48px;padding-left:6px;padding-right:6px}
@media(max-width:767px){.race-result-table{font-size:12px}.race-result-table th,.race-result-table td{padding:9px 7px}}
