/* ============================================================================
   Outfitter — Design Pack · Blackwater Ridge Fly & Guide Co. (fishing) — skin
   ----------------------------------------------------------------------------
   Ported from design/fishing/home-fishing-blackwater-ridge.html, scoped to
   [data-pack="fishing"] and wired into the Outfitter Blocks/Listings widgets
   (each widget outputs these classes). The visitor sees the design file; the
   buyer edits widgets. Internal aliases (--abyss/--brass/--foam …) map onto the
   theme's global colour slots so a Brand Settings accent override flows through.

   STANDING EDITOR-SAFE RULE: nothing stays opacity:0-until-JS in the editor;
   scroll/entrance/idle animations are disabled under body.elementor-editor-active
   so every section is visible + click-editable.
   Style-tab overrides: overridable props read var(--obk-*, <design default>).
   ============================================================================ */

[data-pack="fishing"] {
  --abyss: var(--r-page-bg);
  --deep: var(--r-raised-bg);
  --petrol: var(--r-contrast-bg);      /* dual-use band ground -> contrast band role */
  --petrol-2: var(--color-primary);    /* was #143a43 == fishing primary */
  --teal: #1c4a52;
  --verdigris: var(--color-secondary);
  --foam: var(--r-page-ink);
  --foam-2: var(--r-raised-muted);
  --mist: var(--r-page-muted);
  --mist-dim: var(--r-raised-muted);
  --brass: var(--r-accent);
  --brass-br: #e2bd66;
  --copper: #bd7440;
  --line: var(--r-line);
  --line-2: var(--r-line-strong);   /* per-skin hairline (was foam .2 — invisible on the light skins) */
  --img-saturation: .82;
}

/* River-dark page wash (scoped; never touches other skins). */
html[data-pack="fishing"],
[data-pack="fishing"] body {
  background-color: var(--abyss);
  color: var(--foam);
}
[data-pack="fishing"] body {
  background-image:
    radial-gradient(ellipse at 16% 6%, var(--fish-wash-a, rgba(63, 133, 124, .12)), transparent 55%),
    radial-gradient(ellipse at 88% 94%, var(--fish-wash-b, rgba(20, 58, 67, .5)), transparent 55%);
  background-attachment: fixed;
}
/* Non-fishing skins: repaint the page wash from the per-skin tint roles so the
   river-teal blotches don't bleed onto the light skins. Fishing keeps its own. */
[data-pack="fishing"]:not([data-variant="fishing"]) body {
  --fish-wash-a: var(--r-page-tint-a);
  --fish-wash-b: var(--r-page-tint-b);
}
[data-pack="fishing"] ::selection { background: var(--brass); color: var(--r-on-accent); }

/* Elementor container reset so the section classes own their own spacing. */
[data-pack="fishing"] .e-con,
[data-pack="fishing"] .e-con-inner { --gap: 0px; gap: 0; }
[data-pack="fishing"] .e-con > .e-con-inner { padding: 0; }

/* Film grain (all packs) + hero water motes (seeded by design-pack-fishing.js). */
[data-pack="fishing"] .grain {
  position: fixed; inset: 0; pointer-events: none; z-index: 9999;
  opacity: .10; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
[data-pack="fishing"] .mote {
  position: absolute; bottom: -12px; border-radius: 50%;
  background: radial-gradient(circle, rgba(238, 243, 238, .95), rgba(201, 162, 74, .4));
  box-shadow: 0 0 7px rgba(238, 243, 238, .5); opacity: 0; animation: fz-moteRise linear infinite;
}
@keyframes fz-moteRise {
  0% { transform: translate(0, 0) scale(.4); opacity: 0; }
  12% { opacity: .7; }
  50% { transform: translate(var(--wob), -50vh) scale(1); }
  100% { transform: translate(0, -100vh) scale(.6); opacity: 0; }
}

/* Reveal-on-scroll (only hides when JS can reveal). */
html.dp-js[data-pack="fishing"] .reveal { opacity: 0; transform: translateY(40px); transition: opacity 1s ease, transform 1s ease; }
html.dp-js[data-pack="fishing"] .reveal.in { opacity: 1; transform: translateY(0); }

/* Plain-tag heading/paragraph margins reset inside widget output. */
[data-pack="fishing"] .obk-block :where(h1, h2, h3, h4, p, div, ul, li) { margin: 0; }
[data-pack="fishing"] .obk-block a { color: inherit; text-decoration: none; }

/* ── Buttons (shared .btn; .dp-btn is the Elementor-button-bridge alias used
   by widgets that render Elementor button markup, e.g. the CTA) ──────────── */
[data-pack="fishing"] .btn,
[data-pack="fishing"] .dp-btn {
  display: inline-flex; align-items: center; gap: 14px; padding: 17px 30px;
  font-family: var(--obk-btn-font, "Saira Condensed", sans-serif); font-size: 13px; letter-spacing: .2em;
  text-transform: uppercase; font-weight: 600; cursor: pointer; border: none; background: transparent;
  color: var(--foam); position: relative; overflow: hidden; transition: transform .35s; text-decoration: none;
}
[data-pack="fishing"] .btn-primary,
[data-pack="fishing"] .dp-btn-primary { background: var(--obk-accent-color, var(--brass)); color: var(--r-on-accent); }
[data-pack="fishing"] .btn-primary::before,
[data-pack="fishing"] .dp-btn-primary::before {
  content: ""; position: absolute; inset: 0; background: var(--foam);
  transform: translateX(-101%); transition: transform .45s cubic-bezier(.7, 0, .2, 1); z-index: 0;
}
[data-pack="fishing"] .btn-primary span, [data-pack="fishing"] .btn-primary svg,
[data-pack="fishing"] .dp-btn-primary span { position: relative; z-index: 1; }
[data-pack="fishing"] .btn-primary:hover::before,
[data-pack="fishing"] .dp-btn-primary:hover::before { transform: translateX(0); }
[data-pack="fishing"] .btn-ghost,
[data-pack="fishing"] .dp-btn-ghost { border: 1px solid var(--line-2); color: var(--foam); }
[data-pack="fishing"] .btn-ghost:hover,
[data-pack="fishing"] .dp-btn-ghost:hover { border-color: var(--foam); background: rgba(238, 243, 238, .06); }
[data-pack="fishing"] .btn svg { width: 14px; height: 14px; transition: transform .35s; }
[data-pack="fishing"] .btn:hover svg { transform: translateX(5px); }

/* ── Section head (shared) ─────────────────────────────────────────────── */
[data-pack="fishing"] section { position: relative; }
[data-pack="fishing"] .sec-head {
  max-width: 1500px; margin: 0 auto 84px; padding: 0 56px;
  display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 48px; flex-wrap: wrap;
}
[data-pack="fishing"] .sec-kicker {
  font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: .3em;
  color: var(--obk-accent-color, var(--r-kicker)); text-transform: uppercase;
  display: flex; align-items: center; gap: 14px; margin-bottom: 22px;
}
[data-pack="fishing"] .sec-kicker .nm { color: var(--mist-dim); }
[data-pack="fishing"] .sec-title {
  font-family: var(--obk-heading-font, var(--font-heading));
  font-size: var(--obk-heading-size, clamp(38px, 5vw, 76px)); font-weight: 500; line-height: .98;
  color: var(--obk-heading-color, var(--foam)); letter-spacing: -.01em;
}
[data-pack="fishing"] .sec-title em { font-style: italic; font-weight: 400; color: var(--obk-accent-color, var(--brass)); }
[data-pack="fishing"] .sec-aside {
  max-width: 340px; font-family: var(--font-body); font-style: italic; font-size: 18px;
  line-height: 1.6; color: var(--mist); text-align: right;
}

/* ── HERO ──────────────────────────────────────────────────────────────── */
[data-pack="fishing"] .hero { position: relative; min-height: 100vh; overflow: hidden; display: flex; align-items: flex-end; }
[data-pack="fishing"] .hero-photo { position: absolute; inset: 0; z-index: 0; }
[data-pack="fishing"] .hero-photo img { width: 100%; height: 100%; object-fit: cover; animation: fz-slowZoom 22s ease-out forwards; filter: saturate(var(--img-saturation)) contrast(1.05); }
[data-pack="fishing"] .hero-photo::after {
  content: ""; position: absolute; inset: 0;
  background: var(--r-scrim-hero), linear-gradient(90deg, rgba(6, 22, 26, .8), transparent 52%);
}
@keyframes fz-slowZoom { from { transform: scale(1.14); } to { transform: scale(1.02); } }
[data-pack="fishing"] .hero-content { position: relative; z-index: 3; width: 100%; max-width: 1500px; margin: 0 auto; padding: 0 56px 78px; }
[data-pack="fishing"] .eyebrow {
  display: flex; align-items: center; gap: 16px; font-family: "IBM Plex Mono", monospace;
  font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--obk-accent-color, var(--r-scrim-kicker));
  margin-bottom: 36px; opacity: 0; animation: fz-fadeUp 1.1s ease .3s forwards;
}
[data-pack="fishing"] .eyebrow .ln { flex: 0 0 56px; height: 1px; background: var(--r-scrim-kicker); }
[data-pack="fishing"] .eyebrow .yr { color: var(--r-scrim-muted); }
[data-pack="fishing"] h1.hero-title {
  font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 600;
  font-size: var(--obk-heading-size, clamp(54px, 8.4vw, 134px)); line-height: .9; letter-spacing: -.02em;
  color: var(--obk-heading-color, var(--r-scrim-ink)); margin-bottom: 30px; text-shadow: 0 4px 44px rgba(0, 0, 0, .45);
}
[data-pack="fishing"] h1.hero-title .l1, [data-pack="fishing"] h1.hero-title .l2 { display: block; overflow: hidden; }
[data-pack="fishing"] h1.hero-title .l1 i, [data-pack="fishing"] h1.hero-title .l2 i { display: inline-block; font-style: normal; transform: translateY(108%); opacity: 0; animation: fz-maskUp 1.4s cubic-bezier(.16, .84, .12, 1) forwards; }
[data-pack="fishing"] h1.hero-title .l1 i { animation-delay: .5s; }
[data-pack="fishing"] h1.hero-title .l2 i { animation-delay: .72s; }
[data-pack="fishing"] h1.hero-title .l2 { font-style: italic; font-weight: 400; color: var(--r-scrim-muted); }
[data-pack="fishing"] h1.hero-title .amp { color: var(--obk-accent-color, var(--r-scrim-kicker)); font-weight: 400; font-style: normal; }
@keyframes fz-maskUp { from { transform: translateY(108%); opacity: 0; filter: blur(8px); } to { transform: translateY(0); opacity: 1; filter: blur(0); } }
[data-pack="fishing"] .hero-lede { max-width: 500px; font-size: 18px; line-height: 1.6; color: var(--obk-text-color, var(--r-scrim-muted)); font-weight: 400; opacity: 0; animation: fz-fadeUp 1.2s ease 1s forwards; }
[data-pack="fishing"] .hero-lede strong { color: var(--r-scrim-ink); font-weight: 500; }
[data-pack="fishing"] .hero-actions { display: flex; gap: 16px; align-items: center; margin-top: 40px; opacity: 0; animation: fz-fadeUp 1.2s ease 1.2s forwards; flex-wrap: wrap; }
@keyframes fz-fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
[data-pack="fishing"] .hero-report {
  position: absolute; z-index: 3; right: 56px; top: 22vh; width: 298px;
  background: rgba(10, 33, 39, .42); backdrop-filter: blur(18px) saturate(1.3); -webkit-backdrop-filter: blur(18px) saturate(1.3);
  border: 1px solid var(--line-2); padding: 26px 28px 22px; opacity: 0; animation: fz-fadeUp 1.2s ease 1.5s forwards;
}
[data-pack="fishing"] .hero-report .rh { display: flex; align-items: center; justify-content: space-between; font-family: "IBM Plex Mono", monospace; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--r-scrim-kicker); margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
[data-pack="fishing"] .hero-report .live { display: flex; align-items: center; gap: 8px; color: var(--r-scrim-muted); }
[data-pack="fishing"] .hero-report .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--r-scrim-kicker); animation: fz-pulse 2.4s infinite; }
@keyframes fz-pulse { 0% { box-shadow: 0 0 0 0 rgba(201, 162, 74, .6); } 70% { box-shadow: 0 0 0 9px rgba(201, 162, 74, 0); } 100% { box-shadow: 0 0 0 0 rgba(201, 162, 74, 0); } }
[data-pack="fishing"] .hero-report .row { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 0; }
[data-pack="fishing"] .hero-report .row .k { font-family: "Saira Condensed", sans-serif; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--r-scrim-muted); }
[data-pack="fishing"] .hero-report .row .v { font-family: var(--font-heading); font-size: 21px; color: var(--r-scrim-ink); }
[data-pack="fishing"] .hero-report .row .v.brass { color: var(--r-scrim-kicker); font-style: italic; }
[data-pack="fishing"] .hero-scroll { position: absolute; right: 60px; bottom: 34px; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 10px; font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--r-scrim-muted); opacity: 0; animation: fz-fadeUp 1s ease 1.8s forwards; }
[data-pack="fishing"] .hero-scroll .ln { width: 1px; height: 46px; background: linear-gradient(to bottom, var(--r-scrim-muted), transparent); position: relative; overflow: hidden; }
[data-pack="fishing"] .hero-scroll .ln::after { content: ""; position: absolute; top: -16px; left: 0; width: 100%; height: 16px; background: var(--r-scrim-kicker); animation: fz-drop 2.6s ease-in-out infinite; }
@keyframes fz-drop { 0% { top: -16px; } 100% { top: 50px; } }
[data-pack="fishing"] .caustics { position: absolute; inset: 0; z-index: 1; mix-blend-mode: soft-light; opacity: .5; pointer-events: none; background: radial-gradient(60% 40% at 30% 30%, rgba(201, 162, 74, .4), transparent 60%), radial-gradient(50% 50% at 70% 50%, rgba(63, 133, 124, .45), transparent 60%), radial-gradient(45% 60% at 50% 75%, rgba(226, 189, 102, .35), transparent 60%); background-size: 200% 200%; animation: fz-caustic 16s ease-in-out infinite alternate; }
@keyframes fz-caustic { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
[data-pack="fishing"] .mist { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
[data-pack="fishing"] .mist span { position: absolute; height: 60%; width: 50%; border-radius: 50%; filter: blur(60px); opacity: .16; background: radial-gradient(ellipse, rgba(238, 243, 238, .9), transparent 70%); }
[data-pack="fishing"] .mist span:nth-child(1) { bottom: 6%; left: -20%; animation: fz-drift1 34s linear infinite; }
[data-pack="fishing"] .mist span:nth-child(2) { bottom: 0%; left: 30%; height: 45%; opacity: .12; animation: fz-drift2 44s linear infinite; }
[data-pack="fishing"] .mist span:nth-child(3) { bottom: 18%; left: 60%; height: 40%; opacity: .1; animation: fz-drift1 52s linear infinite reverse; }
@keyframes fz-drift1 { 0% { transform: translateX(-10%); } 100% { transform: translateX(160%); } }
@keyframes fz-drift2 { 0% { transform: translateX(-20%); } 100% { transform: translateX(150%); } }
[data-pack="fishing"] .hero .motes { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }

/* ── TICKER ────────────────────────────────────────────────────────────── */
[data-pack="fishing"] .ticker { background: transparent; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; padding: 20px 0; position: relative; z-index: 5; }
[data-pack="fishing"] .ticker-track { display: flex; gap: 64px; animation: fz-scroll 55s linear infinite; width: max-content; flex-direction: row; --flex-direction: row; flex-wrap: nowrap; }
[data-pack="fishing"] .ticker-item { display: flex; align-items: center; gap: 16px; font-family: var(--obk-heading-font, var(--font-heading)); font-style: italic; font-size: 19px; letter-spacing: .04em; color: var(--obk-heading-color, var(--r-page-ink)); white-space: nowrap; }
[data-pack="fishing"] .ticker-item::after { content: "\2726"; color: var(--obk-accent-color, var(--brass)); font-style: normal; font-size: 12px; }
@keyframes fz-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── TRIPS — zigzag editorial rows (Listings "trips" style) ────────────── */
[data-pack="fishing"] .trips { padding: 150px 0 60px; }
[data-pack="fishing"] .trip-row { max-width: 1500px; margin: 0 auto 130px; padding: 0 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
[data-pack="fishing"] .trip-row .visual { position: relative; overflow: hidden; aspect-ratio: 4/3; background: var(--petrol); }
[data-pack="fishing"] .trip-row .visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.5s cubic-bezier(.2, .7, .1, 1); filter: saturate(var(--img-saturation)) contrast(1.04); }
[data-pack="fishing"] .trip-row:hover .visual img { transform: scale(1.06); }
[data-pack="fishing"] .trip-row .visual .bignum { position: absolute; left: -6px; bottom: -26px; font-family: var(--font-heading); font-weight: 700; font-size: 200px; line-height: .7; color: transparent; -webkit-text-stroke: 1.4px var(--r-bignum-stroke); pointer-events: none; z-index: 2; }
[data-pack="fishing"] .trip-row .visual .ribbon { position: absolute; top: 24px; left: 24px; z-index: 2; font-family: "IBM Plex Mono", monospace; font-size: 10.5px; letter-spacing: .25em; text-transform: uppercase; color: var(--r-scrim-ink); background: var(--r-scrim-tag); backdrop-filter: blur(8px); border: 1px solid var(--line-2); padding: 7px 13px; }
[data-pack="fishing"] .trip-row .visual .ribbon.gold { border-color: var(--r-scrim-kicker); color: var(--r-scrim-kicker); }
[data-pack="fishing"] .trip-row.flip .visual { order: 2; }
[data-pack="fishing"] .trip-row.flip .detail { order: 1; }
[data-pack="fishing"] .trip-row.flip .visual .bignum { left: auto; right: -6px; }
[data-pack="fishing"] .detail .species { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--obk-accent-color, var(--brass)); margin-bottom: 18px; display: flex; align-items: center; gap: 12px; }
[data-pack="fishing"] .detail .species::before { content: ""; width: 30px; height: 1px; background: var(--brass); }
[data-pack="fishing"] .detail .tname { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 600; font-size: clamp(40px, 4.4vw, 68px); line-height: .96; letter-spacing: -.015em; color: var(--obk-heading-color, var(--foam)); margin-bottom: 24px; }
[data-pack="fishing"] .detail .tdesc { font-family: var(--obk-body-font, var(--font-body)); font-size: 20px; line-height: 1.6; color: var(--obk-text-color, var(--foam-2)); font-weight: 400; max-width: 480px; margin-bottom: 34px; }
[data-pack="fishing"] .detail .tspecs { display: flex; gap: 44px; border-top: 1px solid var(--line-2); padding-top: 26px; margin-bottom: 32px; }
[data-pack="fishing"] .detail .tspecs .k { font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--mist-dim); }
[data-pack="fishing"] .detail .tspecs .v { font-family: var(--font-heading); font-size: 24px; color: var(--foam); margin-top: 8px; font-weight: 500; }
[data-pack="fishing"] .detail .tlink { display: inline-flex; align-items: center; gap: 14px; font-family: "Saira Condensed", sans-serif; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--foam); cursor: pointer; transition: gap .35s, color .35s; }
[data-pack="fishing"] .detail .tlink .circ { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; transition: all .4s; }
[data-pack="fishing"] .detail .tlink svg { width: 14px; height: 14px; transition: transform .4s; }
[data-pack="fishing"] .detail .tlink:hover { gap: 20px; color: var(--brass); }
[data-pack="fishing"] .detail .tlink:hover .circ { background: var(--brass); border-color: var(--brass); color: var(--r-on-accent); }
[data-pack="fishing"] .detail .tlink:hover .circ svg { transform: rotate(-45deg); }

/* ── FLEET — horizontal rail (Listings "fleet" style) ──────────────────── */
[data-pack="fishing"] .fleet { padding: 110px 0 140px; position: relative; }
[data-pack="fishing"] .fleet-railwrap { position: relative; margin-top: 10px; }
[data-pack="fishing"] .fleet-rail { display: flex; gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 8px 56px 40px; scrollbar-width: none; }
[data-pack="fishing"] .fleet-rail::-webkit-scrollbar { display: none; }
[data-pack="fishing"] .boat-card { flex: 0 0 clamp(360px, 38vw, 520px); scroll-snap-align: start; position: relative; background: var(--r-raised-bg); border: 1px solid var(--line); overflow: hidden; transition: transform .5s cubic-bezier(.2, .7, .1, 1), border-color .5s; }
[data-pack="fishing"] .boat-card::before { content: ""; position: absolute; inset: 0; opacity: .5; pointer-events: none; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 34px 34px; -webkit-mask-image: radial-gradient(ellipse at 70% 30%, #000 30%, transparent 75%); mask-image: radial-gradient(ellipse at 70% 30%, #000 30%, transparent 75%); }
[data-pack="fishing"] .boat-card:hover { transform: translateY(-6px); border-color: rgba(201, 162, 74, .4); }
[data-pack="fishing"] .boat-top { position: relative; z-index: 1; padding: 20px 34px 0; display: flex; justify-content: space-between; align-items: flex-start; }
[data-pack="fishing"] .boat-cls { font-family: "IBM Plex Mono", monospace; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--obk-accent-color, var(--brass)); }
[data-pack="fishing"] .boat-no { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .2em; color: var(--mist-dim); }
[data-pack="fishing"] .boat-media { position: relative; z-index: 1; overflow: hidden; aspect-ratio: 3 / 2; margin: 0; background: var(--petrol); }
[data-pack="fishing"] .boat-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.5s cubic-bezier(.2, .7, .1, 1); filter: saturate(var(--img-saturation)) contrast(1.04); }
[data-pack="fishing"] .boat-card:hover .boat-media img { transform: scale(1.06); }
[data-pack="fishing"] .boat-svg { position: relative; z-index: 1; padding: 16px 34px 4px; height: 150px; display: grid; place-items: center; }
[data-pack="fishing"] .boat-svg svg { width: 100%; height: 100%; overflow: visible; }
[data-pack="fishing"] .boat-svg svg .hull { fill: none; stroke: var(--brass); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
[data-pack="fishing"] .boat-svg svg .det { fill: none; stroke: var(--brass); stroke-width: 1.1; stroke-linecap: round; opacity: .8; }
[data-pack="fishing"] .boat-svg svg .water { stroke: var(--verdigris); stroke-width: 1.4; stroke-dasharray: 5 7; opacity: 0; transition: opacity .5s; stroke-linecap: round; }
[data-pack="fishing"] .boat-card:hover .boat-svg svg .water { opacity: .9; animation: fz-waterDash 3s linear infinite; }
@keyframes fz-waterDash { to { stroke-dashoffset: -48; } }
[data-pack="fishing"] .boat-svg svg .dim { stroke: var(--mist-dim); stroke-width: .8; opacity: 0; transition: opacity .5s; }
[data-pack="fishing"] .boat-card:hover .boat-svg svg .dim { opacity: .7; }
[data-pack="fishing"] .boat-info { position: relative; z-index: 1; padding: 6px 34px 34px; }
[data-pack="fishing"] .boat-name { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 600; font-size: 30px; letter-spacing: -.01em; color: var(--obk-heading-color, var(--foam)); line-height: 1; }
[data-pack="fishing"] .boat-name em { font-family: var(--font-body); font-style: italic; font-weight: 400; font-size: 16px; color: var(--mist); display: block; margin-top: 8px; letter-spacing: 0; }
[data-pack="fishing"] .boat-specs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 26px; border-top: 1px solid var(--line); padding-top: 20px; }
[data-pack="fishing"] .boat-specs .sp .k { font-family: "IBM Plex Mono", monospace; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: var(--mist-dim); }
[data-pack="fishing"] .boat-specs .sp .v { font-family: var(--font-heading); font-size: 20px; color: var(--foam); margin-top: 7px; font-weight: 500; }
[data-pack="fishing"] .boat-best { margin-top: 22px; display: flex; align-items: center; gap: 12px; font-family: var(--font-body); font-style: italic; font-size: 15.5px; color: var(--foam-2); }
[data-pack="fishing"] .boat-best .pin { width: 19px; height: 19px; flex-shrink: 0; color: var(--brass); }
[data-pack="fishing"] .rail-hint { max-width: 1500px; margin: 0 auto; padding: 0 56px; display: flex; align-items: center; gap: 14px; font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--mist-dim); }
[data-pack="fishing"] .rail-hint .track { flex: 1; height: 1px; background: var(--line-2); position: relative; overflow: hidden; }
[data-pack="fishing"] .rail-hint .track i { position: absolute; left: 0; top: 0; height: 100%; width: 30%; background: var(--brass); transition: left .2s ease, width .2s ease; }
[data-pack="fishing"] .rail-hint .arrows { display: flex; gap: 8px; }
[data-pack="fishing"] .rail-hint button { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line-2); background: transparent; color: var(--foam); cursor: pointer; display: grid; place-items: center; transition: all .3s; }
[data-pack="fishing"] .rail-hint button:hover { background: var(--brass); border-color: var(--brass); color: var(--r-on-accent); }
[data-pack="fishing"] .rail-hint button svg { width: 14px; height: 14px; }

/* ── WATERS — figure ribbon (Stats "figures" style) ────────────────────── */
[data-pack="fishing"] .waters { position: relative; padding: 140px 56px; background: var(--r-sunken-bg); overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
/* The obk-stats widget wrapper is position:relative (Elementor default), which
   trapped .waters-bg (inset:0) inside the inner content box — so the photo only
   covered the content area (offset by the section padding) and stopped short of
   the section edges. Neutralise the wrapper positioning so .waters is the bg's
   containing block and the photo covers the whole section, edge to edge. */
[data-pack="fishing"] .waters > .elementor-element,
[data-pack="fishing"] .waters .elementor-widget-obk-stats > .elementor-widget-container,
[data-pack="fishing"] .waters .obk-stats--figures { position: static; }
[data-pack="fishing"] .waters-bg { position: absolute; inset: 0; z-index: 0; opacity: .14; }
[data-pack="fishing"] .waters-bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.5) contrast(1.1); }
[data-pack="fishing"] .waters-inner { max-width: 1500px; margin: 0 auto; position: relative; z-index: 1; }
[data-pack="fishing"] .waters-statement { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 500; font-style: italic; font-size: clamp(28px, 3.6vw, 54px); line-height: 1.25; color: var(--obk-heading-color, var(--foam)); max-width: 1000px; letter-spacing: -.01em; margin-bottom: 90px; }
[data-pack="fishing"] .waters-statement b { font-style: normal; font-weight: 600; color: var(--obk-accent-color, var(--brass)); }
[data-pack="fishing"] .figs { display: flex; flex-wrap: wrap; gap: 0; }
[data-pack="fishing"] .fig { flex: 1 1 200px; padding: 8px 40px; border-left: 1px solid var(--line-2); }
[data-pack="fishing"] .fig:first-child { padding-left: 0; border-left: none; }
[data-pack="fishing"] .fig .n { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 500; font-size: clamp(56px, 6vw, 92px); line-height: 1; color: var(--obk-heading-color, var(--foam)); letter-spacing: -.02em; display: flex; align-items: flex-start; gap: 4px; }
[data-pack="fishing"] .fig .n sup { font-size: .28em; color: var(--obk-accent-color, var(--brass)); margin-top: .8em; }
[data-pack="fishing"] .fig .l { font-family: "Saira Condensed", sans-serif; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--foam-2); margin-top: 16px; font-weight: 600; }
[data-pack="fishing"] .fig .s { font-family: var(--font-body); font-style: italic; font-size: 15px; color: var(--mist-dim); margin-top: 6px; font-weight: 400; }

/* ── CAPTAINS — roster list (Team "captains" style) ────────────────────── */
[data-pack="fishing"] .captains { padding: 150px 0; }
[data-pack="fishing"] .cap-list { max-width: 1500px; margin: 0 auto; padding: 0 56px; border-top: 1px solid var(--line-2); }
[data-pack="fishing"] .cap-row { display: grid; grid-template-columns: 70px 110px 1fr auto; gap: 40px; align-items: center; padding: 34px 16px; border-bottom: 1px solid var(--line-2); cursor: pointer; position: relative; overflow: hidden; transition: padding .4s; }
[data-pack="fishing"] .cap-row::before { content: ""; position: absolute; left: 0; top: 0; width: 0; height: 100%; background: linear-gradient(90deg, rgba(201, 162, 74, .08), transparent); transition: width .5s; z-index: 0; }
[data-pack="fishing"] .cap-row:hover::before { width: 100%; }
[data-pack="fishing"] .cap-row > * { position: relative; z-index: 1; }
[data-pack="fishing"] .cap-row:hover { padding-left: 28px; }
[data-pack="fishing"] .cap-row .ix { font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: .2em; color: var(--obk-accent-color, var(--brass)); }
[data-pack="fishing"] .cap-row .pic { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; border: 1px solid var(--line-2); display: grid; place-items: center; }
[data-pack="fishing"] .cap-row .pic img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.45) contrast(1.08) brightness(.9); transition: all .8s; }
[data-pack="fishing"] .cap-row:hover .pic img { filter: saturate(.95) contrast(1.04) brightness(1); transform: scale(1.08); }
[data-pack="fishing"] .cap-row .pic .ph { font-family: var(--font-heading); font-size: 30px; color: var(--mist-dim); font-style: italic; }
[data-pack="fishing"] .cap-row .meta .role { font-family: "Saira Condensed", sans-serif; font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--mist-dim); margin-bottom: 10px; }
[data-pack="fishing"] .cap-row .meta .nm { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 600; font-size: clamp(28px, 3vw, 44px); line-height: 1; color: var(--obk-heading-color, var(--foam)); letter-spacing: -.01em; transition: color .3s; }
[data-pack="fishing"] .cap-row:hover .meta .nm { color: var(--brass); }
[data-pack="fishing"] .cap-row .meta .bio { font-family: var(--font-body); font-style: italic; font-size: 17px; color: var(--mist); margin-top: 10px; font-weight: 400; }
[data-pack="fishing"] .cap-row .yrs { font-family: var(--font-heading); font-size: 18px; color: var(--foam); text-align: right; white-space: nowrap; }
[data-pack="fishing"] .cap-row .yrs span { display: block; font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .2em; color: var(--mist-dim); text-transform: uppercase; margin-top: 6px; }

/* ── PLEDGE (Testimonials "single" style, fishing mark) ────────────────── */
[data-pack="fishing"] .pledge { padding: 170px 56px; background: transparent; position: relative; overflow: hidden; border-top: 1px solid var(--line); }
[data-pack="fishing"] .pledge::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 20%, rgba(201, 162, 74, .08) 0%, transparent 60%); }
[data-pack="fishing"] .pledge-inner { max-width: 1100px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }
[data-pack="fishing"] .obk-quote__mark,
[data-pack="fishing"] .pledge-mark { font-family: "Saira Condensed", sans-serif; font-weight: 600; letter-spacing: .4em; font-size: 12px; color: var(--obk-accent-color, var(--brass)); text-transform: uppercase; margin-bottom: 50px; }
[data-pack="fishing"] .obk-tst--single .obk-quote__mark::before, [data-pack="fishing"] .obk-tst--single .obk-quote__mark::after,
[data-pack="fishing"] .pledge-mark::before, [data-pack="fishing"] .pledge-mark::after { content: ""; display: inline-block; width: 60px; height: 1px; background: var(--brass); vertical-align: middle; margin: 0 24px; }
[data-pack="fishing"] .obk-tst--single .obk-quote__text,
[data-pack="fishing"] .pledge-text { font-family: var(--obk-body-font, var(--font-body)); font-weight: 400; font-style: italic; font-size: var(--obk-heading-size, clamp(27px, 3.3vw, 50px)); line-height: 1.28; color: var(--obk-heading-color, var(--foam)); letter-spacing: -.005em; }
[data-pack="fishing"] .pledge-text .accent { font-style: normal; font-family: var(--font-heading); font-weight: 600; color: var(--brass); }
[data-pack="fishing"] .obk-tst--single .obk-quote__cite,
[data-pack="fishing"] .pledge-sig { margin-top: 60px; font-family: "Saira Condensed", sans-serif; font-size: 12px; letter-spacing: .28em; color: var(--mist-dim); text-transform: uppercase; }
[data-pack="fishing"] .obk-quote__name,
[data-pack="fishing"] .pledge-sig .name { color: var(--foam); font-size: 24px; font-family: var(--obk-heading-font, var(--font-heading)); font-style: italic; letter-spacing: .01em; text-transform: none; margin-bottom: 6px; display: block; font-weight: 500; }

/* ── HATCH — almanac (new Almanac widget) ──────────────────────────────── */
[data-pack="fishing"] .hatch { padding: 150px 0; background: transparent; border-top: 1px solid var(--line); }
[data-pack="fishing"] .hatch-wrap { max-width: 1500px; margin: 0 auto; padding: 0 56px; }
[data-pack="fishing"] .almanac-chart { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 2px; align-items: end; height: 150px; }
[data-pack="fishing"] .amc-seg { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; cursor: pointer; background: none; border: none; padding: 0; text-align: left; }
[data-pack="fishing"] .amc-seg .bar { width: 100%; background: linear-gradient(180deg, rgba(63, 133, 124, .35), rgba(63, 133, 124, .08)); border: 1px solid var(--line-2); border-bottom: none; transition: all .45s cubic-bezier(.2, .7, .1, 1); position: relative; }
[data-pack="fishing"] .amc-seg .bar::after { content: attr(data-pct); position: absolute; top: 8px; left: 0; right: 0; text-align: center; font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .1em; color: var(--mist-dim); opacity: 0; transition: opacity .3s; }
[data-pack="fishing"] .amc-seg:hover .bar { border-color: var(--brass); }
[data-pack="fishing"] .amc-seg.active .bar { background: linear-gradient(180deg, var(--brass), rgba(201, 162, 74, .25)); border-color: var(--brass); box-shadow: 0 -8px 30px rgba(201, 162, 74, .25); }
[data-pack="fishing"] .amc-seg.active .bar::after { opacity: 1; color: var(--r-on-accent); font-weight: 500; }
[data-pack="fishing"] .amc-seg .mon { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--mist-dim); padding-top: 14px; border-top: 1px solid var(--line-2); transition: color .35s; }
[data-pack="fishing"] .amc-seg.active .mon { color: var(--brass); }
[data-pack="fishing"] .almanac-axis { font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--mist-dim); display: flex; justify-content: space-between; margin: 18px 0 56px; }
[data-pack="fishing"] .almanac-panel { display: grid; grid-template-columns: 1.5fr 1fr; gap: 64px; border-top: 1px solid var(--line-2); padding-top: 56px; min-height: 300px; transition: opacity .35s ease, transform .35s ease; }
[data-pack="fishing"] .almanac-panel.swap { opacity: 0; transform: translateY(10px); }
[data-pack="fishing"] .ap-l .ap-eyebrow { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--obk-accent-color, var(--brass)); margin-bottom: 18px; display: flex; align-items: center; gap: 14px; }
[data-pack="fishing"] .ap-l .ap-eyebrow::before { content: ""; width: 30px; height: 1px; background: var(--brass); }
[data-pack="fishing"] .ap-l .ap-name { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 600; font-size: clamp(40px, 4.6vw, 68px); line-height: .98; letter-spacing: -.015em; color: var(--obk-heading-color, var(--foam)); margin-bottom: 24px; }
[data-pack="fishing"] .ap-l .ap-desc { font-family: var(--obk-body-font, var(--font-body)); font-size: 20px; line-height: 1.62; color: var(--obk-text-color, var(--foam-2)); font-weight: 400; max-width: 560px; margin-bottom: 34px; }
[data-pack="fishing"] .ap-l .ap-flies { display: flex; flex-wrap: wrap; gap: 10px; }
[data-pack="fishing"] .ap-l .ap-flies .lbl { width: 100%; font-family: "Saira Condensed", sans-serif; font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--mist-dim); margin-bottom: 4px; font-weight: 600; }
[data-pack="fishing"] .ap-l .pill { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .16em; padding: 8px 14px; border: 1px solid var(--brass); color: var(--brass); text-transform: uppercase; }
[data-pack="fishing"] .ap-r { border-left: 1px solid var(--line-2); padding-left: 48px; display: flex; flex-direction: column; }
[data-pack="fishing"] .ap-cond { display: flex; justify-content: space-between; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--line); }
[data-pack="fishing"] .ap-cond:first-child { padding-top: 0; }
[data-pack="fishing"] .ap-cond .k { font-family: "Saira Condensed", sans-serif; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--mist-dim); font-weight: 500; }
[data-pack="fishing"] .ap-cond .v { font-family: var(--font-heading); font-size: 24px; color: var(--foam); font-weight: 500; letter-spacing: .01em; }
[data-pack="fishing"] .ap-cond .v.brass { color: var(--brass); }

/* ── JOURNAL — feature + list (Posts "feature-list" style) ─────────────── */
[data-pack="fishing"] .journal { padding: 150px 56px; background: transparent; border-top: 1px solid var(--line); }
[data-pack="fishing"] .journal-inner { max-width: 1500px; margin: 0 auto; }
[data-pack="fishing"] .journal-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; margin-top: 60px; }
[data-pack="fishing"] .entry-feature { cursor: pointer; }
[data-pack="fishing"] .entry-feature .img { position: relative; overflow: hidden; height: 480px; margin-bottom: 28px; display: block; }
[data-pack="fishing"] .entry-feature .img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s cubic-bezier(.2, .7, .1, 1); filter: saturate(.8); }
[data-pack="fishing"] .entry-feature:hover .img img { transform: scale(1.05); }
[data-pack="fishing"] .entry-tag { position: absolute; top: 18px; left: 18px; z-index: 2; font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .22em; color: var(--obk-accent-color, var(--r-scrim-kicker)); text-transform: uppercase; padding: 6px 11px; border: 1px solid var(--r-scrim-kicker); background: var(--r-scrim-tag); backdrop-filter: blur(8px); }
[data-pack="fishing"] .entry-date { font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--mist-dim); letter-spacing: .16em; text-transform: uppercase; margin-bottom: 14px; }
[data-pack="fishing"] .entry-feature .ttl { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 500; font-size: 38px; color: var(--obk-heading-color, var(--foam)); line-height: 1.08; letter-spacing: -.01em; margin-bottom: 16px; transition: color .3s; }
[data-pack="fishing"] .entry-feature:hover .ttl { color: var(--brass); }
[data-pack="fishing"] .entry-feature .ex { font-family: var(--obk-body-font, var(--font-body)); font-size: 18px; color: var(--obk-text-color, var(--mist)); line-height: 1.6; font-weight: 400; max-width: 560px; }
[data-pack="fishing"] .entry-side { display: flex; flex-direction: column; }
[data-pack="fishing"] .entry-mini { display: grid; grid-template-columns: 130px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--line-2); cursor: pointer; align-items: center; }
[data-pack="fishing"] .entry-side .entry-mini:last-child { border-bottom: 1px solid var(--line-2); }
[data-pack="fishing"] .entry-mini .img { position: relative; overflow: hidden; height: 110px; display: block; }
[data-pack="fishing"] .entry-mini .img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s ease; filter: saturate(.8); }
[data-pack="fishing"] .entry-mini:hover .img img { transform: scale(1.08); }
[data-pack="fishing"] .entry-mini .ttl { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 500; font-size: 21px; color: var(--obk-heading-color, var(--foam)); line-height: 1.12; letter-spacing: -.005em; margin-bottom: 8px; transition: color .3s; }
[data-pack="fishing"] .entry-mini:hover .ttl { color: var(--brass); }

/* ── CTA BANNER (CTA "banner" style) ───────────────────────────────────── */
[data-pack="fishing"] .cta-banner { position: relative; min-height: 560px; display: grid; place-items: center; }
[data-pack="fishing"] .cta-banner-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; filter: saturate(.65) contrast(1.05) brightness(.48); }
[data-pack="fishing"] .cta-banner::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: var(--r-scrim-hero); }
[data-pack="fishing"] .cta-banner-inner { position: relative; z-index: 1; text-align: center; padding: 120px 56px; max-width: 1100px; }
[data-pack="fishing"] .cta-banner h2 { font-family: var(--obk-heading-font, var(--font-heading)); font-weight: 500; font-size: clamp(46px, 7vw, 104px); line-height: .96; color: var(--obk-heading-color, var(--r-scrim-ink)); letter-spacing: -.01em; margin-bottom: 32px; }
[data-pack="fishing"] .cta-banner h2 em { font-style: italic; font-weight: 400; color: var(--obk-accent-color, var(--r-scrim-kicker)); }
[data-pack="fishing"] .cta-banner p { font-family: var(--obk-body-font, var(--font-body)); font-style: italic; font-size: 22px; color: var(--obk-text-color, var(--r-scrim-muted)); font-weight: 400; margin: 0 auto 42px; max-width: 680px; }

/* ============================================================================
   ELEMENTOR WIDGET BRIDGE
   The section heads (sec-head / sec-kicker / sec-title / sec-aside) are built
   from core Elementor Heading/Text widgets; the design class lands on the OUTER
   .elementor-element wrapper while the visible text is an inner element. These
   rules let the wrapper's typography flow into the inner element so the page
   renders identically to the raw design. (The Outfitter Blocks widgets emit
   their own design markup and need no bridging.)
   ============================================================================ */
[data-pack="fishing"] .elementor-widget-heading .elementor-heading-title {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  line-height: inherit;
  margin: 0;
}
[data-pack="fishing"] .elementor-widget-text-editor .elementor-widget-container {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
[data-pack="fishing"] .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* The sec-head is a flex row (left column + aside); let its direct children
   size to content instead of Elementor's default full width. */
[data-pack="fishing"] .sec-head > .elementor-widget,
[data-pack="fishing"] .sec-head > .e-con,
[data-pack="fishing"] .sec-kicker > .elementor-widget { width: auto; max-width: 100%; }

/* Cover image — an Image widget tagged .dp-cover fills its positioned parent. */
[data-pack="fishing"] .dp-cover { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
[data-pack="fishing"] .dp-cover .elementor-widget-container,
[data-pack="fishing"] .dp-cover .elementor-image,
[data-pack="fishing"] .dp-cover a { height: 100%; width: 100%; }
[data-pack="fishing"] .dp-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ============================================================================
   EDITOR-SAFE: everything visible + static under the Elementor editor.
   ============================================================================ */
body.elementor-editor-active .reveal,
body.elementor-editor-active .obk-block,
body.elementor-editor-active .obk-block *,
body.elementor-editor-active .trip-row,
body.elementor-editor-active .boat-card,
body.elementor-editor-active .hero-report,
body.elementor-editor-active .hero-scroll,
body.elementor-editor-active .eyebrow,
body.elementor-editor-active h1.hero-title .l1 i,
body.elementor-editor-active h1.hero-title .l2 i {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}
body.elementor-editor-active .caustics,
body.elementor-editor-active .mist,
body.elementor-editor-active .hero .motes { display: none !important; }

/* ============================================================================
   RESPONSIVE (page sections only; header/footer are theme chrome).
   ============================================================================ */
@media (max-width: 1100px) {
  [data-pack="fishing"] .hero { min-height: 88vh; }
  [data-pack="fishing"] .hero-content { padding: 0 24px 56px; }
  [data-pack="fishing"] .hero-report, [data-pack="fishing"] .hero-scroll { display: none; }
  [data-pack="fishing"] .sec-head, [data-pack="fishing"] .cap-list,
  [data-pack="fishing"] .hatch-wrap, [data-pack="fishing"] .trip-row,
  [data-pack="fishing"] .rail-hint { padding-left: 24px; padding-right: 24px; }
  [data-pack="fishing"] .sec-aside { text-align: left; max-width: none; }
  [data-pack="fishing"] .trip-row { grid-template-columns: 1fr; gap: 32px; margin-bottom: 90px; }
  [data-pack="fishing"] .trip-row.flip .visual, [data-pack="fishing"] .trip-row.flip .detail { order: 0; }
  [data-pack="fishing"] .trip-row .visual .bignum { font-size: 130px; bottom: -16px; }
  [data-pack="fishing"] .fleet-rail { padding-left: 24px; padding-right: 24px; }
  [data-pack="fishing"] .boat-card { flex-basis: 300px; }
  [data-pack="fishing"] .figs .fig { flex-basis: 45%; padding: 16px 24px; border-left: none; border-top: 1px solid var(--line-2); }
  [data-pack="fishing"] .figs .fig:first-child, [data-pack="fishing"] .figs .fig:nth-child(2) { border-top: none; }
  [data-pack="fishing"] .cap-row { grid-template-columns: 40px 70px 1fr; gap: 18px; }
  [data-pack="fishing"] .cap-row .yrs { display: none; }
  [data-pack="fishing"] .cap-row .pic { width: 70px; height: 70px; }
  [data-pack="fishing"] .almanac-panel { grid-template-columns: 1fr; gap: 36px; }
  [data-pack="fishing"] .ap-r { border-left: none; padding-left: 0; border-top: 1px solid var(--line-2); padding-top: 8px; }
  [data-pack="fishing"] .almanac-chart { height: 120px; gap: 8px; }
  [data-pack="fishing"] .amc-seg .mon { font-size: 9px; letter-spacing: .05em; }
  [data-pack="fishing"] .journal-layout { grid-template-columns: 1fr; }
  [data-pack="fishing"] .waters { padding: 90px 24px; }
  [data-pack="fishing"] .journal, [data-pack="fishing"] .pledge { padding-left: 24px; padding-right: 24px; }
}
@media (max-width: 640px) {
  [data-pack="fishing"] .entry-feature .img { height: 320px; }
  [data-pack="fishing"] .detail .tspecs { gap: 24px; flex-wrap: wrap; }
}

/* ===== SHARED PAGES — fishing: sharp media, petrol ground, brass accent. ===== */
[data-pack="fishing"] .outfitter-shared-page { --sp-media-radius: 0px; }

/* The generic [data-pack=fishing] .btn{color:--foam} (for ghost/text buttons)
   ties with .btn-primary and wins by source order, leaving light text on the
   brass primary button. Pin the primary button to its accent on-colour. */
[data-pack="fishing"] .btn.btn-primary,
[data-pack="fishing"] a.btn-primary,
[data-pack="fishing"] .btn.dp-btn-primary { color: var(--r-on-accent); }
