.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}.skip-link:focus{clip:auto;width:auto;height:auto;top:8px;left:8px;padding:12px;background:#fff;color:#00553a;z-index:99999}
.bl-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.bl-form-errors{padding:16px;margin:0 0 24px;border:1px solid #b32929;color:#8a1c1c;background:#fff4f4;border-radius:8px}.bl-form-errors ul{padding-left:20px}.form-success.show{margin-bottom:24px}.team-card>a{display:block;color:inherit;text-decoration:none}.team-photo img{height:100%;width:100%;object-fit:cover}.profile-photo{max-width:320px}.testimonial-photo{width:64px;height:64px;object-fit:cover;border-radius:50%}.hero-dash>img{width:100%;height:auto;border-radius:20px}.current-menu-item>a,.current-menu-ancestor>a{color:var(--green)}
.admin-bar .site-header{top:32px}.nav-links .sub-menu{display:none;position:absolute;list-style:none;padding:16px;background:white;border-radius:8px}.nav-links li:hover>.sub-menu,.nav-links li:focus-within>.sub-menu{display:block}.hero-pause{border:1px solid #ffffff40;border-radius:50%;background:transparent;color:white;width:32px;height:32px;cursor:pointer}.hero-tagline{font-size:clamp(2rem,3.3vw,3.25rem)}
@media(max-width:782px){.admin-bar .site-header{top:46px}}@media(max-width:760px){.nav-links .sub-menu{position:static}.team-profile{padding-inline:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

.hero-pause{position:absolute;bottom:12px;right:20px;color:#00553a;border-color:#00553a55;z-index:5}.hero-controls{display:contents}

/* Contact form errors remain next to the fields they describe. */
#contactForm .bl-field-error {
    display: block;
    margin-top: 6px;
    color: #a32020;
    font-size: 0.875rem;
}
#contactForm .bl-input-invalid {
    border-color: #a32020;
}
#contactForm .bl-input-invalid:focus {
    outline: 2px solid #a32020;
    outline-offset: 2px;
}

/* Keep long biographies readable without stretching the directory cards. */
.team-bio-link {
    display: inline-block;
    margin-top: 14px;
    color: var(--green);
    font-size: 0.875rem;
    font-weight: 700;
}
.team-biography {
    max-width: 72ch;
    margin: 28px 0;
    font-size: 1.0625rem;
    line-height: 1.85;
}
.team-biography p + p {
    margin-top: 1em;
}

/* Homepage carousels retain readable content before JavaScript loads. */
.hero-slider:not(.swiper-initialized) .hero-slide:not(:first-child),
.hero-slider:not(.swiper-initialized) .hero-controls {
    display: none;
}
.testimonial-slider {
    max-width: 1080px;
    --swiper-pagination-color: #fff;
    --swiper-pagination-bullet-inactive-color: #fff;
    --swiper-pagination-bullet-inactive-opacity: 0.4;
}
.testimonial-slider .swiper-wrapper { align-items: stretch; }
.testimonial-slider .testimonial { height: auto; box-sizing: border-box; }
.testimonial-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 28px;
}
.testimonial-controls > button {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    color: #fff;
    background: transparent;
    cursor: pointer;
}
.testimonial-controls > button:hover { background: rgba(255, 255, 255, 0.15); }
.testimonial-pagination.swiper-pagination-bullets { width: auto; }
.testimonial-pagination button { border: 0; padding: 0; }
.testimonial-controls .swiper-button-lock { display: none; }
.testimonial-slider:not(.swiper-initialized) .swiper-wrapper {
    display: grid;
    gap: 24px;
}
.testimonial-slider:not(.swiper-initialized) .testimonial-controls { display: none; }
.testimonial-slider .testimonial-author {
    display: block;
    margin: 0;
    color: #fff;
    font-weight: 700;
}
.testimonial-slider .testimonial > p:last-child:not(.testimonial-quote) {
    color: rgba(255, 255, 255, 0.8);
}

/* Social links beneath the footer contact details. */
.footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
}
.footer-social:empty { display: none; }
.footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 8px;
    border: 1px solid currentColor;
    border-radius: 50%;
    transition: color 0.2s, background-color 0.2s;
}
.footer-social a:hover,
.footer-social a:focus-visible {
    color: #fff;
    background-color: var(--green);
}
.footer-social a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.testimonial-quote { white-space: pre-line; }

.team-back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    margin-bottom: 20px;
    color: var(--green);
    font-weight: 700;
}
.team-back-link:hover { text-decoration: underline; }
.team-back-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.team-profile-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: start;
    gap: 56px;
}
.team-profile-content { min-width: 0; }
.team-sidebar {
    padding: 24px;
    border: 1px solid #dce8e1;
    border-radius: 16px;
    background: #f5f9f6;
}
.team-sidebar h2 { margin: 0 0 16px; font-size: 1.25rem; }
.team-sidebar-list {
    list-style: none;
    padding: 0 8px 0 0;
    margin: 0;
    max-height: 460px;
    overflow-y: auto;
}
.team-sidebar-list li + li { border-top: 1px solid #dce8e1; }
.team-sidebar-list a {
    display: block;
    padding: 12px 4px;
    color: var(--green);
    font-weight: 600;
}
.team-sidebar-list a:hover { text-decoration: underline; }
.team-sidebar-list a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -2px;
}
@media (max-width: 900px) {
    .team-profile-layout { grid-template-columns: 1fr; gap: 32px; }
}

.team-member-select { display: none; }
@media (max-width: 900px) {
    .team-member-select {
        display: block;
        width: 100%;
        min-height: 48px;
        padding: 12px;
        border: 1px solid #b6cbbd;
        border-radius: 8px;
        background: #fff;
        color: #173d2b;
        font: inherit;
    }
    .team-member-select:focus-visible { outline: 2px solid var(--green); }
    .team-sidebar-list { display: none; }
}

/* Keep the header call-to-action readable in every menu state. */
.nav-links .nav-cta > a.btn-primary,
.nav-links .nav-cta > a.btn-primary:hover,
.nav-links .nav-cta > a.btn-primary:focus-visible,
.nav-links .nav-cta > a.btn-primary:active {
    color: #fff;
}
