.pp-branches{--b:#194c7d;--c:#11b4df;max-width:1180px;margin:auto;padding:45px 20px;font-family:inherit}.pp-branches *{box-sizing:border-box}.pp-branches .pp-branches-header{text-align:center;max-width:680px;margin:0 auto 24px}.pp-branches .pp-branches-header>span{color:var(--c);font-size:10px;font-weight:800;letter-spacing:1.6px}.pp-branches h2{margin:7px 0 0;color:var(--b);font-size:clamp(28px,3.5vw,42px);line-height:1.08}.pp-branches .pp-branches-header p{color:#687987;font-size:12px}.pp-tools{display:grid;grid-template-columns:1fr 260px;gap:10px;margin-bottom:13px}.pp-tools input,.pp-tools select{height:48px;border:1px solid #dfe8ee;border-radius:11px;background:#fff;padding:0 14px;font:inherit;font-size:12px;outline:0}.pp-layout{display:grid;grid-template-columns:1.3fr .9fr;gap:14px}.pp-map,.pp-list-wrap{border:1px solid #e3ebf1;border-radius:20px;background:#fff;box-shadow:0 15px 40px rgba(25,76,125,.07);overflow:hidden}.pp-map{position:relative;min-height:470px;display:grid;place-items:center;background:radial-gradient(circle at 75% 20%,rgba(17,180,223,.16),transparent 32%),#f1f7fa}.pp-map svg{width:90%;filter:drop-shadow(0 15px 20px rgba(25,76,125,.18))}.pp-map path{fill:#194c7d}.pp-map-title{position:absolute;left:22px;top:20px;z-index:2}.pp-map-title small{display:block;color:var(--c);font-size:9px;font-weight:800;letter-spacing:1.3px}.pp-map-title strong{display:block;color:var(--b);font-size:17px;margin-top:4px}.pp-chips{position:absolute;inset:0}.pp-chip{position:absolute;transform:translate(-50%,-50%);border:0;border-radius:999px;padding:6px 9px;background:#fff;color:var(--b);font-size:8px;font-weight:800;box-shadow:0 6px 18px rgba(25,76,125,.2);cursor:pointer}.pp-chip.active,.pp-chip:hover{background:var(--c);color:#fff}.pp-list-wrap{min-height:470px}.pp-list-head{display:flex;justify-content:space-between;padding:17px 17px 10px;color:var(--b);font-size:12px}.pp-count{color:var(--c);font-size:10px}.pp-list{max-height:420px;overflow:auto;padding:0 11px 13px}.pp-card{padding:14px;margin-bottom:8px;border:1px solid #e5edf2;border-radius:12px;background:#fbfcfd}.pp-card h3{margin:0;color:var(--b);font-size:13px}.pp-code{color:var(--c);font-size:9px;margin-left:5px}.pp-meta{display:grid;gap:5px;margin-top:8px;color:#617281;font-size:10px;line-height:1.45}.pp-actions{display:flex;gap:6px;margin-top:10px}.pp-actions a{display:inline-flex;align-items:center;min-height:33px;padding:0 10px;border-radius:7px;text-decoration:none!important;font-size:9px;font-weight:800}.pp-maps{background:var(--c);color:#fff!important}.pp-call{background:#edf3f6;color:var(--b)!important}.pp-empty{text-align:center;padding:35px 15px;color:#7a8995;font-size:11px}@media(max-width:850px){.pp-layout{grid-template-columns:1fr}.pp-map{min-height:350px}.pp-list-wrap{min-height:auto}.pp-list{max-height:none}}@media(max-width:600px){.pp-branches{padding:35px 14px}.pp-branches h2{font-size:25px}.pp-tools{grid-template-columns:1fr}.pp-map{min-height:290px;border-radius:16px}.pp-list-wrap{border-radius:16px}.pp-map-title{left:15px;top:14px}.pp-map-title strong{font-size:14px}.pp-chip{font-size:7px;padding:5px 7px}}

/* =========================================
   CUADRICULA POR PROVINCIAS
   Shortcode: [premier_pack_sucursales_grid]
========================================= */
.pp-grid-section{--b:#194c7d;--c:#11b4df;max-width:1180px;margin:auto;padding:45px 20px;font-family:inherit}.pp-grid-section *{box-sizing:border-box}
.pp-grid-header{text-align:center;max-width:680px;margin:0 auto 27px}.pp-grid-header>span{display:block;color:var(--c);font-size:10px;font-weight:800;letter-spacing:1.6px}.pp-grid-header h2{margin:7px 0 0;color:var(--b);font-size:clamp(28px,3.4vw,40px);line-height:1.08}.pp-grid-header p{margin:9px 0 0;color:#687987;font-size:12px}
.pp-province-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.pp-province-card{overflow:hidden;border:1px solid #e3ebf1;border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(25,76,125,.07)}
.pp-province-card__head{position:relative;display:flex;align-items:center;gap:11px;padding:17px 18px;background:linear-gradient(135deg,#194c7d,#123e68);color:#fff}
.pp-province-pin{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:11px;background:rgba(17,180,223,.18);color:#6eddf5;font-size:20px}
.pp-province-card__head span{display:block;color:#69daf3;font-size:8px;font-weight:800;letter-spacing:1.3px}.pp-province-card__head h3{margin:2px 0 0;color:#fff;font-size:17px;line-height:1.1}.pp-province-card__head>b{margin-left:auto;min-width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.12);font-size:10px}
.pp-province-branches{padding:8px 13px 13px}.pp-grid-branch{padding:13px 4px;border-bottom:1px solid #edf1f4}.pp-grid-branch:last-child{border-bottom:0}.pp-grid-branch__title{display:flex;align-items:center;gap:7px}.pp-grid-branch__title strong{color:var(--b);font-size:12px;line-height:1.3}.pp-grid-branch__title span{padding:3px 6px;border-radius:999px;background:rgba(17,180,223,.09);color:var(--c);font-size:8px;font-weight:800}.pp-grid-branch p{margin:6px 0 0;color:#657683;font-size:9.5px;line-height:1.45}
.pp-grid-actions{display:flex;gap:6px;margin-top:9px}.pp-grid-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 10px;border-radius:7px;background:var(--c);color:#fff!important;text-decoration:none!important;font-size:8.5px;font-weight:800}.pp-grid-actions .pp-grid-call{background:#edf3f6;color:var(--b)!important}.pp-grid-empty{text-align:center;padding:35px;border:1px solid #e3ebf1;border-radius:16px;color:#748490}
@media(max-width:900px){.pp-province-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.pp-grid-section{padding:35px 14px}.pp-grid-header{margin-bottom:20px}.pp-grid-header h2{font-size:24px}.pp-province-grid{grid-template-columns:1fr;gap:11px}.pp-province-card{border-radius:15px}.pp-province-card__head{padding:14px 15px}.pp-province-card__head h3{font-size:15px}.pp-province-branches{padding:6px 12px 11px}}

/* v1.2: mapa real + marcadores sin rectángulos */
.pp-map{display:block!important;position:relative!important;padding:0!important;min-height:470px!important}
.pp-map-title{z-index:5}.pp-map-title em{display:block;margin-top:4px;color:#718491;font-size:9px;font-style:normal}
.pp-real-map{position:absolute;left:4%;right:4%;top:86px;bottom:28px;display:flex;align-items:center;justify-content:center}
.pp-real-map>img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(25,76,125,.14))}
.pp-real-map .pp-chips{position:absolute;inset:0;display:block}
.pp-real-map .pp-chip{display:block;position:absolute;width:30px;height:38px;padding:0;margin:0;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:translate(-50%,-100%);cursor:pointer;overflow:visible;color:#fff}
.pp-real-map .pp-chip:hover,.pp-real-map .pp-chip.active{background:transparent!important;color:#fff;transform:translate(-50%,-100%) scale(1.15);z-index:20}
.pp-pin-dot{position:absolute;left:2px;top:0;width:26px;height:26px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:#11b4df;border:2px solid #fff;box-shadow:0 4px 10px rgba(25,76,125,.3)}
.pp-chip.active .pp-pin-dot{background:#194c7d}
.pp-pin-num{position:absolute;left:2px;top:0;width:26px;height:26px;display:grid;place-items:center;color:#fff;font-size:8px;font-weight:900;z-index:2}
.pp-pin-tip{position:absolute;left:50%;bottom:43px;transform:translateX(-50%);white-space:nowrap;padding:6px 8px;border-radius:7px;background:#123e68;color:#fff;font-size:8px;font-weight:700;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 6px 16px rgba(25,76,125,.22)}
.pp-pin-tip:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:4px solid transparent;border-top-color:#123e68}.pp-chip:hover .pp-pin-tip,.pp-chip:focus .pp-pin-tip{opacity:1;visibility:visible}
.pp-map-credit{position:absolute;left:20px;bottom:10px;color:#9aaab4;font-size:7px}
@media(max-width:850px){.pp-map{min-height:390px!important}.pp-real-map{top:78px;left:2%;right:2%}}
@media(max-width:600px){.pp-map{min-height:300px!important}.pp-real-map{top:66px;left:0;right:0;bottom:18px}.pp-map-title em{display:none}.pp-real-map .pp-chip{width:25px;height:32px}.pp-pin-dot{width:22px;height:22px}.pp-pin-num{width:22px;height:22px;font-size:7px}.pp-pin-tip{bottom:36px}}


/* =========================================
   V1.2.2 - MEJOR LEGIBILIDAD
========================================= */

/* Cuadrícula: nombre de sucursal */
.pp-grid-branch strong {
    color: #194c7d !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
}

/* Cuadrícula: dirección, teléfono y horario */
.pp-grid-branch p {
    color: #526878 !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    letter-spacing: 0 !important;
    margin: 6px 0 !important;
}

/* Resultados junto al mapa: nombre */
.pp-card h3 {
    color: #194c7d !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
}

/* Resultados junto al mapa: detalles */
.pp-meta,
.pp-meta div {
    color: #526878 !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
}

/* Provincia dentro de los detalles */
.pp-meta b {
    color: #3f596b !important;
    font-weight: 600 !important;
}

/* Mejor lectura en móvil */
@media (max-width: 600px) {
    .pp-grid-branch strong {
        font-size: 14px !important;
    }

    .pp-grid-branch p {
        font-size: 12px !important;
        line-height: 1.65 !important;
    }

    .pp-card h3 {
        font-size: 14px !important;
    }

    .pp-meta,
    .pp-meta div {
        font-size: 11.5px !important;
        line-height: 1.65 !important;
    }
}


/* =========================================
   V1.2.3 - MARCADOR PREMIUM CON FAVICON
========================================= */
.pp-pin {
    background: linear-gradient(135deg, #194c7d, #0f3558) !important;
    border: 2px solid #ffffff !important;
}

.pp-marker.active .pp-pin {
    background: linear-gradient(135deg, #123e68, #082945) !important;
    box-shadow: 0 0 0 4px rgba(17, 180, 223, .20);
}

.pp-num {
    padding: 5px !important;
}

.pp-num img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    filter: none !important;
}

/* Un poco más grande para que el favicon se reconozca mejor */
.pp-marker {
    width: 38px !important;
    height: 46px !important;
}

.pp-pin {
    width: 32px !important;
    height: 32px !important;
}

.pp-num {
    width: 32px !important;
    height: 32px !important;
}

@media (max-width: 600px) {
    .pp-marker {
        width: 34px !important;
        height: 42px !important;
    }

    .pp-pin,
    .pp-num {
        width: 29px !important;
        height: 29px !important;
    }

    .pp-num {
        padding: 5px !important;
    }
}


/* =========================================
   V1.2.4 - MARCADOR REAL: AZUL OSCURO + LOGO
   Clases reales usadas por frontend.js: pp-chip / pp-pin-dot / pp-pin-num
========================================= */
.pp-branches .pp-pin-dot{
    background:#194c7d !important;
    border:2px solid #ffffff !important;
    box-shadow:0 5px 14px rgba(10,45,77,.32) !important;
}

.pp-branches .pp-chip.active .pp-pin-dot{
    background:#0f3558 !important;
    box-shadow:
        0 0 0 4px rgba(17,180,223,.22),
        0 5px 14px rgba(10,45,77,.32) !important;
}

.pp-branches .pp-pin-num{
    padding:4px !important;
    overflow:visible !important;
}

.pp-branches .pp-pin-num img{
    display:block !important;
    width:18px !important;
    height:18px !important;
    max-width:none !important;
    object-fit:contain !important;
    object-position:center !important;
    transform:none !important;
    filter:none !important;
    opacity:1 !important;
}

@media(max-width:600px){
    .pp-branches .pp-pin-num{
        padding:3px !important;
    }
    .pp-branches .pp-pin-num img{
        width:16px !important;
        height:16px !important;
    }
}


/* =========================================
   V1.2.5 - CANTIDAD JUNTO AL MARCADOR
========================================= */
.pp-branches .pp-pin-count{
    position:absolute !important;
    left:31px !important;
    top:0px !important;
    min-width:22px !important;
    height:22px !important;
    padding:0 6px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:999px !important;
    background:#194c7d !important;
    border:2px solid #fff !important;
    color:#fff !important;
    font-size:11px !important;
    font-weight:800 !important;
    line-height:1 !important;
    box-shadow:0 4px 10px rgba(10,45,77,.25) !important;
    z-index:5 !important;
    pointer-events:none !important;
}

.pp-branches .pp-chip.active .pp-pin-count{
    background:#0f3558 !important;
}

@media(max-width:600px){
    .pp-branches .pp-pin-count{
        left:28px !important;
        top:-1px !important;
        min-width:20px !important;
        height:20px !important;
        padding:0 5px !important;
        font-size:10px !important;
    }
}


/* =========================================
   V1.2.6 - AISLAMIENTO WORDPRESS / ELEMENTOR
   Evita conflictos con estilos globales del header del tema.
========================================= */
.pp-branches .pp-branches-header,
.pp-grid-section .pp-grid-header{
    position:relative !important;
    width:auto !important;
    min-height:0 !important;
    height:auto !important;
    inset:auto !important;
    transform:none !important;
    float:none !important;
    background:transparent !important;
    box-shadow:none !important;
    z-index:auto !important;
}

.pp-branches .pp-branches-header{
    text-align:center;
    max-width:680px;
    margin:0 auto 24px;
}

/* V1.2.7 SOLO MAPA HOME */
.pp-home-map-only .pp-branches{max-width:1180px;padding:20px}
.pp-home-map-only .pp-branches-header,.pp-home-map-only .pp-tools,.pp-home-map-only .pp-list-wrap{display:none!important}
.pp-home-map-only .pp-layout{display:block!important}
.pp-home-map-only .pp-map{width:100%!important;min-height:470px;border-radius:22px}
@media(max-width:850px){.pp-home-map-only .pp-map{min-height:380px}}
@media(max-width:600px){.pp-home-map-only .pp-branches{padding:10px 0}.pp-home-map-only .pp-map{min-height:300px;border-radius:16px}}


/* =========================================
   V1.2.8 - CORRECCION MAPA SOLO HOME
   Mantiene el mismo sistema de coordenadas
   que el SVG 1000 x 686 para que los pins
   no se desplacen al ensanchar el shortcode.
========================================= */

.pp-home-map-only .pp-map{
    min-height:590px !important;
}

/* El SVG real tiene viewBox 1000 x 686.
   Los marcadores ahora se posicionan sobre
   una caja con exactamente esa proporción. */
.pp-home-map-only .pp-real-map{
    left:50% !important;
    right:auto !important;
    top:72px !important;
    bottom:auto !important;

    width:min(72%, 760px) !important;
    height:auto !important;
    aspect-ratio:1000 / 686 !important;

    transform:translateX(-50%) !important;

    display:block !important;
}

/* Imagen y capa de marcadores ocupan la misma caja */
.pp-home-map-only .pp-real-map > img{
    position:absolute !important;
    inset:0 !important;

    width:100% !important;
    height:100% !important;

    object-fit:fill !important;
}

.pp-home-map-only .pp-real-map .pp-chips{
    position:absolute !important;
    inset:0 !important;
}

/* TABLET */
@media(max-width:850px){

    .pp-home-map-only .pp-map{
        min-height:500px !important;
    }

    .pp-home-map-only .pp-real-map{
        top:72px !important;

        width:min(82%, 640px) !important;
    }

}

/* MOVIL */
@media(max-width:600px){

    .pp-home-map-only .pp-map{
        min-height:350px !important;
    }

    .pp-home-map-only .pp-real-map{
        top:67px !important;

        width:94% !important;
        max-width:430px !important;
    }

}
