/* Keyboard and form support is universal; visual adaptations are an explicit preference. */
:root {
  --a11y-ink: #083b54;
  --a11y-action: #005b83;
  --a11y-focus: #001f35;
}
html.a11y-mode {
  --site-button-bg: var(--a11y-action);
  --site-button-text: #fff;
  --site-button-hover-bg: #034364;
  --site-button-hover-text: #fff;
  --site-button-outline: var(--a11y-action);
  --site-button-outline-hover-bg: var(--a11y-action);
  --site-button-outline-hover-text: #fff;
  --mobile-nav-active: var(--a11y-action);
  --site-muted: #536773;
}
[hidden] { display: none !important; }
html { scroll-padding-top: 10rem; }
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--a11y-focus) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff !important;
}
:where(input,select,textarea,button,a,summary,[tabindex]) { scroll-margin-block: 10rem 8rem; }
#site-content:focus { outline: none; }
.skip-link {
  position: fixed; top: .75rem; left: .75rem; z-index: 100000;
  padding: .8rem 1.2rem; color: #fff; background: #083b54;
  border-radius: .4rem; font-weight: 700; transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); color: #fff; }
html.a11y-mode .site-header .site-nav a, html.a11y-mode .site-header .site-nav a:hover, html.a11y-mode .site-header .login-icon, html.a11y-mode .site-header .login-icon:hover { color: var(--a11y-ink); }
html.a11y-mode .site-header .login-icon { border-color: var(--a11y-ink); }
html.a11y-mode .site-header .site-nav .menu-item-icon { color: inherit; opacity: 1; }
html.a11y-mode .site-top-strip { background: #006b9c; }
html.a11y-mode .site-top-nav a, html.a11y-mode .site-top-nav a:hover { color: #fff; opacity: 1; }
html.a11y-mode .site-footer, html.a11y-mode .site-footer a, html.a11y-mode .site-footer a:hover, html.a11y-mode .site-footer .footer-heading, html.a11y-mode .site-footer .footer-consent-link, html.a11y-mode .site-footer .footer-company, html.a11y-mode .site-footer .footer-bottom, html.a11y-mode .site-footer .footer-copyright, html.a11y-mode .site-footer .footer-credit {
  color: #001727; opacity: 1;
}
html.a11y-mode .site-footer .social-link { color: #001727; border-color: #001727; }
html.a11y-mode .site-footer .menu-item-icon { opacity: 1; }
html.a11y-mode .site-footer a:hover, html.a11y-mode .footer-consent-link:hover { text-decoration: underline; }
html.a11y-mode .btn-site, html.a11y-mode .btn-primary { --bs-btn-bg: var(--a11y-action); --bs-btn-border-color: var(--a11y-action); --bs-btn-color: #fff; --bs-btn-hover-bg: #034364; --bs-btn-hover-border-color: #034364; --bs-btn-hover-color: #fff; }
html.a11y-mode .btn-outline-primary { --bs-btn-color: var(--a11y-action); --bs-btn-border-color: var(--a11y-action); --bs-btn-hover-bg: var(--a11y-action); --bs-btn-hover-border-color: var(--a11y-action); --bs-btn-hover-color: #fff; }
html.a11y-mode .text-muted, html.a11y-mode .form-text { color: #536773 !important; }
html.a11y-mode :where(.legal-content,.editorial-copy,.public-form,.customer-portal-content) p a:not(.btn), html.a11y-mode .public-form-privacy, html.a11y-mode .form-check-label a { color: #005b83; text-decoration: underline; text-underline-offset: .15em; }
html.a11y-mode .form-control, html.a11y-mode .form-select { border-color: #758895; }
html.a11y-mode .form-control::placeholder { color: #596b77; opacity: 1; }
html.a11y-mode .form-check-input { border-color: #657d8d; }
html.a11y-mode .form-check-input:checked { background-color: #005b83; border-color: #005b83; }

fieldset.customer-checkbox-group { min-width: 0; border: 0; padding: 0; margin: 0; }
.customer-checkbox-group legend { font-size: 1rem; float: none; }
.btn, summary, .footer-menu a, .footer-consent-link, .site-nav a { min-height: 2.75rem; }
.footer-menu a, .footer-consent-link { padding-block: .4rem; }
.customer-profile-form, .public-form, .legal-content { overflow-wrap: anywhere; }
.privacy-banner { max-height: calc(100dvh - 1.5rem); overflow-y: auto; overscroll-behavior: contain; }
.public-support-panel { max-height: calc(100dvh - 2rem); overflow-y: auto; overscroll-behavior: contain; }
.public-support-panel .form-label { font-size: .85rem; }
body.a11y-dialog-open { overflow: hidden; }
.flyer-accessibility { background: #edf8fd; border: 1px solid #65899e; padding: 1rem 1.25rem; border-radius: 1rem; }
.flyer-accessibility summary { font-weight: 700; color: #083b54; cursor: pointer; padding-block: .5rem; }
.flyer-pan-controls { display: flex; gap: .5rem; justify-content: center; margin: 1rem 0; flex-wrap: wrap; }
.flyer-pan-controls button { min-width: 2.75rem; }
.flyer-thumb[aria-current="page"] { outline: 3px solid #005b83; outline-offset: -3px; }
/* A single, always reachable preference stops automatic decorative movement. */
html.a11y-reduce-motion *, html.a11y-reduce-motion *::before, html.a11y-reduce-motion *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
html.a11y-reduce-motion [data-aos] { opacity: 1 !important; transform: none !important; }
html:not(.a11y-mode) [data-a11y-only] { display: none !important; }
html:not(.a11y-mode) .a11y-instructions { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important; }

@media (max-width: 767px) {
  html { scroll-padding-top: 1rem; }
  .privacy-banner { max-height: calc(100dvh - 1.5rem); bottom: .75rem; z-index: 1090; }
  .public-support-panel { max-height: calc(100dvh - 1.5rem); }
  .site-mobile-menu, .customer-portal-offcanvas { max-height: 100dvh; }
  .mobile-app-nav a, .mobile-app-nav button { min-height: 3.5rem; }
  .customer-portal-content, .customer-portal-grid > * { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}
@media (forced-colors: active) {
  :where(a,button,input,textarea,select,summary,[tabindex]):focus-visible { outline: 3px solid Highlight !important; }
  .btn, .flyer-round-btn, .motion-control, .form-control, .form-select { border: 1px solid ButtonText; }
}
html.a11y-mode .editorial-tone-blue .editorial-copy, html.a11y-mode .editorial-tone-blue .editorial-copy p, html.a11y-mode .editorial-tone-blue .editorial-eyebrow, html.a11y-mode .editorial-tone-blue .editorial-title { color: #fff; }
html.a11y-mode .editorial-caption, html.a11y-mode .editorial-visual figcaption { color: #536773; }
html.a11y-mode .store-province-count { color: #164865; }
html.a11y-mode .flyer-accessibility a:not(.btn), html.a11y-mode .customer-portal-nav a.is-active, html.a11y-mode .customer-portal-nav a i, html.a11y-mode .privacy-banner-kicker { color: #005b83; }
html.a11y-mode .flyer-accessibility a:not(.btn) { text-decoration: underline; }
html.a11y-mode .public-support-panel > header { background: #005b83; }
html.a11y-mode .public-support-panel > header small { opacity: 1; }
html.a11y-mode .editorial-eyebrow { color: #005b83; }
html.a11y-mode .editorial-tone-blue .editorial-eyebrow { color: #fff; }
html.a11y-mode .editorial-section .editorial-figure figcaption { color: #536773; }
html.a11y-mode .store-province-count { opacity: 1; }

/* Preserve readable text over bright photography, including narrow layouts. */
html.a11y-mode .editorial-cover-stage:not(.editorial-cover-brands):not(.editorial-cover-campaign):not(.editorial-cover-symbol)::after {
  background: linear-gradient(90deg,rgba(0,30,50,.8),rgba(0,35,60,.68) 60%,rgba(0,35,60,.2));
}
@media (max-width:767px) {
  html.a11y-mode .editorial-cover-stage:not(.editorial-cover-brands):not(.editorial-cover-campaign):not(.editorial-cover-symbol)::after { background: rgba(0,30,50,.72); }
}

/* The entry point and preferences themselves are readable in both presentations. */
.site-preference-launchers { position: fixed; z-index: 1064; left: max(20px, env(safe-area-inset-left)); bottom: max(24px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 12px; }
.site-preference-launchers > button { position: static; width: 58px; height: 58px; flex: 0 0 58px; padding: 0; border: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.2); font-size: 1.4rem; transition: transform .16s ease, box-shadow .16s ease; }
.site-preference-launchers > .accessibility-preferences-launcher { color: #006b9c; }
.site-preference-launchers > button:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(0,0,0,.25); }
body.a11y-dialog-open .site-preference-launchers, body.modal-open .site-preference-launchers,
body:has(.offcanvas.show,.offcanvas.showing,[data-consent-banner]:not([hidden])) .site-preference-launchers { visibility: hidden; pointer-events: none; }
@media (forced-colors: active) {
  .site-preference-launchers > button { border: 1px solid ButtonText; color: ButtonText; }
}
.a11y-preferences { color: #083b54; }
.a11y-preferences .modal-content { background: #fff; border-radius: 1.25rem; }
.a11y-preferences .modal-title, .a11y-preferences p, .a11y-preferences label { color: #083b54; }
.a11y-preferences .modal-body { padding: 1.25rem; }
.a11y-preferences .modal-body a { color: #005b83; text-decoration: underline; }
.a11y-option { padding: 1rem; margin: 1rem 0; background: #edf8fd; border-radius: .75rem; }
.a11y-option .form-check { font-weight: 700; min-height: 2.75rem; display: flex; align-items: center; gap: .6rem; padding-left: 0; }
.a11y-option .form-check-input { flex: 0 0 2.4rem; height: 1.3rem; margin: 0; border-color: #536773; }
.a11y-option .form-check-input:checked { background-color: #005b83; border-color: #005b83; }
.a11y-option p { margin: .5rem 0 0; font-size: .9rem; }
.a11y-choice-status { font-weight: 600; }
.a11y-preferences .a11y-done { background: #005b83; color: #fff; }
.a11y-preferences .a11y-reset { border: 1px solid #536773; color: #083b54; background: #fff; }
@media (max-width: 767.98px) {
  .site-preference-launchers { display: none; }
  .a11y-preferences .modal-dialog { margin: .5rem; }
  .a11y-preferences .modal-content { max-height: calc(100dvh - 1rem); }
  .a11y-preferences .modal-footer { flex-wrap: wrap; }
}

.privacy-banner .privacy-banner-kicker { color: #005b83; }
.privacy-banner .btn-site { --bs-btn-bg: #005b83; --bs-btn-color: #fff; --bs-btn-hover-bg: #034364; --bs-btn-hover-color: #fff; }

/* Switching presentation must itself be readable before the mode is enabled. */
[data-a11y-toggle].btn-site { --bs-btn-bg: #005b83; --bs-btn-border-color: #005b83; --bs-btn-color: #fff; --bs-btn-hover-bg: #034364; --bs-btn-hover-color: #fff; }
[data-a11y-open].btn-outline-secondary { --bs-btn-color: #083b54; --bs-btn-border-color: #536773; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #083b54; }
