:root {
  --primary: #4F46E5; /* Azul Indigo */
  --secondary: #E11D48; /* Rosa/Magenta vibrante */
  --bg-color: #F8FAFC;
  --text-color: #1E293B;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; background-color: var(--bg-color); color: var(--text-color); line-height: 1.6; }
header { background-color: white; padding: 1rem 5%; box-shadow: 0 2px 10px rgba(0,0,0,0.05); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.logo { font-size: 1.8rem; font-weight: 900; color: var(--primary); text-decoration: none; letter-spacing: -0.5px; }
nav { margin-top: 10px; }
nav a { text-decoration: none; color: var(--text-color); margin-left: 20px; font-weight: 600; transition: color 0.3s; }
nav a:hover, nav a.active { color: var(--secondary); }
.container { max-width: 900px; margin: 40px auto; padding: 20px; text-align: center; }
.btn { display: inline-block; padding: 15px 35px; border-radius: 50px; text-decoration: none; font-weight: bold; font-size: 1.1rem; transition: all 0.3s; cursor: pointer; border: none; }
.btn-primary { background-color: var(--secondary); color: white; box-shadow: 0 4px 15px rgba(225, 29, 72, 0.4); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(225, 29, 72, 0.6); }
.btn-outline { border: 2px solid var(--primary); color: var(--primary); border-radius: 8px; }
.btn-outline:hover { background-color: var(--primary); color: white; }
.card { background: white; border-radius: 16px; padding: 40px 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); margin-top: 30px; }
.qr-container { margin-top: 30px; padding: 20px; background: #f1f5f9; display: inline-block; border-radius: 12px; }
.qr-container img { border-radius: 8px; }
h1 { font-size: 2.8rem; margin-bottom: 15px; color: var(--primary); line-height: 1.2; }
p.subtitle { font-size: 1.2rem; color: #475569; max-width: 600px; margin: 0 auto 30px; }
@media (min-width: 768px) { header { flex-wrap: nowrap; } nav { margin-top: 0; } .card { padding: 50px; } }
