/* ============================================================
   FONTE DE ASSINATURA — John Handy Std
   Coloque o arquivo da fonte em  assets/fonts/  com um destes
   nomes (qualquer formato que você tiver já funciona):
     JohnHandyStd.woff2 / .woff / .otf / .ttf
   Enquanto o arquivo não estiver presente, o site usa um
   fallback serifado elegante (nunca um cursivo "de sistema").
   ============================================================ */
@font-face{
  font-family:'John Handy Std';
  src:url('fonts/JohnHandyStd.woff2') format('woff2'),
      url('fonts/JohnHandyStd.otf') format('opentype');
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}

:root{
  --color-primary:#7338A0;   /* roxo oficial da marca (Manual de Identidade) */
  --color-secondary:#532873; /* TOM escuro do mesmo roxo (#7338A0 x .72) — dá profundidade sem cor nova */
  --color-hero-bg:#1A0A2E;
  --color-accent:#F5F0FA;
  --text-on-dark:#FFFFFF;
  --text-on-light:#2C2C2A;
  --bg-site:#0D0517;

  /* Tipografia */
  --font-display:'John Handy Std', 'Libre Baskerville', Georgia, serif;
  --font-title:'Libre Baskerville', Georgia, serif;
  --font-body:'Source Sans 3', system-ui, sans-serif;

  /* Tema claro / floral */
  --bg-page:#FBF7FC;
  --bg-surface:#FFFFFF;
  --bg-footer:#F1E8F4;
  --text-main:#2C2C2A;
  --text-muted:#6E5E78;
  --text-soft:#8C7C96;
  --border-soft:#E4D9EC;
  --border-softer:#ECE2F1;

  --player-h:84px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;background:var(--bg-page);}
body{
  background:transparent;
  color:var(--text-main);
  font-family:var(--font-body);
  line-height:1.7;
  overflow-x:hidden;
  padding-bottom:var(--player-h);
}
/* Fundo floral da artista, fixo nos cantos, ATRÁS de tudo.
   - florado-nobg.png/.webp já tem TRANSPARÊNCIA real (sem fundo branco).
   - mix-blend-mode:multiply tinge as folhas de roxo misturando com a página;
     como não há mais retângulo branco, não aparece divisão em nenhum monitor.
   - a máscara radial só suaviza a borda interna de cada canto. */
body::before,
body::after{
  content:"";
  position:fixed;
  bottom:0;
  width:min(54vw,580px);
  height:min(46vh,420px);
  z-index:-1;
  opacity:.8;
  pointer-events:none;
  background-image:url('img/florado-nobg.png?v=1');
  background-image:-webkit-image-set(url('img/florado-nobg.webp?v=1') type('image/webp'), url('img/florado-nobg.png?v=1') type('image/png'));
  background-image:image-set(url('img/florado-nobg.webp?v=1') type('image/webp'), url('img/florado-nobg.png?v=1') type('image/png'));
  background-repeat:no-repeat;
  background-position:right bottom;
  background-size:cover;
  mix-blend-mode:multiply;
  -webkit-mask-image:radial-gradient(135% 135% at 100% 100%, #000 34%, transparent 80%);
  mask-image:radial-gradient(135% 135% at 100% 100%, #000 34%, transparent 80%);
}
body::before{right:0;}
body::after{left:0;transform:scaleX(-1);}  /* espelhado, canto inferior-esquerdo */

/* No DESKTOP, os dois cantos de CIMA também (usando os pseudos do html),
   espelhados — fechando os 4 cantos com o florado. */
html::before,
html::after{
  content:"";
  position:fixed;
  top:0;
  width:min(54vw,580px);
  height:min(46vh,420px);
  z-index:-1;
  opacity:.8;
  pointer-events:none;
  background-image:url('img/florado-nobg.png?v=1');
  background-image:-webkit-image-set(url('img/florado-nobg.webp?v=1') type('image/webp'), url('img/florado-nobg.png?v=1') type('image/png'));
  background-image:image-set(url('img/florado-nobg.webp?v=1') type('image/webp'), url('img/florado-nobg.png?v=1') type('image/png'));
  background-repeat:no-repeat;
  background-position:right bottom;
  background-size:cover;
  mix-blend-mode:multiply;
  -webkit-mask-image:radial-gradient(135% 135% at 100% 100%, #000 34%, transparent 80%);
  mask-image:radial-gradient(135% 135% at 100% 100%, #000 34%, transparent 80%);
}
html::before{left:0;transform:scale(-1,-1);}  /* topo-esquerda (invertido H+V) */
html::after{right:0;transform:scaleY(-1);}     /* topo-direita (invertido V) */

@media(max-width:768px){
  /* No celular: florado embaixo-direita (::before) + um no topo-esquerda
     espelhado nos dois eixos (::after), formando um par diagonal. */
  body::before{width:92vw;height:52vh;}
  body::after{
    display:block;
    width:92vw;height:52vh;
    top:0;bottom:auto;left:0;right:auto;
    transform:scale(-1,-1);   /* invertido na horizontal e na vertical */
  }
  html::before,html::after{display:none;}  /* no mobile mantém só o arranjo do body */
}

.signature{font-family:var(--font-display);}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.section-divider{height:1px;background:var(--border-soft);width:100%;}

.side-bar-deco{position:relative;padding-left:32px;}
.side-bar-deco::before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--color-primary),var(--color-secondary));
  border-radius:2px;
}

.container{max-width:920px;margin:0 auto;padding:0 32px;position:relative;}
.container-wide{max-width:1280px;margin:0 auto;padding:0 32px;}

/* ---------- ORNAMENTO FLORAL ---------- */
/* Substituído pelo florado real (transparente) no fundo do body. Mantido oculto. */
.floral-corner{display:none !important;}
.floral-corner--legacy{
  position:absolute;
  pointer-events:none;
  z-index:0;
  opacity:.5;
  background-repeat:no-repeat;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='%237338A0' stroke-width='1.3'%3E%3Cpath d='M30 370 C 90 330, 80 250, 150 230 C 210 212, 230 150, 200 90 C 180 50, 130 35, 95 55' opacity='.55'/%3E%3Cpath d='M150 230 C 190 235, 230 260, 260 240' opacity='.5'/%3E%3Cpath d='M200 90 C 230 70, 270 75, 290 105' opacity='.5'/%3E%3Cpath d='M95 55 C 70 35, 35 38, 20 65' opacity='.5'/%3E%3Cellipse cx='270' cy='230' rx='26' ry='12' transform='rotate(40 270 230)' opacity='.45'/%3E%3Cellipse cx='305' cy='95' rx='24' ry='11' transform='rotate(-15 305 95)' opacity='.45'/%3E%3Cellipse cx='15' cy='60' rx='22' ry='10' transform='rotate(25 15 60)' opacity='.45'/%3E%3Ccircle cx='150' cy='230' r='4' opacity='.6'/%3E%3Ccircle cx='200' cy='90' r='4' opacity='.6'/%3E%3Ccircle cx='95' cy='55' r='4' opacity='.6'/%3E%3Cpath d='M340 20 C 320 60, 330 100, 300 120' opacity='.35'/%3E%3Cellipse cx='335' cy='35' rx='18' ry='9' transform='rotate(60 335 35)' opacity='.35'/%3E%3C/svg%3E");
}
.floral-corner--hero-tr{top:0;right:0;width:min(46vw,460px);height:min(46vw,460px);transform:scaleX(-1);}
.floral-corner--hero-bl{bottom:0;left:0;width:min(32vw,320px);height:min(32vw,320px);transform:rotate(180deg);opacity:.38;}
.floral-corner--page{top:60px;right:0;width:min(34vw,320px);height:min(34vw,320px);transform:scaleX(-1);opacity:.28;}
.floral-corner--footer{bottom:0;left:0;width:min(30vw,280px);height:min(30vw,280px);opacity:.28;}
@media(max-width:768px){.floral-corner{opacity:.26;}}

/* ---------- NAV ---------- */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(251,247,252,.82);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border-soft);
  transition:background .3s;
}
.nav-inner{max-width:1280px;margin:0 auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;}
.nav-logo{font-family:var(--font-display);font-size:30px;line-height:1;color:var(--color-primary);position:relative;top:7px;}
.nav-links{display:flex;gap:22px;list-style:none;font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;font-weight:400;}
@media(min-width:769px) and (max-width:1120px){.nav-links{gap:16px;font-size:12px;letter-spacing:.6px;}}
.nav-links a{color:var(--text-muted);position:relative;padding:4px 0;transition:color .25s;}
.nav-links a:hover,.nav-links a:focus{color:var(--color-primary);}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--color-secondary);transition:width .25s;}
.nav-links a:hover::after{width:100%;}
.nav-links a[aria-current="page"]{color:var(--color-primary);font-weight:600;}
.nav-links a[aria-current="page"]::after{width:100%;background:var(--color-primary);}
.navbar.is-scrolled{background:rgba(251,247,252,.95);}
/* Na home o topo da hero é o mesmo creme da barra, então ela pode ficar sem
   fundo e sem linha até a rolagem começar. O .is-scrolled do script.js é que
   traz a barra de volta. Estado padrão em CSS para não piscar no carregamento. */
/* Na home a barra do topo é roxa (padrão da marca) com o logo branco, em
   qualquer largura. Volta ao creme com logo roxo ao rolar (.is-scrolled). */
.has-hero .navbar:not(.is-scrolled){background:var(--color-primary);border-bottom-color:transparent;backdrop-filter:none;}
.has-hero .navbar:not(.is-scrolled) .nav-logo{color:#fff;}
.has-hero .navbar:not(.is-scrolled) .nav-toggle span{background:#fff;}
@media(min-width:946px){
  .has-hero .navbar:not(.is-scrolled) .nav-links a{color:rgba(255,255,255,.82);}
  .has-hero .navbar:not(.is-scrolled) .nav-links a:hover,
  .has-hero .navbar:not(.is-scrolled) .nav-links a[aria-current="page"]{color:#fff;}
  .has-hero .navbar:not(.is-scrolled) .nav-links a::after{background:#fff;}
  .has-hero .navbar:not(.is-scrolled) .lang-btn{color:rgba(255,255,255,.72);}
  .has-hero .navbar:not(.is-scrolled) .lang-btn.active{color:#fff;}
  .has-hero .navbar:not(.is-scrolled) .lang-sep{color:rgba(255,255,255,.5);}
}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin:-8px;}
.nav-toggle span{width:24px;height:1px;background:var(--color-primary);display:block;}
/* Alternador de idioma PT / EN */
.nav-lang{display:flex;align-items:center;gap:7px;}
.lang-btn{background:none;border:none;cursor:pointer;font:inherit;font-size:13px;letter-spacing:1.5px;color:var(--text-soft);padding:0;transition:color .2s;}
.lang-btn:hover,.lang-btn:focus-visible{color:var(--color-primary);}
.lang-btn.active{color:var(--color-primary);font-weight:600;}
.lang-sep{color:var(--border-soft);font-size:12px;user-select:none;}
@media(max-width:945px){
  .nav-links{
    position:fixed;top:64px;right:0;background:var(--bg-surface);
    flex-direction:column;width:240px;padding:28px 24px;gap:24px;
    transform:translateX(100%);transition:transform .3s;
    border-left:1px solid var(--border-soft);height:calc(100vh - 64px);
    box-shadow:-8px 0 24px rgba(115,56,160,.08);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
}

/* ---------- HERO ---------- */
.hero{
  min-height:100vh;min-height:100svh;
  display:flex;align-items:center;justify-content:center;
  position:relative;background:var(--bg-page);
  text-align:center;padding:140px 22px 90px;overflow:hidden;
}
.hero-content{position:relative;z-index:2;max-width:760px;}
/* Foto da Eliane em P&B. O fundo branco do estúdio foi removido com
   segmentação de retrato (rembg / birefnet-portrait) + descontaminação de
   branco nas bordas — hero-cut.webp já é um recorte com transparência que
   aguenta fundo escuro sem franja. Ela é colada direto sobre o fundo, sem
   multiply nem véu. O u2net_human_seg deixava um blob branco num vão do
   cabelo direito; o birefnet resolveu. */
.hero-photo{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:var(--bg-page);
}
.hero-photo::before{
  content:""; position:absolute; inset:0;
  background-image:image-set(
    url('img/hero-cut.webp') type('image/webp'),
    url('img/hero-cut.png')  type('image/png'));
  background-repeat:no-repeat;
  /* Posição: 2vw da direita até ~1500px; acima disso, a margem cresce
     (calc) e a puxa para dentro — a composição CONGELA e não se esvazia em
     telas largas. Sangra só pela base. */
  background-position:right max(2vw, calc((100vw - 1500px) / 2 + 28px)) bottom;
  /* Largura por 58vw, teto pela altura (88vh) e teto absoluto (860px) para
     ela não encolher em relação à tela nem crescer demais no monitor grande.
     Se viesse só da altura, em notebook (1280x800) avançava sobre o texto;
     só da largura, em tela larga e baixa a cabeça era cortada. */
  background-size:min(58vw, 88vh, 860px) auto;
}
.hero-eyebrow{font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--color-secondary);margin-bottom:26px;opacity:0;animation:fadeUp 1.2s ease forwards 0s;}
.hero-name{
  font-family:var(--font-display);
  font-size:clamp(56px,11vw,108px);
  line-height:1.02;
  color:var(--color-primary);
  margin-bottom:24px;
  text-shadow:0 2px 26px rgba(251,247,252,.9);
  opacity:0;animation:fadeUp 1.2s ease forwards .25s;
}
.hero-tagline{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(16px,2vw,21px);color:var(--text-muted);
  margin:0 auto 44px;max-width:520px;
  text-shadow:0 1px 14px rgba(251,247,252,.95);
  opacity:0;animation:fadeUp 1.2s ease forwards .5s;
}
.link-cta{
  display:inline-flex;align-items:center;gap:10px;
  color:var(--color-primary);font-size:14px;letter-spacing:2px;text-transform:uppercase;
  border-bottom:1px solid var(--color-secondary);padding-bottom:8px;
  transition:color .25s,border-color .25s;
  opacity:0;animation:fadeUp 1.2s ease forwards .75s;
}
.link-cta:hover{color:var(--color-secondary);border-color:var(--color-primary);}

/* ATENÇÃO: estas duas media queries têm de ficar DEPOIS das regras base
   .hero-name / .hero-tagline acima. Mesma especificidade — vence a última
   do arquivo. Antes elas estavam acima e o font-size não pegava. */
/* Desktop: texto no campo roxo limpo à esquerda, ela à direita.
   Centralizado, o nome cairia em cima dos olhos dela. */
@media(min-width:1001px){
  .hero{justify-content:flex-start;text-align:left;padding-left:max(8vw, calc((100vw - 1500px) / 2 + 120px));}
  .hero-content{max-width:min(44vw,600px);}
  /* a assinatura não pode quebrar em duas linhas — some com o gesto dela */
  .hero-name{white-space:nowrap;font-size:min(5.4vw,80px);}
  .hero-tagline{margin-left:0;margin-right:0;max-width:460px;}

  /* PC claro: recorte transparente da Eliane (hero-pc) sobre o creme da
     página. Texto roxo/escuro (base) e barra roxa (.has-hero). Mesma
     posição/tamanho (herdados do ::before base). Mobile fica com a foto de
     fundo branco. */
  /* Hero com fundo próprio (a "divisão" do bloco). Foto transparente por cima. */
  .hero{background:var(--bg-page);}
  .hero-photo{background:transparent;}
  .hero-photo::before{
    background-image:image-set(
      url('img/hero-pc.webp') type('image/webp'),
      url('img/hero-pc.png')  type('image/png'));
  }
  /* Florado nos 4 cantos DENTRO do hero (o overflow:hidden do hero mantém eles
     contidos na divisão). Mesmo florado da base, multiply + máscara radial. */
  .hero .floral-corner--hero-tl,
  .hero .floral-corner--hero-tr,
  .hero .floral-corner--hero-bl,
  .hero .floral-corner--hero-br{
    display:block !important; position:absolute; z-index:1;
    pointer-events:none; opacity:.8; mix-blend-mode:multiply;
    width:min(42vw,480px); height:min(52vh,440px);
    background-image:image-set(url('img/florado-nobg.webp?v=1') type('image/webp'), url('img/florado-nobg.png?v=1') type('image/png'));
    background-repeat:no-repeat; background-size:cover; background-position:right bottom;
    -webkit-mask-image:radial-gradient(135% 135% at 100% 100%, #000 34%, transparent 80%);
    mask-image:radial-gradient(135% 135% at 100% 100%, #000 34%, transparent 80%);
  }
  .hero .floral-corner--hero-tl{top:0; left:0; transform:scale(-1,-1);}
  .hero .floral-corner--hero-tr{top:0; right:0; transform:scaleY(-1);}
  .hero .floral-corner--hero-bl{bottom:0; left:0; transform:scaleX(-1);}
  .hero .floral-corner--hero-br{bottom:0; right:0;}
}
/* Telas estreitas: o texto sobe e ela (recorte, uma camada só) desce
   centralizada na base. Sem véu — não há moldura a esconder. */
@media(max-width:1000px){
  /* ATENÇÃO: aqui NÃO se usa vh/svh para posicionar ela.
     No celular (e sobretudo no navegador do Instagram) a altura do viewport
     MUDA quando a barra do navegador aparece/some ao rolar. Com a foto
     posicionada em vh sobre o texto, ela pulava e cobria o "Ouvir as músicas".
     Solução: empilhar em FLUXO — texto em cima, Eliane logo abaixo. Em fluxo
     ela nunca sobrepõe o texto, em qualquer altura de tela. */
  .hero{
    flex-direction:column; align-items:center; justify-content:flex-start;
    padding-top:132px; padding-bottom:0;
    background:var(--bg-page);
    /* altura = conteúdo. Sem min-height de viewport: senão sobra um vão morto
       (variável por aparelho) entre ela e o "Sobre" logo abaixo. */
    min-height:0;
  }
  .hero-content{order:1;}
  /* sai do position:absolute e vira bloco no fluxo, com altura vinda da
     LARGURA (aspect-ratio) — estável, não depende do viewport */
  .hero-photo{
    order:2; position:relative; inset:auto;
    /* align-self:stretch escapa do align-items:center do .hero (que limitava a
       largura). As margens negativas anulam o padding lateral de 22px e ainda
       jogam para fora a margem transparente do recorte, para o cabelo dela
       encostar nas laterais (o overflow:hidden do .hero apara o excesso). */
    align-self:stretch; width:auto;
    margin:14px -34px 0;
    /* proporção EXATA da foto (786x746): nada é cortado nas laterais */
    aspect-ratio:786/746;
    background:transparent;
  }
  .hero-photo::before{
    background-image:image-set(
      url('img/hero-pc.webp') type('image/webp'),
      url('img/hero-pc.png')  type('image/png'));
    background-position:center;
    background-size:contain;
    background-repeat:no-repeat;
  }
}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

/* ---------- PAGE HEADER ---------- */
.page-header{padding:160px 0 60px;text-align:left;}
.breadcrumb{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:24px;}
.breadcrumb a{transition:color .2s;}
.breadcrumb a:hover{color:var(--color-primary);}
.breadcrumb .sep{margin:0 8px;opacity:.5;}

/* ---------- SECTION ---------- */
.editorial-section{padding:90px 0;position:relative;}
.editorial-section:first-of-type{padding-top:0;}
/* Na home a primeira seção vem logo abaixo do bloco roxo da hero e precisa
   de ar — sem isso o "Sobre" encosta na foto. Nas páginas internas ela vem
   depois do .page-header, que já dá o respiro, e aí o padding-top é 0. */
.has-hero .editorial-section:first-of-type{padding-top:clamp(72px,9vw,124px);}
.section-eyebrow{color:var(--color-secondary);font-size:13px;text-transform:uppercase;letter-spacing:3px;margin-bottom:16px;font-weight:600;}
.section-title{
  font-family:var(--font-display);
  font-size:clamp(38px,6vw,64px);
  color:var(--color-primary);margin-bottom:8px;line-height:1.1;
}
.section-lede{font-family:var(--font-title);font-style:italic;font-size:18px;color:var(--text-muted);max-width:640px;margin-top:22px;}

/* Só esconde para animar quando o JS está ativo (classe 'js' no <html>,
   adicionada de forma síncrona no <head>). Sem JS, o conteúdo aparece normal —
   nunca fica preso invisível. */
.js .fade-in{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease;}
.js .fade-in.visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .js .fade-in{opacity:1;transform:none;transition:none;}
}

.back-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-top:70px;transition:color .25s;}
.back-link:hover{color:var(--color-primary);}

/* ---------- HOME ---------- */
.home-intro p{font-size:19px;color:var(--text-muted);font-family:var(--font-title);font-style:italic;line-height:1.9;max-width:680px;}
.home-intro .link-inline{display:inline-block;margin-top:20px;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-primary);border-bottom:1px solid var(--color-secondary);padding-bottom:5px;transition:color .25s,border-color .25s;}
.home-intro .link-inline:hover{color:var(--color-secondary);border-color:var(--color-primary);}

/* Link DENTRO de texto corrido: herda tamanho/itálico do parágrafo,
   sem borda fixa. Sublinha só no hover. */
.link-text{color:var(--color-primary);font-weight:600;text-decoration:none;border-bottom:0;box-shadow:none;transition:color .2s;}
.link-text:hover,.link-text:focus-visible{color:var(--color-secondary);text-decoration:none;border-bottom:0;}

.teaser-list{margin-top:30px;}
.teaser-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:34px 0;border-bottom:1px solid var(--border-soft);transition:padding-left .25s;}
.teaser-row:hover{padding-left:12px;}
.teaser-row-left{display:flex;align-items:baseline;gap:24px;}
.teaser-num{font-family:var(--font-title);font-size:14px;color:var(--color-secondary);}
.teaser-title{font-family:var(--font-display);font-size:clamp(26px,4vw,38px);color:var(--text-main);line-height:1.1;}
.teaser-desc{font-size:14px;color:var(--text-muted);margin-top:6px;}
.teaser-arrow{color:var(--text-soft);transition:transform .25s,color .25s;flex-shrink:0;}
.teaser-row:hover .teaser-arrow{transform:translateX(6px);color:var(--color-primary);}

/* ---------- BIOGRAFIA ---------- */
.about-text{max-width:680px;}
.about-text p{font-size:20px;color:var(--text-muted);font-family:var(--font-title);font-style:italic;line-height:2;}
.about-photo-full{margin-top:60px;width:100%;aspect-ratio:16/7;border-radius:4px;background:linear-gradient(135deg,var(--border-softer),var(--bg-surface));border:1px solid var(--border-soft);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.about-photo-full img{width:100%;height:100%;object-fit:cover;}
.about-photo-full .placeholder-label{font-family:var(--font-title);color:var(--text-muted);font-size:14px;text-align:center;padding:20px;}

/* Bio: texto + retrato editorial lado a lado */
.about-grid{display:grid;grid-template-columns:1fr minmax(300px,380px);gap:56px;align-items:center;}
.about-text{max-width:680px;}
.about-portrait{margin:0;position:relative;border-radius:6px;overflow:hidden;border:1px solid var(--border-soft);box-shadow:0 20px 48px rgba(115,56,160,.18);}
.about-portrait img{display:block;width:100%;height:auto;}
.about-portrait figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 18px 12px;font-size:12.5px;letter-spacing:.04em;color:#fff;background:linear-gradient(transparent,rgba(26,10,46,.72));}
@media(max-width:760px){
  .about-grid{grid-template-columns:1fr;gap:36px;}
  .about-portrait{max-width:380px;margin:0 auto;}
}

/* ---------- DISCOGRAFIA ---------- */
.disco-group-label{font-family:var(--font-title);font-style:italic;font-size:18px;color:var(--color-secondary);margin:0 0 10px;}
/* Página Singles: dá respiro entre os grupos para os títulos não ficarem
   espremidos entre as linhas das faixas. */
#singles-list .disco-group-label{font-family:var(--font-display);font-style:normal;font-size:clamp(22px,3vw,30px);color:var(--color-primary);margin:56px 0 16px;line-height:1.1;}
#singles-list .disco-group-label:first-child{margin-top:6px;}
/* Sem linha acima do título do álbum: o nome fica mais destacado como álbum.
   O respiro entre grupos vem só da margem. */
#lyrics-list .disco-group-label{font-family:var(--font-display);font-style:normal;font-size:clamp(26px,3.4vw,36px);color:var(--color-primary);line-height:1.1;margin:66px 0 22px;}
#lyrics-list .disco-group-label:first-child{margin-top:10px;}
#singles-list .tracklist{margin-bottom:8px;}
.disco-list{margin-bottom:70px;}
.disco-row{display:flex;align-items:center;gap:20px;padding:18px 14px;border-bottom:1px solid var(--border-soft);transition:background .25s,padding-left .25s;}
.disco-row:first-of-type{border-top:1px solid var(--border-soft);}
.disco-row:hover{background:var(--bg-surface);padding-left:24px;box-shadow:0 4px 20px rgba(115,56,160,.07);}
.disco-row-link{flex:1;min-width:0;display:grid;grid-template-columns:64px 1fr;align-items:center;gap:20px;}
.disco-thumb{width:64px;height:64px;border-radius:4px;background:linear-gradient(135deg,var(--border-softer),var(--color-accent));border:1px solid var(--border-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s;overflow:hidden;}
.disco-row:hover .disco-thumb{transform:scale(1.06);}
.disco-thumb span{font-family:var(--font-display);font-size:15px;color:var(--color-primary);text-align:center;padding:4px;line-height:1.05;}
.disco-info-title{font-family:var(--font-display);font-size:24px;color:var(--text-main);line-height:1.1;}
.disco-info-year{font-size:13px;color:var(--color-secondary);margin-top:2px;}
.disco-play{width:42px;height:42px;border-radius:50%;border:1px solid var(--color-secondary);color:var(--color-primary);display:flex;align-items:center;justify-content:center;background:var(--bg-surface);transition:background .25s,color .25s,transform .25s;flex-shrink:0;cursor:pointer;}
.disco-row:hover .disco-play,.disco-play:hover,.disco-play:focus-visible{background:var(--color-primary);color:#fff;transform:scale(1.05);}
.disco-arrow{color:var(--text-soft);transition:transform .25s,color .25s;}
.disco-row:hover .disco-arrow{transform:translateX(5px);color:var(--color-primary);}
@media(max-width:600px){
  .disco-arrow{display:none;}
  .disco-row-link{grid-template-columns:54px 1fr;gap:14px;}
  .disco-thumb{width:54px;height:54px;}
  .disco-info-title{font-size:20px;}
}

/* ---------- LITERATURA (contos) ---------- */
.lit-section{padding-top:0;}
.lit-header{margin-bottom:6px;}
.lit-list{display:flex;flex-direction:column;margin-top:30px;}
.lit-item{border-bottom:1px solid var(--border-soft);}
.lit-item:first-of-type{border-top:1px solid var(--border-soft);}
.lit-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:24px 12px;transition:background .25s,padding-left .25s;}
.lit-summary::-webkit-details-marker{display:none;}
.lit-summary:hover{background:var(--bg-surface);padding-left:22px;box-shadow:0 4px 20px rgba(115,56,160,.06);}
.lit-num{font-family:var(--font-display);font-size:22px;color:var(--color-secondary);min-width:34px;flex-shrink:0;}
.lit-name{flex:1;min-width:0;font-family:var(--font-display);font-size:25px;font-weight:700;color:var(--text-main);line-height:1.1;}
.lit-ded{display:block;font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-size:13px;color:var(--text-muted);margin-top:5px;}
.lit-badge{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--color-primary);border:1px solid var(--border-soft);border-radius:999px;padding:5px 12px;white-space:nowrap;flex-shrink:0;}
.lit-plus{position:relative;width:16px;height:16px;flex-shrink:0;}
.lit-plus::before,.lit-plus::after{content:"";position:absolute;background:var(--color-primary);transition:transform .25s,opacity .25s;}
.lit-plus::before{left:0;top:7px;width:16px;height:2px;}
.lit-plus::after{left:7px;top:0;width:2px;height:16px;}
.lit-item[open] .lit-plus::after{transform:rotate(90deg);opacity:0;}
.lit-text{padding:2px 12px 34px;max-width:68ch;}
.lit-text p{font-family:'Libre Baskerville',Georgia,serif;font-size:15px;line-height:1.95;color:var(--text-main);margin-bottom:18px;text-align:justify;}
.lit-text p:last-child{margin-bottom:0;}
@media(max-width:600px){
  .lit-summary{gap:12px;padding:20px 6px;}
  .lit-name{font-size:21px;}
  .lit-badge{display:none;}
  .lit-text{padding-bottom:28px;}
  .lit-text p{text-align:left;}
}

/* ---------- ALBUM ---------- */
.album-hero{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;align-items:center;}
.album-cover-big{position:relative;width:100%;aspect-ratio:1/1;background:linear-gradient(135deg,var(--border-softer),var(--color-accent));border:1px solid var(--border-soft);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.album-cover-big span{font-family:var(--font-display);font-size:40px;color:var(--color-primary);text-align:center;padding:20px;line-height:1.05;}

/* ---------- CAPAS COM TRATAMENTO DUOTONE ROXO ---------- */
/* As imagens são inseridas via JS (assets/img/albums/<slug>.<ext>); se o
   arquivo não existir, fica o fundo + nome (fallback). */
[data-cover]{position:relative;}
.cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1;filter:grayscale(.55) contrast(1.04) brightness(1.03);transition:filter .6s ease,transform .8s ease;}
.cover-tint{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(155deg,rgba(115,56,160,.55),rgba(83,40,115,.28) 55%,rgba(245,240,250,.10));mix-blend-mode:multiply;}
.has-cover:hover .cover-img{filter:grayscale(0) contrast(1.04);transform:scale(1.05);}
.has-cover:hover .cover-tint{background:linear-gradient(155deg,rgba(115,56,160,.30),rgba(83,40,115,.12) 60%,transparent);transition:background .6s ease;}
.disco-thumb .cover-tint{background:linear-gradient(150deg,rgba(115,56,160,.5),rgba(83,40,115,.25));}
.disco-row:hover .disco-thumb.has-cover .cover-img{filter:grayscale(0) contrast(1.04);}
.album-meta-label{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--color-secondary);margin-bottom:14px;}
.album-title-big{font-family:var(--font-display);font-size:clamp(40px,6vw,68px);color:var(--color-primary);margin-bottom:20px;line-height:1.05;}
.album-desc{font-size:16px;color:var(--text-muted);max-width:440px;margin-bottom:28px;}
.album-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-primary);border-bottom:1px solid var(--color-secondary);padding-bottom:6px;transition:color .25s,border-color .25s;}
.album-link:hover{color:var(--color-secondary);border-color:var(--color-primary);}
.album-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.album-credits{margin-top:80px;}
.album-credits h2{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);color:var(--color-primary);margin-bottom:26px;line-height:1.1;}
.repertorio{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px 44px;}
.rep-ep h3{font-family:var(--font-title);font-size:18px;color:var(--text-main);margin-bottom:10px;}
.rep-ep ul{list-style:none;}
.rep-ep li{font-size:14.5px;color:var(--text-muted);padding:6px 0;border-bottom:1px solid var(--border-softer);}
.rep-ep li:last-child{border-bottom:none;}
.rep-t{font-variant-numeric:tabular-nums;color:var(--color-secondary);font-size:13px;margin-right:8px;}
.ficha{max-width:680px;}
.ficha p{font-size:14.5px;color:var(--text-muted);line-height:1.8;margin-bottom:12px;}
.ficha strong{color:var(--text-main);font-weight:600;}
.rep-songs{list-style:none;margin:0;padding:0;column-count:2;column-gap:48px;counter-reset:rep;}
.rep-songs li{break-inside:avoid;display:flex;flex-direction:column;padding:11px 0;border-bottom:1px solid var(--border-softer);counter-increment:rep;}
.rep-songs li::before{content:counter(rep,decimal-leading-zero);font-variant-numeric:tabular-nums;color:var(--color-secondary);font-size:12px;letter-spacing:.05em;margin-bottom:4px;}
.rep-song{font-size:15px;color:var(--text-main);line-height:1.35;}
.rep-author{font-size:13px;color:var(--text-muted);margin-top:3px;}
@media(max-width:600px){.rep-songs{column-count:1;}}
.album-tracks{margin-top:80px;}
.album-tracks h2{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);color:var(--color-primary);margin-bottom:24px;}
@media(max-width:768px){.album-hero{grid-template-columns:1fr;gap:36px;}}

/* ---------- BOTÃO TOCAR (faixa) ---------- */
.play-track-btn{display:inline-flex;align-items:center;gap:10px;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:13px 26px 13px 22px;border-radius:40px;cursor:pointer;transition:background .25s,transform .15s,box-shadow .25s;box-shadow:0 6px 20px rgba(115,56,160,.18);}
.play-track-btn:hover{background:var(--color-secondary);border-color:var(--color-secondary);box-shadow:0 10px 28px rgba(83,40,115,.28);}
.play-track-btn:active{transform:scale(.97);}
[data-play-track] .icon-play,[data-play-track] .icon-pause{display:flex;}
[data-play-track][data-playing="true"] .icon-play{display:none;}
[data-play-track]:not([data-playing="true"]) .icon-pause{display:none;}

/* tracklist within album */
.tracklist{display:flex;flex-direction:column;border-top:1px solid var(--border-soft);}
.track-item{display:flex;align-items:center;gap:18px;width:100%;padding:16px 14px;background:none;border:none;border-bottom:1px solid var(--border-soft);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background .2s,padding-left .25s;}
.track-item:hover{background:var(--bg-surface);padding-left:22px;}
.track-item.is-noaudio{opacity:.6;cursor:default;}
.track-item.is-noaudio:hover{background:none;padding-left:14px;}
.track-item.is-noaudio .track-num{visibility:hidden;}
.track-item.is-noaudio .track-dur{font-size:12px;color:var(--text-soft);font-style:italic;white-space:nowrap;}
.track-num{font-family:var(--font-title);font-size:14px;color:var(--text-soft);width:24px;flex-shrink:0;}
.track-item[data-playing="true"] .track-num{display:none;}
.track-eq{display:none;width:24px;flex-shrink:0;gap:2px;align-items:flex-end;height:16px;}
.track-item[data-playing="true"] .track-eq{display:flex;}
.track-eq span{width:3px;background:var(--color-primary);border-radius:2px;animation:eq 1s ease-in-out infinite;}
.track-eq span:nth-child(1){height:40%;animation-delay:-.2s;}
.track-eq span:nth-child(2){height:90%;animation-delay:-.5s;}
.track-eq span:nth-child(3){height:60%;animation-delay:0s;}
@keyframes eq{0%,100%{transform:scaleY(.4);}50%{transform:scaleY(1);}}
.track-name{flex:1;font-family:var(--font-title);font-size:16px;color:var(--text-main);}
.track-item[data-playing="true"] .track-name{color:var(--color-primary);}
.track-dur{font-size:13px;color:var(--text-soft);font-variant-numeric:tabular-nums;}
.track-item.is-hidden{display:none;}
.is-hidden{display:none;}
.episode-search{width:100%;max-width:440px;padding:12px 16px;font-family:var(--font-body);font-size:15px;color:var(--text-main);background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:30px;margin-bottom:10px;}
.episode-search:focus{outline:none;border-color:var(--color-secondary);}
.episode-search::placeholder{color:var(--text-soft);}
.episode-count{font-size:13px;color:var(--text-soft);margin-bottom:14px;}
.pm-banner{width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;border:1px solid var(--border-soft);box-shadow:0 12px 34px rgba(115,56,160,.14);margin:8px 0 26px;}
.pm-banner img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- LINHA DO TEMPO (interativa) ---------- */
.timeline{position:relative;max-width:880px;margin:64px auto 0;padding:10px 0;}
.timeline-rail{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--border-soft);transform:translateX(-50%);}
.timeline-fill{position:absolute;top:0;left:50%;width:2px;height:0;background:linear-gradient(180deg,var(--color-primary),var(--color-secondary));transform:translateX(-50%);transition:height .15s linear;}
.timeline-node{position:relative;width:50%;box-sizing:border-box;padding:16px 48px;transition:opacity .7s ease,transform .7s ease;}
.js .timeline-node{opacity:0;transform:translateY(28px);}
.js .timeline-node.visible{opacity:1;transform:none;}
.timeline-node.is-left{left:0;text-align:right;}
.timeline-node.is-right{left:50%;text-align:left;}
.timeline-dot{position:absolute;top:24px;width:16px;height:16px;border-radius:50%;background:var(--bg-page);border:2px solid var(--color-secondary);z-index:2;transition:transform .25s,background .25s,border-color .25s;}
.timeline-node.is-left .timeline-dot{right:-9px;}
.timeline-node.is-right .timeline-dot{left:-9px;}
.timeline-node.reached .timeline-dot{background:var(--color-primary);border-color:var(--color-primary);}
.timeline-card{display:inline-block;max-width:100%;cursor:pointer;background:none;border:none;text-align:inherit;font-family:inherit;padding:0;}
.timeline-year{font-family:var(--font-display);font-size:34px;line-height:1;color:var(--color-primary);display:block;}
.timeline-head{display:inline-flex;align-items:baseline;gap:10px;margin-top:6px;}
.timeline-node.is-left .timeline-head{flex-direction:row-reverse;}
.timeline-title{font-family:var(--font-title);font-size:17px;color:var(--text-main);}
.timeline-plus{font-size:13px;color:var(--text-soft);letter-spacing:1px;text-transform:uppercase;transition:color .25s;flex-shrink:0;}
.timeline-card:hover .timeline-plus{color:var(--color-primary);}
.timeline-card:hover .timeline-dot,.timeline-card:focus-visible+.timeline-dot{transform:scale(1.25);}
.timeline-desc{display:block;max-height:0;overflow:hidden;transition:max-height .4s ease;}
.timeline-desc-inner{display:block;padding-top:10px;font-size:14.5px;color:var(--text-muted);line-height:1.7;}
.timeline-node.open .timeline-desc{max-height:320px;}
.timeline-node.open .timeline-plus{color:var(--color-primary);}
@media(max-width:760px){
  .timeline{margin-top:48px;}
  .timeline-rail,.timeline-fill{left:9px;}
  .timeline-node{width:100%;left:0!important;text-align:left!important;padding:14px 0 14px 40px;}
  .timeline-node .timeline-dot{left:1px!important;right:auto!important;}
  .timeline-node.is-left .timeline-head{flex-direction:row;}
  .timeline-year{font-size:28px;}
}

/* ---------- MÍDIA ---------- */
.media-stack{display:flex;flex-direction:column;gap:80px;margin-top:50px;}
.media-block{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;}
.media-frame{width:100%;aspect-ratio:16/9;background:#000;border:1px solid var(--border-soft);}
.media-frame iframe{width:100%;height:100%;border:0;}
.media-poster{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--border-softer),var(--color-accent));border:1px solid var(--border-soft);overflow:hidden;transition:box-shadow .3s;}
.media-poster:hover{box-shadow:0 10px 30px rgba(115,56,160,.12);}
.media-poster .play-circle{width:62px;height:62px;border-radius:50%;background:rgba(115,56,160,.92);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .25s,background .25s;}
.media-poster:hover .play-circle{transform:scale(1.08);background:var(--color-primary);}
.media-poster .poster-label{position:absolute;top:12px;right:14px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-secondary);z-index:3;}
.media-poster .poster-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;filter:grayscale(.4) contrast(1.03);transition:filter .5s ease,transform .6s ease;}
.media-poster .poster-tint{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(160deg,rgba(115,56,160,.4),rgba(83,40,115,.18) 60%,transparent);mix-blend-mode:multiply;}
.media-poster--img .play-circle{z-index:3;}
.media-poster--img:hover .poster-img{filter:grayscale(0) contrast(1.03);transform:scale(1.04);}
.media-poster--img .poster-label{color:#fff;}

/* ---------- GALERIA DE VÍDEOS ---------- */
.media-subhead{font-family:var(--font-title);font-style:italic;font-size:18px;color:var(--color-secondary);margin:0 0 24px;}
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;}
.video-card{position:relative;width:100%;aspect-ratio:16/9;border:1px solid var(--border-soft);overflow:hidden;background:linear-gradient(135deg,var(--border-softer),var(--color-accent));cursor:pointer;padding:0;display:block;}
.video-card .vthumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.45) contrast(1.04);transition:filter .5s ease,transform .6s ease;z-index:1;}
.video-card .vtint{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(160deg,rgba(115,56,160,.45),rgba(83,40,115,.2) 60%,transparent);mix-blend-mode:multiply;}
.video-card:hover .vthumb{filter:grayscale(0) contrast(1.04);transform:scale(1.05);}
.video-card .vplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:rgba(115,56,160,.92);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .25s,background .25s;z-index:3;}
.video-card:hover .vplay{transform:translate(-50%,-50%) scale(1.1);background:var(--color-primary);}
.video-card .vtitle{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:30px 16px 14px;text-align:left;background:linear-gradient(transparent,rgba(26,10,46,.72));color:#fff;font-family:var(--font-title);font-size:15px;line-height:1.3;}
.video-card.playing .vplay,.video-card.playing .vtint,.video-card.playing .vtitle,.video-card.playing .vthumb{opacity:0;}
.video-card iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:5;}
.video-empty{margin-top:18px;font-size:14px;color:var(--text-soft);}
.media-info h4{font-family:var(--font-display);font-size:30px;color:var(--color-primary);margin-bottom:12px;line-height:1.1;}
.media-info p{font-size:15px;color:var(--text-muted);}
@media(max-width:768px){.media-block{grid-template-columns:1fr;gap:24px;}}
.media-extra{margin-top:70px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 40px;}
.media-extra-card{padding:24px 0;border-bottom:1px solid var(--border-soft);}
.media-extra-card h5{font-family:var(--font-title);color:var(--text-main);font-size:16px;margin-bottom:6px;}
.media-extra-card p{font-size:13px;color:var(--color-secondary);}
.media-extra-card--link{display:block;transition:padding-left .25s,border-color .25s;}
.media-extra-card--link:hover{padding-left:8px;border-color:var(--color-secondary);}
.media-extra-card--link:hover h5{color:var(--color-primary);}
.media-extra-more{display:inline-block;margin-top:10px;font-size:12px;letter-spacing:.04em;color:var(--color-primary);}

/* ---------- IMPRENSA ---------- */
.press-list{margin-top:50px;display:flex;flex-direction:column;}
.press-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:32px 14px;border-bottom:1px solid var(--border-soft);transition:background .25s,padding-left .25s;}
.press-row:first-of-type{border-top:1px solid var(--border-soft);}
.press-row:hover{background:var(--bg-surface);padding-left:24px;box-shadow:0 4px 20px rgba(115,56,160,.07);}
.press-icon{color:var(--color-secondary);flex-shrink:0;}
.press-row h4{font-family:var(--font-display);font-size:26px;color:var(--text-main);margin-bottom:6px;line-height:1.1;}
.press-row p{font-size:14px;color:var(--text-muted);}
.btn-download{display:inline-flex;align-items:center;gap:8px;color:var(--color-primary);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--color-secondary);padding-bottom:6px;white-space:nowrap;transition:color .25s,border-color .25s;}
.btn-download:hover{color:var(--color-secondary);border-color:var(--color-primary);}
.btn-download.is-disabled{color:var(--text-soft);border-color:var(--border-soft);cursor:not-allowed;pointer-events:none;opacity:.75;}
@media(max-width:600px){
  .press-row{grid-template-columns:auto 1fr;}
  .btn-download{grid-column:1/-1;margin-top:4px;}
}

/* ---------- CONTATO ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:50px;}
.contact-info-item{margin-bottom:26px;display:flex;gap:16px;align-items:flex-start;}
.contact-info-item .icon{color:var(--color-secondary);flex-shrink:0;}
.contact-info-item a,.contact-info-item span{color:var(--text-main);font-size:15px;}
.contact-info-item a:hover{color:var(--color-primary);}
.contact-form{display:flex;flex-direction:column;gap:20px;}
.contact-form input,.contact-form textarea{background:transparent;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;padding:10px 2px;color:var(--text-main);font-family:var(--font-body);font-size:15px;resize:vertical;}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-muted);}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-primary);}
.contact-form button{align-self:flex-start;background:none;color:var(--color-primary);border:1px solid var(--color-secondary);padding:14px 36px;font-size:13px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:background .25s,border-color .25s,color .25s;margin-top:10px;}
.contact-form button:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}
.form-success{display:none;color:#3f7a4f;font-size:14px;}
.form-success.is-visible{display:block;}
.form-success.is-error{color:#b03a3a;}
.form-error{color:#b03a3a;}

/* ---------- PARTICIPAÇÕES (páginas de detalhe) ---------- */
.part-tracklist{list-style:none;margin:0;padding:0;max-width:560px;}
.part-tracklist li{padding:12px 0;border-bottom:1px solid var(--border-softer);font-size:15.5px;color:var(--text-main);}
.part-tracklist li:last-child{border-bottom:none;}
.part-tracks-empty{font-size:14.5px;color:var(--text-soft);font-style:italic;}
.part-note{margin-top:16px;font-size:13.5px;color:var(--text-muted);line-height:1.7;max-width:640px;}
.video-embed{position:relative;width:100%;aspect-ratio:16/9;margin:56px 0 8px;border-radius:8px;overflow:hidden;border:1px solid var(--border-soft);box-shadow:0 12px 34px rgba(115,56,160,.14);}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
/* Pôster clicável (facade) — evita o visual de "erro" do pôster VEVO até o play */
.video-facade{display:block;padding:0;background:#1a0a2e;cursor:pointer;}
.video-facade img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.02);transition:transform .6s ease;}
.video-facade:hover img{transform:scale(1.03);}
.video-facade .vf-tint{position:absolute;inset:0;background:linear-gradient(160deg,rgba(115,56,160,.42),rgba(26,10,46,.34));}
.video-facade .vf-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:rgba(115,56,160,.92);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 26px rgba(0,0,0,.32);transition:transform .25s,background .25s;}
.video-facade:hover .vf-play{transform:translate(-50%,-50%) scale(1.08);background:var(--color-primary);}
.video-facade.playing img,.video-facade.playing .vf-tint,.video-facade.playing .vf-play{display:none;}
/* Grade de 2 vídeos (ex.: episódios do À Luz do Lampião) */
.video-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.video-grid-2 figure{margin:0;}
.video-grid-2 .video-embed{margin:0;}
.video-grid-2 figcaption{margin-top:12px;font-family:var(--font-title);font-size:16px;color:var(--text-main);}
@media(max-width:640px){.video-grid-2{grid-template-columns:1fr;gap:22px;}}

/* ---------- FOTOS PARA IMPRENSA (galeria + lightbox) ---------- */
.press-clips{margin-top:70px;}
.press-clips h2{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);color:var(--color-primary);line-height:1.1;margin-bottom:22px;}
.press-clip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:28px 14px;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);transition:background .25s,padding-left .25s,box-shadow .25s;}
.press-clip:hover{background:var(--bg-surface);padding-left:24px;box-shadow:0 4px 20px rgba(115,56,160,.07);}
.press-clip-src{display:block;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-secondary);margin-bottom:6px;}
.press-clip h4{font-family:var(--font-display);font-size:23px;color:var(--text-main);margin-bottom:8px;line-height:1.15;}
.press-clip p{font-size:14px;color:var(--text-muted);}
.press-clip-go{color:var(--color-primary);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--color-secondary);padding-bottom:6px;white-space:nowrap;transition:color .25s,border-color .25s;}
.press-clip:hover .press-clip-go{color:var(--color-secondary);border-color:var(--color-primary);}
@media(max-width:600px){
  .press-clip{grid-template-columns:auto 1fr;}
  .press-clip-go{grid-column:1/-1;margin-top:4px;}
}
.press-photos{margin-top:80px;}
.press-photos h2{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);color:var(--color-primary);line-height:1.1;margin-bottom:10px;}
.press-photos-hint{font-size:13.5px;color:var(--text-muted);margin-bottom:26px;}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:14px;}
.photo-thumb{position:relative;padding:0;margin:0;border:1px solid var(--border-soft);background:var(--border-softer);border-radius:4px;overflow:hidden;aspect-ratio:1;cursor:pointer;}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease,filter .3s;filter:saturate(.96);}
.photo-thumb:hover img{transform:scale(1.07);filter:saturate(1.05);}
.photo-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,transparent 60%,rgba(115,56,160,.28));opacity:0;transition:opacity .3s;}
.photo-thumb:hover::after{opacity:1;}
@media(max-width:600px){.photo-grid{grid-template-columns:repeat(2,1fr);gap:10px;}}

.lightbox{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:44px 24px;background:rgba(20,8,34,.93);backdrop-filter:blur(4px);}
.lightbox.open{display:flex;}
.lb-fig{margin:0;max-width:min(1120px,94vw);display:flex;flex-direction:column;align-items:center;gap:16px;}
.lb-img{max-width:100%;max-height:72vh;object-fit:contain;border-radius:4px;box-shadow:0 24px 70px rgba(0,0,0,.55);background:#000;}
.lb-cap{color:#e9def2;font-family:var(--font-title);font-style:italic;font-size:14.5px;text-align:center;max-width:680px;}
.lb-dl{display:inline-flex;align-items:center;gap:8px;color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:26px;padding:10px 22px;font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;transition:background .2s,border-color .2s;}
.lb-dl:hover{background:rgba(255,255,255,.16);border-color:#fff;}
.lb-close{position:fixed;top:18px;right:26px;width:44px;height:44px;background:none;border:none;color:#fff;font-size:32px;line-height:1;cursor:pointer;opacity:.85;transition:opacity .2s,transform .2s;}
.lb-close:hover{opacity:1;transform:scale(1.1);}

/* ---------- LETRAS / PARTITURAS (accordion) ---------- */
.lyrics-list{max-width:760px;}
.lyrics-empty{font-size:14.5px;color:var(--text-soft);font-style:italic;}
.lyric-item{border-bottom:1px solid var(--border-soft);}
.lyric-item summary{list-style:none;cursor:pointer;padding:20px 4px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;transition:padding-left .2s;}
.lyric-item summary::-webkit-details-marker{display:none;}
.lyric-item summary::after{content:"+";margin-left:auto;color:var(--color-secondary);font-size:20px;line-height:1;}
.lyric-item[open] summary::after{content:"–";}
.lyric-item summary:hover{padding-left:8px;}
.lyric-title{font-family:var(--font-display);font-size:24px;color:var(--text-main);}
.lyric-album{font-size:13px;color:var(--text-soft);font-style:italic;}
.lyric-body{padding:2px 4px 26px;}
.lyric-text{font-family:var(--font-body);font-size:15px;color:var(--text-muted);line-height:1.9;white-space:pre-wrap;margin:0;}
.lyric-pdf{display:inline-block;margin-top:18px;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--color-primary);border-bottom:1px solid var(--border-soft);padding-bottom:2px;}
.lyric-pdf:hover{color:var(--color-secondary);border-color:var(--color-secondary);}

/* ---------- BIOGRAFIA CURTA (imprensa) ---------- */
.press-bio{margin-top:72px;max-width:760px;border:1px solid var(--border-soft);border-left:3px solid var(--color-secondary);border-radius:6px;background:var(--bg-surface);padding:28px 32px;}
.press-bio-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap;}
.press-bio-head h2{font-family:var(--font-title);font-style:italic;font-size:18px;color:var(--color-primary);}
.press-bio-copy{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--color-primary);background:none;border:1px solid var(--border-soft);border-radius:20px;padding:7px 16px;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.press-bio-copy:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.press-bio p{font-size:15.5px;color:var(--text-muted);line-height:1.85;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:50px;}}

/* ---------- FOOTER (clean) ---------- */
.site-footer{background:transparent;border-top:1px solid var(--border-soft);padding:74px 0 54px;margin-top:40px;text-align:center;}
.site-footer .container{display:flex;flex-direction:column;align-items:center;}
.footer-name{font-family:var(--font-display);font-size:clamp(38px,6vw,52px);line-height:1;color:var(--color-primary);margin-bottom:12px;}
.footer-tagline{font-family:var(--font-title);font-style:italic;font-size:15px;color:var(--text-muted);margin-bottom:30px;}
.footer-links{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-bottom:30px;}
.footer-links a{position:relative;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);padding-bottom:5px;transition:color .25s;}
.footer-links a:hover{color:var(--color-primary);}
.footer-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--color-secondary);transition:width .25s;}
.footer-links a:hover::after{width:100%;}
.footer-credits{font-size:12px;letter-spacing:.4px;color:var(--text-soft);}

/* ---------- PLAYER DE ÁUDIO (barra fixa) ---------- */
.audio-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:1100;
  background:rgba(251,247,252,.94);
  backdrop-filter:blur(16px);
  border-top:1px solid var(--border-soft);
  box-shadow:0 -6px 26px rgba(115,56,160,.10);
  padding:0 22px;height:var(--player-h);
  display:flex;align-items:center;gap:18px;
}
.audio-play{
  width:48px;height:48px;border-radius:50%;
  background:var(--color-primary);color:#fff;border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;transition:background .25s,transform .15s;
}
.audio-play:hover{background:var(--color-secondary);}
.audio-play:active{transform:scale(.94);}
.audio-play .icon-pause{display:none;}
.audio-bar[data-playing="true"] .audio-play .icon-play{display:none;}
.audio-bar[data-playing="true"] .audio-play .icon-pause{display:flex;}
.audio-meta{display:flex;align-items:center;gap:8px;width:210px;flex-shrink:0;min-width:0;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:6px 8px;margin:-6px -8px;border-radius:8px;transition:background .2s;}
.audio-meta:hover{background:rgba(115,56,160,.06);}
.audio-meta-text{min-width:0;flex:1;}
.audio-title{font-family:var(--font-title);font-size:14px;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.audio-sub{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.audio-caret{flex-shrink:0;color:var(--text-soft);transition:transform .25s,color .25s;}
.audio-meta[aria-expanded="true"] .audio-caret{transform:rotate(180deg);color:var(--color-primary);}

/* painel de seleção de faixa */
.audio-playlist{position:fixed;left:16px;bottom:calc(var(--player-h) + 12px);width:340px;max-width:calc(100vw - 32px);max-height:min(56vh,440px);overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:12px;box-shadow:0 14px 44px rgba(115,56,160,.20);z-index:1200;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s;}
.audio-playlist.open{opacity:1;visibility:visible;transform:translateY(0);}
.audio-playlist-head{padding:16px 18px 12px;font-family:var(--font-display);font-size:26px;line-height:1;color:var(--color-primary);border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--bg-surface);z-index:1;}
.audio-playlist-group{padding:14px 18px 6px;font-family:var(--font-title);font-style:italic;font-size:13px;color:var(--color-secondary);}
.playlist-item{display:flex;align-items:center;gap:14px;width:100%;padding:13px 18px;background:none;border:none;border-bottom:1px solid var(--border-softer);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background .18s;}
.playlist-item:last-child{border-bottom:none;}
.playlist-item:hover{background:rgba(83,40,115,.07);}
.playlist-item-ic{width:32px;height:32px;border-radius:50%;border:1px solid var(--color-secondary);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-surface);}
.playlist-item.current .playlist-item-ic{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.playlist-item-text{min-width:0;flex:1;}
.playlist-item-name{font-family:var(--font-title);font-size:15px;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.playlist-item.current .playlist-item-name{color:var(--color-primary);}
.playlist-item-sub{font-size:12px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:680px){
  .audio-playlist{left:8px;right:8px;width:auto;max-width:none;}
  .audio-meta{width:auto;}
}
.audio-controls{flex:1;display:flex;align-items:center;gap:12px;min-width:0;margin-left:8px;}
.audio-time{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;}
.audio-progress{position:relative;flex:1;height:5px;border-radius:3px;background:var(--border-soft);cursor:pointer;}
.audio-progress-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));}
.audio-progress-thumb{position:absolute;top:50%;left:0;width:13px;height:13px;border-radius:50%;background:var(--color-primary);box-shadow:0 1px 4px rgba(115,56,160,.4);transform:translate(-50%,-50%);opacity:0;transition:opacity .2s;}
.audio-progress:hover .audio-progress-thumb,.audio-progress:focus-within .audio-progress-thumb{opacity:1;}
.audio-link{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--color-secondary);border-bottom:1px solid var(--color-secondary);padding-bottom:3px;flex-shrink:0;transition:color .2s,border-color .2s;}
.audio-link:hover{color:var(--color-primary);border-color:var(--color-primary);}
@media(max-width:680px){
  :root{--player-h:120px;}
  .audio-bar{flex-wrap:wrap;align-content:center;padding:10px 14px;gap:8px 14px;}
  .audio-meta{flex:1;width:auto;order:1;}
  .audio-play{order:0;}
  .audio-controls{order:3;flex-basis:100%;margin-left:0;}
  .audio-link{display:none;}
}

/* ---------- ACESSIBILIDADE ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,.timeline-card:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px;border-radius:2px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .track-eq span{animation:none;}
}

@media(max-width:768px){
  .editorial-section{padding:60px 0;}
  .page-header{padding:120px 0 36px;}
  .hero{padding-top:120px;}
}

/* Biografia — seções longas */
.bio-h{font-family:var(--font-display);font-size:clamp(23px,2.6vw,31px);color:var(--color-primary);line-height:1.15;margin:48px 0 16px;}
.about-text .bio-h{margin-top:0;}
.bio-sections{max-width:880px;margin-top:8px;}
.about-grid .about-text p,.bio-sections p{font-style:normal;font-size:17px;line-height:1.85;margin-bottom:15px;color:var(--text-main);}
.bio-sections em,.about-text em{font-style:italic;}

/* ---------- AGENDA ---------- */
.agenda-list{max-width:820px;}
.event-item{display:flex;gap:26px;align-items:baseline;padding:24px 4px;border-bottom:1px solid var(--border-soft);}
.event-item:first-child{border-top:1px solid var(--border-soft);}
.event-date{flex:none;width:130px;font-family:var(--font-title);font-style:italic;color:var(--color-secondary);font-size:15px;line-height:1.35;}
.event-body{flex:1;min-width:0;}
.event-title{font-family:var(--font-display);font-size:23px;color:var(--text-main);line-height:1.15;}
.event-place{color:var(--text-muted);font-size:14px;margin-top:5px;}
.event-link{flex:none;align-self:center;white-space:nowrap;}
.agenda-empty{display:none;font-size:16px;color:var(--text-soft);font-style:italic;margin-top:12px;}
@media(max-width:640px){.event-item{flex-wrap:wrap;gap:6px 26px;}.event-date{width:100%;order:-1;}.event-link{margin-top:10px;}}

/* Fotos intercaladas na Biografia longa */
.bio-figrow{display:flex;gap:16px;margin:38px 0;max-width:880px;}
.bio-figrow figure{flex:1;min-width:0;margin:0;}
.bio-figrow img{width:100%;height:230px;object-fit:cover;border-radius:6px;border:1px solid var(--border-soft);box-shadow:0 8px 24px rgba(60,30,90,.13);}
.bio-figrow figcaption{font-family:var(--font-title);font-style:italic;font-size:12.5px;color:var(--text-soft);margin-top:8px;text-align:center;line-height:1.35;}
@media(max-width:600px){.bio-figrow{flex-direction:column;gap:20px;}.bio-figrow img{height:210px;}}
