.mp-map-v3{
  --mp-free:#07824d;
  --mp-free-dark:#046c3f;
  --mp-reserved:#e18e21;
  --mp-reserved-dark:#c06f0d;
  --mp-sold:#c82c2c;
  --mp-sold-dark:#aa1717;
  --mp-phase:#b7b7b7;
  --mp-phase-dark:#7f7f7f;
  --mp-card:#ffffff;
  position:relative;
  width:100%;
  font-family:inherit;
}
.mp-map-v3 .mp-stage{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:18px;
  box-shadow:0 22px 60px rgba(0,0,0,.12);
  background:#f4f6f4;
}
.mp-map-v3 .mp-stage img{display:block;width:100%;height:auto;user-select:none;}
.mp-map-v3 .mp-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;}
.mp-map-v3 .mp-front-poly{
  cursor:pointer;
  stroke-width:.22;
  vector-effect:non-scaling-stroke;
  transition:fill .22s ease, opacity .22s ease, filter .22s ease, stroke .22s ease, stroke-width .22s ease;
  opacity:.96;
}
.mp-map-v3 .mp-front-poly[data-status="volna"]{stroke:rgba(7,130,77,.9);}
.mp-map-v3 .mp-front-poly[data-status="rezervovana"]{stroke:rgba(192,111,13,.92);}
.mp-map-v3 .mp-front-poly[data-status="prodana"]{stroke:rgba(170,23,23,.92);}
.mp-map-v3 .mp-front-poly[data-status="i_etapa"]{stroke:rgba(127,127,127,.95);opacity:.9;}
.mp-map-v3 .mp-front-poly.is-disabled{cursor:default;pointer-events:none;filter:none!important;}
.mp-map-v3 .mp-front-poly:hover,
.mp-map-v3 .mp-front-poly.is-active{
  opacity:1;
  stroke:#fff;
  stroke-width:1.1;
  filter:drop-shadow(0 0 7px rgba(255,255,255,.95)) drop-shadow(0 10px 14px rgba(0,0,0,.16));
}
.mp-map-v3 .mp-front-poly.is-hidden,
.mp-map-v3 .mp-label.is-hidden{display:none;}
.mp-map-v3 .mp-label{
  font-size:1.85px;
  font-weight:700;
  letter-spacing:.02em;
  text-anchor:middle;
  dominant-baseline:middle;
  pointer-events:none;
  paint-order:stroke;
  stroke-width:.20;
}
.mp-map-v3 .mp-label[data-status="volna"]{fill:var(--mp-free-dark);stroke:rgba(255,255,255,.9);}
.mp-map-v3 .mp-label[data-status="rezervovana"]{fill:#6f4708;stroke:rgba(255,255,255,.92);}
.mp-map-v3 .mp-label[data-status="prodana"]{fill:#fff;stroke:rgba(123,19,19,.88);}
.mp-map-v3 .mp-label[data-status="i_etapa"]{fill:#555;stroke:rgba(255,255,255,.85);}

/* Tooltip / karta */
.mp-map-v3 .mp-tooltip{
  position:fixed;
  display:none;
  z-index:99999;
  width:270px;
  background:rgba(255,255,255,.96);
  color:#1d1d1f;
  border:1px solid rgba(255,255,255,.78);
  border-radius:14px;
  padding:15px 16px 14px;
  box-shadow:0 22px 55px rgba(15,23,42,.24);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  pointer-events:auto;
  transform:translate3d(0,0,0);
}
.mp-map-v3 .mp-tooltip:before{
  content:"";
  position:absolute;
  left:-8px;
  top:42px;
  width:16px;
  height:16px;
  background:rgba(255,255,255,.96);
  transform:rotate(45deg);
  border-left:1px solid rgba(255,255,255,.78);
  border-bottom:1px solid rgba(255,255,255,.78);
}
.mp-map-v3 .mp-tooltip h4{margin:0 0 4px;font-size:18px;line-height:1.2;font-weight:800;color:#1e1e1e;}
.mp-map-v3 .mp-tooltip .status{font-size:13px;line-height:1.2;font-weight:800;margin:0 0 10px;text-transform:uppercase;letter-spacing:.03em;}
.mp-map-v3 .mp-tooltip .status.volna{color:var(--mp-free);}
.mp-map-v3 .mp-tooltip .status.rezervovana{color:var(--mp-reserved-dark);}
.mp-map-v3 .mp-tooltip .status.prodana{color:var(--mp-sold-dark);}
.mp-map-v3 .mp-tooltip .status.i_etapa{color:var(--mp-phase-dark);}
.mp-map-v3 .mp-tooltip .row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14px;margin:4px 0;}
.mp-map-v3 .mp-tooltip .row span{color:#3f3f46;}
.mp-map-v3 .mp-tooltip .row strong{font-weight:800;color:#1b1b1f;white-space:nowrap;}
.mp-map-v3 .mp-tooltip p{font-size:13px;line-height:1.35;margin:10px 0 12px;color:#31343b;}
.mp-map-v3 .mp-tip-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:12px;}
.mp-map-v3 .mp-tooltip .mp-card-btn{
  display:block;
  width:100%;
  box-sizing:border-box;
  background:#1479e6;
  color:#fff!important;
  text-align:center;
  text-decoration:none!important;
  border-radius:8px;
  padding:11px 12px;
  font-size:13px;
  line-height:1;
  font-weight:800;
  box-shadow:0 8px 16px rgba(20,121,230,.22);
}
.mp-map-v3 .mp-tooltip .mp-card-btn:hover{background:#0d68ca;}
.mp-map-v3 .mp-tooltip .mp-card-btn-contact{background:#1d8f5a;box-shadow:0 8px 16px rgba(29,143,90,.22);}
.mp-map-v3 .mp-tooltip .mp-card-btn-contact:hover{background:#157548;}

/* panely pod mapou */
.mp-map-v3 .mp-stage-panels{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-top:16px;
}
.mp-map-v3 .mp-filters,
.mp-map-v3 .mp-legend{
  position:static;
  z-index:1;
  margin:0;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  padding:14px;
  box-shadow:0 14px 36px rgba(15,23,42,.10);
}
.mp-map-v3 .mp-filters{
  width:220px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:0 0 auto;
}
.mp-map-v3 .mp-filters:before{content:"Status";font-size:14px;color:#222;font-weight:700;margin-bottom:2px;}
.mp-map-v3 .mp-filters button{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  color:#202124;
  border-radius:9px;
  padding:9px 10px;
  font-size:13px;
  cursor:pointer;
  text-align:left;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.mp-map-v3 .mp-filters button:before{content:"";width:12px;height:12px;border-radius:3px;display:inline-block;background:#111;box-sizing:border-box;}
.mp-map-v3 .mp-filters button[data-filter="all"]:before{background:linear-gradient(90deg,var(--mp-free) 0 25%,var(--mp-reserved) 25% 50%,var(--mp-sold) 50% 75%,var(--mp-phase) 75%);}
.mp-map-v3 .mp-filters button[data-filter="volna"]:before{background:rgba(7,130,77,.18);border:1px solid var(--mp-free);}
.mp-map-v3 .mp-filters button[data-filter="rezervovana"]:before{background:var(--mp-reserved);}
.mp-map-v3 .mp-filters button[data-filter="prodana"]:before{background:var(--mp-sold);}
.mp-map-v3 .mp-filters button[data-filter="i_etapa"]:before{background:var(--mp-phase);}
.mp-map-v3 .mp-filters button.active{background:#151515;color:#fff;border-color:#151515;}

.mp-map-v3 .mp-legend{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
  font-size:14px;
  flex:1 1 auto;
}
.mp-map-v3 .mp-legend span{display:flex;align-items:center;white-space:nowrap;color:#222;}
.mp-map-v3 .mp-dot{display:inline-block;width:19px;height:19px;border-radius:4px;margin-right:9px;vertical-align:-4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.mp-map-v3 .mp-status-volna{background:rgba(7,130,77,.18);border:1px solid var(--mp-free);}
.mp-map-v3 .mp-status-rezervovana{background:var(--mp-reserved);}
.mp-map-v3 .mp-status-prodana{background:var(--mp-sold);}
.mp-map-v3 .mp-status-i_etapa{background:var(--mp-phase);}

@media(max-width:768px){
  .mp-map-v3 .mp-stage{border-radius:12px;}
  .mp-map-v3 .mp-stage-panels{flex-direction:column;}
  .mp-map-v3 .mp-filters,.mp-map-v3 .mp-legend{width:100%;}
  .mp-map-v3 .mp-legend{display:flex;}
  .mp-map-v3 .mp-tooltip{width:230px;max-width:calc(100vw - 32px);}
  .mp-map-v3 .mp-label{font-size:3px;}
}

/* kliknutelný/zamčený tooltip */
.mp-map-v3 .mp-front-poly.is-locked{
  stroke:#fff;
  stroke-width:1.25;
  opacity:1;
  filter:drop-shadow(0 0 9px rgba(255,255,255,.95)) drop-shadow(0 12px 18px rgba(0,0,0,.18));
}
.mp-map-v3 .mp-tooltip.is-locked{
  display:block;
  pointer-events:auto;
}
.mp-map-v3 .mp-tip-close{
  position:absolute;
  top:9px;
  right:9px;
  width:24px;
  height:24px;
  border:0;
  border-radius:999px;
  background:#f1f3f5;
  color:#333;
  cursor:pointer;
  line-height:24px;
  padding:0;
  font-size:18px;
}
.mp-map-v3 .mp-tip-close:hover{background:#e3e6e9;}

/* tabulka */
.mp-map-v3 .mp-table-wrap{
  width:100%;
  box-sizing:border-box;
  margin-top:28px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  box-shadow:0 20px 55px rgba(15,23,42,.10);
  overflow:hidden;
}
.mp-map-v3 .mp-table-scroll{width:100%;overflow-x:auto;}
.mp-map-v3 .mp-plots-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width:860px;
  font-size:15px;
}
.mp-map-v3 .mp-plots-table th{
  text-align:left;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#7a818b;
  font-weight:800;
  background:#f8faf9;
  padding:13px 24px;
  border-bottom:1px solid rgba(15,23,42,.08);
}
.mp-map-v3 .mp-plots-table td{
  padding:16px 24px;
  border-bottom:1px solid rgba(15,23,42,.07);
  color:#24282f;
  vertical-align:middle;
}
.mp-map-v3 .mp-plots-table tbody tr:last-child td{border-bottom:0;}
.mp-map-v3 .mp-plots-table tbody tr:hover{background:#fbfcfb;}
.mp-map-v3 .mp-plots-table tr.is-hidden{display:none;}
.mp-map-v3 .mp-table-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}
.mp-map-v3 .mp-table-status i{
  width:10px;
  height:10px;
  border-radius:3px;
  display:inline-block;
}
.mp-map-v3 .mp-table-status.volna{background:rgba(7,130,77,.10);color:var(--mp-free-dark);}
.mp-map-v3 .mp-table-status.volna i{background:rgba(7,130,77,.18);border:1px solid var(--mp-free);}
.mp-map-v3 .mp-table-status.rezervovana{background:rgba(225,142,33,.14);color:#8c5200;}
.mp-map-v3 .mp-table-status.rezervovana i{background:var(--mp-reserved);}
.mp-map-v3 .mp-table-status.prodana{background:rgba(200,44,44,.12);color:var(--mp-sold-dark);}
.mp-map-v3 .mp-table-status.prodana i{background:var(--mp-sold);}
.mp-map-v3 .mp-table-status.i_etapa{background:rgba(183,183,183,.18);color:#666;}
.mp-map-v3 .mp-table-status.i_etapa i{background:var(--mp-phase);}
.mp-map-v3 .mp-table-link{
  color:#1479e6;
  text-decoration:underline;
  font-weight:700;
}
.mp-map-v3 .mp-table-link:hover{color:#0d68ca;}
.mp-map-v3 .mp-table-muted{color:#9ca3af;}

/* v15: kompaktní rozložení filtru a legendy pod mapou */
.mp-map-v3 .mp-stage-panels{
  justify-content:flex-start;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:12px;
  margin-top:14px;
}
.mp-map-v3 .mp-filters,
.mp-map-v3 .mp-legend{
  width:auto;
  max-width:100%;
  flex:0 0 auto;
  padding:12px 14px;
  border-radius:12px;
  box-shadow:0 10px 26px rgba(15,23,42,.08);
}
.mp-map-v3 .mp-filters{
  display:flex;
  flex-direction:row;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.mp-map-v3 .mp-filters:before{
  width:auto;
  margin:0 4px 0 0;
  white-space:nowrap;
}
.mp-map-v3 .mp-filters button{
  width:auto;
  min-width:auto;
  padding:8px 11px;
  white-space:nowrap;
}
.mp-map-v3 .mp-legend{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 16px;
}
.mp-map-v3 .mp-dot{
  width:17px;
  height:17px;
  margin-right:8px;
}
@media(max-width:768px){
  .mp-map-v3 .mp-stage-panels{gap:10px;}
  .mp-map-v3 .mp-filters,
  .mp-map-v3 .mp-legend{width:100%;}
  .mp-map-v3 .mp-filters button{flex:0 0 auto;}
}

/* v16: rozdělení tabulky na Solitérní domy a Řadové domy */
.mp-map-v3 .mp-table-wrap{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:visible;
  display:flex;
  flex-direction:column;
  gap:24px;
}
.mp-map-v3 .mp-table-section{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  box-shadow:0 20px 55px rgba(15,23,42,.10);
  overflow:hidden;
}
.mp-map-v3 .mp-table-section.is-hidden{display:none;}
.mp-map-v3 .mp-table-section-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:20px 24px 16px;
  border-bottom:1px solid rgba(15,23,42,.08);
  background:#fff;
}
.mp-map-v3 .mp-table-section-title h3{
  margin:0;
  font-size:22px;
  line-height:1.2;
  font-weight:850;
  color:#151515;
}
.mp-map-v3 .mp-table-section-title span{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:6px 10px;
  background:#f4f6f8;
  color:#68707a;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
@media(max-width:768px){
  .mp-map-v3 .mp-table-section-title{align-items:flex-start;flex-direction:column;gap:8px;}
  .mp-map-v3 .mp-table-section-title h3{font-size:19px;}
}


/* v19: poznámka pod ceníkem řadových domů */
.mp-map-v3 .mp-row-house-note{
  margin:0;
  padding:18px 24px 20px;
  background:#fbfaf7;
  border-top:1px solid rgba(15,23,42,.08);
  color:#3b3f46;
  font-size:14px;
  line-height:1.55;
}
.mp-map-v3 .mp-row-house-note h4{
  margin:0 0 8px;
  font-size:16px;
  line-height:1.25;
  font-weight:850;
  color:#151515;
}
.mp-map-v3 .mp-row-house-note p{
  margin:0 0 9px;
}
.mp-map-v3 .mp-row-house-note p:last-child{
  margin-bottom:0;
}
@media(max-width:768px){
  .mp-map-v3 .mp-row-house-note{
    padding:16px 18px 18px;
    font-size:13px;
  }
}
