/* govioletgo — l’accueil, version 3 (25.10.2026). Aucun style en ligne : tout est ici. */
:root{
  color-scheme:light dark;
  --violet:#5b34c4; --violet-fort:#4524a3; --violet-doux:#efeafd; --violet-trait:#ddd3fb; --sur-violet:#fff;
  --encre:#1b1630; --gris:#5b5570; --trait:#e8e5ef; --trait-champ:#8a83a3; --fond:#fbfaff; --carte:#fff;
  --ok:#126b41; --ok-fond:#e6f6ee; --att:#8a5100; --att-fond:#fff3dc; --non:#b42318; --non-fond:#fdecea;
  --ombre:0 1px 2px rgba(27,22,48,.06),0 8px 24px rgba(27,22,48,.06); --rayon:16px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --violet:#a98bff; --violet-fort:#c3adff; --violet-doux:#231b3d; --violet-trait:#3a2d66; --sur-violet:#120f1c;
  --encre:#f2effa; --gris:#b3adc7; --trait:#2d2840; --trait-champ:#6f6890; --fond:#120f1c; --carte:#1a1628;
  --ok:#5fd39a; --ok-fond:#123324; --att:#f3b65a; --att-fond:#33260f; --non:#ff8a7e; --non-fond:#3a1714; --ombre:none;}}
:root[data-theme="dark"]{
  --violet:#a98bff; --violet-fort:#c3adff; --violet-doux:#231b3d; --violet-trait:#3a2d66; --sur-violet:#120f1c;
  --encre:#f2effa; --gris:#b3adc7; --trait:#2d2840; --trait-champ:#6f6890; --fond:#120f1c; --carte:#1a1628;
  --ok:#5fd39a; --ok-fond:#123324; --att:#f3b65a; --att-fond:#33260f; --non:#ff8a7e; --non-fond:#3a1714; --ombre:none;}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:var(--violet)}
:focus-visible{outline:3px solid var(--violet);outline-offset:2px}
::placeholder{color:var(--gris);opacity:1}
[hidden]{display:none!important}
.conteneur{max-width:1120px;margin:0 auto;padding:0 16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bandeau-apercu{position:sticky;top:0;z-index:25;background:var(--att-fond);color:var(--att);text-align:center;font-size:.85rem;font-weight:600;padding:6px 16px}
/* En-tête */
header.haut{position:sticky;top:0;z-index:20;background:var(--fond);border-bottom:1px solid var(--trait)}
.barre{display:flex;align-items:center;gap:12px;height:60px}
.marque-v3{display:flex;align-items:center;text-decoration:none}
.marque-v3 svg{height:30px;width:auto;display:block}
.espace{flex:1}
/* Boutons */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.bouton:active{transform:scale(.98)}
.primaire{background:var(--violet);color:var(--sur-violet)}
.primaire:hover{background:var(--violet-fort)}
.secondaire{background:var(--carte);color:var(--encre);border:1px solid var(--trait-champ)}
.secondaire:hover{border-color:var(--violet)}
.petit{padding:8px 12px;font-size:.9rem;border-radius:10px}
/* Bloc de recherche unique */
.bloc-recherche{background:var(--carte);border:1px solid var(--trait);border-radius:20px;box-shadow:var(--ombre);margin:20px 0 24px}
.onglets{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:4px;padding:8px;border-bottom:1px solid var(--trait);background:var(--fond);border-radius:20px 20px 0 0}
.onglets button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--gris);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer}
.onglets button svg{width:20px;height:20px;flex:none}
.onglets button[aria-selected="true"]{background:var(--violet);color:var(--sur-violet)}
.onglets button:not([aria-selected="true"]):hover{background:var(--violet-doux);color:var(--encre)}
@media (max-width:560px){
  .onglets{grid-template-columns:repeat(3,1fr)}
  .onglets button{flex-direction:column;gap:2px;padding:8px 4px;font-size:.8rem;line-height:1.2;text-align:center}
}
.panneau{padding:18px}
/* Champs */
.ligne{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.ligne{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ligne{grid-template-columns:1fr}}
.champ{position:relative}
.champ label,.champ .lbl{display:block;font-size:.8rem;font-weight:700;color:var(--gris);margin-bottom:4px}
.champ input,.champ select,.champ-option{width:100%;font:inherit;padding:11px 12px;border-radius:12px;border:1px solid var(--trait-champ);background:var(--fond);color:var(--encre)}
.champ input:focus,.champ select:focus{outline:2px solid var(--violet);outline-offset:1px;border-color:transparent}
.aide-champ{font-size:.82rem;color:var(--gris);margin:4px 0 0}
.erreur-champ{font-size:.85rem;color:var(--non);margin:4px 0 0}
.erreur-champ button{font:inherit;color:var(--violet);background:none;border:0;padding:0 4px;text-decoration:underline;cursor:pointer}
.type-voyage{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.type-voyage label{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--trait-champ);cursor:pointer;font-size:.9rem;font-weight:600}
.type-voyage input{accent-color:var(--violet)}
.type-voyage label:has(input:checked){border-color:var(--violet);background:var(--violet-doux)}
/* Suggestions d'aéroports */
.suggestions{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;background:var(--carte);border:1px solid var(--trait-champ);border-radius:12px;box-shadow:var(--ombre);max-height:300px;overflow:auto}
.suggestions li{padding:9px 10px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}
.suggestions li[aria-selected="true"],.suggestions li:hover{background:var(--violet-doux)}
.suggestions li small{color:var(--gris)}
/* Options : voyageurs, animaux, bagages */
.options-ligne{display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-top:12px}
@media (max-width:700px){.options-ligne{grid-template-columns:1fr}}
.champ-option{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;text-align:left}
.champ-option[aria-expanded="true"]{border-color:var(--violet);background:var(--violet-doux)}
.champ-option::after{content:"";width:8px;height:8px;border-right:2px solid var(--gris);border-bottom:2px solid var(--gris);transform:rotate(45deg);flex:none;margin-top:-4px}
.champ-option[aria-expanded="true"]::after{transform:rotate(-135deg);margin-top:4px}
.volet{border:1px solid var(--trait);border-radius:14px;padding:12px 14px;margin-top:12px;background:var(--fond)}
.volet h3{margin:0 0 4px;font-size:1rem}
.compteur{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}
.compteur .txt small{display:block;color:var(--gris);font-size:.82rem}
.pm{display:flex;align-items:center;gap:10px}
.pm button{width:40px;height:40px;border-radius:50%;border:1px solid var(--trait-champ);background:var(--carte);color:var(--encre);font-size:1.2rem;cursor:pointer;line-height:1}
.pm button:hover{border-color:var(--violet)}
.pm output{min-width:20px;text-align:center;font-weight:700}
.sous-liste{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 8px}
.sous-liste .champ{width:220px;max-width:100%}
.options{display:flex;flex-wrap:wrap;gap:8px}
.options label{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--trait-champ);border-radius:12px;cursor:pointer;font-size:.95rem}
.options label:has(input:checked){border-color:var(--violet);background:var(--violet-doux)}
.options input{accent-color:var(--violet)}
fieldset{border:0;margin:0;padding:0;min-width:0}
.ecart-haut{margin-top:12px}
legend{font-size:.8rem;font-weight:700;color:var(--gris);margin-bottom:6px;padding:0}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
/* Je propose */
.choix-propose{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.porte{background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);padding:18px;text-decoration:none;color:var(--encre);display:flex;flex-direction:column;gap:6px}
.porte:hover{border-color:var(--violet)}
.porte .icone{width:40px;height:40px;border-radius:12px;background:var(--violet-doux);display:grid;place-items:center;color:var(--violet)}
.porte .icone svg{width:22px;height:22px}
.porte h3{margin:4px 0 0;font-size:1.1rem}
.porte p{margin:0;color:var(--gris)}
/* Résultats */
#resultats,#resultats-veh{scroll-margin-top:76px;margin-bottom:40px}
#titre-veh{font-size:1.3rem;letter-spacing:-.02em;margin:0 0 8px}
#titre-veh:focus{outline:none}
#titre-res{font-size:1.3rem;letter-spacing:-.02em;margin:0 0 8px}
#titre-res:focus{outline:none}
.resume-recherche{background:var(--violet-doux);border:1px solid var(--violet-trait);border-radius:14px;padding:12px 16px;margin-bottom:16px}
.carte{background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);padding:18px;box-shadow:var(--ombre);margin-bottom:16px}
.carte h3{margin:0 0 4px;font-size:1.1rem}
.carte p.mini{margin:0 0 12px;color:var(--gris);font-size:.92rem}
.alerte{border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:.95rem}
.alerte.att{background:var(--att-fond);color:var(--att)}
.alerte.non{background:var(--non-fond);color:var(--non)}
.alerte a{color:inherit}
.alerte button{margin-top:8px}
.liens-prix{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.lien-comp{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--trait-champ);border-radius:12px;text-decoration:none;color:var(--encre)}
.lien-comp:hover{border-color:var(--violet)}
.lien-comp b{display:block}
.lien-comp small{color:var(--gris);display:block}
.lien-comp .fl{margin-left:auto;color:var(--violet);font-weight:800}
.etapes-suite{margin:0;padding-left:20px}
.etapes-suite li{margin-bottom:4px}
.filtre-cies{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.puce{border:1px solid var(--trait-champ);background:var(--carte);color:var(--encre);border-radius:999px;padding:6px 12px;font:inherit;font-size:.9rem;cursor:pointer}
.puce[aria-pressed="true"]{background:var(--violet);border-color:var(--violet);color:var(--sur-violet)}
.cie{border:1px solid var(--trait);border-radius:14px;margin-bottom:10px}
.cie summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;border-radius:14px}
.cie summary::-webkit-details-marker{display:none}
.cie summary:focus-visible{outline-offset:-3px}
.cie .code{font-weight:800;font-size:.8rem;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--violet-doux);color:var(--violet);flex:none}
.cie .nom{font-weight:700}
.cie .sous{color:var(--gris);font-size:.88rem}
.badge{margin-left:auto;font-size:.78rem;font-weight:800;padding:4px 10px;border-radius:999px;white-space:nowrap}
.b-ok{background:var(--ok-fond);color:var(--ok)}
.b-att{background:var(--att-fond);color:var(--att)}
.b-non{background:var(--non-fond);color:var(--non)}
.cie .detail{padding:2px 14px 14px 62px;font-size:.93rem}
@media (max-width:520px){.cie .detail{padding-left:14px}}
.cie .detail dl{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;margin:0}
@media (max-width:520px){.cie .detail dl{grid-template-columns:1fr}.cie .detail dt{margin-top:6px}}
.cie .detail dt{color:var(--gris);font-weight:600}
.cie .detail dd{margin:0}
.src{font-size:.82rem;color:var(--gris)}
.note-bas{font-size:.85rem;color:var(--gris);margin:10px 0 0}
details.regles-sans-animal summary{cursor:pointer;font-weight:700}
.regles-sans-animal .dedans{margin-top:12px}
.champ.champ-tri{max-width:260px;margin-bottom:12px}
textarea#annonce,textarea#annonce-veh{width:100%;min-height:140px;font:inherit;font-size:.92rem;padding:10px;border-radius:12px;border:1px solid var(--trait-champ);background:var(--fond);color:var(--encre)}
/* Appâts */
#appats{display:flex;flex-direction:column}
.titre-appats{font-size:1.2rem;letter-spacing:-.02em;margin:8px 0 12px}
.appats{margin-bottom:28px}
.grille-appats{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.appat{display:flex;flex-direction:column;gap:4px;text-align:left;font:inherit;color:var(--encre);background:var(--carte);border:1px solid var(--trait);border-radius:16px;padding:16px;text-decoration:none;cursor:pointer}
.appat:hover{border-color:var(--violet)}
.appat .trajet{font-weight:800;font-size:1.05rem}
.appat .quand{color:var(--gris);font-size:.92rem}
.appat .cta{margin-top:8px;color:var(--violet);font-weight:700;font-size:.92rem}
/* Aide */
.page-titre{padding:28px 0 12px}
.page-titre h1{font-size:clamp(1.6rem,4vw,2.2rem);letter-spacing:-.03em;margin:0 0 6px}
.page-titre p{color:var(--gris);margin:0}
.faq details{background:var(--carte);border:1px solid var(--trait);border-radius:14px;padding:14px 16px;margin-bottom:10px}
.faq summary{font-weight:700;cursor:pointer}
.faq p{color:var(--gris);margin:8px 0 0}
section.vue{display:none}
section.vue.active{display:block}
footer.bas{border-top:1px solid var(--trait);padding:24px 0 96px;color:var(--gris);font-size:.9rem}
footer.bas .liens{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px}
footer.bas a{color:var(--gris)}
/* Vols (version 4, 25.10.2026) */
.entete-vols{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.entete-vols h3{margin:0}
.filtres-vols{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;margin-bottom:14px}
.case{display:flex;align-items:center;gap:8px;font-size:.92rem;padding:8px 0;cursor:pointer}
.case input{accent-color:var(--violet);width:18px;height:18px}
.vol{border:1px solid var(--trait-champ);border-radius:14px;padding:14px;margin-bottom:12px}
.vol-haut{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.prix{font-size:1.35rem;font-weight:800}
.vol-haut .badge{margin-left:auto}
.jambe{display:grid;grid-template-columns:56px 1fr;gap:2px 10px;padding:6px 0;border-top:1px solid var(--trait)}
.j-titre{grid-row:span 2;color:var(--gris);font-weight:700;font-size:.85rem}
.j-info{color:var(--gris);font-size:.88rem}
.vol-petit{font-size:.86rem;color:var(--gris);margin:6px 0 0}
.offres{margin-top:10px;display:grid;gap:8px}
.prix-offre{font-weight:800;white-space:nowrap}
.chargement{color:var(--gris);padding:20px 0;text-align:center}
.jours{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px}
.jour{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--trait-champ);background:var(--carte);color:var(--encre);border-radius:10px;padding:8px 10px;font:inherit;font-size:.82rem;cursor:pointer;min-width:84px}
.jour b{font-size:.9rem}
.jour.moins-cher{border-color:var(--ok);background:var(--ok-fond)}
.jour.actuel{outline:2px solid var(--violet)}
details#carte-cies > summary{cursor:pointer;font-weight:700}
#carte-cies .dedans{margin-top:12px}
/* Véhicule en trois temps (25.10.2026) */
.etape-veh{margin-bottom:6px}
.etape-veh legend,.lbl-etape{font-size:.85rem;font-weight:800;color:var(--encre);margin:0 0 8px}
/* Contact (25.10.2026) */
.formulaire{max-width:640px}
.formulaire .champ{margin-bottom:14px}
.formulaire textarea{width:100%;min-height:160px;font:inherit;padding:11px 12px;border-radius:12px;border:1px solid var(--trait-champ);background:var(--fond);color:var(--encre)}
.formulaire .pot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.formulaire .note-bas{margin-top:12px}
.dit{border-radius:12px;padding:12px 14px;margin:0 0 16px;font-weight:600}
.dit.ok{background:var(--ok-fond);color:var(--ok)}
.dit.non{background:var(--non-fond);color:var(--non)}
