/* ==========================================================================
   Aus-Visa.org — Thème Bootstrap 5 (v2, design retravaillé)
   Identité : bleu #1d4678, dégradé hero #254778→#3995C1, Roboto.
   Signature : liseré dégradé aux couleurs du logo sous les titres de section.
   ========================================================================== */

/* --- Polices --------------------------------------------------------------- */
@font-face { font-family:'Roboto'; font-style:normal; font-weight:300; font-display:swap;
  src:url('https://staticausvisaorg.b-cdn.net/assets/fonts/roboto-v20-latin-300.woff2') format('woff2'); }
@font-face { font-family:'Roboto'; font-style:normal; font-weight:400; font-display:swap;
  src:url('https://staticausvisaorg.b-cdn.net/assets/fonts/roboto-v20-latin-regular.woff2') format('woff2'); }
@font-face { font-family:'Roboto'; font-style:normal; font-weight:500; font-display:swap;
  src:url('https://staticausvisaorg.b-cdn.net/assets/fonts/roboto-v20-latin-500.woff2') format('woff2'); }
@font-face { font-family:'Roboto'; font-style:normal; font-weight:700; font-display:swap;
  src:url('https://staticausvisaorg.b-cdn.net/assets/fonts/roboto-v20-latin-700.woff2') format('woff2'); }

/* --- Variables -------------------------------------------------------------- */
:root {
  --av-blue:       #1d4678;
  --av-blue-dark:  #254778;
  --av-blue-light: #3995c1;
  --av-ink:        #2b3440;
  --av-muted:      #5c6670;
  --av-footer-bg:  #3e4551;
  --av-radius:     .75rem;
  --av-shadow-sm:  0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.08);
  --av-shadow-md:  0 4px 10px rgba(29,70,120,.08), 0 12px 32px rgba(29,70,120,.10);
  --av-shadow-lg:  0 12px 24px rgba(16,24,40,.14), 0 24px 56px rgba(29,70,120,.16);
  --av-gradient:   linear-gradient(90deg,#fcc33f 0%,#c1292e 38%,#3b9bc7 72%,#254778 100%);
  --bs-body-font-family: 'Roboto', -apple-system, 'Segoe UI', Arial, sans-serif;
  --bs-primary: #1d4678;
  --bs-primary-rgb: 29,70,120;
  --bs-link-color: #1d4678;
  --bs-link-color-rgb: 29,70,120;
  --bs-link-hover-color: #16365d;
  --bs-link-hover-color-rgb: 22,54,93;
}

body { font-family:var(--bs-body-font-family); color:var(--av-ink); overflow-x:hidden;
  -webkit-font-smoothing:antialiased; }

.text-blue { color:var(--av-blue) !important; }

/* --- Typographie : hiérarchie calibrée (titres plus discrets qu'en BS5 brut) */
.hero-title { font-size:1.45rem; font-weight:700; line-height:1.3; letter-spacing:-.01em; }
.section-title {
  font-size:1.3rem; font-weight:600; line-height:1.35; color:var(--av-blue);
  position:relative; padding-bottom:.65rem; margin-bottom:1rem;
}
.section-title::after {
  content:''; position:absolute; left:0; bottom:0;
  width:56px; height:3px; border-radius:2px; background:var(--av-gradient);
}
.section-title.text-center-line::after { left:50%; transform:translateX(-50%); }
.card-title-sm { font-size:1.15rem; font-weight:600; }
@media (max-width:575.98px){ .hero-title{font-size:1.3rem;} .section-title{font-size:1.2rem;} }

p, li { color:var(--av-ink); }
.text-small { font-size:.925rem; }
.text-small p:last-child { margin-bottom:0; }
.section-eyebrow { font-size:.78rem; letter-spacing:.1em; font-weight:500; }

/* --- Boutons ----------------------------------------------------------------- */
.btn-primary {
  --bs-btn-bg: var(--av-blue);
  --bs-btn-border-color: var(--av-blue);
  --bs-btn-hover-bg: #16365d;
  --bs-btn-hover-border-color: #16365d;
  --bs-btn-active-bg: #122c4d;
  --bs-btn-active-border-color: #122c4d;
  --bs-btn-focus-shadow-rgb: 29,70,120;
  background-image: linear-gradient(160deg,#2a5a97 0%, #1d4678 60%);
  box-shadow: 0 6px 16px rgba(29,70,120,.28);
  transition: transform .18s ease, box-shadow .18s ease;
}
.btn-primary:hover { transform:translateY(-1px); box-shadow:0 10px 22px rgba(29,70,120,.34); }
.btn-primary:active { transform:none; }

/* --- Header ------------------------------------------------------------------ */
.navbar { --bs-navbar-padding-y:.55rem; }
.navbar .logo { width:200px; height:40px; }
.navbar .nav-link { color:#49515a; font-size:.95rem; }
.navbar .nav-link:hover, .navbar .nav-link:focus { color:var(--av-blue); }
.dropdown-menu { border:0; border-radius:.6rem; box-shadow:var(--av-shadow-md); padding:.4rem; }
.dropdown-item { border-radius:.4rem; padding:.5rem .85rem; font-size:.93rem; }
.dropdown-item:hover { background:#eef3f9; color:var(--av-blue); }
.dropdown-item:active { background:var(--av-blue); color:#fff; }

/* --- Hero -------------------------------------------------------------------- */
.intro {
  background: linear-gradient(40deg,var(--av-blue-dark),var(--av-blue-light));
  min-height:200px; display:flex; align-items:flex-end;
}
@media (min-width:576px){
  .intro {
    background: linear-gradient(rgba(10,25,47,.10),rgba(10,25,47,.02)),
      url('https://staticausvisaorg.b-cdn.net/assets/img/back-medium.jpg') no-repeat center center;
    background-size:cover; min-height:250px;
  }
}
@media (min-width:1200px){
  .intro {
    background: linear-gradient(rgba(10,25,47,.10),rgba(10,25,47,.02)),
      url('https://staticausvisaorg.b-cdn.net/assets/img/back.jpg') no-repeat center center;
    background-size:cover;
  }
}
.hero-card { border:0; border-radius:1rem; box-shadow:var(--av-shadow-lg);
  background:rgba(255,255,255,.97); }
.hero-card .card-body { padding:1.15rem 1.25rem; }
@media (min-width:768px){ .hero-card .card-body { padding:1.35rem 1.6rem; } }

/* --- Sections ----------------------------------------------------------------- */
.section-alt { background-image:linear-gradient(120deg,#fdfbfb 0%,#ebedee 100%); }
main section { padding-top:3rem; padding-bottom:3rem; }
@media (min-width:768px){ main section { padding-top:3.5rem; padding-bottom:3.5rem; } }
/* Zone hero : padding vertical réduit */
main section.intro { padding-top:2.5rem; padding-bottom:2.5rem; }
@media (max-width:575.98px){ main section.intro { padding-top:1.1rem; padding-bottom:1.1rem; } }
main section:last-of-type { padding-bottom:2rem; }

/* --- Cards visas / assurances (aérées) ---------------------------------------- */
.card-link-block {
  cursor:pointer; border:0; border-radius:var(--av-radius);
  box-shadow:var(--av-shadow-sm);
  transition:transform .22s ease, box-shadow .22s ease;
}
.card-link-block:hover { transform:translateY(-3px); box-shadow:var(--av-shadow-md); }
.card-link-block .card-body { padding:1.75rem; }
@media (min-width:768px){ .card-link-block .card-body { padding:2rem; } }
.card-link-block .zoom-img { overflow:hidden; border-radius:.6rem; }
.card-link-block .zoom-img img { transition:transform .4s ease; width:100%; height:auto; display:block; }
.card-link-block:hover .zoom-img img { transform:scale(1.05); }
.card-link-block .card-title a { text-decoration:none; }
.card-visa-row + .card-visa-row { margin-top:1.75rem; }

/* Cards assurances : image en tête, arrondis harmonisés */
.card-link-block .card-img-top { border-radius:var(--av-radius) var(--av-radius) 0 0; }
.card-link-block.h-100 .zoom-img { border-radius:var(--av-radius) var(--av-radius) 0 0; }

/* --- Image "affiche visa" : hauteur contenue + cadre intégré --------------------- */
.visa-poster {
  max-height:250px; width:auto;
  background:#fff; border:6px solid #fff; outline:1px solid #e4eaf1;
  border-radius:.6rem; box-shadow:var(--av-shadow-md);
}

/* --- Encadré note --------------------------------------------------------------- */
.note {
  padding:1rem 1.25rem; border-left:4px solid var(--av-blue);
  border-radius:.5rem; background:#eef5fc; color:#20344d;
}

/* --- Tableau d'informations (aéré, lisible) -------------------------------------- */
.info-table-wrap { background:#fff; border-radius:var(--av-radius);
  box-shadow:var(--av-shadow-sm); overflow:hidden; }
.info-table { margin:0; }
.info-table th, .info-table td { padding:.8rem 1.1rem; vertical-align:top; border:0; }
.info-table tr + tr th, .info-table tr + tr td { border-top:1px solid #eef1f4; }
.info-table th { color:var(--av-blue); font-weight:600; font-size:.9rem;
  white-space:nowrap; width:38%; background:#f8fafc; }
.info-table td { font-size:.925rem; color:var(--av-ink); }

/* --- Façade YouTube (hauteur contenue, ne déborde plus) --------------------------- */
.yt-facade {
  position:relative; cursor:pointer; border-radius:var(--av-radius); overflow:hidden;
  box-shadow:var(--av-shadow-md); background:#000;
  width:100%; height:240px;
}
@media (min-width:768px){ .yt-facade { height:275px; } }
.yt-facade img { width:100%; height:100%; object-fit:cover; opacity:.92; transition:opacity .25s, transform .4s ease; }
.yt-facade:hover img { opacity:1; transform:scale(1.03); }
.yt-facade .play {
  position:absolute; inset:0; margin:auto; width:68px; height:48px;
  background:rgba(23,35,34,.78); border-radius:12px;
  display:flex; align-items:center; justify-content:center; transition:background .25s;
}
.yt-facade:hover .play { background:#f00; }
.yt-facade .play::after { content:''; border-style:solid; border-width:11px 0 11px 19px;
  border-color:transparent transparent transparent #fff; }
.yt-facade iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* --- Avis : cartes témoignage avec avatar initiales -------------------------------- */
.review-card { border:0; border-radius:var(--av-radius); box-shadow:var(--av-shadow-sm);
  transition:transform .22s ease, box-shadow .22s ease; }
.review-card:hover { transform:translateY(-2px); box-shadow:var(--av-shadow-md); }
.review-card .card-body { padding:1.5rem 1.6rem; }
.review-avatar {
  width:42px; height:42px; border-radius:50%; flex:0 0 42px;
  background:linear-gradient(135deg,var(--av-blue-light),var(--av-blue));
  color:#fff; font-weight:600; font-size:.95rem;
  display:flex; align-items:center; justify-content:center;
}
.star { color:#f5b301; font-size:.95rem; letter-spacing:2px; }
.review-text { font-size:.925rem; color:var(--av-ink); }

/* --- Sélecteur Tom Select : rendu 2 lignes aux couleurs du thème -------------------- */
/* Le wrapper hérite des classes .form-select du <select> : on neutralise le
   style Bootstrap (flèche + padding) qui s'affichait en dehors du contrôle. */
.ts-wrapper.form-select, .ts-wrapper.form-select-lg {
  padding:0; border:0; background:none; box-shadow:none;
}
/* Chevron custom, dessiné dans le champ */
.ts-wrapper .ts-control {
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%235c6670' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat;
  background-position:right .95rem center;
  background-size:14px 10px;
  padding-right:2.6rem !important;
}
.ts-wrapper.dropdown-active .ts-control {
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%231d4678' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 11-6-6-6 6'/%3e%3c/svg%3e");
}
.ts-wrapper .ts-control {
  border:1px solid #ced4da; border-radius:.5rem; box-shadow:none;
  font-size:1rem; display:flex; align-items:center;
}
/* Hauteur FIXE identique aux .form-control (les drapeaux ne débordent plus) */
.ts-wrapper:not(.ts-lg) .ts-control {
  height:calc(2.4rem + 2px); padding-top:0; padding-bottom:0;
  padding-left:.75rem; overflow:hidden;
}
.ts-wrapper .ts-control > div { display:flex; align-items:center; }
.ts-wrapper .ts-control .ts-flag { flex:0 0 auto; }
/* Version large (sélecteur de la homepage) */
.ts-wrapper.ts-lg .ts-control { min-height:3.9rem; padding:.55rem 1rem; border-radius:.55rem; }
.ts-wrapper .ts-control input { font-size:1rem; }
.ts-wrapper .ts-control input::placeholder { color:#6c757d; opacity:1; }
.ts-wrapper.focus .ts-control {
  border-color:var(--av-blue-light);
  box-shadow:0 0 0 .22rem rgba(57,149,193,.18);
}
.ts-wrapper { width:100%; }
.ts-wrapper.ts-invalid .ts-control { border-color:#dc3545; }
.ts-wrapper.ts-invalid.focus .ts-control { box-shadow:0 0 0 .22rem rgba(220,53,69,.15); }
/* Message d'erreur : texte simple, sans fond ni décalage de mise en page */
.needs-validation .invalid-feedback { background:none; padding:0; margin-top:.35rem; }
/* Sélecteurs doublés (.ts-wrapper .ts-dropdown) : priorité garantie sur le CSS
   vendor de Tom Select, pour TOUS les selects du site (pays, simples, 2 lignes) */
.ts-dropdown, .ts-wrapper .ts-dropdown {
  border:0; border-radius:.6rem; box-shadow:var(--av-shadow-md);
  margin-top:6px; overflow:hidden; font-size:1rem;
}
.ts-dropdown-content, .ts-wrapper .ts-dropdown-content { max-height:360px; }
.ts-dropdown .option, .ts-wrapper .ts-dropdown .option {
  padding:.95rem 1.15rem;            /* espacement haut/bas généreux */
  line-height:1.4; font-size:1rem;
  border-bottom:1px solid #f2f5f8;   /* fine séparation entre options */
}
.ts-dropdown .option:last-child, .ts-wrapper .ts-dropdown .option:last-child { border-bottom:0; }
.ts-dropdown .active, .ts-wrapper .ts-dropdown .active { background:#eef3f9; color:var(--av-blue); }
.ts-opt-title { font-weight:500; color:var(--av-ink); line-height:1.3; font-size:1rem; }
.ts-opt-sub { font-size:.875rem; color:var(--av-muted); line-height:1.25; margin-top:3px; }
.ts-dropdown .active .ts-opt-title { color:var(--av-blue); }
.ts-item-title { font-weight:500; }
.ts-item-sub { font-size:.83rem; color:var(--av-muted); margin-left:.5rem; }

/* --- Footer -------------------------------------------------------------------------- */
.site-footer { background-color:var(--av-footer-bg); color:rgba(255,255,255,.85); }
.site-footer a { color:#fff; text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.site-footer .logo { width:200px; height:40px; }
.site-footer p { color:rgba(255,255,255,.92); font-size:.88rem; }
.site-footer h3 { letter-spacing:.02em; }
.site-footer ul li { margin-bottom:.45rem; font-size:.93rem; }
.site-footer .footer-copyright { background-color:rgba(0,0,0,.2); font-size:.88rem; }

/* --- Accordéon FAQ --------------------------------------------------------------------- */
.faq-card { border:0; border-radius:var(--av-radius); box-shadow:var(--av-shadow-sm); }
.faq-card .card-body { padding:1rem 1.75rem; }
.faq-accordion .accordion-item { border:0; border-bottom:1px solid #eef1f4; background:transparent; }
.faq-accordion .accordion-item:last-child { border-bottom:0; }
.faq-accordion .accordion-button {
  background:transparent; box-shadow:none; font-weight:500; font-size:1.02rem;
  color:var(--av-ink); padding:1.05rem .25rem;
}
.faq-accordion .accordion-button:not(.collapsed) { color:var(--av-blue); }
.faq-accordion .accordion-button:focus { box-shadow:none; }
.faq-accordion .accordion-body { padding:.25rem .25rem 1.25rem; font-size:.95rem; }

/* --- Logos partenaires ------------------------------------------------------------------- */
.partner-logo { filter:grayscale(1); opacity:.65; transition:filter .25s, opacity .25s; }
.partner-logo:hover { filter:none; opacity:1; }

/* --- Divers -------------------------------------------------------------------------------- */
a:focus-visible, button:focus-visible, .btn:focus-visible {
  outline:3px solid rgba(57,149,193,.55); outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  * { transition:none !important; animation:none !important; }
}

/* --- GTM noscript (remplace le style inline du snippet Google) ----------------------- */
.gtm-frame { display:none; visibility:hidden; }

/* ==========================================================================
   Pages TYPE / TYPE-URGENCE
   ========================================================================== */

/* Bandeau titre bleu dégradé (reprend l'identité de l'ancien .blue-gradient) */
.page-band {
  background:linear-gradient(40deg,var(--av-blue-dark),var(--av-blue-light));
  color:#fff; padding:1.1rem 0;
}
.page-band-title { font-size:1.3rem; font-weight:700; line-height:1.3; letter-spacing:-.01em; }
@media (max-width:575.98px){ .page-band-title { font-size:1.15rem; } }
.page-band-price {
  flex:0 0 auto; font-weight:500; white-space:nowrap;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.22);
  border-radius:2rem; padding:.3rem .95rem;
}

/* Bandes fines (intro grise, card formulaire) : padding réduit */
section.band-slim { padding-top:1.25rem; padding-bottom:1.25rem; }
@media (min-width:768px){ section.band-slim { padding-top:1.5rem; padding-bottom:1.5rem; } }
.band-slim p:last-child { margin-bottom:0; }

/* Card de contenu générique (remplace .card p-3 px-md-5 z-depth-1 de MDB) */
.content-card {
  background:#fff; border:1px solid #e3e9f0; border-radius:var(--av-radius); box-shadow:var(--av-shadow-sm);
  padding:1.5rem 1.25rem;
}
@media (min-width:768px){ .content-card { padding:2rem 2.5rem; } }
div.container > section.content-card { margin-top:1.5rem; }
.content-card hr { margin:1.75rem 0; color:#dfe5ec; opacity:1; }
.content-card .section-title { margin-top:.25rem; }
.content-card .h6.fw-semibold { color:var(--av-ink); }

/* Variante avertissement de l'encadré note */
.note-warn { border-left-color:#f5b301; background:#fff8e6; color:#5c4a12; }

/* Liste "services" avec coche (sans Font Awesome) */
.check-list { list-style:none; padding-left:0; margin:0; }
.check-list li {
  position:relative; padding-left:2rem; margin-bottom:.7rem; color:var(--av-muted);
}
.check-list li::before {
  content:''; position:absolute; left:0; top:.18rem; width:1.15rem; height:1.15rem;
  background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='8' cy='8' r='8' fill='%23e3eefb'/%3e%3cpath fill='none' stroke='%231d4678' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m4.5 8.2 2.3 2.3 4.7-5'/%3e%3c/svg%3e") no-repeat center/contain;
}

/* Espace bas de page : le dernier bloc de contenu garde ses distances
   avec le footer (pages type, urgence et toute page à venir en .container) */
main > .container:last-child { padding-bottom:2.5rem; }
main > .container:last-child > section.content-card:last-child,
main > .container:last-child > .content-card:last-child { margin-bottom:0; }

/* Grille des pays éligibles */
.flag-item { margin-bottom:.55rem; font-size:.925rem; color:var(--av-ink); }
.flag-item .flag-icon { margin-right:.55rem; border-radius:2px; box-shadow:0 0 0 1px rgba(16,24,40,.08); vertical-align:-2px; }

/* ==========================================================================
   WIZARD DE DEMANDE
   ========================================================================== */

/* Barre de progression : puces numérotées reliées */
.wizard-progress {
  display:flex; align-items:center; justify-content:center;
  gap:.4rem; padding:1.5rem 0 .25rem; flex-wrap:nowrap;
}
.wizard-chip {
  display:flex; align-items:center; gap:.5rem;
  background:none; border:0; padding:.3rem .5rem; border-radius:2rem;
  color:var(--av-muted); font-size:.85rem; font-weight:500; cursor:pointer;
}
.wizard-chip:disabled { cursor:default; opacity:.55; }
.wizard-chip-num {
  width:30px; height:30px; border-radius:50%; flex:0 0 30px;
  display:flex; align-items:center; justify-content:center;
  background:#e6ebf2; color:var(--av-muted); font-weight:600; font-size:.85rem;
  transition:background .25s, color .25s, box-shadow .25s;
}
.wizard-chip.active { color:var(--av-blue); }
.wizard-chip.active .wizard-chip-num {
  background:linear-gradient(160deg,#2a5a97,#1d4678); color:#fff;
  box-shadow:0 4px 10px rgba(29,70,120,.35);
}
.wizard-chip.done .wizard-chip-num { background:#dcead9; color:#2e7d32; }
.wizard-chip.done .wizard-chip-num::before { content:'✓'; }
.wizard-chip.done .wizard-chip-num { font-size:0; }
.wizard-chip.done .wizard-chip-num::before { font-size:.9rem; }
.wizard-connector { width:26px; height:2px; background:#dde3ea; flex:0 0 auto; border-radius:1px; }
@media (max-width:575.98px){
  .wizard-progress { gap:.15rem; }
  .wizard-connector { width:12px; }
}

/* Étapes */
.wizard-step { margin-top:1rem; }
.wizard-step .form-label { font-weight:500; font-size:.9rem; margin-bottom:.3rem; }
.req { color:#c1292e; }

/* Navigation bas de wizard */
/* .wizard-nav : voir la règle en bas (action large + retour discret) */

/* Questions Oui/Non */
.qa-list { margin-top:.25rem; }
.qa-row {
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.85rem 0; border-bottom:1px solid #eef1f4;
}
.qa-row:last-child { border-bottom:0; }
.qa-q { font-size:.925rem; color:var(--av-ink); }
.qa-a { flex:0 0 auto; }
.qa-a .invalid-feedback { text-align:right; white-space:nowrap; }
.qa-box {
  background:#f6f9fc; border:1px solid #e6edf5; border-radius:.6rem;
  padding:1rem 1.15rem; margin:.35rem 0 .85rem;
}
.onoff .btn { min-width:64px; font-weight:600; }
.onoff .btn-check:checked + .btn { box-shadow:0 4px 10px rgba(29,70,120,.25); }

/* Drapeaux dans Tom Select */
.ts-flag { width:24px; height:18px; margin-right:.7rem; border-radius:2px; box-shadow:0 0 0 1px rgba(16,24,40,.08); vertical-align:-3px; }
.ts-control .ts-flag { width:21px; height:16px; }
.ts-dropdown .optgroup-header, .ts-wrapper .ts-dropdown .optgroup-header {
  font-size:.78rem; text-transform:uppercase; letter-spacing:.06em;
  color:var(--av-muted); padding:.7rem 1.15rem .45rem; background:#f8fafc;
}

/* Inputs date : hauteur homogène */
input[type="date"].form-control { min-height:calc(2.4rem + 2px); }


/* --- Infobulles d'aide "?" -------------------------------------------------- */
.tip-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:17px; height:17px; padding:0; margin-left:.15rem;
  border:0; border-radius:50%; background:#e3eefb; color:var(--av-blue);
  font-size:.72rem; font-weight:700; line-height:1; cursor:help;
  vertical-align:2px;
}
.tip-icon:hover { background:var(--av-blue); color:#fff; }
.tooltip { --bs-tooltip-max-width:280px; --bs-tooltip-bg:#243447; font-size:.85rem; }
.tooltip .tooltip-inner { padding:.75rem 1rem; line-height:1.45; text-align:left; border-radius:.5rem; }

/* --- Champ date : icône calendrier + datepicker natif masqué ----------------- */
.date-group { position:relative; }
.date-group .date-pick {
  border:1px solid #ced4da; border-left:0; background:#f8fafc; color:var(--av-muted);
}
.date-group .date-pick:hover { background:#e9f1f9; color:var(--av-blue); }
.date-group .date-native {
  position:absolute; right:0; bottom:0; width:1px; height:1px;
  opacity:0; pointer-events:none; border:0; padding:0;
}
.date-group .js-date.is-invalid ~ .invalid-feedback { display:block; }

/* --- Boutons du wizard : plus imposants -------------------------------------- */
.wizard-nav .btn-lg,
.verif-actions .btn-lg { padding-top:.7rem; padding-bottom:.7rem; font-size:1.05rem; }
.wizard-nav [data-next].btn-lg,
.verif-actions [type="submit"].btn-lg { min-width:230px; }


/* --- Datepicker flatpickr : thème Aus-Visa ----------------------------------- */
.flatpickr-calendar { border-radius:.75rem; box-shadow:var(--av-shadow-md); border:0; font-family:var(--bs-body-font-family); }
.flatpickr-months { padding:.35rem 0 .15rem; }
.flatpickr-current-month { font-size:1rem; }
.flatpickr-day { border-radius:50%; font-size:.95rem; }
.flatpickr-day.selected, .flatpickr-day.selected:hover {
  background:linear-gradient(160deg,#2a5a97,#1d4678); border-color:transparent;
  box-shadow:0 4px 10px rgba(29,70,120,.35);
}
.flatpickr-day.today { border-color:var(--av-blue-light); }
.flatpickr-day.today:hover { background:#eef3f9; color:var(--av-blue); }
.flatpickr-day:hover { background:#eef3f9; }
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg { fill:var(--av-blue); }
.flatpickr-weekdays, span.flatpickr-weekday { background:transparent; color:var(--av-muted); }
.numInputWrapper span:hover { background:#eef3f9; }

/* ==========================================================================
   PAGES VÉRIFICATION & PAIEMENT
   ========================================================================== */

/* En-tête de section avec bouton Modifier */
.verif-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.verif-head .btn { flex:0 0 auto; margin-top:.15rem; }

/* Liste récapitulative en deux colonnes */
.verif-list { display:grid; grid-template-columns:220px 1fr; gap:.1rem 1.25rem; margin:0; }
.verif-list dt { font-size:.875rem; color:var(--av-muted); font-weight:500; padding:.45rem 0; }
.verif-list dd { margin:0; padding:.45rem 0; border-bottom:1px solid #f2f5f8; font-size:.95rem; color:var(--av-ink); }
.verif-list dt { border-bottom:1px solid #f2f5f8; }
.verif-list dt:nth-last-of-type(1), .verif-list dd:last-of-type { border-bottom:0; }
@media (max-width:575.98px){
  .verif-list { grid-template-columns:1fr; gap:0; }
  .verif-list dt { padding-bottom:0; border-bottom:0; }
  .verif-list dd { padding-top:.1rem; }
}

/* Barre d'actions de la vérification */
.verif-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1.5rem 0 0; }

/* Paiement : widget + récapitulatif */
.pay-widget-zone { position:relative; }
/* Widget Payline : bordure du bloc assortie à celle de l'onglet, rien d'autre */
.PaylineWidget.pl-layout-tab .pl-paymentMethods { border:1px solid #d3dae4 !important; box-shadow:none !important; }
.PaylineWidget .pl-pmContainer,
.PaylineWidget .pl-container { border:0 !important; box-shadow:none !important; }
/* Message de marque de carte : provoque un décalage du formulaire */
.PaylineWidget .pl-card-brand-message-container { display:none !important; }
.pay-summary .section-title { font-size:1.05rem; }
.pay-lines { list-style:none; margin:0; padding:0; }
.pay-lines li { display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; font-size:.925rem; color:var(--av-muted); }
.pay-lines .pay-total { border-bottom:0; border-top:2px solid #e6ebf2; margin-top:.25rem; padding-top:.75rem; font-weight:700; color:var(--av-ink); font-size:1rem; }

/* Widget Payline aux couleurs du site (reprend les surcharges historiques) */
.PaylineWidget * { font-family:var(--bs-body-font-family) !important; }
.PaylineWidget .pl-pay-btn {
  background:linear-gradient(160deg,#2a5a97,#1d4678) !important;
  border-radius:10em !important; margin-top:15px !important; border:0 !important;
  font-size:1rem !important; font-weight:600 !important; text-transform:uppercase;
  display:inline; width:100%; max-width:100%; padding:1rem 2.4rem;
}
.PaylineWidget .pl-pay-btn:hover { box-shadow:0 5px 14px rgba(29,70,120,.35) !important; }
.PaylineWidget .pl-pay-btn-container { width:100%; display:inline; }
.PaylineWidget.pl-layout-tab .pl-paymentMethods,
.PaylineWidget.pl-layout-tab .pl-tab.pl-active,
.PaylineWidget.pl-layout-tab .pl-pmContainer.pl-even,
.PaylineWidget.pl-container-default .pl-pmContainer { background-color:#fff; }
.PaylineWidget.pl-layout-tab .pl-tab { border:1px solid #d3dae4; }
.PaylineWidget .pl-form-container .pl-input, .PaylineWidget .pl-form-control { border:1px solid #ced4da !important; }
.PaylineWidget .pl-input-lg, .PaylineWidget .pl-paymentMethodLayout-view .pl-pmContainer .pl-input { border-radius:.4rem; }
.PaylineWidget.pl-container-default .pl-label-input { font-size:.9rem; color:#212529 !important; font-weight:600; }
.PaylineWidget .pl-message { font-weight:500; }
.PaylineWidget .pl-paymentMethodLayout-view .pl-pmContainer { padding-bottom:20px; }
.PaylineWidget .pl-paymentMethodLayout-view .pl-pmContainer .pl-paymentMethod-view { padding-left:2em; padding-right:2em; }
.PaylineWidget .pl-spinner { margin:0; }

/* ==========================================================================
   WIZARD MOBILE : barre de progression discrète à la place des puces
   ========================================================================== */
/* La barre à chips reste affichée sur mobile (pastilles seules, libellés
   masqués via d-none d-md-inline). L'ancienne barre linéaire est supprimée. */

/* Spinner de chargement du widget Payline */
.pay-loading { display:flex; align-items:center; gap:.75rem; padding:2.25rem .5rem; color:var(--av-muted); font-size:.95rem; }
.pay-loading[hidden] { display:none; }
.pay-spinner { width:26px; height:26px; flex:0 0 auto; border-radius:50%;
  border:3px solid #dbe4ee; border-top-color:var(--av-blue); animation:pay-spin .8s linear infinite; }
@keyframes pay-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .pay-spinner { animation-duration:1.6s; } }

/* Champ fantôme du datepicker (flatpickr découplé de la saisie) */
.date-proxy { position:absolute; width:1px; height:1px; padding:0; border:0; opacity:0; pointer-events:none; }

/* ==========================================================================
   WIZARD & VÉRIFICATION — ajustements mobile
   ========================================================================== */
/* Le statut "Enregistrement..." décale les boutons sur mobile */
@media (max-width:767.98px){
  .wizard-nav-status { display:none; }
}
/* Boutons harmonisés wizard / vérification (même gabarit partout) */
.verif-actions [type="submit"] { min-width:190px; }
@media (max-width:575.98px){
  /* Précédent : pastille picto seule pour tenir sur une ligne */
  .wizard-nav [data-prev],
  .verif-actions .btn-outline-secondary {
    width:48px; height:48px; padding:0; flex:0 0 auto;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:1.35rem; line-height:1;
  }
  .wizard-nav [data-next], .verif-actions [type="submit"] { min-width:0; flex:1 1 auto; }
}

/* Selects natifs mobile : texte réduit (home, type, wizard) */
@media (max-width:767.98px){
  select.form-select, select.form-select-lg { font-size:.95rem; }
}

/* Footer collé en bas de l'écran sur les pages courtes (ex. paiement mobile) */
body { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }
body > main { flex:1 0 auto; }
body > .site-footer { margin-top:auto; }

/* ==========================================================================
   PAGES DE CONTENU, FAQ 3.0, AVIS 3.0
   ========================================================================== */
/* Typographie des contenus riches issus de la base / de l'ancien site */
.content-rich p { margin-bottom:.9rem; }
.content-rich p:last-child { margin-bottom:0; }
.content-rich ul { padding-left:1.2rem; margin-bottom:.9rem; }
.content-rich li { margin-bottom:.35rem; }
.content-rich a { font-weight:500; }
.sidebar-sticky { position:sticky; top:90px; }

/* FAQ */
/* Accordéons dans une card : items sans contour, simple séparateur bas entre questions */
.faq-accordion .accordion-item,
.faq-accordion .accordion-item:first-of-type,
.faq-accordion .accordion-item:last-of-type,
.faq-accordion .accordion-item:not(:first-of-type) { border:0; border-bottom:1px solid #e9eef4; border-radius:0; overflow:visible; margin-bottom:0; background:transparent; }
.faq-accordion .accordion-item:last-of-type { border-bottom:0; }
.faq-accordion .accordion-button { font-weight:600; color:var(--av-ink); padding:1.05rem .25rem; background:transparent; box-shadow:none; }
.faq-accordion .accordion-button:not(.collapsed) { color:var(--av-blue); background:transparent; }
.faq-accordion .accordion-button:focus { box-shadow:none; outline:0; border:0; }
.faq-accordion .accordion-body { padding:.15rem .25rem 1.2rem; }
.faq-item.d-none-search { display:none; }
.faq-cta .section-title { display:flex; }

/* Avis */
.avis-band .page-band-title { font-size:1.35rem; }
.avis-score { font-size:2.6rem; font-weight:800; color:#fff; line-height:1;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35);
  border-radius:1rem; padding:.85rem 1.05rem; }
.avis-score-max { font-size:1.05rem; font-weight:600; opacity:.75; }
.star { color:#c9d4e0; font-size:1rem; letter-spacing:.05em; }
.star.on { color:#f5a623; }
.avis-stars-lg .star { font-size:1.25rem; }
.avis-avatar { width:38px; height:38px; flex:0 0 auto; border-radius:50%;
  background:linear-gradient(160deg,#2a5a97,#1d4678); color:#fff; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center; }
.avis-card { padding:1.1rem 1.2rem; }
.avis-texte { color:#3d4a58; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.avis-pagination .page-link { color:var(--av-blue); border-color:#e3e9f0; min-width:42px; text-align:center; border-radius:.5rem; margin:0 .15rem; }
.avis-pagination .page-item.active .page-link { background:var(--av-blue); border-color:var(--av-blue); color:#fff; }
.avis-afnor { color:rgba(255,255,255,.8); max-width:920px; }
.avis-afnor a { text-decoration:underline; }
.avis-badge-img { max-height:110px; width:auto; }
/* Colonne centrale : respiration + séparateurs verticaux sur desktop */
@media (min-width:992px){
  .avis-afnor-col { padding-left:2.5rem; padding-right:2.5rem;
    border-left:1px solid rgba(255,255,255,.25); border-right:1px solid rgba(255,255,255,.25); }
}
.avis-afnor { text-align:left; }
/* Mobile : bandeau avis compact */
@media (max-width:767.98px){
  .avis-band .container { padding-top:.25rem; padding-bottom:.25rem; }
  .avis-score { font-size:2rem; padding:.6rem .8rem; }
  .avis-band .page-band-title { font-size:1.15rem; }
  .avis-afnor { font-size:.82rem; }
}

/* Hero assurance : image de fond par contrat + carte garanties par-dessus */
.assurance-hero { color:#fff; padding:0; } /* neutralise le padding générique des sections : le hero colle à la nav */
/* Voile + image fusionnés sur le même élément : le mask fait exactement la taille de l'image */
.assurance-hero-mask { padding:1.25rem 0; background:linear-gradient(40deg,#254778,#3995C1); }
@media (min-width:992px){ .assurance-hero-mask { padding:1.75rem 0; } }
.assurance-hero-panel { background:rgba(20,32,48,.62); border-radius:.75rem; padding:1.15rem 1.4rem; }
.assurance-hero-panel, .assurance-hero-panel p, .assurance-hero-panel li, .assurance-hero-panel span { color:#fff; }
.assurance-hero-panel p:last-child { margin-bottom:0; }
.assurance-hero-title { font-size:1.6rem; font-weight:700; }
.assurance-hero-card { border:0; }
.intro-assurance-assistance .assurance-hero-mask { background:linear-gradient(rgba(10,25,45,.30),rgba(10,25,45,.30)), url("https://staticausvisaorg.b-cdn.net/assets/img/assurance/assurance-assistance-big.jpg") center center/cover no-repeat; }
.intro-cancellation-insurance .assurance-hero-mask,
.intro-assurance-annulation .assurance-hero-mask { background:linear-gradient(rgba(10,25,45,.30),rgba(10,25,45,.30)), url("https://staticausvisaorg.b-cdn.net/assets/img/assurance/assurance-annulation-big.jpg") center center/cover no-repeat; }
.intro-working-holiday-insurance .assurance-hero-mask { background:linear-gradient(rgba(10,25,45,.30),rgba(10,25,45,.30)), url("https://staticausvisaorg.b-cdn.net/assets/img/assurance/assurance-working-holiday-big.jpg") center center/cover no-repeat; }
.intro-assurance-working-holiday .assurance-hero-mask { background:linear-gradient(rgba(10,25,45,.30),rgba(10,25,45,.30)), url("https://staticausvisaorg.b-cdn.net/assets/img/assurance/assurance-working-holiday-big.jpg") center center/cover no-repeat; }

/* ==========================================================================
   COMMENT ÇA MARCHE — composition des étapes
   ========================================================================== */
.intro-lead { font-size:1.06rem; color:#3d4a58; max-width:860px; }
.steps-row { margin-top:.25rem; }
.step-card { display:flex; flex-direction:column; padding:1.5rem 1.4rem;
  transition:transform .18s ease, box-shadow .18s ease; }
.step-card:hover { transform:translateY(-4px); box-shadow:0 .75rem 1.75rem rgba(21,44,74,.12); }
.step-card .card-body { padding:0; display:flex; flex-direction:column; flex:1; }
.step-title { display:flex; align-items:center; gap:.7rem; font-size:1.08rem; font-weight:700;
  color:var(--av-blue); margin-bottom:1rem; }
.step-num { flex:0 0 auto; width:42px; height:42px; border-radius:50%;
  background:linear-gradient(140deg,#254778,#3995C1); color:#fff; font-weight:800; font-size:1.15rem;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(29,70,120,.28); }
.step-card .card-text { color:#46535f; font-size:.95rem; }
.step-card ul.card-text { padding-left:1.15rem; }
.step-card ul.card-text li { margin-bottom:.4rem; }
.step-img { margin-top:auto; padding-top:1rem; }

/* ==========================================================================
   PAGES DE CONTENU — habillage des blocs hérités de l'ancien site
   ========================================================================== */
/* Les anciennes cards converties : le card-body interne ne double plus le padding */
.content-card > .card-body { padding:0; }
.content-card > .card-body .card-title { color:var(--av-blue); font-weight:700; }

/* Blocs visa (image + contenu) : panneau carte, image arrondie, boutons alignés */
main section .row:has(> .visa-picture) {
  background:#fff; border:1px solid #e3e9f0; border-radius:var(--av-radius);
  box-shadow:var(--av-shadow-sm); padding:1.25rem 1.25rem; margin:1rem 0 1.75rem;
  align-items:center;
}
.visa-picture img { border-radius:.75rem; }
.visa-content h3 { color:var(--av-blue); }
.visa-content .row .btn { margin-top:.5rem; }

/* Listes de nationalités en colonnes : puces remplacées par des coches */
main section .row > [class*="col-md-3"] > ul { list-style:none; padding-left:0; margin-bottom:.5rem; }
main section .row > [class*="col-md-3"] > ul li { padding:.3rem 0 .3rem 1.45rem; position:relative; color:#46535f; }
main section .row > [class*="col-md-3"] > ul li::before {
  content:"✓"; position:absolute; left:0; top:.28rem; color:var(--av-cyan, #3995C1); font-weight:700;
}

/* Listes visas / assurances / affiliés */
.visa-list-card h3 a { color:var(--av-blue); }
.chapka-logo { max-height:170px; width:auto; }
.affiliate-card { padding:1.1rem; }

/* ==========================================================================
   LES DIFFÉRENTS VISAS — cartes éditoriales
   ========================================================================== */
.container-narrow { max-width:940px; }
.visa-type-card { position:relative; padding:1.75rem 1.9rem 1.6rem; overflow:hidden; }
.visa-type-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px;
  background:linear-gradient(180deg,#254778,#3995C1); }
.visa-type-card h3 { color:var(--av-blue); font-weight:700; font-size:1.25rem;
  padding-bottom:.7rem; margin-bottom:1rem; border-bottom:1px solid #edf1f6; }
.visa-type-card h4 { font-size:.98rem; font-weight:700; color:#2a5a97; margin:1.35rem 0 .5rem;
  display:flex; align-items:center; gap:.5rem; }
.visa-type-card h4::before { content:""; width:14px; height:3px; border-radius:2px;
  background:linear-gradient(90deg,#254778,#3995C1); flex:0 0 auto; }
.visa-type-card p { color:#46535f; }
.visa-type-card ul { padding-left:1.2rem; }
.visa-type-card ul li { margin-bottom:.45rem; color:#46535f; }
.visa-type-card ul li::marker { color:#3995C1; }
.visa-type-card .visa-cta { margin-top:.75rem; }
.visa-subgroup { font-size:.85rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#7a8794; margin:2.25rem 0 .25rem; }
@media (max-width:575.98px){ .visa-type-card { padding:1.25rem 1.1rem; } .visa-type-card .visa-cta { width:100%; } }

/* Pages d'authentification */
.auth-card { max-width:480px; margin:0 auto; padding:2rem 1.75rem; }
@media (max-width:575.98px){ .auth-card { padding:1.4rem 1.1rem; } }

/* ==========================================================================
   ESPACE CLIENT
   ========================================================================== */
.client-subnav { background:#fff; border-bottom:1px solid #e3e9f0; }
.client-tabs { gap:.25rem; flex-wrap:nowrap; overflow-x:auto; }
.client-tabs .nav-link { color:#5a6a7a; font-weight:600; padding:.85rem 1rem; border-bottom:3px solid transparent; white-space:nowrap; }
.client-tabs .nav-link.active { color:var(--av-blue); border-bottom-color:var(--av-blue); }
.client-tabs .nav-link:hover { color:var(--av-blue); }
.client-table thead th { background:#f6f9fc; color:#41506b; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid #e3e9f0; padding:.85rem 1rem; }
.client-table tbody td { padding:1rem; border-bottom:1px solid #eef2f7; }
.client-table tbody tr:last-child td { border-bottom:0; }
.client-progress { height:1.2rem; border-radius:.6rem; min-width:140px; }
.details-progress { width:280px; }
.auth-card-wide { max-width:760px; margin:0 auto; }
/* Messagerie : bulles */
.msg-thread { display:flex; flex-direction:column; gap:.75rem; max-height:460px; overflow-y:auto; scroll-behavior:smooth; background:#f6f9fc; border:1px solid #e6eef6; padding:1.1rem; }
.msg-thread::-webkit-scrollbar { width:8px; }
.msg-thread::-webkit-scrollbar-track { background:transparent; }
.msg-thread::-webkit-scrollbar-thumb { background:#c8d3e0; border-radius:4px; }
.msg-thread::-webkit-scrollbar-thumb:hover { background:#aebccb; }
.msg-row { display:flex; }
.msg-row.msg-client { justify-content:flex-end; }
.msg-row.msg-admin { justify-content:flex-start; }
.msg-bubble { max-width:76%; padding:.7rem .95rem; border-radius:1.1rem; background:#fff; border:1px solid #e3ebf3; box-shadow:0 1px 2px rgba(16,24,40,.05); }
.msg-admin .msg-bubble { border-bottom-left-radius:.35rem; }
.msg-client .msg-bubble { background:var(--av-blue); color:#fff; border-color:var(--av-blue); border-bottom-right-radius:.35rem; }
.msg-meta { font-size:.72rem; font-weight:600; opacity:.7; margin-bottom:.25rem; text-transform:uppercase; letter-spacing:.02em; }
.msg-client .msg-meta { color:rgba(255,255,255,.85); opacity:1; }
.msg-bubble > div:not(.msg-meta) { font-size:.95rem; line-height:1.45; word-break:break-word; }
.msg-file { display:inline-flex; align-items:center; gap:.25rem; margin-top:.5rem; font-size:.85rem; font-weight:600; padding:.25rem .6rem; border-radius:.5rem; background:rgba(29,70,120,.08); color:var(--av-blue); text-decoration:none; }
.msg-file:hover { background:rgba(29,70,120,.14); }
.msg-client .msg-file { color:#fff; background:rgba(255,255,255,.18); }
.msg-client .msg-file:hover { background:rgba(255,255,255,.28); }
.msg-empty { color:var(--av-muted); text-align:center; margin:auto; padding:2rem 1rem; }

/* Bande d'intro des pages type (desktop) : compacte */
.section-alt.band-slim { padding-top:1rem; padding-bottom:1rem; }

/* ============ Badge « En cours » (tunnel de commande actif) ============ */
.nav-encours { display:inline-flex; align-items:center; gap:.45rem; font-size:.82rem; font-weight:700;
  color:#1c9d5b; background:#e9f7f0; border:1px solid #bfe6d2; border-radius:50rem;
  padding:.38rem .85rem; text-decoration:none; white-space:nowrap; }
.nav-encours:hover { background:#dff2e8; color:#157a46; }
.nav-encours-dot { width:.55rem; height:.55rem; border-radius:50%; background:#1c9d5b;
  animation: encoursPulse 2.4s ease-in-out infinite; }
@keyframes encoursPulse {
  0%, 100% { opacity:1; box-shadow:0 0 0 0 rgba(28,157,91,.45); }
  50%      { opacity:.45; box-shadow:0 0 0 5px rgba(28,157,91,0); }
}

/* ============ Menu mobile : respiration et bloc compte détaché ============ */
@media (max-width: 991.98px) {
  .navbar-collapse { padding:0.75rem 0.25rem 1rem; }
  .navbar-collapse .nav-link { padding:.65rem .5rem; }
  .navbar-collapse .navbar-nav + .navbar-nav {
    margin-top:.85rem; padding-top:1rem; border-top:1px solid #e3e9f0;
  }
  .navbar-collapse .nav-item { margin-left:0 !important; }
  .navbar-collapse .btn.rounded-pill { display:block; width:100%; text-align:center;
    padding:.6rem 1rem; font-size:.95rem; }
  .navbar-collapse .nav-encours { display:flex; justify-content:center; margin-bottom:.6rem; }
  .navbar-toggler { border:1px solid #e3e9f0; border-radius:.5rem; padding:.45rem .6rem; }
  .navbar-toggler:focus { box-shadow:0 0 0 .18rem rgba(57,149,193,.25); }
}

/* ============ Page paiement : lien discret retour vérification ============ */
.pay-edit-link { display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem;
  font-size:.86rem; font-weight:600; color:#5a6a7a; text-decoration:none;
  border:1px solid #e3e9f0; border-radius:50rem; padding:.42rem .95rem; }
.pay-edit-link:hover { color:#1d4678; border-color:#1d4678; background:#f2f6fb; }
.pay-edit-link svg { flex:0 0 auto; }
.pay-edit-link-full { display:flex; width:100%; justify-content:center; margin-top:1rem; }
.pay-traveler { margin:0 0 1rem; padding:.7rem .9rem; background:#f6f9fc; border:1px solid #e3e9f0; border-radius:.6rem; text-align:center; }
.pay-traveler-name { font-weight:700; color:#1d3a5f; font-size:1rem; text-transform:uppercase; letter-spacing:.02em; }
.pay-traveler-pass { font-size:.86rem; color:#5a6a7a; margin-top:.15rem; }

/* ============ Page paiement : bloc de réassurance ============ */
.pay-trust { margin-top:1.5rem; background:#fff; border:1px solid #e3e9f0; border-radius:.85rem;
  padding:.5rem 1.4rem; }
.pay-trust-item { display:flex; gap:1rem; align-items:flex-start; padding:1.05rem 0; }
.pay-trust-item + .pay-trust-item { border-top:1px solid #f0f4f8; }
.pay-trust-icon { flex:0 0 auto; width:44px; height:44px; border-radius:12px; display:flex;
  align-items:center; justify-content:center; color:#1d4678;
  background:linear-gradient(135deg,#e8f0f9 0%,#e5f3fa 100%); }
.pay-trust-item strong { display:block; font-size:.95rem; color:#1d4678; margin-bottom:.15rem; }
.pay-trust-item span:not(.pay-trust-icon) { font-size:.86rem; line-height:1.55; color:#5a6a7a; }
@media (max-width:575.98px){ .pay-trust { padding:.25rem 1rem; } .pay-trust-icon { width:38px; height:38px; } }

/* Le select natif stylé garde la hauteur du widget (anti-décalage) */
select.js-two-line.form-select-lg { height:3.9rem; font-size:1.05rem; }

/* ============================================================
   FORMULAIRE PAGE UNIQUE — cards de section numérotées
   ============================================================ */
/* Espacement entre les cards de section sur la page formulaire */
.form-card { margin-bottom: 1.5rem; }
.form-card:last-child { margin-bottom: 0; }

/* En-tête de card : numéro + titre alignés */
.form-card-head {
  display: flex; align-items: center; gap: .85rem;
  margin-bottom: 1.4rem; padding-bottom: .9rem;
  border-bottom: 1px solid #eef2f7;
}
.form-card-head .section-title { padding-bottom: 0; margin-bottom: 0; }
.form-card-head .section-title::after { display: none; } /* l'accent est porté par le numéro */

/* Pastille numérotée : dégradé bleu de la marque */
.form-card-num {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.1rem; height: 2.1rem; border-radius: 50%;
  background: var(--av-gradient, linear-gradient(135deg,#1d4678,#2f6cb5));
  color: #fff; font-weight: 700; font-size: 1.05rem;
  box-shadow: 0 2px 6px rgba(29,70,120,.28);
}

@media (max-width: 575.98px) {
  .form-card-head { gap: .6rem; margin-bottom: 1.1rem; }
  .form-card-num { width: 1.8rem; height: 1.8rem; font-size: .95rem; }
}
/* Barre de tunnel partagée (vérification/paiement) — états indicatifs */
.tunnel-chip{cursor:default}
.tunnel-chip.is-active{color:var(--av-blue)}
.tunnel-chip.is-active .wizard-chip-num{background:var(--av-blue);color:#fff}
.tunnel-chip.is-done .wizard-chip-num{background:#dcead9;color:#2e7d32}
.tunnel-chip.is-todo{color:var(--av-muted);opacity:.55}
.tunnel-chip.is-todo .wizard-chip-num{background:#e6ebf2;color:var(--av-muted)}
.wizard-connector.is-done{background:#bcd8b8}

a.tunnel-chip{cursor:pointer;text-decoration:none;transition:opacity .15s ease}
a.tunnel-chip:hover{opacity:.75;text-decoration:none}
a.tunnel-chip:hover .wizard-chip-num{box-shadow:0 0 0 3px rgba(29,70,120,.12)}

.form-subtitle{font-size:1rem;font-weight:600;color:var(--av-blue);margin-bottom:.75rem;opacity:.85}

/* 1re étape (pas de bouton "Précédent") : "Continuer" centré et large. */


/* Vérification en 2 colonnes : réduire la largeur des labels dans les colonnes étroites */
.row .col-md-6 .verif-list{grid-template-columns:130px 1fr}
@media (max-width:767.98px){.row .col-md-6 .verif-list{grid-template-columns:1fr;gap:0}}

/* Barre de tunnel compacte sur mobile (remplace les pastilles) */
.tunnel-mini{margin:.35rem 0 .25rem}
.tunnel-mini-bar{height:5px;background:#e6ebf2;border-radius:3px;overflow:hidden}
.tunnel-mini-fill{display:block;height:100%;width:25%;border-radius:3px;background:linear-gradient(90deg,#254778,#3995c1);transition:width .3s ease}
.tunnel-mini-label{margin-top:.4rem;font-size:.85rem;font-weight:600;color:var(--av-blue);text-align:center}
@media (max-width:767.98px){.wizard-progress{display:none}}

/* Navigation du tunnel : action principale large + retour discret séparé.
   Le bouton d'action est toujours en haut, pleine largeur, bien visible.
   Le "Retour" est un lien discret en dessous, petite cible, pour éviter
   les clics accidentels quand on vise l'action principale. */
.wizard-nav,.verif-actions{display:flex;flex-direction:column;align-items:center;gap:.85rem;margin-top:1.5rem}
.wizard-main-btn{display:block;width:100%;max-width:440px;order:1}
.wizard-back-link{order:2;background:none;border:0;padding:.5rem 1rem;color:var(--av-muted);font-size:.9rem;font-weight:500;text-decoration:none;cursor:pointer;border-radius:2rem;transition:color .15s,background .15s}
.wizard-back-link:hover{color:var(--av-blue);background:#eef3f9}
.wizard-nav-status{order:3}

/* Séparation entre groupes de titres dans une même card : espacement mesuré
   et équilibré (au lieu du mt-4 qui créait trop d'espace au-dessus). */
.section-title--next{margin-top:1.75rem}

/* Le section-title a line-height:1.35 qui crée un demi-interligne au-dessus
   de la 1re ligne, rendant le haut de la card visuellement plus grand que le
   bas. On neutralise ce décalage sur le 1er titre de la card pour un padding
   haut/bas visuellement identique. */
.content-card>.section-title:first-child,
.content-card>.verif-head:first-child .section-title,
.content-card>.form-card-head:first-child{margin-top:-.15rem}

/* Espacement au-dessus de la première card, y compris quand elle est dans un
   <form> (pages demande/déclarations) et pas seulement enfant direct de
   .container (pages vérification/paiement). Uniformise le tunnel. */
.container > form > .form-card:first-of-type,
.container > form > .content-card:first-of-type{margin-top:1.5rem}

/* Sous-titres de la page vérification (adresse, CNI, etc.) en bleu. */
.verif-subtitle,
h3.verif-subtitle{color:var(--av-blue) !important}

/* Barre de progression mobile : 4 segments (option B).
   Étapes franchies = pleines (dégradé), étape courante = se remplit avec
   animation, étapes à venir = grises. */
.tunnel-seg-row{display:flex;gap:6px}
.tunnel-seg{flex:1;height:7px;border-radius:99px;background:#e6ebf2;overflow:hidden;position:relative}
.tunnel-seg.is-done{background:linear-gradient(90deg,#254778,#3995c1)}
.tunnel-seg.is-active::after{content:"";position:absolute;inset:0;width:60%;background:linear-gradient(90deg,#254778,#3995c1);border-radius:99px;animation:tunnelSegFill 1s cubic-bezier(.4,0,.2,1) forwards}
@keyframes tunnelSegFill{from{width:0}to{width:60%}}

/* Détection de l'autofill Chrome : on déclenche une animation nommée sur les
   champs remplis automatiquement, écoutée en JS pour fermer les dropdowns
   Tom Select restés ouverts. L'animation est invisible (aucun effet visuel). */
@keyframes onAutoFillStart { from {} to {} }
input:-webkit-autofill { animation-name: onAutoFillStart; }

/* ===================================================================== */
/*  Zone d'upload de la copie du passeport (espace client)               */
/* ===================================================================== */
.passeport-rules {
  background: #f4f8fc;
  border: 1px solid #dce7f2;
  border-radius: var(--av-radius);
  padding: .9rem 1.1rem;
  margin-bottom: 1.1rem;
}
.passeport-rules-title {
  font-weight: 700;
  color: var(--av-blue);
  font-size: .92rem;
  margin-bottom: .5rem;
}
.passeport-rules-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.passeport-rules-list li {
  position: relative;
  padding-left: 1.6rem;
  margin-bottom: .4rem;
  font-size: .88rem;
  color: var(--av-ink);
  line-height: 1.45;
}
.passeport-rules-list li:last-child { margin-bottom: 0; }
.passeport-rules-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .18rem;
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 50%;
  background: var(--av-blue-light);
  /* Petit check blanc dessiné en SVG encodé */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}
/* Zone de dépôt du fichier (label cliquable) */
.passeport-drop {
  display: flex;
  align-items: center;
  gap: .9rem;
  width: 100%;
  padding: 1.1rem 1.2rem;
  border: 2px dashed #b8cbe0;
  border-radius: var(--av-radius);
  background: #fbfdff;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.passeport-drop:hover,
.passeport-drop:focus-within {
  border-color: var(--av-blue-light);
  background: #f4f9fd;
  box-shadow: 0 0 0 .2rem rgba(57, 149, 193, .12);
}
.passeport-drop-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: #e7f1fa;
  color: var(--av-blue);
}
.passeport-drop-text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.passeport-drop-main {
  font-weight: 700;
  color: var(--av-blue);
  font-size: .95rem;
}
.passeport-drop-sub {
  font-size: .82rem;
  color: var(--av-muted);
}
.passeport-drop-filename {
  margin-left: auto;
  font-size: .85rem;
  font-weight: 600;
  color: #157347;
  max-width: 40%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.passeport-drop-input {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
@media (max-width: 575.98px) {
  .passeport-drop { flex-wrap: wrap; }
  .passeport-drop-filename { margin-left: 0; max-width: 100%; width: 100%; }
}

/* ===================================================================== */
/*  Page « Mon compte » : deux colonnes (infos + mot de passe)           */
/* ===================================================================== */
.account-grid > [class*="col-"] { display:flex; }
.account-grid .content-card { width:100%; }
.account-section-head {
  display:flex;
  align-items:center;
  gap:.6rem;
  padding-bottom:.9rem;
  margin-bottom:1.2rem;
  border-bottom:1px solid #e9eef4;
}
.account-section-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.4rem;
  height:2.4rem;
  border-radius:50%;
  background:#e7f1fa;
  color:var(--av-blue);
  flex:0 0 auto;
}
.account-section-title {
  font-size:1.15rem;
  font-weight:700;
  color:var(--av-blue);
  margin:0;
}

/* ===================================================================== */
/*  Page paiement épurée : petite ligne de sécurité sous le widget        */
/* ===================================================================== */
.pay-secure-note {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 1rem 0 0;
  padding: .7rem .9rem;
  font-size: .85rem;
  color: var(--av-muted);
  background: #f6f9fc;
  border: 1px solid #e6eef6;
  border-radius: .6rem;
  line-height: 1.4;
}
.pay-secure-note svg { flex: 0 0 auto; color: var(--av-blue); }

/* ===================================================================== */
/*  Champ « à compléter » : mise en évidence douce (nationalité non        */
/*  pré-remplie parce que le pays de naissance n'est pas dans la liste).    */
/* ===================================================================== */
.form-select.is-tofill,
.is-tofill .ts-control {
  border-color: #e0a800;
  background-color: #fff9e6;
  box-shadow: 0 0 0 .15rem rgba(224, 168, 0, .18);
}

/* ===================================================================== */
/*  Case CGV (déclarations) : bien visible pour éviter les oublis         */
/* ===================================================================== */
.cgv-box {
  margin-top: 1.5rem;
  padding: 1rem 1.1rem;
  background: #f6f9fc;
  border: 1px solid #d7e3ef;
  border-radius: .7rem;
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}
/* Annule le décalage natif de Bootstrap (.form-check padding-left +
   .form-check-input margin-left négatif) qui faisait sortir la case du
   cadre à gauche dans notre disposition en flex. */
.cgv-box.form-check { padding-left: 1.1rem; }
.cgv-box .form-check-input {
  width: 1.6rem;
  height: 1.6rem;
  margin-top: .1rem;
  margin-left: 0;
  flex: 0 0 auto;
  cursor: pointer;
  border-width: 2px;
  border-color: var(--av-blue, #1d4678);
}
.cgv-box .form-check-input:checked {
  background-color: var(--av-blue, #1d4678);
  border-color: var(--av-blue, #1d4678);
}
.cgv-box .form-check-label {
  cursor: pointer;
  font-size: .92rem;
  line-height: 1.45;
  padding-top: .15rem;
}
.cgv-box .invalid-feedback { margin-top: .35rem; }
/* Quand la case est invalide (non cochée à la soumission), on souligne le bloc. */
.cgv-box.cgv-error {
  border-color: #dc3545;
  background: #fdf2f3;
}

/* ===================================================================== */
/*  Anti-décalage (FOUC) des selects avant transformation Tom Select.     */
/*  Le select natif et le widget Tom Select doivent avoir EXACTEMENT la    */
/*  même hauteur, sinon le formulaire "saute" de ~2px au chargement quand  */
/*  Tom Select s'initialise. On aligne le natif sur le ts-control.         */
/* ===================================================================== */
select.js-country,
#wizardForm select.form-select:not(.ts-lg) {
  height: calc(2.4rem + 2px);
  padding-top: 0;
  padding-bottom: 0;
  box-sizing: border-box;
}
