/* =============================================================================
   assets/css/tarif-quinte-2027.css - turf.bzh
   -----------------------------------------------------------------------------
   Page pilier « Tarifs et formules du Quinte+ ». Meme systeme que
   assets/css/consensus-2027.css et assets/css/ecuriebzh.css : les jetons
   --tbz-ag-* du theme sont recopies en --tq-* avec une valeur de secours en dur,
   pour que la page tienne debout meme si le theme ne publie rien.

   PORTEE. Tout est scope sous .tq-page. Le site charge Bootstrap globalement et
   le prefixe .tq- evite la collision decrite dans 02-conventions.md. Aucun
   !important : la specificite vient du double selecteur .tq-page .tq-X.

   MOBILE D'ABORD. Les tableaux de bareme se replient en cartes empilees sous
   40rem au lieu de demander un defilement lateral. Aucun chiffre n'est masque
   au passage : masquer une colonne sur telephone est le defaut qu'on repare
   ici, pas la solution.

   @author Claude (Cowork mode, 2026-08-30)
   @version 1.0.0
   ========================================================================== */

.tq-page{
  --tq-bg:      var(--tbz-ag-bg, #f8fafc);
  --tq-soft:    var(--tbz-ag-bg-soft, #f1f5f9);
  --tq-card:    var(--tbz-ag-card, #ffffff);
  --tq-card2:   var(--tbz-ag-card-2, #fbfcfd);
  --tq-bd:      var(--tbz-ag-border, #e5e7eb);
  --tq-bd-soft: var(--tbz-ag-border-soft, #eef0f3);
  --tq-bd-fort: var(--tbz-ag-border-strong, #d1d5db);
  --tq-ink:     var(--tbz-ag-text, #0f172a);
  --tq-ink2:    var(--tbz-ag-text-2, #1e293b);
  --tq-ink3:    #334155;
  --tq-mut:     #475569;
  --tq-acc:     var(--tbz-ag-accent, #0a7c91);
  --tq-acc-d:   var(--tbz-ag-accent-d, #075d6e);
  --tq-acc-l:   var(--tbz-ag-accent-l, #e0f2f6);
  --tq-acc-l2:  var(--tbz-ag-accent-l2, #ecf7fa);
  --tq-grad:    var(--tbz-ag-accent-grad, linear-gradient(135deg,#0a7c91 0%,#0891b2 60%,#06b6d4 100%));
  --tq-ok:      #047857;
  --tq-ok-bg:   var(--tbz-ag-success-bg, #ecfdf5);
  --tq-ok-bd:   var(--tbz-ag-success-bd, #a7f3d0);
  --tq-warn:    var(--tbz-ag-warn, #b45309);
  --tq-warn-bg: var(--tbz-ag-warn-bg, #fffbeb);
  --tq-warn-bd: var(--tbz-ag-warn-bd, #fde68a);
  --tq-info:    var(--tbz-ag-info, #1d4ed8);
  --tq-info-bg: var(--tbz-ag-info-bg, #eff6ff);
  --tq-info-bd: var(--tbz-ag-info-bd, #bfdbfe);
  --tq-r-xs:    var(--tbz-ag-r-xs, 6px);
  --tq-r-sm:    var(--tbz-ag-r-sm, 10px);
  --tq-r-md:    var(--tbz-ag-r-md, 14px);
  --tq-r-lg:    var(--tbz-ag-r-lg, 18px);
  --tq-pill:    var(--tbz-ag-r-pill, 999px);
  --tq-sh-sm:   var(--tbz-ag-sh-sm, 0 1px 3px 0 rgba(15,23,42,.06), 0 1px 2px -1px rgba(15,23,42,.04));
  --tq-sh-md:   var(--tbz-ag-sh-md, 0 4px 6px -1px rgba(15,23,42,.07), 0 2px 4px -2px rgba(15,23,42,.05));
  --tq-sh-lg:   var(--tbz-ag-sh-lg, 0 10px 15px -3px rgba(15,23,42,.08), 0 4px 6px -4px rgba(15,23,42,.05));
  --tq-glow:    var(--tbz-ag-sh-glow, 0 0 0 4px rgba(10,124,145,.12));
  --tq-ease:    var(--tbz-ag-ease-out, cubic-bezier(.16,1,.3,1));
  --tq-font:    var(--tbz-ag-font, 'Inter','Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif);
  --tq-mono:    var(--tbz-ag-mono, 'JetBrains Mono','SF Mono',Monaco,Consolas,monospace);

  max-width: 1180px;
  margin: 0 auto;
  padding: 1rem .875rem 3.5rem;
  font-family: var(--tq-font);
  color: var(--tq-ink);
  line-height: 1.62;
  letter-spacing: -.005em;
  font-variant-numeric: tabular-nums;
}
/* Declare explicitement : la page ne doit pas dependre du reset de Bootstrap. */
.tq-page *, .tq-page *::before, .tq-page *::after{ box-sizing: border-box; }

/* ---------------------------------------------------------------- en-tete -- */
.tq-page .tq-hero{
  background: var(--tq-grad);
  color: #fff;
  border-radius: var(--tq-r-lg);
  padding: 1.6rem 1.4rem 1.4rem;
  box-shadow: var(--tq-sh-lg);
  margin-bottom: 1.5rem;
}
.tq-page .tq-hero h1{
  font-size: clamp(1.45rem, 4.2vw, 2.1rem);
  font-weight: 800;
  line-height: 1.15;
  margin: 0 0 .5rem;
  color: #fff;
  letter-spacing: -.02em;
}
.tq-page .tq-hero-sous{
  margin: 0;
  font-size: 1.02rem;
  color: #fff;
  /* Pas de max-width : la regle de largeur maison l'interdit dans un cadre.
     Au-dela de 62rem le texte se lit sur deux colonnes plutot que de laisser
     une moitie de hero vide. */
}
.tq-page .tq-hero-faits{
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.05rem;
}
.tq-page .tq-fait{
  background: rgba(15,23,42,.24);
  border: 1px solid rgba(255,255,255,.30);
  border-radius: var(--tq-pill);
  padding: .3rem .8rem;
  font-size: .84rem;
  font-weight: 600;
  color: #fff;
}
.tq-page .tq-fait b{ font-weight: 800; }

/* Regle de largeur maison (cf. consensus-2027.css l.82) : un bloc de texte ne
   porte jamais de largeur maximale dans un cadre. Quand la ligne devient trop
   longue pour l'oeil, on decoupe l'espace en colonnes, on ne laisse pas de vide
   a cote. */
@media (min-width: 62rem){
  .tq-page .tq-hero-sous{ column-width: 30rem; column-gap: 38px; }
  .tq-page .tq-lead{ column-width: 26rem; column-gap: 38px; }
}

/* ------------------------------------------------------------------ blocs -- */
.tq-page .tq-bloc{
  background: var(--tq-card);
  border: 1px solid var(--tq-bd);
  border-radius: var(--tq-r-md);
  padding: 1.25rem 1.15rem;
  margin-bottom: 1.35rem;
  box-shadow: var(--tq-sh-sm);
}
.tq-page .tq-bloc-tete{
  display: flex;
  align-items: baseline;
  gap: .65rem;
  flex-wrap: wrap;
  margin-bottom: .9rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--tq-bd-soft);
}
.tq-page .tq-bloc-tete h2{
  font-size: 1.22rem;
  font-weight: 700;
  margin: 0;
  color: var(--tq-ink);
  letter-spacing: -.015em;
}
.tq-page .tq-bloc-tete h3{
  font-size: 1.06rem;
  font-weight: 700;
  margin: 0;
  color: var(--tq-ink);
}
.tq-page .tq-bloc-tete .tq-eti{
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--tq-acc-d);
  background: var(--tq-acc-l);
  border-radius: var(--tq-pill);
  padding: .18rem .6rem;
}
.tq-page p{ margin: 0 0 .85rem; color: var(--tq-ink2); }
.tq-page p:last-child{ margin-bottom: 0; }
.tq-page .tq-mut{ color: var(--tq-mut); font-size: .93rem; }
.tq-page a{ color: var(--tq-acc-d); text-underline-offset: 2px; }
.tq-page a:hover{ color: var(--tq-acc); }
.tq-page :focus-visible{ outline: 2px solid var(--tq-acc); outline-offset: 2px; border-radius: var(--tq-r-xs); }

/* -------------------------------------------------------------- simulateur -- */
.tq-page .tq-sim{
  background: var(--tq-card);
  border: 1px solid var(--tq-bd-fort);
  border-radius: var(--tq-r-lg);
  box-shadow: var(--tq-sh-md);
  overflow: hidden;
  margin-bottom: 1.6rem;
}
.tq-page .tq-sim-corps{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.tq-page .tq-sim-form{ padding: 1.15rem 1.15rem 1.35rem; }
.tq-page .tq-sim-out{
  background: var(--tq-acc-l2);
  border-top: 1px solid var(--tq-bd);
  padding: 1.15rem;
}

/* selecteur de formule : boutons segmentes */
.tq-page .tq-seg{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .4rem;
  background: var(--tq-soft);
  border: 1px solid var(--tq-bd);
  border-radius: var(--tq-r-md);
  padding: .32rem;
  margin-bottom: 1.1rem;
}
.tq-page .tq-seg button{
  appearance: none;
  border: 1px solid transparent;
  background: transparent;
  border-radius: var(--tq-r-sm);
  padding: .55rem .4rem;
  font-family: inherit;
  font-size: .92rem;
  font-weight: 700;
  color: var(--tq-mut);
  cursor: pointer;
  transition: background .18s var(--tq-ease), color .18s var(--tq-ease), box-shadow .18s var(--tq-ease);
  line-height: 1.25;
}
.tq-page .tq-seg button:hover{ color: var(--tq-acc-d); }
.tq-page .tq-seg button[aria-pressed="true"]{
  background: var(--tq-card);
  color: var(--tq-acc-d);
  border-color: var(--tq-bd);
  box-shadow: var(--tq-sh-sm);
}
.tq-page .tq-seg small{
  display: block;
  font-size: .72rem;
  font-weight: 500;
  color: var(--tq-mut);
  margin-top: .12rem;
}

.tq-page .tq-champs{
  display: grid;
  grid-template-columns: 1fr;
  gap: .95rem;
}
.tq-page .tq-champ label{
  display: block;
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--tq-mut);
  margin-bottom: .34rem;
}
.tq-page .tq-champ select{
  width: 100%;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  color: var(--tq-ink);
  background: var(--tq-card);
  border: 1px solid var(--tq-bd-fort);
  border-radius: var(--tq-r-sm);
  padding: .6rem .7rem;
  transition: border-color .18s var(--tq-ease), box-shadow .18s var(--tq-ease);
}
.tq-page .tq-champ select:focus{
  border-color: var(--tq-acc);
  box-shadow: var(--tq-glow);
  outline: none;
}
.tq-page .tq-aide{
  font-size: .82rem;
  color: var(--tq-mut);
  margin: .3rem 0 0;
}

/* options : Flexi et tous les ordres */
.tq-page .tq-opts{
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--tq-bd);
}
.tq-page .tq-opt-titre{
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--tq-mut);
  margin-bottom: .45rem;
}
.tq-page .tq-radios{ display: flex; flex-wrap: wrap; gap: .4rem; }
.tq-page .tq-radios label{
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  border: 1px solid var(--tq-bd-fort);
  border-radius: var(--tq-pill);
  padding: .36rem .8rem;
  font-size: .9rem;
  font-weight: 600;
  color: var(--tq-ink2);
  cursor: pointer;
  background: var(--tq-card);
  transition: border-color .18s var(--tq-ease), background .18s var(--tq-ease), color .18s var(--tq-ease);
}
.tq-page .tq-radios label:hover{ border-color: var(--tq-acc); }
.tq-page .tq-radios input{ accent-color: var(--tq-acc); margin: 0; }
.tq-page .tq-radios input:checked + span{ color: var(--tq-acc-d); }
.tq-page .tq-radios label:has(input:checked){
  border-color: var(--tq-acc);
  background: var(--tq-acc-l);
  color: var(--tq-acc-d);
}
.tq-page .tq-radios input:disabled + span{ color: #94a3b8; }
.tq-page .tq-radios label:has(input:disabled){
  opacity: .55;
  cursor: not-allowed;
  background: var(--tq-soft);
}
.tq-page .tq-bascule{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: .8rem;
  font-size: .93rem;
  font-weight: 600;
  color: var(--tq-ink2);
  cursor: pointer;
}
.tq-page .tq-bascule input{ accent-color: var(--tq-acc); width: 1.05rem; height: 1.05rem; }

/* sortie */
.tq-page .tq-prix{
  font-size: clamp(2rem, 7vw, 2.9rem);
  font-weight: 800;
  color: var(--tq-acc-d);
  line-height: 1.05;
  letter-spacing: -.03em;
  margin: 0;
}
.tq-page .tq-prix-lib{
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tq-mut);
  margin: 0 0 .2rem;
}
.tq-page .tq-detail{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: .5rem;
  margin-top: 1.1rem;
}
.tq-page .tq-detail div{
  background: var(--tq-card);
  border: 1px solid var(--tq-bd);
  border-radius: var(--tq-r-sm);
  padding: .6rem .75rem;
  min-width: 0;
}
.tq-page .tq-detail dt, .tq-page .tq-detail .tq-dt{
  display: block;
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tq-mut);
  margin-bottom: .22rem;
  line-height: 1.25;
}
.tq-page .tq-detail dd, .tq-page .tq-detail .tq-dd{
  display: block;
  margin: 0;
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--tq-ink);
  font-family: var(--tq-mono);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.tq-page .tq-phrase{
  margin: .95rem 0 0;
  font-size: .95rem;
  color: var(--tq-ink3);
}
/* Le libelle du simulateur est un h2 pour la structure du document, mais il se
   lit comme une etiquette : on neutralise la taille de titre par defaut. */
.tq-page h2.tq-prix-lib{ font-size: .82rem; font-weight: 700; }

/* Sous-titres de la section « options » et cellules de texte des tableaux. */
.tq-page .tq-h3{ font-size: 1.02rem; font-weight: 700; margin: .2rem 0 .4rem; color: var(--tq-ink); }
.tq-page .tq-h3-suite{ margin-top: 1.1rem; }
.tq-page .tq-tab-txt{ text-align: left; white-space: normal; }
.tq-page .tq-mut-fin{ margin-top: .9rem; }

/* --------------------------------------------------------------- encadres -- */
.tq-page .tq-note{
  border-left: 4px solid var(--tq-acc);
  background: var(--tq-acc-l2);
  border-radius: 0 var(--tq-r-sm) var(--tq-r-sm) 0;
  padding: .85rem 1.05rem;
  margin: 1rem 0;
}
.tq-page .tq-note.tq-warn{ border-left-color: var(--tq-warn-bd); background: var(--tq-warn-bg); }
.tq-page .tq-note.tq-info{ border-left-color: var(--tq-info-bd); background: var(--tq-info-bg); }
.tq-page .tq-note-lib{
  display: block;
  font-size: .74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--tq-acc-d);
  margin-bottom: .3rem;
}
.tq-page .tq-note.tq-warn .tq-note-lib{ color: var(--tq-warn); }
.tq-page .tq-note.tq-info .tq-note-lib{ color: var(--tq-info); }

/* -------------------------------------------- barre d'outils des tableaux -- */
.tq-page .tq-tab-bloc{ margin-top: .9rem; }
.tq-page .tq-outils{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  padding-bottom: .6rem;
}
.tq-page .tq-tri-mob{ display: none; align-items: flex-end; gap: .4rem; flex-wrap: wrap; min-width: 0; }
.tq-page .tq-tri-mob > div{ min-width: 0; flex: 1 1 8rem; }
.tq-page .tq-tri-mob label{
  display: block;
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tq-mut);
  margin-bottom: .25rem;
}
.tq-page .tq-tri-mob select{
  font-family: inherit;
  font-size: .92rem;
  font-weight: 600;
  color: var(--tq-ink);
  background: var(--tq-card);
  border: 1px solid var(--tq-bd-fort);
  border-radius: var(--tq-r-sm);
  padding: .38rem .55rem;
  width: 100%;
  max-width: 100%;
}
.tq-page .tq-export{ display: flex; align-items: center; gap: .4rem; margin-left: auto; }
.tq-page .tq-export-lib{
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tq-mut);
}
.tq-page .tq-btn{
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
  font-size: .84rem;
  font-weight: 700;
  color: var(--tq-acc-d);
  background: var(--tq-card);
  border: 1px solid var(--tq-bd-fort);
  border-radius: var(--tq-r-sm);
  padding: .34rem .7rem;
  cursor: pointer;
  transition: border-color .18s var(--tq-ease), background .18s var(--tq-ease), color .18s var(--tq-ease);
}
.tq-page .tq-btn:hover{ border-color: var(--tq-acc); background: var(--tq-acc-l2); }
.tq-page .tq-btn:active{ background: var(--tq-acc-l); }

/* Region d'etat du tri : hors ecran, mais dans le flux d'accessibilite. */
.tq-page .tq-tri-etat{
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------- tableaux -- */
.tq-page .tq-tabwrap{ overflow-x: auto; -webkit-overflow-scrolling: touch; margin: .9rem 0 0; }
.tq-page .tq-tab{
  border-collapse: collapse;
  width: 100%;
  font-size: .93rem;
  font-variant-numeric: tabular-nums;
}
.tq-page .tq-tab caption{
  caption-side: top;
  text-align: left;
  padding: 0 0 .6rem;
  font-size: .87rem;
  color: var(--tq-mut);
}
.tq-page .tq-tab th,
.tq-page .tq-tab td{
  padding: .46rem .7rem;
  border-bottom: 1px solid var(--tq-bd-soft);
  text-align: right;
  white-space: nowrap;
}
.tq-page .tq-tab thead th{
  font-size: .76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--tq-acc-d);
  border-bottom: 2px solid var(--tq-acc);
  background: var(--tq-acc-l2);
}
.tq-page .tq-tab thead th:first-child,
.tq-page .tq-tab tbody th{ text-align: left; }
.tq-page .tq-tab tbody th{ font-weight: 700; color: var(--tq-acc-d); }
.tq-page .tq-tab tbody tr:nth-child(even) th,
.tq-page .tq-tab tbody tr:nth-child(even) td{ background: var(--tq-card2); }
.tq-page .tq-tab tbody tr:hover th,
.tq-page .tq-tab tbody tr:hover td{ background: var(--tq-acc-l2); }
/* En-tetes triables. Le bouton porte l'action, le th porte l'etat aria-sort :
   c'est la combinaison que les lecteurs d'ecran annoncent correctement. */
.tq-page .tq-tab thead th{ padding: 0; }
.tq-page .tq-th-btn{
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .35rem;
  background: transparent;
  border: 0;
  font: inherit;
  font-size: .76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--tq-acc-d);
  padding: .46rem .7rem;
  cursor: pointer;
  transition: background .18s var(--tq-ease);
}
.tq-page .tq-tab thead th:first-child .tq-th-btn{ justify-content: flex-start; }
.tq-page .tq-th-btn:hover{ background: var(--tq-acc-l); }
.tq-page .tq-th-btn:focus-visible{ outline-offset: -2px; }
.tq-page .tq-th-fl{ font-size: .9em; opacity: .35; }
.tq-page .tq-tab thead th[aria-sort="ascending"] .tq-th-fl,
.tq-page .tq-tab thead th[aria-sort="descending"] .tq-th-fl{ opacity: 1; }
.tq-page .tq-tab thead th[aria-sort="ascending"],
.tq-page .tq-tab thead th[aria-sort="descending"]{ background: var(--tq-acc-l); }

.tq-page .tq-fort{ font-weight: 800; color: var(--tq-ink); }
.tq-page .tq-nd{ color: var(--tq-mut); }

/* Sous 40rem, les tableaux a plusieurs colonnes deviennent des cartes. */
@media (max-width: 40rem){
  .tq-page .tq-tab-cartes thead{ display: none; }
  .tq-page .tq-tri-mob{ display: flex; }
  .tq-page .tq-outils{ align-items: flex-end; }
  .tq-page .tq-tab-cartes,
  .tq-page .tq-tab-cartes tbody,
  .tq-page .tq-tab-cartes tr,
  .tq-page .tq-tab-cartes th,
  .tq-page .tq-tab-cartes td{ display: block; width: 100%; }
  .tq-page .tq-tab-cartes tr{
    border: 1px solid var(--tq-bd);
    border-radius: var(--tq-r-sm);
    margin-bottom: .6rem;
    overflow: hidden;
  }
  .tq-page .tq-tab-cartes tbody th{
    background: var(--tq-acc-l);
    color: var(--tq-acc-d);
    padding: .45rem .75rem;
    border-bottom: 1px solid var(--tq-bd);
  }
  .tq-page .tq-tab-cartes td{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    text-align: right;
    padding: .4rem .75rem;
    white-space: normal;
  }
  .tq-page .tq-tab-cartes td::before{
    content: attr(data-lib);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--tq-mut);
    text-align: left;
  }
  .tq-page .tq-tab-cartes tbody tr:nth-child(even) th,
  .tq-page .tq-tab-cartes tbody tr:nth-child(even) td{ background: transparent; }
}

/* --------------------------------------------------------------- sommaire -- */
.tq-page .tq-somm{
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: 1.5rem;
}
.tq-page .tq-somm a{
  border: 1px solid var(--tq-bd);
  background: var(--tq-card);
  border-radius: var(--tq-pill);
  padding: .32rem .78rem;
  font-size: .87rem;
  font-weight: 600;
  color: var(--tq-ink2);
  text-decoration: none;
  transition: border-color .18s var(--tq-ease), color .18s var(--tq-ease), background .18s var(--tq-ease);
}
.tq-page .tq-somm a:hover{
  border-color: var(--tq-acc);
  color: var(--tq-acc-d);
  background: var(--tq-acc-l2);
}

/* ------------------------------------------------------------------- faq --- */
.tq-page .tq-faq details{
  border: 1px solid var(--tq-bd);
  border-radius: var(--tq-r-sm);
  margin-bottom: .5rem;
  background: var(--tq-card);
  overflow: hidden;
}
.tq-page .tq-faq summary{
  cursor: pointer;
  padding: .7rem .9rem;
  font-weight: 700;
  color: var(--tq-ink);
  list-style: none;
  position: relative;
  padding-right: 2.2rem;
}
.tq-page .tq-faq summary::-webkit-details-marker{ display: none; }
.tq-page .tq-faq summary::after{
  content: '+';
  position: absolute;
  right: .95rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--tq-acc);
  line-height: 1;
}
.tq-page .tq-faq details[open] summary::after{ content: '-'; }
.tq-page .tq-faq summary:hover{ background: var(--tq-acc-l2); }
.tq-page .tq-faq details p{
  padding: 0 .9rem .8rem;
  margin: 0;
  color: var(--tq-ink2);
  font-size: .96rem;
}

/* ------------------------------------------------------------------- liens -- */
.tq-page .tq-liens{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: .7rem;
  margin-top: .9rem;
}
.tq-page .tq-lien{
  display: block;
  border: 1px solid var(--tq-bd);
  border-radius: var(--tq-r-sm);
  padding: .8rem .9rem;
  background: var(--tq-card);
  text-decoration: none;
  transition: border-color .18s var(--tq-ease), box-shadow .18s var(--tq-ease), transform .18s var(--tq-ease);
}
.tq-page .tq-lien:hover{
  border-color: var(--tq-acc);
  box-shadow: var(--tq-sh-md);
  transform: translateY(-1px);
}
.tq-page .tq-lien b{ display: block; color: var(--tq-acc-d); font-size: .98rem; margin-bottom: .12rem; }
.tq-page .tq-lien span{ display: block; color: var(--tq-mut); font-size: .87rem; line-height: 1.45; }

@media (prefers-reduced-motion: reduce){
  .tq-page *{ transition: none; }
  .tq-page .tq-lien:hover{ transform: none; }
}

/* ------------------------------------------------------- ecrans confortables */
@media (min-width: 52rem){
  .tq-page{ padding: 1.5rem 1.25rem 4rem; }
  .tq-page .tq-hero{ padding: 2.1rem 2rem 1.8rem; }
  .tq-page .tq-bloc{ padding: 1.5rem 1.6rem; }
  .tq-page .tq-sim-corps{ grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  .tq-page .tq-sim-form{ padding: 1.5rem 1.6rem; }
  .tq-page .tq-sim-out{
    border-top: 0;
    border-left: 1px solid var(--tq-bd);
    padding: 1.5rem 1.6rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .tq-page .tq-champs{ grid-template-columns: 1fr 1fr; }
  .tq-page .tq-champ-large{ grid-column: 1 / -1; }
}
