.snpm-layout{
  display:grid;
  /* Maak kaart + panel even breed */
  grid-template-columns: 1fr 1fr;
  gap:24px;
  align-items:stretch;
  /* Consistente typografie binnen de plugin */
  font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

.snpm-map{
  height:420px;
  border-radius:20px;
  overflow:hidden;
  background:#f3f6ff;
}

.snpm-panel{
  border:1px solid #e8eef8;
  border-radius:20px;
  padding:28px;
  background:#fff;
}

/* Zorg dat inputs/buttons ook hetzelfde font gebruiken */
.snpm-input,
.snpm-btn{
  font-family: inherit;
}

.snpm-title{
  margin:0 0 8px 0;
  font-size:34px;
  line-height:1.15;
	color:#000040;
	font-weight:600;
}

.snpm-sub{
  margin:0 0 18px 0;
  opacity:.75;
}

.snpm-search{
  display:flex;
  gap:12px;
  margin:16px 0 12px;
}

.snpm-input{
  flex:1;
  padding:14px 16px;
  border:1px solid #e7eaf3;
  border-radius:14px;
  outline:none;
}

.snpm-btn{
  padding:14px 18px;
  border:0;
  border-radius:14px;
  cursor:pointer;
  color:#fff;
  background: linear-gradient(90deg, #06B6D4 0%, #6D28D9 100%);
}

.snpm-result{
  min-height:28px;
  margin:6px 0 10px;
}

.snpm-bullets{
  list-style:none;
  padding:0;
  margin:18px 0 0;
  display:grid;
  gap:10px;
}

.snpm-bullets li{
  padding-left:28px;
  position:relative;
}

.snpm-bullets li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: rgba(6,182,212,.15);
  color:#06B6D4;
  font-weight:700;
}

/* responsive */
@media (max-width: 900px){
  .snpm-layout{ grid-template-columns: 1fr; }
  .snpm-map{ height:340px; }
}

/* ===== InfoWindow profiel ===== */
.snpm-iw{ width:260px; font-family:inherit; }
.snpm-iw-top{ display:flex; gap:12px; align-items:flex-start; margin-bottom:10px; }
.snpm-iw-logo{
width:44px; height:44px; border-radius:50%; object-fit:cover;
border:1px solid #E8EEF8; background:#fff;
}
.snpm-iw-logo--fallback{
display:flex; align-items:center; justify-content:center;
font-weight:700; color:#0F172A;
}
.snpm-iw-name{ font-weight:800; font-size:16px; line-height:1.1; color:#0F172A; }
.snpm-iw-city{ color:#64748B; font-size:13px; margin-top:2px; }
.snpm-iw-tagline{ font-weight:600; margin:6px 0 4px; color:#334155; }
.snpm-iw-intro{ color:#64748B; font-size:13px; line-height:1.4; margin:0 0 8px; }
.snpm-iw-addr{ color:#475569; font-size:13px; margin:0 0 10px; }
.snpm-iw-actions{ display:flex; }
.snpm-iw-btn{
display:inline-flex; width:100%; justify-content:center; align-items:center;
height:42px; border-radius:14px; text-decoration:none; color:#0F172A; font-weight:600;
background: #fff;
border: 2px solid #0F172A;
transition: all 0.3s ease;
}
.snpm-iw-btn:hover{
background: linear-gradient(90deg, #6D28D9 0%, #06B6D4 100%);
color: #fff;
border-color: transparent;
}

/* ===== Partners grid ===== */
.snpg-wrap{ margin-top:56px; }
.snpg-head{ text-align:center; margin-bottom:26px; }
.snpg-title{ margin:0; font-size:42px; line-height:1.1; }
.snpg-sub{ margin:10px 0 0; color:#64748B; }

.snpg-grid{
display:grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap:22px;
}

.snpg-card{
border:1px solid #E8EEF8;
border-radius:20px;
padding:22px;
background:#fff;
box-shadow: 0 14px 32px rgba(15, 23, 42, 0.06);
display:flex;
flex-direction:column;
min-height:240px;
}

.snpg-top{ display:flex; gap:14px; align-items:flex-start; }
.snpg-logo{
width:44px; height:44px; border-radius:50%; object-fit:cover;
border:1px solid #E8EEF8; background:#fff; flex:0 0 auto;
}
.snpg-logo--fallback{
display:flex; align-items:center; justify-content:center;
font-weight:800; color:#0F172A;
}

.snpg-name{ font-weight:800; font-size:26px; line-height:1.1; color:#0F172A; }
.snpg-tagline{ margin-top:6px; font-weight:600; color:#334155; }
.snpg-city{ margin-top:6px; color:#64748B; display:flex; gap:8px; align-items:center; }

.snpg-intro{ margin-top:14px; color:#64748B; font-size:16px; line-height:1.55; flex:1; }

.snpg-actions{ margin-top:18px; }
.snpg-btn{
display:flex; justify-content:center; align-items:center;
height:54px; border-radius:16px;
text-decoration:none; color:#0F172A; font-weight:600;
background: #fff;
border: 2px solid #0F172A;
transition: all 0.3s ease;
}
.snpg-btn:hover{
background: linear-gradient(90deg, #6D28D9 0%, #06B6D4 100%);
color: #fff;
border-color: transparent;
box-shadow: 0 16px 30px rgba(109, 40, 217, .18);
}

@media (max-width: 1024px){
.snpg-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
.snpg-grid{ grid-template-columns: 1fr; }
.snpg-title{ font-size:34px; }
}
/* Forceer rond logo in Google InfoWindow */
.gm-style .snpm-iw-top img.snpm-iw-logo{
width:44px !important;
height:44px !important;
display:block !important;
border-radius:50% !important;
overflow:hidden !important;
object-fit:cover !important;
}

/* Extra harde clip (werkt ook als border-radius om wat voor reden faalt) */
.gm-style .snpm-iw-top img.snpm-iw-logo{
clip-path: circle(50% at 50% 50%) !important;
}

/* Forceer rond logo in partner GRID */
.snpg-logo{
width:44px !important;
height:44px !important;
border-radius:50% !important;
overflow:hidden !important;
object-fit:cover !important;
display:block !important;
}

/* Extra harde clip voor absolute zekerheid */
.snpg-logo{
clip-path: circle(50% at 50% 50%) !important;
}

/* Vergroot partner logo in GRID (±2x) */
.snpg-logo{
width:88px !important;
height:88px !important;
border-radius:50% !important;
overflow:hidden !important;
object-fit:cover !important;
display:block !important;
flex:0 0 88px !important;
}

/* Zorg dat tekst netjes meeschuift */
.snpg-top{
align-items:center;
gap:18px;
}

/* === Buttons: default midnight blue tekst, hover gradient + wit === */

/* InfoWindow button */
.snpm-iw-btn{
color: #0B0F2B !important;            /* midnight blue tekst */
border-color: #0B0F2B !important;     /* rand ook midnight */
background: #fff !important;
}
.snpm-iw-btn:hover{
background: linear-gradient(90deg, #6D28D9 0%, #06B6D4 100%) !important;
color: #fff !important;              /* wit op hover */
border-color: transparent !important;
}

/* Grid card button */
.snpg-btn{
color: #0B0F2B !important;            /* midnight blue tekst */
border-color: #0B0F2B !important;     /* rand ook midnight */
background: #fff !important;
}
.snpg-btn:hover{
background: linear-gradient(90deg, #6D28D9 0%, #06B6D4 100%) !important;
color: #fff !important;              /* wit op hover */
border-color: transparent !important;
}