 /* ═══════════════════════════════════
       HERO PACKAGE
    ═══════════════════════════════════ */
    #hero {
      position:relative; height:90vh; min-height:580px;
      display:flex; align-items:flex-end; overflow:hidden;
    }
    .hero-bg {
      position:absolute; inset:0;
      background-image:url('https://images.unsplash.com/photo-1590736704728-f4730bb30770?w=1920&q=87&auto=format&fit=crop');
      background-size:cover; background-position:center 35%;
      animation:zoomIn 14s ease-out forwards;
    }
    @keyframes zoomIn { from{transform:scale(1.05)} to{transform:scale(1)} }
    .hero-ov {
      position:absolute; inset:0;
      background:linear-gradient(0deg,rgba(0,20,0,.88) 0%,rgba(0,30,0,.4) 55%,rgba(0,20,0,.15) 100%);
    }
    .hero-bc { position:absolute; top:0; left:0; right:0; padding-top:7rem; z-index:2; }
    .hero-bc .breadcrumb { background:none; padding:0; margin:0; font-size:.77rem; }
    .hero-bc .breadcrumb-item a { color:rgba(255,255,255,.68); transition:color .3s; }
    .hero-bc .breadcrumb-item a:hover { color:var(--or); }
    .hero-bc .breadcrumb-item.active { color:var(--or); }
    .hero-bc .breadcrumb-item+.breadcrumb-item::before { color:rgba(255,255,255,.4); }
    .hero-cnt { position:relative; z-index:2; color:#fff; padding-bottom:3.5rem; width:100%; }

    .hero-cat {
      display:inline-flex; align-items:center; gap:.5rem;
      background:rgba(0,128,0,.65); backdrop-filter:blur(4px);
      border-left:3px solid var(--or);
      font-size:.71rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
      color:var(--or); padding:.3rem .9rem; margin-bottom:.9rem;
      opacity:0; animation:fsup .9s .3s forwards;
    }
    .hero-h1 {
      font-size:clamp(2.4rem,6vw,4rem); font-weight:700; line-height:1.1;
      margin-bottom:.6rem;
      opacity:0; animation:fsup .9s .5s forwards;
    }
    .hero-sub {
      font-family:var(--f-sous); font-style:italic;
      font-size:clamp(1rem,2.2vw,1.5rem); color:rgba(255,255,255,.8);
      margin-bottom:2rem;
      opacity:0; animation:fsup .9s .7s forwards;
    }
    /* Badges d'infos package */
    .hero-infos {
      display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.8rem;
      opacity:0; animation:fsup .9s .85s forwards;
    }
    .hero-info-item {
      background:rgba(0,0,0,.5); backdrop-filter:blur(8px);
      border:1px solid rgba(255,255,255,.2);
      color:#fff; font-size:.78rem; padding:.5rem 1rem;
      display:flex; align-items:center; gap:.55rem;
    }
    .hero-info-item i { color:var(--or); }
    .hero-btns { opacity:0; animation:fsup .9s 1s forwards; display:flex; gap:1rem; flex-wrap:wrap; }
    @keyframes fsup { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }

    /* Bande résumé rapide */
    .pkg-summary {
      background:var(--gris-fonce);
      border-top:3px solid var(--or);
    }
    .pkg-summary .ps-item {
      text-align:center; padding:1.4rem .8rem;
      border-right:1px solid rgba(255,255,255,.1);
    }
    .pkg-summary .ps-item:last-child { border-right:none; }
    .pkg-summary .ps-ic { font-size:1.4rem; color:var(--or); margin-bottom:.35rem; }
    .pkg-summary .ps-val { font-family:var(--f-titre); font-size:1.05rem; font-weight:700; color:#fff; display:block; }
    .pkg-summary .ps-lbl { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.52); }

    /* ═══════════════════════════════════
       SECTION DESCRIPTION
    ═══════════════════════════════════ */
    #description { padding:5rem 0; }
    #description .desc-img-wrap { position:relative; overflow:hidden; }
    #description .desc-img-wrap img { width:100%; height:460px; object-fit:cover; transition:transform .7s; }
    #description .desc-img-wrap:hover img { transform:scale(1.04); }
    #description .desc-frame { position:absolute; bottom:-14px; left:-14px; width:130px; height:130px; border:2.5px solid var(--or); z-index:-1; }
    #description .desc-badge {
      position:absolute; top:1.4rem; right:1.4rem;
      background:linear-gradient(135deg,var(--or),#b8960c);
      color:#fff; padding:1rem 1.2rem; text-align:center;
    }
    #description .desc-badge .db-num { font-family:var(--f-titre); font-size:1.7rem; font-weight:700; line-height:1; display:block; }
    #description .desc-badge .db-txt { font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; opacity:.85; }

    /* ═══════════════════════════════════
       PROGRAMME / ITINÉRAIRE
    ═══════════════════════════════════ */
    #programme { background:var(--gris-clair); }

    .prog-tabs { display:flex; gap:0; margin-bottom:2.5rem; flex-wrap:wrap; }
    .prog-tab {
      font-family:var(--f-corps); font-size:.78rem; font-weight:600;
      letter-spacing:.1em; text-transform:uppercase;
      background:var(--blanc); color:var(--gris-txt);
      border:1px solid var(--gris-bord); border-right:none;
      padding:.7rem 1.6rem; cursor:pointer; transition:var(--tr);
      flex:1; text-align:center;
    }
    .prog-tab:last-child { border-right:1px solid var(--gris-bord); }
    .prog-tab.active { background:var(--vert); color:#fff; border-color:var(--vert); }
    .prog-tab:hover:not(.active) { background:var(--vert-clair); color:var(--vert); }

    .prog-content { display:none; }
    .prog-content.active { display:block; }

    .prog-jour-titre {
      font-family:var(--f-titre); font-size:1.4rem; font-weight:700;
      color:var(--gris-fonce); margin-bottom:2rem;
      display:flex; align-items:center; gap:1rem;
    }
    .prog-jour-titre .pjt-num {
      background:linear-gradient(135deg,var(--vert),var(--vert-fonce));
      color:#fff; width:44px; height:44px; border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      font-size:1rem; font-weight:700; flex-shrink:0;
    }

    /* Timeline */
    .timeline { position:relative; padding-left:2.8rem; }
    .timeline::before {
      content:''; position:absolute;
      left:1rem; top:0; bottom:0; width:2px;
      background:linear-gradient(180deg, var(--or), var(--vert-clair));
    }
    .tl-item {
      position:relative; margin-bottom:1.8rem;
      background:var(--blanc); padding:1.4rem 1.6rem;
      border-left:3px solid var(--vert-clair);
      transition:var(--tr);
    }
    .tl-item:hover { border-left-color:var(--or); box-shadow:0 4px 20px rgba(0,0,0,.07); transform:translateX(4px); }
    .tl-item:last-child { margin-bottom:0; }
    .tl-dot {
      position:absolute; left:-2rem; top:1.3rem;
      width:16px; height:16px; border-radius:50%;
      background:var(--or); border:3px solid var(--blanc);
      box-shadow:0 0 0 2px var(--or);
    }
    .tl-heure {
      font-family:var(--f-corps); font-size:.7rem; font-weight:700;
      letter-spacing:.15em; text-transform:uppercase;
      color:var(--or); margin-bottom:.3rem; display:block;
    }
    .tl-lieu {
      font-family:var(--f-titre); font-size:1rem; font-weight:600;
      color:var(--gris-fonce); margin-bottom:.3rem;
    }
    .tl-desc { font-size:.83rem; color:var(--gris-txt); line-height:1.75; }
    .tl-ico { float:right; margin-left:1rem; color:var(--vert); font-size:1.4rem; opacity:.6; }

    /* Programme sidebar */
    .prog-sidebar {
      background:linear-gradient(135deg,var(--vert),var(--vert-fonce));
      padding:2rem 1.8rem; color:#fff; height:fit-content;
      position:sticky; top:100px;
    }
    .prog-sidebar h4 { font-family:var(--f-titre); font-size:1.15rem; font-weight:700; margin-bottom:1.3rem; color:#fff; }
    .prog-aside-item {
      display:flex; align-items:center; gap:.8rem;
      padding:.65rem 0; border-bottom:1px solid rgba(255,255,255,.12);
      font-size:.83rem; color:rgba(255,255,255,.8);
    }
    .prog-aside-item:last-child { border-bottom:none; }
    .prog-aside-item i { color:var(--or); width:18px; flex-shrink:0; }
    .prog-aside-item strong { display:block; color:#fff; font-size:.83rem; margin-bottom:.1rem; }

    .prog-prix-box {
      background:linear-gradient(135deg,var(--or),#b8960c);
      padding:1.4rem; text-align:center; margin-top:1.5rem;
    }
    .prog-prix-box .ppb-label { font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; opacity:.8; margin-bottom:.2rem; }
    .prog-prix-box .ppb-prix { font-family:var(--f-titre); font-size:1.8rem; font-weight:700; line-height:1; display:block; margin-bottom:.2rem; }
    .prog-prix-box .ppb-sub { font-size:.72rem; opacity:.8; }

    /* ═══════════════════════════════════
       INCLUS / NON INCLUS
    ═══════════════════════════════════ */
    #inclus { padding:5rem 0; }
    .inclus-card {
      border-radius:0; height:100%;
    }
    .inclus-card.oui { background:var(--vert-clair); border-left:4px solid var(--vert); }
    .inclus-card.non { background:#fff5f5; border-left:4px solid #dc3545; }
    .inclus-card .ic-titre {
      font-family:var(--f-titre); font-size:1.1rem; font-weight:700;
      margin-bottom:1.3rem;
      display:flex; align-items:center; gap:.7rem;
    }
    .inclus-card.oui .ic-titre { color:var(--vert); }
    .inclus-card.non .ic-titre { color:#dc3545; }
    .inclus-list { list-style:none; padding:0; }
    .inclus-list li {
      display:flex; align-items:flex-start; gap:.65rem;
      font-size:.85rem; color:var(--gris-fonce); line-height:1.6;
      padding:.45rem 0; border-bottom:1px solid rgba(0,0,0,.06);
    }
    .inclus-list li:last-child { border-bottom:none; }
    .inclus-list li i { flex-shrink:0; margin-top:.15rem; font-size:.78rem; }
    .inclus-card.oui .inclus-list li i { color:var(--vert); }
    .inclus-card.non .inclus-list li i { color:#dc3545; }

    /* ═══════════════════════════════════
       GALERIE PACKAGE
    ═══════════════════════════════════ */
    #galerie { background:var(--gris-clair); padding:5rem 0; }
    .gal-grid {
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: 240px 240px;
      gap:8px;
    }
    .gal-grid .gi { position:relative; overflow:hidden; cursor:pointer; }
    .gal-grid .gi:first-child { grid-row:1/3; }
    .gal-grid .gi img { width:100%; height:100%; object-fit:cover; transition:transform .55s; }
    .gal-grid .gi:hover img { transform:scale(1.08); }
    .gal-grid .gi .gov {
      position:absolute; inset:0;
      background:rgba(0,80,0,.5);
      display:flex; align-items:flex-end; padding:1rem;
      opacity:0; transition:opacity .3s;
    }
    .gal-grid .gi:hover .gov { opacity:1; }
    .gal-grid .gi .gov .gc { color:#fff; font-family:var(--f-titre); font-size:.9rem; font-style:italic; }
    .gal-grid .gi .gzoom {
      position:absolute; top:.8rem; right:.8rem;
      width:34px; height:34px; background:rgba(255,255,255,.2); backdrop-filter:blur(4px);
      border-radius:50%; display:flex; align-items:center; justify-content:center;
      color:#fff; font-size:.82rem; opacity:0; transition:opacity .3s;
    }
    .gal-grid .gi:hover .gzoom { opacity:1; }
    @media(max-width:767px) {
      .gal-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
      .gal-grid .gi:first-child { grid-row:auto; }
    }

    /* ═══════════════════════════════════
       INFOS PRATIQUES
    ═══════════════════════════════════ */
    #pratique { padding:5rem 0; }
    .info-card {
      background:var(--gris-clair); padding:1.6rem 1.4rem;
      border-top:3px solid var(--vert); height:100%;
      transition:var(--tr);
    }
    .info-card:hover { transform:translateY(-4px); box-shadow:0 10px 30px rgba(0,0,0,.08); border-top-color:var(--or); }
    .info-card .ic-ico {
      width:50px; height:50px; background:var(--vert-clair); border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      color:var(--vert); font-size:1.2rem; margin-bottom:1rem; transition:var(--tr);
    }
    .info-card:hover .ic-ico { background:var(--vert); color:#fff; }
    .info-card .ic-titre { font-family:var(--f-titre); font-size:1rem; font-weight:700; color:var(--gris-fonce); margin-bottom:.5rem; }
    .info-card .ic-desc { font-size:.83rem; color:var(--gris-txt); line-height:1.75; }

    /* ═══════════════════════════════════
       TÉMOIGNAGES
    ═══════════════════════════════════ */
    #temoignages { background:linear-gradient(135deg,#f8f9f3,var(--vert-clair)); padding:5rem 0; }
    .temo-card {
      background:var(--blanc); padding:2rem 2.2rem;
      border-left:3px solid var(--vert); position:relative;
      height:100%; transition:var(--tr);
    }
    .temo-card:hover { border-left-color:var(--or); box-shadow:var(--ombre); }
    .temo-card::before {
      content:'\201C'; font-family:var(--f-titre); font-size:6rem;
      color:var(--vert-clair); position:absolute; top:-.5rem; left:1.2rem; line-height:1;
    }
    .temo-card .te-etoiles { color:var(--or); font-size:.88rem; margin-bottom:.8rem; }
    .temo-card .te-texte { font-family:var(--f-sous); font-style:italic; font-size:1rem; color:var(--gris-fonce); line-height:1.8; margin-bottom:1.5rem; }
    .temo-card .te-auteur { display:flex; align-items:center; gap:.85rem; }
    .temo-card .te-auteur img { width:50px; height:50px; border-radius:50%; object-fit:cover; border:2.5px solid var(--vert-clair); }
    .temo-card .te-nom { font-weight:600; font-size:.88rem; color:var(--gris-fonce); }
    .temo-card .te-pay { font-size:.75rem; color:var(--gris-txt); }

    /* ═══════════════════════════════════
       POURQUOI CE PACKAGE
    ═══════════════════════════════════ */
    #pourquoi {
      background:linear-gradient(135deg,#0f1f0f,#1a2e1a);
      position:relative; overflow:hidden;
    }
    #pourquoi::before {
      content:''; position:absolute; inset:0;
      background:radial-gradient(circle at 85% 15%,rgba(212,175,55,.14) 0%,transparent 50%),
                 radial-gradient(circle at 15% 85%,rgba(0,128,0,.2) 0%,transparent 50%);
    }
    .pq-card {
      background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
      padding:1.8rem 1.5rem; height:100%; transition:var(--tr);
      display:flex; gap:1.2rem;
    }
    .pq-card:hover { background:rgba(255,255,255,.09); border-color:rgba(212,175,55,.35); transform:translateY(-4px); }
    .pq-card .pq-num {
      font-family:var(--f-titre); font-size:2rem; font-weight:700;
      color:rgba(212,175,55,.25); line-height:1; flex-shrink:0;
    }
    .pq-card:hover .pq-num { color:rgba(212,175,55,.5); }
    .pq-card .pq-titre { font-family:var(--f-titre); font-size:1rem; font-weight:700; color:#fff; margin-bottom:.4rem; }
    .pq-card .pq-desc { font-size:.82rem; color:rgba(255,255,255,.62); line-height:1.75; }

    /* ═══════════════════════════════════
       CTA RÉSERVATION PROÉMINENTE
    ═══════════════════════════════════ */
    #cta-reserv {
      background:var(--blanc);
      border-top:4px solid var(--or);
      padding:4.5rem 0;
    }
    .cta-prix-box {
      background:linear-gradient(135deg,var(--vert),var(--vert-fonce));
      padding:2.5rem; color:#fff; text-align:center;
    }
    .cta-prix-box .cpb-titre { font-family:var(--f-titre); font-size:1.2rem; font-weight:700; margin-bottom:.4rem; }
    .cta-prix-box .cpb-prix { font-family:var(--f-titre); font-size:2.8rem; font-weight:700; color:var(--or); line-height:1; margin-bottom:.2rem; display:block; }
    .cta-prix-box .cpb-sub { font-size:.75rem; color:rgba(255,255,255,.65); margin-bottom:1.4rem; }
    .cta-checklist { list-style:none; padding:0; margin:0 0 1.5rem; text-align:left; }
    .cta-checklist li { display:flex; align-items:center; gap:.65rem; font-size:.82rem; color:rgba(255,255,255,.82); padding:.3rem 0; }
    .cta-checklist li i { color:var(--or); font-size:.75rem; }

    /* Packages similaires */
    .sim-card { background:var(--gris-clair); overflow:hidden; transition:var(--tr); }
    .sim-card:hover { transform:translateY(-5px); box-shadow:0 12px 35px rgba(0,0,0,.1); }
    .sim-card .sc-img { height:160px; overflow:hidden; }
    .sim-card .sc-img img { width:100%; height:100%; object-fit:cover; transition:transform .55s; }
    .sim-card:hover .sc-img img { transform:scale(1.08); }
    .sim-card .sc-body { padding:1.2rem; }
    .sim-card .sc-titre { font-family:var(--f-titre); font-size:1rem; font-weight:700; color:var(--gris-fonce); margin-bottom:.25rem; }
    .sim-card .sc-prix { font-family:var(--f-titre); font-size:.95rem; font-weight:700; color:var(--vert); }
    .sim-card .sc-dur { font-size:.72rem; color:var(--gris-txt); }
