/* =====================================================================
   BV Athenaeum Homepage — shared foundation
   Namespaced under .bvh to avoid collisions with Astra / Elementor.
   Brand tokens alias the site's Elementor Global Colors & Typography,
   so editing the kit recolors / re-fonts these widgets automatically.
   ===================================================================== */

.bvh {
  /* Brand colors -> Elementor globals (fallbacks = mockup values) */
  --burgundy:      var(--e-global-color-primary,   #811517);
  --gold:          var(--e-global-color-secondary, #B89434);
  --red:           var(--e-global-color-accent,    #CF2626);
  --paper:         var(--e-global-color-7c3d0a0,   #F5F1E7);   /* ACTC Cream */
  --ink:           var(--e-global-color-text,      #11100D); /* official near-black */

  /* Secondary tints with no global equivalent — derived defaults */
  --burgundy-deep:  #6E0E11;
  --burgundy-night: #3A0A0C;
  --gold-light:     #D8B968;
  --gold-deep:      #8C6E26;
  --paper-warm:     #FBF7EE;
  --paper-deep:     #ECE3CE;
  --ink-soft:       #5A4A40;
  --rule:           rgba(129,21,23,.13);

  /* Fonts -> Elementor global typography (fallbacks = real Adobe families) */
  --font-display: var(--e-global-typography-primary-font-family,   "freight-display-pro"), Georgia, serif;
  --font-label:   var(--e-global-typography-secondary-font-family, "futura-pt"), "Jost", sans-serif;
  --font-body:    var(--e-global-typography-text-font-family,      "freight-sans-pro"), system-ui, sans-serif;

  font-family: var(--font-body);
  color: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.bvh *, .bvh *::before, .bvh *::after { box-sizing: border-box; }

/* Theme defense (same rationale as bv-panels): Astra/Elementor style p, li,
   and a with content-area rules like .entry-content p { color }, which beat
   colors these widgets INHERIT. Re-assert at >= specificity so widget text
   can't be repainted by the theme; specific rules below still win. */
.bvh p, .bvh li { color: inherit; }

/* Accessibility: visible keyboard focus on every interactive element, and
   respect the visitor's OS-level reduced-motion preference. */
.bvh a:focus-visible,
.bvh button:focus-visible,
.bvh input:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
button.bvh-pip { border: 0; padding: 0; appearance: none; }
@media (prefers-reduced-motion: reduce) {
  .bvh *, .bvh *::before, .bvh *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}
.bvh .bvh-hero-desc p, .bvh .bvh-season-body p, .bvh .bvh-story-lede p { color: inherit; }
.bvh .bvh-story-facts li { color: var(--ink); }
.bvh .bvh-story-links a { color: var(--burgundy); }
.bvh .bvh-story-links a:hover { color: var(--red); }
.bvh .bvh-news-form input { background: transparent; border: none; color: var(--ink); }
.bvh .bvh-news-form button { background: var(--red); color: #fff; border: none; }
.bvh .bvh-news-form button:hover { background: var(--burgundy); }

/* ── Shared primitives ─────────────────────────────────────────────── */
.bvh-eyebrow {
  font-family: var(--font-label);
  font-weight: 500;
  letter-spacing: .2em;
  font-size: 12px;
  color: var(--burgundy);
  text-transform: uppercase;
  font-style: italic;
}
.bvh-eyebrow.is-gold {
  color: var(--gold-deep);
  font-style: normal;
  letter-spacing: .24em;
  font-weight: 600;
}

.bvh-display {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -.008em;
  line-height: 1.04;
  color: var(--burgundy);
  margin: 0;
}
.bvh-display em { font-style: italic; font-weight: 300; }
.bvh-display.h1 { font-size: clamp(52px, 7vw, 108px); }
.bvh-display.h2 { font-size: clamp(34px, 4.4vw, 62px); }
.bvh-display.h3 { font-size: clamp(24px, 2.4vw, 34px); }

.bvh-btn {
  display: inline-flex;
  align-items: center;
  gap: .55em;
  padding: 13px 26px;
  font-family: var(--font-label);
  font-weight: 500;
  letter-spacing: .16em;
  font-size: 13px;
  text-transform: uppercase;
  transition: all .25s ease;
  border: 1.5px solid transparent;
  cursor: pointer;
  border-radius: 3px;
  text-decoration: none;
}
.bvh-btn .arr { font-size: 14px; letter-spacing: 0; }
.bvh-btn-red   { background: var(--red);  color: #fff; }
.bvh-btn-red:hover   { background: var(--burgundy); color: #fff; }
.bvh-btn-gold  { background: var(--gold); color: #fff; }
.bvh-btn-gold:hover  { background: var(--gold-deep); color: #fff; }
.bvh-btn-ghost { background: transparent; border-color: var(--burgundy); color: var(--burgundy); }
.bvh-btn-ghost:hover { background: var(--burgundy); color: #fff; }
.bvh-btn-ghost-light { background: transparent; border-color: var(--gold-light); color: var(--gold-light); }
.bvh-btn-ghost-light:hover { background: var(--gold-light); color: var(--burgundy-deep); }

/* Gold line-art flourish (optional decorative SVG wrapper) */
.bvh-flourish { position: absolute; pointer-events: none; opacity: .9; z-index: 0; }

/* =====================================================================
   HERO SLIDER (bvh-hero)
   ===================================================================== */
.bvh-hero { position: relative; }
.bvh-hero .swiper { width: 100%; }
.bvh-hero-grid {
  display: grid;
  grid-template-columns: var(--bvh-content-w, 45%) minmax(0, 1fr);
  align-items: stretch;
  min-height: 600px;
}
.bvh-hero-copy {
  padding: 80px 56px 104px;   /* extra bottom room for the absolute pager bar */
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.bvh-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: flex-start;
  padding: 7px 16px;
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 26px;
  border-radius: 3px;
}
.bvh-hero-badge.is-presents { background: var(--burgundy); color: var(--paper-warm); }
.bvh-hero-badge.is-partner  { background: var(--paper-deep); color: var(--burgundy); }
.bvh-hero-title { margin-bottom: 22px; }
.bvh-hero-meta {
  display: flex; gap: 18px; align-items: center; flex-wrap: wrap;
  font-family: var(--font-label);
  font-weight: 600; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink); margin-bottom: 26px;
}
.bvh-hero-meta .bvh-dot { width: 4px; height: 4px; background: var(--gold); border-radius: 50%; display: inline-block; }
/* Measure follows the Content Column Width slider (no private cap). */
.bvh-hero-desc { font-size: 18px; line-height: 1.7; color: var(--ink-soft); margin-bottom: 34px; }
.bvh-hero-desc p { margin: 0 0 .6em; }
.bvh-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Stage image.
   .bvh-hero-stagebox is the grid column child; it is itself a single-cell
   grid so the Image Height/Ratio control's align-self values keep their
   original (block-axis) meaning on .bvh-hero-stage. Treatments inset the
   image with EQUAL space above/below, right gutter matching the content. */
.bvh-hero-stagebox { display: grid; min-width: 0; }
.bvh-hero-stagebox--inset { padding: 48px 56px 48px 0; }

/* Mat for frame/glass treatments (also a grid, same reasoning). */
.bvh-hero-stagemat { display: grid; }
.bvh-hero-stagebox--frame .bvh-hero-stagemat {
  padding: 14px;
  background: rgba(184, 148, 52, .13); /* gold tint, like the panels' poster mat */
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.bvh-hero-stagebox--glass .bvh-hero-stagemat {
  padding: 14px;
  background: rgba(255, 255, 255, .45);
  border: 1px solid rgba(17, 16, 13, .10);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-radius: 10px;
  box-shadow: 0 18px 40px -18px rgba(17, 16, 13, .35);
}
.bvh-hero-stagebox--shadow .bvh-hero-stage {
  box-shadow: 0 22px 48px -16px rgba(17, 16, 13, .38), 0 6px 16px -8px rgba(17, 16, 13, .22);
}
.bvh-hero-stagebox--inset .bvh-hero-stage { border-radius: 6px; }

.bvh-hero-stage {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-color: var(--burgundy-night);
  min-height: 340px;
}
.bvh-hero-stage-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(120% 90% at 38% 32%, rgba(216,185,104,.18) 0%, transparent 52%),
              linear-gradient(160deg, rgba(90,36,32,.25) 0%, rgba(21,6,7,.65) 100%);
  box-shadow: inset 0 0 160px 40px rgba(0,0,0,.45);
  opacity: .45;
}

/* Controls (pager + counter) — absolutely anchored to the bottom-left within the
   content-column width, so the image spans the FULL panel height (no gap below). */
.bvh-hero-controls {
  position: absolute;
  left: 0;
  bottom: 0;
  width: var(--bvh-content-w, 45%);
  z-index: 5;
}
/* Divider + nav align to the content's text block: inset 56px each side,
   so the bar ends the same distance from the image as the content does. */
.bvh-hero-controls-inner {
  display: flex; align-items: center; gap: 11px;
  margin-inline: 56px;
  padding: 22px 0;
  border-top: 1px solid var(--rule);
}
.bvh-hero-pager { display: flex; gap: 11px; align-items: center; }
.bvh-hero-pager .bvh-pip { width: 30px; height: 2px; background: rgba(129,21,23,.18); transition: .2s; cursor: pointer; display: inline-block; }
.bvh-hero-pager .bvh-pip.is-on { background: var(--burgundy); }
.bvh-hero-count {
  font-family: var(--font-label); font-weight: 500; font-size: 11px;
  letter-spacing: .22em; color: var(--ink-soft); margin-left: 10px; text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .bvh-hero-grid { grid-template-columns: 1fr !important; }
  .bvh-hero-stagebox { order: -1; }
  .bvh-hero-stagebox--inset { padding: 28px 28px 0; }
  .bvh-hero-stage { min-height: 300px; }
  .bvh-hero-copy { padding: 48px 28px; }
  /* Below the breakpoint the columns stack, so the pager returns to normal flow full-width. */
  .bvh-hero-controls { position: static; width: 100%; }
  .bvh-hero-controls-inner { margin-inline: 28px; padding: 18px 0; }
}

/* =====================================================================
   EVENTS GRID (bvh-events)
   ===================================================================== */
.bvh-section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 32px; flex-wrap: wrap; margin-bottom: 40px;
}
.bvh-section-head-left { max-width: 680px; }
.bvh-section-head .bvh-eyebrow { margin-bottom: 10px; display: inline-block; }

.bvh-filters {
  display: flex; gap: 6px; flex-wrap: wrap; align-items: center;
  margin-bottom: 44px; padding: 15px 0;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.bvh-pill {
  padding: 8px 16px; font-family: var(--font-label); font-weight: 500;
  font-size: 12px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--burgundy); border: 1px solid transparent; background: transparent;
  transition: .2s; border-radius: 3px; cursor: pointer;
}
.bvh-pill:hover { color: var(--red); }
.bvh-pill.is-active { background: var(--burgundy); color: var(--paper-warm); }
.bvh-pill.is-type.is-active { background: var(--gold); color: #fff; }
.bvh-pill-sep { width: 1px; height: 18px; background: var(--rule); align-self: center; margin: 0 10px; }

.bvh-grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 30px; row-gap: 44px; }

.bvh-card { display: flex; flex-direction: column; gap: 18px; }
.bvh-card-poster {
  position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 2px;
  background-size: cover; background-position: center; background-color: var(--burgundy-night);
  box-shadow: 0 16px 34px -18px rgba(58,10,12,.45);
  transition: transform .35s ease, box-shadow .35s ease; display: block;
}
.bvh-card:hover .bvh-card-poster { transform: translateY(-5px); box-shadow: 0 26px 46px -18px rgba(58,10,12,.55); }
.bvh-card-vig { position: absolute; inset: 0; box-shadow: inset 0 0 90px 10px rgba(0,0,0,.4); }
.bvh-card-badges {
  position: absolute; top: 13px; left: 13px; right: 13px; z-index: 3;
  display: flex; justify-content: space-between; align-items: flex-start; gap: 8px;
}
.bvh-mini-badge {
  font-family: var(--font-label); font-weight: 600; font-size: 9.5px;
  letter-spacing: .18em; text-transform: uppercase; padding: 5px 9px; border-radius: 3px;
  backdrop-filter: blur(6px);
}
.bvh-mini-badge.is-presents { background: var(--gold); color: var(--burgundy-deep); }
.bvh-mini-badge.is-partner  { background: rgba(251,247,238,.9); color: var(--ink); border: 1px solid rgba(0,0,0,.08); }
.bvh-mini-badge.is-type     { background: rgba(58,10,12,.78); color: var(--paper-warm); font-style: italic; }

/* Meta fills the card's remaining height and the CTA pins to the bottom,
   so "Get Tickets" sits on one shared baseline across the row no matter
   how many lines each title takes. */
.bvh-card-meta { display: flex; flex-direction: column; gap: 7px; flex: 1 1 auto; }
.bvh-card-meta .bvh-card-link { margin-top: auto; padding-top: 8px; }

/* Card chrome options */
.bvh-card--boxed {
  background: rgba(184, 148, 52, .10); /* gold tint, like the panels' cards */
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 14px 14px 20px;
}
.bvh-card--boxed .bvh-card-meta { padding-inline: 6px; }
.bvh-card--matted .bvh-card-poster {
  border: 12px solid var(--paper-warm);
  background-clip: padding-box;
  box-shadow: 0 0 0 1px var(--rule), 0 16px 34px -18px rgba(58, 10, 12, .35);
  border-radius: 6px;
}
.bvh-card--matted .bvh-card-badges { top: 21px; left: 21px; right: 21px; }
.bvh-card-date {
  font-family: var(--font-label); font-weight: 600; font-size: 13px;
  letter-spacing: .13em; text-transform: uppercase; color: var(--ink);
}
.bvh-card-title { font-family: var(--font-display); font-weight: 500; font-size: 28px; line-height: 1.12; color: var(--burgundy); margin: 0; }
.bvh-card-title a { color: inherit; text-decoration: none; }
.bvh-card-link {
  font-family: var(--font-label); font-weight: 500; font-size: 12px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--red); display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; text-decoration: none;
}
.bvh-card-link::after { content: "\2192"; transition: transform .25s; }
.bvh-card:hover .bvh-card-link::after { transform: translateX(4px); }
.bvh-no-results { font-family: var(--font-body); color: var(--ink-soft); padding: 20px 0; }

@media (max-width: 1020px) { .bvh-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .bvh-grid { grid-template-columns: 1fr; } }

/* =====================================================================
   SEASON PANEL (bvh-season) — sits inside a dark container
   ===================================================================== */
.bvh-season-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.bvh-season-heading { margin: 16px 0 24px; }
.bvh-season-body { font-size: 18px; line-height: 1.75; margin-bottom: 34px; max-width: 480px; }
.bvh-season-body p { margin: 0 0 .7em; }
.bvh-season-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.bvh-season-art { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.bvh-season-tile {
  position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 2px;
  border: 1px solid rgba(216,185,104,.28); background-size: cover; background-position: center;
  background-color: var(--burgundy-deep); display: block; text-decoration: none;
}
.bvh-season-tile:nth-child(1) { margin-top: 54px; transform: rotate(-1.5deg); }
.bvh-season-tile:nth-child(2) { margin-top: -26px; transform: rotate(1.5deg); }
/* Tilt off: tiles sit level and aligned. */
.bvh-season-art--flat .bvh-season-tile:nth-child(1),
.bvh-season-art--flat .bvh-season-tile:nth-child(2) { margin-top: 0; transform: none; }
/* Tile treatments */
.bvh-season-art--matted .bvh-season-tile {
  border: 10px solid var(--paper-warm);
  background-clip: padding-box;
  box-shadow: 0 0 0 1px rgba(216, 185, 104, .35);
}
.bvh-season-art--shadow .bvh-season-tile {
  border-color: transparent;
  box-shadow: 0 24px 48px -18px rgba(0, 0, 0, .55);
}
.bvh-season-tile-label {
  position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; z-index: 2;
  font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 15px; color: rgba(216,185,104,.85);
}
@media (max-width: 880px) { .bvh-season-grid { grid-template-columns: 1fr; gap: 54px; } }

/* =====================================================================
   PATHS (bvh-paths)
   ===================================================================== */
.bvh-paths-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.bvh-path {
  background: var(--paper-warm); padding: 50px 46px; border: 1px solid var(--rule);
  border-radius: 4px; position: relative; transition: transform .3s, box-shadow .3s; overflow: hidden;
}
.bvh-path:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -20px rgba(58,10,12,.22); }
.bvh-path-icon {
  width: 50px; height: 50px; margin-bottom: 24px; display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--gold); background: rgba(184,148,52,.08); border-radius: 2px; color: var(--gold);
}
.bvh-path-icon svg, .bvh-path-icon i { width: 22px; height: 22px; font-size: 22px; }
.bvh-path-heading { margin: 8px 0 14px; }
.bvh-path-text { color: var(--ink-soft); margin-bottom: 26px; font-size: 17px; max-width: 420px; }
@media (max-width: 760px) { .bvh-paths-grid { grid-template-columns: 1fr; } }

/* =====================================================================
   STORY (bvh-story)
   ===================================================================== */
.bvh-story-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 86px; align-items: center; }
.bvh-story-grid.is-flipped .bvh-story-images { order: 2; }
.bvh-story-images { position: relative; }
.bvh-story-img-main {
  aspect-ratio: 4 / 5; position: relative; overflow: hidden; border-radius: 2px;
  background-size: cover; background-position: center; background-color: var(--burgundy-night);
  box-shadow: 0 30px 60px -22px rgba(58,10,12,.4);
}
.bvh-story-img-label {
  position: absolute; left: 18px; bottom: 16px; z-index: 3;
  font-family: var(--font-label); font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: rgba(216,185,104,.85);
}
.bvh-story-img-detail {
  position: absolute; bottom: -34px; right: -22px; width: 188px; aspect-ratio: 1; border-radius: 50%;
  border: 7px solid var(--paper); overflow: hidden; background-size: cover; background-position: center;
  background-origin: content-box; /* so inner padding shows the ring/background color */
  background-repeat: no-repeat;   /* without this, the image TILES into the ring area */
  box-shadow: 0 22px 44px -12px rgba(58,10,12,.45); background-color: var(--gold-deep);
}
.bvh-story-heading { margin-bottom: 24px; }
.bvh-story-lede { font-size: 19px; line-height: 1.72; color: var(--ink-soft); margin-bottom: 28px; max-width: 480px; }
.bvh-story-lede p { margin: 0 0 .6em; }
.bvh-story-facts { list-style: none; display: flex; flex-direction: column; gap: 15px; margin: 0 0 32px; padding: 0; }
.bvh-story-facts li { display: flex; align-items: flex-start; gap: 14px; font-size: 17px; color: var(--ink); }
.bvh-story-facts li::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--gold); transform: rotate(45deg); margin-top: 10px; }
.bvh-story-links { display: flex; flex-wrap: wrap; border-top: 1px solid var(--rule); padding-top: 24px; }
.bvh-story-links a {
  font-family: var(--font-label); font-weight: 500; font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--burgundy); padding: 6px 18px; border-right: 1px solid var(--rule); text-decoration: none;
}
.bvh-story-links a:first-child { padding-left: 0; }
.bvh-story-links a:last-child { border-right: none; }
.bvh-story-links a:hover { color: var(--red); }
@media (max-width: 880px) {
  .bvh-story-grid { grid-template-columns: 1fr; gap: 64px; }
  .bvh-story-grid.is-flipped .bvh-story-images { order: 0; }
  .bvh-story-img-detail { right: 0; width: 150px; }
}

/* =====================================================================
   NEWSLETTER (bvh-newsletter)
   ===================================================================== */
/* Column widths are adjustable via the widget's Layout controls (CSS vars);
   the fallbacks reproduce the original 1fr/1.1fr split. space-between lets
   fixed-percent columns sit apart cleanly. */
.bvh-news-inner {
  display: grid;
  grid-template-columns: var(--bvh-nl-copy, 1fr) var(--bvh-nl-form, 1.1fr);
  justify-content: space-between;
  gap: 60px;
  align-items: center;
}
.bvh-news-copy h3 { margin-bottom: 10px; }
/* No private cap — the copy flows with its column width. */
.bvh-news-body { color: var(--ink-soft); font-size: 17px; }
.bvh-news-form { display: flex; border: 1.5px solid var(--burgundy); background: var(--paper-warm); border-radius: 3px; overflow: hidden; }
.bvh-news-form input {
  flex: 1; padding: 16px 20px; font-family: var(--font-body); font-size: 17px; background: transparent; border: none; outline: none; color: var(--ink);
}
.bvh-news-form input::placeholder { color: var(--ink-soft); font-style: italic; }
.bvh-news-form button {
  padding: 16px 28px; background: var(--red); color: #fff; border: none; cursor: pointer;
  font-family: var(--font-label); font-weight: 500; font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
}
.bvh-news-form button:hover { background: var(--burgundy); }
.bvh-news-note { margin-top: 14px; font-family: var(--font-label); font-size: 11px; letter-spacing: .14em; color: var(--ink-soft); text-transform: uppercase; font-weight: 500; }

/* Button-only signup (link mode, no email field): a substantial button at
   its natural width by default; the widget's "Stretch Button" option makes
   it fill the column (with the note centered beneath) when that composition
   suits the layout better. */
.bvh-news-cta.bvh-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 17px 36px;
  font-size: 13.5px;
}
.bvh-news-cta--stretch.bvh-btn {
  display: flex;
  width: 100%;
}
.bvh-news-cta--stretch + .bvh-news-note { text-align: center; }
@media (max-width: 760px) { .bvh-news-inner { grid-template-columns: 1fr; gap: 32px; } }

/* Brand-mark watermark — the Athenaeum logo flourish as a CSS mask,
   centered behind the band and tinted from the live tokens (same
   treatment as the Athenaeum Panels emblem texture). Strength comes
   from the widget's slider via --bvh-mark-o. */
.bvh-newsletter { position: relative; }
.bvh-newsletter .bvh-news-inner { position: relative; z-index: 1; }
.bvh-mark::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--burgundy);
  opacity: var(--bvh-mark-o, .08);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 299.853 197.819'%3E%3Cpath d='M.002,51.818l-.002-2.439c.979-10.145,7.776-18.527,16.518-23.653,2.68-1.572,5.081-3.069,7.913-4.347,12.699-5.727,27.071-5.754,39.787.016,15.208,6.901,26.256,20.526,32.585,35.808,12.177,29.405,8.027,67.134-13.534,91.166-4.657,5.136-9.898,9.346-15.955,12.607-14.476,7.795-31.753,7.806-46.125-.116,15.335-.695,27.876-8.973,36.889-20.875,14.977-20.173,18.209-47.947,10.532-71.639-4.687-14.464-13.995-27.991-27.391-35.598.616,4.039.154,7.686-1.303,11.366-3.3,8.333-9.957,15.017-18.27,18.378-3.521,1.424-7.11,1.951-10.769,1.457C4.506,63.09.306,58.002.002,51.818Z'/%3E%3Cpath d='M161.439,0c5.83,2.178,6.929,11.134,3.093,16.209-1.075,1.422-2.597,2.208-4.171,2.209-5.084.004-8.245-8.108-5.2-14.576.883-1.876,2.322-3.192,4.118-3.841h2.16Z'/%3E%3Cpath d='M140.319,0c1.79.678,3.228,1.974,4.109,3.846,2.792,5.932.381,13.891-4.68,14.534-1.959.249-3.733-.789-4.882-2.416-2.488-3.523-2.674-8.242-.839-12.133.887-1.881,2.299-3.197,4.132-3.832h2.16Z'/%3E%3Cpath d='M231.866,66.966c-8.539,24.775-4.967,54.255,11.46,74.809,4.58,5.622,9.904,10.293,16.268,13.738,5.917,3.223,12.158,4.959,19.158,5.38-13.564,7.457-29.78,7.879-43.787,1.225-7.262-3.449-13.546-8.408-18.873-14.458-21.652-24.855-25.22-63.82-11.623-93.333,6.625-14.381,17.404-26.869,32.043-33.244,12.909-5.622,27.421-5.3,40.092.78l6.93,3.893c7.924,4.452,15.428,13.41,16.319,22.505l-.011,4.7c-.603,5.99-5.16,10.353-11.064,11.044-4.028.471-7.792-.357-11.568-1.963-10.699-4.827-20.382-16.995-18.4-29.306-12.786,7.253-22.058,20.054-26.944,34.229Z'/%3E%3Cpath d='M143.238,82.799c-.625,2.154-3.415.736-5.688-.838-10.726-7.428-21.566-20.045-28.735-30.985-.922-1.407-1.586-2.759-1.895-4.428-1.092-5.888-.989-11.917.51-17.731.568-2.205,1.42-4.322,2.994-5.91,2.195-2.214,8.472,2.72,11.184,5.207,6.595,6.048,12.375,12.822,17.285,20.32,1.319,2.014,2.683,4.048,3.21,6.406,1.597,7.154,2.058,14.381,2.027,21.703-.009,2.207-.309,4.247-.892,6.257Z'/%3E%3Cpath d='M159.296,83.946c-1.871.502-2.473-4.748-2.459-7.655.035-7.31.409-14.559,2.121-21.688.613-2.551,2.185-4.758,3.628-6.922,4.884-7.326,10.576-13.912,17.071-19.825,2.636-2.399,8.608-7.013,10.778-5.019,1.592,1.464,2.444,3.541,3.018,5.652,1.547,5.685,1.699,11.586.719,17.407-.208,1.235-.494,2.631-1.168,3.706-6.199,9.886-13.707,18.708-22.311,26.575-2.56,2.341-5.115,4.337-7.96,6.235-1.025.683-2.086,1.171-3.436,1.533Z'/%3E%3Cpath d='M125.468,193.434c-2.216,2.008-6.901,5.467-8.638,4.056-1.387-1.126-2.1-2.911-2.584-4.638-1.322-4.706-1.458-9.562-.685-14.399.161-1.009.371-2.304.932-3.196,5.746-9.143,12.773-17.3,20.997-24.284,2.041-1.734,6.329-4.922,7.732-4.332,1.051.443,1.459,4.064,1.458,6.259-.004,6.076-.372,12.046-1.722,17.98-.45,1.979-1.654,3.718-2.768,5.415-4.173,6.357-9.098,12.043-14.721,17.138Z'/%3E%3Cpath d='M125.818,141.942c-2.258,2.07-7.093,5.754-8.934,4.378-1.325-.991-2.027-2.627-2.509-4.229-1.499-4.985-1.62-10.209-.722-15.352.154-.881.41-2.007.901-2.779,5.814-9.156,12.856-17.395,21.159-24.352,1.966-1.647,6.112-4.695,7.433-4.178,1.142.446,1.53,4.07,1.533,6.352.006,6.013-.401,11.907-1.676,17.786-.368,1.698-1.337,3.238-2.278,4.71-4.186,6.55-9.188,12.42-14.907,17.665Z'/%3E%3Cpath d='M183.135,197.482c-2.157,1.591-7.786-3.199-10.186-5.5-4.783-4.588-9.029-9.547-12.721-15.074-1.246-1.866-2.615-3.783-3.142-5.986-1.437-6.008-1.745-12.099-1.749-18.26-.001-2.022.43-5.391,1.34-5.955,1.372-.851,5.997,2.691,8.139,4.518,7.728,6.594,14.319,14.254,19.909,22.736.775,1.176,1.348,2.359,1.596,3.744.901,5.031.838,10.165-.547,15.091-.478,1.699-1.149,3.587-2.639,4.686Z'/%3E%3Cpath d='M183.235,146.266c-1.691,1.511-6.43-1.98-8.622-3.959-5.93-5.353-11.086-11.391-15.4-18.128-.95-1.484-1.875-3.05-2.238-4.759-1.258-5.917-1.671-11.836-1.637-17.88.013-2.265.408-5.774,1.584-6.13,1.422-.43,5.673,2.745,7.672,4.444,8.17,6.941,15.161,15.066,20.883,24.15,2.133,3.387,2.29,18.211-2.242,22.263Z'/%3E%3Cpath d='M154.16,39.3c-1.105,1.464-2.632,2.161-4.12,2.184-1.59.025-3.127-.778-4.201-2.208-3.016-4.019-3.015-9.973-.002-13.993,1.029-1.374,2.499-2.163,3.984-2.216,1.605-.057,3.179.696,4.287,2.127,3.06,3.953,3.132,10.025.052,14.106Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 299.853 197.819'%3E%3Cpath d='M.002,51.818l-.002-2.439c.979-10.145,7.776-18.527,16.518-23.653,2.68-1.572,5.081-3.069,7.913-4.347,12.699-5.727,27.071-5.754,39.787.016,15.208,6.901,26.256,20.526,32.585,35.808,12.177,29.405,8.027,67.134-13.534,91.166-4.657,5.136-9.898,9.346-15.955,12.607-14.476,7.795-31.753,7.806-46.125-.116,15.335-.695,27.876-8.973,36.889-20.875,14.977-20.173,18.209-47.947,10.532-71.639-4.687-14.464-13.995-27.991-27.391-35.598.616,4.039.154,7.686-1.303,11.366-3.3,8.333-9.957,15.017-18.27,18.378-3.521,1.424-7.11,1.951-10.769,1.457C4.506,63.09.306,58.002.002,51.818Z'/%3E%3Cpath d='M161.439,0c5.83,2.178,6.929,11.134,3.093,16.209-1.075,1.422-2.597,2.208-4.171,2.209-5.084.004-8.245-8.108-5.2-14.576.883-1.876,2.322-3.192,4.118-3.841h2.16Z'/%3E%3Cpath d='M140.319,0c1.79.678,3.228,1.974,4.109,3.846,2.792,5.932.381,13.891-4.68,14.534-1.959.249-3.733-.789-4.882-2.416-2.488-3.523-2.674-8.242-.839-12.133.887-1.881,2.299-3.197,4.132-3.832h2.16Z'/%3E%3Cpath d='M231.866,66.966c-8.539,24.775-4.967,54.255,11.46,74.809,4.58,5.622,9.904,10.293,16.268,13.738,5.917,3.223,12.158,4.959,19.158,5.38-13.564,7.457-29.78,7.879-43.787,1.225-7.262-3.449-13.546-8.408-18.873-14.458-21.652-24.855-25.22-63.82-11.623-93.333,6.625-14.381,17.404-26.869,32.043-33.244,12.909-5.622,27.421-5.3,40.092.78l6.93,3.893c7.924,4.452,15.428,13.41,16.319,22.505l-.011,4.7c-.603,5.99-5.16,10.353-11.064,11.044-4.028.471-7.792-.357-11.568-1.963-10.699-4.827-20.382-16.995-18.4-29.306-12.786,7.253-22.058,20.054-26.944,34.229Z'/%3E%3Cpath d='M143.238,82.799c-.625,2.154-3.415.736-5.688-.838-10.726-7.428-21.566-20.045-28.735-30.985-.922-1.407-1.586-2.759-1.895-4.428-1.092-5.888-.989-11.917.51-17.731.568-2.205,1.42-4.322,2.994-5.91,2.195-2.214,8.472,2.72,11.184,5.207,6.595,6.048,12.375,12.822,17.285,20.32,1.319,2.014,2.683,4.048,3.21,6.406,1.597,7.154,2.058,14.381,2.027,21.703-.009,2.207-.309,4.247-.892,6.257Z'/%3E%3Cpath d='M159.296,83.946c-1.871.502-2.473-4.748-2.459-7.655.035-7.31.409-14.559,2.121-21.688.613-2.551,2.185-4.758,3.628-6.922,4.884-7.326,10.576-13.912,17.071-19.825,2.636-2.399,8.608-7.013,10.778-5.019,1.592,1.464,2.444,3.541,3.018,5.652,1.547,5.685,1.699,11.586.719,17.407-.208,1.235-.494,2.631-1.168,3.706-6.199,9.886-13.707,18.708-22.311,26.575-2.56,2.341-5.115,4.337-7.96,6.235-1.025.683-2.086,1.171-3.436,1.533Z'/%3E%3Cpath d='M125.468,193.434c-2.216,2.008-6.901,5.467-8.638,4.056-1.387-1.126-2.1-2.911-2.584-4.638-1.322-4.706-1.458-9.562-.685-14.399.161-1.009.371-2.304.932-3.196,5.746-9.143,12.773-17.3,20.997-24.284,2.041-1.734,6.329-4.922,7.732-4.332,1.051.443,1.459,4.064,1.458,6.259-.004,6.076-.372,12.046-1.722,17.98-.45,1.979-1.654,3.718-2.768,5.415-4.173,6.357-9.098,12.043-14.721,17.138Z'/%3E%3Cpath d='M125.818,141.942c-2.258,2.07-7.093,5.754-8.934,4.378-1.325-.991-2.027-2.627-2.509-4.229-1.499-4.985-1.62-10.209-.722-15.352.154-.881.41-2.007.901-2.779,5.814-9.156,12.856-17.395,21.159-24.352,1.966-1.647,6.112-4.695,7.433-4.178,1.142.446,1.53,4.07,1.533,6.352.006,6.013-.401,11.907-1.676,17.786-.368,1.698-1.337,3.238-2.278,4.71-4.186,6.55-9.188,12.42-14.907,17.665Z'/%3E%3Cpath d='M183.135,197.482c-2.157,1.591-7.786-3.199-10.186-5.5-4.783-4.588-9.029-9.547-12.721-15.074-1.246-1.866-2.615-3.783-3.142-5.986-1.437-6.008-1.745-12.099-1.749-18.26-.001-2.022.43-5.391,1.34-5.955,1.372-.851,5.997,2.691,8.139,4.518,7.728,6.594,14.319,14.254,19.909,22.736.775,1.176,1.348,2.359,1.596,3.744.901,5.031.838,10.165-.547,15.091-.478,1.699-1.149,3.587-2.639,4.686Z'/%3E%3Cpath d='M183.235,146.266c-1.691,1.511-6.43-1.98-8.622-3.959-5.93-5.353-11.086-11.391-15.4-18.128-.95-1.484-1.875-3.05-2.238-4.759-1.258-5.917-1.671-11.836-1.637-17.88.013-2.265.408-5.774,1.584-6.13,1.422-.43,5.673,2.745,7.672,4.444,8.17,6.941,15.161,15.066,20.883,24.15,2.133,3.387,2.29,18.211-2.242,22.263Z'/%3E%3Cpath d='M154.16,39.3c-1.105,1.464-2.632,2.161-4.12,2.184-1.59.025-3.127-.778-4.201-2.208-3.016-4.019-3.015-9.973-.002-13.993,1.029-1.374,2.499-2.163,3.984-2.216,1.605-.057,3.179.696,4.287,2.127,3.06,3.953,3.132,10.025.052,14.106Z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: auto 86%;
  mask-size: auto 86%;
}
.bvh-mark--gold::after { background-color: var(--gold); }

/* =====================================================================
   SUPPORT (bvh-support)
   ===================================================================== */
.bvh-support-head { text-align: center; margin-bottom: 48px; }
.bvh-support-head .bvh-eyebrow { margin-bottom: 12px; display: inline-block; }
.bvh-ornament { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0 auto 22px; color: var(--gold); }
.bvh-ornament .bvh-rule { flex: 0 0 64px; height: 1px; background: var(--gold); opacity: .4; }
.bvh-support-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.bvh-support-card {
  padding: 44px 38px; text-align: center; border: 1px solid var(--rule); background: var(--paper-warm); border-radius: 4px; transition: .3s;
}
.bvh-support-card:hover { border-color: var(--gold); transform: translateY(-3px); }
.bvh-support-icon { width: 44px; height: 44px; margin: 0 auto 22px; display: flex; align-items: center; justify-content: center; color: var(--burgundy); }
.bvh-support-icon svg, .bvh-support-icon i { width: 32px; height: 32px; font-size: 32px; }
.bvh-support-title { font-family: var(--font-display); font-weight: 500; font-size: 27px; color: var(--burgundy); margin: 0 0 12px; }
.bvh-support-text { color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin-bottom: 24px; }
@media (max-width: 880px) { .bvh-support-grid { grid-template-columns: 1fr; gap: 18px; } }

/* =====================================================================
   NEWS (bvh-news)
   ===================================================================== */
.bvh-news-head { margin-bottom: 40px; }
.bvh-news-head .bvh-eyebrow { margin-bottom: 10px; display: inline-block; }
.bvh-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.bvh-news-card {
  position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 2px;
  background-size: cover; background-position: center; background-color: var(--burgundy-night);
  box-shadow: 0 16px 34px -18px rgba(58,10,12,.45);
  transition: transform .35s ease, box-shadow .35s ease;
}
.bvh-news-card:hover { transform: translateY(-5px); box-shadow: 0 26px 46px -18px rgba(58,10,12,.55); }
/* Bottom-up dark gradient (dark at the bottom, fading to transparent upward) */
.bvh-news-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient( to top,
              var(--bvh-grad-color, rgba(0,0,0,.8)) 0%,
              transparent var(--bvh-grad-reach, 70%) );
}
.bvh-news-title {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; margin: 0; padding: 24px;
  color: #fff; font-family: var(--font-display); font-weight: 500; font-size: 24px; line-height: 1.15;
}
.bvh-news-footer { text-align: center; margin-top: 40px; }

/* Inner title span — the clamp applies here (padding lives on the h3, so
   clamped lines can't ghost into the padding area). On hover/focus the
   clamp releases to show the full title, with a scrim + "Read more". */
.bvh-news-title__text { display: block; }
.bvh-news-title__text.bvh-clamp-2,
.bvh-news-title__text.bvh-clamp-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bvh-news-title__text.bvh-clamp-2 { -webkit-line-clamp: 2; }
.bvh-news-title__text.bvh-clamp-3 { -webkit-line-clamp: 3; }
/* !important: releasing the clamp on hover is always correct, and this
   must beat any Elementor-generated (or cached/stale) clamp rule, whose
   selectors carry much higher specificity. */
.bvh-news-card:hover .bvh-news-title__text,
.bvh-news-card:focus-visible .bvh-news-title__text {
  display: block !important;
  -webkit-line-clamp: unset !important;
}

/* Hover scrim — sits between the gradient (z1) and the title (z2), so the
   fully revealed title stays readable over any photo. */
.bvh-news-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(10, 6, 5, .38);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.bvh-news-card:hover::after,
.bvh-news-card:focus-visible::after { opacity: 1; }

/* "Read more" affordance — revealed with the full title. */
.bvh-news-more {
  display: block;
  margin-top: 10px;
  font-family: var(--font-label);
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-light);
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transform: translateY(4px);
  transition: opacity .3s ease, transform .3s ease, max-height .3s ease;
}
.bvh-news-more .arr { letter-spacing: 0; }
.bvh-news-card:hover .bvh-news-more,
.bvh-news-card:focus-visible .bvh-news-more {
  opacity: 1;
  max-height: 24px;
  transform: none;
}

/* Matted news tiles — same paper mat language as the Events Grid option. */
.bvh-news-card--matted {
  border: 12px solid var(--paper-warm);
  background-clip: padding-box;
  box-shadow: 0 0 0 1px var(--rule), 0 16px 34px -18px rgba(58, 10, 12, .35);
  border-radius: 6px;
}

@media (max-width: 1020px) { .bvh-news-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .bvh-news-grid { grid-template-columns: 1fr; } }

/* =====================================================================
   Event Supplemental Content widget (BVH_Supplemental_Widget)
   Replicates the EDP "gold bar" heading: burgundy Freight-Display title
   knocked out over a 1px gold rule, Freight-Sans body. Collapsible rows
   use native <details>; the caret lives at the right of the bar.
   Namespaced under .bvsc (own tokens; not a .bvh descendant).
   ===================================================================== */
.bvsc {
  --bvsc-title:    var(--e-global-color-primary,   #811517); /* burgundy */
  --bvsc-rule:     var(--e-global-color-secondary, #B89434); /* gold */
  --bvsc-knockout: #ffffff;                                  /* EDP body bg */
  --bvsc-gap:       40px;
  --bvsc-title-gap: 16px;
  --bvsc-title-max: 640px;  /* cap the title measure on wide columns so a
                               wrapped title doesn't strand the rule + caret
                               at the far right (harmless on mobile: narrower
                               than the column, so it never applies there) */
}
.bvsc__item { margin-bottom: var(--bvsc-gap); }
.bvsc__item:last-child { margin-bottom: 0; }

/* Gold-bar heading: the title, then a trailing 1px gold rule that fills the
   rest of the row. The rule is a real flex item (::after), NOT a background
   behind the title — so a title that wraps to two lines no longer paints a
   white knockout gap to its right (mobile). align-items:center keeps the
   rule and caret vertically centered on multi-line titles. */
.bvsc__bar {
  display: flex;
  align-items: center;
  gap: 25px;
  width: 100%;
  margin: 0;
  padding: 10px 0;
  position: relative;
}
.bvsc__title {
  margin: 0;
  flex: 0 1 auto;                  /* take content width; shrink + wrap as needed */
  max-width: var(--bvsc-title-max);
  color: var(--bvsc-title);
  font-family: "freight-display-pro", Georgia, serif;
  font-size: 37px;
  font-weight: 300;
  line-height: 1.3;
}
.bvsc__bar::after {                /* trailing gold rule */
  content: "";
  flex: 1 1 40px;
  min-width: 40px;
  align-self: center;
  height: 1px;
  background: var(--bvsc-rule);
}

/* Body copy. */
.bvsc__content { padding-top: var(--bvsc-title-gap); }
.bvsc__content,
.bvsc__content p {
  color: #000;
  font-family: "freight-sans-pro", sans-serif;
  font-size: 24px;
  font-weight: 300;
  line-height: 36px;
}
.bvsc__content img { max-width: 100%; height: auto; }
.bvsc__content > :first-child { margin-top: 0; }
.bvsc__content > :last-child  { margin-bottom: 0; }

/* Video embeds — our own player (.bvsc__embed), a pasted YouTube/Vimeo iframe,
   or the [embedyt] shortcode's figure. Attribute selectors so only video
   frames get forced to 16:9; anything else just stays inside the column. */
.bvsc__embed,
.bvsc__content figure { margin: 24px 0; }
.bvsc__content iframe { max-width: 100%; }
.bvsc__embed iframe,
.bvsc__content iframe[src*="youtube"],
.bvsc__content iframe[src*="youtu.be"],
.bvsc__content iframe[src*="vimeo"] {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 8px;
}

/* Collapsible rows (native <details>). */
details.bvsc__item--collapsible > summary {
  cursor: pointer;
  list-style: none;
}
details.bvsc__item--collapsible > summary::-webkit-details-marker { display: none; }
details.bvsc__item--collapsible > summary:focus-visible {
  outline: 2px solid var(--bvsc-rule);
  outline-offset: 3px;
}
/* Caret: a gold-outline circle (white center) with a burgundy chevron, drawn
   on the TITLE's pseudos and pinned to the bar's right edge (the bar's own
   ::after is the trailing rule). The rule's min-width keeps the title clear of
   the circle; the circle sits over the rule's end for a "line into the ring"
   look. Keeps <summary> content to a single heading (valid content model). */
details.bvsc__item--collapsible > summary.bvsc__bar > .bvsc__title::before {  /* circle */
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 1px solid var(--bvsc-rule);
  background: #fff;
  z-index: 1;
}
details.bvsc__item--collapsible > summary.bvsc__bar > .bvsc__title::after {   /* chevron */
  content: "";
  position: absolute;
  right: 13px;
  top: 50%;
  width: 9px;
  height: 9px;
  box-sizing: border-box;
  border-right: 2px solid var(--bvsc-title);
  border-bottom: 2px solid var(--bvsc-title);
  transform: translateY(-75%) rotate(45deg);   /* points down (closed) */
  transition: transform .2s ease;
  z-index: 2;
}
details.bvsc__item--collapsible[open] > summary.bvsc__bar > .bvsc__title::after {
  transform: translateY(-25%) rotate(-135deg); /* points up (open) */
}
@media (prefers-reduced-motion: reduce) {
  details.bvsc__item--collapsible > summary.bvsc__bar > .bvsc__title::after { transition: none; }
}

/* Mobile: scale the display title down so long titles don't overflow. */
@media (max-width: 767px) {
  .bvsc__title { font-size: 27px; }
  .bvsc__content, .bvsc__content p { font-size: 20px; line-height: 30px; }
}
