/* =========================================================
   estilo.css — versão otimizada
   Mantém os mesmos valores visuais e breakpoints da versão original.
   ========================================================= */

:root {
  --bg: #0d0d0d;
  --fg: #f5f5f5;
  --gold: #d4a574;
  --white-02: rgba(245,245,245,.02);
  --white-03: rgba(245,245,245,.03);
  --white-05: rgba(245,245,245,.05);
  --white-08: rgba(245,245,245,.08);
  --white-10: rgba(245,245,245,.1);
  --white-15: rgba(245,245,245,.15);
  --white-20: rgba(245,245,245,.2);
  --white-25: rgba(245,245,245,.25);
  --white-30: rgba(245,245,245,.3);
  --white-50: rgba(245,245,245,.5);
  --white-60: rgba(245,245,245,.6);
  --radius: 2px;
  --ease: .3s ease;
}

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

body {
  font-family: 'Montserrat','Helvetica Neue',Arial,sans-serif;
  background-color: var(--bg);
  color: var(--fg);
}

/* ===== CABEÇALHO / NAVEGAÇÃO ===== */

.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 40px;

  /* Seamless integration with the hero image */
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.38) 0%,
    rgba(0, 0, 0, 0.18) 45%,
    rgba(0, 0, 0, 0) 100%
  );

backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
background: rgba(13, 13, 13, 0.5);

  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}

.navbar-home {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.navbar {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: all var(--ease);
}

.navbar.scrolled {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.38) 0%,
    rgba(0, 0, 0, 0.18) 45%,
    rgba(0, 0, 0, 0) 100%
  );
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.logo {
  color: var(--fg);
  text-decoration: none;
  font-size: 1.3rem;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.logo img {
  height: 80px;
  width: auto;
  display: block;
}

.nav-links {
  display: flex;
  list-style: none;
  gap: 30px;
}

.nav-links a,
.socials a,
.mobile-socials a {
  color: var(--fg);
  text-decoration: none;
}

.nav-links a {
  font-size: .85rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: opacity var(--ease);
}

.nav-links a:hover,
.socials a:hover,
.mobile-socials a:hover {
  opacity: .6;
}

.nav-links a.active::after {
  content: '';
  display: block;
  width: 4px;
  height: 4px;
  background-color: var(--fg);
  border-radius: 50%;
  margin: 5px auto 0;
}

.socials {
  display: flex;
  gap: 25px;
}

.socials a,
.mobile-socials a {
  font-size: 1.5rem;
  transition: opacity var(--ease);
}

/* ===== HAMBURGER ===== */

.hamburger {
  display: none;
  flex-direction: column;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 101;
}

.hamburger span {
  width: 28px;
  height: 2px;
  background-color: var(--fg);
  transition: all var(--ease);
  border-radius: 1px;
}

.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(11px,11px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
  transform: translateX(-20px);
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(10px,-10px);
}

/* ===== MENU MOBILE ===== */

.mobile-menu {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(13,13,13,.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 99;
  padding-top: 100px;
  overflow-y: auto;
}

.mobile-menu.active {
  display: block;
  animation: fadeIn var(--ease);
}

.mobile-menu-content {
  padding: 30px 20px 60px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 120px);
}
  
.language-switcher {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    font-weight: 400;
  }

  .language-switcher a {
    padding: 3px 4px;
  }

.mobile-nav-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
}

.mobile-nav-links li {
  border-bottom: 1px solid var(--white-10);
}

.mobile-nav-links a {
  display: block;
  color: var(--fg);
  text-decoration: none;
  font-size: .95rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 20px;
  transition: opacity var(--ease);
}

.mobile-nav-links a:hover {
  opacity: .6;
  background-color: var(--white-05);
}

.mobile-socials {
  display: none;
  justify-content: center;
  gap: 30px;
  padding-top: 30px;
  margin-top: 30px;
  border-top: 1px solid var(--white-10);
  flex-shrink: 0;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ===== HERO ===== */

.hero {
  position: relative;
  width: 100%;
  height: 100vh;
}

.hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.6);
}

.hero-text {
  position: absolute;
  top: 120px;
  left: 0;
  right: 0;
  text-align: center;
}

.hero-text h1 {
  font-size: 2.2rem;
  font-weight: 200;
  letter-spacing: 8px;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.hero-text p,
.page-subtitle {
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 3px;
  text-transform: uppercase;
  opacity: .7;
}

/* ===== CONTEÚDO ===== */

.page-content {
  padding: 140px 40px 80px;
  max-width: 1100px;
  margin: 0 auto;
}

.page-title,
.section-title {
  font-weight: 200;
  text-transform: uppercase;
  text-align: center;
  position: relative;
}

.page-title {
  font-size: 2rem;
  letter-spacing: 6px;
  margin-bottom: 60px;
}

.page-title::after {
  content: "";
  display: block;
  width: 300px;
  height: 1px;
  background-color: var(--fg);
  opacity: .5;
  margin: 20px auto 0;
}

.page-subtitle {
  text-align: center;
  margin-bottom: 40px;
}

.section-title {
  font-size: 1.3rem;
  font-weight: 300;
  letter-spacing: 3px;
  margin: 60px 0 30px;
}

.section-title::after {
  content: "";
  display: block;
  width: 180px;
  height: 1px;
  background-color: var(--fg);
  opacity: .5;
  margin: 16px auto 0;
}

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

.about-container {
  display: flex;
  gap: 50px;
  align-items: center;
  text-align: justify;
}

.about-img {
  width: 45%;
  border-radius: 4px;
}

.about-text {
  width: 55%;
  line-height: 1.8;
  font-weight: 300;
}

/* ===== MEMBROS ===== */

.members-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 40px;
}

.member-card {
  text-align: justify;
}

.member-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
  margin-bottom: 20px;
}

.member-card h3 {
  font-weight: 300;
  letter-spacing: 1px;
  margin-bottom: 10px;
  text-transform: uppercase;
  font-size: 1rem;
}

.member-card p {
  font-size: .9rem;
  font-weight: 300;
  opacity: .8;
  line-height: 1.6;
}

.members-mobile {
  display: none;
}

.members-tabs {
  display: flex;
  gap: 15px;
  justify-content: center;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.member-btn,
.language-btn {
  border: 1px solid var(--white-30);
  background-color: transparent;
  color: var(--fg);
  cursor: pointer;
  transition: all var(--ease);
  border-radius: var(--radius);
}

.member-btn {
  padding: 12px 30px;
  font-size: .9rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.member-btn:hover,
.language-btn:hover {
  background-color: var(--white-10);
  border-color: var(--white-60);
}

.member-btn.active,
.language-btn.active {
  background-color: var(--white-10);
  border-color: var(--white-50);
  opacity: 1;
}

.member-detail {
  animation: fadeInUp .4s ease;
}

.member-detail img {
  width: 100%;
  border-radius: var(--radius);
  margin-bottom: 25px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.member-detail h3 {
  font-size: 1.2rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0 0 20px;
}

.member-detail p {
  font-size: .9rem;
  font-weight: 300;
  line-height: 1.8;
  opacity: .85;
text-align: justify;
}

/* ===== PRÉMIOS ===== */

.awards-list {
  list-style: none;
  max-width: 500px;
  margin: 0 auto;
}

.awards-list li {
  display: flex;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,.15);
  font-weight: 300;
}

.award-year {
  opacity: .6;
  min-width: 50px;
}

/* ===== REPERTÓRIO ===== */

.repertoire-grid {
  display: grid;
  gap: 0;
  grid-template-columns: 1fr;
}

.work {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 24px 0;
  border-bottom: 1px solid var(--white-15);
  transition: opacity var(--ease);
}

.work:hover { opacity: .8; }
.work-info { flex: 1; }

.work-meta {
  display: flex;
  gap: 30px;
  margin-bottom: 12px;
}

.composer {
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 2px;
  text-transform: uppercase;
  opacity: .7;
  min-width: 220px;
}

.work-title {
  font-size: 1rem;
  font-weight: 300;
  letter-spacing: 1px;
  color: var(--fg);
}

.work-title a {
  color: var(--fg);
  text-decoration: none;
  border-bottom: 1px dashed var(--white-30);
  transition: border-color var(--ease);
}

.work-title a:hover {
  border-bottom-color: var(--white-60);
}

.commision {
  display: inline;
  font-size: .9rem;
  font-weight: 300;
  color: var(--fg);
  margin-left: 8px;
}

.commision-note {
  font-size: .75rem;
  font-weight: 300;
  letter-spacing: 1px;
  opacity: .6;
  text-align: right;
  margin-bottom: 30px;
  color: var(--fg);
}

.year {
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 1px;
  opacity: .6;
  text-align: right;
  min-width: 80px;
}

/* ===== AGENDA ===== */

.events-tabs { position: relative; }

input[type="radio"][name="event-tabs"] { display: none; }

.tabs-header {
  display: flex;
  gap: 40px;
  margin-bottom: 50px;
  border-bottom: 1px solid var(--white-15);
  padding-bottom: 20px;
}

.tab-label {
  font-size: .9rem;
  font-weight: 300;
  letter-spacing: 2px;
  text-transform: uppercase;
  opacity: .6;
  cursor: pointer;
  transition: opacity var(--ease);
  padding-bottom: 30px;
  border-bottom: 2px solid transparent;
  margin-bottom: -30px;
}

.tab-label:hover { opacity: .9; }

#tab-proximos:checked ~ .tabs-header label[for="tab-proximos"],
#tab-passados:checked ~ .tabs-header label[for="tab-passados"] {
  opacity: 1;
  border-bottom-color: var(--white-50);
}

.tab-content { display: none; }

#tab-proximos:checked ~ #proximos,
#tab-passados:checked ~ #passados {
  display: block;
}

/* ===== TIMELINE ===== */

.timeline {
  position: relative;
  padding: 40px 0;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: var(--white-20);
}

.timeline-item {
  margin-bottom: 50px;
  position: relative;
}

.timeline-item:nth-child(odd) .timeline-content {
  margin-left: 0;
  margin-right: 50%;
  padding-right: 40px;
  text-align: right;
}

.timeline-item:nth-child(even) .timeline-content {
  margin-left: 50%;
  margin-right: 0;
  padding-left: 40px;
  text-align: left;
}

.timeline-item::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 30px;
  width: 12px;
  height: 12px;
  background-color: var(--bg);
  border: 2px solid var(--white-50);
  border-radius: 50%;
  z-index: 10;
  transition: all var(--ease);
}

.timeline-item:hover::before {
  background-color: var(--white-30);
  border-color: var(--white-60);
}

.timeline-item.event-card::before {
  display: none !important;
}

.timeline-content,
.event-card {
  background-color: var(--white-03);
  border: 1px solid var(--white-10);
  border-radius: var(--radius);
  transition: all var(--ease);
}

.timeline-content {
  padding: 30px;
}

.timeline-content:hover,
.event-card:hover {
  background-color: var(--white-05);
  border-color: var(--white-20);
}

.event-date-badge {
  display: inline-block;
  text-align: center;
  margin-bottom: 15px;
}

.event-date-badge .day {
  display: block;
  font-size: 1.5rem;
  font-weight: 300;
  letter-spacing: 2px;
}

.event-date-badge .month {
  display: block;
  font-size: .75rem;
  font-weight: 300;
  letter-spacing: 2px;
  text-transform: uppercase;
  opacity: .6;
  margin-top: 5px;
}

.event-title {
  font-size: 1.1rem;
  font-weight: 300;
  letter-spacing: 1px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.event-time {
  font-size: .85rem;
  font-weight: 300;
  opacity: .7;
  margin-bottom: 8px;
  letter-spacing: 1px;
}

.event-location {
  font-size: .85rem;
  font-weight: 300;
  opacity: .8;
  margin-bottom: 15px;
  letter-spacing: .5px;
}

.event-description {
  font-size: .9rem;
  font-weight: 300;
  line-height: 1.6;
  opacity: .75;
}

.timeline-year-header {
  font-size: 1.2rem;
  font-weight: 300;
  letter-spacing: 2px;
  margin-top: 40px;
  margin-bottom: 20px;
  text-transform: uppercase;
  opacity: 0.7;
  border-bottom: 1px solid var(--white-10);
  padding-bottom: 10px;
}

/* ===== EVENTOS PASSADOS ===== */

.cards-grid {
  display: block;
  grid-template-columns: repeat(auto-fit,minmax(500px,1fr));
  gap: 30px;
}

.event-card {
  display: flex;
  gap: 30px;
  padding: 30px;
}

.event-list-item {
  padding: 15px 0;
  border-bottom: 1px solid var(--white-10);
  display: block;
}

.event-list-item:last-child {
  border-bottom: none;
}

.event-list-item .event-date-badge {
  display: inline-block;
  margin-right: 20px;
  min-width: auto;
}

.event-list-item .event-title {
  display: inline;
}

.event-card .event-date-badge {
  min-width: 80px;
  flex-shrink: 0;
}

.event-card .event-date-badge .day,
.event-card .event-date-badge .month {
  color: var(--gold);
}

.event-card .event-date-badge .day { font-size: 2rem; }

.event-card-content { flex: 1; }
.event-card .event-title { margin-bottom: 10px; }
.event-card .event-time { margin-bottom: 5px; }
.event-card .event-location { margin-bottom: 10px; }
.event-card .event-description { margin: 0; }

/* ===== CONCERTO FLUTUANTE ===== */

.floating-concert {
  position: fixed;
  bottom: 40px;
  right: 40px;
  background-color: var(--white-05);
  border: 1px solid var(--white-15);
  border-radius: var(--radius);
  padding: 25px;
  max-width: 350px;
  backdrop-filter: blur(10px);
  z-index: 50;
  transition: all var(--ease);
  box-shadow: 0 8px 32px rgba(0,0,0,.3);
}

.floating-concert:hover {
  background-color: var(--white-08);
  border-color: var(--white-25);
  transform: translateY(-5px);
}

.floating-concert-label {
  font-size: .7rem;
  font-weight: 300;
  letter-spacing: 2px;
  text-transform: uppercase;
  opacity: .6;
  margin-bottom: 12px;
}

.floating-concert-date {
  font-size: 2rem;
  font-weight: 300;
  letter-spacing: 2px;
  margin-bottom: 8px;
}

.floating-concert-month {
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  opacity: .7;
  margin-bottom: 15px;
}

.floating-concert-title {
  font-size: 1rem;
  font-weight: 300;
  letter-spacing: 1px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.floating-concert-time {
  font-size: .85rem;
  font-weight: 300;
  opacity: .7;
  margin-bottom: 8px;
}

.floating-concert-location {
  font-size: .85rem;
  font-weight: 300;
  opacity: .8;
  margin-bottom: 15px;
}

.floating-concert-link {
  display: inline-block;
  font-size: .8rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--fg);
  text-decoration: none;
  border: 1px solid var(--white-30);
  padding: 10px 20px;
  transition: all var(--ease);
  border-radius: var(--radius);
}

.floating-concert-link:hover {
  background-color: var(--white-10);
  border-color: var(--white-60);
}

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

footer {
  text-align: center;
  padding: 80px 40px;
  color: var(--fg);
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 1px;
  opacity: .6;
}

footer::before {
  content: "";
  display: block;
  width: 300px;
  height: 1px;
  background-color: var(--fg);
  opacity: .5;
  margin: 0 auto 40px;
}

/* ===== CONTACTOS ===== */

.contact-section {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.contact-top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  margin: 0 auto;
  align-items: start;
}

.contact-email {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.contact-email h2 { order: 1; }

.contact-email p {
  font-size: 1.2rem;
  font-weight: 300;
  margin-top: 20px;
  order: 2;
}

.contact-email a {
  color: var(--fg);
  text-decoration: none;
  border-bottom: 1px dashed var(--white-30);
  transition: border-color var(--ease);
}

.contact-email a:hover { border-bottom-color: var(--white-60); }

.press-photos-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.press-photos-section h2 {
  text-align: center;
}

.press-description {
  font-size: .95rem;
  font-weight: 300;
  opacity: .8;
  margin: 20px 0 30px;
}

.download-button {
  display: inline-block;
  margin-top: 20px;
  padding: 15px 40px;
  border: 1px solid var(--white-30);
  color: var(--fg);
  text-decoration: none;
  font-size: .9rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: all var(--ease);
  border-radius: var(--radius);
  cursor: pointer;
}

.download-button:hover {
  background-color: var(--white-10);
  border-color: var(--white-60);
}

.download-button i { margin-right: 10px; }

.socials-section {
  text-align: center;
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.socials-links {
  display: flex;
  justify-content: center;
  gap: 50px;
  margin-top: 30px;
  width: 100%;
}

.socials-links a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: var(--fg);
  text-decoration: none;
  font-size: .9rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: opacity var(--ease);
}

.socials-links a:hover { opacity: .6; }

.socials-links i {
  font-size: 2rem;
  color: var(--fg);
}

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

.gallery-masonry {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto 80px;
  padding: 40px 0;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  background-color: var(--white-03);
  border: 1px solid var(--white-10);
  aspect-ratio: 1 / 1;
  cursor: pointer;
  transition: all var(--ease);
  min-width: 0;
}

.gallery-item:hover {
  background-color: var(--white-05);
  border-color: var(--white-20);
  transform: scale(1.02);
}

.gallery-item.size-small {
  grid-column: span 1;
  grid-row: span 1;
  aspect-ratio: 1 / 1;
}

.gallery-item.size-medium {
  grid-column: span 1;
  grid-row: span 1;
  aspect-ratio: 4 / 5;
}

.gallery-item.size-large {
  grid-column: span 2;
  grid-row: span 2;
  aspect-ratio: auto;
}

.photo-item { position: relative; }

.gallery-photo {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform var(--ease);
}

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

.photo-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0,0,0,.35);
  opacity: 0;
  transition: opacity var(--ease);
}

.photo-item:hover .photo-overlay { opacity: 1; }

.photo-overlay i {
  font-size: 1.8rem;
  color: var(--fg);
}

/* ===== VÍDEOS ===== */

.video-item {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.video-thumbnail {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.video-thumb-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform var(--ease);
}

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

.video-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 60px;
  height: 60px;
  background-color: rgba(0,0,0,.55);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity var(--ease);
}

.video-item:hover .video-play-icon { opacity: 1; }

.video-play-icon i {
  font-size: 1.3rem;
  color: var(--fg);
  margin-left: 3px;
}

.video-info-card {
  flex-shrink: 0;
  padding: 12px;
  background-color: var(--white-02);
  border-top: 1px solid var(--white-10);
}

.video-title {
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0 0 6px;
}

.video-meta {
  font-size: .75rem;
  font-weight: 300;
  opacity: .65;
  margin: 0;
}

.video-year {
  font-size: .7rem;
  font-weight: 300;
  opacity: .5;
  margin: 4px 0 0;
}

/* ===== LIGHTBOX / YOUTUBE ===== */

.lightbox,
.youtube-modal {
  display: none;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,.95);
  z-index: 1000;
  align-items: center;
  justify-content: center;
}

.lightbox.active,
.youtube-modal.active { display: flex; }

.lightbox-image {
  max-width: 85%;
  max-height: 85%;
  object-fit: contain;
  animation: zoomIn var(--ease);
}

.lightbox-close,
.youtube-close {
  position: absolute;
  top: 20px;
  right: 60px;
  font-size: 5rem;
  color: var(--fg);
  cursor: pointer;
  transition: opacity var(--ease);
  background: none;
  border: none;
  padding: 10px;
}

.lightbox-close:hover,
.youtube-close:hover { opacity: .6; }

.lightbox-nav {
  position: absolute;
  width: 100%;
  bottom: 40px;
  display: flex;
  justify-content: center;
  gap: 20px;
}

.lightbox-prev,
.lightbox-next {
  background-color: var(--white-10);
  border: 1px solid var(--white-30);
  color: var(--fg);
  font-size: 1.5rem;
  width: 50px;
  height: 50px;
  border-radius: var(--radius);
  cursor: pointer;
  transition: all var(--ease);
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox-prev:hover,
.lightbox-next:hover {
  background-color: var(--white-20);
  border-color: var(--white-60);
}

.youtube-modal { padding: 40px; }

.youtube-container {
  position: relative;
  width: 100%;
  max-width: 900px;
  aspect-ratio: 16 / 9;
  animation: slideUp .4s ease;
}

.youtube-container iframe {
  width: 100%;
  height: 100%;
  border-radius: var(--radius);
}

/* ===== ANIMAÇÕES ===== */

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes zoomIn {
  from { transform: scale(.9); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

@keyframes slideUp {
  from { transform: translateY(50px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* ===== IDIOMAS ===== */

.language-selector {
  display: flex;
  gap: 12px;
  align-items: center;
}

.language-btn {
  padding: 8px 14px;
  font-size: .75rem;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.mobile-language-selector {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-bottom: 24px;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

.mobile-language-selector .language-btn {
  flex: 0 0 auto;
  padding: 5px 9px;
  font-size: .65rem;
  font-weight: 300;
  letter-spacing: .12em;
  line-height: 1;
  border: 1px solid transparent;
  background: transparent;
  opacity: .65;
}

.mobile-language-selector .language-btn.active {
  background-color: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.25);
  opacity: 1;
}

.mobile-language-selector .language-btn:hover {
  background-color: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
}

/* ===== RESPONSIVE 900px ===== */

@media (max-width: 900px) {
  .gallery-masonry {
    grid-template-columns: repeat(2,1fr);
    gap: 15px;
  }

  .gallery-item.size-small,
  .gallery-item.size-medium {
    grid-column: span 1;
    grid-row: span 1;
  }

  .gallery-item.size-large {
    grid-column: span 2;
    grid-row: span 1;
    aspect-ratio: 16 / 9;
  }
}

/* ===== RESPONSIVE 768px ===== */

@media (max-width: 768px) {

.navbar {
  padding: 10px 15px;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.42) 0%,
    rgba(0,0,0,.18) 55%,
    rgba(0,0,0,0) 100%
  );
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

   .navbar.scrolled {
  background: rgba(13, 13, 13, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

  .logo {
    position: absolute;
    left: 12px;
  }

  .logo img { height: 50px; }

  .hamburger {
    display: flex;
    position: absolute;
    right: 15px;
  }

  .nav-links,
  .language-selector,
  .socials {
    display: none;
  }

  .mobile-socials,
  .mobile-language-selector {
    display: flex;
  }

  .mobile-menu { padding-top: 100px; }

  .mobile-menu-content {
    padding: 20px 15px 50px;
    min-height: calc(100vh - 100px);
  }

  .page-content { padding: 100px 20px 60px; }

  .page-title {
    font-size: 1.5rem;
    letter-spacing: 4px;
    margin-bottom: 40px;
  }

  .work-meta {
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
  }

  .composer,
  .year {
    min-width: auto;
  }

  .year { text-align: left; }

  .work {
    flex-direction: column;
    padding: 18px 0;
  }

  .commision-note {
    font-size: .7rem;
    margin-bottom: 20px;
  }

  .members-grid { display: none; }
  .members-mobile { display: block; }

  .members-tabs { gap: 10px; }

  @media (max-width: 768px) {
     
  .member-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-align: center;
  }
  .about-container {
    flex-direction: column;
    gap: 30px;
  }

  .about-img,
  .about-text {
    width: 100%;
  }

  .timeline::before,
  .timeline-item::before {
    left: 20px;
  }

  .timeline-item:nth-child(odd) .timeline-content,
  .timeline-item:nth-child(even) .timeline-content {
    margin-left: 60px;
    margin-right: 0;
    padding-left: 30px;
    padding-right: 30px;
    text-align: left;
  }

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

  .event-card { flex-direction: column; }

  .floating-concert {
    bottom: 15px;
    right: 15px;
    left: auto;
    width: auto;
    max-width: 240px;
    padding: 15px;
  }

  .floating-concert-label {
    font-size: .6rem;
    letter-spacing: 1.5px;
    margin-bottom: 8px;
  }

  .floating-concert-date {
    font-size: 1.4rem;
    margin-bottom: 5px;
  }

  .floating-concert-month {
    font-size: .7rem;
    margin-bottom: 10px;
  }

  .floating-concert-title {
    font-size: .8rem;
    line-height: 1.4;
    margin-bottom: 8px;
  }

  .floating-concert-time,
  .floating-concert-location {
    font-size: .7rem;
    line-height: 1.4;
    margin-bottom: 5px;
  }

  .floating-concert-link {
    font-size: .65rem;
    padding: 7px 12px;
  }

  .contact-top {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .socials-links {
    flex-direction: column;
    gap: 30px;
  }

  .gallery-masonry {
    grid-template-columns: 2fr 1fr;
    gap: 12px;
    padding: 25px 0 60px;
  }

  .gallery-item.size-small {
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 1 / 1;
  }

  .gallery-item.size-medium {
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 4 / 5;
  }

  .gallery-item.size-large {
    grid-column: span 2;
    grid-row: span 1;
    aspect-ratio: 16 / 9;
  }

  .lightbox-close {
    top: 20px;
    right: 20px;
    font-size: 1.8rem;
  }

  .lightbox-nav { bottom: 20px; }

  .lightbox-prev,
  .lightbox-next {
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
  }

  .youtube-modal { padding: 20px; }

  .youtube-close {
    top: -35px;
    font-size: 1.8rem;
  }
}

/* ===== RESPONSIVE 480px ===== */

@media (max-width: 480px) {
  .navbar {
    padding: 12px 15px;
    height: 70px;
  }

  .logo img { height: 50px; }

  .gallery-masonry {
    grid-template-columns: 1fr;
    gap: 15px;
    padding: 20px 0 50px;
  }

  .gallery-item.size-small,
  .gallery-item.size-medium,
  .gallery-item.size-large {
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
  }

  .video-item { min-height: 280px; }

  .video-info-card { padding: 10px; }
  .video-title { font-size: .75rem; }
  .video-meta { font-size: .7rem; }

  .floating-concert {
    max-width: 210px;
    padding: 13px;
    bottom: 12px;
    right: 12px;
  }

  .floating-concert-time,
  .floating-concert-location {
    display: none;
  }

  .floating-concert-label {
    font-size: .55rem;
    margin-bottom: 6px;
  }

  .floating-concert-date {
    font-size: 1.2rem;
    margin-bottom: 4px;
  }

  .floating-concert-month {
    font-size: .65rem;
    margin-bottom: 8px;
  }

  .floating-concert-title {
    font-size: .75rem;
    line-height: 1.35;
    margin-bottom: 8px;
  }

  .floating-concert-link {
    font-size: .6rem;
    padding: 6px 10px;
  }

  .lightbox-image {
    max-width: 95%;
    max-height: 80%;
  }
}

