/* Across the Course — original Camp Perry theme (navy + cream + copper)
   Site-wide stylesheet. Palette lives in :root; change it here to re-theme every page. */
@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Source+Serif+4:wght@400;600&family=Barlow:wght@400;600;700&display=swap");
:root {
  /* Original Camp Perry palette (pre-theme inline styles) + copper accents */
  --atc-navy:#1A2744;    /* original header / headings / card top rule */
  --atc-navy2:#0A1630;   /* original logo backing; deep navy */
  --atc-gold:#C9A227;    /* original gold (on navy only) */
  --atc-copper:#9C5A2C;  /* burnt orange / copper accent rule */
  --atc-copper2:#B9834F; /* light copper / tan rule */
  --atc-tan:#9A7A4A;     /* gold-tan text on cream/white */
  --atc-brand:#D2B27A;   /* tan-gold brand on navy */
  --atc-navtext:#F1ECE2; /* nav link text on navy */
  --atc-head:var(--atc-navy);
  --atc-bg:#F7F4EE; --atc-card:#FFFFFF;
  --atc-ink:#1A1A1A; --atc-muted:#555555; --atc-faint:#777777;
  --atc-link:#1A2744; --atc-linkh:#9C5A2C;
  --atc-line:#DDD4C4; --atc-tline:#E5E0D6; --atc-zebra:#F4F1EA; --atc-hover:#F8EDE1; --atc-prov:#FFF6E0;
  --atc-th:var(--atc-navy); --atc-thtext:#FFFFFF;
  --atc-hfont:"Barlow Condensed","Avenir Next Condensed","Arial Narrow",sans-serif;
  --atc-bfont:"Source Serif 4","Source Serif Pro",Charter,Georgia,serif;
  --atc-tfont:"Barlow","Avenir Next","Helvetica Neue",Arial,sans-serif;
  /* legacy names still referenced by inline style attributes */
  --navy:var(--atc-navy); --gold:var(--atc-tan); --ink:var(--atc-ink); --muted:var(--atc-muted); --bg:var(--atc-bg); --blue:var(--atc-link); --card:var(--atc-card); --line:var(--atc-line);
}

/* ================= Base ================= */
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font:16px/1.5 var(--atc-bfont); color:var(--atc-ink); background:var(--atc-bg); }
a { color:var(--atc-link); text-underline-offset:2px; }
a:hover { color:var(--atc-linkh); }
main { max-width:1100px; margin:0 auto; padding:26px 18px 60px; position:relative; }
main:has(.home-stack) { max-width:900px; }
main:has(#q) { max-width:720px; }
main:has(> .list):not(:has(#q)) { max-width:900px; }

h1 { margin:0 0 8px; }
h2 { margin:28px 0 10px; }
h2.section-label { margin:22px 0 8px; }
h3 { font-size:16px; margin:18px 0 8px; font-family:var(--atc-tfont); }
h3 .cnt, .jumps .cnt { color:var(--atc-faint); font-weight:400; }
ol { margin:8px 0 0 18px; padding:0; }
.tag { margin:0 0 22px; }
.sub { font-style:italic; margin:0 0 18px; }
.idline, p.home { margin:2px 0 10px; font-size:15px; letter-spacing:.03em; }
.home { margin:0 0 14px; font-style:normal; }
.also { margin:0 0 6px; font-style:normal; }
.champ { margin:4px 0 14px; font-size:15px; line-height:1.45; letter-spacing:.02em; }
.match-no { margin:0 0 12px; font-size:12px; font-family:var(--atc-tfont); letter-spacing:.06em; }
.note { margin:22px 0 8px; font-size:14px; }
.note p { margin:0 0 10px; } .note p:last-child { margin:0; }
.tiny { font-size:13px; margin:0 0 8px; }
.jumps { font-size:13px; margin:0 0 14px; }
.archive-link { margin:0 0 16px; }
.nd { font-style:normal; font-weight:normal; font-size:13px; margin-left:4px; }
.scale { margin-bottom:10px; }
.hide { display:none !important; }
.legal { margin:0; }
.gold { color:var(--atc-tan); }
.gray, .nolink, span.dead { color:var(--atc-faint); }
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.live { display:inline-block; font:700 11px/1 var(--atc-tfont); letter-spacing:.08em; text-transform:uppercase; padding:4px 8px; margin:0 0 10px; }
footer { margin-top:36px; font-size:13px; }

/* Header */
header { display:flex; align-items:center; flex-wrap:wrap; gap:8px 4px; position:relative; padding:14px 22px; padding-right:84px; }
header a { text-decoration:none; }
header .brand, header a.brand, .brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
header .logo-wrap { width:58px; height:58px; flex:0 0 58px; border-radius:50%; overflow:hidden; display:inline-block; background:transparent; }
header .logo-wrap img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
header .brand img { height:52px; width:52px; border-radius:50%; }
header .logo-wrap img { height:100%; width:100%; }
header a.arch { opacity:.85; } header .arch:hover { opacity:1; }
header .perry-patch { position:absolute; right:14px; top:50%; transform:translateY(-50%); height:60px; width:auto; display:block; }
header .nav-here { font-family:var(--atc-tfont); font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 10px; }

/* Home page */
.home-stack { position:relative; }
.sponsor { margin:18px 0 12px; display:flex; justify-content:center; align-items:center; gap:40px; flex-wrap:wrap; }
.sponsor a { display:block; line-height:0; flex:0 0 auto; }
.sponsor img { width:360px; max-width:360px; height:auto; display:block; }
.sponsor-rail { position:absolute; left:calc(100% + 18px); top:0; display:flex; flex-direction:column; align-items:stretch; gap:20px; width:180px; z-index:2; }
.sponsor-rail a { display:block; line-height:0; }
.sponsor-rail img { width:180px; max-width:180px; height:auto; display:block; }
.score-club-rail { position:absolute; right:calc(100% + 18px); top:0; display:flex; flex-direction:column; align-items:center; gap:16px; width:240px; z-index:2; }
.score-club-rail .score-club-blurb { font-family:var(--atc-tfont); font-size:12px; line-height:1.35; text-align:center; margin:0; }
.score-club-rail img { width:160px; max-width:160px; height:auto; display:block; background:transparent; }
img[src$="record-holder.png"], img[src*="score-club-"] { aspect-ratio:1/1 !important; object-fit:contain !important; }
.score-club-rail img, .sponsor img { height:auto; }
.card a, .latest-news a { font-weight:700; text-decoration:none; }
.card p, .latest-news p { margin:6px 0 0; }
.latest-news { padding:16px 18px; margin:0 0 12px; }
.latest-news h2 { margin:0 0 10px; }
.card { padding:16px 18px; margin:0 0 12px; }
.card.nehp-link a { font-family:var(--atc-tfont); font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }

/* Grids of cards (profiles, nationals, rankings) */
.cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0 26px; }
.cards:not(:has(> .card ~ .card)) { grid-template-columns:1fr; max-width:560px; }
.cards .card, .grid .card { margin:0; padding:16px 18px 18px; }
.grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:12px 0 8px; }
.card h2 { margin:0 0 6px; font-size:18px; letter-spacing:.04em; }
.card .span { font-size:13px; margin:0 0 10px; }
.nums { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 10px; }
.nums div { padding:8px 10px; min-width:64px; }
.nums b { display:block; font-size:20px; line-height:1.1; }
.nums span { display:block; font:11px/1.2 var(--atc-tfont); text-transform:uppercase; letter-spacing:.04em; margin-top:3px; }
.fine { font-size:13px; margin:3px 0; }
.awards { padding:12px 16px; margin:14px 0 18px; }
.toc { padding:12px 16px; margin:0 0 18px; }
.toc a { margin-right:14px; font-family:var(--atc-tfont); font-size:13px; text-decoration:none; }
.champ-block { margin:6px 0 28px; clear:both; }
.champ-block table { font-size:13px; }
.champ-block td, .champ-block th, .champ-block td.ev, .wins td:nth-child(1), .wins td:nth-child(3),
table.results td:nth-child(1), table.results td:nth-child(n+3) { white-space:nowrap; }

/* Profile score-club badges */
.badge-row { display:inline-flex; align-items:center; gap:8px; margin-left:10px; vertical-align:middle; }
.score-club-icon, .badge-row img { width:88px !important; height:88px !important; max-width:88px !important; max-height:88px !important; aspect-ratio:1/1 !important; object-fit:contain !important; object-position:center; flex-shrink:0; vertical-align:middle; display:block; margin-left:0; }
/* Directory rows: 52px */
a.row .badge-row { margin-left:0; justify-self:end; }
a.row .score-club-icon, a.row .badge-row img { width:52px !important; height:52px !important; max-width:52px !important; max-height:52px !important; }
/* Badges inside tables (rankings): 36px */
table .badge-row { flex-wrap:nowrap; gap:4px; margin-left:8px; white-space:nowrap; }
table .score-club-icon, table .badge-row img { width:36px !important; height:36px !important; max-width:36px !important; max-height:36px !important; }

/* Directory + archive lists */
#q { width:100%; padding:10px 12px; font:16px var(--atc-tfont); border:1px solid var(--atc-line); margin:0 0 14px; background:#fff; }
#count { font-size:13px; margin:-8px 0 12px; }
.list { background:var(--atc-card); border:1px solid var(--atc-line); }
main:has(#q) .list { background:transparent; border:0; border-top:1px solid var(--atc-line); }
.row { display:block; padding:10px 14px; border-bottom:1px solid var(--atc-line); text-decoration:none; color:inherit; }
main:has(#q) a.row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:12px; padding:12px 4px; }
.nm { font-weight:700; }
main:has(#q) .nm { font-size:17px; }
.tits { font-size:13px; margin-top:2px; }
main:has(#q) .tits { font-weight:600; margin-top:4px; line-height:1.4; grid-column:1 / -1; }
main:has(#q) .also { font-size:12px; margin-top:3px; grid-column:1 / -1; }

/* Rankings */
.rating { font-weight:700; font-size:16px; }
.marks { font-size:13px; }
.nd-rank-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-top:28px; flex-wrap:wrap; }
.nd-rank-head h2 { margin:0; }
.nd-rank-head .archive-link { margin:0; text-align:right; flex:1 1 auto; }
.nd-rank-head .archive-link a { font-size:14px; }

/* High scores */
table.scores { margin:0 0 6px; }
td.match { font-size:13px; }
td.rank { text-align:right; font-variant-numeric:tabular-nums; font-family:var(--atc-tfont); font-size:13px; font-weight:700; white-space:nowrap; width:4.5em; }
td.sc { font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
main:has(table.scores) h2 { font-size:24px; margin:28px 0 6px; padding-bottom:6px; }

/* Collapsible bands */
details.local-matches, details.nd-two, details.rank-prov, details.hs-band { padding:0 0 8px; }
details.local-matches { margin-top:22px; }
details.nd-two { margin-top:18px; margin-bottom:18px; }
details.rank-prov { margin:12px 0 28px; }
details.hs-band { margin:18px 0 8px; }
details.local-matches > summary, details.nd-two > summary, details.rank-prov > summary, details.hs-band > summary { cursor:pointer; list-style:none; padding:12px 16px; font-size:19px; font-weight:700; }
details.rank-prov > summary { font-size:17px; }
details > summary::-webkit-details-marker { display:none; }
details.local-matches > summary::before, details.nd-two > summary::before, details.rank-prov > summary::before, details.hs-band > summary::before { content:"▸ "; }
details.local-matches[open] > summary::before, details.nd-two[open] > summary::before, details.rank-prov[open] > summary::before, details.hs-band[open] > summary::before { content:"▾ "; }
details.local-matches .local-body, details.nd-two .nd-two-body { padding:0 12px 12px; }
details.rank-prov .rank-prov-body, details.hs-band .hs-band-body { padding:0 10px 10px; }
details.local-matches table, details.nd-two table, details.rank-prov table, details.hs-band table.scores { margin-top:0; }
details.hs-band h3 { display:none; }

/* Match results */
.highs { padding:8px 12px; margin:0 0 16px; }

/* Tables (base) */
table { border-collapse:collapse; width:100%; font-size:14px; }
th { text-align:left; padding:8px 9px; }
td { padding:7px 9px; vertical-align:top; }
tr.win td { font-weight:700; }
/* Very wide result grids (Games aggregates): compact + no wrap, scroll on phones */
table:has(th:nth-child(14)) { font-size:12px; }
table:has(th:nth-child(14)) th, table:has(th:nth-child(14)) td { padding:5px 6px; white-space:nowrap; }
table:has(th:nth-child(14)) td:nth-child(2) { white-space:normal; }

/* ================= Camp Perry theme ================= */
header { background:var(--atc-head); color:#fff; border-bottom:3px solid var(--atc-copper); box-shadow:inset 0 -3px 0 var(--atc-copper2); }
header a { font-family:var(--atc-tfont); color:var(--atc-navtext); font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; margin-right:0; padding:6px 10px; border-radius:999px; transition:background .15s,color .15s; }
header a:hover { color:var(--atc-navy); background:var(--atc-brand); }
header .brand, header a.brand { font-family:var(--atc-hfont); color:var(--atc-brand); font-size:26px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; margin-right:18px; padding:0; background:none; line-height:1.1; }
header .brand:hover { background:none; color:#fff; }
header .logo-wrap { background:var(--atc-navy2); }
header .nav-here { color:#fff; }

h1 { font-family:var(--atc-hfont); font-weight:800; font-size:40px; letter-spacing:.04em; text-transform:uppercase; line-height:1.1; color:var(--atc-navy); }
h1::after { content:""; display:block; width:74px; height:5px; margin-top:10px; background:var(--atc-copper); box-shadow:0 -2px 0 var(--atc-copper2); }
h2 { font-family:var(--atc-hfont); color:var(--atc-navy); font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:20px; }
h3 { color:var(--atc-navy); }
main:has(table.scores) h2 { border-bottom:2px solid var(--atc-copper); }
.tag, .sub, .card p, .card .span, .latest-news p, .note, footer, .tiny, .marks, td.match, #count, .home, .also, .tits, .match-no, .jumps, .nd { color:var(--atc-muted); }
.tag { margin-top:14px; font-family:var(--atc-tfont); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--atc-tan); }
.champ, .idline, p.home { color:var(--atc-navy); }
main:has(#q) .tits { color:var(--atc-tan); }
.gold { color:var(--atc-tan); }
.nm, .rating, td.rank, td.sc, .awards b, .fine b { color:var(--atc-navy); }
.live { background:var(--atc-navy); color:var(--atc-brand); }
#q:focus { outline:2px solid var(--atc-copper); }

/* Cards: white, warm hairline, navy top rule (news card: copper-tan top rule) */
.card, .latest-news, details.local-matches, details.nd-two, details.rank-prov, details.hs-band, .toc, .awards {
  background:var(--atc-card); border:1px solid var(--atc-line); border-top:4px solid var(--atc-navy); border-radius:2px; box-shadow:none;
}
.latest-news { border-top-color:var(--atc-copper2); }
details.rank-prov, details.hs-band, details.local-matches, details.nd-two { border-top-width:3px; }
.highs { background:var(--atc-card); border:1px solid var(--atc-line); border-left:4px solid var(--atc-copper); }
.card a, .latest-news a { color:var(--atc-navy); }
.card a:hover, .latest-news a:hover { color:var(--atc-copper); text-decoration:underline; }
.card h2, .latest-news h2 { color:var(--atc-navy); }
.latest-news h2 { font-size:20px; }
.latest-news p[style], .latest-news table { color:var(--atc-navy) !important; }
.latest-news table { font-family:var(--atc-tfont); width:auto; border:0; background:transparent; }
.latest-news table td { border:0; background:transparent !important; }
.score-club-rail .score-club-blurb { color:var(--atc-navy); }
.card.nehp-link a { color:var(--atc-navy); }
.card.nehp-link a:hover { color:var(--atc-copper); }

/* Stat boxes: original cream tiles, navy numbers */
.nums div { background:var(--atc-zebra); border-bottom:2px solid var(--atc-copper2); }
.nums b { color:var(--atc-navy); font-family:var(--atc-tfont); font-weight:700; }
.nums span { color:#666; }
.fine { color:var(--atc-muted); }

details > summary { color:var(--atc-navy); font-family:var(--atc-hfont); text-transform:uppercase; letter-spacing:.05em; }
details > summary::before { color:var(--atc-copper); }

footer { border-top:1px solid var(--atc-line); padding-top:12px; }

/* Tables: original navy headers, white text, warm zebra */
table { font-family:var(--atc-tfont); font-variant-numeric:tabular-nums; background:var(--atc-card); border:1px solid var(--atc-line); }
th { background:var(--atc-th); color:var(--atc-thtext); font-family:var(--atc-tfont); font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; border-bottom:2px solid var(--atc-copper); }
td { border-bottom:1px solid var(--atc-tline); }
tr:nth-child(even) td { background:var(--atc-zebra); }
tr.prov td { background:var(--atc-prov); }
tbody tr:hover td { background:var(--atc-hover); }
td a { color:var(--atc-navy); font-weight:700; text-decoration:none; }
td a:hover { color:var(--atc-copper); text-decoration:underline; }
.row:hover, a.row:hover { background:var(--atc-hover); }
.row, a.row { color:inherit; }

/* ================= Responsive ================= */
@media (max-width:1180px) { .sponsor-rail { display:none; } }
@media (max-width:820px) {
  .cards, .grid { grid-template-columns:1fr; }
  .sponsor { gap:28px; }
  .sponsor img { width:min(360px,100%); max-width:360px; }
}
@media (min-width:721px) { header > a:not(.brand) { padding:6px 7px; font-size:12.5px; } header .brand, header a.brand { font-size:24px; margin-right:10px; } }
@media (max-width:720px) {
  header { padding:10px 12px; padding-right:62px; gap:2px 0; }
  header .brand, header a.brand { width:100%; font-size:22px; margin:0 0 6px; }
  header a { font-size:11.5px; padding:5px 7px; letter-spacing:.04em; }
  header .logo-wrap { width:46px; height:46px; flex-basis:46px; }
  header .perry-patch { height:44px; right:10px; top:12px; transform:none; }
  main { padding:18px 12px 48px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  h1 { font-size:30px; }
  table { font-size:13px; }
  th { font-size:10.5px; letter-spacing:.04em; padding:7px 5px; }
  td { padding:6px 5px; }
  .latest-news table td { white-space:normal; }
}
@media (max-width:640px) {
  table .badge-row { margin-left:6px; gap:3px; }
  table .score-club-icon, table .badge-row img { width:32px !important; height:32px !important; max-width:32px !important; max-height:32px !important; }
}

/* ================= Ranking tabs ================= */
.rk-tabs { display:flex; gap:4px; align-items:flex-end; margin:22px 0 0; padding:8px 8px 0; background:var(--atc-navy); border:1px solid var(--atc-navy); border-bottom:0; border-radius:4px 4px 0 0; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.rk-tabs::-webkit-scrollbar { display:none; }
.rk-tab { flex:0 0 auto; appearance:none; -webkit-appearance:none; border:1px solid rgba(210,178,122,.55); border-bottom:0; border-radius:4px 4px 0 0; background:var(--atc-navy2); color:var(--atc-brand); font-family:var(--atc-tfont); font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:9px 16px 8px; cursor:pointer; position:relative; top:1px; white-space:nowrap; }
.rk-tab:hover { color:#fff; background:#24365C; }
.rk-tab:focus-visible { outline:2px solid var(--atc-brand); outline-offset:-4px; }
.rk-tab[aria-selected="true"] { background:var(--atc-card); color:var(--atc-navy); border-color:var(--atc-card); box-shadow:inset 0 3px 0 var(--atc-copper); z-index:2; padding-bottom:10px; }
.rk-panels { background:var(--atc-card); border:1px solid var(--atc-line); border-top:3px solid var(--atc-copper); padding:4px 14px 16px; }
.rk-panel[hidden] { display:none; }
.rk-panel > h2:first-of-type, .rk-panel .nd-rank-head { margin-top:14px; }
.rk-panel h1 { font-size:30px; }
@media (max-width:720px) {
  .rk-tabs { padding:6px 5px 0; gap:3px; overflow:visible; }
  .rk-tab { flex:1 1 0; min-width:0; white-space:normal; line-height:1.15; font-size:11.5px; letter-spacing:.03em; padding:8px 6px 7px; text-align:center; }
  .rk-tab[aria-selected="true"] { padding-bottom:9px; }
  .rk-panels { padding:2px 8px 12px; overflow-x:auto; }
  .rk-panel h1 { font-size:24px; }
}

/* Stage leaderboards */
td.rating, td.st, .marks a { white-space:nowrap; }

/* rifle designation: MR tag on field sheets, Rifle column on match rifle profiles */
.rf { display:inline-block; margin-left:5px; padding:1px 3px 0; border:1px solid currentColor; border-radius:2px; color:var(--atc-copper); font:700 9.5px/1.25 var(--atc-tfont); letter-spacing:.06em; vertical-align:1px; white-space:nowrap; }
td.rfc .rf { margin-left:0; } td.rfc .rf.sr { color:var(--atc-navy); }
th.rfc, td.rfc { width:1%; padding-left:4px; padding-right:4px; text-align:center; white-space:nowrap; }
