/**
 * Ajinsafro Tour Bridge - Main CSS
 * MakeMyTrip-inspired design for single tour pages
 * @version 1.0.0
 */

@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,300;0,400;0,600;0,700;1,400&display=swap");

/* ===================================
   CSS Variables
   =================================== */
:root {
    --ajtb-font:
        "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
        sans-serif;
    --ajtb-primary: #0284c7;
    --ajtb-primary-dark: #0369a1;
    --ajtb-primary-light: #e0f2fe;
    --ajtb-primary-hover: #0ea5e9;
    --ajtb-secondary: #ec5b24;
    --ajtb-success: #00a651;
    --ajtb-success-light: #e6f7ed;
    --ajtb-danger: #eb2026;
    --ajtb-danger-light: #fdeaea;
    --ajtb-warning: #f5a623;
    --ajtb-text: #1a1a1a;
    --ajtb-text-light: #4a4a4a;
    --ajtb-text-muted: #64748b;
    --ajtb-bg: #ffffff;
    --ajtb-bg-light: #f8fafc;
    --ajtb-bg-gray: #f1f5f9;
    --ajtb-border: #e2e8f0;
    --ajtb-border-light: #f1f5f9;
    --ajtb-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    --ajtb-shadow-lg: 0 4px 14px rgba(0, 0, 0, 0.08);
    --ajtb-radius: 8px;
    --ajtb-radius-lg: 12px;
    --ajtb-transition: all 0.2s ease;
}

/* ===================================
   Reset & Base
   =================================== */
.ajtb-tour-page {
    font-family: var(--ajtb-font);
    color: var(--ajtb-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow: visible;
    --header-h: 100px;
    --aj-sticky-bar-height: 52px;
    --aj-global-bar-height: 60px;
    --aj-day-details-bar-height: 52px;
    /* Source of truth : hauteur totale du bloc sticky (header + barre globale + barre day details) */
    --sticky-stack-h: calc(
        var(--header-h, 100px) + var(--aj-global-bar-height, 60px) +
            var(--aj-day-details-bar-height, 52px)
    );
    /* Alias pour clarté : top offset pour la sidebar et le contenu */
    --stickyTop: var(--sticky-stack-h);
}

.ajtb-tour-page *,
.ajtb-tour-page *::before,
.ajtb-tour-page *::after {
    box-sizing: border-box;
}

/* Barre sticky titre du tour : 1er sticky au scroll, puis remplacée par la barre onglets */
.ajtb-sticky-tour-title-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1210;
    background: #ffffff !important;
    background-color: #ffffff !important;
    padding: 12px 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transform: translateY(-100%);
    transition: transform 0.25s ease;
    pointer-events: none;
}

.ajtb-sticky-tour-title-bar.is-visible {
    transform: translateY(0);
    pointer-events: auto;
}

.ajtb-sticky-tour-title-bar.is-hidden {
    transform: translateY(-100%);
    pointer-events: none;
}

.ajtb-sticky-tour-title-bar .aj-wide-container {
    margin: 0 auto;
}

.ajtb-sticky-tour-title-bar__title {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #1a1a1a !important;
    border: none !important;
    background: transparent !important;
}

/* ----- Bloc sticky unique : titre + barre des onglets (un seul wrapper, zéro gap, style MakeMyTrip) ----- */

/* ===================================
   CONTAINER SYSTEM - Professional Layout with Margins
   Centré avec max-width et marges horizontales cohérentes
   Responsive: Desktop → Tablet → Mobile
   =================================== */

/* Container de base (fallback pour usage général) */
.ajtb-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 
 * Container principal pour les pages tour (MakeMyTrip-style)
 * Utilisé dans .ajtb-tour-page et sections hero
 * Centré, avec max-width et padding horizontal pour respiration
 */
.aj-wide-container {
    width: 100%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(12px, 2vw, 32px);
    padding-right: clamp(12px, 2vw, 32px);
}

/* ===================================
   Layout Variables
   =================================== */
.ajtb-tour-page {
    --ajtb-sidebar-width: 320px;
    --ajtb-layout-gap: 28px;
}

/* 
 * Container dans le contexte de la page tour
 * Override du container de base avec des valeurs optimisées
 */
.ajtb-tour-page .aj-wide-container {
    max-width: 1440px;
    padding-left: clamp(12px, 2vw, 32px);
    padding-right: clamp(12px, 2vw, 32px);
}

/* ===================================
   RESPONSIVE BREAKPOINTS
   =================================== */

/* Desktop Extra Large (≥1400px) : Confortable pour grands écrans */
@media (min-width: 1400px) {
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        max-width: 1440px;
        padding-left: clamp(16px, 2vw, 40px);
        padding-right: clamp(16px, 2vw, 40px);
    }

    .ajtb-global-summary-bar {
        max-width: 1440px;
        padding-left: clamp(16px, 2vw, 40px);
        padding-right: clamp(16px, 2vw, 40px);
    }

    .ajtb-day-details-bar {
        padding-left: clamp(16px, 2vw, 40px);
        padding-right: clamp(16px, 2vw, 40px);
    }
}

/* Desktop Large (1200-1399px) : Format standard confortable */
@media (min-width: 1200px) and (max-width: 1399px) {
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        max-width: 1320px;
        padding-left: clamp(16px, 2vw, 32px);
        padding-right: clamp(16px, 2vw, 32px);
    }

    .ajtb-global-summary-bar {
        max-width: 1320px;
        padding-left: clamp(16px, 2vw, 32px);
        padding-right: clamp(16px, 2vw, 32px);
    }

    .ajtb-day-details-bar {
        padding-left: clamp(16px, 2vw, 32px);
        padding-right: clamp(16px, 2vw, 32px);
    }
}

/* Desktop Small / Tablet Large (992-1199px) : Transition desktop → tablet */
@media (min-width: 992px) and (max-width: 1199px) {
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        max-width: 100%;
        padding-left: 24px;
        padding-right: 24px;
    }

    .ajtb-global-summary-bar {
        max-width: 100%;
        padding-left: 24px;
        padding-right: 24px;
    }

    .ajtb-day-details-bar {
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* Tablet (768-991px) : Une colonne ou layout simplifié */
@media (min-width: 768px) and (max-width: 991px) {
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        max-width: 100%;
        padding-left: 20px;
        padding-right: 20px;
    }

    .ajtb-global-summary-bar {
        max-width: 100%;
        padding-left: 20px;
        padding-right: 20px;
    }

    .ajtb-day-details-bar {
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* Mobile (<768px) : Layout compact */
@media (max-width: 767px) {
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        max-width: 100%;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ajtb-global-summary-bar {
        max-width: 100%;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ajtb-day-details-bar {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ===================================
   UTILITY CLASSES
   =================================== */

/* 
 * Classe utilitaire pour sections full-width
 * À utiliser pour les sections qui doivent sortir du container
 * Exemple: barre de recherche sticky, hero background, etc.
 */
.ajtb-fullwidth {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    max-width: none !important;
}

/* 
 * Wrapper pour contenu centré à l'intérieur d'un élément fullwidth
 * Utiliser: <div class="ajtb-fullwidth"><div class="ajtb-fullwidth-content">...</div></div>
 */
.ajtb-fullwidth .ajtb-fullwidth-content {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* Responsive pour fullwidth-content */
@media (min-width: 1400px) {
    .ajtb-fullwidth .ajtb-fullwidth-content {
        padding-left: 32px;
        padding-right: 32px;
    }
}

@media (max-width: 991px) {
    .ajtb-fullwidth .ajtb-fullwidth-content {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 767px) {
    .ajtb-fullwidth .ajtb-fullwidth-content {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* Grille contenu | sidebar : gap min 24px, sidebar ne colle pas au bord (padding-right du container) */
.ajtb-tour-page .ajtb-tour-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--ajtb-sidebar-width);
    gap: var(--ajtb-layout-gap);
    align-items: start;
    padding: 28px 0;
}

.ajtb-tour-page .ajtb-tour-main {
    min-width: 0;
    width: 100%;
    overflow: visible;
}

.ajtb-tour-page .ajtb-tour-sidebar {
    min-width: 0;
    width: var(--ajtb-sidebar-width);
    position: sticky;
    top: 90px;
    align-self: start;
}

/* Programme du Circuit : bloc titre+barre sticky + Plan de séjour sticky (top calculé en JS) */
.ajtb-tour-page #itinerary.ajtb-section {
    max-width: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    overflow: visible;
    --aj-sticky-wrap-height: 120px;
    --ajtb-sticky-group-height: 60px; /* hauteur barre onglets, recalculé en JS pour coller les blocs */
}

/* S'assurer que le wrapper sticky (titre + barre) reste sticky dans #itinerary */
.ajtb-tour-page #itinerary.ajtb-section .ajtb-itinerary-sticky-wrap {
    position: -webkit-sticky;
    position: sticky !important;
}

.ajtb-tour-page .ajtb-day-plan.programme-container,
.ajtb-tour-page .ajtb-programme-mmt.programme-container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* ===================================
   Hero Section
   =================================== */
.ajtb-hero {
    position: relative;
    min-height: 420px;
    background-size: cover;
    background-position: center;
    background-color: var(--ajtb-bg-gray);
    display: flex;
    align-items: flex-end;
}

.ajtb-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.75) 0%,
        rgba(0, 0, 0, 0.3) 50%,
        rgba(0, 0, 0, 0.1) 100%
    );
}

.ajtb-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 40px 0 50px;
}

/* Breadcrumbs */
.ajtb-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 20px;
}

.ajtb-breadcrumbs a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    transition: var(--ajtb-transition);
}

.ajtb-breadcrumbs a:hover {
    color: #fff;
}

.ajtb-breadcrumbs .sep {
    color: rgba(255, 255, 255, 0.5);
}

.ajtb-breadcrumbs .current {
    color: #fff;
    font-weight: 500;
}

/* Hero Title */
.ajtb-hero-title-wrap {
    margin-bottom: 20px;
}

.ajtb-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 12px;
    margin-right: 8px;
}

.ajtb-badge.featured {
    background: var(--ajtb-warning);
    color: #fff;
}

.ajtb-badge.discount {
    background: var(--ajtb-danger);
    color: #fff;
}

.ajtb-hero-title {
    font-size: 32px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 12px 0;
    line-height: 1.3;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.ajtb-hero-location {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 15px;
}

.ajtb-hero-location svg {
    flex-shrink: 0;
}

/* Hero Stats */
.ajtb-hero-stats {
    display: flex;
    gap: 30px;
}

.ajtb-hero-stats .stat-item {
    text-align: center;
}

.ajtb-hero-stats .stat-value {
    display: block;
    font-size: 24px;
    font-weight: 700;
    color: #fff;
}

.ajtb-hero-stats .stat-label {
    display: block;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Hero Gallery Preview */
.ajtb-hero-gallery-preview {
    position: absolute;
    bottom: 20px;
    right: 20px;
    z-index: 3;
    display: flex;
    gap: 8px;
}

.preview-thumb {
    position: relative;
    width: 60px;
    height: 60px;
    border-radius: 6px;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.8);
    transition: var(--ajtb-transition);
}

.preview-thumb:hover {
    transform: scale(1.05);
    border-color: #fff;
}

.preview-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.preview-thumb .more-count {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
}

/* Hero Scroll */
.ajtb-hero-scroll {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    opacity: 0.7;
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(-8px);
    }
}

/* ===================================
   Hero Gallery (MakeMyTrip style) – title/meta above, same container
   =================================== */
/* Hero: same left/right spacing as page (do not override .aj-wide-container padding) */
.ajtb-hero.ajtb-hero-gallery {
    min-height: 0;
    background: transparent;
    display: block;
    width: 100%;
}

.ajtb-hero.ajtb-hero-gallery .aj-wide-container {
    /* Keep same max-width and padding as .ajtb-tour-page .aj-wide-container – no override */
    padding-top: 20px;
    padding-bottom: 28px;
    background: #ffffff !important;
    border-radius: 12px;
    margin-left: auto;
    margin-right: auto;
}

/* 1) Top block ABOVE images */
.ajtb-hero-top {
    margin-bottom: 20px;
}

.ajtb-hero-breadcrumb {
    font-size: 13px;
    color: var(--ajtb-text-muted, #757575);
    margin-bottom: 8px;
}

.ajtb-hero-breadcrumb a {
    color: var(--ajtb-text-muted, #757575);
    text-decoration: none;
}

.ajtb-hero-breadcrumb a:hover {
    color: var(--ajtb-primary, #008cff);
}

.ajtb-hero-breadcrumb-sep {
    margin: 0 6px;
    opacity: 0.7;
}

.ajtb-hero-breadcrumb-current {
    color: var(--ajtb-text, #1a1a1a);
    font-weight: 500;
}

.ajtb-hero-title {
    font-size: 26px;
    font-weight: 700;
    color: var(--ajtb-text, #1a1a1a);
    margin: 0 0 8px 0;
    line-height: 1.3;
}

.ajtb-hero-meta {
    font-size: 14px;
    color: var(--ajtb-text-muted, #757575);
}

.ajtb-hero-meta-item {
    font-weight: 500;
    color: var(--ajtb-text-light, #4a4a4a);
}

.ajtb-hero-meta-sep {
    margin: 0 8px;
    opacity: 0.6;
}

/* 2) Gallery wrap – style type MakeMyTrip: coins arrondis, espacement, overlays */
.ajtb-hero-gallery-wrap {
    width: 100%;
}

.ajtb-hero-gallery-wrap .ajtb-hero-gallery-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) !important;
    grid-template-rows: 1fr 1fr !important;
    gap: 10px !important;
    height: 400px;
    min-height: 400px;
    max-height: 50vh;
    aspect-ratio: 16 / 9;
    overflow: visible !important;
    border-radius: 0 !important;
    width: 100%;
    align-items: stretch;
    justify-items: stretch;
}

.ajtb-hero-gallery-wrap .ajtb-hero-gallery-main {
    grid-row: 1 / -1;
    grid-column: 1;
    border-radius: 10px !important;
    overflow: hidden;
    position: relative;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    align-self: stretch;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06) !important;
}

.ajtb-hero-gallery-main .ajtb-hero-gallery-item {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    line-height: 0;
    font-size: 0;
}

.ajtb-hero-gallery-main .ajtb-hero-gallery-item img {
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    transition: transform 0.35s ease;
    display: block;
    vertical-align: top;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    image-rendering: high-quality;
}

.ajtb-hero-gallery-main .ajtb-hero-gallery-item:hover img {
    transform: scale(1.05);
}

.ajtb-hero-gallery-wrap .ajtb-hero-gallery-secondary {
    grid-column: 2;
    grid-row: 1 / -1;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 1fr 1fr !important;
    gap: 10px !important;
    border-radius: 0 !important;
    overflow: visible !important;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    height: 100%;
    align-self: stretch;
    align-items: stretch;
    justify-items: stretch;
}

.ajtb-hero-gallery-wrap .ajtb-hero-gallery-secondary .ajtb-hero-gallery-item {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    position: relative;
    overflow: hidden;
    line-height: 0;
    font-size: 0;
    border-radius: 10px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06) !important;
}

.ajtb-hero-gallery-secondary .ajtb-hero-gallery-item img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    transition: transform 0.35s ease;
    display: block;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    image-rendering: high-quality;
}

.ajtb-hero-gallery-secondary .ajtb-hero-gallery-item:hover img {
    transform: scale(1.06);
}

/* Placeholder cell – coins arrondis, pas de bordure */
.ajtb-hero-gallery-wrap .ajtb-hero-gallery-secondary .ajtb-hero-gallery-fill {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    background: var(--ajtb-bg-gray, #e9ecef);
    align-self: stretch;
    justify-self: stretch;
    border-radius: 10px;
}

.ajtb-hero-gallery-item {
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

.ajtb-hero-gallery-wrap .ajtb-hero-gallery-more {
    background: linear-gradient(
        135deg,
        var(--ajtb-primary) 0%,
        var(--ajtb-primary-dark) 100%
    );
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    transition: opacity 0.2s ease;
    min-height: 0;
    width: 100%;
    height: 100%;
    border-radius: 10px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06) !important;
}

.ajtb-hero-gallery-more:hover {
    opacity: 0.95;
    color: #fff;
}

.ajtb-hero-gallery-more-count {
    font-size: 28px;
    line-height: 1;
}

.ajtb-hero-gallery-more-label {
    font-size: 13px;
    text-align: center;
    padding: 0 12px;
}

/* Bouton type "VIEW GALLERY" : fond sombre semi-transparent, coins arrondis, bas gauche */
.ajtb-hero-gallery-all-btn {
    position: absolute;
    bottom: 16px;
    left: 16px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: rgba(0, 0, 0, 0.65);
    color: #fff;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition:
        background 0.2s ease,
        color 0.2s ease;
    border: none;
    box-shadow: none;
}

.ajtb-hero-gallery-all-btn:hover {
    background: rgba(0, 0, 0, 0.85);
    color: #fff;
}

.ajtb-hero-gallery-all-btn::after {
    content: "→";
    margin-left: 4px;
    font-weight: 600;
}

.ajtb-hero-gallery-placeholder {
    height: 260px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: linear-gradient(145deg, #e9ecef 0%, #dee2e6 100%);
    color: var(--ajtb-text-muted, #757575);
    font-size: 15px;
    border-radius: 10px;
    box-shadow: none;
}

.ajtb-hero-gallery-placeholder-icon {
    opacity: 0.5;
}

/* Tablet: 1 main + 2 secondary (hidden on desktop/mobile) */
.ajtb-hero-gallery-tablet {
    display: none;
}

/* Tablet layout: 1 main + 2 secondary (2 rows), même style coins arrondis + gap */
.ajtb-hero-gallery-secondary--tablet {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 10px;
    border-radius: 0;
    overflow: visible;
    min-height: 0;
    align-items: stretch;
}

.ajtb-hero-gallery-secondary--tablet .ajtb-hero-gallery-item {
    min-height: 0;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.ajtb-hero-gallery-secondary--tablet .ajtb-hero-gallery-item img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    image-rendering: high-quality;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Mobile: hide grid and tablet, show slider */
.ajtb-hero-gallery-slider {
    display: none;
}

.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-prev,
.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    padding: 0;
    transition: background 0.2s ease;
}

.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-prev {
    left: 12px;
}

.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-next {
    right: 12px;
}

.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-prev::before,
.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-next::before {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    border-left: 2px solid #333;
    border-bottom: 2px solid #333;
    top: 50%;
    margin-top: -5px;
}

.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-prev::before {
    left: 16px;
    transform: rotate(-45deg);
}

.ajtb-hero-gallery-slider .ajtb-hero-gallery-slider-next::before {
    right: 16px;
    left: auto;
    border-left: none;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transform: rotate(45deg);
}

.ajtb-hero-gallery-slider-dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    gap: 8px;
}

.ajtb-hero-gallery-slider-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s ease;
}

.ajtb-hero-gallery-slider-dot.is-active {
    background: #fff;
    transform: scale(1.2);
}

/* Tablet: show 1+2 layout, même style coins arrondis + gap */
@media (min-width: 768px) and (max-width: 991px) {
    .ajtb-hero-gallery-grid {
        display: none;
    }

    .ajtb-hero-gallery-tablet {
        display: grid;
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
        grid-template-rows: 1fr;
        gap: 10px;
        height: 340px;
        min-height: 340px;
        max-height: 45vh;
        aspect-ratio: 16 / 9;
        overflow: visible;
        border-radius: 0;
        width: 100%;
    }

    .ajtb-hero-gallery-tablet .ajtb-hero-gallery-main {
        grid-column: 1;
        border-radius: 10px;
        min-width: 0;
        overflow: hidden;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    }

    .ajtb-hero-gallery-tablet .ajtb-hero-gallery-secondary--tablet {
        grid-column: 2;
        border-radius: 0;
        min-width: 0;
        height: 100%;
        overflow: visible;
    }
}

@media (max-width: 767px) {
    .ajtb-hero-gallery-grid,
    .ajtb-hero-gallery-tablet {
        display: none !important;
    }

    /* Keep same left/right padding as rest of page on mobile */
    .ajtb-hero.ajtb-hero-gallery .aj-wide-container {
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Mobile: max-width 100%, padding réduit */
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        max-width: 100%;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ajtb-hero-gallery-slider {
        display: block;
        position: relative;
        height: 280px;
        min-height: 280px;
        aspect-ratio: 16 / 9;
        overflow: hidden;
        border-radius: 12px;
        width: 100%;
    }

    .ajtb-hero-gallery-slider-track {
        display: flex;
        height: 100%;
        transition: transform 0.35s ease-out;
    }

    .ajtb-hero-gallery-slider-slide,
    .ajtb-hero-gallery-slider .ajtb-hero-gallery-slide {
        flex: 0 0 100%;
        width: 100%;
        height: 100%;
    }

    .ajtb-hero-gallery-slider-slide a,
    .ajtb-hero-gallery-slider .ajtb-hero-gallery-slide a {
        display: block;
        width: 100%;
        height: 100%;
    }

    .ajtb-hero-gallery-slider-slide img,
    .ajtb-hero-gallery-slider .ajtb-hero-gallery-slide img {
        width: 100%;
        height: 100%;
        min-width: 100%;
        min-height: 100%;
        max-width: none;
        max-height: none;
        object-fit: cover;
        object-position: center;
        image-rendering: -webkit-optimize-contrast;
        image-rendering: crisp-edges;
        image-rendering: high-quality;
    }

    .ajtb-hero-gallery-slider {
        position: relative;
    }

    .ajtb-hero-gallery-slider .ajtb-hero-gallery-all-btn {
        position: absolute;
        bottom: 12px;
        left: 16px;
        padding: 8px 14px;
        font-size: 13px;
    }
}

/* ===================================
   Layout
   =================================== */
.ajtb-tour-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 28px;
    align-items: start;
    padding: 28px 0;
}

.ajtb-tour-main {
    min-width: 0;
    width: 100%;
    overflow: visible;
}

.ajtb-tour-sidebar {
    min-width: 0;
    width: 380px;
}

/* ===================================
   Top Search Bar - style Paris Group Tour (barre #0f2146, bouton #1a73e8)
   Forcé avec !important pour passer devant le thème
   =================================== */
.ajtb-tour-page .ajtb-top-search-bar {
    width: 100% !important;
    background: #0f2146 !important;
    padding: 16px 0 !important;
    box-shadow: none !important;
    font-family: var(--ajtb-font) !important;
}

.ajtb-top-search-bar__inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch;
    gap: 0;
    flex-wrap: nowrap;
}

/* Ligne des 3 options + bouton SEARCH (sous le modal Vols) */
.ajtb-top-search-bar__row {
    display: flex !important;
    align-items: stretch;
    gap: 0;
    flex-wrap: wrap;
}

/* Modal "Vols depuis" au-dessus des 3 options */
.ajtb-tour-page .ajtb-top-search-bar .aj-flight-details {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    order: -1;
}

.ajtb-top-search-bar__inner .aj-searchbar {
    flex: 1 !important;
    min-width: 280px;
    margin-bottom: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.ajtb-top-search-bar__inner .aj-searchbar__row {
    gap: 0 !important;
}

/* Blocs : fond légèrement plus clair, pas de fond blanc */
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-searchitem {
    background: rgba(255, 255, 255, 0.05) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border-left: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding: 14px 20px !important;
    min-height: 56px;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-searchitem:first-child {
    border-left: none !important;
}

/* Labels : bleu clair, uppercase */
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-label {
    color: #7eb8f7 !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    margin-bottom: 4px !important;
}

/* Valeurs : blanc (override thème) */
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-value,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-select,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-date-value,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-guest-summary {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: none !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-select {
    background: transparent !important;
    color: #fff !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-select option {
    background: #0f2146 !important;
    color: #fff !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-icon,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-date-chevron,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-guest-chevron {
    color: #7eb8f7 !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-guest-trigger {
    color: #fff !important;
    background: transparent !important;
    border: none !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-value--disabled,
.ajtb-tour-page
    .ajtb-top-search-bar__inner
    .aj-search-date-value[data-placeholder] {
    color: rgba(255, 255, 255, 0.75) !important;
}

/* Bouton SEARCH : bleu vif, pas blanc */
.ajtb-tour-page .ajtb-top-search-bar__btn {
    align-self: center;
    padding: 14px 36px !important;
    margin-left: 12px;
    background: #1a73e8 !important;
    background: linear-gradient(
        180deg,
        #2b85f0 0%,
        #1a73e8 50%,
        #1557b0 100%
    ) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    cursor: pointer;
    box-shadow:
        0 2px 6px rgba(26, 115, 232, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
    transition:
        background 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.15s ease;
}

.ajtb-tour-page .ajtb-top-search-bar__btn:hover {
    background: linear-gradient(
        180deg,
        #3d94f2 0%,
        #2b85f0 50%,
        #1a73e8 100%
    ) !important;
    box-shadow:
        0 4px 12px rgba(26, 115, 232, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
    color: #fff !important;
}

.ajtb-tour-page .ajtb-top-search-bar__btn:active {
    transform: translateY(1px);
    box-shadow:
        0 1px 4px rgba(26, 115, 232, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

@media (max-width: 767px) {
    .ajtb-top-search-bar__inner {
        flex-direction: column;
        gap: 12px;
    }
    .ajtb-top-search-bar__inner .aj-searchbar {
        min-width: 100%;
    }
    .ajtb-top-search-bar__inner .aj-searchitem {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .ajtb-top-search-bar__inner .aj-searchitem:first-child {
        border-top: none;
    }
    .ajtb-top-search-bar__btn {
        width: 100%;
        margin-left: 0;
    }
}

/* ===================================
   Search Bar - 3 cartes horizontales sur fond bleu (design maquette)
   =================================== */
.aj-searchbar {
    background: linear-gradient(135deg, #0d47a1 0%, #1565c0 100%);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 24px;
    box-shadow: 0 4px 20px rgba(13, 71, 161, 0.25);
}

.aj-searchbar__row {
    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 12px;
}

.aj-searchitem {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 16px;
    background: var(--ajtb-bg);
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.aj-search-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ajtb-primary);
    font-weight: 600;
}

.aj-search-value-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 2.2em;
}

.aj-search-icon {
    flex-shrink: 0;
    color: var(--ajtb-primary);
}

.aj-search-value,
.aj-search-select {
    font-size: 15px;
    font-weight: 600;
    color: var(--ajtb-text);
}

.aj-search-select {
    flex: 1;
    min-width: 0;
    padding: 8px 28px 8px 0;
    background: transparent;
    border: none;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23008cff' stroke-width='2'%3E%3Cpolyline points='6,9 12,15 18,9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0 center;
}

.aj-search-select:focus {
    outline: none;
}

.aj-search-date-wrap {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 2.2em;
}

.aj-search-date-input {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.aj-search-value {
    pointer-events: none;
}

.aj-searchitem--guests {
    position: relative;
}

.aj-guest-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--ajtb-text);
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: var(--ajtb-transition);
}

.aj-guest-trigger:hover {
    color: var(--ajtb-primary);
}

.aj-guest-trigger[aria-expanded="true"] {
    color: var(--ajtb-primary);
}

.aj-guest-summary {
    flex: 1;
    min-width: 0;
}

.aj-guest-chevron {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.aj-guest-trigger[aria-expanded="true"] .aj-guest-chevron {
    transform: rotate(180deg);
}

/* Guests panel */
.aj-guests-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 8px;
    padding: 16px;
    background: var(--ajtb-bg);
    border: 1px solid var(--ajtb-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 100;
}

.aj-guests-panel[hidden] {
    display: none !important;
}

.aj-guests-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.aj-guests-row:last-of-type {
    margin-bottom: 16px;
}

.aj-guests-label {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.aj-guests-label span {
    font-size: 14px;
    font-weight: 600;
    color: var(--ajtb-text);
}

.aj-guests-label small {
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.aj-counter {
    display: flex;
    align-items: center;
    gap: 4px;
    background: var(--ajtb-bg-light);
    border: 1px solid var(--ajtb-border);
    border-radius: 6px;
    padding: 2px;
}

.aj-counter-btn {
    width: 32px;
    height: 32px;
    border: none;
    background: var(--ajtb-bg);
    color: var(--ajtb-primary);
    border-radius: 4px;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--ajtb-transition);
}

.aj-counter-btn:hover {
    background: var(--ajtb-primary-light);
}

.aj-counter-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.aj-counter-num {
    font-size: 15px;
    font-weight: 700;
    color: var(--ajtb-text);
    min-width: 28px;
    text-align: center;
}

.aj-guests-apply {
    display: block;
    width: 100%;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    background: var(--ajtb-primary);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.aj-guests-apply:hover {
    background: var(--ajtb-primary-hover, var(--ajtb-primary));
    opacity: 0.95;
}

/* Responsive: 3 cartes en colonne sous 992px */
@media (max-width: 992px) {
    .aj-searchbar__row {
        flex-direction: column;
        gap: 10px;
    }

    .aj-searchitem {
        padding: 14px 16px;
    }

    .aj-guests-panel {
        left: 0;
        right: 0;
    }
}

/* ===================================
   Quick Info Bar
   =================================== */
.ajtb-quick-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    padding: 16px 20px;
    background: var(--ajtb-bg);
    border-radius: var(--ajtb-radius);
    box-shadow: var(--ajtb-shadow);
    margin-bottom: 24px;
}

.ajtb-quick-info .info-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--ajtb-text);
}

.ajtb-quick-info .info-item svg {
    color: var(--ajtb-text-muted);
}

.ajtb-quick-info .info-item.rating svg {
    color: var(--ajtb-warning);
    fill: var(--ajtb-warning);
}

.ajtb-quick-info .badge {
    padding: 4px 10px;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}

/* ===================================
   Tabs Navigation (sous les images, style capture)
   =================================== */
.ajtb-tabs-under-hero {
    background: #fff;
    border-bottom: 1px solid var(--ajtb-border);
    margin-bottom: 0;
    border-radius: 0 0 10px 10px;
}

.ajtb-tabs-under-hero .aj-wide-container {
    padding-top: 0;
    padding-bottom: 0;
}

.ajtb-tabs-nav {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    border-radius: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ajtb-tabs-under-hero .ajtb-tabs-nav {
    margin-bottom: 0;
}

.ajtb-tabs-nav .tab-link {
    flex-shrink: 0;
    padding: 18px 24px 16px;
    font-size: 15px;
    font-weight: 700;
    color: #4b5563;
    text-decoration: none;
    border-radius: 8px 8px 0 0;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    transition:
        color 0.2s ease,
        border-color 0.2s ease;
    letter-spacing: 0.03em;
}

.ajtb-tabs-nav .tab-link:hover {
    color: var(--ajtb-primary);
}

.ajtb-tabs-nav .tab-link.active {
    color: var(--ajtb-primary);
    border-bottom-color: var(--ajtb-primary);
    background: transparent;
    box-shadow: none;
}

/* Top tab panels: only one visible at a time */
.ajtb-tab-panel.ajtb-tab-panel-hidden {
    display: none !important;
}

/* ===================================
   Sections
   =================================== */
.ajtb-section {
    background: var(--ajtb-bg);
    border-radius: var(--ajtb-radius-lg);
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: var(--ajtb-shadow);
}

.ajtb-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 20px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin: 0 0 20px 0;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ajtb-border);
}

.ajtb-section-title svg {
    color: var(--ajtb-primary);
    flex-shrink: 0;
}

.ajtb-section-title .section-badge {
    margin-left: auto;
    padding: 4px 10px;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    border-radius: 50px;
    font-size: 12px;
    font-weight: 600;
}

/* Content Blocks */
.ajtb-content-block {
    font-size: 15px;
    line-height: 1.8;
    color: var(--ajtb-text-light);
}

.ajtb-content-block p {
    margin-bottom: 16px;
}

.ajtb-content-block p:last-child {
    margin-bottom: 0;
}

/* ===================================
   Highlights
   =================================== */
.ajtb-highlights {
    margin-bottom: 24px;
    padding: 20px;
    background: var(--ajtb-success-light);
    border-radius: var(--ajtb-radius);
}

.ajtb-highlights .highlights-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ajtb-success);
    margin: 0 0 12px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ajtb-highlights .highlights-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}

.ajtb-highlights .highlights-list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    color: var(--ajtb-text);
}

.ajtb-highlights .highlights-list svg {
    color: var(--ajtb-success);
    flex-shrink: 0;
    margin-top: 2px;
}

/* ===================================
   Quick Facts
   =================================== */
.ajtb-quick-facts {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--ajtb-border);
}

.ajtb-quick-facts .facts-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin: 0 0 16px 0;
}

.ajtb-quick-facts .facts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

.ajtb-quick-facts .fact-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
}

.ajtb-quick-facts .fact-icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-bg);
    border-radius: 50%;
    color: var(--ajtb-primary);
}

.ajtb-quick-facts .fact-content {
    flex: 1;
}

.ajtb-quick-facts .fact-label {
    display: block;
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.ajtb-quick-facts .fact-value {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--ajtb-text);
}

/* Tags */
.ajtb-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--ajtb-border);
}

.ajtb-tags .tag-item {
    padding: 6px 14px;
    background: var(--ajtb-bg-light);
    border: 1px solid var(--ajtb-border);
    border-radius: 50px;
    font-size: 13px;
    color: var(--ajtb-text-light);
    text-decoration: none;
    transition: var(--ajtb-transition);
}

.ajtb-tags .tag-item:hover {
    border-color: var(--ajtb-primary);
    color: var(--ajtb-primary);
}

.ajtb-tags .tag-item.type {
    background: var(--ajtb-primary-light);
    border-color: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
}

/* ===================================
   Gallery
   =================================== */
.ajtb-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.ajtb-gallery-grid .gallery-item {
    aspect-ratio: 4/3;
    border-radius: var(--ajtb-radius);
    overflow: hidden;
}

.ajtb-gallery-grid .gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.ajtb-gallery-grid .gallery-item:hover img {
    transform: scale(1.05);
}

/* ===================================
   Programme MakeMyTrip : sticky group (titre + tabs + barre jour + sidebar) + contenu scroll
   =================================== */

/* Layout : conteneur principal – zéro gap entre blocs pour effet stack collé */
.ajtb-itinerary-layout.sticky-itinerary-container {
    position: relative;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    transform: none;
    overflow: visible;
    background: transparent;
    border: none;
}

/* Bloc 1 : barre onglets – collée au bloc du dessous (pas d’ombre ni marge) */
.ajtb-tabs-block.ajtb-itinerary-block--tabs.sticky-itinerary-container__tabs {
    position: -webkit-sticky;
    position: sticky !important;
    top: 0 !important;
    z-index: 1200 !important;
    width: 100%;
    background: #fff !important;
    box-shadow: none;
    border-radius: 0;
    margin: 0 !important;
    padding: 0 !important;
}

/* Rectangle barre jour : aligné avec le rectangle du contenu (même colonne) */
/* Barre jour : alignée en face du plan de séjour (même largeur 240px à gauche) */
.ajtb-day-bar-row {
    margin: 0;
    padding: 0 0 0 240px;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    border-top: 1px solid var(--ajtb-border);
    display: flex;
    justify-content: flex-start;
}

.ajtb-day-bar-row .ajtb-day-details-bar {
    margin: 0 !important;
    padding: 6px 20px 8px !important;
    min-height: 0 !important;
    min-width: 0;
    width: 100% !important;
    max-width: none;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.ajtb-day-bar-row .ajtb-day-details-bar__day {
    padding: 4px 12px !important;
    font-size: 0.85rem !important;
}

.ajtb-day-bar-row .ajtb-day-details-bar__inclus-line {
    font-size: 12px !important;
}

.ajtb-day-bar-row .ajtb-day-details-bar__left {
    gap: 10px !important;
    flex: 1 1 auto;
    width: 100%;
}

/* Grille : plan de séjour (sticky) | contenu – colonne plan alignée avec la barre jour */
.ajtb-itinerary-grid.ajtb-itinerary-body {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 0;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    margin-top: 0 !important;
    padding: 0;
    background: transparent;
}

/* Plan de séjour : sticky, commence sous la barre sticky, tout le contenu visible pendant tout le scroll */
.ajtb-plan-sidebar.ajtb-plan-sidebar--sticky {
    position: -webkit-sticky;
    position: sticky;
    top: calc(var(--ajtb-sticky-group-height, 120px) + 32px);
    align-self: flex-start;
    max-height: calc(100vh - var(--ajtb-sticky-group-height, 120px) - 32px);
    overflow-y: auto;
    z-index: 1000;
}

/* Colonne gauche : Plan de séjour – compact, sous la barre sticky */
.ajtb-plan-sidebar.ajtb-itinerary-block--sidebar {
    background: #fff;
    border: 1px solid var(--ajtb-border);
    border-top: none;
    border-radius: 0 0 0 8px;
    padding: 8px 0 12px;
    min-height: 120px;
    margin: 0;
    display: flex;
    flex-direction: column;
    position: -webkit-sticky;
    position: sticky;
    top: calc(var(--ajtb-sticky-group-height, 1px) + 130px);
    align-self: flex-start;
    max-height: calc(100vh - var(--ajtb-sticky-group-height, 1px) - 130px);
    overflow-y: auto;
    z-index: 1000;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.ajtb-plan-sidebar.ajtb-itinerary-block--sidebar::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.ajtb-itinerary-sidebar-title {
    margin: 0 0 8px 0;
    padding: 0 16px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.3;
}

/* Plan de séjour : style capture – jour actif = bloc gris foncé texte blanc, inactifs = texte gris clair */
.ajtb-plan-sidebar .day-plan__link.active,
.ajtb-plan-sidebar .day-plan__link.is-active {
    background: #374151;
    color: #fff;
    border-radius: 0 999px 999px 0;
    padding-left: 16px;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
}

.ajtb-plan-sidebar .day-plan__link.active .day-plan__dot,
.ajtb-plan-sidebar .day-plan__link.is-active .day-plan__dot {
    background: #fff;
}

.ajtb-plan-sidebar .day-plan__item {
    display: flex;
}

.ajtb-plan-sidebar .day-plan__link {
    color: #6b7280;
    width: fit-content;
    max-width: 100%;
    cursor: pointer;
    padding: 6px 12px 6px 14px;
    font-size: 12px;
}

.ajtb-plan-sidebar .day-plan__link:hover {
    background: #f3f4f6;
    color: #374151;
}

.ajtb-plan-sidebar .day-plan__dot {
    background: #9ca3af;
    width: 6px;
    height: 6px;
    left: 6px;
}

.ajtb-plan-sidebar .day-plan__label {
    font-size: 12px;
    line-height: 1.4;
}

/* Colonne droite : conteneur invisible, occupe toute la largeur disponible */
.ajtb-right-column.ajtb-itinerary-right {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    width: 100%;
    max-width: none;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    align-items: stretch;
    justify-content: flex-start;
}

/* Rectangle A : header du jour – collé sous la barre onglets, bord supérieur aligné */
.ajtb-day-header-block.ajtb-itinerary-block--day-header {
    background: #fff;
    border: 1px solid var(--ajtb-border);
    border-top: none;
    border-left: none;
    border-radius: 0 0 8px 0;
    padding: 8px 20px 10px;
    margin: 0;
    width: 100%;
    min-width: 0;
    max-width: none;
    box-sizing: border-box;
    position: -webkit-sticky;
    position: sticky;
    top: var(--ajtb-sticky-group-height, 60px);
    z-index: 1000;
}

.ajtb-day-header-block .ajtb-day-details-bar {
    margin: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    width: 100%;
    max-width: none;
    padding: 0;
    min-height: 40px;
}

.ajtb-day-header-block .ajtb-day-details-bar__left {
    gap: 10px;
}

.ajtb-day-header-block .ajtb-day-details-bar__day {
    padding: 6px 14px;
    font-size: 0.9rem;
}

/* Rectangle B : contenu du jour – collé sous le header du jour (une seule ligne de séparation) */
.ajtb-day-content-block.ajtb-itinerary-block--day-content {
    flex: 1 1 auto;
    background: #fff;
    border: 1px solid var(--ajtb-border);
    border-top: 1px solid var(--ajtb-border);
    border-left: none;
    border-radius: 0 0 8px 0;
    padding: 0;
    min-height: 0;
    margin: 0;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.ajtb-day-content-block .ajtb-day-panels {
    padding: 0;
    border: none;
    background: transparent;
    width: 100%;
    max-width: none;
}

/* Responsive : layout blocs – tablette */
@media (max-width: 1023px) {
    .ajtb-itinerary-grid.ajtb-itinerary-body {
        grid-template-columns: 220px 1fr;
    }

    .ajtb-day-bar-row {
        padding-left: 220px;
    }

    .ajtb-day-bar-row .ajtb-day-details-bar {
        padding: 5px 16px 6px !important;
        min-width: 220px;
    }
}

/* Responsive : layout blocs – mobile (1 colonne, sidebar au-dessus) */
@media (max-width: 767px) {
    .ajtb-itinerary-grid.ajtb-itinerary-body {
        grid-template-columns: 1fr;
    }

    .ajtb-day-bar-row {
        padding-left: 0;
    }

    .ajtb-plan-sidebar.ajtb-plan-sidebar--sticky {
        position: static;
        max-height: none;
    }

    .ajtb-plan-sidebar.ajtb-itinerary-block--sidebar {
        border-radius: 0;
        border-left: 1px solid var(--ajtb-border);
    }

    .ajtb-day-header-block.ajtb-itinerary-block--day-header,
    .ajtb-day-content-block.ajtb-itinerary-block--day-content {
        border-left: 1px solid var(--ajtb-border);
        border-radius: 0;
    }

    .ajtb-itinerary-block--sidebar .ajtb-programme-days {
        position: static;
        max-height: none;
        overflow-y: visible;
    }
}

/* Sticky group (rétrocompat : si pas .ajtb-itinerary-layout) */
.sticky-itinerary-container:not(.ajtb-itinerary-layout) {
    position: -webkit-sticky;
    position: sticky !important;
    top: 0 !important;
    z-index: 1200 !important;
    background: #fff !important;
    margin: 12px 0 0 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transform: none;
    overflow: visible;
}

/* Barre manuelle titre : au-dessus des onglets, collée, scroll et stick avec eux */
.sticky-itinerary-container__header {
    margin: 0;
    padding: 16px 20px 12px;
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
    background: #ffffff !important;
    background-color: #ffffff !important;
}

.sticky-itinerary-container__header.ajtb-sticky-manual-title-bar {
    border-bottom: none;
}

.sticky-itinerary-container__header .ajtb-itinerary-sticky-title {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: var(--ajtb-text, #1a1a1a) !important;
    background: transparent !important;
    border: none !important;
}

.sticky-itinerary-container__tabs {
    margin: 0;
    border-top: none;
}

/* Barre onglets sticky : collée au bloc du dessous (padding réduit, bordure basse = séparation unique) */
.sticky-itinerary-container__tabs .ajtb-global-summary-bar {
    margin: 0 !important;
    padding: 10px 20px 12px !important;
    padding-top: 12px !important;
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(20px, env(safe-area-inset-right)) !important;
    background: var(--ajtb-primary-light) !important;
    border: none !important;
    border-top: 3px solid var(--ajtb-primary) !important;
    border-bottom: 1px solid var(--ajtb-border) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 48px;
}

.sticky-itinerary-container__body {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 16px;
    margin: 0;
    padding: 0 0 8px 0;
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
    border-top: 1px solid var(--ajtb-border, #e9ecef);
    flex-wrap: nowrap;
}

/* Spacer dans le sticky pour aligner la barre Jour X en face du plan de séjour */
.sticky-itinerary-container__spacer {
    width: 240px;
    max-width: 240px;
    flex: 0 0 240px;
}

.sticky-itinerary-container__main {
    flex: 1 1 auto;
    min-width: 0;
}

.sticky-itinerary-container__main .ajtb-day-details-bar {
    margin: 0;
}

/* Désactiver complètement la barre sticky globale des jours (Jour 1 / INCLUDED) */
#ajtb-day-details-bar {
    display: none !important;
}

/* Contenu scroll : même grille que le sticky, pas d'espace blanc inutile */
.itinerary-scroll-content {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 16px;
    margin: 0;
    padding: 0;
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
}

/* Sidebar Plan de séjour : sticky sous la barre onglets ; scrollbar masquée */
.itinerary-scroll-content__nav.ajtb-programme-days,
.ajtb-itinerary-block--sidebar .ajtb-programme-days {
    width: 100%;
    max-width: 100%;
    position: -webkit-sticky;
    position: sticky;
    top: var(--ajtb-sticky-group-height, 60px);
    max-height: calc(100vh - var(--ajtb-sticky-group-height, 60px));
    overflow-y: auto;
    align-self: flex-start;
    z-index: 1000;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.itinerary-scroll-content__nav.ajtb-programme-days::-webkit-scrollbar,
.ajtb-itinerary-block--sidebar .ajtb-programme-days::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.itinerary-scroll-content__panels,
.ajtb-itinerary-block--day-content .ajtb-day-panels {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}

/* Panneaux des jours : pleine largeur, contenu aligné à gauche */
.itinerary-scroll-content .ajtb-day-panels,
.ajtb-itinerary-block--day-content .ajtb-day-panels {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 12px 16px 16px;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.itinerary-scroll-content .ajtb-day-content-panel {
    background: #fff;
    border-radius: var(--ajtb-radius, 12px);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    padding: 20px 24px 24px;
    border: 1px solid var(--ajtb-border);
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    margin: 0;
}

/* Un seul bloc carte : le contenu du jour est dans le bloc, pas dans une carte imbriquée (référence capture 2) */
.ajtb-itinerary-block--day-content .ajtb-day-content-panel {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    border: none;
    padding: 20px 0 24px;
    margin: 0;
}

.ajtb-itinerary-block--day-content .ajtb-day-content-panel:not(:last-child) {
    border-bottom: 1px solid var(--ajtb-border, #e9ecef);
    padding-bottom: 24px;
}

/* Pas de hauteur min inutile */
.itinerary-scroll-content .ajtb-day-panels,
.itinerary-scroll-content .ajtb-day-content-panel,
.itinerary-scroll-content .day-body,
.ajtb-itinerary-block--day-content .ajtb-day-panels,
.ajtb-itinerary-block--day-content .ajtb-day-content-panel,
.ajtb-itinerary-block--day-content .day-body {
    min-height: 0;
}

/* Bloc programme visible par défaut (avant JS) */
.itinerary-scroll-content .ajtb-tab-block[data-ajtb-tab="programme"],
.ajtb-itinerary-block--day-content .ajtb-tab-block[data-ajtb-tab="programme"] {
    display: block;
}

/* Colonne droite #itinerary : forcer largeur pleine, pas de centrage ni max-width parasite */
#itinerary.ajtb-section .ajtb-itinerary-grid {
    width: 100%;
    max-width: none;
}

#itinerary.ajtb-section .ajtb-day-content-block .day-body {
    padding: 0 0 12px 0;
    width: 100%;
    max-width: none;
}

#itinerary.ajtb-section .ajtb-day-content-block .ajtb-day-content-panel {
    margin-left: 0;
    margin-right: 0;
}

/* Rétrocompat : wrapper sticky titre+barre seul (si utilisé ailleurs) */
.ajtb-itinerary-sticky-wrap,
.ajtb-sticky-header-bar {
    position: -webkit-sticky;
    position: sticky !important;
    top: 0 !important;
    z-index: 1200 !important;
    background: #fff !important;
    margin: 24px auto 0;
    padding: 0;
    max-width: 1320px;
    width: 100%;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Quand le bloc est en haut (après hero), même largeur que le contenu principal */
.ajtb-tour-page > .ajtb-sticky-header-bar {
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(12px, 2vw, 32px);
    padding-right: clamp(12px, 2vw, 32px);
    max-width: 1440px;
    box-sizing: border-box;
}

/* Titre du tour (dans le bloc sticky, zéro gap avec la barre) */
.ajtb-itinerary-sticky-wrap .ajtb-itinerary-sticky-title {
    margin: 0 !important;
    padding: 16px 20px 12px !important;
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(20px, env(safe-area-inset-right)) !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: var(--ajtb-text, #1a1a1a) !important;
    background: #fff !important;
    border: none !important;
    box-sizing: border-box;
}

/* Barre des onglets (collée sous le titre, même largeur, pas de gap) */
.ajtb-itinerary-sticky-wrap .ajtb-global-summary-bar {
    margin: 0 !important;
    padding: 0 20px 16px !important;
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(20px, env(safe-area-inset-right)) !important;
    background: #fff !important;
    border: none !important;
    border-top: 1px solid var(--ajtb-border, #e9ecef);
    border-radius: 0;
    box-shadow: none;
    max-width: none;
    width: 100%;
    min-height: 52px;
    box-sizing: border-box;
}

/* Éviter que le contenu scrollé ne se cache sous la barre onglets sticky */
.ajtb-tour-page #itinerary.ajtb-section .ajtb-day-content-panel,
.ajtb-tour-page
    #itinerary.ajtb-section
    .itinerary-scroll-content
    .ajtb-day-content-panel,
.ajtb-tour-page #itinerary.ajtb-section .aj-day-anchor {
    scroll-margin-top: 220px;
}

/* Quand la section Galerie Photos est visible : masquer le layout et le sidebar */
.ajtb-tour-page.ajtb-gallery-in-view .ajtb-itinerary-layout,
.ajtb-tour-page.ajtb-gallery-in-view .itinerary-scroll-content__nav {
    display: none !important;
}

.ajtb-global-summary-nav {
    display: flex;
    flex-wrap: nowrap;
    gap: 16px;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    min-width: 0;
}

/* Barre sticky : répartir les onglets sur toute la largeur ; mots centrés dans la barre */
.sticky-itinerary-container__tabs .ajtb-global-summary-bar {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.sticky-itinerary-container__tabs .ajtb-global-summary-nav {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    max-width: 100%;
}

.ajtb-global-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #616161;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    text-align: center;
}

.ajtb-global-pill:hover {
    color: #0284c7;
}

/* Onglet actif : pill blanc, bordure bleu clair, texte bleu (style capture) */
.ajtb-global-pill.active {
    background: #fff;
    color: #0284c7;
    border-color: #7dd3fc;
}

/* Contexte barre sticky : inactifs = texte gris sur fond bleu clair, actif = pill blanc */
.sticky-itinerary-container__tabs .ajtb-global-pill {
    color: #616161;
    background: transparent;
    border: 1px solid transparent;
}

.sticky-itinerary-container__tabs .ajtb-global-pill:hover {
    color: #0284c7;
}

.sticky-itinerary-container__tabs .ajtb-global-pill.active {
    background: #fff;
    color: #0284c7;
    border: 1px solid #7dd3fc;
}

.ajtb-global-pill-label {
    display: inline-block;
}

/* ----- Barre Day Details : Jour X + onglets Programme/Vol/Transfert/Hôtel/Activités — défile avec le contenu ----- */
.ajtb-day-details-bar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    padding: 12px 28px 14px;
    margin: 0 0 16px 0;
    background: #fff;
    border: 1px solid var(--ajtb-border, #e9ecef);
    border-radius: var(--ajtb-radius, 12px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    position: relative;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    box-sizing: border-box;
    min-height: 48px;
}

.ajtb-day-details-bar__left {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 14px;
    min-width: 0;
    flex-shrink: 0;
}

/* Ligne INCLUDED: style capture (emplacement + INCLUDED: en gras + icône + nombre + libellé) */
.ajtb-day-details-bar__inclus-line {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    font-size: 13px;
    color: #333;
    line-height: 1.4;
}

.ajtb-inclus-location {
    color: #333;
    margin-right: 2px;
}

.ajtb-inclus-label {
    font-weight: 700;
    color: #333;
    margin-right: 4px;
}

.ajtb-inclus-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #333;
}

.ajtb-inclus-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    opacity: 0.75;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.ajtb-inclus-item--transfer .ajtb-inclus-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M5 17h14v-4H5v4zm0-6h14V7H5v4z'/%3E%3Ccircle cx='7.5' cy='16.5' r='1.5'/%3E%3Ccircle cx='16.5' cy='16.5' r='1.5'/%3E%3C/svg%3E");
}

/* Activités : icône randonnée (personne en marche), même style que Vol et Transfert */
.ajtb-inclus-item--activity .ajtb-inclus-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='6' r='2.5'/%3E%3Cpath d='M12 9v6'/%3E%3Cpath d='M9 15l3 4 3-4'/%3E%3Cpath d='M14 11l2-3'/%3E%3Cpath d='M12 9h2'/%3E%3C/svg%3E");
}

.ajtb-inclus-item--hotel .ajtb-inclus-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M3 21h18M3 10h18M5 21V8l7 5 7-5v13M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4'/%3E%3C/svg%3E");
}

.ajtb-inclus-item--meal .ajtb-inclus-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M8 2v4M16 2v4M3 10h18v2H3zM4 10v10M8 10v10M12 10v10M16 10v10M20 10v10'/%3E%3C/svg%3E");
}

.ajtb-inclus-item--flight .ajtb-inclus-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z'/%3E%3C/svg%3E");
}

/* Libellé du jour : pill dégradé orange-rouge, texte blanc (style capture) */
.ajtb-day-details-bar__day {
    display: inline-block;
    font-weight: 700;
    font-size: 0.95rem;
    color: #fff;
    white-space: nowrap;
    padding: 8px 18px;
    border-radius: 999px;
    background: linear-gradient(90deg, #fb923c 0%, #ea580c 50%, #c2410c 100%);
    text-align: center;
    line-height: 1.2;
    box-sizing: border-box;
}

.ajtb-day-details-bar__inclus-pills {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    min-width: 0;
}

.ajtb-day-details-bar__inclus-pill {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ajtb-text, #1a1a1a);
    background: #fff;
    border: 2px solid var(--ajtb-border, #e9ecef);
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.ajtb-day-details-bar__inclus-pill:hover {
    border-color: var(--ajtb-primary, #2563eb);
    color: var(--ajtb-primary, #2563eb);
    background: rgba(37, 99, 235, 0.05);
}

.ajtb-day-details-bar__inclus-pill.active {
    background: var(--ajtb-primary, #2563eb);
    color: #fff;
    border-color: var(--ajtb-primary, #2563eb);
}

.ajtb-day-details-bar__tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    /* Scroll horizontal si nécessaire, mais ne pas compresser */
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    /* Empêcher la compression des onglets */
    flex-shrink: 1;
    min-width: 0;
}

/* Legacy: garder compatibilité avec l'ancienne classe */
.ajtb-top-itinerary-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    padding: 12px 16px 14px;
    margin: 0 0 14px 0;
    border: 1px solid var(--ajtb-border, #e9ecef);
    border-radius: var(--ajtb-radius, 12px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    background: #fff;
}

.ajtb-top-itinerary-bar.aj-day-specific-bar {
    margin-top: 0;
    display: none;
    /* Masquée, remplacée par ajtb-day-details-bar */
}

.ajtb-top-bar__left {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 16px;
    min-width: 0;
}

.ajtb-top-bar__day {
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--ajtb-text, #1a1a1a);
    white-space: nowrap;
}

.ajtb-top-bar__inclus {
    font-size: 0.9rem;
    color: var(--ajtb-text-muted, #6c757d);
}

.ajtb-top-bar__tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.ajtb-tab-pill {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ajtb-text-muted, #6c757d);
    background: #fff;
    border: 1px solid var(--ajtb-border, #e9ecef);
    border-radius: 999px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}

.ajtb-tab-pill:hover {
    color: var(--ajtb-primary, #0d6efd);
    border-color: var(--ajtb-primary, #0d6efd);
    background: rgba(13, 110, 253, 0.06);
}

.ajtb-tab-pill.active {
    color: #fff;
    background: var(--ajtb-primary, #0d6efd);
    border-color: var(--ajtb-primary, #0d6efd);
}

/* Desktop : colonne Plan de séjour étroite ; padding-top minimal pour éviter le chevauchement */
.ajtb-programme-mmt.programme-container {
    /* Alignement avec les barres sticky */
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    /* Padding-top minimal : juste assez pour éviter le chevauchement, pas de grand espace */
    padding-top: 16px;
    margin-top: 0;
}

/* Desktop ≥1200px : gauche 260px (max 280px), détails = reste ; gap 24px */
.ajtb-programme-mmt.programme-container {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 16px;
    margin-top: 0;
    max-width: none;
    /* Padding-top minimal : juste assez pour éviter le chevauchement, pas de grand espace */
    padding-top: 16px;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
    /* Nécessaire pour que la colonne Plan de séjour (sticky) reste fixe au scroll */
    overflow: visible;
}

/* Colonne "Plan de séjour" : scroll normalement avec la page (pas sticky, comme 2e screenshot) */
.ajtb-programme-days {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 200px;
    max-width: 220px;
    flex: 0 0 auto;
    padding: 0;
    margin-right: 0;
    margin-top: 0;
    align-self: flex-start;
    max-height: none;
    overflow: visible;
}

.ajtb-programme-days-title,
.day-plan__title {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ajtb-text-muted);
    margin: 0 0 12px 0;
    padding: 0;
}

/* Colonne droite : contenu des jours - alignement avec la sidebar */
.ajtb-programme-center,
.itinerary__content,
.ajtb-day-panels {
    margin-top: 0;
    padding-top: 0;
    /* Alignement parfait avec la sidebar : même top offset via le conteneur parent */
    align-self: flex-start;
}

/* ----- Day Plan timeline : ligne verticale qui passe par le centre des points (effet schéma) ----- */
.day-plan {
    list-style: none;
    margin: 0;
    padding: 0 0 0 20px;
    position: relative;
    border-left: none;
    width: fit-content;
    min-width: 0;
}

.day-plan::before {
    content: "";
    position: absolute;
    left: 27px;
    top: 14px;
    bottom: 14px;
    width: 2px;
    background: #d1d5db;
    z-index: 0;
}

.ajtb-plan-sidebar .day-plan {
    padding-left: 14px;
}

.ajtb-plan-sidebar .day-plan::before {
    background: #d1d5db;
    left: 20px;
    top: 10px;
    bottom: 10px;
}

.day-plan__item {
    position: relative;
    margin: 0;
    padding: 0;
    z-index: 1;
}

.day-plan__link {
    display: flex;
    align-items: center;
    gap: 0;
    cursor: pointer;
    width: auto;
    min-width: 0;
    padding: 8px 12px 8px 14px;
    margin: 0;
    border: none;
    background: transparent;
    text-align: left;
    font: inherit;
    color: var(--ajtb-text);
    cursor: pointer;
    border-radius: 999px;
    position: relative;
    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.day-plan__link:hover {
    background: var(--ajtb-bg-light);
    color: var(--ajtb-text);
}

.day-plan__link.is-active,
.day-plan__link.active {
    background: var(--ajtb-primary);
    color: #fff;
}

.day-plan__dot {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ajtb-border);
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.day-plan__link.is-active .day-plan__dot,
.day-plan__link.active .day-plan__dot {
    background: #fff;
}

.day-plan__label {
    font-size: 13px;
    line-height: 1.45;
    letter-spacing: 0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-left: 0;
}

.ajtb-programme-center,
.itinerary__content {
    min-width: 0;
    width: 100%;
    padding-left: 0;
    margin-left: 0;
    flex: 1;
}

.ajtb-day-panels {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 0;
    padding-top: 0;
}

.ajtb-day-content-panel {
    min-width: 0;
}

/* Zone jour : sur mesure, hauteur minimale */
.ajtb-day-header-mmt {
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--ajtb-border);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

/* Pill numéro de jour : sur mesure, juste la taille du chiffre */
.ajtb-day-header-mmt .ajtb-day-pill {
    flex-shrink: 0;
    margin-right: 0;
    width: fit-content;
    min-width: 1.25em;
    padding: 4px 8px;
    font-size: 0.85rem;
    line-height: 1.2;
}

.ajtb-day-badge {
    display: inline-block;
    padding: 6px 14px;
    background: var(--ajtb-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    border-radius: 6px;
    margin-bottom: 10px;
}

.ajtb-day-header-mmt .ajtb-day-title-mmt {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.ajtb-day-title-mmt {
    font-size: 20px;
    font-weight: 700;
    color: var(--ajtb-text);
}

.ajtb-day-inclus {
    font-size: 13px;
    color: var(--ajtb-text-muted);
    margin: 0;
}

.ajtb-block-mmt {
    margin-bottom: 12px;
}

.ajtb-block-mmt:last-child {
    margin-bottom: 0;
}

.ajtb-block-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin: 0 0 8px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ajtb-block-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
}

.ajtb-block-icon--flight {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z'/%3E%3C/svg%3E");
}

.ajtb-block-icon--transfer {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M5 17h14v-4H5v4zm0-6h14V7H5v4z'/%3E%3Ccircle cx='7.5' cy='16.5' r='1.5'/%3E%3Ccircle cx='16.5' cy='16.5' r='1.5'/%3E%3C/svg%3E");
}

.ajtb-block-icon--hotel {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M3 21h18M3 10h18M5 21V8l7 5 7-5v13M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4'/%3E%3C/svg%3E");
}

.ajtb-block-icon--activity {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='6' r='2.5'/%3E%3Cpath d='M12 9v6'/%3E%3Cpath d='M9 15l3 4 3-4'/%3E%3Cpath d='M14 11l2-3'/%3E%3Cpath d='M12 9h2'/%3E%3C/svg%3E");
}

.ajtb-block-icon--meal {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M8 2v4M16 2v4M3 10h18v2H3zM4 10v10M8 10v10M12 10v10M16 10v10M20 10v10'/%3E%3C/svg%3E");
}

.ajtb-programme-mmt .day-body {
    padding: 0;
    min-width: 0;
}

/* Liste des jours : style timeline (cercle + état actif) */
.ajtb-programme-days .aj-day-link {
    position: relative;
    padding-left: 44px;
    border-radius: 8px;
}

.ajtb-programme-days .aj-day-link-num {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    font-size: 12px;
}

.ajtb-programme-days .aj-day-link.active,
.ajtb-programme-days .aj-day-link.is-active {
    background: var(--ajtb-primary);
    color: #fff;
    border-color: var(--ajtb-primary);
}

.ajtb-programme-days .aj-day-link.active .aj-day-link-num,
.ajtb-programme-days .aj-day-link.is-active .aj-day-link-num {
    background: #fff;
    color: var(--ajtb-primary);
}

/* Ancre pour scroll-spy et deep link (invisible) ; scroll-margin-top pour scrollIntoView sans masquer sous header+barre globale */
.aj-day-anchor,
#itinerary .ajtb-day-content-panel {
    scroll-margin-top: calc(
        var(--header-h, 100px) + var(--aj-global-bar-height, 60px)
    );
}

.aj-day-anchor {
    display: block;
    height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    position: absolute;
    pointer-events: none;
}

/* Cartes blanches pour le contenu du jour (centre) */
.ajtb-programme-mmt .ajtb-day-content-panel {
    background: #fff;
    border-radius: var(--ajtb-radius, 12px);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    padding: 24px 28px;
    border: 1px solid var(--ajtb-border);
    width: 100%;
    box-sizing: border-box;
    margin-top: 0;
    padding-top: 24px;
}

.ajtb-programme-mmt .ajtb-block-mmt .ajtb-card-wrap,
.ajtb-programme-mmt .ajtb-block-mmt .ajtb-card-with-image {
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--ajtb-border);
}

/* Laptop / Tablet (768px – 1199px) : gauche 160px, détails priorité */
@media (min-width: 768px) and (max-width: 1199px) {
    .ajtb-programme-mmt.programme-container {
        gap: 10px;
        /* Padding-top minimal : juste assez pour éviter le chevauchement */
        padding-top: 12px;
    }

    .sticky-itinerary-container__spacer {
        width: 160px;
        max-width: 160px;
        flex: 0 0 160px;
    }

    .itinerary-scroll-content__nav.ajtb-programme-days {
        width: 160px;
        max-width: 160px;
        flex: 0 0 160px;
    }

    .ajtb-programme-days {
        position: relative;
        padding-right: 0;
        margin-right: 0;
        margin-top: 0;
        padding-top: 0;
    }

    .ajtb-programme-days .day-plan__link {
        padding: 6px 10px 6px 0;
        gap: 12px;
    }

    .ajtb-programme-days .day-plan__dot {
        width: 6px;
        height: 6px;
    }
}

/* Mobile (< 768px) */
@media (max-width: 767px) {
    .ajtb-tour-page {
        --header-h: 56px;
    }

    .ajtb-itinerary-sticky-wrap .ajtb-itinerary-sticky-title {
        padding: 12px 16px 10px !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
        font-size: 1.2rem !important;
    }

    .ajtb-itinerary-sticky-wrap .ajtb-global-summary-bar {
        padding: 0 16px 12px !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
    }

    .ajtb-tour-page #itinerary.ajtb-section {
        --aj-sticky-wrap-height: 100px;
    }

    .ajtb-itinerary-sticky-wrap {
        margin-top: 16px;
    }

    .ajtb-itinerary-sticky-title {
        padding: 12px 16px 8px !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
        font-size: 1.25rem !important;
    }

    .ajtb-global-summary-bar {
        padding: 12px 16px;
        padding-left: max(16px, env(safe-area-inset-left));
        padding-right: max(16px, env(safe-area-inset-right));
        margin-left: auto;
        margin-right: auto;
        margin-top: 16px;
        margin-bottom: 0;
        border-radius: var(--ajtb-radius, 12px) var(--ajtb-radius, 12px) 0 0;
        border-bottom: none;
        box-shadow: none;
        min-height: 44px;
        /* Maintenir la même largeur même en sticky */
        max-width: 100%;
        width: 100%;
    }

    .ajtb-global-summary-nav {
        gap: 8px;
        /* Sur tablette/mobile : permettre le scroll horizontal si nécessaire */
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .ajtb-global-pill {
        padding: 8px 14px;
        font-size: 12px;
    }

    .ajtb-day-details-bar {
        padding: 10px 16px 12px;
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        margin-bottom: 12px;
        border-radius: var(--ajtb-radius, 12px);
        min-height: 42px;
        position: relative;
        width: 100%;
        max-width: 100%;
    }

    .ajtb-tour-page {
        --sticky-stack-h: calc(
            var(--header-h, 56px) + var(--aj-global-bar-height, 50px) +
                var(--aj-day-details-bar-height, 48px)
        );
        --stickyTop: var(--sticky-stack-h);
    }

    .ajtb-top-itinerary-bar {
        margin-left: 0;
        margin-right: 0;
        padding: 10px 12px 12px;
    }

    .ajtb-top-itinerary-bar.aj-program-stickybar {
        top: calc(var(--header-h, 56px) + var(--aj-global-bar-height, 50px));
        z-index: 999;
        background: #fff;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }

    .ajtb-top-bar__left {
        width: 100%;
    }

    .ajtb-top-bar__tabs {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .ajtb-tab-pill {
        flex-shrink: 0;
        padding: 5px 12px;
        font-size: 12px;
    }

    .ajtb-tour-page {
        --sticky-stack-h: calc(
            var(--header-h, 56px) + var(--aj-global-bar-height, 50px) +
                var(--aj-day-details-bar-height, 48px)
        );
    }

    .ajtb-programme-mmt.programme-container {
        flex-direction: column;
        gap: 12px;
        /* Padding-top minimal : juste assez pour éviter le chevauchement */
        padding-top: 12px;
        margin-top: 0;
    }

    .sticky-itinerary-container__header {
        padding: 12px 16px 10px;
        padding-left: max(16px, env(safe-area-inset-left));
        padding-right: max(16px, env(safe-area-inset-right));
    }

    .sticky-itinerary-container__header .ajtb-itinerary-sticky-title {
        font-size: 1.2rem !important;
    }

    .sticky-itinerary-container__tabs .ajtb-global-summary-bar {
        padding: 0 16px 12px !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
    }

    .sticky-itinerary-container__body {
        flex-direction: column;
        gap: 12px;
        padding: 12px 16px 16px;
        padding-left: max(16px, env(safe-area-inset-left));
        padding-right: max(16px, env(safe-area-inset-right));
    }

    .sticky-itinerary-container__body {
        flex-direction: column;
        gap: 12px;
    }

    .sticky-itinerary-container__body {
        flex-direction: column;
        gap: 0;
    }

    .sticky-itinerary-container__spacer {
        display: none;
    }

    .itinerary-scroll-content__nav.ajtb-programme-days {
        width: 100%;
        max-width: none;
        position: static;
        top: auto;
        max-height: none;
        overflow-y: visible;
    }

    .itinerary-scroll-content {
        flex-direction: column;
        gap: 12px;
        padding-left: max(16px, env(safe-area-inset-left));
        padding-right: max(16px, env(safe-area-inset-right));
    }

    .ajtb-tour-page
        #itinerary.ajtb-section
        .itinerary-scroll-content
        .ajtb-day-content-panel,
    .ajtb-tour-page #itinerary.ajtb-section .aj-day-anchor {
        scroll-margin-top: 180px;
    }

    .ajtb-programme-center,
    .itinerary__content,
    .ajtb-day-panels {
        margin-top: 0;
        padding-top: 0;
    }

    .ajtb-programme-days {
        position: static;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 8px;
        max-width: none;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        padding: 0 0 8px 0;
        padding-left: 0;
        margin: 0 -4px 0 0;
    }

    .ajtb-programme-days::before {
        display: none;
    }

    .day-plan {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        padding: 0;
        gap: 8px;
        flex-shrink: 0;
    }

    .day-plan::before {
        display: none;
    }

    .ajtb-programme-days::-webkit-scrollbar {
        height: 6px;
    }

    .day-plan__title {
        flex-shrink: 0;
        font-size: 11px;
        margin: 0 8px 0 0;
        padding-right: 4px;
        white-space: nowrap;
    }

    .day-plan__item {
        flex-shrink: 0;
    }

    /* Pills : chaque jour en chip non rétréci */
    .day-plan__link {
        flex-shrink: 0;
        min-width: max-content;
        padding: 8px 12px;
    }

    .day-plan__label {
        white-space: nowrap;
    }

    /* Détails 100% width, pas d’overflow */
    .ajtb-programme-center {
        min-width: 0;
        overflow-x: hidden;
    }

    .ajtb-programme-mmt .ajtb-day-content-panel {
        padding: 16px;
    }

    .ajtb-programme-mmt .ajtb-block-mmt .ajtb-card-with-image,
    .ajtb-programme-mmt .ajtb-block-mmt .ajtb-card-wrap {
        max-width: 100%;
    }
}

/* ===================================
   Day Plan (legacy: left nav + timeline + content)
   =================================== */
.ajtb-day-plan.programme-container {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px;
    margin-top: 16px;
    display: grid;
    grid-template-columns: 220px 56px minmax(0, 1fr);
    column-gap: 16px;
    align-items: start;
}

/* Col 1 : liste des jours */
.ajtb-day-plan.programme-container .aj-day-plan-nav {
    grid-column: 1;
    grid-row: 1 / -1;
    width: 100%;
    max-width: 220px;
    margin-right: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Col 2+3 : zone timeline + contenu (une seule cellule grid, sous-grille à l’intérieur) */
.ajtb-day-plan.programme-container .aj-day-plan-content {
    grid-column: 2 / -1;
    min-width: 0;
    width: 100%;
}

/* Sous-grille : timeline 56px | contenu 1fr, pas de margin qui crée le vide */
.ajtb-day-plan.programme-container .ajtb-itinerary-timeline {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 20px;
    margin: 0;
    align-items: start;
}

/* Chaque ligne = marker + card comme cellules de la grille (display: contents) */
.ajtb-day-plan.programme-container .itinerary-day {
    display: contents;
}

.ajtb-day-plan.programme-container .day-marker {
    width: 100%;
    min-width: 0;
    justify-self: center;
}

/* Col contenu : pas de push, prend toute la largeur dispo */
.ajtb-day-plan.programme-container .day-card {
    min-width: 0;
    padding-left: 0;
    margin-left: 0;
}

.ajtb-day-plan.programme-container .day-card {
    padding: 0;
    border-radius: 12px;
    overflow: hidden;
}

.ajtb-day-plan.programme-container .day-header {
    padding: 24px 28px 16px;
}

.ajtb-day-plan.programme-container .day-body {
    padding: 0 28px 24px;
    min-width: 0;
}

/* Fallback si .programme-container absent (rétrocompat) */
.ajtb-day-plan {
    display: flex;
    gap: 24px;
    margin-top: 16px;
}

.aj-day-plan-nav {
    flex-shrink: 0;
    width: 200px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.aj-day-link {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px 14px;
    text-align: left;
    font-size: 14px;
    color: var(--ajtb-text);
    background: var(--ajtb-bg);
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius);
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.aj-day-link:hover {
    border-color: var(--ajtb-primary);
    background: var(--ajtb-primary-light);
}

.aj-day-link.active {
    border-color: var(--ajtb-primary);
    background: var(--ajtb-primary-light);
    font-weight: 600;
    color: var(--ajtb-primary);
}

.aj-day-nav-item.is-active {
    background: #eaf4ff;
    border-color: #0d6efd;
    font-weight: 600;
    color: #0d6efd;
}

.aj-day-nav-item.is-active .aj-day-link-num {
    background: #0d6efd;
    color: #fff;
}

.aj-day-link-num {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-border);
    color: var(--ajtb-text);
    border-radius: 50%;
    font-weight: 700;
    font-size: 13px;
}

.aj-day-link.active .aj-day-link-num {
    background: var(--ajtb-primary);
    color: #fff;
}

/* Titre du jour : ellipsis pour ne pas agrandir la colonne */
.aj-day-link-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aj-day-plan-content {
    flex: 1;
    min-width: 0;
}

.aj-day-panel {
    display: none;
}

.aj-day-panel.active {
    display: flex;
}

.aj-day-flight-wrap {
    margin-bottom: 20px;
}

/* Flight card v2 (programme/jour – partial flight-card.php → aj_render_flight_card) */
.aj-flight-card--v2 {
    background: #fff;
    border: 1px solid #e8edf5;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(16, 24, 40, 0.06);
    overflow: hidden;
    padding: 16px;
}

.aj-flight-card--removed {
    display: none !important;
}

/* Carte vol masquée par le filtre "Starting from" — empêche tout autre script de la réafficher */
.ajtb-flight-card-hidden.aj-flight-card,
.aj-flight-card.ajtb-flight-card-hidden {
    display: none !important;
}

.aj-flight-card--unavailable {
    opacity: 0.75;
}

/* Header: icon + VOL, title (origin → dest), badge Direct/N escales, subtitle */
.aj-flight-card--v2 .aj-flight-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.aj-flight-card--v2 .aj-flight-header__left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.aj-flight-card--v2 .aj-flight-header__icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-primary-light, #f2f6ff);
    color: var(--ajtb-primary, #3b82f6);
    flex-shrink: 0;
}

.aj-flight-card--v2 .aj-flight-header__label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ajtb-text-muted, #64748b);
}

.aj-flight-card--v2 .aj-flight-header__main {
    flex: 1;
    min-width: 0;
}

.aj-flight-card--v2 .aj-flight-header__title {
    margin: 0 0 2px 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--ajtb-text, #1e293b);
    line-height: 1.3;
}

.aj-flight-card--v2 .aj-flight-header__subtitle {
    margin: 0;
    font-size: 12px;
    color: var(--ajtb-text-muted, #64748b);
}

.aj-flight-card--v2 .aj-flight-header__departure-place {
    margin: 2px 0 0;
    font-size: 12px;
    color: var(--ajtb-text-muted, #64748b);
}

.aj-flight-card--v2 .aj-flight-header__badge-wrap {
    flex-shrink: 0;
}

.aj-flight-card--v2 .aj-flight-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.aj-flight-card--v2 .aj-flight-badge--direct {
    background: #dcfce7;
    color: #166534;
}

.aj-flight-card--v2 .aj-flight-badge--stops {
    background: #fef3c7;
    color: #8a5b00;
}

/* Timeline: origin col | center line + plane + duration | dest col */
.aj-flight-card--v2 .aj-flight-timeline {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    margin-bottom: 16px;
    border-top: 1px solid #e8edf5;
    border-bottom: 1px solid #e8edf5;
}

.aj-flight-card--v2 .aj-flight-timeline__col {
    flex: 0 0 auto;
    min-width: 0;
}

.aj-flight-card--v2 .aj-flight-timeline__col--origin {
    text-align: left;
}

.aj-flight-card--v2 .aj-flight-timeline__col--dest {
    text-align: right;
}

.aj-flight-card--v2 .aj-flight-time {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ajtb-text, #1e293b);
    margin-bottom: 2px;
}

.aj-flight-card--v2 .aj-flight-place {
    font-size: 12px;
    color: var(--ajtb-text-muted, #64748b);
}

.aj-flight-card--v2 .aj-flight-timeline__center {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    position: relative;
}

.aj-flight-card--v2 .aj-flight-timeline__center::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    background: var(--ajtb-border);
    margin-top: -1px;
    z-index: 0;
}

.aj-flight-card--v2 .aj-flight-timeline__dot,
.aj-flight-card--v2 .aj-flight-timeline__plane,
.aj-flight-card--v2 .aj-flight-timeline__duration {
    position: relative;
    z-index: 1;
}

.aj-flight-card--v2 .aj-flight-timeline__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ajtb-primary, #3b82f6);
    flex-shrink: 0;
}

.aj-flight-card--v2 .aj-flight-timeline__plane {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ajtb-primary, #3b82f6);
    background: #fff;
}

.aj-flight-card--v2 .aj-flight-timeline__duration {
    font-size: 12px;
    color: var(--ajtb-text-muted, #64748b);
    white-space: nowrap;
}

/* Footer: chips + actions */
.aj-flight-card--v2 .aj-flight-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.aj-flight-card--v2 .aj-flight-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.aj-flight-card--v2 .aj-chip {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    color: var(--ajtb-text, #1e293b);
    background: #f1f5f9;
    border: 1px solid var(--ajtb-border);
}

.aj-flight-card--v2 .aj-flight-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.aj-flight-card--v2 .aj-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition:
        background 0.2s,
        color 0.2s,
        border-color 0.2s;
}

.aj-btn--secondary {
    background: var(--ajtb-bg-light);
    color: var(--ajtb-text);
    border-color: var(--ajtb-border);
}

.aj-btn--secondary:hover {
    background: var(--ajtb-border-light);
}

.aj-btn--primary {
    background: var(--ajtb-primary, #3b82f6);
    color: #fff;
}

.aj-btn--primary:hover {
    background: var(--ajtb-primary-dark, #2563eb);
    color: #fff;
}

.aj-btn--icon {
    padding: 8px 10px;
    min-width: 36px;
}

.aj-flight-card--v2 .aj-flight-card__action.aj-flight-card__remove {
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-danger, #dc2626);
    text-decoration: none;
}

.aj-flight-card__action.aj-flight-card__remove:hover {
    text-decoration: underline;
}

.aj-flight-card--v2 .aj-flight-card__badge-wrap {
    padding: 12px 0 0;
    margin-top: 4px;
    border-top: 1px dashed var(--ajtb-border);
}

.aj-flight-card__badge--tentative {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #fef3c7;
    color: #8a5b00;
    font-size: 11px;
    font-weight: 700;
}

.aj-flight-card__badge-icon {
    display: inline-flex;
    align-items: center;
}

/* Responsive: timeline 2 rows, chips wrap */
@media (max-width: 767px) {
    .aj-flight-card--v2 {
        padding: 12px;
    }

    .aj-flight-card--v2 .aj-flight-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 12px;
    }

    .aj-flight-card--v2 .aj-flight-header__badge-wrap {
        width: 100%;
    }

    .aj-flight-card--v2 .aj-flight-timeline {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        padding: 16px 0;
    }

    .aj-flight-card--v2 .aj-flight-timeline__center {
        order: 0;
        flex: none;
        padding: 0 8px;
    }

    .aj-flight-timeline__center::before,
    .aj-flight-timeline__center::after {
        max-width: 100%;
    }

    .aj-flight-card--v2 .aj-flight-timeline__col--origin {
        order: -1;
        text-align: left;
        padding-bottom: 8px;
        border-bottom: 1px dashed var(--ajtb-border);
    }

    .aj-flight-card--v2 .aj-flight-timeline__col--dest {
        order: 1;
        text-align: left;
        padding-top: 8px;
    }

    .aj-flight-card--v2 .aj-flight-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .aj-flight-card--v2 .aj-flight-chips {
        justify-content: flex-start;
    }

    .aj-flight-card--v2 .aj-flight-actions {
        justify-content: flex-end;
    }
}

/* Transfer & Hotel cards: same width/padding as flight card */
.aj-transfer-card.aj-flight-card,
.aj-hotel-card.aj-flight-card {
    margin-bottom: 16px;
}

.aj-transfer-card__notes,
.aj-hotel-card__notes {
    padding: 0 16px 12px;
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.aj-hotel-card__name {
    font-size: 14px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin-bottom: 4px;
}

.aj-hotel-card__stars {
    color: var(--ajtb-primary);
    margin-left: 4px;
}

.aj-hotel-card__address,
.aj-hotel-card__meta {
    font-size: 12px;
    color: var(--ajtb-text-muted);
    margin-top: 2px;
}

.ajtb-day-transfer-block,
.ajtb-day-hotel-block {
    margin-bottom: 16px;
}

/* Banner image (jour) */
.ajtb-day-banner {
    width: 100%;
    margin-bottom: 20px;
    border-radius: var(--ajtb-radius);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.ajtb-day-banner img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    max-height: 280px;
}

/* Sections repliables (+ Vol Aller, + Transfert…) — style comme l’image */
.ajtb-collapse-section {
    margin-bottom: 20px;
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius);
    overflow: hidden;
    background: var(--ajtb-bg);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.ajtb-collapse-trigger {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 14px 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ajtb-text);
    background: var(--ajtb-bg-light);
    border: none;
    cursor: pointer;
    list-style: none;
    text-align: left;
}

.ajtb-collapse-trigger::-webkit-details-marker,
.ajtb-collapse-trigger::marker {
    display: none;
}

.ajtb-collapse-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    font-size: 18px;
    font-weight: 400;
    color: var(--ajtb-primary);
}

.ajtb-collapse-section .ajtb-collapse-icon::before {
    content: "+";
}

.ajtb-collapse-section[open] .ajtb-collapse-icon::before {
    content: "−";
}

.ajtb-collapse-body {
    padding: 16px;
    border-top: 1px solid var(--ajtb-border);
}

/* Grille 2 colonnes : Transfert + Hôtel côte à côte (même largeur) */
.ajtb-transfer-hotel-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ajtb-transfer-hotel-col {
    min-width: 0;
}

/* Transfert / Hôtel en section à part (comme les vols) : carte pleine largeur */
.ajtb-card-full-width {
    width: 100%;
    max-width: 100%;
}

.ajtb-card-with-image {
    background: #fff;
    border-radius: 20px;
    border: 1px solid var(--ajtb-border);
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(16, 24, 40, 0.08);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.ajtb-card-with-image.ajtb-card--transfer {
    flex-direction: row;
}

.ajtb-card-with-image.ajtb-card--hotel {
    flex-direction: column;
}

/* Hotel listing: images left, info right (same row) - override column */
.ajtb-card-with-image.ajtb-card--hotel.ajtb-hotel-listing {
    flex-direction: row;
}

.ajtb-hotel-listing {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    border-radius: var(--ajtb-radius-lg);
    border: 1px solid var(--ajtb-border);
    background: var(--ajtb-bg);
    box-shadow: var(--ajtb-shadow);
}

.ajtb-hotel-listing__media {
    display: flex;
    flex-direction: column;
    width: 280px;
    min-width: 280px;
    flex-shrink: 0;
    gap: 8px;
    padding: 12px 0 12px 12px;
}

.ajtb-hotel-main-image {
    width: 100%;
    height: 200px;
    border-radius: var(--ajtb-radius);
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}

.ajtb-hotel-thumbs {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
}

.ajtb-hotel-thumb {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    background-color: var(--ajtb-bg-gray);
    flex-shrink: 0;
}

.ajtb-hotel-thumb--viewall {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-text-muted);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
    line-height: 1.2;
    padding: 4px;
}

.ajtb-hotel-listing__body {
    flex: 1;
    min-width: 0;
    padding: 16px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ajtb-hotel-listing-card__rating {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ajtb-hotel-rating-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: 4px 10px;
    background: var(--ajtb-primary);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    border-radius: 8px;
}

.ajtb-hotel-rating-text {
    font-size: 13px;
    color: var(--ajtb-text);
}

.ajtb-hotel-listing-card__name {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ajtb-text);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ajtb-hotel-listing-card .ajtb-hotel-stars {
    color: #f59e0b;
    font-size: 14px;
    letter-spacing: 1px;
}

.ajtb-hotel-listing-card__location {
    margin: 0;
    font-size: 13px;
    color: var(--ajtb-text);
}

.ajtb-hotel-listing-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    font-size: 13px;
    color: var(--ajtb-text);
}

.ajtb-hotel-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ajtb-hotel-meta-icon {
    flex-shrink: 0;
    color: var(--ajtb-text-muted);
}

.ajtb-hotel-listing-card__room {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.ajtb-hotel-listing-card__room strong {
    font-size: 14px;
    color: var(--ajtb-text);
}

.ajtb-hotel-more-rooms {
    font-size: 13px;
    font-weight: 600;
    color: var(--ajtb-primary);
    text-decoration: none;
}

.ajtb-hotel-more-rooms:hover {
    text-decoration: underline;
}

.ajtb-hotel-listing-card__room-detail {
    margin: 0;
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.ajtb-hotel-listing-card__meal {
    margin: 0;
    font-size: 13px;
    color: var(--ajtb-text);
    display: flex;
    align-items: center;
    gap: 6px;
}

.ajtb-hotel-meal-icon {
    flex-shrink: 0;
    color: var(--ajtb-text-muted);
}

.ajtb-hotel-listing-card__amenities {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    font-size: 13px;
    color: var(--ajtb-text);
}

.ajtb-hotel-listing-card__amenities li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ajtb-hotel-check {
    flex-shrink: 0;
    color: var(--ajtb-success);
}

@media (max-width: 767px) {
    .ajtb-card-with-image.ajtb-card--hotel.ajtb-hotel-listing {
        flex-direction: column;
    }

    .ajtb-hotel-listing__media {
        width: 100%;
        min-width: 0;
        padding: 12px 12px 0;
    }

    .ajtb-hotel-main-image {
        height: 180px;
    }

    .ajtb-hotel-thumb {
        width: 56px;
        height: 56px;
    }

    .ajtb-hotel-listing__body {
        padding: 14px 16px 18px;
    }
}

.ajtb-card-with-image.ajtb-card--hotel .ajtb-card-image {
    height: 220px;
}

.ajtb-card-image {
    width: 100%;
    height: 160px;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
    position: relative;
}

.ajtb-card-with-image.ajtb-card--transfer .ajtb-card-image {
    width: 220px;
    min-height: 180px;
}

.ajtb-card-image:not(.has-image)::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.12),
        rgba(255, 255, 255, 0)
    );
}

.ajtb-card-image:not(.has-image)::before {
    content: "\2708";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    color: rgba(0, 0, 0, 0.35);
}

.ajtb-card-with-image.ajtb-card--hotel
    .ajtb-card-image:not(.has-image)::before {
    content: "\1F3E8";
}

.ajtb-card-with-image.ajtb-card--transfer
    .ajtb-card-image:not(.has-image)::before {
    content: "\1F697";
}

.ajtb-card-image--transfer {
    background-color: #e8f4fc;
    background-image: linear-gradient(135deg, #e8f4fc 0%, #d0e8f7 100%);
}

.ajtb-card-image--hotel {
    background-color: #f5f0e8;
    background-image: linear-gradient(135deg, #f5f0e8 0%, #e8dfd0 100%);
}

.ajtb-card-inner {
    padding: 12px 14px;
    flex: 1;
    min-width: 0;
}

.ajtb-card-inner .aj-flight-card {
    margin-bottom: 0;
    box-shadow: none;
    border: none;
}

/* Transfer + Hotel cards (shared language) */
.ajtb-transfer-card,
.ajtb-hotel-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    color: var(--ajtb-text);
}

.ajtb-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ajtb-card-head-left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ajtb-card-head-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ajtb-card-head-text {
    min-width: 0;
}

.ajtb-card-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--ajtb-text);
}

.ajtb-card-subtitle {
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.ajtb-card-date {
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-text);
    background: var(--ajtb-bg-light);
    border: 1px solid var(--ajtb-border);
    padding: 4px 10px;
    border-radius: 999px;
    white-space: nowrap;
}

.ajtb-card-divider {
    height: 1px;
    background: var(--ajtb-border);
    opacity: 0.8;
}

.ajtb-card-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ajtb-card-section-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--ajtb-text);
}

.ajtb-card-action {
    background: transparent;
    border: 0;
    color: var(--ajtb-primary);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ajtb-card-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ajtb-card-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--ajtb-text);
}

.ajtb-card-route {
    font-size: 13px;
    color: var(--ajtb-text-muted);
}

.ajtb-card-info {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.ajtb-card-info-item {
    display: inline-flex;
    align-items: center;
}

.ajtb-card-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ajtb-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    font-weight: 600;
}

.ajtb-card-notes {
    font-size: 12px;
    color: var(--ajtb-text-muted);
    background: var(--ajtb-bg-light);
    padding: 8px 12px;
    border-radius: 10px;
}

.ajtb-card-footer {
    display: flex;
    align-items: center;
}

.ajtb-card-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 12px;
    font-weight: 700;
}

/* Hotel specifics */
.ajtb-hotel-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ajtb-hotel-name-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ajtb-hotel-avatar {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ajtb-hotel-name {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ajtb-hotel-name-text {
    font-size: 15px;
    font-weight: 700;
    color: var(--ajtb-text);
}

.ajtb-hotel-stars {
    color: #f59e0b;
    font-size: 12px;
    letter-spacing: 1px;
}

.ajtb-hotel-dates {
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

@media (max-width: 991px) {
    .ajtb-card-with-image.ajtb-card--transfer {
        flex-direction: column;
    }

    .ajtb-card-with-image.ajtb-card--transfer .ajtb-card-image {
        width: 100%;
        height: 160px;
    }
}

.ajtb-card-wrap {
    margin-bottom: 0;
}

.ajtb-collapse-body .ajtb-card-wrap .aj-flight-card {
    border: none;
    box-shadow: none;
}

/* Tablet 992–1199px : grille 200px | 48px | 1fr */
@media (min-width: 992px) and (max-width: 1199px) {
    .ajtb-day-plan.programme-container {
        grid-template-columns: 200px 48px minmax(0, 1fr);
        column-gap: 16px;
    }

    .ajtb-day-plan.programme-container .aj-day-plan-nav {
        max-width: 200px;
    }

    .ajtb-day-plan.programme-container .ajtb-itinerary-timeline {
        grid-template-columns: 48px minmax(0, 1fr);
    }
}

/* <992px : stack (jours en haut, contenu en dessous), annuler la grille */
@media (max-width: 991px) {
    .ajtb-day-plan,
    .ajtb-day-plan.programme-container {
        display: flex;
        flex-direction: column;
        padding-left: 16px;
        padding-right: 16px;
    }

    .aj-day-plan-nav,
    .ajtb-day-plan.programme-container .aj-day-plan-nav {
        width: 100%;
        max-width: none;
        grid-column: auto;
        grid-row: auto;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .ajtb-day-plan.programme-container .aj-day-plan-content {
        grid-column: auto;
        width: 100%;
    }

    .ajtb-day-plan.programme-container .ajtb-itinerary-timeline {
        display: block;
        grid-template-columns: none;
        margin: 0;
    }

    .ajtb-day-plan.programme-container .itinerary-day {
        display: flex;
        gap: 16px;
        margin-bottom: 20px;
    }

    .ajtb-day-plan.programme-container .itinerary-day.last {
        margin-bottom: 0;
    }

    .ajtb-day-plan.programme-container .day-marker {
        width: 56px;
        min-width: 56px;
        justify-self: auto;
        flex-shrink: 0;
    }

    .ajtb-day-plan.programme-container .day-card {
        flex: 1;
        min-width: 0;
    }

    .aj-day-link-title {
        white-space: normal;
    }

    .ajtb-transfer-hotel-row {
        grid-template-columns: 1fr;
    }
}

/* ===================================
   Itinerary Timeline
   =================================== */
.ajtb-itinerary-timeline {
    position: relative;
}

.itinerary-day {
    display: flex;
    gap: 24px;
    margin-bottom: 20px;
}

.itinerary-day.last {
    margin-bottom: 0;
}

.day-marker {
    position: relative;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.day-marker .day-number {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    border-radius: 50%;
    z-index: 1;
}

.day-marker .marker-line {
    position: absolute;
    top: 40px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: calc(100% + 20px);
    background: var(--ajtb-border);
}

.day-card {
    flex: 1;
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
    overflow: hidden;
    border: 1px solid var(--ajtb-border-light);
}

.ajtb-day-plan.programme-container .day-card {
    border-radius: 12px;
}

/* Vol Aller (Jour 1) / Vol Retour (dernier jour) dans le contenu du jour */
.ajtb-day-flight-block {
    margin-bottom: 10px;
}

.ajtb-day-flight-block:last-of-type {
    margin-bottom: 20px;
}

.ajtb-day-flight-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ajtb-primary);
    margin: 0 0 8px 0;
    padding: 0;
}

.day-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.day-header:hover {
    background: var(--ajtb-bg);
}

.day-header-content {
    flex: 1;
}

.day-header .day-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--ajtb-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.day-header .day-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin: 0;
}

.day-toggle {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-bg);
    border: 1px solid var(--ajtb-border);
    border-radius: 50%;
    color: var(--ajtb-text-muted);
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.day-toggle:hover {
    border-color: var(--ajtb-primary);
    color: var(--ajtb-primary);
}

.day-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.day-body {
    padding: 0 0 12px 0;
    /* Contenu bien cadré, pas d'espace vide */
}

.day-body .day-image {
    margin-bottom: 10px;
    border-radius: var(--ajtb-radius);
    overflow: hidden;
}

.day-body .day-image img {
    width: 100%;
    height: auto;
    display: block;
}

.day-body .day-description,
.day-body .day-notes {
    font-size: 14px;
    line-height: 1.7;
    color: var(--ajtb-text-light);
    margin-bottom: 10px;
}

/* Description en premier dans chaque jour */
.aj-day-programme-block--first {
    margin-bottom: 12px;
}

/* Compact: limit height of long notes (Traveler-style accordion) */
.aj-day-notes-clamp {
    max-height: 120px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    line-clamp: 5;
}

.aj-day-free-label {
    color: var(--ajtb-text-muted);
    font-style: italic;
}

/* Description du jour : affichage complet (pas de "Lire plus") */
.aj-day-programme-block .aj-day-notes-wrap .aj-day-notes-content {
    max-height: none;
    overflow: visible;
}

/* Long notes: excerpt + Lire plus (collapse) - conservé si utilisé ailleurs */
.aj-day-notes-wrap.aj-day-notes-collapsed .aj-day-notes-content {
    max-height: 5.5em;
    overflow: hidden;
}

.aj-day-notes-wrap.aj-day-notes-expanded .aj-day-notes-content {
    max-height: none;
}

.aj-day-notes-read-more {
    margin-top: 6px;
    padding: 4px 0;
    font-size: 13px;
    color: var(--ajtb-text);
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
}

.aj-day-notes-read-more:hover {
    color: var(--ajtb-text);
}

.aj-day-notes-wrap.aj-day-notes-expanded .aj-day-notes-read-more {
    display: none;
}

/* WP programme inside day 1 (compact list) - kept for fallback list only */
.aj-day-wp-program {
    margin: 12px 0 16px;
    padding: 10px 0 10px 12px;
    border-left: 3px solid var(--ajtb-primary);
    background: var(--ajtb-bg-light);
    border-radius: 0 var(--ajtb-radius) var(--ajtb-radius) 0;
}

.aj-day-wp-program-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin: 0 0 8px 0;
}

.aj-day-wp-program-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.aj-day-wp-program-item {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--ajtb-border-light);
}

.aj-day-wp-program-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.aj-day-wp-program-item-title {
    font-weight: 600;
    font-size: 14px;
    color: var(--ajtb-text);
    display: block;
}

.aj-day-wp-program-item-desc {
    font-size: 13px;
    color: var(--ajtb-text-muted);
    line-height: 1.5;
    margin-top: 4px;
}

.day-body .day-details {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding: 16px;
    background: var(--ajtb-bg);
    border-radius: var(--ajtb-radius);
}

.day-details .detail-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
}

.day-details .detail-item svg {
    color: var(--ajtb-primary);
}

.day-details .detail-label {
    color: var(--ajtb-text-muted);
}

.day-details .detail-value {
    font-weight: 500;
    color: var(--ajtb-text);
}

/* Day mode badge & activities list */
.badge-free-day {
    background: var(--ajtb-muted, #6c757d);
    color: #fff;
    font-size: 11px;
    padding: 4px 8px;
    margin-left: 8px;
}

.badge-mandatory {
    background: var(--ajtb-primary, #0d6efd);
    color: #fff;
    font-size: 10px;
    padding: 2px 6px;
    margin-left: 6px;
}

.day-activities-list {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    border-top: 1px solid var(--ajtb-border);
    padding-top: 8px;
}

.day-activity-item {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.day-activity-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.day-activity-item .activity-title {
    font-weight: 600;
    color: var(--ajtb-text);
}

.day-activity-item .activity-description {
    margin-top: 6px;
    font-size: 14px;
    color: var(--ajtb-text-muted);
    line-height: 1.5;
}

.day-activity-item .ajtb-btn-remove-activity {
    margin-left: 8px;
    padding: 4px 10px;
    font-size: 12px;
    color: var(--ajtb-danger, #dc3545);
    background: transparent;
    border: 1px solid var(--ajtb-danger, #dc3545);
    border-radius: 4px;
    cursor: pointer;
}

.day-activity-item .ajtb-btn-remove-activity:hover:not(:disabled) {
    background: var(--ajtb-danger, #dc3545);
    color: #fff;
}

.day-activity-item .ajtb-btn-remove-activity:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Ancien bloc "+ Ajouter une activité" supprimé : CTA "Add to day" toujours dans la liste */
.day-add-activity {
    display: none !important;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px dashed var(--ajtb-border);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.day-add-activity label {
    font-size: 14px;
    font-weight: 500;
    margin: 0;
}

.day-add-activity .ajtb-add-activity-select {
    min-width: 200px;
    padding: 6px 10px;
    border-radius: 4px;
    border: 1px solid var(--ajtb-border);
}

.day-add-activity .ajtb-btn-add-activity {
    padding: 6px 14px;
    font-size: 14px;
    background: var(--ajtb-primary, #0d6efd);
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.day-add-activity .ajtb-btn-add-activity:hover:not(:disabled) {
    opacity: 0.9;
}

.day-add-activity .ajtb-btn-add-activity:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Bouton "Ajouter une activité" (remplace le select) */
.day-add-activity .ajtb-btn-open-activity-modal {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    background: var(--ajtb-primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        transform 0.1s ease;
}

.day-add-activity .ajtb-btn-open-activity-modal:hover {
    background: var(--ajtb-primary-dark);
    transform: translateY(-1px);
}

.day-add-activity .ajtb-btn-open-activity-modal:active {
    transform: translateY(0);
}

/* ===================================
   Activity Modal (reconstruit: ajtb-actmod)
   =================================== */
.ajtb-actmod {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 0.2s ease,
        visibility 0.2s ease;
}
.ajtb-actmod.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.ajtb-actmod-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}
.ajtb-actmod-box {
    position: relative;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    max-width: 880px;
    width: 92%;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.ajtb-actmod-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e9ef;
}
.ajtb-actmod-title {
    font-size: 18px;
    font-weight: 700;
    margin: 0;
    color: #1a1d21;
}
.ajtb-actmod-close {
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    background: #f0f2f5;
    border-radius: 8px;
    font-size: 22px;
    line-height: 1;
    color: #5c6370;
    cursor: pointer;
}
.ajtb-actmod-close:hover {
    background: #e5e9ef;
    color: #1a1d21;
}
.ajtb-actmod-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}
.ajtb-actmod-search-wrap {
    margin-bottom: 16px;
}
.ajtb-actmod-search {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #e5e9ef;
    border-radius: 8px;
    font-size: 14px;
}
.ajtb-actmod-search:focus {
    outline: none;
    border-color: var(--ajtb-primary, #2563eb);
}
.ajtb-actmod-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 32px;
    color: #6b7280;
    font-size: 14px;
}
.ajtb-actmod-loading[hidden] {
    display: none !important;
}
.ajtb-actmod-spinner {
    width: 24px;
    height: 24px;
    border: 2px solid #e5e9ef;
    border-top-color: var(--ajtb-primary, #2563eb);
    border-radius: 50%;
    animation: ajtb-spin 0.7s linear infinite;
}
@keyframes ajtb-spin {
    to {
        transform: rotate(360deg);
    }
}
.ajtb-actmod-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.ajtb-actmod-empty {
    padding: 40px 20px;
    text-align: center;
    color: #6b7280;
    font-size: 14px;
}
.ajtb-actmod-empty[hidden] {
    display: none !important;
}
.ajtb-actmod-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
}
.ajtb-actmod-pagination[hidden] {
    display: none !important;
}
.ajtb-actmod-pagination button {
    padding: 6px 12px;
    font-size: 13px;
    border: 1px solid #e5e9ef;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}
.ajtb-actmod-pagination button:hover {
    background: #f0f2f5;
    border-color: var(--ajtb-primary, #2563eb);
}
.ajtb-actmod-row {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    background: #fff;
    border: 1px solid #e5e9ef;
    border-radius: 10px;
    padding: 12px;
}
.ajtb-actmod-row-media {
    width: 96px;
}
.ajtb-actmod-row-img,
.ajtb-actmod-row-placeholder {
    width: 96px;
    height: 72px;
    border-radius: 8px;
    object-fit: cover;
    background: #f0f2f5;
}
.ajtb-actmod-row-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
}
.ajtb-actmod-row-content {
    min-width: 0;
}
.ajtb-actmod-row-title {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 4px 0;
    color: #1a1d21;
    line-height: 1.3;
}
.ajtb-actmod-row-meta {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 6px;
}
.ajtb-actmod-row-desc {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
    line-height: 1.4;
    line-clamp: 2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ajtb-actmod-row-actions {
    display: flex;
    align-items: center;
}
.ajtb-actmod-btn-add {
    flex-shrink: 0;
    min-width: 90px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: var(--ajtb-primary, #2563eb);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
#ajtb-activity-modal .ajtb-actmod-btn-add {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.ajtb-actmod-btn-add:hover:not(:disabled) {
    background: var(--ajtb-primary-dark, #1d4ed8);
}
.ajtb-actmod-btn-add:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}
@media (max-width: 700px) {
    .ajtb-actmod-row {
        grid-template-columns: 1fr;
    }
    .ajtb-actmod-row-media {
        width: 100%;
    }
    .ajtb-actmod-row-img,
    .ajtb-actmod-row-placeholder {
        width: 100%;
        height: 160px;
    }
    .ajtb-actmod-row-actions {
        justify-content: flex-start;
    }
}

/* ===================================
   Summary Table
   =================================== */
.ajtb-summary-table {
    border: 1px solid #d9dfe8;
    background: #fff;
}

.ajtb-summary-day {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    border-bottom: 1px solid #d9dfe8;
}

.ajtb-summary-day:last-child {
    border-bottom: 0;
}

.ajtb-summary-day__meta {
    padding: 18px 16px;
    background: #f5f6f8;
    border-right: 1px solid #d9dfe8;
}

.ajtb-summary-day__title {
    font-size: 16px;
    font-weight: 700;
    color: #24344d;
    line-height: 1.2;
}

.ajtb-summary-day__date {
    margin-top: 4px;
    font-size: 13px;
    color: #677489;
    line-height: 1.3;
}

.ajtb-summary-day__content {
    min-width: 0;
}

.ajtb-summary-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-bottom: 1px solid #e5e9ef;
}

.ajtb-summary-row:last-child {
    border-bottom: 0;
}

.ajtb-summary-cell {
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-right: 1px solid #e5e9ef;
}

.ajtb-summary-cell:last-child {
    border-right: 0;
}

.ajtb-summary-cell.is-empty {
    background: #fafbfc;
}

.ajtb-summary-cell__icon {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border-radius: 6px;
    background: #dbeafe;
    position: relative;
}

.ajtb-summary-cell__icon::before {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    color: #1e40af;
    content: "I";
}

.ajtb-summary-cell__icon--transfer {
    background: #e0f2fe;
}

.ajtb-summary-cell__icon--transfer::before {
    content: "T";
    color: #0369a1;
}

.ajtb-summary-cell__icon--hotel {
    background: #ede9fe;
}

.ajtb-summary-cell__icon--hotel::before {
    content: "H";
    color: #6d28d9;
}

.ajtb-summary-cell__icon--activity {
    background: #dcfce7;
}

.ajtb-summary-cell__icon--activity::before {
    content: "A";
    color: #15803d;
}

.ajtb-summary-cell__icon--meal {
    background: #fef3c7;
}

.ajtb-summary-cell__icon--meal::before {
    content: "M";
    color: #b45309;
}

.ajtb-summary-cell__icon--flight {
    background: #fee2e2;
}

.ajtb-summary-cell__icon--flight::before {
    content: "F";
    color: #b91c1c;
}

.ajtb-summary-cell__icon--empty {
    background: #e5e7eb;
}

.ajtb-summary-cell__icon--empty::before {
    content: "—";
    color: #6b7280;
}

.ajtb-summary-cell__text {
    min-width: 0;
    font-size: 15px;
    line-height: 1.3;
    color: #1f2937;
    word-break: break-word;
}

@media (max-width: 900px) {
    .ajtb-summary-day {
        grid-template-columns: 1fr;
    }

    .ajtb-summary-day__meta {
        border-right: 0;
        border-bottom: 1px solid #d9dfe8;
    }
}

@media (max-width: 640px) {
    .ajtb-summary-row {
        grid-template-columns: 1fr;
    }

    .ajtb-summary-cell {
        border-right: 0;
        border-bottom: 1px solid #e5e9ef;
    }

    .ajtb-summary-row .ajtb-summary-cell:last-child {
        border-bottom: 0;
    }
}

/* ===================================
   Activity Modal (legacy classes kept for other modals)
   =================================== */
.ajtb-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 0.2s ease,
        visibility 0.2s ease;
}

.ajtb-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.ajtb-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(2px);
}

.ajtb-modal-content {
    position: relative;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    max-width: 900px;
    width: 90%;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(0.95);
    transition: transform 0.2s ease;
}

.ajtb-modal.is-open .ajtb-modal-content {
    transform: scale(1);
}

.ajtb-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 28px;
    border-bottom: 1px solid var(--ajtb-border);
}

.ajtb-modal-title {
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    color: var(--ajtb-text);
}

.ajtb-modal-close {
    background: transparent;
    border: none;
    padding: 4px;
    cursor: pointer;
    color: var(--ajtb-text-muted);
    transition: color 0.2s ease;
    line-height: 1;
}

.ajtb-modal-close:hover {
    color: var(--ajtb-text);
}

.ajtb-modal-body {
    padding: 24px 28px;
    overflow-y: auto;
    flex: 1;
}

/* Search bar */
.ajtb-activity-modal-search {
    position: relative;
    margin-bottom: 24px;
}

.ajtb-activity-search-input {
    width: 100%;
    padding: 12px 16px 12px 44px;
    font-size: 15px;
    border: 2px solid var(--ajtb-border);
    border-radius: 10px;
    transition: border-color 0.2s ease;
}

.ajtb-activity-search-input:focus {
    outline: none;
    border-color: var(--ajtb-primary);
}

.ajtb-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ajtb-text-muted);
    pointer-events: none;
}

/* Activities grid: 3 cols desktop, 2 tablet, 1 mobile */
.ajtb-activity-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

@media (max-width: 1024px) {
    .ajtb-activity-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .ajtb-activity-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* Activity card */
.ajtb-activity-card {
    background: #fff;
    border: 1px solid var(--ajtb-border);
    border-radius: 12px;
    overflow: hidden;
    transition:
        box-shadow 0.2s ease,
        transform 0.2s ease;
    display: flex;
    flex-direction: column;
}

.ajtb-activity-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.ajtb-activity-card-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--ajtb-bg-gray);
    position: relative;
}

.ajtb-activity-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ajtb-activity-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ajtb-text-muted);
    background: var(--ajtb-bg-light);
}

.ajtb-activity-card-content {
    padding: 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.ajtb-activity-card-title {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 8px 0;
    color: var(--ajtb-text);
    line-height: 1.3;
}

.ajtb-activity-card-desc {
    font-size: 13px;
    color: var(--ajtb-text-muted);
    margin: 0 0 12px 0;
    line-height: 1.5;
    flex: 1;
    min-height: 0;
    max-height: 3.6em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.ajtb-activity-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.ajtb-activity-duration,
.ajtb-activity-location {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ajtb-activity-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--ajtb-border-light);
    flex-shrink: 0;
}

.ajtb-activity-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--ajtb-primary);
}

/* Prix en DH dans le modal (style Ajinsafro) */
.ajtb-activity-card-footer .ajtb-activity-price {
    color: var(--ajtb-primary);
}

.ajtb-btn-add-from-modal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 80px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    background: var(--ajtb-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s ease;
    white-space: nowrap;
}

.ajtb-btn-add-from-modal:hover:not(:disabled) {
    background: var(--ajtb-primary-dark);
}

.ajtb-btn-add-from-modal:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Forcer la visibilité du bouton Ajouter dans le modal (priorité sur thème/autres CSS) */
#ajtb-activity-modal .ajtb-activity-card-footer .ajtb-btn-add-from-modal {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Loading skeleton */
.ajtb-activity-loading {
    margin-bottom: 24px;
}

.ajtb-activity-skeleton-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media (max-width: 1024px) {
    .ajtb-activity-skeleton-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .ajtb-activity-skeleton-grid {
        grid-template-columns: 1fr;
    }
}

.ajtb-activity-skeleton-card {
    background: #fff;
    border: 1px solid var(--ajtb-border);
    border-radius: 12px;
    overflow: hidden;
    padding: 16px;
}

.ajtb-skeleton-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 8px;
    margin-bottom: 12px;
}

.ajtb-skeleton-title {
    height: 20px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 4px;
    margin-bottom: 8px;
    width: 80%;
}

.ajtb-skeleton-price {
    height: 16px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 4px;
    width: 40%;
}

@keyframes skeleton-loading {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* Empty state */
.ajtb-activity-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--ajtb-text-muted);
}

/* Pagination */
.ajtb-activity-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--ajtb-border);
}

.ajtb-pagination {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ajtb-pagination-btn {
    padding: 8px 16px;
    font-size: 14px;
    background: var(--ajtb-bg);
    color: var(--ajtb-text);
    border: 1px solid var(--ajtb-border);
    border-radius: 6px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        border-color 0.2s ease;
}

.ajtb-pagination-btn:hover {
    background: var(--ajtb-bg-light);
    border-color: var(--ajtb-primary);
}

.ajtb-pagination-info {
    font-size: 14px;
    color: var(--ajtb-text-muted);
}

/* Mini modal (edit) */
.ajtb-modal-small .ajtb-modal-content {
    max-width: 500px;
}

/* Form styles */
.ajtb-form-group {
    margin-bottom: 20px;
}

.ajtb-form-group label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--ajtb-text);
}

.ajtb-form-input,
.ajtb-form-textarea {
    width: 100%;
    padding: 10px 12px;
    font-size: 14px;
    border: 1px solid var(--ajtb-border);
    border-radius: 6px;
    transition: border-color 0.2s ease;
    font-family: inherit;
}

.ajtb-form-input:focus,
.ajtb-form-textarea:focus {
    outline: none;
    border-color: var(--ajtb-primary);
}

.ajtb-form-textarea {
    resize: vertical;
    min-height: 80px;
}

.ajtb-form-help {
    display: block;
    font-size: 12px;
    color: var(--ajtb-text-muted);
    margin-top: 4px;
}

.ajtb-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ajtb-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--ajtb-border);
}

.ajtb-btn-secondary {
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 500;
    background: var(--ajtb-bg);
    color: var(--ajtb-text);
    border: 1px solid var(--ajtb-border);
    border-radius: 6px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        border-color 0.2s ease;
}

.ajtb-btn-secondary:hover {
    background: var(--ajtb-bg-light);
    border-color: var(--ajtb-primary);
}

.ajtb-btn-primary {
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 600;
    background: var(--ajtb-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.ajtb-btn-primary:hover:not(:disabled) {
    background: var(--ajtb-primary-dark);
}

.ajtb-btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Day activity item — PRO card design with image */
.day-activity-item.day-activity-card-pro {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding: 0;
    margin-bottom: 10px;
    border: 1px solid var(--ajtb-border, #e8e8e8);
    border-radius: 14px;
    background: var(--ajtb-bg, #fff);
    overflow: hidden;
    transition:
        box-shadow 0.25s ease,
        border-color 0.2s ease;
}

.day-activity-item.day-activity-card-pro:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.06);
}

.day-activity-item.day-activity-card-pro:last-child {
    margin-bottom: 0;
}

.day-activity-item.day-activity-card-pro .day-activity-item-content {
    display: flex;
    flex: 1;
    min-width: 0;
    gap: 0;
    align-items: stretch;
}

.day-activity-image-wrap {
    flex-shrink: 0;
}

.day-activity-item.day-activity-card-pro .day-activity-image {
    width: 160px;
    min-height: 120px;
    height: 100%;
    min-height: 120px;
    border-radius: 0;
    overflow: hidden;
    background: linear-gradient(145deg, #f0f2f5 0%, #e4e7ec 100%);
}

.day-activity-item.day-activity-card-pro .day-activity-image img {
    width: 100%;
    height: 100%;
    min-height: 120px;
    object-fit: cover;
    display: block;
}

.day-activity-image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #f5f6f8 0%, #eaedf1 100%);
}

.day-activity-image-icon {
    color: #b0b8c4;
    display: flex;
    align-items: center;
    justify-content: center;
}

.day-activity-item.day-activity-card-pro .day-activity-details {
    flex: 1;
    min-width: 0;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.day-activity-item.day-activity-card-pro .day-activity-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 8px;
}

.day-activity-item.day-activity-card-pro .activity-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--ajtb-text, #1a1a1a);
    flex: 1;
    min-width: 0;
    letter-spacing: -0.01em;
}

.day-activity-item.day-activity-card-pro .activity-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--ajtb-primary, #2563eb);
    white-space: nowrap;
}

.day-activity-item.day-activity-card-pro .activity-time {
    font-size: 13px;
    color: var(--ajtb-text-muted, #64748b);
    margin-bottom: 8px;
}

.day-activity-item.day-activity-card-pro .activity-description {
    font-size: 14px;
    color: var(--ajtb-text-muted, #64748b);
    line-height: 1.55;
    margin-top: 4px;
}

.day-activity-item.day-activity-card-pro .day-activity-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
    padding: 12px 14px;
    align-items: center;
    border-left: 1px solid var(--ajtb-border, #e8e8e8);
    background: rgba(0, 0, 0, 0.02);
}

.ajtb-btn-edit-activity {
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 500;
    background: var(--ajtb-bg, #fff);
    color: var(--ajtb-text, #1a1a1a);
    border: 1px solid var(--ajtb-border, #e8e8e8);
    border-radius: 8px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

.ajtb-btn-edit-activity:hover {
    background: var(--ajtb-bg-light, #f8fafc);
    border-color: var(--ajtb-primary, #2563eb);
    color: var(--ajtb-primary, #2563eb);
}

.day-activity-item .ajtb-btn-remove-activity {
    margin-left: 0;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 500;
    background: #fff;
    color: #b91c1c;
    border: 1px solid rgba(185, 28, 28, 0.35);
    border-radius: 8px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.day-activity-item .ajtb-btn-remove-activity:hover:not(:disabled) {
    background: #b91c1c;
    color: #fff;
    border-color: #b91c1c;
}

.day-activity-item .ajtb-btn-remove-activity:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.day-activity-item.day-no-activities {
    padding: 24px;
    text-align: center;
    color: var(--ajtb-text-muted, #64748b);
    font-style: italic;
    border-radius: 14px;
    border: 1px dashed var(--ajtb-border, #e8e8e8);
}

/* Add activity: minimal – bouton seul, style discret */
.day-activity-item.day-activity-empty-card {
    list-style: none;
    margin: 0 0 6px 0;
    padding: 0;
}

.day-activity-item.day-activity-empty-card .ajtb-btn-add-to-day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-primary);
    background: transparent;
    border: 1px dashed var(--ajtb-border);
    border-radius: 999px;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        color 0.2s ease;
    white-space: nowrap;
}

.day-activity-item.day-activity-empty-card
    .ajtb-btn-add-to-day:hover:not(:disabled) {
    border-color: var(--ajtb-primary);
    background: var(--ajtb-primary-light);
}

.day-activity-item.day-activity-empty-card
    .ajtb-btn-add-to-day:active:not(:disabled) {
    background: var(--ajtb-primary-light);
}

.day-activity-item.day-activity-empty-card .ajtb-btn-add-to-day:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ajtb-btn-add-to-day-icon {
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
}

/* Fallback si le bouton est utilisé ailleurs (sans la card) */
.ajtb-btn-add-to-day {
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 999px;
    cursor: pointer;
    border: 1px solid transparent;
    transition:
        background 0.2s ease,
        border-color 0.2s ease;
}

.ajtb-btn-add-to-day:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Responsive modal */
@media (max-width: 768px) {
    .ajtb-modal-content {
        width: 95%;
        max-height: 95vh;
    }

    .ajtb-modal-header,
    .ajtb-modal-body {
        padding: 20px;
    }

    .ajtb-activity-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ajtb-activity-skeleton-grid {
        grid-template-columns: 1fr;
    }

    .ajtb-form-row {
        grid-template-columns: 1fr;
    }

    .day-activity-item.day-activity-card-pro {
        flex-direction: column;
    }

    .day-activity-item.day-activity-card-pro .day-activity-item-content {
        flex-direction: column;
    }

    .day-activity-item.day-activity-card-pro .day-activity-image-wrap,
    .day-activity-item.day-activity-card-pro .day-activity-image {
        width: 100%;
        min-height: 200px;
        height: 200px;
    }

    .day-activity-item.day-activity-card-pro .day-activity-image img {
        min-height: 200px;
    }

    .day-activity-item.day-activity-card-pro .day-activity-actions {
        width: 100%;
        justify-content: flex-end;
        border-left: none;
        border-top: 1px solid var(--ajtb-border, #e8e8e8);
    }
}

/* WP Programme (tours_program list: 08:00... + description) */
.aj-program-list {
    margin-top: 16px;
}

.aj-program-item {
    padding: 14px 16px;
    margin-bottom: 12px;
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius, 8px);
    background: var(--ajtb-bg, #fff);
}

.aj-program-item:last-child {
    margin-bottom: 0;
}

.aj-program-item-title {
    margin: 0 0 8px 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--ajtb-text);
}

.aj-program-item-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--ajtb-text-muted);
}

.aj-program-item-desc p:last-child {
    margin-bottom: 0;
}

.program-style-style1 .aj-program-item {
    border-left: 3px solid var(--ajtb-primary, #0d6efd);
}

.program-style-style2 .aj-program-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.program-style-style2 .aj-program-item {
    border-left-width: 4px;
    border-left-color: var(--ajtb-primary, #0d6efd);
}

/* Itinerary Actions */
.itinerary-actions {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--ajtb-border);
}

/* ===================================
   Include/Exclude
   =================================== */
.ajtb-include-exclude-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.column-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid;
}

.column-header.included {
    color: var(--ajtb-success);
    border-color: var(--ajtb-success);
}

.column-header.excluded {
    color: var(--ajtb-danger);
    border-color: var(--ajtb-danger);
}

.items-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.items-list .item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ajtb-border-light);
}

.items-list .item:last-child {
    border-bottom: none;
}

.items-list .item-icon {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 2px;
}

.items-list .item.included .item-icon {
    background: var(--ajtb-success-light);
    color: var(--ajtb-success);
}

.items-list .item.excluded .item-icon {
    background: var(--ajtb-danger-light);
    color: var(--ajtb-danger);
}

.items-list .item-text {
    font-size: 14px;
    color: var(--ajtb-text);
    line-height: 1.5;
}

.ajtb-note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    padding: 12px 16px;
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
    font-size: 13px;
    color: var(--ajtb-text-muted);
}

.ajtb-note svg {
    flex-shrink: 0;
    color: var(--ajtb-text-muted);
}

/* ===================================
   FAQ Accordion
   =================================== */
.ajtb-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius);
    overflow: hidden;
}

.faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    background: var(--ajtb-bg-light);
    border: none;
    cursor: pointer;
    text-align: left;
    transition: var(--ajtb-transition);
}

.faq-question:hover {
    background: var(--ajtb-bg-gray);
}

.faq-question .question-text {
    font-size: 15px;
    font-weight: 500;
    color: var(--ajtb-text);
}

.faq-question .question-icon {
    flex-shrink: 0;
    color: var(--ajtb-text-muted);
    transition: transform 0.2s ease;
}

.faq-item.active .faq-question .question-icon {
    transform: rotate(45deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.faq-item.active .faq-answer {
    max-height: 500px;
}

.faq-answer .answer-content {
    padding: 16px 20px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--ajtb-text-light);
    border-top: 1px solid var(--ajtb-border-light);
}

.ajtb-faq-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 20px;
    padding: 16px 20px;
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
}

.ajtb-faq-cta p {
    margin: 0;
    font-size: 14px;
    color: var(--ajtb-text);
}

/* ===================================
   Video
   =================================== */
.ajtb-video-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: var(--ajtb-radius);
}

.ajtb-video-container iframe,
.ajtb-video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ===================================
   Policy
   =================================== */
.ajtb-policy-content {
    font-size: 14px;
    line-height: 1.7;
    color: var(--ajtb-text-light);
}

/* ===================================
   Booking Box (Sticky Sidebar)
   =================================== */
.ajtb-tour-sidebar {
    position: sticky;
    top: 90px;
    align-self: start;
}

/* Carte de paiement – compacte (petite, style capture) */
.ajtb-booking-box {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    border: 1px solid var(--ajtb-border);
    max-width: 320px;
}

.booking-price-header {
    padding: 14px 16px 10px;
    text-align: left;
    background: #fff;
    color: var(--ajtb-text, #1a1a1a);
}

.booking-price-header .season-badge {
    display: inline-block;
    padding: 2px 8px;
    background: var(--ajtb-bg-light);
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--ajtb-text-muted);
}

.booking-price-header .price-display {
    margin-bottom: 2px;
}

.booking-price-header .price-row-top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 2px;
}

.booking-price-header .price-original {
    font-size: 12px;
    text-decoration: line-through;
    color: #a0a0a0;
}

.booking-price-header .discount-badge {
    font-size: 11px;
    font-weight: 600;
    color: #dc2626;
}

.booking-price-header .price-row-main {
    display: flex;
    align-items: baseline;
    gap: 4px;
    flex-wrap: wrap;
}

.booking-price-header .price-current {
    font-size: 22px;
    font-weight: 700;
    color: var(--ajtb-text, #1a1a1a);
}

.booking-price-header .price-unit {
    font-size: 12px;
    font-weight: 500;
    color: #555;
}

.booking-price-exclusion {
    margin: 0 0 12px 0;
    font-size: 11px;
    color: #666;
}

/* Price Breakdown - REMOVED (no longer used) */
/*
.booking-price-breakdown {
    padding: 16px 24px;
    background: var(--ajtb-bg-light);
}

.booking-price-breakdown .price-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-size: 14px;
    border-bottom: 1px dashed var(--ajtb-border);
}

.booking-price-breakdown .price-row:last-child {
    border-bottom: none;
}

.booking-price-breakdown .label {
    color: var(--ajtb-text-light);
}

.booking-price-breakdown .value {
    font-weight: 600;
    color: var(--ajtb-text);
}
*/

/* Quick Info – compact */
.booking-quick-info {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--ajtb-border);
}

.booking-quick-info .info-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--ajtb-text-light);
}

.booking-quick-info .info-item svg {
    width: 14px;
    height: 14px;
    color: var(--ajtb-success);
}

/* Booking Form – compact */
.booking-form {
    padding: 14px 16px 16px;
}

.booking-form .form-group {
    margin-bottom: 10px;
}

.booking-form label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ajtb-text);
    margin-bottom: 8px;
}

.booking-form label svg {
    color: var(--ajtb-text-muted);
}

.booking-form input[type="date"] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius);
    font-size: 14px;
    color: var(--ajtb-text);
    transition: var(--ajtb-transition);
}

.booking-form input[type="date"]:focus {
    outline: none;
    border-color: var(--ajtb-primary);
    box-shadow: 0 0 0 3px var(--ajtb-primary-light);
}

/* Travelers Selector */
.travelers-selector {
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
    padding: 12px;
}

.traveler-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--ajtb-border);
}

.traveler-row:last-child {
    border-bottom: none;
}

.traveler-type {
    font-size: 14px;
    color: var(--ajtb-text);
}

.traveler-type small {
    display: block;
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.qty-control {
    display: flex;
    align-items: center;
    gap: 8px;
}

.qty-btn {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ajtb-bg);
    border: 1px solid var(--ajtb-border);
    border-radius: 50%;
    font-size: 18px;
    font-weight: 500;
    color: var(--ajtb-text);
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.qty-btn:hover {
    background: var(--ajtb-primary);
    border-color: var(--ajtb-primary);
    color: #fff;
}

.qty-control input {
    width: 40px;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    color: var(--ajtb-text);
    border: none;
    background: none;
}

/* ===================================
   Booking Cart & Activities
   =================================== */
.booking-cart {
    margin-bottom: 10px;
}

.cart-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--ajtb-border-light);
}

.cart-item:last-child {
    border-bottom: none;
}

.cart-item-base {
    padding: 8px 0;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--ajtb-border);
}

.cart-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--ajtb-text);
}

.cart-value {
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-text);
}

/* Activities Section */
.cart-activities {
    margin-top: 12px;
}

.cart-activities-header {
    font-size: 13px;
    font-weight: 600;
    color: var(--ajtb-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    padding-left: 4px;
}

.ajtb-activity-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.ajtb-activity-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    background: var(--ajtb-bg-light);
    border-radius: 10px;
    transition: var(--ajtb-transition);
}

.ajtb-activity-row:hover {
    background: var(--ajtb-bg-gray);
}

.ajtb-activity-name {
    font-size: 14px;
    color: var(--ajtb-text);
    flex: 1;
    padding-right: 12px;
}

.ajtb-activity-price {
    font-size: 14px;
    font-weight: 600;
    color: var(--ajtb-text);
    white-space: nowrap;
}

/* Booking Total – compact */
.booking-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid var(--ajtb-border);
    border-radius: 8px;
    margin-bottom: 12px;
}

.booking-total .total-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-text);
}

.booking-total .total-value {
    font-size: 16px;
    font-weight: 700;
    color: var(--ajtb-primary);
}

/* Buttons */
.btn-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 24px;
    background: var(--ajtb-secondary);
    color: #fff;
    border: none;
    border-radius: var(--ajtb-radius);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: var(--ajtb-transition);
}

.btn-primary:hover {
    background: #d65221;
    transform: translateY(-2px);
    box-shadow: var(--ajtb-shadow);
}

/* CTA carte paiement – compact, dégradé bleu */
.ajtb-booking-box .btn-proceed-payment {
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 700;
    background: linear-gradient(
        135deg,
        var(--ajtb-primary-hover) 0%,
        var(--ajtb-primary) 50%,
        var(--ajtb-primary-dark) 100%
    );
    border-radius: var(--ajtb-radius);
    margin-top: 0;
}

.ajtb-booking-box .btn-proceed-payment:hover {
    background: linear-gradient(
        135deg,
        var(--ajtb-primary) 0%,
        var(--ajtb-primary-dark) 100%
    );
    box-shadow: 0 2px 10px rgba(2, 132, 199, 0.35);
}

.ajtb-booking-box .btn-proceed-payment svg {
    width: 14px;
    height: 14px;
}

.btn-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px 24px;
    background: var(--ajtb-bg);
    color: var(--ajtb-text);
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    margin-top: 10px;
    transition: var(--ajtb-transition);
}

.btn-secondary:hover {
    border-color: var(--ajtb-primary);
    color: var(--ajtb-primary);
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    background: var(--ajtb-bg);
    color: var(--ajtb-text);
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: var(--ajtb-transition);
}

.btn-outline:hover {
    border-color: var(--ajtb-primary);
    color: var(--ajtb-primary);
}

.btn-text {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    background: none;
    color: var(--ajtb-primary);
    border: none;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.btn-text:hover {
    text-decoration: underline;
}

/* Trust Badges - REMOVED (no longer used) */
/*
.booking-trust {
    padding: 16px 24px;
    border-top: 1px solid var(--ajtb-border);
}

.booking-trust .trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 13px;
    color: var(--ajtb-text-light);
}

.booking-trust .trust-item svg {
    color: var(--ajtb-success);
}
*/

/* Booking Actions – compact */
.booking-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 10px 16px;
    background: #f8fafc;
}

.booking-actions .action-btn {
    display: flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    font-size: 11px;
    color: var(--ajtb-text-light);
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.booking-actions .action-btn svg {
    width: 14px;
    height: 14px;
}

.booking-actions .action-btn:hover {
    color: var(--ajtb-primary);
}

.booking-actions .action-btn.active svg {
    fill: var(--ajtb-danger);
    color: var(--ajtb-danger);
}

/* ===================================
   Coupons & Offres (sous la carte de paiement)
   =================================== */
.ajtb-coupons-offers {
    margin-top: 14px;
    max-width: 320px;
    background: #f1f5f9;
    border-radius: 10px;
    padding: 14px 16px 12px;
    border: 1px solid var(--ajtb-border);
}

.coupons-heading {
    margin: 0 0 12px 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--ajtb-text, #1a1a1a);
}

.coupons-enter-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.coupons-enter-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--ajtb-text, #333);
}

.coupons-enter-link {
    background: none;
    border: none;
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-primary, #0284c7);
    cursor: pointer;
    padding: 0;
    text-decoration: none;
}

.coupons-enter-link:hover {
    text-decoration: underline;
}

.coupons-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.coupon-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    background: #fff;
    border-radius: 8px;
    border: 1px solid var(--ajtb-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.coupon-card--applied {
    border-color: var(--ajtb-primary, #0284c7);
    border-width: 2px;
}

.coupon-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    background: rgba(2, 132, 199, 0.12);
    color: var(--ajtb-primary, #0284c7);
    font-size: 14px;
    font-weight: 700;
    border-radius: 6px;
}

.coupon-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.coupon-code {
    font-size: 13px;
    font-weight: 700;
    color: var(--ajtb-text, #1a1a1a);
}

.coupon-desc {
    font-size: 11px;
    color: #64748b;
}

.coupon-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}

.coupon-discount {
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-text, #333);
}

.coupon-discount--applied {
    color: #16a34a;
}

.coupon-action {
    background: none;
    border: none;
    font-size: 11px;
    font-weight: 600;
    color: var(--ajtb-primary, #0284c7);
    cursor: pointer;
    padding: 0;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.coupon-action:hover {
    text-decoration: underline;
}

.coupons-more-link {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: 6px 0 0;
    background: none;
    border: none;
    font-size: 12px;
    font-weight: 600;
    color: var(--ajtb-primary, #0284c7);
    cursor: pointer;
    text-align: center;
}

.coupons-more-link:hover {
    text-decoration: underline;
}

/* Seasonal Pricing */
.ajtb-seasonal-pricing {
    background: var(--ajtb-bg);
    border-radius: var(--ajtb-radius-lg);
    box-shadow: var(--ajtb-shadow);
    padding: 20px 24px;
    margin-top: 20px;
}

.ajtb-seasonal-pricing h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ajtb-text);
    margin: 0 0 16px 0;
}

.ajtb-seasonal-pricing h4 svg {
    color: var(--ajtb-primary);
}

.seasons-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.season-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px;
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
    border: 1px solid transparent;
}

.season-item.current {
    background: var(--ajtb-primary-light);
    border-color: var(--ajtb-primary);
}

.season-info .season-name {
    font-size: 14px;
    font-weight: 500;
    color: var(--ajtb-text);
}

.season-info .season-name small {
    color: var(--ajtb-primary);
}

.season-info .season-dates {
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.season-price {
    font-size: 15px;
    font-weight: 600;
    color: var(--ajtb-text);
}

/* ===================================
   Responsive
   =================================== */
@media (max-width: 1199px) {
    .ajtb-tour-layout,
    .ajtb-tour-page .ajtb-tour-layout {
        grid-template-columns: 1fr;
    }

    .ajtb-tour-sidebar,
    .ajtb-tour-page .ajtb-tour-sidebar {
        width: 100%;
        max-width: 100%;
        position: static;
    }
}

@media (max-width: 1024px) {
    .ajtb-hero {
        min-height: 350px;
    }

    .ajtb-hero-title {
        font-size: 26px;
    }
}

/* Tablet étroit / mobile large (769–991px) : padding 20px */
@media (min-width: 769px) and (max-width: 991px) {
    .ajtb-tour-page .aj-wide-container {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 768px) {
    .ajtb-container {
        padding: 0 16px;
    }

    /* Mobile : padding 16px pour respiration */
    .aj-wide-container,
    .ajtb-tour-page .aj-wide-container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .ajtb-hero {
        min-height: 300px;
    }

    .ajtb-hero-title {
        font-size: 22px;
    }

    .ajtb-hero-gallery-preview {
        display: none;
    }

    .ajtb-hero-stats {
        gap: 20px;
    }

    .ajtb-hero-stats .stat-value {
        font-size: 20px;
    }

    .ajtb-include-exclude-grid {
        grid-template-columns: 1fr;
    }

    .ajtb-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ajtb-quick-facts .facts-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .ajtb-section {
        padding: 20px 16px;
    }

    .ajtb-booking-box .booking-form,
    .ajtb-booking-box .booking-quick-info,
    .ajtb-booking-box .booking-actions {
        padding-left: 16px;
        padding-right: 16px;
    }

    .booking-price-header {
        padding: 20px 16px;
    }

    .booking-price-header .price-current {
        font-size: 28px;
    }

    /* Activities responsive on small screens */
    .ajtb-activity-row {
        padding: 10px 12px;
    }

    .ajtb-activity-name {
        font-size: 13px;
    }

    .ajtb-activity-price {
        font-size: 13px;
    }
}

/* ===================================
   Flight Cards – section between Aperçu and Programme
   .ajtb-section-flights uses .ajtb-section + .ajtb-section-title (same container, title, spacing)
   =================================== */
.ajtb-section-flights .ajtb-flights-container {
    margin-top: 12px;
}

.ajtb-flights-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ajtb-flight-group {
    margin-bottom: 20px;
}

.ajtb-flight-group:last-child {
    margin-bottom: 0;
}

.ajtb-flight-group-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ajtb-primary);
    margin: 0 0 10px 0;
    padding: 0;
}

.aj-flight-card {
    background: var(--ajtb-bg);
    border-radius: var(--ajtb-radius);
    box-shadow: var(--ajtb-shadow);
    border: 1px solid var(--ajtb-border);
    overflow: hidden;
    min-width: 280px;
}

.aj-flight-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: var(--ajtb-bg-light);
    border-bottom: 1px solid var(--ajtb-border);
}

.aj-flight-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ajtb-text-light);
}

.aj-flight-remove-btn,
.ajtb-btn-remove-flight {
    background: none;
    border: none;
    color: var(--ajtb-danger);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    padding: 0 4px;
}

.aj-flight-remove-btn:hover,
.ajtb-btn-remove-flight:hover {
    text-decoration: underline;
}

.aj-flight-body {
    display: flex;
    align-items: stretch;
    padding: 16px;
    gap: 16px;
}

.aj-flight-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.aj-flight-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.aj-flight-center {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.aj-flight-dep,
.aj-flight-arr {
    text-align: center;
}

.aj-flight-date {
    font-size: 12px;
    color: var(--ajtb-text-muted);
    margin-bottom: 2px;
}

.aj-flight-place {
    font-size: 14px;
    font-weight: 500;
    color: var(--ajtb-text);
}

.aj-flight-arrow {
    color: #adb5bd;
    font-size: 18px;
}

.aj-flight-baggage {
    font-size: 12px;
    color: var(--ajtb-text-muted);
}

.aj-flight-baggage div {
    margin-bottom: 4px;
}

.aj-flight-badge-wrap {
    padding: 0 16px 12px;
}

.aj-flight-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 20px;
    background: #f5e6d3;
    color: #856404;
    font-size: 11px;
    font-weight: 600;
}

.ajtb-flights-add {
    margin-top: 12px;
    padding: 12px 16px;
    background: var(--ajtb-bg-light);
    border-radius: var(--ajtb-radius);
    border: 1px dashed var(--ajtb-border);
}

.ajtb-flights-add-label {
    font-size: 13px;
    color: var(--ajtb-text-muted);
    margin-right: 8px;
}

.ajtb-btn-add-flight {
    display: inline-block;
    margin: 4px 8px 4px 0;
    padding: 6px 12px;
    font-size: 12px;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    border: 1px solid var(--ajtb-primary);
    border-radius: 6px;
    cursor: pointer;
    transition: var(--ajtb-transition);
}

.ajtb-btn-add-flight:hover {
    background: var(--ajtb-primary);
    color: #fff;
}

/* ===================================
   Destinations
   =================================== */
.ajtb-destination-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ajtb-destinations-intro {
    margin: -4px 0 14px;
    color: var(--ajtb-text-muted);
    font-size: 13px;
}

.ajtb-destination-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--ajtb-border);
    background: var(--ajtb-bg-light);
    color: var(--ajtb-text);
    border-radius: 999px;
    font-size: 13px;
    line-height: 1.35;
    padding: 8px 12px;
    white-space: nowrap;
}

.ajtb-destination-country {
    font-weight: 600;
    color: var(--ajtb-text);
}

.ajtb-destination-sep {
    color: var(--ajtb-text-muted);
    font-size: 14px;
}

.ajtb-destination-city {
    color: var(--ajtb-text);
}

.ajtb-destination-chip-more {
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    border-color: var(--ajtb-border);
    font-weight: 600;
    cursor: pointer;
}

.ajtb-destination-more {
    position: relative;
}

.ajtb-destination-more > summary {
    list-style: none;
}

.ajtb-destination-more > summary::-webkit-details-marker {
    display: none;
}

.ajtb-destination-more-list {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 20;
    min-width: 220px;
    max-width: 320px;
    background: #fff;
    border: 1px solid var(--ajtb-border);
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
    padding: 10px;
    display: grid;
    gap: 8px;
}

.ajtb-destination-more-item {
    display: block;
    font-size: 13px;
    line-height: 1.4;
    color: var(--ajtb-text);
}

@media (max-width: 767px) {
    .ajtb-destination-chip {
        white-space: normal;
    }

    .ajtb-destination-more-list {
        left: auto;
        right: 0;
        max-width: 260px;
    }
}

/* ===================================
   Tour page compact spacing layer
   Reduce whitespace without changing visual identity
   =================================== */
.ajtb-tour-page {
    --ajtb-layout-gap: 20px;
}

.ajtb-tour-page .ajtb-tour-layout,
.ajtb-tour-layout {
    gap: 20px;
    padding: 20px 0;
}

.ajtb-tour-page .ajtb-top-search-bar {
    padding: 4px 0 !important;
}

.ajtb-top-search-bar__inner {
    gap: 2px;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-searchbar {
    gap: 0 !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-searchitem {
    padding: 4px 12px !important;
    min-height: 34px !important;
}

.ajtb-tour-page .ajtb-top-search-bar__btn {
    padding: 6px 16px !important;
    font-size: 12px !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-label {
    margin-bottom: 0 !important;
    font-size: 8px !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-value,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-select,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-date-value,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-guest-summary {
    font-size: 12px !important;
}

.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-icon,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-search-date-chevron,
.ajtb-tour-page .ajtb-top-search-bar__inner .aj-guest-chevron {
    width: 14px !important;
    height: 14px !important;
}

.ajtb-hero-content {
    padding: 28px 0 34px;
}

.ajtb-breadcrumbs {
    margin-bottom: 12px;
}

.ajtb-hero-title-wrap {
    margin-bottom: 14px;
}

.ajtb-quick-info {
    gap: 14px;
    padding: 12px 16px;
    margin-bottom: 18px;
}

.ajtb-tabs-nav .tab-link {
    padding: 14px 18px 12px;
}

.ajtb-section {
    padding: 18px;
    margin-bottom: 18px;
}

.ajtb-section-title {
    margin: 0 0 14px 0;
    padding-bottom: 12px;
}

.ajtb-content-block p {
    margin-bottom: 12px;
}

.ajtb-highlights {
    margin-bottom: 18px;
    padding: 16px;
}

.ajtb-quick-facts {
    margin-top: 18px;
    padding-top: 18px;
}

.ajtb-quick-facts .facts-title {
    margin-bottom: 12px;
}

.ajtb-quick-facts .facts-grid {
    gap: 12px;
}

.ajtb-quick-facts .fact-item {
    gap: 10px;
    padding: 10px;
}

.ajtb-tags {
    gap: 6px;
    margin-top: 16px;
    padding-top: 16px;
}

.ajtb-tags .tag-item {
    padding: 5px 11px;
}

.ajtb-gallery-grid {
    gap: 8px;
}

.ajtb-include-exclude-grid {
    gap: 18px;
}

.column-header {
    margin-bottom: 12px;
    padding-bottom: 10px;
}

.items-list .item {
    gap: 8px;
    padding: 8px 0;
}

.ajtb-note {
    margin-top: 16px;
    padding: 10px 14px;
}

.ajtb-faq-accordion {
    gap: 10px;
}

.faq-question {
    padding: 13px 16px;
}

.faq-answer .answer-content {
    padding: 0 16px 16px;
}

.ajtb-faq-cta {
    margin-top: 16px;
    padding-top: 16px;
}

.ajtb-booking-box {
    border-radius: 10px;
}

.booking-price-header {
    padding: 12px 14px 8px;
}

.ajtb-booking-box .booking-form,
.ajtb-booking-box .booking-quick-info,
.ajtb-booking-box .booking-actions {
    padding-left: 14px;
    padding-right: 14px;
}

@media (max-width: 767px) {
    .ajtb-tour-page .ajtb-tour-layout,
    .ajtb-tour-layout {
        gap: 16px;
        padding: 16px 0;
    }

    .ajtb-hero-content {
        padding: 22px 0 28px;
    }

    .ajtb-quick-info {
        gap: 10px;
        padding: 10px 12px;
        margin-bottom: 14px;
    }

    .ajtb-tabs-nav .tab-link {
        padding: 12px 14px 10px;
    }

    .ajtb-section {
        padding: 14px;
        margin-bottom: 14px;
    }

    .ajtb-highlights,
    .ajtb-note {
        padding: 12px;
    }

    .ajtb-include-exclude-grid {
        gap: 14px;
    }
}

/* ===================================
   Tour page rhythm polish
   Same style, cleaner spacing/placement
   =================================== */
.ajtb-tour-main {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ajtb-tour-main > .ajtb-quick-info,
.ajtb-tour-main > .ajtb-section {
    margin-bottom: 0;
}

.ajtb-tour-sidebar {
    top: 78px;
}

.ajtb-tabs-under-hero {
    position: relative;
    z-index: 5;
}

.ajtb-tabs-nav {
    min-height: 52px;
}

.ajtb-tabs-nav .tab-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
}

.ajtb-section > *:last-child,
.ajtb-content-block > *:last-child,
.answer-content > *:last-child {
    margin-bottom: 0 !important;
}

.ajtb-highlights .highlights-list {
    gap: 8px;
}

.ajtb-quick-facts .fact-icon {
    width: 40px;
    height: 40px;
}

.ajtb-quick-facts .fact-value {
    line-height: 1.35;
}

.ajtb-include-exclude-grid .include-column,
.ajtb-include-exclude-grid .exclude-column {
    display: flex;
    flex-direction: column;
}

.items-list .item-text {
    line-height: 1.45;
}

.faq-question .question-text {
    line-height: 1.4;
}

.ajtb-faq-cta p {
    margin: 0 0 10px;
}

.ajtb-gallery-grid .gallery-item {
    border-radius: 10px;
}

.ajtb-booking-box .booking-form .form-group:last-child,
.ajtb-booking-box .booking-actions > *:last-child {
    margin-bottom: 0;
}

@media (max-width: 991px) {
    .ajtb-tour-main {
        gap: 14px;
    }

    .ajtb-tour-sidebar {
        top: 70px;
    }
}

@media (max-width: 767px) {
    .ajtb-tour-main {
        gap: 12px;
    }

    .ajtb-tabs-nav {
        min-height: 46px;
    }

    .ajtb-tabs-nav .tab-link {
        min-height: 46px;
    }
}

/* ===================================
   Expandable long content
   =================================== */
.ajtb-expandable-content {
    position: relative;
    overflow: hidden;
    transition: max-height 0.28s ease;
}

.ajtb-expandable-content.is-collapsed {
    max-height: var(--ajtb-expandable-max-height, 260px);
}

.ajtb-expandable-content.is-collapsed::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 84px;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.9) 55%,
        rgba(255, 255, 255, 1) 100%
    );
}

.ajtb-expandable-content.is-expanded {
    max-height: var(--ajtb-expandable-full-height, 2000px);
}

.ajtb-expandable-content.is-expanded::after {
    display: none;
}

.ajtb-expandable-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 8px 14px;
    border: 1px solid var(--ajtb-border);
    border-radius: 999px;
    background: var(--ajtb-bg);
    color: var(--ajtb-primary);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.ajtb-expandable-toggle:hover {
    background: var(--ajtb-primary-light);
    border-color: var(--ajtb-primary);
    box-shadow: var(--ajtb-shadow);
}

/* ===================================
   Programme du Circuit - Day content refresh
   Only restyles the day content panels/cards
   =================================== */
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-day-panels {
    gap: 18px;
    padding: 18px 18px 22px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-content-panel {
    padding: 20px 0 0;
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius-lg);
    background: linear-gradient(
        180deg,
        var(--ajtb-bg) 0%,
        var(--ajtb-bg-light) 100%
    );
    box-shadow: var(--ajtb-shadow-lg);
    overflow: hidden;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-content-panel:not(:last-child) {
    border-bottom: 1px solid var(--ajtb-border);
    padding-bottom: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-header-mmt {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 22px 16px;
    margin-bottom: 0;
    border-bottom: 1px solid var(--ajtb-border-light);
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-day-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 14px !important;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff8a00 0%, #ff5e00 100%);
    color: #fff !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    box-shadow: 0 8px 18px rgba(255, 94, 0, 0.22);
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .day-body {
    padding: 18px 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .aj-day-programme-block {
    margin: 0;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .aj-day-notes-wrap {
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .aj-day-programme-block
    .aj-day-notes-wrap
    .aj-day-notes-content {
    font-size: 14px;
    line-height: 1.8;
    color: var(--ajtb-text-muted);
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-day-banner {
    overflow: hidden;
    border-radius: var(--ajtb-radius-lg);
    border: 1px solid var(--ajtb-border);
    box-shadow: var(--ajtb-shadow-lg);
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-banner
    img {
    display: block;
    width: 100%;
    height: auto;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-mmt {
    margin: 0;
    padding: 18px 20px;
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius-lg);
    background: var(--ajtb-bg);
    box-shadow: var(--ajtb-shadow);
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ajtb-border-light);
    font-size: 14px;
    font-weight: 700;
    color: var(--ajtb-text);
    letter-spacing: 0.01em;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activities-list {
    margin: 0;
    padding: 0;
    border-top: 0;
}

#itinerary.ajtb-section .day-activity-item.day-activity-card-pro {
    margin-bottom: 14px;
    border: 1px solid var(--ajtb-border);
    border-radius: var(--ajtb-radius-lg);
    background: linear-gradient(
        180deg,
        var(--ajtb-bg) 0%,
        var(--ajtb-bg-light) 100%
    );
    box-shadow: var(--ajtb-shadow);
}

#itinerary.ajtb-section .day-activity-item.day-activity-card-pro:hover {
    border-color: var(--ajtb-primary-light);
    box-shadow: var(--ajtb-shadow-lg);
    transform: translateY(-1px);
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .day-activity-image {
    width: 176px;
    min-height: 132px;
    background: linear-gradient(
        145deg,
        var(--ajtb-primary-light) 0%,
        var(--ajtb-bg-light) 100%
    );
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .day-activity-details {
    padding: 16px 18px;
    gap: 6px;
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .activity-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--ajtb-text);
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .activity-price {
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--ajtb-primary-light);
    color: var(--ajtb-primary);
    font-size: 12px;
    font-weight: 700;
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .activity-time {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--ajtb-bg-light);
    color: var(--ajtb-text-muted);
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 6px;
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .activity-description {
    margin-top: 0;
    color: var(--ajtb-text-muted);
    font-size: 13px;
    line-height: 1.7;
}

#itinerary.ajtb-section
    .day-activity-item.day-activity-card-pro
    .day-activity-actions {
    padding: 16px;
    border-left: 1px solid var(--ajtb-border-light);
    background: var(--ajtb-bg-light);
}

@media (max-width: 767px) {
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-panels {
        padding: 14px 14px 18px;
        gap: 14px;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-header-mmt,
    #itinerary.ajtb-section .ajtb-itinerary-block--day-content .day-body {
        padding-left: 16px;
        padding-right: 16px;
    }

    #itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-mmt,
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .aj-day-notes-wrap {
        padding: 14px 15px;
        border-radius: 14px;
    }

    #itinerary.ajtb-section
        .day-activity-item.day-activity-card-pro
        .day-activity-item-content {
        flex-direction: column;
    }

    #itinerary.ajtb-section
        .day-activity-item.day-activity-card-pro
        .day-activity-image {
        width: 100%;
        min-height: 180px;
    }

    #itinerary.ajtb-section
        .day-activity-item.day-activity-card-pro
        .day-activity-actions {
        border-left: 0;
        border-top: 1px solid var(--ajtb-border-light);
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

/* ===================================
   Tour page - style revision
   Unified look: sections, cards, borders, typography
   =================================== */
.ajtb-tour-page .ajtb-section {
    border: 1px solid var(--ajtb-border-light);
    box-shadow: var(--ajtb-shadow);
}

.ajtb-tour-page .ajtb-section-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--ajtb-text);
    border-bottom-color: var(--ajtb-border-light);
}

.ajtb-sticky-tour-title-bar {
    box-shadow: var(--ajtb-shadow);
}

.ajtb-tour-page .ajtb-quick-info {
    background: var(--ajtb-bg-light);
    border: 1px solid var(--ajtb-border-light);
    border-radius: var(--ajtb-radius);
}

.ajtb-tour-page .ajtb-content-block {
    color: var(--ajtb-text-light);
}

.ajtb-tour-page .ajtb-highlights {
    border: 1px solid rgba(0, 166, 81, 0.2);
    border-radius: var(--ajtb-radius);
}

.ajtb-tour-page .ajtb-booking-box {
    border: 1px solid var(--ajtb-border);
    box-shadow: var(--ajtb-shadow);
}

.ajtb-tour-page .btn-outline-secondary {
    border-color: var(--ajtb-border);
    color: var(--ajtb-text-light);
}

.ajtb-tour-page .btn-outline-secondary:hover {
    border-color: var(--ajtb-text-muted);
    color: var(--ajtb-text);
}

/* ===================================
   Itinerary day sections - flat timeline layout
   Keep one main day card, remove nested card look
   =================================== */
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .day-body {
    gap: 0;
}

/* ===================================
   Itinerary days - continuous container
   One global stream, days separated by dividers only
   =================================== */
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-day-panels {
    gap: 0;
    padding: 0;
    border: 1px solid var(--ajtb-border);
    border-radius: 0;
    background: var(--ajtb-bg);
    box-shadow: var(--ajtb-shadow-lg);
    overflow: hidden;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-content-panel {
    padding: 16px 24px 18px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-content-panel:not(:last-child) {
    border-bottom: 0;
    padding-bottom: 18px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-content-panel
    + .ajtb-day-content-panel {
    margin-top: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-header-mmt {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    flex-wrap: wrap;
    margin: -16px -24px 0;
    padding: 8px 24px 10px;
    border-top: 2px solid #d7e0ea;
    border-bottom: 2px solid #d7e0ea;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-header-mmt__date {
    font-size: 13px;
    font-weight: 500;
    color: var(--ajtb-text);
    white-space: nowrap;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-header-mmt__inclus {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    min-width: 0;
    font-size: 13px;
    color: var(--ajtb-text);
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-header-mmt__inclus
    .ajtb-inclus-label {
    margin-right: 2px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-day-header-mmt__inclus
    .ajtb-inclus-item {
    white-space: nowrap;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .day-body {
    padding: 12px 0 0;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-mmt,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content #aj-day-activities-0,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    [id^="aj-day-activities-"] {
    margin: 0;
    padding: 18px 0;
    border: 0;
    border-top: 1px solid #e0e7ef;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .aj-day-notes-wrap,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-day-banner,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--transfer,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--hotel,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .aj-flight-card--v2,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro {
    border-radius: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-body
    > .ajtb-block-mmt:first-child,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-body
    > [id^="aj-day-activities-"]:first-child {
    padding-top: 0;
    border-top: 0;
}

/* If the programme wrapper exists first, do not add an extra separator
   on the first real section right after the day header */
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-body
    > .ajtb-tab-block[data-ajtb-tab="programme"]
    + .ajtb-block-mmt,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-body
    > .ajtb-tab-block[data-ajtb-tab="programme"]
    + [id^="aj-day-activities-"] {
    padding-top: 0;
    border-top: 0;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-title {
    margin: 0 0 12px;
    padding: 0;
    border: 0;
    font-size: 15px;
    line-height: 1.35;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-icon {
    width: 28px;
    height: 28px;
    border-radius: 999px;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-wrap,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activities-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-wrap
    > *
    + *,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activities-list
    > *
    + * {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #e0e7ef;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .aj-flight-card--v2,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--transfer,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--hotel,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--transfer,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--hotel.ajtb-hotel-listing {
    align-items: flex-start;
    gap: 16px;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-image,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-hotel-main-image {
    border-radius: 0;
    box-shadow: none;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-card-with-image.ajtb-card--transfer
    .ajtb-card-image {
    width: 180px;
    min-height: 132px;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-hotel-listing {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-hotel-listing__media {
    width: 220px;
    min-width: 220px;
    padding: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-hotel-main-image {
    height: 160px;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-hotel-thumb {
    width: 50px;
    height: 50px;
    border-radius: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-hotel-listing__body,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-inner {
    padding: 0;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-transfer-card,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-hotel-card {
    gap: 8px;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-head {
    gap: 10px;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-head-icon,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .ajtb-hotel-rating-badge {
    box-shadow: none;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-divider {
    display: none;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-date,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-chip,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .aj-flight-card--v2
    .aj-chip,
#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-status {
    background: var(--ajtb-bg-light);
    border: 1px solid var(--ajtb-border-light);
    box-shadow: none;
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-card-status {
    color: var(--ajtb-text-muted);
}

#itinerary.ajtb-section .ajtb-itinerary-block--day-content .aj-flight-card--v2 {
    padding: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .aj-flight-card--v2
    .aj-flight-header {
    margin-bottom: 12px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .aj-flight-card--v2
    .aj-flight-timeline {
    margin-bottom: 12px;
    padding: 12px 0;
    border-top-color: var(--ajtb-border-light);
    border-bottom-color: var(--ajtb-border-light);
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro
    .day-activity-item-content {
    gap: 14px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro
    .day-activity-image {
    width: 150px;
    min-height: 110px;
    border-radius: 12px;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro
    .day-activity-details,
#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro
    .day-activity-actions {
    padding: 0;
}

#itinerary.ajtb-section
    .ajtb-itinerary-block--day-content
    .day-activity-item.day-activity-card-pro
    .day-activity-actions {
    border: 0;
    background: transparent;
}

@media (max-width: 767px) {
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-panels {
        border-radius: 0;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-content-panel {
        padding: 18px 16px 20px;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-content-panel:not(:last-child) {
        padding-bottom: 20px;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-header-mmt {
        margin: -18px -16px 0;
        padding: 8px 16px 10px;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-header-mmt__inclus {
        width: 100%;
    }

    #itinerary.ajtb-section .ajtb-itinerary-block--day-content .ajtb-block-mmt,
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        [id^="aj-day-activities-"] {
        padding: 16px 0;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-card-with-image.ajtb-card--transfer,
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-card-with-image.ajtb-card--hotel.ajtb-hotel-listing,
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .day-activity-item.day-activity-card-pro
        .day-activity-item-content {
        flex-direction: column;
        gap: 12px;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-card-with-image.ajtb-card--transfer
        .ajtb-card-image,
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-hotel-listing__media,
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .day-activity-item.day-activity-card-pro
        .day-activity-image {
        width: 100%;
        min-width: 0;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-hotel-listing__media {
        padding: 0;
    }

    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-hotel-main-image {
        height: 180px;
    }

    /* Rendre l'en-tête de chaque jour sticky dans la colonne de droite (Jour X + INCLUDED) */
    #itinerary.ajtb-section
        .ajtb-itinerary-block--day-content
        .ajtb-day-header-mmt {
        position: sticky;
        top: var(--ajtb-sticky-group-height, 60px);
        z-index: 900;
        background: #ffffff;
    }
}

/* ===================================
   Print Styles
   =================================== */
@media print {
    .ajtb-hero,
    .ajtb-tour-sidebar,
    .ajtb-tabs-nav,
    .itinerary-actions,
    .ajtb-faq-cta,
    .btn-outline,
    .btn-text {
        display: none !important;
    }

    .ajtb-tour-layout {
        display: block;
    }

    .ajtb-section {
        box-shadow: none;
        border: 1px solid #ddd;
        page-break-inside: avoid;
    }

    .day-body {
        display: block !important;
    }

    .faq-answer {
        max-height: none !important;
    }
}
