/* ==========================================================
   VESTTIGIO - CLASSIC ROCK EXPERIENCE
   STYLE.CSS
========================================================== */

/* ==========================================================
   RESET
========================================================== */

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    background:#050505;
    color:#fff;
    overflow-x:hidden;
    line-height:1.6;
    text-rendering: optimizeLegibility;
}

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

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

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
    outline:2px solid var(--blue);
    outline-offset:4px;
    box-shadow:0 0 0 4px rgba(0,183,255,.20);
}

button,
a{
    -webkit-tap-highlight-color:transparent;
}

ul{
    list-style:none;
}

button,
input,
textarea{
    font-family:inherit;
    outline:none;
    border:none;
}

section{
    position: relative;
    padding: 70px 7%;
    scroll-margin-top: 100px;
    opacity: 1;
    transform: translateY(0);
    transition: opacity .6s ease, transform .6s ease;
}

section:hover {
    transform: translateY(-1px);
}

@media (min-width: 1200px) {
    section {
        padding: 90px 8%;
    }
}

section.section-ready {
    opacity: 1;
    transform: translateY(0);
}

.container{
    width:100%;
    max-width:1400px;
    margin:auto;
}

/* ==========================================================
   VARIÁVEIS
========================================================== */

:root{

--bg:#050505;
--bg2:#0d0d0d;
--bg3:#171717;

--white:#ffffff;

--silver:#d9d9d9;

--gray:#888;

--line:#242424;

--blue:#00b7ff;

--blue2:#007cff;

--primary-color:#00b7ff;
--font-title:'Bebas Neue', sans-serif;

--shadow:0 20px 60px rgba(0,0,0,.45);

--transition:.35s;

}

/* ==========================================================
   BODY
========================================================== */

body{

background:

radial-gradient(circle at top,#1b1b1b 0%,#050505 65%);

}

body::before{

content:"";

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

pointer-events:none;

background:

linear-gradient(

transparent,

rgba(255,255,255,.015),

transparent

);

animation:backgroundMove 18s linear infinite;

opacity:.4;

}

/* ==========================================================
   LOADER
========================================================== */

#loader{

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:#000;

display:flex;

align-items:center;

justify-content:center;

z-index:99999;

}

.loader-logo{

font-size:65px;

font-family:'Bebas Neue', Arial, sans-serif;

letter-spacing:12px;

color:#fff;

position:relative;

}

.loader-logo::after{

content:"";

position:absolute;

left:-20%;

top:0;

width:25%;

height:100%;

background:

linear-gradient(

90deg,

transparent,

rgba(255,255,255,.9),

transparent);

animation:loaderLight 2.5s infinite;

}

/* ==========================================================
   HEADER
========================================================== */

#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5%;
    z-index: 999;
    transition: background-color .3s ease, height .3s ease, box-shadow .3s ease;
    background: rgba(2, 2, 2, 0.35);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(255,255,255,.08);
}

#header.scrolled {
    height: 62px;
    background: rgba(5,5,5,.95);
    box-shadow: 0 10px 40px rgba(0,0,0,.45);
}

#header nav {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

#header nav ul {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 1.8vw, 22px);
    width: 100%;
    max-width: 1200px;
    padding: 0 8px;
}

#header nav li {
    display: flex;
    align-items: center;
    justify-content: center;
}

#header nav a {
    font-size: 13px;
    letter-spacing: 2px;
    font-weight: 700;
    text-transform: uppercase;
    position: relative;
    transition: color .25s ease, transform .25s ease;
    padding: 8px 10px;
    color: rgba(255,255,255,0.9);
}

#header nav a::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 4px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--blue), transparent);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .3s ease;
}

#header nav a:hover,
#header nav a:focus-visible {
    color: var(--blue);
    transform: translateY(-1px);
}

#header nav a:hover::after,
#header nav a:focus-visible::after {
    transform: scaleX(1);
}

.menu-mobile {
    display: none;
    font-size: 28px;
    cursor: pointer;
    color: #fff;
    background: transparent;
    padding: 0;
}


/* ==========================================================
   HERO SECTION (HOME)
========================================================== */
#home {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    /* Aqui aplicamos a imagem de fundo com uma máscara escura para dar contraste ao texto */
    background: linear-gradient(rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.85)), url('assets/hero.jpg');
    background-color: #050505;
    background-size: cover;
    background-position: center;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
    padding-top: 85px;
}

.hero {
    z-index: 2;
    max-width: 900px;
    padding: 0 20px;
}

.hero h1 {
    font-family: var(--font-title);
    font-size: 95px;
    line-height: 0.9;
    letter-spacing: 6px;
    margin-bottom: 20px;

    color: #ffffff;

    background: linear-gradient(
        180deg,
        #ffffff 0%,
        #f0f0f0 35%,
        #a8a8a8 70%,
        #5d5d5d 100%
    );

    background-clip: text;
    -webkit-background-clip: text;

    color: transparent;
    -webkit-text-fill-color: transparent;

    text-shadow:
        0 0 15px rgba(255,255,255,.15),
        0 0 35px rgba(0,191,255,.15);

    filter: drop-shadow(0 10px 25px rgba(0,0,0,.7));
}

.hero h2 {
    font-size: 18px;
    letter-spacing: 8px;
    color: #888;
    margin-bottom: 10px;
}

.hero h3 {
    font-size: 20px;
    letter-spacing: 6px;
    color: var(--primary-color);
    margin-bottom: 25px;
}

.hero p {
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 2px;
    color: #ccc;
    margin-bottom: 40px;
    text-transform: none;
}

/* ==========================================================
   SISTEMA DE LUZES DE PALCO (.lights)
========================================================== */
/* ==========================================================
   BOTÕES
========================================================== */

.buttons{

display:flex;

justify-content:center;

gap:25px;

flex-wrap:wrap;

}

.btn{

padding:16px 34px;

min-height:52px;

min-width:176px;

border:1px solid transparent;

border-radius:999px;

font-size:13px;

font-weight:700;

letter-spacing:3px;

transition:.35s;

background:linear-gradient(135deg, var(--blue), #2f7cff);

color:#fff;

box-shadow:0 12px 35px rgba(0,183,255,.24);

}

.btn:hover,
.btn:focus-visible{

transform:translateY(-4px);

box-shadow:0 18px 45px rgba(0,183,255,.42);

}

.btn.outline{

background:rgba(255,255,255,.06);

border-color:rgba(255,255,255,.16);

backdrop-filter:blur(10px);

}

.btn.outline:hover{

background:linear-gradient(135deg, var(--blue), #2f7cff);

border-color:transparent;

}

/* ==========================================================
   REFLETORES
========================================================== */

.lights{

position:absolute;

inset:0;

overflow:hidden;

pointer-events:none;

z-index:2;

}

.light{

position:absolute;

top:-250px;

width:420px;

height:150vh;

filter:blur(10px);

opacity:.18;

transform-origin:top center;

mix-blend-mode:screen;

}

.light::before{

content:"";

position:absolute;

left:50%;

transform:translateX(-50%);

width:100%;

height:100%;

clip-path:polygon(45% 0%,55% 0%,100% 100%,0% 100%);

background:

linear-gradient(

180deg,

rgba(255,255,255,.95),

rgba(0,183,255,.20),

transparent);

}

.light.one{

left:8%;

animation:lightLeft 9s ease-in-out infinite;

}

.light.two{

left:50%;

transform:translateX(-50%);

animation:lightCenter 11s ease-in-out infinite;

}

.light.three{

right:8%;

animation:lightRight 10s ease-in-out infinite;

}


/* ==========================================================
   FUMAÇA
========================================================== */

.smoke{

position:absolute;

inset:0;

pointer-events:none;

overflow:hidden;

z-index:1;

}

.smoke::before,

.smoke::after{

content:"";

position:absolute;

width:180%;

height:180%;

left:-40%;

bottom:-60%;

opacity:.18;

background:

radial-gradient(circle,
rgba(255,255,255,.20) 0%,
rgba(255,255,255,.08) 20%,
transparent 70%);

filter:blur(70px);

animation:smokeMove 35s linear infinite;

}

.smoke::after{

animation-delay:12s;

opacity:.12;

transform:scale(1.2);

}


/* ==========================================================
   SCROLL
========================================================== */

.scroll{

position:absolute;

bottom:35px;

left:50%;

transform:translateX(-50%);

z-index:10;

}

.scroll span{

display:block;

width:26px;

height:46px;

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

border-radius:30px;

position:relative;

}

.scroll span::before{

content:"";

position:absolute;

left:50%;

top:8px;

transform:translateX(-50%);

width:6px;

height:8px;

border-radius:50%;

background:white;

animation:scrollWheel 2s infinite;

}


/* ==========================================================
   TÍTULOS
========================================================== */

.section-title{

text-align:center;

margin-bottom:76px;

}

.section-title span{

display:inline-block;

font-size:14px;

letter-spacing:8px;

color:var(--blue);

margin-bottom:12px;

font-weight:700;

text-transform:uppercase;

}

.section-title h1,
.section-title h2{

font-family:var(--font-title);

font-size:clamp(34px, 4.8vw, 58px);

letter-spacing:4px;

margin-bottom:18px;

position:relative;

display:inline-block;

text-transform:uppercase;

text-shadow:0 0 20px rgba(0,183,255,.12);

}

.section-title h1::after,
.section-title h2::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-8px;
    width:100%;
    height:2px;
    background:linear-gradient(90deg, transparent, var(--blue), transparent);
}

.section-title p{

max-width:700px;

margin:auto;

color:#bcbcbc;

font-size:18px;

line-height:1.8;

}


/* ==========================================================
   SOBRE
========================================================== */

#about{
    background: #000;
    padding: 60px 7% 70px;
}

#about .container{
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: center;
    gap: 80px;
}

.about-image{
    position: relative;
    overflow: hidden;
    border-radius: 18px;
}

.about-image::before{
    display: none;
}

.about-image img{
    width: 100%;
    height: 580px;
    display: block;
    object-fit: cover;
    object-position: center center;
    border-radius: 18px;
    box-shadow: 0 25px 60px rgba(0,0,0,.6);
}

.about-text{
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-text h1{
    font-size: clamp(2.8rem, 5vw, 4.5rem);
    line-height: 1;
    margin-bottom: 35px;
}

.about-text p{
    font-size: 1.15rem;
    line-height: 1.9;
    color: #cfcfcf;
    margin-bottom: 28px;
}

.numbers{
    display: flex;
    gap: 55px;
    margin-top: 35px;
}

.numbers h3{
    font-size: 3.8rem;
}

.numbers p{
    margin: 0;
}

@media (max-width: 980px){

    #about{
        padding: 50px 7%;
    }

    #about .container{
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .about-image img{
        height: 420px;
    }

    .numbers{
        justify-content: space-between;
        gap: 20px;
    }
}

.numbers div{
    text-align: center;
}

.numbers h3{
    font-size: 3.8rem;
    font-weight: 700;
    line-height: 1;

    color: #00bfff;

    text-shadow:
        0 0 10px rgba(0,191,255,.6),
        0 0 20px rgba(0,191,255,.4),
        0 0 40px rgba(0,191,255,.25);

    margin-bottom: 10px;
}

.numbers p{
    margin: 0;

    font-size: 1rem;
    font-weight: 700;

    color: #ffffff;

    letter-spacing: 3px;
    text-transform: uppercase;

    padding-top: 8px;

    border-top: 2px solid rgba(0, 191, 255, 0.7);

    text-shadow:
        0 0 8px rgba(255,255,255,0.15);
}

/* ==========================================================
   INTEGRANTES
========================================================== */

#members{

background:#050505;

}

.members-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:35px;
    max-width:1200px;
    margin:0 auto;
}

.member{

background:rgba(17,17,17,.82);

border:1px solid rgba(255,255,255,.08);

border-radius:12px;

overflow:hidden;

transition:.45s;

box-shadow:0 15px 40px rgba(0,0,0,.35);

backdrop-filter:blur(10px);

-webkit-backdrop-filter:blur(10px);

}

.member:hover{

transform:translateY(-12px);

border-color:var(--blue);

box-shadow:0 25px 60px rgba(0,183,255,.20);

}

.member img{

width:100%;

height:420px;

object-fit:cover;

transition:.6s;

}

.member:hover img{

transform:scale(1.08);

}

.member h3{

font-family:'Bebas Neue';

font-size:34px;

letter-spacing:2px;

padding:25px 25px 5px;

}

.member p{

padding:0 25px 20px;

color:#bdbdbd;

letter-spacing:2px;

}

.social{

display:flex;

gap:18px;

padding:0 25px 30px;

}

.social a{

width:42px;

height:42px;

display:flex;

align-items:center;

justify-content:center;

border-radius:50%;

background:#1c1c1c;

transition:.35s;

}

.social a:hover{

background:var(--blue);

transform:translateY(-5px);

}


/* ==========================================================
   SHOWS
========================================================== */

#shows{

background:#0d0d0d;

}

.timeline{

display:flex;

flex-direction:column;

gap:28px;

max-width:1100px;

margin:auto;

}

.show{

display:grid;

grid-template-columns:150px 1fr 180px;

align-items:center;

background:#151515;

border-left:5px solid var(--blue);

padding:28px;

border-radius:8px;

transition:.35s;

}

.show:hover{

transform:translateX(10px);

background:#1a1a1a;

}

.date{

font-family:'Bebas Neue';

font-size:46px;

color:var(--blue);

letter-spacing:2px;

}

.info h3{

font-size:28px;

margin-bottom:6px;

}

.info p{

color:#bfbfbf;

}

.ticket{

justify-self:end;

padding:14px 26px;

border:2px solid var(--blue);

border-radius:8px;

transition:all .3s ease;

font-weight:700;

letter-spacing:2px;

}

.ticket:hover,
.ticket:focus-visible{

background:var(--blue);

transform:translateY(-2px);

box-shadow:0 8px 18px rgba(0,183,255,.18);

}


/* ==========================================================
   GALERIA
========================================================== */

#gallery{

background:#050505;

}

.gallery-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

grid-auto-rows:250px;

gap:18px;

}

.gallery-item{

overflow:hidden;

border-radius:8px;

position:relative;

cursor:pointer;

}

.gallery-item img{

width:100%;

height:100%;

object-fit:cover;

transition:.7s;

}

.gallery-item:hover img{

transform:scale(1.12);

}

.gallery-item::after{

content:"";

position:absolute;

inset:0;

background:linear-gradient(transparent,
rgba(0,0,0,.55));

opacity:0;

transition:.4s;

}

.gallery-item:hover::after{

opacity:1;

}

.large{

grid-column:span 2;

grid-row:span 2;

}

.wide{

grid-column:span 2;

}



/* ==========================================================
   VIDEOS
========================================================== */

#videos{

background:#080808;

}

.video-grid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:45px;

}

.video-card{

position:relative;

overflow:hidden;

border-radius:12px;

border:1px solid #222;

box-shadow:0 20px 60px rgba(0,0,0,.45);

transition:.45s;

}

.video-card:hover{

transform:translateY(-10px);

border-color:var(--blue);

}

.video-card iframe{

width:100%;

height:420px;

display:block;

}


/* ==========================================================
   SETLIST
========================================================== */

#setlist{

background:#090909;

}

.songs{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:18px;

}

.songs div{

padding:18px 25px;

background:#111;

border-left:4px solid var(--blue);

font-size:17px;

transition:.35s;

}

.songs div:hover{

transform:translateX(10px);

background:#181818;

}


/* ==========================================================
   PRESS KIT
========================================================== */

#presskit{

background:#0c0c0c;

}

.press-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:30px;

}

.press-card{

background:#111;

padding:50px 30px;

text-align:center;

border:1px solid #222;

transition:.4s;

}

.press-card:hover{

transform:translateY(-12px);

border-color:var(--blue);

}

.press-card i{

font-size:55px;

color:var(--blue);

margin-bottom:25px;

}

.press-card h3{

font-family:'Bebas Neue';

font-size:34px;

margin-bottom:15px;

}

.press-card p{

margin-bottom:30px;

color:#c8c8c8;

line-height:1.8;

}

.press-card a{

display:inline-block;

padding:14px 28px;

border:2px solid var(--blue);

transition:.35s;

}

.press-card a:hover,
.press-card a:focus-visible{

background:var(--blue);

transform:translateY(-2px);

}

.download-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.82);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.download-modal-backdrop.active {
    display: flex;
}

.download-modal {
    width: min(1080px, 100%);
    max-height: min(85vh, 900px);
    overflow: auto;
    background: #090909;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 24px;
    padding: 28px;
    box-shadow: 0 30px 80px rgba(0,0,0,.55);
}

.download-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 24px;
}

.download-modal-header h2 {
    font-family: var(--font-title);
    font-size: clamp(26px, 3vw, 34px);
    margin: 0 0 8px;
}

.download-modal-header p {
    color: #c7c7c7;
    line-height: 1.8;
    margin: 0;
    max-width: 75ch;
}

.download-modal-close {
    background: transparent;
    border: 1px solid rgba(255,255,255,.15);
    color: #fff;
    font-size: 28px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    cursor: pointer;
}

.download-modal-list {
    display: grid;
    gap: 20px;
}

.download-modal-item {
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    padding: 20px;
    display: grid;
    gap: 14px;
}

.download-modal-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}

.download-modal-item-title {
    font-size: 18px;
    letter-spacing: 1px;
    margin: 0;
}

.download-modal-item-format {
    color: #7aaef6;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
}

.download-modal-item-description {
    color: #c5c5c5;
    line-height: 1.7;
    margin: 0;
}

.download-modal-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.download-modal-item-actions button,
.download-modal-item-actions a {
    display: inline-flex;
    padding: 12px 20px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.08);
    color: #fff;
    font-weight: 700;
    letter-spacing: 1px;
    cursor: pointer;
    text-decoration: none;
    transition: transform .25s ease, background .25s ease, border-color .25s ease;
}

.download-modal-item-actions a {
    background: var(--blue);
    border-color: transparent;
}

.download-modal-item-actions button:hover,
.download-modal-item-actions a:hover,
.download-modal-item-actions button:focus-visible,
.download-modal-item-actions a:focus-visible {
    transform: translateY(-2px);
}

.download-modal-preview {
    margin-top: 28px;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 24px;
    display: grid;
    gap: 18px;
}

.download-modal-preview h3 {
    font-family: var(--font-title);
    font-size: 24px;
    margin: 0;
}

.download-modal-preview-content {
    min-height: 240px;
    background: #0b0b0b;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.download-modal-preview-content img,
.download-modal-preview-content iframe {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.download-modal-preview-notice {
    color: #c8c8c8;
    line-height: 1.7;
    padding: 24px;
    text-align: center;
}

@media (max-width: 880px) {
    .download-modal {
        padding: 20px;
    }
}

@media (max-width: 640px) {
    .download-modal {
        max-height: 100vh;
        border-radius: 16px;
        width: calc(100% - 32px);
    }
}


/* ========================================================== */
#contact {
    background: #050505;
    padding: 110px 7%;
}

.contact-info {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.contact-info span {
    color: var(--blue);
    letter-spacing: 8px;
    font-size: 15px;
    font-weight: 700;
}

.contact-info h2 {
    font-family: 'Bebas Neue';
    font-size: 70px;
    margin: 20px 0;
    line-height: 1.1;
}

.contact-info p {
    line-height: 2;
    margin-bottom: 45px;
    color: #d0d0d0;
    font-size: 18px;
}

.contact-methods {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    margin-top: 20px;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 18px;
    background: #111;
    padding: 20px 35px;
    border-radius: 50px;
    border: 1px solid #222;
    transition: var(--transition);
}

.contact-item:hover {
    border-color: var(--blue);
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 183, 255, 0.15);
}

.contact-item i {
    font-size: 28px;
    color: var(--blue);
}

.contact-item div {
    text-align: left;
}

.contact-item span {
    display: block;
    font-size: 12px;
    color: #888;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: normal;
}

.contact-item strong {
    font-size: 20px;
    color: #fff;
}

.contact-item a[href*="wa.me"] {
    color: #25D366;
    text-decoration: none;
    font-weight: 700;
}

/* ==========================================================
   FOOTER
========================================================== */

footer{
    background:linear-gradient(180deg, #060606 0%, #030303 100%);
    padding:80px 7% 30px;
    border-top:1px solid rgba(255,255,255,.08);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}

.footer-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:40px;
    margin-bottom:40px;
}

footer h3{
    font-family:'Bebas Neue';
    font-size:42px;
    margin-bottom:10px;
}

footer h4{
    margin-bottom:20px;
    color:var(--blue);
    letter-spacing:2px;
}

footer ul li{
    margin-bottom:10px;
    color:#bbb;
    transition:.3s;
}

footer ul li:hover{
    color:var(--blue);
}

.copyright{
    text-align:center;
    padding-top:25px;
    border-top:1px solid #1a1a1a;
    color:#777;
}


/* ==========================================================
   BOTÃO TOPO
========================================================== */

#backTop{
    position:fixed;
    right:25px;
    bottom:25px;
    width:52px;
    height:52px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--blue), #0ba6dc);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    opacity:0;
    pointer-events:none;
    transition:all .35s ease;
    z-index:999;
    box-shadow:0 10px 24px rgba(0,183,255,.25);
    border:1px solid rgba(255,255,255,.2);
}

#backTop:hover,
#backTop:focus-visible{
    transform:translateY(-3px) scale(1.03);
    box-shadow:0 14px 30px rgba(0,183,255,.32);
}

#backTop.active{
    opacity:1;
    pointer-events:auto;
}

/* ==========================================================
   RESPONSIVO - CORRIGIDO
========================================================== */

/* ==========================================================
   TELAS GRANDES (1200px - 1400px)
========================================================== */

.hero h1{
    font-family:'Bebas Neue';
    font-size:150px;
    letter-spacing:8px;
    line-height:.9;
    text-transform:uppercase;
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #d6d6d6,
            #777,
            #fff
        );
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    text-shadow:0 0 30px rgba(255,255,255,.15);
    animation:titleGlow 4s infinite;
}

/* Responsivo */
/* Responsivo */
@media (max-width:1200px){
    .hero h1{
        font-size:110px;
    }

    .cta h2{
        font-size:60px;
    }

    .contact-info h2{
        font-size:56px;
    }
}


@media (max-width:480px){
    .hero h1{
        font-size:44px;
        letter-spacing:2px;
    }
}

@media (max-width:360px){
    .hero h1{
        font-size:36px;
    }
}

/* ==========================================================
   TABLETS E TELAS MÉDIAS (992px)
========================================================== */

@media (max-width:992px){

    /* ---- MENU MOBILE ---- */
    .menu-mobile{
        display:block !important;
        color:#fff;
        font-size:28px;
        cursor:pointer;
        z-index:1000;
        transition:.3s;
    }

    .menu-mobile:hover{
        color:var(--blue);
    }

    /* Esconder o menu em telas menores */
    nav ul{
        display:none !important;
        position:fixed;
        top:0;
        left:0;
        width:100%;
        height:100vh;
        background:rgba(5,5,5,.97);
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:30px;
        padding:40px;
        z-index:999;
        backdrop-filter:blur(20px);
        animation:menuFade .4s ease;
    }

    nav ul.active{
        display:flex !important;
    }

    nav ul li a{
        font-size:22px;
        letter-spacing:4px;
        font-weight:600;
        color:#fff;
        transition:.3s;
    }

    nav ul li a:hover{
        color:var(--blue);
    }

    nav ul li a::after{
        display:none;
    }

 
    /* ---- CONTEÚDO ---- */
    #about .container{
        grid-template-columns:1fr;
        gap:60px;
    }

    .about-image::after{
        display:none;
    }

    .about-text h1{
        font-size:52px;
    }

    .members-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .member img{
        height:320px;
    }

    .video-grid{
        grid-template-columns:1fr;
    }

    .video-card iframe{
        height:340px;
    }

        .contact-info h2{
        font-size:50px;
    }

       .songs{
        grid-template-columns:repeat(2,1fr);
    }

    .press-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .footer-grid{
        grid-template-columns:repeat(2,1fr);
        gap:50px;
    }

   
      .cta{
        padding:100px 7%;
    }

    .section-title h2{
        font-size:56px;
    }

      .counter h2{
        font-size:70px;
    }

    .show{
        grid-template-columns:1fr 1fr 1fr;
        padding:25px;
    }

    .date{
        font-size:36px;
    }

    .info h3{
        font-size:22px;
    }

    .ticket{
        padding:12px 20px;
        font-size:13px;
    }

    /* Ajuste do header em mobile */
    header{
        padding:0 5%;
        height:75px;
    }

  
    header.scrolled{
        height:65px;
    }

}

/* ==========================================================
   TABLETS PEQUENOS E CELULARES GRANDES (768px)
========================================================== */

@media (max-width:768px){

    section{
        padding:80px 5%;
    }

    /* ---- HERO ---- */
    .hero h1{
        font-size:72px;
        letter-spacing:4px;
    }

    .hero h2{
        font-size:20px;
        letter-spacing:6px;
    }

    .hero h3{
        font-size:22px;
        letter-spacing:4px;
    }

    .hero p{
        font-size:16px;
        margin:25px auto;
        max-width:100%;
    }

    .hero .btn{
        padding:14px 30px;
        font-size:13px;
    }

    .buttons{
        gap:15px;
    }

    /* ---- TÍTULOS ---- */
    .section-title{
        margin-bottom:50px;
    }

    .section-title span{
        font-size:13px;
        letter-spacing:5px;
    }

    .section-title h2{
        font-size:44px;
        letter-spacing:3px;
        text-shadow:0 2px 12px rgba(0,0,0,.4);
    }

    .section-title p{
        font-size:16px;
    }

    /* ---- SOBRE ---- */
    .about-text h1{
        font-size:44px;
    }

    .about-text p{
        font-size:16px;
    }
    
    .about-highlights{
        display:none;
    }

    .numbers{
        gap:30px;
    }

    .numbers h3{
        font-size:48px;
    }

    .numbers p{
        font-size:13px;
    }

    /* ---- INTEGRANTES ---- */
    .members-grid{
        grid-template-columns:1fr;
        max-width:450px;
        margin:0 auto;
    }

    .member img{
        height:300px;
        object-fit:cover;
        object-position:center top;
    }
    
    .member:nth-child(2) img{
        object-position:center 20%;
    }

    .member h3{
        font-size:28px;
        padding:20px 20px 5px;
    }

    /* ---- SHOWS ---- */
    .show{
        grid-template-columns:1fr;
        text-align:center;
        gap:15px;
        padding:20px;
    }

    .date{
        font-size:32px;
    }

    .info h3{
        font-size:20px;
    }

    .ticket{
        justify-self:center;
        padding:12px 28px;
        font-size:13px;
    }

    /* ---- GALERIA ---- */
.gallery-grid{
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(2, 250px);
    gap: 20px;
}

.gallery-item{
    overflow: hidden;
    border-radius: 16px;
}

.gallery-item.large{
    grid-row: 1 / 3;
}

.gallery-item img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}

.gallery-item:hover img{
    transform: scale(1.05);
}

   /* ---- VÍDEOS ---- */
    .video-card{
        display:block;
        min-height:280px;

        /* Moldura menor apenas no celular */
        border-radius:8px;
        border:1px solid rgba(255,255,255,.05);
        box-shadow:0 4px 12px rgba(0,0,0,.12);
        overflow:hidden;
    }

    .video-card iframe{
        width:100%;
        height:280px;
        display:block;
    }

    /* ---- SETLIST ---- */
    .songs{
        grid-template-columns:1fr;
        gap:12px;
    }

    .songs div{
        padding:14px 20px;
        font-size:15px;
    }

    /* ---- DEPOIMENTOS ---- */
    .reviews article{
        padding:30px;
    }

    .reviews p{
        font-size:16px;
    }

    .stars{
        font-size:20px;
    }

    /* ---- CONTATO ---- */
    .contact-info h2{
        font-size:42px;
    }

    /* ---- PRESS KIT ---- */
    .press-grid{
        grid-template-columns:1fr;
        max-width:450px;
        margin:0 auto;
    }

    .press-card{
        padding:35px 20px;
    }

    .press-card i{
        font-size:42px;
    }

    .press-card h3{
        font-size:28px;
    }

    /* ---- PARALLAX ---- */
    .parallax{
        height:50vh;
        background-attachment:scroll;
    }

    .parallax h2{
        font-size:42px;
    }

    .parallax p{
        font-size:18px;
    }

    /* ---- CTA ---- */
    .cta{
        padding:80px 5%;
    }

    .cta h2{
        font-size:38px;
    }

    .cta p{
        font-size:17px;
    }

    /* ---- CONTADORES ---- */
    .numbers-section{
        padding:70px 5%;
    }

    .numbers-section .container{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }

    .counter{
        padding:30px 15px;
    }

    .counter h2{
        font-size:56px;
    }

    .counter span{
        font-size:12px;
        letter-spacing:2px;
    }

    
    /* ---- FOOTER ---- */
    .footer-grid{
        grid-template-columns:1fr 1fr;
        gap:40px;
        text-align:center;
    }

    footer h3{
        font-size:34px;
    }

    footer h4{
        font-size:16px;
    }

    /* ---- INSTAGRAM ---- */
    .instagram-grid{
        grid-template-columns:repeat(3,1fr);
        gap:6px;
    }

    .instagram-grid img{
        height:120px;
    }

    /* ---- BOTÃO TOPO ---- */
    #backTop{
        right:15px;
        bottom:15px;
        width:44px;
        height:44px;
        font-size:18px;
    }

    /* ---- SCROLL ---- */
    .scroll{
        display:flex;
        opacity:0.8;
        animation:scrollPulse 2s infinite;
    }

}

/* ==========================================================
   CELULARES PEQUENOS (480px)
========================================================== */

@media (max-width:480px){

    section{
        padding:60px 4%;
    }

}
 
/* ==========================================================
   TELAS MUITO PEQUENAS (360px)
========================================================== */

@media (max-width:360px){

    .hero h1{
        font-size:36px;
    }

    .hero h2{
        font-size:14px;
        letter-spacing:3px;
    }

    .hero h3{
        font-size:16px;
        letter-spacing:2px;
    }

    .section-title h2{
        font-size:28px;
    }

    .about-text h1{
        font-size:28px;
    }

    .contact-info h2{
        font-size:28px;
    }

    .btn{
        padding:10px 18px;
        font-size:11px;
        letter-spacing:2px;
    }

    .counter h2{
        font-size:40px;
    }

    .instagram-grid img{
        height:80px;
    }

}

/* ==========================================================
   ORIENTAÇÃO PAISAGEM EM CELULARES
========================================================== */

@media (max-height:500px) and (orientation:landscape){

    #home{
        height:auto;
        min-height:100vh;
        padding:100px 5%;
    }

    .hero h1{
        font-size:60px;
    }

    .hero h2{
        font-size:18px;
    }

    .hero h3{
        font-size:20px;
    }

    .hero p{
        font-size:15px;
        margin:15px auto;
    }

    .buttons{
        gap:12px;
    }

    .hero .btn{
        padding:10px 20px;
        font-size:12px;
    }

    .scroll{
        display:none;
    }

    .light{
        opacity:.08;
    }

}

  /* Botão voltar ao topo mais leve */
  #backTop {
    box-shadow: none !important;
    transform: none !important;
  }

/* ==========================================================
   ANIMAÇÕES - COMPLETO
========================================================== */

@keyframes titleGlow{
    0%,100%{
        text-shadow:0 0 25px rgba(255,255,255,.1);
    }
    50%{
        text-shadow:0 0 45px rgba(0,183,255,.25);
    }
}

@keyframes loaderLight{
    0%{left:-30%;}
    100%{left:130%;}
}

@keyframes smokeMove{
    0%{transform:translateX(0) translateY(0);}
    50%{transform:translateX(60px) translateY(-40px);}
    100%{transform:translateX(0) translateY(0);}
}

@keyframes scrollWheel{
    0%{opacity:1;transform:translate(-50%,0);}
    100%{opacity:0;transform:translate(-50%,18px);}
}

@keyframes scrollPulse{
    0%, 100%{opacity:0.6;}
    50%{opacity:1;}
}


@keyframes rotateLight{
    from{transform:rotate(0deg);}
    to{transform:rotate(360deg);}
}

/* ANIMAÇÃO QUE ESTAVA FALTANDO */
@keyframes backgroundMove{
    0%{
        transform:translateY(0);
        opacity:.4;
    }
    50%{
        opacity:.6;
    }
    100%{
        transform:translateY(-100%);
        opacity:.4;
    }
}

/* ANIMAÇÃO DO MENU MOBILE */
@keyframes menuFade{
    0%{
        opacity:0;
        transform:scale(.95);
    }
    100%{
        opacity:1;
        transform:scale(1);
    }
}

/* ==========================================================
   SCROLL REVEAL
========================================================== */

.revealed{

    opacity:1 !important;

    transform:translate3d(0,0,0) !important;

}

/* ==========================================================
   PERFORMANCE
========================================================== */

.page-hidden *{

    animation-play-state:paused !important;

}

.reduce-motion *{

    animation:none !important;

    transition:none !important;

    scroll-behavior:auto !important;

}

/* ==========================================================
   RESPONSIVO MOBILE - ANDROID
========================================================== */

@media (max-width: 768px) {
    html {
        scroll-behavior: smooth;
    }

    body {
        overflow-x: hidden;
        -webkit-text-size-adjust: 100%;
        -webkit-tap-highlight-color: transparent;
    }

    #header {
        height: 70px;
        padding: 0 4%;
    }

    #header.scrolled {
        height: 64px;
    }

    #header nav {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #header nav ul {
        position: fixed;
        inset: 0;
        width: 100%;
        height: 100vh;
        display: none;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 24px;
        padding: 24px;
        background: linear-gradient(135deg, rgba(5, 5, 5, 0.94), rgba(12, 18, 28, 0.88));
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
        z-index: 1000;
    }

    #header nav ul.active {
        display: flex;
    }

    #header nav ul li a {
        font-size: 20px;
        letter-spacing: 3px;
        color: #f5f5f5;
        text-shadow: 0 1px 2px rgba(0,0,0,0.4);
        padding: 4px 0;
        position: relative;
    }

    #header nav ul li a::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: -4px;
        width: 0;
        height: 1px;
        background: var(--blue);
        transition: width .3s ease;
    }

    #header nav ul li a:hover::after,
    #header nav ul li a:focus-visible::after {
        width: 100%;
    }

    .menu-mobile {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        z-index: 1001;
        font-size: 18px;
        padding: 10px 16px;
        border: 1px solid rgba(255,255,255,.35);
        border-radius: 999px;
        background: linear-gradient(135deg, rgba(0,183,255,.28), rgba(255,255,255,.10));
        color: #fff;
        font-weight: 700;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        box-shadow: 0 6px 18px rgba(0,0,0,.25);
        min-height: 44px;
    }

    .menu-mobile::before {
        content: "MENU";
        font-size: 11px;
        letter-spacing: 2px;
        line-height: 1;
    }

    section {
        padding: 70px 5%;
    }

    .container {
        max-width: 100%;
    }

    .hero {
        min-height: 100vh;
        padding: 90px 6% 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        margin: 0 auto;
        width: 100%;
        max-width: 100%;
        position: relative;
        z-index: 2;
    }

    #home::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,.58) 100%);
        z-index: 1;
        pointer-events: none;
    }

    #home::after {
        content: "";
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at top center, rgba(0,183,255,.12), transparent 55%);
        z-index: 1;
        pointer-events: none;
    }

    .hero h1 {
        font-size: 54px;
        letter-spacing: 3px;
        line-height: 0.95;
        margin: 0 auto 6px;
        text-align: center;
        width: 100%;
        text-shadow: 0 2px 26px rgba(0,0,0,0.9);
        color: #ffffff;
    }

    .hero h2 {
        font-size: 22px;
        letter-spacing: 4px;
        margin: 0 auto 4px;
        text-align: center;
        text-shadow: 0 2px 18px rgba(0,0,0,0.7);
        color: #ffffff;
    }

    .hero h3 {
        font-size: 20px;
        letter-spacing: 2px;
        margin: 0 auto 4px;
        text-align: center;
        text-shadow: 0 2px 16px rgba(0,0,0,0.6);
        color: #f5f5f5;
    }

    .hero p {
        font-size: 16px;
        max-width: 100%;
        margin: 14px auto 24px;
        text-align: center;
        color: #f5f5f5;
        line-height: 1.6;
    }

    .buttons {
        flex-direction: column;
        align-items: center;
        gap: 14px;
    }

    .btn {
        width: 100%;
        max-width: 280px;
        padding: 14px 24px;
        text-align: center;
        border: 1px solid rgba(0,183,255,0.35);
        border-radius: 8px;
        transition: all 0.3s ease;
    }

    .btn:active,
    .ticket:active,
    .press-card a:active,
    .social a:active {
        transform: scale(0.97);
    }

    .btn:hover,
    .ticket:hover,
    .press-card a:hover,
    .social a:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 18px rgba(0,183,255,0.16);
    }

    .scroll {
        display: flex;
        opacity: 0.8;
        animation: scrollPulse 2s infinite;
    }

    .about-image {
        display: none;
    }

    .about-text {
        width: 100%;
    }

    .about-text h1 {
        font-size: 32px;
        color: #f8f8f8;
    }

    .about-text p {
        font-size: 16px;
        line-height: 1.6;
        color: #e9e9e9;
    }

    .about-highlights {
        display: none;
        flex-wrap: wrap;
        gap: 10px;
        margin: 18px 0 20px;
    }

    .about-highlights span {
        display: inline-block;
        padding: 8px 12px;
        border-radius: 999px;
        background: rgba(0,183,255,.14);
        border: 1px solid rgba(0,183,255,.24);
        color: #f2f2f2;
        font-size: 13px;
        letter-spacing: 0.8px;
    }

    .numbers {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .numbers div {
        padding: 16px;
    }

    .members-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .member img {
        height: auto;
        max-height: 320px;
        object-fit: cover;
        object-position: center top;
    }
    
    .member:nth-child(2) img {
        object-position: center 20%;
    }

    .member h3 {
        font-size: 28px;
        padding: 20px 20px 6px;
    }

    .member p {
        padding: 0 20px 24px;
    }

    .timeline {
        gap: 18px;
    }

    .show {
        grid-template-columns: 1fr;
        padding: 20px;
        text-align: center;
        gap: 12px;
    }

    .date {
        font-size: 30px;
    }

    .info h3 {
        font-size: 22px;
    }

    .info p,
    .press-card p,
    .contact-info p,
    .reviews p,
    .section-title p {
        line-height: 1.6;
        color: #e8e8e8;
    }

    .ticket {
        justify-self: center;
        width: 100%;
        max-width: 220px;
        text-align: center;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 220px;
        gap: 16px;
    }

    .gallery-item,
    .gallery-item.large,
    .gallery-item.wide {
        grid-column: auto;
        grid-row: auto;
    }

    .video-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .video-card {
        position: relative;
        overflow: hidden;
        border-radius: 14px;
        background: linear-gradient(135deg, #0f0f0f, #1b1b1b);
        border: 1px solid rgba(255,255,255,.08);
        transition: transform .3s ease, box-shadow .3s ease;
        box-shadow: 0 8px 22px rgba(0,0,0,.18);
    }

    .video-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 12px 28px rgba(0,0,0,.25);
    }

    .video-thumb {
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
        min-height: 220px;
        padding: 20px;
        background-size: cover;
        background-position: center;
    }

    .video-thumb-one {
        background: linear-gradient(135deg, rgba(0,183,255,.38), rgba(0,0,0,.85));
    }

    .video-thumb-two {
        background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(0,183,255,.26), rgba(0,0,0,.9));
    }

    .video-card::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.16) 100%);
        pointer-events: none;
    }

    .play-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background: rgba(255,255,255,.95);
        color: #050505;
        margin-right: 12px;
        box-shadow: 0 6px 16px rgba(0,0,0,.18);
    }

    .video-label {
        color: #f7f7f7;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 1.2px;
        text-transform: uppercase;
    }

    .video-card iframe {
        display: block;
        height: 280px;
    }

    .songs {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .songs div {
        padding: 14px 18px;
        font-size: 15px;
    }

    .reviews {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .reviews article {
        padding: 28px;
    }

    .press-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .press-card {
        padding: 32px 20px;
        transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
        border-radius: 14px;
        background: linear-gradient(135deg, #121212, #0c0c0c);
        border: 1px solid rgba(255,255,255,.08);
    }

    .press-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 10px 24px rgba(0,0,0,.2);
        border-color: rgba(0,183,255,.4);
    }

    .press-card i {
        font-size: 48px;
        margin-bottom: 20px;
    }

    .contact-info h2 {
        font-size: 34px;
        line-height: 1.1;
        color: #f8f8f8;
    }

    .contact-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .newsletter form {
        flex-direction: column;
    }

    .newsletter input,
    .newsletter button {
        width: 100%;
        max-width: 100%;
    }

    footer {
        text-align: center;
        padding: 30px 5%;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    #backTop {
        right: 14px;
        bottom: 14px;
        width: 46px;
        height: 46px;
        font-size: 18px;
        transition: all .35s ease;
    }
}

/* ==========================================================
   FINAL
========================================================== */


/* Ajustes de acessibilidade e robustez */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

#loader.is-hidden {
  visibility: hidden;
}

body.menu-open {
  overflow: hidden;
}

/* ==========================================================
   REFINAMENTO MOBILE - ETAPA 1
   Mantém intacto o layout de desktop.
========================================================== */
@media (max-width: 768px) {
    #home {
        height: auto;
        min-height: 100vh;
        min-height: 100svh;
        padding-top: max(76px, env(safe-area-inset-top));
        padding-bottom: max(48px, env(safe-area-inset-bottom));
    }

    .hero {
        min-height: calc(100svh - 76px);
        padding: 28px 5% 24px;
    }

    #about .container {
        gap: 26px;
    }

    .about-image {
        display: block;
        width: 100%;
        max-width: 560px;
        margin: 0 auto;
        overflow: hidden;
        border-radius: 12px;
        border: 1px solid rgba(255,255,255,.10);
        box-shadow: 0 14px 34px rgba(0,0,0,.35);
    }

    .about-image img {
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
        object-position: center;
    }

    .numbers {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-top: 24px;
    }

    .numbers div {
        min-width: 0;
        padding: 14px 6px;
        text-align: center;
        border: 1px solid rgba(255,255,255,.08);
        border-radius: 10px;
        background: rgba(255,255,255,.035);
    }

    .numbers h3 {
        font-size: clamp(20px, 6vw, 28px);
        line-height: 1.1;
    }

    .numbers p {
        margin-top: 5px;
        font-size: 11px;
        line-height: 1.3;
    }

    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: auto;
        gap: 10px;
    }

    .gallery-item,
    .gallery-item.large,
    .gallery-item.wide {
        aspect-ratio: 4 / 3;
        min-height: 0;
        grid-column: auto;
        grid-row: auto;
    }

    .gallery-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .video-card iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
    }

    #header nav ul {
        height: 100vh;
        height: 100dvh;
        padding-top: max(28px, env(safe-area-inset-top));
        padding-bottom: max(28px, env(safe-area-inset-bottom));
        overflow-y: auto;
    }

    #header nav ul li a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .menu-mobile {
        min-width: 104px;
        min-height: 46px;
        cursor: pointer;
    }

    .show,
    .press-card,
    .contact-item {
        -webkit-tap-highlight-color: transparent;
    }

    #contact {
        padding-top: 76px;
        padding-bottom: 76px;
    }

    .contact-info span {
        letter-spacing: 4px;
        font-size: 12px;
    }

    .contact-info h2 {
        font-size: clamp(32px, 8vw, 44px);
    }

    .contact-item a,
    .contact-item strong {
        overflow-wrap: anywhere;
    }
}

@media (min-width: 520px) and (max-width: 768px) {
    .members-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .member:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        width: min(100%, 360px);
        justify-self: center;
    }

    .member img {
        width: 100%;
        height: 260px;
        object-fit: cover;
    }

    .member h3 {
        font-size: 22px;
        padding: 16px 14px 4px;
    }

    .member p {
        padding: 0 14px 18px;
    }

    .show {
        grid-template-columns: 105px minmax(0, 1fr);
        align-items: center;
        text-align: left;
    }

    .buttons {
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
    }

    .buttons .btn {
        width: auto;
        min-width: 150px;
    }
}

@media (max-width: 380px) {
    section {
        padding-left: 4%;
        padding-right: 4%;
    }

    .hero h1 {
        font-size: clamp(40px, 13vw, 50px);
        letter-spacing: 2px;
    }

    .hero h2 {
        font-size: 17px;
        letter-spacing: 3px;
    }

    .hero h3 {
        font-size: 15px;
        letter-spacing: 1.5px;
    }

    .numbers {
        gap: 5px;
    }

    .numbers div {
        padding: 12px 3px;
    }

    .numbers p {
        font-size: 10px;
    }

    .gallery-grid {
        gap: 7px;
    }
}



/* ==========================================================
   PREVIA ETAPA 2 — GALERIA, VIDEOS, AGENDA E CONTATO
   Mantém a paleta e a identidade visual existentes.
========================================================== */
.gallery-item { isolation: isolate; }
.gallery-item::after { z-index: 1; }
.gallery-item img { display:block; }
.gallery-zoom {
  position:absolute; z-index:2; right:16px; bottom:14px;
  width:38px; height:38px; display:grid; place-items:center;
  color:#fff; background:rgba(0,0,0,.62); border:1px solid rgba(255,255,255,.35);
  border-radius:50%; opacity:0; transform:translateY(6px);
  transition:opacity .28s ease, transform .28s ease;
}
.gallery-item:hover .gallery-zoom,
.gallery-item:focus-visible .gallery-zoom { opacity:1; transform:translateY(0); }
.gallery-item:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }

/* Visualização ampliada das fotos */
.gallery-lightbox {
  position:fixed; inset:0; z-index:10050; display:grid; place-items:center;
  padding:clamp(16px,4vw,48px); background:rgba(0,0,0,.94);
  opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
}
.gallery-lightbox.is-open { opacity:1; visibility:visible; }
.gallery-lightbox img { max-width:min(1100px,94vw); max-height:84vh; object-fit:contain; border-radius:8px; box-shadow:0 20px 70px #000; }
.gallery-lightbox-close {
  position:absolute; top:18px; right:22px; width:46px; height:46px;
  border:1px solid #555; border-radius:50%; background:#151515; color:#fff;
  font-size:28px; cursor:pointer;
}
.gallery-lightbox-caption { position:absolute; bottom:18px; left:20px; right:20px; text-align:center; color:#ddd; font-size:14px; }

/* Vídeos: miniatura 16:9; o player só é carregado após o clique. */
.video-grid { align-items:start; }
.video-card { background:#101010; }
.video-card:hover { transform:translateY(-5px); }
.video-preview { display:block; position:relative; width:100%; aspect-ratio:16/9; padding:0; border:0; background:#050505; cursor:pointer; overflow:hidden; }
.video-preview img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease, opacity .35s ease; }
.video-card:hover .video-preview img { transform:scale(1.035); opacity:.82; }
.video-play { position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:28px; }
.video-play i { width:68px; height:68px; display:grid; place-items:center; padding-left:5px; border-radius:50%; background:rgba(0,0,0,.72); border:2px solid rgba(255,255,255,.85); box-shadow:0 6px 28px rgba(0,0,0,.4); transition:background .25s ease, transform .25s ease; }
.video-preview:hover .video-play i { background:var(--blue); transform:scale(1.08); }
.video-card iframe { display:block; width:100%; aspect-ratio:16/9; height:auto; border:0; }
.video-caption { padding:13px 16px 15px; color:#c7c7c7; font-size:13px; letter-spacing:.3px; }

/* Agenda: leitura rápida de data e local. Conteúdo original preservado. */
.timeline { gap:16px; }
.show { grid-template-columns:112px minmax(0,1fr); gap:18px; border-left-width:4px; padding:22px 26px; }
.date { display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:.9; }
.date span { font-family:'Bebas Neue'; font-size:43px; }
.date small { margin-top:7px; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700; letter-spacing:2px; }
.info p { display:flex; align-items:center; gap:8px; }
.info p i { color:var(--blue); font-size:13px; }

/* Contratação: CTA evidente sem alterar os dados de contato cadastrados. */
.contact-cta {
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:54px; margin:0 auto 28px; padding:14px 26px;
  color:#fff; background:#128c50; border:1px solid #20a765; border-radius:6px;
  font-weight:700; letter-spacing:1px; text-decoration:none;
  transition:transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.contact-cta i { font-size:22px; }
.contact-cta:hover, .contact-cta:focus-visible { background:#16a05c; transform:translateY(-3px); box-shadow:0 10px 28px rgba(18,140,80,.25); }
.contact-cta:focus-visible { outline:2px solid #fff; outline-offset:3px; }

/* Movimento mais discreto, respeitando a preferência do visitante. */
.gallery-item, .show, .contact-item, .video-card { transition-duration:.28s; }
@media (max-width:768px) {
  .gallery-grid { gap:9px; }
  .gallery-zoom { width:32px; height:32px; right:9px; bottom:9px; opacity:1; transform:none; }
  .video-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .video-caption { padding:11px 12px 13px; }
  .show { grid-template-columns:76px minmax(0,1fr); gap:12px; padding:17px 14px; }
  .date span { font-size:36px; }
  .date small { font-size:10px; letter-spacing:1px; }
  .info h3 { font-size:clamp(18px,4.8vw,23px); line-height:1.2; }
  .info p { font-size:13px; line-height:1.45; }
  .contact-cta { width:100%; max-width:420px; padding:14px 12px; font-size:13px; }
  .contact-methods { gap:12px; }
  .contact-item { width:100%; max-width:420px; justify-content:flex-start; padding:17px 20px; border-radius:12px; }
}
@media (max-width:380px) {
  .show { grid-template-columns:64px minmax(0,1fr); padding:14px 10px; }
  .date span { font-size:32px; }
  .info p { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .gallery-lightbox, .gallery-zoom, .video-preview img, .video-play i, .contact-cta { transition:none !important; }
}


/* ==========================================================
   HOME — REFINAMENTO VISUAL APROVADO
   Mantém identidade, cores e composição desktop.
========================================================== */
#home {
    isolation: isolate;
    background-position: center 42%;
}
#home .video-overlay {
    background: linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.24) 48%, rgba(0,0,0,.62));
}
#home .hero {
    width: min(100%, 980px);
    position: relative;
    z-index: 3;
    animation: heroContentIn 1.05s cubic-bezier(.2,.7,.2,1) both;
}
#home .hero-kicker {
    margin: 0 auto 18px;
    color: rgba(255,255,255,.78);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 4px;
    line-height: 1.6;
    text-transform: uppercase;
}
#home .hero-kicker span {
    color: var(--primary-color, #00b7ff);
    padding: 0 7px;
}
#home .hero h2 { animation: heroTextIn .8s .12s both; }
#home .hero h1 {
    animation: heroTitleIn 1.15s .22s cubic-bezier(.16,1,.3,1) both, titleGlow 4.5s 1.4s ease-in-out infinite alternate;
    text-shadow: 0 0 24px rgba(255,255,255,.16), 0 0 48px rgba(0,183,255,.13);
}
#home .hero h3 { animation: heroTextIn .9s .42s both; }
#home .hero-description {
    max-width: 680px;
    margin: 0 auto 34px;
    font-size: 15px;
    line-height: 1.85;
    letter-spacing: 1.25px;
    color: rgba(255,255,255,.84);
    animation: heroTextIn .9s .56s both;
}
#home .buttons {
    gap: 16px;
    animation: heroTextIn .9s .7s both;
}
#home .buttons .btn {
    min-width: 178px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .28s ease, box-shadow .28s ease, background .28s ease, border-color .28s ease;
}
#home .buttons .btn:hover,
#home .buttons .btn:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(0,183,255,.22);
}
#home .hero-signature {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-top: 30px;
    color: rgba(255,255,255,.58);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2.4px;
    animation: heroTextIn .9s .84s both;
}
#home .hero-signature-divider {
    width: 28px;
    height: 1px;
    background: var(--primary-color, #00b7ff);
    opacity: .8;
}
@keyframes heroContentIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes heroTextIn {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes heroTitleIn {
    from { opacity: 0; transform: translateY(24px) scale(.97); filter: blur(5px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@media (max-width: 768px) {
    #home { background-position: center center; }
    #home .hero-kicker {
        max-width: 320px;
        margin-bottom: 15px;
        font-size: 9px;
        letter-spacing: 2px;
    }
    #home .hero-description {
        max-width: 430px;
        margin: 15px auto 22px;
        padding: 0 4px;
        font-size: 14px;
        line-height: 1.65;
        letter-spacing: .35px;
    }
    #home .buttons { width: 100%; gap: 11px; }
    #home .buttons .btn {
        min-height: 46px;
        width: min(100%, 300px);
    }
    #home .hero-signature {
        flex-wrap: wrap;
        gap: 9px;
        margin-top: 22px;
        font-size: 8px;
        letter-spacing: 1.5px;
    }
    #home .hero-signature-divider { width: 18px; }
}
@media (max-width: 380px) {
    #home .hero-kicker { font-size: 8px; letter-spacing: 1.4px; }
    #home .hero-signature { font-size: 7px; letter-spacing: 1px; }
}
@media (prefers-reduced-motion: reduce) {
    #home .hero, #home .hero-kicker, #home .hero h1, #home .hero h2,
    #home .hero h3, #home .hero-description, #home .buttons, #home .hero-signature {
        animation: none !important;
        transition: none !important;
    }
}


/* Agenda: hierarquia clara entre próximos shows e eventos já realizados. */
#shows .timeline { display:flex; flex-direction:column; gap:28px; }
#shows .shows-group { display:flex; flex-direction:column; gap:14px; }
#shows .shows-group-title {
    margin:0 0 4px; padding:0 0 10px; color:#f2f2f2;
    font-family:'Montserrat',sans-serif; font-size:13px; font-weight:700;
    letter-spacing:2px; border-bottom:1px solid rgba(255,255,255,.12);
}
#shows #upcoming-shows .shows-group-title { color:var(--blue); }
#shows .show.is-upcoming {
    grid-template-columns:112px minmax(0,1fr) 180px;
    min-height:112px; padding:24px 26px; opacity:1;
    border:1px solid rgba(0,183,255,.48); border-left:5px solid var(--blue);
    background:linear-gradient(100deg,rgba(0,183,255,.14),rgba(21,21,21,.98) 62%);
    box-shadow:0 8px 24px rgba(0,0,0,.2),0 0 18px rgba(0,183,255,.07);
}
#shows .show.is-upcoming .date span { color:#fff; font-size:2.15em; font-weight:800; }
#shows .show.is-upcoming .info h3 { color:#fff; }
#shows .show-status {
    justify-self:end; display:inline-flex; align-items:center; justify-content:center;
    min-width:142px; padding:9px 12px; border:1px solid rgba(0,183,255,.55);
    border-radius:4px; color:#fff; background:rgba(0,183,255,.16);
    font-family:'Montserrat',sans-serif; font-size:9px; font-weight:700;
    letter-spacing:1px; text-align:center; white-space:nowrap;
}
#shows .show.is-past {
    grid-template-columns:72px minmax(0,1fr) 140px;
    min-height:0; padding:10px 16px; opacity:.48;
    border:1px solid rgba(255,255,255,.07); border-left:3px solid #555;
    border-radius:5px; background:rgba(255,255,255,.018); box-shadow:none;
}
#shows .show.is-past:hover { transform:none; background:rgba(255,255,255,.04); }
#shows .show.is-past .date { font-size:28px; color:#888; }
#shows .show.is-past .date span { font-size:1.15em; }
#shows .show.is-past .date small { font-size:10px; }
#shows .show.is-past .info h3 { margin:0; color:#aaa; font-size:16px; }
#shows .show.is-past .info p { margin:3px 0 0; color:#777; font-size:12px; }
#shows .show.is-past .show-status {
    min-width:0; padding:5px 7px; color:#999;
    border-color:rgba(255,255,255,.12); background:transparent; font-size:8px;
}
@media (max-width:768px) {
    #shows .show.is-upcoming { grid-template-columns:76px minmax(0,1fr); gap:12px; padding:17px 14px; }
    #shows .show.is-upcoming .show-status { grid-column:1/-1; justify-self:start; margin-top:2px; }
    #shows .show.is-past { grid-template-columns:48px minmax(0,1fr); gap:10px; padding:9px 11px; }
    #shows .show.is-past .show-status { grid-column:2; justify-self:start; margin-top:2px; }
}
@media (prefers-reduced-motion:reduce) {
    #shows .show, #shows .show:hover { transition:none !important; transform:none !important; }
}
