:root{
  --navy:#0D2240;
  --navy-2:#0b1b35;
  --text:#f4f6fb;
  --muted:rgba(244,246,251,.72);
  --line:#A50021; /* rojo dossier */
  --card:var(--navy-2);
  --border:rgba(255,255,255,.12);
  --shadow: 0 20px 60px rgba(0,0,0,.35);
  --radius: 22px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background: linear-gradient(180deg, var(--navy), var(--navy-2));
  overflow-x:hidden;
}

/* ALWAYS two lines, thin & parallel */
body::before,
body::after{
  content:"";
  position:fixed;
  left:-25vw;
  top:10vh;
  width:160vw;
  height:4px;
  background:linear-gradient(90deg, transparent 8%, var(--line) 22%, var(--line) 78%, transparent 92%);
  transform:rotate(-24deg);
  opacity:.9;
  pointer-events:none;
  z-index:0;
}
body::after{
  top:calc(10vh + 12px);
}

a{color:inherit; text-decoration:none}
a:hover{opacity:.95}

.container{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
  position:relative;
  z-index:1;
}

header{
  position:sticky;
  top:0;
  z-index:30;
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0;
  gap:16px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand img{height:54px; width:auto; filter: drop-shadow(0 0 10px rgba(255,255,255,.18))}
.brand .name{
  display:flex;
  flex-direction:column;
  line-height:1;
}
.brand .name strong{font-family:'Archivo Black', 'Bebas Neue', sans-serif; font-size:19px; letter-spacing:.5px; text-shadow:2px 0 0 var(--line)}
.brand .name span{font-size:12px; color:var(--muted); margin-top:2px}

.navlinks{
  display:flex;
  align-items:center;
  gap:18px;
}
.navlinks a{
  font-weight:600;
  font-size:14px;
  letter-spacing:.2px;
  color:rgba(244,246,251,.88);
  padding:10px 10px;
  border-radius:999px;
}
.navlinks a.active,
.navlinks a:hover{
  background:var(--navy-2);
}

.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid #A50021;
  background:#A50021;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  font-weight:700;
  font-size:14px;
}
.cta.primary{
  border-color:#A50021;
  background:#A50021;
}
.cta.primary{
  border-color:#A50021;
  background:#A50021;
}

.burger{display:none; border:1px solid rgba(255,255,255,.16); background:var(--navy-2); color:var(--text); border-radius:12px; padding:10px 12px;}

.hero{
  padding:52px 0 32px;
}
.heroGrid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:26px;
  align-items:stretch;
}

.heroCard{
  border:1px solid rgba(255,255,255,.10);
  background:var(--card);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow);
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:rgba(244,246,251,.86);
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
}
.kicker i{
  width:10px; height:10px; border-radius:999px; background:var(--line);
  box-shadow: 0 0 0 4px rgba(179,27,44,.22);
}

h1{
  font-family:'Archivo Black', 'Bebas Neue', sans-serif;
  font-size:62px;
  line-height:.92;
  letter-spacing:.8px;
  margin:14px 0 12px;
  color:var(--line);
  text-transform:uppercase;
  text-shadow:2px 2px 0 rgba(255,255,255,.95);
}

.lead{color:var(--muted); font-size:18px; line-height:1.6; margin:0 0 18px}

.heroActions{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px}

.heroMedia{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow);
  position:relative;
}
.heroMedia img{width:100%; height:100%; object-fit:cover; display:block; min-height:420px}
.heroMedia .badge{
  position:absolute;
  left:18px;
  bottom:18px;
  background:var(--navy);
  border:1px solid rgba(255,255,255,.14);
  padding:10px 12px;
  border-radius:999px;
  font-weight:700;
  font-size:13px;
}

.section{padding:44px 0}
.section h2{font-family:'Archivo Black', 'Bebas Neue', sans-serif; font-size:42px; letter-spacing:.6px; margin:0 0 12px; color:var(--line); text-transform:uppercase}
.section p{color:var(--muted); line-height:1.75; margin:0}

.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:26px;
  align-items:start;
}

.card{
  background:rgba(11,27,53,.92);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);
  padding:22px;
}

.grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:14px;
}

.tile{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:var(--navy-2);
  position:relative;
}
.tile img{width:100%; height:100%; object-fit:cover; display:block}

/* simple masonry using varying spans */
.span-7{grid-column: span 7}
.span-5{grid-column: span 5}
.span-6{grid-column: span 6}
.span-4{grid-column: span 4}
.span-8{grid-column: span 8}
.span-12{grid-column: span 12}
.tile.tall{min-height:320px}
.tile.mid{min-height:240px}
.tile.short{min-height:180px}

.pills{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px}
.pill{
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.14);
  background:var(--navy-2);
  border-radius:999px;
  color:rgba(244,246,251,.9);
  font-weight:700;
  font-size:13px;
}

.pricing{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:14px;
  margin-top:14px;
}
.priceCard h3{margin:0; font-size:18px}
.priceCard .big{font-family:'Bebas Neue', sans-serif; font-size:44px; margin:8px 0 6px}
.priceCard ul{margin:10px 0 0; padding-left:18px; color:var(--muted); line-height:1.6}

.faq{
  display:grid;
  gap:10px;
  margin-top:10px;
}
.details{
  border:1px solid rgba(255,255,255,.10);
  background:var(--navy-2);
  border-radius:16px;
  padding:14px 16px;
}
.details summary{cursor:pointer; font-weight:800}
.details p{margin:10px 0 0; color:var(--muted)}

.pressItem{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.pressItem .meta{max-width:700px}
.pressItem .source{color:rgba(244,246,251,.9); font-weight:900}
.pressItem .link{white-space:nowrap}

footer{
  padding:44px 0;
  border-top:1px solid rgba(255,255,255,.08);
  background:var(--navy-2);
}
.footerGrid{display:grid; grid-template-columns: 1.2fr .8fr; gap:18px; align-items:start}
small{color:rgba(244,246,251,.62)}

.form{
  display:grid;
  gap:12px;
  margin-top:10px;
}
.input{
  width:100%;
  padding:14px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:var(--navy-2);
  color:var(--text);
  outline:none;
}
textarea.input{min-height:140px; resize:vertical}

.notice{color:rgba(244,246,251,.65); font-size:13px; margin-top:10px}

/* gallery lightbox */
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.82);
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:60;
}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1080px, 100%); max-height:90vh; border-radius:18px; border:1px solid rgba(255,255,255,.16)}
.lightbox button{position:absolute; top:18px; right:18px}

/* responsive */
@media (max-width: 920px){
  .heroGrid{grid-template-columns:1fr;}
  h1{font-size:54px}
  .heroMedia img{min-height:360px}
  .split{grid-template-columns:1fr}
  .pricing{grid-template-columns:1fr}
  .footerGrid{grid-template-columns:1fr}
}

@media (max-width: 760px){
  .navlinks{display:none}
  .burger{display:inline-flex}
  .nav.open .navlinks{
    display:flex;
    position:absolute;
    left:0;
    right:0;
    top:68px;
    padding:14px 0;
    background:var(--navy);
    border-bottom:1px solid rgba(255,255,255,.08);
    justify-content:center;
    flex-wrap:wrap;
  }
  .grid{gap:10px}
  .span-7,.span-5,.span-6,.span-4,.span-8{grid-column: span 12}
  .tile.tall{min-height:240px}
}


.pressCutout{
  display:block;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:var(--navy-2);
}
.pressCutout img{
  width:100%;
  height:auto;
  display:block;
}


/* reCAPTCHA wrapper */
.recaptchaWrap{max-width:100%; overflow:hidden}


/* dossier-inspired additions */
.bandCallout{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-top:4px solid var(--line)}
.pressHome .card{padding:14px}
.repertorioGrid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; align-items:start}
.repertorioBlock h2{font-size:30px; margin-top:0}
.songList{columns:1; margin:0; padding-left:18px; color:var(--muted); line-height:1.65; font-size:14px}
.priceCard{border-top:4px solid var(--line)}
.priceCard h3{font-family:'Archivo Black', sans-serif; text-transform:uppercase; color:var(--text); text-shadow:1px 0 0 var(--line)}
.navlinks a[target="_blank"]::after{content:"↗"; font-size:10px; margin-left:4px; opacity:.75}
@media (max-width: 920px){.repertorioGrid{grid-template-columns:1fr}.repertorioBlock h2{font-size:28px}}
@media (max-width: 760px){.brand .name{display:none} h1{font-size:44px!important}.section h2{font-size:34px}.badge{max-width:calc(100% - 36px)}}
