.site-footer {
  box-sizing: border-box;
  padding: 1rem 1.5rem 1.25rem;
  background: #f7f7f4;
  color: #17202c;
  font-family: 'Be Vietnam Pro', sans-serif;
}

.site-footer *, .site-footer *::before, .site-footer *::after { box-sizing: border-box; }
.site-footer :where(div, p, a, nav, button) {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: inherit;
}
.site-footer :where(a) { text-decoration: inherit; }
.site-footer a, .site-footer a:visited { color: inherit; }
.site-footer-panel, .site-footer-legal { width: min(100%, 65rem); margin-right: auto; margin-left: auto; }
.site-footer-panel { padding: 1rem 1.25rem; border: 1px solid #e5e4de; border-radius: 1.25rem; background: rgba(255,255,255,.82); box-shadow: 0 10px 26px -24px rgba(26,26,26,.3); }
.site-footer .footer-grid.slim { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; }
.site-footer-brand { display: flex; align-items: center; gap: .75rem; }
.footer-brand-logo { display: block; width: 2.5rem; max-width: none; height: 2.5rem; flex: 0 0 auto; border-radius: 1rem; object-fit: contain; box-shadow: 0 1px 2px rgba(23,32,44,.1); }
.site-footer-brand-name { color: #17202c; font-size: 1.125rem; font-weight: 800; letter-spacing: -.025em; line-height: 1.2; }
.site-footer-description { max-width: none; margin: .5rem 0 0; color: #59616c; font-size: .875rem; font-weight: 500; line-height: 1.6; white-space: nowrap; }
.site-footer-action { display: flex; justify-content: flex-end; }
.site-footer-cta { display: inline-flex; min-height: 2.875rem; align-items: center; justify-content: center; padding: .7rem 1.2rem; border: 1px solid #ffdc32; border-radius: 999px; background: #ffdc32; color: #17202c; font-size: .82rem; font-weight: 800; line-height: 1.2; text-decoration: none; box-shadow: 0 9px 20px -15px rgba(26,26,26,.42); }
.site-footer-legal { display: flex; align-items: center; justify-content: space-between; gap: .875rem 1.5rem; margin-top: .75rem; color: #79808a; font-size: .6875rem; font-weight: 700; letter-spacing: .1em; line-height: 1.45; text-transform: uppercase; }
.site-footer-legal > p {
  margin: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: inherit;
}
.site-footer-legal nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem 1.25rem; }
.site-footer-legal > nav { color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-transform: inherit; }
.site-footer-legal a { color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: underline; text-decoration-color: #cbd5e1; text-decoration-thickness: 1.5px; text-underline-offset: 5px; text-transform: inherit; }
.site-footer-cta:focus-visible, .site-footer-legal a:focus-visible { outline: 3px solid #17202c; outline-offset: 4px; }

@media (hover: hover) and (pointer: fine) {
  .site-footer-cta { transition: transform 220ms cubic-bezier(.16,1,.3,1), box-shadow 220ms ease, background-color 220ms ease; }
  .site-footer-cta:hover { transform: translateY(-2px); background: #ffe35b; box-shadow: 0 14px 26px -17px rgba(26,26,26,.42), 0 0 22px -12px rgba(255,220,50,.78); }
  .site-footer-legal a { transition: color 180ms ease, text-decoration-color 180ms ease; }
  .site-footer-legal a:hover { color: #59616c; text-decoration-color: #59616c; }
}

@media (max-width: 767px) {
  .site-footer { padding: .875rem 1rem 1.25rem; }
  .site-footer-panel { padding: 1rem; }
  .site-footer .footer-grid.slim, .site-footer-legal { align-items: flex-start; flex-direction: column; }
  .site-footer-description { white-space: normal; }
  .site-footer-action { justify-content: flex-start; margin-top: .25rem; }
  .site-footer-legal { gap: .75rem; }
  .site-footer-legal nav { width: 100%; justify-content: flex-start; gap: .65rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer-cta, .site-footer-legal a { transform: none !important; transition: none !important; }
}
