/* ============================================================
   MANOS AMIGAS – style.css
   Paleta: Rojo #c0392b · Verde Oscuro #1a5c2e · Azul #1a3d72
   Desarrollado por RED ENTRE RIOS · redentrerios.com
   ============================================================ */

/* ── RESET & VARIABLES ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --red:     #c0392b;
  --red-d:   #922b21;
  --red-l:   #e74c3c;
  --green:   #1a5c2e;
  --green-l: #239b47;
  --blue:    #1a3d72;
  --blue-l:  #2656a8;
  --gold:    #e8a020;
  --gold-l:  #f5c842;
  --cream:   #f7f4ef;
  --dark:    #0e1820;
  --mid:     #445566;
  --white:   #ffffff;
  --nav-h:   66px;
  --radius:  16px;
  --shadow:  0 8px 32px rgba(0,0,0,.15);
}

html { scroll-behavior: smooth; }
body { font-family: 'Mulish', sans-serif; background: var(--cream); color: var(--dark); overflow-x: hidden; }
img  { display: block; max-width: 100%; }
a    { text-decoration: none; }

/* ── LOADER ── */
#loader {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--dark);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 28px;
  transition: opacity .6s ease, visibility .6s ease;
}
#loader.hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.loader-logo {
  animation: loaderPulse 1.4s ease-in-out infinite alternate;
}
.loader-logo-img {
  width: clamp(200px, 45vw, 340px);
  height: auto;
  filter: drop-shadow(0 0 24px rgba(192,57,43,.5));
  animation: loaderGlow 1.4s ease-in-out infinite alternate;
}
@keyframes loaderPulse {
  from { transform: scale(.95); }
  to   { transform: scale(1.05); }
}
@keyframes loaderGlow {
  from { filter: drop-shadow(0 0 10px rgba(192,57,43,.35)); }
  to   { filter: drop-shadow(0 0 30px rgba(192,57,43,.75)) drop-shadow(0 0 15px rgba(26,92,46,.5)); }
}

.loader-bar {
  width: clamp(180px, 40vw, 280px); height: 4px;
  background: rgba(255,255,255,.1); border-radius: 4px; overflow: hidden;
}
.loader-fill {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--red), var(--gold), var(--green));
  border-radius: 4px;
  animation: loaderFill 1.9s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes loaderFill { to { width: 100%; } }

.loader-text {
  color: rgba(255,255,255,.4); font-size: .78rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
}

/* ── NAV ── */
#navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 32px; height: var(--nav-h);
  background: rgba(26,61,114,.95);
  backdrop-filter: blur(16px);
  border-bottom: 2px solid rgba(192,57,43,.5);
  transition: background .35s, box-shadow .35s;
}
#navbar.scrolled {
  background: rgba(14,24,32,.97);
  box-shadow: 0 4px 24px rgba(0,0,0,.35);
}

.nav-brand { display: flex; align-items: center; gap: 12px; }
.nav-brand-text {
  font-family: 'Playfair Display', serif; font-size: 1.2rem; color: var(--white); line-height: 1.1;
}
.nav-brand-text span {
  display: block; font-family: 'Mulish', sans-serif;
  font-size: .6rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(255,255,255,.5); margin-top: 2px;
}

.nav-links { display: flex; gap: 24px; list-style: none; }
.nav-link {
  color: rgba(255,255,255,.78); font-weight: 700; font-size: .84rem;
  letter-spacing: .04em; position: relative; padding: 4px 0;
  transition: color .2s;
}
.nav-link::after {
  content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px;
  background: var(--gold); border-radius: 2px;
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.nav-link:hover, .nav-link.active { color: var(--gold); }
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }

.nav-cta {
  background: var(--red); color: #fff; border: none; border-radius: 50px;
  padding: 9px 22px; font-weight: 900; font-size: .82rem; cursor: pointer;
  letter-spacing: .04em; transition: transform .2s, box-shadow .2s, background .2s;
}
.nav-cta:hover { background: var(--red-l); transform: translateY(-2px); box-shadow: 0 6px 22px rgba(192,57,43,.55); }

.hamburger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; background: none; border: none; padding: 6px;
}
.hamburger span { width: 26px; height: 2px; background: #fff; border-radius: 2px; transition: .3s; }
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── SLIDER ── */
.slider-section {
  position: relative; margin-top: var(--nav-h);
  height: 560px; overflow: hidden;
}
@media (max-width: 768px) { .slider-section { height: 70vw; min-height: 300px; } }
@media (max-width: 480px) { .slider-section { height: 75vw; min-height: 260px; } }

.slider-track {
  display: flex; width: 400%; height: 100%;
  transition: transform .65s cubic-bezier(.77,0,.18,1);
}

.slide { width: 25%; height: 100%; flex-shrink: 0; position: relative; overflow: hidden; }

/* Background image for slides */
.slide-bg-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  z-index: 0; transition: transform 6s ease;
}
.slide.active .slide-bg-img { transform: scale(1.04); }

/* Slide backgrounds – used as fallback color only */
.slide-1 { background: #091e45; }
.slide-2 { background: #5a0e07; }
.slide-3 { background: #082213; }
.slide-4 { background: #1a2e56; }

.slide-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(160deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.72) 100%);
  pointer-events: none;
}

/* SVG Art */
.slide-art {
  position: absolute; right: -20px; top: 50%; transform: translateY(-50%);
  opacity: 0; transition: opacity .8s ease .3s, transform .8s ease .3s;
}
.slide.active .slide-art { opacity: .3; transform: translateY(-50%) scale(1); }
@media (max-width: 600px) { .slide-art { display: none; } }

/* CSS particles (canvas handled in JS) */
.slide-particles { position: absolute; inset: 0; pointer-events: none; }

/* Slide content */
.slide-content {
  position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column;
  justify-content: flex-end; padding: clamp(20px, 5vw, 52px);
}
.slide-tag {
  display: inline-block; background: var(--gold); color: var(--dark);
  font-size: .7rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase;
  padding: 4px 14px; border-radius: 50px; margin-bottom: 14px; width: fit-content;
  transform: translateY(20px); opacity: 0; transition: transform .5s ease .2s, opacity .5s ease .2s;
}
.slide-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.6rem, 4.5vw, 3.2rem); color: #fff; line-height: 1.15;
  text-shadow: 0 2px 16px rgba(0,0,0,.4);
  transform: translateY(30px); opacity: 0;
  transition: transform .55s ease .35s, opacity .55s ease .35s;
}
.slide-sub {
  color: rgba(255,255,255,.7); font-size: clamp(.78rem, 1.8vw, 1rem);
  margin-top: 10px; font-weight: 300;
  transform: translateY(20px); opacity: 0;
  transition: transform .5s ease .5s, opacity .5s ease .5s;
}
.slide-btn {
  display: inline-block; margin-top: 20px;
  background: var(--blue); color: #fff; border-radius: 50px;
  padding: 11px 26px; font-weight: 800; font-size: .84rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.3);
  width: fit-content; transition: transform .2s, box-shadow .2s;
  transform: translateY(20px); opacity: 0;
  transition: transform .5s ease .65s, opacity .5s ease .65s, box-shadow .2s, scale .2s;
}
.slide-btn:hover { transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(0,0,0,.4); }

.slide.active .slide-tag,
.slide.active .slide-title,
.slide.active .slide-sub,
.slide.active .slide-btn { transform: translateY(0); opacity: 1; }

/* Arrows */
.s-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 20;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(0,0,0,.35); border: 2px solid rgba(255,255,255,.4);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(6px); transition: background .2s, border-color .2s, transform .2s;
}
.s-arrow:hover { background: rgba(0,0,0,.6); border-color: #fff; transform: translateY(-50%) scale(1.08); }
.s-arrow svg { width: 20px; height: 20px; fill: #fff; }
.s-prev { left: 18px; }
.s-next { right: 18px; }

/* Dots */
.s-dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 20; }
.s-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: rgba(255,255,255,.35); border: 2px solid rgba(255,255,255,.6);
  cursor: pointer; transition: background .3s, transform .3s, border-color .3s;
}
.s-dot.active { background: var(--gold); transform: scale(1.35); border-color: var(--gold); }

/* Progress bar */
.s-progress {
  position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: rgba(255,255,255,.12);
}
.s-progress-bar {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--red), var(--gold));
  transition: width linear;
}

/* ── PLAYER ── */
.player-section {
  position: relative; overflow: hidden;
  background: var(--dark);
  padding: 60px 20px;
}
#particleCanvas {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
}
.player-inner { max-width: 840px; margin: 0 auto; position: relative; z-index: 2; }

.player-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--red); color: #fff;
  padding: 5px 18px; border-radius: 50px;
  font-size: .72rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase;
  margin-bottom: 18px;
}
.live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #fff;
  animation: livePulse 1.4s ease-in-out infinite;
}
@keyframes livePulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.25;transform:scale(.55)} }

.player-title {
  font-family: 'Playfair Display', serif; color: #fff;
  font-size: clamp(1.6rem, 4vw, 2.5rem); line-height: 1.2;
}
.player-sub { color: rgba(255,255,255,.4); font-size: .9rem; margin-top: 6px; font-weight: 300; }

.p-card {
  margin-top: 32px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 28px; padding: 36px;
  display: grid; grid-template-columns: auto 1fr; gap: 36px; align-items: center;
  backdrop-filter: blur(10px);
}
@media (max-width: 600px) { .p-card { grid-template-columns: 1fr; padding: 24px 18px; gap: 24px; } }

/* Disco */
.disc-wrap { position: relative; flex-shrink: 0; }
.disc {
  width: 120px; height: 120px; border-radius: 50%; position: relative;
  background: #111; overflow: hidden;
  box-shadow: 0 0 0 5px rgba(255,255,255,.08), 0 8px 36px rgba(0,0,0,.5);
  transition: box-shadow .4s;
}
.disc-logo-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  border-radius: 50%; z-index: 1;
}
.disc.spinning { animation: discSpin 6s linear infinite; }
.disc.spinning {
  box-shadow: 0 0 0 5px rgba(255,255,255,.1),
              0 0 45px rgba(192,57,43,.5),
              0 0 90px rgba(26,92,46,.25),
              0 8px 36px rgba(0,0,0,.5);
}
@keyframes discSpin { to { transform: rotate(360deg); } }

.disc-glow {
  position: absolute; inset: -4px; border-radius: 50%;
  background: conic-gradient(var(--red), var(--gold), var(--green), var(--blue), var(--red));
  opacity: 0; filter: blur(8px); transition: opacity .4s;
  animation: glowSpin 3s linear infinite paused;
}
.disc.spinning .disc-glow { opacity: .45; animation-play-state: running; }
@keyframes glowSpin { to { transform: rotate(360deg); } }

.disc-ring {
  position: absolute; border-radius: 50%; pointer-events: none;
}
.disc-ring-1 {
  inset: -10px; border: 2px dashed rgba(255,255,255,.18);
  animation: ringCounterSpin 5s linear infinite paused;
}
.disc-ring-2 {
  inset: -18px; border: 1px dashed rgba(255,255,255,.08);
  animation: ringCounterSpin 8s linear infinite paused reverse;
}
.disc.spinning .disc-ring-1,
.disc.spinning .disc-ring-2 { animation-play-state: running; }
@keyframes ringCounterSpin { to { transform: rotate(-360deg); } }

.disc-shadow {
  position: absolute; bottom: -14px; left: 50%; transform: translateX(-50%);
  width: 80px; height: 10px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px);
}

/* Waveform */
.p-wave { display: flex; align-items: center; gap: 3px; height: 52px; margin: 4px 0; }
.wbar {
  width: 5px; border-radius: 5px;
  background: rgba(255,255,255,.15);
  height: 5px; flex-shrink: 0;
}
/* Animated bars handled by JS */

/* Controls */
.p-controls { display: flex; flex-direction: column; gap: 16px; }
.p-station   { font-weight: 900; color: #fff; font-size: 1rem; }
.p-url       { color: rgba(255,255,255,.38); font-size: .78rem; margin-top: 2px; }
.p-row       { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.btn-play {
  width: 62px; height: 62px; border-radius: 50%; border: none; cursor: pointer;
  background: linear-gradient(135deg, var(--red) 0%, var(--red-d) 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 24px rgba(192,57,43,.55);
  transition: transform .15s, box-shadow .15s;
  position: relative; overflow: hidden;
}
.btn-play::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  background: radial-gradient(circle at center, rgba(255,255,255,.2) 0%, transparent 70%);
  opacity: 0; transition: opacity .2s;
}
.btn-play:hover { transform: scale(1.1); box-shadow: 0 6px 32px rgba(192,57,43,.75); }
.btn-play:hover::after { opacity: 1; }
.btn-play:active { transform: scale(.96); }

.btn-stop {
  width: 50px; height: 50px; border-radius: 50%; cursor: pointer;
  background: rgba(255,255,255,.07); border: 2px solid rgba(255,255,255,.2);
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s, transform .15s;
}
.btn-stop:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.5); transform: scale(1.06); }
.btn-stop:active { transform: scale(.95); }

.vol-wrap { display: flex; align-items: center; gap: 8px; }
input[type=range] {
  -webkit-appearance: none; width: 100px; height: 4px;
  background: rgba(255,255,255,.18); border-radius: 4px; outline: none; cursor: pointer;
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%;
  background: var(--gold); cursor: pointer;
  box-shadow: 0 0 8px rgba(232,160,32,.6); transition: transform .15s;
}
input[type=range]::-webkit-slider-thumb:hover { transform: scale(1.25); }

.p-status { font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.32); transition: color .3s; }
.p-status.live { color: #5effa0; }
.p-status.loading { color: var(--gold); }

/* ── TRICOLOR ── */
.tricolor { height: 5px; background: linear-gradient(90deg, var(--red) 0 33.3%, var(--white) 33.3% 66.6%, var(--green) 66.6% 100%); }

/* ── REVEAL ── */
.reveal {
  opacity: 0; transform: translateY(32px);
  transition: opacity .65s ease, transform .65s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── ABOUT ── */
.about-section { padding: 90px 20px; background: var(--cream); }
.about-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center;
}
@media (max-width: 768px) { .about-inner { grid-template-columns: 1fr; gap: 44px; } }

.tag-pill {
  display: inline-block; background: var(--green); color: #fff;
  font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase;
  padding: 5px 16px; border-radius: 50px; margin-bottom: 16px;
}
.sec-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.9rem, 4.5vw, 3rem); line-height: 1.15; color: var(--dark);
}
.sec-title em { color: var(--red); font-style: italic; }
.about-body { color: var(--mid); line-height: 1.85; font-size: .96rem; margin-top: 20px; }
.about-body p + p { margin-top: 14px; }
.about-body strong { color: var(--dark); }
.about-cta {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 32px;
  background: var(--blue); color: #fff;
  padding: 14px 30px; border-radius: 50px; font-weight: 800; font-size: .88rem;
  box-shadow: 0 4px 18px rgba(26,61,114,.35);
  transition: transform .2s, box-shadow .2s, background .2s;
}
.about-cta:hover { background: var(--blue-l); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(26,61,114,.45); }

/* About cards */
.about-cards-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.about-card {
  border-radius: 20px; padding: 28px 20px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
  cursor: default; transition: transform .3s, box-shadow .3s;
}
.about-card:hover { transform: translateY(-6px); box-shadow: 0 12px 32px rgba(0,0,0,.2); }
.about-card:first-child { grid-column: 1 / -1; flex-direction: row; align-items: center; padding: 22px 28px; }
.vb-blue  { background: linear-gradient(135deg, var(--blue), var(--blue-l)); }
.vb-red   { background: linear-gradient(135deg, var(--red-d), var(--red)); }
.vb-green { background: linear-gradient(135deg, var(--green), var(--green-l)); }
.vb-dark  { background: linear-gradient(135deg, #1e2a3a, #2a3f56); }
.about-card-icon { flex-shrink: 0; }
.about-card-text { font-family: 'Playfair Display', serif; font-size: 1rem; color: #fff; line-height: 1.25; }
.about-card-text span { display: block; font-family: 'Mulish', sans-serif; font-size: .78rem; font-weight: 300; opacity: .7; margin-top: 3px; }

/* ── STATS ── */
.stats-section { background: var(--green); padding: 64px 20px; }
.stats-inner {
  max-width: 900px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; text-align: center;
}
@media (max-width: 600px) { .stats-inner { grid-template-columns: 1fr; gap: 28px; } }
.stat-num {
  font-family: 'Playfair Display', serif;
  font-size: clamp(3rem, 7vw, 4.5rem); color: var(--gold); line-height: 1;
}
.stat-label { color: rgba(255,255,255,.65); font-size: .9rem; font-weight: 700; margin-top: 8px; letter-spacing: .04em; }

/* ── GALLERY ── */
.gallery-section { padding: 80px 20px; background: #fff; }
.sec-header { text-align: center; margin-bottom: 48px; }
.sec-label {
  display: inline-block; font-size: .72rem; font-weight: 900; letter-spacing: .14em;
  text-transform: uppercase; padding: 5px 16px; border-radius: 50px; margin-bottom: 12px;
  background: rgba(26,61,114,.1); color: var(--blue);
}
.gal-grid {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(210px,1fr)); gap: 14px;
}
.g-item {
  border-radius: 18px; overflow: hidden; position: relative;
  aspect-ratio: 4/3; cursor: pointer;
}
.g-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.g-item:hover img { transform: scale(1.07); }
.g-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
}
.g-overlay {
  position: absolute; inset: 0;
  background: rgba(26,61,114,0); transition: background .3s;
}
.g-item:hover .g-overlay { background: rgba(26,61,114,.3); }
.gb-1 { background: linear-gradient(135deg, #091e45, #1a3d72); }
.gb-2 { background: linear-gradient(135deg, #5a0e07, #c0392b); }
.gb-3 { background: linear-gradient(135deg, #082213, #1a5c2e); }
.gb-4 { background: linear-gradient(135deg, #2c1a5c, #7b1fa2); }
.gb-5 { background: linear-gradient(135deg, #1a3d72, #1a5c2e); }
.gb-6 { background: linear-gradient(135deg, #b8550a, #e8a020); }
.gal-note { text-align: center; margin-top: 20px; color: #aaa; font-size: .8rem; }
.gal-note code { background: rgba(0,0,0,.07); padding: 2px 6px; border-radius: 4px; }

/* ── COLABORADORES ── */
.colabs-section { padding: 80px 20px; background: var(--cream); }
.colab-grid {
  max-width: 1000px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(130px,1fr)); gap: 16px;
}
.colab-card {
  background: #fff; border-radius: 16px; padding: 22px 14px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  border: 2px solid transparent; cursor: default;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.colab-card:hover { border-color: var(--red); transform: translateY(-5px); box-shadow: var(--shadow); }
.colab-icon {
  width: 48px; height: 48px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.ci-blue  { background: #e8f0ff; }
.ci-red   { background: #fdecea; }
.ci-green { background: #e8f5e9; }
.ci-gold  { background: #fff8e1; }
.colab-name { font-size: .78rem; font-weight: 800; text-align: center; color: var(--dark); line-height: 1.25; }

/* ── LINKS ── */
.links-section { padding: 70px 20px; background: var(--blue); }
.links-inner { max-width: 900px; margin: 0 auto; }
.lk-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
  gap: 14px; margin-top: 36px;
}
.lk-card {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px; padding: 18px 14px; color: #fff;
  display: flex; align-items: center; gap: 14px;
  transition: background .2s, transform .2s, border-color .2s;
}
.lk-card:hover { background: rgba(255,255,255,.14); transform: translateY(-2px); border-color: var(--gold); }
.lk-icon {
  width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.lk-name { font-weight: 800; font-size: .88rem; }
.lk-desc { color: rgba(255,255,255,.42); font-size: .75rem; margin-top: 2px; }
.contact-info {
  margin-top: 32px; text-align: center; color: rgba(255,255,255,.48); font-size: .85rem; line-height: 1.7;
}
.contact-info strong { color: rgba(255,255,255,.78); }

/* ── FOOTER ── */
footer {
  background: var(--dark); padding: 40px 20px; text-align: center;
  color: rgba(255,255,255,.42); font-size: .84rem;
  border-top: 3px solid var(--red);
}
.ft-logo {
  display: inline-flex; align-items: center; gap: 12px; margin-bottom: 12px;
  font-family: 'Playfair Display', serif; font-size: 1.4rem; color: #fff;
}
.ft-dev { margin-top: 14px; }
.ft-dev a { color: var(--gold); transition: color .2s; }
.ft-dev a:hover { color: var(--gold-l); }

/* ── MOBILE NAV ── */
@media (max-width: 768px) {
  .nav-links-wrap {
    display: none; position: fixed; top: var(--nav-h); left: 0; right: 0;
    background: rgba(14,24,32,.97); padding: 20px 28px;
    flex-direction: column; border-bottom: 2px solid var(--red);
    max-height: calc(100vh - var(--nav-h)); overflow-y: auto;
  }
  .nav-links-wrap.open { display: flex; animation: slideDown .3s ease; }
  @keyframes slideDown { from { opacity:0;transform:translateY(-12px); } to { opacity:1;transform:translateY(0); } }
  .nav-links { flex-direction: column; gap: 0; }
  .nav-link { display: block; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: .95rem; }
  .nav-link::after { display: none; }
  .hamburger { display: flex; }
  .nav-cta { display: none; }
}

/* ── RIPPLE ── */
.ripple {
  position: absolute; border-radius: 50%;
  background: rgba(255,255,255,.3); pointer-events: none;
  transform: scale(0); animation: rippleOut .55s ease-out forwards;
}
@keyframes rippleOut { to { transform: scale(4); opacity: 0; } }

/* ── SCROLL TO TOP ── */
#scrollTop {
  position: fixed; bottom: 28px; right: 24px; z-index: 300;
  width: 46px; height: 46px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--red); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(192,57,43,.5);
  opacity: 0; transform: translateY(20px);
  transition: opacity .3s, transform .3s;
}
#scrollTop.visible { opacity: 1; transform: translateY(0); }
#scrollTop:hover { background: var(--red-l); transform: translateY(-3px); }
