/* Search results embedded map — homepage only */
body.home-page .search-results-header {
  text-align: center;
  padding: 0.35rem 0 0.2rem;
  margin-bottom: 0.35rem;
}

body.home-page .search-results-header-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.65rem 1rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0 0.25rem;
}

body.home-page .search-results-map-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  flex: 0 0 auto;
  flex-shrink: 0;
  width: max-content;
  min-width: max-content;
  max-width: none;
  min-height: 2.5rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(34, 197, 94, 0.45);
  background: linear-gradient(180deg, rgba(21, 128, 61, 0.95) 0%, rgba(15, 90, 45, 0.98) 100%);
  color: #fff;
  font-family: var(--gp-cin-font, Inter, system-ui, sans-serif);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

body.home-page .search-results-map-button-label {
  white-space: nowrap;
}

body.home-page .search-results-map-button:hover:not(:disabled),
body.home-page .search-results-map-button:focus-visible:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(74, 222, 128, 0.75);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
  outline: 2px solid rgba(74, 222, 128, 0.55);
  outline-offset: 2px;
}

body.home-page .search-results-map-button:disabled,
body.home-page .search-results-map-button[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
  box-shadow: none;
}
body.home-page .search-results-title.results-title {
  flex: 1 1 12rem;
  min-width: 0;
  margin: 0;
  text-align: center;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}

body.home-page .search-results-map-panel {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0.5rem auto 0.6rem;
  padding: 0 0.75rem;
}

body.home-page .search-results-map-panel[hidden] {
  display: none !important;
}

body.home-page .search-results-map-panel[aria-hidden="true"],
body.home-page #search-results-map-panel[aria-hidden="true"] {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

@media (max-width: 768px) {
  body.home-page #results > .search-results-header.results-header {
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home-page .search-results-header {
    padding: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Stack the button over the heading and center both. The gap below the button
     (to the heading) is matched by the margin above it (from the search area)
     so the spacing around the button is even. */
  body.home-page .search-results-header-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.6rem !important;
    margin: 0.6rem 0 0 !important;
  }

  /* Mobile: keep the "View Courses on a Map" button only as wide as its label
     (never full-width) and centered, with ~15% smaller text. */
  body.home-page .search-results-map-button {
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    align-self: center !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    margin: 0 auto !important;
    padding: 0.4rem 0.9rem !important;
    gap: 0.3rem !important;
    font-size: 0.78rem !important;
    min-height: 2.15rem !important;
    white-space: nowrap !important;
  }

  body.home-page .search-results-map-panel:not([hidden]) {
    margin: 0.08rem auto 0.35rem !important;
    padding-top: 0 !important;
  }

  body.home-page #results > .results-grid,
  body.home-page #results .results-grid {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.home-page .search-results-map-panel[hidden],
  body.home-page .search-results-map-panel[aria-hidden="true"],
  body.home-page #search-results-map-panel[aria-hidden="true"] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.home-page #results > .search-results-header.results-header + .search-results-map-panel[aria-hidden="true"] + .results-grid,
  body.home-page #results > .search-results-header.results-header + .search-results-map-panel[hidden] + .results-grid {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

body.home-page .search-results-map-wrapper {
  position: relative;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  border: 1px solid rgba(198, 154, 48, 0.32);
  background: linear-gradient(180deg, rgba(11, 26, 18, 0.98) 0%, rgba(7, 19, 13, 1) 100%);
  box-shadow:
    0 20px 50px rgba(0, 0, 0, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  padding: 3px;
}

/* Compact zoom / pan — sits over the map, separate from Google bundled controls */
body.home-page .search-results-map-nav {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  pointer-events: none;
  font-size: initial;
  line-height: initial;
}

body.home-page .search-results-map-nav[hidden] {
  display: none !important;
}

body.home-page .search-results-map-nav-pan,
body.home-page .search-results-map-nav-zoom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
  pointer-events: auto;
}

body.home-page .search-results-map-nav-pan-mid {
  display: flex;
  align-items: center;
  gap: 2px;
}

body.home-page .search-results-map-nav .search-results-map-nav-btn {
  all: unset;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  min-height: 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: transparent !important;
  color: #334155 !important;
  box-shadow: none !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
}

body.home-page .search-results-map-nav .search-results-map-nav-btn:hover:not(:disabled),
body.home-page .search-results-map-nav .search-results-map-nav-btn:focus-visible:not(:disabled) {
  background: #f1f5f9 !important;
  color: #0f766e !important;
}

body.home-page .search-results-map-nav .search-results-map-nav-btn:active:not(:disabled) {
  transform: scale(0.94);
}

body.home-page .search-results-map-nav .search-results-map-nav-btn--center {
  opacity: 0.35;
  cursor: default;
  font-size: 0.5rem;
}

body.home-page .search-results-map-nav-zoom .search-results-map-nav-btn + .search-results-map-nav-btn {
  border-top: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 0 !important;
}

body.home-page .search-results-map-nav-zoom .search-results-map-nav-btn:first-of-type {
  border-radius: 5px 5px 0 0 !important;
}

body.home-page .search-results-map-nav-zoom .search-results-map-nav-btn:last-of-type {
  border-radius: 0 0 5px 5px !important;
}

body.home-page .search-results-map-wrapper--no-map {
  min-height: auto;
  padding: 1.25rem 1rem;
  font-size: initial;
  line-height: initial;
}

body.home-page .search-results-map {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  min-height: 360px;
  height: clamp(360px, 62vh, 720px);
  font-size: 1rem;
  line-height: 1.4;
}

body.home-page .search-results-map[hidden] {
  display: none !important;
}

body.home-page .search-results-map-message,
body.home-page .search-results-map-error {
  margin: 0;
  padding: 1rem 1.1rem;
  text-align: center;
  font-family: var(--gp-cin-font, Inter, system-ui, sans-serif);
  font-size: 0.95rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.88);
}

body.home-page .search-results-map-error {
  color: #fecaca;
}

/* ── Modern AdvancedMarker (Golfapedia G icon) ────────────── */
.golfapedia-map-marker {
  position: relative;
  width: 40px;
  height: 40px;
  transform-origin: 50% 100%;
  transition: transform 180ms cubic-bezier(.2,.7,.2,1);
  cursor: pointer;
  will-change: transform;
}

.golfapedia-map-marker-img {
  display: block;
  width: 40px;
  height: 40px;
  user-select: none;
  -webkit-user-drag: none;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.45));
  image-rendering: -webkit-optimize-contrast;
  transition: filter 180ms ease;
}

.golfapedia-map-marker:hover,
.golfapedia-map-marker:focus-within {
  transform: translateY(-3px) scale(1.1);
  z-index: 10;
}

.golfapedia-map-marker:hover .golfapedia-map-marker-img,
.golfapedia-map-marker:focus-within .golfapedia-map-marker-img {
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.55));
}

/* ── Info window card ─────────────────────────────────────── */
.golfapedia-map-info-window {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 304px;
  min-width: 220px;
  padding: 0;
  font-family: Inter, system-ui, sans-serif;
  color: #0f172a;
  overflow: hidden;
  background: #0b1f16;
}

.golfapedia-map-info-hero {
  position: relative;
  height: 124px;
  overflow: hidden;
  background: linear-gradient(135deg, #14402c 0%, #1b4332 100%);
}

.golfapedia-map-info-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.golfapedia-map-info-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 19, 16, 0.16) 0%, rgba(7, 19, 16, 0.78) 86%);
  pointer-events: none;
}

.golfapedia-map-info-hero--noimg::after {
  background: linear-gradient(135deg, rgba(20, 64, 44, 0.35) 0%, rgba(11, 31, 22, 0.8) 100%);
}

.golfapedia-map-info-hero-badge {
  position: absolute;
  top: 8px;
  right: 42px;
  z-index: 2;
  padding: 0.16rem 0.5rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #fff;
  background: linear-gradient(180deg, #21c45d 0%, #159248 100%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.38);
}

.golfapedia-map-info-hero-overlay {
  position: absolute;
  left: 0.72rem;
  right: 0.72rem;
  bottom: 0.68rem;
  z-index: 2;
  color: #fff;
}

/* !important throughout: defeats the global `button { background:#1e40af;
   border-radius:2rem; min-width:120px }` nuclear rule in style.css. */
.golfapedia-map-info-close {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  z-index: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(7, 19, 16, 0.58) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background 140ms ease, color 140ms ease;
}

.golfapedia-map-info-close:hover,
.golfapedia-map-info-close:focus-visible {
  background: rgba(7, 19, 16, 0.82) !important;
  color: #ffffff !important;
  outline: 2px solid rgba(34, 197, 94, 0.45) !important;
  outline-offset: 1px;
}

.golfapedia-map-info-body {
  padding: 0.72rem 0.76rem 0.74rem;
  min-width: 0;
  background: rgba(12, 30, 20, 0.97);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.golfapedia-map-info-title {
  margin: 0 0 0.14rem;
  padding-right: 1.6rem;
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1.2;
  color: #ffffff;
  letter-spacing: -0.005em;
  word-break: break-word;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.65);
}

.golfapedia-map-info-course {
  margin: 0 0 0.16rem;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.55);
}

.golfapedia-map-info-location {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.golfapedia-map-info-location svg {
  flex: 0 0 12px;
  color: rgba(187, 247, 208, 0.96);
}

.golfapedia-map-info-cta {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.05rem;
  padding: 0.4rem 0.82rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #16a34a 0%, #15803d 100%);
  color: #fff !important;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(21, 128, 61, 0.34);
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.golfapedia-map-info-cta:hover,
.golfapedia-map-info-cta:focus-visible {
  transform: translateY(-1px);
  background: linear-gradient(180deg, #15803d 0%, #14532d 100%);
  box-shadow: 0 10px 20px rgba(21, 128, 61, 0.45);
  outline: 2px solid rgba(34, 197, 94, 0.4);
  outline-offset: 2px;
}

/* Research + Directions row. !important throughout to defeat the global
   `button { background:#1e40af; border-radius:2rem; min-width:120px }` rule. */
.golfapedia-map-info-actions {
  display: flex;
  gap: 0.42rem;
  margin-top: 0.5rem;
}

.golfapedia-map-info-window .golfapedia-map-info-btn {
  flex: 1 1 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.24rem !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 2rem !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.42rem 0.52rem !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 10px !important;
  background: #1f6a4f !important;
  color: #ffffff !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 0.73rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  line-height: 1 !important;
  box-shadow: 0 4px 14px rgba(31, 106, 79, 0.32) !important;
  cursor: pointer !important;
  transition: background 140ms ease, color 140ms ease, border-color 140ms ease, transform 140ms ease !important;
}

.golfapedia-map-info-window .golfapedia-map-info-btn i {
  font-size: 0.82em !important;
  margin-right: 0.12em !important;
  color: inherit !important;
}

.golfapedia-map-info-window .golfapedia-map-info-btn .btn-action-label {
  display: block !important;
  text-align: center !important;
  line-height: 1.05 !important;
}

.golfapedia-map-info-window .golfapedia-map-info-btn .btn-action-line {
  display: block !important;
  white-space: nowrap !important;
}

.golfapedia-map-info-window .golfapedia-map-info-btn:hover,
.golfapedia-map-info-window .golfapedia-map-info-btn:focus-visible {
  background: #174d3a !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

/* ------------------------------------------------------------------
   Card-identical info window refresh
   ------------------------------------------------------------------ */
.golfapedia-map-info-window {
  width: 286px;
  max-width: 286px;
  min-width: 286px;
  border-radius: 6px;
  background: rgba(12, 30, 20, 0.98);
}

.golfapedia-map-card.golf-course-card {
  width: 100% !important;
  margin: 0 !important;
  border-radius: 0 !important;
  border: 0 !important;
  background: rgba(12, 30, 20, 0.98) !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

/* The whole popup card opens the 3D tour when a tour URL exists. */
.golfapedia-map-card--clickable,
.golfapedia-map-card--clickable .cin-card-photo,
.golfapedia-map-card--clickable .cin-card-info {
  cursor: pointer;
}

.golfapedia-map-card--clickable:focus-visible {
  outline: 2px solid #6fe3b0;
  outline-offset: -2px;
}

.golfapedia-map-card .cin-card-photo {
  position: relative;
  width: 100%;
  height: 128px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.golfapedia-map-card .cin-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.golfapedia-map-card .cin-card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 19, 16, 0.12) 0%, rgba(7, 19, 16, 0.8) 85%);
  pointer-events: none;
}

.golfapedia-map-card .cin-card-photo.cin-card-photo--noimg {
  background: linear-gradient(135deg, #14402c 0%, #1b4332 100%) !important;
}

.golfapedia-map-card .cin-card-info {
  position: absolute;
  left: 0.72rem;
  right: 0.72rem;
  bottom: 0.62rem;
  z-index: 2;
}

.golfapedia-map-card .cin-card-info .course-name {
  color: #ffffff !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.75) !important;
}

.golfapedia-map-card .cin-card-info .course-location {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 0.79rem !important;
  font-weight: 600 !important;
  margin: 0.14rem 0 0 !important;
  line-height: 1.2 !important;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.62) !important;
}

.golfapedia-map-card .golfapedia-map-view3d-badge {
  position: absolute;
  top: 8px;
  right: 40px;
  z-index: 3;
  padding: 0.16rem 0.52rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  color: #fff !important;
  text-decoration: none !important;
  background: linear-gradient(180deg, #21c45d 0%, #159248 100%);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.42);
}

/* No mapped fairways: no 3D tour available yet — red badge, white text. */
.golfapedia-map-card .golfapedia-map-view3d-badge.cin-view3d-badge--unavailable {
  background: linear-gradient(180deg, #c97b7b 0%, #b56565 100%);
}

.golfapedia-map-card .course-card-buttons {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.45rem !important;
  margin: 0 !important;
  padding: 0.66rem 0.7rem 0.72rem !important;
  background: rgba(12, 30, 20, 0.98) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.golfapedia-map-card .course-card-buttons .card-action-btn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 38px !important;
  padding: 0.46rem 0.5rem !important;
  border-radius: 8px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  background: #1f6a4f !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(31, 106, 79, 0.32) !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -0.005em !important;
  justify-content: center !important;
}

.golfapedia-map-card .course-card-buttons .card-action-btn:hover,
.golfapedia-map-card .course-card-buttons .card-action-btn:focus-visible {
  background: #174d3a !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-1px) !important;
}

.golfapedia-map-card .course-card-buttons .card-action-btn i,
.golfapedia-map-card .course-card-buttons .card-action-btn .fas {
  margin-right: 0.2em !important;
  font-size: 0.9em !important;
}

.golfapedia-map-card .course-card-buttons .btn-action-label {
  display: block !important;
  text-align: center !important;
  line-height: 1.05 !important;
}

.golfapedia-map-card .course-card-buttons .btn-action-line {
  display: block !important;
  white-space: nowrap !important;
}

@media (max-width: 480px) {
  .golfapedia-map-info-window {
    width: min(268px, calc(100vw - 2.2rem));
    max-width: min(268px, calc(100vw - 2.2rem));
    min-width: min(268px, calc(100vw - 2.2rem));
  }

  .golfapedia-map-card .cin-card-photo {
    height: 118px;
  }

  .golfapedia-map-card .cin-card-info .course-name {
    font-size: 0.92rem !important;
  }

  .golfapedia-map-card .cin-card-info .course-location {
    font-size: 0.74rem !important;
  }

  .golfapedia-map-card .course-card-buttons {
    gap: 0.35rem !important;
    padding: 0.54rem 0.62rem 0.62rem !important;
  }

  .golfapedia-map-card .course-card-buttons .card-action-btn {
    min-height: 36px !important;
    font-size: 0.72rem !important;
    padding: 0.4rem 0.38rem !important;
  }
}

/* ── Google Maps InfoWindow bubble overrides ──────────────── */
.gm-style .gm-style-iw.golfapedia-iw,
.gm-style .gm-style-iw-c.golfapedia-iw {
  padding: 0 !important;
  border-radius: 14px !important;
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.38), 0 0 0 1px rgba(21, 128, 61, 0.46) inset !important;
  background: #ffffff !important;
  overflow: hidden !important;
}

.gm-style .gm-style-iw-d {
  overflow: visible !important;
  padding: 0 !important;
  max-height: none !important;
}

.gm-style .gm-style-iw .gm-ui-hover-effect {
  top: 8px !important;
  right: 8px !important;
  width: 26px !important;
  height: 26px !important;
  opacity: 0.9 !important;
  background: rgba(15, 23, 42, 0.08) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  z-index: 5 !important;
}

.gm-style .gm-style-iw .gm-ui-hover-effect > span {
  width: 14px !important;
  height: 14px !important;
  margin: 6px !important;
  background-color: #0f172a !important;
}

.gm-style .gm-style-iw .gm-ui-hover-effect:hover {
  background: rgba(15, 23, 42, 0.14) !important;
  opacity: 1 !important;
}

/* InfoWindow tail — match the card border + background. */
.gm-style .gm-style-iw-tc::after {
  background: #ffffff !important;
  box-shadow: 0 6px 12px rgba(15, 23, 42, 0.15) !important;
  border-left: 1px solid rgba(21, 128, 61, 0.46) !important;
  border-bottom: 1px solid rgba(21, 128, 61, 0.46) !important;
}

/* ──────────────────────────────────────────────────────────
   Map control reset + elegant restyle.
   Hard reset because global home-page button styles (dark
   green / blue gradients) leak into Google's <button> controls
   and turn them into giant blue rectangles.
   ────────────────────────────────────────────────────────── */
body.home-page .search-results-map .gm-style button:not(.card-action-btn):not(.golfapedia-map-info-close),
body.home-page .search-results-map .gm-style button:not(.card-action-btn):not(.golfapedia-map-info-close):hover,
body.home-page .search-results-map .gm-style button:not(.card-action-btn):not(.golfapedia-map-info-close):focus,
body.home-page .search-results-map .gm-style button:not(.card-action-btn):not(.golfapedia-map-info-close):active {
  all: unset;
  /* !important required: a global `button { background:#1e40af !important }`
     nuclear rule in style.css otherwise wins (important beats specificity) and
     turns these controls into giant navy-blue pills. */
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  color: #0f172a !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  cursor: pointer;
  font-family: Inter, system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  transition: background 140ms ease, transform 140ms ease;
}

body.home-page .search-results-map .gm-style button:not(.card-action-btn):not(.golfapedia-map-info-close):hover {
  background: #f1f5f9 !important;
}

/* Make sure the Google glyphs (zoom +/-, fullscreen icon) inside the buttons render */
body.home-page .search-results-map .gm-style button img,
body.home-page .search-results-map .gm-style button > div,
body.home-page .search-results-map .gm-style button > span {
  pointer-events: none;
  filter: none;
  opacity: 1;
}

/* ------------------------------------------------------------------
   FINAL DEEP-DIVE FIX: make info window match result cards
   ------------------------------------------------------------------ */
body.home-page .search-results-map .gm-style .golfapedia-map-info-window {
  width: 318px !important;
  max-width: 318px !important;
  min-width: 318px !important;
  border-radius: 10px !important;
  background: rgba(12, 30, 20, 0.985) !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card.golf-course-card {
  border: 0 !important;
  border-radius: 10px !important;
  background: rgba(12, 30, 20, 0.985) !important;
  box-shadow: none !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo {
  height: 138px !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info .course-name {
  font-size: 1.02rem !important;
  line-height: 1.2 !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info .course-location {
  font-size: 0.82rem !important;
  margin-top: 0.16rem !important;
}

/* Separate top-left badge and top-right close button to prevent overlap */
body.home-page .search-results-map .gm-style .golfapedia-map-card .golfapedia-map-view3d-badge {
  top: 8px !important;
  left: 8px !important;
  right: auto !important;
  z-index: 3 !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-info-close {
  top: 8px !important;
  right: 8px !important;
  left: auto !important;
  z-index: 4 !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  border-radius: 999px !important;
  background: rgba(7, 19, 16, 0.78) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.45rem !important;
  padding: 0.68rem 0.72rem 0.74rem !important;
  margin: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* High-specificity override so card buttons are not clobbered by map control reset */
body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .card-action-btn {
  all: unset !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.24rem !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 0.46rem 0.5rem !important;
  border-radius: 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  background: #1f6a4f !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(31, 106, 79, 0.32) !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.005em !important;
  cursor: pointer !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .card-action-btn:hover,
body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .card-action-btn:focus-visible {
  background: #174d3a !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-1px) !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .card-action-btn i {
  margin-right: 0.15em !important;
  font-size: 0.85em !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .btn-action-label {
  display: block !important;
  text-align: center !important;
  line-height: 1.05 !important;
  white-space: normal !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .btn-action-line {
  display: block !important;
  white-space: nowrap !important;
}

@media (max-width: 480px) {
  body.home-page .search-results-map .gm-style .golfapedia-map-info-window {
    width: min(292px, calc(100vw - 2rem)) !important;
    max-width: min(292px, calc(100vw - 2rem)) !important;
    min-width: min(292px, calc(100vw - 2rem)) !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo {
    height: 124px !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info .course-name {
    font-size: 0.93rem !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info .course-location {
    font-size: 0.75rem !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .card-action-btn {
    min-height: 36px !important;
    font-size: 0.72rem !important;
    padding: 0.4rem 0.4rem !important;
  }
}

@media (max-width: 768px) {
  body.home-page .search-results-map .gm-style .gm-style-iw.golfapedia-iw,
  body.home-page .search-results-map .gm-style .gm-style-iw-c.golfapedia-iw,
  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body {
    max-width: calc(100vw - 1.5rem) !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-info-window {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info .course-name,
  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info .course-location,
  body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .btn-action-line {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}

/* Authoritative shell/content width lock for Google InfoWindow so no blank
   right-side strip appears on mobile due to nested wrapper width mismatch. */
body.home-page .search-results-map .gm-style .gm-style-iw-c.golfapedia-iw,
body.home-page .search-results-map .gm-style .gm-style-iw.golfapedia-iw {
  padding: 0 !important;
}

body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body,
body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div,
body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div > div,
body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body .golfapedia-map-info-window {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* ── Push every control INWARD so the rounded wrapper does not clip them ── */
/* Fullscreen — tight top-right corner, compact so it stays out of the way */
body.home-page .search-results-map .gm-style .gm-fullscreen-control {
  top: 3px !important;
  bottom: auto !important;
  right: 3px !important;
  left: auto !important;
  margin: 0 !important;
  border-radius: 7px !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.2) !important;
  background: #ffffff !important;
  width: 28px !important;
  height: 28px !important;
  overflow: hidden !important;
}

body.home-page .search-results-map .gm-style .gm-fullscreen-control button {
  width: 28px !important;
  height: 28px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 7px !important;
}

body.home-page .search-results-map .gm-style .gm-fullscreen-control img,
body.home-page .search-results-map .gm-style .gm-fullscreen-control span {
  width: 14px !important;
  height: 14px !important;
}

/* Exit fullscreen — same corner, slightly larger tap target */
body.home-page .search-results-map:fullscreen .gm-style .gm-fullscreen-control,
body.home-page .gm-style:fullscreen .gm-fullscreen-control {
  top: 6px !important;
  bottom: auto !important;
  right: 6px !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.28) !important;
}
body.home-page .search-results-map:-webkit-full-screen .gm-style .gm-fullscreen-control,
body.home-page .gm-style:-webkit-full-screen .gm-fullscreen-control {
  top: 6px !important;
  bottom: auto !important;
  right: 6px !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.28) !important;
}
body.home-page .search-results-map:fullscreen .gm-style .gm-fullscreen-control img,
body.home-page .search-results-map:fullscreen .gm-style .gm-fullscreen-control span,
body.home-page .search-results-map:-webkit-full-screen .gm-style .gm-fullscreen-control img,
body.home-page .search-results-map:-webkit-full-screen .gm-style .gm-fullscreen-control span {
  width: 16px !important;
  height: 16px !important;
}

/* Zoom +/− — bottom right (Google bundles them in a stacked container) */
body.home-page .search-results-map .gm-style .gm-bundled-control,
body.home-page .search-results-map .gm-style .gm-bundled-control-on-bottom {
  right: 14px !important;
  bottom: 36px !important;
  margin: 0 !important;
}

body.home-page .search-results-map .gm-style .gm-bundled-control > div,
body.home-page .search-results-map .gm-style .gm-bundled-control-on-bottom > div {
  border-radius: 10px !important;
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.25) !important;
  background: #ffffff !important;
  overflow: hidden !important;
}

/* Divider between + and − in the zoom stack */
body.home-page .search-results-map .gm-style .gm-bundled-control button + button,
body.home-page .search-results-map .gm-style .gm-bundled-control-on-bottom button + button {
  border-top: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 0 !important;
}
body.home-page .search-results-map .gm-style .gm-bundled-control button:first-of-type,
body.home-page .search-results-map .gm-style .gm-bundled-control-on-bottom button:first-of-type {
  border-radius: 10px 10px 0 0 !important;
}
body.home-page .search-results-map .gm-style .gm-bundled-control button:last-of-type,
body.home-page .search-results-map .gm-style .gm-bundled-control-on-bottom button:last-of-type {
  border-radius: 0 0 10px 10px !important;
}

/* Bottom credits row — transparent so it sits cleanly inside rounded corner */
body.home-page .search-results-map .gm-style-cc {
  background: transparent !important;
}

/* Distance scale bar (bottom-right); hidden — scaleControl is off but mapId config may enable it */
body.home-page .search-results-map .gm-style div.gmnoprint[style*="bottom"][style*="right"]:not(:has(.gm-fullscreen-control)):not(.gm-bundled-control):not(.gm-bundled-control-on-bottom),
body.home-page .search-results-map .gm-style [aria-label*="Scale" i],
body.home-page .search-results-map .gm-style [aria-label*="scale" i] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (min-width: 768px) {
  /* Desktop: center the title horizontally across the ENTIRE row width while the
     "View Courses on a Map" button stays anchored to the LEFT. A 3-column grid with
     equal, mirrored side columns (button column + an empty right column of matching
     min width) keeps the middle title column dead-centered relative to the full width.
     The side columns never shrink below the button's content width, so the title can
     never overlap the button. */
  body.home-page .search-results-header-row {
    display: grid;
    grid-template-columns: minmax(min-content, 1fr) auto minmax(min-content, 1fr);
    align-items: center;
    justify-content: stretch;
    flex-wrap: nowrap;
    padding: 0 0.5rem;
    gap: 0 1rem;
  }

  body.home-page .search-results-map-button {
    grid-column: 1;
    justify-self: start;
    margin-left: 0.5rem;
    flex: 0 0 auto;
    flex-shrink: 0;
    width: max-content;
    min-width: max-content;
    max-width: none;
    white-space: nowrap;
    /* ~10% smaller than the base 0.92rem / 0.5rem 1rem so the title has more room beside it. */
    font-size: 0.83rem;
    padding: 0.45rem 0.85rem;
  }

  body.home-page .search-results-title.results-title {
    grid-column: 2;
    min-width: 0;
    padding: 0 0.75rem;
    text-align: center;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
  }

  body.home-page .search-results-map-panel {
    padding: 0 1rem;
  }
}

@media (max-width: 480px) {
  body.home-page .search-results-header-row {
    flex-direction: column;
    /* Center the narrower button instead of stretching it full width. */
    align-items: center;
  }

  body.home-page .search-results-map-button {
    width: max-content;
    min-width: max-content;
    max-width: none;
    align-self: center;
    margin: 0 auto;
    flex-shrink: 0;
    white-space: nowrap;
  }

  body.home-page .search-results-title.results-title {
    /* Stacked (column) header: don't let the 12rem flex-basis become a tall
       vertical box — that empty space was the large black gap above the map. */
    flex: 0 0 auto !important;
    text-align: center;
    font-size: clamp(1.15rem, 5vw, 1.45rem) !important;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
  }

  body.home-page .search-results-map-panel {
    padding: 0 0.55rem;
    margin: 0.08rem auto 0.35rem;
  }

  body.home-page .search-results-map-panel:not([hidden]) {
    margin-top: 0.4rem !important;
  }

  body.home-page .search-results-map {
    height: clamp(240px, 38vh, 330px);
    min-height: 240px;
  }

  .golfapedia-map-info-window {
    max-width: min(274px, calc(100vw - 2.8rem));
    min-width: 0;
  }

  .golfapedia-map-info-hero {
    height: 112px;
  }

  .golfapedia-map-info-body {
    padding: 0.62rem 0.66rem 0.66rem;
  }

  .golfapedia-map-info-title {
    margin-bottom: 0.14rem;
    font-size: 0.9rem;
    line-height: 1.2;
  }

  .golfapedia-map-info-course {
    margin-bottom: 0.14rem;
    font-size: 0.76rem;
  }

  .golfapedia-map-info-location {
    margin-bottom: 0;
    font-size: 0.72rem;
  }

  .golfapedia-map-info-cta {
    min-height: 1.9rem;
    padding: 0.36rem 0.7rem;
    font-size: 0.76rem;
  }

  .golfapedia-map-info-actions {
    margin-top: 0.42rem;
    gap: 0.32rem;
  }

  .golfapedia-map-info-window .golfapedia-map-info-btn {
    min-height: 1.86rem !important;
    padding: 0.34rem 0.35rem !important;
    font-size: 0.7rem !important;
  }
}

/* ------------------------------------------------------------------
   FINAL info-window visual pass (authoritative overrides)
   ------------------------------------------------------------------ */
.golfapedia-map-info-window {
  width: 312px !important;
  max-width: 312px !important;
  min-width: 312px !important;
  border-radius: 10px !important;
  background: rgba(12, 30, 20, 0.985) !important;
}

.golfapedia-map-card.golf-course-card {
  border-radius: 10px !important;
}

.golfapedia-map-card .cin-card-photo {
  height: 136px !important;
}

.golfapedia-map-card .cin-card-photo img {
  filter: brightness(1.25) saturate(1.08) contrast(0.99);
}

.golfapedia-map-card .cin-card-photo::after {
  /* Much lighter overlay: keep image vivid like the result cards. */
  background: linear-gradient(180deg, rgba(7, 19, 16, 0.01) 0%, rgba(7, 19, 16, 0.22) 86%) !important;
}

.golfapedia-map-card .cin-card-info {
  padding: 0.3rem 0.44rem;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);
}

.golfapedia-map-card .cin-card-info .course-name {
  font-size: 1.03rem !important;
  line-height: 1.22 !important;
}

.golfapedia-map-card .cin-card-info .course-location {
  font-size: 0.82rem !important;
  margin-top: 0.16rem !important;
}

/* Prevent overlap with close X by moving badge to left */
.golfapedia-map-card .golfapedia-map-view3d-badge {
  left: 8px !important;
  right: auto !important;
  top: 8px !important;
}

.golfapedia-map-info-close {
  width: 28px !important;
  height: 28px !important;
  top: 8px !important;
  right: 8px !important;
  background: rgba(7, 19, 16, 0.74) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
}

.golfapedia-map-info-close:hover,
.golfapedia-map-info-close:focus-visible {
  background: rgba(7, 19, 16, 0.9) !important;
}

.golfapedia-map-card .course-card-buttons {
  grid-template-columns: 1fr 1fr !important;
  gap: 0.5rem !important;
  padding: 0.68rem 0.74rem 0.74rem !important;
}

.golfapedia-map-card .course-card-buttons .card-action-btn {
  min-height: 40px !important;
  padding: 0.5rem 0.56rem !important;
  border-radius: 10px !important;
  font-size: 0.8rem !important;
  line-height: 1.05 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.golfapedia-map-card .course-card-buttons .btn-action-label {
  white-space: normal !important;
}

.golfapedia-map-card .course-card-buttons .btn-action-line {
  white-space: nowrap !important;
}

@media (max-width: 480px) {
  .golfapedia-map-info-window {
    width: min(286px, calc(100vw - 2.1rem)) !important;
    max-width: min(286px, calc(100vw - 2.1rem)) !important;
    min-width: min(286px, calc(100vw - 2.1rem)) !important;
  }

  .golfapedia-map-card .cin-card-photo {
    height: 124px !important;
  }

  .golfapedia-map-card .cin-card-photo img {
    filter: brightness(1.2) saturate(1.06) contrast(0.99);
  }

  .golfapedia-map-card .cin-card-info .course-name {
    font-size: 0.94rem !important;
  }

  .golfapedia-map-card .cin-card-info .course-location {
    font-size: 0.75rem !important;
  }

  .golfapedia-map-card .cin-card-info {
    padding: 0.26rem 0.38rem;
  }

  .golfapedia-map-card .course-card-buttons {
    gap: 0.4rem !important;
    padding: 0.58rem 0.62rem 0.62rem !important;
  }

  .golfapedia-map-card .course-card-buttons .card-action-btn {
    min-height: 37px !important;
    font-size: 0.74rem !important;
    padding: 0.42rem 0.38rem !important;
  }
}

/* ------------------------------------------------------------------
   FINAL BRIGHTNESS OVERRIDE (must be last)
   ------------------------------------------------------------------ */
body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo img {
  /* Bright, card-like look */
  filter: brightness(1.38) saturate(1.1) contrast(0.99) !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo::after {
  /* Minimal shading so the photo stays vivid */
  background: linear-gradient(180deg, rgba(7, 19, 16, 0) 0%, rgba(7, 19, 16, 0.14) 88%) !important;
}

body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-info {
  /* Keep readability without darkening the whole hero */
  background: rgba(0, 0, 0, 0.22) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
}

@media (max-width: 480px) {
  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo img {
    filter: brightness(1.32) saturate(1.08) contrast(0.99) !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo::after {
    background: linear-gradient(180deg, rgba(7, 19, 16, 0) 0%, rgba(7, 19, 16, 0.16) 88%) !important;
  }
}

/* Final mobile footprint trim: keep InfoWindow proportional on narrow phones. */
@media (max-width: 480px) {
  body.home-page .search-results-map .gm-style .gm-style-iw.golfapedia-iw,
  body.home-page .search-results-map .gm-style .gm-style-iw-c.golfapedia-iw,
  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body {
    width: var(--gp-iw-width, 240px) !important;
    max-width: var(--gp-iw-width, 240px) !important;
    min-width: 0 !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-info-window,
  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div,
  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div > div {
    width: var(--gp-iw-width, 240px) !important;
    max-width: var(--gp-iw-width, 240px) !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .cin-card-photo {
    height: 108px !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons {
    gap: 0.3rem !important;
    padding: 0.5rem 0.55rem 0.55rem !important;
  }

  body.home-page .search-results-map .gm-style .golfapedia-map-card .course-card-buttons .card-action-btn {
    min-height: 33px !important;
    font-size: 0.68rem !important;
    padding: 0.32rem 0.3rem !important;
  }
}

/* Final authoritative containment pass (must stay at file end).
   Prevent any earlier fixed-width rules from re-expanding mobile popups. */
@media (max-width: 768px) {
  body.home-page .search-results-map .gm-style .gm-style-iw.golfapedia-iw,
  body.home-page .search-results-map .gm-style .gm-style-iw-c.golfapedia-iw,
  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body {
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding: 0 !important;
  }

  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div,
  body.home-page .search-results-map .gm-style .gm-style-iw-d.golfapedia-iw-body > div > div,
  body.home-page .search-results-map .gm-style .golfapedia-map-info-window {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ============================================================
   CELLPHONE-ONLY CUSTOM INFO OVERLAY
   ============================================================
   On phones (<= 480px) the Google InfoWindow is bypassed and we
   render this overlay instead. It sits inside the map wrapper,
   is centered horizontally near the top of the map, and is
   responsively sized so the card always fits nicely. Desktop and
   tablet are not affected because the overlay is only opened by
   JS when matchMedia('(max-width: 480px)') matches.
   ============================================================ */

.golfapedia-mobile-info-overlay {
  display: none;
}

.golfapedia-mobile-info-overlay[hidden] {
  display: none !important;
}

@media (max-width: 480px) {
  /* Every descendant of the mobile overlay is constrained to its parent.
     This is the single most important guard: any rule elsewhere that sets
     a fixed pixel width (e.g. 312px) cannot break out of the overlay. */
  .golfapedia-mobile-info-overlay,
  .golfapedia-mobile-info-overlay * {
    box-sizing: border-box !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* JS sets exact pixel left/top/width to match the visible map area
     (with a 12px inset on each side). CSS only provides the static parts. */
  .golfapedia-mobile-info-overlay {
    position: absolute !important;
    z-index: 1000;
    pointer-events: auto;
    display: block;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.4));
    animation: gpMobileInfoOverlayIn 160ms ease-out;
    overflow: hidden;
    border-radius: 12px;
  }

  .golfapedia-mobile-info-overlay[hidden] {
    display: none !important;
  }

  /* The reusable info-window card lives inside the overlay; reset any
     fixed widths from the desktop rules so it fills the overlay. */
  .golfapedia-mobile-info-overlay .golfapedia-map-info-window {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    position: relative !important;
  }

  /* CRITICAL: global .golf-course-card rule in style.css adds
     padding: 1.1rem 1.1rem 1.5rem 1.1rem which leaves ~24px of dead space
     below the buttons. Forcibly remove all padding/margin here. */
  .golfapedia-mobile-info-overlay .golfapedia-map-card.golf-course-card,
  .golfapedia-mobile-info-overlay article.golf-course-card {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    display: block !important;
    background: rgba(12, 30, 20, 0.985) !important;
    box-shadow: none !important;
    min-height: 0 !important;
    animation: none !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .cin-card-photo {
    width: 100% !important;
    height: 110px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .cin-card-info {
    max-width: calc(100% - 16px) !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .cin-card-info .course-name {
    font-size: 0.9rem !important;
    line-height: 1.2 !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .cin-card-info .course-location {
    font-size: 0.72rem !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .course-card-buttons {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.3rem !important;
    padding: 0.45rem 0.4rem 0.5rem !important;
    margin: 0 !important;
    width: 100% !important;
  }

  /* Buttons: keep labels fully visible (no clipping) by trimming font, padding,
     and the icon footprint so both "Research" and "Directions" fit cleanly. */
  .golfapedia-mobile-info-overlay .golfapedia-map-card .course-card-buttons .card-action-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 32px !important;
    padding: 0.28rem 0.15rem !important;
    font-size: 0.62rem !important;
    line-height: 1 !important;
    letter-spacing: -0.015em !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.14rem !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .course-card-buttons .card-action-btn i,
  .golfapedia-mobile-info-overlay .golfapedia-map-card .course-card-buttons .card-action-btn .fas {
    margin-right: 0.14em !important;
    font-size: 0.72em !important;
    flex: 0 0 auto !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-card .course-card-buttons .btn-action-label,
  .golfapedia-mobile-info-overlay .golfapedia-map-card .course-card-buttons .btn-action-line {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    min-width: 0 !important;
  }

  .golfapedia-mobile-info-overlay .golfapedia-map-info-close {
    width: 28px !important;
    height: 28px !important;
    top: 6px !important;
    right: 6px !important;
  }

  /* If a 3D-tour badge is present on the photo, keep it inside the card and
     pin it to the LEFT so it never collides with the top-right close (X).
     The badge also carries the `.cin-view3d-badge` class, whose
     `body.home-page .cin-view3d-badge { right:8px !important }` rule in
     index-cinematic.css would otherwise force it under the X and off the
     card's right edge — so the left placement must be !important here too. */
  .golfapedia-mobile-info-overlay .golfapedia-map-card .golfapedia-map-view3d-badge {
    top: 8px !important;
    left: 8px !important;
    right: auto !important;
    max-width: calc(100% - 48px) !important;
    font-size: 0.68rem !important;
    padding: 0.22rem 0.45rem !important;
  }
}

@keyframes gpMobileInfoOverlayIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Belt and braces: even if the screen is wider than 480px, never let the
   overlay become visible (it should only ever show on phone). */
@media (min-width: 481px) {
  .golfapedia-mobile-info-overlay {
    display: none !important;
  }
}
