/* =========================================================================
   GUIA PROFISSIONAL DE PESCA DO BRASIL — identidade visual
   Paleta rio-fundo / dourado / mata, sobre Bootstrap 5.
   ========================================================================= */

:root{
  --river:   #0e2e44;   /* navio de rio, cor principal   */
  --river-2: #16456a;
  --river-3: #1d5c86;
  --dourado: #c8952b;   /* dourado (peixe) — acento único */
  --dourado-2:#e2b552;
  --verde:   #2e7d32;   /* mata / mata ciliar             */
  --verde-l: #e6f0e6;
  --bg:      #eaeff2;   /* papel frio (margem do rio)     */
  --paper:   #ffffff;
  --ink:     #14232c;
  --muted:   #647581;
  --line:    #d7e0e6;
  --shadow:  0 1px 2px rgba(14,46,68,.06), 0 8px 24px rgba(14,46,68,.06);
  --radius:  14px;
}

*{ box-sizing:border-box; }

body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}

h1,h2,h3,h4,h5,.display-face{
  font-family:'Archivo','Inter',sans-serif;
  font-weight:800;
  letter-spacing:-.02em;
}

a{ color:var(--river-2); text-decoration:none; }
a:hover{ color:var(--dourado); }

.mono{ font-family:'JetBrains Mono',ui-monospace,monospace; }

/* ---------- ESPAÇOS DE ANÚNCIO (AdSense) --------------------------------- */
.ad-wrap{ margin:1.25rem 0; }
.ad-label{ font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  text-align:center;margin-bottom:.25rem; }
.ad-slot{ display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;
  min-height:90px;border:1px dashed #c3d0d9;border-radius:12px;background:
  repeating-linear-gradient(45deg,#f3f6f8,#f3f6f8 12px,#eef2f5 12px,#eef2f5 24px);color:var(--muted); }
.ad-slot-tag{ font-family:'Archivo';font-weight:700;color:var(--river-2);font-size:.9rem; }
.ad-slot-sub{ font-size:.72rem;letter-spacing:.06em;text-transform:uppercase; }
.footer-guia .ad-wrap{ margin:0 0 1.5rem; }
.footer-guia .ad-slot{ background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.18);color:#8ea6b6; }
.footer-guia .ad-slot-tag{ color:#c7d6e0; }

/* ---------- eyebrow / rótulos de seção ------------------------------------ */
.eyebrow{
  font-family:'Archivo',sans-serif;
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--dourado);
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.eyebrow::before{
  content:"";
  width:26px;height:2px;background:var(--dourado);display:inline-block;
}

/* ---------- NAVBAR -------------------------------------------------------- */
.navbar-guia{
  background:#04243c;
  box-shadow:0 2px 0 var(--dourado);
}
.brand-logo{ height:52px;width:auto;display:block; }
@media (max-width:575px){ .brand-logo{ height:42px; } }
.navbar-guia .navbar-brand{
  font-family:'Archivo',sans-serif;
  font-weight:800;
  color:#fff;
  letter-spacing:-.02em;
  display:flex;align-items:center;gap:.55rem;
}
.navbar-brand .brand-mark{
  width:30px;height:30px;border-radius:8px;
  background:linear-gradient(135deg,var(--dourado),var(--dourado-2));
  display:grid;place-items:center;color:var(--river);font-size:1.05rem;
}
.navbar-brand small{ display:block;font-family:'Inter';font-weight:500;font-size:.62rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--dourado-2);opacity:.9; }
.navbar-guia .nav-link{
  color:#c7d6e0;
  font-weight:500;
  font-size:.93rem;
  padding:.5rem .85rem;
  position:relative;
}
.navbar-guia .nav-link:hover{ color:#fff; }
.navbar-guia .nav-link.active{ color:#fff; }
.navbar-guia .nav-link.active::after{
  content:"";position:absolute;left:.85rem;right:.85rem;bottom:.15rem;height:2px;
  background:var(--dourado);border-radius:2px;
  animation:waterline .4s ease;
}
@keyframes waterline{ from{transform:scaleX(0);opacity:0} to{transform:scaleX(1);opacity:1} }
.navbar-toggler{ border-color:rgba(255,255,255,.25); }

/* ---------- HERO --------------------------------------------------------- */
.hero{
  position:relative;
  background:
    radial-gradient(1200px 400px at 80% -20%, rgba(200,149,43,.18), transparent 60%),
    linear-gradient(160deg,var(--river) 0%, var(--river-2) 60%, var(--river-3) 100%);
  color:#eaf2f8;
  border-radius:var(--radius);
  padding:2.6rem 2.2rem 2.2rem;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.hero h1{ color:#fff;font-size:clamp(1.7rem,3.6vw,2.7rem);margin:.4rem 0 .5rem;line-height:1.05; }
.hero p.lead{ color:#c3d6e4;max-width:60ch;margin-bottom:0;font-size:1rem; }
.hero .wave{
  position:absolute;left:0;right:0;bottom:-1px;height:60px;opacity:.5;
}
.hero-gold{ color:var(--dourado-2); }

/* ---------- STAT CARDS (dashboard) --------------------------------------- */
.stat{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.1rem 1.2rem;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
  height:100%;
}
.stat::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--river);
}
.stat.gold::before{ background:var(--dourado); }
.stat.green::before{ background:var(--verde); }
.stat.navy2::before{ background:var(--river-3); }
.stat .stat-label{ font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600; }
.stat .stat-value{ font-family:'Archivo',sans-serif;font-weight:800;font-size:2rem;line-height:1;margin-top:.35rem;color:var(--river); }
.stat.gold .stat-value{ color:var(--dourado); }
.stat.green .stat-value{ color:var(--verde); }
.stat .stat-ico{ position:absolute;right:.9rem;top:.8rem;font-size:1.35rem;opacity:.25; }

/* ---------- CARDS genéricos ---------------------------------------------- */
.card-guia{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.card-guia .card-guia-head{
  background:var(--river);color:#fff;border-radius:var(--radius) var(--radius) 0 0;
  padding:.7rem 1rem;font-family:'Archivo';font-weight:700;display:flex;align-items:center;gap:.5rem;
}
.panel{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:1.1rem 1.2rem;
}

/* ---------- FILTROS ------------------------------------------------------ */
.filtros{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:1rem 1.1rem;margin-bottom:1.25rem;
}
.filtros label{ font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem; }
.form-control,.form-select{ border-color:var(--line);border-radius:9px;font-size:.92rem; }
.form-control:focus,.form-select:focus{ border-color:var(--river-3);box-shadow:0 0 0 .2rem rgba(29,92,134,.15); }
.btn-river{ background:var(--river);color:#fff;border-radius:9px;font-weight:600; }
.btn-river:hover{ background:var(--river-2);color:#fff; }
.btn-gold{ background:var(--dourado);color:var(--river);border-radius:9px;font-weight:700;border:none; }
.btn-gold:hover{ background:var(--dourado-2);color:var(--river); }
.btn-ghost{ background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--river);font-weight:600; }
.btn-ghost:hover{ border-color:var(--dourado);color:var(--dourado); }
.btn-link-ext{ white-space:nowrap;padding:.2rem .6rem;font-size:.8rem;font-weight:600; }
.btn-link-ext:hover{ background:var(--dourado);border-color:var(--dourado);color:var(--river); }

/* ---------- TABELAS ------------------------------------------------------ */
.table-guia{ background:var(--paper);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line); }
.table-guia thead th{
  background:var(--river);color:#fff;font-family:'Archivo';font-weight:600;font-size:.78rem;
  letter-spacing:.04em;text-transform:uppercase;border:none;white-space:nowrap;vertical-align:middle;
  position:sticky;top:0;
}
.table-guia tbody td{ font-size:.9rem;vertical-align:middle;border-color:#eef2f5; }
.table-guia tbody tr:nth-child(even){ background:#f7f9fb; }
.table-guia tbody tr:hover{ background:#fff7e6; }
.nome-forte{ font-weight:700;color:var(--river); }
.cientifico{ font-style:italic;color:var(--muted);font-size:.82rem; }

/* ---------- BADGES dificuldade ------------------------------------------- */
.badge-dif{ display:inline-block;font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;white-space:nowrap; }
.dif-1{ background:#e6f4ea;color:#1b7a37; }
.dif-2{ background:#eaf5e7;color:#2e7d32; }
.dif-3{ background:#fbf1d8;color:#a9791a; }
.dif-4{ background:#fde7e0;color:#c0562a; }
.dif-5{ background:#fbe0dd;color:#b0271f; }
.pill{ display:inline-block;background:var(--verde-l);color:var(--verde);font-size:.72rem;font-weight:600;padding:.15rem .55rem;border-radius:999px; }
.pill-navy{ background:#e7eef4;color:var(--river-2); }
.pill-gold{ background:#faf0d7;color:#a9791a; }

/* estrelas */
.stars{ color:var(--dourado);font-size:.95rem;letter-spacing:.5px;white-space:nowrap; }
.stars .star-off{ color:#e2e8ec; }
.stars-num{ color:var(--muted);font-size:.78rem;font-family:'JetBrains Mono'; }

.preco{ font-family:'JetBrains Mono';font-weight:600;color:var(--river); }

/* ---------- IMAGENS de espécie ------------------------------------------- */
.esp-img,.esp-ph .esp-svg{ display:block;object-fit:cover;background:var(--river); }
.esp-img,.esp-ph{ display:inline-block;overflow:hidden;border-radius:10px;line-height:0; }
.esp-thumb{ width:56px;height:56px;border-radius:9px; }
.esp-card{ width:100%;height:190px;border-radius:12px; }
.esp-hero{ width:100%;height:300px;object-fit:cover;border-radius:12px; }
.esp-ph .esp-svg{ width:100%;height:100%; }
.esp-ph.esp-thumb .esp-svg text{ display:none; }
td .esp-thumb,td .esp-ph{ box-shadow:0 1px 3px rgba(14,46,68,.18); }
.esp-figure{ position:relative; }
.esp-figure .esp-cred{ position:absolute;right:.5rem;bottom:.5rem;background:rgba(14,46,68,.72);color:#fff;
  font-size:.68rem;padding:.1rem .5rem;border-radius:999px; }

/* ---------- LIGHTBOX (ampliar imagem ao clicar) -------------------------- */
.zoomable{ display:inline-block;line-height:0;cursor:zoom-in;border-radius:9px;transition:transform .12s,box-shadow .12s; }
.zoomable:hover{ transform:scale(1.04); }
.zoomable:focus-visible{ outline:3px solid var(--dourado);outline-offset:2px; }
.lightbox{ position:fixed;top:0;right:0;bottom:0;left:0;z-index:1090;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(8,22,33,.85);backdrop-filter:blur(2px);animation:lbfade .15s ease; }
.lightbox[hidden]{ display:none; }
@keyframes lbfade{ from{opacity:0} to{opacity:1} }
.lightbox-content{ max-width:min(680px,92vw);max-height:88vh;background:var(--paper);border-radius:14px;
  padding:10px;box-shadow:0 24px 70px rgba(0,0,0,.55); }
.lightbox-content img,.lightbox-content svg{ display:block;width:100%;height:auto;max-height:80vh;
  object-fit:contain;border-radius:9px;background:var(--river); }
.lightbox-close{ position:absolute;top:14px;right:22px;background:transparent;border:none;color:#fff;
  font-size:2.4rem;line-height:1;cursor:pointer;padding:.2rem .6rem;border-radius:8px; }
.lightbox-close:hover{ color:var(--dourado); }

/* ---------- AMBIENTES (cards) -------------------------------------------- */
.amb-card{ background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;height:100%; }
.amb-card .amb-head{ background:linear-gradient(135deg,var(--river),var(--river-3));color:#fff;padding:.9rem 1.1rem; }
.amb-card .amb-head h3{ margin:0;font-size:1.12rem;color:#fff; }
.amb-card .amb-body{ padding:1rem 1.1rem; }
.amb-row{ display:flex;gap:.6rem;padding:.35rem 0;border-bottom:1px dashed #eaeef2;font-size:.86rem; }
.amb-row:last-child{ border-bottom:none; }
.amb-row .k{ color:var(--muted);min-width:96px;font-weight:600; }
.amb-row .v{ color:var(--ink); }

/* ---------- MONTAGENS / NÓS (passos) ------------------------------------- */
.step-head{ background:var(--river);color:#fff;font-family:'Archivo';font-weight:700;font-size:1.02rem; }
.passo{ display:flex;gap:.8rem;padding:.55rem 0;border-bottom:1px dashed #eef2f5; }
.passo:last-child{ border-bottom:none; }
.passo .n{ flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--verde);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:.8rem;font-family:'Archivo'; }
.accordion-button{ font-family:'Archivo';font-weight:700;color:var(--river); }
.accordion-button:not(.collapsed){ background:var(--verde-l);color:var(--river); }
.accordion-button:focus{ box-shadow:none;border-color:var(--line); }

/* ---------- CALENDÁRIO ---------------------------------------------------- */
.cal-piracema{ background:#fbe0dd;color:#b0271f;font-weight:700; }
.cal-liberado{ background:#e6f4ea;color:#1b7a37;font-weight:700; }

/* ---------- RIOS por bacia ----------------------------------------------- */
.legenda-dif{ background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:.6rem .9rem;margin-bottom:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;
  font-size:.82rem;box-shadow:var(--shadow); }
.legenda-titulo{ font-weight:700;color:var(--river);margin-right:.2rem; }
.legenda-txt{ color:var(--muted);margin-right:.2rem; }
.legenda-sep{ color:var(--line);margin:0 .3rem; }
.bacia-title{ font-family:'Archivo';font-weight:800;color:var(--river);font-size:1.15rem;
  display:flex;align-items:center;gap:.6rem;margin:1.6rem 0 .8rem; }
.bacia-title::before{ content:"";width:10px;height:10px;border-radius:50%;background:var(--dourado); }

/* ---------- botões de navegação rápida (home) ---------------------------- */
.quick{ display:flex;flex-direction:column;gap:.25rem;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow);height:100%;transition:.15s;
  border-left:4px solid var(--river);color:var(--ink); }
.quick:hover{ transform:translateY(-2px);border-left-color:var(--dourado);color:var(--ink);box-shadow:0 8px 28px rgba(14,46,68,.12); }
.quick .quick-ico{ font-size:1.4rem; }
.quick .quick-title{ font-family:'Archivo';font-weight:700;color:var(--river); }
.quick .quick-desc{ font-size:.82rem;color:var(--muted); }

/* ---------- FOOTER ------------------------------------------------------- */
.footer-guia{ background:var(--river);color:#b9cad6;margin-top:3rem;padding:2rem 0 1.4rem; }
.footer-guia a{ color:var(--dourado-2); }
.footer-guia .brand{ font-family:'Archivo';font-weight:800;color:#fff; }
.aviso{ background:#fff8e1;border:1px solid #f0dfa0;color:#6b5a17;border-radius:10px;padding:.7rem .9rem;font-size:.85rem; }

/* ---------- util --------------------------------------------------------- */
.section-title{ font-family:'Archivo';font-weight:800;color:var(--river);font-size:1.5rem;margin:.2rem 0 .1rem; }
.text-muted-2{ color:var(--muted); }
.count-chip{ background:#e7eef4;color:var(--river-2);font-family:'JetBrains Mono';font-size:.78rem;font-weight:600;padding:.15rem .6rem;border-radius:999px; }
@media (max-width:575px){
  .hero{ padding:1.8rem 1.3rem; }
  .stat .stat-value{ font-size:1.6rem; }
}
:focus-visible{ outline:3px solid var(--dourado);outline-offset:2px; }
@media (prefers-reduced-motion:reduce){ *{ animation:none!important;transition:none!important; } }
