/* RH4 Search UI Enhancements (mobile-first) */

.rh4-search-card{
  max-width: 1040px;
}

.rh4-field input[type="text"],
.rh4-field select,
.rh4-date-btn{
  border: 1px solid rgba(20, 70, 20, 0.28);
  background: #fff;
  border-radius: 12px;
}

/* Avada sometimes flattens <select>; force a visible outline */
.rh4-search-wrap.rh4-search-modern .rh4-adv select,
.rh4-search-wrap.rh4-search-modern select{
  -webkit-appearance: none;
  appearance: none;
}

.rh4-field input[type="text"]:focus,
.rh4-field select:focus,
.rh4-date-btn:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(29, 122, 63, 0.18);
  border-color: rgba(29, 122, 63, 0.55);
}

/* Date button */
.rh4-date-btn{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding: 12px 12px;
  min-height: 44px; /* iOS tap target */
  cursor:pointer;
  text-align:left;
}
.rh4-date-icon{font-size:18px; line-height:1;}
.rh4-date-text{font-weight:600; color:#1b1b1b;}
.rh4-date-text.is-empty{font-weight:500; color:#666;}

/* Advanced filters row */
.rh4-adv{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.rh4-adv-item label{display:block; font-weight:700; margin-bottom:6px;}
.rh4-adv-item select{width:100%; padding:10px 12px; min-height:44px;}
.rh4-adv-note{
  grid-column: 1 / -1;
  font-size: 12px;
  color:#666;
  margin-top: -4px;
}

/* Make destination not full width on desktop */
@media (min-width: 900px){
  .rh4-grid{grid-template-columns: 2.2fr 1.4fr 1.3fr 1fr;}
  .rh4-field-dates{grid-column:auto;}
}

@media (max-width: 640px){
  .rh4-adv{grid-template-columns: 1fr;}
  .rh4-field-submit button{width:100%;}
}

/* Date modal */
.rh4-date-modal{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,0.35);
  z-index: 2147483645;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 16px;
}
.rh4-date-modal-inner{
  width:min(980px, 100%);
  background:#fff;
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.25);
  overflow:hidden;
}
.rh4-date-head{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 14px 14px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.rh4-date-title{font-weight:800; font-size: 16px; flex:1;}
.rh4-date-close{
  border:0; background:transparent; font-size: 26px; line-height:1;
  width:44px; height:44px; border-radius: 12px; cursor:pointer;
}
.rh4-date-close:active{background: rgba(0,0,0,0.06);}
.rh4-date-done{
  border:0;
  background: #1d7a3f;
  color:#fff;
  padding: 10px 14px;
  border-radius: 12px;
  font-weight:800;
  cursor:pointer;
  min-height: 44px;
}

.rh4-date-summary{
  padding: 10px 16px;
  font-weight:700;
  color:#1b1b1b;
}

.rh4-cal{
  padding: 10px 16px 16px 16px;
}

.rh4-cal-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.rh4-cal-month{
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 12px;
}

.rh4-cal-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom: 8px;
}
.rh4-cal-nav{
  display:flex;
  gap:8px;
}
.rh4-cal-nav button{
  border: 1px solid rgba(0,0,0,0.12);
  background:#fff;
  width:40px; height:40px;
  border-radius: 12px;
  cursor:pointer;
}

.rh4-cal-title{font-weight:900;}

.rh4-cal-week{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  font-size: 12px;
  color:#666;
  margin-bottom: 6px;
}

.rh4-cal-days{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.rh4-day{
  position:relative;
  border: 1px solid rgba(0,0,0,0.08);
  background:#fff;
  border-radius: 12px;
  height: 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  user-select:none;
}

.rh4-day.is-disabled{opacity:0.4; cursor:not-allowed;}

.rh4-day.is-inrange{background: rgba(29,122,63,0.12); border-color: rgba(29,122,63,0.18);}
.rh4-day.is-start,
.rh4-day.is-end{background:#1d7a3f; color:#fff; border-color:#1d7a3f; font-weight:900;}

.rh4-cal-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding: 0 16px 16px 16px;
}

.rh4-chip{
  border: 1px solid rgba(0,0,0,0.16);
  background:#fff;
  border-radius: 999px;
  padding: 10px 12px;
  cursor:pointer;
  font-weight:700;
}

.rh4-chip.is-active{border-color:#1d7a3f; box-shadow: 0 0 0 3px rgba(29,122,63,0.12);}

@media (max-width: 720px){
  .rh4-date-modal{align-items:stretch; padding:0;}
  .rh4-date-modal-inner{border-radius:0; width:100%; height:100%; display:flex; flex-direction:column;}
  .rh4-cal{flex:1; overflow:auto;}
  .rh4-cal-grid{grid-template-columns: 1fr;}
}

body.rh4-modal-open{overflow:hidden;}

/* =========================
   Travelers dropdown panel
   - positioned via JS (fixed) to avoid Avada stacking contexts
   ========================= */

#rh4-trav-panel{
  z-index: 2147483646 !important;
  background: #fff !important;
  border: 1px solid #e3e7e5 !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.16) !important;
  padding: 14px !important;
  width: min(420px, 94vw) !important;
}

#rh4-trav-panel .rh4-trav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 10px 4px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
#rh4-trav-panel .rh4-trav-row:last-of-type{
  border-bottom: 0;
}

#rh4-trav-panel .rh4-step{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid #cfd8d3;
  background: #fff;
}
#rh4-trav-panel .rh4-step-val{
  min-width: 28px;
  text-align: center;
  font-weight: 700;
}

#rh4-trav-panel #rh4-trav-done{
  margin-top: 12px !important;
  background: #1f7a3a !important;
  color: #fff !important;
  border-radius: 12px !important;
  padding: 10px 14px !important;
}

/* Child ages block (created via JS) */
#rh4-trav-panel .rh4-child-ages{
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(0,0,0,.06);
}
#rh4-trav-panel .rh4-child-ages .rh4-child-ages-title{
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 8px;
  opacity: .9;
}
#rh4-trav-panel .rh4-child-ages .rh4-child-age-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 10px;
}
#rh4-trav-panel .rh4-child-ages select{
  width: 100%;
  min-height: 42px;
  border: 1px solid #cfd8d3 !important;
  border-radius: 12px !important;
  background: #fff !important;
}



/* Search submit feedback overlay */
.rh4-search-submit-overlay{
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 2147483644;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.rh4-search-submit-overlay.is-active{ display:flex; }
.rh4-search-submit-box{
  width:min(420px, 92vw);
  background:#fff;
  border:1px solid rgba(20,70,20,.12);
  border-radius:18px;
  box-shadow:0 22px 70px rgba(0,0,0,.16);
  padding:24px 20px;
  text-align:center;
}
.rh4-search-submit-spinner{
  width:42px; height:42px; margin:0 auto 14px auto;
  border-radius:50%;
  border:4px solid rgba(29,122,63,.18);
  border-top-color:#1d7a3f;
  animation: rh4spin .8s linear infinite;
}
.rh4-search-submit-title{ font-size:18px; font-weight:800; color:#17351d; margin-bottom:6px; }
.rh4-search-submit-sub{ font-size:13px; color:#5f6f62; line-height:1.45; }
body.rh4-search-busy{ cursor: progress; }
body.rh4-search-busy .rh4-search-form button[type='submit']{ pointer-events:none; }
@keyframes rh4spin { from{ transform:rotate(0deg);} to{ transform:rotate(360deg);} }
