/* SchreinerBlick 2.7 — Apple HIG-inspired responsive and accessibility refinements */

/* Keep keyboard navigation as visible and consistent as pointer interaction. */
:where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid #ff5624;
    outline-offset: 3px;
}

.gh-burger {
    appearance: none;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
}

.gh-burger-box {
    width: 44px;
    height: 44px;
    padding: 5.5px;
}

/* Prevent intrinsic grid sizing from making the biography section wider than a phone. */
.sb-about,
.sb-about > *,
.sb-about > div > *,
.sb-about img {
    min-width: 0;
    max-width: 100%;
}

@media (max-width: 900px) {
    .sb-about {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    #gh-head .gh-head-brand .gh-burger {
        display: inline-grid;
        place-items: center;
        flex: 0 0 44px;
    }
}

/* On touch devices, the visual typography can stay compact while hit areas remain comfortable. */
@media (hover: none), (pointer: coarse) {
    .sb-footer-grid a:not(.wordmark),
    .sb-footer-grid .nav a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        padding-block: 8px;
    }

    .sb-footer-grid .nav li {
        margin-bottom: 0;
    }
}

/* Avoid clipped controls and content when people enlarge text. */
@media (max-width: 600px) {
    .gh-button,
    .sb-button {
        max-width: 100%;
        min-height: 44px;
        white-space: normal;
        line-height: 1.25;
    }

    .sb-about h2,
    .sb-about p,
    .sb-about blockquote,
    .sb-about cite {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .sb-about h2 {
        font-size: clamp(3.2rem, 8.5vw, 3.8rem) !important;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }

    body.page-about .gh-title {
        font-size: clamp(3.2rem, 9vw, 3.8rem) !important;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
