/*
Theme Name: StageGrove Music
Theme URI: https://stagegrove.com/
Author: StageGrove
Author URI: https://stagegrove.com/
Description: A professional reusable WordPress theme for artists, bands, musicians and fan communities. Designed for StageGrove Core.
Version: 8.0.0
Text Domain: stagegrove-music
*/

:root {
  --bb-bg: #f3efe7;
  --bb-cream: #f3efe7;
  --bb-black: #12110f;
  --bb-paper: #fffaf2;
  --bb-ink: #171512;
  --bb-muted: #716b61;
  --bb-line: rgba(23, 21, 18, .16);
  --bb-accent: #b92f28;
  --bb-accent-dark: #761c18;
  --bb-blue: #274a68;
  --bb-radius: 20px;
  --bb-shadow: 0 24px 70px rgba(33, 27, 20, .12);
  --bb-max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bb-bg);
  color: var(--bb-ink);
  font-family: "Montserrat", Arial, sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--bb-accent); }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }
.screen-reader-text, .sr-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link:focus { position: fixed !important; left: 16px; top: 16px; z-index: 9999; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; }

.bb-wrap { width: min(calc(100% - 40px), var(--bb-max)); margin-inline: auto; }
.bb-kicker { text-transform: uppercase; letter-spacing: .18em; font-size: .76rem; font-weight: 800; color: var(--bb-accent); }
.bb-section { padding: 92px 0; }
.bb-section-title { margin: 8px 0 18px; font-family: "Unbounded", sans-serif; font-size: clamp(2rem, 5vw, 4.7rem); line-height: .98; letter-spacing: -.05em; }
.bb-section-copy { max-width: 720px; color: var(--bb-muted); font-size: 1.05rem; }
.bb-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--bb-ink); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .76rem; transition: .2s ease; }
.bb-button:hover { background: var(--bb-ink); color: white; transform: translateY(-2px); }
.bb-button--solid { background: var(--bb-accent); color: #fff; border-color: var(--bb-accent); }
.bb-button--solid:hover { background: var(--bb-accent-dark); border-color: var(--bb-accent-dark); color: #fff; }

.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(243,239,231,.92); backdrop-filter: blur(16px); border-bottom: 1px solid var(--bb-line); }
.site-header .container-fluid, .site-header .row, .site-header .col-md-12 { width: 100%; margin: 0; padding: 0; }
.site-header .col-md-12 { width: min(calc(100% - 40px), var(--bb-max)); margin-inline: auto; min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.site-logo { display: flex; align-items: center; gap: 14px; min-width: max-content; }
.site-logo .custom-logo { max-height: 48px; width: auto; }
.site-title-wrap { display: block; }
.site-title { margin: 0; font-family: "Unbounded", sans-serif; font-size: clamp(.95rem, 1.8vw, 1.25rem); line-height: 1; letter-spacing: -.04em; text-transform: uppercase; }
.site-description { margin: 4px 0 0; color: var(--bb-muted); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }
.header-navigation { margin-left: auto; }
.header-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); }
.header-navigation li { margin: 0; }
.header-navigation a { font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .72rem; }
.social-icons { display: flex; gap: 10px; margin-left: 18px; }
#hamburger-menu, .close-menu { display: none; }

.bb-hero { min-height: calc(100vh - 72px); display: grid; align-items: end; position: relative; overflow: hidden; background: #171512; color: #fff; }
.bb-hero::before { content: ""; position: absolute; inset: 0; background: var(--bb-hero-image, linear-gradient(120deg,#1b1714 0%,#683027 48%,#caa15d 100%)); background-size: cover; background-position: center 24%; transform: scale(1.01); }
.bb-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,8,6,.82) 0%, rgba(10,8,6,.42) 55%, rgba(10,8,6,.18) 100%), linear-gradient(0deg, rgba(10,8,6,.75) 0%, transparent 60%); }
.bb-hero-inner { position: relative; z-index: 2; padding: clamp(72px, 10vw, 125px) 0 58px; }
.bb-hero .bb-kicker { color: #f3c56c; }
.bb-hero h1 { margin: 12px 0 20px; max-width: 900px; font-family: "Unbounded", sans-serif; font-size: clamp(3.6rem, 9.2vw, 8.6rem); letter-spacing: -.075em; line-height: .82; text-transform: uppercase; }
.bb-hero p { max-width: 650px; margin: 0 0 30px; color: rgba(255,255,255,.82); font-size: clamp(1rem,2vw,1.25rem); }
.bb-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.bb-hero .bb-button { border-color: rgba(255,255,255,.65); color: #fff; }
.bb-hero .bb-button:hover { background: #fff; color: #111; }
.bb-hero .bb-button--solid { border-color: #fff; background: #fff; color: #111; }

.bb-marquee { overflow: hidden; background: var(--bb-accent); color: #fff; border-block: 1px solid rgba(0,0,0,.12); }
.bb-marquee-track { width: max-content; display: flex; gap: 38px; padding: 11px 0; font-family: "Unbounded", sans-serif; font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; animation: bb-marquee 42s linear infinite; }
@keyframes bb-marquee { from { transform: translateX(0); } to { transform: translateX(-33.333%); } }
@media (prefers-reduced-motion: reduce) { .bb-marquee-track { animation: none; } }

.bb-current { background: var(--bb-paper); }
.bb-current-grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(36px,7vw,88px); align-items: center; }
.bb-record-art { aspect-ratio: 1/1; border-radius: var(--bb-radius); overflow: hidden; background: linear-gradient(135deg,#efe2ca,#9e4337); box-shadow: var(--bb-shadow); position: relative; }
.bb-record-art img { width: 100%; height: 100%; object-fit: cover; }
.bb-record-art--placeholder { display: grid; place-items: end start; padding: 34px; color: #fff; }
.bb-record-art--placeholder span { font-family: "Unbounded", sans-serif; font-size: clamp(2.3rem,6vw,5.2rem); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
.bb-current h2 { margin: 8px 0 18px; font-family: "Unbounded", sans-serif; font-size: clamp(2.3rem,6vw,5.6rem); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
.bb-current-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }

.bb-discography-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 16px; margin-top: 38px; }
.bb-release-card { min-width: 0; display: block; }
.bb-release-art { aspect-ratio: 1/1; overflow: hidden; border-radius: 16px; background: linear-gradient(140deg,#171512,#a22e27 58%,#e9c47d); border: 1px solid var(--bb-line); position: relative; }
.bb-release-art img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.bb-release-card:hover .bb-release-art img { transform: scale(1.04); }
.bb-release-placeholder { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 20px; color: #fff; font-family: "Unbounded",sans-serif; font-size: clamp(1.15rem,2vw,1.8rem); line-height: .92; letter-spacing: -.05em; text-transform: uppercase; }
.bb-release-meta { margin-top: 14px; color: var(--bb-accent); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 900; }
.bb-release-card h3 { margin: 5px 0 0; font-family: "Unbounded",sans-serif; font-size: clamp(.92rem,1.25vw,1.15rem); line-height: 1.05; letter-spacing: -.035em; }
.bb-news-intro { display:flex; justify-content:space-between; align-items:end; gap:30px; }
.bb-news-intro .bb-section-copy { margin-bottom:0; }

.bb-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 40px; }
.bb-card { min-width: 0; background: var(--bb-paper); border: 1px solid var(--bb-line); border-radius: var(--bb-radius); overflow: hidden; transition: .22s ease; }
.bb-card:hover { transform: translateY(-5px); box-shadow: var(--bb-shadow); }
.bb-card-media { aspect-ratio: 4/3; background: linear-gradient(135deg,#d6cbb7,#7b4c42); overflow: hidden; }
.bb-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.bb-card:hover .bb-card-media img { transform: scale(1.04); }
.bb-card-body { padding: 24px; }
.bb-card-label { color: var(--bb-accent); font-size: .72rem; letter-spacing: .12em; font-weight: 900; text-transform: uppercase; }
.bb-card h3 { margin: 8px 0 10px; font-family: "Unbounded",sans-serif; font-size: 1.35rem; line-height: 1.05; letter-spacing: -.04em; }
.bb-card p { margin: 0; color: var(--bb-muted); }

.bb-dark { background: #171512; color: #fff; }
.bb-dark .bb-section-copy, .bb-dark .bb-card p { color: rgba(255,255,255,.66); }
.bb-dark .bb-card { background: #211e1a; border-color: rgba(255,255,255,.13); }
.bb-dark .bb-card h3 { color: #fff; }

.bb-about-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(30px,8vw,110px); align-items: start; }
.bb-about-stat { border-top: 1px solid var(--bb-line); padding: 16px 0; display: flex; justify-content: space-between; gap: 20px; }
.bb-about-stat strong { font-family: "Unbounded",sans-serif; }
.bb-about-copy { font-size: clamp(1.25rem,2.5vw,2rem); line-height: 1.45; }

.bb-links-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 36px; }
.bb-link-tile { min-height: 126px; border: 1px solid var(--bb-line); border-radius: 16px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; background: rgba(255,255,255,.35); }
.bb-link-tile:hover { background: var(--bb-ink); color: #fff; }
.bb-link-tile span { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; }
.bb-link-tile strong { font-family: "Unbounded",sans-serif; font-size: 1.05rem; }
.bb-link-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.bb-link-mark { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--bb-line); font-family:"Unbounded",sans-serif; font-size:.72rem; font-weight:900; }
.bb-link-tile:hover .bb-link-mark { border-color:rgba(255,255,255,.35); }

.site-main, #primary { min-height: 50vh; }
.entry-header, .entry-content, .comments-area, .navigation.post-navigation, .archive .page-header, .search .page-header { width: min(calc(100% - 40px), 900px); margin-inline: auto; }
.entry-header { padding-top: 80px; }
.entry-title, .page-title { font-family: "Unbounded",sans-serif; font-size: clamp(2.4rem,7vw,5.5rem); line-height: .95; letter-spacing: -.06em; }
.entry-content { padding-bottom: 80px; font-size: 1.06rem; }
.entry-content h2, .entry-content h3 { font-family: "Unbounded",sans-serif; letter-spacing: -.035em; }
.entry-content a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.entry-content iframe { max-width: 100%; }

.site-footer { background: #0f0e0c !important; color: #fff; padding: 48px 0 24px; }
.bb-footer-inner { width: min(calc(100% - 40px), var(--bb-max)); margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: end; }
.bb-footer-brand { font-family: "Unbounded",sans-serif; font-size: clamp(2rem,4.2vw,3.9rem); letter-spacing: -.06em; line-height: .9; text-transform: uppercase; }
.bb-footer-copy { max-width: 620px; color: rgba(255,255,255,.62); font-size: .82rem; }
.bb-footer-meta { grid-column: 1/-1; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.14); display: flex; justify-content: space-between; gap: 20px; color: rgba(255,255,255,.45); font-size: .76rem; }
.prefooter, .footer-site-logo, .site-info { display: none !important; }

@media (max-width: 980px) {
  #hamburger-menu { display: block; margin-left: auto; }
  #hamburger-menu button { appearance: none; border: 0; background: transparent; width: 44px; height: 44px; padding: 10px; }
  #hamburger-menu span { height: 2px; background: var(--bb-ink); margin: 5px 0; display: block; }
  .header-navigation { display: none; position: fixed; inset: 0; background: #171512; color: #fff; padding: 100px 30px 40px; overflow: auto; }
  .header-navigation.menu-open { display: block; }
  .header-navigation ul { display: block; }
  .header-navigation li { margin-bottom: 18px; }
  .header-navigation a { font-family: "Unbounded",sans-serif; font-size: clamp(1.6rem,5vw,3rem); letter-spacing: -.04em; text-transform: none; }
  .close-menu { display: block; position: absolute; right: 24px; top: 24px; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; border-radius: 50%; }
  .close-menu::before, .close-menu::after { content: ""; position: absolute; width: 20px; height: 2px; background: #fff; left: 11px; top: 20px; transform: rotate(45deg); }
  .close-menu::after { transform: rotate(-45deg); }
  .bb-current-grid, .bb-about-grid { grid-template-columns: 1fr; }
  .bb-grid { grid-template-columns: repeat(2,1fr); }
  .bb-discography-grid { grid-template-columns: repeat(3,1fr); }
  .bb-links-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 640px) {
  .bb-wrap, .site-header .col-md-12, .entry-header, .entry-content, .bb-footer-inner { width: min(calc(100% - 28px), var(--bb-max)); }
  .site-header .col-md-12 { min-height: 70px; }
  .site-description { display: none; }
  .bb-hero { min-height: calc(100svh - 70px); }
  .bb-hero h1 { font-size: clamp(3.35rem,20vw,6.6rem); }
  .bb-section { padding: 68px 0; }
  .bb-grid { grid-template-columns: 1fr; }
  .bb-discography-grid { grid-template-columns: repeat(2,1fr); }
  .bb-links-grid { grid-template-columns: 1fr 1fr; }
  .bb-footer-inner { grid-template-columns: 1fr; }
  .bb-footer-meta { display: block; }
  .bb-footer-meta span { display: block; margin-top: 8px; }
}

/* v3.2 release manager */
.bb-discography-grid--archive { grid-template-columns: repeat(4,minmax(0,1fr)); }
.bb-release-single { padding-top: clamp(80px,9vw,140px); }
.bb-entry-content { margin: 24px 0 30px; max-width: 720px; line-height: 1.8; }
.bb-entry-content p { margin: 0 0 1.2em; }
@media (max-width: 980px) { .bb-discography-grid--archive { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 700px) { .bb-discography-grid--archive { grid-template-columns: repeat(2,1fr); } }


/* StageGrove Music v4 */
.stagegrove-credit { color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.bb-footer-brand { white-space: pre-line; }
.stagegrove-tour-list { margin-top:36px; border-top:1px solid rgba(255,255,255,.16); }
.stagegrove-tour-row { display:grid; grid-template-columns:160px 1.2fr 1fr 110px; gap:20px; align-items:center; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.16); color:#fff; }
.stagegrove-tour-row b { text-align:right; color:#f3c56c; }
.stagegrove-video-embed { max-width:1000px; aspect-ratio:16/9; margin:28px 0; }
.stagegrove-video-embed iframe { width:100%; height:100%; border:0; }
.stagegrove-featured-image { margin:28px 0; max-width:1000px; border-radius:20px; overflow:hidden; }
@media(max-width:760px){.stagegrove-tour-row{grid-template-columns:1fr;gap:5px}.stagegrove-tour-row b{text-align:left}}

/* WordPress admin toolbar offset for logged-in editors. */
.admin-bar .site-header{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header{top:46px}}

/* StageGrove Music v5 video polish */
.bb-card-media--video{aspect-ratio:16/9;background:#111;position:relative}.bb-card-media--video:after{content:"▶";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:#111;font-size:18px;padding-left:3px;box-shadow:0 8px 30px rgba(0,0,0,.25)}.stagegrove-track-list{margin:24px 0;padding:0;list-style:none;border-top:1px solid var(--bb-line)}.stagegrove-track-list li{padding:10px 0;border-bottom:1px solid var(--bb-line)}.stagegrove-stream-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}

/* StageGrove Music v6 modules */
.bb-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:34px}.bb-timeline-item{border-top:1px solid var(--bb-line);padding-top:18px}.bb-timeline-item h3{font-size:1.4rem;margin:8px 0}.bb-timeline-item h3 a{color:inherit;text-decoration:none}.bb-timeline-item p{color:var(--bb-muted);line-height:1.65}.bb-audio-list{display:grid;gap:14px;margin-top:28px}.stagegrove-audio-track{padding:18px;border:1px solid var(--bb-line);border-radius:14px;background:rgba(255,255,255,.25)}@media(max-width:760px){.bb-timeline{grid-template-columns:1fr}}


/* StageGrove Music v6.0.2 homepage tour layout fix */
.bb-tour-list { margin-top:36px; border-top:1px solid rgba(255,255,255,.16); }
.bb-tour-row { display:grid; grid-template-columns:160px minmax(220px,1.2fr) minmax(180px,1fr) 110px; gap:20px; align-items:center; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.16); color:#fff; }
.bb-tour-row > * { min-width:0; }
.bb-tour-row strong { font-weight:800; }
.bb-tour-row a { justify-self:end; color:#fff; font-weight:800; text-decoration:none; white-space:nowrap; }
.bb-tour-row a:hover { text-decoration:underline; }
.bb-tour-row b { justify-self:end; color:#f3c56c; white-space:nowrap; }
@media(max-width:760px){
  .bb-tour-row { grid-template-columns:1fr; gap:6px; }
  .bb-tour-row a,.bb-tour-row b { justify-self:start; }
}


/* StageGrove Music persistent-player navigation */
html.stagegrove-pjax-loading #page{opacity:.68;pointer-events:none;}
#page{transition:opacity .16s ease;}
@media (prefers-reduced-motion: reduce){#page{transition:none;}}


/* StageGrove Music v6.0.4 mobile navigation overlay fix */
@media (max-width: 980px) {
  body.stagegrove-menu-open { overflow: hidden !important; }
  body.stagegrove-menu-open .site-header {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    min-height: 100vh;
    z-index: 2147483000;
    background: #171512;
    border: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  body.stagegrove-menu-open .site-header .container-fluid,
  body.stagegrove-menu-open .site-header .row,
  body.stagegrove-menu-open .site-header .col-md-12 {
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
  }
  .header-navigation.menu-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
    z-index: 2;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: max(92px, calc(env(safe-area-inset-top) + 72px)) 28px max(42px, calc(env(safe-area-inset-bottom) + 24px));
    background: #171512;
    color: #fff;
  }
  .header-navigation.menu-open > ul,
  .header-navigation.menu-open .menu {
    width: min(100%, 760px);
    margin: 0;
    padding: 0;
  }
  .header-navigation.menu-open li { margin: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .header-navigation.menu-open a {
    display: block;
    padding: 14px 0;
    color: #fff;
    line-height: 1.05;
  }
  .header-navigation.menu-open a:hover,
  .header-navigation.menu-open a:focus { color: #f3c56c; }
  .header-navigation.menu-open .close-menu {
    position: fixed;
    top: max(18px, env(safe-area-inset-top));
    right: max(18px, env(safe-area-inset-right));
    z-index: 4;
  }
  body.stagegrove-menu-open .site-logo,
  body.stagegrove-menu-open #hamburger-menu { visibility: hidden; }
}


/* StageGrove Music v6.0.5 persistent-player footer clearance
   The player is fixed to the viewport, so reserve real scrollable space beneath
   the footer whenever Core renders #stagegrove-player. This keeps the
   StageGrove credit and footer metadata fully visible above the player. */
body:has(#stagegrove-player) .site-footer {
  padding-bottom: calc(96px + env(safe-area-inset-bottom));
}
@media (max-width: 600px) {
  body:has(#stagegrove-player) .site-footer {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }
}

/* StageGrove Music v6.0.6 mobile layout hardening */
html, body, #page, .site, .site-main, #primary {
  width: 100%;
  max-width: 100%;
}
html, body { overflow-x: clip; }
#page, .site-main, #primary { overflow-x: hidden; }

/* Full-bleed homepage modules must always span the viewport. */
#primary > .bb-hero,
#primary > .bb-marquee,
#primary > .bb-section {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 640px) {
  /* Use padding instead of calc()-based widths on phones. This avoids the
     narrow content column/blank strip seen in mobile Chromium. */
  .bb-wrap,
  .entry-header,
  .entry-content,
  .bb-footer-inner {
    width: 100%;
    max-width: var(--bb-max);
    margin-inline: auto;
    padding-left: 20px;
    padding-right: 20px;
  }

  .site-header .col-md-12 {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding-left: 18px;
    padding-right: 12px;
    gap: 12px;
  }
  .site-logo {
    min-width: 0;
    flex: 1 1 auto;
    gap: 12px;
  }
  .site-logo .custom-logo-link { flex: 0 0 auto; }
  .site-logo .custom-logo {
    width: auto;
    max-width: min(32vw, 170px);
    max-height: 54px;
  }
  .site-title-wrap { min-width: 0; }
  .site-title {
    font-size: clamp(.76rem, 3.6vw, 1rem);
    line-height: 1.05;
    overflow-wrap: anywhere;
  }
  #hamburger-menu { flex: 0 0 44px; }

  .bb-hero {
    width: 100%;
    min-height: calc(100svh - 70px);
  }
  .bb-hero::before,
  .bb-hero::after { width: 100%; }
  .bb-hero::before {
    background-position: 42% 24%;
    transform: none;
  }
  .bb-hero-inner {
    width: 100%;
    max-width: 100%;
    padding-top: clamp(70px, 14vh, 120px);
    padding-bottom: 46px;
  }
  .bb-hero h1 {
    max-width: 100%;
    font-size: clamp(3rem, 15.5vw, 5.7rem);
    line-height: .86;
    letter-spacing: -.07em;
    overflow-wrap: normal;
    word-break: normal;
  }
  .bb-hero p {
    max-width: 100%;
    font-size: 1rem;
    line-height: 1.55;
  }
  .bb-actions,
  .bb-hero-actions {
    max-width: 100%;
  }
  .bb-button {
    min-height: 46px;
    padding-inline: 18px;
    font-size: .7rem;
  }

  /* Keep the ticker inside the viewport even with long titles. */
  .bb-marquee { max-width: 100vw; }
  .bb-marquee-track {
    max-width: none;
    gap: 28px;
    font-size: .7rem;
  }

  .bb-section { padding: 60px 0; }
  .bb-section-title { font-size: clamp(2.35rem, 13vw, 4rem); }

  /* The persistent player is intentionally fixed. Keep page content and footer
     reachable above it without creating a giant visual gap. */
  body:has(#stagegrove-player) .site-footer {
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }
}


/* StageGrove Music v6.0.7 - restore the WordPress site tagline on mobile */
@media (max-width: 782px) {
  .site-description {
    display: block !important;
    margin: 3px 0 0 !important;
    font-size: 9px !important;
    line-height: 1.15 !important;
    letter-spacing: .14em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    opacity: .65 !important;
  }
}


/* StageGrove Music v6.1 fan-site sections */
.stagegrove-home-follow .stagegrove-follow-grid{margin-top:24px}
.stagegrove-home-social .stagegrove-social-grid{margin-top:28px}
.stagegrove-home-fanzone .stagegrove-poll{max-width:760px;padding:22px;border:1px solid rgba(20,20,20,.15);border-radius:16px}
.section-link{margin-top:24px}.section-link a{font-weight:800;text-decoration:none}
@media(max-width:700px){
  .stagegrove-home-follow .stagegrove-follow-grid{grid-template-columns:1fr 1fr}
  .stagegrove-home-social .stagegrove-social-grid{grid-template-columns:1fr 1fr}
}


/* Structured StageGrove Music About page */
.bb-about-page { padding-top: clamp(58px,8vw,100px); padding-bottom: clamp(70px,9vw,120px); }
.bb-about-page .stagegrove-about { width: min(calc(100% - 40px), var(--bb-max)); margin-inline: auto; }
.stagegrove-about-hero { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(34px,7vw,90px); align-items:end; padding-bottom:clamp(48px,7vw,78px); border-bottom:1px solid var(--bb-line); }
.stagegrove-about-image { aspect-ratio:4/5; max-height:680px; overflow:hidden; border-radius:var(--bb-radius); background:#ddd; box-shadow:var(--bb-shadow); }
.stagegrove-about-image img { width:100%; height:100%; object-fit:cover; }
.stagegrove-about-kicker, .stagegrove-about-section-label { color:var(--bb-accent); font-size:.7rem; text-transform:uppercase; letter-spacing:.13em; font-weight:900; }
.stagegrove-about-title { margin:10px 0 20px; font-family:"Unbounded",sans-serif; font-size:clamp(3.4rem,8vw,8rem); line-height:.84; letter-spacing:-.07em; text-transform:uppercase; }
.stagegrove-about-lead { margin:0; max-width:760px; color:var(--bb-muted); font-size:clamp(1.15rem,2.1vw,1.55rem); line-height:1.55; }
.stagegrove-about-facts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-bottom:1px solid var(--bb-line); }
.stagegrove-about-fact { padding:24px 18px 24px 0; border-right:1px solid var(--bb-line); }
.stagegrove-about-fact:last-child { border-right:0; padding-left:18px; }
.stagegrove-about-fact:not(:first-child) { padding-left:18px; }
.stagegrove-about-fact span { display:block; color:var(--bb-muted); font-size:.67rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; margin-bottom:8px; }
.stagegrove-about-fact strong { display:block; font-family:"Unbounded",sans-serif; font-size:clamp(.82rem,1.15vw,1rem); line-height:1.25; }
.stagegrove-about-section { display:grid; grid-template-columns:minmax(130px,.34fr) minmax(0,1.66fr); gap:clamp(30px,7vw,90px); padding:clamp(52px,7vw,82px) 0; border-bottom:1px solid var(--bb-line); }
.stagegrove-about-section h2 { margin:0 0 26px; font-family:"Unbounded",sans-serif; font-size:clamp(2rem,4.8vw,4.5rem); line-height:.95; letter-spacing:-.055em; text-transform:uppercase; }
.stagegrove-about-section ul { margin:0; padding:0; list-style:none; }
.stagegrove-about-section li { position:relative; padding:18px 0 18px 28px; border-top:1px solid var(--bb-line); font-size:clamp(1rem,1.6vw,1.22rem); line-height:1.55; }
.stagegrove-about-section li::before { content:""; position:absolute; left:0; top:27px; width:8px; height:8px; border-radius:50%; background:var(--bb-accent); }
.stagegrove-about-prose { max-width:900px; font-size:clamp(1.08rem,1.8vw,1.35rem); line-height:1.7; }
.stagegrove-about-prose p { margin-top:0; }
.stagegrove-about-timeline-list { border-top:1px solid var(--bb-line); }
.stagegrove-about-timeline-item { display:grid; grid-template-columns:100px minmax(220px,.7fr) minmax(0,1fr); gap:24px; padding:22px 0; border-bottom:1px solid var(--bb-line); align-items:start; }
.stagegrove-about-timeline-item time { color:var(--bb-accent); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.stagegrove-about-timeline-item h3 { margin:0; font-family:"Unbounded",sans-serif; font-size:1rem; line-height:1.2; }
.stagegrove-about-timeline-item p { margin:0; color:var(--bb-muted); }
.stagegrove-about-timeline-link { display:inline-block; margin-top:26px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; font-size:.76rem; }
.stagegrove-about-empty { width:min(calc(100% - 40px),900px); margin-inline:auto; padding:80px 0; }

@media (max-width: 900px) {
  .stagegrove-about-hero { grid-template-columns:1fr; align-items:start; }
  .stagegrove-about-image { max-width:620px; }
  .stagegrove-about-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stagegrove-about-fact, .stagegrove-about-fact:not(:first-child), .stagegrove-about-fact:last-child { padding:20px 14px 20px 0; border-right:0; border-bottom:1px solid var(--bb-line); }
  .stagegrove-about-fact:nth-child(even) { padding-left:18px; }
  .stagegrove-about-section { grid-template-columns:1fr; gap:18px; }
  .stagegrove-about-timeline-item { grid-template-columns:80px 1fr; }
  .stagegrove-about-timeline-item p { grid-column:2; }
}
@media (max-width: 560px) {
  .stagegrove-about-facts { grid-template-columns:1fr; }
  .stagegrove-about-fact, .stagegrove-about-fact:not(:first-child), .stagegrove-about-fact:nth-child(even), .stagegrove-about-fact:last-child { padding:18px 0; }
  .stagegrove-about-timeline-item { grid-template-columns:1fr; gap:8px; }
  .stagegrove-about-timeline-item p { grid-column:auto; }
}
