/* Redesigned footer + tidy "Sponsored by" strip (Duncan 28 Sep 2026). Matches the slim top bar. */
footer.hcr-f2 { background: #F7F8FA !important; color: #2B2F36 !important; border-top: 1px solid #C9D0DA !important; }
footer.hcr-f2 > :not(#hcr-footer2) { display: none !important; }
.f2 { max-width: 72rem; margin: 0 auto; padding: 36px 20px 20px; font-family: "Source Sans 3", "Segoe UI", system-ui, sans-serif; color: #2B2F36; }
.f2-grid { display: grid; grid-template-columns: 1fr; gap: 28px; text-align: center; justify-items: center; }
.f2-logo { display: inline-block; line-height: 0; border-radius: 8px; }
.f2-logo img { height: 72px; width: auto; max-width: 100%; object-fit: contain; }
.f2-tag { margin: 12px auto 0; max-width: 30ch; font-size: 15px; line-height: 1.45; color: #4A5260; }
.f2-h { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #2F4A63; }
.f2-list, .f2-links { list-style: none; margin: 0; padding: 0; }
.f2-list { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; width: max-content; max-width: 100%; margin: 0 auto; }
.f2-row { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 4px 10px; border-radius: 12px; color: #2B2F36 !important; text-decoration: none !important; text-align: left; }
a.f2-row:hover, a.f2-row:focus-visible { background: #EEF1F5; }
a.f2-row:focus-visible, .f2-links a:focus-visible, .f2-logo:focus-visible { outline: 2px solid #2F4A63; outline-offset: 2px; }
.f2-ico { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid #C9D0DA; background: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; color: #2F4A63; }
.f2-txt { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.f2-txt b { font-weight: 600; font-size: 15px; overflow-wrap: anywhere; }
.f2-txt small { font-size: 12.5px; color: #5A6270; }
.f2-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; max-width: 340px; }
.f2-nav { width: 100%; display: flex; flex-direction: column; align-items: center; }
.f2-links a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 12px; border: 1px solid #C9D0DA; border-radius: 999px; background: #FFFFFF; color: #2B2F36 !important; font-size: 14px; font-weight: 600; text-decoration: none !important; white-space: nowrap; }
.f2-links a:hover { background: #EEF1F5; }
.f2-copy { margin: 28px 0 0; padding-top: 16px; border-top: 1px solid #DDE2E8; text-align: center; font-size: 13px; color: #5A6270; }
@media (min-width: 820px) {
  .f2 { padding: 48px 32px 24px; }
  .f2-grid { grid-template-columns: 1.3fr 1.2fr 1fr 1fr; gap: 32px; text-align: left; justify-items: stretch; align-items: start; }
  .f2-logo img { height: 80px; }
  .f2-tag { margin-left: 0; }
  .f2-list { align-items: flex-start; margin: 0; width: auto; }
  .f2-row { padding-left: 0; margin-left: 0; }
  a.f2-row:hover { background: transparent; } a.f2-row:hover b { text-decoration: underline; }
  .f2-nav { align-items: stretch; }
  .f2-links { grid-template-columns: 1fr; gap: 0; max-width: none; }
  .f2-links a { justify-content: flex-start; border: 0; background: transparent; padding: 0; min-height: 44px; font-weight: 500; }
  .f2-links a:hover { background: transparent; text-decoration: underline !important; }
  .f2-copy { text-align: left; }
}
/* Sponsor strip, tidied into the same style */
.sp-strip { background: #FFFFFF !important; border-top: 1px solid #C9D0DA !important; border-bottom: 0 !important; text-decoration: none !important; }
.sp-strip .sp-strip__inner { max-width: 72rem; margin: 0 auto; padding: 24px 20px !important; gap: 14px !important; }
.sp-strip .sp-strip__label { font-size: 12px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: #2F4A63 !important; }
.sp-strip .sp-chip { border: 1px solid #C9D0DA !important; border-radius: 12px !important; background: #FFFFFF !important; }
.sp-strip .sp-chip--text { color: #2B2F36 !important; }
.sp-strip .sp-strip__inner { flex-direction: column !important; align-items: center !important; }
.sp-strip .sp-strip__row { justify-content: center !important; }
/* Visit sits in a second column beside Contact on phones and tablets (Duncan 28 Sep 2026) */
@media (max-width: 819.98px) {
  .f2-grid { grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 28px; }
  .f2-brand, .f2-nav { grid-column: 1 / -1; }
  .f2-contact, .f2-visit { justify-self: stretch; text-align: left; min-width: 0; }
  .f2-contact .f2-h, .f2-visit .f2-h { text-align: left; }
  .f2-contact .f2-list, .f2-visit .f2-list { margin: 0; width: auto; }
  .f2-contact .f2-row, .f2-visit .f2-row { gap: 8px; padding: 4px 0; }
  .f2-contact .f2-ico, .f2-visit .f2-ico { flex-basis: 30px; width: 30px; height: 30px; }
  .f2-contact .f2-txt b, .f2-visit .f2-txt b { font-size: 14.5px; }
  .f2-email { overflow-wrap: normal !important; word-break: normal; }
}
@media (min-width: 560px) and (max-width: 819.98px) {
  .f2-grid { grid-template-columns: auto auto; justify-content: center; column-gap: 48px; }
}
/* Email moved into the Visit column (Duncan 28 Sep 2026): Visit gets the wider column */
@media (max-width: 819.98px) {
  .f2-grid { grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; }
}
@media (min-width: 560px) and (max-width: 819.98px) {
  .f2-grid { grid-template-columns: auto auto; justify-content: center; column-gap: 48px; }
}
@media (min-width: 820px) {
  .f2-grid { grid-template-columns: 1.3fr 1fr 1.3fr 0.9fr; }
}
/* Phones/tablets: Contact (phone + text) and Visit (address + hours) side by side; the Visit email row spans both columns on one line */
@media (max-width: 819.98px) {
  .f2-grid { grid-template-areas: "brand brand" "ch vh" "cl v1" "cl v2" "em em" "nav nav"; row-gap: 0; }
  .f2-brand { grid-area: brand; margin-bottom: 28px; }
  .f2-contact, .f2-visit, .f2-visit > .f2-list { display: contents; }
  .f2-contact > .f2-h { grid-area: ch; }
  .f2-visit > .f2-h { grid-area: vh; }
  .f2-contact > .f2-list { grid-area: cl; align-self: start; margin: 0; }
  .f2-visit > .f2-list > li:nth-child(1) { grid-area: v1; }
  .f2-visit > .f2-list > li:nth-child(2) { grid-area: v2; margin-top: 2px; }
  .f2-visit > .f2-list > li:nth-child(3) { grid-area: em; justify-self: start; margin-top: 2px; text-align: left; }
  .f2-email { white-space: nowrap; }
  .f2-nav { grid-area: nav; margin-top: 28px; }
}
@media (max-width: 819.98px) {
  .f2-contact > .f2-h, .f2-visit > .f2-h, .f2-contact > .f2-list, .f2-visit > .f2-list > li { justify-self: start; text-align: left; }
}
/* Centre the Contact | Visit block and the email row as one unit on phones and tablets (Duncan 28 Sep 2026) */
@media (max-width: 819.98px) {
  .f2-grid { grid-template-columns: minmax(0, 1fr) auto auto minmax(0, 1fr); column-gap: 0; justify-content: stretch;
    grid-template-areas: "brand brand brand brand" ". ch vh ." ". cl v1 ." ". cl v2 ." ". em em ." "nav nav nav nav"; }
  .f2-contact > .f2-h, .f2-contact > .f2-list { margin-right: 16px; }
}
@media (min-width: 560px) and (max-width: 819.98px) {
  .f2-contact > .f2-h, .f2-contact > .f2-list { margin-right: 48px; }
}
