.footer {
  background: transparent;
}
.footer p,
.footer span{
  font-size: 12px;
}
.footer-list li {
  margin: 0;
}
.footer-locations *,
.footer-locations span {
  font-family: var(--font-jetBrains);
}

.footer-cta-text p {
  color: var(--color-beige);
}

.footer-brand {
  padding-bottom: 28px;
  border-bottom: 1px solid #3a3a34;
  font-size: 11px;
  line-height: 1.5;
}

/* Mobile: one flowing line of cities; desktop: two lines */
.footer-locations span + span::before {
  content: "\2022\00a0";
}

.footer-cta {
  padding-top: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid #3a3a34;
}

.footer-cta-text {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  color: #e8e4d8;
}

.footer-cta p + p {
  margin-top: 24px;
}

.footer-button {
  padding: 14px 13px;
  font-size: 13px;
  text-decoration: none;
}
.footer-button:hover { background-color: #d01f7a; }
.footer-button:focus-visible {
  outline: 2px solid #ec2f8f;
  outline-offset: 4px;
}

/* ---------- Menu (accordion on mobile, 5 columns on desktop) ---------- */
.footer-nav {
  padding-top: 22px;
}

.footer-heading {
  border-bottom: 1px solid #3F4137;
}

.footer-toggle {
  gap: 6px;
  padding-bottom: 14px;
  font-size: 12px;
  font-weight: 400;
  color: #e8e4d8;
  cursor: pointer;
}
.footer-toggle:focus-visible {
  outline: 2px solid #ec2f8f;
  outline-offset: 3px;
}

.footer-arrow {
  color: #8f8c83;
}

.footer-list {
  padding-top: 14px;
}

.footer-list li + li {
  margin-top: 0px;
}

.footer-link {
  font-size: 12px;
  line-height: 1.4;
  color: var(--grey-4);
  text-decoration: none;
}
.footer-link:focus-visible {
  outline: 2px solid #ec2f8f;
  outline-offset: 2px;
}

/* Mobile accordion state */
@media (max-width: 1023.98px) {
  .footer-toggle[aria-expanded="true"] { 
    color: #ec2f8f; 
  }
  .footer-col .footer-arrow svg {
    transition: transform 0.3s ease;
  }
  .footer-col:has([aria-expanded="true"]) .footer-arrow svg {
    transform: rotate(180deg);
  }

  .footer-col:has([aria-expanded="false"]) .footer-arrow svg {
    transform: rotate(0deg);
  }
  
  .footer-col {
    display: grid;
    grid-template-rows: auto 1fr;
    align-content: start; /* stop the heading row stretching mid-animation */
    transition: grid-template-rows 0.3s ease;
  }

  .footer-list {
    min-height: 0;
    overflow: hidden;
    transition: padding 0.3s ease, opacity 0.3s ease 0.05s, visibility 0s;
  }

  .footer-col:has([aria-expanded="false"]) {
    grid-template-rows: auto 0fr;
  }

  .footer-col:has([aria-expanded="false"]) .footer-list {
    padding-top: 0;
    opacity: 0;
    visibility: hidden;
    transition: padding 0.3s ease, opacity 0.2s ease, visibility 0s linear 0.3s;
  }
}

@media (max-width: 1023.98px) and (prefers-reduced-motion: reduce) {
+  .footer-col,
+  .footer-list,
+  .footer-col:has([aria-expanded="false"]) .footer-list { transition: none; }
+}

/* ---------- Desktop ---------- */
@media (min-width: 1024px) {
  .footer-top {
    gap: 80px;
    padding-bottom: 48px;
    border-bottom: 1px solid #3F4137;
  }

  .footer-brand {
    flex: 0 1 380px;
    padding-bottom: 0;
    border-bottom: 0;
    font-size: 12px;
    line-height: 1.4;
  }

  .footer-brand p:first-child + p { margin-top: 12px; }

  .footer-locations span { display: block; }
  .footer-locations span + span::before { content: none; }

  .footer-cta {
    display: flex;
    align-items: center;
    gap: 24px;
    align-self: flex-start;
    padding-top: 18px;
    padding-bottom: 0;
    border-bottom: 0;
  }

  .footer-cta p + p { margin-top: 0; }

  .footer-cta-text { font-size: 19px; }

  .footer-button { padding: 12px 13px; }

  .footer-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding-top: 56px;
  }

  /* Headings are plain labels on desktop */
  .footer-toggle {
    padding-bottom: 12px;
    cursor: default;
    pointer-events: none;
  }

  .footer-list { padding-top: 16px; }
}
