@font-face {
    font-family: 'HolidayFree';
    src: url('https://booking.adamtravel.com/fonts/HolidayFree.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

body {
    background: linear-gradient(180deg,#0b254a 0%, #142a52 50%, #1f3b6b 100%);
    font-family: 'Poppins', sans-serif;
    color:#eaf0fb;
    margin: 0;
    padding: 20px;
}

/* ============================================================
   FORM CARD
===============================================================*/
.card-form {
    width: 1000px;
    max-width: 100%;
    border-radius: 20px;
    padding: 35px;
    margin: auto;
    background: #6881af;
    border: 1px solid #8c52ff;
    box-shadow: 0 0 20px rgba(140,82,255,0.4);
}

.step { display:none; }
.step.active { display:block; }

/* ============================================================
   FORM FIELDS
===============================================================*/
.form-label {
    color:#ffffff !important;
    font-weight:600;
    font-size:14px;
}

.form-control,
.form-select {
    background: transparent !important;
    border:none !important;
    border-bottom:1px solid rgba(255,255,255,0.35) !important;
    color:white !important;
    border-radius:0 !important;
}

.form-control:focus,
.form-select:focus {
    border-bottom:1px solid #ffb703 !important;
    box-shadow:none !important;
}

.form-select option {
    background: #0b254a !important;
    color: white !important;
}

.form-control::placeholder {
    color: rgba(255,255,255,0.6) !important;
}

/* Radio */
.radio-inline {
    margin-right:20px;
    color: white !important;
}

/* ============================================================
   BUTTONS
===============================================================*/
.btn-main {
    background:#ffffff;
    color:#12263a;
    font-weight:bold;
    border-radius:30px;
    width:200px;
    padding:12px;
    border:none;
}

.btn-outline {
    background:transparent;
    border:1px solid rgba(255,255,255,0.25);
    color:white;
    border-radius:30px;
    width:200px;
    padding:12px;
}

/* ============================================================
   PROGRESS BAR
===============================================================*/
.progress-wrapper {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:14px;
    margin-bottom:35px;
    flex-wrap:wrap;
}

.progress-step-item {
    display:flex;
    flex-direction:column;
    align-items:center;
}

.progress-step-item .circle {
    width:32px;
    height:32px;
    border-radius:50%;
    background:#ffffff;
    color:#0b254a;
    font-weight:bold;
    display:flex;
    align-items:center;
    justify-content:center;
}

.progress-step-item.active .circle {
    background:#0b254a;
    color:#ffffff;
}

.step-label {
    margin-top:6px;
    font-size:14px;
    color:#eaf0fb;
}

/* ============================================================
   SUMMARY BOX
===============================================================*/
.summary-box {
    background:#ffffff10;
    border:1px solid #ffffff30;
    border-radius:12px;
}

.summary-row {
    display:flex;
    justify-content:space-between;
    padding:6px 0;
    font-size:15px;
}

.summary-row.total span:last-child {
    font-weight:bold;
    font-size:18px;
}

/* ============================================================
   PAYMENT
===============================================================*/
.payment-method-box,
.payment-box {
    background: transparent !important;
    border: none !important;
}


.pay-option {
    display:flex;
    gap:10px;
    align-items:center;
    margin-bottom:10px;
    font-size:16px;
    cursor:pointer;
}

.stripe-input,
#bank-element {
    padding:14px;
    background:white;
    border-radius:10px;
}

/* ============================================================
   SLIM PACKAGE CARD (Browse Mode)
===============================================================*/
.package-card {
    background:linear-gradient(135deg,#0a1f44,#0e2a60,#133b82);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:18px;
    padding:22px !important;
    box-shadow:0 0 12px rgba(0,0,0,0.25);
}

/* ============================================================
   COVER SECTION — FINAL VERSION
===============================================================*/
.package-cover {
    position: relative;
    width: 100%;
    height: 360px;
    border-radius: 25px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding-top:40px;
}

/* dark overlay */
.package-cover::before {
    content:"";
    position:absolute;
    inset:0;
    background:#171c6373;
    backdrop-filter:blur(2px);
    z-index:1;
}

/* Make all content above overlay */
.package-cover > * {
    z-index:2;
    position:relative;
}

/* logos */
.cover-logos {
    display:flex;
    gap:40px;
    margin-bottom:15px;
}

.cover-logo,
.logo-img {
    height:55px;
    object-fit:contain;
}

/* year */
.cover-year {
    font-size:28px;
    font-weight:700;
    color:white;
    margin-bottom:10px;
}

/* main title */
.cover-title {
    font-size:46px;
    font-weight:900;
    color:white;
    text-shadow:0 4px 12px rgba(0,0,0,0.45);
    margin:0;
}

/* subtitle */
.cover-subtitle {
    margin-top:12px;
    font-size:35px;
    font-family:'HolidayFree', cursive;
    color:white;
}

/* ============================================================
   MAIN TRAVEL CARD
===============================================================*/
.travel-card {
    background:#0d2754;
    border-radius:28px;
    padding:40px;
    display:flex;
    justify-content:space-between;
    gap:50px;
    margin-top:35px;
    box-shadow:0 0 25px rgba(255,255,255,0.12);
}

.travel-left,
.travel-right {
    width:48%;
}

.travel-date {
    font-size:20px;
    font-weight:700;
    margin-bottom:20px;
}

.flight-info-box {
    background:white;
    color:#0d2754;
    border-radius:16px;
    padding:18px;
    margin-bottom:30px;
}

.section-label {
    font-size:20px;
    font-weight:700;
    margin:20px 0 10px;
}

/* inclusions list */
.inclusions-list {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 20px;
}

.inc-row { font-size:15px; }

/* hotels */
.hotel-item {
    display:flex;
    align-items:center;
    margin-bottom:12px;
    font-size:17px;
}

.hotel-icon { font-size:25px; margin-right:10px; }

/* pricing */
.price-grid {
    margin-top:10px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.price-box {
    background:rgba(255,255,255,0.08);
    padding:16px 12px;
    border-radius:12px;
    text-align:center;
    border:1px solid rgba(255,255,255,0.15);
}

.price-label {
    color:#ffdd8b;
    font-size:13px;
}

.price-value {
    font-size:22px;
    font-weight:700;
    color:white;
}

/* imam */
.imam-row {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 10px;
}

.imam-card {
    flex: 1;
    display: flex;
    background: #ffffff15;
    padding: 12px;
    border-radius: 12px;
    align-items: center;
    backdrop-filter: blur(6px);
}

.imam-img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 12px;
    border: 2px solid #fff5;
}

.imam-name {
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}

.imam-desc {
    font-size: 13px;
    color: #ddd;
    margin: 0;
}


/* ============================================================
   MOBILE
===============================================================*/
@media(max-width:768px) {

    .package-cover { height:300px; }
    .cover-logo { height:45px; }
    .cover-title { font-size:32px; }
    .cover-subtitle { font-size:22px; }

    .travel-card {
        flex-direction:column;
        padding:25px;
        gap:25px;
    }

    .travel-left,
    .travel-right {
        width:100%;
    }

    .price-grid {
        grid-template-columns:1fr;
    }

    .inclusions-list {
        grid-template-columns:1fr;
    }
}
input.error, select.error, textarea.error {
    border-bottom: 1px solid #ff4d4d !important;
}
.shake {
    animation: shake 0.25s;
}
.terms-error-message{
    color: #ff4d4d !important;
}
/* ----- IMAM CARDS RESPONSIVE FIX ----- */

@media (max-width: 768px) {
    .imam-row {
        flex-direction: column;
    }

    .imam-card {
        width: 100%;
    }
}

@media (min-width: 769px) {
    .imam-row {
        display: flex;
        gap: 15px;
    }

    .imam-card {
        flex: 1;
    }
}
.pay-option.error {
    border: 1px solid #ff4d4d !important;
    padding: 8px;
    border-radius: 8px;
    display: block;
}
* ===== REVIEW TABLE — MOBILE FIX ===== */
@media (max-width: 768px) {
    .review-table {
        font-size: 12px;
        min-width: 600px;
    }

    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .review-section h5 {
        font-size: 16px;
    }
}
/*loader**/
#globalLoader {
    position: fixed;
    inset: 0;
    z-index: 99999999;
    display: none;
    align-items: center;
    justify-content: center;
}

.gl-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 18, 28, 0.55);
    backdrop-filter: blur(6px);
    opacity: 0;
    animation: gl-fade .3s forwards;
}

.gl-box {
    position: relative;
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px);
    padding: 35px 45px;
    border-radius: 20px;
    text-align: center;
    color: #fff;
    animation: gl-pop .35s ease-out forwards;
    box-shadow: 0 12px 50px rgba(0,0,0,0.45);
}

.gl-icon {
    margin-bottom: 15px;
}

.gl-ring {
    fill: none;
    stroke: rgba(255, 255, 255, 0.25);
    stroke-width: 4;
    stroke-dasharray: 125;
    stroke-dashoffset: 0;
    transform-origin: center;
    animation: gl-ring-spin 2s linear infinite;
}

.gl-ball {
    fill: #fff;
    transform-origin: center;
    animation: gl-ball-spin 2s linear infinite;
}

.gl-text {
    margin: 0;
    margin-top: 10px;
    font-size: 16px;
    opacity: 0.85;
}

/* Animations */
@keyframes gl-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes gl-pop {
    from { transform: scale(.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

@keyframes gl-ring-spin {
    0% { transform: rotate(0deg); stroke-dashoffset: 0; }
    50% { stroke-dashoffset: 50; }
    100% { transform: rotate(360deg); stroke-dashoffset: 0; }
}

@keyframes gl-ball-spin {
    0% { transform: rotate(0deg) translateY(0); }
    50% { transform: rotate(180deg) translateY(3px); }
    100% { transform: rotate(360deg) translateY(0); }
}

