/* =============================================================
   Branches Map Addon for Elementor — Shared Styles
   ============================================================= */

/* ── WIDGET 1: MAP WITH PINS ─────────────────────────────────── */
.bmw-map-wrapper { position: relative; width: 100%; overflow: visible; }
.bmw-map-wrapper > img { width: 100%; height: auto; display: block; }
.bmw-map-placeholder { width:100%; min-height:300px; background:#f1f5f9; border:2px dashed #cbd5e1; display:flex; align-items:center; justify-content:center; border-radius:8px; color:#94a3b8; font-size:.9rem; }
.bmw-decorative-line { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }

.bmw-pin { position:absolute; z-index:10; transform:translate(-50%,-100%); cursor:pointer; }
.bmw-pin-bubble { background:#e0654a; color:#fff; padding:4px 10px; border-radius:8px; font-size:.75rem; font-weight:600; white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,.15); position:relative; transition:transform .2s ease,box-shadow .2s ease; user-select:none; }
.bmw-pin-triangle { position:absolute; left:50%; transform:translateX(-50%); bottom:-6px; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid #e0654a; }

.bmw-anim-scale:hover .bmw-pin-bubble { transform:scale(1.15); box-shadow:0 4px 16px rgba(224,101,74,.35); }
@keyframes bmw-bounce { 0%,100%{transform:translateY(0)} 40%{transform:translateY(-7px)} 70%{transform:translateY(-3px)} }
.bmw-anim-bounce:hover .bmw-pin-bubble { animation:bmw-bounce .5s ease; }
.bmw-anim-glow:hover .bmw-pin-bubble { box-shadow:0 0 0 4px rgba(224,101,74,.25),0 2px 8px rgba(0,0,0,.15); transform:scale(1.05); }

.bmw-popup { position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); z-index:50; display:none; pointer-events:none; }
.bmw-pin[data-trigger="hover"]:hover .bmw-popup { display:block; animation:bmw-popup-in .2s ease forwards; pointer-events:auto; }
.bmw-pin.bmw-popup-open .bmw-popup { display:block; animation:bmw-popup-in .2s ease forwards; pointer-events:auto; }
@keyframes bmw-popup-in { from{opacity:0;transform:translateX(-50%) scale(.94) translateY(4px)} to{opacity:1;transform:translateX(-50%) scale(1) translateY(0)} }

.bmw-popup-inner { background:#fff; border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,.15); border:1px solid #e5e7eb; overflow:hidden; width:224px; }
.bmw-popup-inner iframe { display:block; border:0; width:100%; height:150px; }
.bmw-popup-label { padding:8px 12px; font-size:.75rem; font-weight:600; text-align:center; color:#1e293b; background:#fff; }
.bmw-popup-link-wrap { padding:4px 12px 10px; text-align:center; }
.bmw-popup-link { font-size:.75rem; font-weight:600; color:#e0654a; text-decoration:none; transition:opacity .2s; }
.bmw-popup-link:hover { opacity:.75; text-decoration:underline; }
.bmw-popup-arrow { position:absolute; left:50%; transform:translateX(-50%); bottom:-6px; width:0; height:0; border-left:6px solid transparent; border-right:6px solid transparent; border-top:6px solid #e5e7eb; }

/* ── WIDGET 2: SECTION LABEL ─────────────────────────────────── */
.bmw-label { color:#e0654a; font-weight:600; font-size:.875rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px; display:block; }
.bmw-label-bar { width:40px; height:2px; background:#e0654a; margin-top:6px; border-radius:2px; }

/* ── WIDGET 3: SECTION HEADING ───────────────────────────────── */
.bmw-heading { font-size:2rem; font-weight:700; color:#1e293b; line-height:1.2; margin-bottom:48px; }
.bmw-heading .bmw-highlight { color:#e0654a; }

/* ── WIDGET 4: STATISTICS ROW ────────────────────────────────── */
.bmw-stats { display:flex; flex-wrap:wrap; gap:48px; margin-top:48px; }
.bmw-stats--grid { display:grid; grid-template-columns:repeat(3,1fr); }
.bmw-stats--column { flex-direction:column; }
.bmw-stat { display:flex; flex-direction:column; }
.bmw-stat-icon { font-size:1.5rem; margin-bottom:6px; }
.bmw-stat-number { font-size:2.5rem; font-weight:700; color:#1e293b; line-height:1; margin:0; }
.bmw-stat-suffix { color:#e0654a; }
.bmw-stat-label { color:#64748b; font-size:.875rem; margin-top:4px; margin-bottom:0; }

/* ── WIDGET 5: LOCATION CARD ─────────────────────────────────── */
.bmw-lcard { background:#fff; border-radius:12px; overflow:hidden; border:1px solid #e5e7eb; box-shadow:0 4px 20px rgba(0,0,0,.08); }
.bmw-lcard-map { width:100%; overflow:hidden; }
.bmw-lcard-map iframe { display:block; width:100%; height:220px; border:0; }
.bmw-lcard-body { padding:20px; }
.bmw-lcard-header { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.bmw-lcard-icon { font-size:1.25rem; color:#e0654a; flex-shrink:0; }
.bmw-lcard-name { font-size:1.125rem; font-weight:700; color:#1e293b; margin:0; }
.bmw-lcard-detail { font-size:.875rem; color:#64748b; margin:0 0 6px; line-height:1.5; }
.bmw-lcard-tel,.bmw-lcard-email { color:#64748b; text-decoration:none; transition:color .2s; }
.bmw-lcard-tel:hover,.bmw-lcard-email:hover { color:#e0654a; }
.bmw-lcard-link { display:inline-block; margin-top:12px; font-size:.875rem; font-weight:600; color:#e0654a; text-decoration:none; transition:opacity .2s; }
.bmw-lcard-link:hover { opacity:.75; }

/* ── WIDGET 6: DECORATIVE LINE ───────────────────────────────── */
.bmw-dec-line-wrap { display:flex; justify-content:flex-start; }
.bmw-dec-line-svg { display:block; width:100%; height:80px; pointer-events:none; overflow:visible; }

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (min-width:768px) {
    .bmw-heading { font-size:3rem; }
    .bmw-stat-number { font-size:3.75rem; }
    .bmw-stats { gap:80px; }
}
@media (max-width:600px) {
    .bmw-pin-bubble { font-size:.625rem; padding:2px 6px; }
    .bmw-popup-inner { width:170px!important; }
    .bmw-popup-inner iframe { height:100px!important; }
    .bmw-stats { gap:24px; }
    .bmw-stat-number { font-size:2rem; }
    .bmw-stats--grid { grid-template-columns:repeat(2,1fr); }
}
