/* ---------- Sticky footer (shared, loaded on every page) ---------- */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}

body > footer.footer {
  margin-top: auto;
}

/* forum.html wraps everything in <div class="page"> — stretch it so its footer reaches the bottom too */
body > .page {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
}

body > .page > footer.footer {
  margin-top: auto;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer-logo {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.footer-links {
  align-items: center;
  gap: 12px;
}

.footer-mail {
  margin-right: 4px;
}

.footer-socials {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.social-link {
  position: relative;
  width: 36px;
  height: 36px;
  min-height: 36px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.9);
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.footer-links .social-link {
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
}

.social-link:hover {
  border-color: #e31b2f;
  background: #e31b2f;
  color: #ffffff;
  transform: translateY(-2px);
}

.social-link span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.social-link::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  background: currentColor;
  content: "";
  transform: translate(-50%, -50%);
  -webkit-mask: var(--social-icon) center / contain no-repeat;
  mask: var(--social-icon) center / contain no-repeat;
}

.social-instagram::before {
  --social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' ry='5' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='12' cy='12' r='4.1' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='17.3' cy='6.7' r='1.35' fill='black'/%3E%3C/svg%3E");
}

.social-facebook::before {
  --social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14.1 8.2V6.5c0-.8.5-1 1-1h2.1V2h-3c-3.3 0-4.4 2-4.4 4.1v2.1H7v3.7h2.8V22h4.3V11.9H17l.6-3.7h-3.5z'/%3E%3C/svg%3E");
}

.social-twitter::before {
  --social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13.9 10.6 21.3 2h-1.8l-6.4 7.4L8 2H2l7.8 11.4L2 22h1.8l6.8-7.9 5.4 7.9h6l-8.1-11.4Zm-2.4 2.8-.8-1.1L4.4 3.3h2.8l5 7.2.8 1.1 6.6 9.3h-2.8l-5.3-7.5Z'/%3E%3C/svg%3E");
}

.social-linkedin::before {
  --social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4.98 3.5C4.98 4.88 3.86 6 2.5 6S0 4.88 0 3.5 1.12 1 2.5 1s2.48 1.12 2.48 2.5ZM.4 8.1h4.2V23H.4V8.1Zm7.1 0h4v2h.1c.6-1.1 2-2.3 4.1-2.3 4.4 0 5.2 2.9 5.2 6.7V23h-4.2v-7.5c0-1.8 0-4.1-2.5-4.1s-2.9 1.9-2.9 4V23H7.5V8.1Z'/%3E%3C/svg%3E");
}

.social-youtube::before {
  width: 20px;
  height: 15px;
  --social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M23.5 6.2s-.2-1.7-1-2.4c-.9-1-1.9-1-2.4-1.1C16.7 2.5 12 2.5 12 2.5s-4.7 0-8.1.2c-.5.1-1.5.1-2.4 1.1-.8.7-1 2.4-1 2.4S.3 8.1.3 10v1.8c0 1.9.2 3.8.2 3.8s.2 1.7 1 2.4c.9 1 2.1 1 2.6 1.1 1.9.2 7.9.2 7.9.2s4.7 0 8.1-.3c.5 0 1.5-.1 2.4-1 .8-.7 1-2.4 1-2.4s.2-1.9.2-3.8V10c0-1.9-.2-3.8-.2-3.8ZM9.7 14.4V7.8l6.2 3.3-6.2 3.3Z'/%3E%3C/svg%3E");
}

.social-tba::before {
  content: "TBA";
  font-size: 10px;
  line-height: 1;
  width: auto;
  height: auto;
  background: transparent;
  -webkit-mask: none;
  mask: none;
  font-weight: 900;
}

.social-tiktok::before {
  --social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M16.6 2c.4 3 2.1 4.8 5.1 5v3.4c-1.8.2-3.4-.4-5-1.5v6.3c0 8-8.7 10.5-12.2 4.8-2.2-3.7-.9-10.1 6.4-10.4v3.6c-.6.1-1.3.2-1.9.5-1.8.7-2.8 2.3-2.5 4 .6 3.3 6.5 4.2 6-2.2V2h4.1Z'/%3E%3C/svg%3E");
}

/* ---------- Projects dropdown (shared, loaded on every page) ---------- */
.dropdown-menu.projects-menu {
  grid-template-columns: repeat(2, minmax(158px, 1fr));
  min-width: 360px;
  gap: 2px;
  padding: 10px;
}

.dropdown-menu.projects-menu a {
  padding: 9px 12px;
  font-size: 13px;
}

.dropdown-menu.projects-menu a.current {
  color: var(--white);
  font-weight: 800;
  background: rgba(227, 27, 47, 0.16);
}

@media (max-width: 760px) {
  .dropdown-menu.projects-menu {
    grid-template-columns: 1fr;
    min-width: 220px;
  }
}
