/*
 * WEBGLOBE MAINTAINER NOTES
 *
 * Connect country selection and postcode lookup to validated locality input.
 *
 * The selectors form a contract with the rendered markup and browser interactions. Preserve
 * keyboard focus, disabled/hidden states and the smaller-screen rules when adjusting the
 * cascade; an attractive desktop layout is not sufficient evidence of usable mobile forms.
 *
 * Country and postcode lookup does not verify a street or house number. Keep unsupported
 * countries and unverified locality input explicit instead of inventing an address-confirmation
 * result.
 */
.k-location { min-width: 0; margin: 8px 0; padding: 16px; border: 1px solid #c4c7b8; border-radius: 6px; display: grid; gap: 12px; }
.k-location legend { padding: 0 6px; font-weight: 600; }
.k-location select { width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid #c4c7b8; border-radius: 5px; background: #fffefa; color: #1c2516; font: inherit; font-size: 16px; }
.k-location select:focus-visible { outline: 2px solid #4b5435; outline-offset: 3px; }
.k-location [hidden] { display: none !important; }
.k-location .k-account-help { margin: 0; overflow-wrap: anywhere; }
.k-location button { justify-self: start; min-height: 44px; }
.k-country-combo { position: relative; min-width: 0; }
.k-country-control { display: flex; overflow: hidden; border: 1px solid #c4c7b8; border-radius: 5px; background: #fffefa; }
.k-country-control:focus-within { outline: 2px solid #4b5435; outline-offset: 3px; }
.k-location .k-country-control input[data-country-input] { flex: 1; width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: 12px; border: 0; border-radius: 0; outline: 0; box-shadow: none; background: transparent; color: #1c2516; font: inherit; font-size: 16px; }
.k-location .k-country-toggle { flex: 0 0 44px; width: 44px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #1c2516; font-size: 24px; cursor: pointer; }
.k-country-options, .k-country-empty { position: absolute; inset: calc(100% + 6px) 0 auto; z-index: 20; margin: 0; padding: 4px; border: 1px solid #c4c7b8; border-radius: 5px; background: #fffefa; color: #1c2516; box-shadow: 0 6px 16px #1c25161a; }
.k-country-options { max-height: 240px; max-height: min(240px, 40vh); overflow-y: auto; overscroll-behavior: contain; list-style: none; }
.k-country-options [role="option"] { padding: 12px; min-height: 44px; box-sizing: border-box; overflow-wrap: anywhere; cursor: pointer; }
.k-country-options [aria-selected="true"], .k-country-options [role="option"]:hover { background: #e8ecdf; }
.k-country-empty { padding: 12px; }
@media (max-width: 480px) { .k-location { padding: 12px; } }
.k-location-suggestions { margin-block: 12px; padding: 14px; border: 1px solid #c5cdb7; border-radius: 8px; background: #f1f4e9; }
.k-location-suggestions > p { margin: 0 0 8px; }
.k-location-suggestions > button { display: inline-block; min-height: 44px; margin: 0 14px 8px 0; padding: 8px 0; }
/* Long locality names must not widen every field in the registration grid. */
.k-location { grid-template-columns: minmax(0, 1fr); }
.k-location-suggestions > button { max-width: calc(100% - 14px); white-space: normal; overflow-wrap: anywhere; text-align: left; }
