/* ==========================================
   REZERVÁCIA - AFTERDARK TAXI
========================================== */

.reservation-section {
    padding: 70px 0;
}

.reservation-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: start;
}

.reservation-form,
.summary-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 15px 35px rgba(0,0,0,.08);
}

.reservation-form form{
    display:flex;
    flex-direction:column;
    gap:22px;
}

.double{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.form-group{
    display:flex;
    flex-direction:column;
}

.form-group label{
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:600;
    color:#222;
    margin-bottom:8px;
}

.form-group label i{
    color:#f7b500;
    width:18px;
    text-align:center;
}

.form-group input,
.form-group textarea{
    width:100%;
    padding:14px 16px;
    border:2px solid #e7e7e7;
    border-radius:12px;
    font-size:15px;
    transition:.25s;
    background:#fff;
    color: #222;
    font-family:inherit;
}

.form-group textarea{
    resize:vertical;
    min-height:120px;
}

.form-group input:focus,
.form-group textarea:focus{
    outline:none;
    border-color:#f7b500;
    box-shadow:0 0 0 4px rgba(247,181,0,.15);
}
/* ==========================================
   TLAČIDLÁ
========================================== */

.btn-main{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    padding:16px 20px;
    border:none;
    border-radius:14px;
    background:#f7b500;
    color:#111;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    transition:.25s;
}

.btn-main:hover{
    background:#ffca28;
    transform:translateY(-2px);
    box-shadow:0 12px 25px rgba(247,181,0,.35);
}

.btn-main:active{
    transform:translateY(0);
}

.btn-main:disabled{
    background:#d9d9d9;
    color:#777;
    cursor:not-allowed;
    transform:none;
    box-shadow:none;
}

/* ==========================================
   PLATBA
========================================== */

.payment-options{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.payment-card{
    display:block;
    width:100%;
    cursor:pointer;
}

.payment-card input{
    display:none;
}

.payment-card span{
    display:flex;
    align-items:center;
    gap:15px;
    width:100%;
    padding:18px 22px;
    background:#fff;
    color:#222;
    border:2px solid #e4e4e4;
    border-radius:14px;
    box-sizing:border-box;
    transition:.25s;
    font-weight:600;
}

.payment-card span i{
    color:#f7b500;
    font-size:22px;
}

.payment-card:hover span{
    border-color:#f7b500;
    box-shadow:0 0 15px rgba(247,181,0,.15);
}

.payment-card input:checked + span{
    border-color:#f7b500;
    background:#fff8dd;
    box-shadow:0 0 0 4px rgba(247,181,0,.15);
}
/* ==========================================
   SÚHRN JAZDY
========================================== */

.summary-card h2{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:30px;
    color:#222;
    font-size:28px;
}

.summary-card h2 i{
    color:#f7b500;
}

.summary-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    margin:18px 0;
}

.summary-row span{
    color:#777;
    font-size:15px;
}

.summary-row strong{
    color:#222;
    text-align:right;
    font-weight:700;
    word-break:break-word;
}

.summary-card hr{
    border:none;
    border-top:1px solid #ececec;
    margin:25px 0;
}

.summary-price{
    text-align:center;
    padding:20px;
    margin-top:15px;
    border-radius:16px;
    background:linear-gradient(135deg,#f7b500,#ffcf33);
}

.summary-price span{
    display:block;
    color:#222;
    font-size:15px;
    margin-bottom:8px;
}

.summary-price h3{
    margin:0;
    font-size:40px;
    font-weight:800;
    color:#111;
}

.info-box{
    display:flex;
    align-items:flex-start;
    gap:15px;
    margin-top:30px;
    padding:18px;
    border-radius:14px;
    background:#fff8e6;
    border-left:5px solid #f7b500;
}

.info-box i{
    color:#f7b500;
    font-size:22px;
    margin-top:2px;
}

.info-box p{
    margin:0;
    color:#555;
    line-height:1.7;
    font-size:14px;
}
/* ==========================================
   NADPISY
========================================== */

.reservation-form h3{
    margin:10px 0 5px;
    font-size:20px;
    color:#222;
    font-weight:700;
}

/* ==========================================
   SKRYTÉ POLIA
========================================== */

input[type="hidden"]{
    display:none;
}

/* ==========================================
   SCROLLBAR (WEBKIT)
========================================== */

.form-group textarea::-webkit-scrollbar{
    width:8px;
}

.form-group textarea::-webkit-scrollbar-track{
    background:#efefef;
    border-radius:10px;
}

.form-group textarea::-webkit-scrollbar-thumb{
    background:#f7b500;
    border-radius:10px;
}

.form-group textarea::-webkit-scrollbar-thumb:hover{
    background:#d89d00;
}

/* ==========================================
   ANIMÁCIE
========================================== */

.reservation-form,
.summary-card{
    animation:fadeInUp .5s ease;
}

@keyframes fadeInUp{

    from{

        opacity:0;
        transform:translateY(30px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

.btn-main,
.payment-card span,
.form-group input,
.form-group textarea{
    transition:
        background .25s,
        color .25s,
        border-color .25s,
        box-shadow .25s,
        transform .25s;
}
/* ==========================================
   STAVY FORMULÁRA
========================================== */

.form-group input:valid,
.form-group textarea:valid{
    border-color:#32b768;
}

.form-group input:invalid:not(:placeholder-shown),
.form-group textarea:invalid:not(:placeholder-shown){
    border-color:#dc3545;
}

.form-group input:disabled,
.form-group textarea:disabled{
    background:#f5f5f5;
    cursor:not-allowed;
    opacity:.7;
}

/* ==========================================
   LOADING PRI VÝPOČTE TRASY
========================================== */

#calculateBtn.loading{
    pointer-events:none;
    opacity:.8;
}

#submitReservation:disabled{
    opacity:.65;
}

/* ==========================================
   HOVER EFEKT KARTY
========================================== */

.summary-card{
    position:sticky;
    top:30px;
}

/* ==========================================
   ODSADENIA
========================================== */

.summary-card > *:last-child{
    margin-bottom:0;
}

.payment-options{
    margin-bottom:10px;
}

.info-box strong{
    color:#222;
}

.info-box a{
    color:#f7b500;
    text-decoration:none;
    font-weight:600;
}

.info-box a:hover{
    text-decoration:underline;
}
/* ==========================================
   RESPONSIVE
========================================== */

@media (max-width: 992px){

    .reservation-grid{
        grid-template-columns:1fr;
    }

    .summary-card{
        position:static;
        margin-top:30px;
    }

}

@media (max-width:768px){

    .reservation-section{
        padding:50px 0;
    }

    .reservation-form,
    .summary-card{
        padding:25px;
    }

    .double{
        grid-template-columns:1fr;
    }

    .summary-card h2{
        font-size:24px;
    }

    .summary-price h3{
        font-size:34px;
    }

    .btn-main{
        padding:15px;
        font-size:15px;
    }

}

@media (max-width:480px){

    .reservation-form,
    .summary-card{
        padding:20px;
        border-radius:16px;
    }

    .form-group input,
    .form-group textarea{
        padding:13px 14px;
        font-size:14px;
    }

    .payment-card span{
        padding:15px;
        font-size:14px;
    }

    .summary-row{
        flex-direction:column;
        gap:6px;
        align-items:flex-start;
    }

    .summary-row strong{
        text-align:left;
    }

    .summary-price{
        padding:18px;
    }

    .summary-price h3{
        font-size:30px;
    }

    .info-box{
        padding:15px;
        font-size:14px;
    }

}
.page-back{
    margin-bottom:25px;
}

.page-back a{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 22px;
    border-radius:50px;
    background:rgba(0,0,0,.45);
    color:#fff;
    text-decoration:none;
    font-weight:600;
    transition:.25s;
    backdrop-filter:blur(6px);
}

.page-back a:hover{
    background:#f7b500;
    color:#111;
}

.page-back i{
    font-size:15px;
}
/* ==========================================
   KONIEC
========================================== */