/* =========================================================================
   VOYAGEOMRA.FR — Feuille de style
   Charte : vert #0B3D2E · or #C79A2E · crème #F7F4EE · beige #E8E1D5
   Typo    : Poppins (titres et texte)
   ========================================================================= */
:root{
  --vert:#0B3D2E;
  --vert-2:#12513D;
  --vert-3:#062419;
  --or:#C79A2E;
  --or-clair:#E2B85A;
  --or-fonce:#A67F22;
  --blanc:#F7F4EE;
  --blanc-pur:#FFFFFF;
  --beige:#E8E1D5;
  --beige-2:#DED5C5;
  --noir:#2A2A2A;
  --gris:#6E6E6E;
  --gris-clair:#E2DDD2;
  --degrade-or:linear-gradient(90deg,#E2B85A,#A67F22);
  --radius:14px;
  --radius-l:20px;
  --ombre:0 10px 34px rgba(11,61,46,.08);
  --ombre-forte:0 20px 56px rgba(11,61,46,.15);
  --font:'Poppins',system-ui,-apple-system,sans-serif;
  /* alias hérités (pages internes) */
  --font-titre:'Poppins',sans-serif; --font-texte:'Poppins',sans-serif;
  --font-display:'Poppins',sans-serif; --font-body:'Poppins',sans-serif;
  --gold:#C79A2E; --gold-light:#E2B85A; --gold-dark:#A67F22;
  --txt:#2A2A2A; --txt-soft:#6E6E6E;
  --creme:#F7F4EE; --creme2:#E8E1D5; --card-border:rgba(199,154,46,.28);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
body{background:var(--blanc);color:var(--noir);font-family:var(--font);font-weight:400;line-height:1.65;font-size:15px;overflow-x:hidden;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
svg{display:block}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--font);font-weight:600;line-height:1.2}

/* ---------- Utilitaires ---------- */
.eyebrow{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--or);font-weight:600;margin-bottom:14px}
.or{color:var(--or)}
section{padding:70px 0}
.apparait{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.apparait.visible{opacity:1;transform:none}
html:not(.js) .apparait{opacity:1;transform:none}

/* Titre de section « ——— TITRE ——— » */
.titre-filet{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:38px}
.titre-filet::before,.titre-filet::after{content:'';height:1px;flex:0 1 190px;background:linear-gradient(90deg,transparent,var(--or))}
.titre-filet::after{background:linear-gradient(90deg,var(--or),transparent)}
.titre-filet h2{font-size:clamp(1.05rem,2vw,1.35rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--vert);text-align:center}
.sec-head{text-align:center;max-width:720px;margin:0 auto 40px}
.sec-head h2{font-size:clamp(1.5rem,3vw,2.1rem);color:var(--vert)}
.sec-head h2 em{color:var(--or);font-style:normal}
.sec-head p{color:var(--gris);margin-top:12px;font-size:.92rem}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:600;font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;padding:15px 30px;border-radius:40px;transition:.24s;cursor:pointer;border:1.5px solid transparent}
.btn-vert{background:var(--vert);color:#fff;box-shadow:0 10px 26px rgba(11,61,46,.24)}
.btn-vert:hover{background:var(--vert-2);transform:translateY(-2px)}
.btn-or,.btn-gold{background:var(--or);color:#fff;box-shadow:0 10px 26px rgba(199,154,46,.3)}
.btn-or:hover,.btn-gold:hover{background:var(--or-fonce);transform:translateY(-2px)}
.btn-ligne,.btn-ghost{background:transparent;color:var(--vert);border-color:var(--or)}
.btn-ligne:hover,.btn-ghost:hover{background:var(--or);color:#fff}
.btn-blanc{background:#fff;color:var(--vert);border-color:var(--gris-clair)}
.btn-blanc:hover{border-color:var(--or);color:var(--or)}
.btn-noir{background:var(--noir);color:#fff}
.btn-tel{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--vert);font-size:1rem}
.btn-tel:hover{color:var(--or)}
.btn .fl{font-size:.85rem}

/* ---------- Logo ---------- */
.logo{display:inline-flex;align-items:center;gap:11px}
.logo svg{width:52px;height:42px;flex:none}
.logo-txt{display:block;font-size:1.35rem;font-weight:700;letter-spacing:.01em;color:var(--vert);line-height:1;text-transform:uppercase}
.logo-txt em{font-style:normal;color:var(--or)}
.logo-txt i{font-style:normal;font-size:.62em;color:var(--or);letter-spacing:.02em}
.logo-sub{display:block;font-size:.52rem;color:var(--gris);letter-spacing:.2em;text-transform:uppercase;font-weight:500;margin-top:5px}

/* ---------- Header transparent sur le hero ---------- */
header{position:absolute;top:0;left:0;right:0;z-index:60;background:transparent;transition:.3s}
header.fixe{position:fixed;background:rgba(247,244,238,.96);backdrop-filter:blur(12px);box-shadow:0 6px 24px rgba(11,61,46,.09)}
header.clair .logo-txt{color:#fff}
header.clair .logo-txt i{color:var(--or-clair)}
header.clair .logo-sub{color:rgba(255,255,255,.62)}
header.clair nav.menu>a,header.clair .menu-deroulant>a{color:rgba(255,255,255,.9)}
header.clair .burger{color:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:82px}
nav.menu{display:flex;gap:30px;font-size:.82rem;font-weight:500}
nav.menu>a,.menu-deroulant>a{color:var(--noir);transition:.2s;padding:8px 0;border-bottom:2px solid transparent;display:inline-block}
nav.menu>a:hover,.menu-deroulant>a:hover,nav.menu a.actif{color:var(--or);border-color:var(--or)}
.menu-deroulant{position:relative}
.menu-deroulant .fleche{font-size:.62rem;color:var(--or)}
.sous-menu{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(8px);min-width:440px;background:#fff;border:1px solid rgba(11,61,46,.08);border-radius:14px;padding:14px;opacity:0;visibility:hidden;transition:.22s;box-shadow:var(--ombre-forte);z-index:70}
.menu-deroulant:hover .sous-menu,.menu-deroulant:focus-within .sous-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.sous-menu::before{content:'';position:absolute;top:-16px;left:0;right:0;height:16px}
.sm-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:10px 0}
.sm-grille a,.sm-special{display:block;padding:9px 14px;border-radius:8px;font-size:.78rem;color:var(--gris);border:none!important;text-transform:none;letter-spacing:0;font-weight:500;transition:.15s}
.sm-grille a:hover,.sm-special:hover{background:var(--beige);color:var(--or-fonce)}
.sm-special{color:var(--vert);border:1px solid var(--card-border)!important;text-align:center;font-weight:600}
.sm-hajj{background:var(--vert);color:#fff!important;border-color:var(--vert)!important}
.sm-hajj:hover{background:var(--vert-2);color:var(--or-clair)!important}
.nav-tel{display:inline-flex;align-items:center;gap:9px;background:var(--or);color:#fff;font-weight:600;font-size:.86rem;padding:11px 22px;border-radius:40px;transition:.24s;white-space:nowrap;box-shadow:0 8px 22px rgba(199,154,46,.3)}
.nav-tel:hover{background:var(--or-fonce)}
.burger{display:none;background:none;border:none;color:var(--vert);font-size:1.6rem;cursor:pointer}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:620px;display:flex;align-items:center;overflow:hidden;background:#1b1610}
.hero-img{position:absolute;inset:0;background:url('/img/hero-avion.jpg') center 45%/cover no-repeat}
.hero-img::after{content:'';position:absolute;inset:0;background:
  radial-gradient(46% 64% at 50% 50%,rgba(20,16,10,.62) 0%,rgba(20,16,10,.42) 55%,rgba(20,16,10,0) 100%),
  linear-gradient(180deg,rgba(20,16,10,.5),rgba(20,16,10,.06) 30%,rgba(20,16,10,.35))}
.hero-contenu{position:relative;z-index:2;text-align:center;max-width:620px;margin:0 auto;padding:120px 0 70px;color:#fff}
.hero-contenu h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:400;line-height:1.28;text-shadow:0 2px 24px rgba(0,0,0,.4)}
.hero-contenu h1 em{display:block;font-style:italic;font-weight:600;color:var(--or-clair);font-size:1.16em;margin:2px 0}
.hero-orn{display:flex;align-items:center;justify-content:center;gap:14px;margin:26px 0 30px;color:var(--or-clair)}
.hero-orn::before,.hero-orn::after{content:'';height:1px;width:90px;background:linear-gradient(90deg,transparent,rgba(226,184,90,.8))}
.hero-orn::after{background:linear-gradient(90deg,rgba(226,184,90,.8),transparent)}
.hero-points{display:flex;justify-content:center;gap:0;flex-wrap:wrap;margin-bottom:34px}
.hero-points .hp{padding:0 26px;text-align:center;border-right:1px solid rgba(255,255,255,.18)}
.hero-points .hp:last-child{border-right:none}
.hero-points .hp .ico{color:var(--or-clair);display:flex;justify-content:center;margin-bottom:8px}
.hero-points .hp b{display:block;font-size:.78rem;font-weight:600;color:#fff}
.hero-points .hp small{display:block;font-size:.7rem;color:rgba(255,255,255,.72);margin-top:1px}

/* ---------- Étapes du voyage ---------- */
.sec-etapes{background:var(--blanc);position:relative}
.sec-etapes::before{content:'';position:absolute;inset:0;opacity:.35;pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px,rgba(199,154,46,.18) 1px,transparent 0);background-size:22px 22px}
.sec-etapes>*{position:relative}
.etapes{display:flex;align-items:flex-start;justify-content:center;gap:4px;flex-wrap:nowrap}
.etape{flex:1;max-width:190px;text-align:center;min-width:0}
.etape-rond{width:96px;height:96px;margin:0 auto 16px;border-radius:50%;overflow:hidden;border:2px solid var(--or);padding:4px;background:#fff;box-shadow:var(--ombre)}
.etape-rond img{width:100%;height:100%;object-fit:cover;border-radius:50%;transition:.4s}
.etape:hover .etape-rond img{transform:scale(1.08)}
.etape b{display:block;font-size:.88rem;font-weight:600;color:var(--vert)}
.etape small{display:block;font-size:.74rem;color:var(--gris);line-height:1.6;margin-top:4px}
.etape-lien{flex:none;color:var(--or);padding-top:38px;display:flex;align-items:center;gap:3px}
.etape-lien span{width:26px;height:1px;background:repeating-linear-gradient(90deg,var(--or) 0 4px,transparent 4px 8px)}
.etapes-cta{display:flex;justify-content:center;margin-top:34px}

/* ---------- Cartes passeport (séjours populaires) ---------- */
.passeports{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pass{display:grid;grid-template-columns:78px 1fr;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--ombre);border:1px solid rgba(11,61,46,.06);transition:.3s}
.pass:hover{transform:translateY(-6px);box-shadow:var(--ombre-forte)}
.pass-souche{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:16px 6px;color:#fff}
.pass-souche.vert{background:var(--vert)}
.pass-souche.or{background:var(--or)}
.pass-souche.nuit{background:#132B3E}
.pass-souche::after{content:'';position:absolute;top:0;right:0;bottom:0;width:2px;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.65) 0 5px,transparent 5px 10px)}
.pass-souche .mot{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.pass-souche .globe{color:rgba(255,255,255,.9)}
.pass-souche .marque{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.56rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.pass-corps{padding:18px 18px 16px;display:flex;flex-direction:column;min-width:0}
.pass-corps h3{font-size:1.02rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--vert);overflow-wrap:anywhere}
.pass-note{display:flex;align-items:center;gap:7px;margin:6px 0 12px}
.pass-note .etoiles{color:var(--or);font-size:.74rem;letter-spacing:.06em}
.pass-note small{font-size:.68rem;color:var(--gris)}
.pass-duree{display:flex;align-items:center;gap:12px;font-size:.72rem;color:var(--gris);font-weight:500;padding-bottom:10px;border-bottom:1px dashed var(--gris-clair)}
.pass-duree span{display:flex;align-items:center;gap:6px}
.pass-duree i{color:var(--or);font-style:normal;display:inline-flex}
.pass-vol{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 0;font-size:1.18rem;font-weight:700;color:var(--vert);letter-spacing:.04em}
.pass-vol .av{color:var(--or)}
.pass-infos{display:flex;flex-direction:column;gap:7px;font-size:.74rem;color:var(--noir);padding-bottom:14px;border-bottom:1px dashed var(--gris-clair)}
.pass-infos span{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}
.pass-infos i{color:var(--or);font-style:normal;display:inline-flex;flex:none}
.pass-pied{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px}
.pass-prix small{display:block;font-size:.68rem;color:var(--gris)}
.pass-prix b{font-size:1.55rem;font-weight:700;color:var(--vert);line-height:1.1}
.pass-prix span{font-size:.68rem;color:var(--gris)}
.pass-qr{width:52px;height:52px;flex:none;opacity:.85}
.pass-offre{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid var(--card-border);border-radius:12px;padding:26px 22px;box-shadow:var(--ombre)}
.pass-offre .ico{color:var(--or);margin-bottom:14px}
.pass-offre h3{font-size:1.05rem;color:var(--vert);margin-bottom:10px}
.pass-offre p{font-size:.8rem;color:var(--gris);line-height:1.7;margin-bottom:20px}

/* ---------- Pourquoi nous ---------- */
.sec-pourquoi{background:var(--blanc)}
.pourquoi-grid{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:center}
.raisons{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 20px}
.raison{text-align:center;padding:0 6px}
.raison .ico{color:var(--or);display:flex;justify-content:center;margin-bottom:10px}
.raison b{display:block;font-size:.82rem;font-weight:600;color:var(--vert);line-height:1.35}
.raison small{display:block;font-size:.73rem;color:var(--gris);line-height:1.55;margin-top:4px}
.support{background:var(--vert);color:#fff;border-radius:14px;padding:26px 24px;text-align:center}
.support .ico{color:var(--or-clair);display:flex;justify-content:center;margin-bottom:12px}
.support p{font-size:.84rem;color:rgba(255,255,255,.82);line-height:1.7;margin-bottom:18px}
.support .tel{display:inline-flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;color:#fff}
.support .tel svg{color:var(--or-clair)}
.support .tel:hover{color:var(--or-clair)}

/* ---------- Ils nous font confiance ---------- */
.sec-confiance{background:var(--blanc)}
.confiance{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;align-items:stretch}
.conf-photo{border-radius:12px;overflow:hidden;min-height:170px;box-shadow:var(--ombre)}
.conf-photo img{width:100%;height:100%;object-fit:cover;transition:.5s}
.conf-photo:hover img{transform:scale(1.06)}
.conf-avis{grid-column:span 2;background:#fff;border-radius:12px;box-shadow:var(--ombre);padding:20px;display:flex;flex-direction:column;justify-content:center;border:1px solid rgba(11,61,46,.06)}
.conf-avis .haut{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.conf-avis .g{width:26px;height:26px;flex:none}
.conf-avis .etoiles{color:var(--or);font-size:.86rem;letter-spacing:.08em}
.conf-avis .note{font-weight:700;color:var(--vert);font-size:.94rem;margin-left:auto}
.conf-avis .base{font-size:.68rem;color:var(--gris);margin-bottom:12px}
.conf-avis blockquote{font-size:.78rem;color:var(--noir);line-height:1.75;font-style:italic}
.conf-avis footer{display:flex;align-items:center;gap:9px;margin-top:14px}
.conf-avis .av{width:28px;height:28px;border-radius:50%;background:var(--beige);color:var(--or-fonce);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.72rem;flex:none}
.conf-avis .nom{font-size:.74rem;font-weight:600;color:var(--vert)}

/* ---------- Bande CTA verte ---------- */
.cta-bande{background:var(--vert);color:#fff;padding:30px 0}
.cta-bande .container{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap}
.cta-txt{display:flex;align-items:center;gap:20px}
.cta-txt .ico{width:56px;height:56px;border-radius:50%;border:1px solid rgba(226,184,90,.45);display:flex;align-items:center;justify-content:center;color:var(--or-clair);flex:none}
.cta-txt p{font-size:1.06rem;line-height:1.5}
.cta-txt p em{color:var(--or-clair);font-style:normal}
.cta-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.cta-actions .tel{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:#fff}
.cta-actions .tel svg{color:var(--or-clair)}
.cta-actions .tel:hover{color:var(--or-clair)}

/* ---------- Footer ---------- */
footer{background:var(--vert-3);color:#CBD6D0;padding:52px 0 0;position:relative;overflow:hidden}
footer::before,footer::after{content:'';position:absolute;bottom:0;opacity:.09;pointer-events:none;filter:grayscale(1) brightness(2)}
footer::before{left:-20px;width:230px;height:210px;background:url('/img/etapes/1-paris.jpg') center/cover}
footer::after{right:-20px;width:300px;height:210px;background:url('/img/makkah.jpg') center/cover}
.foot-grid{display:grid;grid-template-columns:1.35fr 1fr 1.15fr 1.35fr;gap:34px;position:relative;z-index:2}
footer .logo-txt{color:#fff}
footer .logo-txt em,footer .logo-txt i{color:var(--or-clair)}
footer .logo-sub{color:rgba(255,255,255,.5)}
.foot-rs{display:flex;gap:11px;margin-top:22px}
.foot-rs a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.8);transition:.22s}
.foot-rs a:hover{background:var(--or);color:#fff}
footer h4{font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--or-clair);margin-bottom:18px}
footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
footer li,footer li a{font-size:.82rem;color:rgba(255,255,255,.72);transition:.2s;display:flex;gap:10px;align-items:flex-start}
footer li a:hover{color:var(--or-clair)}
footer li i{font-style:normal;color:var(--or);flex:none;margin-top:2px}
.news-form{display:flex;margin-top:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:40px;overflow:hidden}
.news-form input{flex:1;background:none;border:none;color:#fff;padding:11px 18px;font-family:inherit;font-size:.8rem}
.news-form input::placeholder{color:rgba(255,255,255,.4)}
.news-form input:focus{outline:none}
.news-form button{background:var(--or);border:none;color:#fff;padding:0 18px;cursor:pointer;display:flex;align-items:center}
.reseau-sites{margin-top:42px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);position:relative;z-index:2}
.reseau-sites .nuage{display:flex;flex-wrap:wrap;gap:8px 10px}
.reseau-sites .nuage a{font-size:.72rem;color:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.12);padding:5px 12px;border-radius:20px;transition:.2s}
.reseau-sites .nuage a:hover{color:var(--or-clair);border-color:var(--or)}
.foot-bas{margin-top:38px;padding:18px 0;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:center;gap:16px;flex-wrap:wrap;font-size:.72rem;color:rgba(255,255,255,.45);position:relative;z-index:2;text-align:center}
.foot-bas a:hover{color:var(--or-clair)}

/* ---------- Fil d'ariane ---------- */
.fil{padding:20px 24px 0;font-size:.74rem;color:var(--gris)}
.fil a{color:var(--or)}
.fil a:hover{text-decoration:underline}

/* ---------- Pages internes : décalage du header absolu ---------- */
.page-hero{background:linear-gradient(180deg,var(--beige),var(--blanc));padding:120px 0 40px;text-align:center}
.page-hero h1{font-size:clamp(1.8rem,3.6vw,2.6rem);color:var(--vert);margin:10px 0 14px}
.page-hero p{color:var(--gris);max-width:740px;margin:0 auto;font-size:.95rem}
body.interne header{position:sticky;background:rgba(247,244,238,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(11,61,46,.07)}
body.interne .fil{padding-top:16px}
body.interne .page-hero{padding-top:44px}

/* ---------- Filtres ---------- */
.filtres{display:flex;justify-content:center;gap:10px;margin-bottom:40px;flex-wrap:wrap}
.filtre{display:inline-block;font-size:.74rem;font-weight:500;padding:9px 18px;border-radius:30px;border:1px solid var(--gris-clair);color:var(--gris);background:#fff;transition:.2s;cursor:pointer}
.filtre:hover{border-color:var(--or);color:var(--or)}
.filtre.actif{background:var(--vert);border-color:var(--vert);color:#fff}
.filtre-hajj{background:var(--noir);border-color:var(--noir);color:#fff}
.filtre-hajj:hover{color:var(--or-clair)}

/* ---------- Cartes séjour issues du flux ---------- */
.grille-offres,.grille-bp{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:22px}
.carte{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.carte.visible,html:not(.js) .carte{opacity:1;transform:none}
.aucune-offre{text-align:center;color:var(--gris);background:#fff;border:1px dashed var(--card-border);border-radius:var(--radius);padding:44px 24px}

/* ---------- Page séjour ---------- */
.sejour-hero{background:linear-gradient(180deg,var(--beige),var(--blanc));padding:120px 0 40px}
body.interne .sejour-hero{padding-top:34px}
.sejour-hero-grid{display:grid;grid-template-columns:1.7fr .9fr;gap:34px;align-items:start}
.sejour-hero h1{font-size:clamp(1.6rem,3.2vw,2.3rem);color:var(--vert);margin:14px 0 18px}
.badge{display:inline-flex;align-items:center;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 14px;border-radius:30px}
.badge-premium{background:var(--vert);color:#fff}
.badge-eco{background:var(--or);color:#fff}
.puces-infos{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.puce{background:#fff;border:1px solid var(--gris-clair);border-radius:30px;padding:8px 16px;font-size:.76rem;color:var(--gris)}
.puce b{color:var(--vert);font-weight:600}
.galerie{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:120px;gap:10px}
.galerie a{position:relative;border-radius:10px;overflow:hidden;display:block}
.galerie a:first-child{grid-row:span 2}
.galerie img{width:100%;height:100%;object-fit:cover;transition:.4s}
.galerie a:hover img{transform:scale(1.05)}
.galerie .plus{position:absolute;inset:0;background:rgba(11,61,46,.72);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}
.resa-box{background:#fff;border:1px solid var(--card-border);border-radius:var(--radius);padding:26px;box-shadow:var(--ombre);position:sticky;top:100px}
.resa-box .apartir{font-size:.7rem;color:var(--gris);text-transform:uppercase;letter-spacing:.14em;font-weight:600}
.grand-prix{font-size:2.2rem;color:var(--vert);font-weight:700;line-height:1.15;margin:4px 0}
.grand-prix span{font-size:.78rem;color:var(--gris);font-weight:500}
.dispo{margin:16px 0 18px;font-size:.78rem}
.dispo .alerte{color:#B4501E;font-weight:600}
.dispo .ok{color:#2E7D5B;font-weight:600}
.resa-box .btn{width:100%}
.aide{margin-top:18px;font-size:.76rem;color:var(--gris);line-height:1.8;text-align:center}
.aide a{color:var(--or);font-weight:600}
.sejour-sec{padding:50px 0}
.sejour-sec h2{font-size:clamp(1.3rem,2.4vw,1.8rem);color:var(--vert);margin-bottom:24px}
.sejour-sec h2 .eyebrow{display:block;margin-bottom:6px}
.desc-txt{color:var(--gris);max-width:860px;line-height:1.9;font-size:.92rem}
.hotel-bloc{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center;margin-bottom:34px}
.hotel-bloc.inverse{grid-template-columns:1fr 1.2fr}
.ville-tag{display:inline-block;background:var(--or);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 14px;border-radius:30px}
.hotel-infos h3{font-size:1.35rem;color:var(--vert);margin:12px 0 16px}
.hotel-infos ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.hotel-infos li{display:flex;justify-content:space-between;gap:16px;font-size:.82rem;border-bottom:1px dashed var(--gris-clair);padding-bottom:9px}
.hotel-infos .lab{color:var(--gris)}
.tarifs-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.tarif{background:#fff;border:1px solid var(--gris-clair);border-radius:var(--radius);padding:24px;text-align:center;transition:.25s}
.tarif:hover{border-color:var(--or);box-shadow:var(--ombre)}
.tarif .lits{font-size:1.05rem;margin-bottom:8px}
.tarif b{display:block;font-size:.85rem;color:var(--vert);font-weight:600}
.tarif .montant{font-size:1.7rem;color:var(--or);font-weight:700;margin:6px 0 2px}
.tarif small{font-size:.7rem;color:var(--gris)}
.tarifs-extra{text-align:center;color:var(--gris);font-size:.82rem;margin-top:18px}
.deux-colonnes{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.liste-carte{background:#fff;border:1px solid var(--gris-clair);border-radius:var(--radius);padding:26px}
.liste-carte h3{font-size:1.05rem;color:var(--vert);margin-bottom:16px}
.liste-carte.ok h3{color:#2E7D5B}
.liste-carte.non h3{color:#B4501E}
.liste-carte ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.liste-carte li{font-size:.83rem;color:#3a3a3a;padding-left:20px;position:relative;line-height:1.6}
.liste-carte li::before{content:'•';position:absolute;left:4px;color:var(--or)}
.atouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.atout{background:#fff;border:1px solid var(--gris-clair);border-radius:var(--radius);padding:24px}
.atout .ico{color:var(--or);margin-bottom:12px;display:flex}
.atout b{display:block;font-size:.92rem;color:var(--vert);margin-bottom:8px}
.atout small{font-size:.8rem;color:var(--gris);line-height:1.7}
#cta .boite{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--vert);border-radius:var(--radius-l);overflow:hidden;color:#fff}
#cta .visu{background-size:cover;background-position:center;min-height:230px}
#cta .contenu{padding:38px}
#cta h2{color:#fff;margin-bottom:12px}
#cta p{color:rgba(255,255,255,.72);margin-bottom:22px;font-size:.9rem}
#cta .btn-tel{color:var(--or-clair)}

/* ---------- Pages éditoriales ---------- */
.prose{max-width:820px;margin:0 auto}
.prose h2{font-size:1.45rem;color:var(--vert);margin:34px 0 14px}
.prose h3{font-size:1.1rem;color:var(--vert);margin:24px 0 10px}
.prose p{color:#3a3a3a;margin-bottom:14px;line-height:1.9;font-size:.92rem}
.prose ul{margin:0 0 18px 20px;color:#3a3a3a;font-size:.92rem;line-height:1.9}
.faq-item{background:#fff;border:1px solid var(--gris-clair);border-radius:var(--radius);padding:22px 24px;margin-bottom:14px}
.faq-item h3{font-size:.98rem;color:var(--vert);margin-bottom:8px}
.faq-item p{font-size:.86rem;color:var(--gris);line-height:1.8}

/* ---------- Responsive ---------- */
@media(max-width:1180px){
  .passeports{grid-template-columns:repeat(2,1fr)}
  .confiance{grid-template-columns:repeat(4,1fr)}
  .conf-avis{grid-column:span 2}
}
@media(max-width:1080px){
  .pourquoi-grid{grid-template-columns:1fr}
  .support{max-width:420px;margin:0 auto}
  .etapes{flex-wrap:wrap;gap:26px}
  .etape{flex:0 0 30%;max-width:none}
  .etape-lien{display:none}
  .sejour-hero-grid{grid-template-columns:1fr}
  .resa-box{position:static}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  nav.menu{position:fixed;top:0;right:0;transform:translateX(105%);width:280px;max-width:82vw;height:100vh;background:#fff;flex-direction:column;padding:90px 26px 26px;gap:6px;box-shadow:-10px 0 40px rgba(0,0,0,.14);transition:.3s;z-index:65;overflow-y:auto;align-items:flex-start}
  nav.menu.ouvert{transform:translateX(0)}
  nav.menu>a,.menu-deroulant>a,header.clair nav.menu>a,header.clair .menu-deroulant>a{width:100%;border-bottom:1px solid var(--gris-clair);padding:13px 0;color:var(--noir)}
  .sous-menu{position:static;transform:none;opacity:1;visibility:visible;min-width:0;box-shadow:none;border:none;padding:0 0 10px}
  .sm-grille{grid-template-columns:repeat(2,1fr)}
  .burger{display:block}
  .nav{gap:10px}
  .logo{min-width:0}
  .logo svg{width:42px;height:34px}
  .logo-txt{font-size:1.06rem}
  .logo-sub{display:none}
  .nav-tel{font-size:.74rem;padding:9px 14px;gap:6px}
  .hero-points .hp{border-right:none;padding:0 18px 14px}
  .raisons{grid-template-columns:repeat(2,1fr)}
  .hotel-bloc,.hotel-bloc.inverse{grid-template-columns:1fr}
  .deux-colonnes{grid-template-columns:1fr}
  #cta .boite{grid-template-columns:1fr}
  .cta-bande .container{flex-direction:column;text-align:center}
  .cta-txt{flex-direction:column;text-align:center}
}
@media(max-width:460px){
  .nav-tel span.num{display:none}
  .nav-tel{padding:10px 12px}
  .logo-txt{font-size:.95rem}
}
@media(max-width:640px){
  .passeports{grid-template-columns:1fr}
  .pass{grid-template-columns:56px 1fr}
  .pass-corps{padding:16px 14px 14px}
  .pass-vol{font-size:1.02rem;gap:10px}
  .pass-duree{gap:9px;font-size:.68rem;flex-wrap:wrap}
  .hero-points{gap:0 4px}
  .hero-points .hp{padding:0 12px 14px}
  .etape{flex:0 0 44%}
  .confiance{grid-template-columns:repeat(2,1fr)}
  .conf-avis{grid-column:span 2}
  .raisons{grid-template-columns:1fr 1fr;gap:22px 12px}
  .foot-grid{grid-template-columns:1fr}
  .titre-filet::before,.titre-filet::after{flex-basis:40px}
  .galerie{grid-template-columns:1fr 1fr}
  .galerie a:first-child{grid-column:span 2;grid-row:auto}
  .hero-contenu{padding:110px 0 56px}
}
