/*
 * Snug Concerts Design System — Tokens
 *
 * All design values in one place. Every component references
 * these custom properties instead of hardcoded values.
 *
 * Style: Clean corporate meets music industry.
 * Inspired by: Sofar Sounds, DICE, Songkick.
 */

:root {
    /* ── Colors ──────────────────────────────────── */
    --snug-text:           #1a1a2e;
    --snug-text-muted:     #6b7280;
    --snug-text-light:     #9ca3af;

    --snug-bg:             #ffffff;
    --snug-bg-subtle:      #f8f8f6;
    --snug-bg-card:        #ffffff;
    --snug-bg-hover:       #f3f4f6;

    --snug-accent:         #d97706;
    --snug-accent-hover:   #b45309;
    --snug-accent-light:   #fef3c7;
    --snug-accent-text:    #92400e;

    --snug-border:         #e5e7eb;
    --snug-border-light:   #f3f4f6;

    --snug-success:        #059669;
    --snug-success-bg:     #ecfdf5;
    --snug-error:          #dc2626;
    --snug-error-bg:       #fef2f2;
    --snug-info:           #2563eb;
    --snug-info-bg:        #eff6ff;
    --snug-warning:        #d97706;
    --snug-warning-bg:     #fffbeb;

    /* ── Typography ──────────────────────────────── */
    --snug-font:           -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --snug-font-mono:      'SF Mono', 'Fira Code', monospace;

    --snug-text-xs:        0.75rem;    /* 12px */
    --snug-text-sm:        0.875rem;   /* 14px */
    --snug-text-base:      1rem;       /* 16px */
    --snug-text-lg:        1.125rem;   /* 18px */
    --snug-text-xl:        1.25rem;    /* 20px */
    --snug-text-2xl:       1.5rem;     /* 24px */
    --snug-text-3xl:       1.875rem;   /* 30px */
    --snug-text-4xl:       2.25rem;    /* 36px */

    --snug-leading-tight:  1.25;
    --snug-leading-normal: 1.5;
    --snug-leading-relaxed: 1.75;

    --snug-weight-normal:  400;
    --snug-weight-medium:  500;
    --snug-weight-semibold: 600;
    --snug-weight-bold:    700;

    /* ── Spacing ─────────────────────────────────── */
    --snug-space-1:        0.25rem;    /* 4px */
    --snug-space-2:        0.5rem;     /* 8px */
    --snug-space-3:        0.75rem;    /* 12px */
    --snug-space-4:        1rem;       /* 16px */
    --snug-space-5:        1.25rem;    /* 20px */
    --snug-space-6:        1.5rem;     /* 24px */
    --snug-space-8:        2rem;       /* 32px */
    --snug-space-10:       2.5rem;     /* 40px */
    --snug-space-12:       3rem;       /* 48px */
    --snug-space-16:       4rem;       /* 64px */

    /* ── Borders & Radius ────────────────────────── */
    --snug-radius-sm:      4px;
    --snug-radius:         8px;
    --snug-radius-lg:      12px;
    --snug-radius-xl:      16px;
    --snug-radius-full:    9999px;

    /* ── Shadows ─────────────────────────────────── */
    --snug-shadow-sm:      0 1px 2px rgba(0, 0, 0, 0.05);
    --snug-shadow:         0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
    --snug-shadow-md:      0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06);
    --snug-shadow-lg:      0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);

    /* ── Transitions ─────────────────────────────── */
    --snug-transition:     150ms ease;
    --snug-transition-slow: 300ms ease;

    /* ── Layout ──────────────────────────────────── */
    --snug-max-width:      800px;
    --snug-max-width-wide: 1280px;
}
/*
 * Snug Network — Global theme override.
 *
 * The site theme uses white text on dark hero backgrounds.
 * Every Snug component renders on white panels, so we force
 * dark text on ALL elements with a snug- class prefix.
 *
 * This file is enqueued on every front-end page load.
 */

[class*="snug-"] {
    color: #1e1e1e;
}

[class*="snug-"] * {
    color: inherit;
}

/* v1.9.187 UNIVERSAL dark-form rule (bundle mirror of snug-global.css).
   Was `color: #1e1e1e !important` which fought every dark surface. This
   file is the concatenated bundle actually loaded on Snug front-end
   pages (individual source files are documentation). wp-admin is never
   enqueued this bundle, so wp-admin forms stay their native light. */
[class*="snug-"] input,
[class*="snug-"] textarea,
[class*="snug-"] select,
[class*="snug-"] input:focus,
[class*="snug-"] textarea:focus,
[class*="snug-"] select:focus {
    color: var(--cream, #F0EDE8) !important;
    -webkit-text-fill-color: var(--cream, #F0EDE8) !important;
    color-scheme: dark;
    background-color: var(--ink-mid, #16181D);
    border: 1px solid var(--border, #2A2D35);
}

[class*="snug-"] input::placeholder,
[class*="snug-"] textarea::placeholder {
    color: var(--muted, #888A92) !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--muted, #888A92) !important;
}

/* Native <select> option list: browsers ignore color-scheme:dark on the
   closed control in most cases; style option directly. */
[class*="snug-"] select option {
    background: var(--ink-mid, #16181D);
    color: var(--cream, #F0EDE8);
}

[class*="snug-"] a {
    color: #0073aa;
}

[class*="snug-"] a:hover {
    color: #005d8c;
}

/* ── Public nav (shared on artist roster, venue directory, calendar, impact) ──
   Rendered INSIDE each page's card container, styled as an integrated
   header row with a bottom separator. Shares the card's background so it
   reads as the top of the page content. */
.snug-public-nav {
    display: flex;
    gap: 4px;
    justify-content: center;
    flex-wrap: wrap;
    padding: 4px 0 18px;
    margin: 0 0 20px;
    background: transparent;
    border: none;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: none;
}

.snug-public-nav__link {
    display: inline-block;
    padding: 9px 20px;
    font-size: 14px;
    font-weight: 600;
    color: #6b7280 !important;
    text-decoration: none !important;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    transition: color 150ms ease, background 150ms ease;
    line-height: 20px;
}

.snug-public-nav__link:hover {
    color: #b45309 !important;
    background: #fef3c7;
}

.snug-public-nav__link--active,
.snug-public-nav__link--active:hover {
    background: #d97706;
    color: #ffffff !important;
}

@media (max-width: 640px) {
    .snug-public-nav {
        gap: 2px;
        padding-bottom: 14px;
        margin-bottom: 14px;
    }
    .snug-public-nav__link {
        padding: 7px 12px;
        font-size: 13px;
    }
}
/* ==========================================================================
   Snug Concerts Network Design System
   Scoped to .snug-network-wrap
   Do not edit inline — all overrides go here.
   ========================================================================== */

/* ── TOKENS ──
   v1.9.164 Kant Rule 3 reconciliation: three token values were
   aspirational but never enforced — the site actually rendered on
   different hex values baked into ~350 per-surface CSS declarations.
   Fixed so the token IS the reality (nothing shifts visually):
     --gold  D4A04A → c9a45a   (353 sites used c9a45a)
     --gold-dim / --gold-glow  updated to match new gold RGB (201,164,90)
   Two new tokens added for previously untokenized shades used by
   the per-surface form CSS blocks (edit-profile, set-password,
   sponsor, artist-rating, review-queue textarea, etc.):
     --ink-darker  #0F1116  (dark panel surface, lighter than --ink)
     --border-warm #3a352c  (warm-brown border used on form inputs)
   With this reconciliation, the follow-on hex-to-token sweep can
   run mechanically without any visual regression. */
.snug-network-wrap {
  --ink:         #0C0D0F;
  --ink-darker:  #0F1116;
  --ink-mid:     #16181D;
  --ink-light:   #22252D;
  --border:      #2A2D35;
  --border-warm: #3a352c;
  --gold:        #c9a45a;
  --gold-dim:    rgba(201,164,90,0.15);
  --gold-glow:   rgba(201,164,90,0.06);
  --cream:       #F0EDE8;
  --muted:       #888A92;
  --text:        #E8E5E0;
  --green:       #3DAA6E;
  --tag-bg:      #1E2028;
  --font-display: 'League Spartan', sans-serif;
  --font-body:    'EB Garamond', Georgia, serif;

  background: var(--ink);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  box-sizing: border-box;
}

.snug-network-wrap *,
.snug-network-wrap *::before,
.snug-network-wrap *::after {
  box-sizing: border-box;
}

/* ── SECTION HERO ── */
.snug-network-wrap .snug-section-hero {
  background: var(--ink-mid);
  border-bottom: 1px solid var(--border);
  padding: 56px 64px 48px;
  position: relative;
  overflow: hidden;
}

.snug-network-wrap .snug-section-hero::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(212,160,74,0.07) 0%, transparent 70%);
  pointer-events: none;
}

.snug-network-wrap .snug-hero-eyebrow {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
}

.snug-network-wrap .snug-hero-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.0;
  letter-spacing: -0.01em;
  color: var(--cream);
  margin-bottom: 12px;
}

.snug-network-wrap .snug-hero-subtitle {
  font-family: var(--font-body);
  font-size: 19px;
  font-style: italic;
  color: var(--muted);
  max-width: 480px;
}

/* ── FILTER BAR ── */
.snug-network-wrap .snug-filter-bar {
  background: var(--ink);
  border-bottom: 1px solid var(--border);
  padding: 16px 64px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  position: sticky;
  top: 0;
  z-index: 10;
}

.snug-network-wrap .snug-filter-label {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

.snug-network-wrap .snug-filter-pill {
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 2px;
  cursor: pointer;
  transition: all 0.15s;
  appearance: none;
}

.snug-network-wrap .snug-filter-pill:hover,
.snug-network-wrap .snug-filter-pill.active,
.snug-network-wrap .snug-filter-pill[aria-selected="true"] {
  background: var(--gold-dim);
  border-color: var(--gold);
  color: var(--gold);
}

.snug-network-wrap .snug-filter-select {
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 28px 6px 12px;
  border-radius: 2px;
  cursor: pointer;
  outline: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888A92'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

.snug-network-wrap .snug-filter-search {
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 15px;
  padding: 6px 14px;
  border-radius: 2px;
  outline: none;
  transition: border-color 0.15s;
  margin-left: auto;
  min-width: 200px;
}

.snug-network-wrap .snug-filter-search:focus { border-color: var(--gold); }
.snug-network-wrap .snug-filter-search::placeholder { color: var(--muted); }

/* ── VIEW TOGGLE (Calendar) ── */
.snug-network-wrap .snug-view-toggle {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 2px;
  overflow: hidden;
}

.snug-network-wrap .snug-view-btn {
  background: var(--ink-light);
  border: none;
  border-right: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 7px 14px;
  cursor: pointer;
  transition: all 0.15s;
}

.snug-network-wrap .snug-view-btn:last-child { border-right: none; }
.snug-network-wrap .snug-view-btn:hover { color: var(--cream); }
.snug-network-wrap .snug-view-btn.active {
  background: var(--gold-dim);
  color: var(--gold);
}

/* ── CARD GRID ── */
.snug-network-wrap .snug-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1px;
  background: var(--border);
}

/* ── ARTIST ROSTER CARDS ── */
.snug-network-wrap .snug-artist-card {
  background: var(--ink);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: background 0.15s;
  cursor: pointer;
  overflow: hidden;
}

.snug-network-wrap .snug-artist-card:hover { background: var(--ink-mid); }
.snug-network-wrap .snug-artist-card:hover .snug-artist-name { color: var(--gold); }

.snug-network-wrap .snug-artist-photo {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(160deg, var(--ink-light) 0%, var(--ink-mid) 100%);
}

.snug-network-wrap .snug-artist-photo-initials {
  width: 100%;
  aspect-ratio: 4/3;
  background: linear-gradient(160deg, var(--ink-light) 0%, var(--ink-mid) 100%);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 48px;
  color: var(--border);
}

.snug-network-wrap .snug-artist-card-body {
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.snug-network-wrap .snug-artist-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 18px;
  color: var(--cream);
  line-height: 1.1;
  transition: color 0.15s;
}

.snug-network-wrap .snug-artist-bio {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  line-height: 1.55;
  color: var(--muted);
  flex: 1;
}

.snug-network-wrap .snug-artist-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  margin-top: 4px;
}

.snug-network-wrap .snug-artist-cta {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
}

/* ── VENUE CARDS ── */
.snug-network-wrap .snug-venue-card {
  background: var(--ink);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: background 0.15s;
  cursor: pointer;
}

.snug-network-wrap .snug-venue-card:hover { background: var(--ink-mid); }
.snug-network-wrap .snug-venue-card:hover .snug-venue-name { color: var(--gold); }

.snug-network-wrap .snug-venue-type {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

.snug-network-wrap .snug-venue-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  line-height: 1.05;
  color: var(--cream);
  transition: color 0.15s;
}

.snug-network-wrap .snug-venue-city {
  font-family: var(--font-body);
  font-style: italic;
  color: var(--muted);
  font-size: 15px;
}

.snug-network-wrap .snug-venue-capacity {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.snug-network-wrap .snug-venue-cap-num {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 28px;
  color: var(--cream);
  line-height: 1;
}

.snug-network-wrap .snug-venue-cap-lbl {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ── SHARED TAGS ── */
.snug-network-wrap .snug-tag {
  background: var(--tag-bg);
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 2px;
  display: inline-block;
}

.snug-network-wrap .snug-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.snug-network-wrap .snug-touring-badge {
  background: rgba(61,170,110,0.12);
  border: 1px solid rgba(61,170,110,0.25);
  color: var(--green);
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 2px;
  display: inline-block;
}

/* ── CALENDAR: EVENT ROWS ── */
.snug-network-wrap .snug-event-list {
  display: flex;
  flex-direction: column;
}

.snug-network-wrap .snug-event-row {
  background: var(--ink);
  display: grid;
  grid-template-columns: 90px 64px 1fr auto;
  align-items: stretch;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: background 0.15s;
  text-decoration: none;
}

.snug-network-wrap .snug-event-row:hover { background: var(--ink-mid); }
.snug-network-wrap .snug-event-row:hover .snug-event-title { color: var(--gold); }

.snug-network-wrap .snug-event-thumb {
  width: 90px;
  height: 90px;
  object-fit: cover;
  display: block;
  border-right: 1px solid var(--border);
  flex-shrink: 0;
  min-width: 90px;
  max-width: 90px;
  overflow: hidden;
}

.snug-network-wrap .snug-event-date {
  width: 64px;
  padding: 0 8px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.snug-network-wrap .snug-event-month {
  font-family: var(--font-display);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

.snug-network-wrap .snug-event-day {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  color: var(--cream);
  line-height: 1;
}

.snug-network-wrap .snug-event-info {
  padding: 10px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  justify-content: center;
  min-width: 0;
}

.snug-network-wrap .snug-event-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 17px;
  color: var(--cream);
  line-height: 1.1;
  transition: color 0.15s;
}

.snug-network-wrap .snug-event-meta {
  font-family: var(--font-body);
  font-style: italic;
  color: var(--muted);
  font-size: 15px;
}

.snug-network-wrap .snug-event-action {
  padding: 0 20px;
  display: flex;
  align-items: center;
  border-left: 1px solid var(--border);
  flex-shrink: 0;
}

/* ── CALENDAR: MONTH GRID ── */
.snug-network-wrap .snug-month-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  border-bottom: 1px solid var(--border);
}

.snug-network-wrap .snug-month-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 20px;
  color: var(--cream);
}

.snug-network-wrap .snug-month-nav {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 16px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  border-radius: 2px;
  transition: all 0.15s;
}

.snug-network-wrap .snug-month-nav:hover { border-color: var(--gold); color: var(--gold); }

.snug-network-wrap .snug-month-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: var(--border);
}

.snug-network-wrap .snug-day-header {
  background: var(--ink-mid);
  padding: 10px 8px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
}

.snug-network-wrap .snug-month-cell {
  background: var(--ink);
  min-height: 96px;
  padding: 8px;
  position: relative;
  transition: background 0.15s;
}

.snug-network-wrap .snug-month-cell:hover { background: var(--ink-mid); }
.snug-network-wrap .snug-month-cell.other-month { background: var(--ink-mid); opacity: 0.5; }
.snug-network-wrap .snug-month-cell.today { outline: 1px solid var(--gold); outline-offset: -1px; }

.snug-network-wrap .snug-cell-num {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 6px;
}

.snug-network-wrap .snug-month-cell.today .snug-cell-num { color: var(--gold); }

.snug-network-wrap .snug-month-event {
  background: var(--gold-dim);
  border: 1px solid rgba(212,160,74,0.3);
  border-radius: 2px;
  padding: 3px 6px;
  margin-bottom: 3px;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--gold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background 0.15s;
}

.snug-network-wrap .snug-month-event:hover { background: rgba(212,160,74,0.25); }

/* ── SHOW DETAIL ── */
.snug-network-wrap .snug-show-hero {
  background: var(--ink-mid);
  border-bottom: 1px solid var(--border);
  padding: 48px 56px 40px;
  position: relative;
  overflow: hidden;
}

.snug-network-wrap .snug-show-hero::before {
  content: '';
  position: absolute;
  top: -100px; right: -100px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(212,160,74,0.06) 0%, transparent 70%);
  pointer-events: none;
}

.snug-network-wrap .snug-show-hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}

.snug-network-wrap .snug-show-type {
  display: inline-block;
  background: var(--gold-dim);
  border: 1px solid rgba(212,160,74,0.3);
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 2px;
  margin-bottom: 16px;
}

.snug-network-wrap .snug-show-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(28px, 3.5vw, 46px);
  line-height: 1.0;
  color: var(--cream);
  margin-bottom: 16px;
}

/* ── PROFILE PAGES: HERO ── */
.snug-network-wrap .snug-profile-hero {
  position: relative;
  height: 320px;
  overflow: hidden;
  background: var(--ink-mid);
}

.snug-network-wrap .snug-profile-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.45);
}

.snug-network-wrap .snug-profile-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(12,13,15,0.95) 0%, transparent 60%);
}

.snug-network-wrap .snug-profile-hero-content {
  position: absolute;
  bottom: 32px;
  left: 40px;
  right: 40px;
}

.snug-network-wrap .snug-profile-hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.snug-network-wrap .snug-profile-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.0;
  color: var(--cream);
  margin-bottom: 12px;
}

/* ── SHARED: BACK LINK ── */
.snug-network-wrap .snug-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  transition: color 0.15s;
}

.snug-network-wrap .snug-back-link:hover { color: var(--gold); }
.snug-network-wrap .snug-back-link::before { content: '←'; margin-right: 2px; }

/* ── SHARED: EDIT BUTTON ── */
.snug-network-wrap .snug-edit-btn {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  border: 1px solid var(--gold);
  padding: 5px 14px;
  border-radius: 2px;
  background: rgba(12,13,15,0.6);
  backdrop-filter: blur(4px);
  transition: all 0.15s;
  display: inline-block;
}

.snug-network-wrap .snug-edit-btn:hover {
  background: var(--gold);
  color: var(--ink);
}

/* ── SHARED: PRIMARY BUTTON ── */
.snug-network-wrap .snug-btn-primary {
  display: block;
  width: 100%;
  background: var(--gold);
  border: none;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 16px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.15s;
}

.snug-network-wrap .snug-btn-primary:hover { opacity: 0.88; }

/* ── SHARED: OUTLINE BUTTON ── */
.snug-network-wrap .snug-btn-outline {
  display: inline-block;
  background: none;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 8px 16px;
  cursor: pointer;
  border-radius: 2px;
  text-decoration: none;
  transition: all 0.15s;
}

.snug-network-wrap .snug-btn-outline:hover {
  background: var(--gold);
  color: var(--ink);
}

/* ── SHARED: SECTION LABEL ── */
.snug-network-wrap .snug-section-label {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}

/* ── SHARED: COLLAPSIBLE SECTIONS ── */
.snug-network-wrap .snug-collapsible-header {
  width: 100%;
  background: none;
  border: none;
  padding: 0 0 16px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  text-align: left;
}

.snug-network-wrap .snug-collapsible-count {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--muted);
}

.snug-network-wrap .snug-collapsible-chevron {
  font-size: 10px;
  color: var(--muted);
  margin-left: 10px;
  transition: transform 0.2s;
}

/* ── SHARED: SHOW ROW (profile pages) ── */
.snug-network-wrap .snug-show-row {
  display: grid;
  grid-template-columns: 52px 1fr auto;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
  align-items: center;
  text-decoration: none;
  transition: background 0.1s;
}

.snug-network-wrap .snug-show-row:last-child { border-bottom: none; }
.snug-network-wrap .snug-show-row:hover .snug-show-row-title { color: var(--gold); }

.snug-network-wrap .snug-show-row-date {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--gold);
}

.snug-network-wrap .snug-show-row-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  color: var(--cream);
  transition: color 0.15s;
}

.snug-network-wrap .snug-show-row-venue {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  color: var(--muted);
  margin-top: 2px;
}

/* ── SHARED: STAT BLOCKS ── */
.snug-network-wrap .snug-stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}

.snug-network-wrap .snug-stat-cell {
  background: var(--ink-mid);
  padding: 18px 16px;
}

.snug-network-wrap .snug-stat-num {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 26px;
  color: var(--cream);
  line-height: 1;
}

.snug-network-wrap .snug-stat-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 4px;
}

/* ── IMPACT PAGE ── */
.snug-network-wrap .snug-impact-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  margin-top: 48px;
}

.snug-network-wrap .snug-impact-stat {
  background: var(--ink);
  padding: 32px 28px;
  position: relative;
}

.snug-network-wrap .snug-impact-stat-accent {
  position: absolute;
  top: 0; left: 0;
  width: 2px;
  height: 100%;
  background: var(--gold);
  opacity: 0;
  transition: opacity 0.2s;
}

.snug-network-wrap .snug-impact-stat:hover .snug-impact-stat-accent { opacity: 1; }

.snug-network-wrap .snug-impact-num {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1;
  color: var(--cream);
  margin-bottom: 6px;
}

.snug-network-wrap .snug-impact-num .unit {
  font-size: 0.55em;
  color: var(--gold);
  vertical-align: super;
}

.snug-network-wrap .snug-impact-lbl {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ── YEAR FILTER ── */
.snug-network-wrap .snug-year-filter {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 2px;
  overflow: hidden;
  width: fit-content;
  margin-top: 32px;
}

.snug-network-wrap .snug-year-btn {
  background: var(--ink-light);
  border: none;
  border-right: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 8px 18px;
  cursor: pointer;
  transition: all 0.15s;
}

.snug-network-wrap .snug-year-btn:last-child { border-right: none; }
.snug-network-wrap .snug-year-btn:hover { color: var(--cream); background: var(--ink-mid); }
.snug-network-wrap .snug-year-btn.active { background: var(--gold-dim); color: var(--gold); }

/* ── CTA SECTION ── */
.snug-network-wrap .snug-cta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
}

.snug-network-wrap .snug-cta-card {
  background: var(--ink-mid);
  padding: 40px 36px;
}

.snug-network-wrap .snug-cta-eyebrow {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
}

.snug-network-wrap .snug-cta-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 24px;
  color: var(--cream);
  line-height: 1.1;
  margin-bottom: 12px;
}

.snug-network-wrap .snug-cta-body {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 24px;
}

/* ── LOAD MORE ── */
.snug-network-wrap .snug-load-more-bar {
  padding: 40px;
  text-align: center;
  border-top: 1px solid var(--border);
}

.snug-network-wrap .snug-load-more-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 12px 28px;
  cursor: pointer;
  border-radius: 2px;
  transition: all 0.15s;
}

.snug-network-wrap .snug-load-more-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* ── MOBILE ── */
@media (max-width: 768px) {

  /* Tighter content gutter */
  .entry-content > .snug-network-wrap {
    width: calc(100vw - 24px) !important;
    margin-left: calc(50% - 50vw + 12px) !important;
    margin-right: calc(50% - 50vw + 12px) !important;
  }

  /* Hero: compact */
  .snug-network-wrap .snug-section-hero {
    padding: 16px 16px 14px !important;
  }

  .snug-network-wrap .snug-hero-eyebrow {
    font-size: 8px !important;
    margin-bottom: 4px !important;
  }

  .snug-network-wrap .snug-hero-title {
    font-size: 24px !important;
    margin-bottom: 4px !important;
  }

  .snug-network-wrap .snug-hero-subtitle {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }

  /* Nav: single scrollable row, tighter spacing, no clip */
  .snug-network-wrap .snug-public-nav {
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    flex-wrap: nowrap !important;
    padding: 0 !important;
    margin-top: 12px !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  .snug-network-wrap .snug-public-nav::-webkit-scrollbar {
    display: none !important;
  }

  .snug-network-wrap .snug-public-nav__link {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    padding: 10px 10px !important;
    font-size: 10px !important;
    letter-spacing: 0.06em !important;
  }

  /* Kill orange pill on active link mobile */
  .snug-network-wrap .snug-public-nav__link--active {
    background: none !important;
    background-color: transparent !important;
    color: var(--gold) !important;
    border-bottom: 2px solid var(--gold) !important;
    border-radius: 0 !important;
  }

  /* Filter bar: 2-column grid */
  .snug-network-wrap .snug-filter-bar {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    padding: 10px 16px !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
    align-items: unset !important;
  }

  /* All selects fill their grid cell */
  .snug-network-wrap .snug-filter-bar select,
  .snug-network-wrap .snug-filter-bar select.snug-filter-select {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Search spans full width */
  .snug-network-wrap .snug-filter-bar input,
  .snug-network-wrap .snug-filter-bar input.snug-filter-search,
  .snug-network-wrap .snug-filter-bar input[type="text"] {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  /* Cards: 2-column on mobile */
  .snug-network-wrap .snug-card-grid,
  .snug-network-wrap .snug-roster-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ── STATE FILTER: multi-select rendered as compact dropdown ── */
.snug-network-wrap select[multiple].snug-filter-select {
  height: 36px;
  min-width: 100px;
  max-width: 160px;
  overflow: hidden;
  size: 1;
}

.snug-network-wrap select[multiple].snug-filter-select option {
  background: #16181D;
  color: #E8E5E0;
  padding: 4px 8px;
}

/* ── LAYOUT: eliminate theme gap above shortcode content ── */
.snug-network-wrap {
  margin-top: -32px;
}

/* ── SECTION HERO: tighter on desktop ── */
.snug-network-wrap .snug-section-hero {
  padding: 32px 48px 28px;
}

.snug-network-wrap .snug-hero-eyebrow {
  margin-bottom: 6px;
}

.snug-network-wrap .snug-hero-title {
  font-size: clamp(24px, 3vw, 36px);
  margin-bottom: 6px;
}

.snug-network-wrap .snug-hero-subtitle {
  font-size: 16px;
}

/* ── FILTER BAR: force inline row, override theme form stacking ── */
.snug-network-wrap .snug-filter-bar {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 12px 48px !important;
}

.snug-network-wrap .snug-filter-bar select,
.snug-network-wrap .snug-filter-bar input,
.snug-network-wrap .snug-filter-select,
.snug-network-wrap .snug-filter-search {
  width: auto !important;
  max-width: none !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  margin: 0 !important;
  float: none !important;
}

.snug-network-wrap .snug-filter-search {
  flex: 1 !important;
  min-width: 160px !important;
}

/* ── CARD GRID: tighter cards on desktop ── */
.snug-network-wrap .snug-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.snug-network-wrap .snug-artist-card-body {
  padding: 14px 16px 16px;
  gap: 6px;
}

.snug-network-wrap .snug-artist-name {
  font-size: 15px;
}

.snug-network-wrap .snug-artist-card-footer {
  padding-top: 10px;
}

/* ── LAYOUT: break out of bizboost's is-layout-constrained parent (WP block theme
   caps children at var(--wp--style--global--content-size), ~920px on this theme).
   This lets the hero + filter bar + card grid go full-viewport-width. ── */
.entry-content > .snug-network-wrap {
  max-width: none;
  width: calc(100vw - 80px);
  margin-left: calc(50% - 50vw + 40px) !important;
  margin-right: calc(50% - 50vw + 40px) !important;
}

/* ── KILL GAP: scoped to network pages only via body class ── */
body.page-id-3870 .wp-site-blocks .entry-content.wp-block-post-content,
body.page-id-3870 .wp-site-blocks .is-layout-constrained,
body.page-id-3884 .wp-site-blocks .entry-content.wp-block-post-content,
body.page-id-3884 .wp-site-blocks .is-layout-constrained,
body.page-id-3860 .wp-site-blocks .entry-content.wp-block-post-content,
body.page-id-3860 .wp-site-blocks .is-layout-constrained,
body.page-id-3871 .wp-site-blocks .entry-content.wp-block-post-content,
body.page-id-3871 .wp-site-blocks .is-layout-constrained,
body.page-id-3885 .wp-site-blocks .entry-content.wp-block-post-content,
body.page-id-3885 .wp-site-blocks .is-layout-constrained,
body.page-id-3862 .wp-site-blocks .entry-content.wp-block-post-content,
body.page-id-3862 .wp-site-blocks .is-layout-constrained {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* ── PUBLIC NAV: restyle to match design system ── */
.snug-network-wrap .snug-public-nav {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  background: transparent !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  border-bottom: none !important;
  padding: 0 !important;
  margin-top: 20px !important;
  width: 100% !important;
}

.snug-network-wrap .snug-public-nav__link {
  font-family: 'League Spartan', sans-serif !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.45) !important;
  text-decoration: none !important;
  padding: 12px 16px !important;
  border-bottom: 2px solid transparent !important;
  transition: color 0.15s, border-color 0.15s !important;
  display: inline-block !important;
  background: none !important;
  border-radius: 0 !important;
}

.snug-network-wrap .snug-public-nav__link:hover {
  color: var(--cream) !important;
  border-bottom-color: rgba(255,255,255,0.2) !important;
  background: none !important;
}

.snug-network-wrap .snug-public-nav__link--active {
  color: var(--gold) !important;
  border-bottom-color: var(--gold) !important;
  background: none !important;
}

/* ── SEARCH INPUT: text visibility fix ── */
#wpwrap .snug-network-wrap .snug-filter-bar input.snug-filter-search,
.snug-network-wrap .snug-filter-bar input.snug-filter-search,
.snug-network-wrap .snug-filter-bar input[type="text"] {
  color: #F0EDE8 !important;
  background-color: #22252D !important;
  -webkit-text-fill-color: #F0EDE8 !important;
}

.snug-network-wrap .snug-filter-bar input.snug-filter-search::placeholder,
.snug-network-wrap .snug-filter-bar input[type="text"]::placeholder {
  color: #888A92 !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #888A92 !important;
}

/* ── PREVENT RIGHT EDGE BLEED — scoped to network pages ── */
body.page-id-3870,
body.page-id-3884,
body.page-id-3860,
body.page-id-3871,
body.page-id-3885,
body.page-id-3862 {
  overflow-x: hidden;
}

body.page-id-3870 .entry-content > .snug-network-wrap,
body.page-id-3884 .entry-content > .snug-network-wrap,
body.page-id-3860 .entry-content > .snug-network-wrap,
body.page-id-3871 .entry-content > .snug-network-wrap,
body.page-id-3885 .entry-content > .snug-network-wrap,
body.page-id-3862 .entry-content > .snug-network-wrap {
  overflow-x: hidden;
}

/* ── GRID FIT: prevent image intrinsic width from blowing out grid columns ── */
.snug-network-wrap .snug-card-grid > *,
.snug-network-wrap .snug-roster-grid > *,
.snug-network-wrap .snug-artist-card-wrap,
.snug-network-wrap .snug-artist-card {
  min-width: 0 !important;
}

.snug-network-wrap .snug-artist-photo,
.snug-network-wrap .snug-artist-card img {
  max-width: 100% !important;
}
/* v1.9.290: reassert aspect-ratio driven height on the primary photo.
   Earlier rule set `height: auto` which won over the `aspect-ratio: 4/3`
   from line 438, so real portrait/square photos (Chris Burroughs) rendered
   at native aspect while placeholder divs stayed 4/3. That made cards
   different heights across rows. Force 4/3 here so every card's image
   area is identical, keeping the grid rows uniform. */
.snug-network-wrap .snug-artist-photo {
  aspect-ratio: 4/3 !important;
  height: auto !important;
  object-fit: cover !important;
}

/* ── REQUEST BOOKING BUTTON: anchor to bottom-right of photo (aspect 4:3) ── */
.snug-network-wrap .snug-artist-card-wrap > .snug-edit-btn {
  top: 0 !important;
  margin-top: calc(75% - 36px) !important;
}

/* ── ARTIST PROFILE: two-column hero band (text left, portrait photo right) ── */
.snug-network-wrap .snug-profile-hero {
  display: grid;
  grid-template-columns: 1fr 230px;
  gap: 32px;
  align-items: center;
  padding: 24px 36px;
  background: var(--ink-mid);
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}
.snug-network-wrap .snug-profile-hero-txt {
  min-width: 0;
}
.snug-network-wrap .snug-profile-hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.snug-network-wrap .snug-profile-photo-box {
  width: 100%;
  aspect-ratio: 4 / 5;
  border: 1px solid var(--border);
  border-radius: 3px;
  overflow: hidden;
  background: var(--ink-light);
}
.snug-network-wrap .snug-profile-photo-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  filter: none;
}
.snug-network-wrap .snug-profile-photo-initials {
  width: 100%;
  height: 100%;
  background: linear-gradient(160deg, var(--ink-light), var(--ink-mid));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 88px;
  color: var(--border);
}
.snug-network-wrap .snug-profile-hero .snug-public-nav {
  margin-top: 16px !important;
  justify-content: flex-start !important;
}
.snug-network-wrap .snug-profile-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(26px, 3.5vw, 44px);
  line-height: 1;
  color: var(--cream);
  margin-bottom: 10px;
}
.snug-network-wrap .snug-profile-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.snug-network-wrap .snug-profile-loc {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 16px;
  color: var(--muted);
}
.snug-network-wrap .snug-status-badge {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 20px;
}
.snug-network-wrap .snug-status-active {
  background: rgba(61,170,110,0.15);
  border: 1px solid rgba(61,170,110,0.3);
  color: var(--green);
}
.snug-network-wrap .snug-status-founding {
  background: var(--gold-dim);
  border: 1px solid rgba(212,160,74,0.3);
  color: var(--gold);
}

/* ── PROFILE: prev/next pager ── */
.snug-network-wrap .snug-profile-pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 48px;
  border-bottom: 1px solid var(--border);
  background: var(--ink);
}

/* ── PROFILE: stats strip ── */
.snug-network-wrap .snug-profile-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-pstat {
  background: var(--ink-mid);
  padding: 14px 16px;
  text-align: center;
}
.snug-network-wrap .snug-pstat-n {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  color: var(--cream);
  line-height: 1;
}
.snug-network-wrap .snug-pstat-l {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 5px;
}

/* ── PROFILE: body two-column ── */
.snug-network-wrap .snug-profile-body {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 0;
}
.snug-network-wrap .snug-profile-main {
  border-right: 1px solid var(--border);
  min-width: 0;
}
.snug-network-wrap .snug-prof-sec {
  padding: 20px 36px;
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-prof-sec:last-child { border-bottom: none; }

/* Native <details> collapsibles */
.snug-network-wrap .snug-prof-details { padding: 0; }
.snug-network-wrap .snug-prof-summary {
  padding: 24px 48px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-prof-summary::-webkit-details-marker { display: none; }
.snug-network-wrap .snug-prof-summary::after {
  content: '+';
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--muted);
  transition: transform 0.15s;
}
.snug-network-wrap .snug-prof-details[open] .snug-prof-summary::after { content: '\2212'; }
.snug-network-wrap .snug-prof-count {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-left: auto;
  margin-right: 12px;
}
.snug-network-wrap .snug-prof-details-body {
  padding: 8px 48px 32px;
}

/* Bio */
.snug-network-wrap .snug-prof-bio {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text);
  max-width: 620px;
}
.snug-network-wrap .snug-prof-bio p { margin: 0 0 12px; }
.snug-network-wrap .snug-prof-bio p:last-child { margin-bottom: 0; }

/* Key/value rows for performance details */
.snug-network-wrap .snug-lg-row {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-lg-row:last-child { border-bottom: none; }
.snug-network-wrap .snug-lg-k {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  min-width: 120px;
  flex-shrink: 0;
}
.snug-network-wrap .snug-lg-v {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--cream);
}

/* Links section */
.snug-network-wrap .snug-lnk-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.snug-network-wrap .snug-lnk-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 9px 16px;
  text-decoration: none;
  border-radius: 2px;
  transition: all 0.15s;
}
.snug-network-wrap .snug-lnk-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* Embeds container */
.snug-network-wrap .snug-prof-embeds {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Sidebar */
.snug-network-wrap .snug-profile-sidebar {
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: var(--ink);
}
.snug-network-wrap .snug-stat-block {
  background: var(--ink-mid);
  border: 1px solid var(--border);
}
.snug-network-wrap .snug-stat-hd {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-stat-hd-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Artist Pay note */
.snug-network-wrap .snug-pay-note {
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.snug-network-wrap .snug-pay-note-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}
.snug-network-wrap .snug-pay-note-txt {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
}

/* Rating block */
.snug-network-wrap .snug-rate-block {
  border: 1px solid var(--border);
  background: var(--ink-mid);
  padding: 20px 18px;
}
.snug-network-wrap .snug-rate-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
}
.snug-network-wrap .snug-rate-note {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  color: var(--muted);
  text-align: center;
  margin-top: 8px;
}
.snug-network-wrap .snug-rate-note a { color: var(--gold); }

/* Mobile profile adjustments: stack hero + body at 900px */
@media (max-width: 900px) {
  .snug-network-wrap .snug-profile-hero {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 20px 20px;
  }
  .snug-network-wrap .snug-profile-photo-box {
    max-width: 240px;
    aspect-ratio: 1 / 1;
  }
  .snug-network-wrap .snug-profile-body { grid-template-columns: 1fr; }
  .snug-network-wrap .snug-profile-main { border-right: none; }
}

@media (max-width: 768px) {
  .snug-network-wrap .snug-profile-name { font-size: 28px; }
  .snug-network-wrap .snug-profile-pager { padding: 12px 20px; }
  .snug-network-wrap .snug-profile-stats-strip { grid-template-columns: repeat(2, 1fr); }
  .snug-network-wrap .snug-prof-sec { padding: 16px 20px; }
  .snug-network-wrap .snug-prof-summary { padding: 20px 20px; }
  .snug-network-wrap .snug-prof-details-body { padding: 8px 20px 24px; }
}

/* ── SHARED SECTION HERO: center eyebrow, title, subtitle, and in-hero nav.
   Scoped inside .snug-section-hero only, so profile heroes (.snug-profile-hero),
   legacy hero containers, filter bars, card grids, and impact stat cells
   are unaffected. ── */
.snug-network-wrap .snug-section-hero .snug-hero-eyebrow,
.snug-network-wrap .snug-section-hero .snug-hero-title,
.snug-network-wrap .snug-section-hero .snug-hero-subtitle {
  text-align: center;
}

.snug-network-wrap .snug-section-hero .snug-hero-subtitle {
  margin-left: auto;
  margin-right: auto;
}

.snug-network-wrap .snug-section-hero .snug-public-nav {
  justify-content: center !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   POLISH FIXES: profile hero centering, select readability, card footer wrap
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── FIX 1: Profile hero — centered flex cluster (overrides grid layout) ── */
.snug-network-wrap .snug-profile-hero {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 48px;
}
.snug-network-wrap .snug-profile-hero-txt {
  flex: 0 1 600px;
  min-width: 0;
}
.snug-network-wrap .snug-profile-photo-box {
  flex: 0 0 230px;
  width: 230px;
}

/* ── FIX 2a: Filter select readability — selected text + option list ── */
.snug-network-wrap .snug-filter-select {
  color: var(--cream);
}
.snug-network-wrap .snug-filter-bar select option {
  background: var(--ink-mid);
  color: var(--text);
}

/* ── FIX 3: Artist card footer — wrap when narrow so tag + link don't overlap ── */
.snug-network-wrap .snug-artist-card-footer {
  flex-wrap: wrap;
  gap: 6px 10px;
}

/* Mobile profile hero <=900px: stack cluster vertically */
@media (max-width: 900px) {
  .snug-network-wrap .snug-profile-hero {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .snug-network-wrap .snug-profile-hero-txt {
    flex: 1 1 auto;
    width: 100%;
  }
  .snug-network-wrap .snug-profile-photo-box {
    flex: 0 0 auto;
    width: 100%;
    max-width: 240px;
    aspect-ratio: 1 / 1;
  }
}

/* ── FIX 2b: Filter bar <=680px — flex 2-up selects, search on own full row ── */
@media (max-width: 680px) {
  .snug-network-wrap .snug-filter-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 10px 16px !important;
    grid-template-columns: none !important;
  }
  .snug-network-wrap .snug-filter-bar select,
  .snug-network-wrap .snug-filter-bar select.snug-filter-select {
    flex: 1 1 calc(50% - 3px) !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
  }
  .snug-network-wrap .snug-filter-bar input,
  .snug-network-wrap .snug-filter-bar input.snug-filter-search,
  .snug-network-wrap .snug-filter-bar input[type="text"] {
    flex: 1 1 100% !important;
    order: 9 !important;
    width: 100% !important;
    max-width: none !important;
  }
}

/* ── FIX 2a (follow-up): force cream color on select — native select bypasses
   plain CSS color in some browsers; !important + color-scheme required. ── */
.snug-network-wrap .snug-filter-select,
.snug-network-wrap .snug-filter-bar select {
  color: var(--cream) !important;
  -webkit-text-fill-color: var(--cream) !important;
  color-scheme: dark;
}

/* ── VENUE PROFILE HERO: eyebrow + address lines (reuses .snug-profile-hero flex cluster) ── */
.snug-network-wrap .snug-profile-hero .snug-profile-eyebrow {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}

.snug-network-wrap .snug-profile-hero .snug-profile-address {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--muted);
  margin-top: 4px;
  margin-bottom: 8px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOOKING REQUEST FORM — dark reskin (scoped .snug-network-wrap)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Container: dark card centered */
.snug-network-wrap.snug-form-container {
  padding: 40px 20px;
  min-height: 100vh;
  box-sizing: border-box;
}
.snug-network-wrap .snug-form {
  max-width: 720px;
  margin: 0 auto;
  background: var(--ink-mid);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 36px;
  box-sizing: border-box;
}

/* Title + intro */
.snug-network-wrap .snug-form h2 {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 34px;
  line-height: 1;
  color: var(--cream);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.snug-network-wrap .snug-form .snug-form-intro {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--muted);
  margin: 0 0 24px;
}

/* Notices (login required / no permission / no artist profile) */
.snug-network-wrap .snug-form-notice {
  max-width: 720px;
  margin: 60px auto;
  padding: 24px 28px;
  background: var(--ink-mid);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
}
.snug-network-wrap .snug-form-notice a {
  color: var(--gold);
  text-decoration: underline;
}

/* Fields */
.snug-network-wrap .snug-form-field {
  margin-bottom: 20px;
}
.snug-network-wrap .snug-form label {
  display: block;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.snug-network-wrap .snug-form .snug-form-required {
  color: var(--gold);
  margin-left: 2px;
}

/* Inputs, selects, textarea */
.snug-network-wrap .snug-form input[type="text"],
.snug-network-wrap .snug-form input[type="email"],
.snug-network-wrap .snug-form input[type="tel"],
.snug-network-wrap .snug-form input[type="url"],
.snug-network-wrap .snug-form input[type="number"],
.snug-network-wrap .snug-form input[type="date"],
.snug-network-wrap .snug-form input[type="time"],
.snug-network-wrap .snug-form input[type="password"],
.snug-network-wrap .snug-form select,
.snug-network-wrap .snug-form textarea {
  width: 100%;
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--cream);
  border-radius: 2px;
  padding: 11px 13px;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.4;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.15s;
  -webkit-text-fill-color: var(--cream);
}

.snug-network-wrap .snug-form input:focus,
.snug-network-wrap .snug-form select:focus,
.snug-network-wrap .snug-form textarea:focus {
  border-color: var(--gold);
}

.snug-network-wrap .snug-form input::placeholder,
.snug-network-wrap .snug-form textarea::placeholder {
  color: var(--muted);
  opacity: 1;
  -webkit-text-fill-color: var(--muted);
}

/* Native date/time pickers render dark */
.snug-network-wrap .snug-form input[type="date"],
.snug-network-wrap .snug-form input[type="time"] {
  color-scheme: dark;
}

/* Selects: custom chevron matching the filter bar */
.snug-network-wrap .snug-form select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888A92'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  color-scheme: dark;
  cursor: pointer;
}
.snug-network-wrap .snug-form select option {
  background: var(--ink-mid);
  color: var(--text);
}

/* Textarea */
.snug-network-wrap .snug-form textarea {
  min-height: 110px;
  resize: vertical;
  font-family: var(--font-body);
}

/* Artist-picker filter row (genre / state / minimum): 3-column grid */
.snug-network-wrap .snug-form .snug-artist-filters {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
  flex-wrap: nowrap !important;
}
.snug-network-wrap .snug-form .snug-artist-filters select {
  width: 100% !important;
  min-width: 0 !important;
  flex: none !important;
}

/* Locked-artist card (shown when arriving from an artist profile) */
.snug-network-wrap .snug-artist-locked-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  background: var(--ink-light);
  border: 1px solid var(--border);
  border-radius: 3px;
}
.snug-network-wrap .snug-artist-locked-avatar {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 3px;
  overflow: hidden;
  background: var(--ink-mid);
  border: 1px solid var(--border);
}
.snug-network-wrap .snug-artist-locked-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}
.snug-network-wrap .snug-artist-locked-initials {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  color: var(--border);
  background: linear-gradient(160deg, var(--ink-light), var(--ink-mid));
}
.snug-network-wrap .snug-artist-locked-info {
  flex: 1 1 auto;
  min-width: 0;
}
.snug-network-wrap .snug-artist-locked-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 17px;
  color: var(--cream);
  line-height: 1.1;
}
.snug-network-wrap .snug-artist-locked-meta {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--muted);
  margin-top: 2px;
}
.snug-network-wrap .snug-artist-locked-change {
  flex: 0 0 auto;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 2px;
  transition: all 0.15s;
}
.snug-network-wrap .snug-artist-locked-change:hover {
  border-color: var(--gold);
  background: var(--gold-dim);
}

/* Checkboxes / radios / inline groups */
.snug-network-wrap .snug-form input[type="checkbox"],
.snug-network-wrap .snug-form input[type="radio"] {
  accent-color: var(--gold);
  width: auto;
}
.snug-network-wrap .snug-form-checkbox-item,
.snug-network-wrap .snug-form-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--text);
  margin-bottom: 6px;
}

/* Help text */
.snug-network-wrap .snug-form-help {
  display: block;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  color: var(--muted);
  margin-top: 6px;
}

/* Error state */
.snug-network-wrap .snug-form-field.snug-field-error input,
.snug-network-wrap .snug-form-field.snug-field-error select,
.snug-network-wrap .snug-form-field.snug-field-error textarea {
  border-color: #d13c3c;
}
.snug-network-wrap .snug-form-error {
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  color: #ff9a9a;
  margin-top: 6px;
}
.snug-network-wrap .snug-form-error-banner {
  padding: 14px 16px;
  background: rgba(209, 60, 60, 0.12);
  border: 1px solid rgba(209, 60, 60, 0.35);
  border-radius: 3px;
  color: #ffd0d0;
  font-family: var(--font-body);
  font-size: 15px;
  margin-bottom: 20px;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.snug-network-wrap .snug-form-success {
  padding: 14px 16px;
  background: rgba(61, 170, 110, 0.12);
  border: 1px solid rgba(61, 170, 110, 0.35);
  border-radius: 3px;
  color: var(--green);
  font-family: var(--font-body);
  font-size: 15px;
  margin-bottom: 20px;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* Actions row */
.snug-network-wrap .snug-form-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  padding-top: 20px;
  margin-top: 24px;
  border-top: 1px solid var(--border);
}
.snug-network-wrap .snug-form-submit {
  background: var(--gold);
  border: 1px solid var(--gold);
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 12px 22px;
  border-radius: 2px;
  cursor: pointer;
  transition: opacity 0.15s;
}
.snug-network-wrap .snug-form-submit:hover {
  opacity: 0.88;
}
.snug-network-wrap .snug-form-cancel-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 11px 18px;
  border-radius: 2px;
  text-decoration: none;
  transition: all 0.15s;
}
.snug-network-wrap .snug-form-cancel-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* Mobile */
@media (max-width: 560px) {
  .snug-network-wrap.snug-form-container { padding: 20px 12px; }
  .snug-network-wrap .snug-form { padding: 22px 18px; }
  .snug-network-wrap .snug-form h2 { font-size: 26px; }
  .snug-network-wrap .snug-form .snug-artist-filters {
    grid-template-columns: 1fr !important;
  }
  .snug-network-wrap .snug-form-actions { flex-direction: column; align-items: stretch; }
  .snug-network-wrap .snug-form-submit,
  .snug-network-wrap .snug-form-cancel-btn { width: 100%; text-align: center; }
}

/* ── VENUE PROFILE BODY (dark two-column, matches artist profile) ── */

/* Managed-By / host block in sidebar */
.snug-network-wrap .snug-vp-host {
  padding-top: 0;
}
.snug-network-wrap .snug-vp-host-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 6px;
}
.snug-network-wrap .snug-vp-host-n {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 20px;
  color: var(--cream);
  line-height: 1.1;
  margin-bottom: 4px;
}
.snug-network-wrap .snug-vp-host-n a {
  color: var(--cream);
  text-decoration: none;
  transition: color 0.15s;
}
.snug-network-wrap .snug-vp-host-n a:hover {
  color: var(--gold);
}
.snug-network-wrap .snug-vp-host-s {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  color: var(--muted);
}

/* Founding badge wrapper in sidebar */
.snug-network-wrap .snug-vp-founding {
  padding: 4px 0;
}

/* Year-filter active state on link buttons */
.snug-network-wrap .snug-lnk-btn.is-active {
  border-color: var(--gold);
  color: var(--gold);
  background: var(--gold-dim);
}

/* Venue photo gallery — dark grid, matches design system */
.snug-network-wrap .snug-vp-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}
.snug-network-wrap .snug-vp-gallery-img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 3px;
  border: 1px solid var(--border);
  display: block;
  transition: transform 0.2s;
}
.snug-network-wrap .snug-vp-gallery-img:hover {
  transform: scale(1.02);
}

/* ── NETWORK CONTENT CAP: centered ~1400px frame on wide screens ── */
/* Below 1481px: keep the full-bleed break-out with 40px viewport gutters (unchanged). */
/* At 1481px+ (large desktop / 4K), cap the wrap at 1400 and center it in the viewport. */
@media (min-width: 1481px) {
  .entry-content > .snug-network-wrap {
    width: 1400px !important;
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ── VENUE FACTS STRIP: 3-column variant (Capacity / Shows Hosted / Member Since) ── */
.snug-network-wrap .snug-profile-stats-strip--3 {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* ── BOOKING FORM SELECT OPTIONS: force readable options in the native popup.
   Some browsers ignore CSS color on the closed select and on options unless
   color-scheme is set on the control AND background/color are !important. ── */
.snug-network-wrap .snug-form select,
.snug-network-wrap.snug-form-container select {
  color-scheme: dark !important;
}

.snug-network-wrap .snug-form select option,
.snug-network-wrap .snug-form select optgroup,
.snug-network-wrap.snug-form-container select option,
.snug-network-wrap.snug-form-container select optgroup {
  background-color: #16181D !important;
  color: #F0EDE8 !important;
}

/* ── BOOKING FORM PAGE HEADER: slim network context above the form card ── */
/* Container: remove top padding so header sits flush; keep bottom padding for form spacing. */
.snug-network-wrap.snug-form-container {
  padding: 0 0 40px 0;
}
.snug-network-wrap .snug-form-page-header {
  background: var(--ink-mid);
  border-bottom: 1px solid var(--border);
  padding: 18px 24px 0;
  text-align: center;
}
.snug-network-wrap .snug-form-page-eyebrow {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
}
/* Public nav inside this header: centered, no top border/margin (already inside a bordered band). */
.snug-network-wrap .snug-form-page-header .snug-public-nav {
  justify-content: center !important;
  border-top: none !important;
  margin-top: 0 !important;
}
/* Form card + banners get their own top margin now that container has no top padding. */
.snug-network-wrap.snug-form-container > .snug-form,
.snug-network-wrap.snug-form-container > .snug-form-error-banner,
.snug-network-wrap.snug-form-container > .snug-form-success,
.snug-network-wrap.snug-form-container > .snug-form-notice {
  margin-top: 40px;
}
/* Mobile: tighter header padding */
@media (max-width: 560px) {
  .snug-network-wrap .snug-form-page-header { padding: 14px 16px 0; }
  .snug-network-wrap.snug-form-container > .snug-form,
  .snug-network-wrap.snug-form-container > .snug-form-error-banner,
  .snug-network-wrap.snug-form-container > .snug-form-success,
  .snug-network-wrap.snug-form-container > .snug-form-notice { margin-top: 20px; }
}

/* ── VENUE ROSTER: 16:10 image cards + top type-row + capacity/shows footer ── */
.snug-network-wrap .snug-venue-photo {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(160deg, var(--ink-light) 0%, var(--ink-mid) 100%);
}
.snug-network-wrap .snug-venue-photo-initials {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(160deg, var(--ink-light) 0%, var(--ink-mid) 100%);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 44px;
  color: var(--border);
}
.snug-network-wrap .snug-venue-typerow {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 2px;
}
.snug-network-wrap .snug-venue-cap {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Venue map wrap — dark border, radius */
.snug-network-wrap .snug-venue-map-wrap {
  padding: 12px 48px 24px;
}

/* Pill row spacing on the venue filter bar */
.snug-network-wrap .snug-filter-bar .snug-vr-pill {
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .snug-network-wrap .snug-venue-map-wrap { padding: 8px 16px 16px; }
}

/* ── VENUE ROSTER FILTER BAR: force button colors over theme defaults.
   The bizboost theme sets color on button / .button which was leaking
   into the pill + view-toggle controls, making them unreadable dark-on-dark.
   Use explicit !important against the button element itself to win. ── */

/* Pill buttons — default state */
.snug-network-wrap .snug-filter-bar button.snug-filter-pill,
.snug-network-wrap .snug-filter-bar button.snug-vr-pill {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 6px 14px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  text-decoration: none !important;
  box-shadow: none !important;
  line-height: 1.2 !important;
}

/* Pill buttons — hover / active */
.snug-network-wrap .snug-filter-bar button.snug-filter-pill:hover,
.snug-network-wrap .snug-filter-bar button.snug-filter-pill.active,
.snug-network-wrap .snug-filter-bar button.snug-filter-pill[aria-pressed="true"],
.snug-network-wrap .snug-filter-bar button.snug-vr-pill:hover,
.snug-network-wrap .snug-filter-bar button.snug-vr-pill.active,
.snug-network-wrap .snug-filter-bar button.snug-vr-pill[aria-pressed="true"] {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}

/* List / Map view toggle buttons — default */
.snug-network-wrap .snug-filter-bar .snug-view-toggle button.snug-view-btn {
  background: var(--ink-light) !important;
  border: none !important;
  border-right: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 7px 14px !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  text-decoration: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  line-height: 1.2 !important;
}
.snug-network-wrap .snug-filter-bar .snug-view-toggle button.snug-view-btn:last-child {
  border-right: none !important;
}

/* View toggle — hover / active */
.snug-network-wrap .snug-filter-bar .snug-view-toggle button.snug-view-btn:hover {
  color: var(--cream) !important;
  -webkit-text-fill-color: var(--cream) !important;
}
.snug-network-wrap .snug-filter-bar .snug-view-toggle button.snug-view-btn.active,
.snug-network-wrap .snug-filter-bar .snug-view-toggle button.snug-view-btn[aria-selected="true"] {
  background: var(--gold-dim) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}

/* Sweep — belt-and-suspenders on state/sort selects + search input
   inside the venue filter bar, so no theme regression sneaks in. */
.snug-network-wrap .snug-filter-bar select.snug-filter-select,
.snug-network-wrap .snug-filter-bar input.snug-filter-search {
  color: var(--cream) !important;
  -webkit-text-fill-color: var(--cream) !important;
  background-color: var(--ink-light) !important;
  border-color: var(--border) !important;
}
.snug-network-wrap .snug-filter-bar input.snug-filter-search::placeholder {
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  opacity: 1 !important;
}

/* ── VENUE ROSTER CARDS: equal-height + Request Booking button ── */

/* Equal-height cards: reserve name space for 2 lines, pin footer to bottom */
.snug-network-wrap .snug-venue-card .snug-artist-name {
  min-height: calc(2 * 1.1em);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.snug-network-wrap .snug-venue-card .snug-artist-card-footer {
  margin-top: auto;
}

/* Request Booking button — position at bottom-right of the 16:10 venue photo.
   Overrides the artist-card 4:3 positioning (which used 75%). Venue photo
   is 16:10 so photo_height = 62.5% of wrap width. */
.snug-network-wrap .snug-artist-card-wrap > .snug-vr-book-btn {
  top: 0 !important;
  right: 12px !important;
  margin-top: calc(62.5% - 36px) !important;
  z-index: 2;
}

/* ── FIX: venue book button was missing position:absolute (JS did not set it
   inline like the artist button JS did). Without absolute positioning, the
   button flowed below the card in normal flow instead of overlaying the
   photo. ── */
.snug-network-wrap .snug-artist-card-wrap > .snug-vr-book-btn {
  position: absolute !important;
}

/* v1.9.192: the v1.9.189 .snug-vr-accepting-badge rule was removed
   with the badge itself. The Request Booking button (also role-gated
   AND now accepting_bookings-gated) is the sole "open to bookings"
   signal on the roster. */

/* ── CARD GRID: outer frame (top + left + right; no bottom so Load More
   bar / footer flows continuously). Matches the 1px hairlines from the
   internal grid gaps. ── */
.snug-network-wrap .snug-card-grid,
.snug-network-wrap .snug-roster-grid {
  border: 1px solid var(--border);
  border-bottom: none;
}

/* ── CARD GRID: spaced bordered tiles (drop gray fill + outer border) ── */
.snug-network-wrap .snug-card-grid,
.snug-network-wrap .snug-roster-grid {
  background: transparent !important;
  border: none !important;
  gap: 14px !important;
  padding: 0 48px 32px !important;
  box-sizing: border-box;
  /* v1.9.288: uniform card height across ALL rows. Without this, each grid
     row sizes to its tallest card independently (row 1 short, row 2 tall
     when a real photo lands there), which reads as chaotic. `1fr` on
     grid-auto-rows makes every row the same height as the tallest, and
     grid's default align-items:stretch lets each card fill its cell. Combined
     with the existing flex-column card + flex:1 body + margin-top:auto
     footer, content top-aligns and CTAs bottom-align uniformly. */
  grid-auto-rows: 1fr;
}
@media (max-width: 768px) {
  .snug-network-wrap .snug-card-grid,
  .snug-network-wrap .snug-roster-grid {
    padding: 0 16px 24px !important;
  }
}

/* ── EACH CARD IS ITS OWN BOX (artist + venue) ── */
.snug-network-wrap .snug-artist-card {
  border: 1px solid var(--border) !important;
  border-radius: 3px !important;
  background: var(--ink) !important;
  overflow: hidden;
}

/* ── EQUAL-HEIGHT: reserve 2-line name space + pin footer to bottom ── */
.snug-network-wrap .snug-artist-name {
  min-height: calc(2 * 1.1em);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.snug-network-wrap .snug-artist-card-body {
  display: flex;
  flex-direction: column;
}
.snug-network-wrap .snug-artist-card-footer {
  margin-top: auto;
}

/* ── ARTIST + VENUE FILTER BAR SELECTS: force readable option list.
   Applied the same pattern that fixed the venue filter bar and booking form,
   but broadened to any select inside a .snug-filter-bar (not just .snug-form).
   Explicit hex (some browsers ignore var() on native <option>). ── */
.snug-network-wrap .snug-filter-bar select,
.snug-network-wrap .snug-filter-bar select.snug-filter-select {
  color-scheme: dark !important;
}
.snug-network-wrap .snug-filter-bar select option,
.snug-network-wrap .snug-filter-bar select optgroup,
.snug-network-wrap .snug-filter-bar select.snug-filter-select option,
.snug-network-wrap .snug-filter-bar select.snug-filter-select optgroup {
  background-color: #16181D !important;
  color: #F0EDE8 !important;
}

/* ── IMPACT PAGE (dark, full-width) ── */

/* Year filter pill row (link-based pills, need same override treatment as button pills) */
.snug-network-wrap .snug-filter-bar a.snug-filter-pill,
.snug-network-wrap .snug-filter-bar a.snug-impact-pill {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 6px 14px !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  transition: all 0.15s !important;
  line-height: 1.2 !important;
  display: inline-block !important;
}
.snug-network-wrap .snug-filter-bar a.snug-filter-pill:hover,
.snug-network-wrap .snug-filter-bar a.snug-filter-pill.active,
.snug-network-wrap .snug-filter-bar a.snug-impact-pill:hover,
.snug-network-wrap .snug-filter-bar a.snug-impact-pill.active {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}

/* Page sections */
.snug-network-wrap .snug-impact-section {
  padding: 32px 48px;
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-impact-section:last-child { border-bottom: none; }
.snug-network-wrap .snug-impact-section-label {
  margin-bottom: 18px;
}

/* Impact stats grid (8 tiles) */
.snug-network-wrap .snug-imp-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}

/* Our Network grid (4 tiles) */
.snug-network-wrap .snug-imp-net-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}

/* Individual stat cell */
.snug-network-wrap .snug-istat {
  background: var(--ink-mid);
  padding: 22px 20px;
  text-align: left;
}
.snug-network-wrap .snug-istat-n {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(24px, 2.4vw, 32px);
  color: var(--cream);
  line-height: 1;
  margin-bottom: 6px;
}
.snug-network-wrap .snug-istat-l {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Map wrap on impact — dark surround, dark Leaflet chrome as much as CSS allows */
.snug-network-wrap .snug-impact-map-wrap {
  border: 1px solid var(--border);
  background: var(--ink);
}
.snug-network-wrap .snug-impact-map-wrap .leaflet-container {
  background: var(--ink-mid);
}
.snug-network-wrap .snug-impact-map-wrap .leaflet-popup-content-wrapper,
.snug-network-wrap .snug-impact-map-wrap .leaflet-popup-tip {
  background: var(--ink-mid);
  color: var(--cream);
  border: 1px solid var(--border);
}
.snug-network-wrap .snug-impact-map-wrap .leaflet-control-attribution,
.snug-network-wrap .snug-impact-map-wrap .leaflet-control-zoom a {
  background: var(--ink-mid);
  color: var(--muted);
  border-color: var(--border);
}

/* CTA */
.snug-network-wrap .snug-impact-cta { text-align: center; }
.snug-network-wrap .snug-impact-cta .snug-impact-section-label { text-align: center; }
.snug-network-wrap .snug-impact-cta-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(24px, 2.6vw, 34px);
  color: var(--cream);
  line-height: 1.1;
  margin: 0 0 10px;
}
.snug-network-wrap .snug-impact-cta-text {
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--muted);
  max-width: 620px;
  margin: 0 auto 22px;
}
.snug-network-wrap .snug-impact-cta-buttons {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.snug-network-wrap .snug-impact-cta-btn {
  width: auto !important;
  min-width: 180px;
}

/* Mobile */
@media (max-width: 900px) {
  .snug-network-wrap .snug-imp-stats { grid-template-columns: repeat(2, 1fr); }
  .snug-network-wrap .snug-imp-net-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .snug-network-wrap .snug-impact-section { padding: 22px 16px; }
  .snug-network-wrap .snug-imp-stats { grid-template-columns: 1fr 1fr; }
  .snug-network-wrap .snug-imp-net-grid { grid-template-columns: 1fr 1fr; }
  .snug-network-wrap .snug-impact-cta-buttons { flex-direction: column; align-items: stretch; }
  .snug-network-wrap .snug-impact-cta-btn { width: 100% !important; }
}

/* ── CALENDAR PAGE (dark, full-width) ── */

/* Filter bar layout on calendar: filters on left, view toggle on right */
.snug-network-wrap .snug-calendar-filterbar {
  justify-content: space-between;
}
.snug-network-wrap .snug-calendar-filterbar .snug-calendar-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  flex: 1 1 auto;
}

/* Timeframe (Upcoming / Past) toggle inside list view */
.snug-network-wrap .snug-calendar-list__timeframe {
  display: flex;
  gap: 6px;
  padding: 14px 48px;
  border-bottom: 1px solid var(--border);
  background: var(--ink);
}
.snug-network-wrap .snug-calendar-list__timeframe button {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 8px 16px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
}
.snug-network-wrap .snug-calendar-list__timeframe button.active,
.snug-network-wrap .snug-calendar-list__timeframe button:hover {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}

/* List items container */
.snug-network-wrap .snug-calendar-list__items {
  padding: 0 48px;
}
.snug-network-wrap .snug-calendar-list__items .fc-list-event,
.snug-network-wrap .snug-calendar-list__items .snug-calendar-list__item,
.snug-network-wrap .snug-calendar-list__items a {
  color: var(--cream);
}
.snug-network-wrap .snug-calendar-list__items > * {
  border-bottom: 1px solid var(--border);
  padding: 16px 0;
}
.snug-network-wrap .snug-calendar-list__items > *:last-child { border-bottom: none; }

/* List empty state / loading state */
.snug-network-wrap .snug-calendar-list__empty,
.snug-network-wrap .snug-calendar-list__loading {
  padding: 40px 48px;
  text-align: center;
  color: var(--muted);
  font-family: var(--font-body);
  font-style: italic;
}

/* List pager */
.snug-network-wrap .snug-calendar-list__pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 48px;
  border-top: 1px solid var(--border);
}
.snug-network-wrap .snug-calendar-list__pager button {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 8px 14px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
}
.snug-network-wrap .snug-calendar-list__pager span {
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* FullCalendar (Month) — dark chrome */
.snug-network-wrap #snug-calendar {
  padding: 24px 48px;
  color: var(--cream);
}
.snug-network-wrap #snug-calendar .fc {
  color: var(--cream);
}
.snug-network-wrap #snug-calendar .fc-daygrid-day,
.snug-network-wrap #snug-calendar .fc-scrollgrid,
.snug-network-wrap #snug-calendar .fc-scrollgrid td,
.snug-network-wrap #snug-calendar .fc-scrollgrid th,
.snug-network-wrap #snug-calendar .fc-col-header-cell {
  background: var(--ink) !important;
  border-color: var(--border) !important;
  color: var(--cream) !important;
}
.snug-network-wrap #snug-calendar .fc-day-today {
  background: var(--gold-dim) !important;
}
.snug-network-wrap #snug-calendar .fc-button-primary {
  background: var(--ink-light) !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
}
.snug-network-wrap #snug-calendar .fc-button-primary:hover,
.snug-network-wrap #snug-calendar .fc-button-primary.fc-button-active {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}
.snug-network-wrap #snug-calendar .fc-event {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
}
.snug-network-wrap #snug-calendar .fc-toolbar-title {
  color: var(--cream) !important;
  font-family: var(--font-display);
  font-weight: 900;
}

/* Map view (calendar) — dark chrome */
.snug-network-wrap .snug-calendar-map-wrap {
  padding: 24px 48px;
}
.snug-network-wrap .snug-calendar-map__note {
  color: var(--muted);
  font-family: var(--font-body);
  font-style: italic;
  margin-bottom: 12px;
}
.snug-network-wrap .snug-calendar-map,
.snug-network-wrap .snug-calendar-map-wrap .leaflet-container {
  background: var(--ink-mid);
  border: 1px solid var(--border);
}
.snug-network-wrap .snug-calendar-map-wrap .leaflet-popup-content-wrapper,
.snug-network-wrap .snug-calendar-map-wrap .leaflet-popup-tip {
  background: var(--ink-mid);
  color: var(--cream);
  border: 1px solid var(--border);
}
.snug-network-wrap .snug-calendar-map-wrap .leaflet-control-attribution,
.snug-network-wrap .snug-calendar-map-wrap .leaflet-control-zoom a {
  background: var(--ink-mid);
  color: var(--muted);
  border-color: var(--border);
}

/* Mobile */
@media (max-width: 768px) {
  .snug-network-wrap .snug-calendar-list__timeframe,
  .snug-network-wrap .snug-calendar-list__items,
  .snug-network-wrap .snug-calendar-list__empty,
  .snug-network-wrap .snug-calendar-list__loading,
  .snug-network-wrap .snug-calendar-list__pager,
  .snug-network-wrap #snug-calendar,
  .snug-network-wrap .snug-calendar-map-wrap {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ── CALENDAR LIST: dark override for the JS-rendered event rows.
   snug-calendar.css styles these light-theme by default; scope + !important
   to win against it. ── */

/* Outer list container + row list */
.snug-network-wrap .snug-calendar-list,
.snug-network-wrap .snug-calendar-list__items {
  background: var(--ink) !important;
  color: var(--cream) !important;
}

/* Each event row: dark card, gold hairline separator */
.snug-network-wrap .snug-calendar-list__item {
  background: var(--ink-mid) !important;
  border: 1px solid var(--border) !important;
  border-radius: 3px !important;
  padding: 16px 20px !important;
  margin-bottom: 8px !important;
  color: var(--cream) !important;
  display: flex !important;
  gap: 18px !important;
  align-items: center !important;
  text-decoration: none !important;
  transition: border-color 0.15s, background 0.15s !important;
}
.snug-network-wrap .snug-calendar-list__item:hover {
  border-color: var(--gold) !important;
  background: var(--ink-light) !important;
}

/* Date block on the left */
.snug-network-wrap .snug-calendar-list__date {
  background: var(--gold-dim) !important;
  border: 1px solid rgba(212,160,74,0.35) !important;
  color: var(--gold) !important;
  padding: 10px 14px !important;
  min-width: 68px !important;
  text-align: center !important;
  border-radius: 3px !important;
  flex-shrink: 0 !important;
}
.snug-network-wrap .snug-calendar-list__date .month {
  font-family: var(--font-display) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  display: block !important;
}
.snug-network-wrap .snug-calendar-list__date .day {
  font-family: var(--font-display) !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  color: var(--cream) !important;
  line-height: 1 !important;
  display: block !important;
}
.snug-network-wrap .snug-calendar-list__date .year {
  font-family: var(--font-display) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  color: var(--muted) !important;
  display: block !important;
  margin-top: 2px !important;
}

/* Info column */
.snug-network-wrap .snug-calendar-list__info {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  color: var(--cream) !important;
}
.snug-network-wrap .snug-calendar-list__title {
  font-family: var(--font-display) !important;
  font-weight: 900 !important;
  font-size: 16px !important;
  color: var(--cream) !important;
  line-height: 1.2 !important;
  margin: 0 0 4px !important;
}
.snug-network-wrap .snug-calendar-list__meta {
  font-family: var(--font-body) !important;
  font-style: italic !important;
  font-size: 14px !important;
  color: var(--muted) !important;
}

/* Status pill */
.snug-network-wrap .snug-calendar-list__status {
  font-family: var(--font-display) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 3px 9px !important;
  border-radius: 20px !important;
  flex-shrink: 0 !important;
}
.snug-network-wrap .snug-calendar-list__status--confirmed {
  background: rgba(61,170,110,0.15) !important;
  border: 1px solid rgba(61,170,110,0.3) !important;
  color: var(--green) !important;
}
.snug-network-wrap .snug-calendar-list__status--completed {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
}

/* ── CALENDAR MONTH VIEW: FullCalendar internals need dark overrides ── */

/* Day-of-week headers (Sun/Mon/...) and day numbers are <a> elements that
   inherit the themes blue link color. Force muted gray, no underline. artists/ bin/ docs/ snug-network-demo-data/ snug-network/ specs/ tools/ vendor/ venues/

/* ── CALENDAR MONTH VIEW: FullCalendar internals need dark overrides ── */

/* Day-of-week headers (Sun/Mon/...) and day numbers are <a> elements that
   inherit the theme's blue link color. Force muted gray, no underline. */
.snug-network-wrap #snug-calendar .fc-col-header-cell a,
.snug-network-wrap #snug-calendar .fc-col-header-cell-cushion,
.snug-network-wrap #snug-calendar .fc-daygrid-day-number,
.snug-network-wrap #snug-calendar .fc-daygrid-day-top a {
  color: var(--muted) !important;
  text-decoration: none !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
}
.snug-network-wrap #snug-calendar .fc-daygrid-day-number:hover,
.snug-network-wrap #snug-calendar .fc-daygrid-day-top a:hover {
  color: var(--gold) !important;
}
.snug-network-wrap #snug-calendar .fc-col-header-cell {
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

/* Days outside the current month */
.snug-network-wrap #snug-calendar .fc-day-other .fc-daygrid-day-number,
.snug-network-wrap #snug-calendar .fc-day-other .fc-daygrid-day-top a {
  color: var(--border) !important;
  opacity: 0.6;
}

/* Toolbar title (e.g. "August 2026") */
.snug-network-wrap #snug-calendar .fc-toolbar-title {
  color: var(--cream) !important;
  font-family: var(--font-display) !important;
  font-weight: 900 !important;
  font-size: 18px !important;
}

/* Prev / Next chevron buttons */
.snug-network-wrap #snug-calendar .fc-prev-button,
.snug-network-wrap #snug-calendar .fc-next-button {
  padding: 6px 10px !important;
}
.snug-network-wrap #snug-calendar .fc-icon {
  color: var(--muted) !important;
}
.snug-network-wrap #snug-calendar .fc-prev-button:hover .fc-icon,
.snug-network-wrap #snug-calendar .fc-next-button:hover .fc-icon {
  color: var(--gold) !important;
}

/* Today button */
.snug-network-wrap #snug-calendar .fc-today-button {
  background: var(--ink-light) !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
}
.snug-network-wrap #snug-calendar .fc-today-button:disabled {
  opacity: 0.5;
}

/* Event pill in month cells (small blocks under a date) */
.snug-network-wrap #snug-calendar .fc-daygrid-event {
  background: var(--gold-dim) !important;
  border: 1px solid rgba(212,160,74,0.35) !important;
  color: var(--gold) !important;
  padding: 3px 6px !important;
  border-radius: 2px !important;
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  margin-bottom: 3px !important;
}
.snug-network-wrap #snug-calendar .fc-daygrid-event:hover {
  background: rgba(212,160,74,0.25) !important;
}
.snug-network-wrap #snug-calendar .fc-daygrid-event .fc-event-title,
.snug-network-wrap #snug-calendar .fc-daygrid-event .fc-event-time {
  color: var(--gold) !important;
  font-weight: 700 !important;
}
.snug-network-wrap #snug-calendar .fc-daygrid-event .fc-event-time {
  margin-right: 4px;
  opacity: 0.85;
}

/* Body/day cells */
.snug-network-wrap #snug-calendar .fc-daygrid-day-frame {
  min-height: 90px;
}
.snug-network-wrap #snug-calendar .fc-daygrid-day.fc-day-today {
  background: var(--gold-dim) !important;
}
.snug-network-wrap #snug-calendar .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
  color: var(--gold) !important;
}

/* Table borders */
.snug-network-wrap #snug-calendar table,
.snug-network-wrap #snug-calendar td,
.snug-network-wrap #snug-calendar th {
  border-color: var(--border) !important;
}

/* ── CALENDAR MAP: keep the light OSM tiles (data), but ensure the note
   above the map and controls remain readable on the dark surround. ── */
.snug-network-wrap .snug-calendar-map__note {
  color: var(--muted) !important;
  font-family: var(--font-body);
  font-style: italic;
  text-align: center;
  margin: 0 0 14px !important;
}
.snug-network-wrap .snug-calendar-map-wrap .leaflet-control-zoom a {
  background: var(--ink-mid) !important;
  color: var(--cream) !important;
  border: 1px solid var(--border) !important;
}
.snug-network-wrap .snug-calendar-map-wrap .leaflet-control-zoom a:hover {
  background: var(--ink-light) !important;
  color: var(--gold) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CALENDAR PAGE: full-dark full-width fix
   1) Break the calendar out of the legacy .entry-content white wrapper
      (same pattern used by the rosters at 1481+ cap).
   2) Force the filter bar to var(--ink-mid) dark band + select colors that
      match the venue/artist roster treatment.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Match the shared network-wrap break-out used on the profile/roster pages.
   The calendar page-id will be caught by the existing .entry-content > .snug-network-wrap
   rules. This adds an explicit dark bg on the wrap so no theme white leaks through. */
.entry-content > .snug-network-wrap.snug-calendar-wrap,
.snug-network-wrap.snug-calendar-wrap {
  background: var(--ink) !important;
}

/* Also make the filter bar band explicitly dark ink-mid + bottom border.
   Rules earlier used var(--ink) for the bar — switch to ink-mid to match
   the mockup and provide a visible layer separator from the sections below. */
.snug-network-wrap .snug-calendar-filterbar,
.snug-network-wrap .snug-calendar-wrap .snug-filter-bar {
  background: var(--ink-mid) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 12px 48px !important;
}

/* Calendar filter selects — dark ink-light bg, cream text, readable options.
   Uses the same theme-override pattern as venue-bar (two-class + element + class + !important). */
.snug-network-wrap .snug-calendar-filterbar select,
.snug-network-wrap .snug-calendar-filterbar select.snug-filter-select,
.snug-network-wrap .snug-calendar-wrap .snug-filter-bar select,
.snug-network-wrap .snug-calendar-wrap .snug-filter-bar select.snug-filter-select {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  -webkit-text-fill-color: var(--cream) !important;
  color-scheme: dark !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 6px 28px 6px 12px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888A92'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  min-width: 140px !important;
}

/* Option list readability (native <option> — explicit hex, !important). */
.snug-network-wrap .snug-calendar-filterbar select option,
.snug-network-wrap .snug-calendar-wrap .snug-filter-bar select option {
  background-color: #16181D !important;
  color: #F0EDE8 !important;
}

/* Belt-and-suspenders: eliminate any lingering white from the direct parents
   of .snug-network-wrap on network page-ids (the calendar page's own id).
   We already have a page-id-scoped rule for the 6 known network pages, but
   also let this rule apply universally to any calendar-wrap parent. */
.snug-network-wrap .snug-calendar-wrap {
  background: var(--ink) !important;
  color: var(--cream) !important;
}

/* ── CALENDAR MONTH + MAP: kill the white card container from snug-calendar.css.
   The FullCalendar mount (#snug-calendar) and the Leaflet map wrap
   (#snug-calendar-map-wrap) both ship with white bg + 8px radius + light
   border from the legacy stylesheet. Force dark, no border, no radius. ── */

.snug-network-wrap #snug-calendar,
.snug-network-wrap #snug-calendar-map-wrap {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Legacy "Back to list" button inside the map view was rendering light. */
.snug-network-wrap #snug-calendar-back-to-list,
.snug-network-wrap .snug-calendar-map-wrap .button {
  background: var(--ink-light) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  border: 1px solid var(--border) !important;
  border-radius: 2px !important;
  padding: 8px 14px !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
.snug-network-wrap #snug-calendar-back-to-list:hover,
.snug-network-wrap .snug-calendar-map-wrap .button:hover {
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}

/* Same for the "Clear filters" / "Browse past shows" buttons in empty states. */
.snug-network-wrap .snug-calendar-list__empty .button {
  background: var(--ink-light) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  border: 1px solid var(--border) !important;
  border-radius: 2px !important;
  padding: 8px 14px !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin: 0 4px !important;
}
.snug-network-wrap .snug-calendar-list__empty .button:hover {
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TICKETS CHECKOUT — dark card layout (scoped under .snug-network-wrap)
   ═══════════════════════════════════════════════════════════════════════════ */

.snug-network-wrap.snug-ck-wrap { padding: 0 0 60px 0; }

.snug-network-wrap .snug-ck-card {
  max-width: 720px;
  margin: 32px auto 0;
  background: var(--ink-mid);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 32px;
  box-sizing: border-box;
}

.snug-network-wrap .snug-ck-mode-banner {
  background: rgba(212,160,74,0.14);
  border: 1px solid rgba(212,160,74,0.35);
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 8px 12px;
  border-radius: 2px;
  margin-bottom: 20px;
}

.snug-network-wrap .snug-ck-notice {
  background: var(--ink-light);
  border: 1px solid var(--border);
  border-radius: 3px;
  padding: 18px;
  color: var(--muted);
  font-family: var(--font-body);
  font-style: italic;
  margin: 24px auto;
  max-width: 720px;
}

.snug-network-wrap .snug-ck-summary { margin-bottom: 24px; }
.snug-network-wrap .snug-ck-show-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  color: var(--cream);
  margin-top: 6px;
  line-height: 1.1;
}
.snug-network-wrap .snug-ck-show-meta {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--muted);
  margin-top: 4px;
}
.snug-network-wrap .snug-ck-show-venue {
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 6px;
}

.snug-network-wrap .snug-ck-section {
  padding-top: 20px;
  margin-top: 20px;
  border-top: 1px solid var(--border);
}
.snug-network-wrap .snug-ck-help {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 10px;
}

/* Qty stepper */
.snug-network-wrap .snug-ck-qty { display: flex; align-items: center; gap: 8px; }
.snug-network-wrap .snug-ck-qty-btn,
.snug-network-wrap .snug-ck-form button.snug-ck-qty-btn {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  -webkit-text-fill-color: var(--cream) !important;
  width: 34px; height: 34px;
  border-radius: 2px !important;
  font-size: 18px !important; font-weight: 700 !important;
  cursor: pointer !important;
  line-height: 1 !important;
}
.snug-network-wrap .snug-ck-qty input[type="number"] {
  width: 64px;
  text-align: center;
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--cream);
  -webkit-text-fill-color: var(--cream);
  padding: 8px 6px;
  border-radius: 2px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
}
.snug-network-wrap .snug-ck-qty-price {
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-left: 6px;
}

/* Donation cadence + presets */
.snug-network-wrap .snug-ck-don-cadence { display: flex; gap: 4px; margin-bottom: 10px; }
.snug-network-wrap .snug-ck-cadence,
.snug-network-wrap .snug-ck-form button.snug-ck-cadence {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 8px 14px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
}
.snug-network-wrap .snug-ck-cadence.active {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}
.snug-network-wrap .snug-ck-cadence:disabled { opacity: 0.5; cursor: not-allowed !important; }

.snug-network-wrap .snug-ck-don-presets { display: flex; gap: 6px; flex-wrap: wrap; }
.snug-network-wrap .snug-ck-preset,
.snug-network-wrap .snug-ck-form button.snug-ck-preset {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 8px 14px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  min-width: 62px;
}
.snug-network-wrap .snug-ck-preset.active {
  background: var(--gold-dim) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}
.snug-network-wrap .snug-ck-don-other { margin-top: 10px; }
.snug-network-wrap .snug-ck-don-other input {
  width: 100px;
  background: var(--ink-light);
  border: 1px solid var(--border);
  color: var(--cream);
  -webkit-text-fill-color: var(--cream);
  padding: 8px 10px;
  border-radius: 2px;
  font-family: var(--font-body);
  font-size: 15px;
}

/* Cover-fees checkbox */
.snug-network-wrap .snug-ck-cover-fees {
  display: flex; align-items: center; gap: 8px;
  color: var(--text); font-family: var(--font-body); font-size: 15px;
}
.snug-network-wrap .snug-ck-cover-fees input[type="checkbox"] { accent-color: var(--gold); width: 16px; height: 16px; }
.snug-network-wrap .snug-ck-cover-fees em {
  color: var(--gold); font-style: normal; font-family: var(--font-display);
  font-size: 12px; margin-left: 6px;
}

/* Buyer fields */
.snug-network-wrap .snug-ck-buyer-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.snug-network-wrap .snug-ck-block-label,
.snug-network-wrap .snug-ck-buyer-row label {
  display: block; font-family: var(--font-display); font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted);
  margin-top: 10px;
}
.snug-network-wrap .snug-ck-buyer-row input,
.snug-network-wrap .snug-ck-block-label input {
  display: block; margin-top: 6px; width: 100%;
  background: var(--ink-light); border: 1px solid var(--border);
  color: var(--cream); -webkit-text-fill-color: var(--cream);
  padding: 11px 13px; border-radius: 2px;
  font-family: var(--font-body); font-size: 15px;
  box-sizing: border-box;
}
.snug-network-wrap .snug-ck-buyer-row input:focus,
.snug-network-wrap .snug-ck-block-label input:focus { border-color: var(--gold); outline: none; }

/* Payment Element mount */
.snug-network-wrap .snug-ck-payment {
  background: var(--ink-light);
  border: 1px solid var(--border);
  border-radius: 2px;
  padding: 14px;
  min-height: 60px;
}

/* Summary box */
.snug-network-wrap .snug-ck-summary-box {
  margin-top: 20px;
  padding: 16px;
  background: var(--ink);
  border: 1px solid var(--border);
  border-radius: 2px;
}
.snug-network-wrap .snug-ck-line {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--font-body); font-size: 15px; color: var(--muted);
  padding: 4px 0;
}
.snug-network-wrap .snug-ck-line em { font-style: normal; opacity: 0.7; font-size: 13px; }
.snug-network-wrap .snug-ck-line-total {
  border-top: 1px solid var(--border);
  margin-top: 6px; padding-top: 10px;
  color: var(--cream);
  font-family: var(--font-display); font-weight: 900; font-size: 20px;
}
.snug-network-wrap .snug-ck-line-total span:last-child { color: var(--gold); }

.snug-network-wrap .snug-ck-error {
  margin-top: 14px; padding: 12px 14px;
  background: rgba(255,107,107,0.12); border: 1px solid rgba(255,107,107,0.35);
  color: #ffbcbc; border-radius: 2px;
  font-family: var(--font-body); font-size: 14px;
}

.snug-network-wrap .snug-ck-submit {
  margin-top: 18px; width: 100%; padding: 16px !important;
  font-size: 14px !important; letter-spacing: 0.12em !important;
}
.snug-network-wrap .snug-ck-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.snug-network-wrap .snug-ck-secure {
  color: var(--muted); font-family: var(--font-body); font-style: italic;
  font-size: 12px; text-align: center; margin-top: 10px;
}

.snug-network-wrap .snug-ck-success {
  max-width: 720px; margin: 40px auto; padding: 32px;
  background: var(--ink-mid); border: 1px solid var(--border); border-radius: 4px;
  text-align: center; color: var(--cream);
}
.snug-network-wrap .snug-ck-success-title {
  font-family: var(--font-display); font-weight: 900; font-size: 26px;
  margin: 6px 0 12px;
}

/* Mobile */
@media (max-width: 560px) {
  .snug-network-wrap .snug-ck-card { padding: 20px; margin: 20px 12px 0; }
  .snug-network-wrap .snug-ck-buyer-row { grid-template-columns: 1fr; }
}

/* ── CHECKOUT: account-aware prefill line + confirmation view ── */

/* "Purchasing as {name} ({email})" / guest login prompt */
.snug-network-wrap .snug-ck-account-line {
  max-width: 720px;
  margin: 20px auto 0;
  padding: 12px 20px;
  background: var(--ink-mid);
  border: 1px solid var(--border);
  border-radius: 3px;
  color: var(--muted);
  font-family: var(--font-body);
  font-size: 14px;
  box-sizing: border-box;
}
.snug-network-wrap .snug-ck-account-line strong { color: var(--cream); font-weight: 700; }
.snug-network-wrap .snug-ck-account-line a { color: var(--gold); text-decoration: underline; }
.snug-network-wrap .snug-ck-account-line--guest { color: var(--cream); }

/* Confirmation card */
.snug-network-wrap .snug-ck-confirmation {
  text-align: center;
}
.snug-network-wrap .snug-ck-conf-check {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--gold-dim);
  border: 2px solid var(--gold);
  color: var(--gold);
  font-size: 32px;
  line-height: 60px;
  margin: 0 auto 14px;
}
.snug-network-wrap .snug-ck-conf-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(24px, 3vw, 34px);
  color: var(--cream);
  margin: 0 0 8px;
}
.snug-network-wrap .snug-ck-conf-sub {
  font-family: var(--font-body);
  font-style: italic;
  color: var(--muted);
  margin: 0 0 20px;
}
.snug-network-wrap .snug-ck-conf-recap {
  margin-top: 18px;
  padding: 16px 18px;
  background: var(--ink);
  border: 1px solid var(--border);
  border-radius: 3px;
  text-align: left;
}
.snug-network-wrap .snug-ck-conf-row {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--font-body); font-size: 15px; color: var(--muted);
  padding: 5px 0;
}
.snug-network-wrap .snug-ck-conf-row span:first-child {
  font-family: var(--font-display);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--muted);
}
.snug-network-wrap .snug-ck-conf-row span:last-child { color: var(--cream); text-align: right; }
.snug-network-wrap .snug-ck-conf-row-total {
  border-top: 1px solid var(--border);
  margin-top: 8px; padding-top: 12px;
}
.snug-network-wrap .snug-ck-conf-row-total span:last-child {
  color: var(--gold); font-family: var(--font-display); font-weight: 900; font-size: 20px;
}

/* Account history card */
.snug-network-wrap .snug-ck-history-card {
  max-width: 720px;
  margin: 24px auto 0;
  background: var(--ink-mid);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 28px;
  box-sizing: border-box;
}
.snug-network-wrap .snug-ck-history-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  margin: 12px 0 22px;
}
.snug-network-wrap .snug-ck-history-stat {
  background: var(--ink);
  padding: 16px 14px;
  text-align: center;
}
.snug-network-wrap .snug-ck-history-stat-n {
  font-family: var(--font-display); font-weight: 900; font-size: 24px;
  color: var(--cream); line-height: 1;
}
.snug-network-wrap .snug-ck-history-stat-l {
  font-family: var(--font-display); font-size: 9px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted);
  margin-top: 6px;
}
.snug-network-wrap .snug-ck-history-list { border-top: 1px solid var(--border); padding-top: 4px; }
.snug-network-wrap .snug-ck-history-row {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 14px;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.snug-network-wrap .snug-ck-history-row:last-child { border-bottom: none; }
.snug-network-wrap .snug-ck-history-date {
  font-family: var(--font-display); font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; color: var(--gold);
}
.snug-network-wrap .snug-ck-history-title {
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  color: var(--cream);
}
.snug-network-wrap .snug-ck-history-qty {
  font-family: var(--font-body); font-style: italic;
  font-size: 13px; color: var(--muted);
}
.snug-network-wrap .snug-ck-history-empty {
  font-family: var(--font-body); font-style: italic;
  color: var(--muted); text-align: center; padding: 18px 0 4px;
}

/* Guest signup nudge */
.snug-network-wrap .snug-ck-history-guest { text-align: center; }
.snug-network-wrap .snug-ck-history-guest p {
  color: var(--text); font-family: var(--font-body); font-size: 15px;
  margin: 8px 0 18px;
}
.snug-network-wrap .snug-ck-history-guest .snug-btn-outline {
  display: inline-block;
}

@media (max-width: 560px) {
  .snug-network-wrap .snug-ck-history-stats { grid-template-columns: 1fr; }
  .snug-network-wrap .snug-ck-history-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* ── CALENDAR filter-wrap: kill the white/rounded band that snug-calendar.css
   puts behind the three <select>s (host/city/genre). Also force the selects
   themselves dark with readable options. ── */

.snug-network-wrap #snug-calendar-filters,
.snug-network-wrap .snug-calendar-filters {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Broaden the earlier venue-bar rules to explicitly hit the calendar filter
   selects too, in case class-chain specificity was losing to snug-calendar.css. */
.snug-network-wrap #snug-calendar-filters select,
.snug-network-wrap #snug-calendar-filters select.snug-filter-select,
.snug-network-wrap .snug-calendar-filters select,
.snug-network-wrap .snug-calendar-filters select.snug-filter-select {
  background: var(--ink-light) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  -webkit-text-fill-color: var(--cream) !important;
  color-scheme: dark !important;
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 6px 28px 6px 12px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888A92'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  min-width: 140px !important;
  box-shadow: none !important;
}
.snug-network-wrap #snug-calendar-filters select option,
.snug-network-wrap .snug-calendar-filters select option {
  background-color: #16181D !important;
  color: #F0EDE8 !important;
}

/* ============================================================
   DASHBOARDS (role-based, server-rendered)  v1.9.57
   Ported from specs/snug-mock.css. Scoped under .snug-network-wrap.
   Token remaps from mockup: --f-head -> --font-display,
   --f-body -> --font-body, --ink-lt -> --ink-light. Preview switcher
   visibility rules stripped; only the correct dashboard is rendered.
   ============================================================ */

/* wrapper + block-theme wrapper transparency (dashboard is dark end to end) */
.snug-network-wrap .dash-wrap { max-width: 1360px; margin: 0 auto; padding: 34px 33px 80px; }

/* header */
.snug-network-wrap .dash-head { display: flex; align-items: flex-start; gap: 18px; flex-wrap: wrap; margin-bottom: 24px; }
.snug-network-wrap .dash-avatar { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; border: 2px solid var(--gold); flex: 0 0 58px; background: var(--ink-light); }
.snug-network-wrap .dash-avatar.sq { border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--gold); font-family: var(--font-display); font-size: 26px; }
.snug-network-wrap .dash-head-txt { flex: 1 1 260px; }
.snug-network-wrap .dash-hello { font-family: var(--font-display); font-weight: 900; font-size: 30px; line-height: 1.05; color: var(--cream); }
.snug-network-wrap .dash-sub { font-family: var(--font-body); font-size: 15px; color: var(--muted); margin-top: 5px; }
.snug-network-wrap .dash-chip { display: inline-flex; align-items: center; gap: 7px; margin-top: 9px; font-family: var(--font-display); font-size: 9px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--gold); background: rgba(212,160,74,0.1); border: 1px solid rgba(212,160,74,0.28); padding: 4px 9px; border-radius: 2px; }
.snug-network-wrap .dash-chip .slug { color: var(--muted); letter-spacing: 0.04em; }
.snug-network-wrap .dash-head-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }

/* role switcher (only shown for users with multiple staff roles) */
.snug-network-wrap .dash-roleswitch { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--ink-mid); border: 1px solid var(--border); border-radius: 3px; padding: 10px 12px; margin-bottom: 26px; }
.snug-network-wrap .dash-roleswitch-lbl { font-family: var(--font-display); font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.snug-network-wrap .dash-roleswitch a { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.05em; background: var(--ink-light); border: 1px solid var(--border); color: var(--muted); padding: 7px 12px; border-radius: 2px; cursor: pointer; text-transform: uppercase; text-decoration: none; transition: all 0.15s; }
.snug-network-wrap .dash-roleswitch a:hover { color: var(--cream); border-color: var(--muted); }
.snug-network-wrap .dash-roleswitch a.on { background: var(--gold); border-color: var(--gold); color: var(--ink); }

/* stat row */
.snug-network-wrap .dash-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); margin-bottom: 26px; }
.snug-network-wrap .dash-stats.six { grid-template-columns: repeat(6, 1fr); }
.snug-network-wrap .dash-stat { background: var(--ink); padding: 16px 18px; }
.snug-network-wrap .dash-stat-n { font-family: var(--font-display); font-weight: 900; font-size: 26px; color: var(--cream); line-height: 1; }
.snug-network-wrap .dash-stat-n.gold { color: var(--gold); }
.snug-network-wrap .dash-stat-l { font-family: var(--font-display); font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-top: 6px; }

/* two-col layout */
.snug-network-wrap .dash-grid { display: grid; grid-template-columns: 1fr 340px; gap: 22px; align-items: start; }

/* cards */
.snug-network-wrap .dash-card { border: 1px solid var(--border); background: var(--ink-mid); margin-bottom: 22px; }
.snug-network-wrap .dash-card-hd { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--ink-light); padding: 11px 18px; border-bottom: 1px solid var(--border); }
.snug-network-wrap .dash-card-lbl { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); }
.snug-network-wrap .dash-card-ct  { font-family: var(--font-display); font-size: 10px; font-weight: 700; color: var(--muted); letter-spacing: 0.06em; }
.snug-network-wrap .dash-card-bd  { padding: 8px 18px 14px; }
.snug-network-wrap .dash-card-bd.pad { padding: 16px 18px; display: flex; flex-direction: column; gap: 11px; }

/* list rows */
.snug-network-wrap .dash-row { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--border); }
.snug-network-wrap .dash-row:last-child { border-bottom: none; }
.snug-network-wrap .dash-row-datebox { flex: 0 0 46px; text-align: center; background: var(--ink-light); border: 1px solid var(--border); border-radius: 3px; padding: 6px 0; }
.snug-network-wrap .dash-row-mo { font-family: var(--font-display); font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); }
.snug-network-wrap .dash-row-day { font-family: var(--font-display); font-size: 18px; font-weight: 900; color: var(--cream); line-height: 1; }
.snug-network-wrap .dash-row-main { flex: 1 1 auto; min-width: 0; }
.snug-network-wrap .dash-row-t { font-family: var(--font-display); font-size: 15px; font-weight: 700; color: var(--cream); }
.snug-network-wrap .dash-row-m { font-family: var(--font-body); font-size: 13px; color: var(--muted); margin-top: 2px; }
.snug-network-wrap .dash-row-side { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.snug-network-wrap .dash-row-stat { text-align: right; }
.snug-network-wrap .dash-row-stat-n { font-family: var(--font-display); font-size: 14px; font-weight: 900; color: var(--cream); }
.snug-network-wrap .dash-row-stat-l { font-family: var(--font-display); font-size: 8px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.snug-network-wrap .dash-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }

/* small buttons — two-class-chain + !important to beat bizboost button reset */
.snug-network-wrap a.dash-btn,
.snug-network-wrap button.dash-btn {
    display: inline-block !important;
    font-family: var(--font-display) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.07em !important;
    text-transform: uppercase !important;
    background: none !important;
    border: 1px solid var(--border) !important;
    color: var(--cream) !important;
    padding: 7px 12px !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: all 0.15s !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
}
.snug-network-wrap a.dash-btn:hover,
.snug-network-wrap button.dash-btn:hover { border-color: var(--gold) !important; color: var(--gold) !important; }
.snug-network-wrap a.dash-btn.gold,
.snug-network-wrap button.dash-btn.gold { background: var(--gold) !important; border-color: var(--gold) !important; color: var(--ink) !important; font-weight: 900 !important; }
.snug-network-wrap a.dash-btn.gold:hover,
.snug-network-wrap button.dash-btn.gold:hover { color: var(--ink) !important; opacity: 0.9 !important; }
.snug-network-wrap a.dash-btn.green,
.snug-network-wrap button.dash-btn.green { border-color: rgba(61,170,110,0.5) !important; color: var(--green) !important; }
.snug-network-wrap a.dash-btn.green:hover,
.snug-network-wrap button.dash-btn.green:hover { background: rgba(61,170,110,0.12) !important; border-color: var(--green) !important; }
.snug-network-wrap a.dash-btn.danger,
.snug-network-wrap button.dash-btn.danger { color: var(--muted) !important; }
.snug-network-wrap a.dash-btn.danger:hover,
.snug-network-wrap button.dash-btn.danger:hover { border-color: #cf6b47 !important; color: #cf6b47 !important; }

/* badges */
.snug-network-wrap .dash-badge { display: inline-block; font-family: var(--font-display); font-size: 8px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; padding: 3px 7px; border-radius: 2px; }
.snug-network-wrap .dash-badge.pending { background: rgba(212,160,74,0.12); border: 1px solid rgba(212,160,74,0.3); color: var(--gold); }
.snug-network-wrap .dash-badge.confirmed,
.snug-network-wrap .dash-badge.paid { background: rgba(61,170,110,0.12); border: 1px solid rgba(61,170,110,0.28); color: var(--green); }
.snug-network-wrap .dash-badge.type { background: var(--ink-light); border: 1px solid var(--border); color: var(--muted); }

/* callout note */
.snug-network-wrap .dash-note { background: rgba(212,160,74,0.06); border: 1px solid rgba(212,160,74,0.22); border-radius: 3px; padding: 13px 15px; font-family: var(--font-body); font-size: 14px; color: var(--text); margin-bottom: 16px; }
.snug-network-wrap .dash-note b { color: var(--gold); font-family: var(--font-display); font-weight: 700; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; display: block; margin-bottom: 4px; }

/* sidebar mini kv */
.snug-network-wrap .dash-mini { font-family: var(--font-body); font-size: 14px; color: var(--muted); display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; }
.snug-network-wrap .dash-mini .v { color: var(--cream); }
.snug-network-wrap .dash-mini.block { display: block; }

/* empty state */
.snug-network-wrap .dash-empty { font-family: var(--font-body); font-size: 14px; color: var(--muted); padding: 18px 0; text-align: center; }

/* guest prompt */
.snug-network-wrap .dash-guest-box { max-width: 460px; margin: 60px auto; text-align: center; border: 1px solid var(--border); background: var(--ink-mid); padding: 40px 34px; border-radius: 4px; }
.snug-network-wrap .dash-guest-box h2 { font-family: var(--font-display); font-weight: 900; font-size: 24px; color: var(--cream); margin: 0; }
.snug-network-wrap .dash-guest-box p { font-family: var(--font-body); font-size: 15px; color: var(--muted); margin: 10px 0 22px; }
.snug-network-wrap .dash-guest-box .dash-btn { margin: 0 4px; }

@media (max-width: 860px) {
    .snug-network-wrap .dash-grid { grid-template-columns: 1fr; }
    .snug-network-wrap .dash-stats,
    .snug-network-wrap .dash-stats.six { grid-template-columns: repeat(2, 1fr); }
    .snug-network-wrap .dash-hello { font-size: 25px; }
}

/* ============================================================
   MOBILE ROSTERS - compact rows + collapsible filters + no clip
   Applies to artist roster, venue roster, and calendar list view.
   Toggle injected by snug-roster.js / snug-venue-roster.js / snug-calendar.js.
   Class map from specs/snug-mock.css "MOBILE ROSTERS" block:
     .cgrid       -> .snug-card-grid .snug-roster-grid .snug-venue-grid
     .fbar        -> .snug-filter-bar (rosters) and .snug-calendar-filters (calendar)
     .fbar-toggle -> .snug-filter-toggle
     .acard/.vcard -> .snug-artist-card (+ .snug-venue-card modifier)
     .aphoto      -> .snug-artist-photo (+ .snug-venue-photo)
     .aphoto-init -> .snug-artist-photo-initials (+ .snug-venue-photo-initials)
     .abody/.vbody -> .snug-artist-card-body
     .aname/.vname -> .snug-artist-name
     .tags        -> .snug-tags
     .afoot       -> .snug-artist-card-footer
     .vbook       -> .snug-vr-book-btn
     .vcap        -> .snug-venue-cap
     .pill        -> .snug-filter-pill / .snug-vr-pill
   ============================================================ */

/* Toggle button, hidden on desktop, shown at <=640px only */
.snug-network-wrap .snug-filter-toggle { display: none; }
.snug-network-wrap .snug-filter-toggle .snug-filter-toggle-cv {
    display: inline-block;
    transition: transform 0.15s;
}
.snug-network-wrap .snug-filter-toggle.on .snug-filter-toggle-cv {
    transform: rotate(180deg);
}

@media (max-width: 640px) {
    /* 1. Kill any right-edge clipping */
    html, body,
    .snug-network-wrap { overflow-x: hidden; }
    .snug-network-wrap * { min-width: 0; }

    /* 2. Single-column grid, full width */
    .snug-network-wrap .snug-card-grid,
    .snug-network-wrap .snug-roster-grid,
    .snug-network-wrap .snug-venue-grid {
        grid-template-columns: 1fr !important;
        gap: 10px;
        padding: 12px 16px 28px;
    }

    /* 4. Filter toggle button visible on mobile */
    .snug-network-wrap .snug-filter-toggle {
        display: flex; align-items: center; justify-content: space-between;
        box-sizing: border-box;
        width: calc(100% - 32px);
        margin: 12px 16px 0;
        background: var(--ink-light);
        border: 1px solid var(--border);
        color: var(--cream);
        font-family: var(--font-display);
        font-weight: 700; font-size: 12px;
        letter-spacing: 0.08em; text-transform: uppercase;
        padding: 11px 14px; border-radius: 2px; cursor: pointer;
        text-align: left;
    }
    .snug-network-wrap .snug-filter-toggle.on {
        border-color: var(--gold);
        color: var(--gold);
    }

    /* Filter bar hidden by default; expands when the toggle opens it.
       !important beats an older @media (max-width: 680px) rule earlier
       in snug-network-design.css that sets display: flex. */
    .snug-network-wrap .snug-filter-bar {
        display: none !important;
        margin: 8px 0 0;
        padding: 10px 16px 14px;
        box-sizing: border-box;
        width: 100%;
    }
    .snug-network-wrap .snug-filter-bar.open {
        display: flex !important; flex-wrap: wrap; gap: 6px;
    }
    /* Selects + pills stack two-up; search + view-toggle full-width. */
    .snug-network-wrap .snug-filter-bar .snug-filter-select,
    .snug-network-wrap .snug-filter-bar .snug-filter-pill,
    .snug-network-wrap .snug-filter-bar .snug-vr-pill {
        flex: 1 1 calc(50% - 3px);
        min-width: 0; max-width: 100%;
        box-sizing: border-box;
    }
    .snug-network-wrap .snug-filter-bar .snug-filter-search {
        flex: 1 1 100%; order: 9;
        min-width: 0; box-sizing: border-box;
    }
    .snug-network-wrap .snug-filter-bar .snug-view-toggle {
        flex: 1 1 100%; order: 10;
        display: flex; gap: 6px;
    }
    .snug-network-wrap .snug-filter-bar .snug-view-btn {
        flex: 1 1 50%; box-sizing: border-box;
    }

    /* Count row: tighter side padding so it lines up with the grid */
    .snug-network-wrap .snug-roster-count { padding: 8px 16px !important; }

    /* 3. Compact horizontal ARTIST rows */
    .snug-network-wrap .snug-artist-card-wrap { min-width: 0; }
    .snug-network-wrap .snug-artist-card {
        display: flex; flex-direction: row; align-items: stretch;
        min-width: 0;
    }
    .snug-network-wrap .snug-artist-card .snug-artist-photo,
    .snug-network-wrap .snug-artist-card .snug-artist-photo-initials {
        width: 94px; flex: 0 0 94px;
        height: auto; align-self: stretch;
        aspect-ratio: auto; object-fit: cover;
        border-bottom: none;
        border-right: 1px solid var(--border);
    }
    .snug-network-wrap .snug-artist-card .snug-artist-photo-initials {
        font-size: 26px;
        display: flex; align-items: center; justify-content: center;
    }
    .snug-network-wrap .snug-artist-card .snug-artist-card-body {
        padding: 11px 14px; gap: 4px;
        justify-content: center; min-width: 0;
    }
    .snug-network-wrap .snug-artist-card .snug-artist-name {
        min-height: 0; font-size: 15px;
        white-space: normal;
    }
    .snug-network-wrap .snug-artist-card .snug-tags { display: none; }
    .snug-network-wrap .snug-artist-card .snug-artist-card-footer {
        padding-top: 7px; border-top: none;
        margin-top: 3px;
    }

    /* 3b. Compact horizontal VENUE rows (venue card is .snug-artist-card + .snug-venue-card) */
    .snug-network-wrap .snug-artist-card.snug-venue-card { align-items: stretch; }
    .snug-network-wrap .snug-artist-card.snug-venue-card .snug-venue-photo,
    .snug-network-wrap .snug-artist-card.snug-venue-card .snug-venue-photo-initials {
        width: 94px; flex: 0 0 94px;
        height: auto; align-self: stretch;
        aspect-ratio: auto; object-fit: cover;
        border-bottom: none;
        border-right: 1px solid var(--border);
    }
    .snug-network-wrap .snug-venue-cap {
        padding-top: 7px; border-top: none;
        margin-top: 3px;
    }

    /* Hide the floating Request Booking button on venue cards on mobile;
       CTA lives on the venue profile. */
    .snug-network-wrap .snug-artist-card-wrap .snug-vr-book-btn {
        display: none !important;
    }

    /* Calendar list view: no clip + tighter padding + selects two-up */
    .snug-network-wrap .snug-calendar-filterbar { padding: 0; }
    .snug-network-wrap .snug-calendar-filters {
        display: none !important;
        flex-wrap: wrap; gap: 6px;
        padding: 10px 16px 14px;
        box-sizing: border-box;
    }
    .snug-network-wrap .snug-calendar-filters.open { display: flex !important; }
    .snug-network-wrap .snug-calendar-filters .snug-filter-select {
        flex: 1 1 calc(50% - 3px);
        min-width: 0; box-sizing: border-box;
    }
    .snug-network-wrap .snug-calendar-viewmode {
        padding: 0 16px;
        flex-wrap: wrap;
    }
    .snug-network-wrap .snug-calendar-list { padding: 8px 16px; }
    .snug-network-wrap .snug-calendar-list__item {
        min-width: 0;
        flex-wrap: wrap;
    }
    .snug-network-wrap .snug-calendar-list__info { min-width: 0; }
    .snug-network-wrap .snug-calendar-list__title { word-break: break-word; }
}

/* ============================================================
   Checkout donation chip + cadence: selected state uses solid gold
   with ink text, matching the mock's .join-chip.on. Overrides the
   earlier gold-dim rule so the selected chip is unmistakable.
   ============================================================ */
.snug-network-wrap .snug-ck-preset.active,
.snug-network-wrap .snug-ck-form button.snug-ck-preset.active,
.snug-network-wrap .snug-ck-cadence.active,
.snug-network-wrap .snug-ck-form button.snug-ck-cadence.active {
    background: var(--gold) !important;
    border-color: var(--gold) !important;
    color: var(--ink) !important;
    -webkit-text-fill-color: var(--ink) !important;
    font-weight: 900 !important;
}


/* ============================================================
   Checkout — "Recurring gift" card. Matches the mock's
   .chk-recurring treatment: bordered, tinted gold panel with a
   small-caps gold label. Only rendered when Monthly is selected
   (JS toggles inline display); this rule just gives it the box
   treatment when it IS shown.
   ============================================================ */
.snug-network-wrap .snug-ck-recurring-notice {
    background: var(--gold-dim);
    border: 1px solid rgba(212,160,74,0.3);
    border-radius: 3px;
    padding: 11px 14px;
    margin-top: 12px;
    margin-bottom: 20px;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.55;
    color: var(--cream);
}
.snug-network-wrap .snug-ck-recurring-notice b {
    color: var(--gold);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: block;
    margin-bottom: 4px;
}
.snug-network-wrap .snug-ck-recurring-notice strong {
    color: var(--gold);
    font-weight: 700;
}

/* v1.9.107 — shared hero-spacing across all Snug network hero pages.
   Zeros the bizboost content-wrapper top padding + tightens hero top. */
.snug-network-wrap {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
body.page .entry-content:has(.snug-network-wrap),
body.page main:has(.snug-network-wrap),
body.page .wp-block-post-content:has(.snug-network-wrap) {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.snug-network-wrap .snug-section-hero,
.snug-network-wrap .snug-roster-hero,
.snug-network-wrap .dash-head {
    padding-top: 12px !important;
    margin-top: 0 !important;
}


/* v1.9.120 — mobile centering fix
   The 768px full-bleed uses calc(100vw ...) which mis-computes against parent
   padding + viewport insets on small screens, producing an asymmetric gutter.
   At <=500px, drop the breakout entirely and use symmetric padding. Also
   force overflow-x hidden on html/body so any stray wide element can't shift
   content off-center. */
@media (max-width: 500px) {
    html, body { overflow-x: hidden !important; }
    .entry-content > .snug-network-wrap,
    .snug-hero-page {
        width: auto !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    .snug-network-wrap .snug-section-hero,
    .snug-network-wrap .snug-roster-hero,
    .snug-network-wrap .dash-wrap {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .snug-network-wrap * {
        max-width: 100% !important;
        box-sizing: border-box;
    }
}
/* v1.9.126 — mobile batch:
   1) Filter bar (position:sticky, z-index:10) was punching through bizboost's
      open mobile-nav overlay. On mobile the sticky sitting above every layer
      is not useful (nav opens as a full-viewport modal); at <=560px drop
      stickiness + z-index so the nav overlay always wins.
   2) [snug_donate] form was rendering ~half width on mobile because it's
      double-nested (.snug-network-wrap.snug-donate-page-wrap > ... >
      .snug-network-wrap.snug-donate-form) and the v1.9.120 centering fix
      only targets ".entry-content > .snug-network-wrap" (direct child).
      Widen the inner wrap + shrink chip padding so 4 chips fit cleanly.
   3) Dashboard .dash-row pattern (date-box / main / side) stacked
      horizontally at all widths; on mobile the "side" (amount + badge +
      Pay button) overlapped the "main" text column. Stack vertically at
      <=560px so each row reads cleanly. This selector-level fix covers
      every dashboard that reuses .dash-row (admin Payouts Due, artist +
      host + affiliate payouts, applications review, upcoming shows). */

@media (max-width: 560px) {
    /* 1) Filter bar — sit under the nav overlay, drop stickiness. */
    .snug-network-wrap .snug-filter-bar {
        position: static !important;
        z-index: auto !important;
    }

    /* 2) Donate form — descendant network-wraps + narrower chip padding. */
    .snug-network-wrap .snug-network-wrap {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .snug-network-wrap .snug-network-wrap .dash-wrap,
    .snug-donate-page-wrap .snug-donate-form .dash-wrap {
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .snug-donate-form .snug-donate-card {
        padding: 20px 16px !important;
    }
    .snug-donate-form .snug-d-chips {
        gap: 6px !important;
    }
    .snug-donate-form .snug-d-chip {
        padding: 10px 4px !important;
        font-size: 14px !important;
        min-width: 0 !important;
    }
    .snug-donate-form .snug-d-row2 {
        grid-template-columns: 1fr !important;
    }

    /* 3) Dashboard rows — stack date/main/side vertically. */
    .snug-network-wrap .dash-row {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 12px 14px !important;
    }
    .snug-network-wrap .dash-row-datebox {
        align-self: flex-start !important;
        flex: 0 0 auto !important;
    }
    .snug-network-wrap .dash-row-main {
        width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }
    .snug-network-wrap .dash-row-main .dash-row-t,
    .snug-network-wrap .dash-row-main .dash-row-m {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: initial !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
    }
    .snug-network-wrap .dash-row-side {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
        position: static !important;
        margin-top: 4px !important;
    }
    .snug-network-wrap .dash-row-side .dash-row-stat,
    .snug-network-wrap .dash-row-side .dash-badge,
    .snug-network-wrap .dash-row-side .dash-btn {
        flex: 0 0 auto !important;
    }
    .snug-network-wrap .dash-row-side .dash-btn {
        margin-left: auto !important;
    }
}

/* v1.9.129 — /concerts/ outer wrapper.
   snug-calendar.css gives .snug-calendar-wrap a white background + 12px
   border-radius that reads as a light rounded outline against the dark
   page. Neutralize it here so the calendar sits flush on the dark bg.
   Keeps the padding intact so nothing shifts. */
.snug-network-wrap .snug-calendar-wrap {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    color: inherit !important;
}

/* v1.9.130 — wider content on /concerts/, /artists/, /venues/.
   Bumps the shared wrappers up to 1400px so desktop uses more of the
   viewport with a comfortable gutter, and tightens the mobile inner
   gutter from 12px -> 8px so cards sit closer to the edge without
   touching it. Hero + list wrappers move together. */
.snug-network-wrap .snug-calendar-wrap {
    max-width: 1400px !important;
    padding: 24px 24px !important;
    margin: 0 auto !important;
}
.snug-network-wrap .dash-wrap {
    max-width: 1400px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}
@media (max-width: 500px) {
    .entry-content > .snug-network-wrap,
    .snug-hero-page {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .snug-network-wrap .snug-calendar-wrap,
    .snug-network-wrap .dash-wrap {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}

/* v1.9.131 — shared dark-select option styling. Native <option> rendering
   doesn't inherit from the closed <select> and drops to the OS default
   (dark-on-dark against this palette, invisible). Explicit color + bg
   with !important on every network select's options so the open menu is
   legible. color-scheme:dark on the select itself also improves the
   caret + scrollbar rendering in Chromium. */
.snug-network-wrap select { color-scheme: dark !important; }
.snug-network-wrap select option {
    background: #16181D !important;
    color: #F0EDE8 !important;
}
.snug-network-wrap select option:checked,
.snug-network-wrap select option:hover {
    background: #22252D !important;
    color: #F0EDE8 !important;
}

/* v1.9.133 — kill the light rounded border on the concerts list.
   snug-calendar.css:187 puts a 1px light border + 8px radius on
   .snug-calendar-list (the wrapper that holds the Upcoming/Past
   buttons + the concert rows). The bundle already flipped its
   background to dark but left the border, so a light grey ring was
   still visible. Scope + !important to beat the source rule. */
.snug-network-wrap #snug-calendar-list,
.snug-network-wrap .snug-calendar-list {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}


/* v1.9.145 — dash-row-group divider */
.snug-network-wrap .dash-row-group { border-bottom: 1px solid var(--border); }
.snug-network-wrap .dash-row-group:last-child { border-bottom: 0; }
.snug-network-wrap .dash-row-group > .dash-row { border-bottom: 0 !important; }
.snug-network-wrap .dash-row-group > .dash-actions { padding: 6px 0 12px; }
@media (max-width: 500px) {
    .snug-network-wrap .dash-row-group > .dash-actions { padding: 4px 0 10px; }
}

/* ============================================================
   v1.9.332 — Roster card fixes (Bug 1 + Bug 2)

   Bug 1: venue/artist logos (wordmarks, tall stacked marks) get
   zoom-cropped by object-fit:cover on the 4:3 / 16:10 photo frame.
   Server-side helper snug_image_is_logoish() flags attachments with
   aspect ratio >1.5 or <0.66 and the JS adds .snug-photo--logo. Here
   we switch object-fit to contain and put the mark on a neutral padded
   panel so the whole logo is visible. Photos are unaffected.

   Bug 2: on narrow phones the horizontal-row card layout combined
   with the absolutely-positioned Request Booking button caused the
   button to overlap the artist name / location. At <=480px we
   collapse cards back to a clean vertical stack:
       image -> name+location+meta -> action button row
   and let the button flow in normal DOM order (position: static).
   ============================================================ */

/* --- Bug 1: logo-shaped images render fully, no crop --- */
.snug-network-wrap .snug-artist-photo.snug-photo--logo,
.snug-network-wrap .snug-artist-card img.snug-photo--logo,
.snug-network-wrap .snug-venue-photo.snug-photo--logo {
    object-fit: contain !important;
    background: linear-gradient(160deg, var(--ink-light) 0%, var(--ink-mid) 100%) !important;
    padding: 10px !important;
    box-sizing: border-box !important;
}

/* --- Bug 2: vertical-stack card at phone widths, no button overlap --- */
@media (max-width: 480px) {
    /* Undo the 640px horizontal-row layout: return to vertical stack. */
    .snug-network-wrap .snug-artist-card,
    .snug-network-wrap .snug-artist-card.snug-venue-card {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    /* Full-width image with aspect ratio at top of the card. */
    .snug-network-wrap .snug-artist-card .snug-artist-photo,
    .snug-network-wrap .snug-artist-card .snug-artist-photo-initials {
        width: 100% !important;
        flex: 0 0 auto !important;
        aspect-ratio: 4/3 !important;
        height: auto !important;
        align-self: auto !important;
        border-right: none !important;
        border-bottom: 1px solid var(--border) !important;
    }
    .snug-network-wrap .snug-artist-card.snug-venue-card .snug-venue-photo,
    .snug-network-wrap .snug-artist-card.snug-venue-card .snug-venue-photo-initials {
        width: 100% !important;
        flex: 0 0 auto !important;
        aspect-ratio: 16/10 !important;
        height: auto !important;
        align-self: auto !important;
        border-right: none !important;
        border-bottom: 1px solid var(--border) !important;
    }

    /* Show genre tags again on the vertical layout. */
    .snug-network-wrap .snug-artist-card .snug-tags {
        display: flex !important;
    }

    /* Body: normal padding + real gap between text block and action row. */
    .snug-network-wrap .snug-artist-card .snug-artist-card-body {
        padding: 14px 16px !important;
        gap: 8px !important;
    }

    /* Request Booking button flows below the card as its own row.
       Overrides the desktop absolute positioning (top:0 + margin-top:calc)
       so it never sits on top of the name/location. */
    .snug-network-wrap .snug-artist-card-wrap > .snug-edit-btn,
    .snug-network-wrap .snug-artist-card-wrap > .snug-vr-book-btn {
        position: static !important;
        display: block !important;
        top: auto !important;
        right: auto !important;
        margin: 10px 0 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
        text-align: center !important;
        z-index: auto !important;
    }
    /* Undo the earlier "hide venue book button on mobile" so it appears
       inline below the card (visible signal of accepting bookings). */
    .snug-network-wrap .snug-artist-card-wrap .snug-vr-book-btn {
        display: block !important;
    }
}

/* ============================================================
   v1.9.336 — snug_image_fit resolver, single-page hero variant.

   Extends the v1.9.332 roster-card treatment to the venue and
   artist single-page hero (.snug-profile-photo-box). The template
   appends the resolver's output as a modifier class:
     .snug-profile-photo-box--fill   (photographs — default, cover)
     .snug-profile-photo-box--whole  (logos/wordmarks — contain on
                                      padded dark panel)
   .snug-profile-photo-box already sets aspect-ratio 4/5 and cover;
   we only add the "whole" variant to keep desktop layout untouched
   for photographic venues/artists.
   ============================================================ */

.snug-network-wrap .snug-profile-photo-box--whole {
    background: linear-gradient(160deg, var(--ink-light) 0%, var(--ink-mid) 100%);
}
.snug-network-wrap .snug-profile-photo-box--whole img {
    object-fit: contain;
    object-position: center center;
    padding: 16px;
    box-sizing: border-box;
    background: transparent;
}
