:root{
  --ink:#071c20;
  --panel:#0b2b30;
  --panel2:#0f333a;
  --paper:#f6f2e9;
  --paper2:#ece4d2;
  --amber:#e2a250;
  --amber-bright:#f0b45f;
  --bronze:#a8663c;
  --teal:#32737b;
  --line:rgba(255,255,255,0.10);
  --line-dark:rgba(7,28,32,0.14);
  --ink-soft:#a9bfc0;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html, body{overflow-x:hidden; max-width:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Work Sans', sans-serif; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:'Oswald', sans-serif; font-weight:600; letter-spacing:0.01em; margin:0;}
a{color:inherit;}
.wrap{max-width:1080px; margin:0 auto; padding:0 40px;}
img{max-width:100%; display:block;}

/* ---------- NAV ---------- */
.nav{background:var(--ink); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:60;}
.nav-links{
  display:flex; flex-wrap:nowrap; align-items:center; gap:clamp(2px,0.9vw,8px); overflow-x:auto;
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;
  max-width:1080px; margin:0 auto; padding:8px clamp(4px,2.5vw,20px);
}
.nav-links a{
  color:#fff; text-decoration:none; font-size:clamp(9.5px,2.4vw,13px); font-weight:600;
  font-family:'Oswald',sans-serif; letter-spacing:0; text-transform:uppercase;
  padding:clamp(5px,1.6vw,10px) clamp(2px,1.1vw,14px); border-radius:3px; border:1px solid var(--line);
  background:rgba(255,255,255,0.04); transition:background .15s ease, border-color .15s ease;
  white-space:nowrap; flex-shrink:1;
}
.nav-links a:hover{background:rgba(255,255,255,0.09);}
.nav-links a.active{background:var(--amber-bright); color:#1c1206; border-color:var(--amber-bright);}
.nav-links a.nav-primary{background:#3a6ea5; border-color:#3a6ea5; color:#fff;}
.nav-links a.nav-primary:hover{background:#4680bd;}
.nav-links a.nav-primary.active{background:var(--amber-bright); border-color:var(--amber-bright); color:#1c1206;}

/* ---------- FLOATING MOBILE MENU ---------- */
.fab{
  display:none;
  position:fixed; right:18px; bottom:18px; z-index:70;
  width:56px; height:56px; border-radius:50%;
  background:var(--amber-bright); color:#1c1206;
  align-items:center; justify-content:center;
  border:none; box-shadow:0 6px 18px rgba(0,0,0,0.35);
  cursor:pointer;
}
.fab svg{width:24px; height:24px;}
.fab .ic-close{display:none;}
.fab.open .ic-menu{display:none;}
.fab.open .ic-close{display:block;}

.fab-menu{
  display:none;
  position:fixed; right:18px; bottom:84px; z-index:69;
  background:var(--ink); border:1px solid var(--line); border-radius:12px;
  padding:8px; min-width:200px;
  box-shadow:0 10px 30px rgba(0,0,0,0.4);
  transform:translateY(8px) scale(0.97); opacity:0; pointer-events:none;
  transition:opacity .16s ease, transform .16s ease;
}
.fab-menu.show{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.fab-menu a{
  display:flex; align-items:center; gap:10px;
  color:#fff; text-decoration:none; font-size:15px; font-weight:500;
  padding:12px 14px; border-radius:8px;
}
.fab-menu a svg{width:18px; height:18px; opacity:0.8; flex-shrink:0;}
.fab-menu a.active{background:rgba(240,180,95,0.14); color:var(--amber-bright);}
.fab-menu a:not(.active):hover{background:rgba(255,255,255,0.06);}
.fab-scrim{
  position:fixed; inset:0; z-index:65; background:rgba(0,0,0,0.35);
  opacity:0; pointer-events:none; transition:opacity .16s ease;
}
.fab-scrim.show{opacity:1; pointer-events:auto;}

/* ---------- HERO ---------- */
.hero{
  background:var(--ink);
  position:relative; overflow:hidden; padding:38px 0 30px; border-bottom:1px solid var(--line);
}
.hero .wrap{position:relative; z-index:1;}
.hero-flex{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.hero-logo-link{flex-shrink:0;}
.hero-logo{height:120px; width:auto; display:block;}
.hero h1{color:#fff; font-size:clamp(32px,5.6vw,52px); line-height:1.0; text-transform:uppercase; position:relative; z-index:1;}
.hero .season{color:var(--amber-bright); font-size:clamp(14px,2vw,20px); font-family:'Oswald',sans-serif; font-weight:500; text-transform:uppercase; margin-top:6px; letter-spacing:0.02em; position:relative; z-index:1;}
.hero p.lead{color:var(--ink-soft); font-size:14.5px; max-width:520px; margin-top:14px; line-height:1.55; position:relative; z-index:1;}
.hero-actions{margin-top:20px; display:flex; gap:12px; position:relative; z-index:1; flex-wrap:wrap;}
.btn{font-family:'Oswald',sans-serif; font-weight:600; font-size:14px; letter-spacing:0.03em; text-transform:uppercase; padding:13px 20px; border-radius:2px; text-decoration:none; display:inline-block; border:1px solid transparent; cursor:pointer;}
.btn-primary{background:var(--amber-bright); color:#1c1206;}
.btn-ghost{border:1px solid var(--line); color:#fff; background:none;}

.hero-sub{padding-top:30px; padding-bottom:30px; border-bottom:1px solid var(--line-dark); background:var(--paper);}
.hero-sub h2{font-size:26px; text-transform:uppercase;}

/* ---------- SECTIONS ---------- */
.section{padding-top:40px; padding-bottom:40px;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:12px; margin-bottom:20px; flex-wrap:wrap; gap:4px;}
.section-head h2{font-size:23px; text-transform:uppercase;}
.section-head .meta{font-size:12.5px; color:#736c58;}

/* ---------- LEDGER (results table rows) ---------- */
.ledger{border-top:1px solid var(--line-dark);}
.lrow{display:grid; grid-template-columns:44px 1fr 80px 100px; gap:16px; align-items:center; padding:13px 10px; border-bottom:1px solid var(--line-dark);}
.lrow.head{font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:#736c58; border-bottom:2px solid var(--ink); padding-bottom:9px;}
.lrow .pos{font-family:'Oswald',sans-serif; font-size:17px;}
.lrow.r1{background:rgba(226,162,80,0.22); border-left:4px solid var(--bronze); position:relative;}
.lrow.r1 .pos{color:#fff; background:var(--bronze); border-radius:50%; width:34px; height:34px; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; box-shadow:0 2px 6px rgba(125,90,45,0.4);}
.lrow.r2{background:rgba(154,163,166,0.16); border-left:4px solid #9aa3a6;}
.lrow.r2 .pos{color:#fff; background:#9aa3a6; border-radius:50%; width:31px; height:31px; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; box-shadow:0 2px 6px rgba(100,105,108,0.35);}
.lrow.r3{background:rgba(182,131,90,0.14); border-left:4px solid #b6835a;}
.lrow.r3 .pos{color:#fff; background:#b6835a; border-radius:50%; width:29px; height:29px; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; box-shadow:0 2px 6px rgba(140,100,65,0.35);}
.lrow.r1 .nm, .lrow.r1 .wt{font-weight:700;}
.lrow.r2 .nm, .lrow.r2 .wt{font-weight:700;}
.lrow.r3 .nm, .lrow.r3 .wt{font-weight:700;}
.lrow.r1, .lrow.r2, .lrow.r3{padding-left:14px;}
.fish-chips{display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; margin-top:10px;}
.fish-chip{
  display:inline-flex; align-items:center; gap:5px; white-space:nowrap;
  background:var(--paper2); border:1px solid var(--line-dark); border-radius:20px;
  padding:6px 14px; font-size:14px; font-weight:600; color:#3a3729;
  font-family:'Oswald',sans-serif;
}
.fish-chip i{font-style:normal; color:#8c8874; font-weight:400; font-size:12px;}

.search-box{
  width:100%; padding:13px 16px; margin-bottom:14px;
  border:1px solid var(--line-dark); border-radius:4px; font-size:15px;
  font-family:'Work Sans',sans-serif; background:#fff; color:var(--ink);
}
.search-box:focus{outline:2px solid var(--amber); outline-offset:1px;}
.lrow .nm{font-size:14.5px;}
.lrow .nm small{display:block; color:#8c8874; font-size:11px;}
.lrow .sec{font-size:12px; color:#736c58;}
.lrow .wt{font-family:'Oswald',sans-serif; font-size:16px; text-align:right;}

/* full generalka rows: give the team column room for the fish-chip
   breakdown, and make the total weight bigger/bolder since it's one of
   the most important numbers for competitors. */
.lrow.full{grid-template-columns:44px 1.6fr 70px 110px;}
.lrow.full .wt{font-size:20px; font-weight:700;}

/* ---------- SECTOR LEADER / GENERIC CARD GRID ---------- */
.sector-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:0; border-left:1px solid var(--line-dark);}
.sector-card{border-right:1px solid var(--line-dark); padding:16px 14px; border-top:3px solid var(--teal);}
.sector-card .tag{font-size:11px; text-transform:uppercase; letter-spacing:0.07em; color:#736c58; font-weight:600;}
.sector-card .wt{font-family:'Oswald',sans-serif; font-size:24px; margin:8px 0 6px;}
.sector-card .nm{font-size:12.5px; color:#3a3729; line-height:1.3;}
.sector-card .peg{font-size:11px; color:#8c8874; margin-top:3px;}
.sector-card.empty{color:#a39d89; font-style:italic; font-size:12.5px;}

/* ---------- TROPHIES (big fish) ---------- */
.trophies{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-left:1px solid var(--line-dark);}
.trophy{border-right:1px solid var(--line-dark); padding:18px 16px; border-top:3px solid var(--amber);}
.trophy .species{font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#736c58; font-weight:600;}
.trophy .weight{font-family:'Oswald',sans-serif; font-size:30px; margin:8px 0 5px;}
.trophy .angler{font-size:13px; color:#3a3729;}

/* ---------- STATS STRIP ---------- */
.stats-strip{background:var(--ink); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.stats-grid{display:grid; grid-template-columns:repeat(6,1fr); text-align:center;}
.stats-grid div{padding:22px 12px;}
.stats-grid .n{font-family:'Oswald',sans-serif; color:var(--amber-bright); font-size:21px;}
.stats-grid .l{color:var(--ink-soft); font-size:12px; margin-top:3px;}

/* ---------- TABS (Wyniki page) ---------- */
.tabs{display:flex; gap:6px; margin-bottom:0; overflow-x:auto; -webkit-overflow-scrolling:touch;}
.tab{flex:0 0 auto; padding:11px 18px; border:1px solid var(--line-dark); background:#fff; color:var(--ink); text-decoration:none; font-family:'Oswald',sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:0.03em; border-radius:3px 3px 0 0; border-bottom:none; cursor:pointer;}
.tab.active{background:var(--ink); color:#fff;}
.tabpanel{display:none; border:1px solid var(--line-dark); border-radius:0 3px 3px 3px; padding:0;}
.tabpanel.active{display:block;}

/* ---------- GENERIC CONTENT (regulamin, archiwum) ---------- */
.prose{max-width:760px; line-height:1.7; font-size:15px;}
.prose h2{font-size:20px; margin:28px 0 10px; text-transform:none; font-family:'Oswald',sans-serif;}
.prose ol,.prose ul{padding-left:22px;}
.prose li{margin-bottom:8px;}
.prose strong{color:var(--ink);}

.msg{border-radius:6px; padding:14px 16px; font-size:14px; margin:16px 0;}
.msg.info{background:#eef4f2; border:1px solid var(--line-dark); color:#3a3729;}
.msg.error{background:#fbeceb; border:1px solid #e3b3ae; color:#7a2d24;}

/* ---------- SPONSORS ---------- */
.sponsors{background:var(--paper2); padding:30px 0; border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);}
.sponsor-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:26px;}
.sponsor-row .s{font-family:'Oswald',sans-serif; font-size:14.5px; color:#8c8874; filter:grayscale(1); opacity:0.75; letter-spacing:0.02em; transition:all .2s ease;}
.sponsor-row .s:hover{opacity:1; filter:none; color:var(--ink);}

.sponsor-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.sponsor-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  border:1px solid var(--line); border-radius:8px; padding:28px 22px; text-decoration:none;
  background:#1c3b3d; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease, background .15s ease;
  min-height:150px;
}
.sponsor-card:hover{border-color:var(--amber-bright); transform:translateY(-3px); box-shadow:0 8px 20px rgba(0,0,0,0.25); background:#234749;}
.sponsor-card img{height:64px; max-height:64px; max-width:100%; width:auto; object-fit:contain;}
.sponsor-card .name{font-family:'Oswald',sans-serif; font-size:13px; color:#fff; text-align:center;}

/* a few logos are themselves white/light on a transparent background and
   would vanish on a white card — flag them with darkCard:true in config.js */
.sponsor-card.dark-card{background:var(--panel2); border-color:var(--line);}
.sponsor-card.dark-card .name{color:#fff;}
/* the reverse case: a few logos are thin dark line-art that becomes nearly
   invisible on the dark page — give those a light card instead. */
.sponsor-card.light-card{background:#eee7d8; border-color:var(--line-dark);}
.sponsor-card.light-card .name{color:var(--ink);}

/* dark page treatment for the Sponsorzy page: most logos have a baked-in
   white backing, so cards stay white/light (avoids ugly boxes reappearing
   against a dark page) while the page itself around them goes dark. */
body.page-sponsorzy{background:var(--ink);}
body.page-sponsorzy .hero-sub{background:var(--ink); border-bottom-color:var(--line);}
body.page-sponsorzy .hero-sub h2{color:#fff;}
body.page-sponsorzy .sponsorzy-section{background:var(--ink);}

footer{background:var(--ink); color:var(--ink-soft); padding:22px 0; font-size:12px;}
.footer-inner{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}

/* ---------- ARCHIVE list ---------- */
.archive-list{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.archive-card{border:1px solid var(--line-dark); border-radius:6px; padding:18px 20px; text-decoration:none; color:var(--ink); transition:border-color .15s ease, background .15s ease;}
.archive-card:hover{border-color:var(--amber);}
.archive-card.active{border-color:var(--amber-bright); background:rgba(226,162,80,0.10);}
.archive-card .season{font-family:'Oswald',sans-serif; font-size:19px; text-transform:uppercase;}
.archive-card .date{font-size:12.5px; color:#736c58; margin-top:4px;}
.archive-card .arrow{margin-top:10px; font-size:13px; color:var(--bronze); font-weight:600;}
.archive-summary-img{width:100%; max-width:640px; display:block; margin:0 auto; border-radius:8px; border:1px solid var(--line-dark);}

/* ---------- MAP page ---------- */
.map-frame{border:1px solid var(--line-dark); border-radius:6px; overflow:hidden;}

@media(max-width:760px){
  .wrap{padding:0 20px;}
  .nav-links{padding:8px 8px;}
  .hero{padding:18px 0 16px;}
  .hero-actions{gap:10px;}
  .btn{padding:12px 14px; font-size:12.5px;}
  .section{padding-top:30px; padding-bottom:30px;}
  .lrow{grid-template-columns:36px 1fr 82px; gap:8px; padding:13px 6px;}
  .lrow.full{grid-template-columns:34px 1fr 96px; gap:6px;}
  .lrow.full .wt{font-size:15px; white-space:normal;}
  .lrow .sec{display:none;}
  .sector-grid{grid-template-columns:repeat(2,1fr); border-left:none; gap:12px;}
  .sector-card{border:1px solid var(--line-dark); border-top:3px solid var(--teal);}
  .trophies{grid-template-columns:repeat(2,1fr); border-left:none; gap:12px;}
  .trophy{border:1px solid var(--line-dark); border-top:3px solid var(--amber);}
  .stats-grid{grid-template-columns:repeat(3,1fr);}
  .stats-grid div{padding:14px 10px;}
  .stats-grid .n{font-size:16px;}
  .archive-list{grid-template-columns:1fr;}
  .sponsor-grid{grid-template-columns:repeat(2,1fr);}
  .hero-logo{height:44px;}
  .hero h1{font-size:22px; line-height:1.08;}
  .hero .season{font-size:12.5px; margin-top:4px;}
}
