:root {
  --dark: #0f0f0f;
  --light: #f7f7f7;
  --accent: #25d366;
  --muted: #9aa0a6;
  --max-width: 1100px;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color: #111;
  background: #fff;
  -webkit-font-smoothing:antialiased;
}

.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 48px 20px;
}

/* Hero navigation bar */
.hero-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10001;
  background: linear-gradient(180deg, rgba(0,0,0,0.5), transparent);
  padding: 10px 0;
  transition: background 0.3s, box-shadow 0.3s;
}

.hero-nav.scrolled {
  background: rgba(11, 11, 11, 0.95);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.nav {
  display:flex;
  justify-content:center;
  align-items:center;
  padding:12px 0;
  position:relative;
}

.nav-links { 
  list-style:none; 
  display:flex; 
  gap:32px; 
  margin:0; 
  padding:0; 
  align-items:center;
}

.nav-links a { 
  color:#fff; 
  text-decoration:none; 
  font-weight:600; 
  font-size:0.95rem; 
  transition:all 0.3s; 
  padding:8px 0;
  border-bottom:2px solid transparent;
}

.nav-links a:hover { 
  border-bottom-color:var(--accent);
}

.nav-links a.nav-cta {
  background:var(--accent);
  padding:8px 20px;
  border-radius:50px;
  border:none;
}

.nav-links a.nav-cta:hover {
  background:#1fc557;
  transform:scale(1.05);
}

/* Hamburguesa - hidden on desktop */
.hamburger{
  display:none;
  width:44px;
  height:44px;
  border-radius:10px;
  border:none;
  background:rgba(255,255,255,0.15);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:6px;
  position:absolute;
  right:20px;
  z-index:10002;
}
.hamburger span{
  display:block;
  position:relative;
  width:20px;
  height:2px;
  background:#fff;
  transition: transform 250ms ease, opacity 200ms ease;
}
.hamburger span::before,
.hamburger span::after {
  content:'';
  position:absolute;
  width:100%;
  height:100%;
  background:#fff;
  transition: transform 250ms ease;
}
.hamburger span::before { top:-7px; }
.hamburger span::after { top:7px; }

body.nav-open .hamburger {
  background:rgba(0,0,0,0.05);
}
body.nav-open .hamburger span {
  background:transparent;
}
body.nav-open .hamburger span::before {
  transform:rotate(45deg);
  top:0;
  background:#111;
}
body.nav-open .hamburger span::after {
  transform:rotate(-45deg);
  top:0;
  background:#111;
}
.hamburger span::before, .hamburger span::after{
  content:'';
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background:#fff;
  transition: transform 250ms ease, top 250ms ease;
}
.hamburger span::before{ top:-7px }
.hamburger span::after{ top:7px }

/* open state */
.hamburger.open span{ background:transparent }
.hamburger.open span::before{ transform: translateY(7px) rotate(45deg) }
.hamburger.open span::after{ transform: translateY(-7px) rotate(-45deg) }

/* overlay when nav opens */
.nav-overlay{ position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:9996; display:none }
body.nav-open .nav-overlay{ display:block }

/* Hero section */
.hero {
  min-height:85vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background: linear-gradient(180deg, rgba(0,0,0,0.7), rgba(0,0,0,0.5)), #000;
  color:#fff;
  padding: 100px 0 60px;
  position:relative;
}

.hero-content { 
  display:grid; 
  gap:40px; 
  align-items:center;
  text-align:center;
}

.hero-main {
  max-width:800px;
  margin:0 auto;
}

.hero h1 { 
  margin:0 0 12px 0; 
  font-size:clamp(32px,7vw,56px); 
  line-height:1.2;
  font-weight:800;
}

.artist-name { 
  font-size:1.3rem; 
  margin:0 0 16px 0; 
  opacity:0.85; 
  font-style:italic; 
  font-weight:500; 
  letter-spacing:0.5px;
}

.lead { 
  font-size:1.2rem; 
  margin:0 0 24px 0; 
  opacity:0.95; 
  line-height:1.6;
}

.hero-ctas { 
  display:flex; 
  gap:16px; 
  margin-top:20px; 
  flex-wrap:wrap; 
  justify-content:center;
}

.btn { 
  display:inline-block; 
  text-decoration:none; 
  border:none; 
  cursor:pointer; 
  font-weight:700; 
  transition:all 0.3s;
}

.btn-primary { 
  background:var(--accent); 
  color:#fff; 
  padding:14px 32px; 
  border-radius:999px; 
  font-size:1.05rem;
}

.btn-primary:hover {
  background:#1fc557;
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(37,211,102,0.3);
}

.btn-large {
  padding:16px 40px;
  font-size:1.1rem;
}

.btn-outline { 
  background:transparent; 
  color:#fff; 
  padding:14px 32px; 
  border-radius:999px; 
  border:2px solid rgba(255,255,255,0.3); 
}

.btn-outline:hover {
  background:rgba(255,255,255,0.1);
  border-color:rgba(255,255,255,0.6);
}

.hero-info { 
  display:flex; 
  gap:24px; 
  align-items:flex-start; 
  justify-content:center;
  margin-top:40px; 
}

.qr-card {
  background:rgba(255,255,255,0.95);
  padding:20px;
  border-radius:16px;
  text-align:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.2);
}

.qr-label {
  color:#333;
  font-size:0.9rem;
  font-weight:600;
  margin:0 0 12px 0;
}

.qr-label-link {
  color:#333;
  font-size:0.9rem;
  font-weight:600;
  margin:0 0 12px 0;
  display:block;
  text-decoration:none;
  transition:color 0.3s;
}

.qr-label-link:hover {
  color:var(--accent);
}

.qr { 
  width:160px; 
  height:160px;
  display:block;
  border-radius:8px; 
}

.phones { 
  display:flex; 
  flex-direction:column; 
  gap:10px; 
  background:rgba(0,0,0,0.3);
  padding:20px;
  border-radius:16px;
  backdrop-filter:blur(10px);
}

.phones-label {
  font-size:0.9rem;
  font-weight:600;
  margin:0 0 8px 0;
  opacity:0.9;
}

.phones-label-link {
  font-size:1rem;
  font-weight:700;
  margin:0 0 12px 0;
  color:#fff;
  text-decoration:none;
  display:block;
  transition:all 0.3s;
  padding:8px 12px;
  background:rgba(37,211,102,0.2);
  border-radius:8px;
  border:1px solid rgba(37,211,102,0.3);
}

.phones-label-link:hover {
  background:var(--accent);
  border-color:var(--accent);
  transform:translateY(-2px);
}

.phone-btn {
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.2);
  color:#fff;
  padding:10px 16px;
  border-radius:8px;
  cursor:pointer;
  font-weight:600;
  font-size:0.95rem;
  transition:all 0.3s;
  text-align:left;
  text-decoration:none;
  display:block;
}

.phone-btn:hover {
  background:rgba(255,255,255,0.2);
  border-color:var(--accent);
  transform:translateX(4px);
}

.features { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-top:18px; }
.feature { 
  background:var(--light); 
  padding:18px; 
  border-radius:12px; 
  text-align:center; 
  font-weight:700; 
  user-select:none; 
  cursor:pointer; 
  transition:transform 0.2s, box-shadow 0.2s, background 0.2s;
}
.feature:hover { 
  transform:translateY(-2px); 
  box-shadow:0 4px 12px rgba(0,0,0,0.1); 
  background:#f0f0f0;
}
.feature:active { 
  transform:translateY(0); 
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
}

.cards { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
.card { 
  background:#fff; 
  border:1px solid #eee; 
  padding:14px; 
  border-radius:10px; 
  min-width:150px; 
  text-align:center; 
  user-select:none; 
  cursor:pointer; 
  transition:transform 0.2s, box-shadow 0.2s, background 0.2s;
}
.card:hover { 
  transform:translateY(-2px); 
  box-shadow:0 4px 12px rgba(0,0,0,0.1); 
  background:#f9f9f9;
}
.card:active { 
  transform:translateY(0); 
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
}

.menu img { width:100%; max-width:720px; border-radius:12px; display:block; }

.photo-grid { 
  display:grid; 
  grid-template-columns:repeat(3, 1fr); 
  gap:16px; 
  margin-top:20px; 
}
.photo-grid img { 
  width:100%; 
  height:400px; 
  object-fit:contain; 
  border-radius:12px; 
  cursor:pointer; 
  transition:transform 0.3s, box-shadow 0.3s;
  background:#f5f5f5;
}
.photo-grid img:hover { 
  transform:scale(1.03); 
  box-shadow:0 8px 24px rgba(0,0,0,0.15); 
}

.gallery { display:grid; grid-template-columns:repeat(auto-fit, minmax(120px,1fr)); gap:10px; }
.gallery img { width:100%; height:150px; object-fit:cover; border-radius:10px; cursor:pointer; }

.map iframe { width:100%; height:300px; border:0; border-radius:10px; }

.cta { background:#0b0b0b; color:#fff; padding:40px 24px; border-radius:12px; margin: 0 auto; text-align:center; }
.cta h2 { margin-top:0; }
.cta > p { margin-bottom:32px; }

.cta-options { 
  display:grid; 
  grid-template-columns:repeat(2, 1fr); 
  gap:24px; 
  max-width:1000px; 
  margin:0 auto; 
}

.cta-box { 
  background:rgba(255,255,255,0.05); 
  padding:24px; 
  border-radius:12px; 
  border:1px solid rgba(255,255,255,0.1); 
}

.cta-box h3 { 
  margin:0 0 16px 0; 
  font-size:1.25rem; 
  color:#fff; 
}

.cta-title-link {
  color:#fff;
  text-decoration:none;
  transition:color 0.3s;
}

.cta-title-link:hover {
  color:var(--accent);
}

.cta-box .btn { 
  margin:0 0 16px 0; 
  width:100%; 
}

.contacts { 
  color:#fff; 
  display:flex; 
  flex-direction:column; 
  gap:8px; 
  align-items:center; 
  text-align:center; 
  margin-top:16px; 
}
.contacts a { color:#fff; }

.contact-form { 
  display:flex; 
  flex-direction:column; 
  gap:12px; 
}

.contact-form input,
.contact-form textarea { 
  padding:12px; 
  border-radius:8px; 
  border:1px solid rgba(255,255,255,0.2); 
  background:rgba(255,255,255,0.1); 
  color:#fff; 
  font-family:inherit; 
  font-size:0.95rem; 
}

.contact-form input::placeholder,
.contact-form textarea::placeholder { 
  color:rgba(255,255,255,0.5); 
}

.contact-form input:focus,
.contact-form textarea:focus { 
  outline:none; 
  border-color:var(--accent); 
  background:rgba(255,255,255,0.15); 
}

.contact-form button { 
  margin-top:8px; 
}

.mobile-sticky{display:none}

#toast { position:fixed; right:20px; bottom:90px; z-index:9999; }
.toast-item { background:#222; color:#fff; padding:10px 14px; border-radius:8px; opacity:0.95; margin-top:8px; }

.whatsapp-float { position:fixed; bottom:20px; right:20px; background:var(--accent); color:#fff; padding:12px 18px; border-radius:999px; text-decoration:none; box-shadow:0 6px 18px rgba(37,211,102,0.18); font-weight:700; }

.small { color:var(--muted); font-size:0.95rem; }

/* Footer */
footer {
  background:#0f0f0f;
  color:#999;
  padding:32px 20px;
  text-align:center;
  font-size:0.9rem;
  margin: 100px 0px 0px 0px;
}
footer p { margin:8px 0; }
footer a { color:#999; text-decoration:underline; }
footer a.footer-ig { 
  text-decoration:none; 
  color:#e4405f; 
  font-weight:600; 
  transition:opacity 0.3s; 
  display:inline-flex; 
  align-items:center;
}
footer a.footer-ig:hover { 
  opacity:0.8; 
}

/* Desktop responsive */
@media (min-width: 768px){
  .nav-links { display:flex !important; }
  .hamburger { display:none !important; }
}

@media (min-width: 1024px){
  .hero { padding:120px 0 80px; }
  .hero-content { gap:60px; }
  .hero-info { flex-direction:row; }
}

/* Mobile responsive */
@media (max-width: 767px){
  .hamburger{display:flex !important}
  
  .hero-nav {
    padding: 6px 0;
  }
  
  .nav {
    padding: 8px 0;
  }
  
  .nav-links{
    position:fixed; right:0; top:0; height:100vh; width:80%; max-width:320px; 
    background:#fff; color:#111; flex-direction:column; 
    padding:90px 24px 24px 24px; gap:24px; 
    box-shadow:-8px 0 30px rgba(0,0,0,0.15); z-index:9997;
    transform: translateX(100%);
    visibility: hidden;
    opacity: 0;
    transition: transform 300ms cubic-bezier(.2,.9,.2,1), opacity 220ms ease;
    display:flex;
  }
  body.nav-open .nav-links{ transform: translateX(0); visibility: visible; opacity:1 }
  .nav-links a{color:#111; padding:18px 14px; font-size:1.05rem; border:none; border-radius:8px; transition:background 0.2s}
  .nav-links a:hover{background:#f5f5f5}
  .nav-links li{border:none; margin:0}
  .nav-links a.nav-cta{background:var(--accent); color:#fff; margin-top:40px; padding:18px 24px; width:100%; display:block; text-align:center; font-size:1.1rem; font-weight:600}
  .nav-links a.nav-cta:hover{background:#1eb854}

  .mobile-sticky{
    display:flex !important; 
    gap:10px; 
    position:fixed; 
    bottom:0; 
    left:0; 
    right:0; 
    padding:10px 12px; 
    background:#fff; 
    border-top:1px solid #ddd; 
    align-items:center; 
    justify-content:space-between; 
    z-index:9995;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.08);
  }
  .mobile-sticky .btn-primary{padding:10px 16px; font-size:0.9rem; white-space:nowrap}
  .mobile-sticky .small{font-size:0.85rem}

  .container{padding:32px 16px 32px 16px}
  main > section:last-of-type{padding-bottom:100px}

  .desktop-only{display:none !important}
  .whatsapp-float{display:none !important}
  
  .cta-options { grid-template-columns:1fr; gap:16px }
  
  /* Reduce el bloque negro bajo la hamburguesa en mobile */
  .hero{min-height:32vh; padding:40px 0 20px 0}
  .hero h1 { font-size:clamp(28px,8vw,42px) }
  .hero-ctas{flex-direction:column; width:100%}
  .hero-ctas .btn{width:100%; text-align:center; padding:14px 20px}
  
  .photo-grid { grid-template-columns:1fr; gap:16px }
  .photo-grid img { height:300px; object-fit:contain }
}

@media (max-width: 480px){
  .gallery { grid-template-columns: repeat(2, 1fr); gap:8px }
  .gallery img { height:100px; object-fit:cover }
  .hero h1 { font-size: clamp(24px, 7vw, 36px); line-height:1.2 }
  .artist-name { font-size:1.1rem }
  .lead { font-size: 1rem; line-height:1.4 }
  .container { padding:24px 12px 70px 12px }
  .features { grid-template-columns: 1fr; gap:12px }
  .feature { padding:14px; font-size:0.95rem }
  .cards { justify-content: center }
  .card { min-width:140px; font-size:0.9rem }
  .cta { padding:28px 16px; margin:24px 0 }
}

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