/* Shared footer component. Self-contained so the homepage, service pages and blog
   can all load it alongside their own stylesheet without inheriting each other's rules. */
.global-footer{
  display:block;
  padding-inline:0;
  text-align:left;
  --gf-ink:#151713;
  --gf-soft:#62675b;
  --gf-line:#d6d9cd;
  --gf-paper:#f4f4ef;
  width:min(calc(100% - 2.5rem),82rem);
  margin-inline:auto;
  padding-block:clamp(2.5rem,5vw,4rem) 1.5rem;
  border-top:1px solid var(--gf-line);
  color:var(--gf-ink);
  font-family:'Outfit','Segoe UI',system-ui,sans-serif;
  font-size:.875rem;
  line-height:1.6;
}
/* Collection pages style bare nav/p/h2 elements (one sets nav{position:fixed}), which would
   otherwise scatter this footer. :where() keeps the reset at .global-footer specificity so the
   rules below still win. */
.global-footer :where(nav,ul,li,p,h2,h3){
  position:static;inset:auto;z-index:auto;
  margin:0;padding:0;
  display:block;
  background:none;border:0;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;
  color:inherit;text-align:left;text-transform:none;letter-spacing:normal;
}
.global-footer-inner{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) repeat(4,minmax(0,1fr));
  gap:2.5rem 2rem;
  align-items:start;
}
.global-footer p{margin:0}
.footer-brand{font-size:1rem;font-weight:500;letter-spacing:-.02em}
.footer-role,.footer-place{margin-top:.4rem;color:var(--gf-soft);font-size:.8125rem}
.footer-role a{color:inherit;text-decoration:underline;text-underline-offset:.2em}
.footer-role a:hover{color:var(--gf-ink)}
.footer-group-title{
  margin:0 0 .9rem;
  font-family:'Space Mono',Consolas,monospace;
  font-size:.65rem;
  font-weight:400;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--gf-soft);
}
.footer-group ul{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.footer-group a{
  display:inline-flex;
  align-items:center;
  min-height:2.25rem;
  color:inherit;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.footer-group a:hover{text-decoration:underline;text-underline-offset:.22em}
.global-footer-base{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.5rem 1.5rem;
  margin-top:clamp(2.5rem,4vw,3.5rem);
  padding-top:1.25rem;
  border-top:1px solid var(--gf-line);
  color:var(--gf-soft);
  font-size:.78rem;
}
.global-footer-base a{
  display:inline-flex;
  align-items:center;
  min-height:2.25rem;
  color:inherit;
  text-decoration:none;
}
.global-footer-base a:hover{color:var(--gf-ink);text-decoration:underline;text-underline-offset:.22em}

@media(min-width:1440px){.global-footer{width:min(calc(100% - 8rem),82rem)}}
@media(max-width:1000px){
  .global-footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
  .footer-identity{grid-column:1/-1}
}
@media(max-width:560px){
  .global-footer{width:calc(100% - 2.5rem)}
  .global-footer-inner{grid-template-columns:minmax(0,1fr);gap:1.75rem}
  .global-footer-base{flex-direction:column;align-items:flex-start;gap:0}
}
@media print{.global-footer{display:none}}
