:root {
    --gh-a11y-font-step: 0px;
}

html {
    font-size: calc(16px + var(--gh-a11y-font-step));
}

.gh-skip-link {
    position: absolute;
    left: 1rem;
    top: -100px;
    z-index: 9999;
    background: #ffffff;
    color: #0f172a;
    border: 2px solid var(--gh-primary, #1554b7);
    padding: .75rem 1rem;
    border-radius: .75rem;
    font-weight: 800;
    transition: top .2s ease;
}
.gh-skip-link:focus { top: 1rem; }

.gh-a11y-widget {
    position: fixed;
    right: 18px;
    bottom: 22px;
    z-index: 1999;
    display: grid;
    gap: 8px;
    justify-items: end;
    font-family: inherit;
}

.gh-a11y-main,
.gh-a11y-top {
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 999px;
    background: #0f766e;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
    box-shadow: 0 14px 32px rgba(15, 118, 110, .28);
    cursor: pointer;
}

.gh-a11y-main:hover,
.gh-a11y-top:hover,
.gh-a11y-main:focus-visible,
.gh-a11y-top:focus-visible {
    background: #0b5f59;
    color: #ffffff;
}

.gh-a11y-top {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: .2s ease;
    background: #1554b7;
}

.gh-a11y-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.gh-a11y-panel {
    position: absolute;
    right: 0;
    bottom: 108px;
    width: min(310px, calc(100vw - 32px));
    background: #ffffff;
    color: #0f172a;
    border: 1px solid #dbe7f5;
    border-radius: 18px;
    box-shadow: 0 24px 65px rgba(15, 23, 42, .2);
    overflow: hidden;
}

.gh-a11y-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 15px;
    background: linear-gradient(90deg, #1554b7, #0f766e);
    color: #ffffff;
}

.gh-a11y-panel-head button {
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.gh-a11y-group {
    padding: 12px 14px;
    border-bottom: 1px solid #edf2f7;
}

.gh-a11y-group > span {
    display: block;
    margin-bottom: 8px;
    font-size: .78rem;
    font-weight: 950;
    color: #334155;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.gh-a11y-row,
.gh-a11y-switches,
.gh-a11y-theme-grid {
    display: grid;
    gap: 7px;
}

.gh-a11y-row {
    grid-template-columns: repeat(3, 1fr);
}

.gh-a11y-theme-grid {
    grid-template-columns: repeat(2, 1fr);
}

.gh-a11y-switches {
    grid-template-columns: 1fr;
}

.gh-a11y-row button,
.gh-a11y-theme-grid button,
.gh-a11y-switches button,
.gh-a11y-reset {
    border: 1px solid #d8e2ef;
    background: #f8fafc;
    color: #0f172a;
    border-radius: 10px;
    min-height: 37px;
    padding: 7px 9px;
    font-weight: 850;
    cursor: pointer;
}

.gh-a11y-row button:hover,
.gh-a11y-theme-grid button:hover,
.gh-a11y-switches button:hover,
.gh-a11y-reset:hover,
.gh-a11y-theme-grid button.is-active,
.gh-a11y-switches button[aria-pressed="true"] {
    border-color: #1554b7;
    background: #eaf3ff;
    color: #123e84;
}

.gh-a11y-reset {
    width: calc(100% - 28px);
    margin: 12px 14px 14px;
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}

.gh-public a:focus-visible,
.gh-public button:focus-visible,
.gh-public input:focus-visible,
.gh-public select:focus-visible,
.gh-public textarea:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

body.gh-theme-high-contrast,
body.gh-theme-high-contrast .gh-site-header,
body.gh-theme-high-contrast .gh-mainnav,
body.gh-theme-high-contrast .gh-footer,
body.gh-theme-high-contrast .gh-section,
body.gh-theme-high-contrast .gh-search-card,
body.gh-theme-high-contrast .card,
body.gh-theme-high-contrast .gh-a11y-panel,
body.gh-theme-high-contrast .gh-leader-card,
body.gh-theme-high-contrast .gh-capacity-card,
body.gh-theme-high-contrast .gh-sample-leadership,
body.gh-theme-high-contrast .gh-sample-person-card {
    background: #000000 !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
}
body.gh-theme-high-contrast a,
body.gh-theme-high-contrast .gh-nav-list a,
body.gh-theme-high-contrast .gh-search-card__url {
    color: #ffff00 !important;
}

body.gh-theme-yellow-black,
body.gh-theme-yellow-black .gh-site-header,
body.gh-theme-yellow-black .gh-mainnav,
body.gh-theme-yellow-black .gh-footer,
body.gh-theme-yellow-black .gh-section,
body.gh-theme-yellow-black .gh-a11y-panel {
    background: #111111 !important;
    color: #ffe600 !important;
}
body.gh-theme-yellow-black a,
body.gh-theme-yellow-black button { color: #ffe600 !important; }

body.gh-theme-blue-yellow,
body.gh-theme-blue-yellow .gh-site-header,
body.gh-theme-blue-yellow .gh-mainnav,
body.gh-theme-blue-yellow .gh-footer,
body.gh-theme-blue-yellow .gh-section,
body.gh-theme-blue-yellow .gh-a11y-panel {
    background: #062b61 !important;
    color: #fff7b0 !important;
}
body.gh-theme-blue-yellow a { color: #fff176 !important; }

body.gh-theme-soft-green {
    background: #effaf5 !important;
    color: #073b2b !important;
}
body.gh-theme-soft-green .gh-site-header,
body.gh-theme-soft-green .gh-footer,
body.gh-theme-soft-green .gh-section,
body.gh-theme-soft-green .gh-a11y-panel {
    background: #f7fffb !important;
    color: #073b2b !important;
}

body.gh-theme-grayscale {
    filter: grayscale(100%);
}

body.gh-a11y-underline a {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

body.gh-a11y-readable {
    letter-spacing: .015em;
    word-spacing: .06em;
    line-height: 1.75;
}

body.gh-a11y-readable * {
    font-family: Verdana, Arial, sans-serif !important;
}

body.gh-a11y-reduce-motion *,
body.gh-a11y-reduce-motion *::before,
body.gh-a11y-reduce-motion *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

.gh-search-page-form {
    display: grid;
    grid-template-columns: 1fr minmax(160px, 220px) auto;
    gap: .75rem;
    margin-top: 1.25rem;
}
.gh-search-page-form input,
.gh-search-page-form select {
    border: 1px solid rgba(15,23,42,.16);
    border-radius: 1rem;
    padding: .9rem 1rem;
    min-height: 3.25rem;
}
.gh-search-summary {
    background: #f8fafc;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 1rem;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.gh-search-results { display: grid; gap: 1rem; }
.gh-search-card {
    border: 1px solid rgba(15,23,42,.08);
    background: #ffffff;
    border-radius: 1.25rem;
    padding: 1.25rem;
    box-shadow: 0 12px 32px rgba(15,23,42,.06);
}
.gh-search-card__type {
    display: inline-flex;
    align-items: center;
    padding: .25rem .6rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    background: #e0f2fe;
    color: #075985;
    margin-bottom: .65rem;
}
.gh-search-card h2 { font-size: 1.15rem; margin: 0 0 .5rem; }
.gh-search-card p { color: #475569; margin-bottom: .65rem; }
.gh-search-card__url { font-size: .86rem; color: #0f766e; word-break: break-word; }
.gh-search-empty {
    padding: 2rem;
    text-align: center;
    border: 1px dashed rgba(15,23,42,.2);
    border-radius: 1.25rem;
    background: #f8fafc;
    color: #475569;
}

@media (max-width: 768px) {
    .gh-a11y-widget { right: 12px; bottom: 14px; }
    .gh-a11y-main, .gh-a11y-top { width: 42px; height: 42px; }
    .gh-a11y-panel { bottom: 98px; }
    .gh-search-page-form { grid-template-columns: 1fr; }
}
