/* ============================================================================
   FTS V2 - Responsive Breakpoints & Mobile Styles
   ============================================================================ */

@media (max-width: 992px) {
    .fts-v2-main-layout { flex-direction: column !important; }
    .fts-v2-sidebar-col { width: 100% !important; }
    .fts-v2-sidebar-wrapper { position: relative !important; top: 0 !important; }
    .fts-v2-sidebar-sticky { position: relative !important; top: 0 !important; }
}

@media (max-width: 768px) {
    /* Hide desktop sidebar -- replaced by mobile sticky bar */
    .fts-v2-sidebar-col { display: none !important; }

    body.single-trip { padding-bottom: 80px !important; }

    /* Header */
    .fts-v2-breadcrumbs { font-size: 11px !important; }
    .fts-v2-trip-title { font-size: 20px !important; }
    .fts-v2-title-row { flex-direction: column !important; gap: 8px !important; }
    .fts-v2-title-actions { align-self: flex-start !important; }
    .fts-v2-action-btn { font-size: 12px !important; }

    .fts-v2-meta-row { gap: 2px !important; font-size: 11px !important; }
    .fts-v2-meta-sep { margin: 0 6px !important; font-size: 12px !important; }
    .fts-v2-meta-item { font-size: 11px !important; gap: 4px !important; }
    .fts-v2-meta-item svg { width: 13px !important; height: 13px !important; }
    .fts-v2-meta-rating strong { font-size: 11px !important; }
    .fts-v2-stars-inline svg { width: 12px !important; height: 12px !important; }

    /* Gallery - single image on mobile */
    .fts-v2-gallery-grid {
        grid-template-columns: 1fr !important;
        grid-template-rows: 220px !important;
        height: auto !important;
    }
    .fts-v2-gallery-cell:not(.fts-v2-gallery-main) { display: none !important; }
    .fts-v2-gallery-main { grid-row: span 1 !important; }
    .fts-v2-gallery-more {
        display: inline-flex !important;
        bottom: 10px !important;
        right: 10px !important;
        font-size: 12px !important;
        padding: 8px 12px !important;
    }

    /* Quick Bar */
    .fts-v2-quick-bar { padding: 16px 0 !important; }
    .fts-v2-quick-bar-inner { flex-direction: column !important; text-align: center !important; gap: 12px !important; }
    .fts-v2-quick-price-cta { flex-direction: column !important; align-items: center !important; }
    .fts-v2-hook-text { font-size: 12px !important; }
    .fts-v2-price-current { font-size: 20px !important; }
    .fts-v2-price-old { font-size: 12px !important; }
    .fts-v2-price-person { font-size: 11px !important; }
    .fts-v2-book-now-btn { padding: 10px 24px !important; font-size: 13px !important; }

    /* Social Proof & Trust */
    .fts-v2-proof-items { gap: 8px !important; }
    .fts-v2-proof-item { font-size: 11px !important; }
    .fts-v2-trust-items { gap: 10px !important; }
    .fts-v2-trust-item { font-size: 11px !important; gap: 4px !important; }
    .fts-v2-trust-item i { font-size: 12px !important; }

    /* Tabs */
    .fts-v2-tab-link { padding: 10px 12px !important; font-size: 12px !important; }

    /* Content */
    .fts-v2-section { margin-bottom: 12px !important; padding: 20px 16px !important; }
    .fts-v2-section-title { font-size: 18px !important; margin-bottom: 16px !important; }
    .fts-v2-subsection-title { font-size: 14px !important; }
    .fts-v2-overview-text { font-size: 13px !important; }
    .fts-v2-highlight-item { font-size: 12px !important; padding: 10px 12px !important; }
    .fts-v2-highlights { padding: 16px !important; }
    .fts-v2-highlights-grid { grid-template-columns: 1fr !important; gap: 8px !important; }
    .fts-v2-hl-icon { font-size: 14px !important; width: 24px !important; }
    .fts-v2-hl-icon i { font-size: 14px !important; }

    /* Itinerary */
    .fts-v2-timeline-num { width: 32px !important; height: 32px !important; font-size: 12px !important; }
    .fts-v2-timeline-item { gap: 14px !important; }
    .fts-v2-timeline-label { font-size: 10px !important; }
    .fts-v2-timeline-title { font-size: 14px !important; }
    .fts-v2-timeline-desc { font-size: 12px !important; }
    .fts-v2-timeline-content { padding-bottom: 18px !important; }
    .fts-v2-timeline-toggle { width: 24px !important; height: 24px !important; font-size: 11px !important; }

    /* Includes */
    .fts-v2-includes-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
    .fts-v2-includes-col h3 { font-size: 14px !important; }
    .fts-v2-includes-col li { font-size: 12px !important; padding: 6px 0 !important; }

    /* Reviews */
    .fts-v2-score-num { font-size: 28px !important; }
    .fts-v2-score-count { font-size: 11px !important; }
    .fts-v2-reviews-list { grid-template-columns: 1fr !important; }
    .fts-v2-review-card { padding: 16px !important; }
    .fts-v2-review-avatar { width: 32px !important; height: 32px !important; font-size: 12px !important; }
    .fts-v2-review-meta strong { font-size: 12px !important; }
    .fts-v2-review-text { font-size: 12px !important; }

    /* FAQ */
    .fts-v2-faq-question { padding: 14px 16px !important; }
    .fts-v2-faq-question span { font-size: 12px !important; }
    .fts-v2-faq-answer { font-size: 12px !important; padding: 0 16px 14px 16px !important; }

    /* Packages */
    .fts-v2-packages-grid { grid-template-columns: 1fr !important; }
    .fts-v2-package-card { padding: 18px !important; }
    .fts-v2-package-name { font-size: 14px !important; }
    .fts-v2-pkg-current { font-size: 20px !important; }
    .fts-v2-package-select-btn { font-size: 12px !important; padding: 10px !important; }

    /* Photos */
    .fts-v2-photo-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }

    /* CTA */
    .fts-v2-cta-banner { flex-direction: column !important; text-align: center !important; padding: 24px !important; }
    .fts-v2-cta-text h3 { font-size: 15px !important; }
    .fts-v2-cta-text p { font-size: 12px !important; }
    .fts-v2-cta-actions { flex-direction: column !important; width: 100% !important; }
    .fts-v2-cta-btn-primary, .fts-v2-cta-btn-secondary { width: 100% !important; text-align: center !important; font-size: 12px !important; padding: 10px 20px !important; }

    /* Related */
    .fts-v2-related-section { padding: 32px 0 !important; }
    .fts-v2-related-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
    .fts-v2-related-card-body h3 { font-size: 13px !important; }
    .fts-v2-related-card-meta { font-size: 11px !important; }
    .fts-v2-related-current { font-size: 13px !important; }
    .fts-v2-related-view-btn { font-size: 11px !important; }

    /* Sidebar */
    .fts-v2-booking-current-price { font-size: 24px !important; }
    .fts-v2-booking-old-price { font-size: 13px !important; }
    .fts-v2-urgency-bar { font-size: 12px !important; }
    .fts-v2-countdown-bar { font-size: 12px !important; }
    .fts-v2-countdown-timer { font-size: 14px !important; }
    .fts-v2-calendar-header { font-size: 13px !important; }
    .fts-v2-travelers-header { font-size: 13px !important; }
    .fts-v2-booking-trust-item { font-size: 11px !important; }
    .fts-v2-check-btn { font-size: 13px !important; padding: 14px 20px !important; }
    .fts-v2-payment-text { font-size: 11px !important; }
    .fts-v2-enquiry-card h4 { font-size: 14px !important; }
    .fts-v2-enquiry-card > p { font-size: 11px !important; }
}

@media (max-width: 480px) {
    .fts-v2-trip-title { font-size: 17px !important; line-height: 1.3 !important; }
    .fts-v2-meta-row { flex-wrap: wrap !important; }
    .fts-v2-meta-sep { display: none !important; }
    .fts-v2-meta-item { padding: 2px 0 !important; font-size: 10px !important; }
    .fts-v2-meta-item::after {
        content: "·" !important;
        margin-left: 8px !important;
        color: var(--v2-text-muted) !important;
    }
    .fts-v2-meta-item:last-child::after { content: none !important; }

    .fts-v2-gallery-grid { grid-template-rows: 180px !important; }

    .fts-v2-section-title { font-size: 16px !important; }
    .fts-v2-overview-text { font-size: 12px !important; }
    .fts-v2-highlight-item { font-size: 11px !important; }
    .fts-v2-timeline-title { font-size: 13px !important; }
    .fts-v2-timeline-desc { font-size: 11px !important; }
    .fts-v2-faq-question span { font-size: 11px !important; }
    .fts-v2-faq-answer { font-size: 11px !important; }
    .fts-v2-review-text { font-size: 11px !important; }
    .fts-v2-price-current { font-size: 18px !important; }
    .fts-v2-booking-current-price { font-size: 22px !important; }
    .fts-v2-trust-item { font-size: 10px !important; }
    .fts-v2-proof-item { font-size: 10px !important; }

    .fts-v2-mob-current { font-size: 18px !important; }
    .fts-v2-mobile-book-bar .fts-v2-mob-btn { padding: 10px 20px !important; font-size: 13px !important; }
}

/* Animations */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes subtlePulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}
.fts-v2-section { animation: fadeInUp 0.5s ease backwards; }
.fts-v2-booking-card { animation: fadeInUp 0.6s ease backwards; }

/* Mobile Sticky Book Now Bar */
@media (max-width: 768px) {
    .fts-v2-mobile-book-bar {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        background: var(--v2-bg, #fff) !important;
        padding: 10px 16px !important;
        box-shadow: 0 -4px 20px rgba(0,0,0,0.12) !important;
        z-index: 99999 !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        border-top: 1px solid var(--v2-border, #e9ecef) !important;
    }
    .fts-v2-mob-left {
        display: flex !important;
        flex-direction: column !important;
        gap: 2px !important;
    }
    .fts-v2-mob-price-row {
        display: flex !important;
        align-items: baseline !important;
        gap: 6px !important;
        flex-wrap: wrap !important;
    }
    .fts-v2-mob-old {
        font-size: 13px !important;
        color: var(--v2-text-muted, #718096) !important;
        text-decoration: line-through !important;
    }
    .fts-v2-mob-current {
        font-family: var(--v2-font-heading, 'Poppins', sans-serif) !important;
        font-weight: 800 !important;
        font-size: 20px !important;
        color: var(--v2-dark, #1a2332) !important;
    }
    .fts-v2-mob-per {
        font-size: 12px !important;
        color: var(--v2-text-light, #4a5568) !important;
        font-weight: 400 !important;
    }
    .fts-v2-mob-cancel {
        display: flex !important;
        align-items: center !important;
        gap: 4px !important;
        font-size: 11px !important;
        color: #38a169 !important;
        font-weight: 500 !important;
    }
    .fts-v2-mob-cancel svg {
        flex-shrink: 0 !important;
    }
    .fts-v2-mobile-book-bar .fts-v2-mob-btn {
        background: #e8501e !important;
        color: #fff !important;
        padding: 12px 24px !important;
        border-radius: 8px !important;
        font-weight: 700 !important;
        text-decoration: none !important;
        font-size: 14px !important;
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }
}

/* Print-friendly */
@media print {
    .fts-v2-tabs-nav, .fts-v2-social-proof, .fts-v2-sidebar-col,
    .fts-v2-mobile-book-bar, .fts-v2-lightbox, .fts-v2-video-modal { display: none !important; }
}
