/* ═══ FlyingFish — marine.css ═══
 * Merged from marine-life.css (listing) + marine-species.css (hub pages)
 * Single owner of all /marine-life/ visual styles.
 */

/* ─── LISTING / ARCHIVE PAGE ─── */
/* FlyingFish — Marine Life archive page tweaks
 * Layered on top of /assets/css/styles.css and /courses/courses.css.
 * Defines the .species-archive-card variant + sidebar/list-specific bits.
 */

/* ─── Species card (archive variant) ─── */
.species-archive-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--border, rgba(6, 182, 212, 0.16));
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none !important;
  color: var(--text);
  transition: all .25s ease;
  position: relative;
}
.species-archive-card:hover {
  transform: translateY(-3px);
  border-color: var(--primary);
  box-shadow: 0 14px 28px rgba(6, 182, 212, 0.14), 0 6px 14px rgba(15, 23, 42, 0.06);
}
.species-archive-card * { text-decoration: none !important; }

.species-archive-card .sac-hero {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--bg2, #f0fdff);
}
.species-archive-card .sac-hero img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.species-archive-card:hover .sac-hero img { transform: scale(1.05); }

.species-archive-card .sac-hero-overlay {
  position: absolute; inset: auto 0 0 0;
  height: 50%;
  background: linear-gradient(to top, rgba(15, 23, 42, 0.55) 0%, rgba(15, 23, 42, 0) 100%);
  pointer-events: none;
}

.species-archive-card .sac-cat {
  position: absolute; top: 10px; left: 10px;
  max-width: calc(100% - 70px);
  background: rgba(255, 255, 255, 0.96);
  color: var(--deep, #164e63);
  font-family: 'Josefin Sans', sans-serif;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 100px;
  border-left: 3px solid var(--cat-color, var(--primary, #06b6d4));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.species-archive-card .sac-photostars {
  position: absolute; top: 10px; right: 10px;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  font-size: 10.5px;
  font-weight: 600;
  font-family: 'Roboto', sans-serif;
  padding: 4px 8px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
}
.species-archive-card .sac-photostars i {
  color: #fcd34d;
  font-size: 9.5px;
}

.species-archive-card .sac-body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}

.species-archive-card .sac-name {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--deep, #164e63);
  line-height: 1.18;
  margin: 0;
  letter-spacing: -0.2px;
}

.species-archive-card .sac-meta {
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  color: var(--muted, #475569);
  margin: -2px 0 0;
  font-style: italic;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.species-archive-card .sac-tagline {
  font-family: 'Roboto', sans-serif;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--text);
  margin: 2px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Hide legacy card rows that may still be emitted by older JS */
.species-archive-card .sac-specs,
.species-archive-card .sac-locations { display: none; }

.species-archive-card .sac-specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 14px;
  padding: 10px 0 4px;
  border-top: 1px solid var(--border, rgba(6, 182, 212, 0.12));
  margin-top: 2px;
}
.species-archive-card .sac-spec {
  font-family: 'Roboto', sans-serif;
  font-size: 11.5px;
  color: var(--muted, #475569);
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.species-archive-card .sac-spec i {
  color: var(--primary, #06b6d4);
  font-size: 11px;
  width: 12px;
  text-align: center;
}

.species-archive-card .sac-locations {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.species-archive-card .sac-loc-chip {
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: var(--deep, #164e63);
  background: var(--primary-soft, #ecfeff);
  border: 1px solid var(--border, rgba(6, 182, 212, 0.18));
  padding: 3px 9px;
  border-radius: 100px;
}

.species-archive-card .sac-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border, rgba(6, 182, 212, 0.12));
  margin-top: auto;
}
.species-archive-card .sac-stat {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--deep, #164e63);
  line-height: 1.3;
  min-width: 0;
  flex: 1;
  overflow: hidden;
}
.species-archive-card .sac-stat .sac-stat-sub {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-size: 10.5px;
  font-weight: 400;
  color: var(--muted, #475569);
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.species-archive-card .sac-cta {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.22);
  width: 32px;
  height: 32px;
  min-width: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow:
    0 3px 8px rgba(29, 78, 216, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.26);
  transition: all .2s ease;
  line-height: 1;
}
.species-archive-card .sac-cta i {
  font-size: 12px;
  line-height: 1;
  display: block;
}
.species-archive-card:hover .sac-cta {
  transform: translateY(-1px) scale(1.06);
  background: linear-gradient(135deg, #0ea371 0%, #0891b2 50%, #1e40af 100%);
  box-shadow:
    0 6px 14px rgba(29, 78, 216, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.32);
}

/* ─── Sidebar tweaks ─── */
.filter-subgroup { margin-bottom: 14px; }
.filter-subgroup:last-child { margin-bottom: 0; }
.filter-subgroup-title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted, #6b7c8a);
  margin: 0 0 6px;
}

.check-count {
  color: var(--muted, #8a98a4);
  font-size: 11.5px;
  font-weight: 500;
  margin-left: 2px;
}

.marine-life-archive-body .filter-section .filter-body { max-height: 480px; overflow-y: auto; }
.marine-life-archive-body .filter-section.collapsed .filter-body { display: none; }

.species-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  grid-auto-rows: 1fr;
  gap: 16px;
  align-items: stretch;
}
.species-archive-grid .species-archive-card { height: 100%; }

@media (max-width: 720px) {
  .species-archive-card .sac-name { font-size: 16px; }
  .species-archive-card .sac-tagline { font-size: 12px; }
  .species-archive-grid {
    gap: 12px;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    grid-auto-rows: auto;
  }
  .species-archive-grid .species-archive-card { height: auto; }
  .species-archive-card .sac-body { padding: 10px 12px 12px; }
  .species-archive-card .sac-cat { font-size: 9.5px; padding: 3px 8px; }
  .species-archive-card .sac-photostars { font-size: 10px; padding: 4px 7px; }
}

/* ─── Archive content wrapper (replaces .main-layout) ─── */
.marine-archive-content {
  max-width: 1320px;
  margin: 0 auto;
  padding: 28px 24px 60px;
}
@media (max-width: 720px) {
  .marine-archive-content { padding: 20px 14px 40px; }
}

/* ─── Glassmorphic tab strip + inline search ─── */
.species-tabs-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: sticky;
  top: 78px;
  z-index: 40;
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.78) 0%,
    rgba(255, 255, 255, 0.62) 100%);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow:
    0 8px 32px rgba(6, 95, 120, 0.08),
    0 2px 8px rgba(6, 182, 212, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  border-radius: 18px;
  padding: 10px 14px;
  margin: 0 0 22px;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .species-tabs-wrap { background: rgba(255, 255, 255, 0.96); }
}

/* Scrollable tab row — visible thin scrollbar + fade edges */
.species-tabs-row-wrap {
  position: relative;
  flex: 1;
  min-width: 0;
}
.species-tabs-row {
  display: flex;
  gap: 6px;
  justify-content: flex-start;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2px 4px 8px;
  scrollbar-width: thin;
  scrollbar-color: rgba(6, 182, 212, 0.35) transparent;
  -webkit-overflow-scrolling: touch;
}
.species-tabs-row::-webkit-scrollbar { height: 6px; }
.species-tabs-row::-webkit-scrollbar-track { background: transparent; }
.species-tabs-row::-webkit-scrollbar-thumb {
  background: rgba(6, 182, 212, 0.35);
  border-radius: 100px;
}
.species-tabs-row::-webkit-scrollbar-thumb:hover { background: rgba(6, 182, 212, 0.6); }

/* Center the tabs when they don't overflow */
.species-tabs-row.tabs-fit { justify-content: center; }

/* Pill-style tabs (matches homepage .smart-btn) */
.species-tab {
  background: rgba(255, 255, 255, 0.7);
  border: 1.5px solid rgba(6, 182, 212, 0.18);
  cursor: pointer;
  padding: 7px 14px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--deep, #164e63);
  letter-spacing: 0.01em;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-radius: 100px;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(6, 95, 120, 0.04);
  transition: all .18s ease;
  flex-shrink: 0;
}
.species-tab:hover {
  border-color: var(--primary, #06b6d4);
  transform: translateY(-1px);
  background: #fff;
  box-shadow: 0 4px 12px rgba(6, 182, 212, 0.18);
}
.species-tab.active {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow:
    0 4px 12px rgba(29, 78, 216, 0.16),
    0 2px 6px rgba(16, 185, 129, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.species-tab.active:hover {
  transform: translateY(-1px);
  box-shadow:
    0 6px 16px rgba(29, 78, 216, 0.22),
    0 3px 8px rgba(16, 185, 129, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.32);
}
.species-tab-count {
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted, #94a3b8);
  background: rgba(15, 23, 42, 0.06);
  padding: 2px 8px;
  border-radius: 100px;
  line-height: 1.4;
  transition: all .18s ease;
}
.species-tab.active .species-tab-count {
  color: #fff;
  background: rgba(255, 255, 255, 0.22);
}
.species-tab:not(.active):hover .species-tab-count {
  color: var(--primary, #06b6d4);
  background: rgba(6, 182, 212, 0.12);
}

/* Glassmorphic search input */
.species-search {
  position: relative;
  flex-shrink: 0;
  min-width: 220px;
}
.species-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted, #94a3b8);
  font-size: 13px;
  pointer-events: none;
}
.species-search-input {
  width: 100%;
  padding: 9px 14px 9px 36px;
  font-family: 'Roboto', sans-serif;
  font-size: 13.5px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.8);
  border: 1.5px solid rgba(6, 182, 212, 0.18);
  border-radius: 100px;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.species-search-input:focus {
  border-color: var(--primary, #06b6d4);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.15);
}
.species-search-input::placeholder { color: var(--muted, #94a3b8); }

@media (max-width: 880px) {
  .species-tabs-wrap {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 14px;
  }
  .species-search { min-width: 0; width: 100%; }
}

/* ─── Results meta (count line) ─── */
.results-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 14px;
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  color: var(--muted, #6b7c8a);
}
.results-meta .results-count strong { color: var(--deep, #164e63); }

/* ─── No-results state ─── */
.no-results {
  padding: 40px 20px;
  text-align: center;
  font-family: 'Roboto', sans-serif;
  color: var(--muted, #6b7c8a);
  grid-column: 1 / -1;
}
.no-results h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 18px;
  color: var(--deep, #164e63);
  margin: 0 0 6px;
}
.no-results .clear-link {
  margin-top: 14px;
  background: transparent;
  border: 1px solid var(--primary, #06b6d4);
  color: var(--primary, #06b6d4);
  padding: 8px 18px;
  border-radius: 100px;
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

/* ─── Archive hero banner (scoped to /marine-life/ only) ─── */
body.marine-life-archive-body .courses-hero {
  position: relative;
  /* Balance top/bottom: site header is ~78px fixed, so top padding 130px
   * leaves ~52px visible above the eyebrow. Bottom 52px matches it. */
  padding: 130px 24px 52px;
  background:
    linear-gradient(90deg,
      rgba(15, 23, 42, 0.62) 0%,
      rgba(15, 23, 42, 0.30) 45%,
      rgba(15, 23, 42, 0.05) 70%),
    url('/marine-life/images/archive-banner.webp') center/cover no-repeat;
  border-bottom: 1px solid rgba(15, 23, 42, 0.15);
}
body.marine-life-archive-body .courses-hero h1,
body.marine-life-archive-body .courses-hero .courses-eyebrow,
body.marine-life-archive-body .courses-hero .courses-lede,
body.marine-life-archive-body .courses-hero-stats strong,
body.marine-life-archive-body .courses-hero-stats span {
  color: #fff;
}
body.marine-life-archive-body .courses-hero .courses-eyebrow {
  color: rgba(255, 255, 255, 0.92);
  /* Long eyebrow ("Marine Life · India's First Scuba Aggregator") wraps to two
   * lines on narrow viewports; default browser line-height bunches the lines. */
  line-height: 1.55;
}
body.marine-life-archive-body .courses-hero .courses-lede,
body.marine-life-archive-body .courses-hero-stats span {
  color: rgba(255, 255, 255, 0.85);
}

/* Mobile — header shrinks to ~60px tall, balance visible space accordingly */
@media (max-width: 720px) {
  body.marine-life-archive-body .courses-hero {
    padding: 100px 18px 40px;
  }
  body.marine-life-archive-body .courses-hero .courses-eyebrow {
    margin-bottom: 14px;
  }
}

/* ─── Marine-life CTA banner (replaces gradient) ─── */
body:is(.marine-life-archive-body, .marine-species-body) .final-cta {
  background:
    linear-gradient(135deg,
      rgba(15, 23, 42, 0.62) 0%,
      rgba(15, 23, 42, 0.38) 50%,
      rgba(6, 95, 120, 0.62) 100%),
    url('/marine-life/images/marine-cta-banner.webp?v=202605222345') center/cover no-repeat;
}
body:is(.marine-life-archive-body, .marine-species-body) .final-cta::before {
  /* Drop the original radial glow — the image carries the atmosphere now */
  display: none;
}

/* Glassmorphic WhatsApp CTA button (scoped to marine-life CTA section) */
body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.22) 0%,
    rgba(255, 255, 255, 0.12) 100%) !important;
  backdrop-filter: blur(14px) saturate(180%);
  -webkit-backdrop-filter: blur(14px) saturate(180%);
  color: #fff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.42) !important;
  padding: 12px 22px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1;
  box-shadow:
    0 6px 18px rgba(15, 23, 42, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 rgba(255, 255, 255, 0.10);
  transition: all .25s ease;
}
body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta:hover {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.34) 0%,
    rgba(255, 255, 255, 0.18) 100%) !important;
  border-color: rgba(255, 255, 255, 0.62) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow:
    0 12px 28px rgba(15, 23, 42, 0.26),
    inset 0 1px 0 rgba(255, 255, 255, 0.38),
    inset 0 -1px 0 rgba(255, 255, 255, 0.14);
}
body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta i {
  font-size: 16px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}
body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta .fa-whatsapp { font-size: 18px; color: #fff; }
body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta .cta-arrow {
  font-size: 12px;
  transition: transform .25s ease;
  opacity: 0.85;
}
body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta:hover .cta-arrow {
  transform: translateX(3px);
  opacity: 1;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body:is(.marine-life-archive-body, .marine-species-body) .final-cta .hero-cta {
    background: rgba(255, 255, 255, 0.22) !important;
  }
}

/* ─── SPECIES HUB PAGE ─── */
/* FlyingFish — Marine Life species hub (per-species)
 * Layered on top of /destinations/destination.css (hero, season-bar, faq, spec-card all inherited).
 * Defines: cross-destination heatmap + a few species-specific tweaks.
 */

/* ─── Cross-destination heatmap ─── */
.species-heatmap {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  margin-bottom: 14px;
}
.species-heatmap-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.6fr) repeat(12, 1fr);
  align-items: center;
  border-bottom: 1px solid var(--border);
}
.species-heatmap-row:last-child { border-bottom: none; }
.species-heatmap-row.species-heatmap-head {
  background: var(--bg-soft, #f8fdff);
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.species-heatmap-cell {
  padding: 8px 4px;
  text-align: center;
  font-family: 'Roboto', sans-serif;
  font-size: 11.5px;
  border-right: 1px solid var(--border);
}
.species-heatmap-cell:last-child { border-right: none; }
.species-heatmap-row .species-heatmap-cell.species-heatmap-loc {
  text-align: left;
  padding: 14px 14px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--deep);
  border-right: 1px solid var(--border);
  text-decoration: none;
}
.species-heatmap-row a.species-heatmap-cell.species-heatmap-loc { color: var(--deep); transition: color .2s; }
.species-heatmap-row a.species-heatmap-cell.species-heatmap-loc:hover { color: var(--primary); }
.species-heatmap-row .species-heatmap-loc-country {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 400;
  color: var(--muted);
  margin-top: 2px;
  letter-spacing: 0;
  text-transform: none;
}
.species-heatmap-cell.high     { background: linear-gradient(135deg, #06b6d4 0%, #0d9488 100%); color: #fff; font-weight: 600; }
.species-heatmap-cell.seasonal { background: #cffafe; color: #0e7490; }
.species-heatmap-cell.low      { background: #f8fafc; color: #cbd5e1; }
.species-heatmap-cell.empty    { background: #fff; color: transparent; }

.species-heatmap-legend {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  font-family: 'Roboto', sans-serif;
  font-size: 12.5px;
  color: var(--muted);
  margin: -4px 0 14px;
}
.species-heatmap-legend-dot {
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 3px;
  vertical-align: -1px;
  margin-right: 6px;
}
.species-heatmap-legend-dot.high     { background: linear-gradient(135deg, #06b6d4 0%, #0d9488 100%); }
.species-heatmap-legend-dot.seasonal { background: #cffafe; }
.species-heatmap-legend-dot.low      { background: #f8fafc; border: 1px solid #e2e8f0; }

/* ─── Species spec card overrides (extends .dest-spec-card) ─── */
.marine-species-body .dest-spec-card,
.marine-species-body .species-spec-card {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.62) 0%,
    rgba(255, 255, 255, 0.42) 100%);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 18px;
  padding: 26px 28px;
  box-shadow:
    0 18px 44px rgba(6, 95, 120, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .marine-species-body .dest-spec-card,
  .marine-species-body .species-spec-card { background: rgba(255, 255, 255, 0.94); }
}
.species-spec-card .photo-stars {
  color: #fcd34d;
  letter-spacing: 1px;
  font-size: 14px;
}
.species-spec-card .conservation-badge {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 100px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  vertical-align: middle;
}
.species-spec-card .conservation-badge.lc  { background: #d1fae5; color: #065f46; }
.species-spec-card .conservation-badge.nt  { background: #fef9c3; color: #713f12; }
.species-spec-card .conservation-badge.vu  { background: #fed7aa; color: #9a3412; }
.species-spec-card .conservation-badge.en  { background: #fecaca; color: #991b1b; }
.species-spec-card .conservation-badge.cr  { background: #fee2e2; color: #7f1d1d; }
.species-spec-card .conservation-badge.na  { background: #f1f5f9; color: #475569; }

/* ─── Mobile heatmap — rows become accordions, hide below-fold by default ─── */
@media (max-width: 720px) {
  .species-heatmap-row {
    grid-template-columns: minmax(110px, 1.4fr) repeat(12, 1fr);
  }
  .species-heatmap-row .species-heatmap-cell.species-heatmap-loc {
    font-size: 12px;
    padding: 10px 10px;
  }
  .species-heatmap-row .species-heatmap-loc-country { display: none; }
  .species-heatmap-cell { font-size: 10px; padding: 8px 1px; }
  .species-heatmap-row.species-heatmap-head { font-size: 9.5px; }
}

/* ─── Species-page hero: center content vertically ─── */
/* Overrides .dest-hero from /destinations/destination.css, which is shared
   with destination-hub pages — keep this scoped to .marine-species-body. */
.marine-species-body .dest-hero {
  justify-content: center;
}
.marine-species-body .dest-hero-inner {
  padding-top: 88px;
  padding-bottom: 32px;
}

/* ─── Species-page anchor tabs: pill style matching /marine-life/ ─── */
/* Wrapper loses its full-bleed bar look; the inner .dest-anchors becomes
   the glassmorphic capsule. */
.marine-species-body .dest-anchors-wrap {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: none;
}
.marine-species-body .dest-anchors {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.78) 0%,
    rgba(255, 255, 255, 0.62) 100%);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow:
    0 8px 32px rgba(6, 95, 120, 0.08),
    0 2px 8px rgba(6, 182, 212, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  border-radius: 18px;
  padding: 10px 14px;
  gap: 6px;
  margin: 12px auto 18px;
  width: calc(100% - 48px);
  max-width: 1400px;
  /* `safe center` keeps it centered when content fits; falls back to
     flex-start on overflow so mobile can scroll to the first pill. */
  justify-content: safe center;
  /* Show a thin cyan scrollbar matching /marine-life/ (override the
     scrollbar-hiding rules inherited from destination.css). */
  scrollbar-width: thin;
  scrollbar-color: rgba(6, 182, 212, 0.4) transparent;
  -webkit-overflow-scrolling: touch;
}
.marine-species-body .dest-anchors::-webkit-scrollbar { display: block; height: 6px; }
.marine-species-body .dest-anchors::-webkit-scrollbar-track { background: transparent; }
.marine-species-body .dest-anchors::-webkit-scrollbar-thumb {
  background: rgba(6, 182, 212, 0.4);
  border-radius: 100px;
}
.marine-species-body .dest-anchors::-webkit-scrollbar-thumb:hover { background: rgba(6, 182, 212, 0.65); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .marine-species-body .dest-anchors { background: rgba(255, 255, 255, 0.96); }
}
.marine-species-body .dest-anchors a {
  background: rgba(255, 255, 255, 0.7);
  border: 1.5px solid rgba(6, 182, 212, 0.18);
  padding: 11px 20px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--deep, #164e63);
  letter-spacing: 0.01em;
  border-radius: 100px;
  box-shadow: 0 1px 3px rgba(6, 95, 120, 0.04);
  transition: all .18s ease;
  white-space: nowrap;
  flex-shrink: 0;
}
.marine-species-body .dest-anchors a:hover,
.marine-species-body .dest-anchors a.is-active {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow:
    0 4px 12px rgba(29, 78, 216, 0.16),
    0 2px 6px rgba(16, 185, 129, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.marine-species-body .dest-anchors a:hover {
  transform: translateY(-1px);
}
@media (max-width: 880px) {
  .marine-species-body .dest-anchors {
    width: calc(100% - 24px);
    padding: 8px 10px 4px;
    border-radius: 14px;
  }
  .marine-species-body .dest-anchors a { padding: 10px 16px; font-size: 13.5px; }
}

/* ─── Trips-category pills: match the section-anchor capsule style ─── */
.marine-species-body .dest-trips-cats {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.78) 0%,
    rgba(255, 255, 255, 0.62) 100%);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow:
    0 8px 32px rgba(6, 95, 120, 0.08),
    0 2px 8px rgba(6, 182, 212, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  border-radius: 18px;
  padding: 10px 14px;
  gap: 6px;
  margin: 0 auto 28px;
  width: 100%;
  max-width: 1400px;
  justify-content: safe center;
  scrollbar-width: thin;
  scrollbar-color: rgba(6, 182, 212, 0.4) transparent;
  -webkit-overflow-scrolling: touch;
}
.marine-species-body .dest-trips-cats::-webkit-scrollbar { display: block; height: 6px; }
.marine-species-body .dest-trips-cats::-webkit-scrollbar-track { background: transparent; }
.marine-species-body .dest-trips-cats::-webkit-scrollbar-thumb {
  background: rgba(6, 182, 212, 0.4);
  border-radius: 100px;
}
.marine-species-body .dest-trips-cats::-webkit-scrollbar-thumb:hover { background: rgba(6, 182, 212, 0.65); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .marine-species-body .dest-trips-cats { background: rgba(255, 255, 255, 0.96); }
}
.marine-species-body .dest-trips-cat {
  background: rgba(255, 255, 255, 0.7);
  border: 1.5px solid rgba(6, 182, 212, 0.18);
  padding: 11px 20px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--deep, #164e63);
  letter-spacing: 0.01em;
  border-radius: 100px;
  box-shadow: 0 1px 3px rgba(6, 95, 120, 0.04);
  transition: all .18s ease;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.marine-species-body .dest-trips-cat:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  transform: translateY(-1px);
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
  box-shadow:
    0 4px 12px rgba(29, 78, 216, 0.16),
    0 2px 6px rgba(16, 185, 129, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.marine-species-body .dest-trips-cat.active {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow:
    0 4px 12px rgba(29, 78, 216, 0.16),
    0 2px 6px rgba(16, 185, 129, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.marine-species-body .dest-trips-cat-count {
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted, #94a3b8);
  background: rgba(15, 23, 42, 0.06);
  padding: 2px 8px;
  border-radius: 100px;
  line-height: 1.4;
  margin-left: 0;
  opacity: 1;
  transition: all .18s ease;
}
.marine-species-body .dest-trips-cat.active .dest-trips-cat-count,
.marine-species-body .dest-trips-cat:hover .dest-trips-cat-count {
  color: #fff;
  background: rgba(255, 255, 255, 0.22);
}
@media (max-width: 880px) {
  .marine-species-body .dest-trips-cats { padding: 8px 10px 4px; border-radius: 14px; }
  .marine-species-body .dest-trips-cat { padding: 10px 16px; font-size: 13.5px; }
}

/* ─── About section: vertically center the prose column against the spec card ─── */
.marine-species-body .dest-about-grid { align-items: center; }

/* Mobile: put the Species facts card ABOVE the paragraphs so the at-a-glance
   facts hit the reader first, then the long-form prose. */
@media (max-width: 720px) {
  .marine-species-body .species-spec-card { order: -1; }
}

/* ─── Hero: more breathing room between stacked elements ─── */
.marine-species-body .dest-eyebrow { margin-bottom: 16px; }
.marine-species-body .dest-h1 { margin-bottom: 18px; }
.marine-species-body .dest-tagline { margin-bottom: 28px; }

/* ─── Section heading + subtitle: gap from content + centered subtitle block ─── */
.marine-species-body .dest-section h2 {
  margin-bottom: 28px;
}
.marine-species-body .dest-section h2:has(+ .section-subtitle) {
  margin-bottom: 14px;
}
.marine-species-body .dest-section h2:has(+ .section-subtitle:empty) {
  margin-bottom: 28px;
}
.marine-species-body .dest-section .section-subtitle {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
}
.marine-species-body .dest-section .section-subtitle:empty { display: none; }

/* ─── Best-months strip (above heatmap) ─── */
.best-months-strip {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 6px;
  margin: 0 0 16px;
}
.best-month-cell {
  appearance: none;
  border: 1.5px solid transparent;
  border-radius: 12px;
  padding: 14px 4px 10px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}
.best-month-cell.peak {
  background: linear-gradient(135deg, #06b6d4 0%, #0d9488 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(6, 182, 212, 0.18);
}
.best-month-cell.shoulder {
  background: #cffafe;
  color: #0e7490;
}
.best-month-cell.off {
  background: #f1f5f9;
  color: #94a3b8;
}
.best-month-cell:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(6, 95, 120, 0.12);
}
.best-month-cell.is-active {
  border-color: #1d4ed8;
  box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.18), 0 4px 12px rgba(29, 78, 216, 0.16);
}

/* ─── Interactive heatmap states ─── */
.species-heatmap-month-head {
  cursor: pointer;
  user-select: none;
  transition: background .18s ease, color .18s ease;
}
.species-heatmap-month-head:hover {
  background: rgba(6, 182, 212, 0.08);
  color: #0e7490;
}
.species-heatmap-month-head:focus-visible {
  outline: 2px solid #06b6d4;
  outline-offset: -2px;
}
.species-heatmap[data-month-active] .species-heatmap-cell[data-month] {
  opacity: 0.4;
  transition: opacity .18s ease, box-shadow .18s ease, transform .18s ease;
}
.species-heatmap[data-month-active="1"] [data-month="1"],
.species-heatmap[data-month-active="2"] [data-month="2"],
.species-heatmap[data-month-active="3"] [data-month="3"],
.species-heatmap[data-month-active="4"] [data-month="4"],
.species-heatmap[data-month-active="5"] [data-month="5"],
.species-heatmap[data-month-active="6"] [data-month="6"],
.species-heatmap[data-month-active="7"] [data-month="7"],
.species-heatmap[data-month-active="8"] [data-month="8"],
.species-heatmap[data-month-active="9"] [data-month="9"],
.species-heatmap[data-month-active="10"] [data-month="10"],
.species-heatmap[data-month-active="11"] [data-month="11"],
.species-heatmap[data-month-active="12"] [data-month="12"] {
  opacity: 1;
  box-shadow: inset 0 0 0 2px #1d4ed8;
  transform: scale(1.02);
  z-index: 1;
  position: relative;
}
.species-heatmap-row:not(.species-heatmap-head):hover {
  background: rgba(6, 182, 212, 0.04);
}

/* ════════════════════════════════════════════════════════════════════
   "When to dive" — glassmorphic redesign + mobile fixes
   - All rules scoped to .marine-species-body so destination hub pages
     keep their original heatmap look.
   - Brand gradient (teal → cyan → indigo) matches .header-cta and the
     active anchor / trip-category pills.
   ════════════════════════════════════════════════════════════════════ */

/* 1) Section wrapper — frosted glass card from homepage .hero-search */
.marine-species-body #when .when-card {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.58) 0%,
    rgba(255, 255, 255, 0.38) 100%);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 24px;
  padding: 28px;
  box-shadow:
    0 24px 60px rgba(6, 95, 120, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.45);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .marine-species-body #when .when-card { background: rgba(255, 255, 255, 0.92); }
}

/* 2) Best-months strip — brand 3-stop gradient for peak, frosted variants */
.marine-species-body .best-month-cell.peak {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.28);
  box-shadow:
    0 4px 12px rgba(29, 78, 216, 0.16),
    0 2px 6px rgba(16, 185, 129, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.marine-species-body .best-month-cell.shoulder {
  background: rgba(207, 250, 254, 0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(6, 182, 212, 0.25);
  color: #0e7490;
}
.marine-species-body .best-month-cell.off {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.22);
  color: #94a3b8;
}
.marine-species-body .best-month-cell:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(6, 95, 120, 0.16);
}
.marine-species-body .best-month-cell.is-active {
  border-color: #1d4ed8;
  transform: translateY(-1px);
  box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.20), 0 6px 14px rgba(29, 78, 216, 0.20);
}

/* 3) Heatmap container — frosted glass + cleaner cells */
.marine-species-body .species-heatmap {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.62) 0%,
    rgba(255, 255, 255, 0.42) 100%);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(6, 95, 120, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.42);
  overflow: hidden;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .marine-species-body .species-heatmap { background: rgba(255, 255, 255, 0.92); }
}
.marine-species-body .species-heatmap-row.species-heatmap-head {
  background: rgba(255, 255, 255, 0.55);
}

/* Cells: brand gradient for high, frosted cyan for seasonal, blank for low.
   Drop the ● / ◐ glyphs — colour does the work and they misalign at small sizes. */
.marine-species-body .species-heatmap-cell.high {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.88) 0%,
    rgba(6, 182, 212, 0.88) 50%,
    rgba(29, 78, 216, 0.88) 100%);
  color: transparent;
  font-weight: 600;
}
.marine-species-body .species-heatmap-cell.seasonal {
  background: rgba(6, 182, 212, 0.20);
  color: transparent;
}
.marine-species-body .species-heatmap-cell.low {
  background: transparent;
  color: transparent;
}
.marine-species-body .species-heatmap-cell {
  transition: transform .15s ease, box-shadow .15s ease, opacity .18s ease;
}
.marine-species-body .species-heatmap-cell.high:hover,
.marine-species-body .species-heatmap-cell.seasonal:hover {
  transform: scale(1.06);
  box-shadow: 0 4px 12px rgba(29, 78, 216, 0.22);
  z-index: 2;
  position: relative;
}

/* 4) Legend dots — colour-match the new cell palette */
.marine-species-body .species-heatmap-legend-dot.high {
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.96) 0%,
    rgba(6, 182, 212, 0.96) 50%,
    rgba(29, 78, 216, 0.96) 100%);
}
.marine-species-body .species-heatmap-legend-dot.seasonal {
  background: rgba(6, 182, 212, 0.20);
  border: 1px solid rgba(6, 182, 212, 0.4);
}
.marine-species-body .species-heatmap-legend-dot.low {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.3);
}

/* 6) No-destinations placeholder — friendly card instead of error text */
.marine-species-body .section-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 36px 24px 32px;
  gap: 14px;
}
.marine-species-body .section-placeholder-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,
    rgba(16, 185, 129, 0.18) 0%,
    rgba(6, 182, 212, 0.18) 50%,
    rgba(29, 78, 216, 0.18) 100%);
  border: 1px solid rgba(6, 182, 212, 0.25);
  color: #0e7490;
  font-size: 24px;
  margin-bottom: 4px;
}
.marine-species-body .section-placeholder h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--deep, #164e63);
  margin: 0;
}
.marine-species-body .section-placeholder p {
  font-family: 'Roboto', sans-serif;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--text, #475569);
  margin: 0;
  max-width: 520px;
}
/* When the placeholder is present, also hide the "Best months overall" callout
   (the wording doesn't apply when we have no destination data). */
.marine-species-body .when-card:has(.when-placeholder) .season-callout { display: none; }

/* 5) Season callout — match the frosted look */
.marine-species-body #when .season-callout {
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(10px) saturate(160%);
  -webkit-backdrop-filter: blur(10px) saturate(160%);
  border: 1px solid rgba(6, 182, 212, 0.25);
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(6, 95, 120, 0.08);
}

/* ──────────── Mobile — fix the cropping ──────────── */
/* Best-months strip: switch to 6×2 so all months stay visible at 375px */
@media (max-width: 640px) {
  .marine-species-body .best-months-strip {
    grid-template-columns: repeat(6, 1fr);
    gap: 5px;
  }
  .marine-species-body .best-month-cell {
    min-height: 38px;
    font-size: 11.5px;
    padding: 9px 2px;
    border-radius: 10px;
  }
  .marine-species-body #when .when-card { padding: 18px; border-radius: 18px; }
}

/* Heatmap: horizontal scroll with sticky destination column on narrow screens */
@media (max-width: 700px) {
  .marine-species-body .species-heatmap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(6, 182, 212, 0.4) transparent;
  }
  .marine-species-body .species-heatmap::-webkit-scrollbar { height: 6px; }
  .marine-species-body .species-heatmap::-webkit-scrollbar-track { background: transparent; }
  .marine-species-body .species-heatmap::-webkit-scrollbar-thumb {
    background: rgba(6, 182, 212, 0.4);
    border-radius: 100px;
  }
  .marine-species-body .species-heatmap-row {
    min-width: 600px;
  }
  .marine-species-body .species-heatmap-row .species-heatmap-cell.species-heatmap-loc {
    position: sticky;
    left: 0;
    background:
      linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.96) 88%, rgba(255, 255, 255, 0) 100%);
    z-index: 3;
  }
}

/* ─── Difficulty meter ─── */
.diff-meter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  vertical-align: middle;
}
.diff-dots {
  display: inline-flex;
  gap: 4px;
}
.diff-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #e2e8f0;
  display: inline-block;
}
.diff-meter.diff-1 .diff-dot.on { background: #10b981; }
.diff-meter.diff-2 .diff-dot.on { background: #f59e0b; }
.diff-meter.diff-3 .diff-dot.on { background: #ef4444; }
.diff-label {
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  color: var(--text, #334155);
}

/* ─── Conservation badge with hover tooltip ─── */
.conservation-info {
  position: relative;
  display: inline-block;
  cursor: help;
}
.conservation-info::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  width: max-content;
  max-width: 240px;
  padding: 8px 12px;
  background: #0f172a;
  color: #fff;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(4px);
  transition: opacity .18s ease, transform .18s ease;
  z-index: 10;
  white-space: normal;
}
.conservation-info:hover::after,
.conservation-info:focus::after,
.conservation-info:focus-within::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ─── Trip cards: clear default anchor-underline on all descendants ─── */
/* The whole .dest-card is an <a>, so the browser's default underline cascades
   into title/subtitle/tags/price/button. Reset and re-apply text colour. */
.marine-species-body .dest-card,
.marine-species-body .dest-card:hover,
.marine-species-body .dest-card:focus,
.marine-species-body .dest-card:visited,
.marine-species-body .dest-card * {
  text-decoration: none !important;
}
.marine-species-body .dest-card { color: var(--text); }
.marine-species-body .dest-card .card-name { color: var(--text); }
.marine-species-body .dest-card .card-sub  { color: var(--muted); }
.marine-species-body .dest-card .price-amount { color: var(--text); }
.marine-species-body .dest-card .price-srp,
.marine-species-body .dest-card .price-per { color: var(--dim, #94a3b8); }
.marine-species-body .dest-card .card-body { gap: 12px; padding: 18px; }
/* Inline-flex the trip "Book →" CTA so the FA arrow sits on the text baseline */
.marine-species-body .dest-card .card-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.marine-species-body .dest-card .card-cta .cta-arrow {
  font-size: 11px;
  transition: transform .2s ease;
}
.marine-species-body .dest-card:hover .card-cta .cta-arrow {
  transform: translateX(3px);
}
/* Same FA arrow treatment for destination cards in the Where-to-dive grid */
.marine-species-body .dest-archive-card .dac-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.marine-species-body .dest-archive-card .dac-cta .cta-arrow {
  font-size: 11px;
  transition: transform .2s ease;
}
.marine-species-body .dest-archive-card:hover .dac-cta .cta-arrow {
  transform: translateX(3px);
}
/* Drop the 2-line min-height on title so 1-line titles don't leave a gap above the subtitle */
.marine-species-body .dest-card .card-name { min-height: 0; margin-bottom: 2px; }
.marine-species-body .dest-card .card-sub  { min-height: 0; margin-top: 0; }

/* ─── FAQ accordion (native <details>) ─── */
.marine-species-body .dest-faq-list {
  margin-left: auto;
  margin-right: auto;
}
.marine-species-body .dest-faq-list details.dest-faq-item {
  background: #fff;
  border: 1px solid rgba(6, 182, 212, 0.18);
  border-radius: 14px;
  padding: 0;
  margin: 0 0 12px;
  overflow: hidden;
  transition: box-shadow .18s ease, border-color .18s ease;
}
.marine-species-body .dest-faq-list details.dest-faq-item[open] {
  box-shadow: 0 8px 24px rgba(6, 95, 120, 0.08);
  border-color: rgba(6, 182, 212, 0.4);
}
.marine-species-body .dest-faq-list summary.dest-faq-q {
  list-style: none;
  cursor: pointer;
  padding: 18px 56px 18px 22px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--deep, #164e63);
  position: relative;
  user-select: none;
}
.marine-species-body .dest-faq-list summary.dest-faq-q::-webkit-details-marker { display: none; }
.marine-species-body .dest-faq-list summary.dest-faq-q::marker { display: none; content: ''; }
.dest-faq-chev {
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--primary, #06b6d4);
  font-size: 14px;
  transition: transform .22s ease;
}
.marine-species-body .dest-faq-list details[open] .dest-faq-chev {
  transform: translateY(-50%) rotate(180deg);
}
.marine-species-body .dest-faq-list .dest-faq-a {
  padding: 0 22px 18px;
  font-family: 'Roboto', sans-serif;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--text, #334155);
}

/* ─── Mobile tweaks for new widgets ─── */
@media (max-width: 700px) {
  .best-months-strip { gap: 4px; }
  .best-month-cell { font-size: 11px; padding: 12px 2px 8px; min-height: 40px; border-radius: 10px; }
  .diff-meter { gap: 6px; }
  .diff-label { font-size: 12px; }
  .marine-species-body .dest-faq-list summary.dest-faq-q { font-size: 14.5px; padding: 14px 48px 14px 16px; }
  .marine-species-body .dest-faq-list .dest-faq-a { padding: 0 16px 14px; font-size: 13.5px; }
  .conservation-info::after {
    left: 50%;
    right: auto;
    max-width: 200px;
    transform: translateX(-50%) translateY(4px);
  }
  .conservation-info:hover::after,
  .conservation-info:focus::after,
  .conservation-info:focus-within::after {
    transform: translateX(-50%) translateY(0);
  }
}
