/* ENACTUS SLC — SITE-WIDE SHELL NORMALIZATION
   One footer system for every public page. Page-specific content is preserved,
   but width, alignment, type scale, padding and responsive behavior are shared. */
footer,
.site-footer{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:48px 0 32px !important;
  border-top:1px solid var(--line) !important;
  color:var(--muted) !important;
  font-size:11px !important;
  line-height:1.5 !important;
  box-sizing:border-box !important;
}
footer > .container,
footer > .footer-inner,
footer > .footer-grid,
.site-footer > .footer-inner{
  width:min(1240px,calc(100% - 64px)) !important;
  max-width:1240px !important;
  margin-inline:auto !important;
}
footer .footer-inner,
.site-footer .footer-inner{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:28px !important;
  min-height:54px !important;
}
footer .footer-grid{
  display:grid !important;
  grid-template-columns:1.5fr .8fr .8fr !important;
  gap:30px !important;
  align-items:start !important;
}
footer .footer-brand{
  width:auto !important;
  margin:0 !important;
}
footer .footer-brand strong{font:700 12px "Space Grotesk",sans-serif !important;color:var(--ink) !important}
footer .footer-brand span{font-size:11px !important;color:var(--muted) !important}
footer .footer-bottom{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:20px !important;
  margin-top:40px !important;
  padding-top:20px !important;
  border-top:1px solid var(--line) !important;
  font-size:11px !important;
  color:var(--muted) !important;
}
footer .admin-footer-link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:max-content !important;
  margin:18px auto 0 !important;
  color:var(--muted) !important;
  font:600 10px/1 "Space Grotesk",sans-serif !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
}
footer p,footer a{font-size:11px !important;color:var(--muted)}
footer h4{font:700 11px/1.2 "Space Grotesk",sans-serif !important;letter-spacing:.08em !important;margin-bottom:12px !important;text-transform:uppercase !important;color:var(--ink) !important}

/* Prevent a page-specific desktop menu from leaking into the laptop layout. */
@media (min-width:901px){
  .nav .menu,
  .nav > .menu,
  button.menu,
  .desktop-only-menu{display:none !important}
}

@media (max-width:900px){
  footer > .container,
  footer > .footer-inner,
  footer > .footer-grid,
  .site-footer > .footer-inner{width:min(760px,calc(100% - 40px)) !important}
  footer .footer-grid{grid-template-columns:1fr 1fr !important;gap:26px !important}
}
@media (max-width:600px){
  footer{padding:34px 0 25px !important}
  footer > .container,
  footer > .footer-inner,
  footer > .footer-grid,
  .site-footer > .footer-inner{width:calc(100% - 32px) !important}
  footer .footer-inner{display:flex !important;flex-direction:column !important;align-items:flex-start !important;gap:8px !important}
  footer .footer-grid{grid-template-columns:1fr 1fr !important;gap:22px 18px !important}
  footer .footer-bottom{display:flex !important;flex-direction:column !important;align-items:flex-start !important;gap:5px !important;margin-top:30px !important}
  footer .admin-footer-link{margin:18px auto 0 !important}
}
@media (max-width:380px){
  footer .footer-grid{grid-template-columns:1fr !important}
}


/* ============================================================
   NON-HOME PUBLIC FOOTERS — FINAL COMPACT TWO-LINE SYSTEM
   Home page is intentionally excluded via .footer.
   ============================================================ */
footer:not(.footer){
  width:min(1240px,calc(100% - 64px)) !important;
  max-width:1240px !important;
  margin:0 auto !important;
  padding:28px 0 24px !important;
  border-top:1px solid var(--line) !important;
  color:var(--muted) !important;
  font-size:11px !important;
  line-height:1.55 !important;
  display:block !important;
  box-sizing:border-box !important;
}

footer:not(.footer) > .container,
footer:not(.footer) > .footer-inner{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

footer:not(.footer) > span{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}

footer:not(.footer) > span + span{
  margin-top:5px !important;
}

@media (max-width:900px){
  footer:not(.footer){
    width:calc(100% - 40px) !important;
    max-width:none !important;
    padding:28px 0 24px !important;
  }
}

@media (max-width:600px){
  footer:not(.footer){
    width:calc(100% - 32px) !important;
    max-width:none !important;
    padding:28px 0 24px !important;
    font-size:11px !important;
  }
}

@media (max-width:380px){
  footer:not(.footer){
    width:calc(100% - 28px) !important;
  }
}

/* Smooth CMS hydration: cards remain stable when fresh data arrives. */
.cms-stable-hydration .achievement-card,
.cms-stable-hydration .project-card,
.cms-stable-hydration [data-achievement-card],
.cms-stable-hydration [data-project-card] {
  transition-property: box-shadow, border-color, background-color !important;
}
.cms-stable-hydration img {
  content-visibility: auto;
}

/* FINAL CMS hydration guard: no visible second paint/reflow of cards. */
.cms-hydrating,
.cms-hydrating * {
  animation: none !important;
  transition: none !important;
}
.cms-hydrating {
  contain: layout paint;
}
.cms-hydrating img {
  opacity: 1 !important;
  transform: none !important;
}


/* Android tap highlight only */
html { -webkit-tap-highlight-color: transparent; }
