.pvl-locator{
    --pvl-accent:#1f6f5f;
    --pvl-border:#d9dedc;
    --pvl-muted:#626c68;
    --pvl-bg:#ffffff;
    --pvl-soft:#f4f7f6;
    --pvl-title-color:#17201d;
    --pvl-title-size:32px;
    --pvl-title-font:inherit;
    --pvl-title-align:center;
    --pvl-results-width:42%;
    width:100%;
    max-width:none;
    min-width:0;
    color:inherit;
    font:inherit;
    container-type:inline-size;
}
.pvl-locator,.pvl-locator *{box-sizing:border-box}
.pvl-locator .pvl-title{
    margin:0 0 18px !important;
    color:var(--pvl-title-color) !important;
    font-family:var(--pvl-title-font) !important;
    font-size:var(--pvl-title-size) !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    letter-spacing:normal !important;
    text-transform:none !important;
    text-align:var(--pvl-title-align) !important;
    width:100%;
}
.pvl-locator .pvl-search-panel{
    display:grid;
    grid-template-columns:minmax(220px,1fr) 130px auto auto;
    align-items:end;
    gap:12px;
    width:100%;
    min-width:0;
    padding:16px;
    border:1px solid var(--pvl-border) !important;
    border-radius:14px;
    background:var(--pvl-soft) !important;
}
.pvl-locator .pvl-field{display:flex;min-width:0;flex-direction:column;gap:6px}
.pvl-locator .pvl-field label{color:inherit !important;font:inherit !important;font-weight:600 !important;font-size:.92rem !important}
.pvl-locator .pvl-field input,.pvl-locator .pvl-field select{
    appearance:auto;
    width:100% !important;
    max-width:100% !important;
    min-width:0;
    min-height:46px;
    border:1px solid var(--pvl-border) !important;
    border-radius:9px !important;
    background:#fff !important;
    color:#17201d !important;
    padding:10px 12px !important;
    font:inherit !important;
    box-shadow:none !important;
}
.pvl-locator .pvl-field input:focus,.pvl-locator .pvl-field select:focus{outline:3px solid color-mix(in srgb,var(--pvl-accent) 22%,transparent) !important;border-color:var(--pvl-accent) !important}
.pvl-locator .pvl-button{
    appearance:none;
    width:auto;
    min-height:46px;
    border:1px solid transparent !important;
    border-radius:9px !important;
    padding:10px 17px !important;
    font:inherit !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    letter-spacing:normal !important;
    text-decoration:none !important;
    text-transform:none !important;
    cursor:pointer;
    white-space:nowrap;
    box-shadow:none !important;
}
.pvl-locator .pvl-button:focus{outline:3px solid color-mix(in srgb,var(--pvl-accent) 25%,transparent) !important;outline-offset:2px}
.pvl-locator .pvl-button:disabled{opacity:.65;cursor:wait}
.pvl-locator .pvl-button-primary,.pvl-locator .pvl-button-primary:hover,.pvl-locator .pvl-button-primary:focus{background:var(--pvl-accent) !important;border-color:var(--pvl-accent) !important;color:#fff !important}
.pvl-locator .pvl-button-primary:hover{filter:brightness(.93)}
.pvl-locator .pvl-button-secondary,.pvl-locator .pvl-button-secondary:hover,.pvl-locator .pvl-button-secondary:focus{background:#fff !important;border-color:var(--pvl-border) !important;color:#1e2925 !important}
.pvl-locator .pvl-button-secondary:hover{background:#eef2f0 !important}
.pvl-locator .pvl-status{min-height:26px;padding:9px 2px 5px;color:var(--pvl-muted);font-size:.95rem}
.pvl-locator .pvl-layout{
    display:grid;
    grid-template-columns:minmax(0,calc(100% - var(--pvl-results-width) - 16px)) minmax(0,var(--pvl-results-width));
    gap:16px;
    width:100%;
    min-width:0;
    align-items:stretch;
}
.pvl-locator .pvl-map{
    width:100%;
    min-width:0;
    height:var(--pvl-map-height,520px);
    min-height:320px;
    border:1px solid var(--pvl-border) !important;
    border-radius:14px;
    overflow:hidden;
    background:#e7ecea;
    z-index:0;
}
.pvl-locator .pvl-map-message{display:flex;width:100%;height:100%;min-height:320px;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--pvl-muted)}
.pvl-locator .pvl-results{
    width:100%;
    min-width:0;
    height:var(--pvl-map-height,520px);
    min-height:320px;
    overflow-y:auto;
    overflow-x:hidden;
    border:1px solid var(--pvl-border) !important;
    border-radius:14px;
    background:var(--pvl-bg) !important;
    padding:10px;
}
.pvl-locator .pvl-store-card{
    appearance:none;
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0;
    text-align:left !important;
    background:#fff !important;
    color:inherit !important;
    border:1px solid var(--pvl-border) !important;
    border-radius:11px !important;
    padding:14px !important;
    margin:0 0 10px !important;
    font:inherit !important;
    line-height:inherit !important;
    letter-spacing:normal !important;
    text-transform:none !important;
    cursor:pointer;
    box-shadow:none !important;
    overflow:hidden;
}
.pvl-locator .pvl-store-card:last-child{margin-bottom:0 !important}
.pvl-locator .pvl-store-card:hover,.pvl-locator .pvl-store-card:focus{border-color:var(--pvl-accent) !important;box-shadow:0 0 0 2px color-mix(in srgb,var(--pvl-accent) 14%,transparent) !important;outline:none}
.pvl-locator .pvl-store-card *{min-width:0}
.pvl-locator .pvl-store-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.pvl-locator .pvl-store-name{color:var(--pvl-accent) !important;font-weight:750 !important;line-height:1.25;overflow-wrap:anywhere}
.pvl-locator .pvl-distance{flex:0 0 auto;border-radius:999px;background:color-mix(in srgb,var(--pvl-accent) 12%,white);color:var(--pvl-accent);padding:3px 8px;font-size:.82rem;font-weight:700}
.pvl-locator .pvl-address{margin-top:7px;color:var(--pvl-muted) !important;line-height:1.42;font-size:.94rem;overflow-wrap:anywhere}
.pvl-locator .pvl-links{display:flex;max-width:100%;flex-wrap:wrap;gap:8px 12px;margin-top:10px;font-size:.9rem}
.pvl-locator .pvl-links a,.pvl-locator .pvl-popup-links a{color:var(--pvl-accent) !important;font-weight:650 !important;text-decoration:none !important;overflow-wrap:anywhere}
.pvl-locator .pvl-links a:hover,.pvl-locator .pvl-popup-links a:hover{text-decoration:underline !important}
.pvl-locator .pvl-empty{padding:22px 14px;text-align:center;color:var(--pvl-muted)}
.pvl-locator .pvl-popup-name{font-weight:750;margin-bottom:5px}
.pvl-locator .pvl-popup-address{margin-bottom:8px}
.pvl-locator .pvl-popup-links{display:flex;gap:10px;flex-wrap:wrap}
.pvl-locator .pvl-user-marker{background:transparent;border:0}
.pvl-locator .pvl-user-marker-dot{display:block;width:18px;height:18px;border-radius:50%;background:#2166d1;border:4px solid #fff;box-shadow:0 0 0 2px rgba(33,102,209,.35)}

/* Reagisce alla larghezza effettiva del widget Elementor, non solo allo schermo. */
@container (max-width:780px){
    .pvl-locator .pvl-search-panel{grid-template-columns:1fr 130px}
    .pvl-locator .pvl-button{width:100%}
    .pvl-locator .pvl-layout{grid-template-columns:1fr}
    .pvl-locator .pvl-results{height:auto;max-height:520px;min-height:0}
}
@container (max-width:500px){
    .pvl-locator .pvl-search-panel{grid-template-columns:1fr}
    .pvl-locator .pvl-map{height:410px}
    .pvl-locator .pvl-results{max-height:none}
}
/* Fallback per browser senza container queries. */
@media(max-width:900px){
    .pvl-locator .pvl-layout{grid-template-columns:1fr}
    .pvl-locator .pvl-results{height:auto;max-height:520px;min-height:0}
}
@media(max-width:560px){
    .pvl-locator .pvl-search-panel{grid-template-columns:1fr}
    .pvl-locator .pvl-button{width:100%}
    .pvl-locator .pvl-map{height:410px}
    .pvl-locator .pvl-results{max-height:none}
}


/* Selettore dell'app di mappe: usa nome + indirizzo del punto vendita. */
.pvl-locator .pvl-map-chooser[hidden]{display:none !important}
.pvl-locator .pvl-map-chooser{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
}
.pvl-locator .pvl-map-chooser-backdrop{
    appearance:none;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    border:0 !important;
    border-radius:0 !important;
    background:rgba(14,22,19,.46) !important;
    cursor:pointer;
}
.pvl-locator .pvl-map-chooser-card{
    position:relative;
    z-index:1;
    width:min(430px,100%);
    max-height:calc(100% - 24px);
    overflow:auto;
    padding:24px;
    border:1px solid var(--pvl-border) !important;
    border-radius:18px;
    background:#fff !important;
    color:#17201d !important;
    box-shadow:0 22px 70px rgba(0,0,0,.22) !important;
}
.pvl-locator .pvl-map-chooser-close{
    appearance:none;
    position:absolute;
    top:10px;
    right:12px;
    width:40px;
    height:40px;
    border:0 !important;
    border-radius:50% !important;
    padding:0 !important;
    background:transparent !important;
    color:#39443f !important;
    font:inherit !important;
    font-size:28px !important;
    line-height:1 !important;
    cursor:pointer;
}
.pvl-locator .pvl-map-chooser-close:hover{background:var(--pvl-soft) !important}
.pvl-locator .pvl-map-chooser-eyebrow{padding-right:42px;color:var(--pvl-muted) !important;font-size:.83rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.pvl-locator .pvl-map-chooser-title{margin-top:5px;padding-right:42px;color:#17201d !important;font-size:1.25rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere}
.pvl-locator .pvl-map-chooser-address{margin-top:6px;color:var(--pvl-muted) !important;font-size:.92rem;line-height:1.4;overflow-wrap:anywhere}
.pvl-locator .pvl-map-providers{display:grid;gap:9px;margin-top:18px}
.pvl-locator .pvl-map-provider{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:50px;
    gap:16px;
    padding:12px 14px !important;
    border:1px solid var(--pvl-border) !important;
    border-radius:11px !important;
    background:#fff !important;
    color:#17201d !important;
    font:inherit !important;
    font-weight:750 !important;
    text-decoration:none !important;
    box-shadow:none !important;
}
.pvl-locator .pvl-map-provider:hover,.pvl-locator .pvl-map-provider:focus{border-color:var(--pvl-accent) !important;background:var(--pvl-soft) !important;color:var(--pvl-accent) !important;outline:none}
.pvl-locator .pvl-map-provider:focus-visible,.pvl-locator .pvl-map-chooser-close:focus-visible{outline:3px solid color-mix(in srgb,var(--pvl-accent) 25%,transparent) !important;outline-offset:2px}
.pvl-locator .pvl-map-provider[hidden]{display:none !important}
.pvl-locator .pvl-map-provider-name{min-width:0;overflow-wrap:anywhere}
.pvl-locator .pvl-map-chooser-note{margin-top:14px;color:var(--pvl-muted) !important;font-size:.8rem;line-height:1.4}
@media(max-width:560px){
    .pvl-locator .pvl-map-chooser{align-items:flex-end;padding:12px}
    .pvl-locator .pvl-map-chooser-card{width:100%;padding:22px 18px 18px;border-radius:18px}
}
