*,
*:after,
*:before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
}
main {
  flex: 1 0 auto;
}
header,
footer {
  flex-shrink: 0;
}

select:user-valid,
input:user-valid {
  outline-color: green !important;
  border-color: green !important;
}

select:user-invalid,
input:user-invalid {
  outline-color: red !important;
  border-color: red !important;
  background-color: rgb(255, 0, 0, 0.1) !important;
}

.form-floating > label.notes {
  font-size: 0.85em;
}

#res:hover {
  background-color: #fde16d !important;
  color: black !important;
  cursor: pointer;
}

#res a:hover {
  color: black !important;
}

#res a {
  text-decoration: none;
}

#country::placeholder {
  color: black;
  opacity: 1;
}

#search::-ms-input-placeholder,
#country::-ms-input-placeholder {
  /* Edge 12 -18 */
  color: black;
}

#results-country {
  position: absolute;
  /* width: clamp(150px, 15rem, 350px); */
  width: 100%;
  height: 100px;
  background-color: hsla(210 15.8% 89% / 0.9);
  padding: 3px !important;
  overflow: auto;
  z-index: 10;
}

.gri {
  background-color: #e9ecef !important;
}

/*dezactiveaza afisarea numelui limbii selectate */
a.notranslate span:first-of-type {
  display: none !important;
}

.btn-primary:hover {
  background-color: #00439b !important;
  transition: all 500ms;
  scale: 110%;
}

.btn-secondary:hover {
  scale: 110%;
  transition: all 500ms;
  background-color: #4f5153 !important;
}

/*      formatare nr telefon       */
.iti {
  width: 100% !important;
  top: -30px;
  left: -10px;
}
.iti__country-container {
  margin-left: 0.5rem !important;
}
#phone {
  margin-left: 9px !important;
}
#phone_label {
  position: relative;
  z-index: 2;
  left: 5px;
  font-size: 0.8rem;
}
/* ---------------------------------------- */

/*CSP*/
#rezmenu {
  position: fixed;
  top: 0px;
  left: 0px;
  right: 0;
  height: 100vh;
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.5)),
    url("../images/rentacar.jpeg");
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
  overflow: hidden;
}
#rezmenu > div:first-child {
  max-width: 550px;
  width: 100%;
  margin-top: -10rem;
}

/* nav + footer */
nav {
  background-color: hsla(210 15.8% 89% / 0.9);
}
nav > div > * {
  opacity: 1;
}
footer {
  bottom: 0;
  width: -moz-available;
  width: -webkit-fill-available;
  background-color: hsla(210 15.8% 89% / 1);
}
.footer-child {
  max-width: 49%;
}

/*rez noua */

#search-container-country {
  position: relative;
  display: none;
}
#optiuni_suplimentare > * {
  flex-basis: 32%;
}
#plati {
  background-color: #f4f4f4;
}
#plati > div > span {
  font-size: 1.3em;
  height: auto;
  vertical-align: middle;
}
.text-lg-center > img {
  max-width: 100%;
  width: 20rem;
}
textarea {
  height: 100px !important;
}

/*country select2*/
.select2-container--default .select2-selection--single {
  height: calc(3.5rem + 2px);
  padding: 0.625rem 0.75rem;
  font-size: 1rem;
  border: 1px solid #ced4da;
  border-radius: 0.375rem;
}
.select2-container--default .select2-selection--single:focus {
  background-color: whitesmoke;
  border: 1px solid #aaa;
}
.select2-selection__placeholder {
  position: absolute;
  top: 30%;
}
.select2-dropdown {
  background-color: whitesmoke;
}
.select2-container {
  width: 100% !important;
  margin-top: -3px;
}
.select2-selection__rendered {
  top: 7px;
  left: -8px;
  position: relative;
}

#country_label {
  top: -7px;
}
#tara + div {
  height: 60px;
}
/*end country select2*/

.form-floating:hover > *:not(.gri):not(.input-group-text):not(.form-label),
.telefon:hover,
.form-check:hover,
.form-check-label:hover,
.form-check-input:hover {
  transform: translateY(-2px);
  transition: transform 0.35s ease-in-out;
}
.gri {
  pointer-events: none;
  cursor: default;
}
.telefon:hover,
.form-select:hover,
.form-check:hover,
.form-check-label:hover,
.form-check-input:hover {
  cursor: pointer !important;
}
.input-group-text {
  align-items: end;
  padding-bottom: 8px;
}

/* css adition for card */
/* ---- Sticky car card (desktop) ---- */
:root {
  --header-h: 64px; /* fallback, overridden by JS */
}

.sticky-lg-top-card {
  position: static;
}
@media (min-width: 992px) {
  .sticky-lg-top-card {
    position: sticky;
    top: calc(var(--header-h) + 1rem);
    z-index: 5;
  }
}

/* preview card no longer carries its own fixed width - column controls it */
.preview-card {
  width: 100%;
  max-width: 420px; /* soft ceiling on very wide screens */
  margin-inline: auto;
  border-width: 5px 5px 5px 5px !important;
  border-style: inset !important;
  border-color: #3b3b3b8a !important;
  /*padding: 5px;*/
}

.preview-card .card-price {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-top: 1px solid #e0e0e0;
  margin-top: 8px;
  padding-top: 8px;
}
.preview-card .card-price .price-days {
  font-size: 0.8rem;
  color: #6c757d;
}
.preview-card .card-price .price-total {
  font-weight: 700;
  font-size: 1.15rem;
}

/* ---- Mobile sticky price bar ---- */
.mobile-price-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20;
  background: #fff;
  border-top: 1px solid #dee2e6;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  padding: 0.6rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.mobile-price-bar .mpb-info {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.mobile-price-bar .mpb-days {
  font-size: 0.75rem;
  color: #6c757d;
}
.mobile-price-bar .mpb-total {
  font-weight: 700;
  font-size: 1.05rem;
}

@media (max-width: 991.98px) {
  body {
    padding-bottom: 64px; /* keep last field clear of fixed bar */
  }
}

/* ---- Cost details summary ---- */
.cost-summary {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
}
.cost-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  font-size: 0.95rem;
}
.cost-row span:first-child {
  color: #6c757d;
}
.cost-row-spaced {
  margin-top: 0.75rem;
}

.reveal-section {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}
.reveal-section.revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-section {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Fade for progressively-disclosed blocks (voucher input, notes, cost details,
   contact fields) - the animation re-runs each time an element goes from
   display:none to visible, so no JS is needed to trigger it. */
.fade-in {
  animation: fadeIn 0.7s ease-in-out;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fade-in {
    animation: none;
  }
}

.mpb-prompt {
  font-size: 0.85rem;
  color: #6c757d;
  flex: 1;
}
.mpb-info {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.preview-card .card-price .price-prompt {
  font-size: 0.8rem;
  color: #6c757d;
}
.preview-card .card-price .price-info {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  width: 100%;
}
/* *********************************************** */
/* *********************************************** */
/* pentru sumar comanda */
.summary-car-thumb {
  width: 110px;
  height: 74px;
  object-fit: cover;
  flex-shrink: 0;
}

.sticky-total-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20;
  background: #fff;
  border-top: 1px solid #dee2e6;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  padding: 0.7rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.stb-info {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.stb-label {
  font-size: 0.78rem;
  color: #6c757d;
}
.stb-total {
  font-weight: 700;
  font-size: 1.2rem;
}

/* *********************************************** */
#stepDetalii .footer {
    border-top-width: 0;
    padding: 8px;
}
/* *********************************************** */
