/* New England High Power — Granite & Pine theme */
@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Source+Serif+4:wght@400;600&family=Barlow:wght@400;600&display=swap");
:root {
  --nh-head:#1F3D2B; --nh-head2:#2C5039; --nh-accent:#8C918D; --nh-accent2:#3E6B4A;
  --nh-bg:#F4EFE4; --nh-ink:#22261F; --nh-muted:#565C55; --nh-link:#2E6B3F; --nh-linkh:#1F3D2B;
  --nh-card:#FFFDF8; --nh-line:#DDD5C4; --nh-zebra:#F3EEE2; --nh-hover:#E7EFE4;
  --nh-th:#4C534F; --nh-thtext:#FFFFFF;
  --nh-hfont:"Barlow Condensed","Avenir Next Condensed","Arial Narrow",sans-serif; --nh-bfont:"Source Serif 4","Source Serif Pro",Charter,Georgia,serif; --nh-tfont:"Barlow","Avenir Next","Helvetica Neue",Arial,sans-serif; --nh-navfont:"Barlow","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --navy:var(--nh-head); --gold:var(--nh-accent); --bg:var(--nh-bg); --ink:var(--nh-ink); --muted:var(--nh-muted); --blue:var(--nh-link); --line:var(--nh-line);
}
html { -webkit-text-size-adjust:100%; }
body { font-family:var(--nh-bfont); color:var(--nh-ink); background:var(--nh-bg);  }
a { color:var(--nh-link); text-underline-offset:2px; }
a:hover { color:var(--nh-linkh); }

/* Header + nav */
header { background:#1F3D2B; color:#fff; padding:14px 22px; padding-right:84px; gap:8px 4px; border-bottom:6px solid #8C918D; background-image:linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 100%); background-size:6px 6px; }
header a { font-family:var(--nh-navfont); color:#E3EBE1; font-size:13px; white-space:nowrap; letter-spacing:.02em; text-transform:none; margin-right:0; padding:6px 10px; border-radius:999px; transition:background .15s,color .15s; }
header a:hover { color:#1F3D2B; background:#E9E4D8; }
header .brand, header a.brand { font-family:var(--nh-hfont); color:#F4EFE4; font-size:26px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-right:18px; padding:0; display:flex; align-items:center; gap:12px; background:none; line-height:1.1; }
header .brand:hover { background:none; color:#F4EFE4; }
header .perry-patch { height:56px; }

/* Page body */
main { padding-top:26px; }
h1 { font-family:var(--nh-hfont); color:var(--nh-head); font-weight:700; letter-spacing:.02em; text-transform:uppercase; line-height:1.15;  }
h2 { font-family:var(--nh-hfont); color:var(--nh-head); }
.tag, .sub { color:var(--nh-muted); }
.card, .latest-news, details.local-matches { background:var(--nh-card); border:1px solid var(--nh-line); border-radius:8px;  }
.card { border-top:4px solid #1F3D2B; }
.latest-news { border-top:4px solid #8C918D; }
.latest-news h2 { font-family:var(--nh-hfont); color:var(--nh-head); text-transform:uppercase; letter-spacing:.05em; font-size:20px; }
.latest-news p[style], .latest-news table { color:var(--nh-head) !important; }
.card a, .latest-news a { color:var(--nh-link); }
.card p, .latest-news p, .note, footer { color:var(--nh-muted); }
.highs { background:var(--nh-card); border-left:4px solid var(--nh-accent); border-radius:8px; box-shadow:0 1px 0 var(--nh-line); }
.score-club-rail .score-club-blurb { color:var(--nh-head); }
.champ, .idline { color:var(--nh-accent2); }
.nums div { background:var(--nh-zebra); border-radius:6px; }
.nums b, .fine b { color:var(--nh-head); }
details.local-matches { border-top:4px solid #1F3D2B; }
details.local-matches > summary { color:var(--nh-head); font-family:var(--nh-hfont); }
details.local-matches > summary::before { color:var(--nh-accent2); }
footer { border-top:1px solid var(--nh-line); padding-top:12px; }

/* Tables */
table { width:100%; font-family:var(--nh-tfont); font-variant-numeric:tabular-nums; background:var(--nh-card); border:1px solid var(--nh-line); border-radius:8px; overflow:hidden; }
.latest-news table { width:auto; border:0; background:transparent; font-family:var(--nh-tfont); }
.latest-news table td { border:0; background:transparent !important; }
th { background:var(--nh-th); color:var(--nh-thtext); font-family:var(--nh-navfont); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:8px 9px; border-bottom:3px solid #1F3D2B; }
td { border-bottom:1px solid var(--nh-line); padding:7px 9px; }
tr:nth-child(even) td { background:var(--nh-zebra); }
tbody tr:hover td { background:var(--nh-hover); }
td a { font-weight:600; text-decoration:none; }
td a:hover { text-decoration:underline; }

/* Mobile */
@media (max-width:720px) {
  header { padding:10px 12px; padding-right:62px; gap:2px 0; }
  header .brand { width:100%; font-size:22px; margin:0 0 6px; }
    header a { font-size:12px; padding:5px 7px; }
  header .perry-patch { height:44px; top:12px; transform:none; }
  main { padding:18px 12px 48px; }
  h1 { font-size:24px; }
  main { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table { display:table; width:100%; font-size:13px; }
  th { font-size:10.5px; letter-spacing:.03em; padding:7px 5px; }
  td { padding:6px 5px; white-space:nowrap; }
  td a { white-space:normal; }
  .latest-news table { display:table; }
  .latest-news table td { white-space:normal; }
}
h1 { font-size:34px; }
.card a { color:#1F3D2B; }
@media (max-width:720px){ h1 { font-size:27px; } }


/* NEHP header layout + logo */
header { display:flex; align-items:center; flex-wrap:wrap; position:relative; }
header .logo-wrap { display:inline-block !important; width:58px; height:58px; flex:0 0 58px; border-radius:50%; overflow:visible; background:transparent !important; }
header .logo-wrap img { width:100%; height:100%; object-fit:contain; display:block; }
header .perry-patch { position:absolute; right:14px; top:50%; transform:translateY(-50%); width:auto; display:block; }
header .subnav { flex:0 0 100%; display:flex; flex-wrap:wrap; gap:2px 2px; margin-top:4px; padding-top:6px; border-top:1px solid rgba(233,228,216,.18); }
header .subnav a { font-size:12px; padding:3px 9px; color:#C9D6C6; }
.range-table td.date { white-space:nowrap; }
h2.range-sub { margin-top:34px; }
@media (max-width:720px) {
  header .logo-wrap { width:46px; height:46px; flex-basis:46px; }
  header .subnav a { font-size:11px; padding:3px 6px; }
}
@media (min-width:721px){ header { gap:6px 2px; } header > a:not(.brand){ padding:6px 6px; font-size:12.5px; } header .brand, header a.brand { font-size:24px; margin-right:10px; } }
.match-no{margin:0 0 12px;font-size:12px;color:#777;font-family:Arial,sans-serif;}


/* Club badges (main header pages: header.with-clubs). Pages without the class keep the Camp Perry patch. */
header.with-clubs { padding-right:327px; }
header .club-badges { position:absolute; right:10px; top:50%; transform:translateY(-50%); display:flex; align-items:center; gap:8px; line-height:0; }
header .club-badges a { display:block; padding:0; margin:0; background:none; border-radius:4px; line-height:0; transition:transform .15s; }
header .club-badges a:hover, header .club-badges a:focus-visible { background:none; transform:translateY(-1px); }
header .club-badges a:focus-visible { outline:2px solid #E9E4D8; outline-offset:2px; }
header .club-badges img { height:60px; width:auto; display:block; }
@media (max-width:1100px) {
  header.with-clubs { padding-right:282px; }
  header .club-badges { gap:6px; right:10px; }
  header .club-badges img { height:52px; }
}
@media (max-width:720px) {
  header.with-clubs { padding-right:12px; }
  header .club-badges { position:static; transform:none; order:99; flex:0 0 100%; justify-content:flex-end; gap:8px; margin-top:6px; }
  header .club-badges img { height:44px; }
}

.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;
}
