générés par Elementor.
-------------------------------------------------------------------------- */
.dmd-filet,.dmd-liste,.dmd-puces{display:block}.dmd-filet .elementor-icon-list-items{display:flex;gap:26px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.dmd-filet .elementor-icon-list-item{display:flex;align-items:center;gap:9px;font-size:14px;
color:var(--dmd-texte-sombre);margin:0}
.dmd-filet .elementor-icon-list-item::before{content:"";width:7px;height:7px;border-radius:50%;
background:var(--dmd-or-clair);flex:0 0 auto}
.dmd-filet .elementor-icon-list-icon{display:none}.dmd-liste .elementor-icon-list-items{display:grid;gap:13px;margin:0;padding:0;list-style:none}
.dmd-liste .elementor-icon-list-item{display:flex;gap:12px;align-items:flex-start;font-size:15px;
color:#DCE3E9;margin:0}
.dmd-liste .elementor-icon-list-item::before{content:"";width:8px;height:8px;border-radius:50%;
background:var(--dmd-or-clair);margin-top:8px;flex:0 0 auto}
.dmd-liste .elementor-icon-list-icon{display:none}.dmd-puces .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none}
.dmd-puces .elementor-icon-list-item{font-size:13.5px;font-weight:500;border:1px solid var(--dmd-gris-2);
background:var(--dmd-gris);border-radius:var(--dmd-r-pill);padding:7px 16px;margin:0}
.dmd-puces .elementor-icon-list-icon{display:none}/* Sur fond sombre, la liste de conversion reprend la même grammaire */
.dmd-conv .dmd-liste .elementor-icon-list-item{color:#DCE3E9}/* --------------------------------------------------------------------------
20. Compatibilité avec les styles globaux Elementor et Astra
Le kit Elementor impose une typographie aux titres. Les règles ci-dessous
sont volontairement plus spécifiques pour que la maquette reste fidèle,
sans toucher au reste du site.
-------------------------------------------------------------------------- */
.dmd .elementor-widget-heading .elementor-heading-title{
font-family:var(--dmd-police);margin:0;color:inherit}
.dmd .elementor-widget-heading h1.elementor-heading-title{
font-size:clamp(30px,4.2vw,40px);line-height:1.1;font-weight:600}
.dmd .elementor-widget-heading h2.elementor-heading-title{
font-size:clamp(23px,2.6vw,25px);line-height:1.25;font-weight:600;color:var(--dmd-surface)}
.dmd .elementor-widget-heading h3.elementor-heading-title{
font-size:18px;line-height:1.32;font-weight:600}.dmd-hero .elementor-widget-heading h1.elementor-heading-title{color:var(--dmd-blanc)}
.dmd-signature .elementor-widget-heading h2.elementor-heading-title{color:var(--dmd-or-clair)}
.dmd-preuve .elementor-widget-heading h2.elementor-heading-title{color:var(--dmd-or-clair)}
.dmd-preuve .elementor-widget-heading h3.elementor-heading-title{color:var(--dmd-blanc)}
.dmd-conv .elementor-widget-heading h2.elementor-heading-title{color:var(--dmd-blanc)}/* Surtitre : trait or + libellé */
.dmd .dmd-surtitre{display:inline-flex;align-items:center;gap:10px;width:auto;margin-bottom:16px}
.dmd .dmd-surtitre .elementor-heading-title{font-size:12px;font-weight:500;letter-spacing:.14em;
text-transform:uppercase;color:inherit;line-height:1.4}/* Pastille numérotée du process */
.dmd .dmd-maillon .dmd-maillon__pt{width:60px;height:60px;margin:0 auto 16px;flex:0 0 auto}
.dmd .dmd-maillon .dmd-maillon__pt .elementor-heading-title{font-size:16px;font-weight:600;
color:inherit;line-height:1}/* Pictogramme des équipements */
.dmd .dmd-equip .dmd-equip__ic{width:46px;height:46px;margin:0 auto 14px;flex:0 0 auto}
.dmd .dmd-equip .dmd-equip__ic .elementor-heading-title{font-size:20px;color:inherit;line-height:1}/* Chiffres de la preuve */
.dmd .dmd-carte-p .dmd-carte-p__gros .elementor-heading-title{font-size:30px;font-weight:600;
color:inherit;line-height:1}
.dmd .dmd-lien-carte .dmd-lien-carte__cat .elementor-heading-title{font-size:11px;font-weight:600;
letter-spacing:.1em;text-transform:uppercase;color:inherit}
.dmd .dmd-sep .elementor-heading-title{font-size:12px;font-weight:600;letter-spacing:.1em;
text-transform:uppercase;color:#66717B}/* Corps de texte */
.dmd .elementor-widget-text-editor{color:inherit}
.dmd .dmd-chapo p{font-size:17px;margin-bottom:0}
.dmd .dmd-entete .elementor-widget-text-editor p{font-size:17px;margin-bottom:0}
.dmd .dmd-citation p{font-size:17px;font-weight:400;margin-bottom:0}
.dmd .dmd-note p{font-size:12.5px;color:var(--dmd-texte-sombre);margin-bottom:0}
.dmd .dmd-cartouche p{margin-bottom:0;font-size:14.5px}
.dmd .dmd-mini p,.dmd .dmd-maillon p{font-size:13.5px;color:var(--dmd-texte-doux);margin-bottom:0}
.dmd .dmd-equip p{font-size:13px;color:var(--dmd-texte-doux);margin-bottom:0}
.dmd .dmd-carte-p p{font-size:13.5px;color:var(--dmd-texte-sombre);margin-bottom:0}
.dmd .dmd-signee p{font-size:14px;color:var(--dmd-texte-sombre);margin-bottom:0}
.dmd .dmd-signee .elementor-widget-image{width:auto;flex:0 0 auto}
.dmd .dmd-signee img{height:52px;width:auto}/* Boutons : la classe est posée sur l'enveloppe du widget */
.dmd .dmd-btn{width:auto}
.dmd .dmd-btn .elementor-button{display:inline-block;font-family:var(--dmd-police);font-size:20px;
font-weight:500;color:#1B1B1B;background:var(--dmd-or-plein);border:1px solid var(--dmd-or-plein);
border-radius:var(--dmd-r);padding:15px 30px;line-height:1.2;
transition:background .18s ease,transform .18s ease,color .18s ease,border-color .18s ease}
.dmd .dmd-btn .elementor-button:hover,.dmd .dmd-btn .elementor-button:focus-visible{
background:var(--dmd-or-clair);border-color:var(--dmd-or-clair);color:#1B1B1B;transform:translateY(-2px)}
.dmd .dmd-btn--clair .elementor-button{background:transparent;color:var(--dmd-blanc);
border-color:rgba(255,255,255,.45)}
.dmd .dmd-btn--clair .elementor-button:hover,.dmd .dmd-btn--clair .elementor-button:focus-visible{
background:var(--dmd-blanc);color:var(--dmd-noir);border-color:var(--dmd-blanc)}
.dmd .dmd-btn .elementor-button::after{content:none}@media(max-width:767px){
.dmd .dmd-btn,.dmd .dmd-btn .elementor-button{width:100%}
.dmd .dmd-btn .elementor-button{font-size:17px;padding:14px 22px}
}/* Mise en page propre au modele section/colonne d'Elementor */
/* Un widget occupe la largeur de sa colonne. Regle d'Elementor, reprise ici
parce que l'optimisation CSS de LiteSpeed peut la retirer : un widget dont
le contenu n'a pas de largeur propre se reduisait alors a rien. Les regles
qui suivent peuvent la contredire au cas par cas, les boutons par exemple. */
.dmd :where(.elementor-widget-wrap)>:where(.elementor-element){width:100%}
.dmd .elementor-widget-wrap{align-content:flex-start}
.dmd-rangee>.elementor-container{align-items:inherit}
.dmd-gap-60>.elementor-container{gap:60px}
.dmd-gap-56>.elementor-container{gap:56px}
.dmd-gap-52>.elementor-container{gap:52px}
.dmd-gap-48>.elementor-container{gap:48px}
.dmd-gap-18>.elementor-container{gap:18px}
.dmd-gap-16>.elementor-container{gap:16px}
.dmd-gap-0>.elementor-container{gap:0}
.dmd-grille{margin-bottom:18px}
.dmd-grille:last-child{margin-bottom:0}
/* Les grilles de cartes passent en grille CSS : les cartes d'une meme rangee
gardent ainsi la meme hauteur, quelle que soit la longueur du texte. */
.dmd .dmd-rangee+.dmd-grille{margin-top:26px}
.dmd .dmd-grille>.elementor-container{display:grid;align-items:stretch}
.dmd .dmd-grille>.elementor-container>.elementor-column{width:auto}
.dmd .dmd-grille-2>.elementor-container{grid-template-columns:repeat(2,1fr)}
.dmd .dmd-grille-3>.elementor-container{grid-template-columns:repeat(3,1fr)}
.dmd .dmd-grille-4>.elementor-container{grid-template-columns:repeat(4,1fr)}
@media(max-width:1060px){
.dmd .dmd-grille-3>.elementor-container,
.dmd .dmd-grille-4>.elementor-container{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:767px){
.dmd .dmd-grille>.elementor-container{grid-template-columns:1fr}
}.dmd-signee .elementor-widget-image,
.dmd-signee .elementor-widget-text-editor{width:auto}
.dmd-signee .elementor-widget-image{margin-right:16px}/* Les cartes sont des colonnes : on leur rend leur boite */
.dmd-lien-carte>.elementor-widget-wrap,
.dmd-mini>.elementor-widget-wrap,
.dmd-equip>.elementor-widget-wrap,
.dmd-carte-p>.elementor-widget-wrap{height:100%}
.dmd-visuel>.elementor-widget-wrap{padding:0}
.dmd-visuel .elementor-widget-image{width:100%}
/* La chaine des quatre etapes : ce sont les colonnes Elementor qui portent
la repartition, la classe ne sert plus qu'au filet dore decoratif. */
.dmd .elementor-section.dmd-chaine{display:block}
.dmd .elementor-section.dmd-chaine>.elementor-container{position:relative;z-index:1}
.dmd-maillon{text-align:center}
.dmd-maillon .elementor-widget-button{margin:10px auto 0}
.dmd-equip{text-align:center}/* --------------------------------------------------------------------
Priorite sur les styles globaux d'Astra et du kit Elementor.
Limite aux couleurs que la maquette impose : ailleurs, les reglages
du site continuent de s'appliquer normalement.
-------------------------------------------------------------------- */
.dmd .dmd-chapo,.dmd .dmd-chapo p{color:#E7EBEF!important}
/* Le cartouche pose sur la photo : texte clair, et la colonne visuel ne doit
garder aucune marge interne sinon l'image ne remplit plus la carte. */
.dmd .dmd-cartouche,.dmd .dmd-cartouche p{color:#fff!important}
/* La photo occupe toute la carte : sans cela le fond de la colonne
apparait en bandes au-dessus et au-dessous de l'image. */
.dmd .dmd-visuel>.elementor-widget-wrap{padding:0!important;height:100%}
.dmd .dmd-visuel .elementor-widget-image{height:100%;display:flex}
.dmd .dmd-visuel .elementor-widget-image>.elementor-widget-container{width:100%;height:100%}
.dmd .dmd-visuel img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;display:block}
/* Le widget « liste d'icones » pose la couleur sur le libelle lui-meme :
il faut donc viser ce libelle, sinon l'heritage ne passe pas. */
.dmd-hero .dmd-filet .elementor-icon-list-item,
.dmd-hero .dmd-filet .elementor-icon-list-text,
.dmd-signature .dmd-liste .elementor-icon-list-item,
.dmd-signature .dmd-liste .elementor-icon-list-text,
.dmd-conv .dmd-liste .elementor-icon-list-item,
.dmd-conv .dmd-liste .elementor-icon-list-text{color:#E7EBEF!important}
.dmd-signature .dmd-note p{color:#C3CDD6!important}.dmd .dmd-btn .elementor-button,.dmd a.dmd-btn,.dmd .dmd-btn>a{
color:#1B1B1B!important;background:var(--dmd-or-plein)!important;
border-color:var(--dmd-or-plein)!important;text-decoration:none!important}
.dmd .dmd-btn .elementor-button:hover,.dmd a.dmd-btn:hover{
background:var(--dmd-or-clair)!important;color:#1B1B1B!important}
.dmd .dmd-btn--clair .elementor-button{
color:#fff!important;background:transparent!important;
border-color:rgba(255,255,255,.45)!important}
.dmd .dmd-btn--clair .elementor-button:hover{
background:#fff!important;color:var(--dmd-noir)!important}/* Le widget bouton d'Elementor porte la classe utilitaire : seul le lien
interne doit recevoir le fond, la bordure et le rayon du bouton. */
.dmd .elementor-widget-button.dmd-btn{background:none!important;border:0!important;
padding:0!important;box-shadow:none!important;border-radius:0!important}
/* Boutons cote a cote comme sur la maquette, avec retour a la ligne aligne
a gauche quand la colonne devient trop etroite (gap de 14px). */
.dmd .elementor-widget-wrap>.elementor-widget-button.dmd-btn{width:auto;flex:0 0 auto;
margin:0 14px 12px 0}
.dmd .dmd-btn .elementor-button{display:inline-flex;align-items:center;
justify-content:center;white-space:nowrap}/* Une section imbriquee est un element de flex : sans largeur explicite elle
se retrecit sur son contenu. Une colonne dont le contenu n'a pas de largeur
propre, un iframe en 100 % par exemple, faisait alors s'effondrer la rangee. */
.dmd.elementor-section,.dmd .elementor-section{width:100%!important}
.dmd.elementor-section>.elementor-container,
.dmd .elementor-section>.elementor-container{width:100%}/* La colonne du module de reservation garde sa largeur : son contenu est un
iframe, qui n'a pas de largeur propre pour resister au retrecissement du
flex. C'est la colonne de texte qui absorbe la gouttiere. */
.dmd .dmd-col-resa{flex-shrink:0}/* Cadre du module de reservation : meme carte que la maquette, l'iframe
occupe toute la surface. */
.dmd-resa{width:100%;background:#fff;border-radius:var(--dmd-r);overflow:hidden;
border-top:3px solid var(--dmd-or-plein);
box-shadow:0 24px 60px rgba(6,27,43,.28)}
.dmd-resa iframe{display:block;width:100%;border:0;min-height:640px}
@media(max-width:767px){.dmd-resa iframe{min-height:560px}}/* L'accordeon ne depend plus d'une police d'icones : le signe est dessine
en CSS, il reste visible meme si Font Awesome n'est pas servi. */
.dmd .elementor-toggle-icon i{font-family:inherit!important;font-style:normal;
font-weight:400;display:inline-block;width:1em;text-align:center}
.dmd .elementor-toggle-icon i::before{content:"+";font-size:22px;line-height:1;
color:var(--dmd-or)}
.dmd .elementor-toggle-icon-opened i::before{content:"2"}/* Les liens « aller » des cartes restent discrets */
.dmd .dmd-lien-carte .elementor-button,.dmd .dmd-maillon .elementor-button{
color:var(--dmd-or)!important;background:none!important;border:0!important}/* Mega-menu : le theme ne doit pas recolorer les liens */
.dmd-mm .dmd-mm__lien,.dmd-mm .dmd-mm__liens a,.dmd-mm .dmd-mm__carte a,
.dmd-mm .dmd-mm__tel,.dmd-mm .dmd-mm__langue{color:var(--mm-nuit)!important;text-decoration:none!important}
.dmd-mm .dmd-mm__lien:hover,.dmd-mm .dmd-mm__liens a:hover,
.dmd-mm .dmd-mm__carte a:hover,.dmd-mm .dmd-mm__tel:hover,
.dmd-mm .dmd-mm__langue:hover{color:var(--mm-or)!important}
.dmd-mm .dmd-mm__item[data-ouvert="1"]>.dmd-mm__lien{color:var(--mm-or)!important}
.dmd-mm .dmd-mm__cta{color:#1B1B1B!important;background:var(--mm-or)!important;
text-decoration:none!important}
.dmd-mm .dmd-mm__cta:hover{background:#D9B84C!important;color:#1B1B1B!important}
.dmd-mm .dmd-mm__lien{white-space:nowrap}
.dmd-mm .dmd-mm__logo-nom{color:var(--mm-nuit)!important}
.dmd-mm .dmd-mm__logo-sous{color:var(--mm-doux)!important}
.dmd-mm a{box-shadow:none!important}
/* Le theme remet les SVG a une largeur automatique : sans intrinseque, ils
disparaissent. On rend donc leur taille explicite. */
.dmd-mm svg{flex:0 0 auto}
.dmd-mm .dmd-mm__burger{width:46px!important;height:46px!important;padding:0!important;
min-width:0!important;background:none!important;color:var(--mm-nuit)!important;
border:1px solid var(--mm-bord)!important;border-radius:10px!important}
.dmd-mm .dmd-mm__burger svg{width:22px!important;height:22px!important}
.dmd-mm .dmd-mm__langue svg{width:14px!important;height:14px!important}
.dmd-mm .dmd-mm__tel svg{width:15px!important;height:15px!important}
.dmd-mm .dmd-mm__lien svg{width:14px!important;height:14px!important}/* Dans le panneau mobile, le numero reprend sa place a cote de l'icone */
@media(max-width:1023px){
.dmd-mm .dmd-mm__tel span{display:inline}
}/* Marges laterales sur mobile : la maquette ne colle jamais au bord */
@media(max-width:767px){
.dmd.elementor-top-section>.elementor-container{padding-left:20px;padding-right:20px}
.dmd .elementor-widget-wrap>.elementor-widget-button.dmd-btn{width:100%;margin-right:0}
}/* Le voile laisse voir la photo */
.dmd-fond-sombre::before{
background:linear-gradient(102deg,rgba(6,27,43,.74) 0%,rgba(6,27,43,.48) 42%,rgba(6,27,43,.20) 100%)}
/* La bande de conversion porte du texte sur toute sa largeur : le voile y
reste soutenu des deux cotes, sinon la liste de droite devient illisible. */
.dmd-fond-sombre--conv::before{
background:linear-gradient(95deg,rgba(6,27,43,.90),rgba(6,27,43,.80))}/* Le mega-menu est desormais l'en-tete du site : rien a masquer, mais la
zone d'en-tete ne doit imposer ni marge, ni fond, ni largeur au menu.
C'est la barre elle-meme qui centre son contenu, sur 1280 px. */
.elementor-location-header{margin:0;padding:0;background:none}
.elementor-location-header>.elementor-section,
.elementor-location-header .dmd-entete{width:100%!important;max-width:none!important;margin:0}
.elementor-location-header>.elementor-section>.elementor-container,
.elementor-location-header .dmd-entete>.elementor-container{
width:100%!important;max-width:none!important;margin:0;padding:0}
.dmd-entete .elementor-column,
.dmd-entete .elementor-widget-wrap,
.dmd-entete .elementor-widget-wrap>.elementor-element{width:100%}
.dmd-entete .elementor-widget-wrap{padding:0}
/* Les widgets qui ne portent qu'une feuille de style ou un script ne doivent
occuper aucune place : sinon Elementor leur laisse sa marge habituelle. */
.dmd-ressources{display:none!important}.dmd-rv{opacity:1;transform:none}
html.dmd-js .dmd-rv{opacity:0;transform:translateY(20px)}
html.dmd-js .dmd-rv.dmd-vu{opacity:1;transform:none}
Ne perdez pas de temps à attendre un taxi ou à chercher votre chemin à l’atterrissage. VTC Strasbourg DMD assure votre transfert privé et votre prise en charge entre l’Aéroport International de Strasbourg-Entzheim (SXB) et le centre-ville, votre hôtel, votre domicile, une entreprise de l’Eurométropole ou la gare centrale de Strasbourg.
Que vous voyagiez seul en Berline ou en groupe avec notre Van Mercedes, profitez d’un accueil personnalisé et d’un tarif fixe connu à l’avance, sans supplément bagages.
15 à 25 minDe l’aéroport au centre de Strasbourg, selon la circulation
Estimez votre trajet en quelques secondes
Indiquez votre adresse de départ, votre destination et votre horaire : le tarif s’affiche avant validation.
Prix fixe, connu à la réservation. Bagages compris, sans supplément.
01 — Prise en charge
Pourquoi réserver votre VTC Strasbourg DMD pour l'aéroport ?
1. Suivi de vol en temps réel
Nous surveillons votre vol grâce à son numéro. Si votre avion a du retard, nous le savons et nous décalons l'arrivée du chauffeur automatiquement. Aucun frais supplémentaire n'est facturé pour l'attente liée au retard de l'avion.
2. Accueil personnalisé avec pancarte nominative
Votre chauffeur vous attend dans le hall des arrivées, à la sortie de la zone bagages, avec une pancarte à votre nom. Il prend en charge vos valises et vous accompagne jusqu'au véhicule.
3. Prix fixe, sans surprise
Contrairement à une course au compteur, où le tarif grimpe dans les bouchons de l'A35, nos prix sont forfaitaires. Vous connaissez le montant exact dès la réservation.
Un transfert Aéroport vers Strasbourg Centre est facturé au forfait, que le trafic soit fluide ou dense, un jour ouvré comme un jour férié.
4. Une flotte haut de gamme
Berline Confort (1 à 3 passagers) : idéale pour vos déplacements professionnels ou vos trajets à deux. Mercedes Classe E ou équivalent, avec Wi-Fi, chargeurs et bouteilles d'eau.
Van Mercedes Classe V (4 à 7 passagers) : la solution pour les familles et les groupes. Grand coffre pour tous vos bagages, y compris skis, vélos ou instruments.
* Tarifs indicatifs, variables selon le véhicule, la distance et l'horaire. Demandez votre tarif exact en ligne.
03 — Ancrage local
Votre chauffeur VTC local à l'aéroport de Strasbourg
VTC Strasbourg DMD est une entreprise locale, basée dans l'Eurométropole et spécialisée dans les transferts vers l'aéroport de Strasbourg-Entzheim.
Une entreprise locale · basée dans l’Eurométropole de Strasbourg
Nos chauffeurs connaissent le terminal, les horaires de pointe et les accès routiers vers Strasbourg, Schiltigheim, Illkirch ou Kehl. Cette connaissance du terrain nous permet d'ajuster les heures de prise en charge au réel, pas à la théorie.
Dirigez-vous vers la sortie de la zone bagages, dans le hall des arrivées.
Votre chauffeur vous y attend avec une pancarte à votre nom.
Vous recevez également ses coordonnées par SMS avant votre atterrissage, pour le joindre directement si besoin. Pour comparer toutes les options d'accès à l'aéroport, consultez notre guide complet du transfert aéroport de Strasbourg.
05 — Questions fréquentes
FAQ : vos questions sur nos transferts aéroport
Dans le hall des arrivées, juste à la sortie de la zone bagages, avec une pancarte nominative. Il vous aide à porter vos valises et vous guide jusqu'au véhicule.
Nous suivons votre vol en temps réel et décalons l'heure de prise en charge automatiquement. L'attente liée au retard de l'avion n'est jamais facturée.
Oui, nous roulons 24h/24, 7j/7. Les vols tôt le matin comme les arrivées après minuit sont couverts, sur réservation préalable. Découvrez également notre service de transport de nuit sécurisé.
La Berline accueille jusqu'à 3 passagers, le Van Mercedes Classe V jusqu'à 7. Les bagages sont inclus dans le forfait, sans supplément. Pour du matériel volumineux (skis, vélos, instruments), signalez-le à la réservation afin que nous réservions le bon véhicule. Les sièges bébé et rehausseurs sont disponibles sur demande.
Entre 15 et 25 minutes selon la circulation et votre adresse exacte dans l'agglomération.
Oui. Le montant est confirmé avant votre course et ne bouge pas, quels que soient le trafic et le temps de trajet réel.
Remplissez le formulaire de réservation en ligne avec votre date, votre horaire, votre lieu de prise en charge et le nombre de passagers. Vous recevez une confirmation par email. Vous pouvez aussi nous appeler directement.
/*!
* Maquette SXO — interactions du gabarit de page service.
* Tout est cherché sous « .mq » : rien n'est touché en dehors de la page.
* 1. FAQ en accordéon
* 2. Révélation des blocs au défilement
* 3. Sommaire latéral qui suit la lecture
*/
(function () {
'use strict';var doux = window.matchMedia('(prefers-reduced-motion: reduce)').matches;// Une page peut contenir plusieurs blocs « .mq » : les widgets Elementor
// intercalés (avis Google, articles de blog) coupent le bloc en morceaux.
document.querySelectorAll('.mq').forEach(function (racine) {
if (racine.dataset.mqInit === '1') { return; }
racine.dataset.mqInit = '1';/* 1. FAQ ---------------------------------------------------------------- */
racine.querySelectorAll('.q button').forEach(function (b) {
b.addEventListener('click', function () {
var q = b.parentElement;
var ouvert = q.dataset.open === '1';
q.dataset.open = ouvert ? '0' : '1';
b.setAttribute('aria-expanded', String(!ouvert));
});
});/* 2. Révélation --------------------------------------------------------- */
var blocs = racine.querySelectorAll('.rv');
if (doux || !('IntersectionObserver' in window)) {
blocs.forEach(function (e) { e.classList.add('vu'); });
} else {
var io = new IntersectionObserver(function (es) {
es.forEach(function (en) {
if (!en.isIntersecting) { return; }
en.target.classList.add('vu');
io.unobserve(en.target);
});
}, { threshold: 0.08, rootMargin: '0px 0px -40px 0px' });
blocs.forEach(function (e) { io.observe(e); });
}/* 3. Sommaire ----------------------------------------------------------- */
var liens = [].slice.call(racine.querySelectorAll('.aside a[href^="#"]'));
var cibles = liens
.map(function (a) { return document.querySelector(a.getAttribute('href')); })
.filter(Boolean);if ('IntersectionObserver' in window && cibles.length) {
var io2 = new IntersectionObserver(function (es) {
es.forEach(function (en) {
if (!en.isIntersecting) { return; }
liens.forEach(function (a) {
a.classList.toggle('actif', a.getAttribute('href') === '#' + en.target.id);
});
});
}, { rootMargin: '-40% 0px -55% 0px' });
cibles.forEach(function (c) { io2.observe(c); });
}
});
})();
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Où mon chauffeur m'attend-il à l'aéroport de Strasbourg ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Dans le hall des arrivées, juste à la sortie de la zone bagages, avec une pancarte nominative. Il vous aide à porter vos valises et vous guide jusqu'au véhicule."
}
},
{
"@type": "Question",
"name": "Que se passe-t-il si mon vol est en retard ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nous suivons votre vol en temps réel et décalons l'heure de prise en charge automatiquement. L'attente liée au retard de l'avion n'est jamais facturée."
}
},
{
"@type": "Question",
"name": "Assurez-vous les transferts de nuit et très tôt le matin ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Oui, nous roulons 24h/24, 7j/7. Les vols tôt le matin comme les arrivées après minuit sont couverts, sur réservation préalable."
}
},
{
"@type": "Question",
"name": "Combien de passagers et de bagages pouvez-vous prendre ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "La Berline accueille jusqu'à 3 passagers, le Van Mercedes Classe V jusqu'à 7. Les bagages sont inclus dans le forfait, sans supplément. Pour du matériel volumineux (skis, vélos, instruments), signalez-le à la réservation afin que nous réservions le bon véhicule."
}
},
{
"@type": "Question",
"name": "Combien de temps dure le trajet vers Strasbourg ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Entre 15 et 25 minutes selon la circulation et votre adresse exacte dans l'agglomération."
}
},
{
"@type": "Question",
"name": "Le tarif est-il vraiment fixe ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Oui. Le montant est confirmé avant votre course et ne bouge pas, quels que soient le trafic et le temps de trajet réel."
}
},
{
"@type": "Question",
"name": "Proposez-vous des trajets longue distance depuis l'aéroport ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Oui : Colmar, Mulhouse, Europa-Park, Bâle-Mulhouse, Karlsruhe Baden-Baden, Francfort, Paris ou Lyon. Ces trajets se font sur devis."
}
},
{
"@type": "Question",
"name": "Comment réserver ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Remplissez le formulaire de réservation en ligne avec votre date, votre horaire, votre lieu de prise en charge et le nombre de passagers. Vous recevez une confirmation par email. Vous pouvez aussi nous appeler directement."
}
}
]
}