/* ─────────────────────────────────────────────────────────────────────────
   Vente en ligne Omra — thème agency (cartes, recherche, page détail, configurateur).
   Reprend la charte des packages (cv-hotel-card, details-v2-clean) ; seules les classes omra-* sont ici.
   ───────────────────────────────────────────────────────────────────────── */

/* Carte */
.omra-card .cv-hotel-img-wrapper { position: relative; }
.omra-card__badge { background: var(--second-color, #0f766e); }
.omra-card__days {
    position: absolute; left: 10px; bottom: 10px; z-index: 4;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; border-radius: 999px;
    background: rgba(255, 255, 255, .95); color: #0f172a; font-weight: 600;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .18);
}
.omra-card__meta { list-style: none; margin: 0 0 12px; padding: 0; color: #475569; }
.omra-card__meta li { display: flex; align-items: center; gap: 6px; line-height: 1.5; }
.omra-card__meta i { color: var(--main-color, #2563eb); }

/* Moteur de recherche (hero et page liste) */
.omra-search__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 70px; } /* bouton icône, comme les autres moteurs */
.omra-search__select { appearance: none; -webkit-appearance: none; background: transparent; border: none; width: 100%; cursor: pointer; }
@media (max-width: 767px) { .omra-search__grid { grid-template-columns: 1fr; } }

/* Page liste */
.omra-list { padding-top: 16px; padding-bottom: 40px; }
.omra-list__head { margin-bottom: 18px; }
.omra-list__title { font-size: 1.8rem; font-weight: 800; color: #0f172a; margin: 0 0 6px; }
.omra-list__subtitle { color: #64748b; margin: 0; }
.omra-list__search { margin-bottom: 18px; }
.omra-list__count { font-weight: 600; color: #334155; margin-bottom: 14px; }
.omra-empty { text-align: center; padding: 48px 16px; color: #64748b; background: #fff; border: 1px dashed #cbd5e1; border-radius: 16px; }
.omra-empty i { font-size: 2rem; color: var(--main-color, #2563eb); }
.omra-empty p { margin: 10px 0 16px; }
.omra-empty__text { color: #64748b; margin: 0; padding: 8px 0; }

/* Page détail */
.omra-detail { padding-top: 16px; }
.omra-detail__titleRow { display: flex; align-items: flex-start; gap: 12px; }
.omra-detail__title { flex: 1; }
.omra-detail__subtitle { color: #475569; font-size: 1.05rem; margin: 4px 0 8px; }
.omra-detail__text { line-height: 1.7; }
.omra-departures__body { display: block; }

/* Moteur et résultats (le reste reprend details-v2-clean : pkg-room-card, formula-card, offer-option…) */
[x-cloak] { display: none !important; }
.omra-departure-row[role="button"] { cursor: pointer; transition: background .15s; }
.omra-detail .formula-hotels-row { display: flex; }
.omra-detail .btn-hotels-toggle.is-open .toggle-chevron { transform: rotate(180deg); }
.omra-hotel-img { display: flex; align-items: center; justify-content: center; background: #eef2ff; font-size: 30px; }
.omra-engine__choices { display: flex; flex-direction: column; gap: 8px; }
.omra-choice {
    display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%;
    padding: 10px 12px; border: 1.5px solid #e2e8f0; border-radius: 12px; background: #fff;
    text-align: start; cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.omra-choice:hover:not(:disabled) { border-color: var(--main-color, #2563eb); }
.omra-choice.is-active { border-color: var(--main-color, #2563eb); box-shadow: 0 0 0 3px rgba(37, 99, 235, .12); }
.omra-choice.is-muted, .omra-choice:disabled { opacity: .55; cursor: not-allowed; }
.omra-choice__title { font-weight: 700; color: #0f172a; font-size: .92rem; }
.omra-choice__title i { color: var(--main-color, #2563eb); }
.omra-choice__meta { color: #64748b; font-size: .8rem; }
.omra-quote__msg { margin: 8px 0 0; font-size: .85rem; color: #b45309; }
.omra-quote__msg.is-error { color: #dc2626; }
.formula-options-wrap .btn-configurer:disabled { opacity: .55; cursor: not-allowed; }

/* Résultats : visibles dès le lancement de la recherche (chargement), défilement sous l'en-tête fixe */
.omra-results { scroll-margin-top: 96px; }
.omra-results__loading {
    display: flex; align-items: center; justify-content: center; gap: 12px;
    padding: 36px 16px; margin-bottom: 16px;
    background: #fff; border: 1px dashed #cbd5e1; border-radius: 16px;
    color: #475569; font-weight: 600;
}
.omra-spinner {
    width: 28px; height: 28px; flex-shrink: 0;
    border: 3px solid #e2e8f0; border-top-color: var(--main-color, #2563eb); border-radius: 50%;
    animation: omraSpin .8s linear infinite;
}
@keyframes omraSpin { to { transform: rotate(360deg); } }
.omra-detail .pkg-search-btn:disabled { opacity: .75; cursor: wait; }

/* Programme jour par jour du départ choisi */
.omra-program__departure { color: #64748b; font-size: .9rem; margin: -4px 0 14px; }
.omra-program__list { list-style: none; margin: 0; padding: 0; position: relative; }
.omra-program__list::before { content: ''; position: absolute; top: 6px; bottom: 6px; inset-inline-start: 13px; width: 2px; background: #e2e8f0; }
.omra-program__item { position: relative; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 14px; padding: 0 0 18px 36px; }
.omra-program__item::before {
    content: ''; position: absolute; top: 4px; inset-inline-start: 7px; width: 14px; height: 14px; border-radius: 50%;
    background: #fff; border: 3px solid var(--main-color, #2563eb);
}
[dir="rtl"] .omra-program__item { padding: 0 36px 18px 0; }
.omra-program__day { display: flex; flex-direction: column; gap: 2px; }
.omra-program__num { font-weight: 800; color: #0f172a; }
.omra-program__date { font-size: .82rem; color: #64748b; text-transform: capitalize; }
.omra-program__body { min-width: 0; }
.omra-program__city {
    display: inline-block; margin-bottom: 4px; padding: 2px 10px; border-radius: 999px;
    background: #f1f5f9; color: #334155; font-size: .75rem; font-weight: 700;
}
.omra-program__title { margin: 0 0 4px; font-size: 1rem; font-weight: 700; color: #0f172a; }
.omra-program__desc { margin: 0; color: #475569; line-height: 1.6; white-space: pre-line; }
@media (max-width: 575px) { .omra-program__item { grid-template-columns: minmax(0, 1fr); gap: 4px; } }

/* Proposition « Recommandé » : chaque chambre remplie exactement (même règle que le moteur ERP) */
.omra-reco-badge {
    display: inline-flex; align-items: center; align-self: flex-start;
    padding: 3px 10px; margin-bottom: 4px; border-radius: 999px;
    background: #dcfce7; color: #15803d; font-size: .78rem; font-weight: 700;
}
.omra-detail .offer-option.is-recommended { border-color: #86efac; box-shadow: 0 0 0 2px rgba(34, 197, 94, .12); }

/* Feuille mobile (pkg-mobile-sheet / pkg-mobile-bar de details-v2-clean) */
.omra-sheet__date { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.omra-detail-page .pkg-mobile-sel-date > i { color: var(--main-color, #2563eb); }

/* Réservation : statut, pèlerins, montants (page « Ma réservation ») */
.omra-status { display: inline-flex; align-items: center; padding: 6px 14px; border-radius: 999px; font-weight: 700; font-size: .85rem; }
.omra-status--ok { background: #dcfce7; color: #15803d; }
.omra-status--pending { background: #fef3c7; color: #b45309; }
.omra-status--muted { background: #f1f5f9; color: #64748b; }
.omra-pilgrims { list-style: none; margin: 0; padding: 0; }
.omra-pilgrims li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #f1f5f9; font-size: .9rem; }
.omra-amounts > div { display: flex; justify-content: space-between; padding: 6px 0; font-size: .92rem; }
.omra-amounts > div.is-due { border-top: 1px solid #e2e8f0; margin-top: 4px; padding-top: 10px; font-size: 1rem; }
.omra-amounts > div.is-due strong { color: var(--main-color, #2563eb); }
