:root { color-scheme: light; --blue: #204a61; --ink: #222; }
* { box-sizing: border-box; }
body { margin: 0; padding: 28px 24px; background: #e2e2e2; color: var(--ink); font: 16px/1.65 Tahoma, Verdana, sans-serif; }
.page { max-width: 1000px; margin: auto; background: #fafafa; }
.branding { padding: 66px 8% 30px; background: var(--blue); color: #f5f2e8; }
.branding h1 { margin: 0; font: 38px/1.15 Georgia, 'Times New Roman', serif; text-transform: uppercase; letter-spacing: 2px; font-weight: normal; }
.branding p { margin: 1px 0 0; font: small-caps 26px/1.35 Georgia, 'Times New Roman', serif; letter-spacing: 1px; }
main { padding: 28px 7.6% 48px; }
.slideshow { position: relative; }
.slides { position: relative; aspect-ratio: 5 / 2; overflow: hidden; background: #eee; }
.slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity 3s ease; }
.slide.active { opacity: 1; z-index: 1; }
.slide-controls { text-align: center; }
.dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 0; margin: 6px 0 0; }
.dot { position: relative; width: 26px; height: 32px; border: 0; background: transparent; cursor: pointer; padding: 0; }
.dot::after { content: ''; position: absolute; left: 8px; top: 11px; width: 10px; height: 10px; border-radius: 50%; border: 1px solid var(--blue); }
.dot.selected::after { background: var(--blue); }
.pause { border: 0; background: transparent; color: var(--blue); text-decoration: underline; font: inherit; font-size: 14px; padding: 4px 12px; cursor: pointer; }
.contact { margin-top: 28px; }
.contact h2 { font: normal 28px/1.3 Georgia, 'Times New Roman', serif; margin: 0 0 24px; padding-bottom: 14px; border-bottom: 1px solid #ddd; color: var(--blue); }
.contact-details { display: flex; align-items: center; gap: 36px; }
.portrait { width: 199px; max-width: 100%; height: auto; }
address { font-style: normal; overflow-wrap: anywhere; }
address p { margin: 0 0 16px; }
address p:last-child { margin-bottom: 0; }
.contact-name { font-weight: bold; text-transform: uppercase; letter-spacing: 1px; }
a { color: #004a69; text-underline-offset: 3px; }
a:hover { color: #152e40; }
.associated { border-top: 1px solid #ddd; margin-top: 32px; padding-top: 22px; text-align: center; }
.associated h3 { margin: 0 0 4px; font-size: 14px; font-weight: bold; text-transform: uppercase; letter-spacing: 1px; }
:focus-visible { outline: 3px solid #b07822; outline-offset: 3px; }
.skip-link { position: absolute; left: 20px; top: -100px; background: white; padding: 8px 16px; z-index: 10; }
.skip-link:focus { top: 8px; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { .slide { transition: none; } }
@media (max-width: 600px) {
  body { padding: 0; }
  .branding { padding: 34px 6% 28px; }
  .branding h1 { font-size: clamp(27px, 7.5vw, 38px); letter-spacing: 1px; }
  .branding p { font-size: clamp(19px, 5vw, 26px); }
  main { padding: 22px 6% 36px; }
  .contact-details { flex-direction: column; align-items: flex-start; gap: 24px; }
  .contact { margin-top: 24px; }
}
