/* Hand-authored shared header component; kept separate from the generated legacy theme CSS. */
.location-switcher, .location-panel { font-family: Arial, sans-serif; font-size: 14px; line-height: 1.4; text-align: left; }
.location-panel *, .location-switcher * { box-sizing: border-box; }
.location-panel[hidden], .location-panel [hidden], .location-switcher [hidden] { display: none !important; }
.location-panel button, .location-switcher button { font-family: inherit; font-weight: normal; text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: none; margin: 0; }
.location-panel button:focus-visible, .location-switcher button:focus-visible { outline: 2px solid #8d6c18; outline-offset: 2px; }
.location-switcher .location-trigger { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 11px; border: 1px solid #3a3e52; border-radius: 8px; background: #20243b; color: #fff; font-size: 12px; line-height: 20px; white-space: nowrap; }
.location-switcher .location-trigger:hover { background: #2c3047; }
.location-switcher .location-trigger:active { background: #353950; }
.location-trigger svg { width: 12px; height: 12px; color: #b8bdce; }
.location-trigger .location-flag { width: 20px; height: 14px; object-fit: cover; border-radius: 2px; }
.location-divider { width: 1px; height: 14px; background: #515469; }
header .top-links .links li.topmenu-location { margin-right: 12px; position: relative; }
.mobile-location .location-switcher { text-align: center; }
.mobile-location .location-trigger { min-height: 44px; }
/* The existing fixed header uses 1000; this body-mounted panel sits one layer above it. */
.location-panel { position: fixed; z-index: 1001; display: flex; flex-direction: column; width: 340px; max-width: calc(100vw - 24px); background: #fff; color: #182039; border: 1px solid rgba(18, 28, 52, .08); border-radius: 12px; box-shadow: 0 16px 40px rgba(0, 0, 0, .22), 0 2px 6px rgba(0, 0, 0, .1); overflow: hidden; }
.location-heading { position: relative; flex-shrink: 0; padding: 20px 42px 14px 18px; }
.location-heading h2 { font: bold 17px/1.3 Arial, sans-serif; color: #182039; letter-spacing: -.3px; margin: 0 0 6px; text-transform: none; }
.location-heading p { font: 12px/1.5 Arial, sans-serif; color: #626c80; margin: 0; }
.location-panel .location-close { position: absolute; top: 8px; right: 4px; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #687084; font-size: 24px; }
.location-panel .location-close:hover { color: #182039; }
.location-search { display: flex; flex-shrink: 0; align-items: center; gap: 9px; height: 44px; padding: 0 11px; margin: 0 14px 12px; background: #fafbfc; border: 1px solid #dde0e7; border-radius: 7px; }
.location-search:focus-within { border-color: #7b829c; box-shadow: 0 0 0 3px rgba(21, 33, 75, .06); }
.location-search svg { flex-shrink: 0; width: 17px; height: 17px; color: #737c91; }
.location-search input[type=search] { width: 100%; min-width: 0; height: 42px; margin: 0; padding: 0; font: 14px Arial, sans-serif; color: #182039; border: 0; background: transparent; box-shadow: none; border-radius: 0; outline: none; }
.location-search input::placeholder { color: #697387; opacity: 1; }
.location-countries { flex: 1 1 319px; min-height: 80px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #cdd1dc transparent; padding: 0 8px 12px; }
.location-group { font-size: 10px; font-weight: bold; letter-spacing: .09em; text-transform: uppercase; color: #697387; padding: 14px 10px 7px; }
.location-panel .location-country { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 11px 10px; border: 0; border-radius: 7px; background: transparent; color: #182039; text-align: left; line-height: 1.4; }
.location-panel .location-country:hover { background: #f3f4f8; }
.location-panel .location-country.is-selected { background: #faf5e8; }
.location-country-flag { flex-shrink: 0; width: 23px; height: 16px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06); }
.location-country-name { font-size: 13px; overflow-wrap: anywhere; }
.location-country-currency { margin-left: auto; font-size: 12px; color: #626c80; white-space: nowrap; }
.location-check { width: 14px; flex-shrink: 0; font-size: 14px; color: #8d6c18; }
.location-footer { flex-shrink: 0; padding: 16px; background: #fcfcfd; border-top: 1px solid #e9ebef; overflow-y: auto; max-height: 55%; }
.location-language-label { display: block; font-size: 12px; color: #626c80; margin-bottom: 10px; }
.location-languages { display: flex; gap: 4px; padding: 4px; border: 1px solid #e5e7ec; border-radius: 8px; background: #f0f2f6; }
.location-languages:empty { display: none; }
.location-panel .location-language { flex: 1; min-height: 44px; padding: 8px 5px; background: transparent; color: #5c657a; border: 0; border-radius: 5px; font-size: 12px; }
.location-panel .location-language[aria-pressed=true] { background: #fff; color: #182039; box-shadow: 0 1px 4px rgba(19, 33, 66, .1); font-weight: bold; }
.location-panel .location-language:hover { color: #182039; background: #fff; }
.location-notice { margin-top: 12px; padding: 12px; border-radius: 7px; background: #f5f1e6; color: #5f512d; font-size: 12px; line-height: 1.5; }
.location-notice p { margin: 5px 0 10px; font-size: inherit; line-height: 1.5; }
.location-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.location-panel .location-confirm, .location-panel .location-cancel, .location-panel .location-retry { min-height: 40px; padding: 7px 10px; border: 0; border-radius: 5px; background: #182039; color: #fff; font-size: 12px; }
.location-panel .location-cancel { background: transparent; color: #5f512d; }
.location-empty { text-align: center; padding: 36px 15px; color: #626c80; font-size: 13px; line-height: 1.6; }
.location-empty strong { display: block; color: #182039; margin-bottom: 6px; }
.location-empty p { margin: 0; font-size: inherit; }
.location-retry { display: block; margin: 12px auto 0 !important; }
.location-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 639px) {
    .location-search input[type=search] { font-size: 16px; }
    .location-panel .location-language, .location-panel .location-confirm, .location-panel .location-cancel { min-height: 44px; }
}
/* Mobile preferences occupy one screen; only the country list scrolls. */
html.location-screen-open, html.location-screen-open body { overflow: hidden; }
.location-panel-mobile { max-width: none; border: 0; border-radius: 0; box-shadow: none; }
.location-panel-mobile .location-heading { padding: calc(22px + env(safe-area-inset-top)) 60px 22px 20px; border-bottom: 1px solid #e9e9ed; margin-bottom: 16px; }
.location-panel-mobile .location-heading h2 { margin: 0; font-size: 17px; }
.location-panel-mobile .location-close { top: calc(10px + env(safe-area-inset-top)); right: 10px; }
.location-panel-mobile .location-search { margin: 0 16px 12px; border-radius: 3px; }
.location-panel-mobile .location-search input[type=search] { font-size: 16px; }
.location-panel-mobile .location-countries { flex: 1 1 0; min-height: 0; padding: 0 16px; }
.location-panel-mobile .location-country { min-height: 52px; padding: 12px 10px; border-radius: 0; border-bottom: 1px solid #f0f0f3; }
.location-panel-mobile .location-country-name { font-size: 15px; }
.location-panel-mobile .location-apply-footer { padding: 14px 16px calc(16px + env(safe-area-inset-bottom)); background: #fff; max-height: none; }
.location-selection-summary { margin: 0 0 12px; font: 13px/1.5 Arial, sans-serif; color: #626c80; }
.location-panel .location-apply { width: 100%; min-height: 48px; padding: 12px; border: 0; border-radius: 3px; background: #182039; color: #fff; font-size: 14px; font-weight: 700; }
.location-panel .location-apply:disabled { background: #e9e9ed; color: #626879; cursor: default; }
#mobilenav .mobile-location .location-switcher { flex-wrap: wrap; }
.location-menu-language { flex-basis: 100%; text-align: left; padding-top: 12px; }
.location-menu-language .location-languages { background: transparent; border: 0; padding: 0; gap: 4px; }
.location-menu-language .location-language { flex: 1; min-height: 44px; border: 1px solid #dedfe5; border-radius: 3px; background: #fff; color: #626879; font-size: 12px; padding: 8px 4px; }
.location-menu-language .location-language[aria-pressed=true] { background: #faf2e2; color: #45351c; border-color: #e7d6b4; }
.location-menu-language .location-confirm, .location-menu-language .location-cancel { min-height: 44px; padding: 8px; border: 0; border-radius: 3px; background: #182039; color: #fff; font-size: 12px; }
.location-menu-language .location-cancel { background: transparent; color: #45351c; }
.location-panel-mobile button { touch-action: manipulation; }
@media (hover: none) {
    .location-panel-mobile .location-country:hover { background: transparent; }
    .location-panel-mobile .location-country.is-selected:hover { background: #faf5e8; }
}

.mobile-location .location-trigger .location-divider, .mobile-location .location-trigger .location-current-language { display: none; }
