/* ------------------------------------------------------------------
 * pages.css — couche de compat pour les pages annexes themées.
 *
 * Les pages annexes (auth, cgv, mentions, pricing, partenaires) ont leur
 * propre <style> auto-suffisant mais s'appuient sur quelques classes
 * Bootstrap (grille, utilitaires) et des bases de formulaire. Les nouveaux
 * archétypes ne chargent PAS Bootstrap : ce fichier fournit le sous-ensemble
 * nécessaire, SCOPÉ sous .tpage pour ne jamais impacter le reste de l'archétype
 * (ni entrer en conflit avec Bootstrap sous l'archétype classic).
 * ------------------------------------------------------------------ */

.tpage { box-sizing: border-box; }
.tpage *, .tpage *::before, .tpage *::after { box-sizing: border-box; }

/* --- Conteneurs --- */
.tpage .container { width: 100%; max-width: 1140px; margin-right: auto; margin-left: auto; padding-right: 15px; padding-left: 15px; }
.tpage .container-fluid { width: 100%; margin-right: auto; margin-left: auto; padding-right: 15px; padding-left: 15px; }

/* --- Grille flexbox --- */
.tpage .row { display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; }
.tpage .no-gutters { margin-right: 0; margin-left: 0; }
.tpage .no-gutters > [class*="col-"] { padding-right: 0; padding-left: 0; }
.tpage [class*="col-"] { position: relative; width: 100%; padding-right: 15px; padding-left: 15px; }
.tpage .col, .tpage .col-auto { flex: 1 0 0%; }
.tpage .col-1{flex:0 0 8.333%;max-width:8.333%}.tpage .col-2{flex:0 0 16.666%;max-width:16.666%}
.tpage .col-3{flex:0 0 25%;max-width:25%}.tpage .col-4{flex:0 0 33.333%;max-width:33.333%}
.tpage .col-5{flex:0 0 41.666%;max-width:41.666%}.tpage .col-6{flex:0 0 50%;max-width:50%}
.tpage .col-7{flex:0 0 58.333%;max-width:58.333%}.tpage .col-8{flex:0 0 66.666%;max-width:66.666%}
.tpage .col-9{flex:0 0 75%;max-width:75%}.tpage .col-10{flex:0 0 83.333%;max-width:83.333%}
.tpage .col-11{flex:0 0 91.666%;max-width:91.666%}.tpage .col-12{flex:0 0 100%;max-width:100%}
@media (min-width:576px){
  .tpage .col-sm-4{flex:0 0 33.333%;max-width:33.333%}.tpage .col-sm-6{flex:0 0 50%;max-width:50%}
  .tpage .col-sm-8{flex:0 0 66.666%;max-width:66.666%}.tpage .col-sm-10{flex:0 0 83.333%;max-width:83.333%}
  .tpage .col-sm-12{flex:0 0 100%;max-width:100%}
}
@media (min-width:768px){
  .tpage .col-md-3{flex:0 0 25%;max-width:25%}.tpage .col-md-4{flex:0 0 33.333%;max-width:33.333%}
  .tpage .col-md-5{flex:0 0 41.666%;max-width:41.666%}.tpage .col-md-6{flex:0 0 50%;max-width:50%}
  .tpage .col-md-7{flex:0 0 58.333%;max-width:58.333%}.tpage .col-md-8{flex:0 0 66.666%;max-width:66.666%}
  .tpage .col-md-10{flex:0 0 83.333%;max-width:83.333%}.tpage .col-md-12{flex:0 0 100%;max-width:100%}
}
@media (min-width:992px){
  .tpage .col-lg-4{flex:0 0 33.333%;max-width:33.333%}.tpage .col-lg-6{flex:0 0 50%;max-width:50%}
  .tpage .col-lg-8{flex:0 0 66.666%;max-width:66.666%}.tpage .col-lg-10{flex:0 0 83.333%;max-width:83.333%}
}
@media (min-width:1200px){
  .tpage .col-xl-4{flex:0 0 33.333%;max-width:33.333%}.tpage .col-xl-5{flex:0 0 41.666%;max-width:41.666%}
  .tpage .col-xl-6{flex:0 0 50%;max-width:50%}.tpage .col-xl-8{flex:0 0 66.666%;max-width:66.666%}
}

/* --- Utilitaires flex / display / texte --- */
.tpage .d-none{display:none!important}.tpage .d-block{display:block!important}
.tpage .d-inline{display:inline!important}.tpage .d-inline-block{display:inline-block!important}
.tpage .d-flex{display:flex!important}.tpage .d-inline-flex{display:inline-flex!important}
.tpage .flex-column{flex-direction:column!important}.tpage .flex-wrap{flex-wrap:wrap!important}
.tpage .justify-content-center{justify-content:center!important}
.tpage .justify-content-between{justify-content:space-between!important}
.tpage .justify-content-end{justify-content:flex-end!important}
.tpage .align-items-center{align-items:center!important}
.tpage .text-center{text-align:center!important}.tpage .text-right{text-align:right!important}
.tpage .text-left{text-align:left!important}.tpage .w-100{width:100%!important}
.tpage .mx-auto{margin-right:auto!important;margin-left:auto!important}

/* --- Utilitaires d'espacement (échelle Bootstrap 0..5) --- */
.tpage .m-0{margin:0!important}.tpage .m-1{margin:.25rem!important}.tpage .m-2{margin:.5rem!important}.tpage .m-3{margin:1rem!important}.tpage .m-4{margin:1.5rem!important}.tpage .m-5{margin:3rem!important}
.tpage .mt-0{margin-top:0!important}.tpage .mt-1{margin-top:.25rem!important}.tpage .mt-2{margin-top:.5rem!important}.tpage .mt-3{margin-top:1rem!important}.tpage .mt-4{margin-top:1.5rem!important}.tpage .mt-5{margin-top:3rem!important}
.tpage .mb-0{margin-bottom:0!important}.tpage .mb-1{margin-bottom:.25rem!important}.tpage .mb-2{margin-bottom:.5rem!important}.tpage .mb-3{margin-bottom:1rem!important}.tpage .mb-4{margin-bottom:1.5rem!important}.tpage .mb-5{margin-bottom:3rem!important}
.tpage .ml-1{margin-left:.25rem!important}.tpage .ml-2{margin-left:.5rem!important}.tpage .ml-3{margin-left:1rem!important}
.tpage .mr-1{margin-right:.25rem!important}.tpage .mr-2{margin-right:.5rem!important}.tpage .mr-3{margin-right:1rem!important}
.tpage .p-0{padding:0!important}.tpage .p-1{padding:.25rem!important}.tpage .p-2{padding:.5rem!important}.tpage .p-3{padding:1rem!important}.tpage .p-4{padding:1.5rem!important}.tpage .p-5{padding:3rem!important}
.tpage .pt-3{padding-top:1rem!important}.tpage .pb-3{padding-bottom:1rem!important}
.tpage .px-2{padding-left:.5rem!important;padding-right:.5rem!important}.tpage .px-3{padding-left:1rem!important;padding-right:1rem!important}
.tpage .py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.tpage .py-3{padding-top:1rem!important;padding-bottom:1rem!important}

/* --- Bases de formulaire (override par les <style> inline des pages) --- */
.tpage .form-control{display:block;width:100%;padding:.5rem .75rem;font-size:1rem;line-height:1.5;color:#2d3748;background:#fff;border:1px solid #cbd5e0;border-radius:.375rem;transition:border-color .2s,box-shadow .2s}
.tpage .form-control:focus{outline:0;border-color:var(--one);box-shadow:0 0 0 3px rgba(var(--one-shadow-rgb),.18)}
.tpage .form-control.is-invalid{border-color:#e53e3e}
.tpage .form-group{margin-bottom:1rem}
.tpage label{display:inline-block;margin-bottom:.4rem}
.tpage .invalid-feedback{display:block;width:100%;margin-top:.35rem;font-size:.875rem;color:#e53e3e}
.tpage .form-check{position:relative;display:block;padding-left:1.5rem}
.tpage .form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.5rem}

/* --- Boutons de base (override par les <style> inline des pages) --- */
.tpage .btn{display:inline-block;font-weight:600;text-align:center;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.375rem;cursor:pointer;text-decoration:none;transition:all .2s}
.tpage .btn-primary{background:var(--one);border-color:var(--one);color:#fff}
.tpage .btn-primary:hover{background:var(--one-hover);border-color:var(--one-hover);color:#fff}
.tpage .btn-link{background:none;border:none;color:var(--one);text-decoration:underline}

/* --- Alertes de base --- */
.tpage .alert{position:relative;padding:.85rem 1.1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.5rem}
.tpage .alert-success{color:#22543d;background:#f0fff4;border-color:#9ae6b4}
.tpage .alert-danger{color:#822727;background:#fff5f5;border-color:#feb2b2}
.tpage a{color:var(--one)}
