[hidden] { display: none !important; }
/* Boutique de l'Institut Iliade – thème 1.0.0 · famille graphique Iliade / Citatio
   Parti pris : une vitrine d'éditeur. En-tête bordeaux de la famille Iliade, rayons sur fond clair,
   titres en Playfair, étiquettes et commandes en Open Sans capitales, couvertures traitées comme des objets.
   Le balisage des grilles reprend les classes de WooCommerce classique (ul.products li.product, .price, .button). */
:root {
  --bordeaux: #5e0000;
  --champ: #fffde7; /* fond des champs de saisie */
  --bordeaux-fonce: #420700;
  --sous-pied: #2e0500;
  --noir: #2e2926;
  --encre: #3b3633;
  --texte: #414141;
  --texte-doux: #6d6a66;
  --fond: #f5f5f5;
  --blanc: #ffffff;
  --filet: #e6e2da;
  --pale: #c9c4bc;
  --survol: #f8f5f1;
  --creme: #efe3d0;
  --pied-texte: #cbb79e;
  --or: #ecbf60;            /* réservé au don, comme sur le site Iliade */
  --or-logo: #f3c53c;
  --blanc-casse: #f4f0ea;   /* texte du héros : un blanc à peine chaud, jamais le crème doré */
  --rose-cendre: #a48080;   /* boutons du héros */
  --ombre-livre: rgba(46, 5, 0, .42);

  --titre: "Playfair Display", Georgia, "Times New Roman", serif;
  --courant: "Open Sans", Helvetica, Arial, sans-serif;

  /* Échelle unique des corps (reprise de Citatio) */
  --c-0: .8125rem;
  --c-1: .9375rem;
  --c-2: 1.0625rem;
  --c-3: 1.1875rem;
  --c-4: 1.375rem;
  --c-5: 1.625rem;
  --c-6: clamp(1.6rem, 3.3vw, 2.3rem);
  --c-7: clamp(2.1rem, 5vw, 3.25rem);
  --il-titre: 1.2;
  --il-liste: 1.5;
  --il-texte: 1.65;
  --e-1: .5rem;
  --e-2: 1rem;
  --e-3: 1.5rem;
  --e-4: 2.5rem;
  --e-section: clamp(3.2rem, 7vw, 5.5rem);

  --largeur: 1180px;
  --gouttiere: clamp(16px, 4vw, 40px);
  --rayon: 2px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--blanc); color: var(--texte); font-family: var(--courant); font-size: var(--c-2); line-height: var(--il-texte); -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 30; background: var(--bordeaux-fonce); }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { margin: 0; font-family: var(--titre); font-weight: 500; color: var(--noir); line-height: var(--il-titre); text-wrap: balance; }
p, ul, ol, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: var(--bordeaux); text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
a:hover { color: var(--bordeaux-fonce); text-decoration-style: solid; }
:focus-visible { outline: 2px solid var(--bordeaux); outline-offset: 3px; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.evitement { position: absolute; left: 1rem; top: -4rem; z-index: 40; background: var(--blanc); color: var(--bordeaux); padding: .6rem 1rem; }
.evitement:focus { top: 1rem; }

.conteneur {
  width: 100%;
  max-width: calc(var(--largeur) + 2 * var(--gouttiere));
  margin-inline: auto;
  padding-left: max(16px, var(--gouttiere), env(safe-area-inset-left, 0px));
  padding-right: max(16px, var(--gouttiere), env(safe-area-inset-right, 0px));
}

/* Étiquettes : Open Sans capitales, jamais de petites capitales serif */
.surtitre { font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bordeaux); line-height: var(--il-liste); }

/* Boutons */
.btn, .button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  padding: .85em 1.5em; border: 0; border-radius: var(--rayon);
  font-family: var(--courant); font-weight: 700; font-size: var(--c-0); line-height: 1.2; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; text-align: center;
  transition: background-color .2s, color .2s, box-shadow .2s;
}
.btn--plein { background: var(--bordeaux); color: var(--blanc); }
.btn--plein:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.btn--filet { background: transparent; color: var(--bordeaux); box-shadow: inset 0 0 0 1px var(--bordeaux); }
.btn--filet:hover { background: var(--bordeaux); color: var(--blanc); }
/* Boutons des grilles : même dessin que le héros, un cran plus petit */
.button { background: var(--bordeaux); color: var(--blanc); }
.button:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.btn--petit, li.product .button { padding: .75em 1.2em; font-size: .75rem; }
.button.est-ajoute { background: transparent; color: var(--bordeaux); box-shadow: inset 0 0 0 1px var(--bordeaux); }

/* En-tête : le principe du site actuel (logo centré, menu dessous), traité comme une papeterie de luxe –
   un seul bordeaux, des filets d'un pixel en crème très transparente, beaucoup d'air, des capitales espacées. */
.entete-site { position: relative; background: var(--bordeaux); color: var(--blanc); isolation: isolate; }
.entete-site::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, .07), rgba(255, 255, 255, 0) 55%),
    radial-gradient(90% 120% at 50% 100%, rgba(0, 0, 0, .28), rgba(0, 0, 0, 0) 60%);
}
.entete-site::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .08; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
.filet-haut { border-bottom: 1px solid rgba(239, 227, 208, .14); }

/* Ligne de service : don, compte, panier – petites capitales espacées, alignées à droite */
.barre-haute { font-size: .72rem; line-height: 1; }
.barre-haute .conteneur { display: flex; justify-content: flex-end; padding-block: .95rem; }
.barre-haute ul { display: flex; align-items: center; gap: 0; }
.barre-haute li + li::before { content: ""; display: inline-block; width: 1px; height: 11px; margin-inline: 1.3rem; background: rgba(239, 227, 208, .28); vertical-align: -1px; }
.barre-haute a { display: inline-flex; align-items: center; gap: .5rem; color: rgba(239, 227, 208, .82); font-weight: 600; letter-spacing: 2.2px; text-transform: uppercase; text-decoration: none; transition: color .25s; }
.barre-haute a:hover { color: var(--blanc); }
.barre-haute .lien-don { color: var(--or); }
.barre-haute .lien-don:hover { color: var(--or-logo); }
.barre-haute svg { width: 15px; height: 15px; flex: 0 0 auto; opacity: .9; }
.barre-haute .panier-total { font-variant-numeric: tabular-nums; }

/* Le logo, centré et en grand – jamais réduit */
.bandeau-logo .conteneur { display: flex; justify-content: center; padding-block: clamp(1.35rem, 3.3vw, 2.4rem); }
.logo { display: block; width: min(100%, 780px); text-decoration: none; filter: drop-shadow(0 2px 14px rgba(0, 0, 0, .25)); }
.logo img { width: 100%; height: auto; }

/* Barre de menu : collante, entre deux filets ; quand le logo est sorti de l'écran, l'emblème seul et le panier y apparaissent */
header.principal {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20;
  background: var(--bordeaux); color: var(--blanc);
  border-top: 1px solid rgba(239, 227, 208, .14); border-bottom: 1px solid rgba(239, 227, 208, .14);
  transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease;
}
header.principal.est-colle { background: var(--bordeaux-fonce); box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .6); }
header.principal.est-au-pied { transform: translateY(calc(-100% - env(safe-area-inset-top, 0px))); }
.barre-menu { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1rem; min-height: 60px; }
.barre-menu .gauche { justify-self: start; display: flex; align-items: center; gap: .6rem; }
.barre-menu .droite { justify-self: end; display: flex; align-items: center; gap: .4rem; }
.embleme { display: block; width: 36px; height: 36px; opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .3s, transform .3s, visibility .3s; }
.embleme img { width: 100%; height: 100%; }
.est-colle .embleme { opacity: 1; visibility: visible; transform: none; }
.icone--panier { opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s, background .25s; }
.est-colle .icone--panier { opacity: 1; visibility: visible; }

.nav-principale > ul { display: flex; align-items: center; gap: clamp(1.6rem, 3vw, 3rem); }
.nav-principale > ul > li { position: relative; display: flex; align-items: center; }
.nav-principale a {
  position: relative; display: block; padding-block: 1.25rem;
  color: var(--blanc); font-size: .78rem; font-weight: 600; letter-spacing: 2.4px; text-transform: uppercase; text-decoration: none;
  transition: color .25s;
}
.nav-principale > ul > li > a::before {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: .85rem; height: 1px; background: var(--creme);
  transition: left .3s ease, right .3s ease;
}
.nav-principale > ul > li:hover > a::before, .nav-principale > ul > li:focus-within > a::before, .nav-principale a[aria-current="page"]::before { left: 0; right: 0; }
.nav-principale a:hover { color: var(--blanc); }
.a-sous-menu > a::after { content: ""; display: inline-block; width: .34em; height: .34em; margin: 0 0 .25em .6em; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); opacity: .7; }

/* Sous-menu : un feuillet clair, filet fin, titre du rayon en gras */
.sous-menu {
  position: absolute; left: 50%; top: calc(100% + 1px); z-index: 5; min-width: 17rem;
  padding: 1.1rem 0 .9rem; background: var(--blanc); color: var(--texte); border: 1px solid var(--filet);
  box-shadow: 0 24px 40px -18px rgba(46, 5, 0, .35);
  opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .25s, transform .25s, visibility .25s;
}
.sous-menu::before { content: ""; position: absolute; left: 50%; top: -5px; width: 8px; height: 8px; margin-left: -4px; background: var(--blanc); border-left: 1px solid var(--filet); border-top: 1px solid var(--filet); transform: rotate(45deg); }
.a-sous-menu:hover .sous-menu, .a-sous-menu:focus-within .sous-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.sous-menu a { display: flex; justify-content: space-between; gap: 1.5rem; padding: .42rem 1.5rem; font-size: var(--c-1); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--encre); }
.sous-menu a:hover { color: var(--bordeaux); background: var(--survol); }
.sous-menu .nombre { color: var(--texte-doux); font-size: var(--c-0); font-variant-numeric: tabular-nums; }
.sous-menu li:first-child { margin: 0 1.5rem .55rem; padding: 0 0 .6rem; border-bottom: 1px solid var(--filet); }
.sous-menu li:first-child a { padding-inline: 0; font-weight: 600; color: var(--noir); }
.sous-menu li:first-child a:hover { background: none; color: var(--bordeaux); }

.icone {
  position: relative; display: grid; place-items: center; width: 42px; height: 42px;
  border: 0; border-radius: 2px; background: transparent; color: rgba(239, 227, 208, .9);
  text-decoration: none; transition: background .25s, color .25s;
}
.icone:hover, .icone[aria-expanded="true"] { background: rgba(255, 255, 255, .14); color: var(--blanc); }
.icone svg { width: 19px; height: 19px; }
.compteur {
  position: absolute; top: 3px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px;
  border-radius: 9px; background: var(--creme); color: var(--bordeaux);
  font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; font-variant-numeric: tabular-nums;
}
.compteur.bondit { animation: bond .45s ease; }
@keyframes bond { 40% { transform: scale(1.35); } }
.bouton-menu { display: none; }

/* Recherche dépliée sous l'en-tête : se déplie en hauteur, puis le champ apparaît en fondu */
.recherche-entete { display: grid; grid-template-rows: 0fr; background: var(--bordeaux-fonce); transition: grid-template-rows .45s cubic-bezier(.4, 0, .2, 1); }
.recherche-entete > .conteneur { min-height: 0; overflow: hidden; }
.recherche-entete form {
  display: flex; gap: .5rem; max-width: 46rem; margin-inline: auto; padding-block: 1.1rem 1.3rem;
  opacity: 0; transform: translateY(-6px); transition: opacity .3s ease, transform .3s ease;
}
.recherche-entete.est-ouverte { grid-template-rows: 1fr; }
.recherche-entete.est-ouverte form { opacity: 1; transform: none; transition-delay: .15s; }
.recherche-entete input {
  flex: 1 1 auto; min-width: 0; padding: .8rem 1rem; border: 0; border-radius: var(--rayon);
  background: rgba(255, 255, 255, .08); color: var(--blanc); font-size: var(--c-2); outline: none;
}
.recherche-entete input:focus { background: rgba(255, 255, 255, .12); }
.recherche-entete input::placeholder { color: var(--pied-texte); }
.recherche-entete input::-webkit-search-cancel-button { -webkit-appearance: none; }
.recherche-entete button { flex: 0 0 auto; background: var(--creme); color: var(--bordeaux); }
.recherche-entete button:hover { background: var(--blanc); color: var(--bordeaux); }

/* Bloc d'achat : prix, bouton, lien */
.achat { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-top: .4rem; }
.price--grand { font-size: var(--c-3); font-weight: 600; color: var(--noir); font-variant-numeric: tabular-nums; }

/* Héros : carrousel des produits mis en avant, en pleine largeur – l'œuvre ou la couverture occupe tout le fond
   sous un voile bordeaux, le texte se pose dessus en clair ; pour un livre, la couverture nette est posée à droite */
.heros { position: relative; background: var(--bordeaux-fonce); color: var(--blanc-casse); }
.carrousel { display: grid; }
.diapos { position: relative; display: grid; overflow: hidden; }
.diapo {
  grid-area: 1 / 1; position: relative; display: grid; min-height: clamp(30rem, 62vh, 40rem);
  opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s;
}
.diapo.est-active { opacity: 1; visibility: visible; }
.diapo-fond { position: absolute; inset: 0; overflow: hidden; }
.diapo-fond img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transform: scale(1.04); transition: transform 9s linear; }
.diapo.est-active .diapo-fond img { transform: scale(1); }
.diapo-fond::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(46, 5, 0, .96) 0%, rgba(46, 5, 0, .9) 38%, rgba(46, 5, 0, .55) 62%, rgba(46, 5, 0, .25) 100%),
              linear-gradient(0deg, rgba(46, 5, 0, .6), rgba(46, 5, 0, 0) 40%);
}
/* Pour une œuvre, le visuel est montré tel quel à droite, sans cadre ni marge */
.diapo--oeuvre .diapo-visuel .vignette img { max-width: 84%; }
.diapo--oeuvre .diapo-fond::after { background: linear-gradient(90deg, rgba(46, 5, 0, .96) 0%, rgba(46, 5, 0, .9) 40%, rgba(46, 5, 0, .7) 70%, rgba(46, 5, 0, .55) 100%); }
/* Diapositive « photo » : une photographie occupe tout le fond, nette, sous un voile dégradé ; le visuel du produit reste à droite */
.diapo--photo .diapo-fond img { filter: none; transform: scale(1.04); object-position: 70% center; }
.diapo--photo.est-active .diapo-fond img { transform: scale(1); }
.diapo--photo .diapo-fond::after { background: linear-gradient(90deg, rgba(46, 5, 0, .95) 0%, rgba(46, 5, 0, .86) 36%, rgba(46, 5, 0, .45) 62%, rgba(46, 5, 0, .3) 100%); }
/* Pour un livre, la couverture floutée sert de matière de fond ; la couverture nette est à droite */
.diapo:not(.diapo--oeuvre) .diapo-fond img { filter: blur(26px) saturate(1.1); transform: scale(1.25); }
.diapo:not(.diapo--oeuvre).est-active .diapo-fond img { transform: scale(1.18); }
.diapo:not(.diapo--oeuvre) .diapo-fond::after { background: linear-gradient(90deg, rgba(46, 5, 0, .9) 0%, rgba(46, 5, 0, .78) 55%, rgba(46, 5, 0, .6) 100%); }
.diapo-dedans { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); gap: var(--e-4) clamp(2rem, 6vw, 5rem); align-items: center; padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.diapo-texte { display: grid; gap: .6rem; min-width: 0; transform: translateY(12px); transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.diapo.est-active .diapo-texte { transform: none; }
.diapo-texte .surtitre { color: rgba(244, 240, 234, .7); }
.diapo-texte h3 { font-size: var(--c-7); color: var(--blanc); }
.diapo-texte h3 a { color: inherit; text-decoration: none; }
.diapo-texte h3 a:hover { color: var(--blanc-casse); }
.diapo-texte .sous-titre { font-family: var(--titre); font-style: italic; font-size: var(--c-4); color: var(--blanc-casse); line-height: var(--il-liste); }
.diapo-texte .auteur { color: rgba(244, 240, 234, .7); font-size: var(--c-1); line-height: var(--il-liste); }
.diapo-texte .resume { max-width: 32em; margin-top: .4rem; font-size: var(--c-2); line-height: var(--il-texte); color: rgba(244, 240, 234, .88); }
.diapo-texte .prix-fiche { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.1rem; margin-top: 1.1rem; }
.diapo-texte .price--grand { font-family: var(--titre); font-size: var(--c-5); font-weight: 400; color: var(--blanc); }
.diapo-texte .fiche { font-size: var(--c-0); font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: rgba(244, 240, 234, .7); }
.diapo-texte .fiche::before { content: ""; display: inline-block; width: 1.4rem; height: 1px; margin: 0 .8rem 4px 0; background: rgba(244, 240, 234, .35); }
.diapo-texte .achat { gap: .8rem 2rem; margin-top: .9rem; }
.diapo-texte .lien-tout { color: var(--blanc-casse); text-decoration-color: rgba(244, 240, 234, .55); }
.diapo-texte .lien-tout:hover { color: var(--blanc); }
.btn--creme { background: var(--rose-cendre); color: var(--sous-pied); }
.btn--creme:hover { background: #b39191; color: var(--sous-pied); }
.diapo-visuel { display: block; text-decoration: none; }
.diapo-visuel .vignette { display: flex; justify-content: center; align-items: center; aspect-ratio: 4 / 5; }
.diapo-visuel .vignette .squelette { position: relative; width: 78%; height: auto; background-color: rgba(255, 255, 255, .08); }
.diapo-visuel .vignette img { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; width: auto; max-width: 78%; max-height: 92%; box-shadow: 0 2px 2px rgba(0, 0, 0, .2), 0 40px 60px -24px rgba(0, 0, 0, .7); }
@media (hover: hover) and (pointer: fine) { .diapo-visuel:hover .vignette img { transform: translateY(-6px); } }
.diapo-visuel .fileur { width: 34px; height: 34px; border-color: rgba(244, 240, 234, .3); border-top-color: var(--blanc-casse); }

.carrousel-pied { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1rem 1.2rem; border-top: 1px solid rgba(244, 240, 234, .12); }
.reperes { display: flex; gap: .6rem; }
.reperes button { position: relative; display: block; width: 2.75rem; height: 20px; padding: 0; border: 0; background: none; cursor: pointer; }
.reperes i { position: absolute; left: 0; right: 0; top: 9px; height: 2px; background: rgba(244, 240, 234, .22); overflow: hidden; }
.reperes i::after { content: ""; position: absolute; inset: 0; background: var(--blanc-casse); transform: scaleX(0); transform-origin: left; }
.reperes button[aria-current="true"] i::after { animation: progression var(--delai, 7s) linear forwards; }
.carrousel.est-en-pause .reperes button[aria-current="true"] i::after { animation-play-state: paused; }
.reperes button:hover i { background: rgba(244, 240, 234, .5); }
.reperes button[aria-current="true"]:hover i::after { animation-play-state: paused; }
@keyframes progression { to { transform: scaleX(1); } }
.fleches { display: flex; align-items: center; gap: .35rem; }
.position { margin-right: .6rem; font-size: var(--c-0); font-weight: 600; letter-spacing: 2px; color: rgba(244, 240, 234, .7); font-variant-numeric: tabular-nums; }
.fleche { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(244, 240, 234, .35); border-radius: 50%; background: none; color: var(--blanc-casse); transition: background .25s, border-color .25s, color .25s; }
.fleche:hover { background: var(--blanc-casse); border-color: var(--blanc-casse); color: var(--bordeaux); }
.fleche svg { width: 18px; height: 18px; }

/* Sections */
.section { padding-block: var(--e-section); }
.section--fond { background: var(--fond); }
.section--suite { padding-top: 0; }
.tete-section { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .5rem 2rem; margin-bottom: var(--e-4); }
.tete-section h2 { font-size: var(--c-6); }
.tete-section .surtitre { display: block; margin-bottom: .4rem; }
.tete-section .intro { grid-column: 1 / -1; max-width: 40rem; margin-top: .2rem; color: var(--texte-doux); font-size: var(--c-1); line-height: var(--il-liste); }
.lien-tout { font-size: var(--c-1); font-weight: 600; white-space: nowrap; }

/* Rayons */
.rayons ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--filet); }
.rayons li { border-bottom: 1px solid var(--filet); }
.rayons li + li { border-left: 1px solid var(--filet); }
.rayons a { display: grid; grid-template-rows: auto auto 1fr auto; gap: .45rem; height: 100%; padding: var(--e-3) clamp(.9rem, 2vw, 1.4rem) var(--e-3); color: var(--texte); text-decoration: none; transition: background .2s; }
.rayons a:hover { background: var(--survol); color: var(--texte); }
.rayons .nombre { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bordeaux); font-variant-numeric: tabular-nums; }
.rayons .nom { font-family: var(--titre); font-size: var(--c-4); color: var(--noir); line-height: var(--il-titre); }
.rayons .desc { font-size: var(--c-1); color: var(--texte-doux); line-height: var(--il-liste); }
.rayons .fleche { display: grid; place-items: center; width: 42px; height: 42px; margin-top: .3rem; border: 1px solid var(--pale); border-radius: 50%; color: var(--bordeaux); transition: background .25s, border-color .25s, color .25s; }
.rayons .fleche svg { width: 18px; height: 18px; }
.rayons a:hover .fleche { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }

/* Grille de produits (WooCommerce classique) */
ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-4) clamp(1rem, 2.5vw, 2rem); }
ul.products.colonnes-6 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--e-4) clamp(.9rem, 1.8vw, 1.4rem); }
ul.products.colonnes-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--e-4) clamp(.9rem, 2vw, 1.6rem); }
li.product { gap: .4rem; min-width: 0; }
li.product .woocommerce-LoopProduct-link { color: var(--noir); text-decoration: none; }
li.product .type { font-size: .72rem; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); line-height: var(--il-liste); }
li.product .woocommerce-loop-product__title { font-size: var(--c-3); line-height: 1.3; transition: color .2s; }
.colonnes-6 li.product .woocommerce-loop-product__title, .colonnes-5 li.product .woocommerce-loop-product__title { font-size: var(--c-2); }
li.product .woocommerce-LoopProduct-link:hover .woocommerce-loop-product__title { color: var(--bordeaux); }
li.product .auteur { font-size: var(--c-1); color: var(--texte-doux); line-height: var(--il-liste); }
li.product .auteur a { color: inherit; text-decoration: none; }
li.product .auteur a:hover { color: var(--bordeaux); text-decoration: underline; text-decoration-style: dotted; text-decoration-color: var(--bordeaux); text-underline-offset: 3px; }
li.product .price { margin-top: .15rem; font-family: var(--titre); font-size: var(--c-4); font-weight: 400; color: var(--noir); line-height: var(--il-titre); font-variant-numeric: tabular-nums; }
li.product .button { justify-self: start; }
li.product .price { padding-bottom: .7rem; }

/* Vignette : tous les visuels d'une grille ont la même largeur (celle de la colonne) ; la hauteur suit
   les proportions de chacun. Les cartes sont alignées par le haut : titre, auteur et prix restent collés
   au visuel, et l'écart entre le prix et le bouton absorbe la différence, pour des boutons sur une même ligne.
   Exception : la galerie « Tirages d'art et affiches », alignée par le bas (voir plus loin). */
li.product { display: flex; flex-direction: column; align-items: flex-start; }
li.product .woocommerce-LoopProduct-link { display: grid; gap: .85rem; width: 100%; }
li.product .button { margin-top: auto; }
.vignette { position: relative; display: block; width: 100%; }
/* L'image tient sa place dès le départ (largeur et hauteur inscrites dans la balise) : rien ne bouge à son arrivée.
   Les règles visent « img » et non la classe .photo, qu'Imagify déplace sur <picture> avant que le script ne la rende. */
.vignette img {
  position: relative; z-index: 1; display: block; width: 100%; height: auto;
  opacity: 0; transition: opacity .5s ease, transform .3s ease, box-shadow .3s ease;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .1), 0 12px 24px -12px var(--ombre-livre);
}
.vignette.a-image img { opacity: 1; }
.vignette.sans-image img { display: none; }
@media (hover: hover) and (pointer: fine) { li.product .woocommerce-LoopProduct-link:hover .vignette img { transform: translateY(-6px); box-shadow: 0 1px 1px rgba(0, 0, 0, .1), 0 22px 32px -14px var(--ombre-livre); } }
.vignette--objet img { aspect-ratio: 4 / 5; object-fit: cover; }

/* Squelette de chargement : une silhouette de la largeur de la colonne, aux proportions du visuel attendu,
   un fileur au centre ; l'image arrive en fondu, puis la silhouette disparaît.
   Elle est posée sous l'image, à sa taille exacte ; s'il n'y a pas d'image, elle tient seule la place, sans fileur. */
.squelette {
  position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 2 / 3;
  background: var(--fond);
}
.section--fond .squelette { background-color: #ebe8e2; }
.squelette--poster { aspect-ratio: 1 / 1.414; }
.squelette--art { aspect-ratio: 3 / 4; }
.squelette--objet { aspect-ratio: 4 / 5; }
.fileur { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--pale); border-top-color: var(--bordeaux); animation: tour .9s linear infinite; }
@keyframes tour { to { transform: rotate(360deg); } }
.vignette .squelette { position: absolute; top: 0; left: 0; height: 100%; }
.vignette.sans-image .squelette { position: relative; height: auto; }
.vignette.a-image .squelette { display: none; }
.vignette.sans-image .squelette { background-image: none; }
.vignette.sans-image .fileur { display: none; }
.vignette.sans-image .squelette::after { content: "Visuel à venir"; font-size: var(--c-0); letter-spacing: 1.5px; text-transform: uppercase; color: var(--texte-doux); }

/* Galerie des tirages d'art : fond sombre et grain, trois œuvres par rangée, en grand */
.galerie { position: relative; background: var(--sous-pied); color: var(--blanc-casse); isolation: isolate; }
.galerie::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .07; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); }
.galerie .tete-section h2 { color: var(--blanc); }
.galerie .tete-section .surtitre { color: rgba(244, 240, 234, .7); }
.galerie .tete-section .intro { color: rgba(244, 240, 234, .75); max-width: 46rem; }
.galerie .lien-tout { color: var(--blanc-casse); text-decoration-color: rgba(244, 240, 234, .55); }
.galerie .lien-tout:hover { color: var(--blanc); }
ul.products.colonnes-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4) clamp(1.5rem, 3.5vw, 3rem); }
.galerie li.product .woocommerce-loop-product__title { font-size: var(--c-4); color: var(--blanc); }
.galerie li.product .woocommerce-LoopProduct-link:hover .woocommerce-loop-product__title { color: var(--blanc-casse); }
.galerie li.product .type { color: rgba(244, 240, 234, .7); }
.galerie li.product .auteur { color: rgba(244, 240, 234, .78); }
.galerie li.product .price { color: var(--blanc); }
.galerie li.product .button { background: var(--rose-cendre); color: var(--sous-pied); }
.galerie li.product .button:hover { background: #b39191; color: var(--sous-pied); }
.galerie li.product .button.est-ajoute { background: transparent; color: var(--blanc-casse); box-shadow: inset 0 0 0 1px rgba(244, 240, 234, .6); }
.galerie .squelette { background-color: rgba(255, 255, 255, .07); }
.galerie .fileur { border-color: rgba(244, 240, 234, .3); border-top-color: var(--blanc-casse); }
.galerie .vignette img { box-shadow: 0 2px 2px rgba(0, 0, 0, .25), 0 30px 50px -22px rgba(0, 0, 0, .8); }
@media (hover: hover) and (pointer: fine) { .galerie li.product .woocommerce-LoopProduct-link:hover .vignette img { box-shadow: 0 2px 2px rgba(0, 0, 0, .25), 0 40px 60px -24px rgba(0, 0, 0, .85); } }

/* Pilules de filtre du rayon (tirages d'art / affiches) */
.pilules { display: flex; flex-wrap: wrap; gap: .5rem; align-self: end; }
.pilule { padding: .55em 1.1em; border: 1px solid rgba(244, 240, 234, .35); border-radius: 999px; background: none; color: var(--blanc-casse); font-size: var(--c-0); font-weight: 600; letter-spacing: 1px; text-transform: uppercase; line-height: 1.2; transition: background .2s, color .2s, border-color .2s; }
.pilule:hover { border-color: var(--blanc-casse); }
.pilule.est-active { background: var(--blanc-casse); border-color: var(--blanc-casse); color: var(--bordeaux); }
/* Galerie : œuvres alignées par le bas, bouton compris (formats paysage et portrait mêlés) */
.galerie li.product { transition: opacity .3s ease; justify-content: flex-end; }
.galerie li.product .button { margin-top: 0; }
.galerie li.product.est-masque { display: none; }
.liens-rayon { display: flex; flex-wrap: wrap; gap: .5rem 2.5rem; margin-top: var(--e-4); padding-top: var(--e-3); border-top: 1px solid rgba(244, 240, 234, .12); }
.liens-rayon a.est-masque { display: none; }

/* Collections */
.collections { display: grid; }
.collection { display: grid; grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); gap: var(--e-3) clamp(2rem, 5vw, 4rem); padding-block: var(--e-4); border-top: 1px solid var(--filet); }
.collection:last-child { padding-bottom: 0; }
.collection-infos { display: grid; gap: .6rem; align-content: start; min-width: 0; }
.collection-infos h3 { font-size: var(--c-5); }
.collection-infos .meta { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--bordeaux); line-height: var(--il-liste); }
.collection-infos .desc { font-size: var(--c-1); color: var(--texte-doux); line-height: var(--il-liste); }
.collection-infos .lien-tout { margin-top: .3rem; }
.collection ul.products { gap: var(--e-3) clamp(.9rem, 2vw, 1.5rem); }
.collection li.product .button { padding-inline: 1em; letter-spacing: .8px; }

/* Pages de rayon (catégorie et sous-catégorie) */
.fil { padding-block: 1.1rem 0; font-size: var(--c-0); color: var(--texte-doux); }
.fil ol { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; }
.fil li + li::before { content: "›"; margin-right: .5rem; color: var(--pale); }
.fil a { color: var(--texte-doux); text-decoration-color: var(--pale); }
.fil a:hover { color: var(--bordeaux); }
.fil [aria-current="page"] { color: var(--encre); }

.tete-rayon .conteneur { display: grid; gap: .6rem; padding-block: clamp(1.5rem, 3vw, 2.4rem) clamp(1.8rem, 3.5vw, 2.6rem); border-bottom: 1px solid var(--filet); }
.tete-rayon h1 { font-size: var(--c-7); }
.tete-rayon .chapo { max-width: 46rem; font-size: var(--c-3); line-height: var(--il-texte); color: var(--encre); }
/* Descriptif long : « Lire la suite » déplie le texte complet à la place du chapô */
.lire-suite { padding: 0; border: 0; background: none; font: inherit; font-size: var(--c-1); font-weight: 600; color: var(--bordeaux); text-decoration: underline dotted; text-underline-offset: .2em; cursor: pointer; white-space: nowrap; }
.lire-suite:hover { text-decoration-style: solid; }
.chapo-suite { max-width: 46rem; display: grid; gap: .9rem; margin-top: .2rem; font-size: var(--c-2); line-height: var(--il-texte); color: var(--encre); animation: suite-fondu .35s ease; }
.chapo-suite p:first-child { font-size: var(--c-3); }
.chapo-suite a { color: var(--bordeaux); }
@keyframes suite-fondu { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .chapo-suite { animation: none; } }
.pilules--rayon { margin-top: 1rem; }
.pilules--rayon .pilule { display: inline-flex; align-items: baseline; gap: .45rem; border-color: var(--pale); color: var(--encre); text-decoration: none; letter-spacing: .6px; text-transform: none; font-size: var(--c-1); font-weight: 600; }
.pilules--rayon .pilule .nombre { font-size: var(--c-0); font-weight: 400; color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.pilules--rayon .pilule:hover { border-color: var(--bordeaux); color: var(--bordeaux); }
.pilules--rayon .pilule.est-active { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }
.pilules--rayon .pilule.est-active .nombre { color: rgba(244, 240, 234, .75); }

.catalogue { padding-block: var(--e-3) var(--e-section); }
.outils-catalogue { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.5rem; margin-bottom: var(--e-3); padding-bottom: 1rem; border-bottom: 1px solid var(--filet); }
.resultats { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.resultats .plage { font-weight: 400; letter-spacing: .6px; text-transform: none; }
.woocommerce-ordering { display: flex; align-items: center; gap: .6rem; }
.woocommerce-ordering label { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); }
.woocommerce-ordering select {
  appearance: none; padding: .55rem 2.2rem .55rem .9rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--blanc) no-repeat right .8rem center / 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235e0000' stroke-width='1.4'/%3E%3C/svg%3E");
  font: inherit; font-size: var(--c-1); color: var(--encre); cursor: pointer;
}
.woocommerce-ordering select:focus { outline: 2px solid var(--bordeaux); outline-offset: 1px; border-color: var(--bordeaux); }
ul.products.colonnes-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-4) clamp(1rem, 2.5vw, 2rem); }

.woocommerce-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .35rem; margin-top: var(--e-section); }
.woocommerce-pagination .page-numbers { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .6rem; border: 1px solid transparent; border-radius: 50%; font-size: var(--c-1); font-weight: 600; color: var(--encre); text-decoration: none; font-variant-numeric: tabular-nums; transition: border-color .2s, background .2s, color .2s; }
.woocommerce-pagination a.page-numbers:hover { border-color: var(--bordeaux); color: var(--bordeaux); }
.woocommerce-pagination .current { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }
.woocommerce-pagination .prev, .woocommerce-pagination .next { border-color: var(--pale); color: var(--bordeaux); }
.woocommerce-pagination .prev:hover, .woocommerce-pagination .next:hover { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }
.woocommerce-pagination svg { width: 18px; height: 18px; }
.woocommerce-pagination .prev { margin-right: .6rem; }
.woocommerce-pagination .next { margin-left: .6rem; }

.texte-rayon { background: var(--fond); padding-block: var(--e-section); }
.texte-rayon-dedans { max-width: 46rem; display: grid; gap: var(--e-2); }
.texte-rayon h2 { font-size: var(--c-5); margin-bottom: .3rem; }
.texte-rayon p { color: var(--encre); line-height: var(--il-texte); }
.texte-rayon-dedans--large { max-width: none; }

/* Page auteur (taxonomie « auteur » dans le thème) */
.tete-auteur .conteneur { grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: clamp(1.4rem, 3vw, 2.4rem); }
.portrait { width: clamp(84px, 9vw, 116px); aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; background: var(--bordeaux); color: var(--blanc-casse); overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.portrait span { font-family: var(--titre); font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: 1px; line-height: 1; transform: translateY(2px); }
.portrait img { width: 100%; height: 100%; object-fit: cover; }
.tete-auteur-texte { display: grid; gap: .6rem; }
.tete-auteur h1 { font-size: var(--c-7); }
.meta-auteur { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; margin-top: .6rem; font-size: var(--c-1); color: var(--texte-doux); }
.meta-auteur li { position: relative; }
.meta-auteur li + li::before { content: ""; position: absolute; left: -.9rem; top: .55em; width: 3px; height: 3px; border-radius: 50%; background: var(--pale); }
.pilules--index { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .4rem; }
.pilules--index li { display: contents; }

/* Recherche */
.recherche-grande { display: flex; gap: .6rem; max-width: 42rem; margin-top: .8rem; }
.recherche-grande input { flex: 1 1 auto; min-width: 0; padding: .85rem 1.1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-2); color: var(--encre); }
.recherche-grande input:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.recherche-grande input::-webkit-search-cancel-button { -webkit-appearance: none; }
.recherche-grande .btn { flex: 0 0 auto; }
.tete-recherche h1 .requete { font-style: italic; font-weight: 500; color: var(--bordeaux); }
.pilules--facettes { margin-top: 1.2rem; }
.pilules--facettes .pilule { cursor: pointer; font-family: var(--courant); }
.tete-vide .chapo { max-width: 42rem; }
.surtitre--rayons { margin-top: 1.6rem; }
.tete-vide .pilules--rayon { margin-top: .6rem; }
li.product.est-masque { display: none; }

/* 404 */
.erreur { overflow: hidden; border-bottom: 1px solid var(--filet); }
.erreur .conteneur { position: relative; padding-block: clamp(3rem, 7vw, 5.5rem) clamp(3.2rem, 7vw, 5.5rem); }
.erreur-dedans { position: relative; display: grid; gap: .7rem; justify-items: start; max-width: 46rem; }
.code-erreur { position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-family: var(--titre); font-size: clamp(8rem, 20vw, 17rem); line-height: 1; letter-spacing: -.02em; color: var(--bordeaux); opacity: .05; pointer-events: none; user-select: none; }
.erreur h1 { font-size: var(--c-7); max-width: 32ch; }
.erreur .chapo { max-width: 42rem; font-size: var(--c-3); line-height: var(--il-texte); color: var(--encre); }
.erreur .recherche-grande { width: 100%; }
.erreur .pilules--rayon { margin-top: .4rem; }
.erreur .retour { margin-top: 1rem; }
.selection--secours { border-bottom: 1px solid var(--filet); }

/* Engagements */
.engagements { border-block: 1px solid var(--filet); }
.engagements ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-3) clamp(1rem, 3vw, 2.5rem); padding-block: var(--e-4); }
.engagements li { display: grid; gap: .35rem; align-content: start; }
.engagements .surtitre { color: var(--noir); }
.engagements p { font-size: var(--c-1); color: var(--texte-doux); line-height: var(--il-liste); }

/* Lettre d'information */
.lettre .conteneur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e-3) clamp(2rem, 6vw, 5rem); align-items: center; }
.lettre h2 { font-size: var(--c-5); margin-block: .3rem .5rem; }
.lettre p { color: var(--encre); }
.lettre form { display: grid; gap: .8rem; min-width: 0; }
.lettre .champ { display: flex; gap: .5rem; }
.lettre input[type="email"] { flex: 1 1 auto; min-width: 0; padding: .8rem 1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font-size: var(--c-2); }
.lettre input[type="email"]:focus { outline: 2px solid var(--bordeaux); outline-offset: 1px; border-color: var(--bordeaux); }
.lettre .accord { display: flex; gap: .6rem; align-items: flex-start; font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.lettre .accord input { margin-top: .2rem; accent-color: var(--bordeaux); }
.lettre .retour { font-size: var(--c-1); color: var(--bordeaux); font-weight: 600; }

/* Pied de page */
footer.pied { background: var(--bordeaux-fonce); color: var(--pied-texte); font-size: var(--c-1); line-height: var(--il-liste); }
footer.pied a { color: var(--creme); text-decoration-color: rgba(239, 227, 208, .45); }
footer.pied a:hover { color: var(--blanc); text-decoration-color: var(--blanc); }
.pied-haut { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--e-4) clamp(1.5rem, 3vw, 2.5rem); padding-block: var(--e-section) var(--e-4); }
.pied-presentation { grid-column: 1 / -1; display: grid; gap: var(--e-2); align-content: start; padding-bottom: var(--e-4); border-bottom: 1px solid rgba(239, 227, 208, .12); }
.pied-presentation .pied-titre { font-family: var(--titre); font-size: var(--c-5); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--blanc); line-height: 1.2; }
.pied-presentation p { max-width: 44rem; line-height: var(--il-texte); }
.pied-colonne { min-width: 0; }
.pied-colonne h2 { margin-bottom: .9rem; font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--creme); }
.pied-colonne ul { display: grid; gap: 0; }
/* L'espacement des entrées est porté par l'interligne, pas par un écart : une entrée sur deux lignes garde le même pas que les autres */
.pied-colonne li { line-height: 2; }
.pied-colonne a { text-decoration: none; }
.pied-colonne a:hover { text-decoration: underline dotted; }
.pied-colonne--large { grid-column: span 2; }
.pied-colonne--large ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, 3vw, 2.5rem); }
/* Rangée des réseaux, comme sur Citatio : le logo Iliade blanc à gauche, les pictos blancs à droite */
.pied-reseaux { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem 2rem; padding-block: 0 var(--e-4); }
.pied-iliade { display: block; width: min(100%, 300px); }
.pied-iliade img { width: 100%; height: auto; }
.rs-liste { display: flex; flex-wrap: wrap; align-items: center; gap: 1.15rem; }
.rs { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 3px; color: var(--blanc); opacity: .88; transition: opacity .25s ease, transform .25s ease, background .25s ease; }
.rs svg { width: 17px; height: 17px; }
.rs:hover { opacity: 1; transform: translateY(-2px); background: rgba(255, 255, 255, .07); }
.sous-pied { background: var(--sous-pied); font-size: var(--c-0); }
.sous-pied .conteneur { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1.5rem; padding-block: 1rem; }
.sous-pied ul { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; }

/* Message d'ajout au panier */
.toast {
  position: fixed; z-index: 50;
  right: max(1rem, env(safe-area-inset-right, 0px)); bottom: max(1rem, env(safe-area-inset-bottom, 0px));
  display: flex; align-items: center; gap: 1rem; max-width: min(26rem, calc(100vw - 2rem));
  padding: .9rem 1.1rem; border-radius: var(--rayon);
  background: var(--noir); color: var(--blanc); font-size: var(--c-1); line-height: var(--il-liste);
  box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .45);
  animation: entree .3s ease;
}
.toast a { color: var(--creme); font-weight: 700; white-space: nowrap; }
@keyframes entree { from { opacity: 0; transform: translateY(10px); } }

/* Moyennes largeurs */
@media (max-width: 1080px) {
  .nav-principale > ul { gap: 1.4rem; }
  .nav-principale a { letter-spacing: 1.8px; }
  ul.products.colonnes-6, ul.products.colonnes-5, ul.products.colonnes-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rayons ul { grid-template-columns: minmax(0, 1fr); }
  .rayons li + li { border-left: 0; }
  .rayons a { grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 2rem; align-items: baseline; padding-block: 1.1rem; }
  .rayons .nombre { grid-column: 1; grid-row: 2; }
  .rayons .nom { grid-column: 1; grid-row: 1; }
  .rayons .desc { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .rayons .fleche { grid-column: 3; grid-row: 1 / 3; align-self: center; margin: 0; }
  .pied-haut { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pied-colonne--large { grid-column: 1 / -1; }
  .pied-colonne--large ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  /* Barre collante : « Menu » et l'emblème à gauche, la loupe seule à droite (le panier reste dans la ligne de service) */
  .barre-menu { grid-template-columns: minmax(0, 1fr) auto; }
  .barre-menu .droite { grid-column: 2; }
  .bouton-menu { display: inline-flex; gap: .6rem; width: auto; margin-left: -.7rem; padding: 0 .8rem 0 .7rem; font-size: .78rem; font-weight: 600; letter-spacing: 2.4px; text-transform: uppercase; }
  /* Le panier n'apparaît qu'une fois la ligne de service sortie de l'écran, séparé de la loupe par un filet */
  .icone--panier { display: none; }
  .est-colle .icone--panier { display: grid; }
  .est-colle .bouton-loupe { position: relative; margin-left: .35rem; }
  .est-colle .bouton-loupe::before { content: ""; position: absolute; left: -.55rem; top: 50%; width: 1px; height: 18px; transform: translateY(-50%); background: rgba(244, 240, 234, .28); }
  /* Panneau du menu : liste pleine largeur, texte à gauche, effectifs à droite, aucun effet de survol */
  .nav-principale { display: none; position: absolute; left: 0; right: 0; top: 100%; margin: 0; max-height: calc(100vh - 60px); overflow-y: auto; background: var(--bordeaux-fonce); border-top: 1px solid rgba(244, 240, 234, .14); box-shadow: 0 24px 40px -14px rgba(0, 0, 0, .5); }
  .nav-principale.est-ouverte { display: block; }
  .nav-principale > ul { display: block; padding: .25rem max(16px, var(--gouttiere), env(safe-area-inset-right, 0px)) .75rem max(16px, var(--gouttiere), env(safe-area-inset-left, 0px)); }
  .nav-principale > ul > li { display: block; position: static; }
  .nav-principale > ul > li + li { border-top: 1px solid rgba(244, 240, 234, .1); }
  .nav-principale > ul > li > a::before, .a-sous-menu > a::after { display: none; }
  .nav-principale a { display: flex; justify-content: space-between; align-items: baseline; padding: 1rem 0; transition: none; }
  .nav-principale a:hover { color: var(--blanc); }
  .sous-menu { position: static; min-width: 0; padding: 0 0 .9rem; background: none; border: 0; box-shadow: none; color: var(--blanc-casse); opacity: 1; visibility: visible; transform: none; transition: none; }
  .a-sous-menu:hover .sous-menu, .a-sous-menu:focus-within .sous-menu { transform: none; }
  .sous-menu::before { display: none; }
  .sous-menu a, .sous-menu li:first-child a { padding: .55rem 0 .55rem 1.1rem; font-weight: 400; font-size: var(--c-1); color: rgba(244, 240, 234, .88); }
  .sous-menu a:hover, .sous-menu li:first-child a:hover { background: rgba(244, 240, 234, .09); color: var(--blanc); }
  .sous-menu a, .sous-menu li:first-child a { padding-right: .6rem; border-radius: var(--rayon); }
  .nav-principale > ul > li > a:hover { background: rgba(244, 240, 234, .09); }
  .sous-menu .nombre { color: rgba(244, 240, 234, .55); }
  .sous-menu li:first-child { margin: 0; padding: 0; border: 0; }
  .diapo-dedans { grid-template-columns: minmax(0, 1fr); gap: var(--e-3); }
  .diapo-visuel { order: -1; width: 100%; max-width: 19.5rem; }
  /* Calé sur le fer gauche du texte, sans marge dans sa case */
  .diapo-visuel .vignette { justify-content: flex-start; aspect-ratio: auto; }
  .diapo-visuel .vignette .squelette { position: absolute; width: 100%; height: 100%; }
  .diapo-visuel .vignette.sans-image .squelette { position: relative; height: auto; }
  .diapo-visuel .vignette img { position: relative; top: auto; left: auto; right: auto; bottom: auto; margin: 0; width: 100%; max-width: 100%; max-height: none; }
  .diapo:not(.diapo--oeuvre) .diapo-fond::after { background: linear-gradient(0deg, rgba(46, 5, 0, .92) 0%, rgba(46, 5, 0, .75) 100%); }
  .diapo--oeuvre .diapo-fond::after { background: linear-gradient(0deg, rgba(46, 5, 0, .95) 0%, rgba(46, 5, 0, .8) 100%); }
  .diapo--photo .diapo-fond img { object-position: center 20%; }
  .diapo--photo .diapo-fond::after { background: linear-gradient(0deg, rgba(46, 5, 0, .97) 0%, rgba(46, 5, 0, .9) 48%, rgba(46, 5, 0, .15) 100%); }
  .collection { grid-template-columns: minmax(0, 1fr); }
  .engagements ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lettre .conteneur { grid-template-columns: minmax(0, 1fr); }
  .lettre form { max-width: 36rem; }
}
@media (max-width: 720px) {
  .rayons a { grid-template-columns: minmax(0, 1fr) auto; }
  .rayons .desc { grid-column: 1 / -1; grid-row: 3; }
  .rayons .fleche { grid-column: 2; grid-row: 1 / 3; }
  ul.products, ul.products.colonnes-6, ul.products.colonnes-5, ul.products.colonnes-4, ul.products.colonnes-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pilules--rayon { display: flex; overflow-x: auto; flex-wrap: nowrap; margin-inline: calc(-1 * max(16px, var(--gouttiere))); padding-inline: max(16px, var(--gouttiere)); padding-bottom: .4rem; scrollbar-width: none; }
  .pilules--rayon .pilule { flex: 0 0 auto; }
  /* Les collections défilent à l'horizontale : un livre et demi visible, le reste au doigt */
  .collection ul.products { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .6rem; scrollbar-width: thin; }
  .collection li.product { flex: 0 0 44%; scroll-snap-align: start; display: grid; }
  .pied-haut, .pied-colonne--large ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .tete-section { grid-template-columns: minmax(0, 1fr); }
  .tete-section .lien-tout, .tete-section .pilules { grid-row: 3; }
  .barre-haute .conteneur { justify-content: center; padding-block: .85rem; }
  .barre-haute li + li::before { margin-inline: .9rem; }
  .barre-haute .texte-long { display: none; }
  .bandeau-logo .conteneur { padding-block: 1.1rem 1.2rem; }
  .diapo-texte h3 { font-size: var(--c-6); }
  .diapo-texte .resume { display: none; }
  .carrousel-pied { flex-wrap: wrap; gap: .8rem 1rem; }
  .reperes { flex-wrap: wrap; gap: .4rem; }
  .reperes button { width: 2rem; }
  .position { display: none; }
  .engagements ul { grid-template-columns: minmax(0, 1fr); }
  .lettre .champ { flex-direction: column; }
  .pied-haut { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Pages de texte (mentions légales, CGV, confidentialité) : sommaire collant à gauche, texte mesuré à droite */
.tete-texte .chapo { max-width: 48rem; }
.tete-texte .maj { font-size: var(--c-0); letter-spacing: .6px; text-transform: uppercase; color: var(--texte-doux); margin-top: .4rem; }
.page-texte { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--e-4) clamp(2rem, 5vw, 4.5rem); padding-block: var(--e-4) var(--e-section); }
.colonne-texte { position: sticky; top: calc(60px + 1.2rem); align-self: start; display: grid; gap: var(--e-4); font-size: var(--c-1); max-height: calc(100vh - 60px - 2.4rem); overflow-y: auto; scrollbar-width: thin; padding-right: .5rem; }
.sommaire ol, .voir-aussi ul { display: grid; gap: .35rem; margin-top: .7rem; }
.sommaire a, .voir-aussi a { color: var(--encre); text-decoration: none; line-height: var(--il-liste); }
.sommaire a:hover, .voir-aussi a:hover { color: var(--bordeaux); }
.sommaire .n2 { font-weight: 600; }
.sommaire .num a { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); gap: .3rem; }
.sommaire .num b { font-weight: 400; color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.sommaire a.est-actif { color: var(--bordeaux); }
.texte-legal { max-width: 46rem; }
.texte-legal h2 { font-size: var(--c-5); margin: var(--e-4) 0 var(--e-2); }
.texte-legal h3 { font-size: var(--c-4); margin: var(--e-4) 0 var(--e-2); scroll-margin-top: calc(60px + 1.2rem); }
.texte-legal h2:first-child, .texte-legal h3:first-child { margin-top: 0; }
.texte-legal h2 { scroll-margin-top: calc(60px + 1.2rem); }
.texte-legal p, .texte-legal li { color: var(--encre); line-height: var(--il-texte); }
.texte-legal p + p, .texte-legal ul + p, .texte-legal p + ul { margin-top: var(--e-2); }
.texte-legal strong { font-weight: 600; color: var(--noir); }
.texte-legal a { color: var(--bordeaux); }
.texte-legal blockquote { margin-top: var(--e-2); padding: 1.1rem 1.3rem; border: 1px solid var(--filet); background: var(--fond); display: grid; gap: .8rem; }
.texte-legal .page-texte-sans-sommaire { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 960px) {
  .page-texte { grid-template-columns: minmax(0, 1fr); }
  .colonne-texte { position: static; gap: var(--e-3); padding-bottom: var(--e-3); border-bottom: 1px solid var(--filet); }
  .sommaire ol { columns: 2; column-gap: 2rem; display: block; }
  .sommaire li { break-inside: avoid; padding-bottom: .35rem; }
}
@media (max-width: 600px) {
  .sommaire ol { columns: 1; }
}

/* Contact : coordonnées à gauche, formulaire à droite */
.colonne-contact { gap: var(--e-3); }
.coordonnees p, .coordonnees li { color: var(--encre); line-height: var(--il-texte); }
.coordonnees .surtitre { margin-bottom: .4rem; }
.coordonnees ul { display: grid; gap: .3rem; }
.coordonnees a { color: var(--bordeaux); }
/* Adresse électronique révélée au clic */
.courriel-reveler { padding: 0; border: 0; background: none; font: inherit; color: var(--bordeaux); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: .2em; cursor: pointer; }
.courriel-reveler:hover { text-decoration-style: solid; }
.courriel a { color: var(--bordeaux); }
.formulaire { max-width: 46rem; display: grid; gap: var(--e-3); }
.formulaire .champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3) var(--e-3); }
.formulaire .champ { display: grid; gap: .4rem; min-width: 0; }
.formulaire .champ--large { grid-column: 1 / -1; }
.formulaire label { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); }
.formulaire .obligatoire { color: var(--bordeaux); }
.formulaire .facultatif { font-weight: 400; letter-spacing: .4px; text-transform: none; }
.formulaire input:not([type="checkbox"]), .formulaire select, .formulaire textarea {
  width: 100%; padding: .8rem 1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ);
  font: inherit; font-size: var(--c-2); color: var(--encre); line-height: 1.4;
}
.formulaire select {
  appearance: none; padding-right: 2.4rem; background: var(--blanc) no-repeat right .9rem center / 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235e0000' stroke-width='1.4'/%3E%3C/svg%3E"); cursor: pointer;
}
.formulaire textarea { resize: vertical; min-height: 9rem; }
.formulaire :is(input, select, textarea):focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.formulaire .est-invalide { border-color: var(--bordeaux); }
.formulaire .accord { display: flex; gap: .7rem; align-items: flex-start; }
.formulaire .accord label { font-size: var(--c-1); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--encre); line-height: var(--il-liste); }
.formulaire .accord input { margin-top: .3rem; accent-color: var(--bordeaux); width: 1rem; height: 1rem; flex: 0 0 auto; }
.formulaire .accord a { color: var(--bordeaux); }
.pied-formulaire { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.5rem; }
.pied-formulaire .note { font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.formulaire .retour { padding: 1rem 1.2rem; border-left: 3px solid var(--bordeaux); background: var(--fond); font-size: var(--c-1); color: var(--encre); line-height: var(--il-liste); }
.formulaire .retour.est-envoye { border-color: #3d6b45; }
@media (max-width: 720px) {
  .formulaire .champs { grid-template-columns: minmax(0, 1fr); }
}

/* Mon compte : navigation WooCommerce à gauche, contenu à droite */
.page-compte { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--e-4) clamp(2rem, 5vw, 4.5rem); padding-block: var(--e-4) var(--e-section); }
.page-compte--seule { grid-template-columns: minmax(0, 1fr); }
.woocommerce-MyAccount-navigation { position: sticky; top: calc(60px + 1.2rem); align-self: start; }
.woocommerce-MyAccount-navigation ul { display: grid; margin-top: .7rem; border-top: 1px solid var(--filet); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--filet); }
.woocommerce-MyAccount-navigation a { display: block; padding: .75rem 0 .75rem .9rem; border-left: 2px solid transparent; color: var(--encre); font-size: var(--c-1); font-weight: 600; text-decoration: none; transition: color .2s, border-color .2s; }
.woocommerce-MyAccount-navigation a:hover { color: var(--bordeaux); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--bordeaux); border-left-color: var(--bordeaux); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--texte-doux); font-weight: 400; }
.woocommerce-MyAccount-content { display: grid; gap: var(--e-4); align-content: start; max-width: 52rem; }
.woocommerce-MyAccount-content h2 { font-size: var(--c-4); }
.bienvenue { font-size: var(--c-3); color: var(--encre); }
.intro-bloc { color: var(--encre); line-height: var(--il-texte); max-width: 46rem; }
.intro-bloc a, .bienvenue a, .note-table a, .aide-compte a, .zone-sensible a { color: var(--bordeaux); }
.tuiles-compte { display: grid; gap: var(--e-2); }
.tuile-compte { display: grid; grid-template-columns: 12.5rem minmax(0, 1fr) auto; align-items: start; gap: .5rem clamp(1rem, 3vw, 2.5rem); padding: 1.3rem 1.4rem; border: 1px solid var(--filet); background: var(--blanc); min-width: 0; }
.tuile-compte > * { min-width: 0; overflow-wrap: anywhere; }
.tuile-compte .surtitre { padding-top: .15rem; }
.tuile-compte h2 { font-size: var(--c-3); }
.tuile-compte h2 a { color: var(--noir); text-decoration: none; }
.tuile-compte h2 a:hover { color: var(--bordeaux); }
.tuile-compte p, .tuile-compte address { color: var(--encre); font-style: normal; line-height: var(--il-liste); font-size: var(--c-1); }
.tuile-compte .tuile-meta { color: var(--texte-doux); margin-top: .2rem; }
.tuile-compte .lien-tout { grid-column: 3; grid-row: 1 / span 3; align-self: start; white-space: nowrap; }
.tuile-compte h2 + .tuile-meta, .tuile-compte .surtitre + address, .tuile-compte .surtitre + p { grid-column: 2; }
.tuile-compte .surtitre + h2 { grid-column: 2; }
.aide-compte, .zone-sensible { padding: 1.3rem 1.4rem; background: var(--fond); color: var(--encre); line-height: var(--il-texte); }
.aide-compte .surtitre, .zone-sensible .surtitre { margin-bottom: .4rem; }
.etat { display: inline-block; padding: .25em .7em; border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; line-height: 1.2; white-space: nowrap; }
.etat--completed { background: #e6efe7; color: #2f5c38; }
.etat--processing { background: #f3e9d9; color: #7a4f12; }
.etat--on-hold { background: var(--fond); color: var(--texte-doux); }
.etat--refunded, .etat--cancelled { background: #f1e8e8; color: var(--bordeaux); }

/* Tableaux WooCommerce (commandes, détail) */
.shop_table { width: 100%; border-collapse: collapse; font-size: var(--c-1); }
.shop_table th, .shop_table td { padding: .9rem .8rem; border-bottom: 1px solid var(--filet); text-align: left; vertical-align: middle; color: var(--encre); }
.shop_table thead th { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); border-bottom-color: var(--pale); }
.shop_table th:first-child, .shop_table td:first-child { padding-left: 0; }
.shop_table th:last-child, .shop_table td:last-child { padding-right: 0; }
.shop_table tbody th a { color: var(--noir); font-weight: 600; text-decoration: none; }
.shop_table tbody th a:hover { color: var(--bordeaux); }
.shop_table .amount { font-family: var(--titre); font-size: var(--c-3); color: var(--noir); font-variant-numeric: tabular-nums; }
.shop_table .articles, .shop_table .detail-pied { font-size: var(--c-0); color: var(--texte-doux); }
.woocommerce-orders-table__cell-order-actions { text-align: right !important; }
.note-table { font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.resume-commande { font-size: var(--c-2); color: var(--encre); }
.resume-commande mark { background: none; color: var(--noir); font-weight: 600; }
.etapes-suivi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; counter-reset: etape; }
.etapes-suivi li { position: relative; display: grid; gap: .2rem; padding-top: 1rem; font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.etapes-suivi li::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--filet); }
.etapes-suivi li.est-faite::before { background: var(--bordeaux); }
.etapes-suivi li.est-en-cours::before { background: linear-gradient(90deg, var(--bordeaux) 50%, var(--filet) 50%); }
.etapes-suivi li span { font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--encre); }
.etapes-suivi li.est-en-cours span { color: var(--bordeaux); }
.order_details tfoot th, .order_details tfoot td { font-size: var(--c-1); }
.order_details tfoot th { font-weight: 600; width: 60%; }
.order_details tfoot td { text-align: right; }
.order_details tfoot .ligne-total th, .order_details tfoot .ligne-total td { border-bottom: 0; padding-top: 1.1rem; }
.order_details .product-total { text-align: right; }
.order_details .product-name { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ligne-produit { display: flex; align-items: center; gap: .9rem; color: var(--noir); text-decoration: none; }
.ligne-produit img { width: 48px; height: auto; box-shadow: 0 1px 2px rgba(0, 0, 0, .15); }
.ligne-produit strong { display: block; font-weight: 600; }
.ligne-produit .ligne-type { display: block; font-size: var(--c-0); color: var(--texte-doux); }
.ligne-produit:hover strong { color: var(--bordeaux); }
.product-quantity { color: var(--texte-doux); font-weight: 400; white-space: nowrap; }
.woocommerce-columns--addresses, .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); }
.carte-adresse { padding: 1.3rem 1.4rem; border: 1px solid var(--filet); background: var(--blanc); }
.carte-adresse address { font-style: normal; color: var(--encre); line-height: var(--il-texte); margin-top: .5rem; }
.carte-adresse address a { color: var(--bordeaux); }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.woocommerce-Address-title .edit { font-size: var(--c-0); font-weight: 600; color: var(--bordeaux); }
.actions-commande { display: flex; flex-wrap: wrap; gap: .8rem; }

/* Connexion et formulaires du compte */
#customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4) clamp(2rem, 5vw, 4.5rem); max-width: none; }
.bloc-compte { display: grid; gap: var(--e-3); align-content: start; }
.bloc-compte h2 { font-size: var(--c-5); }
.formulaire .champs--une { grid-template-columns: minmax(0, 1fr); }
.formulaire .aide { font-size: var(--c-0); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--texte-doux); line-height: var(--il-liste); }
.formulaire--etroit { max-width: 30rem; }
.lien-discret { font-size: var(--c-1); color: var(--texte-doux); }
.lien-discret:hover { color: var(--bordeaux); }
.mot-de-passe { position: relative; display: block; }
.mot-de-passe input { padding-right: 3rem; }
.voir-mdp { position: absolute; top: 50%; right: .5rem; transform: translateY(-50%); display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border: 0; background: none; color: var(--texte-doux); cursor: pointer; border-radius: 50%; }
.voir-mdp:hover { color: var(--bordeaux); background: var(--fond); }
.voir-mdp svg { width: 20px; height: 20px; }
.voir-mdp[aria-pressed="true"] { color: var(--bordeaux); }
.changer-mdp { display: grid; gap: var(--e-3); margin: 0; padding: var(--e-3) 0 0; border: 0; border-top: 1px solid var(--filet); }
.changer-mdp legend { float: left; width: 100%; font-family: var(--titre); font-size: var(--c-4); color: var(--noir); padding: 0; margin-bottom: .3rem; }
.formulaire .accord label a { color: var(--bordeaux); }

@media (max-width: 960px) {
  .page-compte { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-MyAccount-navigation { position: static; }
  .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0 .2rem; border-top: 0; border-bottom: 1px solid var(--filet); }
  .woocommerce-MyAccount-navigation li { border-bottom: 0; }
  .woocommerce-MyAccount-navigation a { padding: .7rem .8rem; border-left: 0; border-bottom: 2px solid transparent; }
  .woocommerce-MyAccount-navigation .is-active a { border-bottom-color: var(--bordeaux); }
  .tuile-compte { grid-template-columns: minmax(0, 1fr); }
  .tuile-compte .lien-tout { grid-column: 1; grid-row: auto; margin-top: .3rem; }
  .tuile-compte h2 + .tuile-meta, .tuile-compte .surtitre + address, .tuile-compte .surtitre + p, .tuile-compte .surtitre + h2 { grid-column: 1; }
}
@media (max-width: 720px) {
  #customer_login, .woocommerce-columns--addresses, .woocommerce-Addresses { grid-template-columns: minmax(0, 1fr); }
  .etapes-suivi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Tableau des commandes en cartes (classe WooCommerce shop_table_responsive) */
  .shop_table_responsive thead { display: none; }
  .shop_table_responsive tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem 1rem; padding: 1rem 0; border-bottom: 1px solid var(--filet); }
  .shop_table_responsive th, .shop_table_responsive td { display: block; padding: 0; border: 0; }
  .shop_table_responsive td[data-title]::before { content: attr(data-title) " : "; font-size: var(--c-0); font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--texte-doux); }
  .shop_table_responsive th[data-title] { grid-column: 1; }
  .shop_table_responsive .woocommerce-orders-table__cell-order-actions { grid-column: 2; grid-row: 1 / span 4; align-self: start; }
  .shop_table_responsive td.woocommerce-orders-table__cell-order-actions[data-title]::before { content: none; }
}

/* Fiche produit */
.fiche-produit { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--e-4) clamp(2rem, 5vw, 5rem); padding-block: var(--e-3) var(--e-4); }
.galerie-produit { position: sticky; top: calc(60px + 1.2rem); align-self: start; display: grid; gap: var(--e-2); }
.visuel-principal { margin: 0; }
.visuel-principal .vignette { max-width: 30rem; }
.visuel-principal .vignette img { width: 100%; height: auto; box-shadow: 0 1px 1px rgba(0, 0, 0, .1), 0 28px 44px -20px var(--ombre-livre); }
.miniatures { display: flex; gap: .6rem; }
.miniatures button { padding: 0; border: 1px solid transparent; background: none; cursor: pointer; width: 64px; transition: border-color .2s; }
.miniatures button img { display: block; width: 100%; height: auto; }
.miniatures button:hover { border-color: var(--pale); }
.miniatures button.est-active { border-color: var(--bordeaux); }
.resume-produit { display: grid; gap: var(--e-2); align-content: start; }
.resume-produit .surtitre a { color: inherit; text-decoration: none; }
.resume-produit .surtitre a:hover { text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; }
.resume-produit .product_title { font-size: var(--c-7); line-height: 1.05; }
.resume-produit .sous-titre { font-family: var(--titre); font-style: italic; font-size: var(--c-4); color: var(--encre); margin-top: -.6rem; }
.auteur-produit { font-size: var(--c-2); color: var(--texte-doux); }
.auteur-produit a { color: var(--encre); font-weight: 600; text-decoration: none; }
.auteur-produit a:hover { color: var(--bordeaux); }
.prix-stock { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.4rem; margin-top: .4rem; padding-top: var(--e-3); border-top: 1px solid var(--filet); }
.resume-produit .price { font-family: var(--titre); font-size: var(--c-6); color: var(--noir); line-height: 1; font-variant-numeric: tabular-nums; }
.resume-produit .price .ttc { font-family: var(--courant); font-size: var(--c-0); color: var(--texte-doux); letter-spacing: 1px; margin-left: .2rem; }
.resume-produit .stock { display: inline-flex; align-items: center; gap: .5rem; font-size: var(--c-1); font-weight: 600; color: #2f5c38; }
.resume-produit .stock .pastille { width: 9px; height: 9px; border-radius: 50%; background: #3d8a4a; box-shadow: 0 0 0 3px rgba(61, 138, 74, .18); }
.resume-produit .stock .stock-detail { font-weight: 400; color: var(--texte-doux); }
.resume-produit .stock.out-of-stock { color: var(--bordeaux); }
.resume-produit .stock.out-of-stock .pastille { background: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .15); }
.resume-produit form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .7rem; margin-top: .4rem; }
.quantity { display: inline-flex; align-items: stretch; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--blanc); }
.quantity button { width: 2.6rem; border: 0; background: none; color: var(--encre); font-size: 1.2rem; line-height: 1; cursor: pointer; transition: background .2s, color .2s; }
.quantity button:hover { background: var(--fond); color: var(--bordeaux); }
.quantity input { width: 3rem; border: 0; border-inline: 1px solid var(--filet); text-align: center; font: inherit; font-size: var(--c-2); color: var(--noir); appearance: textfield; -moz-appearance: textfield; background: var(--champ); }
.quantity input::-webkit-outer-spin-button, .quantity input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity input:focus { outline: none; background: var(--survol); }
.resume-produit .single_add_to_cart_button { padding-inline: 2.2em; }
.reassurance { display: grid; gap: .5rem; margin-top: .4rem; padding-top: var(--e-3); border-top: 1px solid var(--filet); font-size: var(--c-1); color: var(--encre); }
.reassurance li { display: flex; align-items: center; gap: .7rem; }
.reassurance svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--bordeaux); }
.caracteristiques { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.05rem 1.5rem; margin-top: .4rem; padding-top: var(--e-3); border-top: 1px solid var(--filet); font-size: var(--c-1); }
.caracteristiques div { display: grid; gap: .2rem; }
.caracteristiques dt { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #524d49; }
.caracteristiques dd { margin: 0; color: var(--encre); }
.caracteristiques dd a { color: var(--encre); }
.lien-presse { font-size: var(--c-0); color: var(--texte-doux); }
.lien-presse a { color: var(--texte-doux); }
.lien-presse a:hover { color: var(--bordeaux); }
/* Sous la galerie : couverture HD pour la presse et les libraires, centrée sous le visuel */
.lien-hd { text-align: left; line-height: 1.5; white-space: nowrap; }
.lien-hd a { display: inline-flex; align-items: center; gap: .4rem; text-decoration: underline dotted; text-underline-offset: .2em; }
.lien-hd .picto-telecharger { width: 14px; height: 14px; flex: none; }
.lien-hd .facultatif { display: inline; }
@media (max-width: 520px) { .lien-hd { white-space: normal; } .lien-hd .facultatif { display: block; } }
.description-produit { border-top: 1px solid var(--filet); padding-block: var(--e-section); }
.description-dedans { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: var(--e-4) clamp(2rem, 5vw, 5rem); align-items: start; }
.texte-produit { max-width: 44rem; display: grid; gap: var(--e-2); }
.texte-produit h2 { font-size: clamp(1.75rem, 2.4vw, 1.95rem); line-height: 1.15; margin: var(--e-2) 0 .5rem; }
.texte-produit h2:first-child { margin-top: 0; }
.texte-produit h3 { font-size: var(--c-4); margin: var(--e-2) 0 .2rem; }
.texte-produit h2 + h2, .texte-produit #titre-presse { margin-top: var(--e-4); }
.texte-produit p { color: var(--encre); line-height: var(--il-texte); }
.texte-produit .chapo { font-size: var(--c-3); color: var(--noir); }
.texte-produit a { color: var(--bordeaux); }
/* Listes : même dessin que sur le site de l'Institut (puce ▸ bordeaux, numéros bordeaux) */
.texte-produit ul, .texte-produit ol, .texte-legal ul, .texte-legal ol, .encart-auteur ul { margin: 0 0 .4rem; padding-left: 1.6rem; display: grid; gap: .55rem; color: var(--encre); line-height: var(--il-texte); }
.texte-produit ul, .texte-legal ul, .encart-auteur ul { list-style: none; padding-left: 1.5rem; }
.texte-produit ul li, .texte-legal ul li, .encart-auteur ul li { position: relative; }
.texte-produit ul li::before, .texte-legal ul li::before, .encart-auteur ul li::before { content: "▸"; position: absolute; left: -1.15rem; top: .05em; color: var(--bordeaux); font-size: .9em; line-height: inherit; }
.texte-produit ol, .texte-legal ol { list-style: decimal; }
.texte-produit ol li::marker, .texte-legal ol li::marker { color: var(--bordeaux); font-weight: 600; font-variant-numeric: tabular-nums; }
.texte-produit li p { display: inline; }
.texte-produit blockquote { margin: .4rem 0; padding: .2rem 0 .2rem 1.2rem; border-left: 3px solid var(--bordeaux); font-family: var(--titre); font-size: var(--c-3); color: var(--noir); line-height: 1.5; }
.texte-produit img { max-width: 100%; height: auto; }
/* Bandeau des cookies : invisible tant que sa feuille (chargée sans bloquer) n’est pas arrivée, pour éviter un éclair sans style. */
#tarteaucitronRoot { visibility: hidden; }

/* Vidéos et lecteurs intégrés : cadre 16/9 (ou hauteur du lecteur audio), emplacement tarteaucitron avant consentement */
.media-externe { display: block; width: 100%; margin: .6rem 0; }
.media-externe--video { aspect-ratio: 16 / 9; background: var(--bordeaux-fonce); }
.media-externe--audio { height: var(--hauteur, 166px); background: var(--fond); }
.media-externe > div, .media-externe iframe, .media-externe .tac_activate { display: block; width: 100% !important; height: 100% !important; border: 0; }
.media-externe .youtube_player, .media-externe .vimeo_player, .media-externe .tac_iframe { aspect-ratio: auto; }
.revue-presse .media-externe { margin: 1rem 0; }
.colonne-auteurs { position: sticky; top: calc(60px + 1.2rem); display: grid; gap: var(--e-2); }
.encart-auteur { display: grid; gap: .7rem; padding: 1.4rem 1.5rem; background: var(--fond); color: var(--encre); line-height: var(--il-texte); font-size: var(--c-1); }
.encart-auteur p strong { color: var(--noir); }
.encart-auteur .nom-auteur { font-family: var(--titre); font-size: var(--c-3); color: var(--noir); line-height: 1.25; margin-top: -.3rem; }
/* Plusieurs signataires : accordéon, un seul encart ouvert à la fois */
.colonne-auteurs--accordeon { gap: .5rem; }
details.encart-auteur { display: block; padding: 0; }
details.encart-auteur summary { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.5rem; cursor: pointer; list-style: none; }
details.encart-auteur summary::-webkit-details-marker { display: none; }
details.encart-auteur summary .portrait { flex: none; width: 48px; }
details.encart-auteur summary .portrait span { font-size: 1.1rem; }
details.encart-auteur .encart-titres { display: grid; gap: .15rem; min-width: 0; }
details.encart-auteur .encart-titres .surtitre { margin: 0; }
details.encart-auteur .encart-titres .nom-auteur { margin: 0; font-size: var(--c-2); }
details.encart-auteur .pli { margin-left: auto; flex: none; display: grid; place-items: center; width: 22px; height: 22px; color: var(--texte-doux); }
details.encart-auteur .pli svg { width: 18px; height: 18px; transition: transform .25s; }
details.encart-auteur[open] .pli svg { transform: rotate(180deg); }
details.encart-auteur summary:hover .pli { color: var(--bordeaux); }
details.encart-auteur summary:focus-visible { outline: 2px solid var(--bordeaux); outline-offset: -2px; }
details.encart-auteur .encart-corps { display: grid; gap: .7rem; padding: 0 1.5rem 1.4rem; }
details.encart-auteur:not([open]) { background: var(--blanc); box-shadow: inset 0 0 0 1px var(--filet); }
.encart-auteur .lien-tout { margin-top: .2rem; }
.portrait--petit { width: 60px; }
.portrait--petit span { font-size: 1.3rem; }
@media (max-width: 960px) {
  .fiche-produit { grid-template-columns: minmax(0, 1fr); }
  .galerie-produit { position: static; }
  .visuel-principal .vignette { max-width: 22rem; }
  .description-dedans { grid-template-columns: minmax(0, 1fr); }
  .colonne-auteurs { position: static; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
}
@media (max-width: 520px) {
  .resume-produit .product_title { font-size: var(--c-6); }
  .caracteristiques { grid-template-columns: minmax(0, 1fr); }
  .resume-produit form.cart .single_add_to_cart_button { flex: 1 1 auto; }
}

/* Index des auteurs */
.outils-index { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.5rem; margin-top: .8rem; }
.filtre-index { flex: 1 1 18rem; max-width: 26rem; }
.tete-index .pilules--facettes { margin-top: 0; }
.lettres li.est-vide a { color: var(--pale); border-color: var(--filet); pointer-events: none; }
.filtre-index input { width: 100%; padding: .75rem 1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-2); color: var(--encre); }
.filtre-index input:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.filtre-index input::-webkit-search-cancel-button { -webkit-appearance: none; }
.lettres { margin-top: 1.2rem; }
.lettres ol { display: flex; flex-wrap: wrap; gap: .3rem; }
.lettres li > * { display: grid; place-items: center; min-width: 2rem; height: 2rem; padding: 0 .4rem; border-radius: 50%; font-size: var(--c-0); font-weight: 700; letter-spacing: .5px; }
.lettres a { color: var(--encre); text-decoration: none; border: 1px solid var(--pale); transition: background .2s, color .2s, border-color .2s; }
.lettres a:hover { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }
.lettres span { color: var(--pale); }
.index-auteurs { padding-block: var(--e-3) var(--e-section); }
.groupe-lettre { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: .5rem 1rem; padding-block: var(--e-3); border-bottom: 1px solid var(--filet); scroll-margin-top: calc(60px + 1rem); }
.groupe-lettre h2 { font-size: var(--c-6); color: var(--bordeaux); line-height: 1; }
.groupe-lettre ul { display: grid; }
.entree-auteur { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--filet); }
.entree-auteur:first-child { border-top: 0; }
.entree-auteur a { display: grid; gap: .15rem; min-width: 0; color: var(--noir); text-decoration: none; }
.entree-auteur .nom-auteur { font-family: var(--titre); font-size: var(--c-3); line-height: 1.25; transition: color .2s; }
.entree-auteur a:hover .nom-auteur { color: var(--bordeaux); }
.entree-auteur .titres-auteur { font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.entree-auteur .nombre { flex: 0 0 auto; font-size: var(--c-0); color: var(--texte-doux); white-space: nowrap; font-variant-numeric: tabular-nums; }
.entree-auteur.est-masque, .groupe-lettre.est-masque { display: none; }
.index-vide { padding-block: var(--e-3); color: var(--texte-doux); }
@media (max-width: 720px) {
  .groupe-lettre { grid-template-columns: minmax(0, 1fr); }
  .groupe-lettre h2 { font-size: var(--c-5); }
}

/* Pages auteur, recherche et 404 : ajustements mobiles (après les règles générales des rayons) */
@media (max-width: 720px) {
  .tete-auteur .conteneur { grid-template-columns: minmax(0, 1fr); }
  .portrait { width: 72px; }
  .recherche-grande { flex-wrap: wrap; }
  .recherche-grande .btn { width: 100%; }
  .code-erreur { top: .6rem; right: -.5rem; transform: none; font-size: 8rem; }
  .pilules--index { flex-wrap: wrap; overflow: visible; margin-inline: 0; padding-inline: 0; }
}

/* ============================================================
   Compléments pour les gabarits WooCommerce natifs (panier, tunnel, notices, compte)
   ============================================================ */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 var(--e-3); padding: 1rem 1.2rem; border-left: 3px solid var(--bordeaux); background: var(--fond); color: var(--encre); font-size: var(--c-1); line-height: var(--il-liste); }
.woocommerce-message { border-color: #3d6b45; }
.woocommerce-error { border-color: var(--bordeaux); background: #f7efef; }
.woocommerce-error li + li, .woocommerce-message li + li { margin-top: .4rem; }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 1rem; padding: .55em 1em; font-size: .72rem; }
.page-boutique { padding-block: var(--e-3) var(--e-section); }
.page-boutique .woocommerce { display: grid; gap: var(--e-4); }
.page-boutique .woocommerce form.woocommerce-form-login, .page-boutique .woocommerce form.woocommerce-form-register { max-width: 32rem; }

/* Panier : articles à gauche, récapitulatif collant à droite, suggestions en pleine largeur dessous */
.woocommerce-cart .page-boutique > .woocommerce { grid-template-columns: minmax(0, 1fr) clamp(18rem, 28vw, 22rem); gap: var(--e-4) clamp(2rem, 5vw, 4.5rem); align-items: start; }
.woocommerce-cart .page-boutique > .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .page-boutique > .woocommerce > .suggestions-panier, .woocommerce-cart .page-boutique > .woocommerce > .panier-vide, .woocommerce-cart .page-boutique > .woocommerce > .selection { grid-column: 1 / -1; }
.woocommerce-cart .page-boutique > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart-form .shop_table { table-layout: fixed; }
.woocommerce-cart-form th.product-price, .woocommerce-cart-form th.product-subtotal { width: 5.5rem; }
.woocommerce-cart-form th.product-quantity { width: 9.5rem; }
.woocommerce-cart-form .shop_table thead th { padding-top: 0; }
.woocommerce-cart-form .product-remove { width: 2.4rem; padding-right: 0; }
.woocommerce-cart-form .product-thumbnail { width: 72px; }
.woocommerce-cart-form .product-thumbnail a { display: block; line-height: 0; }
.woocommerce-cart-form .product-thumbnail img { width: 56px; max-width: none; height: auto; box-shadow: 0 1px 2px rgba(0, 0, 0, .15); }
.woocommerce-cart-form .product-name a { color: var(--noir); font-weight: 600; text-decoration: none; }
.woocommerce-cart-form .product-name a:hover { color: var(--bordeaux); }
.woocommerce-cart-form .product-name .variation { display: grid; grid-template-columns: auto 1fr; gap: 0 .4rem; margin-top: .3rem; font-size: var(--c-0); color: var(--texte-doux); }
.woocommerce-cart-form .product-name .variation dt, .woocommerce-cart-form .product-name .variation dd { margin: 0; }
.woocommerce-cart-form .product-name .variation p { margin: 0; }
.woocommerce-cart-form .product-remove a { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; color: var(--texte-doux); text-decoration: none; font-size: 1.2rem; }
.woocommerce-cart-form .product-remove a:hover { background: var(--fond); color: var(--bordeaux); }
.woocommerce-cart-form .product-price, .woocommerce-cart-form .product-subtotal, .woocommerce-cart-form .product-quantity { white-space: nowrap; text-align: right; }
.woocommerce-cart-form td.product-price .amount { font-size: var(--c-2); color: var(--encre); }
.woocommerce-cart-form .quantity { vertical-align: middle; }
.woocommerce-cart-form .actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: var(--e-3) 0 0; border-bottom: 0; }
.woocommerce-cart-form .coupon { display: flex; align-items: stretch; gap: .5rem; }
.woocommerce-cart-form .coupon input { width: 12rem; max-width: 100%; padding: .6rem .9rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-1); color: var(--encre); }
.woocommerce-cart-form .coupon input:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.woocommerce-cart-form .coupon .button, .woocommerce-cart-form button[name="update_cart"] { white-space: nowrap; padding: .75em 1.2em; font-size: .75rem; background: transparent; color: var(--bordeaux); box-shadow: inset 0 0 0 1px var(--bordeaux); }
.woocommerce-cart-form .coupon .button:hover, .woocommerce-cart-form button[name="update_cart"]:hover { background: var(--bordeaux); color: var(--blanc); }
.woocommerce-cart-form button[name="update_cart"][disabled] { opacity: .4; cursor: default; }
.woocommerce-cart-form button[name="update_cart"][disabled]:hover { background: transparent; color: var(--bordeaux); }
/* Avec le script, la quantité met le panier à jour d'elle-même : le bouton reste pour la soumission sans script */
.panier-auto .woocommerce-cart-form button[name="update_cart"] { display: none; }
.cart-collaterals { grid-column: 2; align-self: stretch; }
/* Le récapitulatif suit le défilement, mais seulement jusqu'au bas de la liste des articles (sa colonne) */
.cart_totals { position: sticky; top: calc(60px + 1.2rem); padding: var(--e-3) clamp(1.2rem, 2vw, 1.6rem); background: var(--fond); }
.cart_totals h2 { font-size: var(--c-4); margin-bottom: var(--e-2); }
.cart_totals .shop_table { font-size: var(--c-1); }
.cart_totals .shop_table th, .cart_totals .shop_table td { padding: .7rem 0; vertical-align: top; }
.cart_totals .shop_table th { width: auto; font-weight: 600; color: var(--encre); }
.cart_totals .shop_table td { text-align: right; }
.cart_totals .shop_table .amount { font-size: var(--c-2); color: var(--noir); }
.cart_totals .order-total th, .cart_totals .order-total td { border-bottom: 0; padding-top: 1rem; }
.cart_totals .order-total .amount { font-family: var(--titre); font-size: var(--c-5); }
.cart_totals .woocommerce-shipping-destination, .cart_totals .woocommerce-shipping-calculator { font-size: var(--c-0); color: var(--texte-doux); margin-top: .5rem; }
.cart_totals .shipping-calculator-button { color: var(--bordeaux); }
.cart_totals .woocommerce-remove-coupon { margin-left: .4rem; color: var(--texte-doux); font-size: var(--c-0); }
.wc-proceed-to-checkout { margin-top: var(--e-2); display: grid; }
.wc-proceed-to-checkout .button { text-align: center; background: var(--bordeaux); color: var(--blanc); }
.wc-proceed-to-checkout .button:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; text-align: left; }
.woocommerce-shipping-methods li { display: flex; align-items: baseline; gap: .5rem; }
.woocommerce-shipping-methods input { accent-color: var(--bordeaux); flex: none; }
.woocommerce-shipping-methods label { font-weight: 400; }
.cart-empty.woocommerce-info { border-color: var(--pale); }
.return-to-shop .button { margin-top: var(--e-2); }
.suggestions-panier { margin-top: var(--e-2); padding-top: var(--e-4); border-top: 1px solid var(--filet); }
@media (max-width: 960px) {
  .woocommerce-cart .page-boutique > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-cart-form, .cart-collaterals { grid-column: 1; }
  .cart_totals { position: static; max-width: 28rem; }
}
@media (max-width: 720px) {
  /* Le tableau du panier passe en lignes : visuel, titre et prix, quantité et sous-total dessous */
  .woocommerce-cart-form .shop_table thead { display: none; }
  .woocommerce-cart-form .shop_table tr.cart_item { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: .3rem .9rem; padding: 1rem 0; border-bottom: 1px solid var(--filet); align-items: start; }
  .woocommerce-cart-form .shop_table tr.cart_item td { display: block; padding: 0; border: 0; text-align: left; }
  .woocommerce-cart-form .shop_table tr.cart_item td[data-title]::before { content: none; }
  .woocommerce-cart-form .product-thumbnail { grid-column: 1; grid-row: 1 / span 3; width: auto; }
  .woocommerce-cart-form .product-name { grid-column: 2; grid-row: 1; }
  .woocommerce-cart-form .product-remove { grid-column: 3; grid-row: 1; width: auto; justify-self: end; }
  .woocommerce-cart-form td.product-price { grid-column: 2; grid-row: 2; }
  .woocommerce-cart-form .product-quantity { grid-column: 2; grid-row: 3; margin-top: .4rem; }
  .woocommerce-cart-form .product-subtotal { grid-column: 3; grid-row: 3; align-self: end; }
  .woocommerce-cart-form .shop_table tr:last-child td.actions { display: block; padding-top: var(--e-3); }
  .woocommerce-cart-form .coupon { width: 100%; }
  .woocommerce-cart-form .coupon input { flex: 1 1 auto; width: auto; }
  .woocommerce-cart-form button[name="update_cart"] { width: 100%; }
  /* Le récapitulatif reste un tableau à deux colonnes */
  .cart_totals .shop_table tr { display: table-row; padding: 0; border: 0; }
  .cart_totals .shop_table th, .cart_totals .shop_table td { display: table-cell; padding: .7rem 0; border-bottom: 1px solid var(--filet); }
  .cart_totals .shop_table td { text-align: right; }
  .cart_totals .shop_table td[data-title]::before { content: none; }
  .cart_totals .order-total th, .cart_totals .order-total td { border-bottom: 0; }
}

/* Tunnel de commande : coordonnées à gauche, « Votre commande » dans un rail collant à droite */
form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) clamp(20rem, 30vw, 24rem); gap: var(--e-3) clamp(2rem, 5vw, 4.5rem); align-items: start; }
form.woocommerce-checkout #customer_details { grid-column: 1; }
form.woocommerce-checkout #order_review_heading { display: none; }
form.woocommerce-checkout #order_review { grid-column: 2; position: sticky; top: calc(60px + 1.2rem); padding: var(--e-3) clamp(1.2rem, 2vw, 1.6rem); background: var(--fond); }
form.woocommerce-checkout #order_review::before { content: "Votre commande"; display: block; font-family: var(--titre); font-weight: 400; font-size: var(--c-4); color: var(--noir); line-height: 1.2; margin-bottom: var(--e-2); }
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-3); max-width: 40rem; }
.woocommerce-checkout h3 { font-size: var(--c-4); margin-bottom: var(--e-2); }
.woocommerce-checkout .form-row { display: grid; gap: .4rem; margin-bottom: var(--e-2); }
.woocommerce-checkout .form-row label { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); }
.woocommerce-checkout .form-row label .required { color: var(--bordeaux); text-decoration: none; }
.woocommerce-checkout .form-row label .optional { font-weight: 400; letter-spacing: .4px; text-transform: none; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { display: inline-grid; width: calc(50% - .5rem); vertical-align: top; }
.woocommerce-checkout .form-row-first { margin-right: 1rem; }
.woocommerce-checkout .input-text, .woocommerce-checkout select, .woocommerce-checkout textarea, .woocommerce-checkout .select2-container .select2-selection--single {
  width: 100%; min-height: 2.9rem; padding: .75rem 1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-2); color: var(--encre); }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--encre); }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 100%; }
.woocommerce-checkout .input-text:focus, .woocommerce-checkout select:focus, .woocommerce-checkout textarea:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.woocommerce-checkout .woocommerce-invalid .input-text { border-color: var(--bordeaux); }
.woocommerce-checkout .woocommerce-input-wrapper { display: block; }
/* Autre adresse de livraison : une ligne encadrée avec un interrupteur, les champs se déplient dessous */
.woocommerce-shipping-fields { display: grid; gap: var(--e-2); }
#ship-to-different-address { margin: 0; font: inherit; }
#ship-to-different-address label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--blanc); cursor: pointer; transition: border-color .2s, background .2s; }
#ship-to-different-address label:hover { border-color: var(--bordeaux); }
#ship-to-different-address label:has(input:checked) { background: var(--fond); border-color: var(--bordeaux); }
#ship-to-different-address label span { order: -1; display: grid; gap: .15rem; font-size: var(--c-2); font-weight: 600; color: var(--noir); line-height: 1.35; }
#ship-to-different-address label span::after { content: "Par défaut, la commande est livrée à l’adresse de facturation."; font-size: var(--c-0); font-weight: 400; color: var(--texte-doux); }
#ship-to-different-address input { appearance: none; -webkit-appearance: none; flex: none; width: 2.6rem; height: 1.5rem; margin: 0; border-radius: 1rem; background: var(--pale); position: relative; cursor: pointer; transition: background .25s; }
#ship-to-different-address input::after { content: ""; position: absolute; top: .2rem; left: .2rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--blanc); box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .25s; }
#ship-to-different-address input:checked { background: var(--bordeaux); }
#ship-to-different-address input:checked::after { transform: translateX(1.1rem); }
#ship-to-different-address input:focus-visible { outline: 2px solid var(--bordeaux); outline-offset: 2px; }
.woocommerce-shipping-fields .shipping_address { padding-top: var(--e-1); }
.woocommerce-additional-fields { margin-top: var(--e-2); }
/* Rail « Votre commande » */
.woocommerce-checkout-review-order-table { font-size: var(--c-1); }
.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: .65rem 0; vertical-align: top; }
.woocommerce-checkout-review-order-table .product-name { font-weight: 400; color: var(--encre); }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--texte-doux); font-weight: 400; white-space: nowrap; }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table .amount { font-size: var(--c-2); }
.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; color: var(--encre); }
.woocommerce-checkout-review-order-table tfoot tr:first-child th, .woocommerce-checkout-review-order-table tfoot tr:first-child td { padding-top: 1rem; border-top: 1px solid var(--pale); }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { border-bottom: 0; padding-top: 1rem; }
.woocommerce-checkout-review-order-table .order-total .amount { font-family: var(--titre); font-size: var(--c-5); }
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals td { white-space: normal; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals td p { font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.woocommerce-checkout-payment { margin-top: var(--e-2); padding: var(--e-2) 0 0; border-top: 1px solid var(--pale); background: transparent; }
.wc_payment_methods { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.wc_payment_method label { font-weight: 600; color: var(--noir); font-size: var(--c-1); }
.wc_payment_method label img { max-height: 1.4rem; vertical-align: middle; margin-left: .4rem; }
.wc_payment_method input { accent-color: var(--bordeaux); margin-right: .4rem; }
.payment_box { margin-top: .5rem; padding: .9rem 1rem; background: var(--blanc); border: 1px solid var(--filet); font-size: var(--c-0); color: var(--encre); line-height: var(--il-liste); }
.woocommerce-checkout-payment .woocommerce-notice, .woocommerce-checkout-payment .woocommerce-info { margin-bottom: var(--e-2); }
.woocommerce-terms-and-conditions-wrapper { margin: var(--e-2) 0; font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.woocommerce-terms-and-conditions-wrapper a { color: var(--bordeaux); }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin-bottom: .6rem; }
.woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; display: block; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: .5rem; font-size: var(--c-1); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--encre); }
.woocommerce-terms-and-conditions-wrapper input { accent-color: var(--bordeaux); margin: .25rem 0 0; flex: none; }
.place-order { display: grid; }
#place_order { text-align: center; background: var(--bordeaux); color: var(--blanc); }
#place_order:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.woocommerce-form-coupon-toggle .woocommerce-info { border-color: var(--pale); }
.woocommerce-form-coupon { display: flex; gap: .6rem; margin-bottom: var(--e-3); }
.woocommerce-form-coupon input { flex: 1 1 auto; padding: .6rem .9rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; }
.woocommerce-form-coupon .button { white-space: nowrap; }
@media (max-width: 960px) {
  form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
  form.woocommerce-checkout #order_review { grid-column: 1; position: static; }
  .woocommerce-checkout .col2-set { max-width: none; }
}
@media (max-width: 720px) {
  .woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { width: 100%; margin-right: 0; }
  .woocommerce-form-coupon { flex-direction: column; }
}
.woocommerce-order { display: grid; gap: var(--e-4); }
.woocommerce-thankyou-order-received { font-family: var(--titre); font-size: var(--c-5); color: var(--noir); }
.woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; padding: 1.2rem 1.4rem; border: 1px solid var(--filet); font-size: var(--c-1); color: var(--texte-doux); }
.woocommerce-order-overview li strong { display: block; color: var(--noir); font-weight: 600; }

/* Mon compte : gabarits natifs (connexion, adresses, commandes) */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { display: grid; gap: var(--e-3); }
.woocommerce-form-login .form-row, .woocommerce-form-register .form-row, .woocommerce-EditAccountForm .form-row, .woocommerce-address-fields .form-row, .woocommerce-ResetPassword .form-row { display: grid; gap: .4rem; margin-bottom: var(--e-2); }
.woocommerce-account .form-row label .optional { font-weight: 400; letter-spacing: .4px; text-transform: none; }
/* Adresses et détails du compte : formulaire borné en largeur, même habillage que le tunnel */
.woocommerce-address-fields, .woocommerce-EditAccountForm { max-width: 40rem; }
.woocommerce-MyAccount-content form > h2, .woocommerce-EditAccountForm legend { font-size: var(--c-4); margin-bottom: var(--e-3); }
.woocommerce-MyAccount-content form { max-width: 40rem; }
.woocommerce-address-fields .form-row-wide, .woocommerce-EditAccountForm .form-row-wide { display: grid; }
.woocommerce-address-fields .woocommerce-input-wrapper, .woocommerce-EditAccountForm .woocommerce-input-wrapper { display: block; }
.woocommerce-address-fields .button, .woocommerce-EditAccountForm .button { margin-top: var(--e-1); }
/* Listes déroulantes Select2 (pays, région) : même dessin que les champs, partout */
.select2-container .select2-selection--single { height: auto; min-height: 2.9rem; padding: .75rem 2.4rem .75rem 1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-2); color: var(--encre); }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--encre); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 100%; right: .8rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: var(--texte-doux) transparent transparent; }
.select2-container--open .select2-selection--single { border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.select2-container--default.select2-container--focus .select2-selection--single { border-color: var(--bordeaux); }
.select2-dropdown { border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--blanc); font-family: var(--courant); font-size: var(--c-1); color: var(--encre); box-shadow: 0 16px 40px rgba(0, 0, 0, .12); overflow: hidden; }
.select2-container--default .select2-search--dropdown .select2-search__field { padding: .55rem .8rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; }
.select2-container--default .select2-results__option { padding: .5rem .9rem; }
.select2-results__option--highlighted { background: var(--bordeaux) !important; color: var(--blanc) !important; }
.select2-container--default .select2-results__option[aria-selected="true"], .select2-container--default .select2-results__option--selected { background: var(--fond); color: var(--noir); }
.woocommerce-form-login .form-row label, .woocommerce-form-register .form-row label, .woocommerce-EditAccountForm .form-row label, .woocommerce-address-fields .form-row label, .woocommerce-ResetPassword .form-row label { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); }
.woocommerce-account .form-row label .required { color: var(--bordeaux); text-decoration: none; }
.woocommerce-account .input-text, .woocommerce-account select { width: 100%; padding: .8rem 1rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-2); color: var(--encre); }
.woocommerce-account .input-text:focus, .woocommerce-account select:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(94, 0, 0, .12); }
.woocommerce-account .form-row-first, .woocommerce-account .form-row-last { display: inline-grid; width: calc(50% - .5rem); vertical-align: top; }
.woocommerce-account .form-row-first { margin-right: 1rem; }
.woocommerce-account fieldset { border: 0; padding: var(--e-3) 0 0; margin: 0; border-top: 1px solid var(--filet); display: grid; gap: var(--e-2); }
.woocommerce-account fieldset legend { float: left; width: 100%; font-family: var(--titre); font-size: var(--c-4); color: var(--noir); margin-bottom: .3rem; }
.woocommerce-account .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: .6rem; font-size: var(--c-1); color: var(--encre); font-weight: 400; letter-spacing: 0; text-transform: none; }
.woocommerce-account .lost_password { font-size: var(--c-1); }
.woocommerce-account .lost_password a { color: var(--texte-doux); }
.woocommerce-account .woocommerce-privacy-policy-text { font-size: var(--c-0); color: var(--texte-doux); line-height: var(--il-liste); }
.woocommerce-account .woocommerce-privacy-policy-text a { color: var(--bordeaux); }
.woocommerce-account .show-password-input { display: none; }
.woocommerce-account .woocommerce-Address address { font-style: normal; color: var(--encre); line-height: var(--il-texte); margin-top: .5rem; }
.woocommerce-account .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.woocommerce-account .woocommerce-Address-title h2, .woocommerce-account .woocommerce-column__title { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bordeaux); font-family: var(--courant); }
.woocommerce-account .woocommerce-Address { padding: 1.3rem 1.4rem; border: 1px solid var(--filet); background: var(--blanc); }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); }
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button + .button { margin-left: .4rem; }
.woocommerce-account .woocommerce-pagination { margin-top: var(--e-3); }
.woocommerce-account .woocommerce-pagination .button { margin: 0 .3rem; }
@media (max-width: 720px) {
  .woocommerce-account .form-row-first, .woocommerce-account .form-row-last { width: 100%; margin-right: 0; }
  .woocommerce-account .woocommerce-Addresses { grid-template-columns: minmax(0, 1fr); }
}

/* Variations (t-shirts) et lots */
.resume-produit form.cart.variations_form { display: grid; }
.resume-produit .variations { width: 100%; margin-bottom: .4rem; }
.resume-produit .variations th, .resume-produit .variations td { padding: .4rem 0; vertical-align: middle; }
.resume-produit .variations th { width: 8rem; text-align: left; font-size: var(--c-0); font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--texte-doux); }
.resume-produit .variations select { padding: .55rem 2.2rem .55rem .9rem; border: 1px solid var(--pale); border-radius: var(--rayon); background: var(--champ); font: inherit; font-size: var(--c-1); color: var(--encre); }
.resume-produit .reset_variations { font-size: var(--c-0); color: var(--texte-doux); margin-left: .6rem; }
.resume-produit .woocommerce-variation-price .price { font-size: var(--c-5); margin-bottom: .6rem; }
.resume-produit .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .7rem; }
.resume-produit .single_variation_wrap { width: 100%; }
/* Variation Swatches : les tailles en pastilles sobres, à la place des grands cercles du plugin */
.resume-produit .variable-items-wrapper { display: flex !important; flex-wrap: wrap; gap: .5rem !important; margin: 0 !important; padding: 0 !important; list-style: none; }
.resume-produit .variable-items-wrapper .variable-item { width: auto !important; min-width: 2.7rem !important; height: 2.7rem !important; margin: 0 !important; padding: 0 .9rem !important; box-sizing: border-box; display: inline-flex !important; align-items: center; justify-content: center; border: 1px solid var(--pale) !important; border-radius: var(--rayon) !important; background: var(--blanc) !important; box-shadow: none !important; color: var(--encre); font: inherit; font-size: var(--c-1); font-weight: 600; letter-spacing: .5px; cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.resume-produit .variable-items-wrapper .variable-item .variable-item-contents, .resume-produit .variable-items-wrapper .variable-item .variable-item-span { display: block; width: auto !important; height: auto !important; line-height: 1 !important; color: inherit !important; font-size: inherit !important; }
.resume-produit .variable-items-wrapper .variable-item:hover, .resume-produit .variable-items-wrapper .variable-item:focus-visible { border-color: var(--bordeaux) !important; color: var(--bordeaux); outline: none; }
.resume-produit .variable-items-wrapper .variable-item.selected, .resume-produit .variable-items-wrapper .variable-item[aria-checked="true"] { border-color: var(--bordeaux) !important; background: var(--bordeaux) !important; color: var(--blanc) !important; }
.resume-produit .variable-items-wrapper .variable-item.disabled, .resume-produit .variable-items-wrapper .variable-item.wvs-disabled { opacity: .45; text-decoration: line-through; cursor: not-allowed; }
.resume-produit .variable-items-wrapper .variable-item.selected:hover { color: var(--blanc); }
.resume-produit .variable-items-wrapper .variable-item.color-variable-item { min-width: 2.2rem !important; width: 2.2rem !important; height: 2.2rem !important; padding: 0 !important; border-radius: 50% !important; }
.resume-produit .variable-items-wrapper .variable-item.color-variable-item .variable-item-span-color { width: 100% !important; height: 100% !important; border-radius: 50%; }
.resume-produit .variable-items-wrapper .variable-item.image-variable-item { min-width: 3rem !important; width: 3rem !important; height: 3rem !important; padding: 0 !important; overflow: hidden; }
.resume-produit .variable-items-wrapper .variable-item.image-variable-item img { width: 100% !important; height: 100% !important; object-fit: cover; }
.resume-produit .variations .reset_variations { display: inline-block; margin: .5rem 0 0; }
.resume-produit .variations td.woo-variation-items-wrapper { padding-top: .2rem; }

/* Contenu libre des pages (textes légaux, à propos) */
.texte-legal h4 { font-size: var(--c-3); margin: var(--e-3) 0 var(--e-1); }
.texte-legal img { max-width: 100%; height: auto; }
.texte-legal table { width: 100%; border-collapse: collapse; font-size: var(--c-1); }
.texte-legal td, .texte-legal th { padding: .6rem .8rem; border-bottom: 1px solid var(--filet); text-align: left; vertical-align: top; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sous-menu .nombre { color: var(--texte-doux); }

.page-texte--seule { grid-template-columns: minmax(0, 1fr); }
.page-texte--seule .texte-legal { max-width: 46rem; }
.added_to_cart { display: none !important; }
.single_add_to_cart_button { background: var(--bordeaux); color: var(--blanc); padding-inline: 2.2em; }
.single_add_to_cart_button:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.single_add_to_cart_button.disabled, .single_add_to_cart_button[disabled] { opacity: .5; cursor: not-allowed; }
.button.est-epuise { background: transparent; color: var(--texte-doux); box-shadow: inset 0 0 0 1px var(--pale); cursor: default; }
.caracteristique--libre { grid-column: 1 / -1; }
.caracteristique--libre dd { line-height: var(--il-texte); }
.tete-auteur .chapo p + p { margin-top: .6rem; }
.tete-index .chapo p + p { margin-top: .6rem; }
.page-compte .woocommerce-MyAccount-navigation { order: -1; }
.page-boutique.page-compte { display: block; }
.page-compte > .woocommerce { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--e-4) clamp(2rem, 5vw, 4.5rem); }
.page-compte > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
@media (max-width: 960px) { .page-compte > .woocommerce { grid-template-columns: minmax(0, 1fr); } }
.woocommerce-account .form-row .button, .woocommerce-account .woocommerce-form-login__submit, .woocommerce-account .woocommerce-form-register__submit { justify-self: start; }
.woocommerce-account .form-row .woocommerce-form-login__rememberme { display: inline-flex; }
.woocommerce-account .woocommerce-form-login__rememberme input { accent-color: var(--bordeaux); }
.woocommerce-account .woocommerce-Button, .woocommerce-account .woocommerce-address-fields .button, .woocommerce-account .woocommerce-EditAccountForm .button { background: var(--bordeaux); color: var(--blanc); }
.woocommerce-account .woocommerce-Button:hover { background: var(--bordeaux-fonce); }

/* Mon compte : suppression du compte */
.suppression-compte { display: grid; gap: var(--e-2); max-width: 40rem; color: var(--encre); line-height: var(--il-texte); }
.suppression-compte .surtitre { margin: .4rem 0 -.6rem; }
.suppression-compte ul { display: grid; gap: .55rem; padding-left: 1.5rem; list-style: none; }
.suppression-compte ul li { position: relative; }
.suppression-compte ul li::before { content: "▸"; position: absolute; left: -1.15rem; top: .05em; color: var(--bordeaux); font-size: .9em; }
.formulaire-suppression { margin-top: .4rem; }
.woocommerce-MyAccount-navigation a[href*="supprimer-compte"] { color: var(--texte-doux); }

/* Visionneuse de la fiche produit */
.ouvrir-visionneuse { position: relative; display: block; cursor: zoom-in; }
.loupe-visuel { position: absolute; z-index: 2; right: .8rem; bottom: .8rem; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--bordeaux); box-shadow: 0 2px 10px rgba(0, 0, 0, .18); opacity: 0; transition: opacity .2s; }
.loupe-visuel svg { width: 20px; height: 20px; }
.ouvrir-visionneuse:hover .loupe-visuel, .ouvrir-visionneuse:focus-visible .loupe-visuel { opacity: 1; }
@media (hover: none) { .loupe-visuel { opacity: .9; } }
.a-visionneuse { overflow: hidden; }
.visionneuse { position: fixed; inset: 0; z-index: 2147483000; display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) 4.5rem; align-items: center; background: rgba(30, 5, 0, .94); color: var(--blanc-casse); }
.visionneuse-cadre { grid-column: 2; margin: 0; display: grid; justify-items: center; gap: .9rem; max-height: 100vh; padding: 3.5rem 0 3.6rem; }
.visionneuse-cadre img { max-width: 100%; max-height: calc(100vh - 8.5rem); width: auto; height: auto; box-shadow: 0 30px 80px rgba(0, 0, 0, .55); transition: opacity .25s; }
.visionneuse.est-en-chargement img { opacity: .35; }
.visionneuse-cadre figcaption { font-size: var(--c-1); color: rgba(244, 240, 234, .8); text-align: center; padding-inline: 1rem; }
.visionneuse-fermer, .visionneuse-fleche { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border: 1px solid rgba(244, 240, 234, .35); border-radius: 50%; background: rgba(255, 255, 255, .06); color: var(--blanc-casse); cursor: pointer; transition: background .2s, border-color .2s; }
.visionneuse-fermer:hover, .visionneuse-fleche:hover { background: rgba(255, 255, 255, .16); border-color: var(--blanc-casse); }
.visionneuse-fermer svg, .visionneuse-fleche svg { width: 22px; height: 22px; }
.visionneuse-fermer { position: absolute; top: 1rem; right: 1rem; }
.visionneuse-prec { grid-column: 1; justify-self: center; }
.visionneuse-suiv { grid-column: 3; justify-self: center; }
.visionneuse--seule .visionneuse-fleche, .visionneuse--seule .visionneuse-compteur { display: none; }
.visionneuse-compteur { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); font-size: var(--c-0); letter-spacing: 1.5px; color: rgba(244, 240, 234, .7); font-variant-numeric: tabular-nums; }
@media (max-width: 720px) {
  .visionneuse { grid-template-columns: minmax(0, 1fr); }
  .visionneuse-cadre { grid-column: 1; padding: 3.5rem 1rem 3.2rem; }
  .visionneuse-cadre img { max-height: calc(100vh - 8rem); }
  .visionneuse-prec, .visionneuse-suiv { position: absolute; bottom: .7rem; grid-column: 1; }
  .visionneuse-prec { left: 1rem; }
  .visionneuse-suiv { right: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .visionneuse-cadre img, .loupe-visuel { transition: none; } }

/* Imagify en mode « balise picture » : l'enveloppe est transparente pour la mise en page */
.vignette picture, .diapo-visuel picture, .visuel-principal picture, .miniatures picture, .ligne-produit picture, .portrait picture { display: contents; }
/* Panier vide */
.panier-vide { display: grid; gap: var(--e-2); justify-items: start; max-width: 46rem; }
.panier-vide .chapo { font-family: var(--titre); font-size: var(--c-5); color: var(--noir); }
.panier-vide p { color: var(--encre); line-height: var(--il-texte); }
.panier-vide .retour { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .4rem; }
.page-boutique .selection--secours { padding-inline: 0; border-bottom: 0; }
.page-boutique .selection--secours .conteneur { padding-inline: 0; }
