/* ================================================================
   FOOTER
   ================================================================ */

.site-footer { position: relative; overflow: hidden; background: var(--utl-purple-deep); color: var(--utl-paper); }
.dot-field {
  pointer-events: none; position: absolute; inset: 0; opacity: .25;
  background-image: radial-gradient(rgba(0,153,254,.16) 1px, transparent 1px);
  background-size: 26px 26px;
}

.footer-action-strip { position: relative; border-bottom: 1px solid rgba(255,255,255,.15); }
.footer-action-grid { max-width: 1440px; margin: 0 auto; display: grid; gap: 2.5rem; padding: 3.5rem 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 992px) { .footer-action-grid { grid-template-columns: 1fr 1fr; padding: 3.5rem 2.5rem; } }
.footer-action-col.has-rule { }
@media (min-width: 992px) { .footer-action-col.has-rule { border-right: 1px solid rgba(255,255,255,.15); padding-right: 2.5rem; } }
.footer-action-heading { margin-top: .75rem; max-width: 28rem; font-size: clamp(1.4rem, 2.2vw, 2rem); font-weight: 600; line-height: 1.1; }
.footer-demo-btn {
  margin-top: 1.5rem; display: inline-flex; align-items: center; gap: .75rem;
  background: var(--utl-green); padding: .875rem 1.75rem; font-size: .875rem; font-weight: 600; color: var(--utl-ink);
  transition: background-color .2s ease, color .2s ease;
  border: 0;
}
.footer-demo-btn:hover { background: var(--utl-purple) !important; color: var(--utl-paper) !important; }
.footer-benchmark-links { margin-top: 1.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; }
.footer-benchmark-link {
  display: inline-flex; align-items: center; gap: .5rem;
  border-bottom: 1px solid rgba(255,255,255,.6); padding-bottom: 2px;
  font-size: .875rem; font-weight: 500; color: var(--utl-paper);
  transition: color .2s ease, border-color .2s ease;
}
.footer-benchmark-link:hover { color: var(--utl-green) !important; border-color: var(--utl-green) !important; }

.footer-link-field { position: relative; max-width: 1440px; margin: 0 auto; padding: 3.5rem 1.25rem; }
@media (min-width: 992px) { .footer-link-field { padding: 3.5rem 2.5rem; } }
.footer-link-grid { display: grid; gap: 3rem; grid-template-columns: 1fr; }
@media (min-width: 992px) { .footer-link-grid { grid-template-columns: 1fr 2.6fr; } }

.footer-brand-row { display: flex; align-items: center; gap: .75rem; }
.footer-brand-row img{
  width: clamp(180px, 22vw, 220px);
    height: auto;
    display: block;
}   
.footer-mark {
  display: inline-flex; align-items: center; justify-content: center;
  height: 2.25rem; width: 2.25rem; border: 1px solid rgba(255,255,255,.3);
  font-size: .6875rem; font-weight: 700; letter-spacing: .04em; color: var(--utl-paper);
}
.footer-brand-name { font-size: 1.125rem; font-weight: 600; letter-spacing: -0.025em; color: var(--utl-paper); }
.footer-statement { margin-top: 1rem; max-width: 20rem; font-size: .875rem; line-height: 1.6; color: rgba(255,255,255,.7); }
.footer-hq { margin-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.25rem; }
.footer-hq-address { margin-top: .75rem; font-size: .875rem; line-height: 1.6; color: rgba(255,255,255,.6); }
.footer-hq-address > div { margin-bottom: .25rem; }
.footer-hq-address a { transition: color .2s ease; }
.footer-hq-address a:hover { color: var(--utl-green) !important; }
.footer-founded { margin-top: .75rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.45); }
.footer-social { margin-top: 1.5rem; display: flex; gap: 1.25rem; font-size: .875rem; color: rgba(255,255,255,.6); }
.footer-social span { cursor: default; transition: color .2s ease; }
.footer-social span:hover { color: var(--utl-green) !important; }

.footer-cols-desktop { display: none; gap: 2rem; }
@media (min-width: 768px) { .footer-cols-desktop { display: grid; grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .footer-cols-desktop { grid-template-columns: repeat(6, 1fr); } }
.footer-col ul { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .625rem; }
.flink { font-size: .875rem; line-height: 1.6; color: rgba(255,255,255,.7); transition: color .2s ease; }
.flink:not(.is-static):hover { color: var(--utl-green) !important; }
.flink.is-static { color: rgba(255,255,255,.45); cursor: default; }

.footer-cols-mobile { display: block; }
@media (min-width: 768px) { .footer-cols-mobile { display: none; } }
.footer-acc-group { border-bottom: 1px solid rgba(255,255,255,.15); }
.footer-acc-btn { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 1rem 1rem; text-align: left; }
.footer-acc-btn .plus { font-size: .75rem; transition: transform .3s ease; }
.footer-acc-group.is-open .footer-acc-btn .plus { transform: rotate(45deg); }
.footer-acc-body { display: none; }
.footer-acc-group.is-open .footer-acc-body { display: block; }
.footer-acc-body ul { list-style: none; margin: 0; padding: 0 0 1.25rem; display: flex; flex-direction: column; gap: .625rem; }

.footer-bottom { margin-top: 3.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(255,255,255,.2); padding-top: 1.5rem; }
.legal-links { display: flex; flex-wrap: wrap; gap: 1.25rem; font-size: .75rem; color: rgba(255,255,255,.5); }
.legal-links a { color: inherit; transition: color .2s ease; }
.legal-links a:hover { color: rgba(255,255,255,.8) !important; }
.footer-bottom p { font-size: .75rem; color: rgba(255,255,255,.5); margin: 0; }