/* =============================================================================
   Marula Music — Visual Style Guide
   Dark mode default. Geist (display) + Manrope (body/UI)
   Split identity: --mm-accent shifts red / yellow / cyan by section.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. Custom Properties & Split Identity
   ----------------------------------------------------------------------------- */

:root {
  /* Background layers */
  --mm-bg:            #0a0a0a;
  --mm-surface:       #141414;
  --mm-surface-el:    #1f1f1f;
  --mm-border:        #2a2a2a;

  /* Text */
  --mm-text-primary:  #ffffff;
  --mm-text-secondary:#b0b0b0;
  --mm-text-muted:    #444444;

  /* Brand accents */
  --mm-red:    #ff4444;
  --mm-cyan:   #44ffff;
  --mm-yellow: #ffff99;

  /* Active accent — default to red (label / homepage) */
  --mm-accent:        var(--mm-red);
  --mm-accent-dim:    rgba(255, 68, 68, 0.12);
  --mm-accent-hover:  #e03030;

  /* Fonts */
  --mm-font-display: 'Geist', sans-serif;
  --mm-font-body:    'Manrope', sans-serif;

  /* Spacing — 8px grid */
  --mm-space-xs:  4px;
  --mm-space-sm:  8px;
  --mm-space-md:  16px;
  --mm-space-lg:  24px;
  --mm-space-xl:  32px;
  --mm-space-2xl: 48px;
  --mm-space-3xl: 80px;

  /* Layout */
  --mm-max-width:  1200px;
  --mm-radius:     2px;
  --mm-header-h:   64px;

  /* Transitions */
  --mm-transition: 0.18s ease;
}

/* All sections now use red as the primary accent.
   Cyan is reserved as a secondary contrasting highlight for minor features only.
   Yellow is retired. */
body.section-studio,
body.section-utility,
body.section-community {
  --mm-accent:       var(--mm-red);
  --mm-accent-dim:   rgba(255, 68, 68, 0.12);
  --mm-accent-hover: #e03030;
}

/* Wire into GeneratePress CSS variable system */
:root {
  --base-color:   var(--mm-bg);
  --contrast:     var(--mm-text-primary);
  --contrast-2:   var(--mm-text-secondary);
  --contrast-3:   var(--mm-text-muted);
  --accent:       var(--mm-accent);
  --base-2:       var(--mm-surface);
  --base-3:       var(--mm-surface-el);
  --font-body:    var(--mm-font-body);
  --font-heading: var(--mm-font-display);
}

/* -----------------------------------------------------------------------------
   2. Base / Reset
   ----------------------------------------------------------------------------- */

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

html {
  background-color: var(--mm-bg) !important;
  color: var(--mm-text-primary) !important;
  font-family: var(--mm-font-body);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body {
  background-color: var(--mm-bg) !important;
  color: var(--mm-text-primary) !important;
  font-family: var(--mm-font-body);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  margin: 0;
  padding-top: var(--mm-header-h);
}

/* Override GP wrappers */
.site-container, #page,
.inside-article, .inside-right-sidebar, .inside-left-sidebar {
  background-color: var(--mm-bg) !important;
  color: var(--mm-text-primary) !important;
}

/* Remove GP defaults that fight the design */
.generate-columns-container { margin: 0; }
.site-main {
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
}
.site-content {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}
.content-area {
  max-width: none !important;
  width: 100% !important;
  float: none !important;
}

/* Default-template pages and single posts: constrain the whole content+sidebar
   wrapper to the footer's mm-container width so edges line up with the footer.
   Custom templates (front-page, label, studio, community) keep the full-bleed
   layout defined above. */
.page-template-default .site-content,
.single .site-content,
.blog .site-content,
.archive .site-content,
.search .site-content,
.error404 .site-content {
  max-width: var(--mm-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--mm-space-lg) !important;
  padding-right: var(--mm-space-lg) !important;
  box-sizing: border-box;
}
.page-template-default .inside-article,
.single .inside-article,
.blog .inside-article,
.archive .inside-article,
.search .inside-article,
.error404 .inside-article {
  padding: var(--mm-space-3xl) 0;
  background-color: transparent !important;
}

/* Entry header + title — match site typography */
.entry-header { margin-bottom: var(--mm-space-2xl); }
.entry-title,
.entry-title a {
  font-family: var(--mm-font-display) !important;
  font-weight: 900 !important;
  color: var(--mm-text-primary) !important;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0;
}
.entry-title { font-size: clamp(36px, 5vw, 56px); }
.entry-meta,
.entry-meta a {
  color: var(--mm-text-muted) !important;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
}

/* Entry content typography */
.entry-content {
  color: var(--mm-text-secondary) !important;
  font-size: 15px;
  line-height: 1.75;
}
.entry-content h2 {
  font-family: var(--mm-font-display);
  font-size: clamp(22px, 2.4vw, 28px);
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--mm-text-primary) !important;
  margin: var(--mm-space-2xl) 0 var(--mm-space-md);
}
.entry-content h3 {
  font-family: var(--mm-font-display);
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: 0;
  color: var(--mm-text-primary) !important;
  margin: var(--mm-space-xl) 0 var(--mm-space-sm);
}
.entry-content p,
.entry-content li,
.entry-content dd,
.entry-content dt,
.entry-content blockquote {
  color: var(--mm-text-secondary) !important;
  font-family: var(--mm-font-body);
  font-size: 15px;
  line-height: 1.75;
}
.entry-content p { margin: 0 0 var(--mm-space-md); }
.entry-content ul,
.entry-content ol {
  margin: 0 0 var(--mm-space-md);
  padding-left: 1.4em;
}
.entry-content li { margin-bottom: var(--mm-space-xs); }
.entry-content strong,
.entry-content b {
  color: var(--mm-text-primary) !important;
  font-weight: 700;
}
.entry-content em,
.entry-content i { color: inherit; }
.entry-content blockquote {
  border-left: 2px solid var(--mm-border);
  padding-left: var(--mm-space-lg);
  margin: var(--mm-space-xl) 0;
  font-style: italic;
  color: var(--mm-text-muted) !important;
}
.entry-content code,
.entry-content pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  background-color: rgba(255, 255, 255, 0.04);
  padding: 2px 6px;
  border-radius: 2px;
  color: var(--mm-text-primary);
}
.entry-content pre { padding: var(--mm-space-md); overflow-x: auto; }
.entry-content hr {
  border: 0;
  border-top: 1px solid var(--mm-border);
  margin: var(--mm-space-2xl) 0;
}
.entry-content a {
  color: var(--mm-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.entry-content a:hover { color: var(--mm-text-primary); }

/* Sidebar widgets — match footer nav-col pattern (white headings, muted body) */
.widget-area { background-color: transparent !important; }
.sidebar .widget,
.widget-area .widget {
  background-color: transparent !important;
  padding: 0 !important;
  margin-bottom: var(--mm-space-2xl);
  color: var(--mm-text-secondary);
}
.widget-title,
.widget h1,
.widget h2,
.widget h3,
.widget h4 {
  font-family: var(--mm-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted) !important;
  margin: 0 0 var(--mm-space-md) !important;
}
.widget ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-xs);
}
.widget li { margin: 0; padding: 0; }
.widget a {
  font-size: 13px;
  font-weight: 500;
  color: var(--mm-text-secondary);
  text-decoration: none;
  transition: color var(--mm-transition);
}
.widget a:hover { color: var(--mm-text-primary); }
.widget input[type="search"],
.widget input[type="text"] {
  background-color: var(--mm-bg-elevated, #141414);
  border: 1px solid var(--mm-border);
  color: var(--mm-text-primary);
  padding: 10px 12px;
  font-size: 13px;
  width: 100%;
  box-sizing: border-box;
}
.widget input[type="search"]:focus,
.widget input[type="text"]:focus {
  border-color: var(--mm-text-muted);
  outline: none;
}
.widget button,
.widget input[type="submit"] {
  background-color: var(--mm-text-primary);
  color: var(--mm-bg);
  border: 0;
  padding: 10px 16px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  cursor: pointer;
}

/* -----------------------------------------------------------------------------
   3. Typography
   ----------------------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--mm-font-display);
  font-weight: 700;
  line-height: 1.1;
  color: var(--mm-text-primary);
  margin-top: 0;
}

h1 {
  font-size: clamp(32px, 6vw, 48px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
}

h2 {
  font-size: clamp(22px, 3.5vw, 28px);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}

h3 {
  font-family: var(--mm-font-body);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

h4, h5, h6 {
  font-family: var(--mm-font-body);
  font-weight: 600;
}

p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--mm-text-primary);
  margin-bottom: var(--mm-space-md);
}

.body-large { font-size: 16px; line-height: 1.7; }

figcaption, .caption {
  font-size: 12px;
  line-height: 1.5;
  color: var(--mm-text-secondary);
}

/* Section eyebrow — small caps label above headings */
/* Global eyebrow — now matches the home page section-head pattern:
   short red rule, then small uppercase label. */
.mm-eyebrow {
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--mm-red);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: var(--mm-space-md);
}
.mm-eyebrow::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}

/* Links */
a {
  color: inherit;
  text-decoration: none;
  transition: color var(--mm-transition);
}

a:hover { color: var(--mm-accent); }

/* -----------------------------------------------------------------------------
   4. Layout Containers
   ----------------------------------------------------------------------------- */

.mm-container {
  max-width: var(--mm-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--mm-space-lg);
  padding-right: var(--mm-space-lg);
}

.mm-container--narrow {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--mm-space-lg);
  padding-right: var(--mm-space-lg);
}

@media (max-width: 768px) {
  .mm-container,
  .mm-container--narrow {
    padding-left: var(--mm-space-md);
    padding-right: var(--mm-space-md);
  }
}

/* Full-bleed section with inner container */
.mm-section {
  padding: var(--mm-space-3xl) 0;
}

.mm-section--flush { padding: 0; }
.mm-section--sm    { padding: var(--mm-space-2xl) 0; }

/* Section divider line */
.mm-divider {
  border: none;
  border-top: 1px solid var(--mm-border);
  margin: 0;
}

/* Accent divider */
.mm-divider--accent {
  border-top-color: var(--mm-accent);
  border-top-width: 2px;
}

/* -----------------------------------------------------------------------------
   5. Header
   ----------------------------------------------------------------------------- */

.mm-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--mm-header-h);
  background-color: var(--mm-surface);
  border-bottom: 1px solid var(--mm-border);
}

/* Accent stripe — shifts colour with section */
.mm-header__stripe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background-color: var(--mm-accent);
  transition: background-color 0.4s ease;
}

.mm-header__inner {
  display: flex;
  align-items: center;
  height: 100%;
  /* Full viewport width — logo flush left, menu flush right. */
  max-width: none;
  margin: 0;
  padding: 0 var(--mm-space-2xl);
  gap: var(--mm-space-xl);
}
@media (max-width: 600px) {
  .mm-header__inner {
    padding: 0 var(--mm-space-lg);
  }
}

/* Logo */
.mm-logo {
  flex-shrink: 0;
  text-decoration: none;
  transition: opacity var(--mm-transition);
  display: flex;
  align-items: center;
}

.mm-logo img {
  display: block;
  height: 28px !important;
  width: auto !important;
  max-height: 36px !important;
}

.mm-logo:hover { opacity: 0.7; }

/* Primary nav */
.mm-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.mm-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0;
}

.mm-nav > ul > li {
  position: relative;
}

.mm-nav > ul > li > a {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 var(--mm-space-sm);
  height: calc(var(--mm-header-h) - 3px); /* offset for stripe */
  font-family: var(--mm-font-body);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--mm-text-secondary);
  text-decoration: none;
  transition: color var(--mm-transition);
  position: relative;
}

.mm-nav > ul > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: var(--mm-space-sm);
  right: var(--mm-space-sm);
  height: 2px;
  background-color: var(--mm-accent);
  transform: scaleX(0);
  transition: transform 0.2s ease;
}

.mm-nav > ul > li > a:hover,
.mm-nav > ul > li.current-menu-ancestor > a,
.mm-nav > ul > li.current-menu-item > a {
  color: var(--mm-text-primary);
}

.mm-nav > ul > li > a:hover::after,
.mm-nav > ul > li.current-menu-ancestor > a::after,
.mm-nav > ul > li.current-menu-item > a::after {
  transform: scaleX(1);
}

/* Dropdown arrow */
.mm-nav .menu-item-has-children > a .mm-arrow {
  font-size: 8px;
  opacity: 0.5;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.mm-nav .menu-item-has-children:hover > a .mm-arrow {
  transform: rotate(180deg);
  opacity: 1;
}

/* Dropdown menu */
.mm-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background-color: var(--mm-surface);
  border: 1px solid var(--mm-border);
  border-top: 2px solid var(--mm-accent);
  padding: var(--mm-space-sm) 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
  z-index: 100;
}

.mm-nav .menu-item-has-children:hover .sub-menu,
.mm-nav .menu-item-has-children:focus-within .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.mm-nav .sub-menu li a {
  display: block;
  padding: var(--mm-space-sm) var(--mm-space-lg);
  font-family: var(--mm-font-body);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-text-secondary);
  transition: color var(--mm-transition), background var(--mm-transition);
}

.mm-nav .sub-menu li a:hover {
  color: var(--mm-text-primary);
  background-color: var(--mm-surface-el);
}

/* Section pill — label / studio indicator */
.mm-section-pill {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--mm-accent);
  padding: 4px 10px;
  border: 1px solid var(--mm-accent);
  opacity: 0.7;
}

.mm-section-pill__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: var(--mm-accent);
  flex-shrink: 0;
}

/* Cart link */
.mm-header-cart {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-text-secondary);
  padding: 0 var(--mm-space-sm);
  transition: color var(--mm-transition);
}

.mm-header-cart:hover { color: var(--mm-text-primary); }

/* Mobile toggle */
.mm-mobile-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--mm-space-sm);
  margin-left: auto;
}

.mm-mobile-toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  background-color: var(--mm-text-primary);
  transition: transform 0.25s ease, opacity 0.25s ease;
  transform-origin: center;
}

.mm-mobile-toggle.is-active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.mm-mobile-toggle.is-active span:nth-child(2) { opacity: 0; }
.mm-mobile-toggle.is-active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* Mobile nav overlay */
.mm-mobile-nav {
  display: none;
  position: fixed;
  top: var(--mm-header-h);
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--mm-surface);
  z-index: 999;
  overflow-y: auto;
  padding: var(--mm-space-xl);
  opacity: 0;
  transform: translateX(100%);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.mm-mobile-nav.is-open {
  opacity: 1;
  transform: translateX(0);
}

.mm-mobile-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mm-mobile-nav > ul > li {
  border-bottom: 1px solid var(--mm-border);
}

.mm-mobile-nav a {
  display: block;
  padding: var(--mm-space-md) 0;
  font-family: var(--mm-font-display);
  font-size: 22px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--mm-text-primary);
}

.mm-mobile-nav a:hover { color: var(--mm-accent); }

.mm-mobile-nav .sub-menu {
  padding: 0 0 var(--mm-space-md) var(--mm-space-md);
}

.mm-mobile-nav .sub-menu li a {
  font-size: 13px;
  font-weight: 600;
  font-family: var(--mm-font-body);
  padding: var(--mm-space-xs) 0;
  color: var(--mm-text-secondary);
}

@media (max-width: 900px) {
  .mm-nav    { display: none; }
  .mm-section-pill { display: none; }
  .mm-mobile-toggle { display: flex; }
  .mm-mobile-nav { display: block; }
}

/* -----------------------------------------------------------------------------
   6. Footer
   ----------------------------------------------------------------------------- */

.mm-footer {
  background-color: var(--mm-surface);
  border-top: 1px solid var(--mm-border);
  padding: var(--mm-space-3xl) 0 var(--mm-space-2xl);
}

.mm-footer__top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
  gap: var(--mm-space-3xl);
  padding-bottom: var(--mm-space-3xl);
  border-bottom: 1px solid var(--mm-border);
}

@media (max-width: 900px) {
  .mm-footer__top {
    grid-template-columns: 1fr 1fr;
    gap: var(--mm-space-2xl);
  }
}

@media (max-width: 600px) {
  .mm-footer__top {
    grid-template-columns: 1fr;
    gap: var(--mm-space-xl);
  }
}

.mm-footer__logo {
  font-family: var(--mm-font-display);
  font-size: 15px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--mm-text-primary);
  display: block;
  margin-bottom: var(--mm-space-md);
  text-decoration: none;
}

.mm-footer__tagline {
  font-size: 12px;
  line-height: 1.6;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-lg);
}

/* Social links */
.mm-footer__social {
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-xs);
}

.mm-footer__social-group {
  margin-bottom: var(--mm-space-sm);
}

.mm-footer__social-group-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-xs);
}

.mm-footer__social a {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-text-secondary);
  padding: 3px 0;
  transition: color var(--mm-transition);
}

.mm-footer__social a:hover { color: var(--mm-text-primary); }

/* Footer nav columns */
.mm-footer__nav-col h4 {
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-md);
}

.mm-footer__nav-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-xs);
}

.mm-footer__nav-col a {
  font-size: 13px;
  font-weight: 500;
  color: var(--mm-text-secondary);
  transition: color var(--mm-transition);
}

.mm-footer__nav-col a:hover { color: var(--mm-text-primary); }

/* Newsletter */
.mm-footer__newsletter h4 {
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-md);
}

.mm-footer__newsletter p {
  font-size: 12px;
  color: var(--mm-text-secondary);
  margin-bottom: var(--mm-space-md);
}

.mm-footer__newsletter-form {
  display: flex;
  gap: 0;
  border: 1px solid var(--mm-border);
  overflow: hidden;
}

.mm-footer__newsletter-form input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--mm-text-primary);
  font-size: 12px;
  padding: var(--mm-space-sm) var(--mm-space-md);
  min-width: 0;
}

.mm-footer__newsletter-form input[type="email"]:focus {
  outline: none;
  border: none;
}

.mm-footer__newsletter-form button {
  flex-shrink: 0;
  background-color: var(--mm-accent);
  color: #000;
  border: none;
  padding: var(--mm-space-sm) var(--mm-space-md);
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: opacity var(--mm-transition);
}

.mm-footer__newsletter-form button:hover { opacity: 0.8; }

/* Footer bottom bar */
.mm-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--mm-space-xl);
  gap: var(--mm-space-lg);
  flex-wrap: wrap;
}

.mm-footer__copy {
  font-size: 11px;
  color: var(--mm-text-muted);
}

.mm-footer__legal {
  display: flex;
  gap: var(--mm-space-lg);
  list-style: none;
  margin: 0;
  padding: 0;
}

.mm-footer__legal a {
  font-size: 11px;
  color: var(--mm-text-muted);
  transition: color var(--mm-transition);
}

.mm-footer__legal a:hover { color: var(--mm-text-secondary); }

/* -----------------------------------------------------------------------------
   7. Homepage — Hero
   ----------------------------------------------------------------------------- */

.mm-hero {
  min-height: calc(100vh - var(--mm-header-h));
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
  position: relative;
  overflow: hidden;
  background-color: var(--mm-bg);
}

/* Faint background grid lines */
.mm-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--mm-border) 1px, transparent 1px),
    linear-gradient(to bottom, var(--mm-border) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.15;
  pointer-events: none;
  z-index: 1;
}

/* WebGL wireframe background canvas */
.mm-hero__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  display: block;
  will-change: transform, filter;
  filter: blur(1px);
}

/* Ghost text behind the wordmark — large, faint, layered depth */
.mm-hero__bg-text {
  display: none;
  position: absolute;
  top: 50%;
  left: -0.05em;
  transform: translateY(-50%);
  font-family: var(--mm-font-display);
  font-size: clamp(160px, 28vw, 340px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  color: var(--mm-text-primary);
  opacity: 0.028;
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
  line-height: 1;
}

.mm-hero__inner {
  position: relative;
  z-index: 1;
  max-width: var(--mm-max-width);
  margin: 0 auto;
  /* Horizontal padding matches .mm-container so hero content aligns with
     every section below (Recent Releases, Articles, Shop, Studio Teaser). */
  padding: var(--mm-space-3xl) var(--mm-space-lg);
  width: 100%;
}

.mm-hero__wordmark {
  font-family: var(--mm-font-display);
  font-size: clamp(64px, 12vw, 136px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  line-height: 0.92;
  color: var(--mm-text-primary);
  margin: 0 0 var(--mm-space-2xl);
  max-width: 10ch;
}

/* Forces the line break between "Marula" and "Music" without using <br>,
   so the H1 textContent reads "Marula Music" (with a space) for SEO. */
.mm-hero__wordmark-break {
  display: block;
  width: 0;
  height: 0;
}

.mm-hero__meta {
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-xl);
}

.mm-hero__meta span {
  margin: 0 var(--mm-space-sm);
  opacity: 0.5;
}

.mm-hero__cta {
  display: flex;
  gap: var(--mm-space-md);
  flex-wrap: wrap;
}

/* Outlined CTA buttons — fill on hover */
.mm-btn {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: var(--mm-space-sm);
  padding: 14px var(--mm-space-xl);
  font-family: var(--mm-font-body);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  transition: background var(--mm-transition), color var(--mm-transition);
  text-decoration: none;
}

.mm-btn--label {
  color: var(--mm-red);
}
.mm-btn--label:hover {
  background-color: var(--mm-red);
  color: #fff;
}

.mm-btn--studio {
  color: var(--mm-red);
}
.mm-btn--studio:hover {
  background-color: var(--mm-red);
  color: #fff;
}

.mm-btn--community {
  color: var(--mm-red);
}
.mm-btn--community:hover {
  background-color: var(--mm-red);
  color: #fff;
}

.mm-btn--outline {
  background: transparent;
  border-color: var(--mm-accent);
  color: var(--mm-accent);
}
.mm-btn--outline:hover {
  background-color: var(--mm-accent);
  color: #000;
}

/* Demo submission button in contact sidebar */
.mm-demo-btn {
  display: block;
  margin-top: var(--mm-space-md);
  font-size: 11px;
}

.mm-btn--accent {
  color: var(--mm-accent);
}
.mm-btn--accent:hover {
  background-color: var(--mm-accent);
  color: #000;
}

.mm-btn__arrow {
  font-size: 14px;
  transition: transform 0.2s ease;
}
.mm-btn:hover .mm-btn__arrow { transform: translateX(4px); }

/* Scroll cue */
.mm-hero__scroll {
  display: flex;
  align-items: center;
  gap: var(--mm-space-md);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
  max-width: var(--mm-max-width);
  margin: 0 auto;
  padding: var(--mm-space-xl) var(--mm-space-lg);
  width: 100%;
  box-sizing: border-box;
}

.mm-hero__scroll-line {
  flex: 1;
  max-width: 60px;
  height: 1px;
  background: linear-gradient(to right, var(--mm-accent), transparent);
}

/* Hero animation — staggered entrance */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

.mm-hero__inner > * {
  animation: fadeUp 0.7s ease both;
}

.mm-hero__inner .mm-hero__wordmark   { animation-delay: 0.05s; }
.mm-hero__inner .mm-hero__meta       { animation-delay: 0.15s; }
.mm-hero__inner .mm-hero__cta        { animation-delay: 0.25s; }

/* -----------------------------------------------------------------------------
   8. Section Headers (editorial stripe treatment)
   ----------------------------------------------------------------------------- */

/* Inline section header (used inside label / studio / community / single pages).
   Harmonised with the home page section-head: short red rule above the title,
   bigger Geist display title, right-aligned ghost-button link. */
.mm-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--mm-space-xl);
  margin-bottom: var(--mm-space-2xl);
  flex-wrap: wrap;
  position: relative;
}

.mm-section-header::before {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background-color: var(--mm-red);
  position: absolute;
  top: 0;
  left: 0;
}

.mm-section-header h2 {
  font-family: var(--mm-font-display);
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
  margin: var(--mm-space-md) 0 0;
  padding-left: 0;
}

.mm-section-header__link {
  font-family: var(--mm-font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
  text-decoration: none;
  padding: 12px 20px;
  border: 1px solid var(--mm-border);
  border-radius: 2px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color var(--mm-transition), border-color var(--mm-transition);
}

.mm-section-header__link:hover {
  color: #fff;
  border-color: var(--mm-red);
}

/* -----------------------------------------------------------------------------
   9. Release Cards
   ----------------------------------------------------------------------------- */

.mm-releases-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--mm-space-lg);
}

.mm-release-card {
  display: flex;
  flex-direction: column;
  background-color: var(--mm-surface);
  border: 1px solid var(--mm-border);
  overflow: hidden;
  transition: border-color var(--mm-transition), transform 0.25s ease;
}

.mm-release-card:hover {
  border-color: #555555;
  transform: translateY(-2px);
}

.mm-release-card__artwork {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background-color: var(--mm-surface-el);
}

.mm-release-card__artwork img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.mm-release-card:hover .mm-release-card__artwork img {
  transform: scale(1.03);
}

.mm-release-card__catalog {
  position: absolute;
  top: var(--mm-space-sm);
  right: var(--mm-space-sm);
  font-family: var(--mm-font-body);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #fff;
  background-color: rgba(0,0,0,0.7);
  padding: 3px 6px;
}

.mm-release-card__body {
  padding: var(--mm-space-md);
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* (Red top stripe removed — match shop card design) */

.mm-release-card__title {
  font-family: var(--mm-font-display);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--mm-text-primary);
  margin-bottom: var(--mm-space-xs);
  line-height: 1.2;
}

.mm-release-card__artist {
  font-size: 11px;
  font-weight: 600;
  color: var(--mm-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--mm-space-sm);
}

.mm-release-card__link {
  margin-top: auto;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-accent);
}

/* -----------------------------------------------------------------------------
   10. Featured Release (homepage)
   ----------------------------------------------------------------------------- */

/* ── Homepage feature cards (release / post / product) ──────────────────── */

.mm-feature-cards {
  border-top: 1px solid var(--mm-border);
  border-bottom: 1px solid var(--mm-border);
  background: var(--mm-surface);
}

.mm-feature-cards__grid {
  display: grid;
  grid-template-columns: 1fr;
  max-width: var(--mm-max-width);
  margin: 0 auto;
  gap: var(--mm-space-xl);
  padding: var(--mm-space-xl) var(--mm-space-lg);
}

/* ── Individual card ─────────────────────────────────────────────────────── */

.mm-feature-card {
  display: grid;
  grid-template-columns: 40% 1fr;
  min-height: 280px;
  border: 1px solid var(--mm-border);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
}

.mm-feature-card:nth-child(even) {
  grid-template-columns: 1fr 40%;
}

.mm-feature-card:nth-child(even) .mm-feature-card__image {
  order: 2;
}

.mm-feature-card:nth-child(even) .mm-feature-card__body {
  order: 1;
}

@media (max-width: 768px) {
  .mm-feature-card {
    grid-template-columns: 1fr;
  }
  .mm-feature-card:nth-child(even) {
    grid-template-columns: 1fr;
  }
  .mm-feature-card:nth-child(even) .mm-feature-card__image,
  .mm-feature-card:nth-child(even) .mm-feature-card__body {
    order: unset;
  }
  .mm-feature-card__image {
    min-height: 200px;
  }
}

/* ── Card image ──────────────────────────────────────────────────────────── */

.mm-feature-card__image {
  position: relative;
  overflow: hidden;
  background: var(--mm-surface-el);
}

.mm-feature-card__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.mm-feature-card:hover .mm-feature-card__image img {
  transform: scale(1.04);
}

.mm-feature-card__image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mm-font-display);
  font-size: 48px;
  font-weight: 900;
  color: var(--mm-border);
  text-transform: uppercase;
}

/* ── Card body ───────────────────────────────────────────────────────────── */

.mm-feature-card__body {
  padding: var(--mm-space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-md);
  flex: 1;
  justify-content: center;
}

.mm-feature-card__tag {
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  display: inline-flex;
  align-items: center;
  gap: var(--mm-space-sm);
}

.mm-feature-card__tag::before {
  content: '';
  display: block;
  width: 16px;
  height: 2px;
  flex-shrink: 0;
}

.mm-feature-card--release .mm-feature-card__tag { color: var(--mm-red); }
.mm-feature-card--release .mm-feature-card__tag::before { background: var(--mm-red); }

.mm-feature-card--post .mm-feature-card__tag { color: var(--mm-red); }
.mm-feature-card--post .mm-feature-card__tag::before { background: var(--mm-red); }

.mm-feature-card--product .mm-feature-card__tag { color: var(--mm-red); }
.mm-feature-card--product .mm-feature-card__tag::before { background: var(--mm-red); }

.mm-feature-card__title {
  font-family: var(--mm-font-display);
  font-size: clamp(16px, 1.8vw, 22px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--mm-text-primary);
  margin: 0;
}

.mm-feature-card__meta {
  font-size: 11px;
  font-weight: 600;
  color: var(--mm-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0;
}

.mm-feature-card__price {
  font-family: var(--mm-font-display);
  font-size: 20px;
  font-weight: 900;
  color: var(--mm-red);
  margin: 0;
}

.mm-feature-card__actions {
  margin-top: auto;
  padding-top: var(--mm-space-md);
}

/* -----------------------------------------------------------------------------
   11. Artist Cards
   ----------------------------------------------------------------------------- */

.mm-artists-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--mm-space-lg);
}

.mm-artist-card {
  display: block;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  background-color: var(--mm-surface-el);
}

.mm-artist-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.04) 50%, transparent 100%);
  animation: mm-shimmer 1.4s ease-in-out infinite;
  z-index: 1;
  pointer-events: none;
}
.mm-artist-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  filter: grayscale(30%);
  position: relative;
  z-index: 2;
}

.mm-artist-card:hover img {
  transform: scale(1.05);
  filter: grayscale(0%);
}

.mm-artist-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 55%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--mm-space-md);
}

.mm-artist-card__name {
  font-family: var(--mm-font-display);
  font-size: 15px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: #fff;
  line-height: 1.1;
}

.mm-artist-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
  padding: var(--mm-space-md);
  background-color: var(--mm-surface-el);
  border: 1px solid var(--mm-border);
}

/* -----------------------------------------------------------------------------
   12. Studio Teaser (homepage)
   ----------------------------------------------------------------------------- */

/*
 * CSS subgrid aligns tag / h2 / p / button at identical y-positions across all
 * three panels regardless of content height. The parent defines 4 row tracks;
 * each panel spans all 4 and uses subgrid to inherit them.
 */
.mm-studio-teaser {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto auto auto;
  row-gap: var(--mm-space-xl);
  /* Align with every other section by constraining to mm-container width. */
  max-width: var(--mm-max-width);
  margin: 0 auto;
  padding: var(--mm-space-3xl) var(--mm-space-lg);
  background: var(--mm-surface);
  border-top: 1px solid var(--mm-border);
  border-bottom: 1px solid var(--mm-border);
  box-sizing: border-box;
}

@media (max-width: 768px) {
  .mm-studio-teaser {
    grid-template-columns: 1fr;
    grid-template-rows: unset;
    row-gap: 0;
    padding: 0;
    max-width: none;
  }
}

.mm-studio-teaser__panel {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  /* Uniform horizontal padding inside each 1fr column.
     First panel loses its left padding, last panel loses right padding
     so text aligns with the section edges rather than floating in. */
  padding: 0 var(--mm-space-xl);
  border-right: 1px solid var(--mm-border);
}
.mm-studio-teaser__panel:first-child { padding-left: 0; }
.mm-studio-teaser__panel:last-child  { padding-right: 0; }

.mm-studio-teaser__panel:last-child {
  border-right: none;
}

@media (max-width: 768px) {
  .mm-studio-teaser__panel {
    display: flex;
    flex-direction: column;
    gap: var(--mm-space-lg);
    grid-row: auto;
    padding: var(--mm-space-2xl) var(--mm-space-xl);
    border-right: none;
    border-bottom: 1px solid var(--mm-border);
  }
  /* Reset the desktop two-column edge-hugging rules on mobile —
     panels stack here, so each one needs uniform horizontal padding. */
  .mm-studio-teaser__panel:first-child { padding-left: var(--mm-space-xl); }
  .mm-studio-teaser__panel:last-child  { padding-right: var(--mm-space-xl); }
  .mm-studio-teaser__panel:last-child { border-bottom: none; }
}

/* Background now on the parent — panels are transparent */
.mm-studio-teaser__panel--left,
.mm-studio-teaser__panel--right,
.mm-studio-teaser__panel--community {
  background: none;
}

.mm-studio-teaser__tag {
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  display: inline-flex;
  align-items: center;
  gap: var(--mm-space-sm);
}

.mm-studio-teaser__tag::before {
  content: '';
  display: block;
  width: 20px;
  height: 2px;
}

.mm-studio-teaser__panel--left .mm-studio-teaser__tag {
  color: var(--mm-red);
}
.mm-studio-teaser__panel--left .mm-studio-teaser__tag::before {
  background-color: var(--mm-red);
}

.mm-studio-teaser__panel--right .mm-studio-teaser__tag {
  color: var(--mm-red);
}
.mm-studio-teaser__panel--right .mm-studio-teaser__tag::before {
  background-color: var(--mm-red);
}

.mm-studio-teaser__panel--community .mm-studio-teaser__tag {
  color: var(--mm-red);
}
.mm-studio-teaser__panel--community .mm-studio-teaser__tag::before {
  background-color: var(--mm-red);
}

.mm-studio-teaser h2 {
  font-family: var(--mm-font-display);
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1;
}

.mm-studio-teaser p {
  font-size: 13px;
  color: var(--mm-text-secondary);
  max-width: 36ch;
  margin: 0;
  line-height: 1.7;
}

/* -----------------------------------------------------------------------------
   13. Buttons (global)
   ----------------------------------------------------------------------------- */

.button,
.wp-block-button__link,
input[type="submit"],
button[type="submit"] {
  font-family: var(--mm-font-body);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background-color: var(--mm-accent);
  color: #000000;
  border: none;
  padding: 12px var(--mm-space-xl);
  cursor: pointer;
  transition: opacity var(--mm-transition);
  display: inline-block;
  border-radius: 0;
}

.button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  opacity: 0.85;
  color: #000000;
}

/* -----------------------------------------------------------------------------
   14. Forms
   ----------------------------------------------------------------------------- */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
textarea,
select {
  background-color: var(--mm-surface-el);
  border: 1px solid var(--mm-border);
  color: var(--mm-text-primary);
  font-family: var(--mm-font-body);
  font-size: 13px;
  padding: var(--mm-space-sm) var(--mm-space-md);
  width: 100%;
  border-radius: 0;
  transition: border-color var(--mm-transition);
  appearance: none;
}

input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--mm-accent);
}

::placeholder { color: var(--mm-text-muted); }

label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--mm-text-secondary);
}

/* -----------------------------------------------------------------------------
   15. Images
   ----------------------------------------------------------------------------- */

img { max-width: 100%; height: auto; display: block; }

.wp-post-image, .attachment-post-thumbnail {
  width: 100%;
  object-fit: cover;
}

/* -----------------------------------------------------------------------------
   16. Utility
   ----------------------------------------------------------------------------- */

.text-accent  { color: var(--mm-accent); }
.text-red     { color: var(--mm-red); }
.text-yellow  { color: var(--mm-yellow); }
.text-cyan    { color: var(--mm-cyan); }
.text-muted   { color: var(--mm-text-secondary); }
.text-upper   { text-transform: uppercase; letter-spacing: 0.08em; }
.bg-surface   { background-color: var(--mm-surface); }
.bg-elevated  { background-color: var(--mm-surface-el); }

/* Visually hidden (accessibility) */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px; width: 1px;
  overflow: hidden;
}

/* WooCommerce baseline resets */
.woocommerce-store-notice,
p.demo_store {
  background-color: var(--mm-accent);
  color: #000;
}

/* =============================================================================
   17. Page Hero (label / studio landing pages)
   ============================================================================= */

.mm-page-hero {
  padding: var(--mm-space-md) 0 var(--mm-space-md);
}

/* Tighten the first section after a page hero so the visual gap below the
   hero description doesn't double up with .mm-section's default 3xl padding. */
.mm-page-hero + .mm-section,
.mm-page-hero + .mm-section--sm {
  padding-top: var(--mm-space-xl);
}

.mm-page-hero--sm {
  padding-top: var(--mm-space-xl);
  border-bottom: 1px solid var(--mm-border);
  position: relative;
  overflow: hidden;
}

/* Faint cross-hatch background */
.mm-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--mm-border) 1px, transparent 1px),
    linear-gradient(to bottom, var(--mm-border) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.25;
  pointer-events: none;
}

.mm-page-hero__inner {
  position: relative;
  z-index: 1;
}

.mm-page-hero__title {
  font-family: var(--mm-font-display);
  font-size: clamp(48px, 9vw, 96px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  line-height: 0.92;
  color: var(--mm-text-primary);
  margin: 0 0 var(--mm-space-xl);
}

.mm-page-hero__desc {
  font-size: 15px;
  line-height: 1.7;
  color: var(--mm-text-secondary);
  max-width: 52ch;
  margin: 0;
}

/* =============================================================================
   18. Post / Article Cards
   ============================================================================= */

.mm-post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--mm-space-lg);
}

.mm-post-grid--sm {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.mm-post-grid--wide {
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

.mm-post-card__excerpt {
  font-size: 13px;
  line-height: 1.6;
  color: var(--mm-text-muted);
  margin: var(--mm-space-sm) 0;
}

.mm-post-card {
  display: flex;
  flex-direction: column;
  background-color: var(--mm-surface);
  border: 1px solid var(--mm-border);
  overflow: hidden;
  transition: border-color var(--mm-transition), transform 0.25s ease;
  text-decoration: none;
  color: inherit;
}

.mm-post-card:hover {
  border-color: var(--mm-accent);
  transform: translateY(-2px);
}

.mm-post-card__thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: var(--mm-surface-el);
  flex-shrink: 0;
}

.mm-post-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.mm-post-card:hover .mm-post-card__thumb img {
  transform: scale(1.04);
}

.mm-post-card__thumb-placeholder {
  width: 100%;
  height: 100%;
  background-color: var(--mm-surface-el);
}

.mm-post-card__body {
  padding: var(--mm-space-md);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-xs);
}

.mm-post-card__cat {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-accent);
}

.mm-post-card__title {
  font-family: var(--mm-font-body);
  font-size: 15px;
  font-weight: 700;
  color: var(--mm-text-primary);
  line-height: 1.3;
  margin: 0;
}

.mm-post-card__date {
  font-size: 11px;
  color: var(--mm-text-muted);
  margin-top: auto;
  padding-top: var(--mm-space-sm);
}

/* =============================================================================
   19. Studio Services
   ============================================================================= */

.mm-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--mm-border);
}

@media (max-width: 768px) {
  .mm-services-grid { grid-template-columns: 1fr; }
}

.mm-service-card {
  padding: var(--mm-space-2xl) var(--mm-space-xl);
  border-right: 1px solid var(--mm-border);
  position: relative;
  transition: background var(--mm-transition);
  display: flex;
  flex-direction: column;
}

/* Push the Enquire button to the card's bottom edge so all three line up
   regardless of description length. */
.mm-service-card > .mm-btn {
  margin-top: auto;
  align-self: flex-start;
}

.mm-service-card:last-child { border-right: none; }

.mm-service-card::before {
  content: '';
  display: block;
  height: 3px;
  background-color: var(--mm-accent);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.mm-service-card:hover::before { transform: scaleX(1); }
.mm-service-card:hover { background-color: var(--mm-surface-el); }

.mm-service-card__num {
  font-family: var(--mm-font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-lg);
}

.mm-service-card__title {
  font-family: var(--mm-font-display);
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: var(--mm-space-md);
}

.mm-service-card__desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--mm-text-secondary);
  margin-bottom: var(--mm-space-xl);
}

/* =============================================================================
   20. Single Release
   ============================================================================= */

.mm-single-release__hero {
  display: grid;
  grid-template-columns: 480px 1fr;
  min-height: 480px;
  max-width: var(--mm-max-width);
  margin-left: auto;
  margin-right: auto;
  border-bottom: 1px solid var(--mm-border);
}

@media (max-width: 900px) {
  .mm-single-release__hero { grid-template-columns: 1fr; }
}

.mm-single-release__artwork {
  position: relative;
  background-color: var(--mm-surface-el);
  aspect-ratio: 1;
  overflow: hidden;
}

.mm-single-release__artwork img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.mm-single-release__artwork-placeholder {
  width: 100%;
  height: 100%;
  min-height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mm-font-display);
  font-size: 80px;
  font-weight: 900;
  color: var(--mm-border);
  text-transform: uppercase;
}

.mm-single-release__info {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: var(--mm-space-xl) var(--mm-space-3xl) var(--mm-space-3xl);
  border-left: 1px solid var(--mm-border);
  gap: var(--mm-space-md);
}

@media (max-width: 900px) {
  .mm-single-release__info {
    padding: var(--mm-space-2xl) var(--mm-space-xl);
    border-left: none;
    border-top: 1px solid var(--mm-border);
  }
}

.mm-single-release__meta {
  display: flex;
  gap: var(--mm-space-lg);
  flex-wrap: wrap;
}

.mm-single-release__meta-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mm-single-release__meta-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
}

.mm-single-release__meta-value {
  font-size: 13px;
  font-weight: 600;
  color: var(--mm-text-primary);
}

.mm-single-release__title {
  font-family: var(--mm-font-display);
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 0.95;
  margin: 0;
}

.mm-single-release__artists {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mm-space-sm);
  margin-top: var(--mm-space-xs);
}

.mm-single-release__artist-link {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mm-text-secondary);
  transition: color var(--mm-transition);
}

.mm-single-release__artist-link:hover { color: var(--mm-accent); }

.mm-single-release__artist-link + .mm-single-release__artist-link::before {
  content: '/ ';
  color: var(--mm-text-muted);
  margin-right: var(--mm-space-xs);
}

.mm-single-release__desc {
  margin-top: var(--mm-space-lg);
  padding-top: var(--mm-space-lg);
  border-top: 1px solid var(--mm-border);
}

.mm-single-release__desc p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--mm-text-secondary);
  margin-bottom: var(--mm-space-md);
}

.mm-single-release__desc p:last-child { margin-bottom: 0; }

/* =============================================================================
   21. Single Artist
   ============================================================================= */

.mm-single-artist__header {
  position: relative;
  height: 560px;
  overflow: hidden;
  background-color: var(--mm-surface-el);
  border-bottom: 1px solid var(--mm-border);
}

@media (max-width: 768px) {
  .mm-single-artist__header { height: 400px; }
}

.mm-single-artist__header img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(20%);
}

.mm-single-artist__header-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10,10,10,0.92) 0%,
    rgba(10,10,10,0.3) 50%,
    transparent 100%
  );
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--mm-space-3xl);
}

.mm-single-artist__header-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
  padding: var(--mm-space-3xl);
  background: linear-gradient(135deg, var(--mm-surface-el) 0%, var(--mm-surface) 100%);
}

.mm-single-artist__name {
  font-family: var(--mm-font-display);
  font-size: clamp(40px, 8vw, 88px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  line-height: 0.9;
  color: #fff;
  margin: 0;
}

.mm-single-artist__body {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: var(--mm-space-3xl);
  padding: var(--mm-space-3xl) 0;
  align-items: start;
}

@media (max-width: 900px) {
  .mm-single-artist__body { grid-template-columns: 1fr; }
}

.mm-single-artist__bio p {
  font-size: 15px;
  line-height: 1.8;
  color: var(--mm-text-secondary);
}

.mm-single-artist__sidebar {
  position: sticky;
  top: calc(var(--mm-header-h) + var(--mm-space-xl));
}

.mm-single-artist__links {
  background-color: var(--mm-surface);
  border: 1px solid var(--mm-border);
  padding: var(--mm-space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-xs);
}

.mm-single-artist__links h4 {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
  margin-bottom: var(--mm-space-md);
  font-family: var(--mm-font-body);
}

.mm-single-artist__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--mm-space-sm) 0;
  border-bottom: 1px solid var(--mm-border);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-text-secondary);
  transition: color var(--mm-transition);
}

.mm-single-artist__link:last-child { border-bottom: none; }
.mm-single-artist__link:hover { color: var(--mm-text-primary); }

/* =============================================================================
   22. Gear (archive + single)
   ============================================================================= */

/* ── Filter tabs ─────────────────────────────────────────────────────────── */

.mm-gear-filter {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mm-space-sm);
  margin-bottom: var(--mm-space-xl);
}

.mm-gear-filter--sub {
  margin-top: calc( var(--mm-space-sm) * -1 );
  padding-left: var(--mm-space-lg);
  border-left: 2px solid var(--mm-accent);
}

.mm-gear-filter__tab {
  font-family: var(--mm-font-body);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: var(--mm-space-sm) var(--mm-space-md);
  border: 1px solid var(--mm-border);
  color: var(--mm-text-secondary);
  text-decoration: none;
  transition: all var(--mm-transition);
}

.mm-gear-filter__tab:hover,
.mm-gear-filter__tab.is-active {
  border-color: var(--mm-accent);
  color: var(--mm-accent);
}

.mm-gear-filter__tab--sub {
  font-size: 10px;
  padding: 4px var(--mm-space-sm);
  border-color: transparent;
  color: var(--mm-text-muted);
}

.mm-gear-filter__tab--sub:hover,
.mm-gear-filter__tab--sub.is-active {
  border-color: var(--mm-accent);
  color: var(--mm-accent);
}

/* ── Gear grid ───────────────────────────────────────────────────────────── */

.mm-gear-grid {
  display: grid;
  grid-template-columns: repeat( 4, 1fr );
  gap: var(--mm-space-xl);
}

.mm-gear-grid--sm {
  grid-template-columns: repeat( auto-fill, minmax( 200px, 1fr ) );
  gap: var(--mm-space-lg);
}

@media (max-width: 900px) {
  .mm-gear-grid {
    grid-template-columns: repeat( 2, 1fr );
  }
}

@media (max-width: 480px) {
  .mm-gear-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Gear card ───────────────────────────────────────────────────────────── */

.mm-gear-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--mm-border);
  background: var(--mm-surface);
  transition: border-color var(--mm-transition), transform var(--mm-transition);
}

.mm-gear-card:hover {
  border-color: var(--mm-accent);
  transform: translateY(-2px);
}

.mm-gear-card__inner {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-decoration: none;
  color: inherit;
}

.mm-gear-card__image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--mm-surface-el);
}

.mm-gear-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.mm-gear-card:hover .mm-gear-card__image img { transform: scale(1.04); }

.mm-gear-card__image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mm-font-display);
  font-size: 32px;
  font-weight: 900;
  color: var(--mm-border);
}

.mm-gear-card__body {
  padding: var(--mm-space-lg);
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}

.mm-gear-card__type {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mm-accent);
}

.mm-gear-card__brand {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-text-muted);
}

.mm-gear-card__title {
  font-family: var(--mm-font-display);
  font-size: clamp(14px, 1.4vw, 17px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--mm-text-primary);
  margin: var(--mm-space-xs) 0 0;
  line-height: 1.2;
}

.mm-gear-card__comments {
  font-size: 12px;
  line-height: 1.6;
  color: var(--mm-text-muted);
  margin-top: var(--mm-space-sm);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.mm-gear-card__buy {
  padding: var(--mm-space-md) var(--mm-space-lg);
  border-top: 1px solid var(--mm-border);
}

/* ── Single gear hero ────────────────────────────────────────────────────── */

.mm-single-gear__hero {
  display: grid;
  grid-template-columns: 420px 1fr;
  min-height: 420px;
  max-width: var(--mm-max-width);
  margin: 0 auto;
  border-bottom: 1px solid var(--mm-border);
}

@media (max-width: 900px) {
  .mm-single-gear__hero { grid-template-columns: 1fr; }
}

.mm-single-gear__image {
  background: var(--mm-surface-el);
  aspect-ratio: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mm-single-gear__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.mm-single-gear__image-placeholder {
  font-family: var(--mm-font-display);
  font-size: 64px;
  font-weight: 900;
  color: var(--mm-border);
}

.mm-single-gear__info {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--mm-space-md);
  padding: var(--mm-space-xl) var(--mm-space-3xl) var(--mm-space-3xl);
  border-left: 1px solid var(--mm-border);
}

@media (max-width: 900px) {
  .mm-single-gear__info {
    padding: var(--mm-space-xl);
    border-left: none;
    border-top: 1px solid var(--mm-border);
  }
}

.mm-single-gear__type {
  display: flex;
  align-items: center;
  gap: var(--mm-space-sm);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.mm-single-gear__type-link {
  color: var(--mm-accent);
  text-decoration: none;
  transition: opacity var(--mm-transition);
}

.mm-single-gear__type-link:hover { opacity: 0.7; }

.mm-single-gear__type-sep { color: var(--mm-text-muted); }

.mm-single-gear__brand {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mm-single-gear__brand-name {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mm-text-muted);
}

.mm-single-gear__brand-link {
  font-size: 11px;
  color: var(--mm-text-secondary);
  text-decoration: none;
  transition: color var(--mm-transition);
}

.mm-single-gear__brand-link:hover { color: var(--mm-accent); }

.mm-single-gear__title {
  font-family: var(--mm-font-display);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--mm-text-primary);
  margin: 0;
}

.mm-single-gear__desc {
  font-size: 14px;
  line-height: 1.8;
  color: var(--mm-text-secondary);
  margin-top: var(--mm-space-sm);
}

.mm-single-gear__desc p { margin-bottom: var(--mm-space-md); }
.mm-single-gear__desc p:last-child { margin-bottom: 0; }

.mm-single-gear__actions { margin-top: var(--mm-space-sm); }

/* ── Nate's Comments quote ───────────────────────────────────────────────── */

.mm-gear-quote {
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-sm);
  border-left: 3px solid var(--mm-accent);
  padding-left: var(--mm-space-xl);
}

.mm-gear-quote__label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-accent);
}

.mm-gear-quote__text {
  font-family: var(--mm-font-display);
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--mm-text-primary);
  margin: 0;
}

/* =============================================================================
   23. Archive pages
   ============================================================================= */

.mm-section:has(.mm-archive-header) {
  padding-top: var(--mm-space-xl);
}

/* Archive header now shares the page-hero / section-head visual language:
   big Geist display title, muted description. */
.mm-archive-header {
  padding: var(--mm-space-sm) 0 var(--mm-space-2xl);
  margin-bottom: var(--mm-space-2xl);
}

.mm-archive-header h1 {
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: clamp(48px, 9vw, 96px);
  line-height: 0.92;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
  margin: 0 0 var(--mm-space-md);
}

.mm-archive-header p {
  color: var(--mm-text-secondary);
  font-size: 15px;
  line-height: 1.7;
  max-width: 52ch;
  margin: 0;
}

/* Pagination */
.mm-pagination {
  display: flex;
  justify-content: center;
  gap: var(--mm-space-xs);
  padding: var(--mm-space-3xl) 0;
}

.mm-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  font-size: 12px;
  font-weight: 700;
  color: var(--mm-text-secondary);
  border: 1px solid var(--mm-border);
  transition: all var(--mm-transition);
}

.mm-pagination .page-numbers:hover,
.mm-pagination .page-numbers.current {
  background-color: var(--mm-accent);
  border-color: var(--mm-accent);
  color: #000;
}

/* ── Single Post (blog) ─────────────────────────────────────────────────── */

/* ── Static page content ─────────────────────────────────────────────────── */

.mm-page-content {
  max-width: 880px;
}

.mm-page-content__header {
  margin-bottom: var(--mm-space-2xl);
  padding-bottom: var(--mm-space-xl);
  border-bottom: 1px solid var(--mm-border);
}

.mm-page-content__title {
  font-family: var(--mm-font-display);
  font-size: clamp(36px, 6vw, 56px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.0;
  color: var(--mm-text-primary);
  margin: 0;
}

.mm-page-content__body {
  color: var(--mm-text-secondary);
  line-height: 1.7;
}

.mm-page-content__body h2 {
  font-family: var(--mm-font-display);
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--mm-text-primary);
  margin: var(--mm-space-2xl) 0 var(--mm-space-md);
}

.mm-page-content__body h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--mm-text-primary);
  margin: var(--mm-space-xl) 0 var(--mm-space-sm);
}

.mm-page-content__body p {
  margin-bottom: var(--mm-space-md);
}

.mm-page-content__body a {
  color: var(--mm-accent);
}

.mm-page-content__body ul,
.mm-page-content__body ol {
  padding-left: var(--mm-space-xl);
  margin-bottom: var(--mm-space-md);
}

.mm-page-content__body li {
  margin-bottom: var(--mm-space-xs);
}

/* ── Single post layout ───────────────────────────────────────────────────── */

.mm-single-post__layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: var(--mm-space-3xl);
  align-items: start;
}

@media (max-width: 900px) {
  .mm-single-post__layout { grid-template-columns: 1fr; }
}

/* ── Sidebar ─────────────────────────────────────────────────────────────── */

.mm-single-post__sidebar {
  position: sticky;
  top: calc(var(--mm-header-h) + var(--mm-space-xl));
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-xl);
}

.mm-sidebar__widget {
  background: var(--mm-surface);
  border: 1px solid var(--mm-border);
  padding: var(--mm-space-xl);
}

.mm-sidebar__widget-title {
  font-family: var(--mm-font-display);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mm-text-primary);
  margin: 0 0 var(--mm-space-lg);
  padding-bottom: var(--mm-space-md);
  border-bottom: 1px solid var(--mm-border);
}

.mm-sidebar__widget ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-sm);
}

.mm-sidebar__widget ul li a {
  font-size: 13px;
  color: var(--mm-text-secondary);
  text-decoration: none;
  transition: color var(--mm-transition);
}

.mm-sidebar__widget ul li a:hover { color: var(--mm-text-primary); }


.mm-single-post__header {
  padding: 0 0 var(--mm-space-xl);
  border-bottom: 1px solid var(--mm-border);
  margin-bottom: var(--mm-space-xl);
}

.mm-single-post__cat {
  display: inline-block;
  font-family: var(--mm-font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mm-accent);
  margin-bottom: var(--mm-space-md);
}

.mm-single-post__title {
  font-family: var(--mm-font-display);
  font-size: clamp(28px, 5vw, 52px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: var(--mm-space-lg);
}

.mm-single-post__meta {
  display: flex;
  align-items: center;
  gap: var(--mm-space-lg);
  font-size: 12px;
  color: var(--mm-text-secondary);
  font-weight: 500;
}

.mm-single-post__meta-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background-color: var(--mm-text-muted);
}

.mm-single-post__content {
  max-width: 880px;
  font-size: 15px;
  line-height: 1.8;
  color: var(--mm-text-secondary);
}

.mm-single-post__content h2,
.mm-single-post__content h3 {
  font-family: var(--mm-font-display);
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--mm-text-primary);
  margin-top: var(--mm-space-2xl);
  margin-bottom: var(--mm-space-md);
}

.mm-single-post__content h2 { font-size: clamp(18px, 2.5vw, 24px); font-weight: 900; }
.mm-single-post__content h3 { font-size: clamp(15px, 2vw, 18px); font-weight: 700; }

.mm-single-post__content p { margin-bottom: var(--mm-space-lg); }
.mm-single-post__content a { color: var(--mm-accent); text-decoration: underline; text-underline-offset: 3px; }
.mm-single-post__content a:hover { color: var(--mm-text-primary); }
.mm-single-post__content img { max-width: 100%; height: auto; display: block; margin: var(--mm-space-xl) 0; }

.mm-single-post__content blockquote {
  border-left: 3px solid var(--mm-accent);
  padding-left: var(--mm-space-lg);
  margin: var(--mm-space-xl) 0;
  font-style: italic;
  color: var(--mm-text-secondary);
}

.mm-single-post__content pre,
.mm-single-post__content code {
  background: var(--mm-surface-el);
  font-family: 'Courier New', monospace;
  font-size: 13px;
  border-radius: 2px;
}

.mm-single-post__content pre { padding: var(--mm-space-lg); overflow-x: auto; }
.mm-single-post__content code { padding: 2px 6px; }

.mm-single-post__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mm-space-sm);
  padding-top: var(--mm-space-xl);
  margin-top: var(--mm-space-xl);
  border-top: 1px solid var(--mm-border);
}

.mm-single-post__tag {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--mm-text-secondary);
  padding: 4px 10px;
  border: 1px solid var(--mm-border);
  transition: all var(--mm-transition);
}

.mm-single-post__tag:hover {
  border-color: var(--mm-accent);
  color: var(--mm-accent);
}

/* ── Contact Page ───────────────────────────────────────────────────────── */
.mm-contact-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--mm-space-3xl);
  align-items: start;
}

@media (max-width: 900px) {
  .mm-contact-grid { grid-template-columns: 1fr; }
}

.mm-contact-form { }

.mm-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--mm-space-md);
}

@media (max-width: 600px) {
  .mm-form-row { grid-template-columns: 1fr; }
}

.mm-form-field {
  margin-bottom: var(--mm-space-lg);
}

.mm-form-label {
  display: block;
  font-family: var(--mm-font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mm-text-secondary);
  margin-bottom: var(--mm-space-sm);
}

.mm-form-input,
.mm-form-select,
.mm-form-textarea {
  width: 100%;
  background: var(--mm-surface-el);
  border: 1px solid var(--mm-border);
  color: var(--mm-text-primary);
  font-family: var(--mm-font-body);
  font-size: 14px;
  padding: 12px var(--mm-space-md);
  outline: none;
  transition: border-color var(--mm-transition);
  -webkit-appearance: none;
  border-radius: 0;
}

.mm-form-input:focus,
.mm-form-select:focus,
.mm-form-textarea:focus {
  border-color: var(--mm-accent);
}

.mm-form-input::placeholder,
.mm-form-textarea::placeholder {
  color: var(--mm-text-muted);
}

.mm-form-textarea {
  resize: vertical;
  min-height: 160px;
  line-height: 1.6;
}

.mm-form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}

.mm-form-select option {
  background: var(--mm-surface-el);
  color: var(--mm-text-primary);
}

.mm-form-notice {
  padding: var(--mm-space-md);
  font-size: 13px;
  margin-bottom: var(--mm-space-lg);
  border: 1px solid transparent;
  border-radius: 2px;
}

.mm-form-notice--success {
  background: rgba(68, 255, 68, 0.08);
  border-color: #44ff44;
  color: #44ff44;
}

.mm-form-notice--error {
  background: rgba(255, 68, 68, 0.08);
  border-color: var(--mm-red);
  color: var(--mm-red);
}

.mm-contact-info {
  padding: var(--mm-space-xl);
  background: var(--mm-surface);
  border: 1px solid var(--mm-border);
}

.mm-contact-info h3 {
  font-family: var(--mm-font-display);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--mm-space-lg);
  padding-bottom: var(--mm-space-md);
  border-bottom: 1px solid var(--mm-border);
}

.mm-contact-info-item {
  margin-bottom: var(--mm-space-lg);
}

.mm-contact-info-item:last-child { margin-bottom: 0; }

.mm-contact-info-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mm-text-muted);
  display: block;
  margin-bottom: 4px;
}

.mm-contact-info-value {
  font-size: 13px;
  color: var(--mm-text-secondary);
  line-height: 1.5;
}

.mm-contact-info-value a {
  color: var(--mm-accent);
}

.mm-contact-info-value a:hover {
  color: var(--mm-text-primary);
}

/* ── Community Hub ──────────────────────────────────────────────────────── */

.mm-community-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--mm-space-lg);
}

.mm-community-card {
  background-color: var(--mm-surface);
  border: 1px solid var(--mm-border);
  padding: var(--mm-space-xl) var(--mm-space-xl) var(--mm-space-2xl);
  display: flex;
  flex-direction: column;
  gap: var(--mm-space-md);
  transition: border-color var(--mm-transition), transform 0.25s ease;
}

.mm-community-card:hover {
  border-color: var(--mm-accent);
  transform: translateY(-2px);
}

.mm-community-card__icon {
  font-size: 24px;
  line-height: 1;
  margin-bottom: var(--mm-space-sm);
}

.mm-community-card__title {
  font-family: var(--mm-font-display);
  font-size: 18px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--mm-text-primary);
  margin: 0;
}

.mm-community-card__desc {
  font-size: 13px;
  line-height: 1.6;
  color: var(--mm-text-secondary);
  margin: 0;
  flex: 1;
}

.mm-community-card--patron {
  position: relative;
  overflow: hidden;
}

.mm-community-card--patron::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top left, rgba(68,255,255,0.04) 0%, transparent 60%);
  pointer-events: none;
}

.mm-membership-cta {
  background-color: var(--mm-surface);
  border: 1px solid var(--mm-accent);
  padding: var(--mm-space-2xl) var(--mm-space-xl);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--mm-space-xl);
  flex-wrap: wrap;
}

.mm-membership-cta__text h3 {
  font-size: 18px;
  font-weight: 900;
  text-transform: uppercase;
  margin: 0 0 var(--mm-space-sm);
}

.mm-membership-cta__text p {
  font-size: 13px;
  color: var(--mm-text-secondary);
  margin: 0;
  max-width: 48ch;
}

@media (max-width: 640px) {
  .mm-membership-cta {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ── WooCommerce Overrides ──────────────────────────────────────────────── */
.woocommerce,
.woocommerce-page {
  background: var(--mm-bg);
  color: var(--mm-text-primary);
}

/* Shop grid */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: var(--mm-space-lg) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

.woocommerce ul.products li.product {
  background: var(--mm-surface);
  border: 1px solid var(--mm-border);
  transition: border-color var(--mm-transition), transform var(--mm-transition);
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column;
}

/* Push everything after the image down, button sticks to bottom */
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  flex: 1;
}

.woocommerce ul.products li.product a.button {
  margin-top: auto;
  align-self: stretch;
}

.woocommerce ul.products li.product:hover {
  border-color: var(--mm-accent);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--mm-font-display);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mm-text-primary);
  padding: var(--mm-space-md) var(--mm-space-md) 0;
}

.woocommerce ul.products li.product .price {
  color: var(--mm-accent) !important;
  font-weight: 700;
  font-size: 14px;
  padding: 4px var(--mm-space-md) var(--mm-space-md);
  display: block;
}

/* WC buttons */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce ul.products li.product a.button {
  background: var(--mm-accent) !important;
  color: #000 !important;
  font-family: var(--mm-font-display) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  padding: 10px var(--mm-space-lg) !important;
  border: none !important;
  transition: opacity var(--mm-transition) !important;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce ul.products li.product a.button:hover {
  opacity: 0.85 !important;
  color: #000 !important;
}

/* Single product */
.woocommerce div.product div.summary {
  background: transparent;
}

.woocommerce div.product .product_title {
  font-family: var(--mm-font-display) !important;
  font-size: clamp(24px, 4vw, 42px) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: -0.02em !important;
  color: var(--mm-text-primary) !important;
}

.woocommerce div.product p.price {
  color: var(--mm-accent) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
}

.woocommerce div.product .woocommerce-product-details__short-description {
  font-size: 14px;
  line-height: 1.7;
  color: var(--mm-text-secondary);
}

/* Cart + checkout tables */
.woocommerce table.shop_table {
  border: 1px solid var(--mm-border) !important;
  background: var(--mm-surface) !important;
  color: var(--mm-text-primary) !important;
}

.woocommerce table.shop_table th {
  font-family: var(--mm-font-display);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mm-text-muted) !important;
  background: var(--mm-surface-el) !important;
  border-color: var(--mm-border) !important;
  padding: var(--mm-space-md) !important;
}

.woocommerce table.shop_table td {
  border-color: var(--mm-border) !important;
  padding: var(--mm-space-md) !important;
  color: var(--mm-text-primary) !important;
}

/* WC form inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  background: var(--mm-surface-el) !important;
  border-color: var(--mm-border) !important;
  color: var(--mm-text-primary) !important;
  border-radius: 0 !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--mm-accent) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* WC notices */
.woocommerce-message,
.woocommerce-info {
  background: var(--mm-surface-el) !important;
  border-top-color: var(--mm-accent) !important;
  color: var(--mm-text-primary) !important;
}

.woocommerce-error {
  background: rgba(255, 68, 68, 0.08) !important;
  border-top-color: var(--mm-red) !important;
  color: var(--mm-text-primary) !important;
}

/* Cart widget */
.woocommerce-mini-cart__total {
  border-color: var(--mm-border) !important;
}

/* WC breadcrumb */
.woocommerce .woocommerce-breadcrumb {
  color: var(--mm-text-muted);
  font-size: 12px;
}

.woocommerce .woocommerce-breadcrumb a {
  color: var(--mm-text-secondary);
}

/* WC ratings */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
  color: var(--mm-red) !important;
}

/* Result count / ordering */
.woocommerce-result-count {
  font-size: 12px;
  color: var(--mm-text-muted);
}

.woocommerce-ordering select {
  background: var(--mm-surface-el);
  border: 1px solid var(--mm-border);
  color: var(--mm-text-primary);
  font-family: var(--mm-font-body);
  font-size: 13px;
  padding: 6px var(--mm-space-md);
  border-radius: 0;
  outline: none;
}

/* Shop page layout */
.woocommerce .woocommerce-products-header__title,
.woocommerce-page .woocommerce-products-header__title {
  font-family: var(--mm-font-display);
  font-size: clamp(28px, 5vw, 52px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: var(--mm-text-primary);
}

/* ============================================================
   MailPoet — footer form overrides
   ============================================================ */

.mm-footer__newsletter .mailpoet_form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.mm-footer__newsletter .mailpoet_text,
.mm-footer__newsletter .mailpoet_email {
    background: var(--mm-surface);
    border: 1px solid var(--mm-border, #2a2a2a);
    color: var(--mm-text-primary);
    padding: 0.6rem 0.75rem;
    font-family: inherit;
    font-size: 0.875rem;
    width: 100%;
    box-sizing: border-box;
}

.mm-footer__newsletter .mailpoet_text::placeholder,
.mm-footer__newsletter .mailpoet_email::placeholder {
    color: var(--mm-text-muted, #888888);
}

.mm-footer__newsletter .mailpoet_submit {
    background: var(--mm-red, #ff4444);
    color: #ffffff;
    border: none;
    padding: 0.6rem 1.25rem;
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 700;
    cursor: pointer;
    align-self: flex-start;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mm-footer__newsletter .mailpoet_submit:hover {
    background: #ffffff;
}

.mm-footer__newsletter .mailpoet_list_selection {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.mm-footer__newsletter .mailpoet_list_selection label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--mm-text-muted, #aaaaaa);
    cursor: pointer;
}

.mm-footer__newsletter .mailpoet_list_selection input[type="checkbox"] {
    accent-color: var(--mm-cyan, #44ffff);
}

.mm-footer__newsletter .mailpoet_validate_success {
    color: var(--mm-cyan, #44ffff);
    font-size: 0.875rem;
}

.mm-footer__newsletter .mailpoet_validate_error {
    color: var(--mm-red, #ff4444);
    font-size: 0.875rem;
}

/* -----------------------------------------------------------------------------
   Blog filter bar (template-blog.php)
   ----------------------------------------------------------------------------- */

.mm-blog-filters {
  padding: var(--mm-space-xl) 0 0;
  border-bottom: 1px solid var(--mm-border);
}

.mm-filter-row {
  display: flex;
  align-items: flex-start;
  gap: var(--mm-space-lg);
  padding: var(--mm-space-md) 0;
  border-top: 1px solid var(--mm-border);
}
.mm-filter-row:first-child { border-top: 0; }

.mm-filter-row__label {
  flex-shrink: 0;
  min-width: 72px;
  padding-top: 6px;
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--mm-text-muted);
}

.mm-filter-row__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mm-space-xs);
}

.mm-chip {
  display: inline-block;
  padding: 6px 12px;
  font-family: var(--mm-font-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--mm-text-secondary);
  background: transparent;
  border: 1px solid var(--mm-border);
  text-decoration: none;
  transition: color var(--mm-transition), border-color var(--mm-transition), background-color var(--mm-transition);
  white-space: nowrap;
}
.mm-chip:hover {
  color: var(--mm-text-primary);
  border-color: var(--mm-text-muted);
}
.mm-chip.is-active {
  color: var(--mm-bg);
  background: var(--mm-text-primary);
  border-color: var(--mm-text-primary);
}

.mm-chip--tag { text-transform: lowercase; letter-spacing: 0.02em; }

.mm-filter-row--active {
  justify-content: space-between;
  align-items: center;
}
.mm-filter-row--active .mm-filter-row__label {
  padding-top: 0;
  color: var(--mm-text-primary);
}
.mm-filter-clear {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mm-text-muted);
  text-decoration: none;
  transition: color var(--mm-transition);
}
.mm-filter-clear:hover { color: var(--mm-text-primary); }

/* 3-column post grid variant */
.mm-post-grid--3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--mm-space-xl);
}
@media (max-width: 900px) {
  .mm-post-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .mm-post-grid--3 { grid-template-columns: 1fr; }
}

/* Empty state */
.mm-blog-empty {
  text-align: center;
  padding: var(--mm-space-3xl) 0;
  color: var(--mm-text-muted);
}
.mm-blog-empty p {
  margin: 0 0 var(--mm-space-lg);
  font-size: 15px;
}

/* Pagination */
.mm-pagination {
  margin-top: var(--mm-space-3xl);
  display: flex;
  justify-content: center;
}
.mm-pagination ul,
.mm-pagination .page-numbers {
  display: flex;
  gap: var(--mm-space-xs);
  list-style: none;
  padding: 0;
  margin: 0;
}
.mm-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-family: var(--mm-font-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--mm-text-secondary);
  border: 1px solid var(--mm-border);
  text-decoration: none;
  transition: color var(--mm-transition), border-color var(--mm-transition), background-color var(--mm-transition);
}
.mm-pagination a.page-numbers:hover {
  color: var(--mm-text-primary);
  border-color: var(--mm-text-muted);
}
.mm-pagination .page-numbers.current {
  color: var(--mm-bg);
  background: var(--mm-text-primary);
  border-color: var(--mm-text-primary);
}
.mm-pagination .page-numbers.dots { border: 0; }

@media (max-width: 600px) {
  .mm-filter-row { flex-direction: column; gap: var(--mm-space-sm); }
  .mm-filter-row__label { min-width: 0; padding-top: 0; }
}

/* =============================================================================
   Home: shared section head (used by releases, articles, shop)
   ============================================================================= */

.mm-home-releases,
.mm-home-articles,
.mm-home-shop {
  padding: var(--mm-space-3xl) 0;
  border-bottom: 1px solid var(--mm-border);
}
.mm-home-releases { background: var(--mm-bg); }
.mm-home-articles { background: var(--mm-bg); }
.mm-home-shop { background: var(--mm-bg); }

.mm-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: var(--mm-space-xl);
  margin-bottom: var(--mm-space-2xl);
}
.mm-section-head__meta { max-width: 640px; }

.mm-section-head__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--mm-red);
}
.mm-section-head__eyebrow::before {
  content: '';
  width: 18px;
  height: 1px;
  background: currentColor;
  display: inline-block;
}

.mm-section-head__title {
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
  margin: var(--mm-space-md) 0 0;
}
.mm-accent-dot { color: var(--mm-red); }
.mm-accent-text { color: var(--mm-red); }

.mm-section-head__desc {
  margin-top: var(--mm-space-md);
  max-width: 520px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--mm-text-secondary);
}

.mm-section-head__link {
  font-family: var(--mm-font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
  text-decoration: none;
  padding: 14px 24px;
  border: 1px solid var(--mm-border);
  border-radius: 2px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: color var(--mm-transition), border-color var(--mm-transition);
}
.mm-section-head__link:hover {
  color: #fff;
  border-color: var(--mm-red);
}

/* =============================================================================
   Home: Recent Releases (4x1 grid)
   ============================================================================= */

.mm-release-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--mm-space-lg);
}
@media (max-width: 980px) {
  .mm-release-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .mm-release-grid { grid-template-columns: 1fr; }
}

.mm-release-card {
  display: flex;
  flex-direction: column;
  background: var(--mm-surface);
  border: 1px solid var(--mm-border);
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, transform 0.3s cubic-bezier(.2,0,.2,1);
}
.mm-release-card:hover {
  border-color: #555555;
  transform: translateY(-4px);
}

@keyframes mm-shimmer {
  from { transform: translateX(-100%); }
  to   { transform: translateX(100%); }
}

.mm-release-card__art {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--mm-surface);
  overflow: hidden;
}
.mm-release-card__art::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.04) 50%, transparent 100%);
  animation: mm-shimmer 1.4s ease-in-out infinite;
  z-index: 1;
  pointer-events: none;
}
.mm-release-card__art img {
  position: relative;
  z-index: 2;
}
.mm-release-card__art img,
.mm-release-card__art .mm-release-card__art-placeholder {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.mm-release-card__art-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 0.12em;
  color: var(--mm-text-muted);
  background: var(--mm-surface-el);
}
.mm-release-card__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  transition: opacity 0.2s;
}
.mm-release-card__play::before {
  content: '';
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--mm-red);
}
.mm-release-card__play svg {
  position: relative;
  color: #fff;
  z-index: 1;
  transform: translateX(1px);
}
.mm-release-card:hover .mm-release-card__play { opacity: 1; }

.mm-release-card__body {
  padding: 18px;
}

.mm-release-card__row {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mm-text-muted);
}
.mm-release-card__row--foot {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--mm-border);
  letter-spacing: 0.18em;
}

.mm-release-card__title {
  margin: 10px 0 0;
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
}

.mm-release-card__artist {
  margin: 6px 0 0;
  font-family: var(--mm-font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mm-text-secondary);
}

/* =============================================================================
   Home: Featured Articles (1 feature + 3 small)
   ============================================================================= */

.mm-article-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: var(--mm-space-lg);
}
@media (max-width: 980px) {
  .mm-article-grid { grid-template-columns: repeat(2, 1fr); }
  .mm-article-card--feature { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .mm-article-grid { grid-template-columns: 1fr; }
  .mm-article-card--feature { grid-column: auto; }
}

.mm-article-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 380px;
  padding: var(--mm-space-lg);
  background: var(--mm-surface);
  border: 1px solid var(--mm-border);
  border-radius: 4px;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: border-color 0.2s, transform 0.3s cubic-bezier(.2,0,.2,1);
}
.mm-article-card:hover {
  border-color: var(--mm-red);
  transform: translateY(-4px);
}

.mm-article-card--feature {
  padding: var(--mm-space-xl);
}
.mm-article-card__pattern {
  position: absolute;
  inset: 0;
  opacity: 0.04;
  pointer-events: none;
  background: repeating-linear-gradient(135deg, var(--mm-red) 0 1px, transparent 1px 14px);
}

.mm-article-card__top { position: relative; }

.mm-article-card__title {
  margin: var(--mm-space-md) 0 0;
  font-family: var(--mm-font-body);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.3;
  color: var(--mm-text-primary);
}
.mm-article-card__title--display {
  margin-top: 20px;
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1;
  letter-spacing: -0.005em;
  text-transform: uppercase;
  max-width: 16ch;
}

.mm-article-card__date {
  font-family: var(--mm-font-body);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mm-text-muted);
}

.mm-article-card__foot {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--mm-space-lg);
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--mm-text-secondary);
}
.mm-article-card--feature .mm-article-card__foot {
  padding-top: var(--mm-space-md);
  border-top: 2px solid var(--mm-red);
}
.mm-article-card__foot-arrow { color: var(--mm-red); display: inline-flex; }
.mm-article-card--small .mm-article-card__foot-arrow { color: currentColor; }

/* =============================================================================
   Home: Shop strip (featured products)
   ============================================================================= */

.mm-shop-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--mm-space-md);
}
@media (max-width: 980px) {
  .mm-shop-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .mm-shop-grid { grid-template-columns: 1fr; }
}

.mm-shop-card {
  display: flex;
  flex-direction: column;
  background: var(--mm-surface);
  border: 1px solid var(--mm-border);
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, transform 0.3s cubic-bezier(.2,0,.2,1);
}
.mm-shop-card:hover {
  border-color: #555555;
  transform: translateY(-4px);
}

.mm-shop-card__art {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--mm-surface-el);
  overflow: hidden;
}
.mm-shop-card__art::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.04) 50%, transparent 100%);
  animation: mm-shimmer 1.4s ease-in-out infinite;
  z-index: 1;
  pointer-events: none;
}
.mm-shop-card__art img {
  position: relative;
  z-index: 2;
}
.mm-shop-card__art img,
.mm-shop-card__art .mm-shop-card__art-placeholder {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.mm-shop-card__art-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 0.12em;
  color: var(--mm-text-muted);
}
.mm-shop-card__tag {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 10px;
  background: var(--mm-red);
  color: #fff;
  font-family: var(--mm-font-body);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  z-index: 2;
}

.mm-shop-card__body {
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.mm-shop-card__row {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mm-cyan);
}

.mm-shop-card__title {
  margin: 0;
  font-family: var(--mm-font-display);
  font-weight: 900;
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--mm-text-primary);
  flex: 1;
}

.mm-shop-card__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid var(--mm-border);
  margin-top: auto;
}

.mm-shop-card__price {
  font-family: var(--mm-font-display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.02em;
  color: var(--mm-text-primary);
}
.mm-shop-card__price .woocommerce-Price-amount { color: inherit; }
.mm-shop-card__price del { opacity: 0.4; font-size: 13px; margin-right: 6px; }
.mm-shop-card__price ins { text-decoration: none; }

.mm-shop-card__add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: var(--mm-red);
  color: #fff;
  font-family: var(--mm-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  border-radius: 2px;
  transition: background-color var(--mm-transition);
}
.mm-shop-card:hover .mm-shop-card__add { background: var(--mm-accent-hover); }

/* =============================================================================
   Hero Scene — faceted crystal + HUD (front-page.php)
   ============================================================================= */

.mm-hero-scene {
  position: relative;
  /* Full-bleed: escape any container width so scene fills the viewport */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  /* Pull the hero up so its top edge sits flush with the fixed header bottom.
     Body already has padding-top equal to the header height; negating it here
     means the crystal animation reaches the very top of the viewport, behind
     the header. The header (z-index 1000) sits over the top sliver. */
  margin-top: calc(-1 * var(--mm-header-h));
  min-height: 100vh;
  background: var(--mm-bg);
  overflow: hidden;
  color: #fff;
  font-family: var(--mm-font-body);
  --hud-pad: clamp(20px, 3vw, 48px);
  --hud-mono: 'Manrope', ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* Hero content is vertically centred and spans full viewport width, left-aligned
   with a generous edge padding. Overrides .mm-hero__inner's default container
   (max-width 1100px, auto-centre) for the front-page hero specifically. */
.mm-hero-scene {
  justify-content: center;
}
.mm-hero-scene .mm-hero__inner {
  max-width: none;
  margin: 0;
  padding-left: var(--mm-space-2xl);
  padding-right: var(--mm-space-2xl);
  padding-top: 0;
  padding-bottom: 0;
}
.mm-hero-scene .mm-hero__scroll {
  position: absolute;
  bottom: var(--mm-space-xl);
  left: 0;
  right: 0;
  padding-left: var(--mm-space-2xl);
  padding-right: var(--mm-space-2xl);
  max-width: none;
  margin: 0;
}
@media (max-width: 600px) {
  .mm-hero-scene .mm-hero__inner,
  .mm-hero-scene .mm-hero__scroll {
    padding-left: var(--mm-space-lg);
    padding-right: var(--mm-space-lg);
  }
}

/* Foreground content (original wordmark / CTAs / scroll cue) sits on top
   of the crystal + HUD layers. */
.mm-hero-scene .mm-hero__bg-text,
.mm-hero-scene .mm-hero__inner,
.mm-hero-scene .mm-hero__scroll {
  position: relative;
  z-index: 5;
}

/* All ambient HUD overlays — halved opacity so they read as background
   texture rather than competing with the wordmark/CTAs. They're purely
   decorative, so pointer-events: none lets the CTA buttons receive hover
   across their full footprint. */
.mm-hero-scene__ticker,
.mm-hero-scene__signal-lock,
.mm-hero-scene__eyebrow,
.mm-hero-scene__stats,
.mm-hero-scene__waveform,
.mm-hero-scene__vert,
.mm-hero-scene__id,
.mm-hero-scene__transmit {
  opacity: 0.5;
  pointer-events: none;
}

/* Scroll cue spans the full hero width at the bottom via left/right:0. It
   needs to render its inline content but must never intercept hover over
   the CTA buttons sitting above it. */
.mm-hero-scene .mm-hero__scroll {
  pointer-events: none;
}

/* Right-side overlays only — further reduce opacity (50% of the base 0.5 = 0.25)
   and scale down to 75% of their original size. Transform origin anchored so
   each overlay stays pinned to its edge after scaling. */
.mm-hero-scene__stats {
  opacity: 0.25;
  transform: scale(0.75);
  transform-origin: top right;
}
.mm-hero-scene__waveform {
  opacity: 0.25;
  transform: scale(0.75);
  transform-origin: top right;
}
.mm-hero-scene__transmit {
  opacity: 0.25;
  transform: scale(0.75);
  transform-origin: bottom right;
}
.mm-hero-scene__vert--right {
  opacity: 0.25;
  /* This element already has a rotate transform — compose scale with it. */
  transform: translateY(-50%) rotate(90deg) scale(0.75);
}

.mm-hero-scene__crystal {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}

/* Depth fog — push focus to centre */
.mm-hero-scene__fog {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 85% 75% at 50% 45%,
    transparent 0%,
    rgba(0, 0, 0, 0.25) 80%,
    rgba(0, 0, 0, 0.55) 100%);
}

/* Red brand bloom, low-left */
.mm-hero-scene__bloom {
  position: absolute;
  left: 22%;
  top: 62%;
  width: 700px;
  height: 700px;
  margin-left: -350px;
  margin-top: -350px;
  background: radial-gradient(circle, rgba(255, 68, 68, 0.10) 0%, transparent 55%);
  filter: blur(40px);
  mix-blend-mode: screen;
  pointer-events: none;
  animation: mm-hero-bloom 12s linear infinite;
}
@keyframes mm-hero-bloom {
  0%, 100% { opacity: 0.85; }
  50%      { opacity: 1.1; }
}

/* ── Ticker ───────────────────────────────────────────────────────────────── */
.mm-hero-scene__ticker {
  position: absolute;
  top: 16px;
  left: 0;
  right: 0;
  padding: 8px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  overflow: hidden;
  pointer-events: none;
  z-index: 3;
}
.mm-hero-scene__ticker-inner {
  white-space: nowrap;
  display: inline-block;
  font-family: var(--hud-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  will-change: transform;
}

/* ── Signal lock (top-centre) ─────────────────────────────────────────────── */
.mm-hero-scene__signal-lock {
  position: absolute;
  top: 60px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--hud-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  pointer-events: none;
  z-index: 3;
}
.mm-hero-scene__signal-rule {
  display: inline-block;
  width: 40px;
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
}
.mm-hero-scene__signal-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--mm-red);
  box-shadow: 0 0 10px var(--mm-red);
}

/* ── Eyebrow (top-left) ───────────────────────────────────────────────────── */
.mm-hero-scene__eyebrow {
  position: absolute;
  top: var(--hud-pad);
  left: var(--hud-pad);
  display: flex;
  flex-direction: column;
  gap: 12px;
  z-index: 3;
}
.mm-hero-scene__eyebrow-tag {
  font-family: var(--hud-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--mm-red);
}
.mm-hero-scene__eyebrow-rule {
  width: 80px;
  height: 2px;
  background: var(--mm-red);
}
.mm-hero-scene__eyebrow-meta {
  font-family: var(--hud-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  max-width: 340px;
  line-height: 1.7;
  margin-top: 4px;
}

/* ── Stats (top-right) ────────────────────────────────────────────────────── */
.mm-hero-scene__stats {
  position: absolute;
  top: var(--hud-pad);
  right: var(--hud-pad);
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: right;
  z-index: 3;
}
.mm-hero-scene__stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-end;
}
.mm-hero-scene__stat-label {
  font-family: var(--hud-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}
.mm-hero-scene__stat-value {
  font-family: var(--hud-mono);
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.05em;
  color: #fff;
}
.mm-hero-scene__stat--accent .mm-hero-scene__stat-value {
  color: var(--mm-red);
}

/* ── Waveform (right, above transmit) ─────────────────────────────────────── */
.mm-hero-scene__waveform {
  position: absolute;
  right: var(--hud-pad);
  bottom: 140px;
  width: 420px;
  max-width: 40vw;
  height: 60px;
  opacity: 0.75;
  pointer-events: none;
  z-index: 3;
}
.mm-hero-scene__waveform svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* ── Vertical edge labels ─────────────────────────────────────────────────── */
.mm-hero-scene__vert {
  position: absolute;
  top: 50%;
  font-family: var(--hud-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  white-space: nowrap;
  transform-origin: center;
  pointer-events: none;
  z-index: 3;
}
.mm-hero-scene__vert--left {
  left: 20px;
  transform: translateY(-50%) rotate(-90deg);
}
.mm-hero-scene__vert--right {
  right: 20px;
  transform: translateY(-50%) rotate(90deg);
}

/* ── ID block (bottom-left) ───────────────────────────────────────────────── */
.mm-hero-scene__id {
  position: absolute;
  bottom: var(--hud-pad);
  left: var(--hud-pad);
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 3;
}
.mm-hero-scene__id-line {
  font-family: var(--hud-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.mm-hero-scene__id-line--dim {
  font-weight: 500;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.35);
}

/* ── Transmit meter (bottom-right) ────────────────────────────────────────── */
.mm-hero-scene__transmit {
  position: absolute;
  bottom: var(--hud-pad);
  right: var(--hud-pad);
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
  width: 280px;
  max-width: 40vw;
  z-index: 3;
}
.mm-hero-scene__transmit-head {
  display: flex;
  justify-content: space-between;
  width: 100%;
  font-family: var(--hud-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.mm-hero-scene__transmit-pct {
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.mm-hero-scene__transmit-track {
  position: relative;
  width: 100%;
  height: 2px;
  background: rgba(255, 255, 255, 0.12);
}
.mm-hero-scene__transmit-fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  background: var(--mm-red);
  transition: width 0.1s linear;
}
.mm-hero-scene__transmit-dots {
  display: flex;
  gap: 2px;
  width: 100%;
}
.mm-hero-scene__transmit-dot {
  flex: 1;
  height: 6px;
  background: rgba(255, 255, 255, 0.1);
}
.mm-hero-scene__transmit-dot.is-active { background: rgba(255, 255, 255, 0.7); }
.mm-hero-scene__transmit-dot.is-hot    { background: var(--mm-red); }

/* ── FX overlays ──────────────────────────────────────────────────────────── */
.mm-hero-scene__scanlines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.04) 0 1px, transparent 1px 3px);
  mix-blend-mode: overlay;
  z-index: 2;
}
.mm-hero-scene__noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.08;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.6'/></svg>");
  z-index: 2;
}
.mm-hero-scene__vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center,
    transparent 35%,
    rgba(0, 0, 0, 0.55) 85%,
    rgba(0, 0, 0, 0.9) 100%);
  z-index: 2;
}

/* ── Responsive: tighten or hide HUD on small screens ─────────────────────── */
@media (max-width: 900px) {
  .mm-hero-scene__vert,
  .mm-hero-scene__waveform {
    display: none;
  }
  .mm-hero-scene__stat-value { font-size: 14px; }
  .mm-hero-scene__transmit { width: 200px; }
  .mm-hero-scene__eyebrow-meta { font-size: 10px; max-width: 240px; }
}
@media (max-width: 600px) {
  .mm-hero-scene__signal-lock { display: none; }
  .mm-hero-scene__id { display: none; }
  .mm-hero-scene__stats { gap: 6px; }
  .mm-hero-scene__stat-value { font-size: 12px; }
  .mm-hero-scene__stat-label { font-size: 8px; letter-spacing: 0.18em; }
  .mm-hero-scene__ticker-inner { font-size: 9px; letter-spacing: 0.2em; }
}


/* ============================================================
   MailPoet subscription pages (confirm / manage / unsubscribe)
   Scoped to .mm-page-content so the footer + popup forms are untouched.
   ============================================================ */

/* --- headings & descriptive text --- */
.mm-page-content h2,
.mm-page-content .mailpoet_text_label,
.mm-page-content .mailpoet_select_label,
.mm-page-content .mailpoet_checkbox_label,
.mm-page-content .mailpoet_radio_label {
    color: var(--mm-text-primary, #ffffff) !important;
}

.mm-page-content .mailpoet-manage-subscription-section-description,
.mm-page-content .mailpoet_field_description,
.mm-page-content .mailpoet-change-email-info {
    color: var(--mm-text-secondary, #b0b0b0) !important;
}

.mm-page-content .mailpoet_required { color: var(--mm-red, #ff4444) !important; }

/* --- text inputs, selects, textareas --- */
.mm-page-content .mailpoet_text,
.mm-page-content .mailpoet_textarea,
.mm-page-content .mailpoet_form input[type="text"],
.mm-page-content .mailpoet_form input[type="email"],
.mm-page-content input.mailpoet_text,
.mm-page-content .mailpoet-manage-subscription select,
.mm-page-content .mailpoet-manage-subscription-status select {
    background: var(--mm-surface, #141414) !important;
    border: 1px solid var(--mm-border, #2a2a2a) !important;
    color: var(--mm-text-primary, #ffffff) !important;
    padding: 0.6rem 0.75rem !important;
    box-sizing: border-box !important;
}

.mm-page-content .mailpoet_text::placeholder { color: var(--mm-text-secondary, #b0b0b0) !important; }

/* --- the email-display row and the "no lists" notice (were white boxes) --- */
.mm-page-content .mailpoet-manage-subscription-email,
.mm-page-content .mailpoet-manage-subscription-no-lists,
.mm-page-content .mailpoet_message {
    background: var(--mm-surface, #141414) !important;
    color: var(--mm-text-primary, #ffffff) !important;
    border-color: var(--mm-border, #2a2a2a) !important;
}

/* --- checkboxes / radios accent --- */
.mm-page-content .mailpoet_form input[type="checkbox"],
.mm-page-content .mailpoet-manage-subscription input[type="checkbox"],
.mm-page-content input[type="radio"] { accent-color: var(--mm-red, #ff4444) !important; }

/* --- submit button: brand red --- */
.mm-page-content .mailpoet_submit,
.mm-page-content input.mailpoet_submit,
.mm-page-content .mailpoet_form input[type="submit"],
.mm-page-content .mailpoet_form button[type="submit"] {
    background: var(--mm-red, #ff4444) !important;
    color: #ffffff !important;
    border: none !important;
    font-family: var(--mm-font-body, 'Manrope', sans-serif) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 0.7rem 1.5rem !important;
    border-radius: 4px !important;
    cursor: pointer !important;
}

.mm-page-content .mailpoet_submit:hover,
.mm-page-content input.mailpoet_submit:hover,
.mm-page-content .mailpoet_form input[type="submit"]:hover {
    background: var(--mm-accent-hover, #e03030) !important;
}

/* --- feedback + links --- */
.mm-page-content .mailpoet_validate_success { color: var(--mm-cyan, #44ffff) !important; }
.mm-page-content .mailpoet_validate_error   { color: var(--mm-red, #ff4444) !important; }
.mm-page-content .mailpoet_form a           { color: var(--mm-cyan, #44ffff) !important; }

/* email display field (rendered as <strong>, was white-on-white) */
.mm-page-content .mailpoet-manage-subscription-email { background: transparent !important; }
.mm-page-content .mailpoet-manage-subscription-email strong {
    display: block !important;
    background: var(--mm-surface, #141414) !important;
    color: var(--mm-text-primary, #ffffff) !important;
    border: 1px solid var(--mm-border, #2a2a2a) !important;
    padding: 0.6rem 0.75rem !important;
    border-radius: 4px !important;
    font-weight: 400 !important;
}

/* =============================================================================
   Hero Scene crystal — narrow-viewport crop
   -----------------------------------------------------------------------------
   The crystal canvas is a 12-col x 7-row jittered grid stretched to fit
   clientWidth x clientHeight (hero-scene.js). On narrow viewports cellW shrinks
   far below cellH, which is what produces the vertically-squashed look on
   mobile. Below 900px we stop the stretch by giving the canvas a fixed
   landscape-proportioned width and centring it. .mm-hero-scene already has
   overflow:hidden, so the sides crop cleanly. The JS resize() reads
   clientWidth, so it picks the wider buffer up automatically.
   ============================================================================= */
@media (max-width: 900px) {
  .mm-hero-scene__crystal {
    inset: auto;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1100px;
    height: 100%;
    transform: translateX(-50%);
  }
}


/* ===================================================================
   Marula Music — WooCommerce product page fixes
   Paste into: Appearance > Customise > Additional CSS
   Then: LiteSpeed Cache > Purge All
   Brand tokens: red #ff4444 / bg #0a0a0a / surface #141414 /
                 border #2a2a2a / text2 #888888
   =================================================================== */

/* 1. HIGH — Add-to-cart text white (brand spec), button reads on its own */
.woocommerce div.product form.cart .button,
.woocommerce .single_add_to_cart_button {
  color: #fff !important;
  background: #ff4444 !important;
  font-family: Manrope, sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  min-height: 52px !important;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce .single_add_to_cart_button:hover {
  background: #ff5e5e !important;
}

/* 2. HIGH — Kill mobile horizontal scroll. Replace WooCommerce float grid
      with a real responsive CSS grid for shop + related + upsells. */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin: 0 !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  clear: none !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; }
@media (max-width: 1024px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}

/* 3. MEDIUM — Sale badge to brand red (was muddy olive #958e09) */
.woocommerce span.onsale {
  background: #ff4444 !important;
  color: #fff !important;
  font-family: Manrope, sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-radius: 0;
}

/* 4. MEDIUM — Price hierarchy: muted strikethrough, white current price */
.woocommerce div.product p.price del,
.woocommerce div.product .summary .price del {
  color: #888 !important;
  font-weight: 500;
  opacity: 1;
}
.woocommerce div.product p.price ins,
.woocommerce div.product .summary .price ins {
  color: #fff !important;
  text-decoration: none;
}

/* 5. MEDIUM — Digital goods: hide the quantity stepper, full-width cart button.
      (Default qty still posts as 1.) */
.woocommerce div.product form.cart .quantity { display: none !important; }
.woocommerce div.product form.cart .single_add_to_cart_button { width: 100%; }

/* 6. POLISH — Stop default fonts leaking in (Times New Roman / Open Sans) */
.woocommerce, .woocommerce-page,
.woocommerce input, .woocommerce select,
.woocommerce textarea, .woocommerce button,
.woocommerce .quantity input,
.woocommerce-Tabs-panel, .wc-tabs li a {
  font-family: Manrope, sans-serif;
}

/* 7. POLISH — Skin the audio preview player with the red accent */
.mejs-container, .mejs-controls {
  background: #141414 !important;
  border: 1px solid #2a2a2a;
}
.mejs-controls .mejs-time-rail .mejs-time-current,
.mejs-controls .mejs-volume-current,
.mejs-controls .mejs-horizontal-volume-current {
  background: #ff4444 !important;
}
.mejs-controls .mejs-time-rail .mejs-time-loaded { background: #2a2a2a !important; }

/* 8. POLISH — Larger tap targets on gallery thumbs */
.woocommerce-product-gallery__trigger { min-width: 44px; min-height: 44px; }

/* === PayPal express button: compact, not a full-width gold bar === */
.woocommerce div.product .ppc-button-wrapper { max-width: 230px; }
