body {
  margin: 0;
  padding: 0;
  font-family: "Open Sans", Arial, sans-serif;
}

#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}

/* THE NEW MENU STYLING */
#menu {
  position: absolute;
  top: 10px;
  left: 10px;
  /* Positions it on the top-left */
  background: white;
  padding: 15px;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  font-family: "Open Sans", sans-serif;
  max-height: 90vh;
  overflow-y: auto;
  z-index: 1;
  /* Ensures it sits on top of the map */
  /* width: 250px; */
}

#menu h3 {
  margin: 0 0 10px 0;
  font-size: 16px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 5px;
}

#menu h4 {
  font-size: 13px;
}

#menu label {
  display: block;
  font-size: 13px;
  margin-bottom: 5px;
  cursor: pointer;
}

#menu input {
  margin-right: 8px;
}

#menu img {
  margin-bottom: 10px;
}

.popup-button {
  display: block;
  text-align: center;
  background-color: #312b81;
  color: white !important;
  padding: 10px;
  margin-top: 10px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  font-size: 13px;
  transition: background 0.2s;
}

.popup-button:hover {
  background-color: #221d66;
  /* Slightly lighter navy on hover */
  text-decoration: none;
}

.plan-journey-button {
  background-color: #ccd3e9;
  color: #312b81 !important;
}

.plan-journey-button:hover {
  background-color: #8b95b2;
}

.offer-label {
  font-weight: bold;
  text-decoration: underline;
  text-decoration-color: #77b82a;
  text-decoration-thickness: 2px;
}

/* Optional: Make the popup title a bit cleaner */
.popup-content h3 {
  margin-top: 5px;
  font-size: 15px;
  line-height: 1.2;
}

/* 1. The Main Popup Container */
.maplibregl-popup-content {
  border-radius: 15px;
  /* Rounded corners */
  padding: 15px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  /* Soft shadow */
  border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 2. The "Tip" or Triangle at the bottom */
.maplibregl-popup-tip {
  border-top-color: white !important;
  border-bottom-color: white !important;
}

/* 3. Style the Close Button */
.maplibregl-popup-close-button {
  font-size: 18px;
  padding: 5px 10px;
  color: #888;
  border-radius: 0 15px 0 0;
  /* Match the top-right corner */
}

.maplibregl-popup-close-button:hover {
  background-color: #f0f0f0;
  color: #333;
}

/* 4. Ensure the Image inside also has rounded corners */
.popup-img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  /* Slightly less than the container for a nested look */
  margin-bottom: 12px;
}

.maplibregl-popup {
  transition: opacity 0.2s ease-in-out;
}

#custom-zoom-controls {
  position: absolute;
  bottom: 30px;
  right: 10px;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  display: flex;
  /* Aligns items in a perfect row */
  align-items: center;
  overflow: hidden;
  /* Keeps the rounded corners neat */
  z-index: 1000;
}

#zoom-indicator {
  padding: 5px 10px;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 13px;
  font-weight: bold;
  color: #333;
  pointer-events: none;
  /* Only the text ignores mouse clicks */
  min-width: 80px;
  /* Keeps the box from jittering as numbers change */
  text-align: center;
}

/* Style the buttons to blend seamlessly */
#custom-zoom-controls button {
  background: none;
  border: none;
  font-size: 18px;
  font-weight: bold;
  color: #555;
  padding: 5px 12px;
  cursor: pointer;
  transition: background-color 0.2s;
}

#custom-zoom-controls button:hover {
  background-color: rgba(0, 0, 0, 0.1);
  color: #000;
}
