.as-footer {
  --footer-bg: #071116;
  --footer-panel: #0c1a20;
  --footer-text: #f4f7f8;
  --footer-muted: #aab8bf;
  --footer-line: rgba(215, 230, 235, .15);
  --footer-accent: #b5f500;
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--footer-bg);
  color: var(--footer-text);
  font-family: inherit;
}

.as-footer *,
.as-footer *::before,
.as-footer *::after { box-sizing: border-box; }

.as-footer a { color: inherit; text-decoration: none; }
.as-footer a:focus-visible { outline: 2px solid var(--footer-accent); outline-offset: 4px; }

.as-footer-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-top: 1px solid var(--footer-line);
  border-bottom: 1px solid var(--footer-line);
  background:
    radial-gradient(ellipse at 86% 45%, rgba(181, 245, 0, .13), transparent 34%),
    linear-gradient(112deg, #102018, #0b171c 53%, #101d1c);
  background-size: 140% 140%;
  animation: as-footer-glow 18s ease-in-out infinite alternate;
}

@keyframes as-footer-glow {
  from { background-position: 0% 50%; }
  to { background-position: 100% 50%; }
}

.as-footer-cta::after {
  position: absolute;
  z-index: -1;
  right: 7%;
  top: -80%;
  width: 460px;
  height: 460px;
  border: 1px solid rgba(181, 245, 0, .13);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(181, 245, 0, .025), 0 0 0 58px rgba(181, 245, 0, .02);
  content: "";
  pointer-events: none;
}

.as-footer-cta-inner,
.as-footer-main {
  width: min(1200px, calc(100% - 64px));
  margin-inline: auto;
}

.as-footer-cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 48px;
  padding-block: clamp(58px, 8vw, 108px);
}

.as-footer-cta-copy { max-width: 760px; }
.as-footer-eyebrow,
.as-footer-contact-label {
  display: block;
  color: var(--footer-accent);
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .16em;
}

.as-footer-cta h2 {
  max-width: 850px;
  margin: 18px 0 15px;
  color: var(--footer-text);
  font-size: clamp(2.4rem, 6.5vw, 6rem);
  font-weight: 800;
  letter-spacing: -.075em;
  line-height: .96;
  text-wrap: balance;
}

.as-footer-cta-copy p {
  max-width: 580px;
  margin: 0;
  color: var(--footer-muted);
  font-size: clamp(.95rem, 1.45vw, 1.12rem);
  line-height: 1.7;
}

.as-footer-cta-actions {
  display: grid;
  min-width: 178px;
  gap: 10px;
}

.as-footer-cta-button {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: .86rem;
  font-weight: 700;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}

.as-footer-cta-button span,
.as-footer-column nav a span,
.as-footer-contact-page span {
  display: inline-block;
  transition: transform .2s ease;
}

.as-footer-cta-button:hover span,
.as-footer-column nav a:hover span,
.as-footer-contact-page:hover span { transform: translate(3px, -3px); }
.as-footer-cta-button:hover { transform: translateY(-2px); }
.as-footer-cta-button--primary { background: var(--footer-accent); color: #10170a !important; box-shadow: 0 18px 32px rgba(181, 245, 0, 0.18); }
.as-footer-cta-button--primary:hover { background: #d3ff50; }
.as-footer-cta-button--secondary { border-color: var(--footer-line); color: var(--footer-text); }
.as-footer-cta-button--secondary:hover { border-color: var(--footer-accent); box-shadow: 0 12px 24px rgba(181, 245, 0, 0.08); }

.as-footer-main { padding-top: clamp(44px, 6vw, 78px); }

.as-footer-brand-row {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
  align-items: end;
  gap: 50px;
  padding-bottom: clamp(36px, 5vw, 64px);
  border-bottom: 1px solid var(--footer-line);
}

.as-footer-brand { display: inline-flex; min-height: 54px; align-items: center; }
.as-footer-logo-image { display: block; width: auto; max-width: min(190px, 100%); max-height: 60px; object-fit: contain; object-position: left center; }
.as-footer-brand-text strong { color: var(--footer-text); font-size: 1.4rem; letter-spacing: -.04em; }
.as-footer-tagline { margin: 22px 0 7px; color: var(--footer-text); font-size: 1rem; font-weight: 700; }
.as-footer-intro-text,
.as-footer-description { max-width: 430px; margin: 0 0 8px; color: var(--footer-muted); font-size: .88rem; line-height: 1.7; }

.as-footer-brand-statement {
  display: grid;
  justify-self: end;
  color: rgba(245, 248, 249, .85);
  font-size: clamp(2rem, 5vw, 4.65rem);
  font-weight: 800;
  letter-spacing: -.075em;
  line-height: .96;
}

.as-footer-brand-statement span:nth-child(2) { padding-left: .35em; }
.as-footer-brand-statement span:nth-child(3) { padding-left: .7em; }
.as-footer-period { color: var(--footer-accent); }

.as-footer-navigation {
  display: grid;
  grid-template-columns: 1fr 1.1fr 1.25fr .85fr;
  gap: clamp(22px, 4vw, 54px);
  padding-block: clamp(38px, 5vw, 64px);
}

.as-footer-column { min-width: 0; }
.as-footer-column h2 {
  margin: 0 0 20px;
  color: var(--footer-muted);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.as-footer-column nav,
.as-footer-contact-list { display: grid; align-content: start; gap: 12px; }
.as-footer-column nav a {
  display: flex;
  width: fit-content;
  max-width: 100%;
  align-items: baseline;
  justify-content: space-between;
  gap: 11px;
  color: var(--footer-text);
  font-size: .86rem;
  line-height: 1.4;
  transition: color .18s ease, transform .18s ease;
}

.as-footer-column nav a span { color: var(--footer-accent); opacity: 0; }
.as-footer-column nav a:hover { color: var(--footer-accent); transform: translateX(2px); }
.as-footer-column nav a:hover span,
.as-footer-column nav a:focus-visible span { opacity: 1; }
.as-footer-contact-list a,
.as-footer-address {
  display: grid;
  justify-items: start;
  gap: 5px;
  margin: 0;
  color: var(--footer-text);
  font-size: .84rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.as-footer-contact-list a:hover,
.as-footer-bottom-links a:hover { color: var(--footer-accent); }
.as-footer-contact-label { font-size: .56rem; }
.as-footer-contact-page { display: inline-flex !important; grid-auto-flow: column; align-items: center; gap: 8px !important; margin-top: 3px; color: var(--footer-accent) !important; }

.as-footer-custom-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  padding-block: 18px;
  border-top: 1px solid var(--footer-line);
}
.as-footer-custom-menu a { color: var(--footer-muted); font-size: .75rem; }
.as-footer-custom-menu a:hover { color: var(--footer-accent); }

.as-footer-bottom {
  display: flex;
  min-height: 70px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid var(--footer-line);
}
.as-footer-copyright { margin: 0; color: var(--footer-muted); font-size: .75rem; line-height: 1.6; }
.as-footer-bottom-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 18px; }
.as-footer-bottom-links a { color: var(--footer-muted); font-size: .73rem; transition: color .18s ease; }
.as-footer-back-top { display: inline-flex; align-items: center; gap: 8px; color: var(--footer-text) !important; }
.as-footer-back-top span { color: var(--footer-accent); transition: transform .2s ease; }
.as-footer-back-top:hover span { transform: translateY(-3px); }

.as-footer [data-footer-reveal] { opacity: 1; transform: none; }
.as-footer.has-reveal [data-footer-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .65s ease, transform .65s ease; }
.as-footer.has-reveal [data-footer-reveal].is-visible { opacity: 1; transform: translateY(0); }

html[data-theme="light"] .as-footer:not([data-footer-theme="dark"]),
.as-footer[data-footer-theme="light"] {
  --footer-bg: #f2f5f2;
  --footer-panel: #e8eee8;
  --footer-text: #18251f;
  --footer-muted: #53625a;
  --footer-line: rgba(29, 49, 39, .16);
  --footer-accent: #527900;
}

html[data-theme="light"] .as-footer:not([data-footer-theme="dark"]) .as-footer-cta,
.as-footer[data-footer-theme="light"] .as-footer-cta {
  background:
    radial-gradient(ellipse at 88% 40%, rgba(111, 155, 16, .15), transparent 34%),
    linear-gradient(112deg, #e8efe2, #f3f5ef 56%, #e8eee6);
}

html[data-theme="light"] .as-footer:not([data-footer-theme="dark"]) .as-footer-cta h2,
html[data-theme="light"] .as-footer:not([data-footer-theme="dark"]) .as-footer-brand-statement,
.as-footer[data-footer-theme="light"] .as-footer-cta h2,
.as-footer[data-footer-theme="light"] .as-footer-brand-statement { color: var(--footer-text); }

html[data-theme="light"] .as-footer:not([data-footer-theme="dark"]) .as-footer-cta-button--secondary,
.as-footer[data-footer-theme="light"] .as-footer-cta-button--secondary { color: var(--footer-text); }

html[data-theme="light"] .as-footer[data-footer-theme="dark"] {
  background: var(--footer-bg);
  color: var(--footer-text);
}
html[data-theme="light"] .as-footer[data-footer-theme="dark"] .as-footer-bottom { background: var(--footer-bg); }
html[data-theme="light"] .as-footer[data-footer-theme="dark"] .as-footer-copyright { color: var(--footer-muted); }

@media (max-width: 900px) {
  .as-footer-cta-inner { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 28px; }
  .as-footer-cta-actions { display: flex; flex-wrap: wrap; min-width: 0; }
  .as-footer-cta-button { min-width: 175px; }
  .as-footer-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 34px; }
}

@media (max-width: 600px) {
  .as-footer-cta-inner,
  .as-footer-main { width: min(100% - 36px, 1200px); }
  .as-footer-cta-inner { padding-block: 54px; }
  .as-footer-cta h2 { font-size: clamp(2.35rem, 13vw, 4rem); }
  .as-footer-cta::after { right: -210px; top: -30%; width: 370px; height: 370px; }
  .as-footer-cta-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
  .as-footer-cta-button { min-width: 0; min-height: 48px; gap: 10px; padding-inline: 12px; font-size: .78rem; }
  .as-footer-brand-row { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .as-footer-brand-statement { justify-self: start; font-size: clamp(2.2rem, 11vw, 3.4rem); }
  .as-footer-navigation { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px 18px; }
  .as-footer-column h2 { margin-bottom: 15px; }
  .as-footer-column nav,
  .as-footer-contact-list { gap: 11px; }
  .as-footer-column nav a { font-size: .8rem; }
  .as-footer-bottom { align-items: flex-start; flex-direction: column; gap: 12px; padding-block: 20px; }
  .as-footer-bottom-links { justify-content: flex-start; gap: 12px 17px; }
  .as-footer-bottom-links a { font-size: .72rem; }
  .as-footer-custom-menu { gap: 10px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .as-footer *,
  .as-footer *::before,
  .as-footer *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .as-footer.has-reveal [data-footer-reveal] { opacity: 1; transform: none; }
}
