.analytics-consent-banner {
  position: fixed;
  z-index: 1000;
  inset: auto 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px max(24px, calc((100vw - 1120px) / 2));
  background: #f5f1f6;
  border-top: 1px solid #d5d9da;
  box-shadow: 0 -8px 24px rgb(47 72 88 / 9%);
  color: #2f4858;
  font: 400 15px/1.5 'Nunito', Arial, sans-serif;
}
.analytics-consent-banner p { max-width: 68ch; margin: 0; }
.analytics-consent-banner a { color: inherit; }
.analytics-consent-actions { display: flex; flex: 0 0 auto; gap: 10px; }
.analytics-consent-actions button,
.cookie-preferences-button {
  min-height: 44px;
  padding: 9px 18px;
  border: 1px solid #806174;
  border-radius: 0;
  background: transparent;
  color: #2f4858;
  font: 700 14px/1.3 'Nunito', Arial, sans-serif;
  cursor: pointer;
}
.analytics-consent-actions button:hover,
.cookie-preferences-button:hover { background: #eadde4; }
.analytics-consent-actions .analytics-consent-accept { background: #806174; color: #fff; }
.analytics-consent-actions .analytics-consent-accept:hover { background: #654b5d; }
.cookie-preferences-button { margin: 10px 0 0; padding: 4px 0; border: 0; min-height: 0; color: inherit; text-decoration: underline; font-weight: 400; }
.brand-footer { background: #2f4858; color: #fdfdfc; padding: 28px max(32px, calc((100vw - 1240px) / 2)) 16px; margin-top: 0; }
.brand-footer .footer-inner { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr); align-items: stretch; gap: 16px 40px; }
.footer-logo-column { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.brand-footer .footer-brand { display: block; }
.brand-footer .footer-brand img { width: 72px; height: 72px; object-fit: contain; }
.brand-footer .footer-logo-column p { margin: 4px 0 0; font-size: .68rem; line-height: 1.3; white-space: nowrap; opacity: .75; }
.footer-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 12px; max-width: 840px; }
.brand-footer .footer-columns .footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.footer-cookie-slot { display: block; }
.brand-footer > p { margin: 14px 0 0; font-size: .75rem; opacity: .75; }
.brand-footer .footer-column > a,
.brand-footer .footer-column .cookie-preferences-button { display: inline-flex; align-items: center; min-height: 30px; padding: 2px 0; color: inherit; font: 400 .9rem/1.35 var(--body, 'Nunito', Arial, sans-serif); text-underline-offset: 5px; text-align: left; }
.brand-footer .footer-column .cookie-preferences-button { margin: 0; border: 0; background: transparent; cursor: pointer; }
.brand-footer .footer-column .cookie-preferences-button:hover { background: transparent; text-decoration-thickness: 2px; }
.brand-footer .footer-column > .footer-contact { min-height: 30px; margin-top: 4px; padding: 4px 12px; border: 1px solid currentColor; text-decoration: none; }
@media (max-width: 700px) {
  .analytics-consent-banner { align-items: stretch; flex-direction: column; gap: 12px; padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); }
  .analytics-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .analytics-consent-actions button { padding-inline: 10px; }
}
@media (max-width: 650px) {
  .brand-footer { padding: 24px 22px 16px; }
  .brand-footer .footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .brand-footer .footer-brand img { width: 64px; height: 64px; }
  .brand-footer .footer-column > a,
  .brand-footer .footer-column .cookie-preferences-button { min-height: 36px; }
  .footer-columns { display: contents; }
  .brand-footer .footer-columns .footer-column { gap: 0; }
}
.cookie-preferences-fallback { position: fixed; z-index: 900; right: 16px; bottom: 12px; padding: 6px 10px; background: #fdfdfc; }
body.has-analytics-consent { padding-bottom: var(--analytics-banner-height, 0px); }
