/* Shared public footer for the website, support pages and simulation entry pages. */
.ref-footer { background: #043d30; color: #d1e2d9; padding: 64px 0 24px; }
.ref-footer .ref-footer-top { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 1.8fr); align-items: start; gap: 72px; margin-bottom: 48px; }
.ref-footer .ref-footer-brand { min-width: 0; }
.ref-footer .ref-brand-footer { display: inline-flex; padding: 0; border: 0; background: transparent; }
.ref-footer .brand-logo-footer { display: block; width: 128px; height: auto; }
.ref-footer .ref-footer-brand > p { max-width: 30ch; margin: 20px 0 0; color: #c0d7cb; font-size: 15px; line-height: 1.8; }
.ref-footer nav.ref-footer-navigation { display: grid; grid-template-columns: 1fr 1.35fr .8fr; gap: 32px; align-items: start; padding: 8px 0 0; }
.ref-footer-column { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.ref-footer .ref-footer-column h2 { margin: 0 0 16px; color: #fff; font: 650 16px/1.5 var(--font-body, system-ui, sans-serif); letter-spacing: 0; }
.ref-footer .ref-footer-column a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; padding: 7px 0; color: #c0d7cb; font-size: 15px; line-height: 1.55; text-decoration: none; }
.ref-footer .ref-footer-column a:hover { color: #fff; text-decoration: none; }
.ref-footer .ref-footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px 32px; border-top: 1px solid #ffffff24; padding-top: 20px; }
.ref-footer .ref-footer-bottom small { color: #b8d1c4; font-size: 13px; line-height: 1.6; }
.ref-footer .ref-footer-bottom > div { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.ref-footer .ref-footer-bottom button { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; color: #c0d7cb; font-size: 14px; line-height: 1.5; text-align: left; }
.ref-footer .ref-footer-bottom button:hover { color: #fff; text-decoration: none; }
.ref-footer :is(.ref-footer-column a, .ref-footer-bottom a, .ref-footer-bottom button) { position: relative; text-decoration: none; }
.ref-footer :is(.ref-footer-column a, .ref-footer-bottom a, .ref-footer-bottom button)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 3px; height: 2px; background: #e0b636; border-radius: 1px; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease-out; pointer-events: none; }
.ref-footer :is(.ref-footer-column a, .ref-footer-bottom a, .ref-footer-bottom button):focus-visible { color: #fff; text-decoration: none; }
.ref-footer :is(.ref-footer-column a, .ref-footer-bottom a, .ref-footer-bottom button):focus-visible::after { transform: scaleX(1); }
.ref-footer :is(.ref-footer-column a, .ref-footer-bottom a, .ref-footer-bottom button):hover::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
  .ref-footer :is(.ref-footer-column a, .ref-footer-bottom a, .ref-footer-bottom button)::after { transition: none; }
}
.ref-footer :is(a, button):focus-visible { outline: 2px solid #e0b636; outline-offset: 5px; border-radius: 3px; }
@media(max-width:1000px) {
  .ref-footer .ref-footer-top { grid-template-columns: 1fr; gap: 36px; }
  .ref-footer .ref-footer-brand > p { max-width: 44ch; }
  .ref-footer nav.ref-footer-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
}
@media(max-width:600px) {
  .ref-footer { padding: 40px 0 20px; }
  .ref-footer .ref-footer-top { gap: 32px; margin-bottom: 32px; }
  .ref-footer .brand-logo-footer { width: 112px; }
  .ref-footer .ref-footer-brand > p { max-width: 32ch; margin-top: 16px; }
  .ref-footer nav.ref-footer-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; padding-top: 0; }
  .ref-footer .ref-footer-column h2 { margin-bottom: 10px; }
  .ref-footer .ref-footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
  .ref-footer .ref-footer-bottom > div { gap: 4px 24px; }
}
