/* =====================================================================
   ESPACE CLIENT — lot Compte (tâches 148 → 151, 29/09/2026)
   ---------------------------------------------------------------------
   `compte.php` (le cadre) et les gabarits `woocommerce/myaccount/*` — ceux
   du noyau et les deux de YITH. Mise en file sur toutes les vues du compte
   (`inc/compte.php`), après composants.css et socle.css ; sur le tableau de
   bord à panier plein, après panier.css aussi.

   Maquette : le composant « Compte » `156:5590`, quatorze variantes (le
   relevé `compte-releve-2026-09-29.md` les liste). Page 1838 : 80 de marge,
   carte utilisateur 384, 48, vue 1 248.

   CE QUI EST AILLEURS : le badge et sa ligne (`stv-badge`, socle § 7), le
   formulaire habillé (socle § 9), la connexion (`stv-connexion`,
   composants.css), la ligne « lecture » et le récapitulatif
   (composants.css), le cadre du panier (panier.css), la carte collection
   en mode `compte` (§ 5 ci-dessous : ses seules règles).

   POIDS. Hello pose `table td, th` (marge de 15, filet, fond une rangée sur
   deux à 0,1,4, `th` en 700), `.site-main` borné à 0,2,1 ; woocommerce.css
   habille `.woocommerce-MyAccount-navigation` / `-content` (flottants, 30 %
   et 68 % à 0,2,0 — la navigation, dans la carte, n'avait plus que 96 de
   large, mesuré au premier affichage), `form.login` / `form.register` (filet, 20, 2 em à
   0,2,1) ; le kit d'Elementor écrit sur `h1`, `h2`, `a` à 0,1,1 ; la feuille
   de YITH, `.ywraq-view-quote-wrapper p` à 0,1,1.
   ================================================================== */

/* --- 1. Le cadre de compte.php --------------------------------------- */

/*
   80 sous l'en-tête et 80 dessous (`156:5591`, `p-80`), la gouttière du
   socle sur les côtés : 80 en 1840, le plafond de 1 680 au-dessus, 16 sous
   1024. Hello borne `.site-main` (0,2,1) : levée à 0,3,1, comme le tunnel.
*/
main.stv-compte-page.stv-compte-page.stv-compte-page {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--stv-espace-80) max(var(--stv-page-gouttiere), calc((100% - var(--stv-largeur-contenu)) / 2));
}

.stv-compte-page .woocommerce-notices-wrapper:empty {
  display: none;
}

@media (max-width: 767px) {
  main.stv-compte-page.stv-compte-page.stv-compte-page {
    padding-top: var(--stv-espace-32);
    padding-bottom: var(--stv-espace-48);
  }
}

/* --- 2. La grille : carte utilisateur | vue --------------------------- */

/*
   384 | 48 | le reste (1 248 en 1840). woocommerce.css fait flotter la
   navigation (30 %) et le contenu (68 %) à 0,2,0 : la grille les ignore,
   mais leur largeur reste — remise à `auto` à 0,3,0.
*/
.stv-compte.stv-compte {
  display: grid;
  grid-template-columns: var(--stv-colonne) minmax(0, 1fr);
  column-gap: var(--stv-gouttiere);
  align-items: start;
}

.stv-compte.stv-compte > * {
  min-width: 0;
}

.stv-compte .stv-compte__carte.stv-compte__carte,
.stv-compte .woocommerce-MyAccount-navigation.woocommerce-MyAccount-navigation,
.stv-compte .woocommerce-MyAccount-content.woocommerce-MyAccount-content {
  float: none;
  width: auto;
  margin: 0;
}

/*
   Sous 1024 (non dessiné en tablette ; mobile `156:6149`) : une colonne, la
   carte au-dessus, la vue à 32.
*/
@media (max-width: 1024px) {
  .stv-compte.stv-compte {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--stv-espace-32);
  }
}

/* --- 3. La carte utilisateur et le menu (`156:5753`) ------------------ */

.stv-compte .stv-compte__carte {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-32);
  box-sizing: border-box;
  padding: var(--stv-espace-32);
  background: var(--stv-gris-clair);
}

.stv-compte .stv-compte__utilisateur {
  display: flex;
  align-items: center;
  gap: var(--stv-espace-16);
  margin: 0;
}

/* `156:5755` : carré de 48, bleu pétrole, l'initiale en Inter Medium 20 blanc. */
.stv-compte .stv-compte__avatar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: var(--stv-espace-48);
  height: var(--stv-espace-48);
  background: var(--stv-bleu-petrole);
  color: var(--stv-blanc);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-carte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
}

/* `156:5758` : Inter Regular 20 noir. */
.stv-compte .stv-compte__prenom {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-carte);
  font-weight: 400;
  line-height: var(--stv-interligne-texte);
}

.stv-compte .stv-compte-menu__repli {
  margin: 0;
}

/*
   LE RÉSUMÉ du `<details>` : « Tableau de bord ⌄ » (`156:6157`), Inter
   Medium 16 noir, chevron de 9 × 5 à droite, retourné quand le menu est
   ouvert (`156:6181`). Mobile seulement : masqué en desktop (plus bas).
*/
.stv-compte .stv-compte-menu__courant {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--stv-espace-16);
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  list-style: none;
  cursor: pointer;
}

.stv-compte .stv-compte-menu__courant::-webkit-details-marker {
  display: none;
}

.stv-compte .stv-compte-menu__chevron {
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}

.stv-compte .stv-compte-menu__repli[open] .stv-compte-menu__chevron {
  transform: rotate(180deg);
}

/* `156:5760` : colonne à 8. Hello pose une marge et un retrait aux listes. */
.stv-compte .stv-compte-menu__liste.stv-compte-menu__liste {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-8);
  margin: 0;
  padding: 0;
  list-style: none;
}

.stv-compte .stv-compte-menu__liste > li {
  margin: 0;
  padding: 0;
}

/*
   Inter Medium 20 : noir pour la vue courante, anthracite à 70 % pour les
   autres (`156:5761`, `--stv-texte-mention`). 0,3,1 : le kit écrit sur `a`
   à 0,1,1, woocommerce.css sur la navigation à 0,2,1.
*/
.stv-compte .stv-compte-menu__liste.stv-compte-menu__liste a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--stv-texte-mention);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-carte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  text-decoration: none;
}

.stv-compte .stv-compte-menu__liste.stv-compte-menu__liste a[aria-current="page"] {
  color: var(--stv-noir);
}

/* Survol non dessiné (142) : l'encre de la vue courante. */
.stv-compte .stv-compte-menu__liste.stv-compte-menu__liste a:hover,
.stv-compte .stv-compte-menu__liste.stv-compte-menu__liste a:focus-visible {
  color: var(--stv-noir);
}

.stv-compte .stv-compte-menu__icone {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
}

/*
   DESKTOP : le menu déplié, sans résumé. Le contenu d'un `<details>` fermé
   est masqué par la feuille du navigateur au niveau de son
   `::details-content` : on le rend visible. Un navigateur qui ne connaît pas
   ce pseudo-élément (avant Chrome 131, Safari 18.4, Firefox 143) garde le
   résumé et le repli — la forme mobile, qui marche.
*/
@media (min-width: 1025px) {
  @supports selector(::details-content) {
    .stv-compte .stv-compte-menu__courant {
      display: none;
    }

    .stv-compte .stv-compte-menu__repli::details-content {
      content-visibility: visible;
      display: block;
    }
  }
}

/* MOBILE (`156:6150`) : marge 16, écart 24 ; le menu à 16 sous son résumé, en Inter Medium 16. */
@media (max-width: 1024px) {
  .stv-compte .stv-compte__carte {
    gap: var(--stv-espace-24);
    padding: var(--stv-espace-16);
  }

  .stv-compte .stv-compte-menu__liste.stv-compte-menu__liste {
    margin-top: var(--stv-espace-16);
  }

  .stv-compte .stv-compte-menu__liste.stv-compte-menu__liste a {
    font-size: var(--stv-taille-texte);
  }
}

/* --- 4. La barre de la vue (`156:5611`, `156:5772`) ------------------- */

/*
   Outfit Medium 24 / 1,5 noir, filet anthracite à 20 % dessous, 8 entre le
   texte et le filet ; la maison (19 × 20) ou la flèche (20 × 9) à 10. Puis
   16 jusqu'à la vue (24 sur les adresses et le profil, `156:6069`).
*/
.stv-compte .stv-compte__barre {
  display: flex;
  align-items: center;
  margin: 0 0 var(--stv-espace-16);
  padding: 0 0 var(--stv-espace-8);
  border-bottom: 1px solid var(--stv-filet-liste);
}

.stv-compte--edit-address .stv-compte__barre:not(.stv-compte__barre--retour),
.stv-compte--edit-account .stv-compte__barre {
  margin-bottom: var(--stv-espace-24);
}

.stv-compte .stv-compte__barre .stv-compte__titre,
.stv-compte .stv-compte__barre .stv-compte__retour {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: var(--stv-noir);
  font-family: var(--stv-police-titres);
  font-size: var(--stv-taille-intertitre);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  letter-spacing: 0;
  text-decoration: none;
  text-transform: none;
}

.stv-compte .stv-compte__barre .stv-compte__retour:hover,
.stv-compte .stv-compte__barre .stv-compte__retour:focus-visible {
  text-decoration: underline;
  text-underline-position: from-font;
}

.stv-compte .stv-compte__barre svg {
  flex: 0 0 auto;
}

/* Les avis de WooCommerce, sous la barre. */
.stv-compte .stv-compte__vue > .woocommerce-notices-wrapper:not(:empty) {
  margin-bottom: var(--stv-espace-24);
}

/* --- 5. Le tableau de bord (`156:5591`, `156:5640`) ------------------- */

.stv-compte .stv-compte-accueil__phrase {
  margin: 0 0 var(--stv-espace-48);
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
}

/* `156:5626` : trois cartes à 8, en rangée ; empilées en mobile (`156:6167`). */
.stv-compte .stv-compte-accueil__univers.stv-compte-accueil__univers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--stv-espace-8);
  margin: 0;
  padding: 0;
  list-style: none;
}

.stv-compte .stv-compte-accueil__univers > li {
  margin: 0;
  padding: 0;
}

/*
   LA CARTE COLLECTION EN MODE `compte` (`156:5627`, mobile `156:6168`) : un
   bandeau gris de 96, le nom (Outfit Regular 16 noir) à 32 du bord et
   centré en hauteur ; le packshot en `contain` sur la moitié droite, fondu
   sur le gris (`mix-blend-mode: multiply`, comme la maquette), rogné par la
   carte. Mobile : 16 du bord.
*/
.stv-carte-collection.stv-carte-collection--compte {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: 100%;
  height: 96px;
  aspect-ratio: auto;
  padding: var(--stv-espace-24) var(--stv-espace-32);
  overflow: hidden;
  background: var(--stv-gris-clair);
  color: var(--stv-noir);
  text-decoration: none;
}

/* Le mode accueil pose un pavé anthracite au nom (0,2,0) : défait ici, même compte, plus loin dans la cascade. */
.stv-carte-collection--compte .stv-carte-collection__libelle {
  position: relative;
  z-index: 1;
  max-width: 50%;
  padding: 0;
  background: transparent;
  color: var(--stv-noir);
  text-align: left;
  font-family: var(--stv-police-titres);
  font-size: var(--stv-taille-texte);
  font-weight: 400;
  line-height: var(--stv-interligne-texte);
}

.stv-carte-collection--compte .stv-carte-collection__media {
  position: absolute;
  top: var(--stv-espace-8);
  right: var(--stv-espace-16);
  bottom: var(--stv-espace-8);
  left: 45%;
}

.stv-carte-collection--compte .stv-carte-collection__image.stv-carte-collection__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: right center;
  mix-blend-mode: multiply;
}

/*
   LA PHOTO D'UN UNIVERS (09/11, lot « Image de la tuile », § 3.3) : la
   carte suit la tuile de l'univers — la « Photo de la tuile » choisie par le
   client, ou le fichier du thème (`--photo`, parties/carte-collection.php).
   Une photo, pas un packshot : à fond perdu sur la droite de la carte (ni
   marge haute, basse ni droite), recadrée (`cover`), centrée, et SANS le
   fondu du packshot — `multiply` l'assombrirait. Elle commence à 8 après la
   moitié : le nom va jusqu'à 50 % (`max-width`), et un nom court sur une
   ligne (« Univers YOGA ») touchait la photo quand elle partait de 45 %
   comme le packshot (vu à l'essai du 09/11) ; la boîte fait alors à peu
   près du 4:3, la photo est peu rognée. La boîte à 0,3,0 contre 0,2,0,
   l'image à 0,4,0 contre 0,3,0 : les règles du packshot ci-dessus restent
   telles quelles.
*/
.stv-carte-collection--compte .stv-carte-collection__media.stv-carte-collection__media--photo {
  top: 0;
  right: 0;
  bottom: 0;
  left: calc(50% + var(--stv-espace-8));
}

.stv-carte-collection--compte .stv-carte-collection__image.stv-carte-collection__image.stv-carte-collection__image--photo {
  object-fit: cover;
  object-position: center;
  mix-blend-mode: normal;
}

/* Survol non dessiné (142) : le nom souligné. */
.stv-carte-collection--compte:hover .stv-carte-collection__libelle,
.stv-carte-collection--compte:focus-visible .stv-carte-collection__libelle {
  text-decoration: underline;
  text-underline-position: from-font;
}

@media (max-width: 767px) {
  .stv-compte .stv-compte-accueil__phrase {
    margin-bottom: var(--stv-espace-32);
  }

  .stv-carte-collection.stv-carte-collection--compte {
    padding-inline: var(--stv-espace-16);
  }
}

/*
   LE PANIER DU TABLEAU DE BORD (`156:5640`, tranché le 29/09) : le panier de
   la page panier, rangé en 696 | 24 | 528 (`156:5663`). Son en-tête
   (« Votre panier », compteur, « Continuer vos achats ») n'est pas dessiné
   ici : la barre de la vue tient sa place. La colonne du prix unitaire
   n'est pas dessinée non plus (Nom du produit | Quantité | Prix) : masquée,
   la cellule avec son en-tête — même nombre de cellules dans chaque rangée.

   Le balisage est celui de la page panier À L'OCTET (cart.js remplace le
   formulaire par celui qu'il reçoit, du tableau de bord ou de la page
   panier) : tout ce qui change ici est du CSS, sous `.stv-compte-panier`.
*/
.stv-compte-panier .stv-panier.stv-panier.stv-panier {
  --stv-panier-colonne: 696px;
  --stv-panier-recapitulatif: 528px;

  column-gap: var(--stv-espace-24);
  justify-content: start;
}

.stv-compte-panier .stv-panier .stv-panier__entete {
  display: none;
}

.stv-compte-panier .stv-panier .stv-panier__tableau :is(.product-price, .stv-ligne-panier__unitaire),
.stv-compte-panier .stv-panier .stv-panier__col--prix {
  display: none;
}

/*
   En desktop, les rangées grises de la maquette (`156:5665`, `156:5673`) :
   en-tête gris à 16 (Inter 16, anthracite à 70 %, sans capitales), rangées
   grises de 128 (marge 16, vignette 96), filet anthracite à 20 % entre elles.
*/
@media (min-width: 1025px) {
  .stv-compte-panier .stv-panier .stv-panier__col--media {
    width: 128px;
  }

  .stv-compte-panier .stv-panier .stv-panier__col--produit {
    width: 302px;
  }

  .stv-compte-panier .stv-panier .stv-panier__col--quantite {
    width: 190px;
  }

  .stv-compte-panier .stv-panier .stv-panier__tableau.stv-panier__tableau thead th {
    padding: var(--stv-espace-16);
    border-bottom: 1px solid var(--stv-filet-liste);
    background: var(--stv-gris-clair);
    color: var(--stv-texte-mention);
    font-size: var(--stv-taille-texte);
    text-transform: none;
    vertical-align: middle;
  }

  .stv-compte-panier .stv-ligne-panier.stv-ligne-panier--tableau > :is(td, th) {
    padding: var(--stv-espace-16) var(--stv-espace-16) var(--stv-espace-16) 0;
    border-bottom: 1px solid var(--stv-filet-liste);
    background: var(--stv-gris-clair);
  }

  .stv-compte-panier .stv-ligne-panier.stv-ligne-panier--tableau > .stv-ligne-panier__media {
    padding-left: var(--stv-espace-16);
  }

  .stv-compte-panier .stv-ligne-panier.stv-ligne-panier--tableau:not(:has(~ .stv-ligne-panier--tableau)) > :is(td, th) {
    padding-bottom: var(--stv-espace-16);
    border-bottom: 0;
  }

  .stv-compte-panier .stv-ligne-panier--tableau .stv-ligne-panier__image.stv-ligne-panier__image {
    width: 96px;
    height: 96px;
  }
}

/*
   Sous 1441, la vue n'a plus 1 248 (848 en 1440) : le récapitulatif passe
   sous le tableau, à droite, comme sur la page panier sous 1281.
*/
@media (max-width: 1440px) {
  .stv-compte-panier .stv-panier.stv-panier.stv-panier {
    grid-template-columns: minmax(0, 1fr);
  }

  .stv-compte-panier .stv-panier.stv-panier > .stv-panier__collaterales {
    grid-column: 1;
    justify-self: end;
    width: 100%;
    max-width: 528px;
    margin-top: var(--stv-espace-32);
  }
}

@media (max-width: 1024px) {
  .stv-compte-panier .stv-panier.stv-panier > .stv-panier__collaterales {
    justify-self: stretch;
    max-width: none;
  }
}

/* --- 6. Les listes : commandes et devis (`156:5862`, `156:5698`) ------ */

/*
   Un tableau : rangée d'en-tête grise, 12 / 16, Inter 16 noir rogné aux
   capitales (`156:5723`) ; filet anthracite à 20 % sous chaque rangée ;
   rangées de 12 / 16. Colonnes égales pour les devis (quatre `flex-1`),
   23 % × 3 puis le total et les actions pour les commandes (284 / 286 /
   289 sur 1 246). La maquette des commandes n'a pas de marge à gauche
   (celle des devis en a 16) : 16 partout, écart assumé.
*/
.stv-compte .stv-compte-liste.stv-compte-liste {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  background: transparent;
  table-layout: fixed;
}

.stv-compte .stv-compte-liste.stv-compte-liste :is(th, td) {
  padding: var(--stv-espace-12) var(--stv-espace-16);
  border: 0;
  border-bottom: 1px solid var(--stv-filet-liste);
  background: transparent;
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 400;
  line-height: var(--stv-interligne-texte);
  text-align: left;
  vertical-align: middle;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.stv-compte .stv-compte-liste.stv-compte-liste thead th {
  background: var(--stv-gris-clair);
}

/*
   Les largeurs ne valent qu'en tableau : à 0,3,2, elles battaient le
   `width: auto` du mobile (0,3,1) — « Numéro de commande » sortait à 30 de
   large sur trois lignes et « Statut » débordait de l'écran (393, 29/09).
*/
@media (min-width: 768px) {
  .stv-compte .stv-compte-liste--commandes thead th:nth-child(-n + 3) {
    width: 23%;
  }

  .stv-compte .stv-compte-liste--commandes thead th:last-child {
    width: 12%;
  }
}

.stv-compte .stv-compte-liste.stv-compte-liste :is(th, td):last-child:is(.woocommerce-orders-table__header-order-actions, .woocommerce-orders-table__cell-order-actions, .quotes-actions, .quote-actions) {
  text-align: right;
}

/* Le numéro : un lien, sans soulignement tant qu'on ne le survole pas (la maquette l'écrit en texte). */
.stv-compte .stv-compte-liste.stv-compte-liste a:not(.stv-bouton) {
  color: var(--stv-noir);
  text-decoration: none;
}

.stv-compte .stv-compte-liste.stv-compte-liste a:not(.stv-bouton):hover,
.stv-compte .stv-compte-liste.stv-compte-liste a:not(.stv-bouton):focus-visible {
  text-decoration: underline;
  text-underline-position: from-font;
}

/* Le total : Inter Medium 16, puis « pour 1 article » en Inter 12 anthracite à 4 (`156:5906`). */
.stv-compte .stv-compte-liste__montant {
  font-weight: 500;
}

.stv-compte .stv-compte-liste__montant .amount,
.stv-compte .stv-compte-liste__montant :is(del, ins) {
  font-weight: 500;
  text-decoration-thickness: 1px;
}

.stv-compte .stv-compte-liste__detail {
  margin-left: var(--stv-espace-4);
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-copyright);
}

/*
   Les actions : une boîte flex de BLOC. En `inline-flex`, le bouton de 36
   était sur une ligne que le rognage de la cellule raccourcissait : la rangée
   sortait à 37 et le bouton débordait sur les filets (mesuré le 29/09). Un
   contexte flex n'a pas de ligne à rogner : 12 + 36 + 12.
*/
.stv-compte .stv-compte-liste__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--stv-espace-8);
}

/*
   Le badge : dans une cellule rognée, il garde sa boîte de 24 (socle § 7).
   `vertical-align` : la cellule est centrée, le badge aussi.
*/
.stv-compte .stv-compte-liste .stv-badge {
  vertical-align: middle;
}

/*
   MOBILE (`156:6240`, dessiné pour les devis) : numéro | date et total
   empilés | statut ; la rangée d'en-tête ne garde que « Numéro » et
   « Statut ». Les commandes (non dessinées) prennent la même forme, leurs
   actions sur une rangée à elles dessous. La rangée devient une grille :
   les rôles de tableau restent dans le balisage.
*/
@media (max-width: 767px) {
  .stv-compte .stv-compte-liste.stv-compte-liste,
  .stv-compte .stv-compte-liste.stv-compte-liste :is(thead, tbody) {
    display: block;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) auto;
    align-items: center;
    column-gap: var(--stv-espace-8);
    row-gap: var(--stv-espace-8);
    padding: var(--stv-espace-12) var(--stv-espace-8);
    border-bottom: 1px solid var(--stv-filet-liste);
  }

  .stv-compte .stv-compte-liste.stv-compte-liste thead tr {
    background: var(--stv-gris-clair);
  }

  .stv-compte .stv-compte-liste.stv-compte-liste :is(th, td) {
    display: block;
    width: auto;
    padding: 0;
    border: 0;
    font-size: var(--stv-taille-petit);
  }

  .stv-compte .stv-compte-liste.stv-compte-liste thead th {
    font-size: var(--stv-taille-texte);
  }

  /* Numéro en colonne 1 sur deux rangées ; date puis total en colonne 2 ; statut en colonne 3. */
  .stv-compte .stv-compte-liste.stv-compte-liste tr > :first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste :is(.woocommerce-orders-table__cell-order-date, .quotes-date) {
    grid-column: 2;
    grid-row: 1;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste :is(.woocommerce-orders-table__cell-order-total, .quotes-total) {
    grid-column: 2;
    grid-row: 2;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste :is(.woocommerce-orders-table__cell-order-status, .quotes-status) {
    grid-column: 3;
    grid-row: 1 / span 2;
    justify-self: end;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste :is(.woocommerce-orders-table__cell-order-actions, .quotes-actions) {
    grid-column: 1 / -1;
    grid-row: 3;
    text-align: right;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste thead tr > :not(:first-child):not(.woocommerce-orders-table__header-order-status):not(.order-status) {
    display: none;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste thead :is(.woocommerce-orders-table__header-order-status, .order-status) {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  .stv-compte .stv-compte-liste.stv-compte-liste thead tr > :first-child {
    grid-row: 1;
  }

  .stv-compte .stv-compte-liste__montant {
    display: block;
  }

  .stv-compte .stv-compte-liste__detail {
    margin-left: 0;
  }

  .stv-compte .stv-compte-liste .stv-badge {
    font-size: var(--stv-taille-petit);
  }
}

/* Précédentes / suivantes. */
.stv-compte .stv-compte-pages {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--stv-espace-16);
  margin-top: var(--stv-espace-24);
}

/* Une liste vide (non dessinée, 142) : une phrase, un bouton. */
.stv-compte .stv-compte-vide .stv-compte-vide__texte,
.stv-compte-page .stv-compte-vide__texte {
  margin: 0 0 var(--stv-espace-24);
  color: var(--stv-anthracite);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.stv-compte .stv-compte-vide .stv-compte-vide__action {
  margin: 0;
}

/* --- 7. Le détail d'un devis ou d'une commande (`156:5752`, `156:5912`) --- */

/* La ligne à badge (socle § 7), à 16 de la barre, 32 au-dessus des cartes. */
.stv-compte .stv-compte-detail__entete {
  margin: 0 0 var(--stv-espace-32);
}

/*
   696 | 24 | 528 en 1 248 (`156:5784`) : les deux colonnes en fractions de
   leurs largeurs dessinées. Sous 1441 (848 en 1440), l'une sous l'autre.
*/
.stv-compte .stv-compte-detail {
  display: grid;
  grid-template-columns: minmax(0, 696fr) minmax(0, 528fr);
  gap: var(--stv-espace-24);
  align-items: start;
}

.stv-compte .stv-compte-detail > * {
  min-width: 0;
  margin: 0;
}

.stv-compte .stv-compte-detail__cote {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-24);
}

@media (max-width: 1440px) {
  .stv-compte .stv-compte-detail {
    grid-template-columns: minmax(0, 1fr);
  }
}

/*
   LA CARTE DES PRODUITS (`156:5785`) : grise de bout en bout. En-tête à 24
   (« Produits dans votre demande » | « Total du devis », Inter Medium 16
   rogné), filet ; lignes de 96 à 16 (vignette 64, 16, nom Outfit 16 et
   déclinaison Outfit 14 à 80 % à 2, 32, prix Inter 14) séparées par le
   filet anthracite à 20 % ; totaux à 24 (sous-total, … à 16 ; total à 32,
   « (dont … TVA) » en Inter 16 anthracite dessous).

   POIDS : la ligne « lecture » est écrite pour le récapitulatif (0,2,1 à
   0,3,1 dans composants.css, dont `:first-child` et `:not(:has(~ …))`) —
   ses règles de compte sont à 0,4,1.
*/
.stv-compte .stv-compte-carte {
  display: block;
  margin: 0;
  background: var(--stv-gris-clair);
}

.stv-compte .stv-compte-articles.stv-compte-articles {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  background: transparent;
  table-layout: auto;
}

.stv-compte .stv-compte-articles.stv-compte-articles thead th {
  padding: var(--stv-espace-24);
  border: 0;
  border-bottom: 1px solid var(--stv-filet-liste);
  background: transparent;
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  text-align: left;
  vertical-align: middle;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.stv-compte .stv-compte-articles.stv-compte-articles thead th.product-total {
  text-align: right;
  white-space: nowrap;
}

.stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > :is(td, th) {
  padding: var(--stv-espace-16) 0;
  border-bottom: 1px solid var(--stv-filet-liste);
  font-size: var(--stv-taille-petit);
}

.stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > .stv-ligne-panier__media {
  width: 64px;
  padding-left: var(--stv-espace-16);
  padding-right: var(--stv-espace-16);
}

.stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > .stv-ligne-panier__produit {
  padding-right: var(--stv-espace-32);
}

.stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > .stv-ligne-panier__total {
  padding-right: var(--stv-espace-16);
}

/* Le nom et sa quantité sur une ligne (« Ropes × 3 ») : Outfit 16 noir, sans soulignement. */
.stv-compte .stv-compte-articles .stv-ligne-panier--lecture .stv-ligne-panier__produit .stv-ligne-panier__nom,
.stv-compte .stv-compte-articles .stv-ligne-panier--lecture .stv-ligne-panier__produit .stv-ligne-panier__multiplicateur {
  display: inline;
  color: var(--stv-noir);
  font-family: var(--stv-police-titres);
  font-size: var(--stv-taille-texte);
  font-weight: 400;
  line-height: var(--stv-interligne-texte);
  text-decoration: none;
}

.stv-compte .stv-compte-articles .stv-ligne-panier--lecture .stv-ligne-panier__produit a.stv-ligne-panier__nom:hover,
.stv-compte .stv-compte-articles .stv-ligne-panier--lecture .stv-ligne-panier__produit a.stv-ligne-panier__nom:focus-visible {
  text-decoration: underline;
  text-underline-position: from-font;
}

.stv-compte .stv-compte-articles .stv-ligne-panier--lecture .stv-ligne-panier__produit .wc-item-meta {
  margin-top: 2px;
}

/* Le prix : Inter 14 noir, à droite. */
.stv-compte .stv-compte-articles .stv-ligne-panier--lecture .stv-ligne-panier__prix {
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-petit);
  font-weight: 400;
}

/*
   Les totaux (`156:5799`) : marge 24 ; libellé et montant Inter Medium 16
   noir, rognés ; 16 entre deux lignes, 32 avant le total. Une table en
   bordures séparées : c'est elle qui porte la marge.
*/
.stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: var(--stv-espace-24);
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
}

.stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux :is(th, td) {
  padding: var(--stv-espace-16) 0 0;
  border: 0;
  background: transparent;
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  text-align: right;
  vertical-align: top;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux th {
  padding-right: var(--stv-espace-16);
  text-align: left;
  white-space: nowrap;
}

.stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux tr:first-child > * {
  padding-top: 0;
}

.stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux tr.order-total > * {
  padding-top: var(--stv-espace-32);
}

.stv-compte .stv-compte-carte__totaux .amount {
  font-weight: 500;
}

/* « (dont 381,67€ TVA) » : Inter Regular 16 anthracite, à 10 sous le montant (`156:5808`). */
.stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux small.includes_tax {
  display: block;
  margin-top: 10px;
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-texte);
  font-weight: 400;
}

.stv-compte .stv-compte-carte__totaux small.includes_tax .amount {
  font-weight: 400;
}

/* Payer, Annuler ; Accepter, Rejeter (non dessinés) : sous les totaux, dans la carte. */
.stv-compte .stv-compte-carte .stv-compte-carte__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--stv-espace-16);
  margin: 0;
  padding: 0 var(--stv-espace-24) var(--stv-espace-24);
}

/*
   LA FICHE (`156:5811`) : l'en-tête gris (marge 24 / 16, Inter Medium 16
   rogné — 60 de haut), puis à 16, SANS fond, les rangées à 24 : libellé de
   104 (Inter Medium 16 noir), 8, valeur (Inter 16 anthracite) ; 16 entre
   deux rangées. Un long message passe à la ligne dans sa colonne.
*/
.stv-compte .stv-compte-fiche {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-16);
  margin: 0;
}

.stv-compte .stv-compte-fiche .stv-compte-carte__entete {
  margin: 0;
  padding: var(--stv-espace-24) var(--stv-espace-16);
  background: var(--stv-gris-clair);
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  letter-spacing: 0;
  text-transform: none;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.stv-compte .stv-compte-fiche .stv-compte-fiche__liste {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-16);
  margin: 0;
  padding: var(--stv-espace-24);
}

.stv-compte .stv-compte-fiche .stv-compte-fiche__rangee {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  column-gap: var(--stv-espace-8);
}

.stv-compte .stv-compte-fiche .stv-compte-fiche__rangee > :is(dt, dd) {
  margin: 0;
  padding: 0;
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
  overflow-wrap: anywhere;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.stv-compte .stv-compte-fiche .stv-compte-fiche__rangee > dt {
  color: var(--stv-noir);
  font-weight: 500;
}

.stv-compte .stv-compte-fiche .stv-compte-fiche__rangee > dd {
  color: var(--stv-anthracite);
  font-weight: 400;
}

/* La réponse de la boutique à un devis (non dessinée) : sous la fiche, même en-tête. */
.stv-compte .stv-compte-devis__message {
  padding: 0 var(--stv-espace-24);
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.stv-compte .stv-compte-devis__message p {
  margin: 0 0 var(--stv-espace-8);
}

/*
   Les informations d'un devis (non dessinées) : « Vous recevrez bientôt un
   devis ! », la date d'expiration, le motif d'un refus, le PDF — sous la
   ligne à badge. 0,3,0 : la feuille de YITH pose 10 de marge à tout `p` de
   l'enveloppe (0,1,1).
*/
.stv-compte .stv-compte-devis__infos {
  margin: calc(var(--stv-espace-16) - var(--stv-espace-32)) 0 var(--stv-espace-32);
}

.stv-compte .stv-compte-devis .stv-compte-devis__info {
  margin: 0 0 var(--stv-espace-8);
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.stv-compte .stv-compte-devis .stv-compte-devis__pdf {
  color: var(--stv-noir);
  font-weight: 500;
  text-decoration: underline;
  text-underline-position: from-font;
}

/* Le suivi d'une commande (notes au client, non dessiné). */
.stv-compte .stv-compte-suivi {
  margin: calc(var(--stv-espace-16) - var(--stv-espace-32)) 0 var(--stv-espace-32);
}

.stv-compte .stv-compte-suivi .stv-compte-suivi__titre {
  margin: 0 0 var(--stv-espace-8);
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  text-transform: none;
}

.stv-compte .stv-compte-suivi .stv-compte-suivi__liste {
  margin: 0;
  padding: 0;
  list-style: none;
}

.stv-compte .stv-compte-suivi .stv-compte-suivi__liste > li {
  margin: 0;
  padding: var(--stv-espace-12) 0;
  border-bottom: 1px solid var(--stv-filet-liste);
}

.stv-compte .stv-compte-suivi .stv-compte-suivi__date {
  margin: 0 0 var(--stv-espace-4);
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-petit);
}

.stv-compte .stv-compte-suivi .stv-compte-suivi__texte p {
  margin: 0;
}

/*
   MOBILE (`156:6295`) : la ligne à badge en plus petit ; les lignes en
   deux étages — nom et déclinaison, puis le prix à 16 dessous —, sans
   colonne de prix ; la fiche en rangées empilées, libellé au-dessus.
*/
@media (max-width: 767px) {
  .stv-compte .stv-compte-detail__entete .stv-badge-ligne__titre {
    font-size: var(--stv-taille-texte);
  }

  .stv-compte .stv-compte-detail__entete :is(.stv-badge-ligne__date, .stv-badge) {
    font-size: var(--stv-taille-petit);
  }

  /*
     Le tableau, son en-tête et son corps passent en BLOC : une rangée en
     grille dans un tableau est enveloppée d'une cellule anonyme qui se
     resserre sur son contenu — la ligne sortait à 182 de large et 286 de
     haut, le nom sur 70 (mesuré à 393 le 29/09). L'en-tête devient une
     rangée flex, le filet passe des cellules à la rangée.
  */
  .stv-compte .stv-compte-articles.stv-compte-articles,
  .stv-compte .stv-compte-articles.stv-compte-articles :is(thead, tbody) {
    display: block;
    width: 100%;
  }

  .stv-compte .stv-compte-articles.stv-compte-articles thead tr {
    display: flex;
    justify-content: space-between;
    column-gap: var(--stv-espace-16);
    border-bottom: 1px solid var(--stv-filet-liste);
  }

  .stv-compte .stv-compte-articles.stv-compte-articles thead th {
    display: block;
    padding: var(--stv-espace-16);
    border-bottom: 0;
    font-size: var(--stv-taille-petit);
  }

  .stv-compte .stv-compte-articles.stv-compte-articles tbody tr.stv-ligne-panier--lecture {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    column-gap: var(--stv-espace-16);
    row-gap: var(--stv-espace-16);
    padding: var(--stv-espace-16);
    border-bottom: 1px solid var(--stv-filet-liste);
  }

  .stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > :is(td, th) {
    display: block;
    width: auto;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > .stv-ligne-panier__media {
    grid-row: 1 / span 2;
    width: 64px;
    padding: 0;
  }

  .stv-compte .stv-compte-articles.stv-compte-articles .stv-ligne-panier.stv-ligne-panier--lecture > .stv-ligne-panier__total {
    grid-column: 2;
  }

  .stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux {
    padding: var(--stv-espace-16);
  }

  .stv-compte .stv-compte-carte__totaux.stv-compte-carte__totaux :is(th, td) {
    font-size: var(--stv-taille-petit);
  }

  .stv-compte .stv-compte-fiche .stv-compte-fiche__liste {
    padding: var(--stv-espace-16) 0;
  }

  .stv-compte .stv-compte-fiche .stv-compte-fiche__rangee {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--stv-espace-8);
  }

  .stv-compte .stv-compte-fiche .stv-compte-fiche__rangee > dt {
    font-size: var(--stv-taille-petit);
  }
}

/* --- 8. Les adresses (`156:6050`) ------------------------------------- */

.stv-compte .stv-compte-adresses.stv-compte-adresses {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-16);
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Une carte grise, marge 16 : l'adresse à gauche, « MODIFIER » à droite. */
.stv-compte .stv-compte-adresse {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--stv-espace-24);
  margin: 0;
  padding: var(--stv-espace-16);
  background: var(--stv-gris-clair);
}

.stv-compte .stv-compte-adresse__contenu {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-8);
  min-width: 0;
}

.stv-compte .stv-compte-adresse .stv-compte-adresse__entete {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--stv-espace-8);
  margin: 0;
}

/* Nom, étiquette, adresse, « MODIFIER » : tous en Inter Medium 16 noir (`156:6077` → `156:6081`). */
.stv-compte .stv-compte-adresse :is(.stv-compte-adresse__nom, .stv-compte-adresse__type, .stv-compte-adresse__ligne, .stv-compte-adresse__modifier) {
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  font-style: normal;
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
}

/* L'étiquette : fond noir à 5 %, 2 / 8 (`156:6078`). */
.stv-compte .stv-compte-adresse .stv-compte-adresse__type {
  padding: 2px var(--stv-espace-8);
  background: var(--stv-fond-etat);
}

.stv-compte .stv-compte-adresse .stv-compte-adresse__ligne {
  margin: 0;
  overflow-wrap: anywhere;
}

.stv-compte .stv-compte-adresse a.stv-compte-adresse__modifier {
  flex: 0 0 auto;
  text-decoration: underline;
  text-decoration-skip-ink: none;
  text-transform: uppercase;
  text-underline-position: from-font;
}

@media (max-width: 767px) {
  .stv-compte .stv-compte-adresse {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--stv-espace-16);
  }
}

/* --- 9. Les formulaires : adresse, profil (`156:6090`) ---------------- */

/*
   Le formulaire habillé du socle (§ 9). Ce qui est propre au compte : des
   rangées à 16 (`156:6113`, libellés visibles DANS la maquette — la
   commande garde ses 24), le titre du formulaire d'adresse (Inter Medium
   20, comme « Changement de mot de passe »), le groupe du mot de passe à
   48, le bouton à 48.
*/
.stv-compte .stv-compte-formulaire .stv-champs {
  row-gap: var(--stv-espace-16);
}

.stv-compte .stv-compte-formulaire .stv-compte-formulaire__titre,
.stv-compte .stv-compte-formulaire .stv-compte-formulaire__legende {
  margin: 0 0 var(--stv-espace-24);
  padding: 0;
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-carte);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  letter-spacing: 0;
  text-transform: none;
}

.stv-compte .stv-compte-formulaire .stv-compte-formulaire__groupe {
  min-width: 0;
  margin: var(--stv-espace-48) 0 0;
  padding: 0;
  border: 0;
}

.stv-compte .stv-compte-formulaire .stv-compte-formulaire__legende-aide {
  display: block;
  margin-top: var(--stv-espace-4);
  color: var(--stv-texte-indication);
  font-size: var(--stv-taille-petit);
  font-weight: 400;
}

/* La phrase d'aide sous « Nom affiché » : Inter 14 anthracite à 50 %, à 12 du champ (`156:6129`). */
.stv-compte .stv-compte-formulaire .stv-compte-formulaire__aide {
  margin-top: var(--stv-espace-4);
  color: var(--stv-texte-indication);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-petit);
  font-style: normal;
  line-height: var(--stv-interligne-texte);
}

.stv-compte .stv-compte-formulaire .stv-compte-formulaire__envoi {
  margin: var(--stv-espace-48) 0 0;
}

/* --- 10. Connexion, inscription, mot de passe (non dessinés, 142) ------- */

/*
   Une carte grise de 528 (le récapitulatif), marge 32, champs BLANCS — la
   connexion ouverte de la commande —, titre Outfit Medium 24 (la barre
   des vues). Deux cartes côte à côte quand l'inscription est ouverte, une
   seule colonne sous 1025. woocommerce.css encadre `form.login` et
   `form.register` (filet, 20, 2 em, arrondi à 0,2,1) : remis à nu à 0,3,1.
*/
.stv-compte-acces {
  display: grid;
  grid-template-columns: minmax(0, 528px);
  justify-content: center;
  gap: var(--stv-gouttiere);
  align-items: start;
}

.stv-compte-acces.stv-compte-acces--double {
  grid-template-columns: repeat(2, minmax(0, 528px));
}

.stv-compte-acces .stv-compte-acces__carte {
  --stv-champ-fond: var(--stv-blanc);

  box-sizing: border-box;
  padding: var(--stv-espace-32);
  background: var(--stv-gris-clair);
}

/* Outfit Medium 24 / 1,1, −0,24 d'approche, 48 au-dessus des champs (331:20451,
   recette R21, 26/10 — c'était 24 / 1,5 et 24 dessous). Vaut aussi pour les
   cartes du mot de passe oublié et du nouveau mot de passe. */
.stv-compte-acces .stv-compte-acces__titre {
  margin: 0 0 var(--stv-espace-48);
  color: var(--stv-noir);
  font-family: var(--stv-police-titres);
  font-size: var(--stv-taille-intertitre);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-transform: none;
}

.stv-compte-acces form.stv-connexion.stv-connexion {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.stv-compte-acces .stv-compte-acces__texte {
  margin: 0;
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

/* Le texte de confidentialité de l'inscription (WooCommerce, `woocommerce_register_form`). */
.stv-compte-acces .woocommerce-privacy-policy-text p {
  margin: var(--stv-espace-8) 0 0;
  color: var(--stv-noir);
  font-size: var(--stv-taille-petit);
  line-height: var(--stv-interligne-texte);
}

/* Les liens de ces petites lignes restent à leur taille (un lien du compte
   prenait 16 / 24 et rehaussait sa ligne : 90 au lieu de 84 ici, 24 au lieu
   de 21 pour « Mot de passe oublié ? » et la bascule). */
.stv-compte-acces .woocommerce-privacy-policy-text a,
.stv-compte-acces .stv-champs .stv-connexion__oubli a,
.stv-compte-acces .stv-compte-acces__bascule a {
  font-size: inherit;
  line-height: inherit;
}

.stv-compte-acces .woocommerce-privacy-policy-text a {
  color: var(--stv-noir);
  font-weight: 500;
  text-decoration: underline;
  text-underline-position: from-font;
}

/*
   UNE CARTE À LA FOIS (recette d'Estevan R21, tâche 198, 26/10 — maquettes
   331:20447 et 331:20498). La connexion d'abord ; « Créer un compte » sous son
   bouton montre l'inscription, « Se connecter » y ramène (form-login.php : vue
   choisie par le serveur, basculée sans rechargement par son petit script).
   La carte cachée porte `hidden`. Mesures de la maquette : champs à 16 l'un de
   l'autre, « Mot de passe oublié ? » à 8 sous le sien, bouton à 48 des
   champs, la phrase de bascule à 16 sous le bouton ; le texte de
   confidentialité à 8 sous le mot de passe (règle ci-dessus). Le
   `.stv-compte-acces--double` de la mise côte à côte n'est plus émis.
*/
.stv-compte-acces .stv-compte-acces__carte[hidden] {
  display: none;
}

.stv-compte-acces .stv-connexion .stv-champs {
  row-gap: var(--stv-espace-16);
}

.stv-compte-acces .stv-champs .stv-connexion__oubli {
  margin: calc(var(--stv-espace-8) - var(--stv-espace-16)) 0 0;
  line-height: var(--stv-interligne-texte);
}

.stv-compte-acces form.stv-connexion .stv-connexion__envoi {
  margin: var(--stv-espace-48) 0 0;
}

.stv-compte-acces .stv-compte-acces__bascule {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--stv-espace-8);
  margin: var(--stv-espace-16) 0 0;
  color: rgba(2, 10, 18, 0.7);
  font-size: var(--stv-taille-petit);
  line-height: var(--stv-interligne-texte);
}

.stv-compte-acces .stv-compte-acces__bascule a {
  color: var(--stv-noir);
  font-weight: 500;
  text-decoration: underline;
  text-underline-position: from-font;
}

.stv-compte-page .woocommerce-notices-wrapper:not(:empty) + .stv-compte-acces,
.stv-compte-page > .woocommerce > .woocommerce-message + .stv-compte-acces {
  margin-top: var(--stv-espace-24);
}

/*
   Les avis au-dessus des cartes (erreur de connexion, « L'e-mail de
   réinitialisation … a été envoyé ») : à la largeur des cartes, centrés —
   ils prenaient les 1 680 de la page au-dessus d'une carte de 528 (29/09).
*/
.stv-compte-page--acces > .woocommerce {
  --stv-compte-acces-largeur: 528px;
}

.stv-compte-page--acces > .woocommerce:has(> .stv-compte-acces--double) {
  --stv-compte-acces-largeur: calc(2 * 528px + var(--stv-gouttiere));
}

.stv-compte-page--acces > .woocommerce > :is(.woocommerce-notices-wrapper, .woocommerce-message, .woocommerce-error, .woocommerce-info) {
  box-sizing: border-box;
  max-width: var(--stv-compte-acces-largeur);
  margin-inline: auto;
}

@media (max-width: 1024px) {
  .stv-compte-acces.stv-compte-acces--double {
    grid-template-columns: minmax(0, 528px);
  }

  .stv-compte-page--acces > .woocommerce:has(> .stv-compte-acces--double) {
    --stv-compte-acces-largeur: 528px;
  }
}

@media (max-width: 767px) {
  .stv-compte-acces,
  .stv-compte-acces.stv-compte-acces--double {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--stv-espace-32);
  }

  .stv-compte-acces .stv-compte-acces__carte {
    padding: var(--stv-espace-16);
  }
}

/* --- 11. Le refus d'un devis — la boîte de YITH (jQuery UI) ----------- */

/*
   NON DESSINÉE. Le script de YITH ouvre `#ywraq-reject-confirm` en boîte
   jQuery UI (`dialogClass: 'ywraq-reject-confirm'`) et la feuille de YITH
   l'arrondit à 10 / 14. Ici : carte blanche carrée, marge 32, titre Outfit
   Medium 24, zone de texte du socle, bouton primaire ; au-dessus de
   l'en-tête fixe du site.
*/
.ui-widget-overlay.ui-front {
  z-index: 1000;
  background: var(--stv-voile-lateral);
  opacity: 1;
}

.ui-dialog.ywraq-reject-confirm.ywraq-reject-confirm {
  z-index: 1001;
  box-sizing: border-box;
  max-width: calc(100vw - 32px);
  padding: var(--stv-espace-32);
  border: 0;
  border-radius: 0;
  background: var(--stv-blanc);
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
}

.ui-dialog.ywraq-reject-confirm .ui-dialog-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0 var(--stv-espace-16);
  border: 0;
  border-radius: 0;
  background: transparent;
}

.ui-dialog.ywraq-reject-confirm .ui-dialog-title {
  float: none;
  width: auto;
  margin: 0;
  color: var(--stv-noir);
  font-family: var(--stv-police-titres);
  font-size: var(--stv-taille-intertitre);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
}

.ui-dialog.ywraq-reject-confirm .ui-dialog-content {
  padding: 0;
}

.ui-dialog.ywraq-reject-confirm #ywraq-reject-confirm p {
  margin: 0 0 var(--stv-espace-16);
  color: var(--stv-anthracite);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.ui-dialog.ywraq-reject-confirm #ywraq-reject-confirm textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 96px;
  padding: var(--stv-espace-8) var(--stv-espace-12);
  border: 1px solid var(--stv-filet-champ);
  border-radius: 0;
  background: var(--stv-gris-clair);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.ui-dialog.ywraq-reject-confirm #ywraq-reject-confirm .stv-bouton {
  width: 100%;
  margin-top: var(--stv-espace-24);
}

/* --- 12. La liste de souhaits (`156:5985`) — lot « Favoris », 13/10 ---- */

/*
   LA BARRE (`156:6005`) : le titre à gauche, le champ « Rechercher des
   produits… » à droite (301 × 32), puis 48 jusqu'à la grille (16 sur les
   autres vues). Le champ passe sous le titre quand la place manque.
*/
.stv-compte--wishlist .stv-compte__barre,
.stv-favoris-invite .stv-favoris-invite__barre {
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--stv-espace-8) var(--stv-espace-24);
  margin-bottom: var(--stv-espace-48);
}

/*
   LE CHAMP (`156:6007`) : celui de l'en-tête (`156:4967`) — fond gris clair,
   16 / 4 de marge, loupe à 12 du texte, Inter 16. Le champ lui-même porte
   `stv-recherche__champ`, que composants.css remet à nu à 0,4,0 (un style de
   champ global le vise à 0,3,1).
*/
.stv-favoris-recherche {
  display: flex;
  align-items: center;
  flex: 0 1 301px;
  box-sizing: border-box;
  min-width: 0;
  height: 32px;
  margin: 0;
  padding-inline: var(--stv-espace-16);
  gap: var(--stv-espace-12);
  background: var(--stv-gris-clair);
  color: var(--stv-texte);
}

.stv-favoris-recherche .stv-favoris-recherche__icone {
  flex: 0 0 auto;
}

.stv-favoris-recherche .stv-favoris-recherche__champ {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}

.stv-favoris-recherche:focus-within {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/*
   LA GRILLE (`156:6010`) : trois colonnes à 16 d'écart dans les 1 248 de la
   vue (404 dessinés ; 405,3 ici, colonnes fluides). Hello pose marge et
   retrait aux listes.

   Largeurs intermédiaires NON DESSINÉES, provisoires : deux colonnes dès
   que la vue se resserre (≤ 1 440 : 848 de large), une sous 601.
*/
.stv-favoris {
  --stv-favoris-colonnes: 3;
}

.stv-favoris:focus {
  outline: none;
}

.stv-favoris[aria-busy="true"] .stv-favoris__grille {
  opacity: 0.5;
}

.stv-favoris .stv-favoris__grille.stv-favoris__grille {
  display: grid;
  grid-template-columns: repeat(var(--stv-favoris-colonnes), minmax(0, 1fr));
  gap: var(--stv-espace-16);
  margin: 0;
  padding: 0;
  list-style: none;
}

.stv-favoris .stv-favoris__element {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.stv-favoris .stv-favoris__element > .stv-carte-produit {
  flex: 1 1 auto;
  min-width: 0;
}

/* `156:6017` : la pagination à 48 sous la grille, comme au catalogue. */
.stv-favoris .stv-pagination {
  margin-top: var(--stv-espace-48);
}

.stv-favoris .stv-favoris__message {
  margin: 0;
  color: var(--stv-anthracite);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.stv-favoris .stv-compte-vide__action {
  margin: 0;
}

@media (max-width: 1440px) {
  .stv-favoris {
    --stv-favoris-colonnes: 2;
  }
}

@media (max-width: 600px) {
  .stv-favoris {
    --stv-favoris-colonnes: 1;
  }
}

@media (max-width: 767px) {
  .stv-compte--wishlist .stv-compte__barre,
  .stv-favoris-invite .stv-favoris-invite__barre {
    margin-bottom: var(--stv-espace-32);
  }

  .stv-favoris-recherche {
    flex-basis: 100%;
  }
}

/*
   LA VUE DE L'INVITÉ — NON DESSINÉE (à Estevan) : au-dessus des cartes de
   connexion, à la largeur de la page. La barre des vues du compte (Outfit
   Medium 24, filet dessous), une phrase, la même grille — quatre colonnes
   dans les 1 680 de la page, trois puis deux puis une.
*/
.stv-favoris-invite {
  margin-bottom: var(--stv-espace-48);
}

.stv-favoris-invite .stv-favoris-invite__barre {
  display: flex;
  align-items: center;
  margin-top: 0;
  margin-bottom: var(--stv-espace-16);
  padding: 0 0 var(--stv-espace-8);
  border-bottom: 1px solid var(--stv-filet-liste);
}

.stv-favoris-invite .stv-favoris-invite__titre {
  margin: 0;
  color: var(--stv-noir);
  font-family: var(--stv-police-titres);
  font-size: var(--stv-taille-intertitre);
  font-weight: 500;
  line-height: var(--stv-interligne-texte);
  letter-spacing: 0;
  text-transform: none;
}

.stv-favoris-invite .stv-favoris-invite__texte {
  margin: 0 0 var(--stv-espace-32);
  color: var(--stv-anthracite);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-texte);
  line-height: var(--stv-interligne-texte);
}

.stv-favoris-invite .stv-favoris {
  --stv-favoris-colonnes: 4;
}

@media (max-width: 1440px) {
  .stv-favoris-invite .stv-favoris {
    --stv-favoris-colonnes: 3;
  }
}

@media (max-width: 1024px) {
  .stv-favoris-invite .stv-favoris {
    --stv-favoris-colonnes: 2;
  }
}

@media (max-width: 600px) {
  .stv-favoris-invite .stv-favoris {
    --stv-favoris-colonnes: 1;
  }
}

/* --- 13. La carte de la liste de souhaits (`156:5343`) ----------------- */

/*
   LE MODE `souhaits` DE LA CARTE PRODUIT (parties/carte-produit.php) —
   402 × 594 dans la maquette : marge 16, 16 entre les blocs ; le premier
   bloc (galerie, segments, pastilles, liste d'options) est à 12 ; le nom
   et le prix à 4.

     16 + [ 320 + 12 + 0 + 12 + 21 + 12 + 37 ] + 16 + [ 21 + 4 + 21 ]
        + 16 + 36 + 16 + 18 + 16 = 594

   Sans la rangée « Usage » (pas en V1, tranché le 13/10), la rangée de 21
   n'existe que s'il y a des pastilles ; sans liste d'options (produit
   simple), le bloc s'arrête aux segments. La carte prend la hauteur de sa
   rangée : la date reste au pied.

   Le lien du nom NE couvre PLUS la carte (`::after` retiré) : elle porte
   des commandes — flèches, pastilles, liste, bouton, corbeille. woocommerce.css
   écrit `.woocommerce img { height: auto }` à 0,1,1 sur toute la page du
   compte : les règles d'image sont à 0,2,0.
*/
.stv-carte-produit.stv-carte-produit--souhaits {
  box-sizing: border-box;
  gap: var(--stv-espace-16);
  transition: opacity 0.2s ease;
}

.stv-carte-produit.stv-carte-produit--souhaits[aria-busy="true"] {
  opacity: 0.5;
  pointer-events: none;
}

.stv-carte-produit--souhaits .stv-carte-produit__lien::after {
  content: none;
}

.stv-carte-produit--souhaits .stv-souhait__haut,
.stv-carte-produit--souhaits .stv-souhait__media {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-12);
  min-width: 0;
}

/* --- La galerie (`156:5345`) : 370 × 320, une image par vue ------------ */

.stv-carte-produit--souhaits .stv-souhait__cadre {
  position: relative;
}

/*
   Défilement natif à accroche, sans barre : au doigt, au pavé, et par les
   deux flèches que carrousels.js câble. La photo n'est PAS recadrée
   (`contain`, fondue par `multiply` comme sur toutes les cartes) : la
   maquette montre une photo d'ambiance en recouvrement, mais un packshot
   recadré perd ses bords — même choix que la scène mobile de la fiche.
*/
.stv-carte-produit--souhaits .stv-souhait__vues.stv-souhait__vues {
  display: flex;
  aspect-ratio: 370 / 320;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  list-style: none;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.stv-carte-produit--souhaits .stv-souhait__vues::-webkit-scrollbar {
  display: none;
}

.stv-carte-produit--souhaits .stv-souhait__vue {
  flex: 0 0 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  scroll-snap-align: start;
}

.stv-carte-produit--souhaits .stv-souhait__lien-image {
  display: block;
  width: 100%;
  height: 100%;
}

.stv-carte-produit--souhaits .stv-souhait__image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  mix-blend-mode: multiply;
}

/*
   LES FLÈCHES (`156:5364`, `156:5366`) : 24 × 24 aux deux bords de l'image,
   centrées 4 sous sa mi-hauteur (relevé : `top: calc(50% - 43px)` d'un bloc
   de 414, soit 164 pour une image de 320), carré `--stv-fond-action`, trait
   noir de 0,9, le tout à 50 %. La suivante est la même icône, retournée.
   Trois classes : `<button>`. Écrites cachées ; carrousels.js les montre
   quand la piste déborde. Survol, focus et bout de course NON DESSINÉS :
   pleine opacité au survol, 25 % en bout de course (`aria-disabled`, jamais
   `disabled` : le focus du clavier resterait en plan).
*/
.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche {
  position: absolute;
  z-index: 1;
  top: calc(50% - 8px);
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--stv-rayon);
  background: var(--stv-fond-action);
  box-shadow: none;
  color: var(--stv-noir);
  opacity: 0.5;
  cursor: pointer;
}

.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche[hidden] {
  display: none;
}

.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche--precedent {
  left: 0;
}

.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche--suivant {
  right: 0;
}

.stv-souhait__fleche--suivant .stv-icone {
  transform: rotate(180deg);
}

.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche:hover,
.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche:focus {
  background: var(--stv-fond-action);
  color: var(--stv-noir);
  opacity: 1;
}

.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche[aria-disabled="true"] {
  opacity: 0.25;
  cursor: default;
}

.stv-souhait__fleche.stv-souhait__fleche.stv-souhait__fleche:focus-visible {
  outline: 2px solid var(--stv-noir);
  outline-offset: 2px;
}

/*
   LES SEGMENTS (`156:5346`) : un par image, 8 d'écart, 2 d'épaisseur — noir
   pour l'image en vue, anthracite à 20 % pour les autres (`--stv-filet-liste`).
   La maquette les trace dans les 2 px AU-DESSUS de leur ligne (boîte de
   hauteur nulle) : à 10 sous l'image, 12 avant la suite. `data-actif` est
   posé par carrousels.js (`[data-stv-piste-segment]`).
*/
.stv-carte-produit--souhaits .stv-segments {
  display: flex;
  gap: var(--stv-espace-8);
  height: 2px;
  margin-top: -2px;
}

.stv-carte-produit--souhaits .stv-segments__segment {
  flex: 1 1 0;
  background: var(--stv-filet-liste);
}

.stv-carte-produit--souhaits .stv-segments__segment[data-actif] {
  background: var(--stv-noir);
}

/* --- Pastilles et liste d'options -------------------------------------- */

/* `156:5351` : la rangée de 21 ; les pastilles à droite, où la maquette les pose (la ligne « Usage », à gauche, n'est pas en V1). */
.stv-carte-produit--souhaits .stv-souhait__rangee {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 21px;
}

.stv-carte-produit--souhaits .stv-souhait__rangee:has(> [hidden]) {
  display: none;
}

/*
   « CHOISIR UNE OPTION » (`156:5360`) : 370 × 37, fond blanc, 8 de marge,
   Inter 14 / 1,5, chevron de 8 × 4 à 8 du bord (le tracé du socle § 9,
   `156:10801`, exporté avec son trait : 9,33 × 5,33). Liste NATIVE, sans
   l'apparence du système. Trois classes : Hello habille `select` (filet,
   arrondi, marge), le kit à 0,1,1.
*/
.stv-carte-produit--souhaits .stv-souhait__options.stv-souhait__options {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  width: 100%;
  height: 37px;
  margin: 0;
  padding: var(--stv-espace-8) var(--stv-espace-32) var(--stv-espace-8) var(--stv-espace-8);
  border: 0;
  border-radius: var(--stv-rayon);
  background-color: var(--stv-blanc);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.33333' height='5.33333' viewBox='0 0 9.33333 5.33333' fill='none'%3E%3Cpath d='M0.666667 0.666667L4.66667 4.66667L8.66667 0.666667' stroke='%23020A12' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 7.333px center;
  background-size: 9.33333px 5.33333px;
  box-shadow: none;
  color: var(--stv-noir);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-petit);
  font-weight: 400;
  line-height: var(--stv-interligne-texte);
  cursor: pointer;
}

.stv-carte-produit--souhaits .stv-souhait__options.stv-souhait__options:focus-visible {
  outline: 2px solid var(--stv-anthracite);
  outline-offset: 2px;
}

/* --- Nom, prix (`156:5368`) -------------------------------------------- */

.stv-carte-produit--souhaits .stv-souhait__texte {
  display: flex;
  flex-direction: column;
  gap: var(--stv-espace-4);
  min-width: 0;
}

/*
   Prix fixe, sans « À partir de » : la ligne vide reste RÉSERVÉE entre le
   nom et le prix, comme sur toutes les cartes (recette d'Estevan R28, 28/10 ;
   composants.css, « LE PRIX, V2 »). Le nom part donc du haut du bloc sur
   toutes les cartes de la liste ; la marge au-dessus du bloc (décision de
   Logan du 26/10, le nom qui descendait) est retirée. Même hauteur de carte.
*/

/* Outfit 14 / 1,5, sans la zone de 48 des cartes de grille (`156:5371`) ; le nom est un H2 : rien du kit ne doit passer. */
.stv-carte-produit.stv-carte-produit--souhaits .stv-carte-produit__nom {
  min-height: 0;
  font-size: var(--stv-taille-petit);
  letter-spacing: normal;
  text-transform: none;
}

.stv-carte-produit.stv-carte-produit--souhaits .stv-carte-produit__nom .stv-carte-produit__lien:hover {
  text-decoration: underline;
  text-underline-position: from-font;
}

.stv-carte-produit.stv-carte-produit--souhaits .stv-carte-produit__prix {
  line-height: var(--stv-interligne-texte);
}

/* --- « Déplacer au panier », l'état, la date --------------------------- */

.stv-carte-produit--souhaits .stv-souhait__achat[hidden] {
  display: none;
}

/* `156:5373` : le petit bouton primaire (36), pleine largeur. Poussé au pied de la carte avec la date. */
.stv-carte-produit--souhaits .stv-souhait__bouton.stv-souhait__bouton {
  width: 100%;
  margin-top: auto;
}

/*
   Tant qu'aucune option n'est choisie, le bouton en a l'air désactivé — il
   ne l'est pas : au clic, le navigateur retient l'envoi (`required`), mène
   à la liste et dit pourquoi.
*/
.stv-carte-produit--souhaits:has(.stv-souhait__options:invalid) .stv-souhait__bouton {
  opacity: 0.5;
}

.stv-carte-produit--souhaits .stv-souhait__etat {
  margin: auto 0 0;
  color: var(--stv-anthracite);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-petit);
  line-height: var(--stv-interligne-texte);
}

.stv-carte-produit--souhaits .stv-souhait__etat + .stv-souhait__bouton.stv-souhait__bouton {
  margin-top: 0;
}

/* `156:5374` : Inter 12 / 1,5, anthracite à 70 %. */
.stv-carte-produit--souhaits .stv-souhait__date {
  margin: 0;
  color: var(--stv-texte-mention);
  font-family: var(--stv-police-texte);
  font-size: var(--stv-taille-copyright);
  line-height: var(--stv-interligne-texte);
}

/* --- La corbeille (`156:5375`) : à la place du cœur --------------------- */

/* Même carré, même coin, même encre que le cœur (composants.css) ; glyphe 14,4 × 16, trait 1,33. */
.stv-souhait__retirer.stv-souhait__retirer.stv-souhait__retirer {
  position: absolute;
  z-index: 2;
  top: var(--stv-carte-padding);
  right: var(--stv-carte-padding);
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--stv-rayon);
  background: var(--stv-fond-action);
  box-shadow: none;
  color: var(--stv-texte-indication);
  cursor: pointer;
}

.stv-souhait__retirer.stv-souhait__retirer.stv-souhait__retirer[hidden] {
  display: none;
}

.stv-souhait__retirer.stv-souhait__retirer.stv-souhait__retirer:hover,
.stv-souhait__retirer.stv-souhait__retirer.stv-souhait__retirer:focus {
  background: var(--stv-fond-action);
  color: var(--stv-anthracite);
}

.stv-souhait__retirer.stv-souhait__retirer.stv-souhait__retirer:focus-visible {
  outline: 2px solid var(--stv-noir);
  outline-offset: 2px;
}

.stv-souhait__retirer .stv-icone {
  pointer-events: none;
}
