/* ============================================================
   HELLO MALNAD — Booking popup modal
   Shared by cab-services.html, bike-rentals.html and
   bus-tickets.html for the "fill your details" step before a
   booking gets saved to the database.
   ============================================================ */

.hm-modal-overlay{
  position:fixed; inset:0; z-index:9999;
  background:rgba(11,19,15,0.55);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; visibility:hidden;
  transition:opacity .2s ease, visibility .2s ease;
}
.hm-modal-overlay.open{ opacity:1; visibility:visible; }

.hm-modal{
  background:var(--white,#fff);
  border-radius:var(--radius-lg,10px);
  max-width:460px; width:100%;
  max-height:90vh; overflow-y:auto;
  padding:30px 28px;
  position:relative;
  box-shadow:var(--shadow-soft, 0 24px 56px -26px rgba(8,44,32,0.38));
  transform:translateY(10px);
  transition:transform .2s ease;
  scrollbar-width:none;      /* Firefox — keep the scroll, hide the bar */
  -ms-overflow-style:none;   /* old Edge / IE */
}
.hm-modal::-webkit-scrollbar{ display:none; }  /* Chrome / Safari / new Edge */
.hm-modal-overlay.open .hm-modal{ transform:translateY(0); }

.hm-modal-close{
  position:absolute; top:16px; right:16px;
  width:32px; height:32px; border-radius:50%;
  border:1px solid var(--border,rgba(19,36,28,.1));
  background:none; display:flex; align-items:center; justify-content:center;
  color:var(--text-soft,#4C5C53); font-size:18px; line-height:1;
}
.hm-modal-close:hover{ background:var(--mist,#FAF7F0); }

.hm-modal h3{ font-size:22px; margin:0 0 4px; padding-right:30px; }
.hm-modal p.hm-modal-sub{ font-size:13.5px; color:var(--text-soft,#4C5C53); margin:0 0 18px; }

.hm-modal-summary{
  background:var(--mist,#FAF7F0);
  border:1px solid var(--border,rgba(19,36,28,.1));
  border-radius:var(--radius-md,7px);
  padding:14px 16px;
  margin-bottom:18px;
  font-size:13.5px;
}
.hm-modal-summary .row{ display:flex; justify-content:space-between; gap:12px; padding:4px 0; }
.hm-modal-summary .row span:first-child{ color:var(--text-soft,#4C5C53); }
.hm-modal-summary .row span:last-child{ font-weight:600; color:var(--forest-deep,#0f4735); text-align:right; }

.hm-modal-field{ display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.hm-modal-field label{ font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--text-soft,#4C5C53); }
.hm-modal-field input,
.hm-modal-field select,
.hm-modal-field textarea{
  border:1px solid var(--border,rgba(19,36,28,.1));
  border-radius:var(--radius-sm,4px);
  padding:12px 14px;
  font-size:14.5px;
  font-family:inherit;
  width:100%;
  background:#fff;
  resize:vertical;
}
.hm-modal-field input:focus,
.hm-modal-field select:focus,
.hm-modal-field textarea:focus{ outline:none; border-color:var(--moss,#1E8A79); box-shadow:0 0 0 3px rgba(30,138,121,0.1); }
.hm-fp-date{ cursor:pointer; background:#fff; }

.hm-modal-actions{ margin-top:6px; }
.hm-modal-actions .btn{ width:100%; padding:14px; font-size:14.5px; }

.hm-modal-status{ margin-top:12px; font-size:13.5px; display:none; text-align:center; }
.hm-modal-status.success{ display:block; color:#1b7a3e; }
.hm-modal-status.error{ display:block; color:#b8382b; }

/* Bike fleet card "Book" button + dynamic loading/empty states */
.bike-fleet-loading, .bike-fleet-empty{
  text-align:center; padding:40px 20px; color:var(--text-soft,#4C5C53); font-size:14.5px;
}




/* Dynamic blog grid — safe to move into css/style.css */
  .blog-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-bottom:28px; }
  .blog-search { position:relative; flex:1; min-width:240px; max-width:420px; }
  .blog-search input { width:100%; padding:12px 16px 12px 40px; border-radius:999px; border:1px solid rgba(0,0,0,0.12); font-family:inherit; font-size:14.5px; }
  .blog-search svg { position:absolute; left:14px; top:50%; transform:translateY(-50%); opacity:.5; }
  .blog-empty { text-align:center; padding:40px 20px; color:rgba(0,0,0,0.5); }
  .blog-pager { display:flex; gap:8px; justify-content:center; margin-top:28px; }
  .hidden {
  display: none !important;
}
  .blog-pager button { border:1px solid rgba(0,0,0,0.12); background:#fff; border-radius:8px; padding:8px 14px; font-family:inherit; cursor:pointer; }
  .blog-pager button.active { background:var(--forest-deep,#1f4335); color:#fff; border-color:transparent; }
  .blog-skeleton { background:linear-gradient(90deg,#eee,#f5f5f5,#eee); background-size:200% 100%; animation:blogshimmer 1.4s infinite; border-radius:14px; height:280px; }
  @keyframes blogshimmer { 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }