/* IBEF 2026 | General Maps: isolated styles, no changes to existing REV16 components. */
#general-maps {
  position: relative;
  margin: 0;
  padding: clamp(46px, 6vw, 84px) 20px clamp(60px, 7vw, 94px);
  background: linear-gradient(180deg, #f5faff 0%, #edf7ff 56%, #f5faff 100%);
  isolation: isolate;
}
#general-maps *, #general-maps *::before, #general-maps *::after { box-sizing: border-box; }
#general-maps .ibef-map-container { width: min(100%, 1216px); margin: 0 auto; }
#general-maps .ibef-map-heading { display:flex; gap:24px; justify-content:space-between; align-items:end; margin-bottom: 25px; }
#general-maps .ibef-map-eyebrow { margin:0 0 12px; color:#0066ff; text-transform:uppercase; letter-spacing:.19em; font-size:12px; font-weight:800; }
#general-maps .ibef-map-title { margin:0; color:#0f172a; font-size:clamp(28px, 3.5vw, 46px); font-weight:800; letter-spacing:-.055em; line-height:1.16; }
#general-maps .ibef-map-description { max-width:680px; margin:13px 0 0; color:#475569; font-size:14px; line-height:1.8; }
#general-maps .ibef-map-info { flex-shrink:0; display:inline-flex; gap:8px; align-items:center; color:#2563eb; font-size:12px; font-weight:700; border:1px solid #dbeafe; border-radius:999px; padding:9px 13px; background:rgba(255,255,255,.78); }
#general-maps .ibef-map-info svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.9; }
#general-maps .ibef-map-card { padding:10px; overflow:hidden; border-radius:28px; border:1px solid #cfe5ff; background:#fff; box-shadow:0 22px 56px rgba(31,84,138,.09), 0 4px 12px rgba(31,84,138,.03); }
#general-maps .ibef-map-viewport { position:relative; width:100%; height:clamp(430px,52vw,690px); border-radius:20px; overflow:hidden; touch-action:none; cursor:grab; outline:none; user-select:none; -webkit-user-select:none; background:radial-gradient(circle at 50% 52%,#fff 55%,#f3f8ff 100%); }
#general-maps .ibef-map-viewport.is-dragging { cursor:grabbing; }
#general-maps .ibef-map-viewport:focus-visible { outline:3px solid #0066ff; outline-offset:-3px; }
#general-maps .ibef-map-canvas { position:absolute; top:50%; left:50%; width:100%; height:100%; transform-origin:center center; will-change:transform; pointer-events:none; }
#general-maps .ibef-map-canvas img { display:block; width:100%; height:100%; object-fit:contain; -webkit-user-drag:none; pointer-events:none; }
#general-maps .ibef-map-controls { position:absolute; z-index:3; top:18px; right:18px; display:flex; flex-direction:column; align-items:center; gap:8px; }
#general-maps .ibef-map-control { display:grid; place-items:center; width:47px; height:47px; padding:0; border:1px solid #d5e4fa; border-radius:15px; background:rgba(255,255,255,.97); color:#0f172a; font-size:27px; line-height:1; font-weight:600; box-shadow:0 7px 20px rgba(18,56,106,.1); cursor:pointer; transition:background .18s, color .18s, transform .18s; }
#general-maps .ibef-map-control:hover:not(:disabled) { transform:translateY(-1px); background:#eef6ff; color:#0066ff; }
#general-maps .ibef-map-control:focus-visible { outline:3px solid #0066ff; outline-offset:2px; }
#general-maps .ibef-map-control:disabled { opacity:.5; cursor:not-allowed; }
#general-maps .ibef-map-control svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.85; stroke-linecap:round; stroke-linejoin:round; }
#general-maps .ibef-map-reset { margin-top:4px; }
#general-maps .ibef-map-zoom-label { position:absolute; z-index:2; left:18px; bottom:18px; padding:9px 13px; border:1px solid #dbeafe; border-radius:12px; background:rgba(255,255,255,.94); color:#16427a; font-size:12px; font-weight:800; letter-spacing:.025em; font-variant-numeric:tabular-nums; pointer-events:none; box-shadow:0 5px 18px rgba(12,59,126,.07); }
#general-maps .ibef-map-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 10px 6px; color:#64748b; font-size:12px; line-height:1.6; }
#general-maps .ibef-map-hint { display:flex; align-items:center; gap:9px; }
#general-maps .ibef-map-hint svg { width:18px; height:18px; flex:none; fill:none; stroke:#0066ff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#general-maps .ibef-map-full { color:#0066d4; font-weight:700; white-space:nowrap; text-decoration:none; }
#general-maps .ibef-map-full:hover { text-decoration:underline; }
@media(max-width:767px) {
  #general-maps { padding:54px 14px 64px; }
  #general-maps .ibef-map-heading { align-items:start; gap:12px; flex-direction:column; margin-bottom:22px; padding:0 4px; }
  #general-maps .ibef-map-info { padding:7px 11px; font-size:11px; }
  #general-maps .ibef-map-description { font-size:13px; line-height:1.75; }
  #general-maps .ibef-map-card { padding:6px; border-radius:22px; }
  #general-maps .ibef-map-viewport { height:clamp(390px,110vw,560px); border-radius:16px; }
  #general-maps .ibef-map-controls { top:10px; right:10px; gap:7px; }
  #general-maps .ibef-map-control { height:43px; width:43px; border-radius:13px; font-size:25px; }
  #general-maps .ibef-map-zoom-label { left:10px; bottom:10px; font-size:11px; padding:7px 11px; }
  #general-maps .ibef-map-footer { align-items:flex-start; flex-direction:column; gap:8px; padding:14px 9px 6px; }
}
@media(prefers-reduced-motion:reduce) { #general-maps .ibef-map-control { transition:none; } }
