  :root{
    --theme-red:    #e63946;
    --theme-orange: #f4a261;
    --theme-green:  rgb(255, 145, 0);

    --ink-900:#14171a; --ink-600:#4b5563; --ink-400:#9aa3ac;
    --surface:#ffffff; --card-border:rgba(0,0,0,.06);
    --shadow:0 10px 24px rgba(0,0,0,.08);
  }

  /* Card shell */
  .biz-card{ border:1px solid var(--card-border); border-radius:1rem; transition:transform .15s ease, box-shadow .15s ease; background:var(--surface); }
  .biz-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }

  /* Premium ribbon — warm gradient (orange/red) with green accent ring */
  .is-premium{ box-shadow:0 0 0 2px color-mix(in srgb, var(--theme-green) 35%, transparent) inset; }

  /* Media / logo */
  .biz-media{  position: relative; min-height:96px; }
  .biz-logo{ max-height:72px; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.1)); }
  .biz-logo--placeholder{
    position: relative; z-index: 1; width:72px; height:72px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center;
    background:linear-gradient(180deg, #f6f7f9, #eef1f5); color:var(--ink-400); font-size:28px;
  }

  /* Title */
  .biz-title{ line-height:1.2; color:var(--ink-900); }

  /* Category chips — soft green outlines */
  .biz-chips .badge{
    margin:0 .25rem .25rem 0;
    background:#f2fbf9; color:#1f6d63; border:1px solid color-mix(in srgb, var(--theme-green) 35%, transparent);
  }

  /* Meta */
  .biz-meta{ color:var(--ink-600); }
  .biz-meta a{ color:inherit; text-decoration:none; }

  /* Primary themed button — red→orange gradient, green focus */
  .btn-theme{
    --btn-bg: linear-gradient(135deg, var(--theme-red), var(--theme-orange));
    --btn-bg-hover: linear-gradient(135deg, color-mix(in srgb, var(--theme-red) 85%, black 15%), color-mix(in srgb, var(--theme-orange) 85%, black 15%));
    border:none; color:white; background:var(--btn-bg);
    box-shadow:0 6px 16px rgba(230,57,70,.25);
  }
  .btn-theme:hover{ color:white; background:var(--btn-bg-hover); }
  .btn-theme:focus{ outline:2px solid color-mix(in srgb, var(--theme-green) 60%, transparent); outline-offset:2px; }

  /* Chip buttons (phone/website) — green outline, warm hover */
  .btn-chip{
    border:1px solid color-mix(in srgb, var(--theme-green) 45%, transparent);
    background:#ffffff;
    color:var(--theme-green);
  }
  .btn-chip:hover{
    background: color-mix(in srgb, var(--theme-green) 10%, white);
    color: color-mix(in srgb, var(--theme-green) 90%, black 10%);
    border-color: var(--theme-green);
  }

  /* Small helpers for contrast on dark banners */
  .link-underline-opacity-0{ text-decoration:none; }


  /* MAP VIEW */

    /* Toggle */
  .view-toggle{
    display:inline-flex; border:1px solid rgba(0,0,0,.12); border-radius:999px; overflow:hidden; background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
  }
  .view-toggle button{
    padding:.5rem .9rem; border:0; background:transparent; font-weight:600; color:#374151;
  }
  .view-toggle button[aria-pressed="true"]{
    background: #111827; color:#fff;
  }

  /* Map container */
  #mapView { position: relative; z-index: 10; }
  #map{ width:100%; height:70vh; border-radius:16px; border:1px solid rgba(0,0,0,.08); }

  /* Small Leaflet polish */
  .leaflet-popup-content-wrapper{ border-radius:14px; }
  .leaflet-control-zoom{ border-radius:12px; overflow:hidden; }

  
  .map-layout-row{
    align-items: stretch;
  }

  .map-sidebar{
    border-radius: 16px;
    border: 1px solid rgba(0,0,0,.06);
    background:#ffffff;
    padding:.75rem;
    box-shadow:0 10px 24px rgba(0,0,0,.04);
  }

  .map-sidebar-list{
    max-height:70vh;
    overflow-y:auto;
    padding-right:.25rem;
    margin:0;
  }

  .map-sidebar-item{
    width:100%;
    text-align:left;
    border-radius:.9rem;
    border:1px solid var(--card-border);
    padding:.55rem .65rem;
    margin-bottom:.5rem;
    background:#ffffff;
    display:flex;
    gap:.55rem;
    align-items:flex-start;
    cursor:pointer;
    transition:
      background .15s ease,
      box-shadow .15s ease,
      border-color .15s ease,
      transform .08s ease;
  }

  .map-sidebar-item:hover{
    background:#f9fafb;
    box-shadow:0 6px 16px rgba(0,0,0,.06);
    transform:translateY(-1px);
  }

  .map-sidebar-item.is-active{
    border-color:var(--theme-red);
    box-shadow:0 0 0 2px color-mix(in srgb, var(--theme-red) 40%, transparent);
    background:#fef2f2;
  }

  .map-sidebar-logo,
  .map-sidebar-logo-placeholder{
    width:40px;
    height:40px;
    border-radius:12px;
    flex-shrink:0;
  }

  .map-sidebar-logo{
    object-fit:contain;
    background:#f9fafb;
  }

  .map-sidebar-logo-placeholder{
    background:#f3f4f6;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#9ca3af;
  }

  .map-sidebar-body{
    min-width:0;
    flex:1;
  }

  .map-sidebar-title{
    font-weight:600;
    font-size:.95rem;
    line-height:1.2;
  }

  .map-sidebar-title span{
    display:inline-block;
    max-width:100%;
  }

  .map-sidebar-meta{
    font-size:.8rem;
    color:var(--ink-600);
  }

  .map-sidebar-meta + .map-sidebar-meta{
    margin-top:.1rem;
  }

  .map-sidebar-premium-badge{
    font-size:.7rem;
    border-radius:999px;
    padding:.05rem .45rem;
    background:#fef3c7;
    color:#92400e;
    margin-left:.25rem;
    vertical-align:middle;
  }

  /* Make map full-width on mobile */
  @media (max-width: 991.98px){
    .map-sidebar{
      margin-bottom:1rem;
    }
  }

  .btn-chip-map i {
  font-size: 0.9rem;
}
