  /* =================================================================
     HERTZ BRAND TOKENS — STRICT
     Source: Hertz Brand Guidelines, February 2025
     ================================================================= */
  :root {
    /* Brand colors — exact hex per p.11 */
    --hertz-gold: #FFCC00;
    --hertz-black: #000000;
    --hertz-teal: #0A7986;
    --hertz-white: #FFFFFF;
    --hertz-gray: #666666;        /* 60% black tint, disclaimers only */

    /* Functional UI tokens (derived, not brand) */
    --surface: #FFFFFF;
    --surface-2: #F5F5F5;          /* very light, off-white for panels */
    --border: #E0E0E0;
    --border-strong: #000000;

    /* Status — green is functional, not brand */
    --status-open: #2E7D32;
    --status-open-bg: #E8F5E9;

    /* Type scale per brand p.27 */
    /* Less words (4-6): Black weight, tight tracking */
    /* More words (7-12): Bold, medium tracking */
    /* Most words (13-20): Medium, zero tracking */
  }
/*
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html, body { height: 100%; overflow: hidden; }
  body {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--hertz-black);
    background: var(--hertz-white);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
  }
*/
  /* =================================================================
     LOGO — built per brand spec p.16
     Italic wordmark, underline below, ® mark
     ================================================================= */
  .hertz-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
    line-height: 1;
    text-decoration: none;
  }
  .hertz-logo-text {
    font-weight: 900;
    font-style: italic;
    font-size: 28px;
    letter-spacing: -0.02em;
    line-height: 1;
    position: relative;
    padding-right: 10px; /* room for ® */
  }
  .hertz-logo-text::after {
    content: "®";
    font-size: 0.4em;
    font-style: normal;
    font-weight: 600;
    position: absolute;
    bottom: 4px;
    right: -2px;
    border: 1.2px solid currentColor;
    border-radius: 50%;
    width: 11px;
    height: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }
  .hertz-logo-underline {
    height: 4px;
    width: 100%;
    transform: skewX(-12deg);
    transform-origin: left;
  }
  /* On white: black wordmark, gold underline (p.14) */
  .hertz-logo.on-light .hertz-logo-text { color: var(--hertz-black); }
  .hertz-logo.on-light .hertz-logo-underline { background: var(--hertz-gold); }
  /* On gold: black wordmark, white underline (p.14) */
  .hertz-logo.on-gold .hertz-logo-text { color: var(--hertz-black); }
  .hertz-logo.on-gold .hertz-logo-underline { background: var(--hertz-white); }
  /* On dark: white wordmark, gold underline (p.14) */
  .hertz-logo.on-dark .hertz-logo-text { color: var(--hertz-white); }
  .hertz-logo.on-dark .hertz-logo-underline { background: var(--hertz-gold); }

  /* =================================================================
     LAYOUT — top header, page title, tabs, content
     ================================================================= */
  .app { display: grid; grid-template-rows: auto auto auto 1fr; height: 100vh; }
  /*.container { max-width: 1320px; margin: 0 auto; padding: 0 24px; width: 100%; } */

  /* Header — white background, black wordmark with gold underline */
  .site-header {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
  }
  .site-header-inner {
    max-width: 1320px; margin: 0 auto; padding: 14px 24px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
  }
  .site-nav { display: none; gap: 28px; }
  @media (min-width: 980px) { .site-nav { display: flex; } }
  .site-nav a {
    color: var(--hertz-black); text-decoration: none;
    font-size: 14px; font-weight: 600;
  }
  .site-nav a.current { position: relative; }
  .site-nav a.current::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -19px;
    height: 3px; background: var(--hertz-gold);
  }

  /* Pill button — primary CTA per brand p.41 */
  .btn-pill {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 20px;
    border-radius: 999px;
    font-family: inherit; font-size: 14px; font-weight: 600;
    border: none; cursor: pointer; text-decoration: none;
    transition: opacity 0.15s, background 0.15s, color 0.15s;
    line-height: 1;
  }
  .btn-pill-primary { background: var(--hertz-black); color: var(--hertz-white); }
  .btn-pill-primary:hover { opacity: 0.85; }
  .btn-pill-secondary {
    background: transparent; color: var(--hertz-teal);
    border: 1.5px solid var(--hertz-teal);
  }
  .btn-pill-secondary:hover { background: var(--hertz-teal); color: var(--hertz-white); }
  /* Yellow button only on dark backgrounds per brand p.41 */
  .btn-pill-on-dark {
    background: var(--hertz-gold); color: var(--hertz-black);
  }
  .btn-pill-panel { background: var(--hertz-gold); color: var(--hertz-black); }
  .btn-pill-panel:hover { opacity: 0.85; }
  .btn-pill-on-dark:hover { opacity: 0.9; }

  /* =================================================================
     PAGE TITLE BAR — bold display, sentence case
     Per brand p.27: 4-6 words = Proxima Nova Black, large, tight tracking
     ================================================================= */
  .page-title-bar {
    background: var(--surface);
    padding: 32px 0 28px;
    border-bottom: 1px solid var(--border);
  }
  .breadcrumb {
    font-size: 13px; color: var(--hertz-gray); margin-bottom: 12px;
    display: flex; align-items: center; gap: 6px;
  }
  .breadcrumb a { color: var(--hertz-gray); text-decoration: none; }
  .breadcrumb a:hover { color: var(--hertz-black); }
  .page-title {
    font-weight: 900; /* Proxima Nova Black equivalent */
    font-size: clamp(32px, 4vw, 52px);
    letter-spacing: -0.025em;
    line-height: 1.05;
    color: var(--hertz-black);
    margin-bottom: 14px;
  }
  .page-subtitle {
    /* 13-20 words: Medium weight, zero tracking per p.27 */
    font-weight: 500;
    font-size: 16px;
    line-height: 1.5;
    color: var(--hertz-gray);
    max-width: 680px;
    margin-bottom: 20px;
  }
  .page-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

  .lang-toggle {
    margin-left: auto; display: inline-flex;
    border: 1.5px solid var(--hertz-black); border-radius: 999px;
    overflow: hidden;
  }
  .lang-toggle button {
    background: transparent; border: 0; padding: 7px 16px;
    font-family: inherit; font-size: 12px; font-weight: 700;
    cursor: pointer; color: var(--hertz-black); letter-spacing: 0.05em;
  }
  .lang-toggle button.active { background: var(--hertz-black); color: var(--hertz-white); }

  /* =================================================================
     TABS
     ================================================================= */
  .tabs-bar {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
  }

  .tabs-inner { max-width: 1320px; margin: 0 auto; padding: 0 24px; display: flex; }
  .tab {
    background: none; border: 0; padding: 16px 0; margin-right: 32px;
    font-family: inherit; font-size: 14px; font-weight: 700;
    color: var(--hertz-gray); cursor: pointer;
    border-bottom: 3px solid transparent;
    display: inline-flex; align-items: center; gap: 8px;
  }
  .tab:hover { color: var(--hertz-black); }
  .tab.active { color: var(--hertz-black); border-bottom-color: var(--hertz-gold); }
  .tab-count {
    font-size: 11px; background: var(--surface-2);
    padding: 3px 8px; border-radius: 999px; font-weight: 700;
  }
  .tab.active .tab-count { background: var(--hertz-gold); }
  .container-hero{
          max-width: 1320px; margin: 0 auto; padding: 24px; padding-top:120px;
  }
    .container-contact{
          max-width: 1320px; margin: 0 auto; padding-left: 24px; padding-right: 24px;
              display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
  }
    @media (min-width: 901px) {
  
  .container-points{
      height: 480px;
  }
    }
  /* =================================================================
     MAIN GRID — sidebar + map
     ================================================================= */
  /*main { overflow: hidden; } */
  .app-grid {
    max-width: 1320px; margin: 0 auto; padding: 24px;
    display: grid; grid-template-columns: 380px 1fr; gap: 20px;
    height: 100%;
  }
  @media (max-width: 900px) {
    .app-grid {
      grid-template-columns: 1fr; 
      /*grid-template-rows: 50vh 1fr; */
      padding: 12px;
    }
  }

  /* =================================================================
     SIDEBAR
     ================================================================= */
  .sidebar {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px; /* outer container — bigger radius */
    display: flex; flex-direction: column;
    overflow: hidden;
  }
  @media (max-width: 900px) {
      .sidebar {
      height:434px;
      }
  }
  .filters {
    padding: 16px;
    background: var(--surface-2);
    border-bottom: 1px solid var(--border);
    display: flex; flex-direction: column; gap: 12px;
  }
  .search-wrap { position: relative; }
  .search-wrap svg {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; color: var(--hertz-gray); pointer-events: none;
  }
  /* Inputs use smaller radius than container, per p.42 */
  .search-wrap input {
    width: 100%; padding: 11px 36px 11px 38px;
    border: 1.5px solid var(--border);
    border-radius: 999px; /* pill, matches button system */
    background: var(--surface);
    font-size: 14px; font-family: inherit; outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
  }
  .search-wrap input:focus {
    border-color: var(--hertz-black);
    box-shadow: 0 0 0 3px rgba(255, 204, 0, 0.4);
  }
  .search-wrap .clear {
    position: absolute; right: 25px; top: 50%; transform: translateY(-50%);
    background: none; border: 0; cursor: pointer; padding: 4px;
    color: var(--hertz-gray); display: none;
  }
  .search-wrap.has-value .clear { display: block; }
  #search-clear svg{
      left:0px;
  }
  .chips { display: flex; flex-wrap: wrap; gap: 6px; }
  /* Chips are also pill-shaped per brand button system */
  .chip {
    background: var(--surface); border: 1.5px solid var(--border);
    padding: 6px 12px; font-size: 12px; font-weight: 600;
    cursor: pointer; font-family: inherit; color: var(--hertz-black);
    border-radius: 999px;
    display: inline-flex; align-items: center; gap: 6px;
    transition: all 0.15s; line-height: 1.2;
  }
  .chip:hover { border-color: var(--hertz-black); }
  .chip.active { background: var(--hertz-black); color: var(--hertz-white); border-color: var(--hertz-black); }
  .chip.active.open-filter { background: var(--status-open); border-color: var(--status-open); color: var(--hertz-white); }
  .chip .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--border); }
  .chip.active .dot { background: var(--hertz-white); }

  .filter-meta {
    font-size: 12px; color: var(--hertz-gray); font-weight: 600;
    display: flex; justify-content: space-between;
  }

  .list-section-header {
    padding: 10px 16px;
    font-size: 11px; font-weight: 700;
    color: var(--hertz-gray);
    background: var(--surface);
    border-bottom: 1px solid var(--border);
  }
  .list-wrap { flex: 1; overflow-y: auto; }
  .card {
    display: block; width: 100%; text-align: left;
    padding: 14px 16px;
    border: 0; background: var(--surface);
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--border);
    cursor: pointer; font-family: inherit;
    transition: all 0.15s;
  }
  .card:hover { background: var(--surface-2); }
  .card.selected { background: var(--hertz-gold); border-left-color: var(--hertz-black); }
  .card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
  .card-code { font-size: 10.5px; color: var(--hertz-gray); letter-spacing: 0.04em; font-weight: 600; }
  .card.selected .card-code { color: var(--hertz-black); }
  .card-type { font-size: 10.5px; font-weight: 600; color: var(--hertz-gray); }
  .card.selected .card-type { color: var(--hertz-black); }
  .card-type::before { content: "·"; margin: 0 4px 0 2px; }
  .card-name {
    /* 4-6 word headlines: Black weight, tight letter-spacing per p.27 */
    font-size: 16px; font-weight: 800;
    color: var(--hertz-black); line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 4px;
  }
  .card-addr { font-size: 12.5px; color: var(--hertz-gray); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .card-status { margin-top: 8px; }

  /* Status pills */
  .pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; font-size: 10.5px; font-weight: 700;
    border-radius: 999px; line-height: 1.2;
  }
  .pill .dot { width: 6px; height: 6px; border-radius: 50%; }
  .pill.open { background: var(--status-open-bg); color: var(--status-open); }
  .pill.open .dot { background: var(--status-open); }
  .pill.closed { background: var(--surface-2); color: var(--hertz-gray); }
  .pill.closed .dot { background: var(--hertz-gray); }
  /* Drop-off uses Hertz Teal (secondary brand color, sparingly per p.11) */
  .pill.dropoff { background: var(--hertz-teal); color: var(--hertz-white); }
  .pill.dropoff .dot { background: var(--hertz-white); }
  /* Appointment-only — distinct dark teal so it doesn't read as "open" */
  .pill.appointment { background: #1a1a1a; color: var(--hertz-gold); }
  .pill.appointment .dot { background: var(--hertz-gold); }

  /* =================================================================
     MAP
     ================================================================= */
  .map-wrap {
    position: relative;
    background: #eef3f7;
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
  }
  #map { width: 100%; height: 100%; }
  @media (max-width: 900px) {
      .map-wrap {
      height:434px;
      }
  }
  /* Map pin — Hertz gold with black border, classic teardrop */
  .pin {
    width: 32px; height: 32px;
    background: var(--hertz-gold);
    border: 2px solid var(--hertz-black);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 3px 8px rgba(0,0,0,0.35);
    cursor: pointer;
    transition: transform 0.15s;
  }
  .pin:hover { transform: rotate(-45deg) scale(1.12); }
  .pin-inner {
    transform: rotate(45deg);
    font-weight: 900; font-style: italic;
    font-size: 13px;
    color: var(--hertz-black);
    letter-spacing: -0.04em;
  }
  /* Drop-off pin uses teal accent */
  .pin.dropoff { background: var(--hertz-teal); }
  .pin.dropoff .pin-inner { color: var(--hertz-white); }
  /* By-appointment pin: white with black border, exclamation feel */
  .pin.appointment { background: var(--hertz-white); }
  .pin.appointment .pin-inner { color: var(--hertz-black); }
  .pin.selected {
    background: var(--hertz-black);
    width: 40px; height: 40px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  }
  .pin.selected .pin-inner { color: var(--hertz-gold); font-size: 15px; }

  /* Leaflet popup styling */
  .leaflet-popup-content-wrapper {
    border-radius: 12px; padding: 0;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    border: 1.5px solid var(--hertz-black);
  }
  .leaflet-popup-content { margin: 0; width: 270px !important; }
  .leaflet-popup-tip { background: var(--hertz-black); }
  .leaflet-popup-close-button { color: var(--hertz-black) !important; padding: 8px 10px !important; font-size: 18px !important; }

  .popup { padding: 14px 14px 12px; }
  .popup-code { font-size: 10.5px; color: var(--hertz-gray); font-weight: 600; letter-spacing: 0.04em; }
  .popup-name {
    font-weight: 800; font-size: 17px;
    color: var(--hertz-black); line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 4px 0 6px;
  }
  .popup-addr { font-size: 12.5px; color: var(--hertz-gray); margin-bottom: 10px; line-height: 1.4; }
  /* Popup CTA = pill button on light background = black */
  .popup-action {
    display: block; width: 100%;
    background: var(--hertz-black); color: var(--hertz-white);
    text-align: center; padding: 12px;
    font-size: 13px; font-weight: 700;
    border: 0; cursor: pointer; font-family: inherit;
    transition: opacity 0.15s;
    border-radius: 0 0 10px 10px;
  }
  .popup-action:hover { opacity: 0.85; }

  /* Legend */
  .legend {
    position: absolute; bottom: 16px; left: 16px; z-index: 400;
    background: var(--surface); border: 1.5px solid var(--hertz-black); border-radius: 12px;
    padding: 12px 14px; font-size: 12px;
  }
  .legend-title { font-weight: 700; color: var(--hertz-black); margin-bottom: 8px; font-size: 11px; }
  .legend-item { display: flex; align-items: center; gap: 10px; margin-top: 6px; font-size: 12px; color: var(--hertz-black); font-weight: 500; }
  .legend-dot { width: 14px; height: 14px; border: 1.5px solid var(--hertz-black); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); flex-shrink: 0; }
  .legend-dot.gold { background: var(--hertz-gold); }
  .legend-dot.teal { background: var(--hertz-teal); }
  .legend-dot.white { background: var(--hertz-white); }
  @media (max-width: 900px) { .legend { display: none; } }

  /* =================================================================
     DETAIL OVERLAY (modal)
     ================================================================= */
  #detail-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 2000;
    display: none; align-items: flex-end; justify-content: center; padding: 0;
    backdrop-filter: blur(2px);
  }
  #detail-overlay.active { display: flex; }
  @media (min-width: 720px) { #detail-overlay { align-items: center; padding: 32px; } }
  .detail-sheet {
    background: var(--surface); width: 100%; max-width: 720px; max-height: 92vh;
    overflow-y: auto;
    border-radius: 16px 16px 0 0;
    animation: slideUp 0.22s ease-out;
    box-shadow: 0 -8px 32px rgba(0,0,0,0.25);
  }
  @media (min-width: 720px) {
    .detail-sheet { border-radius: 16px; box-shadow: 0 16px 48px rgba(0,0,0,0.25); }
  }
  @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

  .detail-header {
    position: sticky; top: 0; background: var(--surface);
    padding: 12px 20px;
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid var(--border);
    z-index: 10;
  }
  .icon-btn {
    background: none; border: 0; cursor: pointer; font-family: inherit;
    font-size: 13px; font-weight: 600; color: var(--hertz-black);
    display: flex; align-items: center; gap: 6px; padding: 6px 4px;
  }
  .icon-btn:hover { color: var(--hertz-teal); }

  /* Hero — Hertz Gold background per brand p.13 (allowed combo: black on gold) */
  .detail-hero {
    background: var(--hertz-gold);
    padding: 28px 24px;
  }
  .detail-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
  .detail-meta .code { font-size: 11px; color: var(--hertz-black); font-weight: 700; letter-spacing: 0.04em; }
  .detail-meta .type { font-size: 11px; font-weight: 700; color: var(--hertz-black); }
  .detail-meta .type::before { content: "·"; margin-right: 4px; }
  .detail-title {
    /* 4-6 words, large, Black weight, tight tracking per p.27 */
    font-size: clamp(28px, 5vw, 38px);
    font-weight: 900;
    color: var(--hertz-black);
    letter-spacing: -0.025em;
    line-height: 1.05;
    margin-bottom: 12px;
  }
  .detail-addr {
    font-size: 14px; font-weight: 600;
    color: var(--hertz-black); margin-bottom: 14px;
  }
  /* Status pill on gold background — needs to NOT be yellow on yellow */
  .detail-hero .pill.open { background: var(--hertz-black); color: var(--hertz-gold); }
  .detail-hero .pill.open .dot { background: var(--hertz-gold); }
  .detail-hero .pill.closed { background: var(--hertz-white); color: var(--hertz-black); }
  .detail-hero .pill.closed .dot { background: var(--hertz-black); }
  .detail-hero .pill.dropoff { background: var(--hertz-black); color: var(--hertz-gold); }
  .detail-hero .pill.dropoff .dot { background: var(--hertz-gold); }

  .detail-note {
    background: var(--hertz-black); color: var(--hertz-white);
    padding: 14px 24px; font-size: 13.5px;
    display: flex; gap: 12px; align-items: flex-start;
  }
  .detail-note svg { flex-shrink: 0; margin-top: 2px; color: var(--hertz-gold); }
  .detail-note-label { font-size: 10.5px; font-weight: 700; letter-spacing: 0.05em; opacity: 0.8; margin-bottom: 3px; text-transform: uppercase; }

  .detail-section { padding: 24px; border-bottom: 1px solid var(--border); }
  .detail-section:last-child { border-bottom: 0; }
  .detail-section-title {
    /* 4-6 words: Black weight, tight tracking */
    font-size: 22px; font-weight: 900;
    color: var(--hertz-black); letter-spacing: -0.015em;
    line-height: 1.15;
    margin-bottom: 4px;
  }
  .detail-section-hint {
    font-size: 12px; color: var(--hertz-gray); font-weight: 500;
    margin-bottom: 16px;
  }

  /* Steps - small radius (8px) inside larger panel */
  .step {
    display: flex; gap: 12px; padding: 12px 14px;
    border: 1.5px solid var(--border); border-radius: 8px;
    margin-bottom: 6px; cursor: pointer; width: 100%; text-align: left;
    background: var(--surface); font-family: inherit; transition: all 0.15s;
  }
  .step:hover { border-color: var(--hertz-black); }
  .step.done { background: var(--surface-2); border-color: var(--border); }
  .step-num {
    flex-shrink: 0; width: 28px; height: 28px;
    border: 1.5px solid var(--hertz-black);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 800;
    background: var(--surface); color: var(--hertz-black);
  }
  .step.done .step-num { background: var(--hertz-black); color: var(--hertz-gold); }
  .step-text {
    /* 7+ words = Bold weight, medium tracking */
    font-size: 14px; font-weight: 600; color: var(--hertz-black);
    line-height: 1.5; flex: 1; padding-top: 2px;
  }
  .step.done .step-text { text-decoration: line-through; color: var(--hertz-gray); font-weight: 500; }

  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
  .two-col > .detail-section { border-bottom: 0; border-right: 1px solid var(--border); }
  .two-col > .detail-section:last-child { border-right: 0; }
  @media (max-width: 640px) {
    .two-col { grid-template-columns: 1fr; }
    .two-col > .detail-section { border-right: 0; border-bottom: 1px solid var(--border); }
    .two-col > .detail-section:last-child { border-bottom: 0; }
  }

  /* Action buttons in detail = pill-shaped per brand button system */
  .action-btn {
    display: flex; align-items: center; gap: 14px; padding: 12px 16px;
    border: 1.5px solid var(--border); border-radius: 999px;
    text-decoration: none; color: var(--hertz-black);
    margin-bottom: 8px; font-family: inherit; font-size: 14px;
    transition: all 0.15s;
    background: var(--surface); width: 100%; cursor: pointer; text-align: left;
  }
  .action-btn:hover { border-color: var(--hertz-black); }
  /* Primary = filled black pill, white text per brand p.41 */
  .action-btn.primary {
    background: var(--hertz-black); color: var(--hertz-white);
    border-color: var(--hertz-black);
  }
  .action-btn.primary:hover { opacity: 0.85; }
  .action-btn.primary .label-small { color: var(--hertz-white); opacity: 0.7; }
  .action-btn .label { flex: 1; min-width: 0; }
  .action-btn .label-small {
    font-size: 10.5px; font-weight: 600; color: var(--hertz-gray);
    margin-bottom: 2px; letter-spacing: 0.03em;
  }
  .action-btn .label-main { font-weight: 700; }
  .action-btn svg { flex-shrink: 0; }

  /* Hours grid — uses small radius (8px) inside detail */
  .hours-grid { border: 1.5px solid var(--border); border-radius: 8px; overflow: hidden; }
  .hours-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 14px; border-bottom: 1px solid var(--border); font-size: 13px;
  }
  .hours-row:last-child { border-bottom: 0; }
  .hours-row.today { background: var(--hertz-gold); font-weight: 700; }
  .hours-row .day { font-weight: 600; color: var(--hertz-black); }
  .hours-row .time { color: var(--hertz-black); font-weight: 600; }
  .hours-row .time.closed { color: var(--hertz-gray); font-weight: 500; }

  /* 24/7 returns — black panel, gold accent (allowed combo) */
  .returns247-badge {
    margin-top: 14px; background: var(--hertz-black); color: var(--hertz-white);
    padding: 12px 16px; font-size: 13px; font-weight: 700;
    display: flex; align-items: center; gap: 10px; border-radius: 999px;
    line-height: 1.3;
  }
  .returns247-badge svg { color: var(--hertz-gold); flex-shrink: 0; }
  /* Appointment variant — same structure, white background, black border */
  .returns247-badge.appointment {
    background: var(--hertz-white);
    color: var(--hertz-black);
    border: 1.5px solid var(--hertz-black);
  }
  .returns247-badge.appointment svg { color: var(--hertz-black); }

  /* Print */
  @media print {
    @page {
      margin: 8mm;
      size: A4 portrait;
    }

    /* Hide everything that isn't the detail overlay using display:none
       (visibility:hidden leaves layout intact, causing empty first page). */
    body > *:not(#detail-overlay) { display: none !important; }
    /* And hide internal app structure that might be inside body too */
    .app, header, nav, main, .site-header, .page-title-bar, .tabs-bar, .tabs, .filters, .sidebar, .map-wrap, .legend { display: none !important; }

    /* Reset overlay to root container */
    #detail-overlay {
      position: static !important;
      background: white !important;
      display: block !important;
      padding: 0 !important; margin: 0 !important;
      backdrop-filter: none !important;
      inset: auto !important;
      width: 100% !important; height: auto !important;
      min-height: 0 !important; max-height: none !important;
      align-items: initial !important; justify-content: initial !important;
      overflow: hidden !important;
    }

    /* The sheet IS the page. Fixed dimensions. Grid layout. */
    .detail-sheet {
      box-shadow: none !important;
      width: 100% !important;
      height: 280mm !important;
      max-height: 280mm !important; max-width: 100% !important;
      border-radius: 0 !important;
      overflow: hidden !important;
      animation: none !important;
      margin: 0 !important;
      padding: 0 !important;
      box-sizing: border-box !important;
      display: grid !important;
      grid-template-columns: 1fr 1fr !important;
      grid-template-rows: auto auto 1fr !important;
      grid-template-areas:
        "hero hero"
        "note note"
        "left right" !important;
      column-gap: 5mm !important;
      row-gap: 3mm !important;
      align-items: start !important;
    }

    .detail-header { display: none !important; }

    html, body {
      height: auto !important; overflow: hidden !important;
      margin: 0 !important; padding: 0 !important;
      background: white !important;
    }
    body { font-size: 8pt; line-height: 1.25; }

    /* HERO — spans both columns at top */
    .detail-hero {
      grid-area: hero !important;
      padding: 6px 10px !important;
      border-bottom: 2px solid #000 !important;
      margin: 0 !important;
    }
    .detail-meta { margin-bottom: 1px !important; }
    .detail-meta .code, .detail-meta .type { font-size: 7pt !important; }
    .detail-title {
      font-size: 16pt !important;
      line-height: 1 !important;
      margin-bottom: 3px !important;
      letter-spacing: -0.02em !important;
    }
    .detail-addr { font-size: 9pt !important; margin-bottom: 4px !important; font-weight: 600 !important; }
    .detail-hero .pill { font-size: 7.5pt !important; padding: 2px 6px !important; }

    /* NOTE — spans both columns under hero */
    .detail-note {
      grid-area: note !important;
      padding: 5px 10px !important;
      font-size: 8pt !important;
      margin: 0 !important;
    }
    .detail-note-label { font-size: 6.5pt !important; margin-bottom: 0 !important; }
    .detail-note svg { width: 11px !important; height: 11px !important; flex-shrink: 0 !important; }

    /* LEFT COLUMN — steps section (the one before .two-col) */
    .detail-sheet > .detail-section {
      grid-area: left !important;
      padding: 0 4px !important;
      border: 0 !important;
      margin: 0 !important;
      overflow: hidden !important;
    }
    .detail-section-title {
      font-size: 10pt !important;
      margin-bottom: 3px !important;
      font-weight: 800 !important;
    }
    .detail-section-hint { display: none !important; }

    .step {
      padding: 3px 6px !important;
      margin-bottom: 2px !important;
      border: 1px solid #d0d0d0 !important;
      border-radius: 3px !important;
      gap: 6px !important;
      display: flex !important;
      align-items: flex-start !important;
    }
    .step-num {
      width: 14px !important; height: 14px !important;
      font-size: 7pt !important;
      border: 1px solid #000 !important;
      flex-shrink: 0 !important;
      border-radius: 50% !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
    }
    .step-text {
      font-size: 7.5pt !important;
      line-height: 1.25 !important;
      padding-top: 0 !important;
      font-weight: 500 !important;
    }

    /* RIGHT COLUMN — wrap map + two-col into the right grid cell */
    .print-map,
    .two-col {
      grid-area: right !important;
    }
    /* Map first in DOM, sits at top of right column */
    .print-map {
      display: block !important;
      padding: 0 4px !important;
      margin: 0 0 3mm 0 !important;
      overflow: hidden !important;
    }
    .print-map-img {
      width: 100% !important;
      height: 50mm !important;
      object-fit: cover !important;
      border: 1px solid #000 !important;
      border-radius: 3px !important;
      display: block !important;
    }
    .print-map-caption {
      font-size: 6.5pt !important;
      color: #666 !important;
      margin-top: 2px !important;
      text-align: center !important;
      word-break: break-all !important;
      line-height: 1.1 !important;
    }

    /* The two-col is appended below the map in the same right cell.
       But we have a problem: only ONE grid-area can sit there at a time.
       Solution: stack via internal flex on overlay. Use direct sibling display. */
    /* Reset .two-col to a stacked layout — contact then hours, both compact */
    .two-col {
      display: block !important;
      padding: 0 !important;
      margin: 0 !important;
      /* Place in right cell, BELOW print-map by aligning self after map.
         Using grid trick: span row "right" but apply margin-top via map height. */
      align-self: stretch !important;
    }
    .two-col > .detail-section {
      display: block !important;
      width: 100% !important;
      padding: 2px 4px !important;
      border: 0 !important;
      margin: 0 0 4px 0 !important;
      overflow: hidden !important;
    }

    /* CRITICAL: the right column has BOTH .print-map and .two-col with grid-area: right.
       Only one element can occupy a grid area cleanly.
       Workaround: make right column a flex container by leveraging that grid items
       can stack via row-gap. We use a different approach: put both into right via
       sub-grid approach using 'display: contents' on a wrapper.
       Since markup is .detail-sheet > [hero, note, .detail-section (steps),
       .print-map, .two-col], we let .print-map and .two-col both be grid items
       at "right" — but grid lets multiple items occupy the same cell, they just stack.
       So we adjust margin to push .two-col down. */
    .two-col {
      margin-top: calc(50mm + 5mm) !important; /* push below the 50mm map + caption */
    }

    .action-btn {
      padding: 3px 8px !important;
      margin-bottom: 2px !important;
      font-size: 7.5pt !important;
      border-radius: 999px !important;
      gap: 6px !important;
      border-width: 1px !important;
    }
    .action-btn .label-small { font-size: 6.5pt !important; margin-bottom: 0 !important; line-height: 1.1 !important; }
    .action-btn .label-main { font-size: 7.5pt !important; line-height: 1.2 !important; }
    .action-btn svg { width: 10px !important; height: 10px !important; flex-shrink: 0 !important; }

    .hours-grid { border: 1px solid #ccc !important; border-radius: 3px !important; }
    .hours-row {
      padding: 2px 8px !important;
      font-size: 7.3pt !important;
      border-bottom: 1px solid #eee !important;
    }
    .hours-row:last-child { border-bottom: 0 !important; }
    .hours-row .day, .hours-row .time { font-size: 7.3pt !important; font-weight: 600 !important; }

    .returns247-badge {
      padding: 3px 9px !important;
      font-size: 7pt !important;
      margin-top: 3px !important;
      gap: 5px !important;
      border-radius: 999px !important;
    }
    .returns247-badge svg { width: 9px !important; height: 9px !important; flex-shrink: 0 !important; }

    /* Force background colors */
    .detail-hero, .detail-note, .step.done,
    .hours-row.today, .returns247-badge,
    .action-btn.primary, .pill {
      -webkit-print-color-adjust: exact !important;
      print-color-adjust: exact !important;
    }

    /* Anti page-break */
    .step, .action-btn, .hours-row, .returns247-badge {
      break-inside: avoid !important;
      page-break-inside: avoid !important;
    }
  }

  /* Hidden on screen, shown only on print */
  .print-map { display: none; }

  .leaflet-control-attribution { font-size: 10px !important; }
  .leaflet-bar a { color: var(--hertz-black) !important; }

  /* Hide the hertz logo prefix mark when used inline at small sizes */
  .hertz-logo-text { white-space: nowrap; }
  
.leaflet-container a.leaflet-popup-close-button {
      right:10px !important;
  }
  #tab-returns{
      font-weight: bold;
  }