/* ═══════════════════════════════════════════════════════
   site.css — OfertaLocal
   ═══════════════════════════════════════════════════════ */

:root {
  --cream:     #F7F3EE;
  --ink:       #1A1410;
  --rust:      #C84B1F;
  --gold:      #D4A843;
  --sage:      #5A7A5E;
  --warm-gray: #8C7B70;
  --border:    #E2D9D0;
  --white:     #FFFFFF;
  --red:       #D63030;
  --orange:    #D4752A;
  --green:     #4A9B5E;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--cream);
  color: var(--ink);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main { flex: 1; }

/* ── LINKS BASE ──────────────────────────────────────── */
a { color: var(--rust); }

/* ── ADMIN BAR ───────────────────────────────────────── */
.admin-bar {
  background: #2D2420;
  color: #6B5E57;
  font-size: .75rem;
  text-align: center;
  padding: .4rem;
  letter-spacing: .05em;
}
.admin-bar a { color: var(--gold); text-decoration: none; margin-left: .5rem; }
.admin-bar-sep { color: rgba(255,255,255,.15); margin: 0 .3rem; }
.admin-bar-logout { color: #e74c3c !important; cursor: pointer; border: none; background: none; font-size: .75rem; letter-spacing: .05em; }
.admin-bar-logout:hover { color: #ff6b6b !important; }
.super-admin-bar { background: #1a0a2e; border-bottom: 2px solid #9b59b6; }
.super-admin-bar a { color: #bb86fc; }

/* Pagina de Novedades */
.novedad-card {
    display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem;
    background: #fff; border: 1px solid var(--border); border-radius: 10px;
    margin-bottom: .6rem; text-decoration: none; color: var(--ink); transition: all .2s;
}
.novedad-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.novedad-card-icon { font-size: 1.5rem; width: 40px; text-align: center; flex-shrink: 0; }
.novedad-card-body { flex: 1; min-width: 0; }
.novedad-card-header { display: flex; gap: .5rem; align-items: center; margin-bottom: .3rem; }
.novedad-card-tipo { font-size: .65rem; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 3px; }
.novedad-card-informativa .novedad-card-tipo, .novedad-card-tipo { background: #dbeafe; color: #1e40af; }
.novedad-card-promocion .novedad-card-tipo { background: #fef3c7; color: #92400e; }
.novedad-card-urgente .novedad-card-tipo { background: #fef2f2; color: #dc2626; }
.novedad-card-exito .novedad-card-tipo { background: #d1fae5; color: #065f46; }
.novedad-card-fecha { font-size: .72rem; color: var(--warm-gray); }
.novedad-card-titulo { font-size: .95rem; font-weight: 600; margin: 0; }
.novedad-card-texto { font-size: .82rem; color: var(--warm-gray); margin: .3rem 0 0; line-height: 1.4; }
.novedad-card-arrow { color: var(--warm-gray); font-size: .8rem; flex-shrink: 0; }

/* Detalle novedad */
.novedad-detalle-card {
    background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 2rem;
}
.novedad-detalle-header { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.novedad-detalle-fecha { font-size: .82rem; color: var(--warm-gray); }
.novedad-detalle-titulo { font-family: 'Fraunces', serif; font-size: 1.5rem; margin: 0 0 1rem; }
.novedad-detalle-texto { font-size: .9rem; line-height: 1.7; color: var(--ink); }
.novedad-detalle-texto p { margin-bottom: .8rem; }
.novedad-tipo-badge { font-size: .7rem; font-weight: 700; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; }
.novedad-tipo-informativa { background: #dbeafe; color: #1e40af; }
.novedad-tipo-promocion { background: #fef3c7; color: #92400e; }
.novedad-tipo-urgente { background: #fef2f2; color: #dc2626; }
.novedad-tipo-exito { background: #d1fae5; color: #065f46; }

/* Stat cards (dashboard) */
.stat-card { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 1.2rem; text-align: center; }
.stat-card-num { font-family: 'Fraunces', serif; font-size: 2rem; font-weight: 700; color: var(--rust); line-height: 1; }
.stat-card-label { font-size: .75rem; color: var(--warm-gray); text-transform: uppercase; letter-spacing: .05em; margin-top: .3rem; }
@media (max-width: 768px) { .stats-grid { grid-template-columns: repeat(3,1fr) !important; } }

/* Compartir promo */
.detalle-share-section { padding: 1rem 2.5rem !important; }
.share-buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.share-btn {
    display: inline-flex; align-items: center; gap: .3rem;
    padding: .4rem .8rem; border-radius: 6px; font-size: .8rem; font-weight: 500;
    text-decoration: none; cursor: pointer; border: 1px solid var(--border); background: #fff; color: var(--ink);
    transition: all .2s;
}
.share-btn:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.share-wa { background: #25d366; color: #fff; border-color: #25d366; }
.share-fb { background: #1877f2; color: #fff; border-color: #1877f2; }
.share-tw { background: #000; color: #fff; border-color: #000; }
.share-copy { background: var(--cream); }
.share-fav { background: #fff; color: #e74c3c; border-color: #e74c3c; font-size: 1rem; }
.share-fav.fav-active { background: #e74c3c; color: #fff; }

/* Autocomplete */
.search-autocomplete {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 100;
    background: #fff; border: 1px solid var(--border); border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12); max-height: 320px; overflow-y: auto; display: none;
}
.search-autocomplete.open { display: block; }
.ac-item {
    display: flex; align-items: center; gap: .6rem; padding: .6rem 1rem;
    cursor: pointer; text-decoration: none; color: var(--ink); font-size: .85rem;
    border-bottom: 1px solid rgba(0,0,0,.04);
}
.ac-item:hover { background: rgba(0,0,0,.03); }
.ac-icon { font-size: 1.3rem; width: 30px; text-align: center; }
.ac-name { font-weight: 500; }
.ac-extra { font-size: .75rem; color: var(--warm-gray); }
.ac-tipo { font-size: .6rem; text-transform: uppercase; padding: 1px 5px; border-radius: 3px; font-weight: 600; }
.ac-tipo-promo { background: #fef3c7; color: #92400e; }
.ac-tipo-local { background: #dbeafe; color: #1e40af; }

/* Horarios estructurados */
.horarios-grid {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem;
    margin-top: .5rem;
}
.horario-dia {
    text-align: center; padding: .4rem .2rem; border-radius: 6px;
    border: 1px solid var(--border); font-size: .75rem;
}
.horario-dia-nombre { font-weight: 600; font-size: .7rem; text-transform: uppercase; margin-bottom: .2rem; }
.horario-dia-horas { font-size: .7rem; color: var(--warm-gray); }
.horario-dia.cerrado { background: #fef2f2; color: #dc2626; }
.horario-dia.abierto { background: #ecfdf5; border-color: #86efac; }

/* Tabla edicion horarios (admin) */
.horarios-edit-table { width: 100%; border-collapse: collapse; font-size: .82rem; margin-bottom: .5rem; table-layout: fixed; }
.horarios-edit-table th { text-align: left; padding: .4rem .5rem; font-size: .75rem; font-weight: 600; color: var(--warm-gray); text-transform: uppercase; border-bottom: 1px solid var(--border); }
.horarios-edit-table th:first-child { width: 85px; }
.horarios-edit-table th:last-child { width: 55px; text-align: center; }
.horarios-edit-table td { padding: .3rem .5rem; border-bottom: 1px solid rgba(0,0,0,.04); vertical-align: middle; }
.horarios-edit-table td:first-child { font-weight: 500; }
.horarios-edit-table td:last-child { text-align: center; }
.horarios-edit-table .form-control { padding: .3rem .4rem; font-size: .8rem; width: 100%; box-sizing: border-box; }

/* Stock cupones */
.stock-badge {
    display: inline-flex; align-items: center; gap: .3rem;
    padding: .2rem .6rem; border-radius: 4px; font-size: .75rem; font-weight: 600;
}
.stock-disponible { background: #ecfdf5; color: #047857; }
.stock-bajo { background: #fef3c7; color: #92400e; }
.stock-agotado { background: #fef2f2; color: #dc2626; }

/* Dashboard Afiliado */
.afil-dash-header {
    display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem;
    background: #fff; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 1.5rem;
}
.afil-dash-avatar { font-size: 3.5rem; color: var(--warm-gray); }
.afil-dash-info { flex: 1; }
.afil-dash-info h2 { margin: 0 0 .3rem; font-family: 'Fraunces', serif; font-size: 1.4rem; }
.afil-desde { font-size: .78rem; color: var(--warm-gray); }
.afil-nivel {
    display: inline-flex; align-items: center; gap: .3rem;
    padding: .2rem .7rem; border-radius: 20px; font-size: .78rem; font-weight: 700;
    margin-right: .5rem;
}
.afil-nivel-bronce { background: #fef3c7; color: #92400e; }
.afil-nivel-plata { background: #e5e7eb; color: #374151; }
.afil-nivel-oro { background: #fef08a; color: #854d0e; }
.afil-dash-qr { text-align: center; }
.afil-qr-img { width: 100px; height: 100px; border-radius: 8px; border: 2px solid var(--border); }
.afil-dash-qr small { display: block; font-size: .7rem; color: var(--warm-gray); margin-top: .3rem; }

/* Barra de progreso nivel */
.nivel-bar-wrap { margin: .8rem 0; }
.nivel-bar { height: 10px; background: #e5e7eb; border-radius: 5px; overflow: hidden; }
.nivel-bar-fill { height: 100%; border-radius: 5px; background: linear-gradient(90deg, #cd7f32, #c0c0c0, #ffd700); transition: width .5s; }
.nivel-labels { display: flex; justify-content: space-between; margin-top: .3rem; }
.nivel-label { font-size: .7rem; font-weight: 600; }
.nivel-bronce { color: #cd7f32; }
.nivel-plata { color: #9ca3af; }
.nivel-oro { color: #d4a843; }

/* Items de beneficios en dashboard */
.afil-ben-item {
    display: flex; align-items: center; gap: .6rem; padding: .5rem 0;
    border-bottom: 1px solid rgba(0,0,0,.05); font-size: .85rem;
}
.afil-ben-icon { font-size: 1.2rem; }
.afil-ben-info { flex: 1; min-width: 0; }
.afil-ben-info strong { display: block; font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.afil-ben-info small { color: var(--warm-gray); font-size: .75rem; }
.afil-ben-dto { font-weight: 700; color: var(--rust); font-size: .85rem; }
.estado-badge { font-size: .65rem; padding: 2px 6px; border-radius: 3px; font-weight: 600; text-transform: uppercase; }
.estado-pendiente { background: #fef3c7; color: #92400e; }
.estado-utilizado { background: #d1fae5; color: #065f46; }
.estado-no_utilizado { background: #fef2f2; color: #dc2626; }

/* Favoritos en dashboard */
.afil-fav-item {
    display: flex; align-items: center; gap: .5rem; padding: .5rem 0;
    border-bottom: 1px solid rgba(0,0,0,.05); text-decoration: none; color: var(--ink);
}
.afil-fav-item:hover { background: rgba(0,0,0,.02); }
.afil-fav-nombre { flex: 1; font-weight: 500; font-size: .85rem; }
.afil-fav-extra { font-size: .75rem; color: var(--warm-gray); }

/* Credencial de afiliado */
.credencial-card {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    border-radius: 14px; overflow: hidden; color: #fff;
    box-shadow: 0 8px 30px rgba(0,0,0,.2); margin-bottom: 1.2rem;
}
.credencial-header {
    padding: .8rem 1.2rem; background: rgba(0,0,0,.2);
    font-size: 1rem; font-weight: 700; letter-spacing: .05em;
    border-bottom: 2px solid rgba(255,255,255,.1);
}
.credencial-body {
    display: flex; gap: 1rem; padding: 1.2rem; align-items: center;
}
.credencial-info { flex: 1; }
.credencial-nombre { font-size: 1.1rem; font-weight: 700; margin-bottom: .4rem; }
.credencial-doc { font-size: .85rem; opacity: .8; margin-bottom: .3rem; }
.credencial-nro { font-size: .8rem; margin-bottom: .4rem; opacity: .9; }
.credencial-nivel { margin-top: .3rem; }
.credencial-qr { flex-shrink: 0; }
.credencial-qr-img {
    width: 110px; height: 110px; border-radius: 8px;
    border: 3px solid rgba(255,255,255,.3); background: #fff; padding: 3px;
}
.credencial-footer {
    padding: .6rem 1.2rem; background: rgba(0,0,0,.15);
    text-align: right; border-top: 1px solid rgba(255,255,255,.08);
}

/* Links de navegacion en perfil */
.perfil-nav-links { display: flex; flex-direction: column; gap: .3rem; }
.perfil-nav-link {
    display: flex; align-items: center; gap: .6rem; padding: .5rem .7rem;
    border-radius: 6px; text-decoration: none; color: var(--ink); font-size: .85rem;
    transition: background .15s;
}
.perfil-nav-link:hover { background: rgba(0,0,0,.04); }
.perfil-nav-link i { width: 18px; text-align: center; color: var(--rust); }

@media print {
    body * { visibility: hidden; }
    .credencial-card, .credencial-card * { visibility: visible; }
    .credencial-card { position: fixed; top: 20px; left: 20px; width: 400px; }
    .credencial-footer { display: none; }
}

@media (max-width: 768px) {
    .afil-dash-header { flex-direction: column; text-align: center; }
    .credencial-body { flex-direction: column; text-align: center; }
    .stats-grid { grid-template-columns: repeat(2,1fr) !important; }
}

/* Auditoria */
.audit-tipo { font-size:.7rem; padding:2px 6px; border-radius:3px; font-weight:600; text-transform:uppercase; }
.audit-tipo-superadmin { background:#f3e8ff; color:#7c3aed; }
.audit-tipo-admin { background:#fef3c7; color:#92400e; }
.audit-tipo-local { background:#dbeafe; color:#1e40af; }
.audit-tipo-afiliado { background:#d1fae5; color:#065f46; }
.audit-tipo-sistema { background:#f1f5f9; color:#475569; }
.audit-accion { font-size:.72rem; padding:2px 5px; border-radius:3px; }
.audit-acc-login, .audit-acc-logout { background:#ecfdf5; color:#047857; }
.audit-acc-login_fallido { background:#fef2f2; color:#dc2626; }
.audit-acc-crear { background:#eff6ff; color:#2563eb; }
.audit-acc-editar { background:#fefce8; color:#a16207; }
.audit-acc-eliminar, .audit-acc-limpiar { background:#fef2f2; color:#dc2626; }
.audit-acc-aprobar { background:#ecfdf5; color:#047857; }
.audit-acc-rechazar { background:#fff7ed; color:#c2410c; }
.audit-acc-config { background:#f5f3ff; color:#7c3aed; }
.audit-acc-migrar { background:#f0f9ff; color:#0369a1; }

/* ── NOVEDAD BANNER ──────────────────────────────────── */
.novedad-banner {
    background: linear-gradient(135deg, var(--rust), var(--orange));
    color: #fff;
    padding: .6rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: .88rem;
    animation: bannerSlideDown .4s ease-out;
}
.novedad-banner-content {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex: 1;
    min-width: 0;
}
.novedad-banner-content strong {
    white-space: nowrap;
    flex-shrink: 0;
}
.novedad-banner-content span {
    opacity: .9;
    font-size: .82rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.novedad-banner-close {
    background: rgba(255,255,255,.2);
    border: none;
    color: #fff;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    cursor: pointer;
    font-size: .85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .2s;
}
.novedad-banner-icon { font-size: 1.1rem; flex-shrink: 0; }
.novedad-banner-close:hover { background: rgba(255,255,255,.35); }

/* Tipo: Informativa (azul) */
.banner-info { background: linear-gradient(135deg, #2563eb, #3b82f6); }
/* Tipo: Promocion (dorado/naranja) */
.banner-promocion { background: linear-gradient(135deg, var(--rust), var(--orange)); }
/* Tipo: Urgente (rojo pulsante) */
.banner-urgente { background: linear-gradient(135deg, #dc2626, #ef4444); }
.banner-urgente .novedad-banner-icon { animation: urgentePulse 1.2s ease-in-out infinite; }
@keyframes urgentePulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
/* Tipo: Exito (verde) */
.banner-exito { background: linear-gradient(135deg, #059669, #10b981); }

/* Badge tipo en grilla admin */
.tipo-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .5rem; border-radius: 4px; font-size: .75rem; color: #fff; white-space: nowrap; }
.tipo-badge.banner-info { background: #3b82f6; }
.tipo-badge.banner-promocion { background: var(--orange); }
.tipo-badge.banner-urgente { background: #ef4444; }
.tipo-badge.banner-exito { background: #10b981; }

@keyframes bannerSlideDown {
    from { transform: translateY(-100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
@media (max-width: 600px) {
    .novedad-banner { flex-direction: row; padding: .5rem 1rem; }
    .novedad-banner-content { flex-direction: column; align-items: flex-start; gap: .2rem; }
    .novedad-banner-content span { white-space: normal; }
}

/* ── HEADER ──────────────────────────────────────────── */
header {
  background: var(--ink);
  color: var(--cream);
  padding: 0 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 70px;
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 3px solid var(--rust);
}

.logo {
  font-family: 'Fraunces', serif;
  font-size: 1.7rem;
  font-weight: 900;
  letter-spacing: -.03em;
  color: var(--cream);
  text-decoration: none;
}
.logo span { color: var(--gold); }
.header-logo-img { height: 40px; width: auto; vertical-align: middle; }
.footer-logo-img { height: 36px; width: auto; margin-bottom: .3rem; }

/* Logo preview in admin config */
.logo-preview-box {
    margin-top: .5rem;
    padding: .6rem;
    background: rgba(0,0,0,.03);
    border: 1px solid var(--border);
    border-radius: 8px;
    display: inline-block;
}
.logo-preview-img { max-height: 60px; max-width: 200px; }

nav { display: flex; gap: 2rem; align-items: center; }
nav a {
  color: #BDB0A8;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: .04em;
  transition: color .2s;
}
nav a:hover { color: var(--cream); }
.nav-btn-registrarse, .nav-btn-ingresar {
    padding: .3rem .7rem !important; border-radius: 6px; font-size: .8rem !important; font-weight: 600;
    margin-left: .3rem !important;
}
.nav-btn-registrarse { background: var(--rust); color: #fff !important; }
.nav-btn-registrarse:hover { opacity: .85; }
.nav-btn-ingresar { border: 1px solid var(--warm-gray); color: var(--cream) !important; }
.nav-btn-ingresar:hover { background: rgba(255,255,255,.1); }
.nav-btn-volver { border: 1px solid var(--gold); color: var(--gold) !important; padding: .3rem .7rem !important; border-radius: 6px; font-size: .8rem !important; font-weight: 600; }
.nav-btn-volver:hover { background: var(--gold); color: var(--ink) !important; }

.btn-admin {
  background: var(--rust);
  color: white !important;
  padding: .45rem 1.2rem;
  border-radius: 4px;
  font-size: .85rem !important;
  transition: background .2s !important;
}
.btn-admin:hover { background: #A83A12 !important; }

/* ── HERO ────────────────────────────────────────────── */
.hero {
  background: var(--ink);
  color: var(--cream);
  padding: 5rem 2.5rem 4rem;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 340px; height: 340px;
  border-radius: 50%;
  border: 60px solid var(--rust);
  opacity: .15;
}
.hero-inner { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }

/* Hero logo positions */
.hero-logo-wrap { }
.hero-logo-img { max-height: 110px; width: auto; object-fit: contain; }
.hero-logo-top { margin-bottom: 1.5rem; }
.hero-logo-bottom { margin-top: 1.5rem; }
.hero-content-row { display: flex; align-items: center; gap: 2.5rem; }
.hero-logo-side { flex-shrink: 0; }
.hero-text { flex: 1; min-width: 0; }

/* Logo sizes */
.hero-logo-sm .hero-logo-img { max-height: 60px; }
.hero-logo-md .hero-logo-img { max-height: 110px; }
.hero-logo-lg .hero-logo-img { max-height: 160px; }
.hero-logo-xl .hero-logo-img { max-height: 220px; }

/* Logo horizontal alignment */
.hero-logo-h-left   { text-align: left; }
.hero-logo-h-center { text-align: center; }
.hero-logo-h-right  { text-align: right; }

/* Logo vertical alignment (when side by side) */
.hero-valign-start  .hero-content-row { align-items: flex-start; }
.hero-valign-center .hero-content-row { align-items: center; }
.hero-valign-end    .hero-content-row { align-items: flex-end; }

@media (max-width: 768px) {
    .hero-content-row { flex-direction: column; gap: 1.5rem; }
    .hero-logo-sm .hero-logo-img { max-height: 50px; }
    .hero-logo-md .hero-logo-img { max-height: 80px; }
    .hero-logo-lg .hero-logo-img { max-height: 110px; }
    .hero-logo-xl .hero-logo-img { max-height: 150px; }
}
.hero-tag {
  display: inline-block;
  background: var(--rust);
  color: white;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .3rem .8rem;
  border-radius: 2px;
  margin-bottom: 1.2rem;
}
.hero h1 {
  font-family: 'Fraunces', serif;
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -.03em;
  margin-bottom: 1rem;
  max-width: 620px;
}
.hero h1 em { font-style: italic; color: var(--gold); }
.hero p { color: #9E9089; font-size: 1.05rem; max-width: 480px; margin-bottom: 2rem; line-height: 1.6; }

.hero-stats { display: flex; gap: 2.5rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid #2E2620; }
.stat { display: flex; flex-direction: column; }
.stat-num { font-family: 'Fraunces', serif; font-size: 2rem; font-weight: 700; color: var(--gold); line-height: 1; }
.stat-label { font-size: .78rem; color: #6B5E57; margin-top: .3rem; text-transform: uppercase; letter-spacing: .06em; }

/* Page hero (pequeño para páginas internas) */
.page-hero {
  background: var(--ink);
  color: var(--cream);
  padding: 4rem 2.5rem 3rem;
}
.page-hero.small { padding: 3rem 2.5rem 2.5rem; }
.page-hero-inner { max-width: 1100px; margin: 0 auto; }
.page-hero .hero-content { max-width: 1100px; margin: 0 auto; }
.page-hero h1 { font-family: 'Fraunces', serif; color: var(--cream); }
.page-hero p { color: #9E9089; margin-top: .4rem; }
.page-title { font-family: 'Fraunces', serif; font-size: 2.5rem; font-weight: 900; letter-spacing: -.03em; }
.page-title em { font-style: italic; color: var(--gold); }
.admin-hero { border-bottom: 2px solid var(--rust); }

/* ── FILTROS ─────────────────────────────────────────── */
.filters-bar {
  background: white;
  border-bottom: 1px solid var(--border);
  padding: 1rem 2.5rem;
  position: sticky;
  top: 70px;
  z-index: 90;
}
.filters-inner { max-width: 1100px; margin: 0 auto; display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.filter-label { font-size: .78rem; color: var(--warm-gray); text-transform: uppercase; letter-spacing: .08em; font-weight: 500; }
.filter-ddl {
  padding: .4rem .9rem;
  border-radius: 20px;
  border: 1.5px solid var(--border);
  background: white;
  color: var(--ink);
  font-size: .85rem;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
  outline: none;
}
.search-input {
  padding: .45rem 1rem;
  border: 1.5px solid var(--border);
  border-radius: 20px;
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
  color: var(--ink);
  background: var(--cream);
  outline: none;
  width: 220px;
}
.search-input:focus { border-color: var(--rust); }
.btn-buscar {
  padding: .45rem 1.1rem;
  background: var(--rust);
  color: white;
  border: none;
  border-radius: 20px;
  font-size: .85rem;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: background .2s;
}
.btn-buscar:hover { background: #A83A12; }

.filters-inline { margin-bottom: 1rem; }

/* ── MAIN CONTENT ─────────────────────────────────────── */
.main-content { max-width: 1300px; margin: 0 auto; padding: 2.5rem; }

.section-header { display: flex; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem; }
.section-title { font-family: 'Fraunces', serif; font-size: 1.6rem; font-weight: 700; letter-spacing: -.02em; }
.section-count { font-size: .85rem; color: var(--warm-gray); }

/* ── PROMO DESTACADA ──────────────────────────────────── */
.featured-promo-link { display: block; text-decoration: none; color: inherit; }
.featured-promo-link:hover { text-decoration: none; color: inherit; }
.featured-promo-link:hover .featured-promo { box-shadow: 0 4px 24px rgba(0,0,0,.25); transform: translateY(-2px); }
.featured-promo {
  background: var(--ink);
  color: var(--cream);
  border-radius: 12px;
  padding: 2.5rem;
  margin-bottom: 2.5rem;
  transition: box-shadow .2s, transform .2s;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.featured-promo::before {
  content: '★';
  position: absolute;
  right: -20px; top: -30px;
  font-size: 10rem;
  color: var(--rust);
  opacity: .08;
}
.featured-tag {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: var(--gold);
  color: var(--ink);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .25rem .7rem;
  border-radius: 2px;
  margin-bottom: .8rem;
}
.featured-promo h2 { font-family: 'Fraunces', serif; font-size: 1.8rem; font-weight: 700; margin-bottom: .5rem; }
.featured-promo p { color: #9E9089; font-size: .95rem; margin-bottom: 1rem; line-height: 1.5; }
.featured-local { display: flex; align-items: center; gap: .6rem; font-size: .88rem; color: #6B5E57; }
.local-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sage); flex-shrink: 0; }

.discount-badge {
  background: var(--rust);
  color: white;
  border-radius: 8px;
  padding: 1.5rem 2rem;
  text-align: center;
  flex-shrink: 0;
  min-width: 130px;
}
.discount-pct { font-family: 'Fraunces', serif; font-size: 3rem; font-weight: 900; line-height: 1; display: block; }
.discount-off { font-size: .8rem; opacity: .85; letter-spacing: .06em; text-transform: uppercase; }
.discount-until { font-size: .72rem; opacity: .65; margin-top: .4rem; display: block; }

/* ── FEATURED CAROUSEL / LAYOUT ─────────────────────── */
.featured-wrapper { position: relative; margin-bottom: 2.5rem; }
.featured-track { display: flex; transition: transform .5s ease; }
.featured-slide { flex: 0 0 100%; min-width: 0; box-sizing: border-box; }
.featured-slide .featured-promo { margin-bottom: 0; }

/* 1 item — full width, no changes */
.featured-single .featured-track { display: block; }

/* 2 items — side by side grid, equal height */
.featured-dual .featured-track {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  align-items: stretch;
}
.featured-dual .featured-slide { flex: none; min-width: 0; display: flex; }
.featured-dual .featured-promo-link { display: flex; flex: 1; }
.featured-dual .featured-promo { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }

/* 3+ items — carousel with overflow hidden */
.featured-carousel { overflow: hidden; }
.featured-carousel .featured-track { flex-wrap: nowrap; }

/* Arrows */
.featured-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(30,25,20,.75);
  color: var(--cream);
  border: 1px solid rgba(255,255,255,.15);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  transition: background .2s, transform .2s;
  backdrop-filter: blur(6px);
}
.featured-arrow:hover { background: var(--rust); transform: translateY(-50%) scale(1.1); }
.featured-prev { left: 12px; }
.featured-next { right: 12px; }

/* Dots */
.featured-dots {
  display: flex;
  justify-content: center;
  gap: .5rem;
  margin-top: 1rem;
}
.featured-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: rgba(107,94,87,.35);
  cursor: pointer;
  padding: 0;
  transition: background .2s, transform .2s;
}
.featured-dot.active { background: var(--rust); transform: scale(1.3); }
.featured-dot:hover { background: var(--gold); }

@media (max-width: 768px) {
  .featured-dual .featured-track { grid-template-columns: 1fr; }
  .featured-arrow { width: 34px; height: 34px; font-size: 1rem; }
  .featured-prev { left: 6px; }
  .featured-next { right: 6px; }
}

/* ── FILTRO SECTIONS (del día / por rubros) ─────────── */
.filtro-section { margin-bottom: 2.5rem; }
.filtro-section-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.2rem;
}
.filtro-section-icon { font-size: 1.5rem; }
.filtro-section-title {
  font-family: 'Fraunces', serif;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -.02em;
  margin: 0;
}
.filtro-section-count {
  font-size: .82rem;
  color: var(--warm-gray);
  margin-left: auto;
}

.filtro-promos-scroll {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  padding-bottom: .75rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.filtro-promos-scroll::-webkit-scrollbar { height: 6px; }
.filtro-promos-scroll::-webkit-scrollbar-track { background: rgba(107,94,87,.1); border-radius: 3px; }
.filtro-promos-scroll::-webkit-scrollbar-thumb { background: var(--rust); border-radius: 3px; }
.filtro-promos-scroll > a,
.filtro-promos-scroll > .promo-card {
  flex: 0 0 280px;
  scroll-snap-align: start;
}
.promo-card-link { text-decoration: none; color: inherit; display: block; flex: 0 0 280px; scroll-snap-align: start; }
.promo-card-link:hover { text-decoration: none; color: inherit; }
.promo-card-link:hover .promo-card { box-shadow: 0 4px 18px rgba(0,0,0,.18); transform: translateY(-2px); }

.filtro-rubro-group { margin-bottom: 2rem; }
.filtro-rubro-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .8rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(107,94,87,.15);
}
.filtro-rubro-icon { font-size: 1.3rem; }
.filtro-rubro-name {
  font-family: 'Fraunces', serif;
  font-size: 1.15rem;
  font-weight: 600;
  margin: 0;
}
.filtro-rubro-count {
  font-size: .78rem;
  color: var(--warm-gray);
  margin-left: auto;
}

@media (max-width: 768px) {
  .filtro-promos-scroll > a,
  .filtro-promos-scroll > .promo-card,
  .promo-card-link { flex: 0 0 240px; }
  .filtro-section-title { font-size: 1.15rem; }
}

/* ── PROMO CARDS ──────────────────────────────────────── */
.promo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-bottom: 3rem; }

.promo-card {
  background: white;
  border-radius: 10px;
  border: 1px solid var(--border);
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
  cursor: pointer;
  animation: fadeUp .45s ease both;
}
.promo-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(26,20,16,.1); }

.card-img {
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  position: relative;
  background: linear-gradient(135deg, #E8DDD5, #C9B8AD);
}
.card-img.gastro  { background: linear-gradient(135deg,#F0E4D4,#D4A87A); }
.card-img.moda    { background: linear-gradient(135deg,#D4E0D6,#8BAF90); }
.card-img.tech    { background: linear-gradient(135deg,#D4DCE8,#8A9BBF); }
.card-img.beauty  { background: linear-gradient(135deg,#EAD4E0,#C08FAF); }
.card-img.sport   { background: linear-gradient(135deg,#E8E4D4,#BFB47A); }
.card-img.home    { background: linear-gradient(135deg,#D8E4E0,#8AAFA8); }
.card-img.default { background: linear-gradient(135deg,#E8DDD5,#C9B8AD); }

.card-discount-pill {
  position: absolute; top: .75rem; right: .75rem;
  background: var(--rust); color: white;
  font-size: .78rem; font-weight: 700;
  padding: .25rem .6rem; border-radius: 12px;
}
.card-rubro-pill {
  position: absolute; top: .75rem; left: .75rem;
  background: rgba(26,20,16,.7); color: white;
  font-size: .7rem; padding: .2rem .55rem; border-radius: 10px;
}

.card-body { padding: 1.1rem 1.25rem 1.25rem; }
.card-local-name { font-size: .75rem; color: var(--sage); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .3rem; }
.card-title { font-family: 'Fraunces', serif; font-size: 1.05rem; font-weight: 700; margin-bottom: .4rem; line-height: 1.2; }
.card-desc { font-size: .82rem; color: var(--warm-gray); line-height: 1.45; margin-bottom: .9rem; }

.card-footer { display: flex; justify-content: space-between; align-items: center; padding-top: .75rem; border-top: 1px solid var(--border); }
.card-validity { font-size: .75rem; color: var(--warm-gray); display: flex; align-items: center; gap: .3rem; }
.validity-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--sage); }
.dot-red    { background: var(--red); }
.dot-orange { background: var(--orange); }
.dot-green  { background: var(--green); }

.card-cta { font-size: .78rem; font-weight: 600; color: var(--rust); text-decoration: none; display: flex; align-items: center; gap: .25rem; transition: gap .2s; }
.card-cta:hover { gap: .5rem; }

.no-results { text-align: center; padding: 3rem; color: var(--warm-gray); font-size: 1.1rem; }

/* ── LOCALES PAGE ─────────────────────────────────────── */
.two-col-layout { display: grid; grid-template-columns: 1fr 400px; gap: 2.5rem; align-items: start; }

.locales-grid { display: flex; flex-direction: column; gap: .75rem; }

.local-card {
  background: white;
  border-radius: 10px;
  border: 1px solid var(--border);
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: box-shadow .2s;
}
.local-card:hover { box-shadow: 0 4px 16px rgba(26,20,16,.08); }
.local-logo { font-size: 2rem; width: 48px; text-align: center; flex-shrink: 0; }
.local-info { flex: 1; }
.local-name { font-family: 'Fraunces', serif; font-size: 1rem; font-weight: 700; }
.local-rubro { font-size: .78rem; color: var(--sage); text-transform: uppercase; letter-spacing: .06em; margin-bottom: .2rem; }
.local-dir, .local-tel { font-size: .8rem; color: #5A504A; }
.local-dir i, .local-tel i { color: var(--rust); opacity: .6; margin-right: .25rem; font-size: .75rem; }
.local-map-btn {
  padding: .4rem .9rem;
  background: var(--cream);
  border: 1.5px solid var(--border);
  border-radius: 20px;
  font-size: .78rem;
  color: var(--ink);
  text-decoration: none;
  flex-shrink: 0;
  transition: all .2s;
}
.local-map-btn:hover { background: var(--ink); color: white; border-color: var(--ink); }

/* ── MAPA ─────────────────────────────────────────────── */
.mapa-layout { display: grid; grid-template-columns: 300px 1fr; gap: 1.5rem; }
.mapa-toolbar {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: .6rem 0;
}
.mapa-container { height: 550px; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.mapa-sidebar { max-height: 550px; overflow-y: auto; }
.sidebar-title { font-family: 'Fraunces', serif; font-size: 1.2rem; font-weight: 700; margin-bottom: 1rem; }
.sidebar-item {
  display: flex;
  gap: .75rem;
  padding: .75rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  margin-bottom: .5rem;
  cursor: pointer;
  transition: all .15s;
  background: white;
}
.sidebar-item:hover, .sidebar-item.active { background: var(--ink); color: white; border-color: var(--ink); }
.sidebar-item.active .sidebar-rubro,
.sidebar-item.active .sidebar-dir { color: #9E9089; }
.sidebar-logo { font-size: 1.4rem; }
.sidebar-name { font-weight: 600; font-size: .9rem; }
.sidebar-rubro { font-size: .75rem; color: var(--sage); }
.sidebar-dir { font-size: .75rem; color: var(--warm-gray); margin-top: .2rem; }

/* ── FORMULARIOS ──────────────────────────────────────── */
.form-card {
  background: white;
  border-radius: 12px;
  border: 1px solid var(--border);
  padding: 2rem;
}
.form-card-sticky {
  position: sticky;
  top: 100px;
}
.form-title { font-family: 'Fraunces', serif; font-size: 1.3rem; font-weight: 700; margin-bottom: .5rem; }
.form-subtitle { font-size: .85rem; color: var(--warm-gray); margin-bottom: 1.5rem; }

.form-group { margin-bottom: 1rem; }
.form-group label { display: block; font-size: .82rem; font-weight: 500; margin-bottom: .35rem; color: #3D302A; }
.form-control {
  width: 100%;
  padding: .55rem .85rem;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  color: var(--ink);
  background: var(--cream);
  outline: none;
  transition: border-color .2s;
}
.form-control:focus { border-color: var(--rust); background: white; }
textarea.form-control { resize: vertical; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-check { display: flex; align-items: center; gap: .5rem; }
.form-check label { margin-bottom: 0; }

.form-actions { display: flex; gap: .75rem; margin-top: 1.25rem; }
.full-width { width: 100%; }

.val-error { display: block; font-size: .78rem; color: var(--red); margin-top: .25rem; }

.btn-primary {
  padding: .6rem 1.4rem;
  background: var(--rust);
  color: white;
  border: none;
  border-radius: 6px;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: background .2s;
}
.btn-primary:hover { background: #A83A12; }

.btn-secondary {
  padding: .6rem 1.4rem;
  background: white;
  color: var(--ink);
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-size: .9rem;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: all .2s;
}
.btn-secondary:hover { border-color: var(--ink); }

/* ── ALERTAS ──────────────────────────────────────────── */
.alert-success { background: #EAF5EB; border: 1px solid #B8DDB9; border-radius: 6px; padding: 1rem 1.25rem; margin-top: 1rem; color: #2A6B30; font-size: .9rem; }
.alert-error   { background: #FDECEA; border: 1px solid #F5B8B5; border-radius: 6px; padding: 1rem 1.25rem; margin-top: 1rem; color: #8B2020; font-size: .9rem; }
.alert-warning { background: #FEF6E7; border: 1px solid #F5D89A; border-radius: 6px; padding: 1rem 1.25rem; margin-top: 1rem; color: #7A5010; font-size: .9rem; }

/* ── ADMIN GRID ───────────────────────────────────────── */
.admin-layout { display: grid; grid-template-columns: 400px 1fr; gap: 2.5rem; align-items: start; }
.admin-gv { width: 100%; border-collapse: collapse; font-size: .85rem; }
.admin-gv th { background: var(--ink); color: var(--cream); padding: .7rem 1rem; text-align: left; font-weight: 500; font-size: .78rem; letter-spacing: .05em; }
.admin-gv td { padding: .7rem 1rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.admin-gv tr:nth-child(even) td { background: #FAFAF8; }
.admin-gv tr:hover td { background: #FFF5F0; }

.gv-btn { font-size: .78rem; text-decoration: none; padding: .25rem .6rem; border-radius: 4px; border: none; cursor: pointer; background: none; }
.gv-btn-edit { color: var(--rust); border: 1px solid var(--rust); }
.gv-btn-edit:hover { background: var(--rust); color: white; }
.gv-btn-del  { color: var(--red); margin-left: .3rem; }
.gv-btn-del:hover { background: #FDECEA; }

/* ── LOGIN ────────────────────────────────────────────── */
.login-wrap { display: flex; align-items: center; justify-content: center; min-height: 70vh; padding: 2rem; }
.login-card { background: white; border-radius: 14px; border: 1px solid var(--border); padding: 2.5rem; width: 100%; max-width: 400px; }
.login-logo { font-size: 2.5rem; text-align: center; margin-bottom: 1rem; }
.login-title { font-family: 'Fraunces', serif; font-size: 1.5rem; font-weight: 700; text-align: center; margin-bottom: .4rem; }
.login-sub { font-size: .85rem; color: var(--warm-gray); text-align: center; margin-bottom: 1.5rem; }
.login-hint { font-size: .78rem; color: var(--warm-gray); text-align: center; margin-top: 1rem; }

/* ── SCROLL TO TOP BUTTON ────────────────────────────── */
.scroll-top-btn {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--rust);
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(0,0,0,.25);
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    transition: opacity .3s, transform .3s, background .2s, bottom .3s;
    z-index: 1000;
}
.scroll-top-btn.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.scroll-top-btn.above-banner {
    bottom: calc(2rem + var(--banner-flotante-h, 0px));
}
.scroll-top-btn:hover {
    background: var(--gold);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,.3);
}

/* ── FOOTER ───────────────────────────────────────────── */
footer { background: var(--ink); color: #6B5E57; padding: 2.5rem 2.5rem 1.5rem; margin-top: auto; }
.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 2rem 2.5rem;
}
.footer-brand { grid-column: 1; }
.footer-logo { font-family: 'Fraunces', serif; font-size: 1.4rem; font-weight: 900; color: var(--cream); margin-bottom: .5rem; }
.footer-logo span { color: var(--gold); }
.footer-desc {
    font-size: .82rem;
    color: rgba(255,255,255,.45);
    line-height: 1.55;
    max-width: 320px;
}
.footer-otros h4 {
    font-family: 'Fraunces', serif;
    font-size: .95rem;
    font-weight: 700;
    color: var(--cream);
    margin-bottom: .7rem;
}
.footer-otros-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.footer-otros-list li { font-size: .82rem; }
.footer-otros-list a {
    color: rgba(255,255,255,.5);
    text-decoration: none;
    transition: color .2s;
    display: flex;
    align-items: center;
    gap: .45rem;
}
.footer-otros-list a:hover { color: var(--cream); }
.footer-otros-list a i { color: var(--gold); width: 16px; text-align: center; font-size: .8rem; }

.footer-bottom {
    grid-column: 1 / -1;
    text-align: center;
    border-top: 1px solid rgba(255,255,255,.06);
    padding-top: 1rem;
    margin-top: .5rem;
}
.footer-copy { font-size: .75rem; }
.footer-dev {
    margin-top: .4rem;
    font-size: .7rem;
    letter-spacing: .04em;
    color: rgba(255,255,255,.35);
}
.footer-dev span { margin-right: .3rem; }
.footer-dev strong {
    color: rgba(255,255,255,.55);
    font-weight: 600;
    letter-spacing: .06em;
}

/* Footer Ayuda section */
.footer-ayuda h4 {
    font-family: 'Fraunces', serif;
    font-size: .95rem;
    font-weight: 700;
    color: var(--cream);
    margin-bottom: .7rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.footer-ayuda h4 i { color: var(--gold); font-size: .9rem; }
.footer-ayuda-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.footer-ayuda-list li {
    font-size: .82rem;
    color: rgba(255,255,255,.5);
    display: flex;
    align-items: center;
    gap: .45rem;
}
.footer-ayuda-list li i {
    color: var(--gold);
    width: 16px;
    text-align: center;
    font-size: .8rem;
}
.footer-ayuda-list a {
    color: rgba(255,255,255,.5);
    text-decoration: none;
    transition: color .2s;
    display: flex;
    align-items: center;
    gap: .45rem;
}
.footer-ayuda-list a:hover { color: var(--cream); }

@media (max-width: 768px) {
    .footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
        text-align: center;
    }
    .footer-brand { grid-column: 1 / -1; }
    .footer-desc { max-width: none; margin: 0 auto; }
    .footer-ayuda-list { align-items: center; }
    .footer-otros-list { align-items: center; }
}
@media (max-width: 480px) {
    .footer-inner { grid-template-columns: 1fr; }
}

/* ── ANIMACIONES ──────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── RESPONSIVE ───────────────────────────────────────── */
@media (max-width: 960px) {
  .promo-grid       { grid-template-columns: 1fr 1fr; }
  .two-col-layout   { grid-template-columns: 1fr; }
  .admin-layout     { grid-template-columns: 1fr; }
  .mapa-layout      { grid-template-columns: 1fr; }
  .mapa-container   { height: 380px; }
  .featured-promo   { grid-template-columns: 1fr; }
  .form-row         { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .promo-grid   { grid-template-columns: 1fr; }
  header        { padding: 0 1rem; }
  nav a:not(.btn-admin) { display: none; }
}

/* â•â• DETALLE PROMO â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.detalle-back {
    max-width: 740px;
    margin: 2rem auto 0;
    padding: 0 1.5rem;
}
.back-link {
    color: var(--accent, #6c8aff);
    text-decoration: none;
    font-size: .95rem;
    transition: opacity .2s;
}
.back-link:hover { opacity: .7; }

.detalle-card {
    max-width: 1140px;
    margin: 1.2rem auto 0;
    background: #1a1a2e;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,.25);
}

.detalle-header {
    padding: 2.5rem 2.5rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.detalle-icon-wrap {
    font-size: 3.5rem;
    line-height: 1;
}

.detalle-badge-wrap {
    display: flex;
    gap: .6rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.detalle-rubro-pill {
    padding: .35rem .9rem;
    border-radius: 20px;
    font-size: .8rem;
    font-weight: 500;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.7);
}

.detalle-discount-pill {
    padding: .35rem .9rem;
    border-radius: 20px;
    font-size: .85rem;
    font-weight: 700;
    background: #e74c3c;
    color: #fff;
}

.detalle-body {
    padding: 0 2.5rem 2.5rem;
}

.detalle-titulo {
    font-family: 'Fraunces', serif;
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 .8rem;
    color: #fff;
    line-height: 1.2;
}

.detalle-local-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1.5rem;
}

.detalle-local-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #2ecc71;
    flex-shrink: 0;
}

.detalle-local-name {
    font-size: 1rem;
    color: rgba(255,255,255,.65);
    font-weight: 500;
}

.detalle-descripcion {
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(255,255,255,.6);
    margin-bottom: 2rem;
}

.detalle-fechas {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 12px;
    padding: 1.2rem;
    margin-bottom: 1.5rem;
}

.fecha-item {
    text-align: center;
}

.fecha-label {
    display: block;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: rgba(255,255,255,.4);
    margin-bottom: .3rem;
}

.fecha-value {
    display: block;
    font-size: 1.1rem;
    font-weight: 600;
    color: rgba(255,255,255,.85);
}

.fecha-value.dias-rest {
    color: #2ecc71;
}

.detalle-destacada-badge {
    background: rgba(243,156,18,.1);
    border: 1px solid rgba(243,156,18,.25);
    border-radius: 10px;
    padding: .7rem 1rem;
    font-size: .9rem;
    color: #f39c12;
    text-align: center;
}

.detalle-actions {
    max-width: 740px;
    margin: 1.5rem auto 3rem;
    padding: 0 1.5rem;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.btn-secondary {
    padding: .7rem 1.6rem;
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 500;
    text-decoration: none;
    background: var(--white);
    border: 1px solid var(--border);
    color: var(--ink);
    transition: all .2s;
    cursor: pointer;
}
.btn-secondary:hover {
    background: var(--cream);
    border-color: var(--ink);
    color: var(--ink);
}

/* Not found */
.not-found-wrap {
    padding: 4rem 1.5rem;
}
.not-found {
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
}
.nf-icon {
    font-size: 3rem;
    display: block;
    margin-bottom: 1rem;
}
.not-found h2 {
    font-family: 'Fraunces', serif;
    font-size: 1.6rem;
    margin-bottom: .5rem;
    color: #fff;
}
.not-found p {
    color: rgba(255,255,255,.5);
    margin-bottom: 1.5rem;
}

/* Responsive detalle */
@media (max-width: 600px) {
    .detalle-header { padding: 1.5rem; flex-direction: column; }
    .detalle-body { padding: 0 1.5rem 1.5rem; }
    .detalle-titulo { font-size: 1.5rem; }
    .detalle-fechas { grid-template-columns: 1fr; }
    .detalle-actions { flex-direction: column; }
}
/* â•â• DASHBOARD â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* ══ APP DOWNLOAD BANNER ═══════════════════════════════ */

/* ══ BANNER AFILIACIÓN ════════════════════════════════ */
.afiliacion-banner {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%);
    padding: 0;
    margin: 0;
    overflow: hidden;
    position: relative;
}
.afiliacion-banner-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2.5rem 2rem;
    position: relative;
    z-index: 1;
}
.afiliacion-banner-glow {
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(234,179,8,.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}
.afiliacion-banner-content {
    display: flex;
    align-items: center;
    gap: 2rem;
    position: relative;
    z-index: 1;
}
.afiliacion-banner-icon {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--gold), var(--orange));
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #fff;
    box-shadow: 0 8px 30px rgba(234,179,8,.3);
    animation: afiliacionPulse 3s ease-in-out infinite;
}
@keyframes afiliacionPulse {
    0%, 100% { box-shadow: 0 8px 30px rgba(234,179,8,.3); transform: scale(1); }
    50% { box-shadow: 0 12px 40px rgba(234,179,8,.5); transform: scale(1.05); }
}
.afiliacion-banner-text {
    flex: 1;
    min-width: 0;
}
.afiliacion-banner-text h2 {
    color: #fff;
    font-family: var(--heading);
    font-size: 1.6rem;
    margin: 0 0 .5rem;
    line-height: 1.2;
}
.afiliacion-banner-text p {
    color: rgba(255,255,255,.7);
    font-size: .95rem;
    margin: 0;
    line-height: 1.5;
}
.afiliacion-banner-text strong {
    color: var(--gold);
}
.afiliacion-banner-actions {
    display: flex;
    flex-direction: column;
    gap: .7rem;
    flex-shrink: 0;
}
.afiliacion-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1.5rem;
    border-radius: 10px;
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
    transition: all .3s ease;
    white-space: nowrap;
}
.afiliacion-btn-primary {
    background: linear-gradient(135deg, var(--gold), var(--orange));
    color: #fff;
    box-shadow: 0 4px 15px rgba(234,179,8,.3);
}
.afiliacion-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(234,179,8,.45);
    color: #fff;
}
.afiliacion-btn-secondary {
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.85);
    border: 1px solid rgba(255,255,255,.15);
    backdrop-filter: blur(4px);
}
.afiliacion-btn-secondary:hover {
    background: rgba(255,255,255,.15);
    color: #fff;
    transform: translateY(-2px);
}
@media (max-width: 768px) {
    .afiliacion-banner-content {
        flex-direction: column;
        text-align: center;
    }
    .afiliacion-banner-text h2 { font-size: 1.3rem; }
    .afiliacion-banner-actions {
        flex-direction: column;
        width: 100%;
    }
    .afiliacion-btn { justify-content: center; }
    .afiliacion-banner-glow { right: -30%; top: -30%; }
}
/* Estilo: Flotante (fixed bottom) */
.afiliacion-flotante {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    box-shadow: 0 -4px 30px rgba(0,0,0,.4);
    animation: afiliacionSlideUp .5s ease-out;
}
.afiliacion-flotante .afiliacion-banner-inner { padding: 1.2rem 2rem; }
.afiliacion-flotante .afiliacion-banner-icon { width: 55px; height: 55px; font-size: 1.4rem; border-radius: 14px; }
.afiliacion-flotante .afiliacion-banner-text h2 { font-size: 1.1rem; }
.afiliacion-flotante .afiliacion-banner-text p { font-size: .82rem; }
@keyframes afiliacionSlideUp {
    from { transform: translateY(100%); } to { transform: translateY(0); }
}
/* Estilo: Top (barra fija arriba, debajo del header) */
.afiliacion-top {
    position: sticky;
    top: 0;
    z-index: 998;
    box-shadow: 0 4px 20px rgba(0,0,0,.3);
}
.afiliacion-top .afiliacion-banner-inner { padding: .8rem 2rem; }
.afiliacion-top .afiliacion-banner-content { gap: 1rem; }
.afiliacion-top .afiliacion-banner-icon { width: 45px; height: 45px; font-size: 1.2rem; border-radius: 12px; }
.afiliacion-top .afiliacion-banner-text h2 { font-size: 1rem; margin-bottom: .2rem; }
.afiliacion-top .afiliacion-banner-text p { font-size: .78rem; }
.afiliacion-top .afiliacion-btn { padding: .5rem 1rem; font-size: .8rem; }
/* Boton cerrar para flotante y top */
.afiliacion-banner-dismiss {
    position: absolute;
    top: .5rem;
    right: .8rem;
    background: rgba(255,255,255,.15);
    border: none;
    color: rgba(255,255,255,.7);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    font-size: .85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
    z-index: 2;
}
.afiliacion-banner-dismiss:hover { background: rgba(255,255,255,.3); color: #fff; }

/* ══ SUMA TU LOCAL BANNER ══════════════════════════════ */
.suma-local-banner {
    background: linear-gradient(135deg, #2d1a0e 0%, #4a2512 50%, #6b3a1f 100%);
    border-top: 1px solid rgba(200,75,31,.15);
    border-bottom: 1px solid rgba(200,75,31,.15);
    padding: 3rem 1.5rem;
    margin-top: 1rem;
}
.suma-local-inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}
.suma-local-text {
    display: flex;
    align-items: flex-start;
    gap: 1.2rem;
    flex: 1;
}
.suma-local-icon {
    font-size: 3rem;
    line-height: 1;
    flex-shrink: 0;
}
.suma-local-title {
    font-family: 'Fraunces', serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 .4rem;
    line-height: 1.2;
}
.suma-local-desc {
    font-size: .95rem;
    color: rgba(255,255,255,.6);
    line-height: 1.5;
    margin: 0;
}
.suma-local-actions {
    flex-shrink: 0;
}
.suma-local-cta {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .85rem 2rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #C84B1F 0%, #e05a2b 100%);
    color: #fff;
    font-size: .95rem;
    font-weight: 600;
    text-decoration: none;
    transition: transform .2s, box-shadow .2s;
    white-space: nowrap;
}
.suma-local-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(200,75,31,.4);
    color: #fff;
    text-decoration: none;
}
.suma-local-cta i {
    font-size: 1.1rem;
}
@media (max-width: 768px) {
    .suma-local-inner {
        flex-direction: column;
        text-align: center;
    }
    .suma-local-text {
        flex-direction: column;
        align-items: center;
    }
}


.app-banner {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    border-top: 1px solid rgba(255,255,255,.06);
    border-bottom: 1px solid rgba(255,255,255,.06);
    padding: 3rem 1.5rem;
    margin-top: 2rem;
}
.app-banner-inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}
.app-banner-text {
    display: flex;
    align-items: flex-start;
    gap: 1.2rem;
    flex: 1;
}
.app-banner-icon {
    font-size: 3rem;
    line-height: 1;
    flex-shrink: 0;
}
.app-banner-title {
    font-family: 'Fraunces', serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 .4rem;
    line-height: 1.2;
}
.app-banner-desc {
    font-size: .95rem;
    color: rgba(255,255,255,.6);
    line-height: 1.5;
    margin: 0;
}
.app-banner-buttons {
    display: flex;
    gap: .8rem;
    flex-shrink: 0;
}
.app-store-btn {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    padding: .75rem 1.4rem;
    border-radius: 12px;
    text-decoration: none;
    color: #fff;
    font-size: .88rem;
    line-height: 1.2;
    transition: transform .2s, box-shadow .2s;
    min-width: 165px;
}
.app-store-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,.3);
    color: #fff;
    text-decoration: none;
}
.app-store-btn i {
    font-size: 1.8rem;
}
.app-store-btn span {
    display: flex;
    flex-direction: column;
}
.app-store-btn span small {
    font-size: .65rem;
    opacity: .7;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.app-store-android {
    background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);
    border: 1px solid rgba(46,204,113,.3);
}
.app-store-ios {
    background: linear-gradient(135deg, #333 0%, #111 100%);
    border: 1px solid rgba(255,255,255,.15);
}
@media (max-width: 768px) {
    .app-banner-inner {
        flex-direction: column;
        text-align: center;
    }
    .app-banner-text {
        flex-direction: column;
        align-items: center;
    }
    .app-banner-buttons {
        flex-direction: column;
        width: 100%;
        max-width: 220px;
    }
    .app-store-btn {
        justify-content: center;
    }
}


.dash-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.dash-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1rem;
    margin-bottom: 2.5rem;
}

.kpi-card {
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1.4rem 1.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .4rem;
    transition: border-color .2s, box-shadow .2s;
    box-shadow: 0 1px 4px rgba(26,20,16,.04);
}
.kpi-card:hover {
    border-color: var(--rust);
    box-shadow: 0 4px 12px rgba(26,20,16,.08);
}
.kpi-icon { font-size: 1.8rem; }
.kpi-value {
    font-family: 'Fraunces', serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.1;
}
.kpi-label {
    font-size: .78rem;
    color: var(--warm-gray);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.dash-section {
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1.5rem 1.8rem;
    margin-bottom: 1.8rem;
    box-shadow: 0 1px 4px rgba(26,20,16,.04);
}

.dash-section-title {
    font-family: 'Fraunces', serif;
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 1.2rem;
}

/* Barras horizontales */
.dash-bars { display: flex; flex-direction: column; gap: .7rem; }
.dash-bar-row {
    display: grid;
    grid-template-columns: 130px 1fr 40px;
    align-items: center;
    gap: .8rem;
}
.dash-bar-label {
    font-size: .88rem;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dash-bar-track {
    height: 22px;
    background: rgba(26,20,16,.06);
    border-radius: 6px;
    overflow: hidden;
}
.dash-bar-fill {
    height: 100%;
    border-radius: 6px;
    background: linear-gradient(90deg, #6c8aff 0%, #a78bfa 100%);
    min-width: 4px;
    transition: width .4s ease;
}
.dash-bar-fill.bar-alt {
    background: linear-gradient(90deg, #2ecc71 0%, #27ae60 100%);
}
.dash-bar-count {
    font-size: .88rem;
    font-weight: 600;
    color: var(--ink);
    text-align: right;
}

.dash-footer {
    display: flex;
    gap: 1rem;
    justify-content: center;
    padding-top: 1rem;
}

@media (max-width: 600px) {
    .dash-kpis { grid-template-columns: repeat(2, 1fr); }
    .dash-bar-row { grid-template-columns: 90px 1fr 35px; }
    .dash-section { padding: 1.2rem; }
}

/* ══ PUBLIC LOCALES - NEW FIELDS ═════════════════════════ */
.local-location {
    font-size: .82rem;
    color: var(--warm-gray);
    margin-bottom: .15rem;
}
.local-wa a {
    color: #25d366;
    text-decoration: none;
    font-size: .88rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    transition: opacity .2s;
}
.local-wa a:hover { opacity: .7; }
.local-socials {
    display: flex;
    gap: .5rem;
    margin-top: .4rem;
    flex-wrap: wrap;
}
.local-social-link {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.6);
    font-size: .85rem;
    text-decoration: none;
    transition: all .2s;
}
.local-social-link:hover {
    background: rgba(108,138,255,.2);
    color: #6c8aff;
}
.local-photos {
    display: flex;
    gap: .4rem;
    margin-top: .5rem;
    overflow: hidden;
}
.local-thumb {
    width: 60px; height: 45px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,.1);
}

/* ══ ADMIN LAYOUT ════════════════════════════════════════ */
.admin-wrap { max-width: 1200px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
.admin-two-col { display: grid; grid-template-columns: 1.2fr 1fr; gap: 2rem; }
@media (max-width: 900px) { .admin-two-col { grid-template-columns: 1fr; } }

.admin-config-bar {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .8rem 1.2rem;
    margin-bottom: 1.5rem;
    font-size: .9rem;
    color: var(--warm-gray);
}

.form-card-wide { max-width: 100%; }

.form-section-title {
    font-family: 'Fraunces', serif;
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 1.5rem 0 .8rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid var(--border);
}

.form-row-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
@media (max-width: 768px) { .form-row-3 { grid-template-columns: 1fr; } }

.form-hint {
    font-size: .75rem;
    color: var(--warm-gray);
    margin-top: .2rem;
    display: block;
}

.form-actions {
    display: flex;
    gap: .8rem;
    margin-top: 1rem;
    flex-wrap: wrap;
}

.btn-sm { font-size: .82rem; padding: .45rem .9rem; }
.btn-link {
    background: none;
    border: none;
    color: #6c8aff;
    cursor: pointer;
    font-size: .85rem;
    text-decoration: underline;
}
.btn-link:hover { color: #a78bfa; }

/* Redes edit rows */
.redes-edit-list { display: flex; flex-direction: column; gap: .5rem; }
.rede-edit-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: .8rem;
    align-items: center;
}
.rede-name {
    font-size: .88rem;
    color: var(--ink);
    display: flex;
    align-items: center;
    gap: .4rem;
}
.rede-name i { font-size: 1.1rem; width: 22px; text-align: center; }

/* Foto edit rows */
.foto-edit-row {
    display: flex;
    gap: .8rem;
    margin-bottom: .5rem;
}

/* Alert styles */
.alert-success {
    background: #EAF5EB;
    border: 1px solid #B8DDB9;
    border-radius: 10px;
    padding: 1rem 1.2rem;
    color: #2A6B30;
    margin-bottom: 1rem;
}
.alert-error {
    background: #FDECEB;
    border: 1px solid #F5C6C2;
    border-radius: 10px;
    padding: 1rem 1.2rem;
    color: #C0392B;
    margin-bottom: 1rem;
}
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Footer - SEGUINOS + Contact
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.footer-seguinos { margin-bottom: 1.2rem; }
.footer-seguinos h4 {
    font-family: 'Fraunces', serif;
    font-size: 1.1rem;
    color: var(--gold);
    margin-bottom: .6rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.footer-social-icons {
    display: flex;
    gap: .8rem;
    justify-content: center;
    flex-wrap: wrap;
}
.footer-social-icons a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    color: var(--cream);
    font-size: 1.2rem;
    transition: all .25s;
    text-decoration: none;
}
.footer-social-icons a:hover {
    background: var(--rust);
    color: #fff;
    transform: translateY(-2px);
}
/* WhatsApp inline in social icons row */
.footer-social-icons .fa-whatsapp { color: #25d366; }
.footer-social-icons a:hover .fa-whatsapp { color: #fff; }
.footer-contact {
    display: flex;
    gap: 1.2rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: .8rem;
    font-size: .85rem;
    color: rgba(247,243,238,.6);
}
.footer-contact span { white-space: nowrap; }
.footer-contact i { margin-right: .3rem; color: var(--gold); }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Legal pages (Terminos, Privacidad)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.legal-content {
    max-width: 860px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    line-height: 1.8;
    color: var(--ink);
}
.legal-content h2 {
    font-family: 'Fraunces', serif;
    font-size: 1.4rem;
    margin: 1.8rem 0 .8rem;
    color: var(--rust);
}
.legal-content h3 {
    font-size: 1.1rem;
    margin: 1.2rem 0 .5rem;
}
.legal-content p { margin-bottom: .8rem; }
.legal-content ul { padding-left: 1.5rem; margin-bottom: .8rem; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Admin Configuracion - nueva red form
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.nueva-red-form {
    display: flex;
    gap: .6rem;
    align-items: end;
    flex-wrap: wrap;
    margin-top: .8rem;
    padding-top: .8rem;
    border-top: 1px solid var(--border);
}
.nueva-red-form .form-group { flex: 1; min-width: 140px; }
.nueva-red-form .form-group label { font-size: .78rem; }

/* Config form sections */
.config-section {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1.4rem;
    margin-bottom: 1.2rem;
}
.config-section h3 {
    font-family: 'Fraunces', serif;
    font-size: 1.1rem;
    color: var(--rust);
    margin-bottom: 1rem;
}
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   DetallePromo â€” Fotos, Beneficios, Notas, TyC
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.detalle-section {
    margin-top: 0;
    padding: 1.5rem 2.5rem 2rem;
    border-top: 1px solid var(--border);
    background: var(--cream);
}
.detalle-section-title {
    font-family: 'Fraunces', serif;
    font-size: 1.2rem;
    color: var(--rust);
    margin-bottom: 1rem;
}
.detalle-section-title i {
    margin-right: .4rem;
    opacity: .8;
}

/* Fotos gallery */
.detalle-fotos {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: .8rem;
    scroll-snap-type: x mandatory;
}
.detalle-foto-item {
    flex: 0 0 auto;
    width: 220px;
    scroll-snap-align: start;
    border-radius: 12px;
    overflow: hidden;
    background: var(--white);
    border: 1px solid var(--border);
}
.detalle-foto-item img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    display: block;
}
.detalle-foto-desc {
    display: block;
    padding: .4rem .6rem;
    font-size: .78rem;
    color: var(--warm-gray);
    text-align: center;
}

/* Beneficios table */
.detalle-beneficios-wrap {
    overflow-x: auto;
}
.detalle-beneficios-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .83rem;
    min-width: 800px;
    color: var(--ink);
}
.detalle-beneficios-table thead {
    background: rgba(0,0,0,.04);
}
.detalle-beneficios-table th {
    padding: .7rem .6rem;
    text-align: left;
    font-weight: 500;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--warm-gray);
}
.detalle-beneficios-table td {
    padding: .65rem .6rem;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.detalle-beneficios-table tbody tr:hover {
    background: rgba(0,0,0,.02);
}
.detalle-beneficios-table tbody tr:nth-child(even) {
    background: rgba(0,0,0,.015);
}

/* Dias display (letras con check) */
.dias-display {
    display: flex;
    gap: 6px;
    justify-content: center;
}
.dia-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 22px;
}
.dia-letra {
    font-weight: 600;
    font-size: .8rem;
    color: var(--ink);
    line-height: 1.2;
}
.dia-check {
    font-size: .85rem;
    line-height: 1.2;
    height: 16px;
    color: var(--accent);
    font-weight: 700;
}

/* Notas (A tener en cuenta) */
.detalle-notas {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.detalle-nota-item {
    background: rgba(212,168,67,.08);
    border-left: 3px solid var(--gold);
    border-radius: 0 10px 10px 0;
    padding: .8rem 1rem;
}
.nota-titulo {
    font-family: 'Fraunces', serif;
    font-size: .95rem;
    color: var(--gold);
    margin-bottom: .3rem;
}
.nota-texto {
    font-size: .88rem;
    color: var(--warm-gray);
    line-height: 1.5;
}

/* TyC */
.detalle-tyc {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem 1.2rem;
    max-height: 250px;
    overflow-y: auto;
    font-size: .85rem;
    line-height: 1.6;
    color: var(--warm-gray);
}
.detalle-tyc p { margin-bottom: .5rem; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Admin Promociones â€” form sections
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.form-section {
    margin-top: 1.2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}
.form-section .form-section-title {
    font-family: 'Fraunces', serif;
    font-size: .95rem;
    color: var(--rust);
    margin-bottom: .7rem;
}
.form-section-title i { margin-right: .3rem; }

.beneficio-edit-block {
    background: rgba(0,0,0,.015);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .8rem;
    margin-bottom: .6rem;
}
.beneficio-sep {
    border: none;
    border-top: 1px dashed var(--border);
    margin: .2rem 0 0;
}

.nota-edit-row {
    display: flex;
    gap: .6rem;
    margin-bottom: .5rem;
}

.btn-sm {
    padding: .35rem .8rem;
    font-size: .8rem;
}

/* Responsive beneficios table */
@media (max-width: 768px) {
    .detalle-beneficios-table thead { display: none; }
    .detalle-beneficios-table, .detalle-beneficios-table tbody,
    .detalle-beneficios-table tr, .detalle-beneficios-table td {
        display: block;
    }
    .detalle-beneficios-table { min-width: 0; }
    .detalle-beneficios-table tr {
        margin-bottom: .8rem;
        border: 1px solid var(--border);
        border-radius: 8px;
        padding: .5rem;
    }
    .detalle-beneficios-table td {
        border: none;
        padding: .3rem .5rem;
        position: relative;
        padding-left: 42%;
    }
    .detalle-beneficios-table td::before {
        content: attr(data-label);
        position: absolute;
        left: .5rem;
        top: .3rem;
        font-weight: 600;
        font-size: .75rem;
        color: #e8a44a;
        text-transform: uppercase;
    }
    .detalle-section { padding: 1.2rem 1.5rem 1.5rem; }
}

/* ══ OBTENER BENEFICIO BUTTON ═══════════════════════════ */
.btn-obtener-beneficio {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 1rem 0 .5rem;
    padding: .75rem 2rem;
    background: linear-gradient(135deg, #e8a44a, #d4913a);
    color: #1a1a2e;
    font-family: 'DM Sans', sans-serif;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    transition: transform .2s, box-shadow .2s, background .2s;
    box-shadow: 0 4px 18px rgba(232,164,74,.3);
}
.btn-obtener-beneficio:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(232,164,74,.45);
    background: linear-gradient(135deg, #f0b45a, #e8a44a);
    color: #1a1a2e;
    text-decoration: none;
}
.btn-obtener-beneficio:active {
    transform: translateY(0);
}

/* ══ MODALIDAD PILLS ════════════════════════════════════ */
.card-modalidad-pill {
    position: absolute;
    bottom: .5rem;
    left: .5rem;
    padding: .2rem .6rem;
    border-radius: 14px;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .02em;
    backdrop-filter: blur(6px);
}
.modalidad-presencial {
    background: rgba(46,204,113,.18);
    color: #2ecc71;
    border: 1px solid rgba(46,204,113,.3);
}
.modalidad-virtual {
    background: rgba(108,138,255,.18);
    color: #6c8aff;
    border: 1px solid rgba(108,138,255,.3);
}
.modalidad-ambos {
    background: rgba(232,164,74,.18);
    color: #e8a44a;
    border: 1px solid rgba(232,164,74,.3);
}

/* Detalle promo modalidad pill */
.detalle-modalidad-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .9rem;
    border-radius: 20px;
    font-size: .8rem;
    font-weight: 500;
}
.detalle-modalidad-pill i {
    font-size: .85rem;
}

/* ══ SUMA LOCAL PAGE ════════════════════════════════════ */
.suma-local-page {
    display: flex;
    justify-content: center;
    padding: 2rem 1.5rem 4rem;
}
.suma-local-form-card {
    max-width: 560px;
    width: 100%;
}
.suma-exito {
    text-align: center;
    padding: 2rem 1rem;
}
.suma-exito-icon {
    font-size: 3rem;
    margin-bottom: .8rem;
}
.suma-exito h3 {
    font-family: 'Fraunces', serif;
    font-size: 1.4rem;
    color: #2ecc71;
    margin-bottom: .6rem;
}
.suma-exito p {
    color: rgba(255,255,255,.6);
    line-height: 1.6;
    margin-bottom: .8rem;
}
.suma-resumen {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 10px;
    padding: .8rem 1rem;
    margin-top: .8rem;
    color: rgba(255,255,255,.7);
    font-size: .9rem;
}

/* ══ AYUDA PAGE ═══════════════════════════════════════ */
.ayuda-page { padding: 2rem 1.5rem 4rem; max-width: 960px; margin: 0 auto; }
.ayuda-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
@media (max-width: 768px) {
    .ayuda-grid { grid-template-columns: 1fr; }
}
.ayuda-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.ayuda-card h3 {
    font-family: 'Fraunces', serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 1rem;
}
.ayuda-card-icon {
    font-size: 2rem;
    margin-bottom: .6rem;
    color: var(--rust);
}
.ayuda-faq details {
    border-bottom: 1px solid var(--border);
    padding: .6rem 0;
}
.ayuda-faq details:last-child { border-bottom: none; }
.ayuda-faq summary {
    cursor: pointer;
    font-weight: 500;
    color: var(--ink);
    font-size: .9rem;
    padding: .3rem 0;
}
.ayuda-faq summary:hover { color: var(--rust); }
.ayuda-faq details p {
    color: var(--warm-gray);
    font-size: .85rem;
    line-height: 1.6;
    margin-top: .4rem;
    padding-left: .5rem;
}
.ayuda-faq details p a { color: var(--rust); text-decoration: underline; }
.ayuda-contacto-list { display: flex; flex-direction: column; gap: .8rem; }
.ayuda-contacto-item {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: .5rem 0;
}
.ayuda-contacto-item > i {
    font-size: 1.1rem;
    color: var(--rust);
    margin-top: .15rem;
    width: 20px;
    text-align: center;
}
.ayuda-contacto-label {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--warm-gray);
    margin-bottom: .15rem;
}
.ayuda-contacto-item a {
    color: var(--ink);
    text-decoration: none;
    font-size: .9rem;
}
.ayuda-contacto-item a:hover { color: var(--rust); }
.ayuda-sugerencias-cta {
    margin-top: 2rem;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    background: linear-gradient(135deg, rgba(200,75,31,.06), rgba(212,168,67,.06));
    border: 1px solid rgba(200,75,31,.15);
    border-radius: 16px;
    padding: 1.5rem 2rem;
}
.ayuda-sugerencias-cta > i {
    font-size: 2rem;
    color: var(--rust);
}
.ayuda-sugerencias-cta h4 {
    font-family: 'Fraunces', serif;
    color: var(--ink);
    font-size: 1rem;
    margin-bottom: .3rem;
}
.ayuda-sugerencias-cta p {
    color: var(--warm-gray);
    font-size: .85rem;
}
.ayuda-sugerencias-cta .btn-primary { white-space: nowrap; margin-left: auto; }
@media (max-width: 768px) {
    .ayuda-sugerencias-cta { flex-direction: column; text-align: center; }
    .ayuda-sugerencias-cta .btn-primary { margin-left: 0; }
}

/* ══ SUGERENCIAS PAGE ═════════════════════════════════ */
.sugerencias-page { padding: 2rem 1.5rem 4rem; max-width: 700px; margin: 0 auto; }
.sugerencias-disabled {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--warm-gray);
}
.sugerencias-disabled i { font-size: 2.5rem; color: var(--rust); margin-bottom: 1rem; display: block; }
.sugerencias-disabled p { margin-bottom: 1rem; font-size: 1rem; }
.sugerencias-exito { text-align: center; padding: 2rem 0; }
.sugerencias-exito-inner {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.sugerencias-exito-icon { font-size: 3rem; margin-bottom: .8rem; }
.sugerencias-exito h2 {
    font-family: 'Fraunces', serif;
    color: var(--ink);
    margin-bottom: .6rem;
}
.sugerencias-exito p { color: var(--warm-gray); line-height: 1.6; margin-bottom: .8rem; }
.sugerencias-resumen {
    background: var(--cream);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .8rem 1rem;
    margin-top: .8rem;
    color: var(--ink);
    font-size: .9rem;
    text-align: left;
}
.sugerencias-resumen div { padding: .25rem 0; }
.form-card-medium { max-width: 700px; margin: 0 auto; }

/* Dias checkboxes inline */
.dias-checks {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .8rem;
    padding: .4rem 0;
}
.dias-checks span { display: flex; align-items: center; gap: .2rem; }
.dias-checks label { font-size: .85rem; color: var(--ink); cursor: pointer; }
.dias-checks input[type=”checkbox”] { accent-color: var(--accent); }

/* Medios de pago preview */
.mp-preview { margin: .5rem 0; }
.mp-preview label { font-size: .8rem; color: var(--warm-gray); display: block; margin-bottom: .3rem; }
.mp-preview-img { max-height: 40px; max-width: 120px; object-fit: contain; border: 1px solid var(--border); border-radius: 6px; padding: 4px; background: #fff; }

/* Medios pago selector en beneficios */
.medios-pago-selector { padding: .4rem 0; }
.medios-pago-selector .mp-toggle { margin-bottom: .5rem; }
.medios-pago-selector .mp-toggle label { font-weight: 500; }
/* Medios de pago display en tabla beneficios */
.mp-display { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.mp-icon { height: 22px; width: auto; max-width: 40px; object-fit: contain; vertical-align: middle; background: #fff; border-radius: 3px; padding: 1px; }
.mp-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: rgba(0,0,0,.04);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 2px 6px;
    font-size: .78rem;
    white-space: nowrap;
}
.mp-badge .mp-icon { height: 18px; }

.mp-detalle-panel { padding: .2rem 0; }
.mp-checks-list {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .8rem;
    padding: .3rem 0;
}
.mp-checks-list > span {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    white-space: nowrap;
}
.mp-checks-list label { font-size: .85rem; color: var(--ink); cursor: pointer; margin-bottom: 0; }
.mp-checks-list input[type=”checkbox”] { accent-color: var(--accent); margin: 0; }

/* â”€â”€ NOTIFICACIONES (campana + panel) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.notif-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.notif-bell-btn {
    background: none;
    border: none;
    color: var(--ink);
    font-size: 1.15rem;
    cursor: pointer;
    position: relative;
    padding: .35rem .5rem;
    transition: color .2s;
    line-height: 1;
}
.notif-bell-btn:hover { color: var(--rust); }
.notif-badge {
    position: absolute;
    top: -.1rem;
    right: -.2rem;
    background: var(--red);
    color: #fff;
    font-size: .6rem;
    font-weight: 700;
    min-width: 1rem;
    height: 1rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0 .25rem;
    animation: notifPulse 2s ease-in-out infinite;
    box-shadow: 0 0 0 2px var(--cream);
}
@keyframes notifPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}

/* Panel desplegable */
.notif-panel {
    position: absolute;
    top: calc(100% + .5rem);
    right: 0;
    width: 340px;
    max-height: 420px;
    background: #fff;
    border-radius: .75rem;
    box-shadow: 0 8px 32px rgba(0,0,0,.18), 0 2px 8px rgba(0,0,0,.08);
    border: 1px solid var(--border);
    z-index: 2000;
    display: none;
    flex-direction: column;
    overflow: hidden;
    animation: notifSlideIn .25s ease-out;
}
.notif-panel-open { display: flex; }
@keyframes notifSlideIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
.notif-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--border);
    background: #faf8f5;
}
.notif-panel-header span {
    font-weight: 600;
    font-size: .85rem;
    color: var(--ink);
}
.notif-mark-all {
    font-size: .72rem;
    color: var(--rust);
    text-decoration: none;
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}
.notif-mark-all:hover { text-decoration: underline; }

.notif-panel-body {
    overflow-y: auto;
    max-height: 340px;
    scrollbar-width: thin;
}

/* Cada item de notificacion */
.notif-item {
    display: flex;
    gap: .65rem;
    padding: .7rem 1rem;
    border-bottom: 1px solid rgba(0,0,0,.04);
    transition: background .15s;
    cursor: default;
}
.notif-item:last-child { border-bottom: none; }
.notif-item:hover { background: rgba(0,0,0,.02); }
.notif-no-leida { background: #f0f6ff; }
.notif-no-leida:hover { background: #e6eeff; }
.notif-leida { opacity: .6; }

.notif-item-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    flex-shrink: 0;
    color: #fff;
}
.notif-tipo-info .notif-item-icon { background: linear-gradient(135deg, #3b82f6, #2563eb); }
.notif-tipo-promocion .notif-item-icon { background: linear-gradient(135deg, #f59e0b, #d97706); }
.notif-tipo-urgente .notif-item-icon { background: linear-gradient(135deg, #ef4444, #dc2626); }
.notif-tipo-exito .notif-item-icon { background: linear-gradient(135deg, #22c55e, #16a34a); }

.notif-item-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.notif-item-body strong {
    font-size: .8rem;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.notif-item-text {
    font-size: .72rem;
    color: var(--warm-gray);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.notif-item-fecha {
    font-size: .65rem;
    color: #aaa;
}

.notif-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 2rem 1rem;
    color: var(--warm-gray);
    font-size: .85rem;
}
.notif-empty i { font-size: 1.5rem; color: var(--green); }

/* Boton logout afiliado */
.btn-afiliado-logout {
    color: var(--warm-gray);
    font-size: .95rem;
    padding: .3rem .5rem;
    text-decoration: none;
    transition: color .2s;
    cursor: pointer;
    border: none;
    background: none;
}
.btn-afiliado-logout:hover { color: var(--red); }

/* Responsive */
@media (max-width: 768px) {
    .notif-panel {
        width: 290px;
        right: -2rem;
    }
}
/* ====== NAV PERFIL LINK ============================== */
.nav-perfil-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--gold);
  text-decoration: none;
  font-size: .85rem;
  font-weight: 500;
  padding: .3rem .6rem;
  border-radius: 20px;
  border: 1px solid rgba(212,168,67,.25);
  transition: all .2s;
}
.nav-perfil-link:hover { background: rgba(212,168,67,.1); color: var(--gold); border-color: var(--gold); }
.nav-perfil-link i { font-size: 1rem; }

/* ====== PERFIL PAGE ================================== */
.perfil-wrap { max-width: 1000px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
.perfil-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 2rem; align-items: start; }

.perfil-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(26,20,16,.06);
}

.perfil-card-header {
  background: var(--ink);
  color: var(--cream);
  padding: 2rem;
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.perfil-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--rust), var(--gold));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 15px rgba(200,75,31,.3);
}

.perfil-nombre-wrap h2 {
  font-family: 'Fraunces', serif;
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 .3rem;
  color: var(--cream);
}

.perfil-badge-afiliado, .perfil-badge-usuario {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .75rem;
  font-weight: 600;
  padding: .2rem .6rem;
  border-radius: 12px;
  letter-spacing: .03em;
}
.perfil-badge-afiliado {
  background: rgba(74,155,94,.2);
  color: #5ED47A;
}
.perfil-badge-usuario {
  background: rgba(107,130,153,.15);
  color: #6b8299;
}

.perfil-card-body {
  padding: 1.8rem 2rem;
}
.perfil-card-body h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--rust);
  margin: 0 0 1.2rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--border);
}
.perfil-card-body h3 i { margin-right: .4rem; opacity: .8; }
.perfil-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

.perfil-actions { margin-top: 1.5rem; display: flex; gap: .8rem; }

.perfil-sidebar { display: flex; flex-direction: column; gap: 1.5rem; }

.perfil-seguridad-desc {
  font-size: .85rem;
  color: var(--warm-gray);
  margin-bottom: 1rem;
  line-height: 1.5;
}

.perfil-info-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .8rem;
}
.perfil-info-list li {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .88rem;
  color: var(--ink);
}
.perfil-info-list li i { color: var(--rust); width: 20px; text-align: center; }
.perfil-info-list li strong { color: var(--warm-gray); font-weight: 500; }

.perfil-plan-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(200,75,31,.1);
  color: var(--rust);
  font-size: .78rem;
  font-weight: 600;
  padding: .15rem .5rem;
  border-radius: 8px;
}

@media (max-width: 768px) {
  .perfil-grid { grid-template-columns: 1fr; }
  .perfil-form-row { grid-template-columns: 1fr; }
  .perfil-card-header { flex-direction: column; text-align: center; }
  .nav-perfil-link span { display: none; }
}
/* ====== LOCAL CARD - IMPROVED ======================== */
.local-card { cursor: pointer; transition: box-shadow .25s, border-color .25s, transform .25s; }
.local-card:hover { box-shadow: 0 6px 24px rgba(26,20,16,.12); border-color: var(--rust); transform: translateY(-2px); }
.local-card:hover .local-ver-btn { color: var(--rust); gap: .6rem; }

.local-name-link { text-decoration: none; color: inherit; }
.local-name-link:hover .local-name { color: var(--rust); }

.local-card-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  flex-shrink: 0;
  min-width: 80px;
}
.local-promo-count {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
  background: rgba(200,75,31,.08);
  color: var(--rust);
  padding: .5rem .8rem;
  border-radius: 10px;
  font-family: 'Fraunces', serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all .2s;
}
.local-promo-count:hover { background: var(--rust); color: #fff; }
.local-promo-count:hover i { color: #fff; }
.local-promo-count i { font-size: .8rem; }
.local-promo-count small { font-size: .65rem; font-family: 'DM Sans', sans-serif; text-transform: uppercase; letter-spacing: .06em; font-weight: 500; }
.local-ver-btn {
  font-size: .78rem;
  color: var(--warm-gray);
  display: flex;
  align-items: center;
  gap: .3rem;
  font-weight: 500;
  transition: all .2s;
  text-decoration: none;
}
.local-ver-btn:hover { color: var(--rust); text-decoration: none; }

/* Contact row with WA + social icons */
.local-contact-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: .4rem;
}
.local-wa-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: #25d366;
  font-size: .82rem;
  font-weight: 500;
  cursor: pointer;
  transition: opacity .2s;
}
.local-wa-btn:hover { opacity: .7; }

/* Social icons FIXED for light backgrounds */
.local-social-icon {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--cream, #F7F3EE);
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--warm-gray);
  font-size: .82rem;
  cursor: pointer;
  transition: all .2s;
}
.local-social-icon:hover {
  background: var(--rust);
  color: #fff;
  border-color: var(--rust);
}

/* View toggle buttons */
.locales-view-toggle {
  display: flex;
  gap: .3rem;
  justify-content: flex-end;
  margin-bottom: 1rem;
}
.view-btn {
  width: 36px; height: 36px;
  border: 1px solid var(--border);
  background: white;
  color: var(--warm-gray);
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  transition: all .2s;
}
.view-btn:hover { border-color: var(--rust); color: var(--rust); }
.view-btn.active { background: var(--rust); color: #fff; border-color: var(--rust); }

/* LIST VIEW (default) - compact rows */
.locales-view-list.locales-grid { display: flex; flex-direction: column; gap: .5rem; }
.locales-view-list .local-card {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .65rem 1rem;
}
.locales-view-list .local-logo { font-size: 1.6rem; width: 38px; text-align: center; flex-shrink: 0; }
.locales-view-list .local-name { font-size: .92rem; }
.locales-view-list .local-rubro { font-size: .72rem; margin-bottom: .1rem; }
.locales-view-list .local-dir { font-size: .78rem; }
.locales-view-list .local-dir i { font-size: .7rem; margin-right: .2rem; color: var(--rust); opacity: .7; }
.locales-view-list .local-tel { font-size: .76rem; }
.locales-view-list .local-tel i { font-size: .7rem; margin-right: .2rem; color: var(--warm-gray); }
.locales-view-list .local-location { font-size: .76rem; }
.locales-view-list .local-contact-row { margin-top: .2rem; gap: .4rem; }
.locales-view-list .local-wa-btn { font-size: .76rem; }
.locales-view-list .local-social-icon { width: 24px; height: 24px; font-size: .72rem; }
.locales-view-list .local-reviews-mini { font-size: .75rem; }
.locales-view-list .local-reviews-mini .review-star-filled,
.locales-view-list .local-reviews-mini .review-star-empty { font-size: .7rem; }
.locales-view-list .local-card-right { gap: .5rem; min-width: 70px; }
.locales-view-list .local-promo-count { padding: .35rem .6rem; font-size: 1.2rem; border-radius: 8px; }
.locales-view-list .local-promo-count i { font-size: .7rem; }
.locales-view-list .local-promo-count small { font-size: .6rem; }
.locales-view-list .local-ver-btn { font-size: .72rem; }

/* GRID VIEW */
.locales-view-grid.locales-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
}
.locales-view-grid .local-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.5rem 1.2rem;
  gap: .6rem;
}
.locales-view-grid .local-logo { font-size: 2.8rem; width: auto; margin-bottom: .3rem; }
.locales-view-grid .local-info { flex: none; width: 100%; }
.locales-view-grid .local-name { font-size: 1.1rem; }
.locales-view-grid .local-dir,
.locales-view-grid .local-tel { font-size: .78rem; }
.locales-view-grid .local-contact-row { justify-content: center; }
.locales-view-grid .local-card-right {
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
  width: 100%;
  padding-top: .8rem;
  border-top: 1px solid var(--border);
  margin-top: .4rem;
}
.locales-view-grid .local-reviews-mini { justify-content: center; }
/* ====== DETALLE LOCAL PAGE =========================== */
.detlocal-hero { background: var(--ink); color: var(--cream); padding: 3rem 2.5rem 2.5rem; }
.detlocal-hero-inner { max-width: 1000px; margin: 0 auto; display: flex; align-items: center; gap: 1.5rem; }
.detlocal-logo-big { font-size: 3.5rem; flex-shrink: 0; }
.detlocal-rubro-pill {
  display: inline-block;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.7);
  padding: .2rem .7rem;
  border-radius: 12px;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: .4rem;
}
.detlocal-hero-info h1 { font-family: 'Fraunces', serif; font-size: 2rem; font-weight: 700; margin: 0 0 .3rem; color: #fff; }
.detlocal-ubicacion { color: #9E9089; font-size: .9rem; display: flex; align-items: center; gap: .4rem; }
.detlocal-ubicacion i { color: var(--gold); }

.detlocal-wrap { max-width: 1000px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
.detlocal-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2rem; align-items: start; }

.detlocal-info-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.8rem;
  box-shadow: 0 2px 12px rgba(26,20,16,.06);
}
.detlocal-info-card h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--rust);
  margin: 0 0 1.2rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--border);
}
.detlocal-info-card h3 i { margin-right: .4rem; opacity: .8; }

.detlocal-datos-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .8rem; }
.detlocal-datos-list li { display: flex; align-items: flex-start; gap: .8rem; font-size: .9rem; }
.detlocal-datos-list li i { color: var(--rust); width: 20px; text-align: center; flex-shrink: 0; margin-top: .15rem; }
.detlocal-datos-list li div { display: flex; flex-direction: column; }
.detlocal-datos-list li strong { font-size: .75rem; color: var(--warm-gray); text-transform: uppercase; letter-spacing: .04em; font-weight: 500; }
.detlocal-datos-list li span { color: var(--ink); }
.detlocal-datos-list li a { color: var(--rust); text-decoration: none; }
.detlocal-datos-list li a:hover { text-decoration: underline; }
.detlocal-sub-title { font-family: 'Fraunces', serif; font-size: .95rem; color: var(--ink); margin: 1.5rem 0 .8rem; }
.detlocal-sub-title i { margin-right: .3rem; color: var(--rust); }

.detlocal-redes { display: flex; flex-wrap: wrap; gap: .5rem; }
.detlocal-red-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .8rem;
  border-radius: 20px;
  background: rgba(200,75,31,.06);
  color: var(--rust);
  text-decoration: none;
  font-size: .82rem;
  font-weight: 500;
  transition: all .2s;
}
.detlocal-red-link:hover { background: var(--rust); color: #fff; }
.detlocal-red-link i { font-size: 1rem; }

.detlocal-fotos { display: flex; gap: .8rem; overflow-x: auto; padding-bottom: .5rem; }
.detlocal-foto-item { flex: 0 0 auto; width: 160px; border-radius: 10px; overflow: hidden; border: 1px solid var(--border); }
.detlocal-foto-item img { width: 100%; height: 110px; object-fit: cover; display: block; }
.detlocal-foto-item span { display: block; padding: .3rem .5rem; font-size: .72rem; color: var(--warm-gray); text-align: center; }

.detlocal-actions { display: flex; gap: .8rem; flex-wrap: wrap; }

/* Promos section */
.detlocal-promos-section { }
.detlocal-promos-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.2rem;
}
.detlocal-promos-header h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0;
}
.detlocal-promos-header h3 i { color: var(--rust); margin-right: .4rem; }
.detlocal-promos-count {
  background: var(--rust);
  color: #fff;
  padding: .2rem .6rem;
  border-radius: 12px;
  font-size: .78rem;
  font-weight: 600;
}

.detlocal-promos-list { display: flex; flex-direction: column; gap: 1.2rem; }
.detlocal-promos-list .promo-card { margin-bottom: 0; }

.detlocal-sin-promos {
  text-align: center;
  padding: 3rem 2rem;
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--warm-gray);
}

@media (max-width: 768px) {
  .detlocal-grid { grid-template-columns: 1fr; }
  .detlocal-hero-inner { flex-direction: column; text-align: center; }
  .detlocal-hero-info h1 { font-size: 1.5rem; }
  .detlocal-ubicacion { justify-content: center; }
  .local-card-right { flex-direction: row; gap: .6rem; }
  .locales-view-grid.locales-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
  .locales-view-toggle { margin-bottom: .8rem; }
}
/* ====== REVIEWS / OPINIONES ========================== */
.review-section { margin-top: 2.5rem; padding-top: 2rem; border-top: 2px solid var(--border); }
.review-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; flex-wrap: wrap; gap: 1rem; }
.review-section-header h3 { font-family: 'Fraunces', serif; font-size: 1.3rem; font-weight: 700; margin: 0; }
.review-section-header h3 i { color: #F59E0B; margin-right: .4rem; }
.review-summary { display: flex; align-items: center; gap: .6rem; }
.review-stars-big { font-size: 1.1rem; }
.review-star-filled { color: #F59E0B; }
.review-star-empty { color: #D1D5DB; }
.review-promedio { font-family: 'Fraunces', serif; font-size: 1.4rem; font-weight: 700; color: var(--ink); }
.review-total { font-size: .82rem; color: var(--warm-gray); }

.review-type-title { font-family: 'Fraunces', serif; font-size: 1rem; font-weight: 600; color: var(--ink); margin: 1.5rem 0 .8rem; display: flex; align-items: center; gap: .4rem; }

.review-list { display: flex; flex-direction: column; gap: .8rem; }
.review-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.2rem;
  transition: box-shadow .2s;
}
.review-card:hover { box-shadow: 0 2px 12px rgba(26,20,16,.06); }
.review-card-top { display: flex; align-items: center; gap: .8rem; margin-bottom: .6rem; }

.review-google-badge {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: #4285F4;
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.review-avatar {
  width: 32px; height: 32px;
  color: var(--rust);
  font-size: 1.8rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.review-author-info { flex: 1; min-width: 0; }
.review-author { display: block; font-size: .9rem; color: var(--ink); }
.review-date { display: block; font-size: .72rem; color: var(--warm-gray); }
.review-stars { flex-shrink: 0; font-size: .85rem; }
.review-text { font-size: .88rem; color: #555; line-height: 1.5; margin: 0; }

.review-sin-opiniones { text-align: center; padding: 1.5rem; color: var(--warm-gray); font-size: .9rem; background: rgba(0,0,0,.02); border-radius: 10px; }
/* Review form */
.review-form-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.5rem;
  margin-top: 1.2rem;
  box-shadow: 0 2px 10px rgba(26,20,16,.04);
}
.review-form-title {
  font-family: 'Fraunces', serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--rust);
  margin: 0 0 1rem;
}
.review-form-title i { margin-right: .3rem; }

.star-rating-rbl { display: flex; flex-wrap: wrap; gap: .5rem; }
.star-rating-rbl label {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .35rem .7rem;
  border: 1.5px solid var(--border);
  border-radius: 20px;
  font-size: .82rem;
  color: var(--ink);
  cursor: pointer;
  transition: all .2s;
}
.star-rating-rbl label:hover { border-color: #F59E0B; background: rgba(245,158,11,.06); }
.star-rating-rbl input[type='radio'] { display: none; }
.star-rating-rbl input[type='radio']:checked + label,
.star-rating-rbl label.selected {
  background: rgba(245,158,11,.1);
  border-color: #F59E0B;
  color: #B45309;
  font-weight: 600;
}

.review-login-msg {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: 1rem;
  margin-top: 1rem;
  background: rgba(200,75,31,.04);
  border: 1px solid rgba(200,75,31,.15);
  border-radius: 10px;
  font-size: .88rem;
  color: var(--warm-gray);
}
.review-login-msg i { color: var(--rust); font-size: 1rem; }
.review-login-msg a { color: var(--rust); font-weight: 600; }

@media (max-width: 768px) {
  .review-section-header { flex-direction: column; align-items: flex-start; }
  .star-rating-rbl { flex-direction: column; }
}
/* Local card mini reviews */
.local-reviews-mini {
  display: flex;
  align-items: center;
  gap: .25rem;
  margin: .2rem 0 .1rem;
  font-size: .78rem;
}
.local-reviews-mini .fa-star { font-size: .7rem; }
.local-reviews-mini .review-star-filled { color: #F59E0B; }
.local-reviews-mini .review-star-empty { color: #D1D5DB; }
.local-reviews-mini span { font-weight: 600; color: var(--ink); margin-left: .1rem; }
.local-reviews-mini small { color: var(--warm-gray); }
/* ====== POPULARES: LOCALES + BUSQUEDAS =============== */
.populares-locales-grid {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.popular-local-card {
  flex: 0 0 auto;
  width: 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  padding: 1rem .6rem;
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  text-decoration: none;
  color: var(--ink);
  transition: all .25s;
  scroll-snap-align: start;
  text-align: center;
}
.popular-local-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(26,20,16,.1);
  border-color: var(--rust);
  color: var(--ink);
  text-decoration: none;
}
.popular-local-logo { font-size: 2.5rem; line-height: 1; }
.popular-local-name {
  font-family: Fraunces, serif;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
/* Busquedas populares bubbles */
.populares-busquedas-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}
.popular-busqueda-bubble {
  display: inline-flex;
  align-items: center;
  padding: .45rem 1rem;
  background: white;
  border: 1.5px solid var(--border);
  border-radius: 30px;
  font-size: .85rem;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: all .25s;
  white-space: nowrap;
}
.popular-busqueda-bubble:hover {
  background: var(--rust);
  border-color: var(--rust);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(200,75,31,.2);
}
@media (max-width: 600px) {
  .populares-locales-grid { gap: .6rem; }
  .popular-local-card { width: 90px; padding: .7rem .4rem; }
  .popular-local-logo { font-size: 2rem; }
  .popular-local-name { font-size: .7rem; }
  .popular-busqueda-bubble { font-size: .78rem; padding: .35rem .8rem; }
}
/* Dashboard stats section specific fixes */
.dash-section .admin-gv { font-size: .8rem; }
.dash-section .admin-gv th { font-size: .72rem; padding: .5rem .6rem; white-space: nowrap; }
.dash-section .admin-gv td { padding: .5rem .6rem; font-size: .78rem; }
.dash-section .admin-gv td:last-child { word-break: break-all; }
.dash-stats-divider { margin-top: 2.5rem; padding-top: 2rem; border-top: 2px solid var(--border); }
/* ====== OBTENER BENEFICIO PAGE ======================== */
.obtben-wrap { max-width: 520px; margin: 2rem auto; padding: 0 1.5rem 4rem; }
.obtben-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 2.5rem 2rem;
  text-align: center;
  box-shadow: 0 4px 24px rgba(26,20,16,.08);
}
.obtben-icon-big { font-size: 3rem; margin-bottom: 1rem; color: var(--rust); }
.obtben-card h2 { font-family: Fraunces, serif; font-size: 1.5rem; font-weight: 700; color: var(--ink); margin: 0 0 .6rem; }
.obtben-card p { color: var(--warm-gray); font-size: .92rem; line-height: 1.6; margin: 0 0 1.5rem; }
.obtben-actions { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }

/* QR Card */
.obtben-qr-header .obtben-check-icon { font-size: 3rem; color: var(--green); margin-bottom: .8rem; }
.obtben-promo-info {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem;
  margin: 1.5rem 0;
  text-align: left;
}
.obtben-promo-icon { font-size: 2rem; flex-shrink: 0; }
.obtben-promo-info strong { display: block; font-size: .95rem; color: var(--ink); }
.obtben-promo-info span { font-size: .82rem; color: var(--warm-gray); }

.obtben-qr-container {
  display: flex;
  justify-content: center;
  margin: 1.5rem 0;
}
.obtben-qr-img {
  width: 280px;
  height: 280px;
  border: 4px solid var(--ink);
  border-radius: 12px;
  padding: 8px;
  background: white;
}
.obtben-qr-datos {
  text-align: left;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.obtben-dato-row {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .85rem;
  color: var(--ink);
}
.obtben-dato-row i { color: var(--rust); width: 18px; text-align: center; flex-shrink: 0; }
.obtben-dato-row strong { color: var(--ink); }

.obtben-login-card .obtben-icon-big { color: var(--warm-gray); }
.obtben-afiliate-card .obtben-icon-big { color: var(--gold); }

@media (max-width: 600px) {
  .obtben-card { padding: 2rem 1.2rem; }
  .obtben-card h2 { font-size: 1.2rem; }
  .obtben-qr-img { width: 220px; height: 220px; }
  .obtben-actions { flex-direction: column; }
}

/* Print styles */
@media print {
  header, footer, nav, .admin-bar, .scroll-top-btn, .obtben-actions { display: none \!important; }
  .obtben-wrap { margin: 0; padding: 0; }
  .obtben-card { box-shadow: none; border: 1px solid #ccc; }
}
/* ====== MI ACTIVIDAD PAGE ============================== */
.actividad-wrap { max-width: 800px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }

.actividad-tabs { display: flex; gap: .5rem; margin-bottom: 1.5rem; border-bottom: 2px solid var(--border); padding-bottom: 0; }
.actividad-tab {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .7rem 1.2rem; font-size: .88rem; font-weight: 500;
  color: var(--warm-gray); text-decoration: none; border: none; background: none;
  border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer;
  transition: all .2s; white-space: nowrap;
}
.actividad-tab:hover { color: var(--ink); }
.actividad-tab.active { color: var(--rust); border-bottom-color: var(--rust); font-weight: 600; }

.actividad-section h3 { font-family: Fraunces, serif; font-size: 1.1rem; font-weight: 600; color: var(--ink); margin: 0 0 1rem; }
.actividad-section h3 i { color: var(--rust); margin-right: .4rem; }

.actividad-list { display: flex; flex-direction: column; gap: .6rem; }
.actividad-item {
  display: flex; align-items: flex-start; gap: .8rem;
  padding: 1rem; background: white; border: 1px solid var(--border);
  border-radius: 12px; transition: box-shadow .2s;
}
.actividad-item:hover { box-shadow: 0 2px 10px rgba(26,20,16,.06); }
.actividad-beneficio { border-left: 3px solid var(--green); }
.actividad-item-icon { font-size: 1.3rem; flex-shrink: 0; margin-top: .1rem; }
.actividad-item-body { flex: 1; min-width: 0; }
.actividad-item-body strong { display: block; font-size: .9rem; color: var(--ink); margin-bottom: .2rem; }
.actividad-item-meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .78rem; color: var(--warm-gray); align-items: center; }
.actividad-tipo-badge { background: rgba(108,138,255,.1); color: #6c8aff; padding: .1rem .4rem; border-radius: 6px; font-size: .7rem; font-weight: 600; }
.actividad-device-badge { background: rgba(107,94,87,.08); color: var(--warm-gray); padding: .1rem .4rem; border-radius: 6px; font-size: .7rem; }

.actividad-empty { text-align: center; padding: 3rem 2rem; color: var(--warm-gray); }
.actividad-empty i { font-size: 2.5rem; opacity: .3; display: block; margin-bottom: .8rem; }
.actividad-empty p { margin-bottom: 1rem; }

.nav-actividad-link { color: #BDB0A8; font-size: 1.1rem; text-decoration: none; transition: color .2s; }
.nav-actividad-link:hover { color: var(--gold); }

@media (max-width: 600px) {
  .actividad-tabs { overflow-x: auto; }
  .actividad-tab { font-size: .8rem; padding: .5rem .8rem; white-space: nowrap; }
}
/* Actividad beneficio items */
.actividad-item-link { text-decoration: none; color: inherit; display: block; }
.actividad-item-link:hover { text-decoration: none; color: inherit; }
.actividad-item-link:hover .actividad-item { border-color: var(--rust); box-shadow: 0 4px 15px rgba(26,20,16,.08); }
.actividad-item-link:hover .actividad-item-arrow { color: var(--rust); }
.actividad-item-sub { display: block; font-size: .82rem; color: var(--warm-gray); margin-bottom: .2rem; }
.actividad-item-arrow { color: var(--border); font-size: 1rem; flex-shrink: 0; transition: color .2s; }
.actividad-estado-badge { padding: .1rem .4rem; border-radius: 6px; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.estado-pendiente { background: rgba(245,158,11,.1); color: #D97706; }
.estado-utilizado { background: rgba(74,155,94,.1); color: var(--green); }
.estado-no_utilizado { background: rgba(140,123,112,.1); color: var(--warm-gray); }

/* DetalleBeneficio */
.detben-form-estado { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.detben-resumen { margin-top: 1.5rem; padding: 1.2rem; background: var(--cream); border-radius: 12px; }
.detben-resumen-header { font-size: 1.1rem; font-weight: 600; margin-bottom: .8rem; display: flex; align-items: center; gap: .5rem; }
.detben-review-box { padding: .8rem; background: white; border: 1px solid var(--border); border-radius: 10px; }
.detben-review-box .review-stars { display: block; margin-bottom: .4rem; }
.detben-review-box p { font-size: .88rem; color: var(--ink); margin: 0; line-height: 1.5; }
.detben-motivo { font-size: .88rem; color: var(--warm-gray); font-style: italic; margin: 0; }
/* ObtenerBeneficio actions grid */
.obtben-actions-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.obtben-actions-grid .btn { justify-content: center; display: inline-flex; align-items: center; gap: .4rem; text-align: center; }
@media (max-width: 480px) { .obtben-actions-grid { grid-template-columns: 1fr; } }
/* ====== RECOMENDAR BANNER ============================== */
.recomendar-banner {
  background: linear-gradient(135deg, #1a0a2e 0%, #2d1b4e 50%, #1a0a2e 100%);
  border-top: 1px solid rgba(139,92,246,.15);
  border-bottom: 1px solid rgba(139,92,246,.15);
  padding: 3rem 1.5rem;
  margin-top: 1rem;
}
.recomendar-inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.recomendar-text {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  flex: 1;
}
.recomendar-icon { font-size: 2.5rem; color: #e74c8b; flex-shrink: 0; }
.recomendar-title { font-family: Fraunces, serif; font-size: 1.5rem; font-weight: 700; color: #fff; margin: 0 0 .4rem; }
.recomendar-desc { font-size: .92rem; color: rgba(255,255,255,.6); line-height: 1.5; margin: 0; }
.recomendar-actions { display: flex; flex-wrap: wrap; gap: .6rem; flex-shrink: 0; }
.recomendar-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .6rem 1.1rem; border-radius: 10px;
  font-size: .85rem; font-weight: 600; color: #fff;
  text-decoration: none; transition: all .2s; white-space: nowrap;
}
.recomendar-wa { background: #25d366; }
.recomendar-wa:hover { background: #1ebe57; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(37,211,102,.3); color: #fff; }
.recomendar-fb { background: #1877F2; }
.recomendar-fb:hover { background: #1565d8; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(24,119,242,.3); color: #fff; }
.recomendar-tw { background: #333; }
.recomendar-tw:hover { background: #111; transform: translateY(-2px); color: #fff; }
.recomendar-copy { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); }
.recomendar-copy:hover { background: rgba(255,255,255,.2); transform: translateY(-2px); color: #fff; }
@media (max-width: 768px) {
  .recomendar-inner { flex-direction: column; text-align: center; }
  .recomendar-text { flex-direction: column; align-items: center; }
  .recomendar-actions { justify-content: center; }
}
/* ====== LOGIN FORGOT / RECOVER ========================= */
.login-forgot-link {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .82rem; color: var(--warm-gray); text-decoration: none;
  border: none; background: none; cursor: pointer; transition: color .2s;
}
.login-forgot-link:hover { color: var(--rust); }
.recuperar-panel {
  margin-top: 1.2rem; padding: 1.5rem;
  background: var(--cream); border: 1px solid var(--border);
  border-radius: 12px;
}
.recuperar-panel h4 { font-family: Fraunces, serif; color: var(--ink); }
.recuperar-panel h4 i { color: var(--rust); margin-right: .3rem; }
/* ====== GEO FILTER ================================= */
.filter-sep { color: var(--border); font-size: 1.2rem; margin: 0 .2rem; }
.btn-ubicacion {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem 1rem;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  color: #fff;
  border: none;
  border-radius: 20px;
  font-size: .82rem;
  font-weight: 500;
  cursor: pointer;
  transition: all .2s;
  white-space: nowrap;
}
.btn-ubicacion:hover { background: linear-gradient(135deg, #1d4ed8, #2563eb); transform: translateY(-1px); box-shadow: 0 3px 10px rgba(37,99,235,.3); }
.btn-ubicacion:disabled { opacity: .6; cursor: wait; }
.btn-ubicacion i { font-size: .9rem; }
.filter-radio { max-width: 90px; font-size: .82rem; padding: .35rem .5rem; }
.btn-geo { display: none; }

.ubicacion-activa {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: rgba(37,99,235,.1);
  color: #2563eb;
  border: 1px solid rgba(37,99,235,.2);
  border-radius: 20px;
  padding: .3rem .8rem;
  font-size: .78rem;
  font-weight: 500;
  white-space: nowrap;
  animation: geoFadeIn .3s ease;
}
.ubicacion-activa i { font-size: .85rem; }

.btn-quitar-filtro {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(37,99,235,.15);
  color: #2563eb;
  font-size: .7rem;
  border: none;
  cursor: pointer;
  text-decoration: none;
  margin-left: .2rem;
  transition: all .15s;
}
.btn-quitar-filtro:hover { background: #2563eb; color: #fff; }

@keyframes geoFadeIn { from { opacity:0; transform:scale(.9); } to { opacity:1; transform:scale(1); } }

@media (max-width: 768px) {
  .filter-sep { display: none; }
  .btn-ubicacion { font-size: .75rem; padding: .35rem .7rem; }
  .filter-radio { max-width: 75px; }
}
/* ====== RUBROS DESTACADOS HOME ====================== */
.rubro-dest-group { margin-bottom: 1.8rem; }
.rubro-dest-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .8rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid rgba(245,158,11,.2);
}
.rubro-dest-icon { font-size: 1.4rem; }
.rubro-dest-name {
  font-family: 'Fraunces', serif;
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0;
  color: var(--ink);
}
.rubro-dest-count {
  margin-left: auto;
  font-size: .78rem;
  color: #F59E0B;
  background: rgba(245,158,11,.1);
  padding: .2rem .6rem;
  border-radius: 12px;
  font-weight: 600;
}

/* Nav link rubros destacados */
.nav-rubros-dest {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: #F59E0B !important;
  font-weight: 600;
  font-size: .85rem;
}
.nav-rubros-dest:hover { color: #D97706 !important; }
.nav-rubros-dest i { font-size: .75rem; }
/* ====== LOCAL BAR ====================================== */
.local-bar {
  background: #1B4332;
  color: #8FBFA0;
  font-size: .75rem;
  text-align: center;
  padding: .4rem;
  letter-spacing: .05em;
}
.local-bar a { color: #A8E6CF; text-decoration: none; margin-left: .5rem; }
.local-bar a:hover { color: #fff; }
.local-bar i { margin-right: .3rem; }

.estado-badge { display: inline-block; padding: .15rem .5rem; border-radius: 4px; font-size: .75rem; font-weight: 600; }
.estado-pendiente { background: #FEF6E7; color: #7A5010; }
.estado-utilizado { background: #EAF5EB; color: #2A6B30; }
.estado-no_utilizado { background: #FDECEB; color: #C0392B; }
/* APPROVAL BADGES */
.estado-aprob-aprobada { background: #EAF5EB; color: #2A6B30; }
.estado-aprob-rechazada { background: #FDECEB; color: #C0392B; }
.estado-aprob-en_revision { background: #FEF6E7; color: #7A5010; }
.estado-aprob-pendiente { background: #EEF2FF; color: #4338CA; }

/* LOCAL NOTIFICATIONS */
.notif-local-item { display: flex; gap: .8rem; padding: .8rem; border-bottom: 1px solid var(--border); }
.notif-local-item:last-child { border-bottom: none; }
.notif-local-nueva { background: rgba(200,75,31,.04); }
.notif-local-icon { font-size: 1.2rem; flex-shrink: 0; padding-top: .1rem; }
.notif-local-aprobacion .notif-local-icon { color: var(--green); }
.notif-local-rechazo .notif-local-icon { color: var(--red); }
.notif-local-info .notif-local-icon { color: #6c8aff; }
.notif-local-body { flex: 1; display: flex; flex-direction: column; gap: .2rem; }
.notif-local-body strong { font-size: .88rem; }
.notif-local-body span { font-size: .82rem; color: var(--warm-gray); }
.notif-local-body small { font-size: .72rem; color: #aaa; }