.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}

/* Marker dei punti vendita: usa lo stesso verde/accento configurato per il locator. */
.pvl-locator .pvl-store-marker-wrap{background:transparent!important;border:0!important}
.pvl-locator .pvl-store-marker-pin{position:absolute;left:3px;top:2px;width:24px;height:24px;border-radius:50% 50% 50% 0;background:var(--pvl-accent);border:2px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.30);transform:rotate(-45deg);transform-origin:50% 50%}
.pvl-locator .pvl-store-marker-dot{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}
.pvl-locator .pvl-store-marker-wrap:hover .pvl-store-marker-pin{filter:brightness(.92);box-shadow:0 3px 9px rgba(0,0,0,.34)}

.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}
}
.pvl-locator .pvl-route-arrow{appearance:none;flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--pvl-border)!important;border-radius:50%!important;background:#fff!important;color:var(--pvl-accent)!important;font-size:23px!important;line-height:1!important;padding:0!important;cursor:pointer;transition:.2s ease}.pvl-locator .pvl-route-arrow:hover,.pvl-locator .pvl-route-arrow:focus{background:var(--pvl-accent)!important;color:#fff!important;border-color:var(--pvl-accent)!important;outline:none}.pvl-locator .pvl-distance+.pvl-route-arrow{margin-left:-4px}

/* Privacy placeholder v0.3.1 */
.pvl-consent-placeholder{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px;background:linear-gradient(145deg,#f4faf5,#edf7ef);color:#2b4230}.pvl-consent-placeholder strong{font-size:18px;margin-bottom:7px}.pvl-consent-placeholder span{max-width:440px;font-size:13px;line-height:1.55;color:#6d7b70}.pvl-consent-placeholder button{margin-top:16px;border:0;border-radius:999px;background:linear-gradient(90deg,#35b75a,#168f35);color:#fff;padding:11px 18px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(22,143,53,.16)}


/* v0.3.5 — layout desktop più compatto: mappa ed elenco visibili subito. */
@media (min-width:901px){
    .pvl-locator .pvl-title{
        font-size:min(var(--pvl-title-size),34px)!important;
        margin-bottom:12px!important;
        line-height:1.12!important;
    }
    .pvl-locator .pvl-search-panel{
        grid-template-columns:minmax(220px,1fr) 112px auto auto;
        gap:9px;
        padding:12px;
        border-radius:12px;
    }
    .pvl-locator .pvl-field{gap:4px}
    .pvl-locator .pvl-field label{font-size:.84rem!important}
    .pvl-locator .pvl-field input,.pvl-locator .pvl-field select{
        min-height:40px;
        padding:8px 10px!important;
        border-radius:8px!important;
        font-size:.93rem!important;
    }
    .pvl-locator .pvl-button{
        min-height:40px;
        padding:8px 14px!important;
        border-radius:8px!important;
        font-size:.9rem!important;
    }
    .pvl-locator .pvl-status{
        min-height:22px;
        padding:6px 2px 3px;
        font-size:.86rem;
    }
    .pvl-locator .pvl-layout{gap:12px}
    .pvl-locator .pvl-map,.pvl-locator .pvl-results{
        min-height:300px;
        border-radius:12px;
    }
    .pvl-locator .pvl-results{padding:7px}
    .pvl-locator .pvl-store-card{
        padding:10px 11px!important;
        margin-bottom:7px!important;
        border-radius:9px!important;
    }
    .pvl-locator .pvl-store-name{font-size:.92rem}
    .pvl-locator .pvl-address{margin-top:5px;font-size:.84rem;line-height:1.34}
    .pvl-locator .pvl-links{margin-top:7px;gap:6px 10px;font-size:.82rem}
    .pvl-locator .pvl-route-arrow{flex-basis:30px;width:30px;height:30px;font-size:20px!important}
}


/* v0.3.6 — light sweep stile Spray Orale solo sui pulsanti pieni verdi. */
.pvl-locator .pvl-button-primary,.pvl-consent-placeholder button{position:relative!important;overflow:hidden!important;isolation:isolate!important}
.pvl-locator .pvl-button-primary::before,.pvl-consent-placeholder button::before{
  content:"";position:absolute;inset:-2px;background:linear-gradient(112deg,transparent 18%,rgba(255,255,255,.08) 31%,rgba(255,255,255,.78) 46%,rgba(255,255,255,.10) 60%,transparent 73%);
  transform:translateX(-145%) skewX(-12deg);transition:transform .72s cubic-bezier(.2,.8,.2,1);pointer-events:none
}
.pvl-locator .pvl-button-primary:hover::before,.pvl-consent-placeholder button:hover::before{transform:translateX(145%) skewX(-12deg)}
@media(prefers-reduced-motion:reduce){.pvl-locator .pvl-button-primary::before,.pvl-consent-placeholder button::before{transition:none}}
