/* General Form Styling */

.loc-row {
  display:flex;
  gap:8px;
  align-items:center;
}
.loc-row input[type="text"] {
  flex:1 1 auto;
}
.btn-geo {
  flex:0 0 auto;
  white-space:nowrap;
  border:1px solid #d0d7de;
  background:#f6f8fa;
  border-radius:6px;
  padding:8px 10px;
  font-size:14px;
  cursor:pointer;
}
.btn-geo:disabled { opacity:.6; cursor:not-allowed; }
.geo-status {
  margin-top:6px;
  font-size:12px;
  color:#6c757d;
}
.input-error { border-color:#dc3545 !important; }

/* Pin icon inside the current_location input (left) */
#current_location{
  background: /* icon */
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'><circle cx='11' cy='11' r='8' fill='%230A84FF'/></svg>") no-repeat 12px center / 18px 24px;
  padding-left: 44px;              /* room for the icon */
}

/* (optional) a tiny highlight on focus */
#current_location:focus{
  background-position: 12px center;
}

/* Pin icon inside the destination input (left) */
#destination{
  background: /* icon */
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>\
<path d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z' fill='%2322C55E' stroke='%230B3D0B' stroke-width='1.2' stroke-linejoin='round'/>\
</svg>") no-repeat 12px center / 18px 24px;
  padding-left: 44px;              /* room for the icon */
}

/* (optional) a tiny highlight on focus */
#destination:focus{
  background-position: 12px center;
}

/* "Ou" thin-line separator */
.or-sep{
  display:flex; align-items:center; gap:10px;
  color:#17385d; font-weight:600; margin:14px 0 16px; font-size:20px;
}
.or-sep .line{ flex:1 1 0; height:1px; background:#e5e7eb; }
.or-sep .or{ line-height:1; }

/* Date/Time row */
.dt-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px;
}
.dt-field label{
  display:block; font-size:15px; color:#17385d; margin:0 0 6px; font-weight: 600;
}
.dt-input{
  width:100%; padding:12px 12px 12px 12px; border:1px solid #e0e0e0;
  border-radius:10px; font-size:16px; background:#fff no-repeat right 10px center / 18px;
  color:#111;
  -webkit-appearance:none; appearance:none;
}
/* calendar icon */
.dt-input.date{
  
}
/* clock/chevron icon */
.dt-input.time{
  
}

@media (max-width: 420px){
  .dt-grid{ grid-template-columns:1fr; }
}

/* Hide the coupon input field (kept in DOM but invisible) */
#coupon_code {
  display: none !important;
}

/* If you also have a label for it, hide that too (optional) */
label[for="coupon_code"] {
  display: none !important;
}

.quick-time{
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: nowrap;         /* keep in one row */
  overflow: hidden;          /* no scrollbar; they’ll shrink instead */
  margin: .25rem 0 1rem;
}

.quick-time .qt-btn{
  flex: 1 1 0;               /* allow grow + SHRINK equally */
  min-width: 0;              /* let flexbox actually shrink them */
  max-width: 100%;
  padding: .35rem .5rem;     /* tighter padding so they can get smaller */
  font-size: clamp(.75rem, 1.6vw, .9rem); /* scale down on small screens */
  line-height: 2;
  border: 1px solid #17385d;
  background: #fff;
  color: #17385d;
  border-radius: 999px;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
}

.quick-time .qt-btn:hover{
  background:#17385d;
  color:#fff;
}

.steps-progress {
  margin: 16px 0 24px;
  --track: #e9ecef;
  --fill:  #47CFFF; /* matches your gradient palette */
  --dot:   #adb5bd;
  --active:#47CFFF;
  --label:#6c757d;
}

.steps-track {
  position: relative;
  height: 6px;
  background: var(--track);
  border-radius: 999px;
  overflow: hidden;
}
.steps-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: linear-gradient(90deg, #47CFFF, #51FA00);
  transition: width 300ms ease;
}

.steps-dots {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr); /* adjust if you change number of steps */
  gap: 8px;
  margin: 30px 0 0;
  padding: 0;
}

.steps-dots li {
  position: relative;
  text-align: center;
  font-size: 12px;
  color: var(--label);
  padding-top: 36px;           /* was 18px */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* The “dot” becomes an icon via ::before */
.steps-dots li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 28px;                 /* icon size */
  height: 28px;
  transform: translateX(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  /* subtle fallback if image fails to load */
  background-color: transparent;
  transition: opacity 200ms ease, transform 200ms ease, filter 200ms ease;
  opacity: 0.85;
}

/* Active/current step pops a bit */
.steps-dots li.active::before,
.steps-dots li.completed::before {
  opacity: 1;
  transform: translateX(-50%) scale(1.05);
}

/* Optional: make active label darker/bolder (keep your style) */
.steps-dots li.active {
  color: #212529;
  font-weight: 600;
}

/* ---- Map each step to its default & active PNG ---- */
/* Put your PNGs in /images/steps/ (or adjust paths) */

.steps-dots li.icon-welcome::before     { background-image: url("../images/steps/home-default.png"); }
.steps-dots li.icon-pickup::before      { background-image: url("../images/steps/pickup-default.png"); }
.steps-dots li.icon-destination::before { background-image: url("../images/steps/flag-default.png"); }
.steps-dots li.icon-info::before        { background-image: url("../images/steps/user-default.png"); }
.steps-dots li.icon-date::before        { background-image: url("../images/steps/calendar-default.png"); }

/* Swap to the active PNG when that step is active */
.steps-dots li.icon-welcome.active::before     { background-image: url("../images/steps/home-active.png"); }
.steps-dots li.icon-pickup.active::before      { background-image: url("../images/steps/pickup-active.png"); }
.steps-dots li.icon-destination.active::before { background-image: url("../images/steps/flag-active.png"); }
.steps-dots li.icon-info.active::before        { background-image: url("../images/steps/user-active.png"); }
.steps-dots li.icon-date.active::before        { background-image: url("../images/steps/calendar-active.png"); }

/* If you mark past steps as .completed, show active icon there too (or make -done.png) */
.steps-dots li.icon-welcome.completed::before     { background-image: url("../images/steps/home-active.png"); }
.steps-dots li.icon-pickup.completed::before      { background-image: url("../images/steps/pickup-active.png"); }
.steps-dots li.icon-destination.completed::before { background-image: url("../images/steps/flag-active.png"); }
.steps-dots li.icon-info.completed::before        { background-image: url("../images/steps/user-active.png"); }
.steps-dots li.icon-date.completed::before        { background-image: url("../images/steps/calendar-active.png"); }

/* Tiny screens: slightly smaller icons */
@media (max-width: 360px) {
  .steps-dots li { font-size: 11px; padding-top: 32px; }
  .steps-dots li::before { width: 24px; height: 24px; }
}

.container {
    max-width: 500px;
    margin: 50px auto;
    padding: 20px;
    background: rgba(255, 255, 255, 0.8); /* 20% opacity */
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    text-align: center;
    font-family: Arial, sans-serif;
}


/* Step Headings */
h3 {
    font-size: 23px;
    color: #333;
    margin-bottom: 20px;
}

/* Input Fields */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="datetime-local"] {
    width: 100%;
    padding: 12px;
    margin: 10px 0;
    border: 1px solid #01122e;
    border-radius: 6px;
    font-size: 16px;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

input:focus {
    border-color: #ff7a00;
    box-shadow: 0px 0px 5px rgba(255, 122, 0, 0.5);
}

/* Buttons */
button {
    width: 100%;
    padding: 12px;
    margin-top: 15px;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    background: #2dc6ed;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.button-cust {
    width: 100%;
    padding: 22px;
    margin-top: 15px;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    background: #2dc6ed;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.button-submit {
    width: 100%;
    padding: 22px;
    margin-top: 15px;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    background: #2dc6ed;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.button-back {
    width: 100%;
    padding: 8px;
    margin-top: 15px;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    background: linear-gradient(to right, #2dc6ed, #57db67);
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

button:hover {
}

.button-back:hover {
}

/* Back Button */
button:nth-child(1) {
    background: linear-gradient(to right, #bbb, #888);
}

button:nth-child(1):hover {
    background: linear-gradient(to right, #888, #666);
}

/* Steps Styling */
.step {
    display: none;
}

.step.active {
    display: block;
}

/* Current location and Destination */

/* make the container relative so we can draw the line */
#addresses-container {
  position: relative;
  margin-top: 1rem;
  padding-left: 32px;               /* room for icons at left */
}

/* draw the vertical timeline */
#addresses-container::before {
  content: "";
  position: absolute;
  top: 10px;                        /* aligns under first icon */
  bottom: 10px;                     /* aligns above last icon */
  left: 15px;                       /* center of our icons */
  width: 2px;
  background: #ddd;
}

/* common styling for each row */
#addresses-container p {
  position: relative;
  margin: 8px 0;
  font-size: 0.95rem;
  color: #666;
  display: flex;
  align-items: center;
}

/* label (the <strong>) stays fixed width */
#addresses-container p strong {
  flex-shrink: 0;
  width: 120px;
  color: #333;
}

/* the span holds your dynamic address text */
#addresses-container p span {
  /*flex: 1;*/
  color: #555;
}

/* first <p> gets a blue circle */
#addresses-container p:first-of-type::before {
  content: "";
  position: absolute;
  left: -22px;
  top: 4px;          /* roughly vertically center */
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #0066ff;
}

/* second <p> gets a green map-pin icon */
#addresses-container p:last-of-type::before {
  content: "";
  position: absolute;
  left: -24px;
  top: 0;            /* pin graphic is taller */
  width: 16px;
  height: 16px;
  background: url("https://maps.gstatic.com/mapfiles/ms2/micons/green.png") no-repeat center;
  background-size: contain;
}

/* Parent of both must be a flex container, so they sit on the same row */
#step2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;       /* allow other content below if needed */
  gap: 1rem;             /* spacing in case you have more elements */
}

/* Distance on the left */
#distance-container {
  display: flex;
  align-items: center;
  font-size: 0.95rem;
  color: #666;
}

/* Tweak the label/value */
#distance-container label {
  margin-right: 0.25rem;
  font-weight: 500;
  font-size: larger;
}
#distance-container span {
  font-weight: 700;
  color: #333;
  font-size: larger;
}

/* Price on the far right */
#distance-container {
  margin-left: auto;     /* pushes it all the way right */
  display: inline-flex;
  align-items: center;
  font-size: 1.1rem;
  color: #333;
  column-gap: 5px;
  margin-top: 10px;

}
#distance-container span {
  font-weight: 700;
}

/* Price on the far right */
#price-container {
  margin-left: auto;     /* pushes it all the way right */
  display: inline-flex;
  align-items: center;
  font-size: 1.1rem;
  color: #333;
}
#price-container span {
  font-weight: 700;
}

/* container holds both blocks side by side, but will wrap if needed */
#distance-price {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .5rem;              /* space between distance & price */
  margin-top: 1rem;
}

/* each block (distance or price) is itself a little flex row */
.dp-block {
  display: flex;
  align-items: center;
  gap: .25rem;             /* space between icon & text */
  /* fluid font size that shrinks on small viewports */
  font-size: clamp(0.85rem, 4vw, 1.1rem);
  color: #333;
}

/* icon size also fluid */
.dp-icon {
  width: clamp(80px, 6vw, 80px);
  height: auto;
}

/* tweak boldness/color on the numbers */
.dp-distance #distance,
.dp-price #price {
  font-weight: 700;
  color: #000;
}

/* on very narrow screens, force two-line layout */
@media (max-width: 360px) {
  #distance-price {
    flex-direction: column;
    align-items: flex-start;
  }
  .dp-block {
    width: 100%;
    justify-content: space-between;
  }
}


.distance-icon {
  width: 80px;       /* adjust size as needed */
  height: auto;
  margin-right: 0.75rem;
}

.btn-icon-only {
  background: transparent;
  border: none;
  padding: 0;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff; /* Bootstrap primary color; adjust if you like */
}
.btn-icon-only:hover {
  color: #084298;
}

.mb-0 {
    margin-bottom: 0 !important;
    padding-left: 20px;
    padding-top: 15px;
}

button:nth-child(1) {
    background: linear-gradient(to right, #888, #666);
    border: 2px solid #fff;
    border-radius: 20px;
}

/* simple grey separator */
.separator {
  width: 100%;
  height: 8px;
  background-color: #f0f0f0;
  margin: 1rem 0;
}