@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=Jost:wght@300;400;500;600&display=swap');

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

:root {
  --purple-deep:  #2E1038;
  --purple-mid:   #3D1650;
  --purple-light: #5A1E6D;
  --violet:       #331165;
  --gold:         #C8A05A;
  --gold-light:   #DDB96E;
  --gold-pale:    #E8CFA0;
  --gold-dim:     #8B6A32;
  --cream:        #F5EFE4;
  --cream-dim:    #C8BFB0;
  --ink:          #231F20;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', sans-serif;
  --max-w: 1140px;
  --pad:   4rem;
  --sec:   7rem;
}

html { scroll-behavior: smooth; }
body { background: var(--purple-deep); color: var(--cream); font-family: var(--serif); overflow-x: hidden; }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--purple-deep); }
::-webkit-scrollbar-thumb { background: var(--gold-dim); border-radius: 3px; }

/* NAV */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.85rem var(--pad);
  background: rgba(46,16,56,0.93); backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(200,160,90,0.14);
}
.nav-logo img { height: 50px; width: auto; display: block; }
.nav-links { display: flex; gap: 2rem; list-style: none; align-items: center; }
.nav-links a {
  font-family: var(--sans); font-size: 0.68rem; font-weight: 400;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--cream-dim);
  text-decoration: none; transition: color 0.3s; position: relative; padding-bottom: 2px;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-2px; left:0; right:0;
  height:1px; background:var(--gold); transform:scaleX(0); transition:transform 0.3s;
}
.nav-links a:hover, .nav-links a.active { color: var(--gold); }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); }
.nav-cta {
  font-family: var(--sans); font-size: 0.65rem; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase;
  padding: 0.55rem 1.5rem; background: var(--gold); color: var(--ink);
  text-decoration: none; transition: background 0.3s, transform 0.2s;
}
.nav-cta:hover { background: var(--gold-light); transform: translateY(-1px); }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.hamburger span { width:24px; height:1px; background:var(--gold); display:block; transition:all 0.3s; }

/* HERO */
.hero {
  min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr;
  padding-top: 76px; overflow: hidden;
}
.hero-text {
  display:flex; flex-direction:column; justify-content:center;
  padding: 5rem 3rem 5rem var(--pad); position:relative; z-index:2;
}
.hero-eyebrow {
  font-family:var(--sans); font-size:0.62rem; letter-spacing:0.38em;
  text-transform:uppercase; color:var(--gold); margin-bottom:1.8rem;
  display:flex; align-items:center; gap:0.8rem;
}
.hero-eyebrow::before { content:''; width:28px; height:1px; background:var(--gold); }
.hero-title {
  font-size: clamp(4.5rem,7.5vw,8rem); font-weight:300; line-height:0.92;
  color:var(--cream); letter-spacing:-0.01em; margin-bottom:0.6rem;
}
.hero-title em { font-style:italic; color:var(--gold); display:block; }
.hero-tagline {
  font-family:var(--sans); font-size:0.7rem; letter-spacing:0.28em;
  text-transform:uppercase; color:rgba(200,160,90,0.6);
  margin-bottom:2.2rem; padding-bottom:2.2rem;
  border-bottom: 1px solid rgba(200,160,90,0.18);
}
.hero-tagline span { color:rgba(200,160,90,0.4); margin:0 0.6rem; }
.hero-desc {
  font-family:var(--sans); font-size:0.87rem; font-weight:300;
  line-height:1.95; color:var(--cream-dim); max-width:400px; margin-bottom:2.8rem;
}
.hero-desc strong { color:var(--cream); font-weight:400; }
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }
.btn-gold {
  font-family:var(--sans); font-size:0.68rem; letter-spacing:0.22em;
  text-transform:uppercase; font-weight:500; padding:0.95rem 2.4rem;
  background:var(--gold); color:var(--ink); text-decoration:none;
  transition:all 0.3s; display:inline-block;
}
.btn-gold:hover { background:var(--gold-light); transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,160,90,0.2); }
.btn-outline {
  font-family:var(--sans); font-size:0.68rem; letter-spacing:0.22em;
  text-transform:uppercase; font-weight:400; padding:0.9rem 2.2rem;
  border:1px solid rgba(200,160,90,0.4); color:var(--gold);
  text-decoration:none; transition:all 0.3s; display:inline-block;
}
.btn-outline:hover { background:rgba(200,160,90,0.08); border-color:var(--gold); }

.hero-photo { position:relative; overflow:hidden; }
.hero-photo img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:45% top; opacity:0.78;
}
.hero-photo::before {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(to right, var(--purple-deep) 0%, rgba(46,16,56,0.5) 28%, transparent 52%),
    linear-gradient(to top, var(--purple-deep) 0%, transparent 22%),
    linear-gradient(to bottom, rgba(46,16,56,0.6) 0%, transparent 30%);
}
.hero-photo::after {
  content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:
    radial-gradient(ellipse at 65% 35%, rgba(90,30,109,0.3) 0%, transparent 55%),
    radial-gradient(ellipse at 35% 75%, rgba(51,17,101,0.2) 0%, transparent 50%);
}
.hero-photo-tag {
  position:absolute; bottom:2rem; right:2rem; z-index:3;
  font-family:var(--sans); font-size:0.58rem; letter-spacing:0.22em;
  text-transform:uppercase; color:rgba(200,160,90,0.4); text-align:right;
}
.hero-scroll {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  z-index:3; font-family:var(--sans); font-size:0.56rem; letter-spacing:0.22em;
  text-transform:uppercase; color:rgba(200,160,90,0.35);
  display:flex; flex-direction:column; align-items:center; gap:0.4rem;
  animation: scrollbounce 2s ease infinite;
}
.hero-scroll::after { content:'↓'; font-size:0.75rem; }
@keyframes scrollbounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(5px)} }

/* SECTION UTILS */
.section { padding: var(--sec) var(--pad); }
.section--alt { background: rgba(255,255,255,0.025); }
.container { max-width: var(--max-w); margin: 0 auto; }
.sec-head { text-align:center; margin-bottom:4rem; }
.sec-eye {
  display:block; font-family:var(--sans); font-size:0.62rem;
  letter-spacing:0.36em; text-transform:uppercase; color:var(--gold); margin-bottom:0.9rem;
}
.sec-title { font-size:clamp(2.4rem,4.5vw,3.8rem); font-weight:300; line-height:1.05; color:var(--cream); }
.sec-title em { font-style:italic; color:var(--gold); }
.sec-rule { width:50px; height:1px; margin:1.4rem auto 0; background:linear-gradient(to right,transparent,var(--gold),transparent); }
.sec-sub { font-family:var(--sans); font-size:0.88rem; font-weight:300; color:var(--cream-dim); line-height:1.9; max-width:600px; margin:1.4rem auto 0; text-align:center; }

/* NOSOTRAS */
.artists-quote {
  font-size:clamp(1.3rem,2.2vw,1.7rem); font-weight:300; font-style:italic;
  line-height:1.7; color:var(--cream-dim); max-width:680px;
  margin:0 auto 5rem; text-align:center;
  border-left:2px solid var(--gold); padding-left:2rem; text-align:left;
}
.artists-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; }
.artist-card {
  position:relative; overflow:hidden;
  border:1px solid rgba(200,160,90,0.14);
  background:rgba(255,255,255,0.02);
  transition:border-color 0.4s;
}
.artist-card:hover { border-color:rgba(200,160,90,0.4); }
.artist-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(to right,transparent,var(--gold),transparent);
  transform:scaleX(0); transition:transform 0.5s; transform-origin:center;
}
.artist-card:hover::before { transform:scaleX(1); }
.artist-photo { position:relative; height:420px; overflow:hidden; }
.artist-photo img {
  width:100%; height:100%; object-fit:cover; object-position:center 8%;
  transition:transform 0.6s; filter:brightness(0.84) contrast(1.06);
}
.artist-card:hover .artist-photo img { transform:scale(1.04); filter:brightness(0.9) contrast(1.06); }
.artist-photo::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(to top, var(--purple-deep) 0%, rgba(46,16,56,0.65) 18%, transparent 44%),
    linear-gradient(to bottom, rgba(46,16,56,0.45) 0%, transparent 28%);
}
.blob {
  position:absolute; z-index:2; pointer-events:none;
  bottom:-24px; right:-24px; width:150px; height:150px;
  background:radial-gradient(ellipse, rgba(46,16,56,0.9) 0%, rgba(46,16,56,0.5) 44%, transparent 68%);
  border-radius:60% 40% 70% 30% / 50% 60% 40% 50%;
}
.blob-l { right:auto; left:-24px; border-radius:40% 60% 30% 70% / 60% 40% 60% 40%; }
.artist-body { padding:2rem 2.4rem 2.4rem; }
.artist-name { font-size:2.2rem; font-weight:300; color:var(--cream); margin-bottom:0.2rem; }
.artist-voice { font-family:var(--sans); font-size:0.66rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.artist-bio { font-family:var(--sans); font-size:0.84rem; font-weight:300; line-height:1.95; color:var(--cream-dim); }
.artist-badge {
  display:inline-block; margin-top:1.2rem;
  font-family:var(--sans); font-size:0.6rem; letter-spacing:0.18em;
  text-transform:uppercase; padding:0.4rem 1rem;
  border:1px solid rgba(200,160,90,0.28); color:var(--gold);
  background:rgba(200,160,90,0.06);
}

/* DÚO STRIP */
.duo-strip { position:relative; height:460px; overflow:hidden; }
.duo-strip img { width:100%; height:100%; object-fit:cover; object-position:center 20%; filter:brightness(0.5) saturate(1.2); }
.duo-strip::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(to right, var(--purple-deep) 0%, transparent 18%),
    linear-gradient(to left,  var(--purple-deep) 0%, transparent 18%),
    linear-gradient(to bottom,var(--purple-deep) 0%, transparent 22%),
    linear-gradient(to top,   var(--purple-deep) 0%, transparent 22%),
    radial-gradient(ellipse at center, rgba(90,30,109,0.35) 0%, transparent 65%);
}
.duo-strip-content {
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:2rem;
}
.duo-strip-content blockquote {
  font-size:clamp(1.8rem,3.5vw,3rem); font-weight:300; font-style:italic;
  color:var(--cream); line-height:1.3; max-width:700px;
  text-shadow:0 2px 30px rgba(0,0,0,0.6); margin-bottom:1.5rem;
}
.duo-strip-content cite {
  font-family:var(--sans); font-size:0.62rem; letter-spacing:0.3em;
  text-transform:uppercase; color:var(--gold); font-style:normal;
}

/* INSTAGRAM */
.ig-section { text-align:center; }
.ig-handle {
  display:inline-flex; align-items:center; gap:0.6rem;
  font-family:var(--sans); font-size:0.8rem; letter-spacing:0.14em;
  color:var(--gold); margin-bottom:2.5rem; text-decoration:none;
  transition:color 0.3s;
}
.ig-handle:hover { color:var(--gold-light); }
.ig-handle::before { content:'◈'; font-size:1.1rem; }
behold-widget { display:block; margin:0 auto; max-width:900px; }

/* AUDIOVISUAL */
.av-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.av-card {
  aspect-ratio:16/9; position:relative; overflow:hidden;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(200,160,90,0.12);
  cursor:pointer; transition:border-color 0.3s;
  display:flex; align-items:center; justify-content:center;
}
.av-card:hover { border-color:rgba(200,160,90,0.45); }
.av-inner { position:relative; z-index:2; text-align:center; }
.av-play {
  width:54px; height:54px; border-radius:50%;
  border:1px solid rgba(200,160,90,0.45);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 0.8rem;
  transition:background 0.3s, transform 0.3s;
}
.av-card:hover .av-play { background:rgba(200,160,90,0.14); transform:scale(1.1); }
.av-play svg { fill:rgba(200,160,90,0.75); margin-left:4px; }
.av-title { font-family:var(--sans); font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(200,160,90,0.5); }
.av-sub { font-family:var(--sans); font-size:0.6rem; letter-spacing:0.1em; color:rgba(200,160,90,0.3); margin-top:0.2rem; }
.av-card iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.av-note {
  grid-column:1/-1; text-align:center; padding:1.4rem 2rem;
  border:1px dashed rgba(200,160,90,0.14);
  font-family:var(--sans); font-size:0.7rem;
  color:rgba(200,160,90,0.25); letter-spacing:0.1em; line-height:1.8;
}

/* EVENTOS */
.events-grid { display:grid; grid-template-columns:repeat(2,1fr); }
.event-card {
  padding:3rem 2.5rem;
  border-top:1px solid rgba(200,160,90,0.12);
  border-right:1px solid rgba(200,160,90,0.12);
  transition:background 0.3s;
}
.event-card:nth-child(even) { border-right:none; }
.event-card:hover { background:rgba(200,160,90,0.04); }
.event-num { font-size:4rem; font-weight:300; line-height:1; color:rgba(200,160,90,0.12); margin-bottom:1rem; font-style:italic; }
.event-name { font-size:1.45rem; font-weight:300; color:var(--cream); margin-bottom:0.6rem; }
.event-desc { font-family:var(--sans); font-size:0.82rem; font-weight:300; color:var(--cream-dim); line-height:1.9; }

/* CONTACTO */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.contact-info h2 { font-size:clamp(2rem,3.5vw,3rem); font-weight:300; color:var(--cream); margin-bottom:1.4rem; line-height:1.1; }
.contact-info h2 em { font-style:italic; color:var(--gold); }
.contact-info p { font-family:var(--sans); font-size:0.87rem; font-weight:300; color:var(--cream-dim); line-height:1.95; margin-bottom:2.5rem; }
.contact-links { display:flex; flex-direction:column; gap:0.9rem; }
.contact-links a {
  font-family:var(--sans); font-size:0.82rem; color:var(--gold);
  text-decoration:none; letter-spacing:0.06em; transition:color 0.3s;
  display:flex; align-items:center; gap:0.7rem;
}
.contact-links a:hover { color:var(--gold-light); }
.contact-links a span { font-size:1.1rem; opacity:0.7; }
.contact-form { display:flex; flex-direction:column; gap:1.2rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.fgrp { display:flex; flex-direction:column; gap:0.4rem; }
.fgrp label { font-family:var(--sans); font-size:0.6rem; letter-spacing:0.22em; text-transform:uppercase; color:rgba(200,160,90,0.55); }
.fgrp input, .fgrp textarea, .fgrp select {
  background:rgba(255,255,255,0.04); border:1px solid rgba(200,160,90,0.14);
  padding:0.9rem 1.1rem; font-family:var(--sans); font-size:0.84rem;
  font-weight:300; color:var(--cream); outline:none; border-radius:0;
  transition:border-color 0.3s; -webkit-appearance:none;
}
.fgrp select option { background:var(--purple-mid); }
.fgrp input:focus, .fgrp textarea:focus, .fgrp select:focus { border-color:rgba(200,160,90,0.5); }
.fgrp input::placeholder, .fgrp textarea::placeholder { color:rgba(200,191,176,0.22); }
.fgrp textarea { resize:vertical; min-height:110px; }

/* PAGE HERO */
.page-hero {
  min-height:40vh; display:flex; align-items:flex-end;
  padding:0 var(--pad) 4rem; padding-top:120px;
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--purple-deep) 0%, var(--violet) 55%, var(--purple-mid) 100%);
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at 80% 50%, rgba(200,160,90,0.07) 0%, transparent 60%);
}
.page-hero-content { position:relative; z-index:1; }
.page-hero-eye { font-family:var(--sans); font-size:0.6rem; letter-spacing:0.36em; text-transform:uppercase; color:var(--gold); margin-bottom:0.9rem; display:block; }
.page-hero-title { font-size:clamp(3rem,6vw,5.5rem); font-weight:300; line-height:1; color:var(--cream); }
.page-hero-title em { font-style:italic; color:var(--gold); }

/* REPERTORIO */
.rep-genre { margin-bottom:4rem; }
.rep-genre-title {
  font-family:var(--sans); font-size:0.64rem; letter-spacing:0.3em;
  text-transform:uppercase; color:var(--gold); margin-bottom:1.8rem;
  padding-bottom:0.8rem; border-bottom:1px solid rgba(200,160,90,0.18);
  display:flex; align-items:center; gap:0.8rem;
}
.rep-genre-title::before { content:''; width:18px; height:1px; background:var(--gold); flex-shrink:0; }
.rep-obras { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1px; background:rgba(200,160,90,0.07); }
.rep-obra { background:var(--purple-deep); padding:1.4rem 1.8rem; transition:background 0.3s; display:flex; flex-direction:column; gap:0.2rem; }
.rep-obra:hover { background:rgba(200,160,90,0.05); }
.rep-obra-title { font-size:1.1rem; font-weight:400; color:var(--cream); }
.rep-obra-comp { font-family:var(--sans); font-size:0.72rem; font-weight:300; color:var(--gold); letter-spacing:0.07em; }
.rep-obra-detail { font-family:var(--sans); font-size:0.7rem; font-weight:300; color:var(--cream-dim); }
.rep-nota { margin-top:4rem; padding:2.5rem; border:1px solid rgba(200,160,90,0.14); background:rgba(200,160,90,0.04); text-align:center; }
.rep-nota p { font-size:1.2rem; font-weight:300; font-style:italic; color:var(--cream-dim); line-height:1.7; }
.rep-nota strong { color:var(--gold); font-weight:400; font-style:normal; }

/* MÚSICOS */
.musicos-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:2rem; }
.musico-card { background:rgba(255,255,255,0.02); border:1px solid rgba(200,160,90,0.12); overflow:hidden; transition:border-color 0.4s, transform 0.3s; }
.musico-card:hover { border-color:rgba(200,160,90,0.4); transform:translateY(-4px); }
.musico-photo { height:300px; overflow:hidden; background:var(--purple-mid); display:flex; align-items:center; justify-content:center; position:relative; }
.musico-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:brightness(0.84); transition:transform 0.5s; }
.musico-card:hover .musico-photo img { transform:scale(1.04); }
.musico-photo-ph { font-family:var(--sans); font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:rgba(200,160,90,0.28); text-align:center; padding:2rem; line-height:1.8; }
.musico-photo::after { content:''; position:absolute; bottom:0; left:0; right:0; height:60px; background:linear-gradient(to top,var(--purple-deep),transparent); pointer-events:none; }
.musico-body { padding:1.6rem 1.8rem 2rem; }
.musico-name { font-size:1.55rem; font-weight:300; color:var(--cream); margin-bottom:0.15rem; }
.musico-inst { font-family:var(--sans); font-size:0.63rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
.musico-bio { font-family:var(--sans); font-size:0.8rem; font-weight:300; color:var(--cream-dim); line-height:1.85; }
.musicos-cta { margin-top:5rem; text-align:center; }
.musicos-cta p { font-family:var(--sans); font-size:0.87rem; font-weight:300; color:var(--cream-dim); line-height:1.9; margin-bottom:2rem; }

/* FOOTER */
.footer { background:#1A0822; padding:3rem var(--pad) 2rem; border-top:1px solid rgba(200,160,90,0.1); }
.footer-top { display:grid; grid-template-columns:1fr auto 1fr; gap:2rem; align-items:start; margin-bottom:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(200,160,90,0.07); }
.footer-logo img { height:52px; width:auto; opacity:0.65; }
.footer-nav ul { list-style:none; display:flex; flex-direction:column; gap:0.7rem; }
.footer-nav a { font-family:var(--sans); font-size:0.67rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--cream-dim); text-decoration:none; transition:color 0.3s; }
.footer-nav a:hover { color:var(--gold); }
.footer-social { display:flex; gap:0.8rem; justify-content:flex-end; }
.footer-social a {
  width:40px; height:40px; border:1px solid rgba(200,160,90,0.18);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--sans); font-size:0.58rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--gold-dim); text-decoration:none; transition:all 0.3s;
}
.footer-social a:hover { border-color:var(--gold); color:var(--gold); background:rgba(200,160,90,0.08); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; font-family:var(--sans); font-size:0.62rem; letter-spacing:0.1em; color:rgba(200,160,90,0.22); }

/* ANIMATIONS */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
.anim { opacity:0; }
.anim.visible { animation:fadeUp 0.85s ease forwards; }
.d1{animation-delay:0.1s} .d2{animation-delay:0.22s} .d3{animation-delay:0.34s} .d4{animation-delay:0.46s} .d5{animation-delay:0.58s}
.hero-text > * { animation:fadeUp 0.9s ease forwards; opacity:0; }
.hero-eyebrow{animation-delay:0.1s} .hero-title{animation-delay:0.22s}
.hero-tagline{animation-delay:0.38s} .hero-desc{animation-delay:0.5s} .hero-btns{animation-delay:0.64s}

/* RESPONSIVE */
@media(max-width:1024px){
  :root{--pad:2.5rem;--sec:5rem}
  .hero{grid-template-columns:1fr}
  .hero-photo{height:50vw;min-height:280px;order:-1}
  .hero-text{padding:3rem var(--pad)}
  .artists-grid{grid-template-columns:1fr;gap:2rem}
  .contact-grid{grid-template-columns:1fr;gap:3rem}
  .footer-top{grid-template-columns:1fr;text-align:center}
  .footer-social{justify-content:center}
  .footer-bottom{flex-direction:column;gap:0.5rem;text-align:center}
  .av-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  :root{--pad:1.5rem}
  .nav{padding:0.85rem 1.5rem}
  .nav-links{display:none;flex-direction:column;position:fixed;inset:76px 0 0;background:rgba(46,16,56,0.98);align-items:center;justify-content:center;gap:2.5rem}
  .nav-links.open{display:flex}
  .hamburger{display:flex}
  .nav-cta{display:none}
  .events-grid{grid-template-columns:1fr}
  .event-card{border-right:none}
  .form-row{grid-template-columns:1fr}
  .av-grid{grid-template-columns:1fr}
  .musicos-grid{grid-template-columns:1fr 1fr}
  .duo-strip{height:300px}
  .rep-obras{grid-template-columns:1fr}
}
@media(max-width:480px){.musicos-grid{grid-template-columns:1fr}}
