/* ════════════════════════════════════════════════════════════════════
   Brainerd Lakes Fishing Report — Main Stylesheet
   Extracted from inline <style> blocks for maintainability.
   @@NOTE: To change brand colors, update CSS custom properties in :root
════════════════════════════════════════════════════════════════════ */

:root {
  --paper:    #f6f1e7;
  --paper2:   #ede7d8;
  --paper3:   #e3dcc8;
  --ink:      #1a1508;
  --ink2:     #3d3520;
  --ink3:     #6b5e40;
  --rust:     #b8390e;
  --amber:    #c8770a;
  --gold:     #d9991a;
  --pine:     #1e3a1e;
  --water:    #1e3d5c;
  --sky:      #4a8fba;
  --rule:     rgba(26,21,8,0.15);
  --rule-heavy: rgba(26,21,8,0.4);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { background: var(--paper); color: var(--ink); font-family: 'DM Sans', sans-serif; font-size: 16px; line-height: 1.6; overflow-x: hidden; max-width: 100vw; }
img { max-width: 100%; height: auto; }

/* Prevent any element from exceeding viewport width */
*:not(.ticker-stats):not(.col-sidebar):not(.lake-nav):not(.ticker-stat) { max-width: 100%; }
/* All text elements wrap rather than overflow */
p, h1, h2, h3, h4, h5, h6, li, td, th, span, div { overflow-wrap: break-word; word-break: break-word; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--paper2); }
::-webkit-scrollbar-thumb { background: var(--ink3); border-radius: 3px; }

/* ── MASTHEAD ── */
.masthead {
  background: var(--ink); color: var(--paper);
  text-align: center; padding: 36px 20px 28px;
  position: relative; overflow: hidden; width: 100%;
}
.masthead::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,0.015) 3px,rgba(255,255,255,0.015) 4px);
  pointer-events: none;
}
.masthead-eyebrow { font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:4px; text-transform:uppercase; color:rgba(246,241,231,0.45); margin-bottom:10px; }
.masthead-title { font-family:'Zilla Slab',serif; font-size:clamp(2.6rem,7vw,5.2rem); font-weight:700; line-height:0.95; color:var(--paper); letter-spacing:-1px; }
.masthead-title .the { font-size:0.38em; font-weight:400; font-style:italic; display:block; letter-spacing:2px; color:rgba(246,241,231,0.5); margin-bottom:4px; }
.masthead-rule { display:flex; align-items:center; gap:12px; margin:14px 0 10px; justify-content:center; }
.masthead-rule .line { height:1px; width:80px; background:rgba(246,241,231,0.25); }
.masthead-rule .diamond { color:var(--gold); font-size:10px; }
.masthead-sub { font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:rgba(246,241,231,0.4); }

/* ── TOP NAV ── */
.top-nav { background:var(--rust); position:sticky; top:0; z-index:100; border-bottom:3px solid var(--ink); }
.top-nav-inner { max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:0 20px; height:46px; }
.nav-pub-name { font-family:'Zilla Slab',serif; font-weight:700; font-size:1.05rem; color:var(--paper); letter-spacing:-0.3px; cursor:pointer; }
.nav-links { display:flex; gap:2px; }
.nav-links a {
  font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:2px; text-transform:uppercase;
  color:rgba(246,241,231,0.85); text-decoration:none; padding:6px 12px;
  transition:background 0.15s,color 0.15s; border-radius:2px; cursor:pointer;
}
.nav-links a:hover { background:rgba(0,0,0,0.2); color:#fff; }
.nav-links a.nav-active { background:rgba(0,0,0,0.25); color:#fff; }
.nav-live { display:flex; align-items:center; gap:6px; font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:rgba(246,241,231,0.7); }
.live-dot { width:7px; height:7px; border-radius:50%; background:#5cdd7a; animation:pulse 2s infinite; }

@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(0.85)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* ── CONDITIONS TICKER ── */
.conditions-ticker { background:var(--water); border-bottom:2px solid var(--ink); overflow-x:hidden; overflow-y:visible; }
.ticker-inner { max-width:1180px; margin:0 auto; display:flex; align-items:stretch; overflow:hidden; }
.ticker-label { background:var(--ink); color:var(--gold); font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; padding:0 18px; display:flex; align-items:center; white-space:nowrap; flex-shrink:0; z-index:1; }
.ticker-stats { display:flex; flex:1; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.ticker-stats::-webkit-scrollbar { display:none; }
.ticker-stat { padding:10px 22px; border-right:1px solid rgba(255,255,255,0.1); white-space:nowrap; text-align:center; flex-shrink:0; }
.ticker-stat .tv { font-family:'Oswald',sans-serif; font-size:1.15rem; font-weight:600; color:#fff; display:block; line-height:1.1; }
.ticker-stat .tl { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.45); margin-top:1px; }

/* ── PAGE TABS ── */
.page-section { display:none; animation:fadeIn 0.3s ease both; }
.page-section.active { display:block; }

/* ── LAYOUT ── */
.page-wrap { max-width:1180px; margin:0 auto; padding:0 20px; }
.layout-main { display:grid; grid-template-columns:1fr 300px; gap:0; border-left:1px solid var(--rule-heavy); border-right:1px solid var(--rule-heavy); margin-top:32px; }
.col-main { padding:0 32px 60px 0; border-right:1px solid var(--rule-heavy); }
.col-sidebar { padding:0 0 60px 28px; position:sticky; top:56px; height:fit-content; max-height:calc(100vh - 60px); overflow-y:auto; scrollbar-width:none; }
.col-sidebar::-webkit-scrollbar { display:none; }

/* full-width layout (gear, bait shops) */
.layout-full { border-left:1px solid var(--rule-heavy); border-right:1px solid var(--rule-heavy); margin-top:32px; padding:0 32px 60px; }

/* ── SECTION HEADS ── */
.section-head { display:flex; align-items:center; gap:0; margin-bottom:20px; margin-top:40px; padding-bottom:8px; border-bottom:2px solid var(--ink); width:100%; overflow:hidden; }
.section-head:first-child { margin-top:28px; }
.section-head h2 { font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--ink); font-weight:600; white-space:nowrap; }
.section-head .sh-rule { flex:1; margin-left:12px; min-width:0; }
.section-head .sh-tag { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; background:var(--rust); color:#fff; padding:2px 8px; border-radius:2px; margin-left:10px; white-space:nowrap; flex-shrink:0; }

/* ── BITE DASHBOARD ── */
.bite-dashboard { background:var(--ink); color:var(--paper); margin:24px 0 0; padding:28px 28px 24px; border:1px solid var(--rule-heavy); }
.bd-eyebrow { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:6px; word-break:break-word; }
.bd-title { font-family:'Zilla Slab',serif; font-size:1.7rem; font-weight:700; line-height:1.15; margin-bottom:18px; color:var(--paper); overflow-wrap:break-word; word-break:break-word; }
.bd-title em { color:var(--gold); font-style:normal; }
.bd-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); }
.bd-cell { background:var(--ink); padding:14px 16px; }
.bd-cell .fish { font-family:'Zilla Slab',serif; font-size:1.05rem; font-weight:600; color:var(--paper); margin-bottom:3px; }
.bd-cell .lakes { font-size:12px; color:rgba(246,241,231,0.5); margin-bottom:8px; }
.bd-meter { display:flex; gap:2px; margin-bottom:4px; }
.bd-bar { flex:1; height:3px; background:rgba(255,255,255,0.1); border-radius:1px; }
.bd-bar.hot { background:#c0392b; }
.bd-bar.good { background:#27ae60; }
.bd-bar.fair { background:var(--amber); }
.bd-status { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; }
.s-hot { color:#e74c3c; } .s-good { color:#2ecc71; } .s-fair { color:var(--gold); }

/* ── LAKE NAV ── */
.lake-nav { display:flex; gap:0; border-bottom:1px solid var(--rule-heavy); overflow-x:auto; scrollbar-width:none; }
.lake-nav::-webkit-scrollbar { display:none; }
.lake-nav-btn { font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; padding:10px 16px; border:none; background:transparent; cursor:pointer; color:var(--ink3); border-bottom:3px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:color 0.15s,border-color 0.15s; }
.lake-nav-btn.active { color:var(--rust); border-bottom-color:var(--rust); font-weight:600; }
.lake-nav-btn:hover { color:var(--ink); }
.lake-report-panel { display:none; padding:22px 0 0; animation:fadeUp 0.3s ease both; }
.lake-report-panel.active { display:block; }
.lrp-name { font-family:'Zilla Slab',serif; font-size:1.5rem; font-weight:700; margin-bottom:3px; overflow-wrap:break-word; }
.lrp-meta { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--ink3); margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--rule); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lrp-body p { font-size:15.5px; line-height:1.75; color:var(--ink2); margin-bottom:12px; font-weight:300; overflow-wrap:break-word; word-break:break-word; }
.lrp-conditions { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; padding-top:14px; border-top:1px solid var(--rule); }
.lrc { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; background:var(--paper2); border:1px solid var(--rule-heavy); padding:4px 12px; border-radius:2px; color:var(--ink2); overflow-wrap:break-word; }
.lrc strong { color:var(--rust); }

/* ── SPECIES ROWS ── */
.species-list { display:flex; flex-direction:column; gap:0; }
.species-row { display:grid; grid-template-columns:140px 1fr auto; gap:0; border-bottom:1px solid var(--rule); padding:16px 0; align-items:start; transition:background 0.15s; }
.species-row:hover { background:var(--paper2); margin:0 -8px; padding:16px 8px; border-radius:2px; }
.sr-fish { font-family:'Zilla Slab',serif; font-size:1.05rem; font-weight:700; color:var(--ink); }
.sr-badge { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:1.5px; text-transform:uppercase; display:inline-block; padding:2px 7px; border-radius:2px; margin-top:3px; }
.b-hot { background:#c0392b; color:#fff; } .b-good { background:#27ae60; color:#fff; } .b-fair { background:var(--amber); color:#fff; }
.sr-details { padding:0 20px; }
.sr-detail-line { display:flex; gap:8px; margin-bottom:3px; font-size:13.5px; line-height:1.5; }
.sr-lbl { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:var(--amber); min-width:48px; flex-shrink:0; margin-top:3px; }
.sr-val { color:var(--ink2); font-size:13.5px; }
.sr-aff { font-size:12px; color:var(--ink3); margin-top:6px; padding-top:6px; border-top:1px dashed var(--rule); }
.sr-aff a { color:var(--rust); text-decoration:none; font-weight:500; }
.sr-aff a:hover { text-decoration:underline; }
.sr-meter { width:60px; padding-top:4px; }
.meter-bars { display:flex; flex-direction:column; gap:2px; }
.m-bar { height:3px; border-radius:1px; background:var(--paper3); }
.m-on-hot { background:#c0392b; } .m-on-good { background:#27ae60; } .m-on-fair { background:var(--amber); }

/* ── TIPS ── */
.tips-columns { column-count:2; column-gap:28px; column-rule:1px solid var(--rule); margin-top:16px; }
.tip-item { break-inside:avoid; margin-bottom:20px; padding-bottom:20px; border-bottom:1px dashed var(--rule); }
.tip-item:last-child { border-bottom:none; }
.tip-number { font-family:'Zilla Slab',serif; font-size:2.5rem; font-weight:700; color:var(--paper3); line-height:1; margin-bottom:-4px; }
.tip-title { font-family:'Zilla Slab',serif; font-size:1.05rem; font-weight:600; margin-bottom:5px; color:var(--ink); }
.tip-body { font-size:13.5px; color:var(--ink2); line-height:1.6; font-weight:300; }

/* ── WEATHER ── */
.weather-row { display:grid; grid-template-columns:repeat(7,1fr); border:1px solid var(--rule-heavy); margin-top:16px; }
.wx-cell { padding:12px 8px; text-align:center; border-right:1px solid var(--rule); }
.wx-cell:last-child { border-right:none; }
.wx-day { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--ink3); margin-bottom:6px; }
.wx-icon { font-size:1.4rem; display:block; margin-bottom:4px; }
.wx-temp { font-family:'Zilla Slab',serif; font-size:1.05rem; font-weight:700; display:block; color:var(--ink); }
.wx-bite { font-family:'Oswald',sans-serif; font-size:8px; letter-spacing:1px; text-transform:uppercase; margin-top:5px; padding:2px 4px; border-radius:2px; display:inline-block; }
.wh { background:rgba(192,57,43,.15); color:#c0392b; }
.wg { background:rgba(39,174,96,.15); color:#1a8a50; }
.wf { background:rgba(200,119,10,.15); color:var(--amber); }
.ws { background:rgba(108,117,125,.12); color:#6c757d; }

/* ── REGS BOX ── */
.regs-box { border:1px solid var(--rule-heavy); border-left:4px solid var(--ink); padding:20px 22px; margin-top:16px; background:var(--paper2); }
.regs-box h3 { font-family:'Zilla Slab',serif; font-size:1.1rem; font-weight:700; margin-bottom:12px; color:var(--ink); }
.reg-list { list-style:none; }
.reg-list li { font-size:13.5px; color:var(--ink2); line-height:1.6; padding:5px 0 5px 16px; border-bottom:1px dashed var(--rule); position:relative; font-weight:300; }
.reg-list li:last-child { border-bottom:none; }
.reg-list li::before { content:'→'; position:absolute; left:0; color:var(--rust); font-size:12px; top:6px; }

/* ── GEAR CARDS ── */
.aff-disclosure { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--ink3); background:var(--paper2); border:1px solid var(--rule-heavy); padding:3px 8px; border-radius:2px; }
.gear-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; align-items:stretch; }
.gear-card { border:1px solid var(--rule-heavy); background:var(--paper); padding:16px; transition:box-shadow 0.2s,transform 0.2s; text-decoration:none; color:inherit; display:flex; flex-direction:column; }
.gear-card:hover { box-shadow:0 4px 20px rgba(26,21,8,0.12); transform:translateY(-2px); }
.gc-top { display:flex; align-items:flex-start; gap:10px; margin-bottom:10px; }
.gc-icon { width:40px; height:40px; background:var(--rust); border:1px solid var(--rule-heavy); display:flex; align-items:center; justify-content:center; font-size:11px; font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:1px; color:#fff; flex-shrink:0; border-radius:2px; text-transform:uppercase; }
.gc-brand { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--ink3); }
.gc-name { font-family:'Zilla Slab',serif; font-size:.95rem; font-weight:600; color:var(--ink); line-height:1.2; }
.gc-desc { font-size:12.5px; color:var(--ink3); line-height:1.5; margin-bottom:12px; flex-grow:1; }
.gc-footer { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--rule); padding-top:10px; margin-top:auto; }
.gc-price { font-family:'Zilla Slab',serif; font-size:1.1rem; font-weight:700; color:var(--ink); }
.gc-cta { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; background:var(--sky); color:#fff; padding:5px 12px; border-radius:2px; }
.gc-hot-pick { font-family:'Oswald',sans-serif; font-size:8px; letter-spacing:2px; text-transform:uppercase; background:var(--gold); color:var(--ink); padding:2px 6px; border-radius:2px; display:inline-block; margin-bottom:4px; }

/* ── GEAR PAGE SPECIFIC ── */
.gear-category-head { display:flex; align-items:center; gap:12px; margin:36px 0 16px; padding-bottom:10px; border-bottom:2px solid var(--ink); }
.gear-category-head h3 { font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:3px; text-transform:uppercase; font-weight:600; }
.gear-intro { font-size:15px; color:var(--ink2); line-height:1.7; font-weight:300; margin-bottom:4px; }
.gear-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px; align-items:stretch; }
.gear-note { background:var(--paper2); border:1px solid var(--rule-heavy); border-left:4px solid var(--amber); padding:16px 20px; margin-top:28px; }
.gear-note p { font-size:13.5px; color:var(--ink2); line-height:1.6; font-weight:300; }
.gear-note strong { color:var(--amber); font-weight:600; }

/* ── BAIT SHOPS PAGE ── */
.shop-page-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.shop-card { border:1px solid var(--rule-heavy); background:var(--paper); overflow:hidden; transition:box-shadow 0.2s; }
.shop-card:hover { box-shadow:0 4px 20px rgba(26,21,8,0.1); }
.shop-card-head { background:var(--ink); padding:14px 18px; }
.shop-card-head h3 { font-family:'Zilla Slab',serif; font-size:1.15rem; font-weight:700; color:var(--paper); margin-bottom:2px; }
.shop-card-head .sc-type { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); }
.shop-card-body { padding:16px 18px; }
.shop-card-detail { display:flex; gap:8px; margin-bottom:6px; font-size:13px; }
.scd-lbl { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:var(--amber); min-width:52px; flex-shrink:0; margin-top:2px; }
.scd-val { color:var(--ink2); font-weight:300; }
.shop-services { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.shop-tag { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:1px; text-transform:uppercase; background:var(--paper2); border:1px solid var(--rule-heavy); padding:3px 10px; border-radius:2px; color:var(--ink2); }
.shop-cta-row { display:flex; gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid var(--rule); }
.shop-btn { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:7px 14px; border-radius:2px; text-decoration:none; font-weight:600; transition:background 0.15s; }
.shop-btn-primary { background:var(--rust); color:#fff; }
.shop-btn-primary:hover { background:var(--ink); }
.shop-btn-secondary { background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.shop-btn-secondary:hover { background:var(--ink); color:var(--paper); }
.shop-intro-strip { background:var(--water); color:var(--paper); padding:20px 28px; margin:0 -32px; margin-bottom:0; }
.shop-intro-strip p { font-size:14px; color:rgba(246,241,231,0.8); line-height:1.6; font-weight:300; }
.shop-intro-strip strong { color:var(--gold); font-weight:600; }

/* ── LAKES PAGE ── */
.lake-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.lake-card { border:1px solid var(--rule-heavy); background:var(--paper); overflow:hidden; cursor:pointer; transition:box-shadow 0.2s,transform 0.15s; }
.lake-card:hover { box-shadow:0 6px 24px rgba(26,21,8,0.12); transform:translateY(-2px); }
.lake-card-banner { height:8px; background:var(--water); }
.lake-card-banner.lc-gull { background:linear-gradient(90deg,var(--water),var(--sky)); }
.lake-card-banner.lc-pelican { background:linear-gradient(90deg,#2c5f7a,var(--sky)); }
.lake-card-banner.lc-whitefish { background:linear-gradient(90deg,var(--pine),#2e7d4f); }
.lake-card-banner.lc-northlong { background:linear-gradient(90deg,#4a3a1e,var(--amber)); }
.lake-card-banner.lc-round { background:linear-gradient(90deg,var(--rust),#d4602a); }
.lake-card-banner.lc-edwards { background:linear-gradient(90deg,#1e3a1e,#3a6b3a); }
.lake-card-inner { padding:18px; }
.lc-name { font-family:'Zilla Slab',serif; font-size:1.25rem; font-weight:700; margin-bottom:2px; }
.lc-meta { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--ink3); margin-bottom:10px; }
.lc-stats { display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; margin-bottom:12px; }
.lc-stat { font-size:12px; color:var(--ink2); }
.lc-stat span { font-family:'Oswald',sans-serif; font-size:8px; letter-spacing:1.5px; text-transform:uppercase; color:var(--amber); display:block; }
.lc-bite-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.lc-bite { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:1px; text-transform:uppercase; padding:3px 8px; border-radius:2px; }
.lc-bite.hot { background:#c0392b; color:#fff; }
.lc-bite.good { background:#27ae60; color:#fff; }
.lc-bite.fair { background:var(--amber); color:#fff; }
.lc-bite.closed { background:#7f8c8d; color:#fff; }
.lc-summary { font-size:13px; color:var(--ink3); line-height:1.55; font-weight:300; }
.lc-expand { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--rust); margin-top:10px; padding-top:10px; border-top:1px solid var(--rule); cursor:pointer; }

/* Lake detail modal */
.lake-modal-overlay { display:none; position:fixed; inset:0; background:rgba(26,21,8,0.7); z-index:500; align-items:center; justify-content:center; padding:20px; }
.lake-modal-overlay.open { display:flex; animation:fadeIn 0.2s ease; }
.lake-modal { background:var(--paper); max-width:700px; width:100%; max-height:90vh; overflow-y:auto; border:2px solid var(--ink); position:relative; }
.lake-modal-header { padding:24px 28px 16px; border-bottom:1px solid var(--rule); display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.lake-modal-title { font-family:'Zilla Slab',serif; font-size:1.8rem; font-weight:700; }
.lake-modal-close { font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; background:var(--ink); color:var(--paper); border:none; padding:6px 14px; cursor:pointer; }
.lake-modal-body { padding:24px 28px; }
.lake-modal-body p { font-size:15px; color:var(--ink2); line-height:1.75; margin-bottom:12px; font-weight:300; }
.lake-modal-conditions { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; padding-top:14px; border-top:1px solid var(--rule); }

/* ── BITE PAGE CALLOUT BOX ── */
.callout-box { border:1px solid var(--rule-heavy); border-left:4px solid var(--gold); padding:18px 22px; background:var(--paper2); margin:20px 0; }
.callout-box h4 { font-family:'Zilla Slab',serif; font-size:1.05rem; font-weight:700; margin-bottom:6px; }
.callout-box p { font-size:13.5px; color:var(--ink2); line-height:1.6; font-weight:300; }
.callout-box.alert { border-left-color:var(--rust); }
.callout-box.alert h4 { color:var(--rust); }

/* ── SIDEBAR ── */
.sb-label { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--ink3); border-bottom:2px solid var(--ink); padding-bottom:7px; margin-bottom:14px; margin-top:28px; }
.sb-label:first-child { margin-top:24px; }
.email-widget { background:var(--ink); color:var(--paper); padding:18px 16px; margin-bottom:12px; }
.email-widget h4 { font-family:'Zilla Slab',serif; font-size:1.1rem; font-weight:700; margin-bottom:6px; color:var(--paper); }
.email-widget p { font-size:12.5px; color:rgba(246,241,231,0.65); line-height:1.5; margin-bottom:12px; font-weight:300; }
.email-input { width:100%; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); padding:9px 12px; color:var(--paper); font-family:'DM Sans',sans-serif; font-size:14px; outline:none; margin-bottom:8px; border-radius:2px; display:block; }
.email-input::placeholder { color:rgba(246,241,231,0.3); }
.email-input:focus { border-color:var(--gold); }
.email-btn { width:100%; background:var(--gold); color:var(--ink); font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; font-weight:600; padding:10px; border:none; cursor:pointer; transition:background 0.15s; }
.email-btn:hover { background:var(--amber); }
.email-fine { font-size:10px; color:rgba(246,241,231,0.3); margin-top:6px; font-family:'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase; }

/* sidebar quick-bite list */
.quick-bite { list-style:none; margin-bottom:16px; }
.quick-bite li { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-bottom:1px solid var(--rule); font-size:13px; }
.quick-bite li:last-child { border-bottom:none; }
.qb-fish { font-family:'Zilla Slab',serif; font-weight:600; font-size:.9rem; }
.qb-badge { font-family:'Oswald',sans-serif; font-size:8px; letter-spacing:1.5px; text-transform:uppercase; padding:2px 7px; border-radius:2px; }

/* sidebar shop mini-list */
.shop-list { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.shop-item { border:1px solid var(--rule-heavy); padding:12px 14px; background:var(--paper); display:flex; align-items:flex-start; gap:10px; transition:background 0.15s; }
.shop-item:hover { background:var(--paper2); }
.shop-icon { font-size:1.3rem; flex-shrink:0; margin-top:1px; }
.shop-name { font-family:'Zilla Slab',serif; font-size:.95rem; font-weight:700; color:var(--ink); margin-bottom:2px; }
.shop-tagline { font-size:12px; color:var(--ink3); line-height:1.4; margin-bottom:6px; font-weight:300; }
.shop-ph { font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:1px; color:var(--rust); font-weight:600; }

/* ── BOTTOM EMAIL ── */
.bottom-email { background:var(--water); color:var(--paper); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); padding:36px 0; margin:40px 0 0; }
.be-inner { max-width:1180px; margin:0 auto; padding:0 20px; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.be-copy h3 { font-family:'Zilla Slab',serif; font-size:1.8rem; font-weight:700; margin-bottom:8px; line-height:1.1; }
.be-copy p { font-size:15px; color:rgba(246,241,231,0.7); line-height:1.6; font-weight:300; }
.be-stats { display:flex; gap:24px; margin-top:14px; }
.be-stat .bsv { font-family:'Zilla Slab',serif; font-size:1.6rem; font-weight:700; color:var(--gold); display:block; line-height:1; }
.be-stat .bsl { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(246,241,231,0.45); margin-top:2px; }
.be-form input { width:100%; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); padding:12px 16px; color:var(--paper); font-family:'DM Sans',sans-serif; font-size:15px; outline:none; margin-bottom:10px; border-radius:2px; }
.be-form input::placeholder { color:rgba(246,241,231,0.3); }
.be-form input:focus { border-color:var(--gold); }
.be-form button { width:100%; background:var(--gold); color:var(--ink); font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:2px; text-transform:uppercase; font-weight:600; padding:13px; border:none; cursor:pointer; transition:background 0.15s; border-radius:2px; }
.be-form button:hover { background:var(--amber); }
.be-fine { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(246,241,231,0.3); margin-top:8px; }

/* ── FOOTER ── */
footer { background:var(--ink); color:rgba(246,241,231,0.4); padding:28px 0 20px; }
.footer-inner { max-width:1180px; margin:0 auto; padding:0 20px; }
.footer-top { display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid rgba(246,241,231,0.1); }
.footer-pub { font-family:'Zilla Slab',serif; font-size:1.2rem; font-weight:700; color:var(--paper); }
.footer-links { display:flex; gap:20px; flex-wrap:wrap; }
.footer-links a { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(246,241,231,0.45); text-decoration:none; cursor:pointer; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; line-height:1.8; color:rgba(246,241,231,0.25); }

/* ── RESPONSIVE ── */

/* Tablet */
@media(max-width:940px) {
  .layout-main { grid-template-columns:1fr; border-left:none; border-right:none; }
  .col-main { padding-right:0; padding-left:0; border-right:none; }
  .col-sidebar { padding-left:0; position:static; max-height:none; border-top:2px solid var(--rule-heavy); margin-top:32px; padding-top:24px; }
  .layout-full { padding:0 20px 60px; }
  .bd-grid { grid-template-columns:repeat(2,1fr); }
  .be-inner { grid-template-columns:1fr; gap:24px; }
  .tips-columns { column-count:1; }
  .gear-grid, .gear-grid-3, .shop-page-grid { grid-template-columns:1fr 1fr; }
  .lake-feature-grid { grid-template-columns:1fr 1fr; }
  .lake-nav { flex-wrap:wrap; }
  .lake-nav-btn { flex:1 1 auto; min-width:calc(33% - 4px); font-size:10px; padding:6px 4px; }
  .species-row { grid-template-columns:100px 1fr; }
  .sr-meter { display:none; }
  .masthead { padding:28px 20px 24px; }
  /* Logo top-left on tablet — smaller */
  .masthead img[style*="position:absolute"] { width:60px !important; height:60px !important; }
}

/* Mobile */

@media(max-width:600px) {
  /* Masthead — full width, no overflow */
  .masthead { padding:24px 16px 20px; width:100%; }
  .masthead-title { font-size:2.4rem; overflow-wrap:break-word; }
  .masthead-eyebrow { font-size:9px; letter-spacing:2px; }
  .masthead-sub { font-size:9px; letter-spacing:1px; word-break:break-word; }
  .masthead-rule .line { width:50px; }

  /* Nav */
  .top-nav { width:100%; }
  .top-nav-inner { padding:0 16px; height:auto; flex-wrap:wrap; gap:0; width:100%; }
  .nav-pub-name { display:none; }
  .nav-links { width:100%; justify-content:space-around; padding:4px 0; }
  .nav-links a { font-size:10px; letter-spacing:1px; padding:8px 6px; }
  .nav-live { display:none; }

  /* Conditions ticker — label stays fixed, stats scroll */
  .conditions-ticker { width:100%; }
  .ticker-inner { width:100%; padding:0; }
  .ticker-label { padding:0 10px; font-size:8px; letter-spacing:1px; min-width:fit-content; }
  .ticker-stat { padding:8px 14px; }
  .ticker-stat .tv { font-size:0.95rem; }
  .ticker-stat .tl { font-size:8px; letter-spacing:1px; }

  /* Page wrap — overflow hidden prevents any child from blowing out width */
  .page-wrap { padding:0 16px; width:100%; overflow:hidden; }

  /* Remove side borders on mobile */
  .layout-main { border-left:none; border-right:none; width:100%; overflow:hidden; }
  .layout-full { border-left:none; border-right:none; padding:0 16px 48px; width:100%; overflow:hidden; }

  /* Col-main — contained, nothing bleeds out */
  .col-main { padding:0 0 40px 0; width:100%; overflow:hidden; }

  /* Lake report panel — fix meta truncation and body text on mobile */
  .lrp-meta { white-space:normal; overflow:visible; font-size:9px; letter-spacing:1px; line-height:1.5; }
  .lrp-name { font-size:1.3rem; }
  .lrp-body p { font-size:14.5px; }

  /* Fix edge-bleed elements */
  .shop-intro-strip { margin:0 -16px; padding:20px 16px; }

  /* Bottom email & footer */
  .be-inner { padding:0 16px; }
  .footer-inner { padding:0 16px; }

  /* Bite dashboard */
  .bite-dashboard { margin:24px 0 0; padding:20px 16px; width:100%; }
  .bd-eyebrow { font-size:8px; letter-spacing:1px; white-space:normal; }
  .bd-title { font-size:1rem; line-height:1.3; overflow-wrap:break-word; word-break:break-word; }
  .bd-grid { grid-template-columns:repeat(2,1fr); gap:1px; }
  .bd-cell { padding:10px 8px; }
  .bd-cell .fish { font-size:0.8rem; overflow-wrap:break-word; }
  .bd-cell .lakes { font-size:10px; overflow-wrap:break-word; }
  .bd-status { font-size:8px; letter-spacing:1px; }

  /* Lake nav tabs */
  .lake-nav { gap:4px; flex-wrap:wrap; }
  .lake-nav-btn { flex:1 1 calc(33% - 4px); font-size:9px; padding:7px 4px; letter-spacing:0.5px; }

  /* Lake cards */
  .lake-feature-grid { grid-template-columns:1fr; gap:12px; }
  .lake-card-banner { height:90px; }
  .lc-name { font-size:1.1rem; }
  .lc-stats { grid-template-columns:1fr 1fr; gap:4px 8px; }

  /* Species rows */
  .species-row:hover { margin:0; padding:14px 0; }
  .species-row { grid-template-columns:1fr; gap:6px; padding:14px 0; }
  .sr-name { font-size:1rem; }
  .sr-meter, .sr-lbl { display:none; }
  .sr-aff { font-size:11px; }

  /* Weather table */
  .weather-row { grid-template-columns:repeat(4,1fr); overflow:hidden; }
  .weather-row .wx-cell:nth-child(n+5) { display:none; }
  .wx-day { font-size:9px; }
  .wx-icon { font-size:1.1rem; }
  .wx-hi { font-size:0.9rem; }
  .wx-lo, .wx-pres, .wx-moon, .wx-bite { font-size:9px; }

  /* Tables — scrollable */
  .comparison-wrap, table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; font-size:11px; white-space:nowrap; }
  #wx-table { min-width:0; font-size:11px; }
  #wx-table th, #wx-table td { padding:8px 6px; }

  /* Gear */
  .gear-grid, .gear-grid-3 { grid-template-columns:1fr; }
  .gc-desc { font-size:12px; }

  /* Shops */
  .shop-page-grid { grid-template-columns:1fr; }
  .shop-card-head h3 { font-size:1.1rem; }

  /* Lake modals */
  .lake-modal { max-height:95vh; margin:10px; width:calc(100% - 20px); }
  .lake-modal-header { padding:14px 16px; }
  .lake-modal-title { font-size:1.2rem; }
  .lake-modal-body { padding:16px; font-size:13px; }
  .lake-modal-conditions { gap:6px; }
  .lrc { font-size:11px; padding:4px 8px; }

  /* Sidebar */
  .sb-label { font-size:8px; letter-spacing:2px; }
  .quick-bite li { font-size:12px; }

  /* Callout boxes */
  .callout-box { font-size:13px; padding:14px 16px; }

  /* Section heads */
  .section-head h2 { font-size:1.3rem; }

  /* Footer */
  .footer-top { flex-direction:column; gap:12px; }
  .footer-links { gap:12px; flex-wrap:wrap; }
  .footer-links a { font-size:10px; }
}

/* ── WEATHER TABLE ──────────── */
.weather-table { width:100%; border-collapse:collapse; margin-top:4px; font-size:13px; }
        .weather-table th { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px; text-transform:uppercase; background:var(--ink); color:var(--gold); padding:8px 10px; text-align:center; font-weight:600; }
        .weather-table th:first-child { text-align:left; padding-left:14px; }
        .weather-table td { padding:10px 10px; text-align:center; border-bottom:1px solid var(--rule); vertical-align:middle; }
        .weather-table td:first-child { text-align:left; padding-left:14px; }
        .weather-table tr:nth-child(even) { background:var(--paper2); }
        .weather-table tr:hover { background:var(--paper3); }
        .wx-day-label { font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink); font-weight:600; }
        .wx-date-sub { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:1px; color:var(--ink3); display:block; }
        .wx-temp-cell { font-family:'Zilla Slab',serif; font-size:1rem; font-weight:700; color:var(--ink); }
        .baro-cell { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:1px; color:var(--ink2); }
        .baro-trend { font-size:10px; margin-left:3px; }
        .baro-rise { color:#27ae60; }
        .baro-fall { color:var(--rust); }
        .baro-steady { color:var(--ink3); }
        .moon-cell { font-size:1.1rem; }
        .moon-label { font-family:'Oswald',sans-serif; font-size:8px; letter-spacing:1px; text-transform:uppercase; color:var(--ink3); display:block; margin-top:2px; }

/* ── LAKE CARD DESCRIPTIVE ADDITIONS ────────────────────────────── */
.lc-section-label { font-family:'Oswald',sans-serif; font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--ink3); margin:10px 0 4px; }
.lc-access { margin:0 0 8px; padding-left:16px; font-size:12px;
  color:var(--ink2); line-height:1.6; }
.lc-access li { margin-bottom:2px; }
.lc-notes { font-size:12px; color:var(--ink2); line-height:1.6;
  margin:0 0 10px; font-style:italic; }

.bi-empty  { background:rgba(255,255,255,0.12) !important; }
.bi-legend { display:flex; gap:8px; margin-bottom:5px; justify-content:center; }
.bi-leg    { font-family:'Oswald',sans-serif; font-size:8px; letter-spacing:1px;
             text-transform:uppercase; padding:1px 5px; border-radius:2px; color:#fff; }
.bi-leg-red    { background:#c0392b; }
.bi-leg-yellow { background:#f1c40f; color:#1a1508; }
.bi-leg-green  { background:#27ae60; }
