/* ----------------------------------------------------------------
   Header: Hamburger toggle (mobile)
   ---------------------------------------------------------------- */

/* -- Mobile toggle (visible by default, hidden on desktop) -- */
.site-header__toggle:is(button) {
    all: unset;

    &:hover,
    &:focus {
        background: initial;
    }

    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    box-sizing: border-box;
    min-width: 2.75rem;
    min-height: 2.75rem;
    appearance: none;
    background: none;
    border: none;
    padding: 0.5rem;
    margin-right: -0.5rem;
    cursor: pointer;
    color: var(--color-dark);

    @media (min-width: 64rem) {
        display: none;
    }
}

.site-header__toggle-icon {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    width: 1.75rem;
    height: 1.75rem;
    cursor: pointer;
}

.site-header__toggle-line {
    position: absolute;
    left: 0.125rem;
    width: 1.5rem;
    height: 0.125rem;
    border-radius: 999px;
    background: currentColor;
    transform-origin: center;
    cursor: pointer;
    transition:
        transform 0.24s ease,
        opacity 0.18s ease,
        top 0.24s ease;
}

.site-header__toggle-line {
    &:nth-child(1) {
        top: 0.4375rem;
    }

    &:nth-child(2) {
        top: 0.8125rem;
    }

    &:nth-child(3) {
        top: 1.1875rem;
    }
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line {
    &:nth-child(1) {
        top: 0.8125rem;
        transform: rotate(45deg);
    }

    &:nth-child(2) {
        opacity: 0;
        transform: scaleX(0.4);
    }

    &:nth-child(3) {
        top: 0.8125rem;
        transform: rotate(-45deg);
    }
}

/* Dark theme */
.site-header--dark .site-header__toggle:is(button) {
    color: var(--color-white);
}
