html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
    margin-bottom: 60px;
    font-family: "Hanken Grotesk", sans-serif;
}

/* Custom Brand Colors (global tokens — shared by header, footer, cart) */
.bg-dark-blue {
    background-color: #193D6A;
}
.bg-dark-blue-lighter {
    background-color: #1A4479;
}

.bg-teal {
    background-color: #277DA3;
}

/* ===== Accessibility: visible keyboard focus =====
   Main.css removes focus rings on mouse focus; ensure keyboard users always
   get a visible focus indicator on interactive elements. */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.cart-pill:focus-visible,
.tax-navtab:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #258cfb;
    outline-offset: 2px;
}

/* Screen-reader-only helper (used for accessible names where needed) */
.visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
