/* The footer of every page: the home page links this after styles.css and
   the legal pages after legal.css. Both define the colour and font tokens
   used here; the fallbacks only matter if a page forgets one.
   The look is the design's Footer (Landing Page UI v2, Figma 416:92501).
   At 1440 wide the design has no phone or tablet footer, so those two
   layouts below are ours, built from the same parts. */

.site-footer {
  /* Measured, not inspected: read from an export of the Figma frame at
     1440 wide (the 2x reference capture), where the footer is 352px tall. */
  --m-foot-pad-top: 80px;
  --m-foot-pad-bottom: 84px;
  --m-foot-mark: 48px;
  --m-foot-mark-bg: linear-gradient(90deg, #7402f5, #2a02a3);
  --m-foot-brand-w: 332px;
  --m-foot-col-gap: 100px;
  --m-foot-rule-w: 268px;
  --m-foot-social: 44px;
  --m-foot-social-gap: 12px;
  --m-foot-social-icon: 22px;
  --foot-ink: #2a2a2a;
  --foot-ink-2: #6d6d6d;
  --foot-ink-3: #8f8f8f;
  --foot-line: #f2f2f2;
  --foot-dash: repeating-linear-gradient(90deg, var(--foot-line) 0 4px, transparent 4px 8px);
  position: relative;
  z-index: 2;
  background: #fff;
  color: var(--foot-ink);
  padding: var(--m-foot-pad-top) var(--gutter, 16px) max(var(--m-foot-pad-bottom), env(safe-area-inset-bottom));
  font-family: var(--font-head, 'General Sans', system-ui, sans-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.foot-inner {
  max-width: 1280px;
  margin: 0 auto;
}
.foot-inner p {
  margin: 0;
}
/* legal.css sets the body font on every .l10n span; the footer keeps its own. */
.site-footer .l10n {
  font-family: inherit;
}

/* brand, the three link columns, then the social buttons on the far side */
.foot-top {
  display: grid;
  grid-template-columns: var(--m-foot-brand-w) auto auto auto minmax(0, 1fr);
  grid-template-areas: 'about explore company contact social';
  column-gap: var(--m-foot-col-gap);
  row-gap: 32px;
  align-items: start;
  padding-bottom: 25px;
  background: var(--foot-dash) bottom / 100% 1px no-repeat;
}
/* Laptops narrower than the design's 1280px row (1240 to 1440 wide): the
   column gaps give up the difference, down to 64px, so the five social
   buttons stay on one row. At 1440 the gaps are the design's 100px. */
@media (min-width: 1240px) {
  .foot-top {
    column-gap: clamp(64px, calc(var(--m-foot-col-gap) - (1280px - 100%) / 4), var(--m-foot-col-gap));
  }
}
.foot-about {
  grid-area: about;
}
.foot-explore {
  grid-area: explore;
}
.foot-company {
  grid-area: company;
}
.foot-contact {
  grid-area: contact;
}
.foot-social {
  grid-area: social;
  justify-self: end;
}

.foot-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  width: fit-content;
  color: inherit;
  text-decoration: none;
  border-radius: 12px;
}
.foot-mark {
  flex: none;
  display: grid;
  place-items: center;
  width: var(--m-foot-mark);
  height: var(--m-foot-mark);
  border-radius: 50%;
  background: var(--m-foot-mark-bg);
}
.foot-bull,
.foot-word {
  display: block;
  background: currentColor;
  -webkit-mask: var(--m) center / contain no-repeat;
  mask: var(--m) center / contain no-repeat;
}
.foot-bull {
  --m: url('../assets/img/bull.svg');
  width: 33px;
  height: 19.2px;
  margin-inline-end: 2px;
  color: #fff;
}
.foot-word {
  --m: url('../assets/img/wordmark.svg');
  width: 54px;
  height: 17px;
  color: var(--foot-ink);
}
.foot-name {
  display: grid;
  gap: 4px;
  justify-items: start;
}
.foot-by {
  font-size: 14px;
  color: var(--foot-ink-2);
}
.foot-tag {
  margin-top: 16px !important;
  padding-top: 16px;
  color: var(--foot-ink-3);
  background: var(--foot-dash) top left / var(--m-foot-rule-w) 1px no-repeat;
}
[dir='rtl'] .foot-tag {
  background-position: top right;
}

.foot-head {
  margin: 0 0 10px;
  font-family: var(--font-head, 'General Sans', system-ui, sans-serif);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.15px;
  color: var(--foot-ink);
  white-space: nowrap;
}

.foot-list {
  list-style: none;
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
}
.foot-list a,
.foot-legal a {
  display: inline-block;
  padding: 0;
  color: var(--foot-ink-3);
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: transparent;
  text-underline-offset: 4px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.foot-list a:hover,
.foot-legal a:hover {
  color: var(--foot-ink);
  text-decoration-color: currentColor;
}
.foot-legal a[aria-current='page'],
.foot-list a[aria-current='page'] {
  color: var(--p-base, #7c02fd);
}

/* round social buttons, 44px targets */
.socials {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--m-foot-social-gap);
  margin: 0;
  padding: 0;
}
.social {
  display: grid;
  place-items: center;
  width: var(--m-foot-social);
  height: var(--m-foot-social);
  border-radius: 50%;
  background: #fff;
  /* the design's Skeuomorphic Neutral Secondary: a 0.8px ring outside the 44px circle */
  box-shadow: 0 0 0 0.8px var(--foot-line);
  color: var(--foot-ink);
  transition: box-shadow 0.2s ease, background-color 0.2s ease;
}
.social svg {
  width: var(--m-foot-social-icon);
  height: var(--m-foot-social-icon);
}
.social[href]:hover,
.social[href]:focus-visible {
  box-shadow: 0 0 0 0.8px var(--p-subtle, #d9c6ff);
  background: var(--p-clear, #f8f5ff);
}
.social[aria-disabled='true'] {
  cursor: default;
}

/* bottom row: the copyright, then the legal links */
.foot-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 24px;
  padding-top: 24px;
}
.foot-made {
  color: var(--foot-ink);
}
.foot-legal ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
  padding: 0;
}
.foot-legal li {
  display: flex;
  align-items: center;
}
/* the vertical rule between the two links */
.foot-legal li + li::before {
  content: '';
  width: 1px;
  height: 1.3em;
  margin-inline: 20px;
  background: var(--foot-line);
}
/* One short line in small type under the bottom row. It sits inside the
   design's bottom padding, so the footer keeps its measured height. */
.foot-note {
  margin-top: 12px !important;
  margin-bottom: -30px !important;
  color: var(--foot-ink-3);
  font-size: 12px;
}

.site-footer :focus-visible {
  outline: 3px solid var(--focus, #3c007c);
  outline-offset: 2px;
  border-radius: 6px;
}
.site-footer .social:focus-visible {
  border-radius: 50%;
}

/* Tablet: the brand and the socials share the first row, the three link
   columns sit under them. */
@media (max-width: 1239px) {
  .site-footer {
    --m-foot-pad-top: 64px;
    --m-foot-pad-bottom: 64px;
    --m-foot-col-gap: clamp(40px, 8vw, 100px);
  }
  .foot-top {
    grid-template-columns: auto auto auto minmax(0, 1fr);
    grid-template-areas:
      'about about about social'
      'explore company contact .';
    row-gap: 40px;
  }
  .foot-note {
    margin-bottom: 0 !important;
  }
}

/* Phone: one column for the brand, the links in two columns, the socials
   on their own row and the bottom row stacked. */
@media (max-width: 819px) {
  .site-footer {
    --m-foot-pad-top: 48px;
    --m-foot-pad-bottom: 40px;
  }
  .foot-top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      'about about'
      'explore company'
      'contact contact'
      'social social';
    gap: 32px 24px;
    padding-bottom: 32px;
  }
  .foot-social {
    justify-self: start;
  }
  .foot-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .foot-legal li + li::before {
    margin-inline: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .social,
  .foot-list a,
  .foot-legal a {
    transition: none;
  }
}
