/* moForte Homepage — fresh layout rebuild */

.homepage {
  max-width: 100%;
  margin: 0;
  padding: 0;
  /* Pre-JS fallback (vh only; homepage-fold.js overwrites with innerHeight − header − social bar − promo banner in px) */
  --hp2-below-header: calc(100vh - var(--mf-header-height) - var(--mf-social-bar-height) - var(--mf-promo-banner-height));
}
.homepage * { box-sizing: border-box; }
.homepage, .homepage p, .homepage span, .homepage a, .homepage li,
.homepage input, .homepage button, .homepage blockquote, .homepage cite,
.homepage h1, .homepage h2, .homepage h3, .homepage h4, .homepage h5, .homepage h6,
.homepage div {
  font-family: var(--mf-font-display);
  -webkit-font-smoothing: antialiased;
}

/* Neutralize the shared video wrapper geometry on the homepage.
   Homepage cards and hero/video components define their own sizing. */
.homepage .youtube-thumbnail-wrapper {
  width: auto;
  padding-bottom: 0;
  background: transparent;
}
.homepage .youtube-thumbnail-wrapper img {
  position: static;
}
.homepage .youtube-thumbnail-wrapper::after {
  content: none;
}

/* ============================================================
   HERO — height-controlled centered section
   ============================================================ */
.hp2-hero-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--mf-bg-hero);
}

.hp2-product-hero {
  position: relative;
  display: none;
  /* Reserve space for proof strip; --hp2-below-header from JS (innerHeight) for consistency */
  min-height: calc(var(--hp2-below-header) - 160px);
  padding-bottom: 48px;
  overflow: hidden;
  background: var(--mf-bg-hero);
}
.hp2-product-hero.hp2-hero-active {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  animation: hp2-fadeIn 0.5s ease;
}
@keyframes hp2-fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Background layers — absolute, never affect layout height.
   Height fills the panel; width is whatever the image's native aspect
   yields (no cropping). Anchored top-right so the photo sits flush
   against the right edge; whatever space is left to the photo's left
   gets the page's dark hero background through the overlay gradient. */
.hp2-product-hero-bg {
  position: absolute;
  inset: 0;
  background-size: auto 100%;
  background-position: top right;
  background-repeat: no-repeat;
  filter: brightness(1.05) saturate(1.2);
  cursor: pointer;
}
/* Cross-fade layers injected by hero-rotator.js. They stack over the
   inline-styled .hp2-product-hero-bg fallback and toggle opacity. */
.hp2-product-hero-bg-layer {
  position: absolute;
  inset: 0;
  background-size: auto 100%;
  background-position: top right;
  background-repeat: no-repeat;
  filter: brightness(1.05) saturate(1.2);
  opacity: 0;
  transition: opacity 1.2s ease;
  pointer-events: none;
}
.hp2-product-hero-bg-layer.hp2-bg-on { opacity: 1; }

.hp2-product-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(0,0,0,0.80) 0%,
    rgba(0,0,0,0.65) 30%,
    rgba(0,0,0,0.35) 55%,
    rgba(0,0,0,0.15) 100%);
  pointer-events: none;
}

/* Naada hero — same photo + gradient overlay as other heroes; left copy stack only */
.hp2-product-hero--naada .hp2-product-hero-content--naada {
  max-width: 820px;
  width: 52vw;
}
.hp2-product-hero--naada .hp2-product-hero-content--naada .hp2-section-label {
  margin-bottom: 8px;
}
.hp2-product-hero--naada .hp2-product-hero-content--naada p {
  color: rgba(255, 255, 255, 0.86);
  line-height: 1.55;
  font-size: 0.71rem;
  max-width: 52ch;
}
.hp2-product-hero--naada .hp2-product-hero-content--naada .hp2-cross-features li {
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.64rem;
}

/* Hero content — single explicit stack with gap */
.hp2-product-hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 24px;
  max-width: 820px;
  width: 52vw;
  padding: 36px 34px 34px 80px;
}

/* Kill all default margins inside hero content */
.hp2-product-hero-content h1,
.hp2-product-hero-content h3,
.hp2-product-hero-content p,
.hp2-product-hero-content .hp2-product-hero-badge,
.hp2-product-hero-content .hp2-product-hero-brand,
.hp2-product-hero-content .hp2-hero-ctas,
.hp2-product-hero-content .hp2-cross-features {
  margin: 0;
}

/* Icon + platform badge — single row (icon left, copy right) */
.hp2-product-hero-brand {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(12px, 1.6vw, 20px);
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

.hp2-product-hero-badge {
  display: inline-block;
  padding: 7px 14px;
  border: 1px solid rgba(255,107,0,0.75);
  background: rgba(10,12,16,0.72);
  color: #f3f3f3;
  font-size: clamp(0.68rem, 0.95vw, 0.82rem);
  font-weight: 500;
  letter-spacing: 0.065em;
  line-height: 1.28;
  text-transform: uppercase;
  white-space: normal;
  flex: 1 1 auto;
  min-width: min(100%, 12rem);
  max-width: min(100%, 26rem);
}
.hp2-product-hero h1 {
  font-family: var(--mf-font-display);
  font-size: clamp(44px, 4.2vw, 64px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  text-shadow: 0 4px 18px rgba(0,0,0,0.55);
  color: #ffffff;
}
.hp2-product-hero h1 span { display: block; }
.hp2-product-hero h1 em {
  color: var(--mf-accent-orange);
  font-style: normal;
  font-weight: 800;
  display: block;
}
.hp2-product-hero-icon {
  width: clamp(52px, 6.8vw, 80px);
  height: clamp(52px, 6.8vw, 80px);
  display: block;
  flex-shrink: 0;
  border-radius: clamp(12px, 1.4vw, 18px);
  object-fit: contain;
}

/* BUTTONS */
.hp2-btn-primary,
.hp2-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 13px;
  font-family: var(--mf-font-display);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.25s, transform 0.15s;
}
.hp2-btn-primary,
a.hp2-btn-primary {
  background: var(--mf-accent-orange);
  color: #000;
  border: none;
  text-shadow: 0 1px 2px rgba(255,255,255,0.3);
}
.hp2-btn-primary:hover {
  background: var(--mf-accent-orange-hover);
  transform: translateY(-1px);
  color: #000;
}
.hp2-btn-secondary {
  background: rgba(8,10,14,0.72);
  border: 1px solid var(--mf-border-strong);
  color: var(--mf-accent-cyan);
}
.hp2-btn-secondary:hover {
  background: rgba(0,0,0,0.8);
  border-color: rgba(255,255,255,0.7);
  color: #fff;
}

.hp2-hero-ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.hp2-product-hero .hp2-btn-primary,
.hp2-product-hero .hp2-btn-secondary {
  min-height: 40px;
  padding: 0 16px;
  font-size: 0.76rem;
}

/* ============================================================
   PROOF STRIP — shallow band, not a section
   ============================================================ */
.hp2-hero-proof {
  position: relative;
  z-index: 2;
  width: 100%;
  background: #05080d;
  border-top: 1px solid var(--mf-border-medium);
  padding: 26px 0;
}
.hp2-proof-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
}
.hp2-proof-quote {
  padding: 0 18px 0 30px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  align-self: center;
}
.hp2-proof-quote blockquote,
.hp2-proof-quote {
  margin: 0;
  font-size: 13px;
  line-height: 1.22;
  color: rgba(255,255,255,0.82);
}

/* Quote rotator: only the active quote stays in flow and defines the
   container's height. Inactive quotes are absolutely positioned at
   the same top-left and fade to 0. The css `position` jump is
   instant (not transitionable); only opacity transitions, so the
   crossfade looks smooth and the container's height tracks whichever
   quote is currently visible. */
.hp2-quote-stack {
  position: relative;
  width: 100%;
  min-width: 0;
}
.hp2-quote {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}
.hp2-quote.hp2-quote-active {
  position: relative;
  opacity: 1;
  pointer-events: auto;
}
.hp2-proof-quote cite {
  display: block;
  margin-top: 6px;
  color: #ff7a00;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.hp2-proof-divider {
  width: 1px;
  background: rgba(255,255,255,0.025);
  align-self: stretch;
}
.hp2-proof-awards {
  padding: 0 24px 0 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: center;
}
.hp2-proof-awards--image {
  display: grid;
  gap: 8px;
  align-items: center;
  justify-items: center;
}
.hp2-awards-strip {
  display: block;
  max-height: 30px;
  width: auto;
  max-width: 100%;
  border-radius: 4px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.34);
  object-fit: contain;
}
.hp2-tour-badge {
  display: inline-block;
  color: #c9a14e;
  font-weight: 700;
  font-size: 0.55rem;
  border: 1px solid rgba(201,161,78,0.25);
  padding: 3px 9px;
  margin-bottom: 0;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ============================================================
   SECTIONS — shared
   ============================================================ */
.hp2-section { width: 100%; padding: 80px 24px; }
.hp2-container { max-width: 1200px; margin: 0 auto; }
.hp2-section-label {
  display: block; text-align: center; text-transform: uppercase;
  letter-spacing: 4px; font-size: 0.6rem; font-weight: 700;
  color: var(--mf-accent-orange); margin-bottom: 12px;
}
.hp2-section h2 {
  text-align: center; color: #fff;
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
  font-weight: 700; text-transform: uppercase;
  letter-spacing: 2px; margin: 0 0 8px 0;
}
.hp2-section-subtitle {
  text-align: center; color: #666; font-size: 0.72rem;
  margin-bottom: 48px; letter-spacing: 0.5px;
}
.hp2-popular-heading {
  text-align: center; color: #fff;
  font-size: clamp(0.95rem, 1.6vw, 1.18rem);
  font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.6px;
  margin: 48px 0 22px 0;
}

/* ============================================================
   ARTIST PERFORMANCES — fresh rebuild
   ============================================================ */
.hp2-videos,
.artist-performances {
  background: var(--mf-bg-alt2);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
}
.hp2-videos::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 0;
  height: 1px;
  background: rgba(255,255,255,0.08);
  pointer-events: none;
}

/* Section spacing and anchor landing */
#artist-performances {
  padding: 80px 24px 16px;
  scroll-margin-top: calc(var(--mf-header-height) + 10px);
}

/* Inner container */
.hp2-videos__inner {
  width: min(1360px, calc(100vw - 48px));
  max-width: none;
  margin: 0 auto;
}

/* Section intro — compact flex column with controlled gap */
.section-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-bottom: 20px;
}
.section-intro .hp2-section-label,
.section-intro h2,
.section-intro .hp2-section-subtitle {
  margin: 0;
}

.hp2-videos .hp2-section-label { display: none; }
.hp2-videos h2,
.artist-performances h2 {
  margin: 0;
  font-size: clamp(1.3rem, 1.85vw, 1.62rem);
  line-height: 1.06;
  letter-spacing: 0.045em;
  text-align: center;
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
}
.hp2-videos p,
.artist-performances p {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.22;
  color: rgba(255,255,255,0.58);
  text-align: center;
}

@media (min-width: 901px) {
  /* Fixed-height folds: single height + overflow hidden (no min/max pair rounding fights) */
  .homepage .hp2-fold {
    height: var(--hp2-below-header);
    overflow: hidden;
    box-sizing: border-box;
    flex-shrink: 0;
  }

  section.hp2-fold {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  /* Fold 1 — hero + proof */
  .hp2-fold--hero {
    display: flex;
    flex-direction: column;
  }

  .hp2-fold--hero .hp2-hero-container {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .hp2-fold--hero .hp2-product-hero {
    min-height: 0;
    /* Reserve a visible band below the hero stack (flex items can’t paint into padding);
       content padding-bottom was getting clipped by overflow:hidden when the stack is tall */
    padding-bottom: 68px;
    overflow: hidden;
  }

  .hp2-fold--hero .hp2-product-hero.hp2-hero-active {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    /* Top-align so brand row sits under the header instead of vertically centered into it */
    align-items: flex-start;
  }

  .hp2-product-hero-content {
    gap: 24px;
    padding: 48px 36px 44px 80px;
  }

  .hp2-hero-proof {
    min-height: 102px;
    padding: 26px 0;
  }

  .hp2-proof-grid {
    min-height: 68px;
    padding: 0 20px;
  }

  .hp2-proof-quote {
    padding: 0 20px 0 32px;
  }

  .hp2-proof-awards {
    padding: 0 26px 0 18px;
  }

  /* Proof band: fixed share of fold height so hero + proof = one viewport;
     basis is a fraction of --hp2-below-header (same variable as fold height). */
  .hp2-fold--hero .hp2-hero-proof {
    flex: 0 0 calc(0.24 * var(--hp2-below-header));
    min-height: 0;
    /* Slight top bias so quote + awards sit higher in the band (band height unchanged) */
    padding: 6px 0 16px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    line-height: normal;
    overflow: hidden;
  }

  .hp2-fold--hero .hp2-proof-grid {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    align-items: start;
    align-content: start;
    gap: 18px;
    padding: 0 18px;
  }

  .hp2-fold--hero .hp2-proof-quote {
    padding: 0 12px 0 24px;
    display: flex;
    align-items: flex-start;
    min-height: 0;
  }

  .hp2-fold--hero .hp2-proof-quote blockquote {
    font-size: clamp(15px, 1.2vw, 18px);
    line-height: 1.4;
  }

  .hp2-fold--hero .hp2-proof-quote > div {
    min-width: 0;
  }

  .hp2-fold--hero .hp2-proof-quote cite {
    font-size: clamp(10.5px, 0.88vw, 13px);
    margin-top: 9px;
    letter-spacing: 0.035em;
    line-height: 1.28;
  }

  .hp2-fold--hero .hp2-proof-awards {
    padding: 0 20px 0 12px;
  }

  .hp2-fold--hero .hp2-proof-awards.hp2-proof-awards--image {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: clamp(8px, calc(0.018 * var(--hp2-below-header)), 14px);
    min-height: 0;
  }

  .hp2-fold--hero .hp2-tour-badge {
    font-size: clamp(0.62rem, 0.75vw, 0.78rem);
    padding: 5px 12px;
    letter-spacing: 0.065em;
  }

  .hp2-fold--hero .hp2-awards-strip {
    /* Larger strip inside the same proof band; cap scales with band but does not change fold geometry */
    max-height: min(104px, calc(0.5 * 0.24 * var(--hp2-below-header)));
    width: auto;
    max-width: 100%;
  }

  .hp2-fold--hero .hp2-product-hero-content {
    min-height: 0;
    justify-content: flex-start;
    /* Hero starts below header in flow; pad from hero top so icon + badge clear the bar visually */
    padding-top: clamp(18px, 2.5vh, 32px);
    padding-bottom: 28px;
    gap: 16px;
  }

  /* Smaller headline on fold 1 to offset taller header; proof band keeps 0.24 flex share */
  .hp2-fold--hero .hp2-product-hero h1 {
    font-size: clamp(32px, 3.2vw, 46px);
    line-height: 1.06;
  }

  /* Icon left, platform line right — nowrap keeps badge off a second row */
  .hp2-fold--hero .hp2-product-hero-brand {
    flex-wrap: nowrap;
    align-items: center;
    gap: clamp(16px, 2vw, 26px);
  }

  .hp2-fold--hero .hp2-product-hero-badge {
    /* Don’t let the flex row shrink the box below the label — was clipping past the border */
    flex: 0 0 auto;
    min-width: max-content;
    width: max-content;
    max-width: none;
    font-size: clamp(0.62rem, 0.78vw, 0.76rem);
    padding: 6px 10px;
    letter-spacing: 0.045em;
    white-space: nowrap;
    line-height: 1.22;
    border-width: 1px;
    border-style: solid;
    border-color: rgba(255, 107, 0, 0.88);
  }

  .hp2-fold--hero .hp2-product-hero-icon {
    width: clamp(72px, 9vw, 104px);
    height: clamp(72px, 9vw, 104px);
    border-radius: clamp(14px, 1.6vw, 20px);
  }

  /* Fold 2 — performances */
  #artist-performances.hp2-fold {
    padding-top: 28px;
    padding-bottom: 24px;
  }

  #artist-performances .hp2-videos__inner {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow-y: auto;
  }

  #artist-performances .artist-performances-grid {
    flex: 1;
    min-height: 0;
    align-items: stretch;
  }

  #artist-performances .artist-performances-side {
    grid-template-rows: 1fr 1fr;
    align-content: stretch;
    min-height: 0;
  }

  #artist-performances .performance-card {
    height: 100%;
    min-height: 0;
  }

  /* Allow thumbs to shrink so the full grid fits one viewport (min-content mins caused clipping) */
  #artist-performances .performance-card__thumb {
    flex: 1 1 0;
    height: auto;
    min-height: 0;
    aspect-ratio: unset;
  }

  #artist-performances .performance-card--featured .performance-card__thumb {
    min-height: 0;
  }

  #artist-performances .section-intro {
    margin-bottom: 10px;
  }

  /* Fold 3 — collections & instruments */
  .hp2-instruments.hp2-fold {
    padding: 18px 24px 10px;
  }

  .hp2-instruments .hp2-container {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
  }

  .hp2-instruments-header {
    margin-bottom: 10px;
    flex-shrink: 0;
  }

  .hp2-instruments .hp2-collections-grid {
    gap: 12px;
    margin-bottom: 10px;
    flex-shrink: 0;
  }

  .hp2-instruments .hp2-collection-card {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 0;
  }

  .hp2-instruments .hp2-collection-img {
    min-height: 0;
    padding: 0;
    align-self: stretch;
  }

  .hp2-instruments .hp2-collection-img img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .hp2-instruments .hp2-collection-body {
    padding: 8px 10px;
    gap: 2px;
  }

  .hp2-instruments .hp2-instr-grid {
    flex: 1 1 0;
    min-height: 0;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-auto-rows: minmax(0, 1fr);
    gap: 8px;
    padding-top: 8px;
    align-content: stretch;
  }

  .hp2-instruments .hp2-instr-card {
    grid-column: auto;
    height: 100%;
    min-height: 0;
  }

  .hp2-instruments .hp2-instr-card:nth-child(4),
  .hp2-instruments .hp2-instr-card:nth-child(5) {
    grid-column: auto;
  }

  .hp2-instruments .hp2-instr-thumb {
    flex: 1 1 0;
    min-height: 0;
    aspect-ratio: unset;
    padding: 4px 6px;
  }

  .hp2-instruments .hp2-instr-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
  }

  .hp2-instruments .hp2-view-all {
    flex-shrink: 0;
    margin-top: 8px;
  }

  /* Fold — newsletter (scroll inside if content exceeds fold) */
  .hp2-newsletter.hp2-fold {
    padding: 20px 24px 20px;
  }

  .hp2-newsletter.hp2-fold .hp2-newsletter-inner {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    align-items: center;
  }
}

/* Grid — explicit 2-column desktop layout */
.artist-performances-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: 12px;
  align-items: center;
}

/* Right column — explicit 2-row stacked grid */
.artist-performances-side {
  display: grid;
  grid-template-rows: auto auto;
  gap: 9px;
  align-content: start;
}

/* Performance cards — compact, no stretch */
.performance-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: auto;
  overflow: hidden;
  background: #0b1017;
  border: 1px solid var(--mf-border-subtle);
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.performance-card:hover { transform: translateY(-4px); border-color: rgba(255,107,0,0.3); }

/* Thumbnails — hard aspect ratio, images fill the box */
.performance-card__thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  height: 140px;
  overflow: hidden;
  background: #0b1118;
  flex-shrink: 0;
}
.performance-card--featured .performance-card__thumb {
  height: 218px;
}
.performance-card__thumb img {
  position: static;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform 0.5s;
}
/* Side cards have a wider-than-16:9 container; fill it with `cover` and
   anchor to the top so heads/faces stay visible (bottom gets cropped). */
.artist-performances-side .performance-card__thumb img {
  object-fit: cover;
  object-position: center top;
}
.performance-card:hover .performance-card__thumb img { transform: scale(1.03); }
.performance-card__thumb::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.25), rgba(0,0,0,0));
  pointer-events: none;
}
.performance-card__play {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 52px; height: 52px; background: rgba(255,107,0,0.9);
  border-radius: 999px; display: flex; align-items: center;
  justify-content: center; transition: transform 0.3s; z-index: 1;
}
.performance-card--featured .performance-card__play { width: 60px; height: 60px; }
.performance-card:hover .performance-card__play { transform: translate(-50%, -50%) scale(1.1); }

/* Card body — compact, no min-height, tight padding */
.performance-card__body {
  padding: 6px 10px 7px;
  min-height: 0;
  height: auto;
  background: #0b1017;
  border-top: 1px solid var(--mf-border-subtle);
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.performance-card__title {
  color: #ffffff; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.03em;
  margin: 0; font-size: 12px; line-height: 1.02;
}
.performance-card--featured .performance-card__body { padding: 7px 11px 8px; }
.performance-card--featured .performance-card__title { font-size: 14px; }
.performance-card__meta {
  color: rgba(255,255,255,0.50);
  margin: 0;
  font-size: 9px; line-height: 1.08;
}

/* ============================================================
   INSTRUMENTS / COLLECTIONS
   ============================================================ */
.hp2-instruments,
.collections-instruments-section {
  background: var(--mf-bg-alt);
  position: relative;
  padding: 34px 24px 18px;
  z-index: 0;
}
.hp2-instruments .hp2-container {
  width: min(1360px, calc(100vw - 64px));
  max-width: none;
}
.hp2-instruments-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 0 auto 18px;
}
.hp2-instruments-heading {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 540px;
}
.hp2-instruments-heading .hp2-section-label {
  margin: 0 0 3px;
  text-align: left;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.45);
}
.hp2-instruments-heading h2 {
  margin: 0;
  text-align: left;
  font-size: clamp(1.32rem, 1.9vw, 1.68rem);
  line-height: 1.04;
  letter-spacing: 0.035em;
}
.hp2-instruments-intro {
  flex: 0 0 min(240px, 22vw);
  text-align: right;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
}
.hp2-instruments-intro .hp2-section-subtitle {
  margin: 0;
  text-align: right;
  color: rgba(255,255,255,0.52);
  font-size: 0.66rem;
  line-height: 1.28;
  max-width: 28ch;
  margin-left: auto;
}
.hp2-instruments-link {
  color: rgba(255,255,255,0.56);
  font-size: 0.53rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  padding-bottom: 0;
  transition: color 0.2s, border-color 0.2s;
  align-self: flex-end;
}
.hp2-instruments-link:hover {
  color: var(--mf-accent-orange);
  border-color: rgba(255,107,0,0.45);
}
.hp2-collections-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 auto 14px;
}
.hp2-collection-card {
  background: #12161e;
  border: 1px solid rgba(255,255,255,0.05);
  border-radius: 6px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 40% 1fr;
  transition: border-color 0.3s;
}
.hp2-collection-card:hover { border-color: rgba(255,107,0,0.3); }
.hp2-collection-img {
  overflow: hidden;
  position: relative;
  background: #151922;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px 6px;
  min-height: 114px;
}
.hp2-collection-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transition: transform 0.5s;
}
.hp2-collection-card:hover .hp2-collection-img img { transform: scale(1.04); }
.hp2-collection-body {
  padding: 9px 11px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
}
.hp2-collection-name {
  color: #e8e8e8;
  font-size: 1.0rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 2px;
  text-transform: none;
  line-height: 1.25;
}
.hp2-collection-deal {
  color: var(--mf-accent-orange, #ff7a00);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  margin-bottom: 4px;
}
.hp2-collection-desc {
  color: rgba(255,255,255,0.62);
  font-size: 0.78rem;
  flex: 1;
  margin-bottom: 6px;
  line-height: 1.4;
}
.hp2-collection-footer { display: flex; align-items: center; justify-content: flex-start; gap: 7px; }
.hp2-collection-price { color: rgba(255,107,0,0.85); font-size: 0.9rem; font-weight: 700; }
.hp2-collection-price:empty { display: none; }
.hp2-collection-buy {
  background: transparent;
  color: rgba(255,255,255,0.85);
  font-weight: 700;
  font-size: 0.49rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 3px 8px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.hp2-collection-buy:hover {
  background: rgba(255,107,0,0.12);
  border-color: rgba(255,107,0,0.5);
  color: var(--mf-accent-orange);
}

.hp2-instr-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin: 0 auto;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.hp2-instr-card {
  grid-column: span 2;
  background: #10141b;
  border: 1px solid rgba(255,255,255,0.04);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.3s, transform 0.3s;
}
.hp2-instr-card:nth-child(4) { grid-column: 2 / span 2; }
.hp2-instr-card:nth-child(5) { grid-column: 4 / span 2; }
.hp2-instr-card:hover { border-color: rgba(255,107,0,0.18); transform: translateY(-3px); }
.hp2-instr-thumb {
  aspect-ratio: 16 / 7.1;
  overflow: hidden;
  position: relative;
  background: #11161d;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3px 5px;
}
.hp2-instr-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
.hp2-instr-body {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 5px 7px 6px;
}
.hp2-instr-name {
  color: rgba(255,255,255,0.86);
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0.02em;
  margin: 0;
  text-transform: none;
}
.hp2-instr-type {
  color: rgba(255,255,255,0.36);
  font-size: 0.44rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  margin: 0;
}
.hp2-instr-footer {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  margin-top: 0;
}
.hp2-instr-price { color: var(--mf-accent-orange); font-weight: 700; font-size: 0.8rem; }
.hp2-instr-price:empty { display: none; }
.hp2-instr-buy {
  background: transparent;
  color: rgba(255,255,255,0.82);
  font-weight: 700;
  font-size: 0.45rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 3px 6px;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.hp2-instr-buy:hover {
  background: rgba(255,107,0,0.12);
  border-color: rgba(255,107,0,0.5);
  color: var(--mf-accent-orange);
}
.hp2-view-all {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
}
.hp2-view-all .hp2-btn-secondary {
  min-height: 26px;
  padding: 0 8px;
  font-size: 0.49rem;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.82);
  border-color: rgba(255,255,255,0.14);
}

/* ============================================================
   CROSS-PLATFORM
   ============================================================ */
.hp2-cross { background: var(--mf-bg-alt2); padding: 30px 24px 52px; }
.hp2-cross-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 38px;
  align-items: center; max-width: 960px; margin: 0 auto;
}
.hp2-cross-text h3 {
  color: #fff; font-size: 1rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 2px; margin: 0 0 10px 0;
}
.hp2-cross-text p { color: #888; line-height: 1.55; margin-bottom: 16px; font-size: 0.71rem; max-width: 52ch; }
.hp2-cross-features { list-style: none; padding: 0; margin: 0 0 18px 0; }
.hp2-cross-features li { color: #999; font-size: 0.64rem; padding: 5px 0; }
.hp2-cross-features li::before { content: "\2713\00a0 "; color: var(--mf-accent-orange); font-weight: 700; }
.hp2-cross-video {
  overflow: hidden; aspect-ratio: 16/9; background: #000;
  position: relative; cursor: pointer; border: 1px solid var(--mf-border-subtle);
}
.hp2-cross-video img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.hp2-cross-video:hover img { transform: scale(1.04); }
.hp2-play-btn {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 64px; height: 64px; background: rgba(255,107,0,0.9);
  border-radius: 50%; display: flex; align-items: center;
  justify-content: center; transition: transform 0.3s;
}
.hp2-cross-video:hover .hp2-play-btn { transform: translate(-50%, -50%) scale(1.1); }

/* ============================================================
   NEWSLETTER
   ============================================================ */
.hp2-newsletter { background: var(--mf-bg-alt2); padding: 44px 24px 36px; }
.hp2-newsletter-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; max-width: 1000px; margin: 0 auto; flex-wrap: wrap;
}
.hp2-newsletter h3 {
  color: #fff; font-size: 0.85rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 2px; margin: 0;
}
.hp2-newsletter p { color: #666; margin: 4px 0 0 0; font-size: 0.66rem; }
.hp2-newsletter-form { display: flex; gap: 8px; align-items: center; }
.hp2-newsletter-form .hp2-btn-primary {
  min-height: 36px;
  padding: 0 16px;
}
.hp2-newsletter-form input[type="email"] {
  background: var(--mf-bg-hero); border: 1px solid var(--mf-border-medium);
  color: #fff; padding: 12px 18px; font-size: 0.68rem; width: 268px;
  font-family: var(--mf-font-mono);
}
.hp2-newsletter-form input[type="email"]::placeholder { color: #444; }
.hp2-newsletter-form input[type="email"]:focus { outline: none; border-color: rgba(255,107,0,0.5); }

/* ============================================================
   STICKY CTA
   ============================================================ */
.hp2-sticky {
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0;
  background: rgba(8,9,13,0.97); backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid rgba(255,107,0,0.4);
  padding: 14px 24px; z-index: 9999;
  transform: translateY(0); transition: transform 0.3s;
}
.hp2-sticky-inner {
  max-width: 1200px; margin: 0 auto; display: flex;
  align-items: center; justify-content: space-between; gap: 16px;
}
.hp2-sticky-text strong { color: #ffffff; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; }
.hp2-sticky-text span { color: #a0a0a0; font-size: 0.6rem; margin-left: 12px; letter-spacing: 0.3px; }
.hp2-sticky-actions { display: flex; gap: 12px; align-items: center; }
.hp2-sticky .hp2-btn-primary { box-shadow: 0 0 12px rgba(255,107,0,0.25); }
.hp2-sticky .hp2-btn-secondary { border-color: rgba(255,107,0,0.6); color: #ff8533; font-weight: 700; }
.hp2-sticky .hp2-btn-secondary:hover { background: rgba(255,107,0,0.1); border-color: var(--mf-accent-orange); color: #ffaa66; }
.hp2-sticky-mac {
  border-color: var(--mf-accent-orange); color: #ffffff; font-weight: 800;
  background: rgba(255,107,0,0.12); box-shadow: 0 0 10px rgba(255,107,0,0.15);
}
.hp2-sticky-mac:hover { background: rgba(255,107,0,0.22); color: #ffffff; }
.hp2-sticky-dismiss { background: none; border: none; color: #777; font-size: 22px; cursor: pointer; padding: 4px 10px; transition: color 0.2s; }
.hp2-sticky-dismiss:hover { color: #ccc; }

/* ============================================================
   TABLET
   ============================================================ */
@media (max-width: 1024px) {
  .hp2-proof-grid { grid-template-columns: 1fr; gap: 18px; padding: 16px 28px 22px; }
  .hp2-proof-divider { display: none; }
  .artist-performances-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .hp2-instruments-header { align-items: flex-start; }
  .hp2-instruments-intro { flex-basis: 320px; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  .hp2-product-hero-content { width: auto; max-width: 100%; padding: 24px 28px 14px; overflow: hidden; }
  .hp2-product-hero-brand { gap: 10px; align-items: center; }
  .hp2-product-hero-badge {
    font-size: clamp(0.62rem, 2.6vw, 0.76rem);
    letter-spacing: 1.2px;
    padding: 7px 12px;
    max-width: 100%;
    min-width: 0;
  }
  .hp2-product-hero-icon {
    width: clamp(44px, 13vw, 58px);
    height: clamp(44px, 13vw, 58px);
  }
  .hp2-product-hero h1 { font-size: clamp(1.6rem, 6vw, 2.4rem); }
  .artist-performances-grid { grid-template-columns: 1fr; gap: 20px; }
  .artist-performances-side { gap: 20px; }
  .performance-card__thumb,
  .performance-card--featured .performance-card__thumb { height: auto; }
  .hp2-instruments .hp2-container { width: auto; }
  .hp2-instruments-header { flex-direction: column; gap: 8px; }
  .hp2-instruments-intro,
  .hp2-instruments-intro .hp2-section-subtitle { text-align: left; }
  .hp2-instruments-link { align-self: flex-start; }
  .hp2-collections-grid { grid-template-columns: 1fr; max-width: 500px; }
  .hp2-collection-card { grid-template-columns: 40% 1fr; }
  .hp2-instr-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 0;
    padding-top: 0;
  }
  .hp2-instr-card,
  .hp2-instr-card:nth-child(4),
  .hp2-instr-card:nth-child(5) { grid-column: auto; }
  .hp2-proof-grid { grid-template-columns: 1fr; text-align: center; }
  .hp2-proof-divider { width: 60px; height: 1px; margin: 0 auto; }
  .hp2-proof-quote { flex-direction: column; align-items: center; text-align: center; }
  .hp2-cross-grid { grid-template-columns: 1fr; }
  .hp2-product-hero--naada .hp2-product-hero-content--naada {
    width: auto;
    max-width: 100%;
  }
  .hp2-view-all { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .hp2-product-hero { min-height: 420px; }
  .hp2-product-hero-content { padding: 32px 22px 40px; }
  .hp2-product-hero-brand { flex-wrap: wrap; align-items: center; }
  .hp2-product-hero-badge {
    font-size: clamp(0.58rem, 2.8vw, 0.72rem);
    letter-spacing: 1px;
    padding: 6px 11px;
  }
  .hp2-product-hero h1 { font-size: clamp(1.4rem, 8vw, 2rem); }
  .hp2-hero-ctas { flex-direction: column; }
  .hp2-btn-primary, .hp2-btn-secondary { justify-content: center; font-size: 0.6rem; padding: 12px 14px; letter-spacing: 1px; }
  .hp2-collection-card { grid-template-columns: 1fr; }
  .hp2-collection-img { min-height: 0; }
  .hp2-instr-grid { grid-template-columns: 1fr; }
  .hp2-instr-footer { align-items: flex-start; flex-direction: column; }
  .hp2-newsletter-inner { flex-direction: column; text-align: center; }
  .hp2-newsletter-form { flex-direction: column; width: 100%; }
  .hp2-newsletter-form input[type="email"] { width: 100%; }
  .hp2-sticky-text span { display: none; }
}
