/* =========================================================================
   HENRIQUE E BIANCA — Casal Modão
   Folha de estilo única do site. Organizada por blocos:
   1 Tokens · 2 Base · 3 Textura · 4 Preloader · 5 Cabeçalho · 6 Rodapé
   7 Botões · 8 Títulos · 9 Animações · 10 Início · 11 Sobre · 12 Agenda
   13 Discografia · 14 Fotos · 15 Notícias · 16 Formulários · 17 Loja
   18 Responsivo · 19 Acessibilidade
   ========================================================================= */

/* 1 ─────────────────────────────────────────────────────────── TOKENS */
:root {
  /* cores */
  --preto:        #0a0a0a;
  --preto-2:      #121110;
  --preto-3:      #1b1917;
  --branco:       #f5f3ef;
  --cinza:        #a8a39a;
  --cinza-escuro: #837d74;
  --ouro:         #c9a227;      /* cor de destaque */
  --ouro-claro:   #e8c46a;
  --ouro-fraco:   rgba(201, 162, 39, .14);
  --linha:        rgba(255, 255, 255, .10);
  --linha-forte:  rgba(255, 255, 255, .22);

  /* tipografia */
  --fonte-titulo: 'Playfair Display', 'Georgia', serif;
  --fonte-texto:  'Inter', 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* medidas */
  --altura-header: 86px;
  --altura-footer: 54px;
  --largura-max:   1320px;
  --raio:          14px;
  --transicao:     .45s cubic-bezier(.22, .61, .36, 1);
}

/* 2 ───────────────────────────────────────────────────────────── BASE */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--altura-header) + 24px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--preto);
  color: var(--branco);
  font-family: var(--fonte-texto);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: .01em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

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

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

p { margin: 0 0 1.25em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4 {
  font-family: var(--fonte-titulo);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.015em;
  margin: 0 0 .5em;
}

ul.limpa { list-style: none; margin: 0; padding: 0; }

.container {
  width: min(100% - 2.5rem, var(--largura-max));
  margin-inline: auto;
}

.pagina-conteudo {
  padding-top: calc(var(--altura-header) + clamp(2rem, 6vw, 5rem));
  padding-bottom: calc(var(--altura-footer) + clamp(3rem, 8vw, 6rem));
}

.so-leitor {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 3 ─────────────────────────────────────────────────────────  TEXTURA */
/* grão sutil + vinheta, sobre todo o site */
body::before {
  content: '';
  position: fixed; inset: 0;
  background-image: url('../img/ruido.svg');
  background-size: 180px 180px;
  opacity: .05;
  mix-blend-mode: overlay;
  pointer-events: none;
  z-index: 900;
}
body::after {
  content: '';
  position: fixed; inset: 0;
  background: radial-gradient(130% 100% at 50% 0%, transparent 42%, rgba(0,0,0,.55) 100%);
  pointer-events: none;
  z-index: 899;
}

/* linhas finas decorativas */
.linhas-decor {
  position: absolute; inset: 0;
  background: url('../img/curvas.svg') center / cover no-repeat;
  opacity: .085;
  pointer-events: none;
  z-index: 0;
}
.linhas-decor--topo { background-position: top center; }

/* 4 ───────────────────────────────────────────────────────  PRELOADER */
.preloader {
  position: fixed; inset: 0; z-index: 2000;
  display: grid; place-items: center; align-content: center;
  background: var(--preto);
  transition: opacity .7s ease, visibility .7s ease;
}
.preloader.sumiu { opacity: 0; visibility: hidden; }
.preloader__marca {
  font-family: var(--fonte-titulo);
  font-size: clamp(2rem, 7vw, 3.25rem);
  letter-spacing: .22em;
  color: var(--branco);
  text-indent: .22em;
}
.preloader__linha {
  width: clamp(140px, 30vw, 240px); height: 1px;
  margin-top: 1.4rem;
  background: var(--linha);
  position: relative; overflow: hidden;
}
.preloader__linha::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, var(--ouro), transparent);
  animation: varre 1.3s ease-in-out infinite;
}
@keyframes varre { from { transform: translateX(-100%); } to { transform: translateX(100%); } }

/* 5 ──────────────────────────────────────────────────────  CABEÇALHO */
/* acima do menu em tela cheia (1100) para o X de fechar continuar visível */
.cabecalho {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1200;
  height: var(--altura-header);
  display: flex; align-items: center;
  background: linear-gradient(180deg, rgba(10,10,10,.82), rgba(10,10,10,0));
  transition: background .4s ease, backdrop-filter .4s ease, height .4s ease;
}
.cabecalho.rolou {
  height: 70px;
  background: rgba(10, 10, 10, .88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--linha);
}
.cabecalho__interno {
  width: min(100% - 2.5rem, var(--largura-max));
  margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}

/* logotipo */
.logo { display: flex; flex-direction: column; line-height: 1; }
.logo__nome {
  font-family: var(--fonte-titulo);
  font-size: clamp(1.15rem, 2.2vw, 1.6rem);
  letter-spacing: .04em;
  white-space: nowrap;
}
.logo__nome em { font-style: normal; color: var(--ouro-claro); }
.logo__slogan {
  font-size: .62rem; letter-spacing: .42em; text-transform: uppercase;
  color: var(--cinza); margin-top: .45rem; white-space: nowrap;
}

/* menu desktop */
.menu { display: flex; align-items: center; gap: clamp(.8rem, 1.7vw, 1.9rem); }
.menu__link {
  position: relative;
  font-size: .78rem; font-weight: 400;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(245, 243, 239, .78);
  padding: .4rem 0;
  transition: color .3s ease;
  white-space: nowrap;
}
.menu__link::after {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 100%; height: 1px; background: var(--ouro);
  transform: scaleX(0); transform-origin: right;
  transition: transform var(--transicao);
}
.menu__link:hover, .menu__link:focus-visible { color: var(--branco); }
.menu__link:hover::after, .menu__link:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu__link[aria-current="page"] { color: var(--branco); }
.menu__link[aria-current="page"]::after { transform: scaleX(1); }
.menu__link--loja {
  border: 1px solid var(--linha-forte);
  border-radius: 999px;
  padding: .5rem 1.1rem;
  color: var(--ouro-claro);
}
.menu__link--loja::after { display: none; }
.menu__link--loja:hover { background: var(--ouro-fraco); border-color: var(--ouro); }

/* hambúrguer */
.hamburguer {
  display: none;
  width: 46px; height: 46px;
  background: none; border: 1px solid var(--linha-forte); border-radius: 50%;
  cursor: pointer; padding: 0;
  position: relative; z-index: 1200;
}
.hamburguer span {
  display: block; width: 18px; height: 1px; margin: 4px auto;
  background: var(--branco);
  transition: transform .35s ease, opacity .25s ease;
}
.hamburguer[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.hamburguer[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hamburguer[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

/* menu mobile em tela cheia */
.menu-mobile {
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(8, 8, 8, .97);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  display: flex; flex-direction: column; justify-content: center;
  padding: calc(var(--altura-header) + 1rem) 2rem 6rem;
  opacity: 0; visibility: hidden;
  transition: opacity .45s ease, visibility .45s ease;
  overflow-y: auto;
}
.menu-mobile.aberto { opacity: 1; visibility: visible; }
.menu-mobile a {
  font-family: var(--fonte-titulo);
  font-size: clamp(1.45rem, 6vw, 2.3rem);
  padding: .3em 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
  opacity: 0; transform: translateY(16px);
  transition: opacity .5s ease, transform .5s ease, color .3s ease;
}
.menu-mobile.aberto a { opacity: 1; transform: none; }
.menu-mobile a:hover, .menu-mobile a:focus-visible { color: var(--ouro-claro); }
.menu-mobile a:last-of-type { border-bottom: 0; color: var(--ouro-claro); }
.menu-mobile.aberto a:nth-child(1) { transition-delay: .06s; }
.menu-mobile.aberto a:nth-child(2) { transition-delay: .10s; }
.menu-mobile.aberto a:nth-child(3) { transition-delay: .14s; }
.menu-mobile.aberto a:nth-child(4) { transition-delay: .18s; }
.menu-mobile.aberto a:nth-child(5) { transition-delay: .22s; }
.menu-mobile.aberto a:nth-child(6) { transition-delay: .26s; }
.menu-mobile.aberto a:nth-child(7) { transition-delay: .30s; }
.menu-mobile.aberto a:nth-child(8) { transition-delay: .34s; }
.menu-mobile.aberto a:nth-child(9) { transition-delay: .38s; }

body.menu-travado { overflow: hidden; }

/* 6 ─────────────────────────────────────────────────────────  RODAPÉ */
.rodape {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
  min-height: var(--altura-footer);
  display: flex; align-items: center;
  background: rgba(10, 10, 10, .72);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid var(--linha);
  font-size: .72rem; letter-spacing: .06em;
  color: var(--cinza);
}
.rodape__interno {
  width: min(100% - 2.5rem, var(--largura-max));
  margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .5rem 0;
}
.rodape__redes { display: flex; align-items: center; gap: .85rem; }
.rodape__redes-rotulo { text-transform: uppercase; letter-spacing: .18em; font-size: .64rem; }
/* [hidden] sozinho não basta: qualquer "display" declarado depois vence o
   display:none que o atributo traz. Sem esta linha, uma rede escondida pelo
   JavaScript continua aparecendo. */
.rede[hidden] { display: none !important; }

.rede {
  width: 30px; height: 30px; display: grid; place-items: center;
  border: 1px solid var(--linha); border-radius: 50%;
  color: rgba(245,243,239,.72);
  transition: color .3s ease, border-color .3s ease, background .3s ease, transform .3s ease;
}
.rede svg { width: 14px; height: 14px; fill: currentColor; }
.rede:hover, .rede:focus-visible {
  color: var(--preto); background: var(--ouro-claro);
  border-color: var(--ouro-claro); transform: translateY(-2px);
}

/* 7 ─────────────────────────────────────────────────────────  BOTÕES */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  font-family: var(--fonte-texto);
  font-size: .78rem; font-weight: 500;
  letter-spacing: .2em; text-transform: uppercase;
  padding: 1rem 2.3rem;
  border: 1px solid var(--linha-forte);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  color: var(--branco);
  cursor: pointer;
  transition: background .35s ease, border-color .35s ease, color .35s ease, transform .35s ease;
}
.botao:hover, .botao:focus-visible {
  background: rgba(255, 255, 255, .14);
  border-color: var(--branco);
  transform: translateY(-2px);
}
.botao--ouro {
  background: var(--ouro); border-color: var(--ouro); color: #141006; font-weight: 600;
}
.botao--ouro:hover, .botao--ouro:focus-visible {
  background: var(--ouro-claro); border-color: var(--ouro-claro); color: #141006;
}
.botao--pequeno { padding: .62rem 1.4rem; font-size: .68rem; letter-spacing: .14em; }
.botao--vazio { background: transparent; }
.botao[disabled], .botao[aria-disabled="true"] { opacity: .45; pointer-events: none; }

/* 8 ─────────────────────────────────────────────────────────  TÍTULOS */
.titulo-pagina {
  font-size: clamp(2.5rem, 7vw, 4.6rem);
  margin: 0;
}
.titulo-pagina em { font-style: italic; color: var(--ouro-claro); }
.subtitulo-pagina {
  font-size: .76rem; letter-spacing: .36em; text-transform: uppercase;
  color: var(--ouro); margin: 0 0 1.1rem;
}
.texto-apoio { color: var(--cinza); max-width: 60ch; }
.secao-cabecalho { margin-bottom: clamp(2rem, 5vw, 3.5rem); position: relative; z-index: 1; }
.risco {
  width: 56px; height: 1px; background: var(--ouro);
  margin: 1.6rem 0; border: 0;
}

/* 9 ──────────────────────────────────────────────────────  ANIMAÇÕES */
.surge { opacity: 0; transform: translateY(26px); transition: opacity .9s ease, transform .9s cubic-bezier(.22,.61,.36,1); }
.surge.visivel { opacity: 1; transform: none; }
.surge[data-atraso="1"] { transition-delay: .12s; }
.surge[data-atraso="2"] { transition-delay: .24s; }
.surge[data-atraso="3"] { transition-delay: .36s; }
.surge[data-atraso="4"] { transition-delay: .48s; }

.zoom-hover { overflow: hidden; }
.zoom-hover img { transition: transform .9s cubic-bezier(.22,.61,.36,1), filter .6s ease; }
.zoom-hover:hover img, .zoom-hover:focus-within img { transform: scale(1.07); }

/* 10 ─────────────────────────────────────────────────────────  INÍCIO */
html.pagina-inicio, html.pagina-inicio body { height: 100%; }
html.pagina-inicio body { overflow: hidden; }

.hero {
  position: relative;
  height: 100dvh; min-height: 540px;
  display: grid; place-items: center;
  text-align: center;
  overflow: hidden;
}
.hero__midia { position: absolute; inset: 0; z-index: 0; }
.hero__midia img, .hero__midia video {
  width: 100%; height: 100%; object-fit: cover; object-position: center 22%;
}
.hero__midia video { position: absolute; inset: 0; }
.hero__midia video.falhou { display: none; }
.hero__overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(10,10,10,.78) 0%, rgba(10,10,10,.42) 38%, rgba(10,10,10,.92) 100%),
    radial-gradient(70% 55% at 50% 42%, transparent 0%, rgba(10,10,10,.6) 100%);
}
.hero__conteudo {
  position: relative; z-index: 2;
  padding: calc(var(--altura-header) + 1rem) 1.25rem calc(var(--altura-footer) + 2rem);
  width: min(100%, 980px);
}
.hero__selo {
  font-size: .68rem; letter-spacing: .5em; text-transform: uppercase;
  color: var(--ouro); margin-bottom: 1.4rem;
}
.hero__titulo {
  font-size: clamp(2.7rem, 10vw, 6.5rem);
  line-height: .95; margin: 0;
  text-shadow: 0 18px 60px rgba(0,0,0,.8);
}
.hero__titulo em { display: block; font-style: italic; color: var(--ouro-claro); }
.hero__legenda {
  margin: 1.4rem auto 2.4rem;
  max-width: 44ch;
  color: rgba(245,243,239,.82);
  font-size: clamp(.9rem, 2.2vw, 1.05rem);
}
.hero__rolar {
  position: absolute; left: 50%; bottom: calc(var(--altura-footer) + .7rem);
  transform: translateX(-50%);
  font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--cinza-escuro);
  z-index: 2;
}

/* 11 ──────────────────────────────────────────────────────────  SOBRE */
.sobre { position: relative; }
.sobre__grade {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: start;
}
.anos {
  position: sticky;
  top: calc(var(--altura-header) + 2rem);
  display: flex; flex-direction: column; gap: .2rem;
  border-left: 1px solid var(--linha);
  padding-left: 1.1rem;
}
.anos__item {
  background: none; border: 0; cursor: pointer;
  font-family: var(--fonte-texto);
  font-size: .82rem; letter-spacing: .18em;
  color: var(--cinza-escuro);
  text-align: left; padding: .45rem 0;
  position: relative;
  transition: color .3s ease, letter-spacing .3s ease;
}
.anos__item::before {
  content: ''; position: absolute; left: -1.1rem; top: 50%;
  width: 0; height: 1px; background: var(--ouro);
  transform: translateY(-50%); transition: width .35s ease;
}
.anos__item:hover { color: var(--branco); }
.anos__item.ativo { color: var(--ouro-claro); letter-spacing: .24em; }
.anos__item.ativo::before { width: .75rem; }

.bio-secao {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr);
  gap: clamp(1.2rem, 4vw, 3.5rem);
  padding: clamp(2.5rem, 7vw, 5rem) 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  position: relative;
}
.bio-secao:last-child { border-bottom: 0; }
.bio-secao__ano {
  font-family: var(--fonte-titulo);
  font-size: clamp(2.6rem, 7vw, 4.6rem);
  color: rgba(255,255,255,.08);
  line-height: 1; margin: 0 0 .2em;
}
.bio-secao__titulo {
  font-size: clamp(1.4rem, 3.4vw, 2.1rem);
  font-style: italic;
  color: var(--branco);
  margin: 0;
}
.bio-secao__texto { color: rgba(245,243,239,.74); }
.bio-secao__texto strong { color: var(--branco); font-weight: 500; }

.sobre__foto {
  position: relative; margin-top: clamp(2rem, 6vw, 4rem);
  border-radius: var(--raio); overflow: hidden;
}
.sobre__foto img { width: 100%; filter: contrast(1.12) saturate(.95) brightness(.88); }
.sobre__foto::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,.25) 0%, rgba(10,10,10,.1) 45%, var(--preto) 100%);
}
.sobre__citacao {
  font-family: var(--fonte-titulo); font-style: italic;
  font-size: clamp(1.3rem, 3.6vw, 2.2rem);
  color: var(--branco);
  max-width: 26ch;
  border-left: 1px solid var(--ouro);
  padding-left: 1.4rem;
  margin: clamp(2.5rem, 7vw, 4.5rem) 0;
}

/* 12 ─────────────────────────────────────────────────────────  AGENDA */
.agenda { position: relative; }
.agenda__grade {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: start;
}
.agenda__foto {
  position: sticky; top: calc(var(--altura-header) + 1.5rem);
  border-radius: var(--raio); overflow: hidden;
  aspect-ratio: 3 / 4;
}
.agenda__foto img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 62%;
  filter: contrast(1.12) brightness(.95) saturate(.98);
}
.agenda__foto::after {
  content: ''; position: absolute; inset: 0;
  background:
    linear-gradient(135deg, rgba(10,10,10,0) 35%, rgba(10,10,10,.55) 100%),
    linear-gradient(0deg, var(--preto) 0%, rgba(10,10,10,0) 38%);
}

.filtros {
  display: flex; flex-wrap: wrap; gap: .8rem;
  margin: 2rem 0 1.4rem;
}
.campo-select {
  position: relative; display: inline-flex; align-items: center;
}
.campo-select select {
  appearance: none; -webkit-appearance: none;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--linha); border-radius: 999px;
  color: var(--branco); font-family: var(--fonte-texto);
  font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
  padding: .66rem 2.6rem .66rem 1.2rem;
  cursor: pointer;
  transition: border-color .3s ease, background .3s ease;
}
.campo-select select:hover { border-color: var(--linha-forte); }
.campo-select::after {
  content: ''; position: absolute; right: 1.1rem; pointer-events: none;
  width: 6px; height: 6px;
  border-right: 1px solid var(--ouro); border-bottom: 1px solid var(--ouro);
  transform: translateY(-2px) rotate(45deg);
}
.campo-select select option { background: var(--preto-2); color: var(--branco); }

.shows { display: flex; flex-direction: column; }
.show {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 1.4rem; align-items: center;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(255,255,255,.08);
  transition: background .4s ease, padding-left .4s ease;
}
.show:last-child { border-bottom: 1px solid rgba(255,255,255,.08); }
.show:hover { background: rgba(255,255,255,.025); padding-left: .7rem; }
.show__data { text-align: center; border-right: 1px solid var(--linha); padding-right: 1rem; }
.show__dia {
  font-family: var(--fonte-titulo); font-size: 2.1rem; line-height: 1;
  color: var(--ouro-claro); display: block;
}
.show__mes {
  font-size: .64rem; letter-spacing: .26em; text-transform: uppercase;
  color: var(--cinza); margin-top: .35rem; display: block;
}
.show__cidade {
  font-family: var(--fonte-titulo); font-size: clamp(1.05rem, 2.4vw, 1.45rem);
  margin: 0 0 .2rem;
}
.show__local { font-size: .8rem; color: var(--cinza); margin: 0; }
.show__etiqueta {
  display: inline-block; margin-top: .45rem;
  font-size: .6rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ouro); border: 1px solid var(--ouro-fraco);
  background: var(--ouro-fraco); border-radius: 999px; padding: .2rem .7rem;
}
.show--esgotado .show__dia { color: var(--cinza-escuro); }

.vazio {
  text-align: center; padding: clamp(3rem, 9vw, 6rem) 1rem;
  border: 1px dashed var(--linha); border-radius: var(--raio);
}
.vazio__icone { font-family: var(--fonte-titulo); font-size: 2.6rem; color: var(--ouro); opacity: .6; }
.vazio h3 { font-size: 1.4rem; margin: .8rem 0 .4rem; }
.vazio p { color: var(--cinza); font-size: .9rem; }

/* 13 ───────────────────────────────────────────────────  DISCOGRAFIA */
.disco-fundo {
  position: fixed; inset: 0; z-index: -1;
  background: url('../img/hero-1000.webp') center 20% / cover no-repeat;
  opacity: .12; filter: grayscale(.35) contrast(1.2);
}
.disco-fundo::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,.6), var(--preto) 85%);
}
.albuns {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}
.album {
  position: relative; display: block; width: 100%;
  background: none; border: 0; padding: 0; cursor: pointer;
  border-radius: var(--raio); overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: 0 24px 60px rgba(0,0,0,.55);
  text-align: left;
}
.album img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.22,.61,.36,1); }
.album__capa-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 1.5rem;
  background: linear-gradient(180deg, transparent 35%, rgba(10,10,10,.92));
  opacity: 0; transition: opacity var(--transicao);
}
.album:hover img, .album:focus-visible img { transform: scale(1.08); }
.album:hover .album__capa-overlay, .album:focus-visible .album__capa-overlay { opacity: 1; }
.album__nome { font-family: var(--fonte-titulo); font-size: 1.35rem; margin: 0; }
.album__ano { font-size: .7rem; letter-spacing: .24em; color: var(--ouro-claro); text-transform: uppercase; margin-top: .4rem; }
.album__faixas-qtd { font-size: .7rem; color: var(--cinza); margin-top: .5rem; }

/* modal */
.modal {
  position: fixed; inset: 0; z-index: 1500;
  display: grid; place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgba(5,5,5,.88);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  opacity: 0; visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.modal.aberto { opacity: 1; visibility: visible; }
.modal__painel {
  position: relative;
  width: min(100%, 880px); max-height: min(86vh, 780px);
  overflow-y: auto;
  background: linear-gradient(180deg, var(--preto-3), var(--preto-2));
  border: 1px solid var(--linha); border-radius: var(--raio);
  padding: clamp(1.5rem, 4vw, 2.8rem);
  transform: translateY(24px) scale(.98);
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
}
.modal.aberto .modal__painel { transform: none; }
.modal__fechar {
  position: absolute; top: 1rem; right: 1rem;
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--linha); background: rgba(0,0,0,.4);
  color: var(--branco); cursor: pointer; font-size: 1.1rem; line-height: 1;
  transition: background .3s ease, border-color .3s ease;
}
.modal__fechar:hover { background: var(--ouro); color: var(--preto); border-color: var(--ouro); }
.modal__grade { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.2rem); }
.modal__capa { border-radius: 10px; overflow: hidden; align-self: start; }
.faixas { counter-reset: faixa; margin: 1.2rem 0 1.6rem; }
.faixas li {
  counter-increment: faixa;
  display: flex; align-items: baseline; gap: .9rem;
  padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.06);
  font-size: .92rem;
}
.faixas li::before {
  content: counter(faixa, decimal-leading-zero);
  font-size: .7rem; color: var(--ouro); letter-spacing: .1em; min-width: 1.6rem;
}
.faixas li .duracao { margin-left: auto; color: var(--cinza-escuro); font-size: .78rem; }
.ouvir { display: flex; flex-wrap: wrap; gap: .7rem; }

/* 14 ──────────────────────────────────────────────────────────  FOTOS */
.albuns-filtro { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2.2rem; }
.chip {
  background: rgba(255,255,255,.04); border: 1px solid var(--linha);
  border-radius: 999px; color: var(--cinza);
  font-family: var(--fonte-texto); font-size: .72rem;
  letter-spacing: .16em; text-transform: uppercase;
  padding: .6rem 1.25rem; cursor: pointer;
  transition: all .3s ease;
}
.chip:hover { color: var(--branco); border-color: var(--linha-forte); }
.chip.ativo { background: var(--ouro); border-color: var(--ouro); color: #141006; font-weight: 500; }

.masonry { column-count: 3; column-gap: clamp(.7rem, 1.6vw, 1.2rem); }
.masonry__item {
  break-inside: avoid; margin: 0 0 clamp(.7rem, 1.6vw, 1.2rem);
  border-radius: 10px; overflow: hidden; position: relative;
  display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in;
}
.masonry__item img { width: 100%; filter: brightness(.92) contrast(1.08); transition: transform .9s cubic-bezier(.22,.61,.36,1), filter .5s ease; }
.masonry__item:hover img, .masonry__item:focus-visible img { transform: scale(1.06); filter: brightness(1.05) contrast(1.1); }
.masonry__item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.6rem 1rem .9rem;
  background: linear-gradient(180deg, transparent, rgba(10,10,10,.9));
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--branco);
  opacity: 0; transition: opacity .4s ease;
  text-align: left;
}
.masonry__item:hover figcaption, .masonry__item:focus-visible figcaption { opacity: 1; }

/* lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 1600;
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
  background: rgba(5,5,5,.97);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
.lightbox.aberto { opacity: 1; visibility: visible; }
.lightbox__topo {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.1rem clamp(1rem, 4vw, 2.5rem);
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--cinza);
}
.lightbox__palco { position: relative; display: grid; place-items: center; padding: 0 clamp(3.6rem, 8vw, 5rem); overflow: hidden; }
.lightbox__palco img {
  max-width: 100%; max-height: 100%;
  object-fit: contain; border-radius: 6px;
  animation: entra .45s ease;
}
@keyframes entra { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }
.lightbox__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid var(--linha); background: rgba(0,0,0,.45);
  color: var(--branco); cursor: pointer; display: grid; place-items: center;
  transition: background .3s ease, border-color .3s ease;
}
.lightbox__nav:hover { background: var(--ouro); color: var(--preto); border-color: var(--ouro); }
.lightbox__nav--ant { left: clamp(.4rem, 2vw, 1.6rem); }
.lightbox__nav--prox { right: clamp(.4rem, 2vw, 1.6rem); }
.lightbox__nav svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.lightbox__rodape {
  padding: 1rem clamp(1rem, 4vw, 2.5rem) 1.6rem;
  text-align: center; font-size: .8rem; color: var(--cinza);
}

/* 15 ───────────────────────────────────────────────────────  NOTÍCIAS */
.noticias { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.1rem, 2.6vw, 2rem); }
.noticia-card {
  display: flex; flex-direction: column;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  border: 1px solid var(--linha); border-radius: var(--raio);
  overflow: hidden;
  transition: border-color .4s ease, transform .4s ease, background .4s ease;
}
.noticia-card:hover { border-color: var(--linha-forte); transform: translateY(-5px); }
.noticia-card__imagem { aspect-ratio: 16 / 9; overflow: hidden; }
.noticia-card__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.22,.61,.36,1); }
.noticia-card:hover .noticia-card__imagem img { transform: scale(1.06); }
.noticia-card__corpo { padding: 1.4rem 1.5rem 1.7rem; display: flex; flex-direction: column; flex: 1; }
.noticia-card__data { font-size: .66rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ouro); margin-bottom: .7rem; }
.noticia-card__titulo { font-size: 1.22rem; margin: 0 0 .6rem; }
.noticia-card__resumo { font-size: .88rem; color: var(--cinza); flex: 1; }
.noticia-card__mais { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--branco); margin-top: 1.2rem; }
.noticia-card__mais::after { content: ' →'; color: var(--ouro); }

.paginacao { display: flex; justify-content: center; align-items: center; gap: .5rem; margin-top: 3rem; flex-wrap: wrap; }
.paginacao button {
  min-width: 42px; height: 42px; padding: 0 .7rem;
  background: none; border: 1px solid var(--linha); border-radius: 999px;
  color: var(--cinza); font-family: var(--fonte-texto); font-size: .8rem; cursor: pointer;
  transition: all .3s ease;
}
.paginacao button:hover:not([disabled]) { color: var(--branco); border-color: var(--linha-forte); }
.paginacao button.ativo { background: var(--ouro); border-color: var(--ouro); color: #141006; }
.paginacao button[disabled] { opacity: .3; cursor: default; }

/* matéria interna */
.materia { width: min(100% - 2.5rem, 760px); margin-inline: auto; }
.materia__capa { border-radius: var(--raio); overflow: hidden; margin-bottom: 2.4rem; }
.materia__data { font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ouro); }
.materia__titulo { font-size: clamp(1.9rem, 5vw, 3.1rem); margin: .8rem 0 1.4rem; }
.materia__corpo { font-size: 1.04rem; color: rgba(245,243,239,.8); }
.materia__corpo h2 { font-size: 1.5rem; margin-top: 2.2rem; color: var(--branco); }
.materia__corpo blockquote {
  margin: 2rem 0; padding-left: 1.4rem;
  border-left: 1px solid var(--ouro);
  font-family: var(--fonte-titulo); font-style: italic; font-size: 1.3rem; color: var(--branco);
}
.voltar { display: inline-block; margin-bottom: 2rem; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cinza); }
.voltar::before { content: '← '; color: var(--ouro); }
.voltar:hover { color: var(--branco); }

/* 16 ──────────────────────────────────────────────────  FORMULÁRIOS */
.blocos-contato {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.8rem); margin-bottom: clamp(2.5rem, 6vw, 4rem);
}
.bloco-contato {
  border: 1px solid var(--linha); border-radius: var(--raio);
  padding: clamp(1.4rem, 3vw, 2rem);
  background: linear-gradient(180deg, rgba(255,255,255,.04), transparent);
  transition: border-color .4s ease, transform .4s ease;
}
.bloco-contato:hover { border-color: var(--linha-forte); transform: translateY(-4px); }
.bloco-contato h3 { font-size: 1.25rem; margin: 0 0 .3rem; }
.bloco-contato__papel { font-size: .64rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ouro); margin-bottom: 1rem; }
.bloco-contato p { font-size: .88rem; color: var(--cinza); }
.bloco-contato a { color: var(--branco); border-bottom: 1px solid var(--ouro-fraco); }
.bloco-contato a:hover { border-bottom-color: var(--ouro); }

.formulario {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem 1.4rem;
  border: 1px solid var(--linha); border-radius: var(--raio);
  padding: clamp(1.5rem, 4vw, 2.8rem);
  background: linear-gradient(180deg, rgba(255,255,255,.035), transparent);
}
.campo { display: flex; flex-direction: column; gap: .5rem; }
.campo--largo { grid-column: 1 / -1; }
.campo label { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cinza); }
.campo label .obrigatorio { color: var(--ouro); }
.campo input, .campo textarea, .campo select {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--linha); border-radius: 8px;
  color: var(--branco); font-family: var(--fonte-texto); font-size: .95rem; font-weight: 300;
  padding: .85rem 1rem;
  transition: border-color .3s ease, background .3s ease;
}
.campo textarea { min-height: 140px; resize: vertical; }
.campo input:hover, .campo textarea:hover, .campo select:hover { border-color: var(--linha-forte); }
.campo input:focus, .campo textarea:focus, .campo select:focus {
  outline: none; border-color: var(--ouro); background: rgba(255,255,255,.06);
}
.campo input::placeholder, .campo textarea::placeholder { color: var(--cinza-escuro); }
.campo .erro { font-size: .74rem; color: #ef8f73; min-height: 1.1em; }
.campo.invalido input, .campo.invalido textarea, .campo.invalido select { border-color: #ef8f73; }

.form-acoes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: .6rem; }
.form-aviso { font-size: .74rem; color: var(--cinza-escuro); }

.sucesso {
  grid-column: 1 / -1;
  text-align: center; padding: clamp(2rem, 6vw, 3.4rem) 1rem;
}
.sucesso__marca {
  width: 62px; height: 62px; margin: 0 auto 1.4rem;
  border: 1px solid var(--ouro); border-radius: 50%;
  display: grid; place-items: center; color: var(--ouro); font-size: 1.5rem;
}
.sucesso h3 { font-size: clamp(1.5rem, 4vw, 2.1rem); }
.sucesso p { color: var(--cinza); max-width: 44ch; margin-inline: auto; }

.vantagens { display: grid; gap: 1.2rem; margin-top: 2rem; }
.vantagem { display: flex; gap: 1rem; align-items: flex-start; }
.vantagem__num { font-family: var(--fonte-titulo); color: var(--ouro); font-size: 1.1rem; min-width: 2rem; }
.vantagem h4 { font-family: var(--fonte-texto); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 .25rem; font-weight: 500; }
.vantagem p { font-size: .86rem; color: var(--cinza); margin: 0; }

/* duas colunas (fã-clube: texto + formulário) */
.duas-colunas {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: start;
  position: relative; z-index: 1;
}

/* caixa de aceite (LGPD) */
.campo-aceite {
  grid-column: 1 / -1;
  display: flex; gap: .85rem; align-items: flex-start;
  font-size: .82rem; color: var(--cinza); line-height: 1.55;
  cursor: pointer;
}
.campo-aceite input {
  flex: none; width: 18px; height: 18px; margin-top: .2rem;
  accent-color: var(--ouro);
}
.campo-aceite.invalido { color: #ef8f73; }

/* 17 ───────────────────────────────────────────────────────────  LOJA */
.produtos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.produto {
  border: 1px solid var(--linha); border-radius: var(--raio);
  overflow: hidden; display: flex; flex-direction: column;
  background: linear-gradient(180deg, rgba(255,255,255,.035), transparent);
  transition: border-color .4s ease, transform .4s ease;
}
.produto:hover { border-color: var(--linha-forte); transform: translateY(-5px); }
.produto__imagem { aspect-ratio: 1 / 1; overflow: hidden; }
.produto__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.22,.61,.36,1); }
.produto:hover .produto__imagem img { transform: scale(1.07); }
.produto__corpo { padding: 1.3rem 1.4rem 1.6rem; display: flex; flex-direction: column; flex: 1; gap: .5rem; }
.produto__nome { font-family: var(--fonte-titulo); font-size: 1.16rem; margin: 0; }
.produto__desc { font-size: .82rem; color: var(--cinza); flex: 1; }
.produto__preco { font-family: var(--fonte-titulo); font-size: 1.45rem; color: var(--ouro-claro); }
.produto__opcoes { display: flex; flex-wrap: wrap; gap: .4rem; }
.opcao {
  border: 1px solid var(--linha); border-radius: 6px; background: none;
  color: var(--cinza); font-family: var(--fonte-texto); font-size: .7rem;
  padding: .35rem .7rem; cursor: pointer; transition: all .25s ease;
}
.opcao.ativa { border-color: var(--ouro); color: var(--ouro-claro); background: var(--ouro-fraco); }
.produto__esgotado { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cinza-escuro); }

/* carrinho */
.carrinho-botao {
  position: fixed; right: clamp(1rem, 3vw, 2rem);
  bottom: calc(var(--altura-footer) + 1.2rem); z-index: 1050;
  display: inline-flex; align-items: center; gap: .6rem;
  background: var(--ouro); color: #141006; border: 0; border-radius: 999px;
  font-family: var(--fonte-texto); font-size: .74rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  padding: .9rem 1.5rem; cursor: pointer;
  box-shadow: 0 16px 40px rgba(0,0,0,.6);
  transform: translateY(120px); opacity: 0;
  transition: transform .45s cubic-bezier(.22,.61,.36,1), opacity .35s ease, background .3s ease;
}
.carrinho-botao.visivel { transform: none; opacity: 1; }
.carrinho-botao:hover { background: var(--ouro-claro); }
.carrinho-botao__qtd {
  background: #141006; color: var(--ouro-claro);
  border-radius: 999px; min-width: 22px; height: 22px;
  display: grid; place-items: center; font-size: .72rem;
}
.carrinho-itens { margin: 1.4rem 0; }
.carrinho-item {
  display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto;
  gap: 1rem; align-items: center;
  padding: .9rem 0; border-bottom: 1px solid rgba(255,255,255,.07);
}
.carrinho-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; }
.carrinho-item__nome { font-size: .92rem; }
.carrinho-item__variacao { font-size: .72rem; color: var(--cinza); }
.carrinho-item__preco { font-family: var(--fonte-titulo); color: var(--ouro-claro); }
.contador { display: inline-flex; align-items: center; border: 1px solid var(--linha); border-radius: 999px; }
.contador button {
  width: 30px; height: 30px; background: none; border: 0; color: var(--branco);
  cursor: pointer; font-size: 1rem; line-height: 1;
}
.contador button:hover { color: var(--ouro); }
.contador span { min-width: 22px; text-align: center; font-size: .85rem; }
.carrinho-total {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  padding-top: 1.2rem; border-top: 1px solid var(--linha-forte);
  font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--cinza);
}
.carrinho-total strong { font-family: var(--fonte-titulo); font-size: 1.8rem; color: var(--branco); letter-spacing: 0; }

/* 18 ──────────────────────────────────────────────────────  RESPONSIVO */
@media (max-width: 1080px) {
  .menu { gap: .85rem; }
  .menu__link { font-size: .7rem; letter-spacing: .08em; }
}

@media (max-width: 960px) {
  :root { --altura-header: 76px; }
  .menu { display: none; }
  .hamburguer { display: block; }

  .albuns, .noticias, .produtos, .blocos-contato { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .masonry { column-count: 2; }

  .agenda__grade { grid-template-columns: 1fr; }
  .agenda__foto { position: relative; top: 0; aspect-ratio: 16 / 10; }

  .sobre__grade, .duas-colunas { grid-template-columns: 1fr; }
  .anos {
    position: sticky; top: var(--altura-header); z-index: 500;
    flex-direction: row; overflow-x: auto; gap: .1rem;
    border-left: 0; border-bottom: 1px solid var(--linha);
    padding: .6rem 0; margin-bottom: 1rem;
    background: rgba(10,10,10,.92);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    scrollbar-width: none;
  }
  .anos::-webkit-scrollbar { display: none; }
  .anos__item { padding: .4rem .9rem; white-space: nowrap; }
  .anos__item::before { display: none; }
  .anos__item.ativo { border-bottom: 1px solid var(--ouro); }

  .bio-secao { grid-template-columns: 1fr; gap: .8rem; }
  .modal__grade { grid-template-columns: 1fr; }
  .modal__capa { max-width: 220px; }
}

@media (max-width: 680px) {
  body { font-size: 15px; }
  :root { --altura-footer: 78px; }

  .albuns, .noticias, .produtos, .blocos-contato { grid-template-columns: 1fr; }
  .masonry { column-count: 1; }
  .formulario { grid-template-columns: 1fr; }

  .rodape__interno { flex-direction: column; gap: .45rem; text-align: center; padding: .7rem 0; }
  .rodape { font-size: .66rem; }

  .show { grid-template-columns: 70px minmax(0, 1fr); row-gap: .9rem; }
  .show .botao { grid-column: 1 / -1; justify-self: start; }
  .show__dia { font-size: 1.7rem; }

  .carrinho-item { grid-template-columns: 48px minmax(0, 1fr) auto; }
  .carrinho-item img { width: 48px; height: 48px; }
  .carrinho-item__preco { grid-column: 2 / -1; }

  .filtros { gap: .5rem; }
  .campo-select select { font-size: .68rem; padding: .6rem 2.3rem .6rem 1rem; }
}

/* telas baixas (celular deitado) — o hero continua em uma dobra só */
@media (max-height: 620px) and (min-width: 680px) {
  .hero__titulo { font-size: clamp(2rem, 7vh, 3.4rem); }
  .hero__legenda { margin: .8rem auto 1.4rem; font-size: .85rem; }
  .hero__selo { margin-bottom: .8rem; }
  .hero__rolar { display: none; }
}

/* 19 ──────────────────────────────────────────────────  ACESSIBILIDADE */
:focus-visible {
  outline: 2px solid var(--ouro-claro);
  outline-offset: 3px;
  border-radius: 4px;
}

.pular-para-conteudo {
  position: fixed; top: .5rem; left: 50%; transform: translate(-50%, -250%);
  z-index: 2100;
  background: var(--ouro); color: #141006;
  padding: .7rem 1.4rem; border-radius: 999px;
  font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600;
  transition: transform .3s ease;
}
.pular-para-conteudo:focus { transform: translate(-50%, 0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .surge { opacity: 1; transform: none; }
}

@media print {
  .cabecalho, .rodape, .preloader, .carrinho-botao, .linhas-decor { display: none !important; }
  body { background: #fff; color: #000; }
}
