/* AlloLib - mise en page pleine largeur (01/11/2026). Chargee EN DERNIER sur toutes les pages.
   Regle unique : conteneur pleine largeur, gouttiere fluide, grilles auto-adaptatives.
   Seuls les paragraphes de texte courant gardent ~70ch. */
:root{--pl:clamp(16px,4vw,64px);--pl-gap:clamp(16px,2.2vw,40px)}

/* ---- A. Conteneurs : plus de largeur fixe ---- */
body .enveloppe,.nv2 .enveloppe,.nv2 .wrap,.nv2 .container,.nv2 .wrap.narrow,.nv2 .wrap.sectors-intro,.nv2 .wrap.metier-depth__intro,.nv2 .enveloppe.legale{
  width:100%;max-width:none;margin-inline:0;padding-inline:var(--pl)}
.nv2 .wrap.narrow>*,.nv2 .wrap.sectors-intro>*,.nv2 .wrap.metier-depth__intro>*{max-width:none}
.nv2 .wrap.narrow>p,.nv2 .wrap.sectors-intro>p,.nv2 .wrap.metier-depth__intro>p{max-width:70ch}

/* ---- Blocs qui etaient plafonnes : ils prennent toute la place ---- */
.nv2 .offres,.nv2 .offres--une,.offres{max-width:none}
.nv2 .jalons,.jalons{max-width:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--pl-gap)}
.nv2 .form-clair,.form-clair{max-width:none}
.nv2 .confirmation,.confirmation{max-width:none}
.nv2 .limites,.limites{max-width:none}
.nv2 .section-head,.nv2 .section-heading{max-width:none}
.nv2 .section-head>p,.nv2 .section-heading>p{max-width:70ch}
.nv2 .hero-form{max-width:none}
.nv2 .barre-essai__duo{max-width:none}

/* FAQ : accordeon en colonnes sur grand ecran */
.nv2 .faq,.nv2-metier .faq,.faq{max-width:none}
@media (min-width:1100px){
  .nv2 .faq,.nv2-metier .faq,.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,96px);align-items:start}
}
@media (min-width:1900px){
  .nv2 .faq,.nv2-metier .faq,.faq{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Pages legales : texte en colonnes de lecture */
.nv2 .legale,.legale{max-width:none}
@media (min-width:1100px){
  .nv2 .legale,.legale{columns:2;column-gap:clamp(40px,5vw,96px)}
  .nv2 .legale .article,.legale .article{break-inside:avoid-column;max-width:none}
}
@media (min-width:1900px){.nv2 .legale,.legale{columns:3}}
.nv2 .legale .article,.article{max-width:none}
.nv2 .legale p,.nv2 .legale li{max-width:70ch}

/* Offre unique : carte a deux colonnes (prix a gauche, inclus a droite) */
@media (min-width:1000px){
  .nv2 .offres--une .offre{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);column-gap:clamp(32px,5vw,96px);align-content:start}
  .nv2 .offres--une .offre>*{grid-column:1}
  .nv2 .offres--une .offre>.offre__liste{grid-column:2;grid-row:1 / span 10;columns:2;column-gap:32px;align-self:start}
  .nv2 .offres--une .offre>.offre__liste li{break-inside:avoid}
  .nv2 .offres--une .offre>.btn{justify-self:start}
}

/* Tableaux : jamais plus larges que l ecran (defilement interne sur telephone) */
.cadre-tableau{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.cadre-tableau table{width:100%}
.nv2 .offres.offres--une{grid-template-columns:minmax(0,1fr);justify-content:stretch}

/* ---- B. Accueil ---- */
.tete,.flux,.tarif__fixe,.horaires,.barre-essai__duo{max-width:none}
.tete>.chapeau,.tete>p{max-width:70ch}
@media (min-width:960px){
  .hero__visuel{justify-self:end;width:min(100%,clamp(340px,30vw,540px))}
  .hero__grille{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(48px,6vw,120px)}
}
@media (min-width:2200px){html{font-size:112.5%}}

/* ---- C. Souscription : 2 colonnes sur PC (etape a gauche, offre a droite, collante) ---- */
.tun-lateral{display:none}
.nv2 .tun-tete,.nv2 .tun-intro,.nv2 .tun-jalons,.nv2 .tun-corps{padding-inline:var(--pl)}
@media (min-width:1000px){
  .nv2-tunnel{display:block;padding:0;min-height:100vh;background:var(--surface)}
  .nv2 .tun-carte{display:grid;grid-template-columns:minmax(0,1fr) clamp(340px,32vw,560px);grid-template-areas:"tete lat" "intro lat" "jalons lat" "pas lat" "corps lat";grid-template-rows:auto auto auto auto 1fr;
    max-width:none;min-height:100vh;border:0;border-radius:0;box-shadow:none;overflow:clip;background:var(--surface)}
  .nv2 .tun-carte::before{inset:0 0 auto 0}
  .nv2 .tun-tete{grid-area:tete;padding-top:28px}
  .nv2 .tun-intro{grid-area:intro}
  .nv2 .tun-jalons{grid-area:jalons}
  .nv2 .tun-pas{grid-area:pas;padding-inline:var(--pl)}
  .nv2 .tun-corps{grid-area:corps;padding-block:16px 48px}
  .nv2 .tun-carte>noscript{display:block;grid-area:corps}
  .nv2 .tun-lateral{display:block;grid-area:lat;background:#F4F7FB;border-left:1px solid var(--ligne);padding:clamp(24px,3vw,56px)}
  .nv2 .tun-lateral__in{position:sticky;top:clamp(16px,3vw,40px)}
  .nv2 .tun-lateral__titre{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-fonce);margin-bottom:14px}
  .nv2 .tun-lateral .tun-offre{margin-bottom:0}
  .nv2 .tun-ecran .tun-offre,.nv2 .tun-ecran .tun-formules{display:none}
  /* champs en 2 colonnes quand il y a la place */
  .nv2 .tun-ecran.show{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);align-content:start}
  .nv2 .tun-ecran.show>*{grid-column:1/-1}
  .nv2 .tun-ecran.show>.tun-champ{grid-column:auto}
  .nv2 .tun-duo{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .nv2 .tun-ecran .tun-sous,.nv2 .tun-ecran .tun-carte-note{max-width:70ch}
}

/* ---- D. Paiement ---- */
.pay-barre__in,.pay-etapes,.pay-main,.pay-pied__in{max-width:none;margin-inline:0;padding-inline:var(--pl)}
@media (min-width:900px){.pay-main{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,3vw,56px)}}
.pay-etapes{grid-template-columns:repeat(3,minmax(0,1fr))}

/* ---- D2. Espace client : pleine largeur (la carte de connexion reste centree) ---- */
.nv2-client .hero-grille,.nv2-client .offre-grille,.nv2-client .lead-grille,.nv2-client .urg-grille,.nv2-client .nv-offre{max-width:none}
.nv2-client .section-head{max-width:none}
.nv2-client .cartes{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.nv2-client .login-card{max-width:420px}
/* Fiche d'installation (ecran plein) */
#fi-ecran .fi-cadre{max-width:min(100%,1080px);margin-inline:auto}
#fi-ecran .fi-etat{text-align:left;max-width:min(100%,720px)}
@media (max-width:760px){#fi-ecran .fi-etat{text-align:center}}
#fi-ecran .fi-tete,#fi-ecran .fi-corps,#fi-ecran .fi-pied{padding-inline:var(--pl)}
#fi-ecran .fi-choix-liste{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
#fi-ecran .fi-champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px clamp(16px,2vw,32px)}
#fi-ecran .fi-champ:has(textarea){grid-column:1/-1}
#fi-ecran .fi-aide,#fi-ecran .fi-citation,#fi-ecran .fi-note,#fi-ecran .fi-merci p{max-width:70ch}
#fi-ecran .fi-pied-boutons{max-width:min(100%,720px)}

/* Souscription, telephone : la barre « Retour / Continuer » reste visible en bas de l'ecran */
.nv2 .tun-carte{overflow:clip}
@media (max-width:999px){
  .nv2 .js-on .tun-actions:not(.tun-actions--haut){position:sticky;bottom:0;z-index:5;margin-inline:calc(-1*var(--pl));padding:10px var(--pl) calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--ligne);box-shadow:0 -6px 16px rgba(11,26,46,.06)}
}

/* E. Telephone : cibles tactiles >= 44 px (pied de page et logo) */
@media (max-width:959px){
  .pied nav a,.pied li a,.nv2 .pied nav a,.nv2 .pied li a,.pay-pied nav a{display:inline-flex;align-items:center;min-height:44px}
  header .logo,.pied .logo{display:inline-flex;align-items:center;min-height:44px}
}

/* F. Restes de l'audit (01/11, soir) : boutons des pages d'entonnoir alignes sur l'accueil (pilule verte, contour pour le secondaire) */
:root:root:root .nv2 .btn--vif,:root:root:root .btn--vif{background:#0B7A6B;color:#fff;border-radius:999px;border:1.5px solid transparent;box-shadow:none;font-weight:650}
:root:root:root .nv2 .btn--vif:hover,:root:root:root .btn--vif:hover{background:#08655A;color:#fff;box-shadow:0 8px 20px rgba(11,122,107,.32)}
:root:root:root .nv2 .btn--sobre,:root:root:root .btn--sobre{border-radius:999px;border:1.5px solid #E3E9F0;background:transparent;color:#0B1A2E;font-weight:650}
:root:root:root .nv2 .btn--fantome,:root:root:root .btn--fantome{border-radius:999px;font-weight:650}
:root:root:root .btn-plein{background:#0B7A6B;border-radius:999px;box-shadow:none}
:root:root:root .btn-plein:hover{background:#08655A}

/* G. Longueur de ligne du texte courant plafonnee (~70 caracteres) ; blocs, cartes et grilles restent pleine largeur */
:root:root:root :is(p,li,dd,blockquote,figcaption):not(table *):not(.pied *):not(.entete *):not(.tiroir *){max-width:66ch}
:root:root:root :is(main,.page,article,section) :is(p,li,dd,blockquote)[style*="text-align:center"],
:root:root:root :is(.bandeau__lien,.offre__prix,.offre__ttc,.offre__cond,.legende,.ia-final p,.mention-grille,.centered-link,.final p,.sceau ~ p,.sous-offres,.ia-final,.ia-final *,.demande-recue :is(.chapeau,.demarrer-maintenant,.precision),.chapeau.centre,.demarrer-maintenant,.precision),:root:root:root .centre :is(p,li),:root:root:root .section-centre :is(p,li),:root:root:root .titre-centre :is(p,li),:root:root:root :is(p,li).centre{margin-inline:auto}

/* H. Champs de saisie a 16 px partout (evite aussi le zoom sur telephone) */
:root:root:root input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=submit]):not([type=button]),:root:root:root select,:root:root:root textarea{font-size:16px}
/* ---- CORRECTIONS 01/11 soir ---- */
/* Cibles tactiles : au moins 44 px sur telephone pour les listes de liens */
@media (max-width:1023px){
  .sommaire-legal li a{display:flex;align-items:center;min-height:44px;box-sizing:border-box}
  .secteur-arg a,.secteur-lien,.eyebrow a,.nv-b-rappel,.tbl-src a{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
  .tun-lien-client{display:inline-flex;align-items:center;min-height:44px}
}
/* Tarifs sur telephone : la barre fixe du bas ne masque plus la fin de la carte prix */
@media (max-width:959px){
  html{scroll-padding-bottom:96px}
  .nv2 .offres.offres--une{margin-bottom:96px}
}
/* Tarifs, grand ecran : resume de l'offre a droite de l'en-tete */
.hero-tarifs__resume{display:none}
@media (min-width:1000px){
  .hero-tarifs{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:clamp(40px,6vw,120px);align-items:center}
  .hero-tarifs>*{grid-column:1}
  .hero-tarifs>.hero-tarifs__resume{display:block;grid-column:2;grid-row:1 / span 4;background:#F4F7FB;border:1px solid #D5DEE7;border-radius:16px;padding:clamp(20px,2vw,32px)}
  .nv2 .hero-tarifs .hero-tarifs__resume .hero-tarifs__titre{margin:0 0 12px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0B6E5C !important}
  .hero-tarifs__resume ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
  .hero-tarifs__resume li strong{display:block;color:#0B1A2E}
  .hero-tarifs__resume li span{display:block;color:#4A5B6D;font-size:.95rem;line-height:1.45}
}
/* Souscription etape 1, grand ecran : le programme du parcours sous le bouton */
.tun-deroule{display:none}
@media (min-width:1000px){
  .nv2 .tun-deroule{display:block;margin-top:clamp(24px,4vh,48px);padding-top:clamp(20px,3vh,32px);border-top:1px solid #D5DEE7;max-width:760px}
  .nv2 .tun-deroule .tun-deroule__titre{margin:0 0 14px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0B6E5C}
  .tun-deroule ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px}
  .tun-deroule li strong{display:block;color:#0B1A2E}
  .tun-deroule li span{display:block;color:#4A5B6D;font-size:.95rem;line-height:1.45}
}

/* rappele-20261102 : bouton secondaire fantome (Etre rappele) lisible sur fond sombre */
:root:root:root:root:root:root :is(.hero,.hero-simple,.sombre,.bande--nuit,.bande--bleue,.cta-final,.cta-band,.final,.bloc--final,.essai,.barre,.pied,.tiroir) .btn--sobre{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.88);border-radius:999px;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}
:root:root:root:root:root:root :is(.hero,.hero-simple,.sombre,.bande--nuit,.bande--bleue,.cta-final,.cta-band,.final,.bloc--final,.essai,.barre,.pied,.tiroir) .btn--sobre:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}
:root:root:root:root:root:root :is(.hero,.hero-simple,.sombre,.bande--nuit,.bande--bleue,.cta-final,.cta-band,.final,.bloc--final,.essai,.barre,.pied,.tiroir) .btn--sobre:focus-visible{outline:3px solid #5EEAD4;outline-offset:3px}
:root:root:root:root:root:root .btn--sobre:focus-visible{outline:3px solid #0B7A6B;outline-offset:3px}
@media (prefers-reduced-motion:reduce){:root:root:root:root:root:root .btn--sobre{transition:none}}
