/* ==========================================================================
   Kawann Supply — pages de commande du compte client
   (détail d'une commande, historique, avoirs)

   Le thème parent y emploie une échelle typographique bien plus large que le
   reste du site : titres en h1/h3, tableaux aérés, paragraphes en 16px. On la
   ramène sur celle des autres pages — titres 15px, texte 13px.
   ========================================================================== */

/* --- Titres --- */
.page-content--customer .page-title-section,
.page-content--customer > h1 {
  font-size: 1.125rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.page-content--customer h2,
.page-content--customer h3,
.page-content--customer .h2,
.page-content--customer .h3 {
  margin: 0 0 12px;
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

/* --- Bandeau d'informations de la commande --- */
.order-infos {
  padding: 14px 16px;
  border: 1px solid var(--kawann-border);
  border-radius: 12px;
  background: var(--kawann-blanc);
}

.order-infos p {
  margin: 0 0 4px;
  font-size: 0.8125rem;
  color: var(--kawann-text-muted);
}

.order-infos p:last-child { margin-bottom: 0; }

/* La référence est l'information qu'on cherche en premier. */
.order-infos__reference {
  font-size: 0.9375rem !important;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine) !important;
}

.order-infos__actions {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--kawann-border-clair, #efeae2);
  gap: 10px;
}

.order-infos__actions .btn {
  padding: 8px 14px;
  min-height: 36px;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
}

.order-infos__actions .btn-outline-primary {
  border: 1px solid var(--kawann-border);
  background: transparent;
  color: var(--kawann-marine);
}

.order-infos__actions .btn-outline-primary:hover {
  border-color: var(--kawann-marine);
  background: transparent;
  color: var(--kawann-marine);
}

.order-infos__actions .btn-link {
  font-weight: var(--kawann-weight-text);
  color: var(--kawann-lien);
  text-decoration: none;
}

.order-infos__actions .btn-link:hover {
  color: var(--kawann-lien);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --- Séparateurs --- */
.order-separator,
.page-content--customer hr {
  margin: 20px 0;
  border: 0;
  border-top: 1px solid var(--kawann-border);
  opacity: 1;
}

/* --- Tableaux (statuts, suivi, produits) --- */
.page-content--customer .grid-table {
  font-size: 0.8125rem;
}

.page-content--customer .grid-table__header .grid-table__cell {
  padding: 0 12px 8px 0;
  border-bottom: 1px solid var(--kawann-border);
  font-size: 0.625rem;
  font-weight: var(--kawann-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kawann-text-muted);
}

.page-content--customer .grid-table__row .grid-table__cell {
  padding: 10px 12px 10px 0;
  border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
  color: var(--kawann-text-muted);
}

.page-content--customer .grid-table__row:last-child .grid-table__cell {
  border-bottom: 0;
}

/* --- Pastille de statut ---
   Le parent la peint en aplat plein, très saturé. On reprend le traitement du
   tableau de bord : fond très clair, texte foncé de la même teinte, libellé
   toujours écrit — la couleur ne porte jamais seule l'information. */
.page-content--customer .label,
.page-content--customer .badge,
.order-status .grid-table__cell > span[style*="background"] {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  white-space: nowrap;
}

/* --- Adresses de la commande --- */
.order-addresses address,
.page-content--customer address {
  font-size: 0.8125rem;
  font-style: normal;
  line-height: 1.6;
  color: var(--kawann-text-muted);
}

/* --- Menu latéral du compte, resserré --- */
.account-menu .account-menu__link {
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-text);
  color: var(--kawann-text-muted);
}

.account-menu .account-menu__link:hover {
  background: var(--kawann-surface);
  color: var(--kawann-marine);
}

.account-menu .account-menu__link--active {
  background: var(--kawann-surface);
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.account-menu .account-menu__icon { font-size: 18px; }

.account-menu > .h2,
.account-menu > p:first-child {
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kawann-text-muted);
}

/* ==========================================================================
   Titres et tableaux des pages client
   Le <h1> vit dans .page-header, à l'extérieur de .page-content : il fallait
   donc un autre point d'accroche. Le <body> porte une classe page-<nom> par
   page, on s'en sert pour ne toucher qu'aux pages du compte et laisser le
   reste du site intact.
   ========================================================================== */
.page-history .page-header .page-title-section,
.page-order-detail .page-header .page-title-section,
.page-order-slip .page-header .page-title-section,
.page-identity .page-header .page-title-section,
.page-addresses .page-header .page-title-section,
.page-address .page-header .page-title-section,
.page-discount .page-header .page-title-section,
.page-order-follow .page-header .page-title-section {
  margin: 0;
  font-size: 1.125rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.page-history .page-header,
.page-order-detail .page-header,
.page-order-slip .page-header,
.page-identity .page-header,
.page-addresses .page-header,
.page-address .page-header,
.page-discount .page-header,
.page-order-follow .page-header {
  margin-bottom: 10px;
}

/* Phrase d'introduction : contexte, pas contenu. */
#order_history_description,
.page-content--customer > p:first-child {
  margin: 0 0 16px;
  font-size: 0.8125rem;
  color: var(--kawann-text-muted);
}

/* --- Tableau de l'historique --- */
.order-history { font-size: 0.8125rem; }

.order-history__header .order-history__cell {
  padding: 0 12px 8px 0;
  border-bottom: 1px solid var(--kawann-border);
  font-size: 0.625rem;
  font-weight: var(--kawann-weight-bold);
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--kawann-text-muted);
}

.order-history__row .order-history__cell {
  padding: 12px 12px 12px 0;
  border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
  color: var(--kawann-text-muted);
  vertical-align: middle;
}

.order-history__row:last-child .order-history__cell { border-bottom: 0; }

.order-history__cell--reference {
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.order-history__cell--total {
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

/* Pastille de statut : même gabarit que sur le tableau de bord. La couleur
   vient du back-office, posée en style en ligne par le gabarit du thème —
   on ne touche qu'à la forme. */
.order-history__status.badge {
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  line-height: 1.5;
  white-space: nowrap;
}

/* --- Boutons d'action de la ligne ---
   Ils s'empilaient sur deux lignes et déséquilibraient la rangée. */
.order-history__cell .btn,
.order-history__actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  min-height: 32px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  background: transparent;
  font-size: 0.75rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
  white-space: nowrap;
}

.order-history__cell .btn:hover,
.order-history__actions .btn:hover {
  border-color: var(--kawann-marine);
  background: var(--kawann-surface);
  color: var(--kawann-marine);
}

.order-history__cell .btn .material-icons,
.order-history__actions .btn .material-icons { font-size: 16px; }

/* Les deux actions tiennent côte à côte plutôt qu'empilées. */
.order-history__row .order-history__cell:last-child {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

@media (max-width: 767.98px) {
  .order-history__row .order-history__cell:last-child { justify-content: flex-start; }
}

/* ==========================================================================
   Historique des commandes — mise en page en cartes
   ========================================================================== */

/* --- Colonne latérale en carte --- */
.page-history .account-menu--sidebar,
.page-order-detail .account-menu--sidebar,
.page-order-slip .account-menu--sidebar,
.page-identity .account-menu--sidebar,
.page-addresses .account-menu--sidebar,
.page-address .account-menu--sidebar {
  padding: 16px 14px;
  border: 1px solid var(--kawann-border);
  border-radius: 14px;
  background: var(--kawann-blanc);
}

.account-menu__title {
  margin: 0 0 12px;
  padding: 0 6px;
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kawann-text-muted);
}

.account-menu__nav { display: flex; flex-direction: column; gap: 2px; }

.account-menu__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-text);
  line-height: 1.35;
  color: var(--kawann-text-muted);
  text-decoration: none;
}

.account-menu__link:hover { background: var(--kawann-surface); color: var(--kawann-marine); }

/* Page courante : fond marine et liseré au jaune du logo. Deux signaux, pas
   la couleur seule (WCAG 2.2 AA, 1.4.1) — le lien porte aussi aria-current. */
.account-menu__link--active,
.account-menu__link[aria-current="page"] {
  position: relative;
  padding-left: 14px;
  background: var(--kawann-marine);
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-blanc);
}

.account-menu__link--active::before,
.account-menu__link[aria-current="page"]::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 0;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--kawann-soleil);
}

.account-menu__link--active .account-menu__icon,
.account-menu__link[aria-current="page"] .account-menu__icon { color: var(--kawann-blanc); }

.account-menu__link--signout { color: #b3261e; }
.account-menu__link--signout:hover { background: #fdeceb; color: #b3261e; }

/* --- En-tête de la page --- */
.kawann-hist__entete {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
}

.kawann-hist__titre {
  position: relative;
  margin: 0 0 6px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

/* Filet au jaune du logo sous le titre. */
.kawann-hist__titre::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

.kawann-hist__soustitre {
  margin: 8px 0 0;
  font-size: 0.8125rem;
  color: var(--kawann-text-muted);
}

/* Encart d'aide */
.kawann-hist__aide {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 1 340px;
  padding: 12px 14px;
  border: 1px solid var(--kawann-border);
  border-radius: 12px;
  background: var(--kawann-blanc);
  text-decoration: none;
}

.kawann-hist__aide:hover { border-color: var(--kawann-marine); }

.kawann-hist__aide-icone {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fdf0d8;
  color: var(--kawann-soleil-ink);
}

.kawann-hist__aide-icone svg { width: 20px; height: 20px; }

.kawann-hist__aide-texte { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kawann-hist__aide-texte strong { font-size: 0.8125rem; font-weight: var(--kawann-weight-bold); color: var(--kawann-marine); }
.kawann-hist__aide-texte span { font-size: 0.6875rem; line-height: 1.4; color: var(--kawann-text-muted); }
.kawann-hist__aide-fleche { margin-left: auto; font-size: 1.25rem; color: var(--kawann-text-muted); }

/* --- Carte du tableau --- */
.kawann-hist__carte {
  padding: 4px 16px;
  border: 1px solid var(--kawann-border);
  border-radius: 14px;
  background: var(--kawann-blanc);
}

.kawann-hist__vide { padding: 18px 16px; font-size: 0.8125rem; color: var(--kawann-text-muted); }
.kawann-hist__vide p { margin: 0; }

/* Pastille de statut : fond très clair tiré de la couleur du back-office,
   texte foncé de la même teinte. Le libellé reste écrit en toutes lettres. */
.kawann-hist__statut {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--kawann-statut, #4c5e76) 15%, white);
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  line-height: 1.4;
  color: color-mix(in srgb, var(--kawann-statut, #4c5e76) 80%, black);
  white-space: nowrap;
}

/* --- Facture et actions --- */
.kawann-hist__facture {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  color: var(--kawann-marine);
}

.kawann-hist__facture svg { width: 17px; height: 17px; }
.kawann-hist__facture:hover { border-color: var(--kawann-marine); background: var(--kawann-surface); }
.kawann-hist__facture-absente { color: var(--kawann-text-muted); }

.kawann-hist__btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  min-height: 34px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: var(--kawann-weight-bold);
  text-decoration: none;
  white-space: nowrap;
}

.kawann-hist__btn svg { width: 15px; height: 15px; }

.kawann-hist__btn--principal {
  border: 0;
  background: var(--kawann-marine);
  color: var(--kawann-blanc);
}

.kawann-hist__btn--principal:hover { background: var(--kawann-marine-clair); color: var(--kawann-blanc); }

.kawann-hist__btn--discret {
  border: 1px solid var(--kawann-border);
  background: transparent;
  color: var(--kawann-marine);
}

.kawann-hist__btn--discret:hover { border-color: var(--kawann-marine); background: var(--kawann-surface); }

/* --- Encart de relance --- */
.kawann-hist__relance {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 24px;
  align-items: center;
  margin-top: 16px;
  padding: 20px;
  border: 1px solid var(--kawann-border);
  border-radius: 14px;
  background: var(--kawann-blanc);
}

.kawann-hist__relance-gauche { display: flex; align-items: center; gap: 16px; }
.kawann-hist__relance-illu { flex: 0 0 auto; width: 96px; height: 96px; }
.kawann-hist__relance-illu svg { width: 100%; height: 100%; display: block; }

.kawann-hist__relance-texte h2 {
  margin: 0 0 6px;
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-title);
  line-height: 1.3;
  color: var(--kawann-marine);
}

.kawann-hist__relance-texte p {
  margin: 0 0 12px;
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--kawann-text-muted);
}

/* auto-fit : la rangée s'ajuste au nombre d'atouts réellement présents,
   sans avoir à toucher au CSS si l'un est ajouté ou retiré. */
.kawann-hist__atouts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0 0 0 24px;
  border-left: 1px solid var(--kawann-border);
  list-style: none;
}

.kawann-hist__atouts li { display: flex; flex-direction: column; gap: 8px; }
.kawann-hist__atouts li > span:last-child { display: block; }

.kawann-hist__atout-icone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fdf0d8;
  color: var(--kawann-soleil-ink);
}

.kawann-hist__atout-icone svg { width: 17px; height: 17px; }
.kawann-hist__atouts strong {
  display: block;
  margin-bottom: 3px;
  font-size: 0.75rem;
  font-weight: var(--kawann-weight-bold);
  line-height: 1.3;
  color: var(--kawann-marine);
}

/* Interligne resserré : la description tient sur deux lignes, un interligne
   large les faisait paraître détachées l'une de l'autre. */
.kawann-hist__atouts span span {
  display: block;
  font-size: 0.6875rem;
  line-height: 1.3;
  color: var(--kawann-text-muted);
}

@media (max-width: 991.98px) {
  .kawann-hist__relance { grid-template-columns: minmax(0, 1fr); }
  .kawann-hist__atouts { padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--kawann-border); }
}

@media (max-width: 575.98px) {
  .kawann-hist__atouts { grid-template-columns: minmax(0, 1fr); }
  .kawann-hist__relance-gauche { flex-direction: column; align-items: flex-start; }
}

/* --- Colonne « Commande » : date au-dessus, référence en dessous ---
   Le tableau comptait sept colonnes et débordait latéralement. En réunissant
   la date et la référence, il en reste six et la ligne tient dans la carte. */
.page-history .order-history__inner {
  display: grid;
  grid-template-columns:
    minmax(120px, 1.3fr)   /* commande (date + référence) */
    minmax(80px, 0.8fr)    /* prix total */
    minmax(90px, 1fr)      /* paiement */
    minmax(110px, 1.2fr)   /* état */
    auto                   /* facture */
    auto;                  /* actions */
  align-items: center;
  column-gap: 12px;
}

.page-history .order-history__header,
.page-history .order-history__row {
  display: contents;
}

.kawann-hist__commande {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.kawann-hist__date {
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-text);
  color: var(--kawann-text-muted);
}

.kawann-hist__reference {
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
  word-break: break-word;
}

/* Les deux actions restent groupées et ne poussent plus la ligne. */
.page-history .order-history__cell--actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

/* Sur petit écran la grille laisse place à des blocs empilés, avec l'intitulé
   de colonne repris devant chaque valeur (data-ps-label du thème parent). */
@media (max-width: 767.98px) {
  .page-history .order-history__inner { display: block; }
  .page-history .order-history__header { display: none; }

  .page-history .order-history__row {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
  }

  .page-history .order-history__row .order-history__cell {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 3px 0;
    border: 0;
  }

  .page-history .order-history__cell--actions { justify-content: flex-start; padding-top: 10px; }
}

/* Les intitulés de colonnes n'ont plus de filet : avec la grille en
   « display: contents », chaque cellule portait le sien, ce qui donnait une
   ligne hachée sous les titres au lieu d'un trait continu. On l'enlève, et
   c'est la première ligne du tableau qui marque la séparation. */
.page-history .order-history__header .order-history__cell {
  border-bottom: 0;
  padding-bottom: 10px;
}

.page-history .order-history__row:first-of-type .order-history__cell {
  border-top: 1px solid var(--kawann-border);
  padding-top: 12px;
}

/* Bouton-icône des actions de ligne (détail de la commande). Même gabarit que
   celui de la facture : 34px de côté, au-dessus du minimum tactile de 24
   (WCAG 2.2 AA, 2.5.8). */
.kawann-hist__icone-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  background: transparent;
  color: var(--kawann-marine);
}

.kawann-hist__icone-btn svg { width: 17px; height: 17px; }

.kawann-hist__icone-btn:hover {
  border-color: var(--kawann-marine);
  background: var(--kawann-surface);
}

.kawann-hist__icone-btn:focus-visible {
  outline: 2px solid var(--kawann-marine);
  outline-offset: 2px;
}

/* --- Alignement des filets de séparation ---
   Avec « display: contents », chaque cellule est un élément de grille à part.
   En les centrant verticalement, une cellule courte — la pastille de statut —
   se retrouvait plus haute que la rangée, et son filet de base venait barrer
   le texte au lieu de séparer les lignes.
   On étire donc toutes les cellules sur la hauteur de la rangée, et on centre
   leur contenu à l'intérieur : les filets se rejoignent alors au bas de la
   ligne. */
.page-history .order-history__inner {
  align-items: stretch;
}

.page-history .order-history__row .order-history__cell {
  display: flex;
  align-items: center;
}

/* La colonne « Commande » garde ses deux lignes empilées. */
.page-history .order-history__row .kawann-hist__commande {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

/* Les intitulés restent alignés en bas de leur zone. */
.page-history .order-history__header .order-history__cell {
  display: flex;
  align-items: flex-end;
}

@media (max-width: 767.98px) {
  .page-history .order-history__row .order-history__cell {
    justify-content: space-between;
  }

  .page-history .order-history__row .kawann-hist__commande {
    align-items: flex-start;
  }
}

/* Version pleine du bouton-icône : action principale de la ligne. */
.kawann-hist__icone-btn--principal {
  border-color: var(--kawann-marine);
  background: var(--kawann-marine);
  color: var(--kawann-blanc);
}

.kawann-hist__icone-btn--principal:hover {
  border-color: var(--kawann-marine-clair);
  background: var(--kawann-marine-clair);
  color: var(--kawann-blanc);
}

/* --- Colonne « Paiement » : moyen de paiement au-dessus, statut en dessous ---
   Le tableau passe de six à cinq colonnes ; les cellules respirent et les
   deux boutons d'action ne sont plus comprimés contre le bord. */
.page-history .order-history__inner {
  grid-template-columns:
    minmax(120px, 1.3fr)   /* commande (date + référence) */
    minmax(80px, 0.7fr)    /* prix total */
    minmax(140px, 1.4fr)   /* paiement + état */
    auto                   /* facture */
    auto;                  /* actions */
}

.page-history .order-history__row .kawann-hist__paiement {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  min-width: 0;
}

.kawann-hist__moyen {
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--kawann-text-muted);
}

@media (max-width: 767.98px) {
  .page-history .order-history__row .kawann-hist__paiement {
    align-items: flex-start;
  }
}

/* ==========================================================================
   Page « Vos adresses »
   ========================================================================== */
.kawann-adr__liste {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  align-items: stretch;
}

/* --- Carte d'une adresse --- */
.kawann-adr__carte {
  padding: 20px;
  border: 1px solid var(--kawann-border);
  border-radius: 14px;
  background: var(--kawann-blanc);
}

.kawann-adr__carte .address-card__container {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.kawann-adr__entete {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
}

.kawann-adr__pastille {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #fdf0d8;
  color: var(--kawann-marine);
}

.kawann-adr__pastille svg { width: 20px; height: 20px; }

.kawann-adr__alias {
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.kawann-adr__contenu {
  margin: 0;
  font-size: 0.8125rem;
  font-style: normal;
  line-height: 1.7;
  color: var(--kawann-text-muted);
}

/* Les actions sont renvoyées en bas : les cartes gardent la même hauteur et
   leurs boutons s'alignent, quelle que soit la longueur de l'adresse. */
.kawann-adr__actions {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--kawann-border-clair, #efeae2);
}

.kawann-adr__action {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 14px 4px 0;
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
  text-decoration: none;
}

.kawann-adr__action svg { width: 16px; height: 16px; }

.kawann-adr__action:hover {
  color: var(--kawann-marine);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Filet vertical entre les deux actions. */
.kawann-adr__action + .kawann-adr__action {
  padding-left: 14px;
  border-left: 1px solid var(--kawann-border-clair, #efeae2);
}

/* La suppression est irréversible : elle se distingue par la couleur ET par
   l'icône corbeille, jamais par la seule teinte (WCAG 2.2 AA, 1.4.1). */
.kawann-adr__action--danger { color: #d32f2f; }
.kawann-adr__action--danger:hover { color: #b3261e; }

/* --- Carte d'ajout --- */
.kawann-adr__ajout {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 220px;
  padding: 24px;
  border: 1px dashed var(--kawann-border);
  border-radius: 14px;
  background: transparent;
  text-align: center;
  text-decoration: none;
}

.kawann-adr__ajout:hover {
  border-color: var(--kawann-marine);
  background: var(--kawann-surface);
}

.kawann-adr__ajout:focus-visible {
  outline: 2px solid var(--kawann-marine);
  outline-offset: 2px;
}

.kawann-adr__ajout-pastille {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 66px;
  height: 66px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: #fdf0d8;
}

.kawann-adr__ajout-carre {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--kawann-marine);
  color: var(--kawann-blanc);
}

.kawann-adr__ajout-carre svg { width: 17px; height: 17px; }

.kawann-adr__ajout-titre {
  max-width: 12ch;
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-title);
  line-height: 1.3;
  color: var(--kawann-marine);
}

.kawann-adr__ajout-texte {
  max-width: 26ch;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--kawann-text-muted);
}

/* Sur mobile, la carte « Ajouter une adresse » passe à l'horizontale :
   pastille à gauche, titre et texte à droite, pour ne pas occuper 260px de
   haut sous une adresse déjà longue. */
@media (max-width: 575.98px) {
  .kawann-adr__ajout {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-areas:
      "pastille titre"
      "pastille texte";
    align-items: center;
    justify-content: start;
    column-gap: 14px;
    row-gap: 2px;
    min-height: 0;
    padding: 16px;
    text-align: left;
  }

  .kawann-adr__ajout-pastille {
    grid-area: pastille;
    width: 52px;
    height: 52px;
    margin: 0;
  }

  .kawann-adr__ajout-carre { width: 28px; height: 28px; }

  .kawann-adr__ajout-titre { grid-area: titre; max-width: none; }
  .kawann-adr__ajout-texte { grid-area: texte; max-width: none; }
}

/* ==========================================================================
   Page RGPD — données personnelles
   ========================================================================== */
/* Les deux sections vivent dans une seule carte blanche, comme sur la
   maquette — et non dans deux pavés gris, qui venaient de la feuille du
   module (voir le gabarit). */
.kawann-rgpd {
  display: flex;
  flex-direction: column;
  padding: 26px 30px;
  border: 1px solid var(--kawann-border);
  border-radius: 16px;
  background: var(--kawann-blanc);
}

/* Garde-fou : si la feuille du module venait à cibler ces blocs autrement,
   ils ne doivent jamais reprendre de fond ni de flottement. */
.kawann-rgpd__bloc { background: transparent; }
.kawann-rgpd__btn { float: none; }

.kawann-rgpd__bloc {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 4px 0 22px;
}

/* Filet entre les deux sections, pas après la dernière. */
.kawann-rgpd__bloc + .kawann-rgpd__bloc {
  padding-top: 22px;
  border-top: 1px solid var(--kawann-border-clair, #efeae2);
}

.kawann-rgpd__icone {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: #fdf0d8;
  color: var(--kawann-marine);
}

.kawann-rgpd__icone svg { width: 28px; height: 28px; }

.kawann-rgpd__corps { min-width: 0; }

.kawann-rgpd__corps h2 {
  margin: 0 0 8px;
  font-size: 1.0625rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.kawann-rgpd__corps p {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.65;
  color: var(--kawann-text-muted);
}

.kawann-rgpd__lien {
  color: var(--kawann-lien);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kawann-rgpd__lien:hover { color: var(--kawann-lien); }

/* Boutons d'export : contour seul. Télécharger ses données est un droit, pas
   l'action principale de la page — deux aplats pleins auraient crié. */
.kawann-rgpd__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.kawann-rgpd__btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 20px;
  min-height: 44px;
  border: 1px solid var(--kawann-marine);
  border-radius: 10px;
  background: transparent;
  font-size: 0.875rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
  text-decoration: none;
}

.kawann-rgpd__btn svg { width: 18px; height: 18px; }

.kawann-rgpd__btn:hover {
  background: var(--kawann-marine);
  color: var(--kawann-blanc);
}

.kawann-rgpd__btn:focus-visible {
  outline: 2px solid var(--kawann-marine);
  outline-offset: 3px;
}

@media (max-width: 575.98px) {
  .kawann-rgpd__bloc { flex-direction: column; gap: 14px; }
  .kawann-rgpd__btn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   Détail d'une commande — sections en cartes
   ========================================================================== */

/* Les séparateurs du parent n'ont plus d'objet : chaque section est une carte. */
.page-order-detail .order-separator { display: none; }

.kawann-cmd__carte {
  margin: 0 0 14px;
  padding: 20px 22px;
  border: 1px solid var(--kawann-border);
  border-radius: 14px;
  background: var(--kawann-blanc);
}

.kawann-cmd__titre {
  margin: 0 0 14px;
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

/* --- Résumé de la commande --- */
.kawann-cmd__resume {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.kawann-cmd__pastille {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #fdf0d8;
  color: var(--kawann-marine);
}

.kawann-cmd__pastille svg { width: 25px; height: 25px; }

.kawann-cmd__resume-corps { flex: 1 1 auto; min-width: 0; }

.kawann-cmd__reference {
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: var(--kawann-weight-title);
  line-height: 1.35;
  color: var(--kawann-marine);
}

.kawann-cmd__ligne {
  margin: 0 0 3px;
  font-size: 0.8125rem;
  color: var(--kawann-text-muted);
}

.kawann-cmd__resume-actions {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

/* --- Adresses --- */
.kawann-cmd__adresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.kawann-cmd__adresse {
  padding: 16px;
  border: 1px solid var(--kawann-border);
  border-radius: 12px;
  background: var(--kawann-blanc);
}

.kawann-cmd__adresse-entete {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
}

.kawann-cmd__adresse-entete h3 {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  line-height: 1.35;
  color: var(--kawann-marine);
}

.kawann-cmd__adresse address {
  margin: 0;
  font-size: 0.8125rem;
  font-style: normal;
  line-height: 1.7;
  color: var(--kawann-text-muted);
}

/* --- Tableau des produits --- */
.order-products .order-product__infos {
  display: flex;
  align-items: center;
  gap: 12px;
}

.order-products .order-product__image { flex: 0 0 auto; }

.order-products .order-product__img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
}

.order-products .order-product__name,
.order-products .order-product__infos a {
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
  text-decoration: none;
}

.order-products .order-product__reference,
.order-products small {
  display: block;
  font-size: 0.6875rem;
  color: var(--kawann-text-muted);
}

/* Totaux : le montant final ressort au jaune du logo, dans sa teinte foncée
   pour rester lisible sur blanc. */
.order-products .grid-table__footer .grid-table__cell,
.order-products .order-totals .value {
  font-size: 0.8125rem;
  color: var(--kawann-marine);
}

.order-products .grid-table__row--total .grid-table__cell,
.order-products .order-total .value {
  font-size: 1.0625rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-soleil-ink);
}

/* --- Formulaire de message --- */
.kawann-cmd__message label,
.kawann-cmd__message .form-label {
  font-size: 0.75rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.kawann-cmd__message .form-control,
.kawann-cmd__message select,
.kawann-cmd__message textarea {
  padding: 9px 12px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  font-size: 0.8125rem;
  color: var(--kawann-marine);
}

.kawann-cmd__message .form-control:focus {
  border-color: var(--kawann-marine);
  box-shadow: none;
}

.kawann-cmd__message .btn,
.kawann-cmd__message [type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  min-height: 40px;
  border: 0;
  border-radius: 8px;
  background: var(--kawann-marine);
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-blanc);
}

.kawann-cmd__message .btn:hover,
.kawann-cmd__message [type="submit"]:hover {
  background: var(--kawann-marine-clair);
  color: var(--kawann-blanc);
}

@media (max-width: 767.98px) {
  .kawann-cmd__resume { flex-wrap: wrap; }
  .kawann-cmd__resume-actions { width: 100%; }
}

/* Le titre natif de .page-header reçoit le filet orange de la maquette : on ne
   neutralise plus le bloc d'en-tête du parent, qui contient aussi le bloc de
   titre — imbrication trop fragile. */
.page-history .page-header .page-title-section,
.page-order-detail .page-header .page-title-section,
.page-addresses .page-header .page-title-section,
.page-module-psgdpr-gdpr .page-header .page-title-section,
body#module-psgdpr-gdpr .page-header .page-title-section {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.page-history .page-header .page-title-section::after,
.page-order-detail .page-header .page-title-section::after,
.page-addresses .page-header .page-title-section::after,
.page-module-psgdpr-gdpr .page-header .page-title-section::after,
body#module-psgdpr-gdpr .page-header .page-title-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

/* Le bouton « Retour à votre compte » du parent fait doublon avec le menu
   latéral, présent sur toutes ces pages. */
.page-history .account-menu__back,
.page-order-detail .account-menu__back,
.page-addresses .account-menu__back { display: none; }

/* Quand l'en-tête ne contient plus que l'encart d'aide, il s'aligne à droite. */
.kawann-hist__entete--aide { justify-content: flex-end; }

/* --- Rangée d'en-tête des pages client ---
   Titre à gauche, encart d'aide à droite, sur une même ligne. Le parent
   laissait ces deux blocs frères et sans conteneur : ils retombaient
   fatalement l'un sous l'autre (voir customer/page.tpl du thème enfant). */
.kawann-cli__entete {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px 20px;
  margin-bottom: 18px;
}

.kawann-cli__entete .page-header { margin: 0; }

/* Intitulés de colonnes sans filet, sur toutes les grilles des pages client
   (suivi de commande, suivi d'expédition, détail des produits).
   Chaque cellule d'en-tête portait le sien, ce qui donnait une ligne hachée
   sous les titres au lieu d'un trait continu. C'est la première ligne du
   tableau qui marque désormais la séparation. */
.page-content--customer .grid-table__header .grid-table__cell {
  border-bottom: 0;
  padding-bottom: 10px;
}

.page-content--customer .grid-table__row:first-of-type .grid-table__cell {
  border-top: 1px solid var(--kawann-border);
  padding-top: 12px;
}

/* ==========================================================================
   Page « Vos informations personnelles »
   ========================================================================== */
.page-identity .page-header .page-title-section {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.page-identity .page-header .page-title-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

.page-identity .account-menu__back { display: none; }

.kawann-id__intro { margin: 0 0 16px; }

/* Deux colonnes de champs : le formulaire tient sur un écran sans défiler. */
.kawann-id__carte #customer-form > section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
}

.kawann-id__carte #customer-form > section > * {
  grid-column: 1 / -1;
  min-width: 0;
}

/* Prénom et nom côte à côte, comme dans le tunnel de commande. */
.kawann-id__carte #customer-form > section > .mb-3:has(input[name="firstname"]) { grid-column: 1; }
.kawann-id__carte #customer-form > section > .mb-3:has(input[name="lastname"]) { grid-column: 2; }

.kawann-id__carte .form-label,
.kawann-id__carte label {
  font-size: 0.75rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.kawann-id__carte .form-control,
.kawann-id__carte input[type="text"],
.kawann-id__carte input[type="email"],
.kawann-id__carte input[type="password"] {
  padding: 9px 12px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  font-size: 0.8125rem;
  color: var(--kawann-marine);
}

.kawann-id__carte .form-control:focus {
  border-color: var(--kawann-marine);
  box-shadow: none;
}

.kawann-id__carte .form-text,
.kawann-id__carte small {
  font-size: 0.6875rem;
  line-height: 1.4;
  color: var(--kawann-text-muted);
}

/* Sur mobile, rien sous 12px : aides de saisie et textes d'accompagnement. */
@media (max-width: 767.98px) {
  .kawann-id__carte .form-text,
  .kawann-id__carte small,
  .kawann-hist__aide-texte span { font-size: 0.75rem; }
}

/* Le champ mot de passe abrite un bouton « afficher » qui porte lui aussi
   .btn-primary : on ne peint que le bouton de validation. */
.kawann-id__carte .password-field .btn {
  width: auto;
  min-height: 0;
  padding: 0 10px;
  border: 1px solid var(--kawann-border);
  border-left: 0;
  border-radius: 0 8px 8px 0;
  background: transparent;
  color: var(--kawann-text-muted);
}

.kawann-id__carte .password-field .btn:hover {
  background: var(--kawann-surface);
  color: var(--kawann-marine);
}

.kawann-id__carte .buttons-wrapper {
  margin-top: 6px;
  padding-top: 16px;
  border-top: 1px solid var(--kawann-border-clair, #efeae2);
}

.kawann-id__carte .buttons-wrapper [type="submit"] {
  display: inline-flex;
  align-items: center;
  padding: 10px 22px;
  min-height: 40px;
  border: 0;
  border-radius: 8px;
  background: var(--kawann-marine);
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-blanc);
}

.kawann-id__carte .buttons-wrapper [type="submit"]:hover {
  background: var(--kawann-marine-clair);
  color: var(--kawann-blanc);
}

@media (max-width: 767.98px) {
  .kawann-id__carte #customer-form > section { grid-template-columns: minmax(0, 1fr); }
  .kawann-id__carte #customer-form > section > .mb-3:has(input[name="firstname"]),
  .kawann-id__carte #customer-form > section > .mb-3:has(input[name="lastname"]) { grid-column: 1; }
}

/* ==========================================================================
   Page « Nouvelle adresse » / « Modifier l'adresse »
   Même habillage que la page des informations personnelles : titre souligné,
   formulaire du parent dans une carte, champs sur deux colonnes.
   ========================================================================== */
.page-address .page-header .page-title-section,
.page-discount .page-header .page-title-section {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.page-address .page-header .page-title-section::after,
.page-discount .page-header .page-title-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

.page-address .account-menu__back,
.page-discount .account-menu__back { display: none; }

.kawann-adrf__carte .form-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
}

.kawann-adrf__carte .form-fields > * {
  grid-column: 1 / -1;
  min-width: 0;
}

/* Prénom / nom et code postal / ville côte à côte. */
.kawann-adrf__carte .form-fields > .mb-3:has(input[name="firstname"]),
.kawann-adrf__carte .form-fields > .mb-3:has(input[name="postcode"]) { grid-column: 1; }
.kawann-adrf__carte .form-fields > .mb-3:has(input[name="lastname"]),
.kawann-adrf__carte .form-fields > .mb-3:has(input[name="city"]) { grid-column: 2; }

.kawann-adrf__carte .form-select,
.kawann-adrf__carte select {
  padding: 9px 36px 9px 12px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  font-size: 0.8125rem;
  color: var(--kawann-marine);
}

.kawann-adrf__carte .form-select:focus,
.kawann-adrf__carte select:focus {
  border-color: var(--kawann-marine);
  box-shadow: none;
}

/* Le bouton « Enregistrer » à droite, comme dans le tunnel. */
.kawann-adrf__carte .buttons-wrapper {
  display: flex;
  justify-content: flex-end;
}

/* Retour à la liste : lien discret sous la carte, cible tactile de 24px. */
.kawann-adrf__retour {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 24px;
  margin-top: 14px;
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-lien);
  text-decoration: none;
}

.kawann-adrf__retour:hover,
.kawann-adrf__retour:focus-visible {
  color: var(--kawann-lien);
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 767.98px) {
  .kawann-adrf__carte .form-fields { grid-template-columns: minmax(0, 1fr); }
  .kawann-adrf__carte .form-fields > .mb-3:has(input[name="firstname"]),
  .kawann-adrf__carte .form-fields > .mb-3:has(input[name="lastname"]),
  .kawann-adrf__carte .form-fields > .mb-3:has(input[name="postcode"]),
  .kawann-adrf__carte .form-fields > .mb-3:has(input[name="city"]) { grid-column: 1; }

  .kawann-adrf__carte .buttons-wrapper [type="submit"] {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   Page « Bons de réduction »
   Le tableau à sept colonnes tient sur grand écran ; sur mobile, une carte
   par bon : code et valeur en évidence, puis les conditions en lignes
   « intitulé / valeur ».
   ========================================================================== */
.kawann-bons .kawann-bons__code strong,
.kawann-bons .kawann-bons__valeur strong {
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.kawann-bons .kawann-bons__nom,
.kawann-bons .kawann-bons__date { font-size: 0.75rem; }

@media (max-width: 767.98px) {
  .kawann-bons .grid-table__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "code valeur"
      "nom nom"
      "quantite quantite"
      "minimum minimum"
      "cumul cumul"
      "date date";
    gap: 4px 12px;
    align-items: center;
    padding: 14px 0;
    border: 0;
    border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
    border-radius: 0;
  }

  .kawann-bons .grid-table__row:last-child { border-bottom: 0; }

  .kawann-bons .grid-table__row .grid-table__cell {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    grid-template-columns: none;
    padding: 0;
    border: 0;
    font-size: 0.8125rem;
  }

  /* Intitulé devant chaque condition (le libellé vient du gabarit,
     data-ps-label, donc traduit). */
  .kawann-bons .grid-table__row .grid-table__cell::before {
    content: attr(data-ps-label);
    font-size: 0.8125rem;
    font-weight: var(--kawann-weight-text);
    color: var(--kawann-text-muted);
  }

  /* Code, nom et valeur se passent d'intitulé : leur place suffit. */
  .kawann-bons .grid-table__row .kawann-bons__code::before,
  .kawann-bons .grid-table__row .kawann-bons__nom::before,
  .kawann-bons .grid-table__row .kawann-bons__valeur::before { content: none; }

  .kawann-bons .grid-table__row .kawann-bons__code { grid-area: code; font-size: 1rem; }
  .kawann-bons .grid-table__row .kawann-bons__valeur { grid-area: valeur; font-size: 1rem; }
  .kawann-bons .grid-table__row .kawann-bons__nom { grid-area: nom; margin-bottom: 6px; }
  .kawann-bons .grid-table__row .kawann-bons__quantite { grid-area: quantite; }
  .kawann-bons .grid-table__row .kawann-bons__minimum { grid-area: minimum; }
  .kawann-bons .grid-table__row .kawann-bons__cumul { grid-area: cumul; }
  .kawann-bons .grid-table__row .kawann-bons__date { grid-area: date; font-size: 0.8125rem; }

  .kawann-bons .grid-table__row:first-of-type .grid-table__cell {
    border-top: 0;
    padding-top: 0;
  }
}

/* ==========================================================================
   Page « Avoirs »
   ========================================================================== */
.page-order-slip .page-header .page-title-section {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.page-order-slip .page-header .page-title-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

.page-order-slip .account-menu__back { display: none; }

.kawann-avoir__ref a {
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
  text-decoration: none;
}

.kawann-avoir__ref a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* État vide : on explique le terme plutôt que d'afficher une alerte sèche. */
.kawann-avoir__vide {
  display: flex;
  align-items: center;
  gap: 18px;
}

.kawann-avoir__vide h2 {
  margin: 0 0 4px;
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.kawann-avoir__vide p {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--kawann-text-muted);
}

@media (max-width: 575.98px) {
  .kawann-avoir__vide { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================================
   Page « Mes alertes »
   ========================================================================== */
body#module-ps_emailalerts-account .page-header .page-title-section {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

body#module-ps_emailalerts-account .page-header .page-title-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

body#module-ps_emailalerts-account .account-menu__back { display: none; }

.kawann-alerte__liste {
  margin: 0;
  padding: 0;
  list-style: none;
}

.kawann-alerte__liste .ps-emailalerts__product {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
}

.kawann-alerte__liste .ps-emailalerts__product:last-child { border-bottom: 0; }

.kawann-alerte__liste .ps-emailalerts__product-image {
  width: 52px;
  height: 52px;
  object-fit: contain;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
}

.kawann-alerte__liste .ps-emailalerts__product-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.kawann-alerte__liste .ps-emailalerts__product-name {
  font-size: 0.8125rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.kawann-alerte__liste .ps-emailalerts__product-content a { text-decoration: none; }

.kawann-alerte__liste .ps-emailalerts__product-attributes {
  font-size: 0.6875rem;
  color: var(--kawann-text-muted);
}

/* Suppression : couleur ET libellé, jamais la couleur seule. */
.kawann-alerte__liste .ps-emailalerts__product-delete {
  align-self: flex-start;
  margin-left: auto;
  padding: 6px 12px;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
  background: transparent;
  font-size: 0.75rem;
  font-weight: var(--kawann-weight-bold);
  color: #d32f2f;
}

.kawann-alerte__liste .ps-emailalerts__product-delete:hover {
  border-color: #d32f2f;
  background: #fdeceb;
  color: #b3261e;
}

/* ==========================================================================
   Page « Mes listes d'envies »
   Le contenu est rendu par l'application Vue du module : on habille le cadre
   et les éléments dont les classes sont stables, sans présumer du reste.
   ========================================================================== */
body#module-blockwishlist-lists .page-header .page-title-section {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  font-size: 1.375rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

body#module-blockwishlist-lists .page-header .page-title-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: var(--kawann-soleil);
}

body#module-blockwishlist-lists .account-menu__back { display: none; }

/* Le module répète son propre titre en tête de l'application : le nôtre est
   déjà au-dessus. */
.kawann-envies .wishlist-container > h1,
.kawann-envies .wishlist-title { display: none; }

.kawann-envies { min-height: 160px; }

/* ==========================================================================
   Historique des commandes sur mobile (sous 768px) — une carte par commande
   Le parent empile chaque cellule avec son intitulé en pseudo-élément
   (« Commande », « Prix total », « Paiement »…) : six lignes verbeuses, un
   total qui déborde, deux cadres l'un dans l'autre. On reprend la main :
   référence et date à gauche, total à droite, moyen de paiement et statut
   en dessous, facture et détail sur la dernière ligne.
   ========================================================================== */
@media (max-width: 767.98px) {
  /* La carte enveloppante s'efface : chaque commande a la sienne. */
  .page-history .kawann-hist__carte,
  .page-history .order-history,
  .page-history .order-history__inner {
    border: 0;
    padding: 0;
    background: transparent;
  }
  .page-history .order-history__header { display: none; }
  .page-history .order-history__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "commande total"
      "paiement paiement"
      "facture actions";
    gap: 6px 12px;
    align-items: center;
    margin: 0 0 12px;
    padding: 16px;
    border: 1px solid var(--kawann-border);
    border-radius: 14px;
    background: var(--kawann-blanc);
  }
  .page-history .order-history__row .order-history__cell {
    display: block;
    grid-template-columns: none;
    padding: 0;
    border: 0;
  }

  /* Plus d'intitulé en pseudo-élément : la mise en page dit ce qu'est chaque
     valeur. */
  .page-history .order-history__row .order-history__cell::before { content: none; }

  /* La première ligne n'a plus de filet supérieur : chaque commande a sa
     propre carte. */
  .page-history .order-history__row:first-of-type .order-history__cell {
    border-top: 0;
    padding-top: 0;
  }

  .page-history .order-history__row .kawann-hist__statut {
    font-size: 0.75rem;
    white-space: normal;
  }
  .page-history .order-history__row .kawann-hist__commande { grid-area: commande; }
  .page-history .order-history__row .kawann-hist__commande .kawann-hist__date { display: block; font-size: 0.75rem; color: var(--kawann-text-muted); }
  .page-history .order-history__row .kawann-hist__commande .kawann-hist__reference { display: block; font-size: 1rem; font-weight: var(--kawann-weight-bold); color: var(--kawann-marine); }
  .page-history .order-history__row .order-history__cell--total {
    grid-area: total;
    align-self: start;
    font-size: 1.0625rem;
    font-weight: var(--kawann-weight-bold);
    color: var(--kawann-marine);
    text-align: right;
    white-space: nowrap;
  }
  .page-history .order-history__row .kawann-hist__paiement {
    grid-area: paiement;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding-top: 8px;
    border-top: 1px solid var(--kawann-border-clair, #efeae2);
  }
  .page-history .order-history__row .kawann-hist__moyen { font-size: 0.8125rem; color: var(--kawann-text-muted); }
  .page-history .order-history__row .order-history__cell--invoice { grid-area: facture; }
  .page-history .order-history__row .order-history__cell--actions {
    grid-area: actions;
    display: flex;
    justify-content: flex-end !important;
    gap: 8px;
  }
}

/* ==========================================================================
   Détail de commande sur mobile (sous 768px)
   ========================================================================== */
@media (max-width: 767.98px) {
  /* Le statut (« En attente de paiement à la livraison ») était étiré en
     bloc et débordait de sa colonne : il reprend sa largeur naturelle et
     passe à la ligne. */
  .page-order-detail .kawann-hist__statut {
    display: inline-block;
    width: auto;
    white-space: normal;
    line-height: 1.35;
  }

  /* Produits (tableau à quatre colonnes ; celui des totaux, à six, est
     traité plus bas) : le parent empile quatre lignes « intitulé / valeur » par
     article (Produit, Quantité, Prix unitaire, Prix total). Chaque article
     devient une carte compacte : visuel et nom, puis « 4 × 10,95 € » à
     gauche et le total en gras à droite. */
  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "produit produit produit"
      "qte pu total";
    align-items: center;
    gap: 6px 6px;
    padding: 12px 0;
    border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
  }

  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row:last-child { border-bottom: 0; }

  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row .grid-table__cell {
    display: block;
    grid-template-columns: none;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row .grid-table__cell::before { content: none; }

  .page-order-detail .order-products .order-product { grid-area: produit; }

  /* Le parent empile le visuel au-dessus du nom, centrés ; on garde la
     lecture en ligne : vignette à gauche, nom et référence à côté. */
  .page-order-detail .order-products .order-product__infos {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    text-align: left;
  }

  .page-order-detail .order-products .order-product__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
  }

  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row .grid-table__cell:nth-child(2) {
    grid-area: qte;
    font-size: 0.8125rem;
  }

  /* « 4 × » : le signe suffit, dans toutes les langues. */
  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row .grid-table__cell:nth-child(2)::after {
    content: " \00d7";
  }

  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row .grid-table__cell:nth-child(3) {
    grid-area: pu;
    font-size: 0.8125rem;
  }

  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row .grid-table__cell:nth-child(4) {
    grid-area: total;
    justify-self: end;
    font-size: 0.9375rem;
    font-weight: var(--kawann-weight-bold);
    color: var(--kawann-marine);
    white-space: nowrap;
  }

  /* Le premier article n'a pas de filet supérieur : le titre de la carte
     suffit. */
  .page-order-detail .order-products .grid-table__inner--4 .grid-table__row:first-of-type .grid-table__cell {
    border-top: 0;
    padding-top: 0;
  }

  /* Totaux : intitulé à gauche, montant à droite, le total en évidence. */
  .page-order-detail .order-products .grid-table__inner--6 .grid-table__row .grid-table__cell {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid var(--kawann-border-clair, #efeae2);
    font-size: 0.875rem;
    color: var(--kawann-marine);
  }

  .page-order-detail .order-products .grid-table__inner--6 .grid-table__row .grid-table__cell::before {
    content: attr(data-ps-label);
    font-weight: var(--kawann-weight-text);
    color: var(--kawann-text-muted);
  }

  .page-order-detail .order-products .grid-table__inner--6 .grid-table__row:first-of-type .grid-table__cell {
    border-top: 1px solid var(--kawann-border);
    padding-top: 12px;
  }

  .page-order-detail .order-products .grid-table__inner--6 .grid-table__row:last-child .grid-table__cell {
    border-bottom: 0;
    font-size: 1.0625rem;
    font-weight: var(--kawann-weight-title);
    color: var(--kawann-soleil-ink);
  }
}

/* ==========================================================================
   Détail de commande — bloc « Bateau et livraison » (module kawannbateau)
   ========================================================================== */
.kawann-bateau-fiche__liste {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  margin: 0;
}

.kawann-bateau-fiche__ligne { min-width: 0; }

.kawann-bateau-fiche__ligne dt {
  margin: 0 0 2px;
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kawann-text-muted);
}

.kawann-bateau-fiche__ligne dd {
  margin: 0;
  font-size: 0.875rem;
  color: var(--kawann-marine);
  overflow-wrap: anywhere;
}

.kawann-bateau-fiche__note {
  display: block;
  font-size: 0.75rem;
  color: var(--kawann-text-muted);
}

@media (max-width: 575.98px) {
  .kawann-bateau-fiche__liste { grid-template-columns: minmax(0, 1fr); }
  .kawann-bateau-fiche__ligne dt { font-size: 0.75rem; }
}

/* ==========================================================================
   Page de confirmation de commande
   Le parent posait un bandeau vert avec un titre de 2,5rem et des tableaux
   en corps 16 : on reprend les cartes de l'espace client et ses tailles.
   ========================================================================== */
.page-order-confirmation .kawann-cmd__carte { margin-bottom: 16px; }

.kawann-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  border-color: #cfe6d6;
  background: #f1f9f3;
}

.kawann-confirmation__pastille {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--kawann-soleil);
  color: var(--kawann-marine);
}

.kawann-confirmation__pastille svg { width: 24px; height: 24px; }

.kawann-confirmation__corps { min-width: 0; }

.kawann-confirmation__titre {
  margin: 4px 0 6px;
  font-size: 1.5rem;
  font-weight: var(--kawann-weight-title);
  line-height: 1.2;
  color: var(--kawann-marine);
}

.kawann-confirmation__reference {
  margin: 0 0 4px;
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.kawann-confirmation__texte {
  margin: 0;
  font-size: 0.875rem;
  color: var(--kawann-text-muted);
}

.kawann-confirmation__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

/* --- Retour du module de paiement (virement, chèque, espèces, Stripe) --- */
.kawann-confirmation__paiement h3,
.kawann-confirmation__paiement .h3,
.kawann-confirmation__paiement h2 {
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-marine);
}

.kawann-confirmation__paiement p,
.kawann-confirmation__paiement li,
.kawann-confirmation__paiement dd,
.kawann-confirmation__paiement dt {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kawann-marine);
}

.kawann-confirmation__paiement p { margin: 0 0 8px; }
.kawann-confirmation__paiement p:last-child { margin-bottom: 0; }

.kawann-confirmation__paiement table,
.kawann-confirmation__paiement dl {
  width: 100%;
  margin: 10px 0 12px;
  font-size: 0.875rem;
}

.kawann-confirmation__paiement td,
.kawann-confirmation__paiement th {
  padding: 8px 10px;
  border-top: 1px solid var(--kawann-border-clair, #efeae2);
  vertical-align: top;
}

.kawann-confirmation__paiement th,
.kawann-confirmation__paiement td:first-child { color: var(--kawann-text-muted); }
.kawann-confirmation__paiement td:last-child { font-weight: var(--kawann-weight-bold); }

/* --- Détails : paiement et livraison en deux lignes intitulé / valeur --- */
.kawann-confirmation__infos {
  display: grid;
  gap: 8px 24px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  margin: 0 0 16px;
}

.kawann-confirmation__infos dt {
  margin: 0 0 2px;
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kawann-text-muted);
}

.kawann-confirmation__infos dd { margin: 0; font-size: 0.875rem; color: var(--kawann-marine); }

/* --- Tableau des produits du parent, remis à l'échelle --- */
.page-order-confirmation .order-confirmation__table { font-size: 0.875rem; }

.page-order-confirmation .order-confirmation__product {
  display: flex;
  gap: 14px;
  padding: 12px 0;
  border-top: 1px solid var(--kawann-border-clair, #efeae2);
}

.page-order-confirmation .order-confirmation__product-image {
  position: relative;
  flex: 0 0 56px;
  width: 56px;
}

.page-order-confirmation .order-confirmation__product-img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  border: 1px solid var(--kawann-border);
  border-radius: 8px;
}

.page-order-confirmation .order-confirmation__product-quantity {
  position: absolute;
  right: -6px;
  bottom: -6px;
  margin: 0;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--kawann-marine);
  font-size: 0.6875rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-blanc);
}

.page-order-confirmation .order-confirmation__product-content {
  display: flex;
  flex: 1 1 auto;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.page-order-confirmation .order-confirmation__product-title {
  margin: 0 0 2px;
  font-size: 0.875rem;
  font-weight: var(--kawann-weight-bold);
  color: var(--kawann-marine);
}

.page-order-confirmation .order-confirmation__product-reference,
.page-order-confirmation .order-confirmation__product-price {
  margin: 0;
  font-size: 0.75rem;
  color: var(--kawann-text-muted);
}

.page-order-confirmation .order-confirmation__product-total {
  font-size: 0.9375rem;
  font-weight: var(--kawann-weight-bold);
  white-space: nowrap;
  color: var(--kawann-marine);
}

.page-order-confirmation .order-confirmation__table hr { margin: 8px 0; border-color: var(--kawann-border); }

.page-order-confirmation .order-confirmation__subtotals,
.page-order-confirmation .order-confirmation__totals { font-size: 0.875rem; }

.page-order-confirmation .order-confirmation__line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 0;
  color: var(--kawann-marine);
}

.page-order-confirmation .order-confirmation__totals .order-confirmation__line--bold {
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid var(--kawann-border);
  font-size: 1.0625rem;
  font-weight: var(--kawann-weight-title);
  color: var(--kawann-soleil-ink);
}

/* --- Invité : proposition de création de compte --- */
.kawann-confirmation__compte h4,
.kawann-confirmation__compte .h4 { font-size: 1rem; font-weight: var(--kawann-weight-title); color: var(--kawann-marine); }
.kawann-confirmation__compte p { font-size: 0.875rem; color: var(--kawann-text-muted); }

@media (max-width: 575.98px) {
  .kawann-confirmation { flex-direction: column; gap: 12px; }
  .kawann-confirmation__titre { font-size: 1.25rem; }
  .kawann-confirmation__actions .kawann-hist__btn { width: 100%; justify-content: center; }
  .page-order-confirmation .order-confirmation__product-content { flex-direction: column; gap: 4px; }
}

/* Le module de paiement rend parfois sa propre carte : on ne garde qu'un
   cadre, le nôtre. */
.kawann-confirmation__paiement .card,
.kawann-confirmation__paiement .card-body { border: 0; padding: 0; background: transparent; box-shadow: none; }
