/* Page Location — carte + liste d'emplacements */

.location-section { background: var(--paper); padding: 4rem 0 6rem; }

.location-layout {
    display: grid; grid-template-columns: 380px 1fr; gap: 2.5rem;
    align-items: stretch;
}

.location-list { display: flex; flex-direction: column; gap: 1rem; }
.location-list h2 { font-family: var(--font-display); font-size: 1.6rem; color: var(--bbq); margin-bottom: .5rem; }

.loc-card {
    background: var(--cream);
    border: 3px solid var(--bbq); border-radius: 16px;
    padding: 1.25rem 1.5rem;
    box-shadow: 6px 6px 0 var(--bbq);
    transition: transform .15s, box-shadow .15s;
    position: relative;
}
.loc-card:hover { transform: translate(3px, 3px); box-shadow: 3px 3px 0 var(--bbq); }
.loc-card.is-active { border-color: var(--ketchup); box-shadow: 6px 6px 0 var(--ketchup); }
.loc-card.is-active:hover { box-shadow: 3px 3px 0 var(--ketchup); }

.loc-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .35rem; gap: .5rem; }
.loc-card h3 { font-family: var(--font-display); font-size: 1.2rem; color: var(--bbq); line-height: 1; }
.loc-card p { font-size: .9rem; color: var(--bbq); opacity: .8; margin-bottom: 1rem; }
.loc-badge {
    background: var(--ketchup); color: var(--cream);
    font-size: .72rem; font-weight: 700; padding: 4px 12px;
    border-radius: 99px; letter-spacing: .06em; text-transform: uppercase;
    animation: pulse 2s ease-in-out infinite;
    white-space: nowrap;
}
.loc-badge-muted {
    background: var(--sesame); color: var(--bbq);
    animation: none;
}
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }

/* ---- Map ---- */
.location-map {
    min-height: 560px;
    border: 4px solid var(--bbq); border-radius: 18px;
    box-shadow: 10px 10px 0 var(--bbq);
    background: var(--cream);
    overflow: hidden;
}
.leaflet-container { font-family: var(--font-body); border-radius: 14px; }
.leaflet-popup-content-wrapper {
    background: var(--cream);
    border: 2px solid var(--bbq);
    border-radius: 10px;
    color: var(--bbq);
}
.leaflet-popup-tip { background: var(--bbq); }

.jerrys-pin {
    background: transparent;
    border: none;
}
.jerrys-pin .pin-inner {
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--moutarde);
    border: 3px solid var(--bbq);
    display: grid; place-items: center;
    font-size: 1.4rem;
    box-shadow: 0 4px 0 var(--bbq), 0 6px 10px rgba(0,0,0,.25);
    transform: translateY(-4px);
}
.jerrys-pin.is-active .pin-inner {
    background: var(--ketchup);
    animation: pinPulse 1.5s ease-in-out infinite;
}
@keyframes pinPulse {
    0%, 100% { box-shadow: 0 4px 0 var(--bbq), 0 0 0 0 rgba(199,48,48,.5); }
    50%      { box-shadow: 0 4px 0 var(--bbq), 0 0 0 14px rgba(199,48,48,0); }
}

/* ---- Responsive ---- */
@media (max-width: 900px) {
    .location-layout { grid-template-columns: 1fr; }
    .location-map { min-height: 420px; }
}
