/* Shared branding using the supplied FamilyGo artwork. */
.site-header .brand,
.site-footer .footer-brand-line {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0;
  width: auto !important;
  text-decoration: none;
}
.site-header .brand img.fg-brand-symbol,
.site-footer .footer-brand-line img.fg-brand-symbol {
  display: block !important;
  width: 48px !important;
  height: 48px !important;
  flex: 0 0 48px;
  object-fit: contain !important;
  filter: none !important;
  box-shadow: none !important;
}
.fg-brand-name {
  color: #173f4b !important;
  font-family: Poppins, sans-serif;
  font-size: 25px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  white-space: nowrap;
}
.fg-brand-name > span { color: #488f83; }
.site-footer .footer-brand-line .fg-brand-name { font-size: 23px !important; }
@media (max-width: 760px) {
  body .site-header { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
  body .site-header .brand { align-self: center !important; }
  body .site-header .nav a { grid-area: auto !important; grid-column: auto !important; grid-row: auto !important; width: auto !important; min-width: 0 !important; margin: 0 !important; position: static !important; }
  .site-header .nav { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 6px !important; width: 100% !important; }
  .site-header .nav a { display: flex !important; align-items: center !important; justify-content: center !important; min-height: 44px !important; padding: 6px 0 !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.4 !important; letter-spacing: 0 !important; }
  body .site-header .nav a.cta { grid-column: 1 / -1 !important; padding: 10px 16px !important; font-size: 14px !important; font-weight: 600 !important; }
  .site-header .brand { gap: 8px !important; }
  .site-header .brand img.fg-brand-symbol { width: 40px !important; height: 40px !important; flex-basis: 40px; }
  .site-header .fg-brand-name { font-size: 21px !important; }
}
@media (max-width: 380px) {
  .site-header .nav { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .site-header .brand { gap: 6px !important; }
  .site-header .fg-brand-name { font-size: 18px !important; }
}

.cookie-consent { width: min(680px, calc(100% - 32px)) !important; inset: auto 16px 16px auto !important; transform: none !important; margin: 0 !important; }
.cookie-consent .cookie-consent-card { grid-template-columns: 1fr !important; gap: 18px !important; padding: 24px !important; border: 1px solid #d6e0e2 !important; border-radius: 8px !important; background: #fff !important; box-shadow: 0 8px 32px rgba(23, 63, 75, .14) !important; max-height: calc(100dvh - 32px); overflow-y: auto; }
.cookie-consent .cookie-kicker { display: none !important; }
.cookie-consent h2 { max-width: none !important; margin: 0 0 10px !important; font-family: Poppins, sans-serif !important; font-size: 18px !important; font-weight: 600 !important; line-height: 1.4 !important; color: #173f4b !important; }
.cookie-consent p { max-width: none !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.6 !important; color: #536b71 !important; }
.cookie-consent a { font-size: 12px !important; font-weight: 400 !important; color: #173f4b !important; text-decoration: underline !important; text-underline-offset: 3px; }
.cookie-consent .cookie-consent-actions { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; min-width: 0 !important; }
.cookie-consent .cookie-btn { min-height: 44px !important; padding: 10px 12px !important; border: 1px solid #b8c9ce !important; border-radius: 6px !important; background: #fff !important; color: #173f4b !important; font-size: 13px !important; font-weight: 500 !important; box-shadow: none !important; transform: none !important; white-space: normal; }
.cookie-consent .cookie-btn:hover { background: #f2f6f5 !important; }
.cookie-consent .cookie-btn:focus-visible { outline: 2px solid #173f4b; outline-offset: 3px; }
.cookie-consent [hidden] { display: none !important; }
.cookie-consent .cookie-consent-actions.compact { grid-template-columns: minmax(0, 1fr) auto !important; }
.cookie-consent .cookie-toggle { border-radius: 6px !important; box-shadow: none !important; background: #f8faf9 !important; }
@media (max-width: 480px) {
  .cookie-consent .cookie-consent-card { padding: 18px !important; gap: 14px !important; }
  .cookie-consent .cookie-consent-actions { grid-template-columns: 1fr !important; }
}

/* Shared programme bands, without changing page-specific links or copy. */
body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 28px !important;
  padding: 30px 32px !important;
  min-height: 0 !important;
  background: #173f4b !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  text-align: left !important;
  font-family: Poppins, sans-serif !important;
  letter-spacing: 0 !important;
}
body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta)::before { content: none !important; }
body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) > div { min-width: 0; }
body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) h2 {
  margin: 0 0 10px !important;
  color: #fff !important;
  font: 500 24px/1.4 Poppins, sans-serif !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
}
body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) p {
  margin: 0 !important;
  max-width: 68ch !important;
  color: #dce8eb !important;
  font: 400 14px/1.75 Poppins, sans-serif !important;
}
body :is(.editorial-cta > div > span, .fg-home-final-inner .fg-home-kicker) {
  display: block !important;
  margin: 0 0 10px !important;
  color: #f1cd68 !important;
  background: none !important;
  padding: 0 !important;
  font: 500 11px/1.5 Poppins, sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 0 !important;
}
body :is(.editorial-cta-actions, .fg-home-final-inner .fg-home-actions, .fg-lyon-seo-cta .fg-lyon-seo-actions) {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 10px !important;
  max-width: 440px !important;
  margin: 0 !important;
}
body .editorial-cta-primary { display: contents !important; }
body :is(.editorial-cta .button, .fg-home-final-inner .fg-home-btn, .fg-lyon-seo-cta .fg-lyon-seo-btn) {
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: auto !important;
  max-width: 100% !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 11px 18px !important;
  border: 1px solid #edc24e !important;
  border-radius: 5px !important;
  background: #edc24e !important;
  color: #173f4b !important;
  font: 500 13px/1.5 Poppins, sans-serif !important;
  text-align: center !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transform: none !important;
}
body .editorial-cta.editorial-cta .button.ghost,
body .fg-lyon-seo-cta.fg-lyon-seo-cta .fg-lyon-seo-btn-secondary {
  background: #f3f7f6 !important;
  color: #173f4b !important;
  border-color: #c7d8db !important;
}
body :is(.editorial-cta .button, .fg-home-final-inner .fg-home-btn, .fg-lyon-seo-cta .fg-lyon-seo-btn)::after { content: none !important; }
body :is(.editorial-cta .button, .fg-home-final-inner .fg-home-btn, .fg-lyon-seo-cta .fg-lyon-seo-btn):hover { filter: brightness(1.08); }
body :is(.editorial-cta .button, .fg-home-final-inner .fg-home-btn, .fg-lyon-seo-cta .fg-lyon-seo-btn):focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
body .fg-lyon-seo-cta { row-gap: 0 !important; }
body .fg-lyon-seo-cta h2, body .fg-lyon-seo-cta p { grid-column: 1; }
body .fg-lyon-seo-cta .fg-lyon-seo-actions { grid-column: 2; grid-row: 1 / 3; }
@media (max-width: 1024px) {
  body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) { grid-template-columns: minmax(0, 1fr) !important; gap: 22px !important; }
  body .fg-lyon-seo-cta .fg-lyon-seo-actions { grid-column: 1; grid-row: auto; margin-top: 22px !important; }
}
@media (max-width: 600px) {
  body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) { padding: 24px 22px !important; gap: 20px !important; }
  body :is(.editorial-cta, .fg-home-final-inner, .fg-lyon-seo-cta) h2 { font-size: 21px !important; }
  body :is(.editorial-cta-actions, .fg-home-final-inner .fg-home-actions, .fg-lyon-seo-cta .fg-lyon-seo-actions) { flex-direction: column !important; align-items: stretch !important; max-width: none !important; }
  body :is(.editorial-cta .button, .fg-home-final-inner .fg-home-btn, .fg-lyon-seo-cta .fg-lyon-seo-btn) { width: 100% !important; }
}
