/* Fachpartnersuche (WesanoxPartnerDirectory). Colours follow the site's Bootstrap theme;
   override the custom properties in the site stylesheet if needed. */
.pd-search {
    --pd-muted: #6c757d;
    --pd-border: #dee2e6;
    --pd-error: #b00020;
    --pd-surface: #f8f9fa;
    --pd-radius: 10px;
}
.pd-search__intro { margin-bottom: 1.5rem; }
.pd-search__form { margin-bottom: 2rem; }
.pd-search__fields { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
.pd-search__country { flex: 0 0 14rem; }
.pd-search__zip { flex: 1 1 14rem; }
.pd-search__offers { margin: 1rem 0 0; border: 0; padding: 0; }
.pd-search__error { margin: 1rem 0 0; color: var(--pd-error); }
.pd-search__summary { color: var(--pd-muted); }
.pd-map { --pd-marker: var(--bs-primary, #008ac5); width: 100%; height: 420px; margin-bottom: 1.5rem; border-radius: 10px; overflow: hidden; background: #eef0f2; }
.pd-map__popup { display: flex; flex-direction: column; gap: .15rem; font-size: .9rem; }
.pd-map__popup a { margin-top: .25rem; }
.pd-map .pd-map__link { align-self: flex-start; color: var(--pd-accent, var(--pd-marker)); font-weight: 600; text-decoration: none; }
.pd-map .pd-map__link::after { content: " ›"; }
.pd-map .pd-map__link:hover { text-decoration: underline; }
.pd-map .pd-map__link:focus { outline: 0; }
.pd-map .pd-map__link:focus-visible { outline: 2px solid var(--pd-accent, var(--pd-marker)); outline-offset: 2px; border-radius: 2px; }
@media (max-width: 575px) { .pd-map { height: 320px; } }

/* Map attribution: flat and quiet instead of the MapLibre default (white pill, filled icon, blue focus ring). */
.pd-map { --pd-accent: var(--pd-marker); }
.pd-map .maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib { margin: 0 8px 8px 0; }
.pd-map .maplibregl-ctrl-attrib.maplibregl-compact { min-height: 24px; background: rgba(255, 255, 255, .8); border-radius: 999px; box-shadow: none; font-size: 11px; line-height: 20px; color: #555; }
.pd-map .maplibregl-ctrl-attrib.maplibregl-compact-show { padding: 2px 30px 2px 10px; }
.pd-map .maplibregl-ctrl-attrib a { color: inherit; font-size: inherit; font-weight: inherit; }
.pd-map .maplibregl-ctrl-attrib a:hover { color: var(--pd-accent); }
.pd-map .maplibregl-ctrl-attrib-button,
.pd-map .maplibregl-compact-show .maplibregl-ctrl-attrib-button { width: 24px; height: 24px; border-radius: 50%; background: none; background-color: transparent; box-shadow: none; }
.pd-map .maplibregl-ctrl-attrib-button::before { content: ""; position: absolute; inset: 0; margin: auto; width: 16px; height: 16px; background-color: var(--pd-accent);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0'/%3E%3C/svg%3E") center / contain no-repeat; }
.pd-map .maplibregl-ctrl-attrib-button:hover { background-color: rgba(255, 255, 255, .9); }
.pd-map .maplibregl-ctrl-attrib-button:focus { box-shadow: none; }
.pd-map .maplibregl-ctrl-attrib-button:focus-visible { outline: 2px solid var(--pd-accent); outline-offset: 1px; }
.pd-search__list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(18rem, 100%), 1fr)); }
.pd-search__empty { padding: 1.5rem; background: var(--pd-surface); border-radius: var(--pd-radius); }
.pd-card { display: flex; flex-direction: column; gap: .75rem; padding: 1.25rem; border: 1px solid var(--pd-border); border-radius: var(--pd-radius); background: #fff; min-width: 0; }
.pd-card__logo { max-height: 60px; width: auto; align-self: flex-start; object-fit: contain; }
.pd-card__title { font-size: 1.1rem; margin: 0 0 .25rem; overflow-wrap: anywhere; }
.pd-card__address, .pd-card__distance, .pd-card__offers { margin: 0 0 .25rem; }
.pd-card__distance, .pd-card__offers { color: var(--pd-muted); font-size: .95em; }
.pd-card__contact { list-style: none; padding: 0; margin: .5rem 0 0; overflow-wrap: anywhere; }
.pd-card__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.pd-inquiry { max-width: 48rem; margin-top: 2rem; }
.pd-inquiry__back { padding-left: 0; }
.pd-inquiry__intro { color: var(--pd-muted); margin-bottom: 1.5rem; }
.pd-inquiry__message { margin: 1rem 0 0; color: var(--pd-error); }
.pd-inquiry__success { padding: 2rem; background: var(--pd-surface); border-radius: var(--pd-radius); }
.pd-inquiry__success p { margin: 0; }
.pd-inquiry .form-check-input.is-invalid ~ .invalid-feedback,
.pd-inquiry .form-control.is-invalid ~ .invalid-feedback { display: block; }
.pd-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 575px) { .pd-search__country { flex-basis: 100%; } }
