/* ===== FOOTER ===== */
.footer{
  position:relative;
  margin-top:auto;
  padding-top:3rem;
  margin-bottom:0;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding-left:0;
  padding-right:0;
  padding-bottom:calc(var(--padding) + 1rem);
  border-top:1px solid var(--color-border);
  background:var(--color-bg);
  transition:border var(--transition);
}

.footer__inner{
  max-width:100%;
  margin:0 auto;
  display:grid;
  gap:2rem;
  grid-template-columns:1fr;
  padding-left:var(--padding);
  padding-right:var(--padding);
}

/* Mobile: reorder sections - Partners/Orgs first, then Logo */
.footer__section--logo{
  order:3;
}

.footer__section:nth-child(2){ /* Partners */
  order:1;
}

.footer__section:nth-child(3){ /* Organizations */
  order:2;
}

/* Tablet: 2 columns - Logo/Legal left, Partners/Orgs right */
@media(min-width:40rem){
  .footer__inner{
    grid-template-columns:1fr 1fr;
    gap:0 2.5rem;
  }

  /* Reset order and position for 2-column layout */
  .footer__section--logo{
    order:0;
    grid-column:1;
  }

  .footer__section:nth-child(2),
  .footer__section:nth-child(3){
    order:0;
    grid-column:2;
  }

  /* Add spacing back for logo section */
  .footer__section--logo{
    margin-bottom:1.5rem;
  }

  /* Reduce gap between Partners and Orgs in right column */
  .footer__section:nth-child(2){
    margin-bottom:0;
  }

  .footer__section:nth-child(3){
    margin-top:-0.75rem;
  }
}

/* LG: 1024px+ - 3 columns with natural flow */
@media(min-width:64rem){
  .footer__inner{
    grid-template-columns:1fr 1fr 1fr;
    gap:3rem;
  }

  /* Reset everything for natural 3-column flow */
  .footer__section--logo,
  .footer__section:nth-child(2),
  .footer__section:nth-child(3){
    order:0;
    grid-column:auto;
    margin-top:0;
    margin-bottom:0;
  }
}

.footer__section{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.footer__section--logo img{
  max-width:280px;
  width:100%;
  height:auto;
  display:block;
  opacity:.85;
  transition:opacity var(--transition),transform var(--transition);
}

.footer__section--logo img:hover{
  opacity:1;
  transform:scale(1.02);
}

.footer__heading{
  font-size:.85rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--color-text-dim);
  margin:0;
}

.footer__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.footer__list li{
  font-size:.95rem;
  font-weight:500;
  line-height:1.5;
}

.footer__list a{
  display:inline;
  color:var(--color-text);
  text-decoration:none;
  transition:color var(--transition);
}

.footer__list a:hover{
  color:var(--color-accent);
}

.footer__legal{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  font-size:.8rem;
  font-weight:600;
  color:var(--color-text-dim);
  align-items:center;
  text-transform:uppercase;
  letter-spacing:.15em;
  margin-top:.5rem;
  padding-top:1.25rem;
}

.footer__copyright{
  white-space:nowrap;
  color:var(--color-text-dim);
  font-weight:700;
}

.footer__legal-link{
  color:var(--color-text-dim);
  text-decoration:none;
  transition:color var(--transition);
}

.footer__legal-link:hover{
  color:var(--color-text);
}

.footer__credit-bar{
  margin-top:1rem;
  text-align:left;
}

.footer__credit{
  display:flex;
  flex-direction:column;
  gap:.5rem;
  color:var(--color-text-dim);
  opacity:.85;
  font-weight:500;
  font-size:.85rem;
}

.footer__credit-link{
  color:var(--color-text-dim);
  text-decoration:none;
  transition:color var(--transition),opacity var(--transition);
  opacity:.7;
}

.footer__credit-link:hover{
  color:var(--color-accent);
  opacity:1;
}

.footer__version-info{
  font-size:.7rem;
  opacity:.85;
  font-weight:400;
  letter-spacing:.02em;
}

.footer__commit-link{
  color:inherit;
  text-decoration:none;
  transition:color var(--transition),opacity var(--transition);
}

.footer__commit-link:hover{
  color:var(--color-accent);
  opacity:1;
}

.footer__arrow{
  font-weight:700;
  font-size:.85em;
  display:inline;
  opacity:.5;
  transition:opacity var(--transition);
  margin-left:.25em;
}

.footer__list a:hover .footer__arrow{
  opacity:.8;
}

/* Hide overlay credit bar on mobile (show the one in logo column) */
.footer__credit-bar--overlay{
  display:none;
}

/* Bottom Logo Graphic */
.footer__bottom-logo{
  margin-top:4rem;
  padding-top:0;
  padding-left:max(var(--padding), calc((100vw - 1200px) / 2));
  padding-right:max(var(--padding), calc((100vw - 1200px) / 2));
  display:none; /* Hidden by default on mobile/tablet */
  justify-content:center;
  align-items:flex-start;
  overflow:hidden;
  max-height:150px;
  position:relative;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  width:100vw;
}

.footer__logo-graphic{
  width:100%;
  max-width:1200px;
  height:auto;
  opacity:.35;
  transition:opacity var(--transition);
  filter:brightness(1.2);
}

.footer__logo-graphic--light{
  display:none;
}

@media(min-width:40rem){
  .footer__bottom-logo{
    margin-top:8rem;
    max-height:180px;
  }
}

@media(min-width:64rem){
  .footer__bottom-logo{
    margin-top:10rem;
    max-height:210px;
  }
}

@media(min-width:80rem){
  /* Restore horizontal padding on large desktop */
  .footer{
    padding-left:max(var(--padding), calc((100vw - 1200px) / 2));
    padding-right:max(var(--padding), calc((100vw - 1200px) / 2));
  }

  .footer__inner{
    padding-left:0;
    padding-right:0;
  }

  /* Show bottom logo on large desktop */
  .footer__bottom-logo{
    display:flex;
    margin-top:12rem;
  }

  /* Hide credit bar from logo column on large desktop */
  .footer__section--logo .footer__credit-bar:not(.footer__credit-bar--overlay){
    display:none;
  }

  /* Show and position overlay credit bar at bottom-left */
  .footer__credit-bar--overlay{
    display:block;
    position:absolute;
    bottom:2rem;
    left:3rem;
    margin:0;
    z-index:10;
  }

  .footer__credit-bar--overlay .footer__credit{
    opacity:1;
  }
}

/* Light Theme */
html[data-theme="light"] .footer{
  background:var(--color-bg);
  border-color:var(--color-border);
}

html[data-theme="light"] .footer__section--logo img{
  opacity:.75;
}

html[data-theme="light"] .footer__section--logo img:hover{
  opacity:1;
}

html[data-theme="light"] .footer__heading{
  color:var(--color-text-dim);
}

html[data-theme="light"] .footer__list a{
  color:var(--color-text);
}

html[data-theme="light"] .footer__list a:hover{
  color:var(--color-accent);
}

html[data-theme="light"] .footer__copyright{
  color:var(--color-text-dim);
}

html[data-theme="light"] .footer__legal{
  color:var(--color-text-dim);
  border-top-color:rgba(0,0,0,.06);
}

html[data-theme="light"] .footer__legal-link{
  color:var(--color-text-dim);
}

html[data-theme="light"] .footer__legal-link:hover{
  color:var(--color-text);
}

html[data-theme="light"] .footer__credit-bar{
  border-top-color:rgba(0,0,0,.06);
}

html[data-theme="light"] .footer__credit{
  color:var(--color-text-dim);
  opacity:.85;
}

html[data-theme="light"] .footer__credit-link{
  color:var(--color-text-dim);
}

html[data-theme="light"] .footer__credit-link:hover{
  color:var(--color-accent);
}

html[data-theme="light"] .footer__version-info{
  opacity:.85;
}

html[data-theme="light"] .footer__commit-link:hover{
  color:var(--color-accent);
}

html[data-theme="light"] .footer__logo-graphic--dark{
  display:none;
}

html[data-theme="light"] .footer__logo-graphic--light{
  display:block;
}
