/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./public/assets/css/offer.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************/
.offer-detail li,
.tnc-page li {
    margin: 0 2rem;
    list-style: disc;
}

@media (max-width: 768px) {

    .offer-detail li,
    .tnc-page li {
        margin: 0 1rem;
    }
}

.offer-filter-box {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background-color: white;
    z-index: 2;
    overflow-x: auto;
    width: 100vw;
    padding: 0 1rem;
}

.offer-tabs-container {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
}

.offer-tab-button {
    white-space: nowrap;
    font-weight: bold;
    color: #fff;
    background-color: #b5b5b5;
    border-radius: 30rem;
    padding: 6px 13px;
    min-width: 100px;
    margin-right: 8px;
    cursor: pointer;
    border: none;
    outline: none;
}

.offer-tab-button.active {
    background-color: #fbb03b;
    color: #fff;
}

.offer-table {
    min-width: 80rem;
    width: 80rem;
}

.offer-error .error-section {
    height: auto !important;
}

.offer-content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-evenly;
}


/* ─────────────────────────────────────────
   Offers Section  (Booking sidebar widget)
───────────────────────────────────────── */

/* ── Wrapper ── */
.offers-section {
    margin: 20px 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 14px 14px 10px;
}

/* ── Header row ── */
.offers-section-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.offers-section-title {
    font-size: 15px;
    font-weight: 700;
    color: #111827;
}

.offers-view-all {
    font-size: 12px;
    color: #2563eb;
    font-weight: 500;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}

.offers-view-all:hover {
    text-decoration: underline;
}

/* ── List ── */
.offers-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ── Card ── */
.offer-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    transition: border-color 0.2s ease, background 0.2s ease;
    cursor: pointer;
}

.offer-card:hover {
    border-color: #a5b4fc;
}

.offer-card.applied {
    background-color: #f0fdf4;
    border-color: #86efac;
}

/* ── Image box ── */
.offer-card-img-box {
    width: 52px;
    height: 52px;
    border-radius: 8px;
    background-color: #f3f4f6;
    flex-shrink: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.offer-card-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── Info block ── */
.offer-card-info {
    flex: 1 1;
    min-width: 0;
    /* allows text truncation inside flex child */
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Row 1: name + badge — must stay on ONE line */
.offer-card-row1 {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    /* never wrap */
    overflow: hidden;
}

.offer-card-name {
    font-size: 13px;
    font-weight: 700;
    color: #111827;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 1;
    /* shrinks before badge disappears */
}

/* ── Badge ── */
.offer-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
    color: #fff;
    flex-shrink: 0;
    /* never shrink — always fully visible */
}

.offer-badge.best-value {
    background-color: #1a56db;
}

.offer-badge.limited {
    background-color: #d97706;
}

.offer-badge.bank {
    background-color: #6d28d9;
}

.offer-badge.new-user {
    background-color: #059669;
}

/* ── Description ── */
.offer-card-desc {
    font-size: 11px;
    color: #6b7280;
    line-height: 1.4;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Code row ── */
.offer-card-code-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.offer-card-code {
    font-size: 11px;
    color: #6b7280;
    white-space: nowrap;
}

.offer-card-code strong {
    font-weight: 600;
    color: #111827;
    letter-spacing: 0.05em;
}

/* ── Copy button ── */
.offer-copy-btn {
    background: none;
    border: 1px dashed #d1d5db;
    border-radius: 4px;
    padding: 1px 7px;
    font-size: 10px;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    letter-spacing: 0.03em;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
    white-space: nowrap;
    flex-shrink: 0;
}

.offer-copy-btn:hover {
    border-color: #2563eb;
    color: #2563eb;
    background: #eff6ff;
}

/* ── Apply button ── */
.offer-apply-btn {
    background-color: var(--flight-theme-color);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0px 14px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
    letter-spacing: 0.03em;
    white-space: nowrap;
    transition: opacity 0.15s;
    align-self: center;
}

.offer-apply-btn:hover {
    opacity: 0.85;
}

.offer-apply-btn.applied {
    background-color: var(--flight-theme-color);
    opacity: 0.9;
}

/* ── Show more button ── */
.offers-show-more {
    background: none;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    padding: 9px;
    font-size: 13px;
    color: #6b7280;
    cursor: pointer;
    width: 100%;
    text-align: center;
    transition: border-color 0.15s, color 0.15s;
}

.offers-show-more:hover {
    border-color: #9ca3af;
    color: #374151;
}

/* ── Skeleton ── */
.offer-skeleton-item {
    height: 72px;
    border-radius: 10px;
    background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
    background-size: 200% 100%;
    animation: offerShimmer 1.4s infinite;
}

@keyframes offerShimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* ── Empty / Error ── */
.offers-empty,
.offers-error {
    font-size: 13px;
    text-align: center;
    padding: 24px 0;
    margin: 0;
}

.offers-empty {
    color: #9ca3af;
}

.offers-error {
    color: #ef4444;
}

/* ── Coupon input row ── */
.offer-coupon-row {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.offer-coupon-input {
    flex: 1 1;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: #111827;
    outline: none;
    transition: border-color 0.15s;
}

.offer-coupon-input:focus {
    border-color: #2563eb;
    border-style: solid;
}

.offer-coupon-input::placeholder {
    color: #9ca3af;
    font-weight: 400;
    letter-spacing: 0;
}

.offer-coupon-apply-btn {
    background-color: #16a34a;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 7px 16px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s;
}

.offer-coupon-apply-btn:hover {
    opacity: 0.85;
}

.offer-coupon-apply-btn.applied {
    background-color: #15803d;
}

.offer-validation-error {
    font-size: 12px;
    color: #dc2626;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    padding: 8px 12px;
    margin: 4px 0 8px;
}

/* ─── Coupon Success Modal ─── */
.coupon-modal-paper {
    border-radius: 20px !important;
    overflow: visible !important;
    margin: 10px;
}

.coupon-modal-content {
    position: relative;
    padding: 2rem 1.75rem !important;
}

@media (max-width: 480px) {
    .coupon-modal-content {
        padding: 1.25rem 1rem !important;
    }
}

/* Title */
.coupon-modal-title {
    font-size: 1.3rem;
    color: #1a1a2e;
}
.coupon-modal-subtitle {
    font-size: 0.88rem;
}

/* Detail box */
.coupon-modal-detail-box {
    background: #f0faf1;
    border: 1.5px solid #c8e6c9;
}
.coupon-modal-code {
    font-size: 1rem;
    color: #1a1a2e;
    letter-spacing: 0.5px;
}
.coupon-modal-badge {
    background: #e8f5e9;
    color: #2e7d32;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
}
.coupon-modal-saved-amount {
    color: #2e7d32;
    font-size: 0.95rem;
}

/* CTA button */
.coupon-modal-continue-btn {
    color: #fff;
    border-radius: 10px;
    font-weight: 600;
    font-size: 1rem;
    border: none;
    transition: background 0.2s;
}
.coupon-modal-continue-btn:hover {
    background: #539a38;
    color: #fff;
}

/* Fare link */
.coupon-modal-fare-link {
    color: var(--primary-color);
    font-size: 0.88rem;
    text-decoration: underline;
}
