/* ════════════════════════════════════════════════════════════════════════════════════════════════
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 
· · · · · · · · · · · · · · · _____  _____ _____ _____ _    _  _____  · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · ·|  __ \|_   _/ ____|_   _|_ \ | |/ ____| · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · ·| |__| | | || (___   | |  |  \| | |  __  · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · ·|  _  /  | | \___ \  | |  | . ` | | |_ | · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · ·| | \ \ _| |____) |__| |__| |\  | |__| | · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · ·|_|  \_\_____|_____/|_____|_| \_|\_____| · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · █ · · · · · ·   _      ______      ________   · · · · · · █ · · · · · · · · · ·
· · · · · · · · · · █ · · · · · ·  | |    / __ \ \    / /  ____|  · · · · · · █ · · · · · · · · · ·
· · · · · · █ · · █ █ █ · · █ · ·  | |   | |  | \ \  / /| |__     · · █ · · █ █ █ · · █ · · · · · ·
· · · · · · █ █ · █ █ █ · █ █ · ·  | |   | |  | |\ \/ / |  __|    · · █ █ · █ █ █ · █ █ · · · · · ·
· · · · · · █ █ █ █ █ █ █ █ █ · ·  | |___| |__| | \  /  | |____   · · █ █ █ █ █ █ █ █ █ · · · · · ·
· · · · · · █ █ █ █ █ █ █ █ █ · ·  |______\____/   \/   |______|  · · █ █ █ █ █ █ █ █ █ · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · ·  __  __ _    _  _____ _____ _____   · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · |  \/  | |  | |/ ____|_   _/ ____|  · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · | \  / | |  | | (___   | || |       · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · | |\/| | |  | |\___ \  | || |       · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · | |  | | |__| |____) |_| || |____   · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · |_|  |_|\____/|_____/|_____\_____|  · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · Uplifting Musicians™  · · · · · · · · · · · · · · · · · · · · 
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · https://risinglovemusic.com · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
════════════════════════════════════════════════════════════════════════════════════════════════ */

/* =========================================================
   01. ROOT / THEME VARIABLES
========================================================= */
:root{
  --accent:#b85c4a;
  --bg-main:#111111;
  --bg-soft:#171717;
  --bg-elev:#1f1f1f;

  --ink:#0f0f0f;
  --panel:#171717;
  --panel-2:#1f1f1f;

  --text:#f3f3f0;
  --muted:#b8b4ad;

  --line:rgba(255,255,255,.10);
  --border-soft:rgba(255,255,255,.08);

  --radius:24px;
  --radius-sm:18px;
  --shadow:0 18px 40px rgba(0,0,0,.22);

  --header-menu-zone:52px;
}

/* =========================================================
   02. BASE / RESET
========================================================= */
*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.025), transparent 40%),
    radial-gradient(circle at 80% 90%, rgba(0,0,0,.10), transparent 50%),
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.012) 0px,
      rgba(255,255,255,.012) 1px,
      transparent 1px,
      transparent 3px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,.008) 0px,
      rgba(255,255,255,.008) 1px,
      transparent 1px,
      transparent 4px
    ),
    #181512;
  color:var(--text);
  line-height:1.5;
  opacity:1;
  transition:opacity .22s ease;
}

body.page-leaving{
  opacity:0;
}

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

a{
  color:inherit;
  text-decoration:none;
}

button,
input{
  font:inherit;
}

/* =========================================================
   03. SITE FRAME / LAYOUT
========================================================= */
.site-frame{
  min-height:100vh;
  padding:12px;
}

main{
  padding-top:132px;
}

.panel{
  background:rgba(24,22,20,.82);
  border:1px solid rgba(255,255,255,.06);
  border-radius:20px;
  padding:24px;
  box-shadow:none;
}

.split-section{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:12px;
}

section + section,
.split-section + .panel,
.panel + .split-section{
  margin-top:12px;
}

/* =========================================================
   04. HEADER BACKDROP MASK
========================================================= */
body::before{
  content:"";
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:130px;
  z-index:19;
  pointer-events:none;
  background:
    linear-gradient(
      to bottom,
      rgba(17,17,17,1) 0%,
      rgba(17,17,17,.98) 72%,
      rgba(17,17,17,.85) 88%,
      rgba(17,17,17,0) 100%
    );
}

/* =========================================================
   05. HEADER / NAVIGATION
========================================================= */
.site-header{
  position:fixed;
  top:12px;
  left:12px;
  right:12px;
  z-index:20;
  margin:0 auto;
  width:calc(100% - 24px);
  max-width:1200px;
  min-height:92px;
  display:grid;
  grid-template-columns:var(--header-menu-zone) 1fr;
  align-items:center;
  padding:10px 14px;
  background:rgba(17,17,17,.92);
  border-bottom:1px solid var(--border-soft);
}

.site-header::before,
.site-header::after{
  content:none;
}

/* ---------- Mobile menu toggle ---------- */
.menu-toggle{
  border:0;
  background:transparent;
  width:44px;
  height:44px;
  display:grid;
  align-content:center;
  gap:6px;
  cursor:pointer;
  padding:0;
  border-radius:10px;
  transition:background .2s ease;
}

.menu-toggle:hover{
  background:rgba(255,255,255,.04);
}

.menu-toggle span{
  display:block;
  height:2px;
  background:var(--text);
  border-radius:99px;
  transition:transform .25s ease, opacity .25s ease, width .25s ease;
}

.menu-toggle span:nth-child(1){width:50%}
.menu-toggle span:nth-child(2){width:100%}
.menu-toggle span:nth-child(3){
  width:50%;
  margin-left:auto;
}

.menu-toggle.is-open span:nth-child(1){
  width:100%;
  transform:translateY(8px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2){
  opacity:0;
}

.menu-toggle.is-open span:nth-child(3){
  width:100%;
  margin-left:0;
  transform:translateY(-8px) rotate(-45deg);
}

/* ---------- Brand ---------- */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  justify-self:center;
}

.brand-mark{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  background:transparent;
  overflow:visible;
  flex:0 0 auto;
}

.brand-mark img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}

.brand-wordmark{
  height:26px;
  width:auto;
  object-fit:contain;
  display:block;
  flex:0 1 auto;
  min-width:0;
}

.brand-tagline{
  font-size:.64rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.58);
  margin-top:2px;
}

/* ---------- Desktop nav ---------- */
.desktop-nav{
  display:none;
  position:relative;
  padding-left:22px;
}

.desktop-nav a{
  color:var(--muted);
  text-decoration:none;
  margin-left:0;
  font-size:15px;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:color .2s ease;
}

.desktop-nav a:hover,
.desktop-nav a.is-active{
  color:var(--text);
}

.desktop-nav a.is-active{
  position:relative;
}

.desktop-nav a.is-active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:1px;
  background:var(--text);
}

/* ---------- Dropdown ---------- */
.nav-group{
  position:relative;
  display:flex;
  align-items:center;
}

.nav-parent{
  position:relative;
  z-index:3;
}

.nav-dropdown-wrap{
  position:absolute;
  top:100%;
  left:0;
  padding-top:10px;
  display:none;
  z-index:30;
}

.nav-dropdown-wrap::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:14px;
}

.nav-dropdown{
  min-width:240px;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px;
  background:rgba(17,17,17,.98);
  border:1px solid var(--border-soft);
  border-radius:16px;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
}

.nav-group:hover .nav-dropdown-wrap,
.nav-group:focus-within .nav-dropdown-wrap{
  display:block;
}

.nav-dropdown a{
  margin-left:0;
  padding:11px 12px;
  border-radius:10px;
  font-size:.86rem;
  letter-spacing:.02em;
  text-transform:none;
  color:var(--muted);
  background:transparent;
}

.nav-dropdown a:hover{
  background:rgba(255,255,255,.04);
  color:var(--text);
}
/* ---------- Mobile popout nav ---------- */
.mobile-menu{
  position:fixed;
  z-index:18;
  top:108px;
  left:12px;
  right:12px;
  max-width:780px;
  margin:0 auto;
  background:rgba(17,17,17,.98);
  border:1px solid var(--border-soft);
  border-radius:18px;
  padding:10px;
  display:none;
  grid-template-columns:1fr;
  gap:8px;
}

.mobile-menu.is-open{
  display:grid;
}

.mobile-menu a{
  padding:14px 16px;
  border-radius:14px;
  background:var(--panel-2);
  color:var(--text);
  text-align:left;
  font-weight:600;
  transition:background .2s ease, color .2s ease;
}

.mobile-menu a:hover,
.mobile-menu a.is-active{
  background:rgba(255,255,255,.04);
  color:var(--text);
}

.mobile-subnav{
  display:grid;
  gap:8px;
  margin-top:-2px;
}

.mobile-subnav a{
  padding:10px 16px;
  color:var(--muted);
}

/* =========================================================
   06. TYPOGRAPHY / HEADINGS / TEXT
========================================================= */
.eyebrow,
.section-label{
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.72rem;
  font-weight:800;
}

.section-head{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-bottom:14px;
}

h1{
  font-size:clamp(2.1rem, 7vw, 4.6rem);
  line-height:.98;
  margin:0;
  max-width:11ch;
}

h2{
  font-size:clamp(1.45rem, 4vw, 2.6rem);
  line-height:1.08;
  margin:.2rem 0 0;
  max-width:14ch;
}

h3{
  font-size:1.15rem;
  margin:.2rem 0 .4rem;
}

.lede,
.panel p,
.clean-list{
  color:var(--muted);
  line-height:1.6;
}

.lede{
  font-size:1.02rem;
  max-width:40ch;
}

/* ---------- Text links ---------- */
.text-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text);
  font-weight:700;
  letter-spacing:.02em;
  text-decoration:none;
  border-bottom:1px solid rgba(184,92,74,.45);
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}

.text-link:hover{
  color:var(--accent);
  border-color:var(--accent);
}

.text-link::after{
  content:"→";
  font-size:.9em;
  opacity:.75;
  transition:transform .2s ease;
}

.text-link:hover::after{
  transform:translateX(4px);
}

/* =========================================================
   07. BUTTONS
========================================================= */
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:12px;
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  font-weight:700;
  border:1px solid transparent;
}

.button-dark{
  background:var(--text);
  color:var(--ink);
}

.button-outline{
  border-color:rgba(255,255,255,.14);
  color:var(--text);
  background:transparent;
}

.button-small{
  min-height:40px;
  padding:0 14px;
}

/* =========================================================
   08. HERO
========================================================= */
.hero{
  min-height:58vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:14px;
}

.hero-artist-first{
  position:relative;
  overflow:hidden;
  background:radial-gradient(circle at 50% 120%, rgba(255,180,80,.08), transparent 60%);
}

.hero-artist-first::before{
  content:"";
  position:absolute;
  inset:auto -10% -20% auto;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.04), transparent 65%);
  pointer-events:none;
}

/* =========================================================
   09. GRID / CARDS
========================================================= */
.card-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}

.card{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:20px;
  padding:20px;
}

.card-tag{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:12px;
}

/* =========================================================
   10. FEATURED RELEASE
========================================================= */
.feature-release-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.feature-art{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  aspect-ratio:1 / 1;
  background:#111;
  box-shadow:
    0 8px 30px rgba(0,0,0,0.35),
    0 2px 6px rgba(0,0,0,0.2);
}

.feature-art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
  transform:none;
  transition:transform 0.6s ease;
}

.feature-art::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(to top, rgba(0,0,0,0.25), transparent 40%);
  pointer-events:none;
}

@media (hover:hover){
  .feature-art:hover img{
    transform:scale(1.03);
  }
}

.feature-copy{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:4px;
}

.feature-title{
  font-size:clamp(1.65rem, 4vw, 2.8rem);
  line-height:1.05;
  margin:.2rem 0 .6rem;
}

.feature-text{
  max-width:42ch;
  margin-bottom:14px;
}

.feature-actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}

/* =========================================================
   11. MUSIC CARDS
========================================================= */
/* ---------- Optional video artwork for music cards -uncomment to activate ----------
.media-video{
  position:relative;
  overflow:hidden;
}

.media-video video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
------------------------------------------------------------ */
.music-card .release-art{
  width:100%;
  aspect-ratio:1/1;
  border-radius:16px;
  margin-bottom:14px;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 30% 20%, rgba(184,92,74,.16), transparent 60%),
    linear-gradient(180deg, #242424, #151515);
  transition:transform .35s ease, filter .35s ease;
}

.music-card:hover .release-art{
  transform:scale(1.02);
  filter:brightness(1.03);
}
.music-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
}

.art-one-action{
  background:
    radial-gradient(circle at 28% 22%, rgba(184,92,74,.18), transparent 58%),
    linear-gradient(180deg, #262626, #151515);
}

.art-grey-rock{
  background:
    radial-gradient(circle at 62% 18%, rgba(184,92,74,.14), transparent 58%),
    linear-gradient(180deg, #232323, #141414);
}

.art-coming-soon{
  background:
    radial-gradient(circle at 50% 25%, rgba(184,92,74,.18), transparent 60%),
    linear-gradient(180deg, #232323, #141414);
}

/* Artist-specific release visuals */
.artist-media-lujan .art-slot-1{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/lujan/img/music-1.webp') center/cover no-repeat,
    radial-gradient(circle at 28% 22%, rgba(184,92,74,.18), transparent 58%),
    linear-gradient(180deg, #262626, #151515);
}

.artist-media-lujan .art-slot-2{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/lujan/img/music-2.webp') center/cover no-repeat,
    radial-gradient(circle at 62% 18%, rgba(184,92,74,.14), transparent 58%),
    linear-gradient(180deg, #232323, #141414);
}

.artist-media-lujan .art-slot-3{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/lujan/img/music-3.webp') center/cover no-repeat,
    radial-gradient(circle at 50% 25%, rgba(184,92,74,.18), transparent 60%),
    linear-gradient(180deg, #232323, #141414);
}
.artist-media-prez .art-slot-1{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/prez/img/music-1.webp') center/cover no-repeat,
    radial-gradient(circle at 28% 22%, rgba(184,92,74,.18), transparent 58%),
    linear-gradient(180deg, #262626, #151515);
}

.artist-media-prez .art-slot-2{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/prez/img/music-2.webp') center/cover no-repeat,
    radial-gradient(circle at 62% 18%, rgba(184,92,74,.14), transparent 58%),
    linear-gradient(180deg, #232323, #141414);
}

.artist-media-prez .art-slot-3{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/prez/img/music-3.webp') center/cover no-repeat,
    radial-gradient(circle at 50% 25%, rgba(184,92,74,.18), transparent 60%),
    linear-gradient(180deg, #232323, #141414);
}
.artist-media-tuff .art-slot-1{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/tufflion/img/music-1.webp') center/cover no-repeat,
    radial-gradient(circle at 28% 22%, rgba(184,92,74,.18), transparent 58%),
    linear-gradient(180deg, #262626, #151515);
}

.artist-media-tuff .art-slot-2{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/tufflion/img/music-2.webp') center/cover no-repeat,
    radial-gradient(circle at 62% 18%, rgba(184,92,74,.14), transparent 58%),
    linear-gradient(180deg, #232323, #141414);
}

.artist-media-tuff .art-slot-3{
  background:
    linear-gradient(rgba(0,0,0,.25), rgba(0,0,0,.25)),
    url('/tufflion/img/music-3.webp') center/cover no-repeat,
    radial-gradient(circle at 50% 25%, rgba(184,92,74,.18), transparent 60%),
    linear-gradient(180deg, #232323, #141414);
}

/* =========================================================
   12. LISTS / SUPPORTING CONTENT
========================================================= */
.clean-list{
  list-style:none;
  padding:0;
  margin:14px 0 0;
}

.clean-list li{
  padding:12px 0;
  border-top:1px solid var(--line);
}

.accent-card{
  background:linear-gradient(180deg, #181818, #131313);
}

/* =========================================================
   13. FORMS / NEWSLETTER / CONTACT
========================================================= */
.newsletter-form{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:14px;
}

.newsletter-form input{
  width:100%;
  min-height:48px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:#111111;
  color:var(--text);
  padding:0 14px;
}

/* ---------- API fan signup forms ---------- */
.fan-signup-form{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:16px;
}

.fan-signup-form input[type="text"],
.fan-signup-form input[type="email"],
.fan-signup-form input[type="tel"]{
  width:100%;
  min-height:48px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:#111111;
  color:var(--text);
  padding:0 14px;
}

.fan-signup-form input::placeholder{
  color:rgba(243,243,240,.52);
}

.checkbox-field{
  display:grid;
  grid-template-columns:22px 1fr;
  gap:10px;
  align-items:start;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.45;
  margin:2px 0 4px;
}

.checkbox-field input[type="checkbox"]{
  width:18px;
  height:18px;
  min-height:0;
  margin:2px 0 0;
  accent-color:var(--accent);
}

.form-message{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.45;
}

.newsletter-panel .fan-signup-form{
  max-width:520px;
}

.newsletter-panel .fan-signup-form .button{
  width:fit-content;
}

.social-row{
  display:flex;
  gap:10px;
  margin-top:16px;
}

/* =========================================================
   14. BRAND TAGLINE / MANIFESTO
========================================================= */
.tm{
  font-size:.6em;
  vertical-align:super;
  margin-left:2px;
  opacity:.8;
}

.label-statement{
  text-align:center;
  padding:28px 0;
  border-top:1px solid rgba(255,255,255,.05);
}

.label-manifesto{
  font-size:.72rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:rgba(255,255,255,.35);
  padding:18px 0;
}

.footer-tagline{
  font-size:.65rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.45);
}

/* =========================================================
   15. FOOTER
========================================================= */
.site-footer{
  margin-top:80px;
  padding:48px 20px 56px;
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--muted);
  text-align:center;
  position:relative;
  overflow:hidden;
}

.site-footer::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:-140px;
  transform:translateX(-50%);
  width:700px;
  height:300px;
  background:radial-gradient(
    ellipse at center,
    rgba(184,92,74,.14) 0%,
    rgba(184,92,74,.06) 40%,
    rgba(0,0,0,0) 70%
  );
  pointer-events:none;
}

.footer-inner{
  position:relative;
  z-index:1;
  max-width:640px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}

.footer-brand{
  margin:0;
  color:var(--text);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  position:relative;
  padding-bottom:12px;
}

.footer-brand::after{
  content:"";
  display:block;
  width:48px;
  height:1px;
  margin:10px auto 0;
  background:linear-gradient(
    to right,
    transparent,
    rgba(184,92,74,.55),
    transparent
  );
}

.footer-links{
  display:flex;
  gap:20px;
  justify-content:center;
  flex-wrap:wrap;
  margin:0;
}

.footer-links a{
  color:var(--muted);
  font-size:.92rem;
  text-decoration:none;
  transition:color .2s ease;
}

.footer-links a:hover{
  color:var(--text);
}

.footer-copyright{
  margin:0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.6;
  opacity:.92;
}

/* ------ Contact Social Pills ------- */
.contact-social-row{
  display:flex;
  gap:10px;
  margin-top:16px;
}

.contact-social-pill{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  display:grid;
  place-items:center;
  font-size:.78rem;
  font-weight:800;
  color:var(--muted);
  text-decoration:none;
}

/* ---------- Heart effect (subtle) ---------- */
.heart{
  position:relative;
  display:inline-block;
  color:var(--text);
  margin-left:6px;
  transform-origin:center;
  animation:heartbeat 4.2s ease-in-out infinite;
  text-shadow:
    0 0 4px rgba(255,255,255,.25),
    0 0 8px rgba(184,92,74,.25);
}

.heart::before,
.heart::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  border:1.2px solid rgba(255,245,240,.55);
  border-bottom:none;
  border-left-color:transparent;
  border-right-color:transparent;
  border-radius:999px 999px 0 0;
  opacity:0;
  pointer-events:none;
  transform-origin:center bottom;
  filter:
    drop-shadow(0 0 4px rgba(255,255,255,.35))
    drop-shadow(0 0 8px rgba(184,92,74,.35));
}

.heart::before{
  width:1.3em;
  height:.75em;
  transform:translate(-50%,-130%) scale(.8);
  animation:heartsignal1 4.2s ease-out infinite;
}

.heart::after{
  width:1.9em;
  height:1.05em;
  transform:translate(-50%,-138%) scale(.8);
  animation:heartsignal2 4.2s ease-out infinite;
  animation-delay:2.1s;
}

@keyframes heartbeat{
  0%   { transform:scale(1); }
  10%  { transform:scale(1.08); }
  18%  { transform:scale(1); }
  24%  { transform:scale(1.05); }
  40%  { transform:scale(1); }
  100% { transform:scale(1); }
}

@keyframes heartsignal1{
  0%{
    transform:translate(-50%,-130%) scale(.8);
    opacity:0;
  }
  14%{
    opacity:.55;
  }
  45%{
    opacity:.22;
  }
  100%{
    transform:translate(-50%,-155%) scale(1.55);
    opacity:0;
  }
}

@keyframes heartsignal2{
  0%{
    transform:translate(-50%,-138%) scale(.8);
    opacity:0;
  }
  18%{
    opacity:.42;
  }
  48%{
    opacity:.16;
  }
  100%{
    transform:translate(-50%,-165%) scale(1.65);
    opacity:0;
  }
}

@media (max-width:768px){
  .heart::before,
  .heart::after{
    border-width:1.4px;
  }
}

/* =========================================================
   16. ACCESSIBILITY HELPERS
========================================================= */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}

/* =========================================================
   17. ARTIST ROSTER / PREMIUM LABEL STYLE
========================================================= */
.roster-intro .lede{
  max-width:44ch;
}

.artist-roster{
  padding:18px;
}

.artist-roster-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:20px;
}

.artist-roster-card{
  background:transparent;
  border:none;
  padding:0;
}

.artist-roster-link{
  display:block;
  color:inherit;
  text-decoration:none;
}

.artist-roster-visual{
  width:100%;
  aspect-ratio:1/1;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 30% 20%, rgba(184,92,74,.16), transparent 58%),
    linear-gradient(180deg, #242424, #141414);
  transition:transform .35s ease, filter .35s ease, border-color .25s ease;
}

.artist-roster-visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.artist-roster-meta{
  padding:12px 2px 2px;
}

.artist-roster-name{
  font-size:clamp(1.2rem, 2vw, 1.55rem);
  line-height:1.05;
  margin:0 0 6px;
  max-width:none;
}

.artist-roster-text{
  margin:0 0 10px;
  color:var(--muted);
  font-size:.96rem;
  max-width:30ch;
}

.artist-roster-cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text);
  font-weight:700;
  letter-spacing:.02em;
  border-bottom:1px solid rgba(184,92,74,.45);
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}

.artist-roster-cta::after{
  content:"→";
  font-size:.9em;
  opacity:.75;
  transition:transform .2s ease;
}

.artist-roster-link:hover .artist-roster-visual{
  transform:scale(1.02);
  filter:brightness(1.04);
  border-color:rgba(255,255,255,.14);
}

.artist-roster-link:hover .artist-roster-cta{
  color:var(--accent);
  border-color:var(--accent);
}

.artist-roster-link:hover .artist-roster-cta::after{
  transform:translateX(4px);
}

/* =========================================================
   18. PRIVACY PAGE
========================================================= */
.legal-panel{
  max-width:680px;
  margin:0 auto;
}

/* =========================================================
   19. ARTIST PAGE TEMPLATE
========================================================= */
.artist-hero-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}

.artist-hero-image{
  position:relative;
  overflow:hidden;
  border-radius:20px;
  aspect-ratio:1 / 1;
  background:#111;
  border:1px solid var(--line);
}

.artist-hero-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.artist-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.artist-hero-lede{
  max-width:42ch;
  font-size:1.02rem;
  color:var(--muted);
}

.artist-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:14px;
}

.artist-media .music-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}

.artist-gallery-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}

.artist-gallery-item{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  aspect-ratio:1 / 1;
  border:1px solid var(--line);
  background:#111;
}

.artist-gallery-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
/* =========================================================
   20. BOOKING PAGE
========================================================= */

.booking-intro{
  margin-bottom:18px;
}

.booking-artist-line{
  color:var(--muted);
}

.booking-form{
  display:block;
  width:100%;
}

.booking-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  width:100%;
}

.booking-field{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  width:100%;
  min-width:0;
}

.booking-field-full{
  display:flex;
  flex-direction:column;
  gap:8px;
  width:100%;
  margin-top:16px;
}

.booking-field label,
.booking-field-full label{
  display:block;
  width:100%;
  color:var(--text);
  font-weight:600;
  font-size:.95rem;
  line-height:1.3;
  margin:0;
}

.booking-field input,
.booking-field textarea,
.booking-field-full input,
.booking-field-full textarea{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:#111111;
  color:var(--text);
  padding:14px 16px;
  margin:0;
  box-sizing:border-box;
  font:inherit;
}

.booking-field input::placeholder,
.booking-field textarea::placeholder,
.booking-field-full input::placeholder,
.booking-field-full textarea::placeholder{
  color:rgba(243,243,240,.52);
}

.booking-field textarea,
.booking-field-full textarea{
  resize:vertical;
  min-height:180px;
}

.booking-actions{
  margin-top:20px;
  display:flex;
  justify-content:flex-start;
}

@media (min-width:720px){
  .booking-grid{
    grid-template-columns:1fr 1fr;
    gap:18px;
  }

  .booking-field-full{
    grid-column:1 / -1;
  }
}
.booking-turnstile{
  margin-top:18px;
  display:flex;
  justify-content:flex-start;
}

.booking-turnstile .cf-turnstile{
  width:100%;
  max-width:420px;
}

#booking-submit:disabled{
  opacity:.55;
  cursor:not-allowed;
}
/* =========================================================
   21. PREZ LIVE / APPEARANCES PAGE
========================================================= */
.live-hero-grid,
.live-feature-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}

.live-hero-media,
.live-feature-art,
.live-media-frame{
  position:relative;
  overflow:hidden;
  border-radius:20px;
  border:1px solid var(--line);
  background:#111;
}

.live-hero-media{
  aspect-ratio:9 / 16;
}

.live-feature-art{
  aspect-ratio:1 / 1;
}

/* Keep in-page thumbnails visually filled */
.live-hero-video,
.live-media-frame video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}

.live-feature-art img,
.live-media-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Fullscreen safety for portrait videos */
.live-hero-video:fullscreen,
.live-media-frame video:fullscreen{
  object-fit:contain;
  background:#000;
}

.live-hero-video:-webkit-full-screen,
.live-media-frame video:-webkit-full-screen{
  object-fit:contain;
  background:#000;
}

.live-hero-video:-moz-full-screen,
.live-media-frame video:-moz-full-screen{
  object-fit:contain;
  background:#000;
}

.live-hero-video:-ms-fullscreen,
.live-media-frame video:-ms-fullscreen{
  object-fit:contain;
  background:#000;
}

.live-feature-copy,
.live-cta-inner{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.live-media-grid{
  grid-template-columns:1fr;
}

.live-media-card{
  display:flex;
  flex-direction:column;
}

.live-media-frame{
  aspect-ratio:9 / 16;
  margin-bottom:14px;
}

.live-media-image{
  background:
    radial-gradient(circle at 30% 20%, rgba(184,92,74,.14), transparent 58%),
    linear-gradient(180deg, #242424, #151515);
}

.live-media-image img{
  object-fit:contain;
  padding:24px;
}

.live-cta{
  text-align:center;
}

.live-cta-inner{
  max-width:720px;
  margin:0 auto;
  align-items:center;
}

.live-cta-inner p{
  max-width:54ch;
}

.video-overlay{
  position:absolute;
  top:10px;
  left:10px;
  z-index:2;
  pointer-events:none;
  padding:6px 10px;
  font-size:0.75rem;
  line-height:1.2;
  max-width:calc(100% - 20px);
  background:rgba(0,0,0,0.7);
  color:#fff;
  border-radius:4px;
  letter-spacing:0.03em;
}

@media (min-width:720px){
  .live-hero-grid{
    grid-template-columns:.95fr 1.05fr;
    align-items:center;
    gap:28px;
  }

  .live-feature-grid{
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:28px;
  }

  .live-media-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}
/* =========================================================
   22. RESPONSIVE / DESKTOP
========================================================= */
@media (min-width:720px){
  body::before{
    height:150px;
  }

  .site-frame{
    padding:18px;
  }

  .site-header{
    top:18px;
    left:18px;
    right:18px;
    width:min(1200px, calc(100% - 36px));
    min-height:112px;
    grid-template-columns:auto 1fr auto;
    gap:28px;
    padding:12px 24px;
  }

  .menu-toggle{
    display:none;
  }

  .brand{
    justify-self:start;
    gap:12px;
  }

  .brand-mark{
    width:62px;
    height:62px;
  }

  .brand-wordmark{
    height:49px;
  }

  .desktop-nav{
    display:flex;
    align-items:center;
    gap:18px;
    justify-self:end;
  }

  .desktop-nav::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:1px;
    height:22px;
    background:rgba(255,255,255,.10);
    transform:translateY(-50%);
  }

  .desktop-nav a{
    color:var(--muted);
    font-size:.88rem;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    transition:color .2s ease;
  }

  .desktop-nav a:hover{
    color:var(--text);
  }

  .mobile-menu{
    display:none !important;
  }

  main{
    max-width:1200px;
    margin:0 auto;
    padding-top:150px;
  }

  .hero{
    padding:42px;
    min-height:72vh;
  }

  .feature-release-grid{
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    gap:24px;
  }

  .split-section{
    grid-template-columns:1.1fr .9fr;
  }

  .card-grid{
    grid-template-columns:repeat(3, 1fr);
  }

  .newsletter-form:not(.fan-signup-form){
    flex-direction:row;
  }

  .newsletter-form:not(.fan-signup-form) input{
    flex:1;
  }

  .newsletter-form.fan-signup-form{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .newsletter-form.fan-signup-form .checkbox-field,
  .newsletter-form.fan-signup-form .button,
  .newsletter-form.fan-signup-form .form-message{
    grid-column:1 / -1;
  }

  .artist-hero-grid{
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:28px;
  }

  .artist-media .music-grid{
    grid-template-columns:repeat(3, 1fr);
  }

  .artist-gallery-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}
/* =========================================================
   23. ARTIST LINKS PAGES
========================================================= */
.links-page{
  min-height:100vh;
  display:block;
}

.links-page::before{
  display:none;
}

.links-shell{
  width:min(100%, 560px);
  margin:0 auto;
  padding:32px 18px 48px;
}

.links-hero{
  text-align:center;
  margin-bottom:22px;
}

.links-avatar{
  width:132px;
  height:132px;
  margin:0 auto 18px;
  border-radius:999px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#111;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
}

.release-reggae-on-the-river .links-cover{
  width:min(100%, 360px);
  margin:0 auto 28px;
  border-radius:18px;
  overflow:hidden;
  border:2px solid rgba(255,196,0,.78);
  background:#111;
  box-shadow:0 18px 70px rgba(0,0,0,.65);
}

.release-reggae-on-the-river .links-cover img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

/* Reggae on the River */
.release-reggae-on-the-river .section-label{
  display:inline-flex;
  align-items:center;
  gap:.6rem;

  padding:8px 18px;
  margin:0 auto 20px;

  background:linear-gradient(
    180deg,
    #e53935 0%,
    #c62828 100%
  );

  color:#fff;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;

  border-radius:999px;

  border:2px solid rgba(255,255,255,.18);

  box-shadow:
    0 6px 18px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.25);

  position:relative;
}

.release-reggae-on-the-river .section-label::before,
.release-reggae-on-the-river .section-label::after{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  box-shadow:0 0 0 2px rgba(0,0,0,.15);
}

.release-reggae-on-the-river .links-widget-block{
  text-align:center;
}

.links-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.links-title{
  margin:.3rem 0 .5rem;
  max-width:none;
}


.links-subtitle{
  max-width:34ch;
  margin:0 auto;
  color:var(--muted);
}

/* Release-specific override for Reggae on the River */
.release-reggae-on-the-river .links-subtitle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:.35rem;
  max-width:min(100%, 680px);
  margin:0 auto 18px;
  padding:10px 18px;
  color:#fff6d8;
  font-size:clamp(.98rem, 2.6vw, 1.18rem);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:
    0 2px 0 rgba(0,0,0,.45),
    0 8px 26px rgba(0,0,0,.72);
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,196,0,.24);
  border-radius:999px;
  box-shadow:
    0 10px 34px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.08);
}

/* ---------- Release platform / DSP buttons ---------- */
.release-platforms{
  display:grid;
  gap:10px;
  width:min(100%, 560px);
  margin:2px auto 24px;
}

.platform-card{
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 12px 10px 16px;
  color:#fff;
  border-radius:18px;
}

.platform-card.links-button{
  justify-content:space-between;
  background:rgba(24,22,20,.70);
  border-color:rgba(255,255,255,.10);
  box-shadow:
    0 10px 28px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.06);
}

.platform-card.links-button:hover{
  background:rgba(24,22,20,.86);
  border-color:rgba(255,210,50,.55);
}

.platform-brand{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
}

.platform-mark{
  flex:0 0 auto;
  width:30px;
  height:30px;
  background:currentColor;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
}

.platform-name{
  color:#fff;
  font-size:clamp(.94rem, 2.6vw, 1.05rem);
  font-weight:900;
  letter-spacing:.04em;
  line-height:1;
  text-transform:uppercase;
  text-align:left;
  text-shadow:0 8px 22px rgba(0,0,0,.55);
  white-space:nowrap;
}

.platform-action{
  flex:0 0 auto;
  min-width:86px;
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  color:#FFD232;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1;
  border-radius:999px;
  border:2px solid rgba(255,210,50,.84);
  background:rgba(0,0,0,.18);
  box-shadow:0 0 18px rgba(255,196,0,.12);
}

.platform-card:hover .platform-action{
  color:#0d1714;
  background:#FFD232;
  border-color:rgba(255,210,50,1);
}

.platform-action::after{
  content:"▶";
  margin-left:.55rem;
  font-size:.7em;
}

.platform-spotify{
  color:#1ED760;
}

.platform-apple-music{
  color:#fff;
}

.platform-youtube,
.platform-youtube-music{
  color:#ff2b2b;
}

.platform-amazon-music{
  color:#34d1d9;
}

.platform-pandora{
  color:#FFD232;
}

.platform-spotify .platform-mark{
  -webkit-mask-image:url('/assets/img/icons/dsp/spotify.svg');
  mask-image:url('/assets/img/icons/dsp/spotify.svg');
}

.platform-apple-music .platform-mark{
  -webkit-mask-image:url('/assets/img/icons/dsp/apple-music.svg');
  mask-image:url('/assets/img/icons/dsp/apple-music.svg');
}

.platform-youtube .platform-mark{
  -webkit-mask-image:url('/assets/img/icons/social/youtube.svg');
  mask-image:url('/assets/img/icons/social/youtube.svg');
}

.platform-youtube-music .platform-mark{
  -webkit-mask-image:url('/assets/img/icons/dsp/youtube-music.svg');
  mask-image:url('/assets/img/icons/dsp/youtube-music.svg');
}

.platform-amazon-music .platform-mark{
  -webkit-mask-image:url('/assets/img/icons/dsp/amazon-music.svg');
  mask-image:url('/assets/img/icons/dsp/amazon-music.svg');
}

.platform-pandora .platform-mark{
  -webkit-mask-image:url('/assets/img/icons/dsp/pandora.svg');
  mask-image:url('/assets/img/icons/dsp/pandora.svg');
}

@media (max-width:520px){
  .platform-card{
    min-height:58px;
    padding:9px 10px 9px 14px;
    gap:10px;
  }

  .platform-brand{
    gap:10px;
  }

  .platform-mark{
    width:26px;
    height:26px;
  }

  .platform-name{
    font-size:.82rem;
    letter-spacing:.02em;
  }

  .platform-action{
    min-width:74px;
    min-height:34px;
    padding:0 12px;
    font-size:.74rem;
  }
}

.links-list{
  display:grid;
  gap:12px;
  margin-top:24px;
}

.links-widget-block{
  background:rgba(24,22,20,.82);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:18px;
}

.links-signup-form{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:12px;
}

.links-signup-form input[type="text"],
.links-signup-form input[type="email"],
.links-signup-form input[type="tel"]{
  min-height:52px;
  border-radius:14px;
}

.links-signup-form .checkbox-field{
  font-size:.78rem;
  text-align:left;
}

.links-submit-button{
  width:100%;
  border:0;
  cursor:pointer;
}

.links-button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:0 20px;
  border-radius:18px;
  background:rgba(24,22,20,.82);
  border:1px solid rgba(255,255,255,.08);
  color:var(--text);
  font-weight:700;
  letter-spacing:.02em;
  text-align:center;
  transition:transform .2s ease, border-color .2s ease, background .2s ease;
}

.links-button:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.14);
  background:rgba(31,31,31,.92);
}
.links-button.primary{
  background:#c49a52;
  color:#0d1714;
  font-weight:700;
}

.links-button.primary:hover{
  background:#d7aa5c;
}

.links-button.secondary{
  opacity:.78;
  font-size:.94rem;
}
.links-footer{
  margin-top:28px;
  text-align:center;
}

.links-footer-brand{
  display:inline-block;
  font-size:.75rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.46);
}
 
.links-disclaimer{
  max-width:42rem;
  margin:1.5rem auto 0;
  color:rgba(255,255,255,.46);
  font-size:.75rem;
  line-height:1.4;
  text-align:center;
  opacity:.7;
}
/* =========================================================
   24. ARTIST SMS LANDERS
========================================================= */
.sms-lander {
  min-height: 72vh;
  display: flex;
  justify-content: center;
  padding: 4.5rem 1rem 3rem;
}

.sms-lander-shell {
  width: min(100%, 780px);
  text-align: center;
}

.sms-lander-logo {
  width: min(340px, 78%);
  height: auto;
  display: block;
  margin: 0 auto 2rem;
}

.sms-lander-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #ffffff;
  color: #2d2d2d;
  border-radius: 18px;
  padding: clamp(2rem, 5vw, 3.5rem);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.22);
}

/* Force dark text inside white box */
.sms-lander-box h1,
.sms-lander-box h2,
.sms-lander-box h3,
.sms-lander-box p,
.sms-lander-box .lead,
.sms-lander-box .cta-label,
.sms-lander-box .cta-number,
.sms-lander-box .sms-compliance {
  color: #000000;
}

.sms-lander-box h1 {
  text-align: center;
  margin: 0 auto 1rem;
  max-width: 640px;
  width: 100%;
  display: block;
  line-height: 1.2;
}

.sms-lander-box .lead {
  max-width: 560px;
  margin: 0 auto 1.75rem;
  text-align: center;
  font-size: 1.05rem;
  line-height: 1.7;
}

.sms-lander-box .eyebrow {
  color: #6b7280;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.sms-cta-box {
  margin: 2rem auto;
  padding: 1.5rem 1.25rem;
  max-width: 430px;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.055);
  text-align: center;
}

.cta-label,
.cta-number {
  margin: 0;
  font-weight: 700;
}

.cta-keyword {
  margin: 0.35rem 0;
  font-size: clamp(3rem, 12vw, 5.75rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.05em;
  color: #111111;
}

.sms-compliance {
  max-width: 620px;
  margin: 2rem auto 0;
  font-size: 0.88rem;
  line-height: 1.55;
  opacity: 0.86;
  text-align: center;
}

.sms-lander-box .text-link {
  color: #0f766e;
  text-decoration: underline;
}

.sms-lander-box .text-link:hover {
  opacity: 0.8;
}

@media (max-width: 520px) {
  .sms-lander {
    padding-top: 3rem;
  }

  .sms-lander-box {
    border-radius: 14px;
    padding: 2rem 1.25rem;
  }

  .sms-lander-logo {
    margin-bottom: 1.5rem;
  }
}
/* =========================================================
   25. RELEASE PAGES
========================================================= */

/* ---------- Reggae on the River ---------- */

.release-rotr-original{
  background:
    linear-gradient(rgba(0,0,0,.28), rgba(0,0,0,.88)),
    url('/releases/reggae-on-the-river/assets/img/background.webp') center center / cover no-repeat fixed;
  background-color:#050505;
}

.release-rotr-dub{
  background:
    linear-gradient(rgba(0,0,0,.28), rgba(0,0,0,.88)),
    url('/releases/reggae-on-the-river/assets/img/background-dub.webp') center center / cover no-repeat fixed;
  background-color:#050505;
}

.release-rotr-toasters{
  background:
    linear-gradient(rgba(0,0,0,.28), rgba(0,0,0,.88)),
    url('/releases/reggae-on-the-river/assets/img/background.webp') center center / cover no-repeat fixed;
  background-color:#050505;
}

.release-reggae-on-the-river .links-shell{
  padding-top:32px;
}

.release-reggae-on-the-river .links-cover{
  width:min(100%, 360px);
  margin:0 auto 28px;
  border-radius:18px;
  overflow:hidden;
  border:2px solid rgba(255,196,0,.78);
  background:#111;
  box-shadow:0 18px 70px rgba(0,0,0,.65);
}

.release-reggae-on-the-river .links-cover img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

.release-reggae-on-the-river .section-label{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:8px 18px;
  margin:0 auto 20px;
  text-align:center;
  background:linear-gradient(180deg, #e53935 0%, #c62828 100%);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.18);
  box-shadow:
    0 6px 18px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.25);
  position:relative;
}

.release-reggae-on-the-river .section-label::before,
.release-reggae-on-the-river .section-label::after{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  box-shadow:0 0 0 2px rgba(0,0,0,.15);
}

.release-reggae-on-the-river .links-subtitle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:.35rem;
  max-width:min(100%, 680px);
  margin:0 auto 18px;
  padding:10px 18px;
  color:#fff6d8;
  font-size:clamp(.98rem, 2.6vw, 1.18rem);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:
    0 2px 0 rgba(0,0,0,.45),
    0 8px 26px rgba(0,0,0,.72);
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,196,0,.24);
  border-radius:999px;
  box-shadow:
    0 10px 34px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.08);
}

@media (max-width:768px){
  .release-rotr-original,
  .release-rotr-dub,
  .release-rotr-toasters{
    background-attachment:scroll;
  }
}
.release-partners-block{
  text-align:center;
}

.release-partners-title{
  text-align:center;
  margin-bottom:1rem;
}

.release-partners{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:1rem;
  margin:0;
}

.release-partners a{
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .2s ease, opacity .2s ease;
}

.release-partners a:hover{
  transform:translateY(-2px);
  opacity:.9;
}

.release-partners img{
  height:64px;
  width:auto;
  max-width:120px;
  object-fit:contain;
}