/* ==========================================================================
   Foxco Footer & Nav Widget  |  v1.0.0  |  foxco.net
   ========================================================================== */

/* --------------------------------------------------------------------------
   CSS Custom Property Defaults (Foxco Brand)
   -------------------------------------------------------------------------- */
.foxco-footer {
  --ff-bg:         #1a1a2e;
  --ff-bg-sub:     #12121f;
  --ff-text:       #d8d8e8;
  --ff-heading:    #df6737;
  --ff-accent:     #df6737;
  --ff-link:       #c8cce8;
  --ff-link-hover: #df6737;
  --ff-icon:       #d8d8e8;
  --ff-border:     rgba(255,255,255,0.10);
  --ff-badge-bg:   rgba(255,255,255,0.07);
  --ff-badge-icon: #df6737;
  --ff-font:       inherit;
  --ff-radius:     0px;
}

/* --------------------------------------------------------------------------
   Presets
   -------------------------------------------------------------------------- */

/* Dr Guberman */
.foxco-footer[data-preset="dr-guberman"] {
  --ff-bg:         #2670c0;
  --ff-bg-sub:     #1d5ca8;
  --ff-text:       #ffffff;
  --ff-heading:    #f0b429;
  --ff-accent:     #f0b429;
  --ff-link:       #ddeeff;
  --ff-link-hover: #f0b429;
  --ff-icon:       #ffffff;
  --ff-border:     rgba(255,255,255,0.22);
  --ff-badge-bg:   rgba(255,255,255,0.15);
  --ff-badge-icon: #f0b429;
}

/* Saleen */
.foxco-footer[data-preset="saleen"] {
  --ff-bg:         #0a0a0a;
  --ff-bg-sub:     #000000;
  --ff-text:       #cccccc;
  --ff-heading:    #e41c23;
  --ff-accent:     #e41c23;
  --ff-link:       #c0c0c0;
  --ff-link-hover: #e41c23;
  --ff-icon:       #cccccc;
  --ff-border:     rgba(255,255,255,0.08);
  --ff-badge-bg:   rgba(255,255,255,0.06);
  --ff-badge-icon: #e41c23;
}

/* Modern Minimal */
.foxco-footer[data-preset="modern-minimal"] {
  --ff-bg:         #f5f5f5;
  --ff-bg-sub:     #e8e8e8;
  --ff-text:       #333333;
  --ff-heading:    #111111;
  --ff-accent:     #111111;
  --ff-link:       #444444;
  --ff-link-hover: #111111;
  --ff-icon:       #333333;
  --ff-border:     rgba(0,0,0,0.12);
  --ff-badge-bg:   rgba(0,0,0,0.06);
  --ff-badge-icon: #111111;
}

/* Artsy Esoteric */
.foxco-footer[data-preset="artsy-esoteric"] {
  --ff-bg:         #120920;
  --ff-bg-sub:     #0b061a;
  --ff-text:       #ddc8f5;
  --ff-heading:    #b388ff;
  --ff-accent:     #ff6b9d;
  --ff-link:       #d4b8ee;
  --ff-link-hover: #b388ff;
  --ff-icon:       #ddc8f5;
  --ff-border:     rgba(180,140,255,0.22);
  --ff-badge-bg:   rgba(180,140,255,0.12);
  --ff-badge-icon: #ff6b9d;
}

/* --------------------------------------------------------------------------
   Footer Base
   -------------------------------------------------------------------------- */
.foxco-footer {
  background-color: var(--ff-bg);
  color: var(--ff-text);
  font-family: var(--ff-font);
  font-size: 0.9rem;
  line-height: 1.7;
  width: 100%;
  box-sizing: border-box;
}

.foxco-footer *,
.foxco-footer *::before,
.foxco-footer *::after {
  box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Trust Badge Strip
   -------------------------------------------------------------------------- */
.foxco-footer__badges {
  background: var(--ff-bg-sub);
  border-bottom: 1px solid var(--ff-border);
  padding: 16px 40px;
}

.foxco-footer__badges-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 28px;
  max-width: 1200px;
  margin: 0 auto;
}

.foxco-footer__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: var(--ff-badge-bg);
  border: 1px solid var(--ff-border);
  border-radius: 10px;
  text-decoration: none;
  color: var(--ff-text);
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
  min-width: 80px;
}

a.foxco-footer__badge:hover {
  background: var(--ff-border);
  border-color: var(--ff-accent);
  transform: translateY(-2px);
  color: var(--ff-text);
}

.foxco-footer__badge-icon {
  font-size: 1.6rem;
  line-height: 1;
  color: var(--ff-badge-icon);
}

.foxco-footer__badge-icon svg {
  width: 1.6rem;
  height: 1.6rem;
  fill: currentColor;
}

.foxco-footer__badge-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: var(--ff-text);
  white-space: nowrap;
}

/* Pill variation */
.foxco-footer__badges--pill .foxco-footer__badge {
  flex-direction: row;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 50px;
}

.foxco-footer__badges--pill .foxco-footer__badge-label {
  font-size: 0.72rem;
  text-transform: none;
  letter-spacing: 0;
}

/* Icon-only variation */
.foxco-footer__badges--icon-only .foxco-footer__badge {
  min-width: 60px;
  padding: 10px 14px;
}

/* --------------------------------------------------------------------------
   Main Footer Area
   -------------------------------------------------------------------------- */
.foxco-footer__main {
  padding: 60px 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.foxco-footer__columns {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

.foxco-footer__col {
  flex: 1 1 180px;
  min-width: 0;
}

.foxco-footer__col-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ff-heading);
  margin: 0 0 18px 0;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ff-accent);
  display: inline-block;
}

.foxco-footer__col-content {
  color: var(--ff-text);
}

.foxco-footer__col-content p {
  margin: 0 0 0.75em 0;
  font-size: 0.875rem;
}

/* Link list */
.foxco-footer__link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.foxco-footer__link-list li {
  margin: 0;
  padding: 0;
}

.foxco-footer .foxco-footer__link-list a {
  color: var(--ff-link) !important;
  text-decoration: none;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 0;
  transition: color 0.2s, padding-left 0.2s;
}

.foxco-footer .foxco-footer__link-list a::before {
  content: '';
  width: 0;
  height: 1px;
  background: var(--ff-accent);
  transition: width 0.2s;
  flex-shrink: 0;
}

.foxco-footer .foxco-footer__link-list a:hover {
  color: var(--ff-link-hover) !important;
  padding-left: 6px;
}

.foxco-footer .foxco-footer__link-list a:hover::before {
  width: 12px;
}

/* Nav Menu (WP output) */
.foxco-footer__nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.foxco-footer__nav-menu li {
  margin: 0;
}

.foxco-footer .foxco-footer__nav-menu a {
  color: var(--ff-link) !important;
  text-decoration: none;
  font-size: 0.875rem;
  display: block;
  padding: 3px 0;
  transition: color 0.2s;
}

.foxco-footer .foxco-footer__nav-menu a:hover {
  color: var(--ff-link-hover) !important;
}

.foxco-footer__no-menu {
  font-size: 0.8rem;
  opacity: 0.5;
  font-style: italic;
}

/* --------------------------------------------------------------------------
   Sub-footer Bar
   -------------------------------------------------------------------------- */
.foxco-footer__sub {
  background: var(--ff-bg-sub);
  border-top: 1px solid var(--ff-border);
}

.foxco-footer__sub-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.foxco-footer__copyright {
  font-size: 0.78rem;
  color: var(--ff-text);
  margin: 0;
}

.foxco-footer__copyright a {
  color: var(--ff-accent);
  text-decoration: none;
}

.foxco-footer__social {
  display: flex;
  align-items: center;
  gap: 10px;
}

.foxco-footer .foxco-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  /* Flexes with viewport width instead of a single fixed size -- a fixed
     36px read as too small once this is the only interactive element on
     a narrow mobile screen with nothing else nearby for scale reference.
     Floor of 42px keeps it comfortably tappable on any phone; ceiling of
     48px keeps it from ballooning on very wide screens. */
  width: clamp(42px, 10vw, 48px);
  height: clamp(42px, 10vw, 48px);
  font-size: clamp(17px, 4.2vw, 20px);
  border-radius: 50%;
  background: var(--ff-badge-bg);
  border: 1px solid var(--ff-border);
  color: var(--ff-icon) !important;
  text-decoration: none;
  font-size: 0.9rem;
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.15s;
}

.foxco-footer .foxco-footer__social-link:hover {
  background: var(--ff-accent);
  border-color: var(--ff-accent);
  color: #ffffff !important;
  transform: translateY(-2px);
}

.foxco-footer__social-link svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* --------------------------------------------------------------------------
   Saleen: carbon fibre / racing feel overrides
   -------------------------------------------------------------------------- */
.foxco-footer[data-preset="saleen"] .foxco-footer__col-title {
  letter-spacing: 0.2em;
}

.foxco-footer[data-preset="saleen"] .foxco-footer__badges {
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 3px,
    rgba(255,255,255,0.02) 3px,
    rgba(255,255,255,0.02) 6px
  ), var(--ff-bg-sub);
}

/* Artsy: gradient background */
.foxco-footer[data-preset="artsy-esoteric"] {
  background: linear-gradient(160deg, #120920 0%, #1a0b35 50%, #0d1a30 100%);
}

.foxco-footer[data-preset="artsy-esoteric"] .foxco-footer__col-title {
  background: linear-gradient(90deg, #b388ff, #ff6b9d);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  border-bottom-color: transparent;
  border-image: linear-gradient(90deg, #b388ff, #ff6b9d) 1;
}

/* Modern Minimal: clean underline only */
.foxco-footer[data-preset="modern-minimal"] .foxco-footer__social-link {
  border-radius: 4px;
}

.foxco-footer[data-preset="modern-minimal"] .foxco-footer__badge {
  border-radius: 6px;
}

/* ==========================================================================
   Bottom Nav
   ========================================================================== */

/* --- CSS Custom Property Defaults (Foxco Brand) --- */
.foxco-bottom-nav {
  --bn-bg:        #1a1a2e;
  --bn-text:      rgba(255,255,255,0.55);
  --bn-active:    #df6737;
  --bn-border:    rgba(255,255,255,0.08);
  --bn-badge-bg:  #df6737;
  --bn-badge-txt: #ffffff;
  --bn-height:    64px;
  --bn-icon-size: 22px;
  --bn-label-size: 11px;
}

/* --- Preset: Dr Guberman --- */
.foxco-bottom-nav[data-preset="dr-guberman"] {
  --bn-bg:       #2670c0;
  --bn-text:     #ddeeff;
  --bn-active:   #f0b429;
  --bn-border:   rgba(255,255,255,0.20);
  --bn-badge-bg: #f0b429;
  --bn-badge-txt: #1a1a1a;
}

/* --- Preset: Saleen --- */
.foxco-bottom-nav[data-preset="saleen"] {
  --bn-bg:       #0a0a0a;
  --bn-text:     #c0c0c0;
  --bn-active:   #e41c23;
  --bn-border:   rgba(255,255,255,0.08);
  --bn-badge-bg: #e41c23;
  --bn-badge-txt: #ffffff;
}

/* --- Preset: Modern Minimal --- */
.foxco-bottom-nav[data-preset="modern-minimal"] {
  --bn-bg:       #ffffff;
  --bn-text:     #555555;
  --bn-active:   #1a1a1a;
  --bn-border:   rgba(0,0,0,0.08);
  --bn-badge-bg: #1a1a1a;
  --bn-badge-txt: #ffffff;
  box-shadow: 0 -1px 0 var(--bn-border), 0 -4px 20px rgba(0,0,0,0.08);
}

/* --- Preset: Artsy Esoteric --- */
.foxco-bottom-nav[data-preset="artsy-esoteric"] {
  --bn-bg:       #120920;
  --bn-text:     #d4b8ee;
  --bn-active:   #b388ff;
  --bn-border:   rgba(180,140,255,0.20);
  --bn-badge-bg: #ff6b9d;
  --bn-badge-txt: #ffffff;
}

/* --- Preset: BookedInCamp Night --- */
.foxco-bottom-nav[data-preset="bookedincamp"] {
  --bn-bg:       #0b1426;
  --bn-text:     rgba(211,219,232,0.72);
  --bn-active:   #ffd21f;
  --bn-border:   rgba(255,210,31,0.16);
  --bn-badge-bg: #ffd21f;
  --bn-badge-txt: #2f3b45;
  font-family: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* --- Preset: BookedInCamp Day --- */
.foxco-bottom-nav[data-preset="bookedincamp-day"] {
  --bn-bg:       #fffdf2;
  --bn-text:     #5b6873;
  --bn-active:   #2f3b45;
  --bn-border:   rgba(47,59,69,0.12);
  --bn-badge-bg: #ffd21f;
  --bn-badge-txt: #2f3b45;
  font-family: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  box-shadow: 0 -4px 20px rgba(47,59,69,0.08);
}

/* --- Base Styles --- */
.foxco-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99990;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  height: var(--bn-height);
  background: var(--bn-bg);
  border-top: 1px solid var(--bn-border);
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -2px 16px rgba(0,0,0,0.20);
  padding: 0 4px;
  /* Guards against the same right-edge subpixel rounding fixed elsewhere
     in this codebase, here specifically because the cart badge below
     uses a deliberate NEGATIVE right offset to overlap its icon's
     corner -- if that badge lands on the last nav item, any rounding
     in how space-around distributes the flex items could push it a
     fraction of a pixel past this bar's own right edge, which (being
     un-clipped) would then widen the page's total scrollable area.
     Trade-off: in that specific edge case the badge's outer sliver
     could get clipped rather than sit fully outside the bar -- a much
     smaller cost than page-wide horizontal scroll on mobile. */
  max-width: 100vw;
  overflow: hidden;
  padding-bottom: env(safe-area-inset-bottom, 0);
}

.foxco-bottom-nav--mobile-only {
  display: none;
}

/* --- Nav Items --- */
.foxco-bottom-nav .foxco-bottom-nav__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--bn-text) !important;
  text-decoration: none;
  font-size: var(--bn-label-size);
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color 0.2s;
  position: relative;
  padding: 8px 4px;
  -webkit-tap-highlight-color: transparent;
  min-width: 0;
}

.foxco-bottom-nav .foxco-bottom-nav__item.active,
.foxco-bottom-nav .foxco-bottom-nav__item:hover {
  color: var(--bn-active) !important;
}

.foxco-bottom-nav .foxco-bottom-nav__item.active .foxco-bottom-nav__icon::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  background: var(--bn-active);
  border-radius: 50%;
}

/* --- Icon --- */
.foxco-bottom-nav__icon {
  position: relative;
  font-size: var(--bn-icon-size);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.foxco-bottom-nav__icon svg {
  width: var(--bn-icon-size);
  height: var(--bn-icon-size);
  fill: currentColor;
}

/* --- Label --- */
.foxco-bottom-nav__label {
  font-size: var(--bn-label-size);
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* --- Cart Badge --- */
.foxco-bottom-nav__badge {
  position: absolute;
  top: -6px;
  right: -8px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: var(--bn-badge-bg);
  color: var(--bn-badge-txt);
  font-size: 10px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  border-radius: 9px;
  white-space: nowrap;
  display: none;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* Show mobile-only bottom nav */
  .foxco-bottom-nav--mobile-only {
    display: flex;
  }

  .foxco-footer__main {
    padding: 40px 24px;
  }

  .foxco-footer__badges {
    padding: 14px 24px;
  }

  .foxco-footer__badges-inner {
    gap: 8px 16px;
  }

  .foxco-footer__badge {
    min-width: 68px;
    padding: 8px 12px;
  }

  .foxco-footer__sub-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 24px;
  }
}

@media (max-width: 480px) {
  .foxco-footer__columns {
    flex-direction: column;
    gap: 32px;
  }

  .foxco-footer__col {
    flex: none;
    width: 100%;
  }

  .foxco-footer__main {
    padding: 32px 20px;
  }

  .foxco-footer__sub-inner {
    padding: 16px 20px;
  }

  .foxco-footer__badges {
    padding: 12px 20px;
  }

  .foxco-footer__badge-label {
    font-size: 0.6rem;
  }
}

@media (min-width: 768px) {
  /* Tablet: 2-column badges if 3+ badges */
  .foxco-footer__badges-inner {
    gap: 10px 32px;
  }
}

/* ==========================================================================
   LAYOUT: SIGNAL
   --------------------------------------------------------------------------
   A single CTA statement (glow spent once, not scattered across every
   element the way per-icon glow treatments tend to), a 4-column grid,
   then a bottom bar with circular social icons. Every color below reads
   from the same --ff-* variables the 5 color presets already set, so any
   preset works with this layout with no extra wiring.
   ========================================================================== */

.foxco-footer[data-layout="signal"] {
  padding: 0;
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta {
  max-width: 780px;
  margin: 0 auto;
  padding: 88px 32px 64px;
  text-align: center;
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta-eyebrow {
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ff-accent);
  margin: 0 0 18px;
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta-headline {
  font-family: var(--ff-font);
  font-weight: 800;
  font-size: clamp(30px, 5vw, 52px);
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin: 0 0 20px;
  color: var(--ff-text);
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta-accent {
  color: var(--ff-text);
  text-shadow: 0 0 22px var(--ff-accent), 0 0 54px var(--ff-accent);
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta-sub {
  font-size: clamp(15px, 4vw, 16px);
  color: var(--ff-link) !important;
  margin: 0 0 30px;
  line-height: 1.65;
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta-btn {
  display: inline-block;
  padding: 14px 30px;
  border: 1.5px solid var(--ff-accent);
  border-radius: 999px;
  color: var(--ff-accent) !important;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.foxco-footer[data-layout="signal"] .foxco-footer__cta-btn:hover {
  background: var(--ff-accent);
  color: var(--ff-bg) !important;
  box-shadow: 0 0 26px var(--ff-accent);
}

.foxco-footer[data-layout="signal"] .foxco-footer__columns--signal {
  max-width: 1120px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  padding: 56px 32px 64px;
  border-top: 1px solid var(--ff-border);
}

.foxco-footer[data-layout="signal"] .foxco-footer__sub--signal {
  border-top: 1px solid var(--ff-border);
}

.foxco-footer[data-layout="signal"] .foxco-footer__sub--signal .foxco-footer__sub-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 26px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
}

.foxco-footer[data-layout="signal"] .foxco-footer__social--circle {
  display: flex;
  gap: 12px;
}

.foxco-footer[data-layout="signal"] .foxco-footer__social--circle .foxco-footer__social-link {
  width: clamp(42px, 10vw, 48px);
  height: clamp(42px, 10vw, 48px);
  border-radius: 50%;
  border: 1px solid var(--ff-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ff-link) !important;
  transition: border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.foxco-footer[data-layout="signal"] .foxco-footer__social--circle .foxco-footer__social-link svg {
  width: clamp(17px, 4.2vw, 20px);
  height: clamp(17px, 4.2vw, 20px);
  fill: currentColor;
}

.foxco-footer[data-layout="signal"] .foxco-footer__social--circle .foxco-footer__social-link:hover {
  border-color: var(--ff-accent);
  color: var(--ff-accent) !important;
  box-shadow: 0 0 14px var(--ff-accent);
  transform: translateY(-2px);
}

@media (max-width: 860px) {
  .foxco-footer[data-layout="signal"] .foxco-footer__columns--signal {
    grid-template-columns: 1fr 1fr;
    row-gap: 36px;
  }
}
@media (max-width: 560px) {
  .foxco-footer[data-layout="signal"] .foxco-footer__cta {
    padding: 64px 20px 48px;
  }
  .foxco-footer[data-layout="signal"] .foxco-footer__columns--signal {
    grid-template-columns: 1fr;
    padding: 48px 20px;
  }
  .foxco-footer[data-layout="signal"] .foxco-footer__sub--signal .foxco-footer__sub-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 22px 20px;
  }
}

/* ==========================================================================
   LAYOUT: LEDGER
   --------------------------------------------------------------------------
   No CTA, no glow -- quiet columns and a single divided bottom row.
   ========================================================================== */

.foxco-footer[data-layout="ledger"] .foxco-footer__columns--ledger {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
  padding: 72px 32px 56px;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__col-title {
  font-size: clamp(13.5px, 3.2vw, 14px);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ff-link) !important;
  opacity: 0.85;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__link-list a {
  opacity: 0.9;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__sub--ledger {
  border-top: 1px solid var(--ff-border);
}

.foxco-footer[data-layout="ledger"] .foxco-footer__sub--ledger .foxco-footer__sub-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 24px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__social--plain {
  display: flex;
  gap: 20px;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__social--plain .foxco-footer__social-link {
  color: var(--ff-link) !important;
  display: flex;
  transition: color 0.15s ease;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__social--plain .foxco-footer__social-link svg {
  width: clamp(17px, 4.2vw, 20px);
  height: clamp(17px, 4.2vw, 20px);
  fill: currentColor;
}

.foxco-footer[data-layout="ledger"] .foxco-footer__social--plain .foxco-footer__social-link:hover {
  color: var(--ff-accent) !important;
}

@media (max-width: 860px) {
  .foxco-footer[data-layout="ledger"] .foxco-footer__columns--ledger {
    grid-template-columns: 1fr 1fr;
    row-gap: 40px;
  }
  .foxco-footer[data-layout="ledger"] .foxco-footer__columns--ledger > .foxco-footer__col:first-child {
    grid-column: 1 / -1;
  }
}
@media (max-width: 560px) {
  .foxco-footer[data-layout="ledger"] .foxco-footer__columns--ledger {
    grid-template-columns: 1fr;
    padding: 56px 20px 40px;
  }
  .foxco-footer[data-layout="ledger"] .foxco-footer__sub--ledger .foxco-footer__sub-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
  }
}

/* ==========================================================================
   LAYOUT: DEPARTURE
   --------------------------------------------------------------------------
   One oversized statement line at hero type-scale, a real button, then a
   single slim utility row -- no separate columns block.
   ========================================================================== */

.foxco-footer[data-layout="departure"] {
  /* Positioning context for .foxco-footer__departure-graphic below --
     the graphic sits relative to this full-width section, not the
     narrower centered .foxco-footer__statement, since it needs to
     reach out into the open margin beside that centered column. */
  position: relative;
}

.foxco-footer[data-layout="departure"] .foxco-footer__statement {
  max-width: 980px;
  margin: 0 auto;
  padding: 110px 32px 80px;
}

.foxco-footer__departure-graphic {
  position: absolute;
  top: 50%;
  right: 60px;
  transform: translateY(-50%);
  width: 220px;
  pointer-events: none;
}
.foxco-footer__departure-graphic img,
.foxco-footer__departure-graphic svg {
  display: block;
  width: 100%;
  height: auto;
}
/* Desktop only, as asked -- below this there's no open margin left
   beside the centered statement column for a graphic to sit in
   without overlapping the text, so it's hidden rather than squeezed
   in or forced to overlap. */
@media (max-width: 1200px) {
  .foxco-footer__departure-graphic {
    display: none;
  }
}

.foxco-footer[data-layout="departure"] .foxco-footer__cta-headline {
  font-family: var(--ff-font);
  font-weight: 800;
  font-size: clamp(34px, 6.5vw, 68px);
  line-height: 1.03;
  letter-spacing: -0.02em;
  margin: 0 0 32px;
  color: var(--ff-text);
}

.foxco-footer[data-layout="departure"] .foxco-footer__cta-accent {
  font-style: italic;
  font-weight: 400;
  color: var(--ff-accent);
}

.foxco-footer[data-layout="departure"] .foxco-footer__statement-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  flex-wrap: wrap;
}

.foxco-footer[data-layout="departure"] .foxco-footer__cta-sub {
  color: var(--ff-link) !important;
  font-size: 16px;
  line-height: 1.65;
  max-width: 380px;
  margin: 0;
}

.foxco-footer[data-layout="departure"] .foxco-footer__cta-btn--solid {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 28px;
  background: var(--ff-accent);
  color: var(--ff-bg) !important;
  border-radius: 8px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.foxco-footer[data-layout="departure"] .foxco-footer__cta-btn--solid:hover {
  transform: translateY(-2px);
  opacity: 0.92;
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility {
  border-top: 1px solid var(--ff-border);
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility-left {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility-left a {
  font-size: clamp(15px, 3.5vw, 16px);
  color: var(--ff-link) !important;
  text-decoration: none;
  transition: color 0.15s ease;
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility-left a:hover {
  color: var(--ff-accent) !important;
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility-right {
  display: flex;
  align-items: center;
  gap: 20px;
}

.foxco-footer[data-layout="departure"] .foxco-footer__utility-right .foxco-footer__copyright {
  font-size: 13px;
  color: var(--ff-link) !important;
  margin: 0;
}

.foxco-footer[data-layout="departure"] .foxco-footer__social--plain {
  display: flex;
  flex-wrap: wrap; /* 1.38.1: a long icon row used to run off the right edge on phones */
  gap: 16px;
}

.foxco-footer[data-layout="departure"] .foxco-footer__social--plain .foxco-footer__social-link {
  color: var(--ff-link) !important;
  display: flex;
  transition: color 0.15s ease;
}

.foxco-footer[data-layout="departure"] .foxco-footer__social--plain .foxco-footer__social-link svg {
  width: clamp(17px, 4.2vw, 20px);
  height: clamp(17px, 4.2vw, 20px);
  fill: currentColor;
}

.foxco-footer[data-layout="departure"] .foxco-footer__social--plain .foxco-footer__social-link:hover {
  color: var(--ff-accent) !important;
}

@media (max-width: 700px) {
  .foxco-footer[data-layout="departure"] .foxco-footer__statement {
    padding: 72px 20px 56px;
  }
  .foxco-footer[data-layout="departure"] .foxco-footer__statement-row {
    flex-direction: column;
    align-items: flex-start;
  }
  .foxco-footer[data-layout="departure"] .foxco-footer__cta-btn--solid {
    width: 100%;
    justify-content: center;
  }
  .foxco-footer[data-layout="departure"] .foxco-footer__utility-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .foxco-footer[data-layout="departure"] .foxco-footer__utility-left {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
  .foxco-footer[data-layout="departure"] .foxco-footer__utility-right {
    width: 100%;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 16px;
  }
}

/* ==========================================================================
   LAYOUT: COMPACT
   --------------------------------------------------------------------------
   Identical column content to Classic, but each column is a native
   <details>/<summary> -- a real, accessible, JS-free accordion on
   mobile. On desktop, CSS forces every <details> open and hides the
   disclosure marker, so it reads as ordinary columns; the collapsing
   behavior only exists where it's actually needed (narrow screens with
   long link lists).
   ========================================================================== */

.foxco-footer[data-layout="compact"] .foxco-footer__columns--compact {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  padding: 64px 32px;
}

.foxco-footer[data-layout="compact"] .foxco-footer__col--details {
  border: none;
}

.foxco-footer[data-layout="compact"] .foxco-footer__col--details summary {
  cursor: default;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}

.foxco-footer[data-layout="compact"] .foxco-footer__col--details summary::-webkit-details-marker {
  display: none;
}

.foxco-footer[data-layout="compact"] .foxco-footer__col-chevron {
  display: none;
}

.foxco-footer[data-layout="compact"] .foxco-footer__col--details .foxco-footer__col-content {
  display: block !important;
}

@media (max-width: 700px) {
  .foxco-footer[data-layout="compact"] .foxco-footer__columns--compact {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 8px 20px 24px;
  }
  .foxco-footer[data-layout="compact"] .foxco-footer__col--details {
    border-bottom: 1px solid var(--ff-border);
    padding: 18px 0;
  }
  .foxco-footer[data-layout="compact"] .foxco-footer__col--details summary {
    cursor: pointer;
    pointer-events: auto;
  }
  .foxco-footer[data-layout="compact"] .foxco-footer__col-chevron {
    display: block;
    width: 9px;
    height: 9px;
    border-right: 2px solid var(--ff-link);
    border-bottom: 2px solid var(--ff-link);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
  }
  .foxco-footer[data-layout="compact"] .foxco-footer__col--details[open] .foxco-footer__col-chevron {
    transform: rotate(-135deg);
  }
  .foxco-footer[data-layout="compact"] .foxco-footer__col--details .foxco-footer__col-content {
    display: none !important;
    padding-top: 14px;
  }
  .foxco-footer[data-layout="compact"] .foxco-footer__col--details[open] .foxco-footer__col-content {
    display: block !important;
  }
}

/* --------------------------------------------------------------------------
   BookedInCamp (1.35.0) -- night campsite. Same palette as the
   bookedincamp.com coming-soon page: navy night sky, pine treeline with a
   glowing tent along the top edge, stars, sunshine-yellow accents, Nunito.
   The scene is pure CSS/SVG (no image requests) and sits in the footer's
   own top padding, so it never overlaps the section above. Kept at the
   END of this file on purpose: the layout rules (Signal's padding:0, its
   accent-colored button text) have the same specificity, so whichever
   comes last wins -- the preset has to.
   -------------------------------------------------------------------------- */
.foxco-footer[data-preset="bookedincamp"] {
  --ff-bg:         #0b1426;
  --ff-bg-sub:     #081020;
  --ff-text:       #d3dbe8;
  --ff-heading:    #ffd21f;
  --ff-accent:     #ffd21f;
  --ff-link:       #e6ecf5;
  --ff-link-hover: #ffd21f;
  --ff-icon:       #fff6dc;
  --ff-border:     rgba(255,246,220,0.12);
  --ff-badge-bg:   rgba(255,246,220,0.06);
  --ff-badge-icon: #ffd21f;
  --ff-font:       "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ff-radius:     14px;
  --bic-scene-h:   160px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: var(--bic-scene-h);
  background:
    url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22400%22 height=%22110%22%3E%3Ccircle cx=%22169%22 cy=%2223%22 r=%221.2%22 fill=%22%23fff%22 opacity=%220.35%22/%3E%3Ccircle cx=%2241%22 cy=%2272%22 r=%220.8%22 fill=%22%23fff%22 opacity=%220.65%22/%3E%3Ccircle cx=%22302%22 cy=%2211%22 r=%221.5%22 fill=%22%23fff%22 opacity=%220.5%22/%3E%3Ccircle cx=%2223%22 cy=%2215%22 r=%221.2%22 fill=%22%23fff%22 opacity=%220.8%22/%3E%3Ccircle cx=%2239%22 cy=%2234%22 r=%220.8%22 fill=%22%23fff%22 opacity=%220.9%22/%3E%3Ccircle cx=%22221%22 cy=%2211%22 r=%221.5%22 fill=%22%23fff%22 opacity=%220.35%22/%3E%3Ccircle cx=%22118%22 cy=%2284%22 r=%221.5%22 fill=%22%23fff%22 opacity=%220.35%22/%3E%3Ccircle cx=%22299%22 cy=%2278%22 r=%221.2%22 fill=%22%23fff%22 opacity=%220.35%22/%3E%3Ccircle cx=%22117%22 cy=%229%22 r=%221.5%22 fill=%22%23fff%22 opacity=%220.5%22/%3E%3Ccircle cx=%22152%22 cy=%2257%22 r=%220.9%22 fill=%22%23fff%22 opacity=%220.9%22/%3E%3Ccircle cx=%2264%22 cy=%2277%22 r=%221%22 fill=%22%23fff%22 opacity=%220.9%22/%3E%3Ccircle cx=%22353%22 cy=%2227%22 r=%220.8%22 fill=%22%23fff%22 opacity=%220.9%22/%3E%3Ccircle cx=%22296%22 cy=%2285%22 r=%220.9%22 fill=%22%23fff%22 opacity=%220.65%22/%3E%3Ccircle cx=%2253%22 cy=%2274%22 r=%220.8%22 fill=%22%23fff%22 opacity=%220.9%22/%3E%3Ccircle cx=%2234%22 cy=%2283%22 r=%220.9%22 fill=%22%23fff%22 opacity=%220.8%22/%3E%3Ccircle cx=%22352%22 cy=%2272%22 r=%221.2%22 fill=%22%23fff%22 opacity=%220.65%22/%3E%3C/svg%3E") 0 0 / 400px 110px repeat-x,
    radial-gradient(circle, #fdf5d6 0 15px, rgba(253,245,214,0.22) 17px, rgba(253,245,214,0) 44px) right 9% top 2px / 92px 92px no-repeat,
    linear-gradient(180deg, #0d1735 0, #1c2a55 calc(var(--bic-scene-h) * 0.5), #27366a calc(var(--bic-scene-h) * 0.62), #0b1426 var(--bic-scene-h), #0b1426 100%);
}
.foxco-footer[data-preset="bookedincamp"]::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: var(--bic-scene-h);
  background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1440 160%22 preserveAspectRatio=%22xMidYMax slice%22%3E%3Cdefs%3E%3CradialGradient id=%22h%22 cx=%2250%25%22 cy=%2250%25%22 r=%2250%25%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffc766%22 stop-opacity=%22.55%22/%3E%3Cstop offset=%22.45%22 stop-color=%22%23ff9d3a%22 stop-opacity=%22.18%22/%3E%3Cstop offset=%221%22 stop-color=%22%23ff9d3a%22 stop-opacity=%220%22/%3E%3C/radialGradient%3E%3CradialGradient id=%22c%22 cx=%2250%25%22 cy=%2280%25%22 r=%2280%25%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffe7a3%22/%3E%3Cstop offset=%22.45%22 stop-color=%22%23f4a53f%22/%3E%3Cstop offset=%221%22 stop-color=%22%237d4115%22/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d=%22M0 92C180 62 360 72 520 84C700 99 860 66 1040 70C1210 75 1330 88 1440 78V160H0Z%22 fill=%22%2316223d%22/%3E%3Cellipse cx=%22900%22 cy=%22112%22 rx=%22230%22 ry=%2280%22 fill=%22url%28%23h%29%22/%3E%3Cg fill=%22%23081020%22%3E%3Cpolygon points=%2239,150 60,112 81,150%22/%3E%3Cpolygon points=%2243,129 60,94 77,129%22/%3E%3Cpolygon points=%2247,112 60,80 73,112%22/%3E%3Cpolygon points=%2281,152 110,99 139,152%22/%3E%3Cpolygon points=%2287,123 110,75 133,123%22/%3E%3Cpolygon points=%2293,99 110,56 127,99%22/%3E%3Cpolygon points=%22151,150 170,116 189,150%22/%3E%3Cpolygon points=%22155,131 170,100 185,131%22/%3E%3Cpolygon points=%22159,116 170,88 181,116%22/%3E%3Cpolygon points=%22313,152 330,120 347,152%22/%3E%3Cpolygon points=%22316,135 330,106 344,135%22/%3E%3Cpolygon points=%22320,120 330,94 340,120%22/%3E%3Cpolygon points=%22365,154 390,108 415,154%22/%3E%3Cpolygon points=%22370,129 390,87 410,129%22/%3E%3Cpolygon points=%22375,108 390,70 405,108%22/%3E%3Cpolygon points=%22544,152 560,123 576,152%22/%3E%3Cpolygon points=%22548,136 560,110 572,136%22/%3E%3Cpolygon points=%22551,123 560,100 569,123%22/%3E%3Cpolygon points=%221080,152 1100,116 1120,152%22/%3E%3Cpolygon points=%221084,132 1100,99 1116,132%22/%3E%3Cpolygon points=%221088,116 1100,86 1112,116%22/%3E%3Cpolygon points=%221129,154 1160,97 1191,154%22/%3E%3Cpolygon points=%221135,123 1160,71 1185,123%22/%3E%3Cpolygon points=%221141,97 1160,50 1179,97%22/%3E%3Cpolygon points=%221208,152 1230,111 1252,152%22/%3E%3Cpolygon points=%221212,130 1230,93 1248,130%22/%3E%3Cpolygon points=%221217,111 1230,78 1243,111%22/%3E%3Cpolygon points=%221272,154 1300,103 1328,154%22/%3E%3Cpolygon points=%221278,126 1300,80 1322,126%22/%3E%3Cpolygon points=%221283,103 1300,62 1317,103%22/%3E%3Cpolygon points=%221352,152 1370,119 1388,152%22/%3E%3Cpolygon points=%221356,134 1370,104 1384,134%22/%3E%3Cpolygon points=%221359,119 1370,92 1381,119%22/%3E%3Cpolygon points=%221396,154 1420,110 1444,154%22/%3E%3Cpolygon points=%221401,130 1420,90 1439,130%22/%3E%3Cpolygon points=%221406,110 1420,74 1434,110%22/%3E%3C/g%3E%3Cpath d=%22M0 138C200 126 380 132 560 136C740 141 880 134 1000 136C1180 139 1320 129 1440 132V160H0Z%22 fill=%22%230b1426%22/%3E%3Cellipse cx=%22900%22 cy=%22140%22 rx=%22110%22 ry=%229%22 fill=%22%23ffb45a%22 opacity=%22.3%22/%3E%3Cpolygon points=%22842,139 900,78 958,139%22 fill=%22url%28%23c%29%22/%3E%3Cpolygon points=%22888,139 900,104 912,139%22 fill=%22%23fff3cc%22/%3E%3Cpath d=%22M900 78L893 69M900 78L907 69%22 stroke=%22%230b1426%22 stroke-width=%222.5%22 stroke-linecap=%22round%22/%3E%3Cpath d=%22M842 139L822 145M958 139L978 145%22 stroke=%22%232a3552%22 stroke-width=%221.5%22 stroke-linecap=%22round%22/%3E%3C/svg%3E") center bottom / cover no-repeat;
  pointer-events: none;
  z-index: 0;
}
/* A few brighter stars that twinkle slowly. */
.foxco-footer[data-preset="bookedincamp"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 110px;
  background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22400%22 height=%22110%22%3E%3Ccircle cx=%22242%22 cy=%2278%22 r=%221.3%22 fill=%22%23fff6dc%22/%3E%3Ccircle cx=%22236%22 cy=%2250%22 r=%221.3%22 fill=%22%23fff6dc%22/%3E%3Ccircle cx=%22157%22 cy=%2235%22 r=%221.3%22 fill=%22%23fff6dc%22/%3E%3Ccircle cx=%2296%22 cy=%2235%22 r=%221.3%22 fill=%22%23fff6dc%22/%3E%3Ccircle cx=%2245%22 cy=%2277%22 r=%221.3%22 fill=%22%23fff6dc%22/%3E%3C/svg%3E") 120px 0 / 400px 110px repeat-x;
  pointer-events: none;
  z-index: 0;
  animation: foxco-bic-twinkle 4.5s ease-in-out infinite alternate;
}
@keyframes foxco-bic-twinkle {
  from { opacity: .25; }
  to   { opacity: 1; }
}
.foxco-footer[data-preset="bookedincamp"] > * {
  position: relative;
  z-index: 1;
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__col-title,
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__cta-headline {
  font-family: var(--ff-font);
  font-weight: 900;
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__col-title {
  letter-spacing: 0.08em;
  border-bottom-style: dashed;
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__cta-accent {
  color: #ffd21f;
  text-shadow: 0 0 18px rgba(255,180,90,0.55), 0 0 44px rgba(255,157,58,0.35);
}
/* Chunky pill buttons with a solid drop, same as the coming-soon page. */
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__cta-btn--solid {
  background: #ffd21f;
  border-color: #ffd21f;
  color: #2f3b45 !important;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 4px 0 #b08d00;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__cta-btn--solid:hover {
  background: #ffdc4d;
  color: #2f3b45 !important;
  opacity: 1;
  transform: translateY(2px);
  box-shadow: 0 2px 0 #b08d00;
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__social-link:hover {
  color: #2f3b45 !important;
  box-shadow: 0 0 18px rgba(255,210,31,0.45);
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__badge {
  border-radius: var(--ff-radius);
  border-color: rgba(255,210,31,0.22);
}
.foxco-footer[data-preset="bookedincamp"] .foxco-footer__sub {
  background: var(--ff-bg-sub);
}
@media (max-width: 767px) {
  .foxco-footer[data-preset="bookedincamp"] { --bic-scene-h: 110px; }
  /* Narrow screens see a slice of the wide scene: keep the tent and the
     right-hand trees in frame instead of the empty middle. */
  .foxco-footer[data-preset="bookedincamp"]::before { background-position: 70% bottom; }
}
@media (prefers-reduced-motion: reduce) {
  .foxco-footer[data-preset="bookedincamp"]::after { animation: none; opacity: .7; }
}

/* --------------------------------------------------------------------------
   BookedInCamp Day (1.35.0) -- the coming-soon page's default state: a
   sunrise coming up from the bottom middle, ink text, ink pill buttons
   with a solid drop. Pair with BookedInCamp Night for the lights-off look.
   At the end of the file for the same reason as the Night preset.
   -------------------------------------------------------------------------- */
.foxco-footer[data-preset="bookedincamp-day"] {
  --ff-bg:         #fff6c7;
  --ff-bg-sub:     transparent;
  --ff-text:       #3d4a55;
  --ff-heading:    #2f3b45;
  --ff-accent:     #2f3b45;
  --ff-link:       #2f3b45;
  --ff-link-hover: #1c252c;
  --ff-icon:       #2f3b45;
  --ff-border:     rgba(47,59,69,0.14);
  --ff-badge-bg:   rgba(255,255,255,0.6);
  --ff-badge-icon: #2f3b45;
  --ff-font:       "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ff-radius:     14px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse 60% 70% at 50% 118%, #ffffff 0%, #fff3a8 22%, #ffd21f 48%, rgba(255,176,0,0.32) 66%, rgba(255,210,31,0) 82%),
    linear-gradient(180deg, #fffdf2 0%, #fff6c7 45%, #ffe56b 78%, #ffd21f 100%);
}
/* Faint sun rays fanning up from the bottom middle, masked to fade out. */
.foxco-footer[data-preset="bookedincamp-day"]::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 1800px;
  aspect-ratio: 1;
  transform: translate(-50%, 50%);
  border-radius: 50%;
  background: repeating-conic-gradient(from 0deg, rgba(255,255,255,0.5) 0deg 4deg, rgba(255,255,255,0) 4deg 15deg);
  -webkit-mask: radial-gradient(circle, #000 0%, #000 22%, transparent 55%);
          mask: radial-gradient(circle, #000 0%, #000 22%, transparent 55%);
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}
.foxco-footer[data-preset="bookedincamp-day"] > * {
  position: relative;
  z-index: 1;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__col-title,
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-headline {
  font-family: var(--ff-font);
  font-weight: 900;
  color: #2f3b45;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__col-title {
  letter-spacing: 0.08em;
  border-bottom-style: dashed;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-eyebrow {
  color: #8a5a00 !important;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-sub {
  color: #3d4a55 !important;
}
/* Accent words get a white highlighter swipe -- yellow would vanish here. */
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-accent {
  color: #2f3b45;
  text-shadow: none;
  background: linear-gradient(transparent 60%, rgba(255,255,255,0.9) 60%, rgba(255,255,255,0.9) 92%, transparent 92%);
  padding: 0 0.08em;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-btn--solid {
  background: #2f3b45;
  border-color: #2f3b45;
  color: #ffffff !important;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 5px 0 #1c252c;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__cta-btn--solid:hover {
  background: #2f3b45;
  color: #ffffff !important;
  opacity: 1;
  transform: translateY(-2px);
  box-shadow: 0 7px 0 #1c252c;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__social-link {
  border-color: rgba(47,59,69,0.18);
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__social-link:hover {
  background: #2f3b45;
  border-color: #2f3b45;
  color: #ffd21f !important;
}
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__badge {
  border-radius: var(--ff-radius);
}
/* Footer links on the sunny background need more than color to read as
   links -- underlined and bold, same as the coming-soon page's footer. */
.foxco-footer[data-preset="bookedincamp-day"] .foxco-footer__copyright a {
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 767px) {
  .foxco-footer[data-preset="bookedincamp-day"]::before { width: 1100px; }
}

/* ==========================================================================
   Statement Links (1.36.0) -- links typed into the CTA Headline, Supporting
   Line or Eyebrow (Signal + Departure). Off unless a style is picked, so
   existing footers keep the theme's link look. Colors come from
   --ff-cta-link* (set by the widget's Statement Links colors), falling back
   to the preset accent. Never touches the CTA button.
   ========================================================================== */
.foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  color: var(--ff-cta-link, var(--ff-accent)) !important;
  text-decoration: none !important;
  background: none;
  border: 0;
  box-shadow: none;
  transition: color .2s ease, background-size .3s ease, text-decoration-color .2s ease;
}
.foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):hover,
.foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):focus-visible {
  color: var(--ff-cta-link-hover, var(--ff-cta-link, var(--ff-accent))) !important;
}
/* Plain: indistinguishable from the text around it (hover color optional). */
.foxco-footer[data-cta-links="plain"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  color: inherit !important;
  font: inherit;
}
.foxco-footer[data-cta-links="plain"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):hover {
  color: var(--ff-cta-link-hover, inherit) !important;
}
/* Underline family. */
.foxco-footer[data-cta-links="underline"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn),
.foxco-footer[data-cta-links="thick"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn),
.foxco-footer[data-cta-links="dotted"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  text-decoration: underline !important;
  text-decoration-thickness: max(1px, .06em) !important;
  text-underline-offset: .18em;
}
.foxco-footer[data-cta-links="thick"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  text-decoration-thickness: max(2px, .12em) !important;
}
.foxco-footer[data-cta-links="dotted"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  text-decoration-style: dotted !important;
  text-decoration-thickness: max(2px, .09em) !important;
}
/* Animated: a bar slides in under the link on hover. */
.foxco-footer[data-cta-links="animated"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  background-image: linear-gradient(currentColor, currentColor) !important;
  background-repeat: no-repeat !important;
  background-position: 0 100% !important;
  background-size: 0 max(2px, .07em) !important;
  padding-bottom: .06em;
}
.foxco-footer[data-cta-links="animated"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):hover,
.foxco-footer[data-cta-links="animated"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):focus-visible {
  background-size: 100% max(2px, .07em) !important;
}
/* Highlighter: marker swipe behind the lower part of the text. */
.foxco-footer[data-cta-links="highlight"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  background-image: linear-gradient(transparent 58%, var(--ff-cta-link-highlight, color-mix(in srgb, var(--ff-accent) 35%, transparent)) 58%, var(--ff-cta-link-highlight, color-mix(in srgb, var(--ff-accent) 35%, transparent)) 92%, transparent 92%) !important;
  padding: 0 .08em;
}
/* Brackets: [ link ] -- the brackets are decoration, not part of the link
   text, so screen readers and copy/paste get just the words. */
.foxco-footer[data-cta-links="bracket"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn)::before,
.foxco-footer[data-cta-links="bracket"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn)::after {
  color: var(--ff-cta-link-bracket, currentColor);
  font-weight: 300;
  font-style: normal;
  transition: margin .2s ease;
}
.foxco-footer[data-cta-links="bracket"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn)::before { content: "["; content: "[" / ""; margin-right: .15em; }
.foxco-footer[data-cta-links="bracket"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn)::after  { content: "]"; content: "]" / ""; margin-left: .15em; }
.foxco-footer[data-cta-links="bracket"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):hover::before { margin-right: .3em; }
.foxco-footer[data-cta-links="bracket"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):hover::after  { margin-left: .3em; }
/* Bold. */
.foxco-footer[data-cta-links="bold"] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn) {
  font-weight: 800 !important;
}
.foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn),
  .foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn)::before,
  .foxco-footer[data-cta-links] :is(.foxco-footer__cta-headline, .foxco-footer__cta-sub, .foxco-footer__cta-eyebrow) a:not(.foxco-footer__cta-btn)::after { transition: none; }
}

/* --------------------------------------------------------------------------
   Social icons: 250% pop + label (1.37.0). Matches the page-header icons --
   the icon grows to 250% with a springy overshoot, rises above its
   neighbors and its name shows in a small label. It grows upward (origin
   bottom center) with the label above, so nothing spills past the
   footer's bottom edge (the Booked in Camp presets clip overflow). The
   label sits inside the scaled link and is counter-scaled (x0.4), so it
   reads at its normal size. Last in the file so it wins over every
   layout/preset hover rule of equal specificity. Off with Social Icon
   Hover = Small lift (no data-pop attribute).
   -------------------------------------------------------------------------- */
.foxco-footer .foxco-footer__social[data-pop] .foxco-footer__social-link {
  position: relative;
  transform-origin: 50% 100%;
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1.25), box-shadow 0.3s ease, background 0.2s, color 0.2s, border-color 0.2s;
}
/* Text/icon color that reads on the accent; light-accent presets get dark. */
.foxco-footer { --ff-on-accent: #ffffff; }
.foxco-footer[data-preset="dr-guberman"],
.foxco-footer[data-preset="bookedincamp"] { --ff-on-accent: #1d2731; }
.foxco-footer[data-preset="bookedincamp-day"] { --ff-on-accent: #ffd21f; }

/* One hover look for every layout: accent fill, contrasting glyph. (The
   Signal/Ledger/Departure hover rules set the glyph to the accent while the
   base rule fills the circle with the accent, so at 250% the glyph would
   vanish.) [data-layout] lifts this above every layout/preset rule. */
.foxco-footer[data-layout] .foxco-footer__social[data-pop] .foxco-footer__social-link:hover,
.foxco-footer[data-layout] .foxco-footer__social[data-pop] .foxco-footer__social-link:focus-visible {
  transform: scale(2.5);
  z-index: 5;
  outline: none;
  background: var(--ff-accent);
  border-color: var(--ff-accent);
  color: var(--ff-on-accent) !important;
}
/* accent ring + shadow */
.foxco-footer[data-layout] .foxco-footer__social[data-pop] .foxco-footer__social-link:hover,
.foxco-footer[data-layout] .foxco-footer__social[data-pop] .foxco-footer__social-link:focus-visible {
  box-shadow: 0 2.4px 6.4px rgba(0, 0, 0, 0.5), 0 0 0 0.6px var(--ff-accent);
}
.foxco-footer .foxco-footer__social-tip {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 3px);
  transform: translateX(-50%) scale(0.4);
  transform-origin: 50% 100%;
  white-space: nowrap;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--ff-accent);
  color: var(--ff-on-accent);
  font-family: var(--ff-font);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.foxco-footer .foxco-footer__social[data-pop] .foxco-footer__social-link:hover .foxco-footer__social-tip,
.foxco-footer .foxco-footer__social[data-pop] .foxco-footer__social-link:focus-visible .foxco-footer__social-tip {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .foxco-footer .foxco-footer__social[data-pop] .foxco-footer__social-link { transition: none; }
  .foxco-footer[data-layout] .foxco-footer__social[data-pop] .foxco-footer__social-link:hover,
  .foxco-footer[data-layout] .foxco-footer__social[data-pop] .foxco-footer__social-link:focus-visible { transform: none; }
  .foxco-footer .foxco-footer__social-tip { transform: translateX(-50%); }
}

/* Hover labels exist in the markup whenever an icon has a label; without the
   pop hover (and outside the labeled grid) they stay out of layout entirely. */
.foxco-footer .foxco-footer__social:not([data-pop]) .foxco-footer__social-tip { display: none; }

/* --------------------------------------------------------------------------
   Departure utility bar: Highlighter link style (1.38.0)
   An accent block sweeps in from the left behind the link on hover and the
   text flips to --ff-on-accent; a thin accent underline marks each link at
   rest. Opt-in via Utility Link Style (data-utility-links="highlighter").
   -------------------------------------------------------------------------- */
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left {
  gap: 4px 6px;
  margin-left: -10px;
}
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  font-weight: 700;
  transition: color 0.25s ease;
}
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a::before {
  content: "";
  position: absolute;
  inset: 3px 0;
  z-index: -1;
  border-radius: 2px;
  background: var(--ff-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a::after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 5px;
  height: 2px;
  background: var(--ff-accent);
  opacity: 0.5;
  transition: opacity 0.2s ease;
}
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a:hover,
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a:focus-visible {
  color: var(--ff-on-accent) !important;
  outline: none;
}
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a:hover::before,
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a:focus-visible::before {
  transform: scaleX(1);
}
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a:hover::after,
.foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a:focus-visible::after {
  opacity: 0;
}

/* --------------------------------------------------------------------------
   Departure utility bar: full-width icon layouts (1.38.0)
   tray / grid / rail move the icon row onto its own full-width line under
   the links (copyright below it) and give every icon an accent-tinted
   circle that matches the pop hover. Opt-in via Utility Icons Layout.
   -------------------------------------------------------------------------- */
.foxco-footer[data-layout="departure"][data-utility-icons] .foxco-footer__utility-left { flex: 1 0 100%; }
.foxco-footer[data-layout="departure"][data-utility-icons] .foxco-footer__utility-right {
  flex: 1 0 100%;
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
  margin-top: 14px;
}
.foxco-footer[data-layout="departure"][data-utility-icons] .foxco-footer__utility-right .foxco-footer__copyright { text-align: center; }
.foxco-footer[data-layout="departure"][data-utility-icons] .foxco-footer__social .foxco-footer__social-link {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--ff-accent) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--ff-accent) 30%, transparent);
  color: var(--ff-accent) !important;
}
.foxco-footer[data-layout="departure"][data-utility-icons] .foxco-footer__social .foxco-footer__social-link svg {
  width: 20px;
  height: 20px;
}

/* tray */
.foxco-footer[data-layout="departure"][data-utility-icons="tray"] .foxco-footer__social {
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 28px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--ff-border);
}

/* grid: label always shown under each icon */
.foxco-footer[data-layout="departure"][data-utility-icons="grid"] .foxco-footer__social {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  gap: 38px 8px; /* row gap leaves room for the labels, which sit below each icon */
  padding: 18px 0 32px;
  border-top: 1px solid var(--ff-border);
}
.foxco-footer[data-layout="departure"][data-utility-icons="grid"] .foxco-footer__social .foxco-footer__social-link {
  position: relative;
  justify-self: center;
}
.foxco-footer[data-layout="departure"][data-utility-icons="grid"] .foxco-footer__social-tip {
  display: block;
  opacity: 1;
  top: calc(100% + 9px);
  bottom: auto;
  transform: translateX(-50%);
  transform-origin: 50% 0;
  padding: 0;
  background: none;
  color: var(--ff-link);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: color 0.2s ease;
}
.foxco-footer[data-layout="departure"][data-utility-icons="grid"] .foxco-footer__social[data-pop] .foxco-footer__social-link:hover .foxco-footer__social-tip,
.foxco-footer[data-layout="departure"][data-utility-icons="grid"] .foxco-footer__social[data-pop] .foxco-footer__social-link:focus-visible .foxco-footer__social-tip {
  transform: translateX(-50%) scale(0.4);
  top: calc(100% + 3.6px);
  color: var(--ff-accent);
}

/* rail: icons sit on a thin accent line */
.foxco-footer[data-layout="departure"][data-utility-icons="rail"] .foxco-footer__social {
  position: relative;
  justify-content: space-between;
  gap: 10px;
}
.foxco-footer[data-layout="departure"][data-utility-icons="rail"] .foxco-footer__social::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  margin-top: -1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--ff-accent) 45%, transparent) 8%, color-mix(in srgb, var(--ff-accent) 45%, transparent) 92%, transparent);
}
.foxco-footer[data-layout="departure"][data-utility-icons="rail"] .foxco-footer__social .foxco-footer__social-link {
  position: relative;
  background: var(--ff-bg);
  border: 2px solid color-mix(in srgb, var(--ff-accent) 55%, transparent);
  box-shadow: 0 0 0 6px var(--ff-bg);
}

@media (max-width: 700px) {
  .foxco-footer[data-layout="departure"][data-utility-icons="tray"] .foxco-footer__social {
    justify-content: center;
    border-radius: 24px;
    padding: 12px;
  }
  .foxco-footer[data-layout="departure"][data-utility-icons="rail"] .foxco-footer__social {
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
  }
  .foxco-footer[data-layout="departure"][data-utility-icons="rail"] .foxco-footer__social::before { display: none; }
  /* highlighter links wrap as a row on phones instead of one long column */
  .foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 4px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .foxco-footer[data-layout="departure"][data-utility-links="highlighter"] .foxco-footer__utility-left a::before { transition: none; }
}

/* ==========================================================================
   Brand presets V2 (1.39.0): Foxco V2, MarineBattery, Dr Guberman V2,
   BookedInCamp V2, BattXR -- matching the Blog Posts style presets.
   Same --ff-* variables as every preset, plus a few element touches.
   Last in the file so they win over layout rules of equal specificity.
   ========================================================================== */

/* ---- Foxco V2: deep navy, orange glow + dot grid, Raleway / Merriweather ---- */
.foxco-footer[data-preset="foxco-v2"] {
  --ff-bg:         #0b0f1a;
  --ff-bg-sub:     #070a12;
  --ff-text:       #b9bdd0;
  --ff-heading:    #ffffff;
  --ff-accent:     #ff6b1a;
  --ff-link:       #d5d7e3;
  --ff-link-hover: #ff8a4c;
  --ff-icon:       #d5d7e3;
  --ff-border:     rgba(255,255,255,0.08);
  --ff-badge-bg:   rgba(255,255,255,0.04);
  --ff-badge-icon: #ff6b1a;
  --ff-font:       Merriweather, Georgia, serif;
  --ff-radius:     14px;
  --ff-on-accent:  #0b0f1a;
  background:
    radial-gradient(640px 320px at 0% 0%, rgba(255,107,26,0.18) 0%, rgba(255,107,26,0) 70%),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,0.07) 1px, transparent 1.5px) 0 0 / 22px 22px,
    #0b0f1a;
}
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__col-title,
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-headline,
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-eyebrow,
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-btn { font-family: Raleway, sans-serif; }
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__col-title { color: #ff6b1a; font-weight: 800; letter-spacing: 0.22em; border-bottom-color: rgba(255,107,26,0.35); }
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-headline { font-weight: 900; color: #ffffff; }
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-accent { color: #ff6b1a; }
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-btn--solid {
  background: #ff6b1a; border-color: #ff6b1a; color: #0b0f1a !important; border-radius: 999px; font-weight: 900;
  letter-spacing: 0.06em; text-transform: uppercase; box-shadow: 0 5px 0 #8f3a17; transition: transform .15s ease, box-shadow .15s ease;
}
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__cta-btn--solid:hover { opacity: 1; color: #0b0f1a !important; transform: translateY(-2px); box-shadow: 0 8px 0 #8f3a17; }
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__badge { border-color: rgba(255,107,26,0.22); }
.foxco-footer[data-preset="foxco-v2"] .foxco-footer__sub { border-top-color: rgba(255,107,26,0.25); }

/* ---- MarineBattery: deep ocean navy, wave crest on top, aqua accent ---- */
.foxco-footer[data-preset="marinebattery"] {
  --ff-bg:         #0b2545;
  --ff-bg-sub:     #081c35;
  --ff-text:       #c9dbee;
  --ff-heading:    #ffffff;
  --ff-accent:     #4fb8ff;
  --ff-link:       #dceaf7;
  --ff-link-hover: #7fd0ff;
  --ff-icon:       #dceaf7;
  --ff-border:     rgba(127,208,255,0.16);
  --ff-badge-bg:   rgba(255,255,255,0.06);
  --ff-badge-icon: #4fb8ff;
  --ff-radius:     12px;
  --ff-on-accent:  #0b2545;
  position: relative;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 18' preserveAspectRatio='none'%3E%3Cpath d='M0 10c20-8 40-8 60 0s40 8 60 0 40-8 60 0 40 8 60 0V0H0z' fill='%231565c0' fill-opacity='.55'/%3E%3C/svg%3E") 0 0 / 240px 18px repeat-x,
    linear-gradient(180deg, #0e3a66 0%, #0b2545 55%, #0a2140 100%);
}
.foxco-footer[data-preset="marinebattery"] .foxco-footer__col-title { color: #7fd0ff; border-bottom-color: rgba(79,184,255,0.45); }
.foxco-footer[data-preset="marinebattery"] .foxco-footer__cta-accent { color: #7fd0ff; }
.foxco-footer[data-preset="marinebattery"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="marinebattery"] .foxco-footer__cta-btn--solid {
  background: #1e88e5; border-color: #1e88e5; color: #ffffff !important; border-radius: 10px; font-weight: 700;
  box-shadow: 0 8px 18px rgba(0,0,0,0.25); transition: transform .15s ease, background .15s ease;
}
.foxco-footer[data-preset="marinebattery"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="marinebattery"] .foxco-footer__cta-btn--solid:hover { background: #42a5f5; color: #ffffff !important; opacity: 1; transform: translateY(-2px); }
.foxco-footer[data-preset="marinebattery"] .foxco-footer__sub { border-top-color: rgba(127,208,255,0.14); }

/* ---- Dr Guberman V2: clinical light, blue + gold, gradient top rule, blue sub band ---- */
.foxco-footer[data-preset="dr-guberman-v2"] {
  --ff-bg:         #f5f9fd;
  --ff-bg-sub:     #2670c0;
  --ff-text:       #4a5d73;
  --ff-heading:    #1d3557;
  --ff-accent:     #2670c0;
  --ff-link:       #1d3557;
  --ff-link-hover: #2670c0;
  --ff-icon:       #2670c0;
  --ff-border:     #dce6f1;
  --ff-badge-bg:   #ffffff;
  --ff-badge-icon: #2670c0;
  --ff-radius:     12px;
  --ff-on-accent:  #ffffff;
  border-top: 4px solid transparent;
  border-image: linear-gradient(90deg, #2670c0 0%, #4b8fd6 60%, #f0b429 100%) 1;
}
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__col-title { color: #2670c0; letter-spacing: 0.16em; border-bottom-color: #f0b429; }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__cta-accent { color: #2670c0; }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__cta-btn--solid {
  background: #2670c0; border-color: #2670c0; color: #ffffff !important; border-radius: 999px; font-weight: 800;
  letter-spacing: 0.1em; text-transform: uppercase; box-shadow: 0 6px 16px rgba(38,112,192,0.22); transition: background .2s ease, color .2s ease, transform .15s ease;
}
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__cta-btn--solid:hover { background: #f0b429; border-color: #f0b429; color: #1a1a1a !important; opacity: 1; transform: translateY(-2px); }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__badge { box-shadow: 0 2px 6px rgba(29,53,87,0.05); }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__social-link { background: #ffffff; border-color: #dce6f1; }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__sub,
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__sub .foxco-footer__copyright { color: #ffffff; }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__sub a { color: #ffe08a; }

/* ---- BookedInCamp V2: sticker style -- white, slate outlines, chunky drops, yellow ---- */
.foxco-footer[data-preset="bookedincamp-v2"] {
  --ff-bg:         #ffffff;
  --ff-bg-sub:     #ffd21f;
  --ff-text:       #4a5763;
  --ff-heading:    #2f3b45;
  --ff-accent:     #2f3b45;
  --ff-link:       #2f3b45;
  --ff-link-hover: #1c252c;
  --ff-icon:       #2f3b45;
  --ff-border:     rgba(47,59,69,0.16);
  --ff-badge-bg:   #ffffff;
  --ff-badge-icon: #2f3b45;
  --ff-font:       "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ff-radius:     16px;
  --ff-on-accent:  #ffd21f;
  border-top: 3px solid #2f3b45;
}
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__col-title,
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__cta-headline { font-family: var(--ff-font); font-weight: 900; color: #2f3b45; }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__col-title { letter-spacing: 0.06em; border-bottom: 0; padding: 2px 10px; background: #ffd21f; border-radius: 999px; }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__cta-accent { color: #2f3b45; background: linear-gradient(transparent 58%, #ffd21f 58%); }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__badge { border: 2px solid #2f3b45; border-radius: var(--ff-radius); box-shadow: 0 4px 0 #2f3b45; }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__cta-btn--solid {
  background: #ffd21f; border: 2px solid #2f3b45; color: #2f3b45 !important; border-radius: 999px; font-weight: 900;
  box-shadow: 0 4px 0 #2f3b45; transition: transform .15s ease, box-shadow .15s ease;
}
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__cta-btn--solid:hover { opacity: 1; color: #1c252c !important; transform: translateY(-2px); box-shadow: 0 6px 0 #2f3b45; }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__social-link { background: #ffffff; border: 2px solid #2f3b45; box-shadow: 0 3px 0 #2f3b45; }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__sub { border-top: 3px solid #2f3b45; }
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__sub,
.foxco-footer[data-preset="bookedincamp-v2"] .foxco-footer__copyright { color: #2f3b45; font-weight: 700; }

/* ---- BattXR: black space, teal hairlines and glow, Orbitron labels ---- */
.foxco-footer[data-preset="battxr"] {
  --ff-bg:         #000000;
  --ff-bg-sub:     #050708;
  --ff-text:       #c3c4c7;
  --ff-heading:    #ffffff;
  --ff-accent:     #6ADFE4;
  --ff-link:       #c3c4c7;
  --ff-link-hover: #6ADFE4;
  --ff-icon:       #c3c4c7;
  --ff-border:     rgba(106,223,228,0.18);
  --ff-badge-bg:   rgba(12,16,18,0.86);
  --ff-badge-icon: #6ADFE4;
  --ff-font:       Roboto, system-ui, sans-serif;
  --ff-radius:     6px;
  --ff-on-accent:  #001214;
  background:
    radial-gradient(1px 1px at 12% 20%, rgba(255,255,255,0.8) 50%, transparent 51%),
    radial-gradient(1px 1px at 37% 64%, rgba(255,255,255,0.6) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 58% 28%, rgba(106,223,228,0.9) 50%, transparent 51%),
    radial-gradient(1px 1px at 76% 72%, rgba(255,255,255,0.7) 50%, transparent 51%),
    radial-gradient(1px 1px at 91% 16%, rgba(255,255,255,0.5) 50%, transparent 51%),
    radial-gradient(ellipse 60% 80% at 10% 120%, rgba(106,223,228,0.12), rgba(0,0,0,0) 65%),
    #000000;
  border-top: 1px solid rgba(106,223,228,0.2);
}
.foxco-footer[data-preset="battxr"] .foxco-footer__col-title,
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-eyebrow,
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-btn { font-family: Orbitron, sans-serif; }
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-headline { font-family: Orbitron, sans-serif; font-weight: 700; color: #ffffff; }
.foxco-footer[data-preset="battxr"] .foxco-footer__col-title { color: #6ADFE4; font-size: 11px; letter-spacing: 0.22em; border-bottom: 1px solid rgba(106,223,228,0.35); }
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-accent { color: #6ADFE4; text-shadow: 0 0 22px rgba(106,223,228,0.45); }
.foxco-footer[data-preset="battxr"] .foxco-footer__link-list a:hover,
.foxco-footer[data-preset="battxr"] .foxco-footer__utility-left a:hover { text-shadow: 0 0 12px rgba(106,223,228,0.5); }
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-btn,
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-btn--solid {
  background: #6ADFE4; border-color: #6ADFE4; color: #001214 !important; border-radius: 2px; font-size: 12px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; box-shadow: 0 0 30px rgba(106,223,228,0.35); transition: background .2s ease, box-shadow .2s ease;
}
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-btn:hover,
.foxco-footer[data-preset="battxr"] .foxco-footer__cta-btn--solid:hover { background: #9AF4F8; color: #001214 !important; opacity: 1; box-shadow: 0 0 40px rgba(106,223,228,0.55); }
.foxco-footer[data-preset="battxr"] .foxco-footer__badge { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.foxco-footer[data-preset="battxr"] .foxco-footer__social-link { border-color: rgba(106,223,228,0.35); }
.foxco-footer[data-preset="battxr"] .foxco-footer__sub { border-top-color: rgba(106,223,228,0.14); font-family: "JetBrains Mono", ui-monospace, monospace; }

/* ---- Bottom Nav versions of the same presets ---- */
.foxco-bottom-nav[data-preset="foxco-v2"] { --bn-bg: #0b0f1a; --bn-text: rgba(213,215,227,0.7); --bn-active: #ff6b1a; --bn-border: rgba(255,107,26,0.18); --bn-badge-bg: #ff6b1a; --bn-badge-txt: #0b0f1a; font-family: Raleway, sans-serif; }
.foxco-bottom-nav[data-preset="marinebattery"] { --bn-bg: #0b2545; --bn-text: #c9dbee; --bn-active: #7fd0ff; --bn-border: rgba(127,208,255,0.18); --bn-badge-bg: #1e88e5; --bn-badge-txt: #ffffff; }
.foxco-bottom-nav[data-preset="dr-guberman-v2"] { --bn-bg: #ffffff; --bn-text: #5b6f86; --bn-active: #2670c0; --bn-border: #dce6f1; --bn-badge-bg: #f0b429; --bn-badge-txt: #1a1a1a; box-shadow: 0 -4px 18px rgba(29,53,87,0.08); }
.foxco-bottom-nav[data-preset="bookedincamp-v2"] { --bn-bg: #ffffff; --bn-text: #5b6873; --bn-active: #2f3b45; --bn-border: #2f3b45; --bn-badge-bg: #ffd21f; --bn-badge-txt: #2f3b45; font-family: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif; }
.foxco-bottom-nav[data-preset="battxr"] { --bn-bg: #000000; --bn-text: rgba(195,196,199,0.75); --bn-active: #6ADFE4; --bn-border: rgba(106,223,228,0.2); --bn-badge-bg: #6ADFE4; --bn-badge-txt: #001214; }
/* Big statement headline takes the preset's heading color in these presets */
.foxco-footer[data-preset="marinebattery"] .foxco-footer__cta-headline { color: #ffffff; }
.foxco-footer[data-preset="dr-guberman-v2"] .foxco-footer__cta-headline { color: #1d3557; }
