/* BroadbandSwitch.uk footer v5 — card grid + trust band */

.site-footer--v5 {
  --footer-bg-start: #0a0f24;
  --footer-bg-end: #141a3a;
  --footer-card-bg: rgba(255, 255, 255, 0.025);
  --footer-card-bg-hover: rgba(255, 255, 255, 0.045);
  --footer-card-border: rgba(255, 255, 255, 0.08);
  --footer-card-border-hover: rgba(255, 255, 255, 0.18);
  --footer-band: rgba(255, 255, 255, 0.035);
  --footer-divider: rgba(255, 255, 255, 0.12);
  --footer-text: #e8ecf7;
  --footer-text-muted: #b8c0d4;
  --footer-heading: #ffffff;
  --footer-link: #e8ecf7;
  --footer-link-hover: #9fc4ff;
  --footer-accent: #9fc4ff;
  --footer-focus: #ffbf47;

  margin-top: 1.5rem;
  background: linear-gradient(180deg, var(--footer-bg-start) 0%, var(--footer-bg-end) 100%);
  color: var(--footer-text);
  padding: clamp(1.35rem, 2.5vw, 2rem) clamp(1rem, 3vw, 2.25rem) clamp(0.85rem, 1.5vw, 1.25rem);
  font-size: 0.8125rem;
  line-height: 1.45;
}

.site-footer--v5 .footer-v5-inner {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(0.75rem, 2vw, 1.25rem);
  padding-right: clamp(0.75rem, 2vw, 1.25rem);
}

@media (prefers-reduced-motion: reduce) {
  .site-footer--v5 .footer-card,
  .site-footer--v5 .footer-card__list a {
    transition: none !important;
  }
}

.site-footer--v5 a:focus-visible,
.site-footer--v5 button:focus-visible {
  outline: 2px solid var(--footer-focus);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Row 1 — brand */
.site-footer--v5 .footer-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--footer-divider);
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.site-footer--v5 .footer-brand__identity {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  min-width: 0;
}

.site-footer--v5 .footer-brand__logo-link {
  display: inline-block;
  flex-shrink: 0;
}

.site-footer--v5 .footer-brand__logo {
  height: 32px;
  width: auto;
  max-width: 200px;
  display: block;
  filter: brightness(0) invert(1);
}

.site-footer--v5 .footer-brand__tagline {
  font-size: 0.84375rem;
  color: var(--footer-text-muted);
  margin: 0;
  max-width: 40ch;
  line-height: 1.35;
}

@media (max-width: 768px) {
  .site-footer--v5 .footer-brand {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Social strip */
.site-footer--v5 .footer-brand__social {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  justify-content: flex-end;
}

.site-footer--v5 .footer-social--v5 .footer-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--footer-text);
  border-radius: 6px;
  padding: 0;
}

.site-footer--v5 .footer-social--v5 .footer-social__svg {
  width: 18px;
  height: 18px;
}

@media (max-width: 767px) {
  .site-footer--v5 .footer-social--v5 .footer-social__link {
    width: 44px;
    height: 44px;
  }

  .site-footer--v5 .footer-social--v5 .footer-social__svg {
    width: 20px;
    height: 20px;
  }
}

.site-footer--v5 .footer-social__link--facebook:hover {
  color: #1877f2;
}

.site-footer--v5 .footer-social__link--x:hover {
  background: #000000;
  color: #ffffff;
}

.site-footer--v5 .footer-social__link--bluesky:hover {
  color: #0085ff;
}

.site-footer--v5 .footer-social__link--mastodon:hover {
  color: #6364ff;
}

.site-footer--v5 .footer-social__link--youtube:hover {
  color: #ff0000;
}

.site-footer--v5 .footer-social__link--linkedin:hover {
  color: #0a66c2;
}

.site-footer--v5 .footer-social__link--instagram:hover .footer-social__svg path {
  fill: url(#footer-instagram-gradient-v5);
}

/* Row 2 — editorial */
.site-footer--v5 .footer-editorial-strip {
  background: var(--footer-band);
  border: 1px solid var(--footer-divider);
  border-radius: 0.5rem;
  padding: 0.6rem 0.85rem;
  margin-bottom: 1.1rem;
  font-size: 0.78125rem;
  color: var(--footer-text-muted);
}

.site-footer--v5 .footer-editorial-strip strong {
  color: var(--footer-heading);
  font-weight: 600;
}

.site-footer--v5 .footer-editorial-strip a {
  color: var(--footer-link);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer--v5 .footer-editorial-strip time {
  color: var(--footer-accent);
  font-weight: 600;
}

@media (max-width: 899px) {
  .site-footer--v5 .footer-editorial-strip__a {
    display: block;
    padding-bottom: 0.5rem;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid var(--footer-divider);
  }

  .site-footer--v5 .footer-editorial-strip__b {
    display: block;
  }
}

/* Row 3 — cards */
.site-footer--v5 .footer-card {
  background: var(--footer-card-bg);
  border: 1px solid var(--footer-card-border);
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
  transition: background-color 160ms ease, border-color 160ms ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
  min-width: 0;
}

.site-footer--v5 .footer-card:hover {
  background: var(--footer-card-bg-hover);
  border-color: var(--footer-card-border-hover);
}

.site-footer--v5 .footer-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

@media (max-width: 1024px) {
  .site-footer--v5 .footer-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .site-footer--v5 .footer-cards {
    grid-template-columns: 1fr;
  }
}

.site-footer--v5 .footer-card__heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--footer-heading);
  margin: 0 0 0.65rem;
}

.site-footer--v5 .footer-card__heading svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  opacity: 0.9;
}

.site-footer--v5 .footer-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.site-footer--v5 .footer-card__list a {
  display: inline-block;
  color: var(--footer-link);
  font-size: 0.8125rem;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  padding: 0.12rem 0;
  text-decoration: none;
  border-radius: 2px;
  transition: color 160ms ease;
}

.site-footer--v5 .footer-card__list a:hover {
  color: var(--footer-link-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Two columns inside a card (tall link lists stay single-line per cell with ellipsis) */
.site-footer--v5 .footer-card__list--split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 0.75rem;
  row-gap: 0.12rem;
  align-content: start;
}

@media (max-width: 480px) {
  .site-footer--v5 .footer-card__list--split {
    grid-template-columns: 1fr;
  }
}

/* Row 4 — trust band */
.site-footer--v5 .footer-trust-band {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.35rem;
  align-items: start;
  margin-bottom: 0;
}

@media (max-width: 1024px) {
  .site-footer--v5 .footer-trust-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer--v5 .footer-trust-band__contact {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .site-footer--v5 .footer-trust-band {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .site-footer--v5 .footer-trust-band__contact {
    grid-column: auto;
  }
}

.site-footer--v5 .footer-card__list--two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1rem;
}

@media (max-width: 480px) {
  .site-footer--v5 .footer-card__list--two-col {
    grid-template-columns: 1fr;
  }
}

.site-footer--v5 .footer-trust-band__qr {
  text-align: center;
}

.site-footer--v5 .footer-trust-band__qr-img {
  width: 120px;
  height: 120px;
  display: block;
  margin: 0 auto 0.5rem;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.site-footer--v5 .footer-trust-band__qr-caption {
  font-size: 0.75rem;
  color: var(--footer-text-muted);
  line-height: 1.45;
  max-width: 220px;
  margin: 0 auto;
}

.site-footer--v5 .footer-trust-band__qr-caption a {
  color: var(--footer-link);
}

.site-footer--v5 .footer-contact-dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.75rem;
  font-size: 0.78125rem;
}

.site-footer--v5 .footer-contact-dl dt {
  font-weight: 600;
  color: var(--footer-heading);
  opacity: 0.85;
}

.site-footer--v5 .footer-contact-dl dd {
  margin: 0;
}

.site-footer--v5 .footer-contact-dl a {
  color: var(--footer-link);
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.15rem 0;
  box-sizing: content-box;
}

.site-footer--v5 .footer-trust-band__reg {
  font-size: 0.71875rem;
  color: var(--footer-text-muted);
  line-height: 1.4;
  margin: 0.5rem 0 0;
  padding-top: 0.5rem;
  border-top: 1px solid var(--footer-divider);
}

/* Row 5 — resources + legal */
.site-footer--v5 .footer-resources {
  font-size: 0.75rem;
  color: var(--footer-text-muted);
  line-height: 1.65;
  padding-top: 0.75rem;
  border-top: 1px solid var(--footer-divider);
  margin-top: 1.1rem;
}

.site-footer--v5 .footer-resources__label {
  font-weight: 600;
  color: var(--footer-heading);
  margin-right: 0.5rem;
}

.site-footer--v5 .footer-resources a {
  color: var(--footer-link);
  text-decoration: none;
  margin: 0 0.15rem;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.1rem 0.05rem;
}

.site-footer--v5 .footer-resources a:hover {
  color: var(--footer-link-hover);
  text-decoration: underline;
}

.site-footer--v5 .footer-legal__copyright {
  margin: 0;
  max-width: 68ch;
  line-height: 1.45;
}

.site-footer--v5 .footer-legal {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding-top: 0.75rem;
  margin-top: 0.5rem;
  border-top: 1px solid var(--footer-divider);
  font-size: 0.71875rem;
  color: var(--footer-text-muted);
}

@media (min-width: 1280px) {
  .site-footer--v5 .footer-legal {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 0.75rem 1.25rem;
  }

  .site-footer--v5 .footer-legal__copyright {
    max-width: none;
    min-width: 0;
  }

  .site-footer--v5 .footer-legal__links {
    justify-content: flex-end;
    flex-shrink: 0;
  }
}

.site-footer--v5 .footer-legal__copyright a {
  color: var(--footer-link);
}

.site-footer--v5 .footer-legal__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  align-items: center;
}

.site-footer--v5 .footer-legal__links li {
  margin: 0;
}

.site-footer--v5 .footer-legal__links a,
.site-footer--v5 .footer-legal__cookie-settings {
  color: var(--footer-link);
  text-decoration: none;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  min-width: 24px;
}

.site-footer--v5 .footer-legal__cookie-settings:hover,
.site-footer--v5 .footer-legal__links a:hover {
  color: var(--footer-link-hover);
  text-decoration: underline;
}

@media (pointer: coarse) {
  .site-footer--v5 .footer-legal__cookie-settings {
    min-height: 44px;
    padding: 0.35rem 0.5rem;
  }
}

/* Desktop (wide): tighter vertical rhythm to keep footer scroll depth reasonable */
@media (min-width: 1025px) {
  .site-footer--v5 {
    margin-top: 1.25rem;
    padding: clamp(1.1rem, 2vw, 1.65rem) clamp(1rem, 3vw, 2rem) clamp(0.7rem, 1.2vw, 1.05rem);
  }

  .site-footer--v5 .footer-brand {
    padding-bottom: 0.55rem;
    margin-bottom: 0.55rem;
  }

  .site-footer--v5 .footer-editorial-strip {
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.85rem;
  }

  .site-footer--v5 .footer-cards {
    gap: 0.6rem;
    margin-bottom: 0.55rem;
  }

  .site-footer--v5 .footer-card {
    padding: 0.75rem 1rem;
  }

  .site-footer--v5 .footer-card__heading {
    margin: 0 0 0.5rem;
  }

  .site-footer--v5 .footer-trust-band {
    gap: 1rem;
  }

  .site-footer--v5 .footer-resources {
    padding-top: 0.55rem;
    margin-top: 0.85rem;
  }

  .site-footer--v5 .footer-legal {
    padding-top: 0.55rem;
    margin-top: 0.35rem;
  }
}
