:root{--ink:#1c1f24;--muted:#6b7280;--line:#e6e8ec;--bg:#ffffff;--soft:#f5f6f8;--brand:#b5342a;--brand-ink:#7a1f18;--brand-soft:#fbeeea;--gold:#e0a33a;--navy:#1f3a5f;--green:#2f7d4f;--link:#1a5fb4}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7;font-size:16px}
a{color:var(--link)}
.wrap{max-width:880px;margin:0 auto;padding:0 16px}
/* header */
.site-header{background:var(--ink);color:#fff;border-bottom:2px solid var(--gold)}
.header-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
.brand-mark{width:38px;height:38px}
.brand-text{display:flex;align-items:baseline;gap:6px}
.brand-name{font-size:26px;font-weight:900;letter-spacing:.06em;line-height:1}
.brand-kana{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:.04em}
.tagline{margin:0;font-size:13px;opacity:.8}
.nav{margin-left:auto;display:flex;gap:4px;font-size:14px}
.nav a{text-decoration:none;color:#fff;padding:4px 10px;border-radius:6px;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.12)}
main{padding:14px 0 40px}
h1{font-size:24px;margin:10px 0 6px;line-height:1.35;font-weight:700}
h2{font-size:18px;margin:26px 0 8px;font-weight:700}
h3{font-size:15px;margin:16px 0 6px;font-weight:700}
.crumbs{font-size:12px;color:var(--muted)}
.crumbs a{color:var(--muted)}
.page-head{padding-bottom:6px;border-bottom:3px solid var(--brand);margin-bottom:12px}
.date-chip{display:inline-block;font-size:15px;background:var(--brand);color:#fff;padding:1px 10px;border-radius:14px;vertical-align:middle;margin-left:4px}
.lead{margin:4px 0 6px}
.meta-line,.note{font-size:13px;color:var(--muted);margin:2px 0}
.note{background:var(--soft);padding:8px 12px;border-radius:6px;margin:10px 0}
/* marks */
.mk{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-weight:700;font-size:15px;line-height:1;vertical-align:middle}
.mk-1{background:var(--brand);color:#fff}
.mk-2{background:var(--navy);color:#fff}
.mk-3{background:var(--green);color:#fff}
.mk-4{background:#e9ecf1;color:#4b5563}
.meta-line .mk{width:20px;height:20px;font-size:12px;margin:0 1px}
/* race blocks */
.race-jump{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.race-jump a{font-size:13px;text-decoration:none;color:var(--ink);background:var(--soft);border:1px solid var(--line);padding:2px 10px;border-radius:14px;font-weight:500}
.race-jump a:hover{border-color:var(--brand);color:var(--brand)}
.race{margin:26px 0 0;padding-top:12px;border-top:2px solid var(--ink)}
.race-head{display:flex;align-items:flex-start;gap:12px}
.rno{flex:none;display:inline-flex;align-items:baseline;justify-content:center;min-width:52px;height:44px;padding:0 8px;background:var(--ink);color:#fff;font-weight:900;font-size:24px;border-radius:8px;line-height:44px}
.rno small{font-size:12px;margin-left:2px;font-weight:700}
.race-title h2{margin:0;font-size:19px;line-height:1.3}
.grade{font-size:12px;color:#fff;background:var(--brand);padding:1px 8px;border-radius:3px;vertical-align:middle;margin-left:4px;font-weight:700}
.race-meta{margin:2px 0 0;font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:0 12px}
.summary{margin:10px 0 8px;font-size:15px;font-weight:500}
table.marks{width:100%;border-collapse:collapse;font-size:15px;table-layout:fixed}
table.marks th{font-weight:500;font-size:12px;color:var(--muted);text-align:left;padding:4px 4px;border-bottom:1px solid var(--line)}
table.marks td{padding:5px 4px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.c-mark{width:40px;text-align:center!important}
.c-num{width:44px;text-align:center!important}
.uma{display:inline-block;min-width:24px;font-weight:700;font-variant-numeric:tabular-nums}
.c-idx{width:92px;text-align:right!important;font-variant-numeric:tabular-nums;position:relative}
.c-idx .bar{position:absolute;left:4px;top:50%;height:8px;width:calc(var(--w) * .7);max-width:60px;transform:translateY(-50%);background:#f0d6d0;border-radius:4px}
.c-idx .idx{position:relative;font-weight:700}
.c-idx .idx.muted{color:var(--muted);font-weight:400}
.c-jockey{width:80px}
.c-ninki{width:42px;text-align:right!important;color:var(--muted)}
.c-fin{width:56px;text-align:right!important}
tr.rk1 td{background:#fff6f3}
tr.rk1 td.c-name{font-weight:700}
tr.rk2 td,tr.rk3 td{background:#fcfbf9}
tr.rk1 .c-idx .bar{background:#eeb8ad}
tr.abnormal td{color:var(--muted);text-decoration:line-through}
tr.abnormal td.c-fin{text-decoration:none}
.fin{font-weight:700}
.fin-1{color:var(--brand)}
.fin-2{color:var(--navy)}
.fin-3{color:var(--green)}
.fin-x{font-weight:400;color:var(--muted)}
.sexage{font-size:11px;color:var(--muted);margin-left:3px}
.pending{font-size:13px;color:var(--muted);margin:6px 0}
.result-line{margin:8px 0 0;font-size:14px;background:var(--soft);padding:8px 12px;border-radius:6px;border-left:4px solid var(--gold)}
/* PR */
.pr{margin:12px 0 4px;padding:12px 14px;background:var(--brand-soft);border:1px solid #f0d3cb;border-radius:10px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pr-body{flex:1 1 260px}
.pr-label{display:inline-block;font-size:11px;color:var(--brand-ink);border:1px solid var(--brand-ink);border-radius:3px;padding:0 5px;line-height:1.5;font-weight:700}
.pr-lead{margin:4px 0 0;font-size:14px}
.pr-button{flex:none;display:inline-block;text-decoration:none;background:var(--brand);color:#fff;padding:9px 16px;border-radius:8px;font-size:14px;font-weight:700;box-shadow:0 2px 0 var(--brand-ink)}
.pr-button:hover{background:var(--brand-ink)}
/* lists */
.archive-list ul{padding-left:18px;font-size:14px;columns:2;column-gap:24px}
.faq dt{font-weight:700;margin-top:10px}
.faq dd{margin:2px 0 0 0;font-size:15px}
/* hero + top */
.hero{position:relative;display:block;padding:36px 32px;margin:14px 0 10px;border-radius:14px;overflow:hidden;color:#fff;background:#14161a url(/static/hero.jpg) right center/cover no-repeat;min-height:290px}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,22,26,.97) 0%,rgba(20,22,26,.86) 38%,rgba(20,22,26,.25) 68%,rgba(20,22,26,0) 100%)}
.hero-text{position:relative;max-width:520px}
.hero-kicker{margin:0;font-size:13px;color:var(--gold);font-weight:700;letter-spacing:.12em}
.hero h1{font-size:38px;line-height:1.25;margin:4px 0 10px;font-weight:900;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.55)}
.hero-lead{margin:0;font-size:15px;color:#e6e8ec;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.hero-lead .mk{width:22px;height:22px;font-size:13px;margin:0 1px}
.day h2{display:flex;align-items:center;gap:10px}
.day-label{display:inline-block;border-left:6px solid var(--brand);padding-left:10px}
.meeting-list{list-style:none;padding:0;margin:6px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.meeting-list li a{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.meeting-list li a:hover{border-color:var(--brand)}
.m-kind{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px;color:#fff}
.k-nar{background:var(--navy)}
.k-jra{background:var(--green)}
.m-venue{font-weight:700;font-size:17px}
.m-count{font-size:12px;color:var(--muted);margin-left:auto;text-align:right;line-height:1.3}
.m-marked{display:block;color:var(--brand);font-weight:700}
.m-wait{display:block}
.venue-links a{display:inline-block;margin:0 8px 8px 0;font-size:14px;text-decoration:none;color:var(--ink);background:var(--soft);border:1px solid var(--line);padding:4px 12px;border-radius:16px;font-weight:500}
.venue-links a:hover{border-color:var(--brand);color:var(--brand)}
.venue-cards{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.venue-cards a{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}
.venue-cards a:hover{border-color:var(--brand)}
.v-name{display:block;font-weight:700}
.v-date{display:block;font-size:12px;color:var(--muted)}
.jusho-list{padding-left:18px;font-size:15px}
.jusho-list li{margin:4px 0}
.page h2{font-size:17px}
.page table{border-collapse:collapse;font-size:15px}
.page td,.page th{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}
.contact-mail{font-size:18px}
/* footer */
.site-footer{border-top:1px solid var(--line);background:var(--soft);font-size:12px;color:var(--muted);padding:16px 0 28px;margin-top:20px}
.footer-links a{margin-right:12px;color:var(--muted)}
.disclaimer{margin:0 0 8px}
.copyright{margin:6px 0 0}
@media (max-width:560px){
  .brand-name{font-size:22px}
  .tagline{display:none}
  .nav{margin-left:auto}
  .nav a{padding:4px 7px;font-size:13px}
  h1{font-size:21px}
  .hero{padding:24px 18px;min-height:250px;background-position:72% center;border-radius:12px}
  .hero::before{background:linear-gradient(180deg,rgba(20,22,26,.55) 0%,rgba(20,22,26,.85) 60%,rgba(20,22,26,.97) 100%)}
  .hero h1{font-size:29px}
  table.marks{font-size:14px}
  table.marks td{padding:5px 2px}
  table.marks td.c-name{white-space:normal;line-height:1.3}
  .c-mark{width:32px}
  .mk{width:24px;height:24px;font-size:14px}
  .c-num{width:32px}
  .c-idx{width:52px}
  .c-idx .bar{display:none}
  .c-jockey{width:58px;font-size:12px}
  .c-ninki{width:32px}
  .c-fin{width:42px}
  .sexage{display:none}
  .rno{min-width:44px;height:38px;line-height:38px;font-size:20px}
  .race-title h2{font-size:17px}
  .pr-button{width:100%;text-align:center}
  .archive-list ul{columns:1}
}
