/* Beach Music TV — shared base styles (tokens, header, footer, buttons, typography).
   Loaded on every page before page-specific and form styles. */

:root{
  --navy:#061b35;
  --navy-2:#0a2b42;
  --teal-dark:#0d6681;
  --teal:#109bb3;
  --aqua:#15d3d2;
  --aqua-bg:rgba(232,248,248,.72);
  --cream:#fff9ef;
  --white:#fff;
  --orange:#f47a19;
  --text:#627482;
  --muted:#8a9aa3;
  --border:#dce8e9;
  --shadow:0 18px 45px rgba(11,58,76,.10);
  --heading:"Space Grotesk",sans-serif;
  --body:"Open Sans",sans-serif;
  --mono:"Space Mono",monospace;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --ease-in-out:cubic-bezier(0.77,0,0.175,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;color:var(--navy);font-family:var(--body);background:radial-gradient(78% 48% at 50% -3%, rgba(244, 181, 11, .18) 0%, rgba(240, 139, 21, .06) 40%, transparent 66%),      radial-gradient(68% 46% at 84% 18%, rgba(21, 211, 210, .16) 0%, transparent 60%),      linear-gradient(180deg, #FFFFFF 0%, #F6FBFC 55%, #E7F4F6 100%);}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}

.bmtv-container{width:min(1180px,calc(100% - 40px));margin:auto}
.bmtv-mono{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}
.bmtv-label{display:inline-flex;align-items:center;gap:9px;margin-bottom:8px;color:var(--teal-dark)}
.bmtv-label:before{content:"";width:25px;height:2px;background:var(--orange)}
.bmtv-title{margin:0;font-family:var(--heading);font-size:clamp(38px,5vw,60px);line-height:1.04;letter-spacing:-1.8px;text-transform:capitalize;}
.bmtv-copy{max-width:680px;margin:20px 0 0;color:var(--text);font-size:16px;line-height:1.8}

.bmtv-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 25px;border:0;border-radius:7px;font-family:var(--mono);font-size:14px;font-weight:400;letter-spacing:1px;text-transform:uppercase;transition:transform .18s var(--ease-out,ease),background .25s ease,border-color .25s ease,box-shadow .25s ease,color .2s ease;cursor:pointer}
.bmtv-button:active{transform:scale(.97);transition-duration:.1s}
@media (hover:hover) and (pointer:fine){.bmtv-button:hover{transform:translateY(-2px)}}
.bmtv-button-primary{color:#fff;background:var(--teal-dark);box-shadow:0 10px 24px rgba(13,102,129,.18)}
.bmtv-button-primary:hover{background:var(--navy)}
.bmtv-button-outline{color:var(--teal-dark);border:1px solid #cbdfe1;background:rgba(255,255,255,.72);font-size:13px;letter-spacing:2px}
.bmtv-button-outline:hover{border-color:var(--aqua);background:#fff}

/* Header — transparent over the hero, solidifies to cream once scrolled 50px */
.bmtv-header{position:sticky;top:0;z-index:50;padding:4px 0;border-bottom:1px solid rgba(13,102,129,0);background:rgba(255,249,239,0);transition:background .3s ease,border-color .3s ease}
.bmtv-header.is-scrolled,.bmtv-header.is-nav-open{background:var(--cream);border-bottom-color:rgba(13,102,129,.08)}
.bmtv-header-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}
.bmtv-logo{flex:0 0 auto;line-height:0}
.bmtv-logo img{height:84px;width:auto}
.bmtv-menu{display:flex;align-items:center;gap:30px}
.bmtv-menu a{font-family:var(--body);font-size:14px;font-weight:600;color:var(--navy-2);transition:.2s}
.bmtv-menu a:hover{color:var(--teal)}
.bmtv-menu .bmtv-menu-cta{padding:12px 20px;color:#fff;background:var(--teal-dark);border-radius:7px;font-family:var(--mono);text-transform:uppercase;font-weight:normal;letter-spacing:1px;font-size:13px}
.bmtv-menu .bmtv-menu-cta:hover{color:#fff;background:var(--navy)}
.bmtv-menu-mobile-cats{display:none}

/* Hamburger (mobile only) */
.bmtv-nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:11px;border:0;background:none;cursor:pointer}
.bmtv-nav-toggle-bar{display:block;width:24px;height:2px;border-radius:2px;background:var(--navy);transition:transform .28s var(--ease-out,ease),opacity .2s ease}
.bmtv-header.is-nav-open .bmtv-nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.bmtv-header.is-nav-open .bmtv-nav-toggle-bar:nth-child(2){opacity:0}
.bmtv-header.is-nav-open .bmtv-nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.bmtv-mega a:hover {
    text-decoration: underline;
    text-underline-offset: .3em;
    text-decoration-thickness: 1px;
}

@media(max-width:980px){
  .bmtv-nav-toggle{display:flex}
  .bmtv-menu{position:absolute;top:100%;left:0;right:0;z-index:60;flex-direction:column;align-items:stretch;gap:0;padding:6px 0 14px;background:var(--cream);border-top:1px solid var(--border);border-radius:0 0 14px 14px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease,visibility .25s}
  .bmtv-header.is-nav-open .bmtv-menu{opacity:1;visibility:visible;transform:none}
  .bmtv-menu a{font-size:16px;padding:14px 4px;border-bottom:1px solid rgba(13,102,129,.08)}
  .bmtv-menu .bmtv-menu-cta{margin-top:12px;padding:15px;color:#fff;text-align:center;border-bottom:0}
  .bmtv-menu .bmtv-dropdown{display:none}
  .bmtv-menu-mobile-cats{display:block}
}

/* Interior page header (gallery, contact) — centered banner */
.bmtv-page-head{padding:78px 0 52px;text-align:center;background:
 radial-gradient(65% 65% at 50% -14%, rgba(21, 211, 210, .16), transparent 62%), radial-gradient(42% 42% at 12% 8%, rgba(255, 201, 40, .10), transparent 60%), #ffffff;}
.bmtv-page-head .bmtv-copy{margin-left:auto;margin-right:auto}

/* Wave divider */
.bmtv-wave{height:90px;margin-top:-1px;overflow:hidden;line-height:0;background:#fff}
.bmtv-wave svg{width:100%;height:100%;display:block}

/* Footer — three columns: rebrand · links · contact + social */
.bmtv-footer{padding:70px 0 28px;background:#fff;border-top:1px solid rgba(13,102,129,.1)}
.bmtv-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:50px;align-items:start}
.bmtv-footer-heading{margin:0 0 18px;font-family:var(--heading);font-size:15px;letter-spacing:.2px;color:var(--navy)}

/* Col 1 — rebrand */
.bmtv-footer-brand .bmtv-rebrand-logos{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.bmtv-footer-brand .bmtv-rebrand-logo{display:flex;flex-direction:column;align-items:center;gap:6px}
.bmtv-footer-brand .bmtv-old-logo{width:70px;opacity:.55}
.bmtv-footer-brand .bmtv-new-logo{width:100px}
.bmtv-footer-brand .bmtv-arrow{color:var(--orange);font-size:22px}
.bmtv-footer-brand .bmtv-rebrand-copy h2{margin:0 0 8px;font-family:var(--heading);font-size:20px;line-height:1.15}
.bmtv-footer-brand .bmtv-rebrand-copy p{margin:0;max-width:360px;color:var(--text);font-size:13px;line-height:1.6}

/* Col 2 — links (two columns) */
.bmtv-footer-links{display:grid;grid-template-columns:repeat(2,auto);gap:12px 30px;justify-content:normal}
.bmtv-footer-links a{font-size:14px;font-weight:500;color:var(--navy-2);transition:color .2s}
.bmtv-footer-links a:hover{color:var(--teal)}

/* Col 3 — contact + social */
.bmtv-footer-contact{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:12px}
.bmtv-footer-contact li{display:flex;align-items:center;gap:10px;color:var(--text);font-size:14px}
.bmtv-footer-contact li svg{flex:0 0 auto;color:var(--teal-dark)}
.bmtv-footer-contact a{color:var(--text);transition:color .2s}
.bmtv-footer-contact a:hover{color:var(--teal-dark)}
.bmtv-footer-social{display:flex;gap:12px}
.bmtv-footer-social a{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--aqua-bg);color:var(--teal-dark);transition:background .2s,color .2s,transform .2s}
.bmtv-footer-social a:hover{background:var(--teal-dark);color:#fff}
@media (hover:hover) and (pointer:fine){.bmtv-footer-social a:hover{transform:translateY(-2px)}}

.bmtv-footer-bottom{display:flex;justify-content:space-between;gap:12px;margin-top:50px;padding-top:20px;border-top:1px solid var(--border);color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:1px}
.bmtv-footer-bottom a:hover{color:var(--teal)}
.bmtv-copymark{font-family:var(--body)}

@media(max-width:860px){
  .bmtv-footer-grid{grid-template-columns:1fr;gap:38px}
  .bmtv-footer-bottom{flex-direction:column;gap:8px;text-align:center;justify-content:center}
}

/* Rich bio content (artist profiles) — see content/artists/*.php */
.bmtv-prose{color:var(--text);font-size:16px;line-height:1.8}
.bmtv-prose > *:first-child{margin-top:0}
.bmtv-prose p{margin:0 0 16px}
.bmtv-prose strong{color:var(--navy)}
.bmtv-prose h3{font-family:var(--heading);color:var(--navy);font-size:20px;line-height:1.2;margin:28px 0 10px}
.bmtv-prose ul{margin:0 0 18px;padding:0;list-style:none;display:grid;gap:9px}
.bmtv-prose ul li{position:relative;padding-left:24px}
.bmtv-prose ul li:before{content:"\266A";position:absolute;left:0;top:0;color:var(--orange);font-weight:700}
.bmtv-prose a{color:var(--teal-dark);font-weight:600}
.bmtv-prose a:hover{color:var(--orange)}
.bmtv-prose img{width:100%;height:auto;border-radius:12px;display:block}
.bmtv-prose figure{margin:0 0 18px}
.bmtv-prose figcaption{margin-top:8px;font-size:13px;color:var(--muted)}
.bmtv-audio{margin:6px 0 20px}
.bmtv-audio-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--teal-dark);margin-bottom:8px}
.bmtv-audio audio,.bmtv-prose audio{width:100%}

/* Scroll reveal — motion applied by assets/js/anim.js (Motion library).
   Elements start hidden and are revealed on load / on scroll into view. */
.reveal,.reveal-stagger>*{opacity:0}
.reveal.is-visible,.reveal-stagger.is-visible>*{opacity:1;transform:none}

@media(max-width:700px){
  .bmtv-container{width:calc(100% - 30px)}
  .bmtv-header-inner{gap:15px}
  .bmtv-logo img{height:60px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal-stagger>*{opacity:1;transform:none}
  .bmtv-button:active{transform:none}
}
