/* ===== 予想屋タイムズ（XXBase 競馬面） ===== */
:root{
  --paper:#f3efe3;
  --paper-2:#ebe5d4;
  --ink:#141414;
  --ink-2:#3a3a3a;
  --muted:#6b675e;
  --red:#c4161c;
  --rule:#141414;
  --hair:#b9b2a1;
  --gothic:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --mincho:"Noto Serif JP","Hiragino Mincho ProN",serif;
  /* JRA 枠色 */
  --w1:#ffffff;--w2:#1b1b1b;--w3:#e8382f;--w4:#2a64c5;--w5:#f5d20d;--w6:#2a9a4a;--w7:#f08c1d;--w8:#f39ab8;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--mincho);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(rgba(0,0,0,.035) 1px,transparent 1.2px);background-size:4px 4px}
a{color:inherit}
p,ul,ol,h1,h2,h3,h4{margin:0}
ul{padding:0;list-style:none}
.wrap{width:min(1180px,100% - 32px);margin-inline:auto}

/* top bar */
.topbar{background:var(--ink);color:#eee;font-family:var(--gothic);font-size:.78rem}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;min-height:32px;gap:12px}
.back-links{display:flex;flex-wrap:wrap;gap:4px 18px}
.back-links a{text-decoration:none}
.back-links a:hover{text-decoration:underline}
.topbar-date{color:#bbb}

/* masthead */
.masthead{border-bottom:6px double var(--rule);padding:18px 0 14px;background:var(--paper)}
.masthead-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.mast-title{text-align:center}
.mast-kicker{font-family:var(--gothic);font-weight:900;font-size:.8rem;letter-spacing:.5em;color:var(--red)}
.mast-title h1{font-family:var(--mincho);font-weight:900;font-size:clamp(2.6rem,7vw,4.6rem);line-height:1.05;letter-spacing:.06em;
  border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:4px 18px;margin:6px 0}
.mast-sub{font-family:var(--gothic);font-weight:700;font-size:.9rem;letter-spacing:.08em}
.mast-side{display:flex}
.mast-right{justify-content:flex-end}
.mast-box{border:2px solid var(--ink);padding:6px 14px;font-family:var(--gothic);font-weight:700;text-align:center;line-height:1.3;background:#fff}
.mast-box span{display:block;font-size:.7rem;letter-spacing:.2em;border-bottom:1px solid var(--ink);margin-bottom:4px;padding-bottom:2px}
.mast-box strong{font-size:1.8rem;font-weight:900}
.mast-box-red{border-color:var(--red);color:var(--red)}
.mast-box-red span{border-color:var(--red)}
.mast-box-red strong{font-size:1.3rem;letter-spacing:.06em}

/* warning */
.warning{margin:14px 0 0;padding:8px 12px;border:1.5px solid var(--red);background:#fff;font-family:var(--gothic);font-size:.82rem;font-weight:500;line-height:1.6}
.warning strong{background:var(--red);color:#fff;padding:1px 8px;margin-right:8px;font-weight:900}

/* corner title */
.corner-title{display:flex;align-items:center;gap:10px;font-family:var(--gothic);font-weight:700;font-size:.8rem;color:var(--ink-2);margin-bottom:8px}
.corner-title span{background:var(--ink);color:#fff;font-weight:900;font-size:.92rem;padding:2px 10px;letter-spacing:.06em}
.corner-title-red span{background:var(--red)}
.mini-title{font-family:var(--gothic);font-weight:900;font-size:.8rem;border-bottom:1px solid var(--ink);margin-bottom:4px;padding-bottom:2px}

/* front */
.front{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;margin:18px 0 8px;padding-bottom:18px;border-bottom:3px solid var(--ink)}
.front-label{font-family:var(--gothic);font-weight:900;color:#fff;background:var(--red);display:inline-block;padding:2px 12px;font-size:.85rem;letter-spacing:.1em}
.headline{font-family:var(--gothic);font-weight:900;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.25;margin:10px 0 14px;letter-spacing:-.01em}
.toc{display:grid;gap:10px}
.toc-item{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"meta meta" "name name" "marks marks";border:2px solid var(--ink);background:#fff;padding:10px 14px;text-decoration:none;gap:2px 10px}
.toc-item:hover{background:#fffbe8}
.toc-meta{grid-area:meta;font-family:var(--gothic);font-weight:700;font-size:.8rem;color:var(--muted)}
.toc-name{grid-area:name;font-family:var(--gothic);font-weight:900;font-size:1.35rem;line-height:1.3}
.toc-marks{grid-area:marks;display:flex;flex-wrap:wrap;gap:2px 16px;font-family:var(--gothic);font-weight:700;font-size:.92rem}
.tm b{color:var(--red);font-size:1.15rem;margin-right:3px}
.grade{display:inline-block;background:var(--red);color:#fff;font-family:var(--gothic);font-weight:900;font-size:.62em;padding:.05em .5em;margin-left:.5em;vertical-align:.2em;letter-spacing:.04em}
.column{border-left:1px solid var(--hair);padding-left:24px}
.column-body{column-count:2;column-gap:22px;column-rule:1px solid var(--hair);font-size:.86rem;line-height:1.75;text-align:justify}
.column-body p{text-indent:1em;margin-bottom:.4em}
.column-body h4{font-family:var(--gothic);font-weight:900;font-size:.92rem;margin:.5em 0 .2em;break-after:avoid;border-bottom:1px solid var(--ink)}
.column-body strong{font-family:var(--gothic)}

/* race */
.race{margin:28px 0 8px;padding-bottom:22px;border-bottom:3px solid var(--ink)}
.race-head{display:flex;align-items:stretch;border:3px solid var(--ink);background:#fff}
.race-no{background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 18px;font-family:var(--gothic);font-weight:900;line-height:1.1;min-width:96px}
.rc-place{font-size:1.1rem}
.rc-r{font-size:2rem}
.race-title{padding:8px 18px;flex:1;min-width:0}
.race-kicker{font-family:var(--gothic);font-size:.78rem;font-weight:700;color:var(--muted)}
.race-title h2{font-family:var(--mincho);font-weight:900;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.2}
.race-spec{font-family:var(--gothic);font-size:.88rem;font-weight:500;margin-top:2px}
.race-spec strong{font-weight:900;font-size:1.05rem}
.race-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin-top:14px}

/* 馬柱 table */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:2px solid var(--ink);background:#fff}
.entries{width:100%;min-width:560px;border-collapse:collapse;font-family:var(--gothic);font-size:.92rem}
.entries th{background:var(--ink);color:#fff;font-weight:700;font-size:.74rem;line-height:1.25;padding:5px 4px;border-right:1px solid #555;white-space:nowrap}
.entries td{border-top:1px solid var(--hair);border-right:1px solid var(--hair);padding:5px 6px;text-align:center;white-space:nowrap}
.entries td:last-child,.entries th:last-child{border-right:0}
.entries .waku{width:34px;font-weight:900;border:1px solid var(--ink);border-left:0}
.w1{background:var(--w1);color:#111}.w2{background:var(--w2);color:#fff}.w3{background:var(--w3);color:#fff}.w4{background:var(--w4);color:#fff}
.w5{background:var(--w5);color:#111}.w6{background:var(--w6);color:#fff}.w7{background:var(--w7);color:#111}.w8{background:var(--w8);color:#111}
.entries .umaban{width:40px;font-weight:900;font-size:1.05rem}
.entries .mark{width:48px;font-size:1.7rem;line-height:1;color:var(--red);font-weight:900;font-family:var(--gothic)}
.entries .horse{text-align:left;font-weight:900;font-size:1.05rem;letter-spacing:.02em;padding-left:10px}
.th-horse{text-align:left;padding-left:10px!important}
.entries .jockey{font-weight:500}
.entries .kin{font-variant-numeric:tabular-nums}
.entries .odds{font-variant-numeric:tabular-nums;font-weight:700;text-align:right;padding-right:10px}
.entries .ninki{font-weight:700}
.entries tr.is-marked td:not(.waku){background:#fff3d6}
.entries tr.is-renka td:not(.waku){background:#fbf8ee}
.table-note{font-family:var(--gothic);font-size:.74rem;color:var(--muted);margin-top:4px}

/* side */
.race-side{display:grid;gap:12px;align-content:start}
.box{background:#fff;border:2px solid var(--ink);padding:10px 12px}
.box .corner-title{margin:-10px -12px 8px;padding:0}
.box .corner-title span{display:block;width:100%;padding:3px 12px}
.box-marks .corner-title span{background:var(--red)}
.pm li{display:flex;align-items:baseline;gap:8px;padding:3px 0;border-bottom:1px dotted var(--hair);font-family:var(--gothic);font-weight:900}
.pm li:last-child{border-bottom:0}
.pm-sym{color:var(--red);font-size:2rem;line-height:1;width:1.1em;text-align:center}
.pm-sub .pm-sym{font-size:1.4rem}
.pm-no{display:inline-grid;place-items:center;min-width:1.7em;height:1.7em;border:1.5px solid var(--ink);font-size:.9rem}
.pm-name{font-size:1.08rem}
.pm-sub .pm-name{font-size:.95rem;font-weight:700}
.bets-lead{font-family:var(--gothic);font-size:.74rem;color:var(--muted);margin-bottom:4px}
.bets li{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px dotted var(--hair);font-family:var(--gothic);font-size:.9rem}
.bets li:last-child{border-bottom:0}
.bt{flex:none;background:var(--ink);color:#fff;font-weight:900;font-size:.74rem;padding:0 6px}
.bv{font-weight:700}
.box-baba p{font-size:.84rem;line-height:1.7}

/* reasons */
.race-bottom{margin-top:16px}
.reasons{column-count:3;column-gap:22px;column-rule:1px solid var(--hair)}
.reason{break-inside:avoid;margin-bottom:12px}
.reason h4{font-family:var(--gothic);font-weight:900;font-size:1rem;display:flex;align-items:center;gap:6px;border-bottom:1.5px solid var(--ink);padding-bottom:2px;margin-bottom:4px}
.rmk{color:var(--red);font-size:1.4rem;line-height:1}
.rno{display:inline-grid;place-items:center;min-width:1.6em;height:1.6em;background:var(--ink);color:#fff;font-size:.78rem}
.reason p{font-size:.88rem;line-height:1.75;text-align:justify}
.race-foot{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px;padding-top:10px;border-top:1px solid var(--ink)}
.notes li,.sources li{font-family:var(--gothic);font-size:.76rem;line-height:1.6;padding-left:1em;text-indent:-1em}
.notes li::before,.sources li::before{content:"・"}
.sources a{word-break:break-all;color:var(--ink-2)}
.pending{font-family:var(--gothic);font-weight:900;font-size:1.4rem;padding:40px;text-align:center;border:2px dashed var(--ink)}

/* footer */
.site-footer{background:var(--ink);color:#ddd;margin-top:32px;padding:28px 0 24px;font-family:var(--gothic);font-size:.8rem;line-height:1.8}
.site-footer p+p{margin-top:8px}
.back-links-foot{margin-bottom:16px;font-size:.88rem;font-weight:700}
.back-links-foot a{border:1px solid #777;padding:4px 14px}
.back-links-foot a:hover{border-color:#fff;text-decoration:none}
.foot-warning{color:#fff;font-weight:700;border-left:4px solid var(--red);padding-left:10px}
.foot-built,.copy{color:#999}

/* responsive */
@media (max-width:960px){
  .front{grid-template-columns:minmax(0,1fr)}
  .column{border-left:0;padding-left:0;border-top:1px solid var(--hair);padding-top:14px}
  .race-grid{grid-template-columns:minmax(0,1fr)}
  .race-side{grid-template-columns:repeat(2,1fr)}
  .box-baba{grid-column:1/-1}
  .reasons{column-count:2}
}
@media (max-width:600px){
  body{font-size:14px}
  .wrap{width:calc(100% - 20px)}
  .masthead-inner{grid-template-columns:1fr;gap:8px}
  .mast-side{display:none}
  .mast-title h1{font-size:2.5rem;padding:2px 6px}
  .mast-kicker{letter-spacing:.3em}
  .mast-sub{font-size:.8rem}
  .column-body{column-count:1}
  .headline{font-size:1.5rem}
  .race-no{min-width:70px;padding:6px 10px}
  .rc-r{font-size:1.5rem}
  .race-title{padding:6px 10px}
  .race-title h2{font-size:1.55rem}
  .race-spec{font-size:.8rem}
  .race-side{grid-template-columns:minmax(0,1fr)}
  .reasons{column-count:1}
  .race-foot{grid-template-columns:1fr}
  .topbar-inner{font-size:.74rem}
}
.umabashira,.race-side,.front-main,.column{min-width:0}
.scroll-hint{display:none;font-family:var(--gothic);font-size:.72rem;color:var(--muted);text-align:right;margin:-4px 0 4px}
@media (max-width:600px){.scroll-hint{display:block}}
