> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canadava.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Aide-mémoire du pilote

> Reference rapide pour les pilotes vACA - reservation, ACARS, aéronefs autorises, carburant et procedures essentielles.

export const Aircraft = ({aircraft = [], title = "Air Canada Fleet", labels = {}}) => {
  const DEFAULT_LABELS = {
    mainline: "Mainline",
    express: "Express",
    cargo: "Cargo",
    fictional: "Fictional"
  };
  const mergedLabels = {
    ...DEFAULT_LABELS,
    ...labels
  };
  const typeKey = type => {
    const t = (type || "").toLowerCase();
    if (t.includes("mainline") || t.includes("principal")) return "mainline";
    if (t.includes("express") || t.includes("jazz") || t.includes("regional") || t.includes("régional")) return "express";
    if (t.includes("cargo") || t.includes("freight") || t.includes("fret")) return "cargo";
    if (t.includes("fictional") || t.includes("fictif")) return "fictional";
    return "default";
  };
  const typeLabel = k => {
    if (k === "mainline") return mergedLabels.mainline;
    if (k === "express") return mergedLabels.express;
    if (k === "cargo") return mergedLabels.cargo;
    if (k === "fictional") return mergedLabels.fictional;
    return "";
  };
  const TypeIcon = ({k}) => {
    const svgProps = {
      width: 14,
      height: 14,
      viewBox: "0 0 24 24",
      fill: "none",
      stroke: "currentColor",
      strokeWidth: 2,
      strokeLinecap: "round",
      strokeLinejoin: "round",
      "aria-hidden": true
    };
    switch (k) {
      case "mainline":
        return <svg {...svgProps}>
            <path d="M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z" />
          </svg>;
      case "express":
        return <svg {...svgProps}>
            <path d="M2 22h20" />
            <path d="M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z" />
          </svg>;
      case "cargo":
        return <svg {...svgProps}>
            <path d="M16.5 9.4 7.55 4.24" />
            <path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z" />
            <path d="M3.27 6.96 12 12.01l8.73-5.05" />
            <path d="M12 22.08V12" />
          </svg>;
      case "fictional":
        return <svg {...svgProps}>
            <path d="m12 3-1.9 5.8a2 2 0 0 1-1.287 1.288L3 12l5.8 1.9a2 2 0 0 1 1.288 1.287L12 21l1.9-5.8a2 2 0 0 1 1.287-1.288L21 12l-5.8-1.9a2 2 0 0 1-1.288-1.287Z" />
            <path d="M5 3v4" />
            <path d="M19 17v4" />
            <path d="M3 5h4" />
            <path d="M17 19h4" />
          </svg>;
      default:
        return <svg {...svgProps}>
            <rect x="3" y="3" width="18" height="18" rx="2" />
          </svg>;
    }
  };
  const ChevronIcon = () => <svg width={16} height={16} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      <polyline points="9 18 15 12 9 6" />
    </svg>;
  return <div className="kb-aircraft">
      <div className="kb-aircraft-header">
        <span className="kb-aircraft-eyebrow">{title}</span>
      </div>
      <div className="kb-aircraft-list">
        {aircraft.map((plane, i) => {
    const k = typeKey(plane.type);
    const sublabel = typeLabel(k);
    return <a key={`a-${i}`} href={plane.href} className="kb-aircraft-row" data-type={k}>
              <span className="kb-aircraft-icon" aria-hidden="true">
                <TypeIcon k={k} />
              </span>
              <div className="kb-aircraft-text">
                <div className="kb-aircraft-name">
                  <span className="kb-aircraft-name-label">{plane.name}</span>
                  {plane.code && <span className="kb-aircraft-code">{plane.code}</span>}
                </div>
                {plane.description && <div className="kb-aircraft-description">
                    {plane.description}
                  </div>}
              </div>
              <div className="kb-aircraft-type-col">
                {sublabel && <span className="kb-aircraft-sublabel">{sublabel}</span>}
              </div>
              <span className="kb-aircraft-chevron" aria-hidden="true">
                <ChevronIcon />
              </span>
            </a>;
  })}
      </div>
    </div>;
};

export const Airports = ({airports = [], title = "Canadian Airport Briefings", labels = {}}) => {
  const DEFAULT_LABELS = {
    hub: "Hub",
    regional: "Regional",
    liveLabel: "VATSIM",
    liveTitle: "VATSIM ATIS broadcasting now"
  };
  const mergedLabels = {
    ...DEFAULT_LABELS,
    ...labels
  };
  const [liveIcaos, setLiveIcaos] = useState(() => new Set());
  useEffect(() => {
    let cancelled = false;
    const fetchAtisFeed = async () => {
      try {
        const res = await fetch("https://data.vatsim.net/v3/vatsim-data.json", {
          cache: "no-store"
        });
        if (!res.ok) return;
        const json = await res.json();
        const all = Array.isArray(json.atis) ? json.atis : [];
        const live = new Set();
        for (const a of all) {
          const cs = (a.callsign || "").toUpperCase();
          const m = cs.match(/^([A-Z]{4})(?:_[AD])?_ATIS$/);
          if (m) live.add(m[1]);
        }
        if (!cancelled) setLiveIcaos(live);
      } catch (_) {}
    };
    fetchAtisFeed();
    const interval = setInterval(fetchAtisFeed, 60 * 1000);
    return () => {
      cancelled = true;
      clearInterval(interval);
    };
  }, []);
  const typeKey = type => {
    const t = (type || "").toLowerCase();
    if (t.includes("hub") || t.includes("plaque") || t.includes("focus")) return "hub";
    if (t.includes("regional") || t.includes("régional") || t.includes("capital")) return "regional";
    return "default";
  };
  const typeLabel = k => {
    if (k === "hub") return mergedLabels.hub;
    if (k === "regional") return mergedLabels.regional;
    return "";
  };
  const TypeIcon = ({k}) => {
    const svgProps = {
      width: 14,
      height: 14,
      viewBox: "0 0 24 24",
      fill: "none",
      stroke: "currentColor",
      strokeWidth: 2,
      strokeLinecap: "round",
      strokeLinejoin: "round",
      "aria-hidden": true
    };
    switch (k) {
      case "hub":
        return <svg {...svgProps}>
            <path d="M16 10h4a2 2 0 0 1 0 4h-4l-4 7h-3l2-7H6l-2 2H1l2-4-2-4h3l2 2h5l-2-7h3z" />
          </svg>;
      case "regional":
        return <svg {...svgProps}>
            <path d="M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z" />
          </svg>;
      default:
        return <svg {...svgProps}>
            <rect x="3" y="3" width="18" height="18" rx="2" />
          </svg>;
    }
  };
  const ChevronIcon = () => <svg width={16} height={16} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      <polyline points="9 18 15 12 9 6" />
    </svg>;
  return <div className="kb-airports">
      <div className="kb-airports-header">
        <span className="kb-airports-eyebrow">{title}</span>
      </div>
      <div className="kb-airports-list">
        {airports.map((airport, i) => {
    const k = typeKey(airport.type);
    const sublabel = typeLabel(k);
    const isLive = airport.icao && liveIcaos.has(airport.icao.toUpperCase());
    return <a key={`a-${i}`} href={airport.href} className="kb-airports-row" data-type={k}>
              <span className="kb-airports-icon" aria-hidden="true">
                <TypeIcon k={k} />
              </span>
              <div className="kb-airports-text">
                <div className="kb-airports-name">
                  <span className="kb-airports-name-label">{airport.name}</span>
                  {airport.icao && <span className="kb-airports-icao">{airport.icao}</span>}
                  {isLive && <span className="kb-airports-live" title={mergedLabels.liveTitle}>
                      <span className="kb-airports-live-dot" aria-hidden="true" />
                      <span className="kb-airports-live-label">
                        {mergedLabels.liveLabel}
                      </span>
                    </span>}
                </div>
                {airport.description && <div className="kb-airports-description">
                    {airport.description}
                  </div>}
              </div>
              <div className="kb-airports-type-col">
                {sublabel && <span className="kb-airports-sublabel">{sublabel}</span>}
              </div>
              <span className="kb-airports-chevron" aria-hidden="true">
                <ChevronIcon />
              </span>
            </a>;
  })}
      </div>
    </div>;
};

export const Checklist = ({title, items, icon}) => {
  const [checked, setChecked] = useState(Object.fromEntries(items.map((_, i) => [i, false])));
  const toggle = i => setChecked(prev => ({
    ...prev,
    [i]: !prev[i]
  }));
  const done = Object.values(checked).filter(Boolean).length;
  return <div className="kb-checklist">
      <div className="kb-checklist-header">
        <div className="kb-checklist-title">
          {icon && <span className="kb-checklist-icon">{icon}</span>}
          <span>{title}</span>
        </div>
        <span className="kb-checklist-count">{done}/{items.length}</span>
      </div>
      <div className="kb-checklist-items">
        {items.map((item, i) => <button key={i} className={`kb-checklist-item ${checked[i] ? 'checked' : ''}`} onClick={() => toggle(i)}>
            <span className="kb-check-box">
              {checked[i] && <span className="kb-check-mark">✓</span>}
            </span>
            <span className="kb-check-label">{item}</span>
          </button>)}
      </div>
    </div>;
};

Cette page consolide les informations les plus importantes pour les pilotes de Virtual Air Canada Airline. Utilisez-la comme référence rapide avant et pendant vos vols, avec des liens vers des guides détaillés pour plus d'informations.

<img className="block dark:hidden" src="https://mintcdn.com/virtualaircanada/viMOiMp_6YXc-VCM/images/operations/pilot-onepager.png?fit=max&auto=format&n=viMOiMp_6YXc-VCM&q=85&s=9320114b872a81f2fb83c13eab1677c2" alt="Aide-mémoire du pilote" width="2064" height="1104" data-path="images/operations/pilot-onepager.png" />

<img className="hidden dark:block" src="https://mintcdn.com/virtualaircanada/viMOiMp_6YXc-VCM/images/operations/pilot-onepager-dark.png?fit=max&auto=format&n=viMOiMp_6YXc-VCM&q=85&s=0490dfc2ac63e48ad7ebebef23d8a07c" alt="Aide-mémoire du pilote" width="2064" height="1104" data-path="images/operations/pilot-onepager-dark.png" />

<Checklist
  title="Préparation prévol"
  items={[
"Vol réservé dans Pilot Hub",
"Type d'aéronef correct sélectionné",
"Livrée Air Canada approuvée installée",
"Plan de vol chargé dans Pegasus ACARS",
"Météo vérifiée au départ et à l'arrivée",
"Suivi ACARS démarré"
]}
/>

## Réserver votre vol

Avant de voler, vous devez réserver un vol via Pilot Hub :

1. Naviguez vers la réservation de vol dans Pilot Hub
2. Sélectionnez votre aéroport de départ (les plaques tournantes vACA offrent plus d'options de routes)
3. Choisissez votre destination et votre route
4. Sélectionnez un aéronef approprié pour la route
5. Planifiez votre heure de départ et confirmez

<Tip>
  Utilisez la fonctionnalité Strapontin pour vous repositionner à n'importe quel aéroport du réseau sans avoir à y voler d'abord.
</Tip>

Pour le processus complet de réservation et la gestion des heures de départ, consultez le [guide de réservation de vols](/fr/essentials/booking-flights).

## Aéronefs

Vous devez voler avec le type d'aéronef qui correspond à votre vol réservé. Utiliser un type d'aéronef incorrect pourrait entraîner un rejet de votre vol.

<Aircraft
  title="Listes de vérification par aéronef"
  labels={{ mainline: "Principal", express: "Régional", cargo: "Cargo", fictional: "Fictif" }}
  aircraft={[
{ type: "mainline", code: "A220-300", name: "Airbus A220-300", href: "/fr/aops/checklists/a220", description: "Cheval de bataille court et moyen-courrier pour les routes en avion régional" },
{ type: "mainline", code: "A320 family", name: "Airbus A319 / A320 / A321", href: "/fr/aops/checklists/a320", description: "Épine dorsale des opérations principales court et moyen-courrier" },
{ type: "mainline", code: "A321-XLR", name: "Airbus A321-XLR", href: "/fr/aops/checklists/a320", description: "Monocouloir longue portée pour les routes transatlantiques peu denses" },
{ type: "mainline", code: "A330-300", name: "Airbus A330-300", href: "/fr/aops/checklists/a330", description: "Gros-porteur pour les routes internationales moyen et long-courrier" },
{ type: "mainline", code: "B737 MAX 8", name: "Boeing 737 MAX 8", href: "/fr/aops/checklists/b737max", description: "Monocouloir court et moyen-courrier" },
{ type: "mainline", code: "B777-200LR", name: "Boeing 777-200LR", href: "/fr/aops/checklists/b777-200lr", description: "Gros-porteur amiral très long-courrier" },
{ type: "mainline", code: "B777-300ER", name: "Boeing 777-300ER", href: "/fr/aops/checklists/b777-300er", description: "Gros-porteur amiral long-courrier" },
{ type: "mainline", code: "B787-8", name: "Boeing 787-8 Dreamliner", href: "/fr/aops/checklists/b787-8", description: "Gros-porteur Dreamliner moderne pour les longs courriers" },
{ type: "mainline", code: "B787-9", name: "Boeing 787-9 Dreamliner", href: "/fr/aops/checklists/b787-9", description: "Dreamliner allongé pour les routes long-courrier" },
{ type: "express", code: "DH8D", name: "De Havilland Dash 8-400", href: "/fr/aops/checklists/q400", description: "Turbopropulseur régional pour les courts trajets" },
{ type: "express", code: "CRJ900", name: "Mitsubishi CRJ-900", href: "/fr/aops/checklists/crj900", description: "Avion régional pour les routes courtes et moyennes" },
{ type: "express", code: "E175", name: "Embraer E175", href: "/fr/aops/checklists/e175", description: "Avion régional pour les routes courtes et moyennes" },
{ type: "fictional", code: "A340-300", name: "Airbus A340-300", href: "/fr/aops/checklists/a340", description: "Quadriréacteur pour les très longs courriers, flotte fictive" },
{ type: "fictional", code: "A350-900", name: "Airbus A350-900", href: "/fr/aops/checklists/a350", description: "Gros-porteur moderne long-courrier, flotte fictive" }
]}
/>

<Info>
  Vérifiez toujours l'aéronef réservé avant de démarrer votre simulateur.
</Info>

Pour la liste complète des aéronefs acceptés et des substituts approuvés, consultez [Aéronefs acceptés](/fr/aircraft/accepted-aircraft).

## Livrées acceptées

Tous les aéronefs doivent afficher une livrée Air Canada correcte. Les livrées par défaut du simulateur ou les livrées d'autres compagnies aériennes ne sont pas acceptables.

Pour la liste complète des livrées acceptées, consultez [Livrées acceptées](/fr/aircraft/accepted-liveries).

## Aéroports

Les huit aéroports canadiens les plus fréquemment desservis chez Virtual Air Canada. Chaque aperçu couvre les pistes, les fréquences ATC, les points chauds et le METAR en direct.

<Airports
  title="Aperçus des aéroports canadiens"
  labels={{ hub: "Plaque tournante", regional: "Régional" }}
  airports={[
{ type: "hub", icao: "CYYZ", name: "Toronto Pearson", href: "/fr/aops/airports/toronto-pearson", description: "Plaque tournante mondiale principale. Cinq pistes, opérations parallèles, réseau de circulation complexe, capacité CAT III" },
{ type: "hub", icao: "CYUL", name: "Montréal-Trudeau", href: "/fr/aops/airports/montreal-trudeau", description: "Plaque tournante de l'Est canadien. Deux pistes parallèles rapprochées depuis le déclassement de 10/28 en 2023" },
{ type: "hub", icao: "CYVR", name: "Vancouver", href: "/fr/aops/airports/vancouver-international", description: "Plaque tournante de l'Ouest canadien. Trois pistes sur l'île Sea Island. Brouillard côtier et relief des North Shore Mountains" },
{ type: "hub", icao: "CYYC", name: "Calgary", href: "/fr/aops/airports/calgary-international", description: "Terrain chaud et en altitude. Piste la plus longue au Canada (17L/35R). Les vents chinook font régulièrement basculer les opérations" },
{ type: "regional", icao: "CYOW", name: "Ottawa", href: "/fr/aops/airports/ottawa", description: "Région de la capitale nationale. ATC bilingue. Deux pistes jet principales sans opérations parallèles" },
{ type: "regional", icao: "CYQB", name: "Québec", href: "/fr/aops/airports/quebec-city", description: "Est du Québec. ATC bilingue. Un seul ILS CAT I sur la piste 06; opérations hivernales intenses" },
{ type: "regional", icao: "CYEG", name: "Edmonton", href: "/fr/aops/airports/edmonton", description: "Deux pistes sécantes. Opérations par grand froid et activité de fret importante en soirée" },
{ type: "regional", icao: "CYHZ", name: "Halifax", href: "/fr/aops/airports/halifax", description: "Porte d'entrée de l'Atlantique. Brouillard côtier. Piste 05/23 allongée pour les opérations gros-porteurs" }
]}
/>

Pour les aperçus complets de chaque terrain, consultez [Aperçus des aéroports canadiens](/fr/aops/airports/index).

## Procédures de vol (porte à porte)

Suivez ces procédures pour un vol sécuritaire et valide :

<Steps>
  <Step title="Préparation prévol">
    * Chargez votre vol dans <Tooltip tip="Système de communication et de compte-rendu embarqué" cta="Voir le glossaire" href="/aops/additional-resources/glossary/acars">Pegasus ACARS</Tooltip> depuis « My Flights »
    * Téléchargez et révisez votre plan de vol (route, <Tooltip tip="Départ normalisé aux instruments" cta="Voir le glossaire" href="/aops/additional-resources/glossary/sid">SIDs</Tooltip>, <Tooltip tip="Arrivée normalisée en région terminale" cta="Voir le glossaire" href="/aops/additional-resources/glossary/star">STARs</Tooltip>, approches)
    * Vérifiez la météo aux aéroports de départ et d'arrivée
    * Calculez les besoins en carburant
    * Configurez votre aéronef dans le simulateur à la porte de départ
  </Step>

  <Step title="Refoulement et roulage">
    * Demandez le refoulement et démarrez les moteurs selon les procédures
    * Roulez vers la piste assignée en utilisant uniquement les voies de circulation désignées
    * Suivez tous les marquages au sol et les instructions de point d'arrêt
  </Step>

  <Step title="Décollage et montée">
    * Assurez-vous que l'aéronef est correctement configuré pour le décollage selon le manuel d'exploitation de votre aéronef
    * Effectuez le décollage depuis le seuil de piste
    * Suivez votre SID assigné
    * Montez à votre altitude de croisière selon votre plan de vol
  </Step>

  <Step title="Croisière">
    * Maintenez votre altitude et vitesse de croisière
    * Surveillez la consommation de carburant et les systèmes
    * L'accélération du temps est permise durant cette phase uniquement (vols long-courriers de 3 h et plus, au-dessus de 20 000 pieds)
  </Step>

  <Step title="Descente et approche">
    * Commencez la descente selon votre plan de vol
    * Suivez votre STAR assignée
    * Configurez l'aéronef pour l'approche
    * Assurez-vous que l'accélération du temps est désactivée (retour à la vitesse 1x)
  </Step>

  <Step title="Atterrissage et roulage vers la porte">
    * Atterrissez sur la piste assignée
    * Quittez la piste et roulez vers votre porte assignée en utilisant les voies de circulation désignées
    * Suivez tous les marquages au sol
  </Step>

  <Step title="Arrêt à la porte">
    * Stationnez à la porte et arrêtez les moteurs
    * Terminez le vol dans Pegasus ACARS en cliquant sur « End Flight »
    * Soumettez votre rapport de vol
  </Step>
</Steps>

## Accélération du temps et pause du simulateur

<AccordionGroup>
  <Accordion icon="clock" title="Règles d'accélération du temps">
    * **Permis** : Durant la phase de croisière uniquement (au moins 20 000 pieds), sur les vols de 3 heures ou plus
    * **Interdit** : Vols court-courriers de moins de 3 heures
    * **Interdit** : Durant le décollage, la montée, la descente, l'approche ou l'atterrissage
    * Vous devez revenir à la vitesse 1x avant de commencer la descente
    * ACARS suit l'utilisation et peut déduire des points/heures
  </Accordion>

  <Accordion icon="pause" title="Pause du simulateur">
    * La pause est permise à tout moment durant votre vol
    * Aucune pénalité pour la pause durant n'importe quelle phase de vol
    * ACARS continuera de suivre correctement lorsque vous reprendrez
  </Accordion>
</AccordionGroup>

Pour les détails complets, consultez le [guide du simulateur de vol](/fr/operations/flight-sim).

## Actions interdites

<Warning>
  Les actions suivantes sont **interdites** et entraîneront l'**invalidation** de votre vol (0 heure, 0 point accordé). Des violations multiples des règles peuvent entraîner un bannissement permanent de la compagnie aérienne. ACARS suit automatiquement la position de votre aéronef et les paramètres de vol en tout temps.
</Warning>

**Opérations au sol :**

* **Roulage sur le gazon** - Vous devez rester sur les surfaces pavées en tout temps
* **Roulage hors des voies de circulation désignées** - Suivez uniquement les routes de voies de circulation appropriées
* **Décollage depuis les portes** - Vous devez rouler jusqu'à une piste et en décoller
* **Excès de vitesse au roulage** - Maintenez des vitesses de roulage sécuritaires appropriées pour la voie de circulation

**Opérations de vol non sécuritaires :**

* **Dépassement des limitations de l'aéronef** - Ne dépassez pas les vitesses maximales d'exploitation (VMO/MMO), les limites de G ou les limites structurelles
* **Surcharge de l'aéronef** - Les atterrissages durs dépassant les spécifications du fabricant seront signalés
* **Violations du train d'atterrissage** - Sortie du train au-dessus de la vitesse maximale ou atterrissage avec le train rentré
* **Décrochage ou vrille** - Les situations de perte de contrôle indiquent un pilotage non sécuritaire
* **Écrasement ou amerrissage forcé** - L'aéronef doit arriver en sécurité à destination

**Violations de procédure :**

* **Utilisation d'un aéronef incorrect** - Vous devez voler avec le type d'aéronef correspondant à votre réservation
* **Livrées non valides** - L'aéronef doit afficher une livrée Air Canada approuvée
* **Accélération du temps durant les phases critiques** - Aucune accélération du temps durant le décollage, la montée, la descente, l'approche ou l'atterrissage

Pour la liste complète des statuts de <Tooltip tip="Rapport de pilote" cta="Voir le glossaire" href="/aops/additional-resources/glossary/pirep">PIREP</Tooltip> et leur signification, consultez [Statuts des PIREPs](/fr/operations/pirep-statuses).

## Ressources essentielles

<CardGroup cols={2}>
  <Card title="Réservation de vols" icon="calendar" href="/fr/essentials/booking-flights">
    Guide complet pour trouver des routes, sélectionner des aéronefs et réserver vos vols.
  </Card>

  <Card title="Guide du simulateur de vol" icon="gauge-high" href="/fr/operations/flight-sim">
    Politiques d'accélération du temps, exigences relatives aux aéronefs et détails du suivi ACARS.
  </Card>

  <Card title="Guide ACARS" icon="satellite-dish" href="/fr/essentials/acars-guide">
    Comment utiliser Pegasus ACARS pour suivre et soumettre vos vols.
  </Card>

  <Card title="Statuts des PIREPs" icon="clipboard-check" href="/fr/operations/pirep-statuses">
    Comprendre les statuts des rapports de vol et le processus de révision.
  </Card>
</CardGroup>

## Besoin d'aide?

<CardGroup cols={2}>
  <Card title="Communauté Discord" icon="discord" href="https://links.canadava.com/kgNgqfb" cta="Rejoindre Discord" arrow={true}>
    Obtenez des réponses à vos questions dans notre communauté Discord active
  </Card>

  <Card title="Soutien par courriel" icon="envelope" href="mailto:support@canadava.com" cta="Nous joindre" arrow={true}>
    Contactez notre équipe de soutien pour une assistance personnalisée
  </Card>
</CardGroup>
