/*
Theme Name: Haruspex
Description: Tema oficial de Haruspex — True Spanish Wizard Metal
Version: 1.0
Author: Haruspex
Author URI: https://www.haruspexoficial.com
*/

/* ── VARIABLES ───────────────────────────────────── */
:root {
  --amber:      #ffaa00;
  --amber-hot:  #e8820a;
  --amber-deep: #7a3d00;
  --amber-glow: #ff6600;
  --ink:        #08060a;
  --parchment:  #160f08;
  --dark:       #0d0a0e;
  --text:       #e8d8b0;
  --muted:      #b89e6a;
  --ember:      #cc3300;
}

/* ── RESET Y BASE ────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body.haruspex-portada {
  background: var(--ink);
  color: var(--text);
  font-family: 'Crimson Pro', Georgia, serif;
  font-size: 18px;
  line-height: 1.7;
  overflow-x: hidden;
}

body.haruspex-portada ::-webkit-scrollbar { width:6px; }
body.haruspex-portada ::-webkit-scrollbar-track { background:var(--ink); }
body.haruspex-portada ::-webkit-scrollbar-thumb { background:var(--amber-deep); border-radius:3px; }

/* ── ENLACE DE TEXTO HARUSPEX ────────────────────── */
a.hx-link,
.sc-content a,
.entry-content a {
  text-decoration: none;
  position: relative;
  color: var(--text) !important;
  transition: color .3s;
}
a.hx-link::after,
.sc-content a::after,
.entry-content a::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 100%; height: 0.5px;
  background: var(--text);
  transition: background .3s;
}
a.hx-link:hover,
.sc-content a:hover,
.entry-content a:hover { color: var(--amber) !important; }
a.hx-link:hover::after,
.sc-content a:hover::after,
.entry-content a:hover::after { background: var(--amber); }

.sc-content strong,
.entry-content strong { color: var(--amber); }
.sc-content a strong,
.entry-content a strong { color: inherit; }

/* ── CLASES UTILITARIAS DE ENLACE ────────────────────── */
/* hx-link-action: subrayado animado, reposo text, hover ámbar */
.hx-link-action {
  color: var(--text); text-decoration: none;
  position: relative; transition: color .3s;
}
.hx-link-action::after {
  content: ''; position: absolute; bottom: -2px; left: 0;
  width: 0; height: 1px;
  background: rgba(232,216,176,.3);
  transition: width .3s, background .3s;
}
.hx-link-action:hover { color: var(--amber); }
.hx-link-action:hover::after { width: 100%; background: var(--amber); }

/* hx-link-nav: subrayado permanente tenue, reposo text, hover ámbar */
.hx-link-nav {
  color: var(--text); text-decoration: none;
  position: relative; transition: color .3s;
}
.hx-link-nav::after {
  content: ''; position: absolute; bottom: -2px; left: 0;
  width: 100%; height: 1px;
  background: rgba(232,216,176,.3); transition: background .3s;
}
.hx-link-nav:hover { color: var(--amber); }
.hx-link-nav:hover::after { background: var(--amber); }

/* Footer social: subrayado solo bajo el texto, no el icono */
ul.footer-social-list li a > span {
  position: relative;
}
ul.footer-social-list li a > span::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 1px;
  background: var(--amber);
  transition: width .3s;
}
ul.footer-social-list li a:hover > span::after { width: 100%; }

/* ── NAV ─────────────────────────────────────────── */
#main-nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  padding: 0 3rem; height: 70px;
  display: flex; align-items: center; justify-content: space-between;
  transition: background .4s;
}
#main-nav.scrolled {
  background: rgba(8,6,10,.93);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,170,0,.2);
}
.nav-logo {
  font-family: 'Metamorphous', serif;
  font-size: 1.2rem; color: var(--amber);
  letter-spacing: .12em; text-decoration: none;
  text-shadow: 0 0 18px rgba(232,130,10,.5);
}
.nav-links {
  display: flex; gap: 2.5rem; list-style: none;
}
.nav-links a {
  font-family: 'Cinzel', serif; font-size: .72rem;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--text); text-decoration: none;
  position: relative; transition: color .3s;
}
.nav-links a::after {
  content: ''; position: absolute; bottom: -4px; left: 0;
  width: 0; height: 1px; background: var(--amber); transition: width .3s;
}
.nav-links a:hover { color: var(--amber); }
.nav-links a:hover::after { width: 100%; }
.nav-hamburger { display: none; }

/* ── HERO ────────────────────────────────────────── */
.hero {
  height: 95vh; min-height: 700px;
  position: relative; display: flex;
  align-items: center; justify-content: center; overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0;
  background: url('https://www.haruspexoficial.com/wp-content/uploads/2025/07/haruspexwizards.webp')
    center center / cover no-repeat;
}
.hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background:
    linear-gradient(180deg,
      rgba(8,6,10,.4) 0%,
      rgba(8,6,10,.15) 30%,
      rgba(8,6,10,.6) 65%,
      rgba(8,6,10,.97) 100%),
    radial-gradient(ellipse 70% 55% at 50% 40%,
      rgba(232,130,10,.07) 0%, transparent 70%);
}
.embers { position: absolute; inset: 0; pointer-events: none; }
.ember-particle {
  position: absolute; width: 3px; height: 3px;
  background: var(--amber); border-radius: 50%;
  animation: float-up linear infinite; opacity: 0;
}
@keyframes float-up {
  0%   { opacity:0; transform:translateY(0) translateX(0); }
  10%  { opacity:1; }
  90%  { opacity:.5; }
  100% { opacity:0; transform:translateY(-80vh) translateX(var(--drift)); }
}
.hero-ring {
  position: absolute; top:50%; left:50%;
  transform: translate(-50%,-50%);
  width: 560px; height: 560px;
  border: 1px solid rgba(255,170,0,.1); border-radius: 50%;
  animation: pulse-ring 4s ease-in-out infinite;
}
.hero-ring::before {
  content: ''; position: absolute; inset: 28px;
  border: 1px solid rgba(255,170,0,.06); border-radius: 50%;
  animation: pulse-ring 4s ease-in-out infinite reverse;
}
@keyframes pulse-ring {
  0%,100% { transform:translate(-50%,-50%) scale(1); opacity:.5; }
  50%     { transform:translate(-50%,-50%) scale(1.02); opacity:1; }
}
.hero-content {
  position: relative; z-index: 2;
  text-align: center; padding: 0 2rem;
}
.hero-eyebrow {
  font-family: 'Cinzel', serif; font-size:.72rem;
  letter-spacing: .5em; text-transform: uppercase;
  color: var(--amber); margin-bottom: 2rem;
  opacity: 0; animation: fade-in-up 1s ease .3s forwards;
}
.hero-tagline {
  font-family: 'Metamorphous', serif;
  font-size: clamp(1rem,2.5vw,1.5rem);
  letter-spacing: .25em; color: var(--text);
  text-shadow: 0 2px 20px rgba(0,0,0,.9);
  opacity: 0; animation: fade-in-up 1s ease .6s forwards;
  margin-bottom: .75rem;
}
.hero-subtitle {
  font-family: 'Cinzel', serif; font-size: .78rem;
  letter-spacing: .4em; text-transform: uppercase;
  color: var(--muted);
  opacity: 0; animation: fade-in-up 1s ease .8s forwards;
  margin-bottom: 2.5rem;
}
.hero-divider {
  display: flex; align-items: center; justify-content: center;
  gap: 1rem; margin: 0 auto 2.5rem; max-width: 360px;
  opacity: 0; animation: fade-in-up 1s ease 1s forwards;
}
.hero-divider::before {
  content:''; flex:1; height:1px;
  background: linear-gradient(90deg,transparent,var(--amber-deep));
}
.hero-divider::after {
  content:''; flex:1; height:1px;
  background: linear-gradient(90deg,var(--amber-deep),transparent);
}
.hero-divider span { color:var(--amber); font-size:1.1rem; }
.hero-cta {
  display: inline-flex; align-items: center; gap: .75rem;
  padding: .9rem 2.5rem;
  border: 1px solid var(--amber-deep);
  color: var(--amber); font-family: 'Cinzel',serif;
  font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  text-decoration: none; position: relative; overflow: hidden;
  transition: all .4s;
  opacity: 0; animation: fade-in-up 1s ease 1.2s forwards;
}
.hero-cta::before {
  content:''; position:absolute; inset:0;
  background: linear-gradient(135deg,rgba(255,170,0,.12),transparent);
  transform: translateX(-100%); transition: transform .4s;
}
.hero-cta:hover { border-color:var(--amber); color:var(--amber); }
.hero-cta:hover::before { transform: translateX(0); }
.scroll-indicator {
  position: absolute; bottom: 2.5rem;
  left: 0; right: 0;
  display: flex; flex-direction: column; align-items: center; gap: .5rem;
  opacity: 0; animation: fade-in-up 1s ease 1.5s forwards;
}
.scroll-indicator span {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.4em; text-transform:uppercase; color:var(--muted);
}
.scroll-line {
  width:1px; height:50px;
  background: linear-gradient(180deg,var(--amber-deep),transparent);
  animation: scroll-pulse 2s ease-in-out infinite;
}
@keyframes scroll-pulse { 0%,100%{opacity:.4;} 50%{opacity:1;} }
@keyframes fade-in-up {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── SECCIONES BASE ──────────────────────────────── */
section { position: relative; overflow: hidden; }
.section-inner { max-width:1200px; margin:0 auto; padding:6rem 3rem; }
.section-label {
  font-family: 'Cinzel',serif; font-size:.72rem;
  letter-spacing:.5em; text-transform:uppercase; color:var(--amber);
  margin-bottom:.75rem; display:flex; align-items:center; gap:1rem;
}
.section-label::before { content:''; width:2rem; height:1px; background:var(--amber); }
.section-title {
  font-family: 'Metamorphous',serif;
  font-size: clamp(1.8rem,4vw,2.8rem); color:var(--amber);
  line-height:1.25; margin-bottom:3rem;
  text-shadow: 0 0 30px rgba(232,130,10,.22);
}

/* ── CONCIERTO ───────────────────────────────────── */
.concert-section {
  background: linear-gradient(180deg,var(--ink),#110a05,var(--ink));
  border-top: 1px solid rgba(255,170,0,.12);
  border-bottom: 1px solid rgba(255,170,0,.12);
}
.concert-grid {
  display: grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center;
}
.concert-poster {
  position: relative; aspect-ratio:3/4;
  border: 1px solid rgba(255,170,0,.22); overflow:hidden;
}
.concert-poster img { width:100%; height:100%; object-fit:cover; }
.concert-poster-placeholder {
  width:100%; height:100%;
  background: linear-gradient(135deg,#180e05,#241508);
  display: flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1rem;
}
.poster-text {
  font-family:'Metamorphous',serif; font-size:1.2rem;
  color:var(--amber); text-align:center; padding:2rem; line-height:1.6;
}
.poster-label {
  font-size:.72rem; font-family:'Cinzel',serif;
  letter-spacing:.2em; color:var(--muted);
}
.concert-info { display:flex; flex-direction:column; gap:1.75rem; }
.concert-date-block { display:flex; align-items:baseline; gap:1rem; }
.concert-day {
  font-family:'Metamorphous',serif; font-size:5.5rem; line-height:1;
  color:var(--amber); text-shadow:0 0 40px rgba(255,170,0,.35);
}
.concert-month-year { display:flex; flex-direction:column; }
.concert-month {
  font-family:'Metamorphous',serif; font-size:1.5rem;
  color:var(--text); text-transform:uppercase; letter-spacing:.1em;
}
.concert-year {
  font-family:'Cinzel',serif; font-size:.82rem;
  color:var(--muted); letter-spacing:.2em;
}
.concert-details {
  border-left:2px solid var(--amber-deep); padding-left:1.5rem;
  display:flex; flex-direction:column; gap:.4rem;
}
.concert-venue {
  font-family:'Metamorphous',serif; font-size:1.25rem; color:var(--amber);
}
.concert-location { font-size:.93rem; color:var(--muted); }
.concert-time {
  font-family:'Cinzel',serif; font-size:.78rem;
  color:var(--amber); letter-spacing:.2em;
}
.concert-collab {
  display:flex; align-items:center; gap:.75rem;
  padding:.75rem 1.25rem;
  background:rgba(255,170,0,.05); border:1px solid rgba(255,170,0,.1);
  font-size:.88rem; color:var(--muted);
}
.concert-collab strong { color:var(--text); }
.countdown { display:flex; gap:1.5rem; }
.countdown-unit { display:flex; flex-direction:column; align-items:center; gap:.25rem; }
.countdown-number {
  font-family:'Metamorphous',serif; font-size:2.6rem;
  color:var(--amber); line-height:1;
  text-shadow:0 0 18px rgba(255,170,0,.3);
  min-width:3rem; text-align:center;
}
.countdown-label {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.3em; text-transform:uppercase; color:var(--muted);
}
.concert-cta {
  display:inline-flex; align-items:center; gap:.75rem;
  padding:1rem 2rem; background:var(--ember); color:#fff;
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.3em; text-transform:uppercase; text-decoration:none;
  border:1px solid transparent; transition:all .3s; width:fit-content;
}
.concert-cta:hover { background:transparent; border-color:var(--ember); color:var(--ember); }

.concert-ctas {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}
.concert-cta-secondary {
  font-family: 'Cinzel', serif;
  font-size:.72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
}

/* Concierto vacio */
.concert-empty { text-align:center; }
.concert-empty-inner { display:flex; flex-direction:column; align-items:center; gap:1.5rem; }
.concert-empty-text {
  font-size:1.05rem; color:var(--muted); font-style:italic;
  line-height:1.8; max-width:600px;
}

/* ── NOVEDADES ───────────────────────────────────── */
.news-section { background:var(--ink); }
.news-grid {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  gap:1.5px; background:rgba(255,170,0,.1);
}
.news-card { background:var(--ink); overflow:hidden; cursor:pointer; transition:background .3s; }
.news-card:hover { background:#100a06; }
.news-card-image { aspect-ratio:16/9; background:var(--parchment); overflow:hidden; }
.news-card.featured .news-card-image { aspect-ratio:4/3; }
.news-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s; filter:saturate(.7); }
.news-card:hover .news-card-image img { transform:scale(1.05); }
.news-card-image-placeholder {
  width:100%; height:100%;
  background:linear-gradient(135deg,#180e05,#251508);
  display:flex; align-items:center; justify-content:center;
  color:var(--amber-deep); font-size:2rem;
}
.news-card-body { padding:1.5rem; }
.news-card.featured .news-card-body { padding:2rem; }
.news-tag {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.35em; text-transform:uppercase;
  color:var(--ember); margin-bottom:.75rem;
}
.news-tag a { color:inherit; text-decoration:none; }
.news-card-title {
  font-family:'Metamorphous',serif; font-size:.95rem;
  color:var(--text); line-height:1.4; margin-bottom:.75rem;
  transition:color .3s;
}
.news-card-title a { color:inherit; text-decoration:none; }
.news-card.featured .news-card-title { font-size:1.25rem; }
.news-card:hover .news-card-title { color:var(--amber); }
.news-card-excerpt { font-size:.88rem; color:var(--muted); line-height:1.65; }
.news-card-footer {
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.5rem; border-top:1px solid rgba(255,170,0,.1);
}
.news-date {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.2em; color:var(--muted);
}
.news-link {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--amber); text-decoration:none;
  display:flex; align-items:center; gap:.4rem; transition:gap .3s;
}
.news-link:hover { gap:.8rem; }

/* ── VIDEOS ──────────────────────────────────────── */
.videos-section {
  background:linear-gradient(180deg,var(--ink),#0d0805,var(--ink));
  border-top:1px solid rgba(255,170,0,.07);
}
.videos-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.5px; background:rgba(255,170,0,.1); margin-top:2rem;
}
.video-thumb {
  aspect-ratio:16/9; position:relative; overflow:hidden;
  cursor:pointer; background:var(--parchment);
}
.video-facade {
  width:100%; height:100%; position:absolute; inset:0;
  background-size:cover; background-position:center;
  transition: transform .4s;
}
.video-facade::after {
  content:''; position:absolute; inset:0;
  background:rgba(0,0,0,.35); transition:background .3s;
}
.video-thumb:hover .video-facade { transform:scale(1.04); }
.video-thumb:hover .video-facade::after { background:rgba(0,0,0,.15); }
.video-play-btn {
  position:absolute; inset:0; z-index:2;
  display:flex; align-items:center; justify-content:center;
}
.video-play-circle {
  width:56px; height:56px; border-radius:50%;
  border:2px solid rgba(255,255,255,.7);
  background:rgba(0,0,0,.45);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; color:#fff; padding-left:4px;
  transition:all .3s; backdrop-filter:blur(2px);
}
.video-thumb:hover .video-play-circle {
  border-color:#fff; background:rgba(255,170,0,.7); transform:scale(1.12);
}
.video-thumb-placeholder {
  width:100%; height:100%;
  background:linear-gradient(135deg,#180e05,#0d0805);
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:1rem;
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.2em; color:var(--muted);
}

.videos-cta { margin-top:2rem; }
.btn-youtube-hero {
  display:inline-flex; align-items:center; gap:.75rem;
  padding:.85rem 2rem;
  border:1px solid var(--amber-deep);
  color:var(--amber);
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.2em;
  text-decoration:none; text-transform:uppercase;
  position:relative; overflow:hidden;
  transition:color .3s, border-color .3s;
}
.btn-youtube-hero::before {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, rgba(255,170,0,.07), transparent);
  transform:translateX(-100%);
  transition:transform .5s;
}
.btn-youtube-hero:hover::before { transform:translateX(100%); }
.btn-youtube-hero:hover { border-color:var(--amber); color:#fff; }
.btn-youtube-hero__rune {
  font-size:.65rem; color:var(--amber-deep);
  transition:color .3s;
}
.btn-youtube-hero:hover .btn-youtube-hero__rune { color:var(--amber); }
.btn-youtube-hero__arrow {
  font-size:1rem; line-height:1;
  transition:transform .3s;
}
.btn-youtube-hero:hover .btn-youtube-hero__arrow { transform:translateX(4px); }

/* Lightbox */
.hx-lightbox {
  display:none; position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,.92); align-items:center; justify-content:center;
  backdrop-filter:blur(6px);
}
.hx-lightbox.active { display:flex; }
.hx-lightbox-inner {
  position:relative; width:90vw; max-width:960px;
  aspect-ratio:16/9;
}
.hx-lightbox-inner iframe {
  width:100%; height:100%; border:0; border-radius:2px;
}
.hx-lightbox-close {
  position:absolute; top:-2.5rem; right:0;
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.3em;
  color:var(--muted); cursor:pointer; background:none; border:none;
  text-transform:uppercase; transition:color .3s;
}
.hx-lightbox-close:hover { color:var(--amber); }

/* ── SPOTIFY ─────────────────────────────────────── */
.spotify-section { background:var(--ink); border-top:1px solid rgba(255,170,0,.07); }


.spotify-description {
  font-size:1.02rem; color:var(--muted); font-style:italic;
  margin-bottom:2rem; line-height:1.85;
}
.spotify-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:2rem 4rem;
  align-items:start;
  direction:rtl;
}
.spotify-grid > * { direction:ltr; }
.spotify-grid .spotify-player { grid-row:1 / 3; }
.spotify-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.btn-spotify {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.75rem 1.5rem; background:#1DB954; color:#000;
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.2em; text-decoration:none; border-radius:2px;
  transition:background .3s;
}
.btn-spotify:hover { background:#17a349; }
.btn-youtube {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.75rem 1.5rem; border:1px solid var(--amber-deep);
  color:var(--amber); font-family:'Cinzel',serif;
  font-size:.72rem; letter-spacing:.2em; text-decoration:none;
  transition:all .3s;
}
.btn-youtube:hover { border-color:var(--amber); }
.spotify-player {
  background:#0f0a04; border:1px solid rgba(255,170,0,.15);
  border-radius:3px; min-height:380px;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:1rem; color:var(--muted);
}
.spotify-player iframe { width:100%; border-radius:3px; border:0; }
.spotify-placeholder-icon { font-size:2rem; color:#1DB954; }
.spotify-placeholder-text {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.2em; color:var(--muted);
}
.spotify-placeholder-hint { font-size:.72rem; color:#333; }

/* ── SOCIAL ──────────────────────────────────────── */
.social-section { background:#060406; border-top:1px solid rgba(255,170,0,.18); text-align:center; }
.social-title {
  font-family:'Metamorphous',serif;
  font-size:clamp(1.8rem,4vw,2.8rem); color:var(--amber);
  margin-bottom:1rem; text-shadow:0 0 30px rgba(232,130,10,.22);
}
.social-subtitle { font-size:1.02rem; color:var(--muted); font-style:italic; margin-bottom:3rem; }
.social-links { display:flex; justify-content:center; gap:1.5rem; flex-wrap:wrap; margin-bottom:2rem; }
.social-link {
  display:flex; flex-direction:column; align-items:center; gap:.75rem;
  padding:1.75rem 1.5rem; border:1px solid rgba(255,170,0,.15);
  min-width:110px; text-decoration:none; color:var(--text);
  transition:all .3s; position:relative; overflow:hidden;
}
.social-link::before {
  content:''; position:absolute; inset:0; opacity:0; transition:opacity .3s;
}
.social-link.instagram::before { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.social-link.tiktok::before   { background:linear-gradient(135deg,#010101,#69C9D0); }
.social-link.facebook::before { background:#1877F2; }
.social-link.youtube::before  { background:#FF0000; }
.social-link.bandcamp::before   { background:#1DA0C3; }
.social-link.email::before    { background:#4A4A4A; }
.social-link:hover::before { opacity:.18; }
.social-link:hover { border-color:rgba(255,170,0,.4); transform:translateY(-4px); }
.social-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.social-icon svg {
  width: 48px;
  height: 48px;
}
.social-name {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--amber); position:relative;
}
.social-handle { font-size:.78rem; color:var(--muted); position:relative; }

/* ── FOOTER ──────────────────────────────────────── */
.site-footer {
  background:#040204; border-top:1px solid rgba(255,170,0,.22);
  padding:4rem 3rem 2rem;
}
.footer-grid {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem;
  padding-bottom:3rem; border-bottom:1px solid rgba(255,170,0,.1);
  margin-bottom:2rem;
}
.footer-logo-text {
  font-family:'Metamorphous',serif; font-size:1.5rem;
  color:var(--amber); margin-bottom:.75rem;
  text-shadow:0 0 18px rgba(232,130,10,.3);
  text-decoration:none; display:inline-block;
}
.footer-tagline {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--muted); margin-bottom:1.5rem;
}
.footer-desc { font-size:.88rem; color:var(--muted); line-height:1.75; font-style:italic; }
.footer-col-title {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.4em; text-transform:uppercase; color:var(--amber);
  margin-bottom:1.5rem; padding-bottom:.75rem;
  border-bottom:1px solid rgba(255,170,0,.15);
}
.footer-links { list-style:none; display:flex; flex-direction:column; gap:.75rem; }
.footer-links li a,
.footer-links a {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.1em; color:var(--muted);
  text-decoration:none; transition:color .3s;
}
.footer-links li a:hover,
.footer-links a:hover { color:var(--amber); }
.footer-bottom {
  max-width:1200px; margin:0 auto;
  display:flex; justify-content:space-between; align-items:center;
}
.footer-copy {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.3em; color:var(--muted);
}
.footer-rune { color:var(--amber-deep); font-size:1.2rem; }

ul.footer-social-list {
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:.6rem;
}
ul.footer-social-list li a {
  display:flex; align-items:center; gap:.6rem;
  color:var(--text);
  text-decoration:none; font-size:.82rem;
  font-family:'Cinzel',serif; letter-spacing:.05em;
  transition:color .3s;
}
ul.footer-social-list li a:hover { color:var(--amber); }
ul.footer-social-list svg { width:16px; height:16px; flex-shrink:0; }
/* ── REVEAL ──────────────────────────────────────── */
.reveal { opacity:0; transform:translateY(38px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── RESPONSIVE ──────────────────────────────────── */
@media (max-width: 900px) {
  .nav-links { display:none; flex-direction:column; position:absolute; top:70px; left:0; right:0; background:rgba(8,6,10,.97); padding:1rem 2rem; gap:1rem; }
  .nav-links.open { display:flex; }
  .nav-hamburger { display:block; background:none; border:1px solid var(--amber-deep); color:var(--amber); padding:.4rem .7rem; cursor:pointer; font-size:1.1rem; }
  .concert-grid { grid-template-columns:1fr; }
  .concert-poster { max-width:320px; margin:0 auto; }
  .news-grid { grid-template-columns:1fr; }
  .videos-grid { grid-template-columns:1fr; }
  .spotify-grid { grid-template-columns:1fr; direction:ltr; }
  .spotify-grid .spotify-player { grid-row:auto; }
  .footer-grid { grid-template-columns:1fr; }
  .hero-ring { width:320px; height:320px; }
  .section-inner { padding:4rem 1.5rem; }
}

@media (max-width: 600px) {
  .countdown { gap:.75rem; }
  .countdown-number { font-size:2rem; }
  .social-links { gap:.75rem; }
  .social-link { min-width:100px; padding:1.25rem 1rem; }
}

/* ── ANUNCIO ESPECIAL ────────────────────────────── */
.anuncio-band {
  position: relative;
  overflow: hidden;
}

/* Estado 1: misterioso */
.anuncio-misterio {
  background: linear-gradient(135deg, #e8820a, #ffaa00, #e8820a);
  border-top: 2px solid #7a3d00;
  border-bottom: 2px solid #7a3d00;
  position: relative;
}
.anuncio-rune-bg {
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
  display:flex; align-items:center; justify-content:center; gap:6rem;
  opacity:.07;
}
.anuncio-rune-bg span {
  font-family:'Metamorphous',serif; font-size:8rem; color:#3a1a00; user-select:none;
}
.anuncio-inner {
  position:relative; z-index:2;
  max-width:1200px; margin:0 auto; padding:2rem 3rem;
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
}
.anuncio-left { display:flex; flex-direction:column; gap:.6rem; }
.anuncio-sigil {
  width:42px; height:42px;
  border:1px solid rgba(58,26,0,.4); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#3a1a00; font-size:1.1rem; margin-bottom:.25rem;
  animation: sigil-pulse 3s ease-in-out infinite;
}
@keyframes sigil-pulse {
  0%,100% { box-shadow:0 0 0 0 rgba(58,26,0,0); border-color:rgba(58,26,0,.3); }
  50%      { box-shadow:0 0 18px 4px rgba(58,26,0,.15); border-color:rgba(58,26,0,.7); }
}
@keyframes glow-pulse {
  0%,100% { text-shadow:none; transform:scale(1); color:#1a0a00; }
  50%      { text-shadow:0 0 18px rgba(58,26,0,.5), 0 0 40px rgba(80,30,0,.25); transform:scale(1.04); color:#2a0e00; }
}
.anuncio-eyebrow {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.5em; text-transform:uppercase; color:#3a1a00;
}
.anuncio-mensaje {
  font-family:'Metamorphous',serif; font-size:1.35rem; color:#1a0a00; line-height:1.3;
  animation: glow-pulse 3.5s ease-in-out infinite;
  animation-delay: .8s;
  display: inline-block;
  transform-origin: left center;
}
.anuncio-submensaje { font-size:.88rem; color:#5a2e00; font-style:italic; }
.anuncio-divider {
  width:1px; height:60px;
  background:linear-gradient(180deg,transparent,rgba(58,26,0,.3),transparent);
  flex-shrink:0;
}
.anuncio-cd-wrapper {
  display:flex; flex-direction:column; align-items:center; gap:.55rem; flex-shrink:0;
}
.anuncio-cd-fecha {
  font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.35em; text-transform:uppercase; color:#1a0a00;
  border-bottom:1px solid rgba(58,26,0,.25); padding-bottom:.4rem;
  width:100%; text-align:center;
}
.anuncio-countdown { display:flex; gap:1.25rem; align-items:center; flex-shrink:0; }
.anuncio-cd-unit { display:flex; flex-direction:column; align-items:center; gap:.2rem; min-width:52px; }
.anuncio-cd-num {
  font-family:'Metamorphous',serif; font-size:2.2rem; color:#1a0a00; line-height:1;
  text-shadow:0 1px 0 rgba(255,255,255,.15);
}
.anuncio-cd-label { font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.3em; color:#5a2e00; text-transform:uppercase; }
.anuncio-cd-sep { font-family:'Metamorphous',serif; font-size:1.8rem; color:rgba(58,26,0,.4); margin-bottom:.5rem; flex-shrink:0; }

/* Estado 2: revelado */
@keyframes rev-banda-pulso {
  0%,100% {
    box-shadow:
      inset 0 0 30px rgba(232,130,10,.10),
      0 -2px 12px rgba(255,170,0,.08),
      0  2px 12px rgba(255,170,0,.08);
  }
  50% {
    box-shadow:
      inset 0 0 70px rgba(255,200,0,.28),
      0 -4px 24px rgba(255,170,0,.20),
      0  4px 24px rgba(255,170,0,.20);
  }
}
@keyframes rev-borde-pulso {
  0%,100% { opacity: .45; }
  50%      { opacity: 1; }
}
@keyframes rev-icono-late {
  0%,100% {
    text-shadow: 0 0 4px rgba(58,26,0,.2);
    transform: scale(1);
  }
  50% {
    text-shadow: 0 0 28px rgba(20,8,0,.9), 0 0 55px rgba(80,30,0,.5);
    transform: scale(1.45);
  }
}
@keyframes rev-particula {
  0%   { transform: translateY(0)    translateX(0);          opacity: 0;  }
  8%   {                                                      opacity: .9; }
  80%  {                                                      opacity: .3; }
  100% { transform: translateY(-90px) translateX(var(--dx)); opacity: 0;  }
}
@keyframes rev-particula-lenta {
  0%   { transform: translateY(0)    translateX(0);          opacity: 0;   }
  12%  {                                                      opacity: .6;  }
  80%  {                                                      opacity: .15; }
  100% { transform: translateY(-65px) translateX(var(--dx)); opacity: 0;   }
}

.anuncio-revelado {
  background: linear-gradient(135deg, #d97608, #ffaa00, #e8820a, #ffaa00, #d97608);
  border-top: 2px solid #7a3d00;
  border-bottom: 2px solid #7a3d00;
  position: relative;
  overflow: hidden;
  animation: rev-banda-pulso 3.5s ease-in-out infinite;
}
.anuncio-revelado::before,
.anuncio-revelado::after {
  content: '';
  position: absolute; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #ffdd66, #fff8c0, #ffdd66, transparent);
  animation: rev-borde-pulso 3.5s ease-in-out infinite;
  pointer-events: none; z-index: 4;
}
.anuncio-revelado::before { top: 0; }
.anuncio-revelado::after  { bottom: 0; }

/* Runas de fondo */
.anuncio-rev-deco {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  gap: 6rem; opacity: .07;
  pointer-events: none; overflow: hidden;
}
.anuncio-rev-deco span {
  font-family: 'Metamorphous', serif;
  font-size: 8rem; color: #3a1a00; user-select: none;
}

/* Partículas CSS */
.anuncio-rev-particulas {
  position: absolute; inset: 0;
  pointer-events: none; overflow: hidden; z-index: 1;
}
.anuncio-rev-p {
  position: absolute; border-radius: 50%; opacity: 0;
  animation: rev-particula linear infinite;
}
.anuncio-rev-p.lenta    { animation-name: rev-particula-lenta; }
.anuncio-rev-p.brasa    { background: #3d1200; }
.anuncio-rev-p.media    { background: #8a3800; }
.anuncio-rev-p.destello { background: rgba(255,245,140,.75); }
.anuncio-rev-p.chispa   {
  background: rgba(255,255,200,.9);
  width: 1px !important; height: 4px !important; border-radius: 1px;
}

.anuncio-revelado-inner {
  position: relative; z-index: 2;
  max-width: 1200px; margin: 0 auto; padding: 1.75rem 3rem;
  display: flex; align-items: center; gap: 3rem;
}
.anuncio-rev-icon {
  font-size: 2.5rem; flex-shrink: 0; color: #1a0a00;
  animation: rev-icono-late 3.5s ease-in-out infinite;
}
.anuncio-rev-texto { flex: 1; display: flex; flex-direction: column; gap: .4rem; }
.anuncio-rev-eyebrow {
  font-family: 'Cinzel', serif; font-size: .72rem;
  letter-spacing: .5em; color: #3a1a00; text-transform: uppercase;
}
.anuncio-rev-titulo {
  font-family: 'Metamorphous', serif; font-size: 1.6rem;
  color: #1a0a00; line-height: 1.2;
}
.anuncio-rev-sub { font-size: .9rem; color: #5a2e00; font-style: italic; }
.anuncio-rev-acciones { display: flex; gap: 1rem; align-items: center; flex-shrink: 0; }
.anuncio-rev-btn-primary {
  padding: .65rem 1.5rem;
  background: #1a0a00; color: var(--amber);
  font-family: 'Cinzel', serif; font-size: .72rem; letter-spacing: .25em;
  text-decoration: none; text-transform: uppercase;
  border: none; transition: opacity .3s; white-space: nowrap;
}
.anuncio-rev-btn-primary:hover { opacity: .8; }
.anuncio-rev-btn-secondary {
  font-family: 'Cinzel', serif; font-size: .72rem; letter-spacing: .2em;
  color: #3a1a00; white-space: nowrap;
}
.anuncio-rev-btn-secondary:hover { color: #1a0a00 !important; }
.anuncio-rev-btn-secondary:hover::after { background: #1a0a00 !important; }
@keyframes rev-titulo-late {
  0%,100% { text-shadow: none; transform: scale(1); }
  50%     { text-shadow: 0 0 18px rgba(58,26,0,.5), 0 0 40px rgba(80,30,0,.25); transform: scale(1.06); }
}
.anuncio-rev-titulo {
  animation: rev-titulo-late 3.5s ease-in-out infinite;
  animation-delay: .8s;
  transform-origin: left center;
  display: inline-block;
}
@media (max-width:900px) {
  .anuncio-inner { flex-direction:column; align-items:flex-start; }
  .anuncio-divider { display:none; }
  .anuncio-countdown { flex-wrap:nowrap; gap:.6rem; }
  .anuncio-revelado-inner {
    flex-direction:column; align-items:flex-start;
    padding: 1.5rem 1.5rem;
    gap: 1rem;
  }
  .anuncio-rev-acciones { flex-wrap:wrap; gap:.75rem; }
  .anuncio-rev-deco span { font-size:4rem; }
  .anuncio-rev-icon { font-size: 2rem; }
  .anuncio-rev-eyebrow { font-size: .85rem; letter-spacing: .35em; }
  .anuncio-rev-titulo { font-size: 1.9rem; }
  .anuncio-rev-sub { font-size: 1rem; }
  .anuncio-rev-btn-primary {
    font-size: .8rem; padding: .7rem 1.6rem; letter-spacing: .2em;
  }
  .anuncio-rev-btn-secondary { font-size: .8rem; }
}
@media (max-width:480px) {
  .anuncio-revelado-inner { padding: 1.25rem 1.25rem; }
  .anuncio-rev-eyebrow { font-size: .8rem; }
  .anuncio-rev-titulo { font-size: 1.6rem; }
  .anuncio-rev-sub { font-size: .95rem; }
  .anuncio-rev-btn-primary { font-size: .75rem; padding: .65rem 1.3rem; }
  .anuncio-rev-btn-secondary { font-size: .75rem; }
}

/* ── SINGLE CONCIERTO ──────────────────────────────── */
.haruspex-single-concierto { background:var(--ink); }

/* HERO — dos columnas */
.sc-hero {
  position:relative; min-height:80vh;
  display:flex; align-items:stretch;
  overflow:hidden;
}
.sc-hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:saturate(.6) brightness(.6);
}
.sc-hero-velo {
  position:absolute; inset:0;
  background:linear-gradient(to right, rgba(4,2,10,.2) 0%, rgba(4,2,10,.7) 55%, rgba(4,2,10,.95) 100%);
}
.sc-hero-grid {
  position:relative; z-index:2;
  width:100%; max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:4rem;
  padding:7rem 3rem 4rem;
}
.sc-hero-cartel {
  display:flex; align-items:center; justify-content:center;
}
.sc-cartel-img {
  max-height:70vh; width:auto; max-width:100%;
  object-fit:contain;
  box-shadow: 0 8px 60px rgba(0,0,0,.7), 0 0 0 1px rgba(232,130,10,.15);
}

/* Texto pregunta antes del botón */
.sc-concilio-pregunta {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.35em;
  color:var(--muted); text-transform:uppercase; margin-bottom:-.25rem;
}

/* Footer social con iconos */
.footer-links-social {
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:.6rem;
}
.footer-links-social a {
  display:flex; align-items:center; gap:.6rem;
  color:rgba(255,255,255,.65); text-decoration:none; font-size:.82rem;
  transition:color .3s;
}
.footer-links-social a:hover { color:var(--amber); }
.footer-links-social svg { width:16px; height:16px; color:var(--amber); flex-shrink:0; }

/* Móvil: cartel debajo del título */
@media (max-width:768px) {
  .sc-hero-grid {
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
    padding:6rem 1.5rem 3rem;
    gap:2rem;
  }
  .sc-hero-cartel { order:2; }
  .sc-hero-content { order:1; }
  .sc-cartel-img { max-height:50vw; }
  .sc-hero-velo {
    background:linear-gradient(to bottom, rgba(4,2,10,.3) 0%, rgba(4,2,10,.85) 100%);
  }
}
.sc-hero-velo {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(4,2,10,.3) 0%, rgba(4,2,10,.85) 100%);
}
.sc-hero-content {
  position:relative; z-index:2;
  max-width:900px; margin:0 auto; padding:2rem 3rem;
  display:flex; flex-direction:column; gap:1rem;
}
.sc-back-wrap {
  display:flex; align-items:center; gap:.4rem; align-self:flex-start;
}
.sc-back {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.3em;
  text-transform:uppercase;
}
.sc-back-wrap:hover .sc-back-arrow,
.sc-back-wrap:hover .sc-back { color:var(--amber); }
.sc-back-wrap:hover .sc-back::after { background:var(--amber); }

.sc-back-arrow {
  font-size:.72rem;
  color: var(--text);
  transition:color .3s;
}
.sc-eyebrow {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.4em;
  color:var(--amber); text-transform:uppercase;
}
.sc-titulo {
  font-family:'Metamorphous',serif; font-size:clamp(2rem,5vw,3.5rem);
  color:var(--text); line-height:1.1;
  text-shadow:0 2px 20px rgba(0,0,0,.5);
}
.sc-meta-bar {
  display:flex; align-items:center; flex-wrap:wrap; gap:.5rem;
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.15em;
  color:rgba(255,255,255,.75); text-transform:uppercase; /* más claro que --muted */
}
.sc-meta-icon { color:var(--amber); font-size:.72rem; }
.sc-meta-sep { color:rgba(255,255,255,.45); } /* más visible que .2 */
.sc-btn-entrada {
  display:inline-block; align-self:flex-start;
  padding:.8rem 2rem; margin-top:.5rem;
  background:var(--amber); color:var(--ink);
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.25em;
  text-decoration:none; text-transform:uppercase;
  border:2px solid var(--amber); transition:all .3s; font-weight:700;
}
.sc-btn-entrada:hover { background:transparent; color:var(--amber); }

.sc-countdown-bar {
  background:rgba(232,130,10,.08);
  border-top:1px solid rgba(232,130,10,.2);
  border-bottom:1px solid rgba(232,130,10,.2);
  padding:1.5rem 3rem;
  display:flex; align-items:center; justify-content:center; gap:2rem;
}
.sc-countdown-label {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.4em;
  color:var(--muted); text-transform:uppercase;
}
.sc-countdown { display:flex; align-items:center; gap:1rem; }
.sc-cd-unit { display:flex; flex-direction:column; align-items:center; gap:.2rem; min-width:48px; }
.sc-cd-num { font-family:'Metamorphous',serif; font-size:2rem; color:var(--amber); line-height:1; }
.sc-cd-lbl { font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.3em; color:var(--muted); text-transform:uppercase; }
.sc-cd-sep { font-family:'Metamorphous',serif; font-size:1.6rem; color:rgba(232,130,10,.4); margin-bottom:.4rem; }

.sc-main { padding:4rem 0 6rem; }
.sc-inner { max-width:800px; margin:0 auto; padding:0 3rem; display:flex; flex-direction:column; gap:3rem; }

.sc-content {
  font-family:'Crimson Pro',serif; font-size:1.15rem; line-height:1.8;
  color:rgba(255,255,255,.85);
}
.sc-content p { margin-bottom:1.2rem; }
.sc-content a { color:var(--amber); }
.sc-content strong,
.entry-content strong { color: var(--amber); }

.sc-venue-block {
  border:1px solid rgba(232,130,10,.2);
  border-radius:2px; overflow:hidden;
}
.sc-venue-header {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1.5rem 2rem;
  background:rgba(232,130,10,.05);
  border-bottom:1px solid rgba(232,130,10,.15);
}
.sc-venue-icon { color:var(--amber); font-size:1rem; margin-top:.2rem; flex-shrink:0; }
.sc-venue-name { font-family:'Cinzel',serif; font-size:.9rem; letter-spacing:.1em; color:var(--text); margin-bottom:.3rem; }
.sc-venue-address { font-size:.88rem; color:var(--muted); }
.sc-mapa { width:100%; }
.sc-mapa iframe { display:block; width:100%; height:320px; border:0; filter:saturate(.7) brightness(.9); }

.sc-entrada-footer { text-align:center; padding:2rem; border:1px solid rgba(232,130,10,.15); }
.sc-entrada-footer-text { font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.3em; color:var(--amber); margin-bottom:1.25rem; text-transform:uppercase; }
.sc-btn-entrada-secondary {
  display:inline-block; padding:.75rem 2.5rem;
  border:1px solid var(--amber); color:var(--amber);
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.25em;
  text-decoration:none; text-transform:uppercase; transition:all .3s;
}
.sc-btn-entrada-secondary:hover { background:rgba(232,130,10,.1); }

.sc-pasado-aviso {
  text-align:center; padding:2rem;
  border:1px solid rgba(255,255,255,.08);
  font-family:'Cinzel',serif; font-size:.75rem; letter-spacing:.15em; color:var(--muted);
  display:flex; flex-direction:column; gap:1rem; align-items:center;
}
.sc-btn-volver {
  color:var(--amber); text-decoration:none; font-size:.72rem; letter-spacing:.2em;
  transition:opacity .3s;
}
.sc-btn-volver:hover { opacity:.7; }

/* ── ARCHIVE CONCIERTO ─────────────────────────────── */
.haruspex-archive-concierto { background:var(--ink); }

/* ── Hero de archivo de conciertos — reutiliza clases .musica-hero de page-musica ── */

.arc-section { padding:4rem 0 5rem; }
.arc-section-pasados { background:rgba(255,255,255,.015); border-top:1px solid rgba(255,255,255,.06); }
.arc-section-inner { max-width:1200px; margin:0 auto; padding:0 3rem; }
.arc-section-header { display:flex; align-items:center; gap:1rem; margin-bottom:2.5rem; }
.arc-section-rune { color:var(--amber); font-size:1rem; }
.arc-section-titulo { font-family:'Cinzel',serif; font-size:1.1rem; letter-spacing:.2em; color:var(--text); text-transform:uppercase; }

.arc-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:1.5px; background:rgba(255,170,0,.08); }
.arc-grid-pasados { opacity:.75; filter:saturate(.5); }
.arc-grid-pasados:hover { opacity:.9; filter:saturate(.7); transition:all .4s; }

.arc-card { background:var(--ink); display:flex; flex-direction:column; }
.arc-card-link { text-decoration:none; color:inherit; display:block; }
.arc-card-imagen { aspect-ratio:16/9; overflow:hidden; position:relative; background:#0d0805; }
.arc-card-imagen img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.arc-card:hover .arc-card-imagen img { transform:scale(1.04); }
.arc-card-imagen-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:var(--amber); font-size:2rem; }
.arc-card-badge {
  position:absolute; bottom:.75rem; left:.75rem;
  background:rgba(4,2,10,.85); border:1px solid rgba(232,130,10,.3);
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.2em;
  color:var(--amber); padding:.3rem .75rem; text-transform:uppercase;
}
.arc-card-body { padding:1.5rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.arc-card-titulo { font-family:'Cinzel',serif; font-size:.9rem; letter-spacing:.08em; color:var(--text); line-height:1.3; }
.arc-card:hover .arc-card-titulo { color:var(--amber); transition:color .3s; }
.arc-card-meta { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.arc-card-fecha { font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.15em; color:var(--amber); text-transform:uppercase; }
.arc-card-hora { font-family:'Cinzel',serif; font-size:.72rem; color:var(--muted); }
.arc-card-sala { font-size:.82rem; color:var(--muted); }
.arc-card-bandas { font-size:.8rem; color:rgba(255,255,255,.4); font-style:italic; }

.arc-card-footer {
  padding:.75rem 1.5rem; border-top:1px solid rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:space-between;
}
.arc-card-info {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase;
}
.arc-card-entrada {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.15em;
  color:var(--ink); background:var(--amber); padding:.35rem .9rem;
  text-decoration:none; text-transform:uppercase; transition:opacity .3s;
}
.arc-card-entrada:hover { opacity:.85; }

.arc-paginacion { margin-top:3rem; display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap; }
.arc-paginacion .page-numbers {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.2em;
  padding:.5rem 1rem; border:1px solid rgba(255,255,255,.1);
  color:var(--muted); text-decoration:none; text-transform:uppercase; transition:all .3s;
}
.arc-paginacion .page-numbers.current,
.arc-paginacion .page-numbers:hover { border-color:var(--amber); color:var(--amber); }

.arc-empty { text-align:center; padding:4rem 2rem; }
.arc-empty-text { font-family:'Crimson Pro',serif; font-size:1.1rem; color:var(--muted); font-style:italic; line-height:1.8; }

@media (max-width:768px) {
  .sc-hero-content { padding:1.5rem; }
  .sc-inner { padding:0 1.5rem; }
  .sc-countdown-bar { flex-direction:column; gap:1rem; padding:1.5rem; }
  .arc-section-inner { padding:0 1.5rem; }
  .arc-grid { grid-template-columns:1fr; }
}


/* ══════════════════════════════════════════════════════
   PLANTILLA CANCIÓN (category-temas.php)
   ══════════════════════════════════════════════════════ */

.song-page {
  display: grid;
  grid-template-columns: 320px 1fr;
  min-height: calc(100vh - var(--nav-height, 44px));
}
body.song-template { background: var(--ink) !important; color: var(--text) !important; }
/* ── SIDEBAR ── */
.song-sidebar {
  position: sticky;
  top: var(--nav-height, 44px);
  height: calc(100vh - var(--nav-height, 44px));
  overflow: hidden;
  background: var(--parchment);
  display: flex;
  flex-direction: column;
}
.sidebar-img {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .32;
  filter: sepia(.45);
}
.sidebar-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to right, transparent 50%, var(--parchment) 100%),
    linear-gradient(to bottom, rgba(8,6,10,.55) 0%, transparent 20%, transparent 75%, var(--ink) 100%);
}
.sidebar-top {
  position: relative; z-index: 2;
  padding: 2rem 2rem 1rem;
}
.sidebar-eyebrow {
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .28em;
  color: var(--amber);
  margin-bottom: .6rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  cursor: pointer;
}
a.sidebar-eyebrow {
  text-decoration: none;
  transition: color .3s;
}
a.sidebar-eyebrow span {
  position: relative;
}
a.sidebar-eyebrow span::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 1px;
  background: rgba(255,170,0,.4);
  transition: width .3s, background .3s;
}
a.sidebar-eyebrow:hover {
  color: var(--text);
}
a.sidebar-eyebrow:hover span::after {
  width: 100%;
  background: var(--text);
}
.sidebar-eyebrow::before {
  content: '';
  display: block;
  width: 1.5rem;
  height: 1px;
  background: var(--amber);
}
.sidebar-title {
  font-family: 'Metamorphous', serif;
  font-size: 2.5rem;
  line-height: 1.05;
  color: var(--text);
  text-shadow: 0 2px 24px rgba(0,0,0,.9);
}
.sidebar-album {
  margin-top: .6rem;
  font-family: var(--font-display);
  font-size: .9rem;
  letter-spacing: .15em;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: .4rem;
}
.sidebar-album-icon {
  color: var(--amber);
  opacity: .6;
  font-size: .75rem;
}
.sidebar-spacer { flex: 1; }
.sidebar-deco-lines {
  position: absolute;
  bottom: 2.5rem; left: 2rem; right: 2rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.sidebar-deco-lines span {
  display: block;
  height: 1px;
  background: linear-gradient(to right, rgba(255,170,0,.25), transparent);
}
.sidebar-deco-lines span:nth-child(2) { opacity: .5;  margin-left: .75rem; }
.sidebar-deco-lines span:nth-child(3) { opacity: .25; margin-left: 1.5rem; }

/* ── ZONA DERECHA ── */
.song-right {
  display: flex;
  flex-direction: column;
  border-left: 1px solid rgba(255,170,0,.08);
}

/* ── PLAYERS ── */
.song-players {
  padding: 2.5rem 2.5rem 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border-bottom: 1px solid rgba(255,170,0,.1);
}
.song-intro {
  font-size: 1.1rem;
  line-height: 1.8;
  color: var(--text);
  margin-bottom: 1.5rem;
  padding: 0 .25rem;
}
.player-block {
  background: rgba(255,170,0,.04);
  border: 1px solid rgba(255,170,0,.1);
  padding: 1.1rem 1.25rem;
}
.player-label {
  font-family: var(--font-display);
  font-size: .72rem;
  letter-spacing: .28em;
  color: var(--muted);
  margin-bottom: .7rem;
}
.player-embed iframe,
.spotify-embed iframe,
.youtube-embed iframe {
  width: 100% !important;
  display: block;
}
.youtube-embed iframe { aspect-ratio: 16/9; height: auto !important; }
.spotify-embed iframe { height: 152px !important; }

/* Eliminar márgenes del figure de Gutenberg */
.spotify-embed figure.wp-block-embed,
.youtube-embed figure.wp-block-embed { margin: 0 !important; }
.spotify-embed .wp-block-embed__wrapper,
.youtube-embed .wp-block-embed__wrapper { margin: 0 !important; padding: 0 !important; }
/* Solo Spotify: quitar el padding-top de aspect-ratio (no es vídeo) */
.spotify-embed .wp-block-embed__wrapper::before { padding-top: 0 !important; display: none !important; }
/* Spotify: altura fija en el contenedor */
.spotify-embed .player-embed { height: auto; overflow: visible; }
.spotify-embed .wp-block-embed__wrapper { height: 152px; }

/* ── LYRICS ── */
.song-bottom {
  display: grid;
  grid-template-columns: 1fr clamp(140px, 33%, 33%);
  align-items: stretch;
  flex: 1;
}
.song-lyrics-col {
  padding: 2.5rem 2.5rem 5rem;
  border-right: 1px solid rgba(255,170,0,.07);
}
.lyrics-title {
  font-family: var(--font-display);
  font-size: .72rem;
  letter-spacing: .35em;
  color: var(--amber);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.lyrics-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(255,170,0,.15);
}
.lyrics-body { font-size: 1rem; line-height: 2.15; }
.lyrics-body p { margin-bottom: 1.3rem; font-family: 'Crimson Pro', Georgia, serif !important; }
.lyrics-body .chorus,
.lyrics-body p.chorus {
  color: var(--amber);
  font-style: italic;
  padding-left: 1.5rem;
  border-left: 2px solid rgba(255,170,0,.3);
  margin-bottom: 1.3rem;
}
/* Bloque Verso (core/verse) usado como estribillo */
.lyrics-body .wp-block-verse {
  font-family: 'Crimson Pro', Georgia, serif !important;
  font-size: 1rem;
  line-height: 2.15;
  color: var(--amber);
  font-style: italic;
  padding-left: 1.5rem !important;
  border-left: 2px solid rgba(255,170,0,.3);
  margin-bottom: 1.3rem;
  background: none;
  white-space: pre-wrap;
}

/* ── COLUMNA DECORATIVA ── */
.song-deco-col { position: relative; }
.deco-inner {
  position: sticky;
  top: var(--nav-height, 44px);
  height: calc(100vh - var(--nav-height, 44px));
  overflow: hidden;
  background: radial-gradient(ellipse at 55% 45%, rgba(255,130,0,.06) 0%, transparent 68%);
}
.deco-rise-wrap {
  position: absolute; inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  padding: 0 1.5rem;
}
.deco-rise-text {
  font-family: 'Metamorphous', serif;
  font-size: clamp(2.5rem, 4vw, 5rem);
  letter-spacing: .12em;
  color: var(--amber);
  white-space: normal;
  word-break: keep-all;
  text-align: center;
  line-height: 1.4;
  text-shadow: 0 0 30px rgba(255,140,0,.4);
  animation: letrasAparecen 10s ease-in-out infinite;
}
@keyframes letrasAparecen {
  0%   { opacity: 0;   filter: blur(14px); transform: scaleX(1.1); }
  35%  { opacity: .22; filter: blur(0px);  transform: scaleX(1);   }
  65%  { opacity: .22; filter: blur(0px);  transform: scaleX(1);   }
  100% { opacity: 0;   filter: blur(14px); transform: scaleX(1.1); }
}

/* ── PARTÍCULAS ── */
.deco-particles {
  position: absolute; inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.song-template .p {
  position: absolute;
  width: 2px; height: 2px;
  border-radius: 50%;
  background: var(--amber);
  opacity: 0;
  animation: particleRise linear infinite;
}
.song-template .p.hot    { background: var(--amber-hot);    width: 3px; height: 3px; }
.song-template .p.bright { background: #ffcc44;             width: 3px; height: 3px; }
.song-template .p.dim    { background: rgba(255,170,0,.4);  width: 1px; height: 1px; }
.song-template .p.faint  { background: rgba(255,140,0,.25); width: 1px; height: 1px; }
.song-template .p.ember  { background: #cc4400;             width: 2px; height: 2px; }

@keyframes particleRise {
  0%   { transform: translateY(0)      translateX(0);    opacity: 0;  }
  8%   {                                                 opacity: .9; }
  50%  { transform: translateY(-120px) translateX(5px);  opacity: .5; }
  85%  {                                                 opacity: .1; }
  100% { transform: translateY(-240px) translateX(-4px); opacity: 0;  }
}

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .song-page { grid-template-columns: 1fr; }
  .song-sidebar {
    position: sticky;
    top: var(--nav-height, 44px);
    height: 190px;
    flex-direction: row;
    z-index: 50;
  }
  .sidebar-overlay {
    background: linear-gradient(to bottom, rgba(8,6,10,.45) 0%, transparent 45%, var(--ink) 100%);
  }
  .sidebar-top     { padding: 1.75rem; }
  .sidebar-title   { font-size: 1.9rem; }
  .sidebar-spacer,
  .sidebar-deco-lines { display: none; }
  .song-right      { border-left: none; border-top: 1px solid rgba(255,170,0,.1); }
  .song-players    { padding: 1.5rem 1.25rem; }
  .song-bottom     { grid-template-columns: 1fr; }
  .song-deco-col   { display: none; }
  .song-lyrics-col { padding: 2rem 1.25rem 4rem; border-right: none; }
}


/* ══════════════════════════════════════════════════════
   PLANTILLA DISCO (page-disco.php)
   ══════════════════════════════════════════════════════ */

body.disco-template { background: var(--ink) !important; color: var(--text) !important; }

/* ── HERO ── */
.disco-hero {
  position: relative;
  height: 70vh; min-height: 420px; max-height: 640px;
  overflow: hidden;
  display: flex; align-items: flex-end;
}
.disco-hero--no-img { background: var(--parchment); min-height: 320px; }

.disco-hero-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: sepia(.3) brightness(.65);
  transform: scale(1.03);
}
.disco-hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, var(--ink) 0%, rgba(8,6,10,.6) 40%, rgba(8,6,10,.2) 100%);
}
.disco-hero-runes {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  gap: 5rem; opacity: .04; pointer-events: none; overflow: hidden;
}
.disco-hero-runes span {
  font-family: 'Metamorphous', serif; font-size: 9rem; color: var(--text);
}

.disco-hero-inner {
  position: relative; z-index: 2;
  max-width: 1200px; margin: 0 auto; padding: 0 3rem 3rem;
  width: 100%;
  display: flex; align-items: flex-end; gap: 2.5rem;
}
.disco-hero-portada {
  width: 160px; height: 160px; flex-shrink: 0;
  box-shadow: 0 8px 40px rgba(0,0,0,.7);
  border: 1px solid rgba(255,170,0,.15);
  overflow: hidden; position: relative;
}
.disco-hero-portada img { width: 100%; height: 100%; object-fit: cover; display: block; }
.disco-hero-portada-placeholder {
  width: 100%; height: 100%; background: var(--parchment);
  display: flex; align-items: center; justify-content: center;
  color: var(--amber-deep); font-size: 3rem;
}
.disco-hero-texto { flex: 1; padding-bottom: .25rem; }
.disco-eyebrow {
  font-family: 'Cinzel', serif; font-size: .72rem;
  letter-spacing: .45em; text-transform: uppercase;
  color: var(--amber); margin-bottom: .6rem;
}
.disco-titulo {
  font-family: 'Metamorphous', serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: var(--text); line-height: 1.1;
  text-shadow: 0 2px 30px rgba(0,0,0,.8);
  margin-bottom: .4rem;
}
.disco-autor {
  font-family: 'Cinzel', serif; font-size: .82rem;
  letter-spacing: .25em; color: var(--muted); text-transform: uppercase;
}

/* ── CUERPO ── */
.disco-body {
  max-width: 1200px; margin: 0 auto;
  padding: 3rem 3rem 5rem;
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 4rem;
  align-items: start;
}

/* ── COLUMNA PRINCIPAL ── */
.disco-intro {
  font-size: 1.15rem; line-height: 1.85;
  color: var(--text); margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,170,0,.08);
}
.disco-intro p { margin: 0; }

.disco-players {
  display: flex; flex-direction: column; gap: 1rem;
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,170,0,.08);
}

/* ── SECCIÓN HEADER ── */
.disco-section-header {
  display: flex; align-items: center; gap: 1rem;
  margin-bottom: 1.5rem;
}
.disco-section-rune { color: var(--amber); font-size: .9rem; }
.disco-section-titulo {
  font-family: 'Cinzel', serif; font-size: .78rem;
  letter-spacing: .4em; text-transform: uppercase;
  color: var(--text);
}

/* ── TRACKLIST ── */
.disco-tracklist { margin-bottom: 3rem; }
.disco-tracks { list-style: none; display: flex; flex-direction: column; }

.disco-track {
  border-bottom: 1px solid rgba(255,170,0,.07);
  transition: background .2s;
}
.disco-track:first-child { border-top: 1px solid rgba(255,170,0,.07); }
.disco-track:hover { background: rgba(255,170,0,.04); }

.disco-track-link {
  display: flex; align-items: center; gap: 1.25rem;
  padding: .85rem .5rem;
  text-decoration: none; color: var(--text);
}
.disco-track-num {
  font-family: 'Cinzel', serif; font-size: .72rem;
  letter-spacing: .1em; color: var(--muted);
  min-width: 1.8rem; flex-shrink: 0;
}
.disco-track-thumb {
  width: 36px; height: 36px; flex-shrink: 0;
  background-size: cover; background-position: center;
  border: 1px solid rgba(255,170,0,.1);
}
.disco-track-thumb--empty {
  background: var(--parchment);
  display: flex; align-items: center; justify-content: center;
  color: var(--amber-deep); font-size: .9rem;
}
.disco-track-titulo {
  flex: 1;
  font-family: 'Crimson Pro', serif; font-size: 1.05rem;
  transition: color .2s;
}
.disco-track:hover .disco-track-titulo { color: var(--amber); }
.disco-track-arrow {
  color: var(--amber); font-size: .7rem; opacity: 0;
  transition: opacity .2s;
}
.disco-track:hover .disco-track-arrow { opacity: 1; }

/* ── CRÉDITOS ── */
.disco-creditos { margin-bottom: 2rem; }
.disco-creditos-texto {
  font-family: 'Crimson Pro', serif; font-size: .95rem;
  color: var(--muted); line-height: 2;
}

/* ── SIDEBAR ── */
.disco-sidebar { position: sticky; top: calc(var(--nav-height, 44px) + 2rem); }
.disco-sidebar-inner {
  display: flex; flex-direction: column; gap: 1.5rem;
}
.disco-sidebar-portada {
  width: 100%; aspect-ratio: 1;
  border: 1px solid rgba(255,170,0,.12);
  overflow: hidden; box-shadow: 0 4px 24px rgba(0,0,0,.5);
}
.disco-sidebar-portada img { width: 100%; height: 100%; object-fit: cover; display: block; }
.disco-sidebar-portada-placeholder {
  width: 100%; height: 100%; background: var(--parchment);
  display: flex; align-items: center; justify-content: center;
  color: var(--amber-deep); font-size: 4rem;
}

.disco-sidebar-meta {
  display: flex; flex-direction: column; gap: 0;
  border: 1px solid rgba(255,170,0,.1);
}
.disco-sidebar-meta-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: .6rem .9rem;
  border-bottom: 1px solid rgba(255,170,0,.07);
}
.disco-sidebar-meta-row:last-child { border-bottom: none; }
.disco-sidebar-meta-label {
  font-family: 'Cinzel', serif; font-size: .68rem;
  letter-spacing: .25em; text-transform: uppercase; color: var(--muted);
}
.disco-sidebar-meta-value {
  font-family: 'Crimson Pro', serif; font-size: .95rem; color: var(--text);
}

.disco-sidebar-deco {
  display: flex; flex-direction: column; gap: .3rem; padding: 0 .5rem;
}
.disco-sidebar-deco span {
  display: block; height: 1px;
  background: linear-gradient(to right, rgba(255,170,0,.2), transparent);
}
.disco-sidebar-deco span:nth-child(2) { opacity:.5; margin-left:.75rem; }
.disco-sidebar-deco span:nth-child(3) { opacity:.25; margin-left:1.5rem; }

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .disco-hero-inner { padding: 0 1.5rem 2rem; gap: 1.5rem; }
  .disco-hero-portada { width: 120px; height: 120px; }
  .disco-body {
    grid-template-columns: 1fr;
    padding: 2rem 1.5rem 4rem;
    gap: 2.5rem;
  }
  .disco-sidebar { position: static; }
  .disco-sidebar-portada { max-width: 240px; }
  .disco-sidebar-inner { flex-direction: row; flex-wrap: wrap; align-items: flex-start; }
  .disco-sidebar-portada { width: 180px; flex-shrink: 0; }
  .disco-sidebar-meta { flex: 1; min-width: 180px; }
}
@media (max-width: 600px) {
  .disco-hero { height: 55vh; }
  .disco-hero-portada { width: 90px; height: 90px; }
  .disco-titulo { font-size: 1.8rem; }
  .disco-body { padding: 1.5rem 1.25rem 3rem; }
  .disco-sidebar-inner { flex-direction: column; }
  .disco-sidebar-portada { width: 100%; max-width: 100%; }
}


/* ══════════════════════════════════════════════════════
   PLANTILLA NUESTRA MÚSICA (page-musica.php)
   ══════════════════════════════════════════════════════ */

body.musica-template { background: var(--ink) !important; color: var(--text) !important; }

/* ── HERO ── */
.musica-hero {
  position: relative;
  height: 55vh; min-height: 360px; max-height: 520px;
  overflow: hidden;
  display: flex; align-items: flex-end;
}
.musica-hero--no-img {
  background: var(--parchment);
  min-height: 220px; height: 220px;
}

.musica-hero-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center top;
  filter: sepia(.25) brightness(.55);
}
.musica-hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, var(--ink) 0%, rgba(8,6,10,.55) 45%, rgba(8,6,10,.15) 100%);
}
.musica-hero-runes {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  gap: 5rem; opacity: .04; pointer-events: none; overflow: hidden;
}
.musica-hero-runes span {
  font-family: 'Metamorphous', serif; font-size: 9rem; color: var(--text);
}
.musica-hero-inner {
  position: relative; z-index: 2;
  max-width: 1200px; margin: 0 auto;
  padding: 0 3rem 3.5rem; width: 100%;
}
.musica-eyebrow {
  font-family: 'Cinzel', serif; font-size: .82rem;
  letter-spacing: .45em; text-transform: uppercase;
  color: var(--amber); margin-bottom: .75rem;
}
.musica-titulo {
  font-family: 'Metamorphous', serif;
  font-size: clamp(2.2rem, 5vw, 4rem);
  color: var(--text); line-height: 1.1;
  text-shadow: 0 2px 30px rgba(0,0,0,.8);
  margin-bottom: .75rem;
}
.musica-subtitulo {
  font-family: 'Crimson Pro', serif; font-size: 1.1rem;
  color: var(--muted); font-style: italic; line-height: 1.7;
  max-width: 600px;
}
.musica-subtitulo p { margin: 0; }

/* ── PÁGINA ── */
.musica-page { max-width: 1200px; margin: 0 auto; padding: 0 3rem 6rem; }

/* ── SECCIÓN ── */
.musica-section { padding: 3.5rem 0; }
.musica-section-inner { }
.musica-section-header {
  display: flex; align-items: center; gap: 1.25rem;
  margin-bottom: 1rem;
}
.musica-section-rune {
  color: var(--amber); font-size: 1rem; flex-shrink: 0;
}
.musica-section-titulo {
  font-family: 'Cinzel', serif; font-size: 1rem;
  letter-spacing: .35em; text-transform: uppercase; color: var(--text);
  flex-shrink: 0;
}
.musica-section-line {
  flex: 1; height: 1px;
  background: linear-gradient(to right, rgba(255,170,0,.3), transparent);
}
.musica-section-desc {
  font-family: 'Crimson Pro', serif;
  font-size: 1.05rem; color: var(--muted); font-style: italic;
  margin-bottom: 2rem;
}

/* ── SEPARADOR ── */
.musica-separador {
  display: flex; align-items: center; gap: 2rem;
  padding: 2rem 0;
}
.musica-separador span:first-child,
.musica-separador span:last-child {
  flex: 1; height: 1px; display: block;
  background: linear-gradient(to right, transparent, rgba(255,170,0,.25), transparent);
}
.musica-separador span:nth-child(2) {
  color: var(--amber); font-size: 1.1rem; flex-shrink: 0;
  text-shadow: 0 0 12px rgba(255,170,0,.4);
}

/* ── HERO PARTÍCULAS ── */
.musica-hero-particulas {
  position: absolute; inset: 0;
  pointer-events: none; overflow: hidden; z-index: 1;
}
.mhp {
  position: absolute; border-radius: 50%; opacity: 0;
  animation: mhp-sube linear infinite;
}
.mhp.lenta  { animation-name: mhp-sube-lenta; }
.mhp.brasa    { background: rgba(255,100,0,.6); }
.mhp.media    { background: rgba(255,160,30,.7); }
.mhp.destello { background: rgba(255,245,140,.85); }
.mhp.chispa   {
  background: rgba(255,255,200,.9);
  width: 1px !important; height: 4px !important; border-radius: 1px;
}
@keyframes mhp-sube {
  0%   { transform: translateY(0)      translateX(0);          opacity: 0;  }
  8%   {                                                        opacity: .9; }
  80%  {                                                        opacity: .3; }
  100% { transform: translateY(-520px) translateX(var(--dx));  opacity: 0;  }
}
@keyframes mhp-sube-lenta {
  0%   { transform: translateY(0)      translateX(0);          opacity: 0;   }
  12%  {                                                        opacity: .6;  }
  80%  {                                                        opacity: .15; }
  100% { transform: translateY(-520px) translateX(var(--dx));  opacity: 0;   }
}

/* ── GRID CANCIONES SUELTAS ── */
.musica-sueltas-grid {
  display: flex; flex-direction: column; gap: 0;
}
.musica-suelta-card {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 1.1rem .75rem;
  border-bottom: 1px solid rgba(255,170,0,.15);
  text-decoration: none; color: var(--text);
  transition: background .25s;
  position: relative; overflow: hidden;
}
.musica-suelta-card:first-child { border-top: 1px solid rgba(255,170,0,.15); }
.musica-suelta-card:hover { background: rgba(255,170,0,.06); }

/* Iconos de fondo — visibles en hover */
.msc-deco {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: space-around;
  padding: 0 1rem;
  pointer-events: none; overflow: hidden;
  opacity: 0; transition: opacity .35s;
}
.musica-suelta-card:hover .msc-deco { opacity: 1; }
.msc-deco span {
  font-family: 'Metamorphous', serif;
  font-size: 3rem; color: var(--amber);
  opacity: .07; user-select: none; line-height: 1;
}

/* Partículas en hover */
.msc-sparks {
  position: absolute; inset: 0;
  pointer-events: none; overflow: hidden;
}
.msc-s {
  position: absolute; border-radius: 50%; opacity: 0;
  animation: none;
}
.musica-suelta-card:hover .msc-s {
  animation: msc-spark linear infinite;
}
.msc-s.b { background: rgba(255,130,0,.65);   width: 3px; height: 3px; }
.msc-s.m { background: rgba(255,160,30,.7);   width: 3px; height: 3px; }
.msc-s.d { background: rgba(255,245,140,.85); width: 2px; height: 2px; }
.msc-s.c { background: rgba(255,255,200,.9);  width: 1px !important; height: 4px !important; border-radius: 1px; }

@keyframes msc-spark {
  0%   { transform: translateY(0)     translateX(0);           opacity: 0;  }
  8%   {                                                        opacity: .9; }
  80%  {                                                        opacity: .2; }
  100% { transform: translateY(-90px) translateX(var(--dx));   opacity: 0;  }
}

.musica-suelta-thumb {
  width: 72px; height: 72px; flex-shrink: 0;
  background-size: cover; background-position: center;
  border: 1px solid rgba(255,170,0,.12); overflow: hidden;
}
.musica-suelta-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.musica-suelta-thumb-placeholder {
  width: 100%; height: 100%; background: var(--parchment);
  display: flex; align-items: center; justify-content: center;
  color: var(--amber-deep); font-size: 1.4rem;
}
.musica-suelta-body { flex: 1; }
.musica-suelta-titulo {
  font-family: 'Metamorphous', serif; font-size: 1.3rem;
  color: var(--text); transition: color .2s; margin: 0 0 .3rem;
  line-height: 1.2;
}
.musica-suelta-card:hover .musica-suelta-titulo { color: var(--amber); }
.musica-suelta-meta {
  font-family: 'Cinzel', serif; font-size: .75rem;
  letter-spacing: .22em; color: var(--muted);
  text-transform: uppercase; margin: 0;
}
.musica-suelta-arrow {
  color: var(--amber); font-size: .9rem;
  opacity: 0; transition: opacity .2s; flex-shrink: 0;
}
.musica-suelta-card:hover .musica-suelta-arrow { opacity: 1; }

/* ── GRID DISCOGRAFÍA ── */
.musica-discos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 2.5rem;
}
.musica-disco-card {
  display: flex; flex-direction: column;
  text-decoration: none; color: var(--text);
  transition: transform .3s;
}
.musica-disco-card:hover { transform: translateY(-4px); }

.musica-disco-portada {
  position: relative;
  aspect-ratio: 1; overflow: hidden;
  border: 1px solid rgba(255,170,0,.1);
  margin-bottom: 1rem;
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
}
.musica-disco-portada img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .4s;
}
.musica-disco-card:hover .musica-disco-portada img { transform: scale(1.04); }
.musica-disco-portada-placeholder {
  width: 100%; height: 100%; background: var(--parchment);
  display: flex; align-items: center; justify-content: center;
  color: var(--amber-deep); font-size: 4rem;
}
.musica-disco-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8,6,10,.5) 0%, transparent 50%);
  opacity: 0; transition: opacity .3s;
}
.musica-disco-card:hover .musica-disco-overlay { opacity: 1; }

.musica-disco-body { display: flex; flex-direction: column; gap: .4rem; }
.musica-disco-meta {
  font-family: 'Cinzel', serif; font-size: .75rem;
  letter-spacing: .25em; text-transform: uppercase; color: var(--amber);
  margin: 0;
}
.musica-disco-titulo {
  font-family: 'Metamorphous', serif; font-size: 1.25rem;
  color: var(--text); line-height: 1.2; margin: 0;
  transition: color .2s;
}
.musica-disco-card:hover .musica-disco-titulo { color: var(--amber); }
.musica-disco-pistas {
  font-family: 'Crimson Pro', serif;
  font-size: .95rem; color: var(--muted); font-style: italic; margin: 0;
}

/* ── VACÍA ── */
.musica-vacia {
  text-align: center; padding: 6rem 2rem;
  font-family: 'Crimson Pro', serif; font-size: 1.1rem;
  color: var(--muted); font-style: italic;
}

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .musica-hero-inner { padding: 0 1.5rem 2.5rem; }
  .musica-page { padding: 0 1.5rem 4rem; }
  .musica-discos-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1.5rem; }
}
@media (max-width: 600px) {
  .musica-hero { height: 50vh; }
  .musica-titulo { font-size: 2rem; }
  .musica-page { padding: 0 1.25rem 3rem; }
  .musica-discos-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .musica-section { padding: 2.5rem 0; }
  .musica-suelta-thumb { width: 56px; height: 56px; }
  .musica-suelta-titulo { font-size: 1.1rem; }
}

/* ══════════════════════════════════════════════════
   404
══════════════════════════════════════════════════ */
.e404-hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  background: var(--ink); overflow: hidden;
}
.e404-inner {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 1.5rem;
  padding: 6rem 2rem 4rem;
  max-width: 640px;
}
.e404-codigo {
  font-family: 'Metamorphous', serif;
  font-size: clamp(7rem, 20vw, 14rem);
  line-height: 1;
  color: var(--amber-deep);
  -webkit-text-stroke: 1px var(--amber);
  text-shadow: 0 0 60px rgba(255,100,0,.35), 0 0 120px rgba(255,80,0,.15);
  letter-spacing: .05em;
  user-select: none;
  margin-bottom: -.5rem;
  animation: glow-pulse 4s ease-in-out infinite;
}
.e404-titulo {
  font-family: 'Metamorphous', serif;
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  color: var(--text); line-height: 1.25;
}
.e404-texto {
  font-family: 'Crimson Pro', serif;
  font-size: 1.05rem; color: var(--muted);
  font-style: italic; line-height: 1.7;
  max-width: 480px;
}
.e404-links {
  display: flex; flex-wrap: wrap;
  align-items: center; justify-content: center;
  gap: 1.5rem; margin-top: .5rem;
}
.e404-btn {
  font-family: 'Cinzel', serif;
  font-size: .78rem; letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--ink); background: var(--amber);
  padding: .7rem 1.8rem;
  border: none; text-decoration: none;
  transition: background .2s, transform .2s;
}
.e404-btn:hover { background: var(--amber-hot); transform: translateY(-1px); }

@media (max-width: 600px) {
  .e404-codigo { font-size: clamp(5rem, 28vw, 8rem); }
  .e404-links  { flex-direction: column; gap: 1rem; }
}

/* ══════════════════════════════════════════════════════
   PORTAL: CONCIERTO EN CURSO
   Aparece automáticamente durante las 3h del concierto
   ══════════════════════════════════════════════════════ */

.anuncio-band--portal {
  background: #080604;
  border-top: 1px solid #1a1108;
  border-bottom: 1px solid #1a1108;
  position: relative;
  overflow: hidden;
}

.portal-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 90% at 18% 50%, rgba(201,168,76,.07) 0%, transparent 65%),
    radial-gradient(ellipse 80% 60% at 18% 50%, rgba(100,50,0,.18)   0%, transparent 55%),
    radial-gradient(ellipse 60% 80% at 80% 50%, rgba(100,50,0,.08)   0%, transparent 55%);
  pointer-events: none;
  animation: portal-bg-shift 6s ease-in-out infinite alternate;
}
@keyframes portal-bg-shift {
  0%   { opacity: .85; }
  100% { opacity: 1;   }
}

.portal-ray {
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(201,168,76,.06) 15%,
    rgba(201,168,76,.22) 42%,
    rgba(201,168,76,.22) 58%,
    rgba(201,168,76,.06) 85%,
    transparent 100%
  );
  pointer-events: none;
  animation: portal-ray-pulse 4s ease-in-out infinite;
}
@keyframes portal-ray-pulse {
  0%, 100% { opacity: .5; }
  50%       { opacity: 1;  }
}

.portal-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 56px;
  padding: 40px 48px;
  max-width: 1000px;
  margin: 0 auto;
  min-height: 160px;
}

/* ── VÓRTICE ── */
.portal-vortex {
  position: relative;
  width: 180px;
  height: 180px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.portal-ring {
  position: absolute;
  border-radius: 50%;
  border-style: solid;
  border-color: transparent;
}
.portal-ring-1 {
  inset: 0;
  border-width: 2px;
  border-top-color:   rgba(201,168,76,.85);
  border-right-color: rgba(201,168,76,.20);
  animation: portal-spin 4s linear infinite;
  box-shadow: 0 0 16px rgba(201,168,76,.28), inset 0 0 16px rgba(201,168,76,.08);
}
.portal-ring-2 {
  inset: 16px;
  border-width: 1.5px;
  border-bottom-color: rgba(232,130,10,.75);
  border-left-color:   rgba(232,130,10,.18);
  animation: portal-spin 3s linear infinite reverse;
}
.portal-ring-3 {
  inset: 32px;
  border-width: 1px;
  border-top-color:   rgba(201,168,76,.50);
  border-right-color: rgba(201,168,76,.10);
  animation: portal-spin 5s linear infinite;
}
.portal-ring-4 {
  inset: 46px;
  border-width: 1px;
  border-bottom-color: rgba(232,130,10,.40);
  animation: portal-spin 7s linear infinite reverse;
}
@keyframes portal-spin { to { transform: rotate(360deg); } }

.portal-core {
  position: relative;
  z-index: 3;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,.38) 0%, rgba(201,168,76,.04) 60%, transparent 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: portal-core-pulse 2.5s ease-in-out infinite;
}
@keyframes portal-core-pulse {
  0%, 100% { box-shadow: 0 0 14px rgba(201,168,76,.38), 0 0 36px rgba(201,168,76,.10); }
  50%       { box-shadow: 0 0 28px rgba(201,168,76,.70), 0 0 65px rgba(201,168,76,.28); }
}
.portal-core-rune {
  font-size: 32px;
  color: #e8c96a;
  text-shadow: 0 0 18px rgba(201,168,76,.90);
  animation: portal-rune-flicker 4s ease-in-out infinite;
}
@keyframes portal-rune-flicker {
  0%, 89%, 100% { opacity: 1;   }
  92%            { opacity: .55; }
  95%            { opacity: 1;   }
  97%            { opacity: .70; }
}

.portal-sparks {
  position: absolute;
  inset: -10px;
  pointer-events: none;
}
.portal-spark {
  position: absolute;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: #c9a84c;
  box-shadow: 0 0 5px #c9a84c;
  top: 50%; left: 50%;
  animation: portal-spark-orbit linear infinite;
}
@keyframes portal-spark-orbit {
  0%   { transform: rotate(var(--sa,0deg))   translateX(var(--sr,70px)); opacity: 0;   }
  20%  { opacity: 1;   }
  80%  { opacity: .80; }
  100% { transform: rotate(calc(var(--sa,0deg) + 360deg)) translateX(var(--sr,70px)); opacity: 0; }
}

/* ── CONTENIDO ── */
.portal-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.portal-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Cinzel', serif;
  font-size: .75rem;
  letter-spacing: .30em;
  text-transform: uppercase;
  color: var(--amber-hot);
  border: 1px solid rgba(232,130,10,.35);
  background: rgba(232,130,10,.05);
  padding: 6px 16px;
  width: fit-content;
}
.portal-badge-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--amber-hot);
  box-shadow: 0 0 6px var(--amber-hot);
  animation: portal-dot-blink 1.1s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes portal-dot-blink {
  0%, 100% { opacity: 1;   }
  50%       { opacity: .18; }
}

.portal-eyebrow {
  font-family: 'Cinzel', serif;
  font-size: .75rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: #7a6535;
}

.portal-title {
  font-family: 'Cinzel', serif;
  font-size: clamp(1.3rem, 2.6vw, 1.9rem);
  font-weight: 700;
  color: #e8c96a;
  line-height: 1.2;
  animation: portal-title-glow 3s ease-in-out infinite;
}
@keyframes portal-title-glow {
  0%, 100% { text-shadow: 0 0 14px rgba(201,168,76,.22); }
  50%       { text-shadow: 0 0 28px rgba(201,168,76,.55), 0 0 55px rgba(201,168,76,.18); }
}

.portal-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.portal-meta-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: .95rem;
  line-height: 1.5;
}
.portal-meta-label {
  font-family: 'Cinzel', serif;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #5a4a28;
  min-width: 4rem;
}
.portal-meta-sep { color: rgba(201,168,76,.22); }
.portal-meta-val {
  font-family: 'Cinzel', serif;
  font-size: .95rem;
  letter-spacing: .06em;
  color: #c9a84c;
}

.portal-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Cinzel', serif;
  font-size: .78rem;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: #c9a84c;
  text-decoration: none;
  margin-top: 8px;
  transition: color .2s, letter-spacing .2s;
}
.portal-link:hover {
  color: #e8c96a;
  letter-spacing: .28em;
}
/* Neutralizar hx-link-action dentro del portal */
.anuncio-band--portal .hx-link-action::after { display: none; }
.anuncio-band--portal .hx-link-action:hover  { color: #e8c96a; }

/* ── RESPONSIVE ── */
@media (max-width: 700px) {
  .portal-inner {
    padding: 24px 20px;
    gap: 20px;
  }
  .portal-vortex {
    width: 110px;
    height: 110px;
  }
  .portal-ring-1 { inset: 0; }
  .portal-ring-2 { inset: 10px; }
  .portal-ring-3 { inset: 20px; }
  .portal-ring-4 { inset: 30px; }
  .portal-core   { width: 50px; height: 50px; }
  .portal-core-rune { font-size: 22px; }
  .portal-title { font-size: clamp(.9rem, 4vw, 1.1rem); }
}

@media (max-width: 480px) {
  .portal-inner { flex-direction: column; align-items: flex-start; gap: 16px; }
  .portal-vortex { align-self: center; }
}

/* ══════════════════════════════════════════════════════
   TRANSICIONES PORTAL: fade-out / fade-in
   ══════════════════════════════════════════════════════ */
.hx-portal-fadeout {
  opacity: 0 !important;
  transition: opacity .6s ease !important;
  pointer-events: none;
}
.hx-portal-fadein {
  animation: hx-portal-entrada .8s ease forwards;
}
@keyframes hx-portal-entrada {
  0%   { opacity: 0; transform: translateY(6px); }
  100% { opacity: 1; transform: translateY(0); }
}
