/* Skip navigation — WCAG 2.4.1 */
.skip-nav {
    position: absolute;
    top: -100%;
    left: var(--spacing-lg);
    z-index: 200;
    background: var(--color-primary);
    color: white;
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: 0 0 4px 4px;
    font-weight: 600;
    font-size: var(--font-size-sm);
    text-decoration: none;
    transition: top 0.15s ease;
}

.skip-nav:focus {
    top: 0;
    outline: 2px solid white;
    outline-offset: -3px;
}

/* Site Header */

.site-header {
    background-color: white;
    border-bottom: 1px solid var(--color-border);
    position: sticky;
    top: 0;
    z-index: 100;
}

.site-header__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
    height: 72px;
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
}

.site-header__logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.site-header__logo img {
    display: block;
}

.site-nav {
    flex: 1;
}

.site-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--spacing-md);
}

.site-nav__item {
    position: relative;
}

.site-nav__link {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-text);
    text-decoration: none;
    padding: var(--spacing-xs) 0;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
    display: inline-block;
}

.site-nav__link:hover,
.site-nav__link--active {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
    text-decoration: none;
}

.site-nav__link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Sub-navigation dropdown */

.site-nav__item--has-children {
    position: relative;
}

.site-nav__subnav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 200;
    list-style: none;
    margin: 0;
    padding: var(--spacing-xs) 0;
    background: white;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    min-width: 180px;
    white-space: nowrap;
}

.site-nav__item--has-children:hover .site-nav__subnav,
.site-nav__item--has-children:focus-within .site-nav__subnav {
    display: block;
}

.site-nav__subitem {
    margin: 0;
}

.site-nav__sublink {
    display: block;
    padding: var(--spacing-xs) var(--spacing-md);
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.15s, background-color 0.15s;
}

.site-nav__sublink:hover,
.site-nav__sublink--active {
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 6%, transparent);
    text-decoration: none;
}

.site-nav__sublink:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex-shrink: 0;
}

/* Language Switcher */

.lang-switcher {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--spacing-xs);
    align-items: center;
}

.lang-switcher__label {
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-text-light);
    text-decoration: none;
    padding: 3px 6px;
    border-radius: 3px;
    letter-spacing: 0.03em;
    transition: color 0.15s, background-color 0.15s;
}

.lang-switcher__label:hover {
    color: var(--color-primary);
    text-decoration: none;
}

.lang-switcher__label:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.lang-switcher__label--active {
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.lang-switcher__item + .lang-switcher__item::before {
    content: '/';
    color: var(--color-border);
    margin-right: var(--spacing-xs);
}

.site-header__cta {
    font-size: var(--font-size-sm);
    padding: 0.5rem 1.125rem;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .site-header__inner {
        flex-wrap: wrap;
        height: auto;
        padding: var(--spacing-sm) var(--spacing-md);
        gap: var(--spacing-sm);
    }

    .site-nav__list {
        flex-wrap: wrap;
        gap: var(--spacing-sm);
    }
}
