/* Targeted accessibility corrections; the existing visual system remains authoritative. */
:root { --a11y-focus: #176594; }
html { scroll-padding-top: calc(var(--a11y-header-height, 0px) + 16px); }
:where(main, section[id], h1, h2, h3, input, select, textarea, button, summary) {
  scroll-margin-block: calc(var(--a11y-header-height, 0px) + 16px) 24px;
}
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--a11y-focus) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #fff;
}
body .site-header:focus-within { opacity: 1 !important; transform: none !important; pointer-events: auto !important; }
.a11y-skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 2147483646;
  padding: 12px 20px; border-radius: 8px; background: #fff; color: #173b52;
  font: 700 1rem/1.5 var(--font-body, sans-serif); text-decoration: underline;
  transform: translateY(-200%);
}
.a11y-skip-link:focus { transform: none; }
body :is(button, summary) { min-height: 24px; min-width: 24px; }
body :is(.menu-toggle, .language-menu > button, .language-menu > div a,
  .case-dialog-close, .case-dialog-nav, .gallery-rotate, .review-wall-close) {
  min-width: 44px; min-height: 44px;
}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select, textarea) {
  border-color: #7b7d85;
}
body :is(input, select, textarea)[aria-invalid=true] { border: 2px solid #a52632; }
.a11y-field-error { display: block; color: #a52632; font-size: .9375rem; font-weight: 700; line-height: 1.5; margin-top: 6px; }
.a11y-field-error[hidden] { display: none; }
.a11y-form-note { grid-column: 1 / -1; color: var(--color-text-muted, #565963); font-size: .875rem; line-height: 1.5; margin: 0 0 16px; }
:is(label, legend):has(> .a11y-required) { position: relative; padding-inline-end: 12px; }
.a11y-required { position: absolute; inset-inline-end: 2px; top: 0; color: #a52632; }
.form-privacy-note a { text-decoration: underline; text-underline-offset: .15em; }
.form-privacy-note { overflow-wrap: anywhere; }
body .brand-wave-bar { animation-iteration-count: 1; }
body .language-menu > div { max-height: min(240px, 60vh); overflow: auto; }
footer .language-menu > div { top: auto; bottom: calc(100% + .4rem); }
/* Preserve white text over photography, with a dependable contrast floor. */
.hero.hero-full-photo .hero-photo-ribbon::after {
  background: linear-gradient(90deg, rgba(13,17,21,.86) 0%, rgba(13,17,21,.78) 24%, rgba(13,17,21,.65) 39%, rgba(13,17,21,.12) 62%, transparent 76%);
}
@media (max-width:760px) {
  .hero.hero-full-photo .hero-photo-ribbon::after {
    background: linear-gradient(90deg, rgba(13,17,21,.8) 0%, rgba(13,17,21,.68) 62%, rgba(13,17,21,.08) 85%, transparent 100%);
  }
  body :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { font-size: max(1rem, 16px); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (forced-colors:active) {
  :root { --a11y-focus: Highlight; }
  body :is(button, input, select, textarea, summary) { border: 1px solid ButtonText; }
  .a11y-field-error { color: CanvasText; }
}
