/* =====================================================================
   VINTAGE BIKE SHOP — « Atelier Chic » — pages boutique & cohérence globale
   Pas de maquette dédiée pour ces pages : on applique le design system
   (tokens, fontes, boutons, formulaires, panneaux papier) de façon cohérente.
   Couvre : layout PrestaShop, notifications, formulaires, panier, tunnel,
   compte, contact, CMS, recherche, 404.
   ===================================================================== */

/* Icônes œil (afficher/masquer mot de passe) — dessinées en mask-image (recolorables). */
:root{
  --eye:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  --eye-off:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E");
}

/* ===== Neutralise les restes Bootstrap/Classic (theme.css est exclu) ===== */
#wrapper, #content-wrapper, #main, .container, .row { max-width: none; }
#structure.d-flex { display: block; }
#menu_hamburger { display: none; }

/* ===== Helpers de visibilité responsive (ex-theme.css) — réimplémentés au minimum.
   Le markup PrestaShop s'en sert pour n'afficher QU'UNE version par taille d'écran :
   bouton desktop vs mobile (« mot de passe oublié », etc.), tableau commandes desktop
   vs vue mobile, titres de filtres en mobile… Sans eux, les DEUX versions sortaient en
   double (boutons collés, doubles tableaux). Ce ne sont que ces quelques classes — pas
   le framework Bootstrap. ===== */
@media (max-width: 575.98px){ .hidden-xs-down{ display:none!important } }
@media (min-width: 576px)   { .hidden-sm-up{ display:none!important } }
@media (max-width: 767.98px){ .hidden-sm-down{ display:none!important } }
@media (min-width: 768px)   { .hidden-md-up{ display:none!important } }
@media (max-width: 991.98px){ .hidden-md-down{ display:none!important } }
@media (min-width: 992px)   { .hidden-lg-up{ display:none!important } }
@media (max-width: 1199.98px){ .hidden-lg-down{ display:none!important } }
@media (min-width: 1200px)  { .hidden-xl-up{ display:none!important } }

/* ===== Conteneur de page générique (pages hors home/cat/produit/contact) =====
   home/categorie/produit/contact gèrent leur propre pleine largeur (.wrap interne
   + bandes pleine largeur), on ne contraint donc PAS leur .container, sinon les
   bandes pleine largeur (héros vert contact, réassurance, marques…) seraient
   coupées (gouttière + max-width parasites). Chaque composant gère son padding. */
body:not(#index):not(#category):not(#product):not(#contact) #wrapper { padding-bottom: clamp(40px, 6vw, 80px); }
body:not(#index):not(#category):not(#product):not(#contact) #wrapper > .container { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
#content-wrapper { width: 100%; }

/* Fiche produit : conteneur pleine largeur à TOUTES les tailles (mobile compris).
   Pas de gouttière sur le conteneur — chaque composant gère SA propre gouttière :
   les sections via .wrap (padding:0 var(--gut)), le fil d'Ariane via sa propre règle
   .breadcrumb (padding ...var(--gut)...). Conséquence voulue : les bandes pleine
   largeur (héros vert « le saviez-vous ») touchent bien les bords sur mobile aussi. */

/* Titre de page. NB : page.tpl rend toujours le titre en <h2> (pas <h1>), donc on
   cible aussi .page-header h2 — sinon les pages type page.tpl (suivi commande, plan
   du site, magasins…) avaient un titre non stylé, collé au breadcrumb et à la carte. */
#main .page-header h1,
#main .page-header h2,
.page-heading,
#content h1.h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(28px, 4vw, 44px); letter-spacing: -.01em; margin: 14px 0 22px; }

/* ===== Panneau « papier » réutilisable ===== */
.chic-panel,
#main .page-content,
.block-categories,
#left-column .block,
.card { background: var(--paper-2); border: 1px solid var(--line); border-radius: 14px; }

/* ===== Liens de contenu ===== */
/* .js-search-link exclu : liens fonctionnels (pagination, facettes AJAX) — sinon le
   catch-all repeint les numéros de pagination en rouille (invisibles sur le pill actif). */
#content-wrapper a:not(.btn):not(.prod):not(.icon-btn):not(.search-link):not(.js-search-link):not(.u-card) { color: var(--rust); }
#content-wrapper a:not(.btn):not(.prod):not(.icon-btn):not(.search-link):not(.js-search-link):not(.u-card):hover { color: var(--rust-dark); }
/* options de facette = texte sombre comme la maquette (.fopt), pas rouille */
.filters .facet-label .search-link { color: var(--ink-70); }
.filters .facet-label:hover .search-link { color: var(--ink); }

/* ===== Formulaires (compte, contact, tunnel) ===== */
.form-control,
input[type=text], input[type=email], input[type=password], input[type=tel],
input[type=number], input[type=search], textarea, select {
  font-family: var(--sans); font-size: 14.5px; color: var(--ink);
  background: var(--paper-2); border: 1px solid var(--line); border-radius: 10px;
  padding: 12px 15px; width: 100%; transition: border-color .2s, box-shadow .2s;
}
.form-control:focus,
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(181,87,44,.12); }
label, .form-control-label { font-size: 13px; font-weight: 600; color: var(--ink-70); }

/* boutons PrestaShop ramenés au style maison */
.btn-primary, .btn-secondary,
button[type=submit].btn, .button {
  display: inline-flex; align-items: center; gap: 10px; font-family: var(--sans);
  font-weight: 600; font-size: 14px; padding: 13px 24px; border-radius: 999px;
  border: 1px solid transparent; background: var(--rust); color: #fff; transition: background .2s, transform .15s;
}
.btn-primary:hover, button[type=submit].btn:hover { background: var(--rust-dark); color: #fff; }
.btn-secondary { background: var(--aplat); color: var(--paper); }
.btn-secondary:hover { background: var(--aplat-deep); color: var(--paper); }

/* ===== Notifications =====
   Le cœur PS rend <aside id="notifications"><div class="container"> juste sous le
   header (ex : « Vous ne pouvez acheter que 1 … ajustez la quantité »). Avant :
   texte quasi invisible en pleine largeur tout en haut (retour Lois 03/07).
   Maintenant : carte d'alerte bien visible, calée sur la trame du contenu. */
.notifications-container { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
#notifications { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
#notifications .container { max-width: none; margin: 0; padding: 0; }
#notifications .alert { margin-top: 18px; }
#notifications .alert ul { margin: 0; padding: 0; list-style: none; }
#notifications .alert li + li { margin-top: 6px; }
.alert { display: flex; align-items: flex-start; gap: 12px; border-radius: 12px; border: 1px solid var(--line); padding: 15px 18px; font-size: 14px; font-weight: 500; line-height: 1.5; }
.alert::before { content: "!"; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; display: grid; place-items: center; font-family: var(--serif); font-weight: 700; font-size: 14px; background: var(--aplat); color: var(--paper); }
.alert-success { background: #e9f0ea; border-color: #b9d3c0; color: var(--green-dark); }
.alert-success::before { content: "✓"; background: var(--green); color: #fff; }
.alert-danger, .alert-warning { background: #FAE9DE; border-color: rgba(181,87,44,.45); color: #7C3A1D; }
.alert-danger::before, .alert-warning::before { background: var(--rust); color: #fff; }

/* ===== Tables (commandes, panier récap) ===== */
.table, table.cart_summary { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: 12px 14px; border-bottom: 1px solid var(--line-soft); font-size: 14px; text-align: left; }
.table th { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-50); }

/* ===== Page d'erreur 404 ===== */
#products .page-not-found, #content .page-not-found,
.page-not-found { background: var(--paper-2); border: 1px solid var(--line); border-radius: 16px; padding: clamp(34px,6vw,64px); text-align: center; max-width: 640px; margin: 40px auto; }

/* breadcrumb (présent globalement via header) : déjà stylé par chic-category/product.
   Fallback léger pour les pages qui n'incluent pas ces feuilles propres. */
.breadcrumb[data-content] { padding: 18px 0 0; }

/* ============================================================
   PAGE CONTACT (.atelier-contact — markup conservé, restylé Atelier Chic)
   ============================================================ */
.atelier-contact .contact-hero{background:var(--green);color:var(--paper);padding:clamp(44px,7vw,86px) 0}
.atelier-contact .contact-hero .wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.atelier-contact .contact-hero .eyebrow{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:#bcae98;margin-bottom:14px}
.atelier-contact .contact-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(36px,5.2vw,58px);color:#fff;line-height:1.04;margin:0}
.atelier-contact .contact-hero .lead{color:#d9d0c0;font-size:16px;max-width:60ch;margin-top:16px}
.atelier-contact .contact-grid{display:grid;grid-template-columns:340px 1fr;gap:40px;max-width:var(--wrap);margin:0 auto;padding:clamp(38px,6vw,70px) var(--gut)}
.atelier-contact .contact-aside{display:flex;flex-direction:column;gap:16px}
.atelier-contact .info-card{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.atelier-contact .info-card.is-rachat{background:var(--paper-3)}
.atelier-contact .ic-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.atelier-contact .ic-ico{width:42px;height:42px;border-radius:9px;background:var(--paper-3);display:grid;place-items:center;color:var(--rust);flex-shrink:0}
.atelier-contact .info-card.is-rachat .ic-ico{background:var(--paper-2)}
.atelier-contact .ic-ico svg{width:21px;height:21px;fill:currentColor}
.atelier-contact .ic-head h3{font-family:var(--serif);font-weight:500;font-size:18px;margin:0}
.atelier-contact .info-card p{font-size:14px;color:var(--ink-70);line-height:1.65;margin:0}
.atelier-contact .info-card a{color:var(--rust);font-weight:600}
.atelier-contact .contact-main{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:clamp(24px,3vw,36px)}
.atelier-contact .contact-main h3{font-family:var(--serif);font-weight:500;font-size:22px;margin-bottom:16px}
/* formulaire contact (module contactform) */
.contact-form h3{font-family:var(--serif);font-weight:500;font-size:22px;margin:0 0 6px}
.contact-form .form-intro{font-size:13px;color:var(--ink-50);margin:0 0 20px}
.contact-form .ff-row{margin-bottom:16px}
.contact-form .ff-row label{display:block;margin-bottom:7px}
/* honeypot anti-spam : champ piège qui DOIT rester invisible (Bootstrap exclu) */
.contact-form .form-footer input[name=url]{display:none}
/* bouton Envoyer détaché des champs et centré dans la carte */
.contact-form .form-footer{margin-top:26px;text-align:center}
.contact-form .form-footer .btn{min-width:200px;justify-content:center}
@media(max-width:820px){.atelier-contact .contact-grid{grid-template-columns:1fr}}

/* ============================================================
   FORMULAIRES & BLOCS PS génériques (compte, tunnel, contact form)
   ============================================================ */
.form-group{margin-bottom:16px}
.form-control-comment{font-size:12px;color:var(--ink-50)}
.custom-checkbox, .custom-radio{position:relative}
.page-customer-account #content, .page-authentication #content,
.page-addresses .address, .checkout-step, #order-confirmation .card,
.cart-grid-body .card, .cart-grid-right .card, .block-contact, #authentication .login-form{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:clamp(20px,3vw,30px);margin-bottom:20px;
}
.page-footer .account-link, .links a{color:var(--rust)}
/* boutons « continuer / commander » du tunnel */
.checkout .btn, #js-checkout-summary .btn, .cart-detailed-actions .btn{border-radius:999px}

/* ============================================================
   PAGE CONNEXION (#authentication / .page-authentication)
   Markup PrestaShop stock conservé ; recentré en carte « atelier »
   (le panneau pleine largeur sonnait vide). CSS only, upgrade-safe.
   ============================================================ */
/* Double cadre : #content (carte .page-content/.card) ENGLOBE déjà la .login-form,
   elle-même en carte → deux bordures concentriques. On neutralise la carte
   extérieure et on garde la seule carte du formulaire (centrée, max 460px). */
.page-authentication #content{background:none;border:0;border-radius:0;padding:0;margin-bottom:0}
.page-authentication .page-header{text-align:center;margin-bottom:24px}
.page-authentication .page-header h1,
.page-authentication h1.h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,4vw,38px);letter-spacing:-.01em;margin:0}
.page-authentication .login-form,
.page-authentication hr,
.page-authentication .no-account{max-width:460px;margin-left:auto;margin-right:auto}
.page-authentication .login-form{margin-top:0;margin-bottom:0;padding:clamp(26px,4vw,36px)}
.page-authentication #login-form .forgot-password{margin-top:-2px}
.page-authentication #login-form .forgot-password a{font-size:13px}
/* champ mot de passe + bouton « Afficher » alignés sur une ligne (connexion, tunnel,
   inscription… partout où PrestaShop ajoute le toggle) */
.input-group:has([data-action=show-password]){display:flex;gap:8px;align-items:stretch}
.input-group:has([data-action=show-password]) .form-control{flex:1}
/* le bouton est emballé dans <span class="input-group-btn"> : display:contents fait du
   bouton un enfant flex direct → il s'étire à la hauteur du champ (align-items:stretch)
   et l'œil se centre H+V (le bouton est lui-même inline-flex center/center) */
.input-group:has([data-action=show-password]) .input-group-btn{display:contents}
/* bouton œil : le theme.js de base bascule le type ET réécrit le texte « Afficher/Masquer »
   du bouton — on masque ce texte (font-size:0) et on dessine l'icône en ::before (mask SVG,
   donc survit au .text() de theme.js). :has() bascule œil → œil barré quand le mot de passe
   est révélé (input passé en type=text). */
[data-action=show-password]{
  display:inline-flex;align-items:center;justify-content:center;gap:0;
  flex:0 0 48px;width:48px;padding:0;font-size:0;color:var(--ink-50);
  background:var(--paper-3);border:1px solid var(--line);border-radius:10px;
  cursor:pointer;transition:color .2s,border-color .2s;
}
[data-action=show-password]::before{
  content:"";width:21px;height:21px;background-color:currentColor;
  -webkit-mask:var(--eye) center/contain no-repeat;mask:var(--eye) center/contain no-repeat;
}
.input-group:has(.js-visible-password[type=text]) [data-action=show-password]::before{
  -webkit-mask-image:var(--eye-off);mask-image:var(--eye-off);
}
[data-action=show-password]:hover{color:var(--ink);border-color:var(--ink-50)}
/* bouton Connexion pleine largeur de la carte */
.page-authentication .form-footer{margin-top:22px;text-align:center}
.page-authentication .form-footer .btn{width:100%;justify-content:center}
/* filet + « Pas de compte ? » centrés sous la carte */
.page-authentication hr{border:0;border-top:1px solid var(--line);margin-top:26px;margin-bottom:18px}
.page-authentication .no-account{text-align:center}
.page-authentication .no-account a{font-weight:600}

/* ===== PAGE MOT DE PASSE OUBLIÉ (.page-password) — carte centrée comme la connexion ===== */
.page-password .page-header{text-align:center;margin-bottom:24px}
.page-password .page-header h1,
.page-password h1.h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,4vw,38px);letter-spacing:-.01em;margin:0}
.page-password .forgotten-password{max-width:460px;margin:0 auto;background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:clamp(26px,4vw,36px)}
.page-password .forgotten-password .container{padding:0}
.page-password .forgotten-password .send-renew-password-link{font-size:14px;color:var(--ink-70);line-height:1.6;margin:0 0 20px}
.page-password .forgotten-password .email{margin-bottom:18px}
.page-password .forgotten-password .btn{width:100%;justify-content:center}
.page-password .account-link{display:block;text-align:center;margin-top:18px;font-weight:600}

/* ===== PAGE INSCRIPTION (.page-registration) — carte centrée, comme la connexion =====
   Le form ps (#customer-form) utilise des classes Bootstrap (.row/.col-md-*) MORTES
   (theme.css exclu) → sans cadre il s'étalait sur toute la largeur. On le pose en carte. */
.page-registration .page-header{text-align:center;margin-bottom:24px}
.page-registration .page-header h1,
.page-registration h1.h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,4vw,38px);letter-spacing:-.01em;margin:0}
/* #content est déjà stylé en CARTE via « .page-customer-account #content » → avec notre
   carte .register-form ça faisait une carte-dans-une-carte. On neutralise la carte
   extérieure sur l'inscription : seule .register-form reste la carte. */
.page-registration #content{background:none;border:0;border-radius:0;padding:0;margin:0}
.page-registration .register-form{max-width:600px;margin:0 auto;background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:clamp(26px,4vw,36px)}
.page-registration .register-form > p{text-align:center;font-size:14px;color:var(--ink-70);margin:0 0 22px}
.page-registration .register-form > p a{font-weight:600;color:var(--rust)}
/* bouton « Enregistrer » pleine largeur (annule le float-xs-right Bootstrap mort) */
.page-registration #customer-form .form-footer{margin-top:6px}
.page-registration #customer-form .form-footer .btn{width:100%;justify-content:center;float:none!important}

/* ----- Form compte (#customer-form : inscription ET tunnel) : libellés/champs propres ----- */
/* les .col-md-* sont mortes → label au-dessus, champ pleine largeur dans la carte */
#customer-form .form-group.row{display:block;margin-bottom:16px}
#customer-form .form-group .form-control-label{display:block;margin-bottom:6px}
/* « Optionnel » (col de droite) en petit, sous le champ, discret */
#customer-form .form-group > .form-control-comment{display:block;margin-top:5px;font-size:12px;color:var(--ink-50)}
/* radios « Civilité » (Mr/Mrs) en ligne */
#customer-form .radio-inline{display:inline-flex;align-items:center;gap:7px;margin:0 20px 0 0;font-weight:400;color:var(--ink-70)}
/* cases à cocher (CGV, newsletter) : icône + texte alignés, libellé en poids normal */
#customer-form .custom-checkbox > label{display:flex;align-items:flex-start;gap:9px;font-weight:400;color:var(--ink-70);cursor:pointer;margin:0}
#customer-form .custom-checkbox > label a{color:var(--rust);font-weight:600}

/* ----- Messages de validation sous les champs (.help-block > ul > li.alert) -----
   Markup ps (form-errors.tpl) : <ul> à puces + <li.alert.alert-danger> collés les uns aux
   autres → illisible. On aplatit la liste (sans puces/indent) et on espace/aère chaque
   message. S'applique à TOUS les forms (inscription, tunnel, contact…). */
.help-block{margin-top:8px}
.help-block ul{list-style:none;margin:0;padding:0}
.help-block li.alert{display:block;margin:0 0 8px;padding:10px 14px;font-size:13px;line-height:1.45}
.help-block li.alert:last-child{margin-bottom:0}

/* ===== Pages CMS (mentions légales, livraison, CGV…) =====
   Contenu édité en BO, enveloppé par cms/page.tpl dans .cms-content. La carte
   .page-content a la bordure/fond papier mais aucun padding par défaut → on l'ajoute,
   sinon le texte colle aux bords. Puis on donne une vraie typo de page texte. */
body#cms #main .page-content{padding:clamp(22px,4vw,40px)}
/* fil d'Ariane : il vit déjà dans .container (qui porte la gouttière var(--gut)) et
   ré-ajoutait SA propre gouttière → doublement indenté vs la carte. On retire sa
   gouttière latérale pour l'aligner sur le bord du contenu.
   Pages concernées : CMS + suivi commande invité (guest-tracking). */
body#cms .breadcrumb,
body#guest-tracking .breadcrumb{padding-left:0;padding-right:0}
/* Garde-fou : artefacts de l'extension navigateur « Image Resizer » (ir-ext-*) collés
   par erreur dans le contenu lors d'une édition en BO → vilain cadre gris « x (x) ».
   On les masque côté front. ⚠️ Le VRAI correctif est de les retirer du contenu en base
   (BO → Apparence → Pages → CGV / À propos, en FR et EN) ; ici c'est juste un filet. */
.cms-content [id="ir-ext-ui"],
.cms-content [class^="ir-ext-"]{display:none!important}
.cms-content{max-width:80ch;font-size:15px;color:var(--ink-70);line-height:1.7}
.cms-content > :first-child{margin-top:0}
.cms-content p{margin:0 0 1em}
.cms-content ul,.cms-content ol{margin:0 0 1em;padding-left:1.4em}
.cms-content li{margin:.3em 0}
.cms-content a{color:var(--rust)}
.cms-content a:hover{color:var(--rust-dark)}
/* titres : serif hérité de chic.css, on ne fixe que les tailles + rythme */
.cms-content h2{font-size:clamp(22px,2.6vw,28px);color:var(--ink);margin:1.6em 0 .5em}
.cms-content h3{font-size:19px;color:var(--ink);margin:1.4em 0 .4em}
/* le 1er titre du contenu = titre de page (le thème n'en imprime plus, cf. page.tpl).
   On ne promeut que h1/h2 : si une page commence par un h3 (ex. CGV « Article 1 »),
   il garde sa taille de sous-titre au lieu de devenir un énorme titre. */
.cms-content > h1:first-child,.cms-content > h2:first-child{
  font-size:clamp(28px,4vw,44px);margin:0 0 .6em;letter-spacing:-.01em}

/* ============================================================
   TUNNEL / PANIER / COMPTE — règles FONCTIONNELLES + cosmétiques
   Reprises de l'ex-atelier-customer.css (qui remplaçait theme.css/Bootstrap),
   recolorées sur les tokens Atelier Chic. NE PAS SUPPRIMER les toggles :
   ils pilotent l'affichage des étapes du tunnel et des onglets invité/connexion.
   ============================================================ */
body#checkout #structure{display:block}

/* --- Tunnel : footer compact. On retire la grande bande newsletter (hors-sujet en
   pleine commande, c'est elle qui rend le footer énorme) et on réduit l'air sous le
   contenu. Le footer marketing complet reste sur les autres pages. --- */
body#checkout .news{display:none}
body#checkout #wrapper{padding-bottom:clamp(20px,3vw,36px)!important}

/* --- TOGGLE des étapes du tunnel : seule l'étape courante affiche son .content --- */
body#checkout .checkout-step .content{display:none;padding:0 26px 26px}
body#checkout .checkout-step.-current .content{display:block}
body#checkout .checkout-step.-current.-reachable.-complete .content{display:block}
body#checkout .checkout-step.-reachable.-complete .content{display:none}
body#checkout .checkout-step .done,body#checkout .checkout-step .step-edit{display:none}
body#checkout .checkout-step.-complete > :is(h1,h2) .done{display:inline-flex}
body#checkout .checkout-step.-reachable.-complete > :is(h1,h2) .step-edit{display:inline-flex}

/* --- TOGGLE des onglets invité / connexion (Bootstrap .tab-pane) --- */
body#checkout .tab-content > .tab-pane,body#authentication .tab-content > .tab-pane{display:none}
body#checkout .tab-content > .tab-pane.active,body#authentication .tab-content > .tab-pane.active{display:block}

/* --- Cartes panier / tunnel / confirmation --- */
body#cart .card,body#checkout #js-checkout-summary.card,body#checkout .checkout-step,
body#order-confirmation .card,body#order-confirmation #registration-form.card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;box-shadow:none;margin-bottom:22px;overflow:visible;
}
body#cart .card .card-block,body#checkout #js-checkout-summary .card-block{padding:24px 26px}

/* --- En-têtes d'étape (numéro, états) --- */
body#checkout .checkout-step > :is(h1,h2){display:flex;align-items:center;gap:12px;margin:0;padding:20px 26px;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--green);cursor:pointer;line-height:1.2}
body#checkout .checkout-step .step-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--paper-3);border:2px solid var(--line);font-family:var(--sans);font-size:15px;font-weight:600;color:var(--green)}
body#checkout .checkout-step.-current .step-number{background:var(--rust);border-color:var(--rust);color:#fff}
body#checkout .checkout-step.-complete > :is(h1,h2) .done{align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--rust);color:#fff}
body#checkout .checkout-step.-unreachable > :is(h1,h2){opacity:.45;cursor:not-allowed}
body#checkout .checkout-step .step-edit{margin-left:auto;font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:600;color:var(--rust-dark)}

/* --- Étape « Informations » quand le client est DÉJÀ CONNECTÉ (raccourci) : panneau identité + CTA. Sans ça, ce chemin n'a que des <p> bruts (theme.css exclu du tunnel). --- */
body#checkout .identity-connected{display:flex;flex-direction:column;gap:5px;padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:12px;margin:2px 0 22px}
body#checkout .identity-connected .identity{margin:0;font-family:var(--serif);font-size:17px;font-weight:500;color:var(--green);line-height:1.3}
body#checkout .identity-connected .identity a{color:var(--green);font-weight:600;text-decoration:underline;text-decoration-color:var(--rust);text-underline-offset:3px}
body#checkout .identity-connected .identity a:hover{color:var(--rust-dark);text-decoration-color:var(--rust-dark)}
body#checkout .identity-connected .logout-line{margin:0;font-family:var(--sans);font-size:14px;color:var(--ink-70)}
body#checkout .identity-connected .logout-line a{color:var(--rust);font-weight:600}
body#checkout .identity-connected .logout-line a:hover{color:var(--rust-dark)}
body#checkout .identity-connected .logout-note{margin:2px 0 0}
body#checkout .identity-connected .logout-note small{font-family:var(--sans);font-size:12.5px;color:var(--ink-50)}
body#checkout .identity-actions{display:flex;justify-content:flex-end}
body#checkout .identity-actions form{margin:0}
body#checkout .identity-actions .continue{float:none!important}
@media(max-width:560px){
  body#checkout .identity-actions,body#checkout .identity-actions form{display:block}
  body#checkout .identity-actions .continue{width:100%}
}

/* --- Onglets « Commander en tant qu'invité / Connexion » : segmented control bien visible --- */
body#checkout .nav-inline{display:inline-flex;align-items:stretch;gap:6px;list-style:none;padding:5px;margin:0 0 24px;background:var(--paper-3);border:1px solid var(--line);border-radius:999px}
body#checkout .nav-inline .nav-separator{display:none}
body#checkout .nav-inline .nav-item{display:flex;margin:0}
body#checkout .nav-inline .nav-link{display:inline-flex;align-items:center;justify-content:center;padding:11px 24px;border:0;border-radius:999px;font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:14.5px;font-weight:600;color:var(--ink-70)!important;background:transparent;cursor:pointer;transition:background .2s,color .2s}
body#checkout .nav-inline .nav-link:hover{color:var(--ink)!important}
body#checkout .nav-inline .nav-link.active{background:var(--rust);color:#fff!important}
.page-customer-account .nav-tabs{background:transparent}
@media(max-width:560px){
  body#checkout .nav-inline{display:flex;width:100%}
  body#checkout .nav-inline .nav-item{flex:1}
  body#checkout .nav-inline .nav-link{width:100%;padding:10px 12px;font-size:13px;text-align:center}
}

/* ============================================================
   ÉTAPES TUNNEL — LIVRAISON / ADRESSES / PAIEMENT
   theme.css exclu → la grille Bootstrap (.row/.col-*) est MORTE et ces blocs
   tombaient en style navigateur brut. On les refait en flex/grid dans l'idiome
   « atelier ». Radios/checkbox laissés NATIFS (aucun remplacement CSS dans le
   thème + material-icons masquées globalement). ps-shown/hidden-by-js gérés par
   le core JS (indépendants de theme.css) ; on ne réintègre QUE ce que theme.css
   portait et qui manque ici : .collapse (message cadeau) et .hidden-xs-up.
   ============================================================ */
body#checkout .hidden-xs-up{display:none!important}

/* ---------- LIVRAISON : liste des transporteurs → cartes cliquables ---------- */
body#checkout .delivery-options{display:flex;flex-direction:column;gap:12px;margin:0}
body#checkout .delivery-option{display:flex;align-items:center;gap:14px;margin:0;padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:var(--paper);transition:border-color .15s,background .15s,box-shadow .15s}
body#checkout .delivery-option:hover{border-color:var(--ink-50)}
body#checkout .delivery-option:has(input:checked){border-color:var(--rust);background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--rust)}
body#checkout .delivery-option > .col-sm-1{flex:0 0 auto;width:auto;max-width:none;padding:0}
body#checkout .delivery-option .custom-radio{float:none!important}
body#checkout .delivery-option-2{flex:1;min-width:0;margin:0;padding:0;max-width:none;cursor:pointer}
body#checkout .delivery-option-2 > .row{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
body#checkout .delivery-option-2 [class*="col-"]{width:auto;max-width:none;padding:0}
body#checkout .delivery-option-2 .carrier{display:flex;align-items:center;gap:10px;margin:0;flex:1 1 auto;min-width:0}
body#checkout .delivery-option-2 .carrier-logo{flex:0 0 auto;line-height:0}
body#checkout .delivery-option-2 .carrier-logo img{max-height:34px;width:auto}
body#checkout .delivery-option-2 .carrier-name{font-family:var(--serif);font-weight:500;font-size:16px;color:var(--ink)}
body#checkout .delivery-option-2 .carrier-delay{font-size:13px;color:var(--ink-50)}
body#checkout .delivery-option-2 .carrier-price{font-family:var(--serif);font-weight:500;font-size:18px;color:var(--green);white-space:nowrap;margin-left:auto}
body#checkout .carrier-extra-content:not(:empty){margin:2px 0 6px;padding:2px;font-size:13.5px;color:var(--ink-70)}

/* commentaire de commande + options (emballage recyclé / message cadeau) */
body#checkout .order-options{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:14px}
body#checkout .order-options #delivery > label,
body#checkout .order-options #gift > label[for=gift_message]{display:block;margin:0 0 6px;font-size:14px;color:var(--ink-70);line-height:1.5}
body#checkout .order-options textarea{width:100%;min-height:64px;resize:vertical}
body#checkout .order-options .custom-checkbox{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
body#checkout .order-options .custom-checkbox > span:empty,
body#checkout .order-options .custom-checkbox > span:has(> .material-icons:only-child){display:none}
body#checkout .order-options .custom-checkbox > label{margin:0;font-size:14px;color:var(--ink-70);cursor:pointer;font-weight:400}
/* .collapse (message cadeau) : theme.css le portait, on le réintègre ici */
body#checkout .order-options .collapse{display:none;flex-basis:100%}
body#checkout .order-options .collapse.in{display:block}

/* bouton « Continuer » livraison aligné à droite (float-xs-right Bootstrap mort) */
body#checkout #js-delivery{display:flex;flex-direction:column}
body#checkout #js-delivery > .continue{align-self:flex-end}

/* ---------- ADRESSES : sélecteur → grille de cartes ---------- */
body#checkout .js-address-form > form > h2.h4{font-family:var(--serif);font-weight:500;font-size:18px;color:var(--green);margin:0 0 14px}
body#checkout .js-address-form > form > h2.h4:not(:first-child){margin-top:26px}
body#checkout .js-address-form > form > p{font-size:13.5px;color:var(--ink-70);line-height:1.55;margin:0 0 16px}
body#checkout .address-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:0 0 14px}
body#checkout .address-item{margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden;transition:border-color .15s,box-shadow .15s}
body#checkout .address-item.selected,body#checkout .address-item:has(input:checked){border-color:var(--rust);box-shadow:inset 0 0 0 1px var(--rust)}
body#checkout .address-item > header{margin:0;padding:16px 18px}
body#checkout .address-item .radio-block{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:5px;align-items:start;margin:0;cursor:pointer}
body#checkout .address-item .radio-block > .custom-radio{grid-column:1;grid-row:1;margin-top:2px;float:none!important}
body#checkout .address-item .address-alias{grid-column:2;grid-row:1;font-family:var(--serif);font-weight:600;font-size:16px;color:var(--ink);margin:0}
body#checkout .address-item .radio-block > .address{grid-column:2;grid-row:2;font-size:13.5px;color:var(--ink-70);line-height:1.5}
body#checkout .address-item hr{margin:0;border:0;border-top:1px solid var(--line-soft)}
body#checkout .address-item .address-footer{display:flex;gap:18px;padding:11px 18px;background:var(--paper-2)}
body#checkout .address-item .address-footer a{display:inline-flex;align-items:center;font-family:var(--sans);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
body#checkout .address-item .edit-address{color:var(--rust)}
body#checkout .address-item .edit-address:hover{color:var(--rust-dark)}
body#checkout .address-item .delete-address{color:var(--ink-50)}
body#checkout .address-item .delete-address:hover{color:var(--rust-dark)}
body#checkout .add-address{margin:2px 0 0}
body#checkout .add-address a{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--rust)}
body#checkout .add-address a::before{content:"+";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid currentColor;font-size:16px;line-height:1}
body#checkout .add-address a:hover{color:var(--rust-dark)}
body#checkout .js-address-form .clearfix{display:flex;justify-content:flex-end;align-items:center;gap:12px}

/* ---------- PAIEMENT : modes de paiement → cartes cliquables ---------- */
body#checkout .payment-options{display:flex;flex-direction:column;gap:10px;margin:0 0 22px}
body#checkout .payment-option{display:flex;align-items:center;gap:12px;margin:0;padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
body#checkout .payment-option:hover{border-color:var(--ink-50)}
body#checkout .payment-option:has(input:checked){border-color:var(--rust);background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--rust)}
body#checkout .payment-option .custom-radio{flex:0 0 auto;float:none!important}
body#checkout .payment-option > label{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;cursor:pointer}
body#checkout .payment-option > label > span{font-family:var(--sans);font-weight:600;font-size:15px;color:var(--ink)}
body#checkout .payment-option > label img{max-height:30px;width:auto;margin-left:auto}
body#checkout .js-additional-information,body#checkout .additional-information{padding:0 2px 4px;font-size:13.5px;color:var(--ink-70);line-height:1.5}
/* Conditions générales (cases à cocher) : liste aplatie et aérée */
body#checkout #conditions-to-approve{margin:0 0 22px}
body#checkout #conditions-to-approve ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
body#checkout #conditions-to-approve li{display:flex;align-items:flex-start;gap:10px}
body#checkout #conditions-to-approve li > .float-xs-left{float:none!important;flex:0 0 auto;margin-top:1px}
body#checkout #conditions-to-approve .condition-label{flex:1;min-width:0}
body#checkout #conditions-to-approve label.js-terms{margin:0;font-size:13.5px;color:var(--ink-70);line-height:1.5;cursor:pointer}
body#checkout #conditions-to-approve label.js-terms a{color:var(--rust);font-weight:600;text-decoration:underline;text-underline-offset:2px}
/* bouton « Commander » : CTA centré (center-block Bootstrap mort) */
body#checkout .center-block{margin-left:auto;margin-right:auto}
body#checkout #payment-confirmation{margin-top:6px}
body#checkout #payment-confirmation .ps-shown-by-js{display:flex;flex-direction:column;align-items:center;gap:14px}
body#checkout #payment-confirmation button.btn-primary{min-width:min(280px,100%);justify-content:center}
body#checkout #payment-confirmation .alert{width:100%}

/* ---------- RÉCAP « Vérifiez votre commande » (order-final-summary, étape paiement) ----------
   #order-summary-content n'existe que sur l'étape paiement. Le tableau produits partagé
   (.order-confirmation-table / .order-line / #order-items) est stylé SANS scope body#checkout
   pour corriger aussi la page de confirmation (même markup, brut là-bas). Les liens « edit »
   du récap sont déjà masqués par la règle .checkout-step .step-edit{display:none}. */
/* #order-summary-content porte .page-content → héritait la carte « papier » (#main .page-content,
   l.63 : fond+bordure+radius). On la neutralise : le récap vit déjà dans la carte de l'étape,
   on ne garde qu'un filet fin en haut comme séparateur avec les CGV. */
body#checkout #order-summary-content{background:none;border:0;border-radius:0;border-top:1px solid var(--line-soft);margin:2px 0;padding:22px 0 0}
body#checkout #order-summary-content .row{margin:0}
body#checkout #order-summary-content [class*="col-"]{width:auto;max-width:none;padding:0;float:none;border:0;background:none}
body#checkout #order-summary-content h4.black{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--ink);margin:0 0 4px}
/* sous-titres de section = filet fin (Adresses / Livraison), pas d'encadré */
body#checkout #order-summary-content h4.h4:not(.black){font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--ink-50);margin:18px 0 12px;padding-top:18px;border-top:1px solid var(--line-soft)}
/* adresses : 2 colonnes À PLAT (pas de carte : tout est déjà dans la carte de l'étape) */
body#checkout #order-summary-content .row:has(> .col-md-6 > .card){display:grid;grid-template-columns:1fr 1fr;gap:16px 28px}
body#checkout #order-summary-content .card{background:none;border:0;border-radius:0;box-shadow:none;margin:0}
body#checkout #order-summary-content .card-block{padding:0;font-size:13.5px;color:var(--ink-70);line-height:1.6}
body#checkout #order-summary-content h4.addresshead{font-family:var(--serif);font-weight:600;font-size:15px;color:var(--ink);text-transform:none;letter-spacing:0;margin:0 0 6px}
/* transporteur sélectionné : ligne inline À PLAT (logo | nom | délai | prix) */
body#checkout #order-summary-content .summary-selected-carrier{padding:0}
body#checkout #order-summary-content .summary-selected-carrier > .row{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;padding:0;border:0;background:none}
body#checkout #order-summary-content .summary-selected-carrier > .row > [class*="col-"]{display:contents}
body#checkout #order-summary-content .summary-selected-carrier .logo-container{line-height:0}
body#checkout #order-summary-content .summary-selected-carrier .logo-container img{max-height:28px;width:auto}
body#checkout #order-summary-content .summary-selected-carrier .carrier-name{font-family:var(--serif);font-weight:500;font-size:15px;color:var(--ink)}
body#checkout #order-summary-content .summary-selected-carrier .carrier-delay{font-size:13px;color:var(--ink-50)}
body#checkout #order-summary-content .summary-selected-carrier .carrier-price{font-family:var(--serif);font-weight:500;font-size:16px;color:var(--green);white-space:nowrap;margin-left:auto}
/* filet fin avant la section produits */
body#checkout #order-summary-content .row:has(#order-items){border-top:1px solid var(--line-soft);margin-top:20px;padding-top:16px}

/* ---------- Tableau produits du récap (PARTAGÉ étape paiement + page confirmation) ---------- */
#order-items{padding:0}
#order-items > .row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0}
#order-items > .row h3.card-title{font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700;color:var(--ink-50);margin:0}
#order-items > .row ._desktop-title{display:none}
.order-confirmation-table{margin-top:6px}
.order-confirmation-table .order-line{display:flex;align-items:center;gap:14px;margin:0;padding:12px 0;border-top:1px solid var(--line-soft)}
.order-confirmation-table .order-line:first-of-type{border-top:0}
/* reset à plat des cellules prix/qté/total : aucune bordure ni fond résiduels */
.order-confirmation-table .order-line [class*="col-"]{width:auto;max-width:none;padding:0;float:none;border:0;background:none}
.order-confirmation-table .order-line .image img{width:52px;height:52px;object-fit:contain;border-radius:8px;background:var(--paper-3);mix-blend-mode:multiply}
.order-confirmation-table .order-line .details{flex:1;min-width:0}
.order-confirmation-table .order-line .details a,.order-confirmation-table .order-line .details > span{font-family:var(--serif);font-weight:500;font-size:15px;color:var(--ink)}
.order-confirmation-table .order-line .qty{flex:0 0 auto;margin-left:auto}
.order-confirmation-table .order-line .qty > .row{display:flex;align-items:center;gap:18px;margin:0}
.order-confirmation-table .order-line .qty > .row > div{padding:0;font-size:14px;color:var(--ink-70)}
.order-confirmation-table .order-line .qty > .row > div,
.order-confirmation-table .order-line .qty > .row > div *{border:0;background:none;box-shadow:none;outline:0}
.order-confirmation-table .order-line .qty input{-webkit-appearance:none;appearance:none;padding:0;width:auto;min-width:0;text-align:center;font:inherit;color:inherit}
.order-confirmation-table .order-line .qty .bold{font-family:var(--serif);font-weight:500;font-size:15px;color:var(--ink);white-space:nowrap}
.order-confirmation-table > hr{margin:12px 0;border:0;border-top:1px solid var(--line-soft)}
.order-confirmation-table > table{width:100%;border-collapse:collapse}
.order-confirmation-table > table td{padding:5px 0;font-size:14px;color:var(--ink-70)}
.order-confirmation-table > table td:last-child{text-align:right;white-space:nowrap;color:var(--ink)}
.order-confirmation-table > table tr.total-value td{font-family:var(--serif);font-size:17px;color:var(--ink);padding-top:10px}
.order-confirmation-table > table tr.total-value td .text-uppercase{text-transform:uppercase;letter-spacing:.03em}
.order-confirmation-table > table tr.sub.taxes td{font-size:12px;color:var(--ink-50)}

/* ============================================================
   PAGE CONFIRMATION DE COMMANDE (body#order-confirmation)
   Les .card ont bordure/fond mais AUCUN padding (theme.css exclu) → contenu au ras.
   On pose le padding + on style bandeau / order-details / retour bankwire (dl brut). ---
   ============================================================ */
body#order-confirmation .card > .card-block{padding:clamp(20px,3vw,30px)}
body#order-confirmation .card [class*="col-"]{width:auto;max-width:none;float:none;padding:0}
/* bandeau « Votre commande est confirmée » (icône material masquée → puce ✓ recréée) */
body#order-confirmation #content-hook_order_confirmation h3{font-family:var(--serif);font-weight:500;font-size:clamp(23px,3.4vw,30px);color:var(--green);line-height:1.15;margin:0 0 12px;display:flex;align-items:center;gap:12px}
body#order-confirmation #content-hook_order_confirmation h3::before{content:"\2713";flex:0 0 auto;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--green);color:#fff;font-size:19px}
body#order-confirmation #content-hook_order_confirmation p{font-size:14.5px;color:var(--ink-70);line-height:1.6;margin:0}
body#order-confirmation #content-hook_order_confirmation a{color:var(--rust);font-weight:600}
/* Order details */
body#order-confirmation #order-details{margin-top:24px;padding-top:22px;border-top:1px solid var(--line-soft)}
body#order-confirmation #order-details h3{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--ink-50);margin:0 0 12px}
body#order-confirmation #order-details ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
body#order-confirmation #order-details li{font-size:14px;color:var(--ink-70);line-height:1.5}
body#order-confirmation #order-details li em{color:var(--ink-50)}
/* Retour de paiement bankwire : intro + <dl> (Amount / titulaire / RIB / banque) à plat */
body#order-confirmation #content-hook_payment_return p{font-size:14.5px;color:var(--ink-70);line-height:1.6;margin:0 0 14px}
body#order-confirmation #content-hook_payment_return strong{display:block;font-weight:600;color:var(--ink);margin:2px 0 14px}
body#order-confirmation #content-hook_payment_return a{color:var(--rust);font-weight:600}
body#order-confirmation #content-hook_payment_return dl{margin:4px 0 18px;padding:16px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
body#order-confirmation #content-hook_payment_return dt{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--ink-50);text-transform:uppercase;margin-top:14px}
body#order-confirmation #content-hook_payment_return dl > dt:first-child{margin-top:0}
body#order-confirmation #content-hook_payment_return dd{margin:3px 0 0;font-size:14px;color:var(--ink);line-height:1.55}
body#order-confirmation #content-hook_payment_return dd:first-of-type{font-family:var(--serif);font-size:18px;font-weight:500;color:var(--green)}

/* mobile : boutons pleine largeur, sélecteurs en 1 colonne */
@media(max-width:560px){
  body#checkout .checkout-step .content .continue{width:100%;align-self:stretch}
  body#checkout .js-address-form .clearfix{display:block}
  body#checkout .address-selector{grid-template-columns:1fr}
  body#checkout .delivery-option-2 .carrier-price{margin-left:0}
  body#checkout #order-summary-content .row:has(> .col-md-6 > .card){grid-template-columns:1fr}
  .order-confirmation-table .order-line{flex-wrap:wrap}
  .order-confirmation-table .order-line .qty{margin-left:70px}
}

/* --- Récap tunnel (#js-checkout-summary) : lignes en flex --- */
body#checkout #js-checkout-summary .cart-summary-line,
body#checkout #js-checkout-summary .cart-summary-subtotals,
body#checkout #js-checkout-summary .cart-summary-totals{display:block;width:auto;float:none;padding:0}
body#checkout #js-checkout-summary .cart-summary-subtotals-container > p,
body#checkout #js-checkout-summary .cart-summary-subtotals-container .cart-summary-line > p,
body#checkout #js-checkout-summary .cart-summary-totals .cart-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:6px 0}
body#checkout #js-checkout-summary .cart-summary-totals .cart-total{margin-top:6px;padding:14px 0 2px;border-top:2px solid var(--green)}
/* --- Mini-liste produits du récap tunnel (markup Bootstrap .media, mort) --- */
body#checkout .cart-summary-products .media,
body#checkout #cart-summary-product-list li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line-soft);list-style:none}
body#checkout .cart-summary-products .media-left{flex:0 0 auto}
body#checkout .cart-summary-products .media-object{width:54px;height:54px;object-fit:contain;border-radius:8px;background:var(--paper-3);mix-blend-mode:multiply}
body#checkout .cart-summary-products .media-body{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 8px}
body#checkout .cart-summary-products .media-body br{display:none}
body#checkout .cart-summary-products .product-name{flex:1 1 100%;font-family:var(--serif);font-size:14.5px;color:var(--ink);line-height:1.3}
body#checkout .cart-summary-products .product-quantity{font-size:12.5px;color:var(--ink-50)}
body#checkout .cart-summary-products .product-price{margin-left:auto;font-weight:600;font-size:14px;color:var(--ink)}
body#checkout .cart-summary-products #cart-summary-product-list{display:block!important}
body#checkout .cart-summary-products ul{margin:0;padding:0}
/* beaucoup d'articles → la liste défile en interne (le récap sticky reste compact,
   les totaux + code promo restent toujours visibles) */
body#checkout .cart-summary-products #cart-summary-product-list{max-height:300px;overflow-y:auto;overscroll-behavior:contain}
body#checkout .cart-summary-products #cart-summary-product-list::-webkit-scrollbar{width:6px}
body#checkout .cart-summary-products #cart-summary-product-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
/* --- Code promo tunnel : champ + bouton alignés ; alerte d'erreur vide masquée
   (le markup PS la laisse dans le DOM → gros cadre vide sans Bootstrap). Le JS PS
   la réaffiche en cas d'erreur via .show() (style inline qui prime). --- */
/* code promo (panier ET tunnel) : on empile champ pleine largeur + bouton */
.cart-voucher .promo-code form{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.cart-voucher .promo-input{flex:1 1 100%;min-width:0}
.cart-voucher .promo-code .btn{width:100%;justify-content:center;background:transparent;border:1.5px solid var(--rust);color:var(--rust)}
.cart-voucher .promo-code .btn:hover{background:var(--rust);color:#fff}
/* mini-liste produits du récap : vignette plus petite + nom resserré (colonne étroite) */
body#checkout .cart-summary-products .media-object{width:48px;height:48px}
body#checkout .cart-summary-products .product-name{font-size:13.5px;line-height:1.3}
/* alerte d'erreur code promo : masquée par défaut, réaffichée par le JS PS via
   .show() (display:block inline). Sans marge elle se colle au bouton « Ajouter »
   → on l'espace. La marge ne se voit pas tant qu'elle est en display:none. */
.cart-voucher .js-error{display:none;margin-top:12px;margin-bottom:4px}
body#checkout .cart-summary-subtotals-container{padding-top:0}

/* --- Formulaire infos perso / inscription (#customer-form) : 2 colonnes en desktop
   (Prénom | Nom côte à côte), empilé en mobile. Tout le reste reste pleine largeur
   (le bloc « créez votre compte » est injecté par un hook → on le laisse full). --- */
@media (min-width:768px){
  #customer-form > section{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;align-items:start}
  #customer-form > section > *{grid-column:1 / -1}
  #customer-form > section > .form-group:has(input[name="firstname"]){grid-column:1 / 2}
  #customer-form > section > .form-group:has(input[name="lastname"]){grid-column:2 / 3}
}
.cart-voucher #promo-code.collapse{display:block}
body#checkout .cart-voucher .cancel-promo,body#cart .cart-voucher .cancel-promo{display:none!important}
body#cart .cart-detailed-actions .btn-primary{display:block;width:100%;text-align:center;padding:13px}

/* ===== PAGE PANIER — grille 2 colonnes (la grille Bootstrap .col-lg-8/.col-lg-4 est
   morte sans theme.css → on la refait en flex : articles à gauche, récap à droite).
   En flex, si le récap est retiré (panier vide, cf. {if $cart.products} dans cart.tpl),
   la colonne articles reprend toute la largeur automatiquement. ===== */
body#cart .cart-grid,body#checkout .cart-grid{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
body#cart .cart-grid-body,body#checkout .cart-grid-body{flex:1 1 420px;min-width:0}
body#cart .cart-grid-right,body#checkout .cart-grid-right{flex:0 0 340px}
/* sticky sur la COLONNE (.cart-grid-right), pas sur .cart-summary : le récap est seul
   enfant de la colonne, donc même hauteur qu'elle → aucun espace de déplacement. C'est
   .cart-grid (haute à cause de la liste produits à gauche) qui sert de cadre au sticky. */
body#cart .cart-grid-right{position:sticky;top:90px}
body#cart .cart-container .card-block{padding:clamp(20px,3vw,30px) clamp(20px,3vw,30px) 0}
body#cart .continue-shopping,body#cart a.label{display:inline-block;margin:16px 2px;color:var(--rust);font-weight:600}
@media(max-width:900px){body#cart .cart-grid-right,body#checkout .cart-grid-right{flex-basis:100%;position:static}}
/* tunnel : sur la page commande les 2 colonnes sont enfants directs de #content-wrapper
   (pas de .cart-grid) → on le passe en flex pour récap à DROITE + sticky (le client
   garde son panier sous les yeux pendant toutes les étapes). */
body#checkout #content-wrapper{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
body#checkout .cart-grid-right{position:sticky;top:90px}
@media(max-width:900px){body#checkout .cart-grid-right{position:static}}

/* ===== PANIER VIDE — état vide centré, généreux & soigné =====================
   Icône en médaillon + titre serif + message + CTA. Le CTA est un vrai .btn .btn-rust
   (et NON un a.label) : .btn est exclu de la règle de lien rouille générique
   (#content-wrapper a:not(.btn)… cf. l.64) qui sinon repeignait le texte en rouille
   sur fond rouille → bouton illisible.
   ⚠️ TOUTES ces règles sont préfixées par .cart-overview : PrestaShop pose AUSSI la classe
   `cart-empty` sur le <body> quand le panier est vide (<body class="… cart-empty">). Un
   `.cart-empty{padding;display:flex}` nu retombait donc sur le <body> → padding ~52px en
   haut + ~32px en bas + body en flex sur toute la page. On vise uniquement le <div
   class="cart-empty"> intérieur (enfant de .cart-overview). ===================== */
.cart-overview .cart-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:clamp(28px,5vw,52px) 16px clamp(22px,3vw,32px)}
.cart-overview .cart-empty-ico{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--paper-3);color:var(--rust)}
.cart-overview .cart-empty-ico svg{width:40px;height:40px}
.cart-overview .cart-empty-title{font-family:var(--serif);font-weight:500;font-size:clamp(22px,3vw,28px);color:var(--ink);margin:8px 0 0;line-height:1.1}
.cart-overview .cart-empty .no-items{font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink-50);margin:0;max-width:380px}
.cart-overview .cart-empty .cart-empty-cta{margin-top:8px}
/* recentrage du bloc quand le panier est vide (la grille n'a que la colonne articles) */
body#cart:has(.cart-empty) .cart-grid{justify-content:center}
body#cart:has(.cart-empty) .cart-grid-body{flex:0 1 620px;max-width:620px;text-align:center}
body#cart .cart-container:has(.cart-empty) .separator{display:none}
body#cart .cart-container:has(.cart-empty) .card-block{padding-bottom:0}
body#cart .cart-container:has(.cart-empty) h1{text-align:center}

/* suggestions sous le panier vide : titre + grille produits vedettes recadrée &
   centrée (la grille vient du hook displayContentWrapperBottom, hors .sec .wrap). */
body#cart .cart-suggest-head{margin:clamp(40px,6vw,68px) auto clamp(22px,3vw,30px);text-align:center}
body#cart .cart-suggest-head .kicker{display:block;color:var(--rust);margin-bottom:12px}
body#cart .cart-suggest-head h2{font-size:clamp(26px,3.6vw,38px)}
body#cart .cart-suggest-head h2 em{font-style:italic;color:var(--rust)}
body#cart:has(.cart-empty) .selection-grid{max-width:var(--wrap);margin:0 auto clamp(44px,6vw,72px);padding:0 var(--gut)}

/* ===== PAGE PANIER — ligne produit ============================================
   La grille .product-line-grid (col-md-3/4/5 + .row imbriqués) est morte sans
   theme.css → on la refait en flex : vignette | nom+prix | [stepper] [total] [×].
   Le stepper touchspin a ses +/− en material-icons (masquées globalement) → on
   les recrée en ::before, et la corbeille « delete » aussi. ============================ */
body#cart .cart-items{list-style:none;margin:0;padding:0}
body#cart .cart-item + .cart-item{border-top:1px solid var(--line-soft)}
body#cart .product-line-grid{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:20px 0}

/* vignette produit (tuile crème, image fondue comme ailleurs) */
body#cart .product-line-grid-left{flex:0 0 auto;width:auto;padding:0}
body#cart .product-image{display:grid;place-items:center;width:88px;height:88px;border-radius:12px;overflow:hidden;background:var(--paper-3)}
body#cart .product-image img{max-width:86%;max-height:86%;object-fit:contain;mix-blend-mode:multiply}

/* corps : nom (serif) + prix unitaire */
body#cart .product-line-grid-body{flex:1 1 200px;min-width:0;padding:0}
body#cart .product-line-grid-body br{display:none}
body#cart .product-line-grid-body .product-line-info .label{font-family:var(--serif);font-weight:500;font-size:17px;color:var(--ink);line-height:1.3}
body#cart .product-line-grid-body .product-price{font-size:14px;color:var(--ink-50);margin-top:6px}
body#cart .product-line-grid-body .product-price .price{font-weight:600;color:var(--ink-70)}

/* actions : on aplatit les .row/.col imbriqués (Bootstrap mort) en une rangée flex */
body#cart .product-line-grid-right{flex:0 0 auto;margin-left:auto;display:flex;align-items:center;gap:22px;padding:0}
body#cart .product-line-grid-right > .row,
body#cart .product-line-grid-right .col-md-10,
body#cart .product-line-grid-right .col-md-10 > .row{display:contents}
body#cart .product-line-grid-right .col-xs-4.hidden-md-up{display:none}
body#cart .product-line-grid-right [class*="col-"]{padding:0;width:auto;max-width:none;flex:0 0 auto}
body#cart .product-line-grid-right .price .product-price{font-family:var(--serif);font-size:19px;color:var(--ink);white-space:nowrap}

/* stepper quantité [−][n][+] (touchspin vertical aplati en flex horizontal) */
body#cart .qty .bootstrap-touchspin{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--paper-2);overflow:hidden}
body#cart .qty .input-group-btn-vertical{display:contents}
body#cart .qty .bootstrap-touchspin-prefix,
body#cart .qty .bootstrap-touchspin-postfix{display:none}
body#cart .qty .js-cart-line-product-quantity,
body#cart .qty input[name="product-quantity-spin"]{order:2;width:46px;text-align:center;border:0;background:transparent;padding:9px 0;font-family:var(--sans);font-weight:600;font-size:15px;color:var(--ink);-moz-appearance:textfield}
body#cart .qty input[name="product-quantity-spin"]::-webkit-outer-spin-button,
body#cart .qty input[name="product-quantity-spin"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
body#cart .qty .btn-touchspin{width:38px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink);cursor:pointer;font-size:18px;line-height:1;font-family:var(--sans)}
body#cart .qty .btn-touchspin:hover{background:var(--paper-3);color:var(--rust-dark)}
body#cart .qty .bootstrap-touchspin-down{order:1}
body#cart .qty .bootstrap-touchspin-up{order:3}
body#cart .qty .bootstrap-touchspin-down::before{content:"\2212"}
body#cart .qty .bootstrap-touchspin-up::before{content:"+"}
/* repli si touchspin non initialisé : input simple compact */
body#cart .qty input[name="product-quantity-spin"]:only-child{width:64px;border:1px solid var(--line);border-radius:10px;padding:9px 0}

/* corbeille (remplace l'icône material-icons « delete » masquée globalement) */
body#cart .cart-line-product-actions{display:flex;align-items:center}
body#cart .remove-from-cart{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--ink-50);text-decoration:none}
body#cart .remove-from-cart:hover{background:#fbeee7;color:var(--rust-dark)}
body#cart .remove-from-cart::before{content:"\00D7";font-size:22px;line-height:1}

@media(max-width:560px){
  body#cart .product-line-grid-right{width:100%;flex-basis:100%;margin-left:0;justify-content:space-between;gap:14px}
}

/* ===== PAGE PANIER — récap (colonne droite) : du texte brut → vrai récapitulatif ===== */
body#cart .cart-summary{padding:clamp(22px,3vw,28px)}
body#cart .cart-summary .card-block{padding:0}
body#cart .cart-summary::before{content:"Récapitulatif";display:block;font-family:var(--serif);font-weight:500;font-size:22px;color:var(--ink);margin-bottom:16px}
/* mentions transport (retrait / livraison / franco) */
.mention_transport{list-style:none;margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:6px}
.mention_transport li{font-size:13px;color:var(--ink-50);line-height:1.5}
.mention_transport li.gratuit{color:var(--green-dark);font-weight:600}
/* nombre d'articles + réduction */
body#cart .cart-summary-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0}
body#cart .nb_article{font-size:14px;color:var(--ink-70);margin:0}
body#cart .reduction{font-size:14px;color:var(--green-dark);font-weight:600;margin:6px 0 0}
/* total */
body#cart .cart-summary-totals{margin-top:14px;padding-top:14px;border-top:2px solid var(--green)}
body#cart .cart-summary-totals .cart-summary-line{margin-bottom:6px}
body#cart .cart-total .label{font-family:var(--serif);font-size:18px;color:var(--ink)}
body#cart .cart-total .value{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink)}
/* bouton Commander (déjà rouille pleine largeur) : juste l'espace au-dessus */
body#cart .cart-detailed-actions{padding:0;margin-top:18px}

/* fil d'Ariane panier : un peu d'air au-dessus + sous, comme les autres pages */
body#cart .breadcrumb{padding-top:clamp(22px,3.5vw,34px);margin-bottom:16px}

/* ============================================================
   DÉTAIL COMMANDE (order-detail / suivi invité guest-tracking)
   + HISTORIQUE (history) — markup PrestaShop stock (.box, tables
   .table-*, badges .label-pill, grille .col-*). Bootstrap étant
   retiré partout, ces pages étaient nues : on les rhabille en
   Atelier Chic. CSS only, upgrade-safe.
   ============================================================ */

/* order-detail / guest-tracking : le #content (déjà carte via .page-customer-account)
   devient un simple conteneur, et CHAQUE .box devient une carte papier — sinon on a
   des cartes imbriquées. (history garde sa carte unique : son contenu est une table.) */
body#order-detail #content,
body#guest-tracking #content{background:none;border:0;border-radius:0;padding:0;margin-bottom:0}

body#order-detail .box,
body#guest-tracking .box{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;
  padding:clamp(18px,2.5vw,26px);margin:0 0 18px}
body#order-detail .box > :first-child,body#guest-tracking .box > :first-child{margin-top:0}
body#order-detail .box > :last-child,body#guest-tracking .box > :last-child{margin-bottom:0}
body#order-detail .box ul,body#guest-tracking .box ul{list-style:none;margin:0;padding:0}
body#order-detail .box li,body#guest-tracking .box li{margin:.35em 0;color:var(--ink-70)}
body#order-detail .box a,body#guest-tracking .box a{color:var(--rust)}

/* titres de section */
#order-history h3,
body#order-detail .box h3,body#order-detail .box h4,
body#guest-tracking .box h3,body#guest-tracking .box h4{
  font-family:var(--serif);font-weight:500;color:var(--ink);font-size:18px;margin:0 0 12px}

/* en-tête « Commande … » : référence à gauche, bouton « commander à nouveau » à droite */
body#order-detail #order-infos .row,
body#guest-tracking #order-infos .row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
body#order-detail .button-primary,body#guest-tracking .button-primary{
  display:inline-block;background:var(--rust);color:#fff;border-radius:999px;padding:9px 18px;font-size:13px;font-weight:600}
body#order-detail .button-primary:hover,body#guest-tracking .button-primary:hover{background:var(--rust-dark);color:#fff}

/* adresses côte à côte (col-lg-6 inertes → grille auto) */
body#order-detail .addresses,
body#guest-tracking .addresses{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
body#order-detail .addresses > .col-lg-6,body#guest-tracking .addresses > .col-lg-6{min-width:0}
body#order-detail .addresses .clearfix,body#guest-tracking .addresses .clearfix{display:none}
body#order-detail .addresses .box,body#guest-tracking .addresses .box{margin:0;height:100%}
body#order-detail address,body#guest-tracking address{font-style:normal;color:var(--ink-70);line-height:1.6;margin:0}

/* tables (statut, produits, expédition, historique) */
body#order-detail .table,body#guest-tracking .table,body#history .table{
  width:100%;border-collapse:collapse;font-size:14px;margin:0}
body#order-detail .table th,body#order-detail .table td,
body#guest-tracking .table th,body#guest-tracking .table td,
body#history .table th,body#history .table td{
  padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
body#order-detail .table thead th,body#guest-tracking .table thead th,body#history .table thead th{
  font-family:var(--serif);font-weight:500;color:var(--ink);font-size:13px;border-bottom:2px solid var(--line)}
body#order-detail .table .text-xs-right,body#guest-tracking .table .text-xs-right{text-align:right}
body#order-detail .table tfoot td,body#guest-tracking .table tfoot td{font-weight:600;color:var(--ink)}
body#order-detail .table tfoot tr:last-child td,body#guest-tracking .table tfoot tr:last-child td{
  font-size:16px;border-top:2px solid var(--line)}
/* historique : réf + actions */
body#history .table th[scope=row]{font-weight:600;color:var(--ink)}
body#history .order-actions a{color:var(--rust);margin-right:10px}

/* badges de statut (couleur de fond inline conservée) */
.label-pill{display:inline-block;padding:.32em .85em;border-radius:999px;font-size:12px;font-weight:600;line-height:1.35;color:#fff}
.label-pill.dark{color:var(--ink)}

/* vues mobiles (cartes produits / commandes) : lisibles à défaut d'être détaillées */
body#order-detail .order-item,body#guest-tracking .order-item{padding:12px 0;border-bottom:1px solid var(--line)}
body#order-detail .order-item:last-child,body#guest-tracking .order-item:last-child{border-bottom:0}
body#order-detail .order-item .name,body#guest-tracking .order-item .name{font-weight:600;color:var(--ink)}
body#order-detail .order-total,body#guest-tracking .order-total,
body#history .order{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}

/* form « transformer le compte invité en compte client » */
body#guest-tracking .guest-to-customer{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:clamp(18px,2.5vw,26px);margin-top:18px}
body#guest-tracking .guest-to-customer .h3{font-family:var(--serif);font-weight:500;color:var(--ink);font-size:18px;margin:0 0 10px}
body#guest-tracking .guest-to-customer ul{list-style:none;margin:0 0 14px;padding:0;color:var(--ink-70)}
body#guest-tracking .guest-to-customer .form-fields{margin-bottom:14px}

/* ============================================================
   ESPACE CLIENT — tableau de bord, adresses, listes (bons/avoirs), GDPR
   Pages page-customer-account restées nues (theme.css exclu). #content est déjà une
   carte papier (l.170). Les .hidden-* sont rétablies (l.27-29) mais des templates
   avaient des classes erronées → corrigées (history/order-slip/discount). --- */

/* ---------- Tableau de bord « Mon compte » : liens en grille de cartes ----------
   my-account (+ PayPlug « cartes enregistrées ») n'ont PAS page-customer-account →
   #content hérite quand même du panneau papier (#main .page-content l.60). On le retire
   ici : les cartes se posent directement sur le fond (retour client « pas de fond blanc
   entre les cartes »). */
body#my-account #content,
body[id*="payplug"] #content{background:none;border:0;border-radius:0;padding:0;margin-bottom:0}
body#my-account .links{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px;margin:0}
body#my-account .links > a{margin:0;padding:0;width:auto;max-width:none;float:none;text-decoration:none}
body#my-account .links .link-item{display:flex;align-items:center;gap:10px;height:100%;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:12px;font-family:var(--sans);font-weight:600;font-size:15px;color:var(--ink);line-height:1.3;transition:border-color .15s,background .15s}
body#my-account .links > a:hover .link-item{border-color:var(--rust);background:var(--paper-2)}
body#my-account .links .link-item::after{content:"\2192";margin-left:auto;color:var(--rust);font-weight:400;font-size:17px}
/* « Sign out » sous le dashboard */
body#my-account .text-sm-center{text-align:center;margin-top:22px}
body#my-account .text-sm-center a{font-weight:600;color:var(--rust)}
/* liens « Retour compte / Accueil » en pied de sous-page */
.page-customer-account .page-footer{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px 22px}
.page-customer-account .account-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--rust)}

/* ---------- Adresses (espace compte) : grille de cartes ---------- */
/* #content redevient un simple conteneur : chaque adresse est déjà une carte (l.168) */
body#addresses #content{background:none;border:0;border-radius:0;padding:0;margin-bottom:0}
.page-addresses .address-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:0 0 18px;align-items:start}
.page-addresses .address-list > [class*="col-"]{width:auto;max-width:none;padding:0;float:none}
.page-addresses .address{display:flex;flex-direction:column;height:100%;padding:0;margin:0;overflow:hidden}
.page-addresses .address .address-body{padding:18px 20px;flex:1}
.page-addresses .address .address-body h4{font-family:var(--serif);font-weight:600;font-size:16px;color:var(--ink);margin:0 0 8px}
.page-addresses .address address{font-style:normal;font-size:13.5px;color:var(--ink-70);line-height:1.55;margin:0}
.page-addresses .address .address-footer{display:flex;gap:18px;padding:12px 20px;border-top:1px solid var(--line-soft);background:var(--paper)}
.page-addresses .address .address-footer a{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.page-addresses .address-footer a[data-link-action="edit-address"]{color:var(--rust)}
.page-addresses .address-footer a[data-link-action="delete-address"]{color:var(--ink-50)}
.page-addresses .addresses-footer{margin-top:2px}
.page-addresses .addresses-footer a{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--rust)}
.page-addresses .addresses-footer a::before{content:"+";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid currentColor;font-size:16px;line-height:1}

/* ---------- Listes compte : tables (bons / avoirs) — le style history existe déjà,
   on l'étend aux pages non couvertes (discount / order-slip) via .page-customer-account ---------- */
.page-customer-account > h1,.page-customer-account #content > h6{color:var(--ink-70)}
.page-customer-account #content > h6{font-family:var(--sans);font-size:14px;font-weight:400;margin:0 0 18px;line-height:1.5}
.page-customer-account .table{width:100%;border-collapse:collapse;font-size:14px;margin:0}
.page-customer-account .table th,.page-customer-account .table td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.page-customer-account .table thead th{font-family:var(--serif);font-weight:500;color:var(--ink);font-size:13px;border-bottom:2px solid var(--line);white-space:nowrap}
.page-customer-account .table th[scope=row]{font-weight:600;color:var(--ink)}
.page-customer-account .table .text-xs-right{text-align:right}
.page-customer-account .table-striped tbody tr:nth-child(even){background:rgba(26,22,18,.025)}

/* ---------- Cartes mobile (bons / avoirs) : lisibles quand la table est masquée (<768) ---------- */
.page-customer-account .credit-slip,.page-customer-account .cart-rule{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:0 0 12px}
.page-customer-account .credit-slip ul,.page-customer-account .cart-rule ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.page-customer-account .credit-slip li,.page-customer-account .cart-rule li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-size:14px;color:var(--ink);text-align:right}
.page-customer-account .credit-slip li strong,.page-customer-account .cart-rule li strong{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-50);text-align:left}

/* ---------- Liens icône-seule (icône Material masquée) : afficher le libellé ---------- */
.page-customer-account td a:has(> .material-icons:only-child),
.page-customer-account .order-actions a{color:var(--rust);font-weight:600;font-size:13px;white-space:nowrap;text-decoration:none}
.page-customer-account a:has(> .material-icons:only-child)::after{content:attr(title)}
.page-customer-account a[href*="pdf"]:has(> .material-icons:only-child)::after{content:"PDF"}

/* ---------- Page GDPR (module psgdpr : « Personal data ») — PAS de classe
   page-customer-account (contrôleur module hors liste PS) → règles non scopées ---------- */
.container:has(.psgdprinfo17){padding:0;max-width:none}
.psgdprinfo17{margin:0 0 26px}
.psgdprinfo17:last-child{margin-bottom:0}
.psgdprinfo17 h2{font-family:var(--serif);font-weight:500;font-size:20px;color:var(--green);margin:0 0 8px}
.psgdprinfo17 p{font-size:14px;color:var(--ink-70);line-height:1.6;margin:0 0 14px}
.psgdprgetdatabtn17{margin:0 10px 8px 0}
