/* RevinaPro — harmonisation de la vitrine publique sur la charte vert/blanc/orange.
   Chargée APRÈS rb-safe.css → n'affecte que les pages publiques (base.html).
   Le branding existant (logo, frise, drapeau) est conservé ; on aligne surtout
   la couleur d'ACTION sur l'orange, comme dans l'espace connecté. */

:root{
  --rvp-orange:#E0651B;
  --rvp-orange-2:#C4530E;
  --rvp-green:#13733F;
}

/* Actions primaires = orange (cohérent avec l'app) */
.btn-book,
.btn-success,
.rb-btn-primary{
  background:var(--rvp-orange) !important;
  border-color:var(--rvp-orange) !important;
  color:#fff !important;
}
.btn-book:hover,
.btn-success:hover,
.rb-btn-primary:hover,
.btn-book:focus,
.btn-success:focus{
  background:var(--rvp-orange-2) !important;
  border-color:var(--rvp-orange-2) !important;
  color:#fff !important;
}

/* Boutons secondaires verts : contour vert de la charte */
.btn-outline-success{
  color:var(--rvp-green) !important;
  border-color:var(--rvp-green) !important;
}
.btn-outline-success:hover{
  background:var(--rvp-green) !important;
  border-color:var(--rvp-green) !important;
  color:#fff !important;
}

/* Badge panier lisible sur fond orange */
.rb-cart-btn .badge{color:var(--rvp-orange-2) !important;}

/* Cartes packages / hôtels : léger relief au survol */
.pkg-card,
.card{transition:transform .15s ease, box-shadow .15s ease;}
.pkg-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 30px rgba(16,40,26,.10);
}

/* ============ Navbar épurée (charte vert/blanc/orange) ============ */
/* Liens plats (on retire les pilules à dégradé vert), état actif souligné orange */
.rb-navbar-gambie .nav-link{
  border-radius:8px !important;
  padding:.55rem .9rem !important;
  color:#243027 !important;
  font-weight:600 !important;
}
.rb-navbar-gambie .nav-link::before{display:none !important;}
.rb-navbar-gambie .nav-link:hover{
  color:var(--rvp-orange) !important;
  background:transparent !important;
  transform:none !important;
  box-shadow:none !important;
}
.rb-navbar-gambie .nav-link.active{
  color:var(--rvp-orange) !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
.rb-navbar-gambie .nav-link.active::after{
  content:"";position:absolute;left:.9rem;right:.9rem;bottom:4px;height:2px;
  background:var(--rvp-orange);border-radius:2px;
}
/* CTA de la navbar (Login, Panier) en orange */
.rb-navbar-gambie .btn-success{
  background:var(--rvp-orange) !important;border:none !important;
  box-shadow:0 4px 12px rgba(224,101,27,.25) !important;
}
.rb-navbar-gambie .btn-success:hover{background:var(--rvp-orange-2) !important;}
/* Logo : effet de survol plus sobre (pas de rotation) */
.rb-logo-gambie:hover{transform:scale(1.05) !important;}

/* Bande « hero » de recherche (accueil) */
.rvp-searchband{
  background:linear-gradient(180deg,#E9F2EC 0%,#F4F7F2 100%);
  border-bottom:1px solid #E1EAE2;
}
.rvp-searchband-title{color:var(--rvp-green);letter-spacing:-.01em;}
.rvp-searchband-sub{color:#5b6b61;}

/* Onglets du moteur de recherche : actif en orange (charte) */
.nav-pills .nav-link{color:var(--rvp-green);border-radius:8px;font-weight:600;}
.nav-pills .nav-link:hover{background:#EFF5F0;}
.nav-pills .nav-link.active{background:var(--rvp-orange) !important;color:#fff !important;}

/* Barre de tri des résultats */
.form-select-sm{border-radius:8px;}

/* ============ Cartes catalogue (packages) ============ */
.rvp-pcard{background:#fff;border:1px solid #E4E9E1;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(16,40,26,.04);transition:transform .15s ease, box-shadow .15s ease;height:100%;}
.rvp-pcard:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(16,40,26,.12);}
.rvp-pcard-media{display:block;position:relative;aspect-ratio:16/9;background:#eef3ee;}
.rvp-pcard-media img{width:100%;height:100%;object-fit:cover;display:block;}
.rvp-pcard-noimg{width:100%;height:100%;display:grid;place-items:center;color:#9aa89e;font-size:36px;}
/* Vol sans visuel : le logo de la compagnie tient lieu d'image (entier, non rogné) */
.rvp-pcard-logo{background:#fff;padding:16px;}
.rvp-pcard-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}

/* Variante horizontale (catalogue) : image à gauche, hauteur réduite */
.rvp-pcard--row{flex-direction:row;}
.rvp-pcard--row .rvp-pcard-media{aspect-ratio:auto;width:36%;max-width:230px;min-width:120px;flex:none;}
.rvp-pcard--row .rvp-pcard-body{padding:12px 16px;gap:6px;justify-content:center;}
@media (max-width:520px){.rvp-pcard--row .rvp-pcard-media{width:42%;min-width:100px;}}
.rvp-pcard-flag{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;padding:4px 9px;border-radius:6px;color:#fff;letter-spacing:.02em;}
.rvp-flag-full{background:#6b7280;}
.rvp-flag-hot{background:var(--rvp-orange);}
.rvp-flag-new{background:var(--rvp-green);}
.rvp-pcard-body{padding:10px 13px 12px;display:flex;flex-direction:column;gap:6px;flex:1;}
.rvp-pcard-title{font-size:14.5px;font-weight:750;margin:0;color:#16241e;line-height:1.25;}
.rvp-pcard-facts{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:#5b6b61;}
.rvp-pcard-facts i{color:var(--rvp-green);}
.rvp-pcard-desc{font-size:13px;color:#5b6b61;margin:0;}
.rvp-pcard-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px;}
.rvp-pcard-price{display:flex;flex-flow:row wrap;align-items:baseline;column-gap:5px;row-gap:0;line-height:1.1;}
.rvp-price-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8B968D;font-weight:600;}
.rvp-price-now{font-size:16px;font-weight:800;color:var(--rvp-green);font-variant-numeric:tabular-nums;}
.rvp-price-old{font-size:11.5px;color:#9aa89e;text-decoration:line-through;}

/* ============ Fiche produit éditoriale ============ */
.rvp-hero{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/8;background:#e9efe9;box-shadow:0 8px 24px rgba(16,40,26,.08);}
.rvp-hero img{width:100%;height:100%;object-fit:cover;display:block;}
.rvp-hero-noimg{width:100%;height:100%;display:grid;place-items:center;color:#9aa89e;font-size:48px;}
.rvp-hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:28px 26px 22px;background:linear-gradient(transparent, rgba(8,24,16,.80));color:#fff;}
.rvp-hero-title{font-size:28px;font-weight:800;margin:0;letter-spacing:-.01em;text-shadow:0 2px 12px rgba(0,0,0,.45);}
.rvp-hero-sub{margin:6px 0 0;font-size:14px;opacity:.92;}
.rvp-facts{display:flex;flex-wrap:wrap;gap:12px;}
.rvp-fact{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #E4E9E1;border-radius:12px;padding:11px 15px;}
.rvp-fact i{font-size:20px;color:var(--rvp-orange);}
.rvp-fact span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#8B968D;font-weight:600;}
.rvp-fact b{font-size:14px;color:#16241e;}
.rvp-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.rvp-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block;transition:opacity .15s;}
.rvp-gallery a:hover img{opacity:.85;}
.rvp-section{background:#fff;border:1px solid #E4E9E1;border-radius:14px;padding:20px 22px;margin-bottom:16px;}
.rvp-section-h{font-size:15px;font-weight:750;margin:0 0 12px;display:flex;align-items:center;gap:8px;color:#16241e;}
.rvp-h-ok{color:var(--rvp-green);}
.rvp-h-no{color:#B23A3A;}
@media (max-width:600px){.rvp-gallery{grid-template-columns:repeat(3,1fr);}.rvp-hero{aspect-ratio:16/10;}.rvp-hero-title{font-size:22px;}}


/* ============ Calendrier des Oumrah (accueil) ============ */
.rvp-cal-month{margin-bottom:18px;border:1px solid #E4E9E1;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 1px 2px rgba(16,40,26,.04);}
.rvp-cal-mh{background:linear-gradient(90deg,#EAF3EC,#F4F7F2);color:var(--rvp-green);font-weight:750;font-size:13px;letter-spacing:.04em;text-transform:capitalize;padding:11px 18px;border-bottom:1px solid #E4E9E1;}
.rvp-cal-row{display:grid;grid-template-columns:180px 1fr auto 120px;align-items:center;gap:16px;padding:13px 18px;text-decoration:none;color:#16241e;border-bottom:1px solid #F0F3EE;transition:background .12s ease;}
.rvp-cal-row:last-child{border-bottom:0;}
.rvp-cal-row:hover{background:#F7FAF6;}
.rvp-cal-date{font-size:14px;color:#3d4d43;white-space:nowrap;font-variant-numeric:tabular-nums;}
.rvp-cal-date b{color:#16241e;}
.rvp-cal-arrow{color:var(--rvp-orange);margin:0 7px;font-weight:700;}
.rvp-cal-title{font-weight:650;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rvp-cal-price{font-weight:800;color:var(--rvp-green);font-variant-numeric:tabular-nums;white-space:nowrap;}
.rvp-cal-seats{justify-self:end;font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;background:#EEF4EF;color:#3d6b4e;white-space:nowrap;}
.rvp-cal-seats.is-hot{background:#FBEBDD;color:var(--rvp-orange-2);}
.rvp-cal-seats.is-full{background:#EDEFEE;color:#6b7280;}
@media (max-width:720px){
  .rvp-cal-row{grid-template-columns:1fr auto;grid-template-areas:"date seats" "title price";gap:6px 12px;}
  .rvp-cal-date{grid-area:date;}
  .rvp-cal-seats{grid-area:seats;}
  .rvp-cal-title{grid-area:title;white-space:normal;}
  .rvp-cal-price{grid-area:price;justify-self:end;}
}

/* ============ Carte vol (résultats "Vols") ============ */
.rvp-flight{background:#fff;border:1px solid #E4E9E1;border-radius:14px;display:flex;align-items:stretch;gap:0;overflow:hidden;box-shadow:0 1px 2px rgba(16,40,26,.04);transition:box-shadow .15s ease, transform .15s ease;margin-bottom:14px;}
.rvp-flight:hover{box-shadow:0 14px 30px rgba(16,40,26,.10);transform:translateY(-2px);}
.rvp-flight-main{flex:1;padding:16px 20px;display:flex;flex-direction:column;gap:14px;min-width:0;}
/* Bandeau compagnie à gauche du billet : logo entier sur fond neutre, sans effet */
/* Aligné en haut : sur un aller-retour (carte haute) un logo centré flotterait. */
.rvp-flight-brand{width:112px;flex:none;display:flex;align-items:flex-start;justify-content:center;
  padding:16px 14px;border-right:1px solid #EEF3EE;background:#fff;}
.rvp-flight-brand img{max-width:100%;max-height:52px;width:auto;height:auto;object-fit:contain;display:block;}
.rvp-flight-initials{width:38px;height:38px;border-radius:9px;background:#EEF4EF;color:var(--rvp-green);
  display:grid;place-items:center;font-weight:800;font-size:14px;letter-spacing:.02em;}
.rvp-flight-airline{display:flex;align-items:center;gap:11px;}
.rvp-flight-logo{width:38px;height:38px;border-radius:9px;background:var(--rvp-green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;letter-spacing:.02em;flex:none;overflow:hidden;}
/* Logo de la compagnie : fond neutre pour ne pas dénaturer les couleurs de la marque */
.rvp-flight-logo--img{background:#fff;border:1px solid #EEF3EE;padding:3px;}
.rvp-flight-logo--img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;}
.rvp-flight-carrier{font-weight:750;font-size:14px;color:#16241e;line-height:1.2;}
.rvp-flight-meta{font-size:12px;color:#8B968D;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.rvp-flight-cabin{background:#EEF4EF;color:var(--rvp-green);font-weight:700;padding:2px 8px;border-radius:20px;font-size:11px;}

.rvp-flight-itin{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;}
.rvp-flight-point{min-width:0;}
.rvp-flight-point--end{text-align:right;}
.rvp-flight-time{font-size:20px;font-weight:800;color:#16241e;font-variant-numeric:tabular-nums;line-height:1;}
.rvp-flight-code{font-size:13px;font-weight:700;color:var(--rvp-green);letter-spacing:.04em;margin-top:3px;}
.rvp-flight-city{font-size:12px;color:#8B968D;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rvp-flight-path{display:flex;flex-direction:column;align-items:center;min-width:120px;}
.rvp-flight-dur{font-size:11px;color:#5b6b61;font-weight:600;margin-bottom:2px;}
.rvp-flight-line{position:relative;width:100%;height:2px;background:linear-gradient(90deg,#cfe0d4,#cfe0d4);border-radius:2px;}
.rvp-flight-line::before,.rvp-flight-line::after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:#9fb8a6;}
.rvp-flight-line::before{left:0;}
.rvp-flight-line::after{right:0;}
.rvp-flight-plane{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:var(--rvp-orange);padding:0 5px;font-size:13px;line-height:1;}
.rvp-flight-stops{font-size:11px;color:#8B968D;margin-top:3px;}
.rvp-flight-date{font-size:11.5px;font-weight:600;color:#5b6b61;margin-top:3px;text-transform:capitalize;}
.rvp-flight-plus{font-size:11px;font-weight:700;color:var(--rvp-orange);margin-left:1px;top:-.5em;}

/* Sens du vol (aller / retour) — badge repris sur les cartes et le détail */
.rvp-way{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;
  font-size:11px;font-weight:700;letter-spacing:.02em;vertical-align:middle;white-space:nowrap;}
.rvp-way i{font-size:11px;color:inherit;} /* prime le vert des icônes de .rvp-pcard-facts */
.rvp-way--aller{background:#E8F3EB;color:#0E5E33;}
.rvp-way--retour{background:#FDEDE1;color:#A8460C;}
.rvp-way--ar{background:var(--rvp-green);color:#fff;}

/* Vol aller-retour : deux trajets empilés dans la même carte */
.rvp-flight-itin + .rvp-flight-itin{border-top:1px dashed #E1EAE2;padding-top:14px;}
.rvp-flight-leg{grid-column:1 / -1;font-size:11px;font-weight:750;letter-spacing:.06em;
  text-transform:uppercase;color:#8B968D;}

.rvp-flight-buy{width:210px;flex:none;border-left:1px dashed #E1EAE2;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:8px;background:#FAFCF9;}
.rvp-flight-extra{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:#5b6b61;}
.rvp-flight-extra i{color:var(--rvp-green);}
.rvp-flight-price{display:flex;flex-direction:column;line-height:1.1;}

@media (max-width:720px){
  .rvp-flight{flex-direction:column;}
  .rvp-flight-buy{width:auto;border-left:0;border-top:1px dashed #E1EAE2;}
  .rvp-flight-path{min-width:90px;}
  /* Empilé : le bandeau devient une bande haute, logo calé à gauche */
  .rvp-flight-brand{width:auto;justify-content:flex-start;padding:14px 20px 0;border-right:0;}
  .rvp-flight-brand img{max-height:34px;}
}

/* ============ Onglets de type (builder/services) ============ */
.rvp-svc-tabs{display:flex;flex-wrap:wrap;gap:8px;}
.rvp-svc-tab{display:inline-block;padding:7px 15px;border-radius:20px;border:1px solid #E1EAE2;background:#fff;color:var(--rvp-green);font-weight:600;font-size:13.5px;text-decoration:none;transition:background .12s ease,color .12s ease,border-color .12s ease;}
.rvp-svc-tab:hover{background:#EFF5F0;color:var(--rvp-green);}
.rvp-svc-tab.is-active{background:var(--rvp-orange);border-color:var(--rvp-orange);color:#fff;}

/* Bannière compagnie (cartes transport) */
.rvp-pcard-banner{margin:-10px -13px 10px;padding:8px 13px;background:var(--rvp-green);color:#fff;font-weight:750;font-size:13px;letter-spacing:.02em;display:flex;align-items:center;gap:8px;}
.rvp-pcard-banner i{opacity:.9;}

/* Bannière de ville (accueil : hôtels groupés par ville).
   Barre pleine largeur, volontairement contrastée pour séparer nettement
   les blocs Mecque / Médine ; chaque ville a sa teinte propre. */
.rvp-city-banner{display:flex;align-items:center;gap:14px;margin:36px 0 20px;padding:16px 22px;border-radius:14px;
  background:linear-gradient(100deg,var(--rvp-green),#1B8F51);color:#fff;
  border-left:6px solid var(--rvp-orange);box-shadow:0 8px 22px rgba(16,40,26,.18);}
.rvp-city-banner--mecque{background:linear-gradient(100deg,#0E5E33,#17864A);}
.rvp-city-banner--medine{background:linear-gradient(100deg,#0F5E5A,#158B78);}
.rvp-city-icon{flex:none;display:flex;align-items:center;justify-content:center;width:42px;height:42px;
  border-radius:11px;background:rgba(255,255,255,.16);font-size:20px;line-height:1;}
.rvp-city-text{min-width:0;}
.rvp-city-name{margin:0;font-weight:800;font-size:22px;line-height:1.15;letter-spacing:.01em;color:#fff;}
.rvp-city-sub{display:block;margin-top:2px;font-size:13px;font-weight:500;color:rgba(255,255,255,.86);}
.rvp-city-count{margin-left:auto;flex:none;font-size:12.5px;font-weight:650;padding:5px 12px;border-radius:20px;
  background:rgba(255,255,255,.18);white-space:nowrap;}
@media (max-width:575.98px){
  .rvp-city-banner{gap:11px;padding:12px 15px;margin:26px 0 15px;border-left-width:5px;}
  .rvp-city-icon{width:36px;height:36px;font-size:17px;border-radius:9px;}
  .rvp-city-name{font-size:18px;}
  .rvp-city-sub{font-size:11.5px;}
  .rvp-city-count{font-size:11.5px;padding:4px 9px;}
}

/* Étoiles hôtel (accueil) : on affiche autant d'étoiles que le classement,
   les étoiles restantes sont grisées (jamais « 4 ★»). */
.rvp-stars{color:#E9A21B;font-size:15px;line-height:1;letter-spacing:1.5px;margin-top:4px;white-space:nowrap;}
.rvp-star-off{color:#DDE4DC;}

/* Cartes transporteur (résultats transport, niveau 1) */
.rvp-tcard{box-sizing:border-box;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:10px;width:100%;height:100%;background:#fff;border:1px solid #E4E9E1;border-radius:14px;padding:16px 14px;text-decoration:none;color:#16241e;box-shadow:0 1px 2px rgba(16,40,26,.04);transition:transform .15s ease, box-shadow .15s ease;overflow:hidden;}
.rvp-tcard:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(16,40,26,.10);color:#16241e;z-index:1;}
.rvp-tcard-logo{box-sizing:border-box;width:100%;height:96px;flex:none;display:flex;align-items:center;justify-content:center;background:#F6F9F5;border:1px solid #EEF3EE;border-radius:10px;padding:8px;overflow:hidden;}
.rvp-tcard-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;}
.rvp-tcard-logo i{font-size:38px;line-height:1;color:var(--rvp-green);}
/* hauteur figée à 2 lignes : toutes les cartes ont la même hauteur, donc les
   logos et les compteurs restent alignés d'une rangée à l'autre. */
.rvp-tcard-name{font-weight:750;font-size:14px;line-height:1.25;height:2.5em;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rvp-tcard-count{font-size:12px;color:#8B968D;margin-top:auto;}
@media (max-width:575.98px){
  .rvp-tcard{padding:12px 10px;gap:8px;}
  .rvp-tcard-logo{height:78px;}
  .rvp-tcard-name{font-size:13px;}
}
