/* Catalog-driven locale disclosure, shared by marketing and editorial pages. */
.grubbx-locale-item { position: relative; flex: 0 0 auto; list-style: none; align-self: center; }
.grubbx-locale-switcher { position: relative; color: var(--color-text); font: inherit; }
.grubbx-locale-switcher summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 48px; padding: 0; border-radius: 16px; cursor: pointer; list-style: none; }
.grubbx-locale-switcher summary::-webkit-details-marker { display: none; }
.grubbx-locale-switcher summary:hover, .grubbx-locale-switcher[open] summary { background: var(--color-surface-subtle); color: var(--color-action); }
.grubbx-locale-panel { position: absolute; top: calc(100% + 8px); right: 0; z-index: 110; width: 192px; max-width: calc(100vw - 32px); max-height: min(360px, 60vh); overflow-y: auto; padding: 8px; border: 1px solid var(--color-border); border-radius: 16px; background: var(--color-surface); box-shadow: var(--shadow-md, 0 8px 24px rgb(23 19 43 / 10%)); }
.grubbx-locale-panel a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 8px 12px; border-radius: 8px; color: var(--color-text); font-size: 14px; font-weight: 500; text-decoration: none; }
.grubbx-locale-panel a:hover { background: var(--color-surface-subtle); }
.grubbx-locale-panel a[aria-current="page"] { color: var(--color-action); font-weight: 600; }
.grubbx-locale-switcher :is(summary,a):focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.grubbx-locale-fallback { position: absolute; top: 16px; right: 16px; z-index: 100; }
@media(max-width: 991px) { .grubbx-locale-item { align-self: flex-start; } .grubbx-locale-panel { left: 0; right: auto; } }
.grubbx-locale-switcher {
  --color-surface: var(--brand-background);
  --color-text: var(--brand-text);
  --color-action: var(--brand-primary);
  --color-focus: var(--color-action);
  --color-border: var(--brand-neutral);
  --color-surface-subtle: color-mix(in srgb, var(--color-surface) 72%, var(--color-border));
}
/* The shared navigation owns positioning, backdrop and GSAP transitions. */
.grubbx-locale-trigger { border: 0; background: transparent; font: inherit; color: inherit; cursor: pointer; min-height: 48px; gap: 8px; }
.grubbx-locale-trigger > svg:first-child { flex: 0 0 20px; }
.nav-menu_dropdown.grubbx-language-dropdown { width: 208px; min-width: 0; padding: 16px; }
.grubbx-language-links { display: flex; flex-direction: column; width: 100%; max-height: 60vh; overflow-y: auto; }
.grubbx-language-links a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 8px 12px; border-radius: 8px; color: inherit; text-decoration: none; font-weight: 500; }
.grubbx-language-links a:hover { background: var(--color-surface-subtle, var(--brand-background)); }
.grubbx-language-links a[aria-current="page"] { color: var(--color-action, var(--brand-primary)); font-weight: 600; }
:is(.grubbx-locale-trigger,.grubbx-language-links a):focus-visible { outline: 2px solid var(--color-focus, var(--brand-primary)); outline-offset: 2px; }
@media(max-width:991px) { .nav-menu_dropdown.grubbx-language-dropdown { width: 100%; } }
@media(max-width:991px) {
  .nav-menu_dropdown.grubbx-language-dropdown { height: auto; min-height: 0; visibility: visible !important; opacity: 1 !important; }
}
/* Small, softly colored regional flags follow the configured locale. */
.grubbx-locale-flag { display: block; width: 24px; height: 16px; flex: 0 0 24px; border-radius: 2px; object-fit: cover; }
:is(.grubbx-language-links,.grubbx-locale-panel) a { justify-content: flex-start; gap: 12px; }
:is(.grubbx-language-links,.grubbx-locale-panel) a[aria-current="page"] { background: var(--color-surface-subtle, var(--brand-background)); }
.grubbx-locale-flags { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.grubbx-locale-flags .grubbx-locale-flag { width: 18px; height: 12px; flex-basis: 18px; }
