/*
 * Footer v21
 * This file is loaded after the legacy stylesheets and is the single
 * authoritative layout layer for the public footer.
 */
.site-footer{
  display:block;
  width:100%;
  max-width:none;
  margin:56px 0 0;
  padding:30px 0 20px;
  border-top:1px solid color-mix(in srgb,var(--border) 84%,var(--primary) 16%);
  color:var(--muted);
  text-align:start;
}

.site-footer__inner{position:relative;z-index:1}

.site-footer__main{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(240px,.85fr) 104px;
  align-items:center;
  gap:clamp(22px,4vw,48px);
  width:100%;
}

.site-footer__brand,
.footer-contact-brief,
.footer-trust{
  min-width:0;
  width:auto!important;
  flex:none!important;
  margin:0;
}

.site-footer__brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  max-width:520px;
}

.footer-brand-lockup{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  color:var(--text);
}

.footer-brand-lockup img{
  width:58px;
  height:58px;
  flex:0 0 58px;
  object-fit:contain;
}

.site-footer__brand p{
  margin:0;
  max-width:520px;
  line-height:1.9;
}

.footer-contact-brief{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:start;
  gap:8px;
  color:var(--text);
}

.footer-contact-brief h3,
.footer-contact-line{
  width:auto;
  margin:0;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px;
  text-align:start!important;
}

.footer-contact-brief h3{
  color:var(--primary);
  font-size:.98rem;
}

.footer-contact-line{
  color:var(--muted)!important;
  line-height:1.75;
}

.footer-contact-line>i,
.footer-contact-brief h3>i{
  width:20px;
  flex:0 0 20px;
  text-align:center;
  color:var(--primary);
}

.footer-contact-value{
  display:inline-block;
  direction:ltr;
  unicode-bidi:isolate;
  white-space:nowrap;
  letter-spacing:.015em;
}

.footer-trust{
  display:flex;
  align-items:center;
  justify-content:center;
  align-self:center!important;
}

.footer-trust a{
  width:86px;
  height:86px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:22px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}

.footer-trust img{
  width:76px;
  height:76px;
  object-fit:contain;
}

.site-footer__separator{
  display:block;
  width:100%!important;
  height:2px!important;
  margin:24px 0 16px!important;
  border:0;
  border-radius:999px;
  background:linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb,var(--border) 72%,var(--primary) 28%) 8%,
    color-mix(in srgb,var(--border) 48%,var(--primary) 52%) 50%,
    color-mix(in srgb,var(--border) 72%,var(--primary) 28%) 92%,
    transparent 100%
  )!important;
  opacity:1!important;
  box-shadow:0 1px 0 color-mix(in srgb,var(--surface) 70%,transparent);
}

.site-footer__bottom{
  display:flex;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  width:100%;
  padding:0!important;
  border:0!important;
  text-align:center!important;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.8;
}

.site-footer__bottom p{
  width:100%;
  margin:0;
}

.footer-copyright{
  max-width:980px;
}

.footer-credits{
  font-size:.7rem!important;
  opacity:.9;
}

.site-footer__bottom a{
  color:var(--primary);
  font-weight:950;
}

html[data-theme="dark"] .site-footer__separator{
  background:linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb,var(--border) 65%,var(--accent) 35%) 8%,
    color-mix(in srgb,var(--border) 36%,var(--accent) 64%) 50%,
    color-mix(in srgb,var(--border) 65%,var(--accent) 35%) 92%,
    transparent 100%
  )!important;
}

@media(max-width:820px){
  .site-footer__main{
    grid-template-columns:minmax(0,1fr) minmax(220px,.8fr) 92px;
    gap:22px;
  }
}

@media(max-width:640px){
  .site-footer{
    margin-top:34px!important;
    padding:18px 0 14px!important;
    text-align:center!important;
  }

  .site-footer__main{
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    justify-items:center;
    gap:14px;
  }

  .site-footer__brand,
  .footer-contact-brief,
  .footer-trust{
    width:100%!important;
    min-height:0!important;
    max-height:none!important;
    flex:none!important;
  }

  .site-footer__brand{
    gap:5px!important;
    max-width:none;
  }

  .site-footer__brand{
    align-items:stretch!important;
  }

  html[dir="rtl"] .site-footer__brand{
    text-align:right!important;
  }

  html[dir="ltr"] .site-footer__brand{
    text-align:left!important;
  }

  .footer-brand-lockup{
    width:100%;
    justify-content:flex-start!important;
    gap:8px!important;
  }

  .footer-brand-lockup img{
    width:52px;
    height:52px;
    flex-basis:52px;
  }

  .site-footer__brand p{
    width:100%;
    max-width:none;
    line-height:1.75;
  }

  .footer-contact-brief{
    align-items:center!important;
    text-align:center!important;
    gap:5px!important;
  }

  /* Mobile-only divider between the brand introduction and contact block. */
  .footer-contact-brief::before{
    content:"";
    display:block;
    width:min(100%,390px);
    height:1px;
    flex:0 0 1px;
    margin:0 auto 8px;
    border-radius:999px;
    background:linear-gradient(
      90deg,
      transparent 0%,
      color-mix(in srgb,var(--border) 74%,var(--primary) 26%) 8%,
      color-mix(in srgb,var(--border) 48%,var(--primary) 52%) 50%,
      color-mix(in srgb,var(--border) 74%,var(--primary) 26%) 92%,
      transparent 100%
    );
    opacity:.95;
  }

  html[data-theme="dark"] .footer-contact-brief::before{
    background:linear-gradient(
      90deg,
      transparent 0%,
      color-mix(in srgb,var(--border) 66%,var(--accent) 34%) 8%,
      color-mix(in srgb,var(--border) 38%,var(--accent) 62%) 50%,
      color-mix(in srgb,var(--border) 66%,var(--accent) 34%) 92%,
      transparent 100%
    );
  }

  .footer-contact-brief h3,
  .footer-contact-line{
    width:auto!important;
    justify-content:center!important;
    text-align:center!important;
  }

  .footer-trust{
    align-self:center!important;
    justify-content:center!important;
  }

  .footer-trust a{
    width:74px!important;
    height:74px!important;
    border-radius:18px!important;
  }

  .footer-trust img{
    width:66px!important;
    height:66px!important;
  }

  .site-footer__separator{
    height:2px!important;
    margin:14px 0 10px!important;
  }

  .site-footer__bottom{
    gap:2px!important;
    line-height:1.7!important;
  }

  .footer-copyright{
    max-width:410px;
  }

  .footer-credits{
    font-size:.66rem!important;
  }
}


/* v41: quieter contact block with fixed logical alignment */
.site-footer__brand,.footer-contact-brief,.footer-trust{text-align:start!important}
.footer-contact-brief{gap:12px!important;align-items:stretch!important}
.footer-contact-heading{display:block!important;width:100%;padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--border) 76%,transparent);text-align:start!important}
.footer-contact-heading h3{margin:0;color:var(--text);font-size:.94rem;line-height:1.4;text-align:start!important}
.footer-contact-heading p{margin:4px 0 0;color:var(--muted);font-size:.68rem;line-height:1.5;text-align:start!important}
.footer-contact-lines{display:flex;flex-direction:column;gap:0;width:100%}
.footer-contact-line{
  width:100%!important;
  display:grid!important;
  grid-template-columns:20px 64px minmax(0,1fr);
  align-items:center!important;
  gap:8px!important;
  min-height:52px;
  padding:8px 0;
  border-bottom:1px dashed color-mix(in srgb,var(--border) 68%,transparent);
  color:var(--text)!important;
  text-align:start!important;
}
.footer-contact-line:last-child{border-bottom:0}
.footer-contact-line>i{width:20px!important;margin-top:0;color:var(--primary);text-align:center;align-self:center}
.footer-contact-label{display:flex;align-items:center;color:var(--muted);font-size:.68rem;font-weight:850;line-height:1.5}
.footer-contact-line strong,.footer-contact-line .footer-contact-value{display:flex;align-items:center;font-size:.76rem;font-weight:850;line-height:1.65;color:var(--text)}
html[dir="rtl"] .footer-contact-line strong{text-align:right}
html[dir="ltr"] .footer-contact-line strong{text-align:left}
.footer-contact-more{display:none!important}
@media(max-width:640px){.footer-contact-line{grid-template-columns:20px 58px minmax(0,1fr)}}
