/* ===== ZP Wyszukiwarka (typeahead) ===== Kolory: #4A86C7 + #E6EEF7 */
.zpw {
    --zpw-navy: #4A86C7;
    --zpw-pink: #E6EEF7;
    --zpw-pink-d: #4A86C7;
    --zpw-ink: #37414F;
    --zpw-muted: #77818E;
    --zpw-line: #E6E9ED;
    --zpw-bg: #F8FAFC;
    max-width: 640px; margin: 0 auto; font-family: inherit; color: var(--zpw-ink); box-sizing: border-box;
}
.zpw *, .zpw *::before, .zpw *::after { box-sizing: border-box; }
.zpw svg { max-width: 100%; vertical-align: middle; }

.zpw-box { position: relative; }
.zpw-box__ico { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; color: var(--zpw-navy); pointer-events: none; z-index: 2; }
.zpw-box__ico svg { width: 22px; height: 22px; }
.zpw-box__input {
    width: 100%; padding: 17px 20px 17px 56px !important; font: inherit; font-size: 17px; color: var(--zpw-ink);
    background: #fff; border: 2px solid var(--zpw-line); border-radius: 14px; outline: none;
    box-shadow: 0 10px 30px rgba(53,97,153,.08); transition: border-color .15s ease, box-shadow .15s ease;
}
.zpw-box__input::placeholder { color: var(--zpw-muted); }
.zpw-box__input:focus { border-color: var(--zpw-navy); box-shadow: 0 0 0 4px rgba(53,97,153,.12); }

/* Dropdown */
.zpw-drop {
    display: none; position: absolute; z-index: 50; left: 0; right: 0; top: calc(100% + 8px);
    background: #fff; border: 1px solid var(--zpw-line); border-radius: 14px; padding: 8px;
    box-shadow: 0 20px 48px rgba(53,97,153,.18); max-height: 420px; overflow-y: auto;
}
.zpw-drop.is-open { display: block; }

.zpw-group + .zpw-group { margin-top: 4px; border-top: 1px solid var(--zpw-line); padding-top: 4px; }
.zpw-group__title {
    font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    color: var(--zpw-muted); padding: 8px 12px 4px;
}
.zpw-it {
    display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 10px;
    text-decoration: none !important; color: var(--zpw-ink) !important; cursor: pointer;
}
.zpw-it:hover, .zpw-it.is-active { background: var(--zpw-bg); }
.zpw-it__ico { width: 19px; height: 19px; color: var(--zpw-pink-d); flex: 0 0 auto; }
.zpw-it__label { font-size: 15px; font-weight: 600; line-height: 1.2; }
.zpw-it__label mark { background: transparent; color: var(--zpw-navy); font-weight: 800; padding: 0; }

.zpw-none { padding: 18px 14px; text-align: center; color: var(--zpw-muted); font-size: 14px; }

@media (max-width: 600px) { .zpw-box__input { font-size: 16px; } }
