 :root{
      --brand:#921711;
      --text:#111;
      --bg:#fff;
      --radius:12px;
    }

    /* Base */
    html{box-sizing:border-box;}
    *,*::before,*::after{box-sizing:inherit;}
    body{
      margin:0;
      font-family:"adobe-aldine-caption", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
      font-weight:400;
      font-style:normal;
      line-height:1.6;
      color:var(--text);
      background:var(--bg);
    }

    nav {
        display: flex;
        flex-direction: row;
        justify-content: center;
    }

    nav a {
        padding: 0 10px;
    }

    /* Skip link for keyboard users */
    .skip-link{
      position:absolute;
      left:-9999px;
      top:0;
      padding:.5rem .75rem;
      background:#000;
      color:#fff;
      z-index:1000;
    }
    .skip-link:focus-visible{left:.5rem; top:.5rem; border-radius:.5rem;}

    /* Layout */
    .container{
      max-width:72rem;
      margin-inline:auto;
      padding:2rem 1rem 3rem;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    header, main, footer{display:block;}
    header{
      text-align:center;
      margin-bottom:2rem;
    }
    .site-title{
      font-size:clamp(1.75rem, 3vw, 2.25rem);
      margin:.25rem 0 0;
      letter-spacing:.02em;
    }
    .site-mark{
      margin:0;
    }
    .site-mark img{
      max-width:360px; height:auto;
    }

    main{
      max-width:44rem;
      margin:0 auto;
    }

    .intro{
      display:flex;
      gap:2rem;
      align-items:center;
      justify-content:space-between;
      flex-wrap:wrap;
    }
    .logo img{max-width:240px; height:auto;}
    .person h2{
      font-size:clamp(1.25rem, 2.5vw, 1.5rem);
      margin:.25rem 0;
    }
    .role{margin:.25rem 0 .5rem; font-weight:500; font-size: clamp(1.25rem, 2.5vw, 1.5rem)}
    address{font-style:normal; font-size:1.25rem;}
    address a{word-break:break-all;}

    .tagline{
      text-align:center;
      font-size:clamp(1.25rem, 2.2vw, 1.25rem);
      font-style:italic;
      margin:2rem auto 1.5rem;
      max-width:42rem;
    }

    hr{border:0; border-top:1px solid #ddd; margin:1.5rem 0;}

    /* CTA link */
    .cta{
      display:inline-flex;
      align-items:center; justify-content:center;
      min-height:44px; min-width:160px;
      padding:.6rem 1rem;
      border:2px solid var(--brand);
      border-radius:var(--radius);
      text-decoration:none;
      font-size:1.25rem;
      color:var(--text);
      background:transparent;
    }
    .cta:hover,
    .cta:focus-visible{
      background:var(--brand);
      color:#fff;
      outline:2px solid transparent; /* keep for high-contrast modes */
    }

    /* Global focus visibility */
    a, button, input, textarea, select{
      outline-offset:2px;
    }
    a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
      outline:3px solid #000;
    }

    /* Responsive image tweaks */
    img{height:auto; max-width:100%;}

    /* Mobile */
    @media (max-width: 600px){
      .intro{flex-direction:column; text-align:center;}
      .site-mark img{max-width:280px;}
    }

    /* Windows High Contrast Mode */
    @media (forced-colors: active){
      .cta{border:1px solid ButtonText;}
      .cta:hover, .cta:focus-visible{outline:2px solid Highlight;}
      logo img {
        max-width: 200px;
      }
    }