.sitemap-footer.site-footer {
  --footer-accent: #0c35e9;
  --footer-accent-rgb: 12, 53, 233;
  --footer-card-radius: 30px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(310px, 1.3fr) repeat(3, minmax(160px, .62fr));
  gap: clamp(16px, 1.6vw, 26px);
  min-height: 0;
  padding: clamp(58px, 7vw, 90px) max(24px, calc((100vw - 1440px) / 2)) 22px;
  border-top: 1px solid rgba(255,255,255,.18);
  border-radius: 0;
  color: #fff;
  background:
    radial-gradient(circle at 78% 18%, rgba(var(--footer-accent-rgb), .46), transparent 27%),
    radial-gradient(circle at 15% 115%, rgba(var(--footer-accent-rgb), .23), transparent 36%),
    linear-gradient(145deg, #050711 8%, #071348 58%, #050711 100%);
  box-shadow: 0 -36px 90px rgba(5,7,17,.2);
}

body[data-palette="brand-core"] .sitemap-footer.site-footer {
  --footer-card-radius: 32px;
}

body[data-finalist="editorial"] .sitemap-footer.site-footer {
  --footer-card-radius: 4px 42px 4px 42px;
  border-radius: 0;
  background:
    radial-gradient(circle at 88% 8%, rgba(var(--footer-accent-rgb), .4), transparent 29%),
    linear-gradient(126deg, #050711 8%, #0b1b6b 62%, #050711 100%);
}

body[data-finalist="kinetic"] .sitemap-footer.site-footer {
  --footer-card-radius: 38px 8px 38px 8px;
  background:
    radial-gradient(circle at 72% 12%, rgba(255,255,255,.11), transparent 20%),
    linear-gradient(135deg, #050711 4%, #0b1b6b 48%, #0c35e9 145%);
}

.sitemap-footer.site-footer::before {
  position: absolute;
  z-index: -1;
  width: min(62vw, 850px);
  aspect-ratio: 1.28;
  right: -10%;
  top: -5%;
  content: '';
  opacity: .12;
  background: linear-gradient(135deg, #fff 5%, var(--footer-accent) 72%);
  -webkit-mask: url("../assets/brand/mareah-mark.svg") center / contain no-repeat;
  mask: url("../assets/brand/mareah-mark.svg") center / contain no-repeat;
  filter: drop-shadow(0 0 80px rgba(var(--footer-accent-rgb), .92));
  animation: footer-mark-drift 11s cubic-bezier(.45,.05,.2,1) infinite;
  pointer-events: none;
}

.sitemap-footer.site-footer::after {
  position: absolute;
  z-index: -1;
  inset: -55% -20%;
  content: '';
  opacity: 0;
  background: linear-gradient(108deg, transparent 43%, rgba(255,255,255,.14) 50%, transparent 57%);
  transform: translateX(-42%) rotate(7deg);
  animation: footer-light-sweep 8s ease-in-out infinite;
  pointer-events: none;
}

/* Each direction has older footer rules; the shared sitemap footer owns rows. */
.sitemap-footer.site-footer > * {
  position: relative;
  z-index: 1;
  grid-row: auto;
}

.sitemap-footer a { color: inherit; text-decoration: none; }

.sitemap-footer__brand,
.sitemap-footer__nav,
.sitemap-footer__connect,
.sitemap-footer__utility {
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.025));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 20px 54px rgba(0,0,0,.14);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.sitemap-footer__brand {
  min-height: 260px;
  padding: clamp(28px, 3vw, 46px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 15px;
  border-radius: var(--footer-card-radius);
  overflow: hidden;
}

.sitemap-footer__brand::before {
  position: absolute;
  width: 210px;
  height: 210px;
  right: -92px;
  bottom: -105px;
  content: '';
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  box-shadow: 0 0 0 38px rgba(var(--footer-accent-rgb), .12), 0 0 0 76px rgba(var(--footer-accent-rgb), .055);
  animation: footer-orbit-breathe 5.8s ease-in-out infinite;
}

.sitemap-footer__brand img {
  width: clamp(154px, 13vw, 208px);
  filter: drop-shadow(0 10px 26px rgba(0,0,0,.24));
  transform-origin: left center;
  animation: footer-logo-breathe 5.2s ease-in-out infinite;
}

.sitemap-footer__brand p {
  max-width: 490px;
  margin: 4px 0 0;
  color: #fff;
  font-family: inherit;
  font-size: clamp(23px, 2.5vw, 34px);
  font-weight: 620;
  line-height: .98;
  letter-spacing: -.055em;
}

body[data-finalist="editorial"] .sitemap-footer__brand p {
  font-family: var(--serif, Georgia, serif);
  font-weight: 400;
  font-style: italic;
  letter-spacing: -.045em;
}

.sitemap-footer__nav,
.sitemap-footer__connect,
.sitemap-footer__utility {
  min-height: 260px;
  padding: clamp(24px, 2.2vw, 34px);
  display: grid;
  align-content: start;
  gap: 12px;
  border-radius: var(--footer-card-radius);
  font-size: 15px;
  transition: border-color 320ms ease, background 320ms ease, transform 420ms cubic-bezier(.16,1,.3,1), box-shadow 320ms ease;
}

.sitemap-footer__nav:hover,
.sitemap-footer__connect:hover,
.sitemap-footer__utility:hover {
  border-color: rgba(255,255,255,.34);
  background: linear-gradient(145deg, rgba(255,255,255,.135), rgba(255,255,255,.045));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 30px 70px rgba(0,0,0,.21);
  transform: translateY(-8px);
}

.sitemap-footer__label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 19px;
  color: rgba(255,255,255,.52);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.sitemap-footer__label::before {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  content: '';
  border-radius: 50%;
  background: var(--footer-accent);
  box-shadow: 0 0 0 5px rgba(var(--footer-accent-rgb), .2), 0 0 20px rgba(var(--footer-accent-rgb), .9);
  animation: footer-signal-pulse 2.4s ease-out infinite;
}

.sitemap-footer__nav a,
.sitemap-footer__connect a,
.sitemap-footer__utility a {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0 9px;
  color: rgba(255,255,255,.8);
  background-image: linear-gradient(90deg, var(--footer-accent), rgba(255,255,255,.8));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0 1px;
  line-height: 1.25;
  overflow-wrap: anywhere;
  transition: color 220ms ease, transform 320ms cubic-bezier(.16,1,.3,1), background-size 320ms ease;
}

.sitemap-footer__nav a::after,
.sitemap-footer__connect a::after,
.sitemap-footer__utility > a::after {
  flex: 0 0 auto;
  content: '\2197\FE0E';
  color: rgba(255,255,255,.38);
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-variant-emoji: text;
  transition: color 220ms ease, transform 320ms cubic-bezier(.16,1,.3,1);
}

.sitemap-footer__nav a:hover,
.sitemap-footer__connect a:hover,
.sitemap-footer__utility a:hover,
.sitemap-footer__nav a:focus-visible,
.sitemap-footer__connect a:focus-visible,
.sitemap-footer__utility a:focus-visible {
  color: #fff;
  background-size: 100% 1px;
  transform: translateX(5px);
}

.sitemap-footer__nav a:hover::after,
.sitemap-footer__connect a:hover::after,
.sitemap-footer__utility > a:hover::after,
.sitemap-footer__nav a:focus-visible::after,
.sitemap-footer__connect a:focus-visible::after,
.sitemap-footer__utility > a:focus-visible::after {
  color: #fff;
  transform: translate(3px,-3px);
}

.sitemap-footer__connect > span:not(.sitemap-footer__label) {
  margin: 0 0 9px;
  color: rgba(255,255,255,.55);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sitemap-footer__locale {
  display: flex;
  gap: 7px;
  margin-bottom: 8px;
}

.sitemap-footer__locale button {
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  color: rgba(255,255,255,.72);
  background: rgba(255,255,255,.03);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  transition: color 220ms ease, background 220ms ease, border-color 220ms ease, transform 320ms cubic-bezier(.16,1,.3,1);
}

.sitemap-footer__locale button:hover,
.sitemap-footer__locale button:focus-visible { border-color: #fff; color: #fff; transform: translateY(-3px) rotate(-4deg); }
.sitemap-footer__locale button[aria-pressed="true"] { color: #050711; background: #fff; border-color: #fff; box-shadow: 0 10px 25px rgba(0,0,0,.2); }

.sitemap-footer__bottom {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: clamp(18px, 3vw, 46px);
  margin-top: 12px;
  padding: 20px 0 2px;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.2);
  border-radius: 0;
  color: rgba(255,255,255,.5);
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: 12px;
}

.astrisoft-tag {
  display: inline-grid;
  grid-template-columns: 20px 1px auto auto;
  gap: 9px;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 5px 0;
  border: 0;
  border-radius: 0;
  color: #fff !important;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.01em;
  transition: border-color 220ms ease, background 220ms ease, transform 320ms cubic-bezier(.16,1,.3,1);
}

.astrisoft-tag:hover,
.astrisoft-tag:focus-visible { background: transparent; transform: translateY(-3px); }
.astrisoft-tag__mark { display: block; width: 20px; height: 20px; background: #fff; -webkit-mask: url("../assets/brand/astrisoft-mark.svg") center / contain no-repeat; mask: url("../assets/brand/astrisoft-mark.svg") center / contain no-repeat; transition: transform 420ms cubic-bezier(.16,1,.3,1); }
.astrisoft-tag__divider { width: 1px; min-height: 25px; background: rgba(255,255,255,.2); }
.astrisoft-tag__copy { white-space: nowrap; }
.astrisoft-tag__arrow { color: #24d7a2; font-size: 18px; line-height: 1; transition: transform 220ms ease; }
.astrisoft-tag:hover .astrisoft-tag__mark { transform: rotate(45deg) scale(1.08); }
.astrisoft-tag:hover .astrisoft-tag__arrow { transform: translate(3px,-3px); }

[dir="rtl"] .sitemap-footer__nav a,
[dir="rtl"] .sitemap-footer__connect a,
[dir="rtl"] .sitemap-footer__utility a { background-position: right bottom; }
[dir="rtl"] .sitemap-footer__nav a:hover,
[dir="rtl"] .sitemap-footer__connect a:hover,
[dir="rtl"] .sitemap-footer__utility a:hover,
[dir="rtl"] .sitemap-footer__nav a:focus-visible,
[dir="rtl"] .sitemap-footer__connect a:focus-visible,
[dir="rtl"] .sitemap-footer__utility a:focus-visible { transform: translateX(-5px); }
[dir="rtl"] .sitemap-footer__nav a::after,
[dir="rtl"] .sitemap-footer__connect a::after,
[dir="rtl"] .sitemap-footer__utility > a::after,
[dir="rtl"] .astrisoft-tag__arrow { transform: scaleX(-1); }
[dir="rtl"] .astrisoft-tag:hover .astrisoft-tag__arrow { transform: translate(-3px,-3px) scaleX(-1); }
[dir="rtl"] .sitemap-footer__brand img { transform-origin: right center; }

@keyframes footer-mark-drift {
  0%, 100% { transform: translate3d(0,0,0) rotate(-3deg) scale(.94); opacity: .08; }
  50% { transform: translate3d(-4vw,5%,0) rotate(5deg) scale(1.06); opacity: .17; }
}

@keyframes footer-light-sweep {
  0%, 22% { transform: translateX(-42%) rotate(7deg); opacity: 0; }
  42%, 58% { opacity: 1; }
  78%, 100% { transform: translateX(42%) rotate(7deg); opacity: 0; }
}

@keyframes footer-orbit-breathe {
  0%, 100% { transform: scale(.85); opacity: .5; }
  50% { transform: scale(1.08); opacity: 1; }
}

@keyframes footer-logo-breathe {
  0%, 100% { transform: translate3d(0,0,0); filter: drop-shadow(0 10px 26px rgba(0,0,0,.24)); }
  50% { transform: translate3d(6px,-4px,0); filter: drop-shadow(0 15px 34px rgba(var(--footer-accent-rgb), .58)); }
}

@keyframes footer-signal-pulse {
  0% { box-shadow: 0 0 0 0 rgba(var(--footer-accent-rgb), .52), 0 0 18px rgba(var(--footer-accent-rgb), .9); }
  72%, 100% { box-shadow: 0 0 0 11px rgba(var(--footer-accent-rgb), 0), 0 0 28px rgba(var(--footer-accent-rgb), .45); }
}

@keyframes footer-section-in {
  from { opacity: 0; transform: translate3d(0,70px,0) scale(.96); filter: blur(9px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}

@supports (animation-timeline: view()) {
  .sitemap-footer__brand,
  .sitemap-footer__nav,
  .sitemap-footer__connect,
  .sitemap-footer__utility,
  .sitemap-footer__bottom {
    animation-name: footer-section-in;
    animation-duration: 1ms;
    animation-fill-mode: both;
    animation-timing-function: linear;
    animation-timeline: view();
    animation-range: entry 2% cover 26%;
  }
  .sitemap-footer__nav { animation-range: entry 5% cover 27%; }
  .sitemap-footer__connect { animation-range: entry 8% cover 29%; }
  .sitemap-footer__utility { animation-range: entry 11% cover 31%; }
  .sitemap-footer__bottom { animation-range: entry 0% entry 55%; }
}

@media (max-width: 1080px) {
  .sitemap-footer.site-footer { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .sitemap-footer__brand { grid-column: 1 / -1; min-height: 210px; }
  .sitemap-footer__utility { grid-column: 1 / -1; min-height: 0; grid-template-columns: auto repeat(3,minmax(0,1fr)); align-items: center; }
  .sitemap-footer__utility .sitemap-footer__label { grid-column: 1 / -1; }
  .sitemap-footer__utility .sitemap-footer__locale { margin: 0; }
}

@media (max-width: 700px) {
  .sitemap-footer.site-footer {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 50px 14px 14px;
    border-radius: 0;
  }
  body[data-finalist="editorial"] .sitemap-footer.site-footer { border-radius: 0; }
  .sitemap-footer.site-footer::before { width: 120vw; right: -44%; top: 1%; opacity: .1; }
  .sitemap-footer__brand,
  .sitemap-footer__nav,
  .sitemap-footer__connect,
  .sitemap-footer__utility,
  .sitemap-footer__bottom { grid-column: 1; grid-row: auto; }
  .sitemap-footer__brand { min-height: 188px; padding: 24px; }
  .sitemap-footer__brand p { max-width: 360px; margin-top: 2px; font-size: clamp(23px,7vw,30px); }
  .sitemap-footer__nav,
  .sitemap-footer__connect,
  .sitemap-footer__utility { min-height: 0; padding: 24px; }
  .sitemap-footer__utility { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .sitemap-footer__utility .sitemap-footer__label,
  .sitemap-footer__utility .sitemap-footer__locale { grid-column: 1 / -1; }
  .sitemap-footer__bottom {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 13px;
    margin-top: 0;
    padding: 24px 0 4px;
    border-radius: 0;
  }
  .astrisoft-tag { margin-top: 7px; font-size: 14px; }
  .astrisoft-tag__copy { white-space: normal; }
}

/* The burger menu exposes the complete version-one page set. */
.mobile-nav__utility {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.18);
}

.mobile-nav .mobile-nav__utility a,
.mobile-menu .mobile-nav__utility a {
  min-width: 0;
  padding: 11px 10px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  color: rgba(255,255,255,.68);
  background: rgba(255,255,255,.045);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .01em;
  text-align: center;
}

.mobile-nav .mobile-nav__utility a::after,
.mobile-menu .mobile-nav__utility a::after {
  margin-inline-start: 5px;
  color: currentColor;
  content: '\2197\FE0E';
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-variant-emoji: text;
}

.mobile-nav .mobile-nav__utility a:hover,
.mobile-menu .mobile-nav__utility a:hover,
.mobile-nav .mobile-nav__utility a:focus-visible,
.mobile-menu .mobile-nav__utility a:focus-visible {
  border-color: rgba(255,255,255,.35);
  color: #fff;
  background: rgba(255,255,255,.1);
}

body[data-finalist="editorial"] .mobile-menu .mobile-nav__utility a {
  border-radius: 3px 16px 3px 16px;
}

body[data-finalist="kinetic"] .mobile-nav .mobile-nav__utility a {
  justify-content: center;
  border-radius: 16px 4px 16px 4px;
  text-transform: uppercase;
}

[dir="rtl"] .mobile-nav .mobile-nav__utility a::after,
[dir="rtl"] .mobile-menu .mobile-nav__utility a::after {
  display: inline-block;
  margin-right: 5px;
  margin-left: 0;
  transform: scaleX(-1);
}

@media (max-width: 390px) {
  .sitemap-footer__utility { grid-template-columns: 1fr; }
  .sitemap-footer__utility .sitemap-footer__label,
  .sitemap-footer__utility .sitemap-footer__locale { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .sitemap-footer.site-footer::before,
  .sitemap-footer.site-footer::after,
  .sitemap-footer__brand::before,
  .sitemap-footer__brand img,
  .sitemap-footer__label::before,
  .sitemap-footer__brand,
  .sitemap-footer__nav,
  .sitemap-footer__connect,
  .sitemap-footer__utility,
  .sitemap-footer__bottom { animation: none !important; }
  .sitemap-footer__nav,
  .sitemap-footer__connect,
  .sitemap-footer__utility { transform: none !important; }
}
