/* ============================================================
   COLOMBES VOYAGES — style.css
   Charte : vert profond #0B4A36 / or #C4A048 / crème #FAF7F0
   ============================================================ */
:root{
  --vert:#0B4A36;
  --vert-fonce:#073527;
  --or:#C4A048;
  --or-clair:#D9BC77;
  --creme:#FAF7F0;
  --blanc:#FFFFFF;
  --txt:#2C3530;
  --txt-doux:#5C6660;
  --ombre:0 10px 30px rgba(11,74,54,.10);
  --radius:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;color:var(--txt);background:var(--creme);font-size:16px;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(1200px,92%);margin:0 auto}
h1,h2,h3{font-family:'Playfair Display',serif;color:var(--vert)}
.gold{color:var(--or)}

/* ---------- Titres de sections ---------- */
.sec-title{text-align:center;font-size:clamp(24px,3vw,34px);letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}
.sec-title .gold{color:var(--or)}
.sec-sur{display:block;text-align:center;font-family:'Jost',sans-serif;font-size:13px;letter-spacing:4px;color:var(--txt-doux);text-transform:uppercase;margin-bottom:6px}
.sec-orne{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px auto 40px;color:var(--or)}
.sec-orne::before,.sec-orne::after{content:"";height:1px;width:56px;background:linear-gradient(90deg,transparent,var(--or))}
.sec-orne::after{background:linear-gradient(90deg,var(--or),transparent)}
.sec-orne i{font-size:14px}

/* ---------- Top bar ---------- */
.topbar{background:var(--vert-fonce);color:#EDE8DB;font-size:13px}
.topbar-in{display:flex;justify-content:space-between;align-items:center;padding:8px 0;gap:12px;flex-wrap:wrap}
.topbar i{color:var(--or);margin-right:5px}
.tb-right{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.tb-right a:hover{color:var(--or-clair)}
.tb-socials{display:flex;gap:12px}
.tb-socials a i{color:#EDE8DB;margin:0}
.tb-socials a:hover i{color:var(--or)}

/* ---------- Header ---------- */
.header{background:var(--blanc);box-shadow:0 2px 14px rgba(0,0,0,.06);position:sticky;top:0;z-index:60}
.header-in{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:20px}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{width:54px;height:58px;flex:none}
.brand-logo svg{width:100%;height:100%}
.brand-logo.sm{width:44px;height:48px}
.brand-name{display:block;font-family:'Cinzel',serif;font-weight:700;color:var(--vert);font-size:19px;letter-spacing:1px;line-height:1.1}
.brand-name em{font-style:normal;color:var(--or)}
.brand-sub{display:block;font-size:9.5px;letter-spacing:3.5px;color:var(--txt-doux)}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-size:13.5px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--txt);padding:6px 0;border-bottom:2px solid transparent;transition:.2s}
.nav a:hover{color:var(--vert)}
.nav a.on{color:var(--vert);border-color:var(--or)}
.nav-wa{background:#1EBE5D;color:#fff!important;border-radius:30px;padding:8px 16px!important;border:none!important}
.nav-wa:hover{background:#17a04e}
.burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px}
.burger span{width:26px;height:2.5px;background:var(--vert);border-radius:2px;transition:.25s}

/* ---------- Hero ---------- */
.hero{position:relative;color:#fff;text-align:center;background:var(--vert-fonce);overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.55)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,53,39,.35),rgba(7,53,39,.75))}
.hero-in{position:relative;z-index:2;padding:64px 16px 150px}
.hero-logo{width:96px;margin:0 auto 14px}
.hero-logo svg text{fill:#fff}
.hero-brand{font-family:'Cinzel',serif;font-size:clamp(22px,3vw,30px);letter-spacing:3px;color:#fff}
.hero-brand em{font-style:normal;color:var(--or-clair);display:block;font-size:.78em;letter-spacing:6px}
.hero-tag{max-width:520px;margin:12px auto 26px;font-size:15px;color:#E9E3D4}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(30px,4.6vw,50px);color:#fff;line-height:1.15}
.hero-title .gold{display:block;color:var(--or-clair);font-style:italic}
.hero-crumbs{margin:18px 0 26px;font-size:15px;letter-spacing:1px;color:#EDE8DB}
.hero-crumbs b{color:var(--or-clair);font-weight:400;margin:0 6px}
.hero-badges{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin-bottom:30px}
.hero-badge{display:flex;align-items:center;gap:10px;font-size:15px}
.hero-badge i{width:42px;height:42px;border-radius:50%;background:var(--or);color:var(--vert-fonce);display:grid;place-items:center;font-size:18px}
.hero-btns{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 28px;border-radius:34px;font-family:'Jost',sans-serif;font-size:13.5px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;transition:.2s;border:1.5px solid transparent;cursor:pointer}
.btn-or{background:linear-gradient(135deg,var(--or),#B08C34);color:var(--vert-fonce)}
.btn-or:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-ghost{border-color:var(--or-clair);color:#fff;background:rgba(255,255,255,.06)}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn-vert{background:var(--vert);color:#fff}
.btn-vert:hover{background:var(--vert-fonce)}
.hero-curve{position:absolute;bottom:-1px;left:0;width:100%;z-index:3;display:block}
.hero-arch{position:absolute;bottom:-1px;left:0;width:100%;height:140px;z-index:3;display:block}
.hero-losange{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);z-index:4;color:var(--or);font-size:15px;display:flex;align-items:center;gap:8px}
.hero-losange:before,.hero-losange:after{content:"";width:46px;height:1px;background:linear-gradient(90deg,transparent,var(--or))}
.hero-losange:after{background:linear-gradient(90deg,var(--or),transparent)}
.hero.small .hero-in{padding:56px 16px 120px}

/* ---------- Cartes avantages ---------- */
.avantages{margin-top:-58px;position:relative;z-index:5;padding-bottom:10px}
.av-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.av-card{background:var(--blanc);border-radius:14px;box-shadow:var(--ombre);padding:22px 12px;text-align:center;font-size:13px;font-weight:500;color:var(--txt);transition:.25s}
.av-card:hover{transform:translateY(-4px)}
.av-card i{display:block;font-size:30px;margin-bottom:10px}
.av-card:nth-child(odd) i{color:var(--vert)}
.av-card:nth-child(even) i{color:var(--or)}

/* ---------- Formules / offres ---------- */
.section{padding:64px 0}
.offres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;row-gap:34px;align-items:start}
/* ---- Carte offre (fidèle maquette) ---- */
.offre-card{position:relative;background:#FBF9F4;border-radius:18px;box-shadow:0 8px 26px rgba(11,74,54,.10);padding:0 0 20px;min-height:236px;transition:transform .25s,box-shadow .25s}
.offre-card:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(11,74,54,.18)}
/* Photo : couche dediee, moitie droite, pleine hauteur, coins arrondis a droite */
.oc-photo{position:absolute;top:0;right:0;bottom:0;width:48%;border-radius:0 18px 18px 0;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:1}
/* Fondu doux a la jonction gauche de la photo */
.oc-photo:before{content:"";position:absolute;top:0;left:-1px;bottom:0;width:34%;background:linear-gradient(90deg,#FBF9F4 0%,rgba(251,249,244,.72) 52%,rgba(251,249,244,0) 100%)}
.oc-link{position:absolute;inset:0;z-index:7;border-radius:18px}
.oc-link:focus-visible{outline:3px solid var(--or);outline-offset:-3px}
/* Pastille titre : depasse legerement a gauche, arrondie a droite */
.oc-head{position:relative;z-index:5;display:inline-flex;align-items:center;gap:11px;background:var(--vert);color:#fff;padding:7px 24px 7px 7px;border-radius:0 44px 44px 0;box-shadow:0 7px 18px rgba(11,74,54,.30);margin:16px 0 18px -6px;max-width:82%}
.oc-head.or{background:linear-gradient(100deg,#C9A44C,#A8862F)}
.oc-medal{width:42px;height:42px;flex:none;border-radius:50%;border:2px solid var(--or-clair);display:grid;place-items:center;background:rgba(255,255,255,.12)}
.oc-head.or .oc-medal{border-color:#fff;background:rgba(255,255,255,.20)}
.oc-medal svg{width:27px;height:29px}
.oc-medal svg text{fill:#fff}
.oc-medal svg path{stroke:var(--or-clair)}
.oc-medal svg circle{fill:var(--or-clair)}
.oc-head.or .oc-medal svg text{fill:#fff}
.oc-head.or .oc-medal svg path{stroke:#fff}
.oc-head.or .oc-medal svg circle{fill:#fff}
.oc-title{font-family:'Playfair Display',serif;font-size:15.5px;letter-spacing:.5px;line-height:1.2;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Features : colonne gauche */
.oc-body{position:relative;z-index:4;padding:0 18px}
.oc-list{list-style:none;display:grid;gap:9px;font-size:14px;width:52%}
.oc-list li{display:flex;gap:8px;align-items:flex-start;color:#3A443E;line-height:1.35}
.oc-list li i{color:var(--vert);font-size:14px;margin-top:2px;flex:none}
.oc-dates{margin-top:12px;font-size:12px;color:var(--txt-doux);display:flex;align-items:flex-start;gap:6px;width:52%;line-height:1.35}
.oc-dates i{color:var(--or);margin-top:2px;flex:none}
/* Encart prix : blanc, sous les features, chevauche la photo */
.oc-prix{position:relative;z-index:6;margin:16px 0 0 18px;background:#fff;border-radius:12px;padding:10px 20px 12px;box-shadow:0 8px 22px rgba(11,74,54,.16);width:62%;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px}
.oc-prix small{flex:0 0 100%;font-size:11.5px;color:var(--txt-doux);letter-spacing:.4px;text-align:center;margin-bottom:1px}
.oc-prix .val{font-family:'Playfair Display',serif;font-size:27px;color:var(--vert);line-height:1.05;font-weight:700;white-space:nowrap}
.oc-prix .pp{font-size:11.5px;color:var(--txt-doux);white-space:nowrap}
.oc-badge{position:absolute;top:14px;right:14px;z-index:6;background:var(--or);color:var(--vert-fonce);font-size:10.5px;font-weight:600;letter-spacing:.8px;padding:5px 11px;border-radius:20px;text-transform:uppercase}
.oc-badge.complet{background:#B23A3A;color:#fff}
@media (max-width:560px){
  .oc-photo{width:100%;border-radius:18px;opacity:.15}
  .oc-photo:before{display:none}
  .oc-list,.oc-dates,.oc-prix{width:auto}
  .oc-prix{margin-right:18px}
  .oc-head{max-width:92%}
}
.oc-prix.or .val{color:#A8862F}

/* ---------- Services + Destinations ---------- */
.split{display:grid;grid-template-columns:1fr 1.35fr;gap:22px;align-items:start}
.panel{background:var(--blanc);border-radius:16px;box-shadow:var(--ombre);padding:28px 24px}
.panel h2{font-family:'Playfair Display',serif;color:var(--vert);font-size:23px;text-align:center;letter-spacing:.5px}
.serv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px 10px;margin-top:6px}
.serv-grid>div{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:12.5px;color:var(--txt);line-height:1.3}
.serv-grid i{font-size:26px;color:var(--vert)}
.dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}
.dest{text-decoration:none;transition:transform .25s,box-shadow .25s;position:relative;border-radius:10px;overflow:hidden;aspect-ratio:3/2;background-size:cover;background-position:center;display:flex;align-items:flex-end}
.dest:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(11,74,54,.22)}
.dest:hover span{background:var(--or);color:var(--vert-fonce)}
.dest:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.dest span{width:100%;background:rgba(11,74,54,.86);color:#fff;font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;text-align:center;padding:7px 6px;transition:.2s}

/* ---------- Témoignages ---------- */
.temoins{display:grid;grid-template-columns:.8fr 1fr 1fr 1fr;gap:18px;align-items:center;background:var(--blanc);border-radius:16px;box-shadow:var(--ombre);padding:30px 26px}
.temoins-t{font-family:'Playfair Display',serif;color:var(--vert);font-size:26px;line-height:1.2;text-align:center}
.temoin{background:var(--creme);border-radius:12px;padding:20px 18px;text-align:center;position:relative}
.temoin .stars{color:var(--or);font-size:13px;margin-bottom:10px;letter-spacing:2px}
.temoin q{display:block;font-size:13.5px;color:var(--txt);font-style:italic;line-height:1.6;quotes:"«" "»"}
.temoin .who{display:block;margin-top:10px;font-size:12.5px;color:var(--or);font-weight:600}

/* ---------- Page séjour : colonnes ---------- */
.sejour{display:grid;grid-template-columns:1.55fr 1fr;gap:30px;align-items:start}
.sej-desc h1{font-family:'Playfair Display',serif;color:var(--vert);font-size:clamp(22px,2.6vw,30px);margin-bottom:12px}
.sej-meta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:22px;font-size:14px;color:var(--txt-doux)}
.sej-meta i{color:var(--or);margin-right:5px}
.hotels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 20px}
.hotel{border:1px solid #EFE7D4;border-radius:12px;padding:16px;background:var(--blanc)}
.hotel b{display:block;color:var(--vert);font-size:15px;margin-bottom:4px}
.hotel small{color:var(--txt-doux);font-size:12.5px}
.tarifs{width:100%;border-collapse:collapse;margin-bottom:8px;font-size:14.5px}
.tarifs th{background:var(--vert);color:#fff;text-align:left;padding:10px 14px;font-weight:500;font-size:13px;letter-spacing:.5px;text-transform:uppercase}
.tarifs td{padding:10px 14px;border-bottom:1px solid #EFE7D4}
.tarifs .px{text-align:right;font-weight:600;color:var(--vert)}

/* ---------- Formulaires ---------- */
.form-card{background:var(--blanc);border-radius:16px;box-shadow:var(--ombre);padding:26px 24px;position:sticky;top:96px}
.form-card h2{font-family:'Playfair Display',serif;color:var(--vert);font-size:22px;text-align:center}
.form-grid{display:grid;gap:14px}
.form-grid label{display:block;font-size:12.5px;color:var(--txt-doux);margin-bottom:5px;font-weight:500}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:11px 13px;border:1px solid #E2D9C4;border-radius:10px;background:#FDFCF8;font-family:inherit;font-size:14.5px;color:var(--txt)}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid var(--or);border-color:transparent}
.form-grid textarea{min-height:110px;resize:vertical}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.alert{border-radius:10px;padding:14px 16px;font-size:14px;line-height:1.6;margin-bottom:14px}
.alert.ok{background:#E4F0EA;color:var(--vert);border:1px solid #BEDCCC}
.alert.ko{background:#F8E7E7;color:#8F2F2F;border:1px solid #E8C4C4}
.alert a{color:inherit;text-decoration:underline}

/* ---------- Page contact : coordonnées ---------- */
.bc-card{background:var(--blanc);border-radius:16px;box-shadow:var(--ombre);padding:26px 24px}
.bc-card h2{font-family:'Playfair Display',serif;color:var(--vert);font-size:22px;margin-bottom:6px}
.bc-list{display:grid;gap:16px;margin-top:16px}
.bc-item{display:flex;gap:14px;align-items:flex-start;font-size:14.5px}
.bc-item i{width:38px;height:38px;flex:none;border-radius:50%;background:var(--creme);color:var(--or);display:grid;place-items:center;font-size:16px}
.bc-item b{display:block;color:var(--vert);margin-bottom:2px}
.bc-item a{color:var(--txt)}
.bc-item a:hover{color:var(--or)}
.map-wrap{border-radius:16px;overflow:hidden;box-shadow:var(--ombre);line-height:0}
.map-wrap iframe{width:100%;height:280px;border:0}

/* ---------- Étapes (Hajj) ---------- */
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
.etape{background:var(--blanc);border-radius:14px;box-shadow:var(--ombre);padding:24px 18px;text-align:center}
.etape .num{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--vert);color:var(--or);font-family:'Playfair Display',serif;font-size:19px;font-weight:700;margin-bottom:12px}
.etape b{display:block;color:var(--vert);font-size:15.5px;margin-bottom:6px}
.etape p{font-size:13.5px;color:var(--txt-doux);line-height:1.6}

/* ---------- Footer ---------- */
.footer{background:var(--blanc);border-top:3px solid var(--or);margin-top:60px;padding:26px 0}
.footer-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-nav{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;letter-spacing:1px;text-transform:uppercase}
.footer-nav a{color:var(--txt-doux)}
.footer-nav a:hover{color:var(--or)}
.footer-copy{font-size:12.5px;color:var(--txt-doux)}

/* ---------- WhatsApp flottant ---------- */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:80;width:56px;height:56px;border-radius:50%;background:#1EBE5D;color:#fff;display:grid;place-items:center;font-size:27px;box-shadow:0 8px 24px rgba(30,190,93,.45);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}

/* ---------- Divers ---------- */
.page-intro{font-size:15.5px;color:var(--txt-doux);line-height:1.8;text-align:center;max-width:760px;margin:0 auto 30px}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .av-grid{grid-template-columns:repeat(3,1fr)}
  .split{grid-template-columns:1fr}
  .sejour{grid-template-columns:1fr}
  .form-card{position:static}
  .temoins{grid-template-columns:1fr 1fr}
  .etapes{grid-template-columns:1fr 1fr}
  .bloc-bas{grid-template-columns:1fr}
}
@media (max-width:820px){
  .nav{position:fixed;inset:0 0 auto 0;top:70px;background:var(--blanc);flex-direction:column;padding:22px;gap:16px;box-shadow:0 12px 30px rgba(0,0,0,.12);display:none}
  .nav.open{display:flex}
  .burger{display:flex}
  .hotels{grid-template-columns:1fr}
  .dest-grid{grid-template-columns:repeat(2,1fr)}
  .serv-grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:640px){
  .av-grid{grid-template-columns:repeat(2,1fr)}
  .temoins{grid-template-columns:1fr}
  .etapes{grid-template-columns:1fr}
  .duo{grid-template-columns:1fr}
  .serv-grid{grid-template-columns:repeat(2,1fr)}
  .bb-grid{grid-template-columns:1fr}
  .footer-in{flex-direction:column;text-align:center}
}

/* ---------- Page séjour enrichie ---------- */
.sej-desc h3{font-family:'Playfair Display',serif;color:var(--vert);font-size:21px;margin:34px 0 14px;padding-bottom:8px;border-bottom:2px solid #EFE3C8}
.h3-note{font-family:'Jost',sans-serif;font-size:12.5px;color:#8a8a7a;font-weight:400;letter-spacing:.5px;text-transform:uppercase;margin-left:8px}
.sej-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 6px}
.sej-strip>div{background:var(--blanc);border:1px solid #EFE3C8;border-radius:12px;padding:14px 12px;text-align:center;display:flex;flex-direction:column;gap:3px}
.sej-strip i{font-size:20px;color:var(--or)}
.sej-strip b{color:var(--vert);font-size:14.5px}
.sej-strip span{font-size:12.5px;color:#6d6d5f}
.prix-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.prix-card{background:var(--blanc);border:1px solid #EFE3C8;border-radius:12px;padding:16px 12px;text-align:center;display:flex;flex-direction:column;gap:4px;transition:transform .2s,box-shadow .2s}
.prix-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(11,74,54,.12)}
.pc-type{font-size:13px;color:#6d6d5f;text-transform:uppercase;letter-spacing:.6px}
.pc-x{font-family:'Playfair Display',serif;font-size:15px;color:var(--or);font-weight:700}
.pc-prix{font-family:'Playfair Display',serif;font-size:24px;color:var(--vert);font-weight:700}
.prix-card small{font-size:11.5px;color:#9a9a8a}
.prix-note{margin-top:10px;font-size:14px;color:#4c554f}
.prix-note i{color:var(--or)}
.vols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vol{background:var(--blanc);border:1px solid #EFE3C8;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:5px}
.vol-tag{align-self:flex-start;background:var(--vert);color:#fff;font-size:11px;letter-spacing:.8px;text-transform:uppercase;padding:3px 11px;border-radius:12px}
.vol b{color:var(--vert)}
.vol b i{color:var(--or);margin-right:4px}
.vol span{font-size:13.5px;color:#5a635d}
.inclus-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.inclus-col{background:var(--blanc);border:1px solid #EFE3C8;border-radius:12px;padding:18px}
.inclus-col h4{font-family:'Jost',sans-serif;font-size:14px;letter-spacing:.6px;text-transform:uppercase;color:var(--vert);margin-bottom:12px}
.inclus-col h4 i{color:#2E8B57}
.inclus-col.non h4 i{color:#B23A3A}
.inclus-col ul{list-style:none}
.inclus-col li{font-size:14px;color:#4c554f;padding:5px 0;display:flex;gap:9px;align-items:flex-start}
.inclus-col li i{color:#2E8B57;font-size:13px;margin-top:3px}
.inclus-col.non li i{color:#B23A3A}
.timeline{position:relative;padding-left:6px}
.tl-step{display:flex;gap:14px;padding:0 0 20px 0;position:relative}
.tl-step:before{content:"";position:absolute;left:15px;top:34px;bottom:0;width:2px;background:#E5D9BC}
.tl-step:last-child:before{display:none}
.tl-num{flex:0 0 32px;height:32px;border-radius:50%;background:var(--vert);color:var(--or);font-family:'Playfair Display',serif;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px;z-index:1}
.tl-step b{color:var(--vert);font-size:15.5px}
.tl-step p{font-size:13.5px;color:#5a635d;margin-top:3px}
.tl-body{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;flex:1}
.tl-img{flex:0 0 130px;width:130px;height:90px;object-fit:cover;border-radius:10px;border:1px solid #EFE3C8}
.docs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.doc{background:var(--blanc);border:1px solid #EFE3C8;border-radius:12px;padding:16px 14px;text-align:center;display:flex;flex-direction:column;gap:5px}
.doc i{font-size:24px;color:var(--or)}
.doc b{color:var(--vert);font-size:14.5px}
.doc span{font-size:12.5px;color:#6d6d5f}
.sej-txt{font-size:15px;color:#4c554f;line-height:1.75}
.trust{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.trust span{font-size:12px;color:#5a635d;display:inline-flex;align-items:center;gap:5px}
.trust i{color:var(--or)}
/* Galerie hôtel + lien Booking */
.hotel-pics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 4px}
.hotel-pics a{display:block;border-radius:8px;overflow:hidden;aspect-ratio:4/3;background:#EDE6D4}
.hotel-pics img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.hotel-pics a:hover img{transform:scale(1.07)}
.btn-booking{display:inline-flex;align-items:center;gap:7px;margin-top:9px;font-size:13px;font-weight:600;color:#003580;background:#EBF0F9;border:1px solid #C9D7EF;border-radius:20px;padding:6px 14px;text-decoration:none;transition:background .2s}
.btn-booking:hover{background:#DCE6F7}
.btn-booking i{color:#FEBB02}

/* ---------- Page Hajj 2027 (Nusuk) ---------- */
.nusuk-expl{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;margin-top:26px;align-items:start}
.ne-txt p{font-size:15.5px;color:#4c554f;line-height:1.8;margin-bottom:14px}
.ne-highlight{background:var(--blanc);border-left:4px solid var(--or);border-radius:0 12px 12px 0;padding:16px 18px;box-shadow:0 6px 18px rgba(11,74,54,.07)}
.ne-highlight i{color:var(--or);margin-right:5px}
.ne-badge{background:var(--vert);color:#fff;border-radius:16px;padding:26px 22px;text-align:center;display:flex;flex-direction:column;gap:7px;box-shadow:0 12px 30px rgba(11,74,54,.2)}
.ne-badge i{font-size:38px;color:var(--or)}
.ne-badge b{font-family:'Playfair Display',serif;font-size:20px}
.ne-badge span{color:var(--or);font-size:13px;letter-spacing:1.4px;text-transform:uppercase}
.ne-badge small{font-size:12.5px;color:#D9E3DD;line-height:1.6;margin-top:6px}
.ne-legal{margin-top:22px;font-size:12.5px;color:#7d8781;line-height:1.6;background:#F3EFE4;border-radius:10px;padding:12px 14px}
.ne-legal i{color:var(--or)}
.acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
.acc-card{background:var(--blanc);border:1px solid #EFE3C8;border-radius:16px;padding:28px 24px;box-shadow:0 8px 24px rgba(11,74,54,.07)}
.acc-card.or{border-color:var(--or);border-width:2px}
.acc-ico{display:inline-flex;width:52px;height:52px;border-radius:50%;background:var(--vert);color:var(--or);align-items:center;justify-content:center;font-size:23px;margin-bottom:12px}
.acc-card.or .acc-ico{background:var(--or);color:var(--vert)}
.acc-card h3{font-family:'Playfair Display',serif;color:var(--vert);font-size:21px;margin-bottom:14px}
.acc-card ul{list-style:none}
.acc-card li{font-size:14.5px;color:#4c554f;padding:7px 0;display:flex;gap:9px;align-items:flex-start;border-bottom:1px dashed #EFE7D4}
.acc-card li:last-child{border-bottom:0}
.acc-card li i{color:var(--or);margin-top:3px}
.faq details{background:var(--blanc);border:1px solid #EFE3C8;border-radius:12px;margin-bottom:10px;overflow:hidden}
.faq summary{cursor:pointer;padding:15px 18px;font-weight:600;color:var(--vert);font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"\F282";font-family:'bootstrap-icons';color:var(--or);font-size:13px;transition:transform .25s;flex:0 0 auto}
.faq details[open] summary:after{transform:rotate(180deg)}
.faq summary:hover{background:#FBF8F1}
.faq p{padding:0 18px 16px;font-size:14.5px;color:#5a635d;line-height:1.75}
.form-intro{font-size:13.5px;color:#6d7a72;margin-bottom:14px;line-height:1.6}
.checks{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.checks label{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:#4c554f;cursor:pointer;font-weight:400}
.checks input{width:auto;margin-top:3px;accent-color:var(--vert)}

@media (max-width:900px){.nusuk-expl,.acc-grid{grid-template-columns:1fr}}
@media (max-width:820px){
  .sej-strip{grid-template-columns:1fr 1fr}
  .vols,.inclus-grid{grid-template-columns:1fr}
  .docs-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .hotel-pics{grid-template-columns:repeat(2,1fr)}
  .tl-body{flex-direction:column}
  .tl-img{width:100%;height:130px;flex:none}
}

/* ---------- Bloc contact + rêve (bas de page) ---------- */
.bloc-contact{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:16px;overflow:hidden;box-shadow:var(--ombre);margin-top:20px}
.bloc-contact .bc-card{background:var(--vert);color:#fff;border-radius:0;box-shadow:none;padding:32px 30px}
.bc-title{font-family:'Playfair Display',serif;color:var(--or-clair);font-size:19px;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.bc-title i{color:var(--or)}
.bloc-contact .bc-list{list-style:none;display:grid;gap:15px;margin:0}
.bloc-contact .bc-list li{display:flex;gap:13px;align-items:flex-start;font-size:14px;line-height:1.6}
.bloc-contact .bc-list i{color:var(--or);font-size:15px;margin-top:3px;width:auto;height:auto;background:none;flex:none}
.bloc-contact .bc-list a{color:#EDE8DB}
.bloc-contact .bc-list a:hover{color:var(--or-clair)}
.bloc-contact .bc-list strong{color:var(--or-clair);letter-spacing:1px}
.bc-reve{position:relative;background-size:cover;background-position:center;display:flex;align-items:center;padding:32px 30px;min-height:210px}
.bc-reve-in{position:relative;z-index:2}
.bc-reve-t{font-family:'Playfair Display',serif;color:var(--vert);font-size:clamp(20px,2.4vw,28px);line-height:1.4}
.bc-reve-t strong{display:block;font-weight:700}
.bc-plane{width:150px;margin-top:14px;display:block}
@media (max-width:1000px){.bloc-contact{grid-template-columns:1fr}}

/* ---------- Header/topbar : compléments ---------- */
.tb-left{display:flex;align-items:center;gap:8px}
.tb-left i{color:var(--or)}
.tb-mail{display:flex;align-items:center;gap:7px}
.tb-mail i{color:var(--or)}
.brand-txt{display:flex;flex-direction:column}
.brand-footer .brand-logo.sm{width:46px;height:50px}
