/* ===== Cabecera ===== */
/* Encabezado transparente */
.pub-header{ background:transparent; border-bottom:none; position:relative; z-index:50; }
.pub-header-in{ max-width:1240px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.pub-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text); font-weight:800; font-size:20px; flex:none; }
.pub-logo img{ display:block; height:46px; width:auto; }
.pub-logo-movil{ display:none !important; height:42px !important; }
.pub-logo-icono{ width:34px; height:34px; border-radius:10px; background:linear-gradient(150deg,var(--violet-600),var(--violet-700)); display:flex; align-items:center; justify-content:center; flex:none; }
.pub-logo-icono svg{ width:18px; height:18px; stroke:#fff; }
.pub-derecha{ display:flex; align-items:center; gap:22px; }
.pub-nav{ display:flex; align-items:center; gap:26px; }
.pub-nav a{ color:var(--violet-700); font-weight:700; font-size:15px; text-decoration:none; }
.pub-nav a:hover{ color:var(--violet-400); }
.pub-nav .solo-movil{ display:none; }
.pub-ingresar{ background:var(--violet-600); color:#fff; text-decoration:none; font-weight:700; font-size:13.5px; padding:10px 22px; border-radius:999px; }
.pub-ingresar:hover{ background:var(--violet-700); }

.pub-cuenta{ position:relative; }
.pub-cuenta-btn{ width:40px; height:40px; border-radius:50%; border:none; background:var(--violet-100); color:var(--violet-600); display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }
.pub-cuenta-btn svg{ width:20px; height:20px; }
.pub-cuenta-btn:hover{ background:#ecc9ec; }
.pub-cuenta-menu{ display:none; position:absolute; right:0; top:calc(100% + 10px); min-width:250px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px -18px rgba(20,10,30,.35); padding:8px; z-index:60; }
.pub-cuenta.abierto .pub-cuenta-menu{ display:block; }
.pub-cuenta-datos{ padding:10px 12px 12px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.pub-cuenta-datos strong{ display:block; font-size:14px; }
.pub-cuenta-datos span{ display:block; font-size:12px; color:var(--muted); word-break:break-all; }
.pub-cuenta-menu a, .pub-cuenta-menu button{ display:block; width:100%; text-align:left; padding:10px 12px; border:none; background:none; border-radius:9px; font:inherit; font-size:13.5px; font-weight:600; color:var(--text); text-decoration:none; cursor:pointer; }
.pub-cuenta-menu a:hover, .pub-cuenta-menu button:hover{ background:var(--panel-soft); color:var(--violet-600); }
.pub-cuenta-menu form{ margin:0; }

.pub-hamburguesa{ display:none; width:40px; height:40px; border:1px solid var(--line); background:#fff; border-radius:11px; cursor:pointer; padding:0; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.pub-hamburguesa span{ display:block; width:18px; height:2px; background:var(--violet-700); border-radius:2px; }

@media (max-width:860px){
  .pub-header-in{ padding:10px 16px; }
  .pub-logo-grande{ display:none !important; }
  .pub-logo-movil{ display:block !important; }
  .pub-hamburguesa{ display:flex; }
  .pub-derecha{ gap:12px; }
  .pub-ingresar{ display:none; }
  .pub-nav{ display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; padding:8px 16px 14px; box-shadow:0 18px 30px -22px rgba(20,10,30,.4); }
  .pub-header.abierto .pub-nav{ display:flex; }
  .pub-nav a{ padding:13px 4px; border-bottom:1px solid var(--line); }
  .pub-nav a:last-child{ border-bottom:none; }
  .pub-nav .solo-movil{ display:block; }
}

/* ===== Cuerpo ===== */
.pub-main{ min-height:60vh; }

/* ===== Pie ===== */
.pub-footer{ background:linear-gradient(160deg,#1B0020 0%,#2E0033 60%,#4D004D 100%); color:#EDE7F0; padding:56px 24px 0; }
.pub-footer a{ color:inherit; text-decoration:none; }
.pub-footer-in{ max-width:1180px; margin:0 auto; }
.pub-footer-top{ display:grid; grid-template-columns:1.5fr 1fr 1.4fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1); }
.pub-footer-logo{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:20px; color:#fff; }
.pub-footer-logo-icono{ width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg,#C93FC0,#660066); display:flex; align-items:center; justify-content:center; flex:none; }
.pub-footer-logo-icono svg{ width:18px; height:18px; stroke:#fff; }
.pub-footer-marca p{ margin:14px 0 0; font-size:13.5px; line-height:1.7; color:#B8AFC0; max-width:300px; }
.pub-footer-col h4{ margin:0 0 18px; font-size:13.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#fff; }
.pub-footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.pub-footer-col a{ font-size:14px; color:#B8AFC0; transition:color .15s ease, padding-left .15s ease; }
.pub-footer-col a:hover{ color:#fff; padding-left:4px; }
.pub-footer-contacto ul{ gap:14px; }
.pub-footer-contacto li{ display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:#B8AFC0; }
.pub-footer-contacto li a:hover{ padding-left:0; }
.pub-footer-contacto svg{ width:16px; height:16px; flex:none; margin-top:2px; color:#C93FC0; }
.pub-footer-bottom{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:20px 0; font-size:12.5px; color:#B8AFC0; }
.pub-legal{ display:flex; gap:18px; flex-wrap:wrap; }
@media (max-width:900px){ .pub-footer-top{ grid-template-columns:1fr 1fr; } .pub-footer-marca{ grid-column:1 / -1; } }
@media (max-width:560px){ .pub-footer-top{ grid-template-columns:1fr; } .pub-footer-bottom{ flex-direction:column; align-items:flex-start; } }
