#thecostaride-reservation-form { 
     margin: auto; 
     padding: 20px 35px; 
     border-radius: 6px;
}

label { 
    font-weight: bold; 
    margin-bottom: 5px; 
    display: block; 
}

input[type="text"], input[type="date"], input[type="number"], input[type="tel"], input[type="email"], textarea, input[type="time"], select { 
    width: 100%!important; 
    padding: 8px!important; 
    font-size: 16px!important; 
    margin-bottom: 10px!important; 
    border-radius: 4px!important; 
    border: 2px solid #ccc!important; 
    background: transparent!important;
    outline: none!important;
}

#thecostaride-reservation-form select option, select option {
    background: #303030;
    color: #FFF;
    font-size: 16px!important; 
}

input[type="time"]::-webkit-calendar-picker-indicator {
    filter: invert(0.8);
}

.success-message { background: #e8f5e9; color: #256029; padding: 12px; border-left: 4px solid #4CAF50; border-radius: 4px; margin: 0 auto 15px; font-weight: bold;  }

div#routes-wrapper > div.route-group:not(:first-of-type) {
border-top: 1px solid #ffffff30;
margin-top: 20px;
padding-top: 20px;
}

form#thecostaride-reservation-form label {
    color: #ffffffd4;
}

button.remove-route {
    border: none;
    font-weight: 700;
    position: absolute;
    right: 0;
    font-size: 0.7rem;
    padding: 0;
    background: transparent!important;
}

.remove-route svg {
    fill: #FADC0F;
    width: 25px;
}

.passenger-selector {
    border: 2px solid #FFFFFFd4;
    cursor: pointer;
    border-radius: 4px;
    color: #FFFFFFd4;
    position: relative;
    margin-bottom: 10px;
}

.passenger-selector .options {
    border-top: 2px solid #FFFFFFD4;
    padding: 10px;
    position: absolute;
    background: #303030;
    border-radius: 0 0 4px 4px;
    width: 100%;
}
        
.passenger-selector .selector {
    padding: 9px 8px;
}

.passenger-selector button {
    border: 0;
    font-weight: 700;
    color: #FFFFFFD4;
    background: transparent!important;
}

.buttons-form {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    border-top: 1px solid #ffffff30;
    margin-top: 20px;
    padding-top: 20px;
}

button#add-route {
    color: #FFFFFFd4;
    border: 0;
    font-weight: 700;
    background: transparent!important;
}

button#add-route:hover {
    text-decoration: underline;
    background: transparent;
}

a.btn-booking, button.btn-booking, button.book-now-button, button.proceed-to-checkout-button, button.proceed-button {
    background-color: #FADC0F;
    border: 2px solid #FADC0F;
    font-family: "Red Hat Display", Sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #1D1D1D;
    border-radius: 10px 10px 10px 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

a.btn-booking {
    width: fit-content;
    padding: 5px 10px;
}

.btn-booking:hover, .book-now-button:hover,
.btn-booking:focus, .book-now-button:focus,
.proceed-to-checkout-button:hover, .proceed-to-checkout-button:focus, button.proceed-button:hover, button.proceed-button:focus{
    background-color: #d7bf17!important;
    border: 2px solid #d7bf17!important;
    color: #1D1D1D!important;
}


button.book-now-button[disabled]:not(.selected) {
    opacity: .5;
}

button[disabled] {
    opacity: .5;
    pointer-events: none;
}

.back-to-search {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #FFFFFF!important;
    margin-left: 30px;
}

.back-to-search:hover {
    opacity: 0.8;
}

.back-to-search svg {
    transform: translateY(1px);
}

.wrap-schedule-vehicle,
.completed_reserve {
    padding: 0 30px 30px;
}


.reservation-steps {
    display: flex;
    justify-content: space-between;
    text-align: center;
    width: calc(100% + 20px);
    margin: -10px 0 25px -10px;
}

.reservation-steps .step {
    width: 100%;
    text-align: center;
    background: #ffffffd4;
    font-weight: 500;
    padding: 5px 15px;
    position: relative;
}
.reservation-steps .step.current {
    background: #303030;
    color: #ffffffd4;
}

.reservation-steps .step:before, .reservation-steps .step:after {
    content: "";
    position: absolute;
    margin-top: -1.15em;
    border-top: 1.15em solid rgba(0,0,0,0);
    border-bottom: 1.15em solid rgba(0,0,0,0);
    border-left: 1em solid;
    top: 50%;
    right: -1em;
}

.reservation-steps .step:before {
    border-left-color: #303030;
    right: -1.10em;
    z-index: 1;
}

.reservation-steps .step.current:after {
    border-left-color: #303030;
}

.reservation-steps .step:after {
    z-index: 2;
    border-left-color: #dcdcdc;
}

.reservation-steps .step:last-of-type:before, .reservation-steps .step:last-of-type:after {
    border: 0;
}

.ride-selection-group + .ride-selection-group {
    margin-top: 80px;
    padding-top: 30px;
    border-top: 1px solid #FFFFFF46;
}

.form-summary {
    width: calc(100% - 15px);
}

.form-summary, .destination {
    display: flex;
    justify-content: space-between;
}

.form-summary  .destination {
    gap: 30px;
    border-right: 1px solid #FFFFFF30;
    flex: 1;
    align-items: center;
    padding-right: 30px;
}

.form-summary p {
    color: #ffffffd4;
    position: relative;
}

.form-summary p svg {
    width: 20px;
    fill: #FFFFFF46;
}

.form-summary p, .form-summary p strong {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 0;
}

.form-summary .time {
    padding: 0 30px;
}

.available-vehicles-list {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

.vehiculo-item {
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: 8px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.vehiculo-item h4 {
    margin-top: 0;
    margin-bottom: 10px;
    grid-area: 1/1/3/1;
}
.vehiculo-item *:not(button) {
    color: #ffffffd4;
}

.vehiculo-item {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 45px 1fr;
    align-items: flex-start;
    grid-column-gap: 15px;
}

.vehiculo-item p.h4 {
    font-weight: 700;
    font-size: 1.15rem;
}

.vehicle_name img {
    width: 150px;
    max-width: 100%;
}

.vehiculo-item p.short-description {
    grid-area: 2/1/3/2;
}

.vehiculo-item .vehiculo-description {
    grid-area: 1/2/3/3;
}

/*
.vehiculo-item .vehiculo-description li:before {
    content: "";
    position: absolute;
    width: 3px;
    height: 3px;
    background: #FFF;
    border-radius: 100%;
    left: -15px;
    top: 10px;
}

.vehiculo-item .vehiculo-description li::marker {
    content: none;
}*/

.vehiculo-item .vehiculo-description li {
    font-size: 0.85rem;
    text-decoration: none;
}

.vehiculo-item p.time {
    grid-area: 1/3/2/4;
}
.vehiculo-item p.price {
    grid-area: 1/4/2/5;
}

.vehiculo-item form,
button.book-now-button {
    grid-area: 2/4/3/5;
    width: fit-content;
}

.vehiculo-item h5 {
    margin-top: 0px;
    margin-bottom: 5px;
}

.vehiculo-item ul {
    margin-bottom: 10px;
    padding-left: 20px;
}

#thecostaride-reservation-form input:not([type="submit"]),
#thecostaride-reservation-form select, .form-group input {
    background: transparent;
    border: 2px solid #ffffffd4!important;
    color: #ffffffd4;
    outline: none!important;
}


#thecostaride-reservation-form input:not([type="submit"])::placeholder,
.form-group input::placeholder {
    color: #ffffffd4;
}

#thecostaride-reservation-form input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 30px;
    background-repeat: no-repeat;
    background-position: 98% center!important;
    background-size: 20px;
    background-image: url('/wp-content/uploads/2025/05/calendar-days-solid.svg');
}

input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0;
}

.tcr-form-step h3 {
    margin-top: 30px;
}

.wrapper-inputs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.wrapper-inputs .form-group {
    width: calc(50% - 5px);
}

.tcr-form-step .proceed-button {
    margin: 15px auto 0;
}

.vehicle-summary *, .price-summary-ride *,
.price-summary *:not(button) {
    color: #ffffffd4;
}


.vehicle-summary strong,
.content-transportation h3,
.price-summary-ride *,
.single-ride-review *,
.overall-price-summary *,
.confirmation-message *,
.wrap-schedule-vehicle *,
.contact-and-payment-form *, 
.completed_reserve *,
.reservation-error * {
    color: #FFFFFF;
}

.reservation-error a,
.reservation-error a:hover {
    color: #FADC0F;
}

.reservation-error a:hover {
    text-decoration: underline!important;
}


.review-details,
.contact-and-payment-form {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    padding: 30px 30px 30px;
    column-gap: 30px;
}

.review-details .form-summary,
.contact-and-payment-form .form-summary {
    grid-area: 1/1/2/2;
    flex-direction: column;
    padding-top: 30px;
}


.review-details .vehicle-summary {
    grid-area: 2/1/3/2;
    padding-top: 30px;
}

.review-details .price-summary {
    grid-area: 1/2/3/3;
    background: #FFFFFF30;
    padding: 30px;
    border-radius: 20px;
}

.review-details .form-summary .destination {
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0px;
    border-right: 0;
    margin-bottom: 5px;
}

.review-details .form-summary .destination p:first-of-type:after {
    content: "/";
    padding-right: 5px;
}

.single-ride-review + .single-ride-review {
    margin-top: 40px;
    padding-top: 5px;
    border-top: 1px solid #FFFFFF46;
}

.single-ride-review .wrapper-inputs .form-group {
    width: calc(33% - 5px);
}

.review-details .form-summary .destination svg {
    display: none;
}

.review-details .form-summary .time {
    padding-left: 0;
    margin-bottom: 0px;
}

.review-details .price-summary h4 {
    margin-top: 0;
    border-bottom: 1px solid #FFFFFF30;
    padding-bottom: 10px;
}

.review-details .price-summary p {
    display: flex;
    justify-content: space-between;
}

.proceed-to-checkout-button {
    width: 100%;
    justify-content: center;
}

.proceed-to-review-container {
    margin-top: 40px;
    display: flex;
    justify-content: flex-end;
}

.proceed-to-review-container form {
    display: flex;
    justify-content: flex-end;
}

.review-details h3 {
    color: #fff;
    grid-area: 1/1/2/2;
}

.wrap-single-ride-review {
    grid-area: 2/1/3/2;
}

.remove-route-form {
    display: flex;
    justify-content: flex-end;
}

.remove-route-form button {
    background: #FFFFFFD4;
    border: 0;
    color: #303030;
    font-weight: 700;
}

.remove-route-form button:hover,
.remove-route-form button:focus {
    background: #ffffff5e;
}

.overall-price-summary {
    grid-area: 1/2/3/3;
    border: 1px solid #FFFFFF46;
    padding: 15px 25px;
    border-radius: 8px;
    background: #FFFFFF46;
}

.overall-price-summary h4 {
    padding-bottom: 10px;
    border-bottom: 1px solid #FFFFFF46;
}

.list-rides-summary {
    padding-bottom: 0px;
    border-bottom: 1px solid #FFFFFF46;
    margin-bottom: 30px;
}

.overall-price-summary p {
    display: flex;
    justify-content: space-between;
}

p.total {
    border-top: 1px solid #FFFFFF46;
    padding-top: 30px;
    margin-top: 35px;
}

p.total {}

.total .grand-total-price {
    font-size: 1.5rem;
}

.total .grand-total-price span.currency {
    font-size: 1rem;
}

.overall-price-summary form {
    display: flex;
    justify-content: center;
    position: sticky;
    top: 100%;
    transform: translateY(35px);
}

.confirmation-message {
    padding: 0px 30px 25px;
}

span.select2-dropdown {
    background: #000;
    background: #303030;
    border-color: #303030;
    color: #fff;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: #ffffff30;
    color: #FFFFFFD4;
}

.select2-container--default .select2-search--dropdown .select2-search__field,
.select2-container--default .select2-selection--single {
    background: transparent;
    border: 2px solid #fff;
    color: #FFFFFFD4;
}

span.select2-search {
    padding: 4px 0!important;
    color: #FFF;
}

.select2-container--default .select2-selection--single {
    height: 46px;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #FFFFFFD4;
    line-height: 40px;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #FFFFFFD4;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px;
}

.select2-container--default .select2-results__option--selected {
    background-color: #FFFFFF90;
}

.select2-container--default.select2-container--disabled .select2-selection--single {
    background-color: #ffffff57;
}

/* Ajustes para pantallas más pequeñas */
@media (max-width: 768px) {
    .vehiculo-item {
        width: calc(50% - 20px);
    }
    .review-details {
        display: flex;
        flex-direction: column;
    }
    
    .review-details .form-summary .destination {
        flex-direction: column;
        gap: 0;
    }
    
    .review-details .vehicle-summary {
        padding-top: 0;
    }
    
    .overall-price-summary {
        margin-top: 30px;
    }
}

@media (max-width: 480px) {
    .vehiculo-item {
        width: 100%;
    }
}