.s-site-footer{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  --sf-line:color-mix(in srgb,var(--c-bg) 16%,transparent);
  --sf-muted:color-mix(in srgb,var(--c-bg) 68%,var(--c-secondary));
  --sf-soft:color-mix(in srgb,var(--c-bg) 55%,var(--c-secondary));
  background:linear-gradient(160deg,var(--c-secondary) 0%,color-mix(in srgb,var(--c-secondary) 38%,black) 100%);
  color:var(--sf-muted);
  font-family:var(--font-body);
  font-size:.9375rem;
  line-height:1.75;
  padding-block:80px 72px;
}
.s-site-footer a{color:inherit;text-decoration:none}
.s-site-footer a:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px;border-radius:6px}

.sf-swoosh{
  position:absolute;
  inset-block-end:0;
  inset-inline-end:0;
  width:min(560px,58%);
  z-index:0;
  pointer-events:none;
  line-height:0;
  opacity:.62;
}
.sf-swoosh svg{display:block;width:100%;height:auto}

.sf-inner{position:relative;z-index:1}

.sf-grid{display:grid;grid-template-columns:1.55fr 1fr 1fr .95fr 1.2fr}

.sf-col{padding-inline:28px;min-width:0}
.sf-col:first-child{padding-inline-start:0}
.sf-col:last-child{padding-inline-end:0}
.sf-col + .sf-col{border-inline-start:1px solid var(--sf-line)}

/* Brand block */
.sf-logo{
  display:inline-flex;
  align-items:center;
  background:color-mix(in srgb,var(--c-bg) 96%,var(--c-primary));
  border-radius:var(--radius);
  padding:12px 18px;
  margin-block-end:24px;
  box-shadow:0 12px 32px color-mix(in srgb,black 28%,transparent);
}
.sf-company{
  font-family:var(--font-head);
  font-size:1.0625rem;
  font-weight:700;
  color:var(--c-bg);
  margin:0 0 10px;
  letter-spacing:.01em;
}
.sf-legal{
  font-size:.8125rem;
  color:var(--sf-soft);
  margin:0 0 6px;
  max-width:36ch;
}

/* Social */
.sf-social{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  list-style:none;
  margin:26px 0 0;
  padding:0;
}
.sf-social-link.sf-social-link{
  width:44px;
  height:44px;
  border:1px solid var(--sf-line);
  background:color-mix(in srgb,var(--c-bg) 7%,transparent);
  color:var(--c-bg);
  transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s ease;
}
.sf-social-link.sf-social-link:hover{
  background:var(--c-primary);
  border-color:var(--c-primary);
  color:var(--c-bg);
  transform:translateY(-2px);
}

/* Column headings */
.sf-title{
  font-family:var(--font-head);
  font-size:.9375rem;
  font-weight:700;
  letter-spacing:.09em;
  color:var(--c-bg);
  margin:0 0 14px;
  line-height:1.4;
}

/* Link lists */
.sf-links{list-style:none;margin:0;padding:0;display:grid;gap:0}
.sf-links a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:.9375rem;
  color:var(--sf-muted);
  transition:color .2s ease;
}
.sf-links a:hover{color:var(--c-accent)}

.sf-links-dash li{position:relative;padding-inline-start:16px}
.sf-links-dash li::before{
  content:"–";
  position:absolute;
  inset-inline-start:0;
  top:0;
  line-height:44px;
  color:color-mix(in srgb,var(--c-accent) 75%,var(--c-bg));
  font-size:.9rem;
}

.sf-offices li{
  position:relative;
  display:flex;
  align-items:center;
  min-height:44px;
  padding-inline-start:16px;
  font-size:.9375rem;
  color:var(--sf-muted);
}
.sf-offices li::before{
  content:"";
  position:absolute;
  inset-inline-start:0;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--c-accent);
}

/* Contact column */
.sf-contact-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sf-contact-list li{display:flex;align-items:center;gap:12px;min-width:0}
.sf-contact-list a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--c-bg);
  font-size:.9375rem;
  overflow-wrap:anywhere;
  transition:color .2s ease;
}
.sf-contact-list a:hover{color:var(--c-accent)}
.sf-ic.sf-ic{
  width:34px;
  height:34px;
  flex:none;
  border:1px solid var(--sf-line);
  background:color-mix(in srgb,var(--c-bg) 8%,transparent);
  color:var(--c-accent);
}

/* Tablet */
@media (max-width:900px){
  .s-site-footer{padding-block:64px 56px}
  .sf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 32px}
  .sf-col{padding-inline:0}
  .sf-col + .sf-col{border-inline-start:0}
  .sf-brand{grid-column:1 / -1}
  .sf-legal{max-width:56ch}
}

/* Mobile */
@media (max-width:600px){
  .s-site-footer{padding-block:52px 44px;font-size:.9rem}
  .sf-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .sf-title{margin-block-end:8px}
  .sf-logo{padding:10px 14px;margin-block-end:18px}
  .sf-company{font-size:1rem}
  .sf-social{margin-block-start:20px}
  .sf-swoosh{width:82%;opacity:.45}
}
