/* HUB RESEAUX SOCIAUX FLOTTANT (droite) */
.social-hub {
  position: fixed;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 45;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 8px;
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  border: 1px solid var(--color-border-glow);
  border-radius: 100px;
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}
.social-hub a {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: var(--color-bg-deep);
  color: white;
  font-size: 17px;
  transition: transform 200ms ease, box-shadow 200ms ease, filter 200ms ease;
  position: relative;
}
.social-hub a:hover { transform: scale(1.15); filter: brightness(1.15); }
.social-hub a.fb  { background: #1877F2; }
.social-hub a.fb:hover  { box-shadow: 0 0 18px rgba(24, 119, 242, 0.7); }
.social-hub a.ig  { background: radial-gradient(circle at 30% 107%, #FED373 0%, #F15245 30%, #D92E7F 60%, #9B36B7 85%, #515ECF 100%); }
.social-hub a.ig:hover  { box-shadow: 0 0 18px rgba(228, 64, 95, 0.7); }
.social-hub a.tt  { background: #000000; position: relative; }
.social-hub a.tt::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: linear-gradient(135deg, transparent 40%, rgba(0, 242, 234, 0.4) 60%, rgba(255, 0, 80, 0.3) 100%);
  mix-blend-mode: screen;
  pointer-events: none;
}
.social-hub a.tt:hover  { box-shadow: 0 0 18px rgba(255, 0, 80, 0.7); }
.social-hub a.li  { background: #0A66C2; }
.social-hub a.li:hover  { box-shadow: 0 0 18px rgba(10, 102, 194, 0.7); }
.social-hub a.yt  { background: #FF0000; }
.social-hub a.yt:hover  { box-shadow: 0 0 18px rgba(255, 0, 0, 0.7); }
.social-hub a.wa  { background: #25D366; color: white; }
.social-hub a.wa:hover  { box-shadow: 0 0 22px rgba(37, 211, 102, 0.85); }
.social-hub a.mail { background: linear-gradient(135deg, #F5C659, #FF7A1A); color: var(--color-bg-deep); }
.social-hub a.mail:hover  { box-shadow: 0 0 18px rgba(245, 198, 89, 0.75); color: var(--color-bg-deep); }
.social-hub a.gmb { background: #ffffff; position: relative; overflow: hidden; }
.social-hub a.gmb svg { position: relative; z-index: 1; }
.social-hub a.gmb:hover { box-shadow: 0 0 18px rgba(66, 133, 244, 0.7); }
.social-hub .tooltip {
  position: absolute;
  right: 100%;
  margin-right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--color-bg-deep);
  color: var(--color-text);
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.05em;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
  border: 1px solid var(--color-border-glow);
}
.social-hub a:hover .tooltip { opacity: 1; }

/* Hub social etendu (chapeau magique) */
.social-hub-wrap { position: relative; }
.social-hub .hub-more-trigger {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--color-magenta), var(--color-violet));
  color: white;
  font-size: 20px;
  border: 1px solid var(--color-gold);
  cursor: pointer;
  transition: transform 200ms ease, box-shadow 200ms ease;
  position: relative;
}
.social-hub .hub-more-trigger:hover {
  transform: scale(1.12);
  box-shadow: 0 0 22px rgba(232, 64, 216, 0.7);
}
.social-hub .hub-more-trigger .tooltip {
  position: absolute;
  right: 100%;
  margin-right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--color-bg-deep);
  color: var(--color-text);
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.05em;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
  border: 1px solid var(--color-border-glow);
}
.social-hub .hub-more-trigger:hover .tooltip { opacity: 1; }
.social-hub-extended {
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%) scale(0.9);
  opacity: 0;
  pointer-events: none;
  transition: opacity 250ms ease, transform 250ms ease;
  background: color-mix(in srgb, var(--color-surface-hi) 95%, transparent);
  border: 1px solid var(--color-gold-lo);
  border-radius: 16px;
  padding: 16px;
  backdrop-filter: blur(12px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
  min-width: 280px;
}
.social-hub-wrap:hover .social-hub-extended,
.social-hub-wrap.open .social-hub-extended {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) scale(1);
}
.social-hub-extended::before {
  content: "Tous nos reseaux";
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 12px;
  text-align: center;
}
.social-hub-extended-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.social-hub-extended-grid a {
  width: auto; height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 4px;
  border-radius: 10px;
  background: transparent;
  color: var(--color-text-muted);
  font-size: 9.5px;
  font-weight: 500;
  text-align: center;
  transition: all 200ms ease;
  text-decoration: none;
  box-shadow: none;
}
.social-hub-extended-grid a:hover {
  background: var(--color-surface);
  color: var(--color-gold);
  transform: translateY(-2px);
  box-shadow: none;
}
.social-hub-extended-grid .ext-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: grid; place-items: center;
  color: white;
  flex-shrink: 0;
  transition: filter 200ms ease;
}
.social-hub-extended-grid a:hover .ext-icon { filter: brightness(1.15); }
.social-hub-extended-grid .ext-icon svg { width: 18px; height: 18px; fill: currentColor; }
.ext-icon.snap { background: #FFFC00; color: #000; }
.ext-icon.pin  { background: #E60023; }
.ext-icon.xtw  { background: #000000; }
.ext-icon.twitch { background: #9146FF; }
.ext-icon.threads { background: #000000; }
.ext-icon.bsky { background: #1185FE; }
.ext-icon.reddit { background: #FF4500; }
.ext-icon.medium { background: #000000; }
.ext-icon.tele { background: #0088CC; }
.ext-icon.disc { background: #5865F2; }
.ext-icon.news { background: linear-gradient(135deg, #F5C659, #FF7A1A); color: var(--color-bg-deep); }

.social-hub-toggle {
  display: none;
  position: fixed;
  right: 16px;
  top: 50%;
  z-index: 46;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-magenta), var(--color-violet));
  border: 1px solid var(--color-gold);
  color: white;
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 0 20px rgba(232, 64, 216, 0.5);
}

/* ═══ MOBILE: FAB unique ═══ */
@media (max-width: 720px) {
  .social-hub {
    flex-direction: column;
    right: 12px;
    top: auto;
    bottom: 140px;
    transform: none;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    gap: 0;
  }
  .social-hub > a, .social-hub > .social-hub-wrap { display: none; }
  .social-hub::before {
    content: "🌐";
    display: grid; place-items: center;
    width: 48px; height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-violet), var(--color-magenta));
    border: 2px solid var(--color-gold);
    font-size: 22px;
    box-shadow: 0 4px 20px rgba(232, 64, 216, 0.5);
    cursor: pointer;
  }
  .social-hub.open {
    background: rgba(10, 5, 24, 0.95);
    backdrop-filter: blur(20px);
    position: fixed;
    inset: 0;
    padding: 80px 24px 24px;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    align-content: start;
    z-index: 100;
    overflow-y: auto;
    border-radius: 0;
  }
  .social-hub.open::before {
    content: "✕";
    position: absolute;
    top: 20px; right: 20px;
    background: var(--color-surface);
    border: 1px solid var(--color-border-glow);
    width: 40px; height: 40px;
    font-size: 18px;
  }
  .social-hub.open > a, .social-hub.open > .social-hub-wrap {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px;
    width: auto; height: auto;
  }
  .social-hub.open > a::after {
    content: attr(aria-label);
    font-size: 10px;
    color: var(--color-text-muted);
    font-family: var(--font-mono);
    margin-top: 4px;
  }
}
