:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 820px) {
    :is(main,.site-header) select:not([multiple]):not([size]) { appearance: none; font-size: 16px; min-height: 44px; padding-right: 32px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2352677f' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 12px 8px; }
    .wrap, .brand, main, form, .cards > *, .grid > * { min-width: 0; }
    .brand { max-width: calc(100% - 84px); overflow-wrap: anywhere; }
    .brand .mark { flex-shrink: 0; }
    .site-header .nav { gap: 8px; }
    .site-header .links.open { max-height: var(--nx-public-menu-height, calc(100dvh - 84px)); overflow-y: auto; overscroll-behavior: contain; flex-wrap: nowrap; }
    .links a, .links select, button, .button, summary { min-height: 44px; }
    .links a { display: flex; align-items: center; }
    input, select, textarea { font-size: 16px; max-width: 100%; min-width: 0; }
    main :is(h1,h2,h3,p,a,label), .offer-bar { overflow-wrap: anywhere; }
    .cards, .grid { grid-template-columns: minmax(0,1fr); }
    .cookie-consent, .cookie { max-height: calc(var(--nx-public-height,100dvh) - 24px); overflow-y: auto; bottom: max(12px,env(safe-area-inset-bottom)); }
    body > main:not(#main-content) { padding: 28px 12px; }
    body > main:not(#main-content) .panel { padding: 20px; }
}

/* Shared marketing header: reserve intrinsic space before choosing the desktop row. */
.site-header[data-fit-navigation] .nav { max-width: 1360px; min-height: 80px; gap: 24px; flex-wrap: nowrap; }
.site-header[data-fit-navigation] .brand { flex: 0 0 auto; max-width: calc(100% - 132px); }
.site-header[data-fit-navigation] .brand-logo { width: 220px; max-width: 100%; height: 44px; object-fit: contain; }
.site-header[data-fit-navigation] .links { flex: 1 0 auto; width: auto; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 24px; padding: 0; font-size: 15px; }
.site-header[data-fit-navigation] :is(.public-nav-links,.public-nav-actions) { display: flex; flex-wrap: nowrap; align-items: center; gap: 18px; }
.site-header[data-fit-navigation] .public-nav-links { margin-inline: auto; }
.site-header[data-fit-navigation] .links a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; flex-shrink: 0; }
.site-header[data-fit-navigation] :is(.mobile-toggle,.country-switcher select,.links .button) { box-sizing: border-box; height: 44px; min-height: 44px; margin: 0; font-size: 16px; line-height: 1.25; white-space: nowrap; }
.site-header[data-fit-navigation] .country-switcher select { appearance: none; padding: 8px 32px 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2352677f' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 8px; }
.site-header[data-fit-navigation] .mobile-toggle { display: none; flex: 0 0 120px; width: 120px; }
.site-header[data-fit-navigation] :is(a,button,select):focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
/* Conservative CSS fallback; JavaScript also collapses longer translated/custom labels. */
@media (max-width: 1200px) {
    .site-header[data-fit-navigation] .nav { flex-wrap: wrap; gap: 12px; padding-block: 12px; }
    .site-header[data-fit-navigation] .mobile-toggle { display: inline-flex; margin-left: auto; }
    .site-header[data-fit-navigation] .links { display: none; flex-basis: 100%; }
    .site-header[data-fit-navigation] .links.open { display: flex; }
    .site-header[data-fit-navigation] :is(.links,.public-nav-links,.public-nav-actions) { flex-direction: column; align-items: stretch; gap: 8px; }
    .site-header[data-fit-navigation] .public-nav-links { margin: 0; }
    .site-header[data-fit-navigation] .links.open { max-height: var(--nx-public-menu-height, calc(100dvh - 104px)); overflow-y: auto; padding: 4px 4px 12px; }
}
.site-header.nav-compact[data-fit-navigation] .nav { flex-wrap: wrap; gap: 12px; padding-block: 12px; }
.site-header.nav-compact[data-fit-navigation] .mobile-toggle { display: inline-flex; margin-left: auto; }
.site-header.nav-compact[data-fit-navigation] .links { display: none; flex-basis: 100%; }
.site-header.nav-compact[data-fit-navigation] .links.open { display: flex; max-height: var(--nx-public-menu-height, calc(100dvh - 104px)); overflow-y: auto; padding: 4px 4px 12px; }
.site-header.nav-compact[data-fit-navigation] :is(.links,.public-nav-links,.public-nav-actions) { flex-direction: column; align-items: stretch; gap: 8px; }
.site-header.nav-compact[data-fit-navigation] .public-nav-links { margin: 0; }
/* Measure the real desktop width while hidden, including the current account actions. */
.site-header[data-fit-navigation].nav-measuring .links { position: absolute; visibility: hidden; display: flex; width: max-content; max-height: none; overflow: visible; flex-direction: row; gap: 24px; padding: 0; }
.site-header[data-fit-navigation].nav-measuring :is(.public-nav-links,.public-nav-actions) { flex-direction: row; gap: 18px; }
.site-header[data-fit-navigation].nav-measuring .public-nav-links { margin: 0; }
@media (max-width: 320px) {
    /* At high zoom, keep the logo readable instead of squeezing it beside Menu. */
    .site-header[data-fit-navigation] .brand { max-width: 100%; flex-basis: 100%; }
}
