/* Pie de página compartido (4 columnas + datos del responsable).
   Todo va con prefijo sf- para no chocar con los estilos propios de cada página. */
.sf-scope{
  background:#0b1442; color:rgba(255,255,255,.78);
  font-family:'Manrope', ui-sans-serif, system-ui, sans-serif; font-size:.86rem; line-height:1.6;
}
.sf-scope *{ box-sizing:border-box; }
.sf-scope a{ color:inherit; text-decoration:none; }
.sf-wrap{ max-width:1180px; margin:0 auto; padding:0 1.25rem; }

.sf-id{
  display:grid; gap:1.4rem; padding:2.6rem 0 2rem;
  border-bottom:1px solid rgba(255,255,255,.12);
}
@media (min-width:860px){ .sf-id{ grid-template-columns:1.4fr 1fr; align-items:start; } }
.sf-id-name{ margin:0; font-weight:800; font-size:1.02rem; color:#fff; }
.sf-id-name span{ font-weight:500; color:rgba(255,255,255,.7); }
.sf-id p{ margin:.25rem 0 0; }
.sf-id a:hover{ color:#22e4c8; }
.sf-id-notif{ padding:1rem 1.1rem; border-radius:.8rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); }
.sf-id-notif b{ display:block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:#22e4c8; margin-bottom:.3rem; }

.sf-grid{
  display:grid; gap:2rem 1.5rem; padding:2.4rem 0 2rem;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
}
.sf-grid h3{
  margin:0; font-size:.74rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#fff;
}
.sf-grid h3::after{ content:''; display:block; margin-top:.55rem; width:2rem; height:2px; background:linear-gradient(90deg,#22e4c8,#2e8fff); }
.sf-grid ul{ list-style:none; margin:.9rem 0 0; padding:0; display:grid; gap:.45rem; }
.sf-grid li a{ color:rgba(255,255,255,.68); }
.sf-grid li a:hover{ color:#22e4c8; }
.sf-grid li button{
  all:unset; cursor:pointer; color:rgba(255,255,255,.68);
}
.sf-grid li button:hover{ color:#22e4c8; }
.sf-grid li button:focus-visible, .sf-scope a:focus-visible{ outline:2px solid #22e4c8; outline-offset:2px; }

.sf-social{ display:flex; gap:.6rem; margin-top:1rem; }
.sf-social a{
  width:2.2rem; height:2.2rem; border-radius:999px; border:1px solid rgba(255,255,255,.25);
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.75);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.sf-social a:hover{ background:#22e4c8; border-color:#22e4c8; color:#0b1442; }
/* banner de la CRC en su propia fila, a lo ancho de las 4 columnas y centrado */
.sf-crc-row{ grid-column:1 / -1; display:flex; justify-content:center; padding-top:.6rem; }
.sf-crc{ display:block; border-radius:10px; overflow:hidden; border:1px solid rgba(46,143,255,.4); width:46rem; max-width:100%; }
.sf-crc img{ display:block; width:100%; height:auto; }

.sf-bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem;
  padding:1.2rem 0 1.6rem; border-top:1px solid rgba(255,255,255,.12);
  font-size:.76rem; color:rgba(255,255,255,.5);
}
.sf-bottom a:hover{ color:#22e4c8; }
.sf-top{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:40;
  width:2.75rem; height:2.75rem; border-radius:.6rem; border:1px solid rgba(46,143,255,.5);
  background:#fff; color:#1d5fd1; font-size:1.1rem; cursor:pointer;
  box-shadow:0 10px 24px -12px rgba(15,23,42,.5);
}
.sf-top:hover{ background:#2e8fff; color:#fff; }

/* Aviso de cookies */
.ck-banner{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:60; max-width:34rem;
  padding:1.1rem 1.2rem; border-radius:.9rem; background:#ffffff; color:#16204a;
  border:1px solid rgba(22,32,74,.14); box-shadow:0 24px 48px -20px rgba(11,20,66,.45);
  font-family:'Manrope', ui-sans-serif, system-ui, sans-serif; font-size:.86rem; line-height:1.55;
}
.ck-banner p{ margin:0; }
.ck-banner a{ color:#1d5fd1; font-weight:700; text-decoration:underline; }
.ck-actions{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem; }
.ck-actions button{
  font:inherit; font-weight:700; font-size:.8rem; cursor:pointer;
  padding:.55rem 1rem; border-radius:.5rem; border:1px solid #2e8fff; background:#fff; color:#1d5fd1;
}
.ck-actions button.ck-primary{ background:#2e8fff; color:#fff; }
