:root {
  --g8-navy: #22314c;
  --g8-navy-deep: #1d2a42;
  --g8-navy-hover: #304568;
  --g8-navy-pressed: #172238;
  --g8-rose-soft: #fecdc0;
  --g8-rose-pale: #fee7e1;
  --g8-rose-hover: #f7bcae;
  --g8-foam: #eefbff;
  --g8-foam-soft: #f6fdff;
  --g8-white: #fff;
  --g8-text: #3c3c3c;
  --g8-muted: rgba(60, 60, 60, 0.68);
  --g8-border: rgba(34, 49, 76, 0.14);
  --g8-radius: 8px;
  --g8-max: 1180px;
  --g8-font-heading: "Nobel", "Avenir Next", "Futura", "Montserrat", system-ui, sans-serif;
  --g8-font-body: "Nobel Sans", "Avenir Next", system-ui, sans-serif;
  /*
   * v1.0.198 (mission corrective P1, partie E) -- tokens communs du
   * récapitulatif panier, PARTAGÉS par toutes les zones (Livraison,
   * Économies, coupon) au lieu de valeurs de padding/hauteur différentes
   * ligne par ligne (cause du défaut confirmé "aucun padding uniforme").
   * --g8-recap-rose-light : rose très clair pour la zone Économies,
   * nettement plus léger que --g8-rose-pale (fond actuel v1.0.197) -- même
   * teinte existante, simplement éclaircie (color-mix), jamais un nouveau
   * rose saturé inventé.
   */
  /* v1.0.202 (mission "harmoniser visuellement le récapitulatif") -- valeurs
   * rapprochées d'une grille d'espacement cohérente à base 4/8px (12/24px,
   * au lieu de 13/22px, jamais un jeu de valeurs arbitraires différentes par
   * bloc), sans changer la structure ni les paddings horizontaux internes
   * déjà réglés par --g8-recap-zone-px-desktop ci-dessous. */
  --g8-recap-row-py: 12px;
  --g8-recap-zone-gap-top: 24px;
  --g8-recap-min-row-height: 44px;
  /* v1.0.202 (mission "harmoniser visuellement le récapitulatif", partie 4)
   * -- éclairci davantage (rose-pale #fee7e1 mélangé à ~25% vers le blanc,
   * au lieu de ~55% en v1.0.198) : la zone Économies doit se lire comme une
   * récompense discrète, jamais une alerte. Valeur calculée une fois --
   * jamais color-mix() ici : les propriétés personnalisées CSS ne valident
   * pas leur syntaxe à la définition, un repli par double déclaration ne
   * fonctionnerait donc pas de façon fiable sur les navigateurs anciens. */
  --g8-recap-rose-light: #fef8f7;

  /*
   * v1.0.199 (mission UI ciblée "zones colorées") -- système visuel COMMUN
   * aux zones du récapitulatif (Livraison / Code promo / Réductions
   * appliquées), jamais des valeurs différentes ligne par ligne.
   * --g8-recap-zone-radius : réutilise le jeton --g8-radius déjà existant,
   * jamais un nouveau rayon inventé. --g8-recap-zone-gap : espace AVANT le
   * titre d'une nouvelle zone, mesuré et raisonnable (remplace l'ancien
   * 22px/2px fortement asymétrique qui décentrait visuellement le titre
   * dans sa propre ligne).
   *
   * v1.0.203 (mission "finalisation UI/UX du récapitulatif", partie 7,
   * supersède v1.0.199) -- BUG CIBLÉ "le bloc des réductions commence plus
   * à droite que le reste" : ce jeton ajoutait un padding horizontal
   * INTERNE aux seules lignes Code promo/Livraison/Réductions, EN PLUS du
   * padding de 24px du conteneur .cart_totals -- jamais partagé par "Total
   * produits"/"Total" (aucun padding de ligne), d'où le décalage. Réduit à
   * une valeur modeste (8px) et appliqué désormais à la base commune
   * `.cart_totals .shop_table th/td` (cart-checkout.css) : TOUTES les
   * lignes -- Produits, Total produits, Code promo, Livraison, Réductions
   * appliquées -- partagent désormais exactement le même padding gauche,
   * une seule grille d'alignement (mission partie 7). Cette valeur reste
   * aussi la respiration interne du fond teinté "Réductions appliquées"
   * (mission partie 11), donc jamais ramenée à 0 (le texte toucherait le
   * bord de la teinte).
   */
  --g8-recap-zone-px-desktop: 8px;
  --g8-recap-zone-radius: var(--g8-radius, 8px);
  --g8-recap-zone-gap: 24px;
  /* v1.0.202 -- supersède v1.0.200/v1.0.201 : la mission "harmoniser
     visuellement le récapitulatif" définit un système à 5 niveaux clairs
     (titre principal / titres de section / labels principaux / infos
     secondaires / montants standards), remplaçant les jetons de graisse
     isolés précédents. Les labels principaux (noms produits, "Total
     produits", "Code promo", "Réduction sur les packs", "Livraison
     offerte", "Total économisé") passent à 600 (Niveau 3 de la mission),
     jamais 400 (trop léger, ne se distinguait plus des infos secondaires)
     ni 700 (réservé au Total final et aux titres de section). */
  --g8-recap-line-weight: 600;
  --g8-recap-title-weight: 700;
  --g8-recap-separator-color: var(--g8-border, rgba(34, 49, 76, 0.14));

  /*
   * v1.0.202 -- système typographique à 5 niveaux du récapitulatif (mission
   * "harmoniser visuellement le récapitulatif"). Un seul point de vérité
   * par niveau, réutilisé partout dans le récapitulatif -- jamais une
   * valeur ad hoc par ligne.
   *  Niveau 1 : titre principal ("Récapitulatif") -- taille déjà correcte
   *   (1.65rem ≈ 26px, .cart_totals h2 ci-dessous), seule la graisse change.
   *  Niveau 2 : titres de section ("Livraison", "Économies réalisées").
   *  Niveau 3 : labels principaux (noms produits, "Total produits", "Code
   *   promo", "Réduction sur les packs", "Livraison offerte", "Total
   *   économisé") -- réutilise --g8-recap-line-weight ci-dessus.
   *  Niveau 4 : infos secondaires (description produit, prix barré,
   *   transporteur, TVA, liens type "Enlever").
   *  Niveau 5 : montants standards -- même taille que le Niveau 3, jamais
   *   plus gras que son label.
   */
  --g8-recap-title1-size: 1.65rem;
  --g8-recap-title1-weight: 700;
  --g8-recap-title2-size: .875rem;
  --g8-recap-title2-weight: 700;
  --g8-recap-label-size: .8125rem;
  --g8-recap-label-weight: var(--g8-recap-line-weight, 600);
  --g8-recap-secondary-size: .72rem;
  --g8-recap-secondary-weight: 400;
  --g8-recap-secondary-color: var(--g8-muted, rgba(60, 60, 60, 0.68));
  --g8-recap-amount-size: .8125rem;
  --g8-recap-amount-weight: 600;
  /* Total final -- seul vrai point focal financier (mission partie 2). */
  --g8-recap-total-label-size: .95rem;
  --g8-recap-total-label-weight: 700;
  --g8-recap-total-amount-size: 1.5rem;
  --g8-recap-total-amount-weight: 700;
  /* Total économisé -- point focal secondaire, valorisé mais toujours
     nettement sous le Total final (mission partie 3). */
  --g8-recap-saved-amount-size: 1.2rem;
}

body.woocommerce-cart,
body.woocommerce-checkout {
  margin: 0;
  color: var(--g8-text);
  background: var(--g8-white);
  font-family: var(--g8-font-body);
  font-size: 16px;
  line-height: 1.55;
}

body.woocommerce-cart *,
body.woocommerce-checkout * { box-sizing: border-box; }

body.woocommerce-cart img,
body.woocommerce-checkout img { display: block; max-width: 100%; height: auto; }
body.woocommerce-cart a,
body.woocommerce-checkout a { color: inherit; }
body.woocommerce-cart button,
body.woocommerce-cart input,
body.woocommerce-cart select,
body.woocommerce-checkout button,
body.woocommerce-checkout input,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea { font: inherit; }

body.woocommerce-cart button,
body.woocommerce-cart input[type="button"],
body.woocommerce-cart input[type="submit"],
body.woocommerce-cart a.button,
body.woocommerce-cart a.checkout-button,
body.woocommerce-cart a.wc-forward,
body.woocommerce-cart [role="button"],
body.woocommerce-checkout button,
body.woocommerce-checkout input[type="button"],
body.woocommerce-checkout input[type="submit"],
body.woocommerce-checkout a.button,
body.woocommerce-checkout a.checkout-button,
body.woocommerce-checkout a.wc-forward,
body.woocommerce-checkout [role="button"] {
  font-family: var(--g8-font-body) !important;
  font-weight: 500 !important;
  font-synthesis: none;
}

body.woocommerce-cart button :is(strong,b),
body.woocommerce-cart a.button :is(strong,b),
body.woocommerce-checkout button :is(strong,b),
body.woocommerce-checkout a.button :is(strong,b) { font-weight: inherit !important; }

body.woocommerce-cart :focus-visible,
body.woocommerce-checkout :focus-visible { outline: 3px solid var(--g8-navy); outline-offset: 3px; }

.g8-container { width: min(100% - 32px, var(--g8-max)); margin-inline: auto; }
.g8-kicker { margin: 0; color: #c87870; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.g8-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.g8-checkout-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  isolation: isolate;
  background: var(--g8-navy);
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 8px 24px rgba(17,31,55,.12);
}
/* Real, measured header footprint (see g8SyncCheckoutHeaderOffset in
   cart-checkout.js) — never a guessed constant, so it stays correct across
   breakpoints, the admin bar and any future header content change. */
:root { --g8-checkout-header-overlap: 0px; --g8-thankyou-top-gap: 24px; }
.g8-checkout-steps { margin-top: var(--g8-checkout-header-overlap, 0px); }
.admin-bar .g8-checkout-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .g8-checkout-header { top: 46px; }
}
.g8-checkout-header__inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.g8-checkout-logo img { width: 150px; }
.g8-checkout-header__actions { display: flex; align-items: center; gap: 12px; }
.g8-checkout-header p { display: flex; gap: 8px; align-items: center; margin: 0; color: rgba(255,255,255,.86); font-size: .82rem; }
.g8-checkout-security svg { flex: 0 0 auto; color: var(--g8-rose-soft); }
.g8-checkout-header .g8-language-switcher { position: relative; z-index: 30; color: #fff; }
.g8-checkout-header .g8-language-switcher summary {
  display: inline-flex;
  min-height: 40px;
  padding: 7px 10px;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.06);
  cursor: pointer;
  font-size: .8rem;
  font-weight: 600;
  line-height: 1;
  list-style: none;
}
.g8-checkout-header .g8-language-switcher summary::-webkit-details-marker { display: none; }
.g8-checkout-header .g8-language-switcher summary:hover,
.g8-checkout-header .g8-language-switcher summary:focus-visible,
.g8-checkout-header .g8-language-switcher[open] summary {
  border-color: rgba(255,205,192,.72);
  color: #fff;
  background: rgba(255,205,192,.12);
}
.g8-checkout-header .g8-language-switcher summary:focus-visible { outline: 2px solid var(--g8-rose-soft); outline-offset: 3px; }
.g8-checkout-header .g8-language-switcher summary svg { flex: 0 0 auto; transition: transform .18s ease; }
.g8-checkout-header .g8-language-switcher[open] summary svg { transform: rotate(180deg); }
.g8-checkout-header .g8-language-switcher__globe { font-size: 1rem; line-height: 1; }
.g8-checkout-header .g8-language-switcher__menu {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 31;
  display: grid;
  min-width: 216px;
  margin-top: 8px;
  padding: 12px;
  gap: 6px;
  border: 1px solid var(--g8-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 46px -24px rgba(10,24,48,.65);
}
.g8-checkout-header .g8-language-switcher:not([open]) > .g8-language-switcher__menu {
  display: none !important;
}
.g8-checkout-header .g8-language-switcher__menu a { display: flex; min-height: 48px; padding: 14px 20px; align-items: center; justify-content: space-between; gap: 18px; border-radius: 9px; color: var(--g8-navy); font-size: .86rem; font-weight: 500; text-decoration: none; }
.g8-checkout-header .g8-language-switcher__menu a:hover,
.g8-checkout-header .g8-language-switcher__menu a:focus-visible,
.g8-checkout-header .g8-language-switcher__menu a[aria-current="true"] { color: var(--g8-navy); background: var(--g8-rose-pale); }
.g8-checkout-header .g8-language-switcher__menu small { color: var(--g8-muted); font-size: .68rem; font-weight: 650; letter-spacing: .08em; }

.g8-checkout-steps { background: var(--g8-white); border-bottom: 1px solid var(--g8-border); }
.g8-checkout-steps ol { display: grid; grid-template-columns: repeat(4,1fr); margin: 0 auto; padding-top: 15px; padding-bottom: 15px; list-style: none; }
.g8-checkout-steps li { position: relative; color: var(--g8-muted); font-size: .68rem; text-align: center; }
.g8-checkout-steps li:not(:last-child)::after { position: absolute; top: 15px; right: calc(-50% + 20px); left: calc(50% + 20px); height: 1px; background: var(--g8-border); content: ""; }
.g8-checkout-steps .g8-checkout-step-link,
.g8-checkout-steps .g8-checkout-step-link:disabled { -webkit-appearance: none !important; appearance: none !important; position: relative !important; z-index: 1; display: grid !important; grid-template-columns: 1fr; width: 100% !important; min-width: 0; margin: 0 !important; padding: 0 !important; justify-items: center; align-items: center; gap: 6px; border: 0 !important; border-radius: 0 !important; color: inherit !important; background: transparent !important; box-shadow: none !important; font: inherit !important; text-align: center; text-transform: none; letter-spacing: normal; opacity: 1 !important; cursor: default; }
.g8-checkout-steps .g8-checkout-step-link > span { box-sizing: border-box; display: grid !important; place-items: center; flex: 0 0 30px; width: 30px !important; min-width: 30px; height: 30px !important; min-height: 30px; margin: 0 !important; padding: 0 !important; border: 1px solid var(--g8-border) !important; border-radius: 50% !important; background: white !important; font-weight: 700; line-height: 1; transition: transform .18s ease, box-shadow .18s ease; }
.g8-checkout-steps .g8-checkout-step-link > strong { display: block; margin: 0; line-height: 1.2; }
.g8-checkout-steps li.is-active,
.g8-checkout-steps li.is-done { color: var(--g8-navy); }
.g8-checkout-steps li.is-active .g8-checkout-step-link > span { color: var(--g8-navy); background: var(--g8-rose-soft) !important; border-color: var(--g8-rose-soft) !important; }
.g8-checkout-steps li.is-done .g8-checkout-step-link { cursor: pointer; }
.g8-checkout-steps li.is-done .g8-checkout-step-link > span { color: white; background: var(--g8-navy) !important; border-color: var(--g8-navy) !important; }
.g8-checkout-steps li.is-done .g8-checkout-step-link:hover > span { transform: translateY(-1px); box-shadow: 0 5px 12px rgba(31,52,82,.2); }
.g8-checkout-steps .g8-checkout-step-link:focus-visible { border-radius: 8px; outline: 2px solid var(--g8-navy); outline-offset: 4px; }
.g8-checkout-steps li.is-done:not(:last-child)::after { background: var(--g8-navy); }

.g8-cart-main { min-height: calc(100vh - 190px); padding: 46px 0 72px; background: linear-gradient(145deg,var(--g8-foam-soft),#fff 48%,var(--g8-rose-pale)); }
.g8-cart-heading { display: grid; gap: 10px; margin-bottom: 30px; }
.g8-cart-heading h1 { max-width: 14ch; margin: 0; color: var(--g8-navy); font-family: var(--g8-font-heading); font-size: clamp(2rem,5.8vw,3.1rem); font-weight: 560; line-height: 1.08; }
.g8-cart-heading h1:focus { outline: none; }
.g8-cart-heading > p:last-child { margin: 0; color: var(--g8-muted); }
.g8-wc-surface .woocommerce { color: var(--g8-text); }

.g8-wc-surface .woocommerce-message,
.g8-wc-surface .woocommerce-info,
.g8-wc-surface .woocommerce-error { margin: 0 0 22px; border-radius: var(--g8-radius); color: var(--g8-navy) !important; background: #fff; }
.g8-wc-surface .woocommerce-message a,
.g8-wc-surface .woocommerce-info a,
.g8-wc-surface .woocommerce-error a { color: var(--g8-navy) !important; font-weight: 700; }
.g8-wc-surface .woocommerce-error { border-top-color: #a94f5b; }
.g8-wc-surface .woocommerce-message {
  box-sizing: border-box;
  overflow: hidden;
  border: 2px solid var(--g8-rose-soft) !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-clip: padding-box;
}
.g8-wc-surface .woocommerce-form-login-toggle .woocommerce-info,
.g8-wc-surface .woocommerce-form-coupon-toggle .woocommerce-info { color: var(--g8-navy) !important; }
.g8-wc-surface .woocommerce-form-login-toggle .woocommerce-info a,
.g8-wc-surface .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--g8-navy) !important; font-weight: 700; text-decoration: underline; }
.g8-wc-checkout-page .woocommerce-form-login-toggle,
.g8-wc-checkout-page .woocommerce-form-coupon-toggle { display: inline-block; width: auto; margin: 0 8px 16px 0; vertical-align: top; }
.g8-wc-checkout-page .woocommerce-form-coupon-toggle,
.g8-wc-checkout-page form.checkout_coupon { display: none !important; }
.g8-wc-checkout-page .woocommerce-form-login-toggle .woocommerce-info,
.g8-wc-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info { margin: 0 !important; padding: 10px 13px !important; border: 1px solid var(--g8-border) !important; border-left: 3px solid var(--g8-rose-soft) !important; border-radius: var(--g8-radius); background: rgba(255,255,255,.9); font-size: .78rem; line-height: 1.3; box-shadow: none; }
.g8-wc-checkout-page .woocommerce-form-login-toggle .woocommerce-info::before,
.g8-wc-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }

.g8-empty-cart { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 18px 20px; align-items: center; padding: clamp(24px,5vw,42px); border: 1px solid rgba(34,49,76,.1); border-top: 3px solid var(--g8-rose-soft); border-radius: var(--g8-radius); background: rgba(255,255,255,.96); box-shadow: 0 24px 60px -42px rgba(34,49,76,.55); }
.g8-empty-cart__icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--g8-foam); font-size: 1.65rem; }
.g8-empty-cart__copy h2 { margin: 0 0 5px; color: var(--g8-navy); font-family: var(--g8-font-heading); font-size: clamp(1.35rem,3vw,1.8rem); font-weight: 560; line-height: 1.15; }
.g8-empty-cart__copy p { max-width: 690px; margin: 0; color: var(--g8-muted); }
/* v1.0.204 (P0) -- BUG CIBLÉ "panier vide = page blanche" : ajout du lien
 * boutique professionnelle, sous le CTA principal (mission P0). */
.g8-empty-cart__actions { display: grid; grid-column: 2; justify-items: start; gap: 10px; }
.g8-empty-cart__cta { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 20px; border-radius: var(--g8-radius); color: var(--g8-navy) !important; background: var(--g8-rose-soft); font-weight: 500; text-decoration: none; }
.g8-empty-cart__cta:hover { background: var(--g8-rose-hover); }
.g8-empty-cart__pro-link { color: var(--g8-muted); font-size: .82rem; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.g8-empty-cart__pro-link:hover { color: var(--g8-navy); }
.g8-wc-cart-page .return-to-shop { display: none; }

.g8-wc-surface table.shop_table { margin: 0; border: 0; border-collapse: collapse; border-radius: 0; }
.g8-wc-surface table.shop_table th { color: var(--g8-navy); }
.g8-wc-surface table.shop_table td,
.g8-wc-surface table.shop_table th { padding: 16px 10px; border-color: var(--g8-border); }
.g8-wc-surface .product-thumbnail img { width: 92px; border-radius: var(--g8-radius); background: var(--g8-foam); }
.g8-wc-surface .product-name a { color: var(--g8-navy); font-weight: 700; text-decoration: none; }
.g8-wc-surface a.remove { color: #8c4350 !important; }
.g8-wc-surface .quantity .qty { box-sizing: border-box; width: 72px; min-height: 42px; padding: 0; border: 1px solid var(--g8-border); border-radius: var(--g8-radius); line-height: 40px; text-align: center; -moz-appearance: textfield; }
.g8-wc-surface .quantity .qty::-webkit-inner-spin-button,
.g8-wc-surface .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.g8-wc-surface input.input-text,
.g8-wc-surface input[type="email"],
.g8-wc-surface input[type="tel"],
.g8-wc-surface select,
.g8-wc-surface textarea,
.g8-wc-surface .select2-selection { width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid var(--g8-border); border-radius: var(--g8-radius); color: var(--g8-text); background: white; }
.g8-wc-surface select:not([multiple]) {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  padding: 0 56px 0 20px !important;
  line-height: 1.35;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2322314c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: calc(100% - 20px) 50% !important;
  background-size: 14px 8px;
}
.g8-wc-surface textarea { min-height: 110px; }
.g8-wc-surface ::placeholder { color: #8b9098; opacity: 1; }
.g8-wc-surface .select2-selection--single { position: relative; display: flex; align-items: center; padding: 0 56px 0 20px; }
.g8-wc-surface .select2-selection__rendered { width: 100%; padding: 0 !important; line-height: 1.35 !important; }
.g8-wc-surface .select2-selection__arrow { top: 50% !important; right: 16px !important; width: 24px !important; height: 24px !important; transform: translateY(-50%); }

.g8-wc-surface .button,
.g8-wc-surface button.button,
.g8-wc-surface a.button,
.g8-wc-surface #place_order,
.g8-stage-next { display: inline-flex; box-sizing: border-box; min-height: 48px; align-items: center; justify-content: center; padding: 12px 20px; border: 0; border-radius: var(--g8-radius); color: var(--g8-navy); background: var(--g8-rose-soft); font-weight: 500; line-height: 1.15; text-align: center; cursor: pointer; }
.g8-wc-surface .button:hover,
.g8-stage-next:hover { background: var(--g8-rose-hover); }
.g8-wc-surface .checkout-button,
.g8-wc-surface #place_order { color: white; background: var(--g8-navy); }
.g8-theme-ui .woocommerce #place_order { width: 100%; color: var(--g8-navy) !important; background: var(--g8-rose-soft) !important; }
.g8-theme-ui .woocommerce #place_order:hover,
.g8-theme-ui .woocommerce #place_order:focus-visible { background: var(--g8-rose-hover) !important; }

/* Checkout, cart, address and coupon inputs share the same rose focus state. */
.g8-wc-surface input:not([type]),
.g8-wc-surface input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="search"], [type="password"], [type="number"], [type="date"], [type="time"], [type="month"], [type="week"], [type="datetime-local"]),
.g8-wc-surface textarea,
.g8-wc-surface select,
.g8-wc-surface .select2-selection {
  transition: border-color .18s ease, box-shadow .18s ease, outline-color .18s ease;
}

.g8-wc-surface input:not([type]):focus,
.g8-wc-surface input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="search"], [type="password"], [type="number"], [type="date"], [type="time"], [type="month"], [type="week"], [type="datetime-local"]):focus,
.g8-wc-surface textarea:focus,
.g8-wc-surface select:focus,
.g8-wc-surface .select2-container--focus .select2-selection,
.g8-wc-surface .select2-container--open .select2-selection {
  border-color: #c87870 !important;
  outline: 3px solid var(--g8-rose-pale) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 1px var(--g8-rose-soft) !important;
}

.g8-wc-cart-page .woocommerce-cart-form,
.g8-wc-cart-page .cart_totals,
.g8-checkout-stage,
.g8-wc-order-summary-column,
.g8-wc-thankyou-page .woocommerce-order > * { border: 1px solid rgba(34,49,76,.1); border-radius: var(--g8-radius); background: rgba(255,255,255,.96); box-shadow: 0 24px 60px -42px rgba(34,49,76,.55); }
.g8-wc-cart-page .woocommerce-cart-form { padding: 10px 18px 18px; }
.g8-wc-cart-page .cart-collaterals .cart_totals { box-sizing: border-box; width: 100%; min-width: 0; padding: 24px; overflow: hidden; float: none; }
/* v1.0.202 -- Niveau 1 (titre principal) : graisse 700, seul le poids
 * change (taille déjà dans la fourchette 26-28px demandée). */
.g8-wc-cart-page .cart_totals h2 { margin: 0 0 8px; color: var(--g8-navy); font-family: var(--g8-font-heading); font-size: var(--g8-recap-title1-size, 1.65rem); font-weight: var(--g8-recap-title1-weight, 700); line-height: 1.2; }
.g8-summary-kicker { margin-bottom: 8px; }
.g8-wc-cart-page .wc-proceed-to-checkout { padding-bottom: 0; }
.g8-wc-cart-page .checkout-button { font-size: 1rem !important; }
.g8-wc-cart-page .coupon { display: flex; gap: 8px; }
.g8-wc-cart-page .coupon #coupon_code { width: min(210px,100%); }
.g8-cart-tip { display: flex; width: 100%; box-sizing: border-box; gap: 13px; margin-top: 16px; padding: 16px 18px; border: 1px solid rgba(34,49,76,.08); border-radius: var(--g8-radius); background: rgba(238,251,255,.8); font-size: .85rem; }
.g8-cart-tip span { color: #77a8bb; font-size: 1.2rem; }
.g8-cart-tip p { margin: 0; transition: opacity .22s ease, transform .22s ease; }
.g8-cart-tip p.is-changing { opacity: 0; transform: translateY(3px); }

/* Validated cart composition: native WooCommerce fields, card presentation. */
.g8-wc-cart-page .woocommerce-cart-form { padding: 0; border: 0; background: transparent; box-shadow: none; }
.g8-wc-cart-page .woocommerce-cart-form table,
.g8-wc-cart-page .woocommerce-cart-form tbody { display: block; width: 100%; }
.g8-wc-cart-page .woocommerce-cart-form thead { display: none; }
.g8-wc-cart-page .woocommerce-cart-form tbody { display: grid; gap: 12px; }
.g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product { display: grid; grid-template-columns: 112px minmax(0,1fr) auto; grid-template-rows: auto auto auto; gap: 7px 18px; align-items: center; padding: 16px; border: 1px solid rgba(34,49,76,.1); border-radius: var(--g8-radius); background: rgba(255,255,255,.96); box-shadow: 0 24px 60px -46px rgba(34,49,76,.55); }
.g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product > td { display: block !important; width: auto !important; padding: 0 !important; border: 0 !important; text-align: left !important; }
.g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product > td::before { display: none !important; }
.g8-wc-cart-page .g8-cart-product .product-thumbnail { grid-column: 1; grid-row: 1 / 4; }
.g8-wc-cart-page .g8-cart-product .product-thumbnail img { width: 112px; height: 112px; border-radius: var(--g8-radius); object-fit: cover; }
.g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product > td.product-name { display: grid !important; grid-column: 2; grid-row: 1; align-content: center; gap: 5px; }
.g8-wc-cart-page .g8-cart-product .product-name > a { font-family: var(--g8-font-heading); font-size: 1.12rem; line-height: 1.18; }
.g8-cart-item__kicker { display: block; color: #c87870; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.g8-cart-item__description { display: -webkit-box; max-width: 42ch; overflow: hidden; color: var(--g8-muted); font-size: .78rem; line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product > td.product-price { display: none !important; }
/*
 * v1.0.193 §A -- correctif ciblé : le sélecteur de quantité et le prix
 * partagent la même colonne de grille (grid-column: 3), dont la largeur
 * réelle est dictée par le plus large des deux contenus empilés (souvent le
 * prix, ex. "182,70 €", plus large que le contrôle -/qté/+ fixe à 116px).
 * Sans `justify-self: end` explicite sur le sélecteur, celui-ci retombait
 * par défaut sur le bord GAUCHE de cette colonne élargie dès que le prix
 * était plus large que lui -- un désalignement visible dès que le titre (et
 * donc la largeur effective de la ligne) variait d'un produit à l'autre.
 * Toujours aligné à droite désormais, sur le même axe vertical que le prix,
 * quelle que soit la longueur du titre -- aucun changement de logique JS ni
 * de recalcul WooCommerce.
 */
.g8-wc-cart-page .g8-cart-product .product-quantity { grid-column: 3; grid-row: 1; align-self: end; justify-self: end; }
.g8-wc-cart-page .g8-cart-product .product-subtotal { grid-column: 3; grid-row: 2; justify-self: end; color: var(--g8-navy); font-size: 1.08rem; font-weight: 700; text-align: right; }
.g8-wc-cart-page .g8-cart-product .product-remove { grid-column: 2; grid-row: 2; align-self: start; }
.g8-wc-cart-page .g8-cart-product a.remove { display: inline-flex; width: auto; height: auto; align-items: center; padding: 0; color: var(--g8-muted) !important; background: transparent !important; font-size: 0; line-height: 1; text-decoration: underline; }
.g8-wc-cart-page .g8-cart-product a.remove::after { content: "Retirer"; font-size: .75rem; }
.g8-lang-en .g8-wc-cart-page .g8-cart-product a.remove::after { content: "Remove"; }
.g8-lang-es .g8-wc-cart-page .g8-cart-product a.remove::after { content: "Quitar"; }
.g8-lang-it .g8-wc-cart-page .g8-cart-product a.remove::after { content: "Rimuovi"; }
.g8-lang-pt .g8-wc-cart-page .g8-cart-product a.remove::after { content: "Retirar"; }
.g8-wc-cart-page .g8-cart-product .qib-container { display: grid !important; width: 116px; height: 40px; grid-template-columns: 36px 42px 36px; margin: 0 !important; overflow: hidden; border: 1px solid var(--g8-border); border-radius: var(--g8-radius); background: #fff; }
.g8-wc-cart-page .g8-cart-product .qib-button { display: grid !important; width: 36px !important; min-width: 36px !important; height: 38px !important; min-height: 38px !important; margin: 0 !important; padding: 0 !important; place-items: center; border: 0 !important; border-radius: 0 !important; color: var(--g8-navy) !important; background: var(--g8-foam-soft) !important; font-size: 1.05rem !important; font-weight: 700; line-height: 38px !important; text-align: center; cursor: pointer; }
.g8-wc-cart-page .g8-cart-product .qib-button:hover { background: var(--g8-rose-pale) !important; }
.g8-wc-cart-page .g8-cart-product .qib-button:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--g8-navy) !important; outline-offset: -2px; }
.g8-wc-cart-page .g8-cart-product .quantity { display: block !important; width: 42px !important; min-width: 42px !important; height: 38px !important; min-height: 38px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-right: 1px solid var(--g8-border) !important; border-left: 1px solid var(--g8-border) !important; border-radius: 0 !important; background: #fff; }
.g8-wc-cart-page .g8-cart-product .quantity .qty { display: block !important; box-sizing: border-box !important; width: 40px !important; min-width: 40px !important; height: 38px !important; min-height: 38px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; color: var(--g8-navy); background: #fff; font-size: .95rem !important; font-weight: 700; line-height: 38px !important; text-align: center; -moz-appearance: textfield; }
.g8-wc-cart-page .g8-cart-product .quantity .qty::-webkit-inner-spin-button,
.g8-wc-cart-page .g8-cart-product .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.g8-wc-cart-page .g8-cart-product .quantity .qty:focus-visible { outline: 2px solid var(--g8-navy) !important; outline-offset: -2px; }
.g8-wc-cart-page .woocommerce-cart-form tr:not(.cart_item) { display: block; }
.g8-wc-cart-page .woocommerce-cart-form td.actions { display: flex; justify-content: flex-end; padding: 0 !important; border: 0; }
.g8-wc-cart-page .woocommerce-cart-form td.actions > .button[disabled] { display: none; }
.g8-wc-cart-page .woocommerce-cart-form td.actions > .button:not([disabled]) { min-height: 48px; padding: 12px 16px; font-family: var(--g8-font-body) !important; font-size: 1rem !important; font-weight: 500 !important; line-height: 1.15; }

/*
 * v1.0.197 (mission "récap + panier mixte B2C/Pro", partie A) -- quatre
 * zones visuelles du récapitulatif, distinguées par un fond très léger
 * (jetons --g8-* déjà existants, jamais une nouvelle nuance) plutôt que par
 * des bordures répétées : "🛍️ Votre commande" (blanc, ci-dessous),
 * "🚚 Livraison" (bleu ciel très léger, --g8-foam-soft), "✨ Économies
 * réalisées" (rose très léger, --g8-rose-pale, voir advantages.css), "Total"
 * (blanc, texte bleu marine dominant, déjà en place). Aucune carte imbriquée
 * -- le fond s'applique directement aux lignes/blocs de chaque zone.
 */
.g8-wc-cart-summary-column .cart_totals,
.g8-cart-summary-products,
.g8-advantages-heading--order {
  background: var(--g8-white, #fff);
}
.g8-advantages-heading--order {
  display: flex;
  align-items: center;
}

.g8-cart-summary-products { display: grid; margin-top: 16px; border-top: 1px solid var(--g8-border); }
/* v1.0.203 (mission partie 7) -- même padding horizontal que le reste du
 * récapitulatif (Total produits/Code promo/Livraison/Réductions), une
 * seule grille d'alignement gauche pour "Produits" aussi. */
.g8-cart-summary-product { display: grid; grid-template-columns: 52px minmax(0,1fr) auto; gap: 11px; align-items: center; padding: var(--g8-recap-row-py, 12px) var(--g8-recap-zone-px-desktop, 8px); border-bottom: 1px solid var(--g8-recap-separator-color, var(--g8-border)); }
.g8-cart-summary-product img { width: 52px; height: 52px; border-radius: 6px; background: var(--g8-foam); object-fit: cover; }
.g8-cart-summary-product > div { display: grid; gap: 2px; }
/* v1.0.202 -- Niveau 3 (labels principaux) pour le nom du produit et son
 * prix, Niveau 4 (infos secondaires, gris) pour la description et l'ancien
 * prix barré -- mission "harmoniser visuellement le récapitulatif", partie
 * 6. Remplace la hiérarchie ad hoc v1.0.197 (jetons dédiés désormais
 * partagés avec le reste du récapitulatif, jamais une échelle isolée). */
.g8-cart-summary-product strong { color: var(--g8-navy); font-size: var(--g8-recap-label-size, .8125rem); font-weight: var(--g8-recap-label-weight, 600); line-height: 1.3; }
.g8-cart-summary-product small { color: var(--g8-recap-secondary-color, var(--g8-muted)); font-size: var(--g8-recap-secondary-size, .72rem); font-weight: var(--g8-recap-secondary-weight, 400); line-height: 1.4; }
.g8-cart-summary-product > b { color: var(--g8-navy); font-size: var(--g8-recap-amount-size, .8125rem); font-weight: var(--g8-recap-amount-weight, 600); white-space: nowrap; font-variant-numeric: tabular-nums; }
/* v1.0.194 -- prix catalogue barré, uniquement sur une ligne réellement remisée (voir buildCartSummaryProducts(), assets/js/cart-checkout.js). */
.g8-cart-summary-product__struck-price { margin-right: 4px; color: var(--g8-recap-secondary-color, var(--g8-muted)); font-size: var(--g8-recap-secondary-size, .72rem); font-weight: var(--g8-recap-secondary-weight, 400); text-decoration: line-through; }
/*
 * v1.0.192 §10 -- l'ancien en-tête "Un code promo ?" (::before, par langue)
 * est retiré : son rôle est désormais tenu par le <summary> de l'accordéon
 * qui enveloppe cette zone (.g8-cart-coupon-accordion ci-dessous), jamais
 * les deux à la fois.
 */
.g8-wc-cart-page .g8-cart-summary-coupon { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; padding: 12px 0 2px; }
.g8-wc-cart-page .g8-cart-summary-coupon #coupon_code { width: 100%; min-width: 0; min-height: 42px; border-radius: 6px; }
/* v1.0.181 -- CTA secondaire "Appliquer le code promo" (panier) : fond bleu ciel /
   texte bleu marine, meme paire de tokens (--g8-foam / --g8-navy) que
   .g8-pack-picker__links a:nth-child(1) sur la boutique -- aucune nouvelle nuance. */
.g8-wc-cart-page .g8-cart-summary-coupon .button { min-height: 42px; padding: 8px 13px; border: 1px solid var(--g8-navy); border-radius: 6px; color: var(--g8-navy); background: var(--g8-foam); font-size: .76rem; white-space: nowrap; box-shadow: 0 10px 20px -15px rgba(34,49,76,.35); transition: background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.g8-wc-cart-page .g8-cart-summary-coupon .button:hover { color: var(--g8-navy) !important; background: var(--g8-foam) !important; border-color: var(--g8-navy-hover) !important; box-shadow: 0 14px 24px -15px rgba(34,49,76,.45); transform: translateY(-1px); }
.g8-wc-cart-page .g8-cart-summary-coupon .button:focus-visible { color: var(--g8-navy) !important; background: var(--g8-foam) !important; outline: 3px solid var(--g8-navy); outline-offset: 2px; }
.g8-wc-cart-page .g8-cart-summary-coupon .button:active { color: var(--g8-navy) !important; background: var(--g8-foam) !important; border-color: var(--g8-navy-pressed) !important; box-shadow: 0 5px 12px -10px rgba(34,49,76,.4); transform: translateY(1px); }
.g8-wc-cart-page .g8-cart-summary-coupon .button:disabled { opacity: .55; box-shadow: none; cursor: not-allowed; transform: none; }
.g8-wc-cart-page .cart_totals > table { width: 100%; margin-top: 2px; table-layout: fixed; }
.g8-wc-cart-page .cart_totals > table th { width: 38%; }
.g8-wc-cart-page .cart_totals > table td { width: 62%; min-width: 0; overflow-wrap: anywhere; }
/* v1.0.202 -- Niveau 3/5 (labels principaux / montants standards) : même
 * taille pour le label et son montant (mission partie 1, "les montants ne
 * doivent pas systématiquement être plus gras que leurs labels"), chiffres
 * tabulaires pour un alignement propre en colonne (mission partie 8). */
/* v1.0.203 (mission parties 7/8) -- padding horizontal désormais porté ICI,
 * à la base commune de TOUTES les lignes du récapitulatif (jamais une
 * valeur ajoutée séparément par zone, cause du décalage "réductions plus à
 * droite que le reste" -- voir --g8-recap-zone-px-desktop, :root). Hauteur
 * minimale également partagée avec Code promo/Livraison/détail des
 * réductions (--g8-recap-min-row-height) -- aucune ligne "compressée" ou
 * "étirée" par rapport aux autres. */
.g8-wc-cart-page .cart_totals .shop_table th,
.g8-wc-cart-page .cart_totals .shop_table td { box-sizing: border-box; min-height: var(--g8-recap-min-row-height, 44px); padding: var(--g8-recap-row-py, 12px) var(--g8-recap-zone-px-desktop, 8px); font-size: var(--g8-recap-label-size, .8125rem); font-weight: var(--g8-recap-label-weight, 600); }
.g8-wc-cart-page .cart_totals .shop_table td { text-align: right; font-variant-numeric: tabular-nums; }
.g8-wc-cart-page .g8-products-total { display: grid; justify-items: end; gap: 2px; min-width: 0; }
.g8-wc-cart-page .g8-products-total__prices { display: flex; align-items: baseline; justify-content: flex-end; gap: 5px; max-width: 100%; white-space: nowrap; }
.g8-wc-cart-page .g8-products-total__prices del { color: var(--g8-muted); font-size: .72rem; font-weight: 400; text-decoration-thickness: 1px; }
.g8-wc-cart-page .g8-products-total__prices strong { color: var(--g8-navy); font-size: inherit; font-weight: 600; }
.g8-wc-cart-page .g8-products-total__tax,
.g8-wc-cart-page .g8-products-total__saving { color: var(--g8-muted); font-size: .66rem; font-weight: 400; line-height: 1.3; }
.g8-wc-cart-page .g8-products-total__saving { text-align: right; white-space: normal; }
/* v1.0.198 partie E -- espacement de zone constant avant "Total" (même
 * jeton --g8-recap-zone-gap-top que les titres de zone Livraison/Économies,
 * jamais un 17px isolé).
 * v1.0.202 (mission partie 2) -- le Total final est le SEUL vrai point
 * focal financier de toute la section : label 15-16px/700, montant ~24px/
 * 700 -- nettement au-dessus des autres montants du récapitulatif (13-14px/
 * 600, ligne ci-dessus). */
.g8-wc-cart-page .cart_totals .order-total th,
.g8-wc-cart-page .cart_totals .order-total td { padding-top: var(--g8-recap-zone-gap-top, 24px); color: var(--g8-navy); font-size: var(--g8-recap-total-label-size, .95rem); font-weight: var(--g8-recap-total-label-weight, 700); }
.g8-wc-cart-page .cart_totals .order-total th { display: table-cell; }
.g8-wc-cart-page .cart_totals .order-total th small { display: block; color: var(--g8-muted); font-size: .68rem; font-weight: 400; line-height: 1.35; white-space: nowrap; }
.g8-wc-cart-page .cart_totals .order-total td { font-variant-numeric: tabular-nums; }
.g8-wc-cart-page .cart_totals .order-total td > strong { font-size: var(--g8-recap-total-amount-size, 1.5rem); font-weight: var(--g8-recap-total-amount-weight, 700); }
.g8-wc-cart-page .cart_totals .includes_tax { color: var(--g8-muted); font-size: .68rem; font-weight: 400; }
/* v1.0.208 -- aligne le panier sur les étapes suivantes du tunnel : le détail
 * de TVA est une information secondaire placée sous le montant total, jamais
 * sur la même ligne que le point focal financier. */
.g8-wc-cart-page .cart_totals .order-total td .includes_tax {
  display: block;
  max-width: 100%;
  margin-top: 3px;
  line-height: 1.3;
  overflow-wrap: break-word;
  text-align: right;
  white-space: normal;
}
.g8-wc-cart-page .cart_totals .order-total td .includes_tax .amount {
  color: inherit;
  font-size: inherit;
  font-weight: 400;
}
/*
 * v1.0.202 (mission "harmoniser visuellement le récapitulatif", partie 4)
 * -- BUG CIBLÉ "trop de fonds colorés" : le grand aplat bleu ciel
 * (--g8-foam-soft) qui couvrait toute la zone Livraison depuis v1.0.199 est
 * retiré. La livraison est une information FONCTIONNELLE, pas un callout
 * marketing (contrairement aux Économies réalisées, qui gardent une teinte
 * très légère, voir advantages.css) : bloc blanc, structuré uniquement par
 * l'espacement, la typographie et un séparateur fin -- jamais une couleur
 * de fond pour créer artificiellement la séparation.
 */
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-zone-heading th,
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-line th,
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-line td,
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-calculator-row td {
  padding-left: var(--g8-recap-zone-px-desktop, 24px) !important;
  padding-right: var(--g8-recap-zone-px-desktop, 24px) !important;
  background: var(--g8-white, #fff);
}
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-zone-heading th {
  /* Padding/graisse/centrage vertical du TITRE viennent du point de vérité
   * UNIQUE partagé avec la zone Économies (.g8-advantages-row--heading th,
   * assets/css/advantages.css, mission partie C "système visuel commun") --
   * seule la couleur du séparateur, propre à cette zone, reste définie ici. */
  border-top-color: var(--g8-recap-separator-color, var(--g8-border));
}
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-line th,
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-line td { padding-top: var(--g8-recap-row-py, 12px); padding-bottom: var(--g8-recap-row-py, 12px); border-bottom: 1px solid var(--g8-recap-separator-color, var(--g8-border)); vertical-align: middle; }
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-line td { width: 100% !important; min-width: 0; font-variant-numeric: tabular-nums; }
/*
 * v1.0.199 -- BUG CIBLÉ "icône technique devant Frais de livraison inutile" :
 * l'icône SVG en mask-image (camion, encodée en data-URI) qui remplaçait
 * l'emoji 🚚 devant CETTE ligne précise est entièrement retirée -- l'emoji du
 * TITRE DE ZONE (span.g8-zone-emoji, assets/js/cart-checkout.js) suffit déjà
 * à identifier la zone, un second symbole devant chaque ligne était
 * redondant. Remplacée par un simple bullet discret "•", couleur atténuée,
 * jamais un pictogramme. Poids typographique réduit (700 -> 500, mission
 * partie A "poids typographique trop fort") -- le montant/l'état "OFFERTE"
 * (`.g8-shipping-strikethrough__offered`, inchangé) reste seul élément
 * fortement accentué de cette ligne.
 */
/* v1.0.201 (addendum, partie D) -- nom du pays de destination, discret,
 * au-dessus du libellé de tarif ; jamais affiché sans destination résolue
 * (voir arrangeCartShipping(), assets/js/cart-checkout.js). */
.g8-cart-shipping-destination-name { display: block; margin-bottom: 2px; color: var(--g8-recap-secondary-color, var(--g8-muted)); font-size: var(--g8-recap-secondary-size, .72rem); font-weight: var(--g8-recap-secondary-weight, 400); line-height: 1.4; }
/* v1.0.204 (P2.4/P2.5) -- BUG CIBLÉ "puce + graisse trop marquée devant
 * Frais de livraison" : bullet retiré, graisse ramenée à 500 (medium,
 * cohérente avec les autres lignes secondaires -- jamais le 600 partagé
 * des labels principaux). */
.g8-cart-shipping-offer { display: flex; width: 100%; max-width: 100%; gap: 10px; align-items: baseline; justify-content: space-between; color: var(--g8-navy); font-size: var(--g8-recap-label-size, .8125rem); font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; white-space: normal; }
.g8-cart-shipping-offer .g8-shipping-line__label { display: inline-flex; align-items: center; gap: 8px; text-align: left; }
.g8-cart-shipping-offer .g8-shipping-line__value { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* BUG CIBLÉ "grand vide sous l'accordéon" -- le padding bas de la ligne
 * calculateur (13px) s'ajoutait auparavant au padding haut de la ligne
 * suivante (13px) sans lien avec le contenu réel du <details> fermé,
 * créant un espace disproportionné ; harmonisé sur le même rythme vertical
 * que le reste de la zone (--g8-recap-row-py), jamais une valeur isolée. */
.g8-wc-cart-page .cart_totals tr.g8-cart-shipping-calculator-row td { padding: var(--g8-recap-row-py, 12px) var(--g8-recap-zone-px-desktop, 24px) !important; border-bottom: 1px solid var(--g8-recap-separator-color); }
.g8-wc-cart-page .shipping-calculator-button { display: inline-block; margin-top: 5px; color: var(--g8-navy); font-size: .72rem; font-weight: 650; text-decoration: underline; }
/*
 * v1.0.195 §B -- CORRECTIF CIBLÉ, cause exacte du "calculateur vide"
 * confirmé en direct : WooCommerce rend TOUJOURS ce formulaire avec un
 * style inline `display: none;` (masqué par défaut avant toute interaction
 * avec son propre bouton natif, que v1.0.193 §D a retiré du DOM). Une
 * ancienne règle défensive `.shipping-calculator-form[style*="display: none"]
 * { display: none !important; }` (héritée d'avant le passage en <details>,
 * pensée pour éviter un flash visuel avant que le script natif WooCommerce
 * ne révèle le formulaire) reste PLUS SPÉCIFIQUE que la règle `!important`
 * juste en dessous : elle continue donc de forcer `display: none` tant que
 * l'attribut `style` contient cette valeur -- y compris si le JS
 * (`nativeForm.removeAttribute("style")`, assets/js/cart-checkout.js)
 * échoue à s'exécuter à temps sur un rendu donné (timing d'un rafraîchissement
 * de fragment WooCommerce). Résultat : l'accordéon s'ouvre (le <details>
 * bascule normalement, chevron compris) mais son contenu reste invisible.
 *
 * Corrigé en rendant la visibilité DÉPENDANTE UNIQUEMENT de l'état de
 * l'accordéon (`[open]`), avec une spécificité supérieure à toute règle
 * fondée sur l'attribut `style` -- robuste même si l'attribut inline
 * persiste, jamais un second lien ni une dépendance à un second clic.
 */
.g8-wc-cart-page .shipping-calculator-form { display: none; grid-template-columns: minmax(0,1fr) 112px; gap: 9px; margin-top: 12px; padding: 13px; border-radius: var(--g8-radius); background: var(--g8-foam-soft); text-align: left; }
.g8-wc-cart-page .g8-cart-shipping-accordion[open] .shipping-calculator-form { display: grid !important; }
.g8-wc-cart-page .shipping-calculator-form .form-row { width: auto; margin: 0; padding: 0; }
.g8-wc-cart-page .shipping-calculator-form .form-row label { display: block; margin-bottom: 5px; color: var(--g8-navy); font-size: .68rem; font-weight: 650; line-height: 1.2; }
.g8-wc-cart-page .shipping-calculator-form input.input-text,
.g8-wc-cart-page .shipping-calculator-form select,
.g8-wc-cart-page .shipping-calculator-form .select2-selection { height: 42px; min-height: 42px; padding-block: 6px; }
.g8-wc-cart-page .shipping-calculator-form .select2-container { display: block; width: 100% !important; }
.g8-wc-cart-page .shipping-calculator-form .select2-selection--single {
  position: relative;
  display: flex;
  box-sizing: border-box;
  align-items: center;
  padding: 0 52px 0 16px;
}
.g8-wc-cart-page .shipping-calculator-form .select2-selection--single .select2-selection__rendered {
  width: 100%;
  padding: 0 !important;
  line-height: 1.2 !important;
}
.g8-wc-cart-page .shipping-calculator-form .select2-selection--single .select2-selection__arrow {
  top: 50%;
  right: 16px !important;
  width: 24px;
  height: 24px !important;
  transform: translateY(-50%);
}
.g8-wc-cart-page .shipping-calculator-form #calc_shipping_country_field { grid-column: 1; }
.g8-wc-cart-page .shipping-calculator-form #calc_shipping_postcode_field { grid-column: 2; }
.g8-wc-cart-page .shipping-calculator-form #calc_shipping_city_field[hidden] { display: none !important; }
.g8-wc-cart-page .shipping-calculator-form #calc_shipping_state_field { display: none !important; }
.g8-wc-cart-page .shipping-calculator-form > p:has(.button) { grid-column: 1 / -1; }
/* v1.0.181 -- CTA secondaire "Estimer la livraison" (calculateur de frais dans le
   panier) : meme paire de tokens que le bouton coupon (--g8-foam / --g8-navy),
   memes etats hover/pressed/focus/disabled. Selecteur exclusif au formulaire
   .shipping-calculator-form -- ne touche jamais "Mettre a jour le panier"
   (td.actions > .button, non stylee ici) ni le CTA principal du checkout. */
.g8-wc-cart-page .shipping-calculator-form .button { width: 100%; min-height: 40px; padding: 8px 12px; border: 1px solid var(--g8-navy); border-radius: 6px; color: var(--g8-navy); background: var(--g8-foam); box-shadow: 0 10px 20px -15px rgba(34,49,76,.35); transition: background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.g8-wc-cart-page .shipping-calculator-form .button:hover { color: var(--g8-navy) !important; background: var(--g8-foam) !important; border-color: var(--g8-navy-hover) !important; box-shadow: 0 14px 24px -15px rgba(34,49,76,.45); transform: translateY(-1px); }
.g8-wc-cart-page .shipping-calculator-form .button:focus-visible { color: var(--g8-navy) !important; background: var(--g8-foam) !important; outline: 3px solid var(--g8-navy); outline-offset: 2px; }
.g8-wc-cart-page .shipping-calculator-form .button:active { color: var(--g8-navy) !important; background: var(--g8-foam) !important; border-color: var(--g8-navy-pressed) !important; box-shadow: 0 5px 12px -10px rgba(34,49,76,.4); transform: translateY(1px); }
.g8-wc-cart-page .shipping-calculator-form .button:disabled,
.g8-wc-cart-page .shipping-calculator-form .button[aria-disabled="true"] { opacity: .55; box-shadow: none; cursor: not-allowed; transform: none; pointer-events: none; }
.g8-cart-shipping-note { grid-column: 1 / -1; margin: 0; color: var(--g8-muted); font-size: .61rem; line-height: 1.4; }

/*
 * v1.0.192 §10 -- accordéons "Ajouter un code promo" / "Estimer la
 * livraison", <details>/<summary> natifs, fermés par défaut. Style discret
 * cohérent avec le reste du panier (mêmes tokens --g8-navy/--g8-border),
 * chevron natif via ::marker (support large, ::-webkit-details-marker en
 * repli), zone cliquable généreuse (44px+), focus clavier visible,
 * comportement d'ouverture/fermeture 100% natif (aucun script requis).
 */
.g8-cart-accordion { border-bottom: 1px solid var(--g8-border); }
/* v1.0.202 (mission "harmoniser visuellement le récapitulatif", partie 7)
 * -- "Ajouter un code promo" et "Estimer les frais de livraison" partagent
 * déjà le même composant (.g8-cart-accordion), désormais explicitement au
 * Niveau 3 (labels/actions, 13px/600/navy) -- des actions secondaires,
 * jamais des titres de section. */
.g8-cart-accordion > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 11px 4px;
  color: var(--g8-navy);
  font-size: var(--g8-recap-label-size, .8125rem);
  font-weight: var(--g8-recap-label-weight, 600);
  line-height: 1.25;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.g8-cart-accordion > summary::-webkit-details-marker { display: none; }
.g8-cart-accordion > summary::marker { content: ""; }
.g8-cart-accordion > summary::before {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--g8-navy);
  border-bottom: 2px solid var(--g8-navy);
  transform: rotate(-45deg);
  transition: transform .16s ease;
}
.g8-cart-accordion[open] > summary::before { transform: rotate(45deg); }
.g8-cart-accordion > summary:focus-visible {
  outline: 3px solid var(--g8-navy);
  outline-offset: 2px;
  border-radius: 4px;
}
.g8-cart-accordion > summary:hover { color: var(--g8-navy-hover, var(--g8-navy)); }
/*
 * v1.0.193 §B -- correctif ciblé : `.g8-cart-accordion` porte par défaut un
 * `border-bottom` pensé pour séparer un accordéon d'un contenu réellement
 * distinct en dessous. Pour l'accordéon coupon, ce contenu est directement
 * la <table> des totaux (voir moveCouponToSummary(), assets/js/cart-checkout.js,
 * qui insère cet accordéon juste avant elle) : la table possède déjà sa
 * propre structure de lignes/bordures internes, rendant ce trait
 * supplémentaire purement décoratif et sans fonction. Retiré uniquement ici
 * -- l'accordéon livraison (.g8-cart-shipping-accordion) et tout autre
 * séparateur réel du récapitulatif (lignes de la table des totaux) restent
 * inchangés.
 */
.g8-cart-accordion.g8-cart-coupon-accordion { padding-bottom: 4px; border-bottom: 0; }
.g8-cart-accordion.g8-cart-coupon-accordion .g8-cart-summary-coupon { padding-top: 0; border-bottom: 0; }
.g8-cart-accordion.g8-cart-shipping-accordion { border-bottom: 0; }
.g8-cart-accordion.g8-cart-shipping-accordion .woocommerce-shipping-calculator { margin-top: 4px; }
/* v1.0.201 (addendum, partie D) -- tant qu'aucune destination n'est
 * résolue, la ligne "Estimer les frais de livraison" (dans la cellule
 * compacte, .g8-cart-shipping-offer--prompt) agit elle-même comme
 * déclencheur de l'accordéon (voir assets/js/cart-checkout.js) : curseur
 * pointeur + chevron discret, jamais un second lien affiché à côté. */
.g8-cart-shipping-offer--prompt { cursor: pointer; }
.g8-cart-shipping-offer--prompt::after { content: "▼"; margin-left: 6px; color: var(--g8-muted, rgba(60, 60, 60, 0.68)); font-size: .7em; }
@media (max-width: 480px) {
  .g8-cart-accordion > summary { font-size: .74rem; }
  /* v1.0.203 (supersède v1.0.199 partie D) -- --g8-recap-zone-px-desktop
   * reste à 0 sous 480px comme au-dessus (une seule grille d'alignement,
   * mission "finalisation UI/UX", partie 7) : plus de redéfinition mobile
   * distincte, le conteneur .cart_totals fournit déjà le padding horizontal
   * responsive nécessaire. */
}
.g8-wc-cart-page .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; align-items: center; justify-content: space-between !important; min-height: 48px; padding: 12px 16px; color: var(--g8-navy) !important; background: var(--g8-rose-soft) !important; font-size: 1rem !important; line-height: 1.15; text-align: left !important; box-shadow: 0 12px 26px -18px rgba(34,49,76,.48); }
.g8-wc-cart-page .wc-proceed-to-checkout .checkout-button,
.g8-summary-stage-actions .g8-stage-next {
  color: var(--g8-navy) !important;
  font-family: var(--g8-font-body) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
}
.g8-wc-cart-page .wc-proceed-to-checkout .checkout-button:hover { background: var(--g8-rose-hover) !important; }
.g8-wc-cart-page .wc-proceed-to-checkout .checkout-button > span:last-child { font-size: 1.15rem; font-weight: 500; line-height: 1; }
.g8-cart-continue-links { display: grid; margin-top: 13px; justify-items: center; gap: 8px; text-align: center; }
.g8-cart-continue-links a { color: var(--g8-muted); font-size: .75rem; font-weight: 500; line-height: 1.35; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .18s ease; }
.g8-cart-continue-links a:hover,
.g8-cart-continue-links a:focus-visible { color: var(--g8-navy); }
.g8-cart-trust { display: none !important; }
.g8-cart-trust p { display: flex; gap: 8px; align-items: center; margin: 0; color: var(--g8-muted); font-size: .69rem; }
.g8-cart-trust span { width: 18px; text-align: center; }
.g8-cart-trust .g8-trust-wallet { display: grid; place-items: center; }
.g8-cart-trust .g8-trust-wallet svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.g8-cart-trust p:last-child strong { white-space: nowrap; }

.g8-checkout-cart-item { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 10px; align-items: center; }
.g8-checkout-cart-item img { width: 52px; height: 52px; border-radius: 6px; background: var(--g8-foam); object-fit: cover; }
.g8-checkout-cart-item__copy { display: grid; gap: 2px; min-width: 0; line-height: 1.25; }
.g8-checkout-cart-item__copy strong { overflow: visible; color: var(--g8-navy); font-size: .78rem; font-weight: 650; line-height: 1.25; overflow-wrap: anywhere; white-space: normal; }
.g8-checkout-cart-item__copy small { overflow: visible; color: var(--g8-muted); font-size: .69rem; font-weight: 400; line-height: 1.25; overflow-wrap: anywhere; white-space: normal; }
.g8-checkout-shipping-pending { display: none; }
body.g8-checkout-step-2 .woocommerce-checkout-review-order-table .woocommerce-shipping-totals.shipping td {
  font-size: inherit;
}
body.g8-checkout-step-2 .woocommerce-checkout-review-order-table .woocommerce-shipping-totals.shipping .g8-checkout-shipping-layout__value > :not(.g8-checkout-shipping-pending) {
  display: none !important;
}
body.g8-checkout-step-2 .woocommerce-checkout-review-order-table .woocommerce-shipping-totals.shipping .g8-checkout-shipping-pending {
  display: grid;
  width: 100%;
  gap: 5px;
  color: var(--g8-muted);
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
  text-wrap: pretty;
}
body.g8-checkout-step-2 .g8-checkout-shipping-pending strong {
  display: block;
  color: var(--g8-navy);
  font-weight: 600;
  line-height: 1.4;
  overflow-wrap: break-word;
}
body.g8-checkout-step-2 .g8-checkout-shipping-pending__amount {
  display: block;
  color: var(--g8-navy);
  font-weight: 600;
  line-height: 1.3;
}
body.g8-checkout-step-2 .g8-checkout-shipping-pending small {
  display: block;
  max-width: none;
  margin-left: auto;
  color: var(--g8-muted);
  font-size: .68rem;
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: break-word;
  white-space: normal;
}

@media (max-width: 720px) {
  body.g8-checkout-step-2 .g8-checkout-shipping-pending small { white-space: normal; }
}

.g8-wc-checkout-page form.checkout { display: flex; flex-direction: column; gap: 22px; }
.g8-wc-checkout-main-column,
.g8-wc-order-summary-column { min-width: 0; }
.g8-wc-checkout-main-column { display: grid; gap: 24px; align-content: start; }
.g8-wc-checkout-main-column .g8-cart-heading { margin-bottom: 0; }
.g8-wc-order-summary-column { padding: 24px; }
.g8-wc-order-summary-column #order_review_heading { margin: 0 0 8px; color: var(--g8-navy); font-family: var(--g8-font-heading); font-size: 1.65rem; font-weight: 560; }
.g8-wc-order-summary-column #order_review { width: 100%; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table { width: 100%; max-width: 100%; margin-bottom: 18px !important; border-collapse: collapse; table-layout: fixed; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table thead { display: none; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table th,
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table td { padding: 13px 0; border-color: var(--g8-border); font-size: .78rem; line-height: 1.35; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table th { color: var(--g8-navy); font-weight: 600; text-align: left; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table td { color: var(--g8-text); font-weight: 400; text-align: right; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody tr.cart_item { display: table-row; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody .product-name { width: 78%; min-width: 0; padding-right: 12px; text-align: left; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody .product-total { width: 22%; color: var(--g8-navy); font-size: .78rem; font-weight: 650; text-align: right; vertical-align: middle; white-space: nowrap; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .product-quantity { display: none; }
.g8-wc-order-summary-column .g8-checkout-summary-coupon-row > td { padding: 14px 0 !important; text-align: left !important; }
.g8-checkout-summary-coupon { display: grid; gap: 10px; }
.g8-checkout-summary-coupon > label { margin: 0; color: var(--g8-navy); font-size: .78rem; font-weight: 600; }
.g8-checkout-summary-coupon__controls { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
.g8-checkout-summary-coupon__controls input { width: 100%; min-width: 0; min-height: 42px; margin: 0 !important; padding: 9px 13px !important; border: 1px solid var(--g8-border) !important; border-radius: 6px !important; color: var(--g8-navy); background: #fff; font-size: .82rem; box-shadow: none !important; }
/* v1.0.181 -- CTA secondaire "Appliquer le code promo" (checkout, bouton construit
   en JS) : meme paire de tokens que le bouton coupon du panier, ci-dessus. Le
   selecteur reste .g8-checkout-summary-coupon__controls button, qui ne cible que
   ce bouton -- jamais le CTA principal du checkout (.g8-stage-next / .checkout-button). */
.g8-checkout-summary-coupon__controls button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; margin: 0; padding: 8px 14px; border: 1px solid var(--g8-navy); border-radius: 6px; color: var(--g8-navy); background: var(--g8-foam); font-family: var(--g8-font-body); font-size: .76rem; font-weight: 500; line-height: 1.2; white-space: nowrap; cursor: pointer; box-shadow: 0 10px 20px -15px rgba(34,49,76,.35); transition: background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.g8-checkout-summary-coupon__controls button:hover { color: var(--g8-navy) !important; background: var(--g8-foam) !important; border-color: var(--g8-navy-hover) !important; box-shadow: 0 14px 24px -15px rgba(34,49,76,.45); transform: translateY(-1px); }
.g8-checkout-summary-coupon__controls button:focus-visible { color: var(--g8-navy) !important; background: var(--g8-foam) !important; outline: 3px solid var(--g8-navy); outline-offset: 2px; }
.g8-checkout-summary-coupon__controls button:active { color: var(--g8-navy) !important; background: var(--g8-foam) !important; border-color: var(--g8-navy-pressed) !important; box-shadow: 0 5px 12px -10px rgba(34,49,76,.4); transform: translateY(1px); }
.g8-checkout-summary-coupon__controls button:disabled { opacity: .55; box-shadow: none; cursor: wait; transform: none; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-remove-coupon { color: var(--g8-muted) !important; font-size: .69rem; font-weight: 400; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot tr:not(.order-total) th { font-weight: 400; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .cart-subtotal td,
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .cart-discount td { color: var(--g8-navy); font-weight: 650; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals th,
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td { padding-top: 14px; padding-bottom: 14px; vertical-align: middle; line-height: 1.25; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals {
  display: table-row;
}
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > th[hidden] {
  display: none !important;
}
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > td[colspan="2"] {
  display: table-cell !important;
  width: 100% !important;
  min-width: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
  border-top: 1px solid var(--g8-border) !important;
  border-bottom: 1px solid var(--g8-border) !important;
}
.g8-checkout-shipping-layout {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(118px, .7fr) minmax(0, 1.3fr);
  gap: 24px;
  align-items: center;
}
.g8-checkout-shipping-layout__label {
  min-width: 0;
  color: var(--g8-text);
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.35;
  text-align: left;
}
.g8-checkout-shipping-layout__value {
  min-width: 0;
  color: var(--g8-text);
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
  overflow-wrap: break-word;
}
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td,
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals label { max-width: 100%; font-weight: 500; line-height: 1.4; text-align: right; overflow-wrap: break-word; white-space: normal; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-methods { margin: 0 !important; padding: 0 !important; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li { display: flex; align-items: center; justify-content: flex-end; margin: 0 !important; padding: 0 !important; line-height: 1.25; list-style: none; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-methods label { line-height: 1.25; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total th { font-size: .98rem; font-weight: 650; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total th small { display: block; margin-top: 3px; color: var(--g8-muted); font-size: .64rem; font-weight: 400; line-height: 1.3; white-space: nowrap; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total td { color: var(--g8-navy); }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total td > strong > .amount { font-size: 1.35rem; font-weight: 650; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total small { color: var(--g8-muted); font-size: .68rem; font-weight: 400; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax { display: block; max-width: 100%; margin-top: 3px; line-height: 1.3; overflow-wrap: break-word; white-space: normal; }
.g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot .order-total td .includes_tax .amount { color: inherit; font-size: inherit; font-weight: 400; }
.g8-wc-order-summary-column #payment { padding: 20px; border: 1px solid var(--g8-border); border-radius: var(--g8-radius); background: #fff; }
.g8-payment-security-intro { display: grid; gap: 7px; margin: 0; padding: 0; color: var(--g8-text); background: transparent; }
.g8-payment-security-intro h3 { margin: 0; color: var(--g8-navy); font-family: var(--g8-font-heading); font-size: 1.15rem; font-weight: 560; line-height: 1.25; }
.g8-payment-security-intro > p { max-width: 70ch; margin: 0; color: var(--g8-muted); font-size: .76rem; line-height: 1.5; }
.g8-stripe-save-note { display: block; margin: 5px 0 0 28px; color: var(--g8-muted); font-size: .68rem; font-weight: 400; line-height: 1.4; }
.g8-wc-order-summary-column #payment ul.payment_methods { display: grid; gap: 10px; margin: 0; padding: 16px 0 0; border: 0; background: transparent; list-style: none; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method { position: relative; overflow: hidden; margin: 0 !important; padding: 0 !important; border: 1px solid var(--g8-border); border-radius: var(--g8-radius); background: #fff; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method:has(> input[type="radio"]:checked) { border-color: rgba(216,117,103,.68); background: rgba(255,232,225,.34); box-shadow: 0 10px 26px -24px rgba(34,49,76,.55); }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > input[type="radio"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label { position: relative; display: flex; min-height: 56px; gap: 12px; align-items: center; margin: 0; padding: 14px 18px 14px 52px; color: var(--g8-navy); background: #fff; font-size: .9rem; font-weight: 500; line-height: 1.3; cursor: pointer; transition: background-color .18s ease; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label::before { position: absolute; top: 50%; left: 18px; box-sizing: border-box; width: 20px; height: 20px; border: 1.5px solid rgba(34,49,76,.38); border-radius: 50%; background: #fff; content: ""; transform: translateY(-50%); }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label:hover { background: var(--g8-foam-soft); }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > input[type="radio"]:checked + label { background: rgba(255,232,225,.56); }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > input[type="radio"]:checked + label::before { border-color: var(--g8-rose-hover); background: var(--g8-rose-soft); box-shadow: inset 0 0 0 4px #fff; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > input[type="radio"]:focus-visible + label { outline: 2px solid var(--g8-navy); outline-offset: -3px; }
.g8-payment-method__copy { display: grid; min-width: 0; gap: 2px; }
.g8-payment-method__copy strong { color: var(--g8-navy); font-size: .9rem; font-weight: 500; line-height: 1.25; }
.g8-payment-method__copy small { color: var(--g8-muted); font-size: .7rem; font-weight: 400; line-height: 1.35; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label img { width: auto; max-width: 116px; max-height: 26px; margin: 0 0 0 auto; object-fit: contain; }
.g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label a { margin-left: auto; color: var(--g8-muted); font-size: .69rem; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.g8-wc-order-summary-column #payment.g8-paypal-only ul.payment_methods { display: none; }
.g8-wc-order-summary-column #payment div.payment_box { margin: 0 !important; padding: 4px 18px 18px !important; border: 0; border-radius: 0; background: transparent; }
.g8-wc-order-summary-column #payment div.payment_box::before { display: none; }
.g8-wc-order-summary-column #payment div.payment_box fieldset,
.g8-wc-order-summary-column #payment div.payment_box .wc-payment-form { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.g8-wc-order-summary-column #payment .woocommerce-SavedPaymentMethods-saveNew { margin: 14px 0 0 !important; padding: 14px 0 0 !important; border-top: 1px solid var(--g8-border); }
.g8-wc-order-summary-column #payment .place-order { margin: 14px 0 0 !important; padding: 0 !important; border: 0; background: transparent; }

#customer_details { width: 100%; }
#customer_details > .col-1,
#customer_details > .col-2 { width: auto; padding: 0; float: none; }
#customer_details .woocommerce-billing-fields > h3,
#customer_details .woocommerce-billing-fields__field-wrapper:empty,
#customer_details > .col-2:empty { display: none; }
.g8-checkout-stage { padding: 24px; }
.g8-checkout-stage[hidden] { display: none !important; }
.g8-stage-header { display: grid; gap: 5px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--g8-border); }
.g8-stage-header h2 { margin: 0; color: var(--g8-navy); font-family: var(--g8-font-heading); font-size: clamp(1.45rem,5vw,2rem); font-weight: 560; line-height: 1.1; }
.g8-stage-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.g8-stage-fields .form-row { width: 100% !important; max-width: none; margin: 0; padding: 0 !important; float: none; }
.g8-stage-fields .woocommerce-input-wrapper { display: block; width: 100%; min-width: 0; }
.g8-stage-fields .woocommerce-input-wrapper > input,
.g8-stage-fields .woocommerce-input-wrapper > select,
.g8-stage-fields .woocommerce-input-wrapper > textarea,
.g8-stage-fields .woocommerce-input-wrapper > .select2 { box-sizing: border-box; width: 100% !important; max-width: none; }
.g8-stage-fields .form-row-wide,
.g8-stage-fields .g8-customer-type-field,
.g8-stage-fields .create-account { grid-column: 1 / -1; }
.g8-stage-fields .form-row label { display: block; margin-bottom: 7px; color: var(--g8-navy); font-size: .82rem; font-weight: 650; }
.g8-stage-fields .create-account label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--g8-navy);
  font-weight: 600;
}
.g8-stage-fields .create-account label input {
  flex: 0 0 auto;
  margin: 0;
}
.g8-stage-fields .g8-account-benefit {
  display: block;
  margin: 7px 0 0 28px;
  color: var(--g8-muted);
  font-size: .76rem;
  line-height: 1.45;
}
.g8-stage-fields .create-account { padding: 14px 16px !important; border: 1px solid var(--g8-border); border-radius: var(--g8-radius-sm); background: var(--g8-foam-soft); }
.g8-stage-fields .create-account + .create-account { margin-top: -8px; padding-top: 4px !important; border-top: 0; }
.g8-stage-fields .create-account label { margin: 0; }
.g8-stage-fields .required { color: #8c4350; }

/* The company name becomes mandatory only after selecting the professional path. */
#billing_company_field.validate-required > label .required,
#shipping_company_field.validate-required > label .required {
  display: none !important;
}

#billing_company_field.validate-required > label::after,
#shipping_company_field.validate-required > label::after {
  color: #8c4350;
  content: " *";
}
.g8-stage-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--g8-border); }
.g8-stage-next { margin-left: auto; }
.g8-stage-back { padding: 8px 0; border: 0; color: var(--g8-muted); background: transparent; text-decoration: underline; cursor: pointer; }
.g8-summary-stage-actions { margin-top: 18px; }
.g8-summary-stage-actions .g8-stage-actions { display: flex; align-items: stretch; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; }
.g8-summary-stage-actions .g8-stage-actions[hidden] { display: none !important; }
.g8-summary-stage-actions .g8-stage-next { width: 100%; min-height: 48px; margin: 0; justify-content: space-between; order: 1; padding: 12px 16px; border-radius: var(--g8-radius); background: var(--g8-rose-soft); color: var(--g8-navy); font-family: var(--g8-font-body); font-size: 1rem; font-weight: 500; line-height: 1.15; text-align: left; box-shadow: 0 12px 26px -18px rgba(34,49,76,.48); }
.g8-summary-stage-actions .g8-stage-next:hover { background: var(--g8-rose-hover); }
.g8-summary-stage-actions .g8-stage-next > span:last-child { font-size: 1.15rem; font-weight: 500; line-height: 1; }
.g8-summary-stage-actions .g8-stage-back { align-self: center; order: 2; color: var(--g8-muted); font-size: .75rem; font-weight: 400; }
.g8-customer-type-field .woocommerce-input-wrapper { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.g8-customer-type-field .woocommerce-input-wrapper label { display: grid !important; grid-template-columns: 18px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 12px; align-content: center; min-height: 76px; margin: 0 !important; padding: 14px 16px; border: 1px solid var(--g8-border); border-radius: var(--g8-radius); cursor: pointer; }
.g8-customer-type-field .woocommerce-input-wrapper label::before { width: 14px; height: 14px; grid-column: 1; grid-row: 1 / span 2; align-self: center; border: 1.5px solid #8c939d; border-radius: 50%; background: #fff; content: ""; }
.g8-customer-type-field input[type="radio"] { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; pointer-events: none; }
.g8-customer-type-field input:checked + label { border-color: var(--g8-navy); background: var(--g8-foam-soft); }
.g8-customer-type-field input:checked + label::before { border-color: var(--g8-navy); box-shadow: inset 0 0 0 4px #fff; background: var(--g8-navy); }
.g8-customer-type-field input:focus-visible + label { outline: 3px solid var(--g8-navy); outline-offset: 3px; }
.g8-customer-type-field--professional-required input[value="individual"] + label { cursor: not-allowed; opacity: .45; background: #f5f5f5; }
.g8-customer-type-field--professional-required .description { display: block; grid-column: 1/-1; margin: 10px 0 0; color: var(--g8-navy); font-size: .82rem; font-weight: 400; line-height: 1.45; }
.g8-customer-choice__title { grid-column: 2; color: var(--g8-navy); font-weight: 700; line-height: 1.25; }
.g8-customer-choice__subtitle { grid-column: 2; color: var(--g8-muted); font-size: .78rem; font-weight: 400; line-height: 1.3; }
.g8-professional-field { padding: 14px !important; border-radius: var(--g8-radius); background: var(--g8-foam-soft); }
.g8-professional-field[hidden] { display: none !important; }
.g8-stage-shipping .woocommerce-shipping-fields { grid-column: 1 / -1; }
.g8-stage-shipping .woocommerce-additional-fields { width: 100%; grid-column: 1 / -1; }
.g8-stage-shipping #ship-to-different-address { margin: 8px 0 18px; font-size: 1rem; }
.g8-stage-shipping #ship-to-different-address-checkbox { margin-right: 8px; accent-color: var(--g8-navy); }
.g8-stage-shipping .shipping_address { padding-top: 18px; border-top: 1px solid var(--g8-border); }
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper .form-row,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .form-row { width: 100% !important; max-width: none; margin: 0; padding: 0 !important; float: none; }
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper .form-row-wide,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .form-row { grid-column: 1 / -1; }
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper .woocommerce-input-wrapper,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .woocommerce-input-wrapper { display: block; width: 100%; min-width: 0; }
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper .woocommerce-input-wrapper > input,
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper .woocommerce-input-wrapper > select,
.g8-stage-shipping .woocommerce-shipping-fields__field-wrapper .woocommerce-input-wrapper > textarea,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .woocommerce-input-wrapper > input,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .woocommerce-input-wrapper > select,
.g8-stage-shipping .woocommerce-additional-fields__field-wrapper .woocommerce-input-wrapper > textarea { box-sizing: border-box; width: 100% !important; max-width: none; }
.g8-stage-payment-note { display: grid; gap: 12px; color: var(--g8-muted); }
.g8-stage-payment-note p { margin: 0; }

body.g8-checkout-step-2 .woocommerce-checkout-payment,
body.g8-checkout-step-3 .woocommerce-checkout-payment { display: none !important; }
body:not(.g8-checkout-step-4) .ppc-button-wrapper,
body:not(.g8-checkout-step-4) #ppc-button-ppcp-applepay,
body:not(.g8-checkout-step-4) #ppc-button-ppcp-googlepay { display: none !important; }
/* The standard WooCommerce PayPal gateway already validates the order before redirecting.
   Hide the additional yellow PayPal Express button to avoid a duplicate final action. */
body.woocommerce-checkout #ppc-button-ppcp-gateway,
body.woocommerce-checkout .ppc-button-wrapper:not(#ppc-button-ppcp-applepay):not(#ppc-button-ppcp-googlepay) { display: none !important; }
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment .place-order .button,
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment button[type="submit"] {
  min-height: 52px;
  padding: 12px 18px;
  color: var(--g8-navy) !important;
  background: var(--g8-rose-soft) !important;
  font-size: 1rem !important;
  box-shadow: 0 12px 26px -18px rgba(34,49,76,.48);
}
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment #place_order {
  display: flex !important;
  width: 100% !important;
  min-height: 52px;
  align-items: center;
  justify-content: space-between !important;
  padding: 12px 18px !important;
  border: 0 !important;
  border-radius: var(--g8-radius) !important;
  color: var(--g8-navy) !important;
  background: var(--g8-rose-soft) !important;
  font-family: var(--g8-font-body);
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  text-align: left !important;
  box-shadow: 0 12px 26px -18px rgba(34,49,76,.48);
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment #place_order:not(:has(.g8-place-order__arrow))::after {
  flex: 0 0 auto;
  margin-left: 18px;
  content: "→";
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1;
}
body.g8-checkout-step-4 #place_order .g8-place-order__arrow {
  flex: 0 0 auto;
  margin-left: 18px;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1;
}
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment .place-order .button:hover,
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment .place-order .button:focus-visible,
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment button[type="submit"]:hover,
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment button[type="submit"]:focus-visible { background: var(--g8-rose-hover) !important; }
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment #place_order:hover,
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment #place_order:focus-visible {
  background: var(--g8-rose-hover) !important;
  box-shadow: 0 16px 28px -18px rgba(34,49,76,.58);
  transform: translateY(-1px);
}
body.g8-checkout-step-4 .g8-wc-order-summary-column #payment #place_order:active {
  background: #eead9f !important;
  box-shadow: 0 6px 14px -12px rgba(34,49,76,.5);
  transform: translateY(1px);
}
body:not(.g8-checkout-step-4) .g8-payment-ready-copy { display: none; }
body.g8-checkout-step-4 .g8-payment-ready-copy { display: grid; gap: 7px; margin: 18px 0 10px; padding: 15px; border-radius: var(--g8-radius); color: var(--g8-muted); background: var(--g8-foam-soft); font-size: .76rem; line-height: 1.45; }
body.g8-checkout-step-4 .g8-payment-ready-copy strong { color: var(--g8-navy); font-size: .8rem; }
body.g8-checkout-step-4 .g8-payment-ready-copy span { display: block; }

/* Express wallets must not bypass destination and shipping validation. */
body.woocommerce-cart #wc-stripe-express-checkout-element { display: none !important; }

/* Keep the text optically centred in every purchasing CTA. */
.g8-theme-ui .g8-button,
.g8-theme-ui .g8-mini-cart__button,
.g8-theme-ui .g8-empty-cart__cta,
.g8-theme-ui .woocommerce a.button:not(.remove),
.g8-theme-ui .woocommerce button.button:not(.qib-button),
.g8-theme-ui .woocommerce .checkout-button,
.g8-theme-ui .woocommerce #place_order,
.g8-theme-ui .single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1.2 !important;
  font-weight: 500 !important;
  text-align: center;
}

.g8-theme-ui .g8-stage-next {
  display: inline-flex !important;
  align-items: center;
  line-height: 1.2 !important;
  font-weight: 500 !important;
}

.g8-theme-ui .woocommerce .checkout-button.g8-shipping-unavailable {
  opacity: .5;
  pointer-events: none;
  cursor: not-allowed;
}

.g8-wc-order-summary-column .woocommerce-privacy-policy-text { display: none; }
.g8-checkout-legal-consent { margin: 14px 0 0; padding: 12px 14px; border: 0; border-radius: var(--g8-radius); color: var(--g8-muted); background: var(--g8-foam-soft); font-size: .76rem; font-weight: 400; line-height: 1.5; }
.g8-checkout-legal-consent a { color: var(--g8-navy); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
body.g8-checkout-step-4 .g8-wc-checkout-main-column { display: none; }
body.g8-checkout-step-4 .woocommerce-form-coupon-toggle,
body.g8-checkout-step-4 form.checkout_coupon,
body.g8-checkout-step-4 .g8-checkout-summary-coupon-row { display: none !important; }
body.g8-checkout-step-4 form.checkout { align-items: center; }
body.g8-checkout-step-4 .g8-wc-order-summary-column {
  position: static;
  width: 100%;
  max-width: 1100px;
  max-height: none;
  flex: 0 1 1100px;
  overflow: visible;
}
body.g8-checkout-step-4 .woocommerce-checkout-review-order-table { table-layout: fixed; }
body.g8-checkout-step-4 .woocommerce-checkout-review-order-table tbody { display: table-row-group; width: auto; }
body.g8-checkout-step-4 .woocommerce-checkout-review-order-table tbody tr.cart_item { display: table-row !important; width: auto !important; }
body.g8-checkout-step-4 .woocommerce-checkout-review-order-table tbody tr.cart_item > td { display: table-cell !important; min-width: 0; vertical-align: middle; }
body.g8-checkout-step-4 .woocommerce-checkout-review-order-table tbody tr.cart_item > .product-name { width: auto !important; padding-right: 24px; }
body.g8-checkout-step-4 .woocommerce-checkout-review-order-table tbody tr.cart_item > .product-total { width: 34%; max-width: 150px; min-width: 0; text-align: right; overflow-wrap: break-word; white-space: normal; }
.woocommerce-invalid input,
.woocommerce-invalid select,
.woocommerce-invalid .select2-selection { border-color: #a94f5b !important; }

.g8-wc-thankyou-page { padding-top: 46px; }
.g8-wc-thankyou-page .g8-checkout-shell { max-width: 1160px; }
.g8-confirmation { display: grid; gap: 28px; }
.g8-confirmation__hero {
  display: grid;
  grid-template-columns: 64px minmax(0,1fr) auto;
  gap: 22px;
  align-items: center;
  padding: clamp(26px,4vw,46px);
  color: var(--g8-navy);
  background: linear-gradient(120deg,var(--g8-foam-soft),#fff 58%,var(--g8-rose-soft));
  border: 1px solid var(--g8-border);
  border-radius: 22px;
  box-shadow: var(--g8-shadow);
}
.g8-confirmation__hero h1 { max-width: 780px; margin: 5px 0 8px; font-size: clamp(2rem,4vw,3.55rem); line-height: 1.02; letter-spacing: -.035em; }
.g8-confirmation__hero p { margin: 0; color: var(--g8-muted); line-height: 1.55; }
.g8-confirmation__hero strong { color: var(--g8-navy); font-weight: 600; }
.g8-confirmation__check { display: grid; place-items: center; width: 64px; height: 64px; color: var(--g8-navy); background: var(--g8-rose-soft); border-radius: 50%; }
.g8-confirmation__check svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.g8-confirmation__badges { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.g8-confirmation__badges span { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 13px; color: var(--g8-navy); background: rgba(255,255,255,.78); border: 1px solid rgba(31,50,80,.14); border-radius: 999px; font-size: .78rem; font-weight: 500; white-space: nowrap; }
.g8-confirmation-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0; overflow: hidden; background: #fff; border: 1px solid var(--g8-border); border-radius: 16px; box-shadow: 0 20px 48px -42px rgba(31,50,80,.55); }
.g8-confirmation-facts > div { display: grid; gap: 6px; min-width: 0; padding: 18px 22px; }
.g8-confirmation-facts > div + div { border-left: 1px solid var(--g8-border); }
.g8-confirmation-facts dt,.g8-confirmation-facts dd { margin: 0; }
.g8-confirmation-facts dt { color: var(--g8-muted); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.g8-confirmation-facts dd { color: var(--g8-navy); font-size: .92rem; font-weight: 600; overflow-wrap: anywhere; }
.g8-confirmation__layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: 24px; align-items: start; }
.g8-confirmation-side { display: grid; gap: 24px; }
.g8-confirmation-card { min-width: 0; padding: clamp(22px,3vw,32px); background: #fff; border: 1px solid var(--g8-border); border-radius: 18px; box-shadow: var(--g8-shadow); }
.g8-confirmation-card__heading { padding-bottom: 18px; border-bottom: 1px solid var(--g8-border); }
.g8-confirmation-card__heading h2 { margin: 4px 0 0; color: var(--g8-navy); font-size: clamp(1.35rem,2.5vw,1.8rem); line-height: 1.15; }
.g8-confirmation-products { display: grid; }
.g8-confirmation-product { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 16px; align-items: center; min-width: 0; padding: 20px 0; border-bottom: 1px solid var(--g8-border); }
.g8-confirmation-product__image { width: 72px; height: 72px; overflow: hidden; border-radius: 12px; background: var(--g8-foam-soft); }
.g8-confirmation-product__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.g8-confirmation-product__copy { display: grid; gap: 5px; min-width: 0; }
.g8-confirmation-product__copy strong { color: var(--g8-navy); font-size: .98rem; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.g8-confirmation-product__copy span { color: var(--g8-muted); font-size: .78rem; }
.g8-confirmation-product__price { color: var(--g8-navy); font-size: .95rem; font-weight: 600; white-space: nowrap; }
.g8-confirmation-totals { display: grid; margin: 0; }
.g8-confirmation-totals > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px; align-items: baseline; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--g8-border); }
.g8-confirmation-totals dt,.g8-confirmation-totals dd { margin: 0; color: var(--g8-navy); }
.g8-confirmation-totals dt { font-size: .86rem; }
.g8-confirmation-totals dd { font-size: .9rem; font-weight: 600; text-align: right; white-space: nowrap; }
.g8-confirmation-totals > .g8-confirmation-totals__total { padding-top: 18px; border-bottom: 0; }
.g8-confirmation-totals__total dt { font-size: 1.05rem; font-weight: 600; }
.g8-confirmation-totals__total dd { font-size: 1.55rem; }
.g8-confirmation-tax { margin: -3px 0 0; color: var(--g8-muted); font-size: .76rem; text-align: right; }
.g8-confirmation-timeline { display: grid; gap: 18px; margin: 22px 0 0; padding: 0; list-style: none; }
.g8-confirmation-timeline li { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 12px; align-items: start; }
.g8-confirmation-timeline li > span { display: grid; place-items: center; width: 32px; height: 32px; color: var(--g8-navy); background: var(--g8-rose-soft); border-radius: 50%; font-size: .78rem; font-weight: 600; }
.g8-confirmation-timeline strong { display: block; margin: 1px 0 4px; color: var(--g8-navy); font-size: .88rem; font-weight: 600; }
.g8-confirmation-timeline p { margin: 0; color: var(--g8-muted); font-size: .78rem; line-height: 1.5; }
.g8-confirmation-meta { display: grid; gap: 18px; }
.g8-confirmation-meta--full { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 30px; }
.g8-confirmation-meta--full > .g8-confirmation-card__heading { grid-column: 1 / -1; }
.g8-confirmation-meta--full > .g8-confirmation-invoice { grid-column: 1 / 3; }
.g8-confirmation-meta--full > .g8-confirmation-help { grid-column: 3; padding-top: 0; padding-left: 24px; border-top: 0; border-left: 1px solid var(--g8-border); }
.g8-confirmation-meta__row { display: grid; gap: 6px; }
.g8-confirmation-meta__row > span { color: var(--g8-muted); font-size: .73rem; text-transform: uppercase; letter-spacing: .06em; }
.g8-confirmation-meta__row address,.g8-confirmation-meta__row strong { margin: 0; color: var(--g8-navy); font-size: .84rem; font-style: normal; font-weight: 500; line-height: 1.5; }
.g8-confirmation-invoice { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 12px; padding: 16px; background: var(--g8-foam-soft); border-radius: 12px; }
.g8-confirmation-invoice svg { width: 24px; height: 24px; color: var(--g8-coral-strong); fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.g8-confirmation-invoice p { display: grid; gap: 4px; margin: 0; }
.g8-confirmation-invoice strong { color: var(--g8-navy); font-size: .86rem; font-weight: 600; }
.g8-confirmation-invoice span { color: var(--g8-muted); font-size: .76rem; line-height: 1.5; }
.g8-confirmation-help { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--g8-border); }
.g8-confirmation-help p { display: grid; gap: 5px; margin: 0; }
.g8-confirmation-help strong { color: var(--g8-navy); font-size: .86rem; font-weight: 600; }
.g8-confirmation-help span { color: var(--g8-muted); font-size: .76rem; line-height: 1.5; }
.g8-confirmation-help a { justify-self: start; color: var(--g8-navy); font-size: .8rem; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.g8-confirmation-closing { margin: -2px 0 14px; color: var(--g8-muted); font-size: .86rem; line-height: 1.5; text-align: center; }
.g8-confirmation-closing a { color: var(--g8-navy); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.g8-confirmation-closing a:hover { color: var(--g8-coral-strong); }
.g8-confirmation--unavailable { max-width: 720px; margin: 30px auto; padding: 36px; background: #fff; border: 1px solid var(--g8-border); border-radius: 18px; box-shadow: var(--g8-shadow); }
.g8-confirmation--unavailable h1 { margin: 6px 0 10px; color: var(--g8-navy); }
.g8-confirmation--unavailable > p:not(.g8-kicker) { color: var(--g8-muted); }

.g8-checkout-prefooter { border-top: 1px solid var(--g8-border); border-bottom: 3px solid var(--g8-rose-soft); background: #fff; }
.g8-checkout-prefooter__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.g8-checkout-prefooter__item { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; align-items: center; min-height: 122px; padding: 24px 30px; }
.g8-checkout-prefooter__item + .g8-checkout-prefooter__item { border-left: 1px solid var(--g8-border); }
.g8-checkout-prefooter__icon { display: grid; place-items: center; width: 48px; height: 48px; color: var(--g8-coral); background: var(--g8-rose-soft); border-radius: 50%; }
.g8-checkout-prefooter__icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.g8-checkout-prefooter__copy { display: grid; gap: 4px; min-width: 0; }
.g8-checkout-prefooter__copy strong { color: var(--g8-navy); font-size: .9rem; font-weight: 650; line-height: 1.3; }
.g8-checkout-prefooter__copy span { color: var(--g8-muted); font-size: .78rem; line-height: 1.4; }
.g8-checkout-footer { padding: 22px 0; color: rgba(255,255,255,.65); background: var(--g8-navy); font-size: .74rem; }
.g8-checkout-footer > div { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.g8-checkout-footer p { margin: 0; }

html.g8-cart-document,
html.g8-cart-document body.woocommerce-cart {
  overflow: visible !important;
}

@media (min-width: 900px) {
  .g8-cart-main { padding-top: 58px; }
  .g8-checkout-steps li { font-size: .77rem; }
  .g8-checkout-steps .g8-checkout-step-link,
  .g8-checkout-steps .g8-checkout-step-link:disabled { grid-template-columns: 30px max-content !important; justify-content: center; justify-items: start; align-items: center; column-gap: 8px; }
  .g8-checkout-steps li:not(:last-child)::after { right: calc(-50% + 55px); left: calc(50% + 55px); }
  .g8-wc-cart-page .g8-cart-heading { width: 100%; }
  .g8-wc-cart-page .g8-wc-surface > .woocommerce > .g8-cart-layout { display: flex; gap: 30px; align-items: flex-start; }
  .g8-wc-cart-main-column,
  .g8-wc-cart-summary-column { flex: 1 1 0; min-width: 0; }
  .g8-wc-cart-summary-column { position: static; align-self: flex-start; max-height: none; overflow: visible; }
  .g8-wc-cart-summary-column .cart_totals { max-height: none; overflow: visible; }
  .g8-wc-checkout-page form.checkout { flex-direction: row; gap: 30px; align-items: flex-start; }
  .g8-wc-checkout-main-column { flex: 0 1 calc(47% - 15px); width: calc(47% - 15px); max-width: calc(47% - 15px); }
  .g8-wc-order-summary-column { flex: 0 1 calc(53% - 15px); width: calc(53% - 15px); max-width: calc(53% - 15px); }
  .g8-wc-order-summary-column { position: static; max-height: none; overflow: visible; }
}

@media (max-width: 899px) {
  .g8-wc-cart-summary-column { margin-top: 22px; transform: none !important; }
  .g8-wc-order-summary-column { position: static; max-height: none; overflow: visible; }
}

@media (max-width: 680px) {
  .g8-wc-thankyou-page { padding-top: var(--g8-thankyou-top-gap, 24px); }
  .g8-confirmation { gap: 18px; }
  .g8-confirmation__hero { grid-template-columns: 46px minmax(0,1fr); gap: 15px; padding: 22px 18px; border-radius: 16px; }
  .g8-confirmation__check { width: 46px; height: 46px; }
  .g8-confirmation__check svg { width: 26px; height: 26px; }
  .g8-confirmation__badges { grid-column: 1 / -1; flex-direction: row; align-items: center; flex-wrap: wrap; }
  .g8-confirmation-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .g8-confirmation-facts > div:nth-child(3) { border-left: 0; }
  .g8-confirmation-facts > div:nth-child(n+3) { border-top: 1px solid var(--g8-border); }
  .g8-confirmation__layout { grid-template-columns: 1fr; gap: 18px; }
	.g8-confirmation-meta--full { grid-template-columns: 1fr; gap: 18px; }
	.g8-confirmation-meta--full > .g8-confirmation-card__heading,
	.g8-confirmation-meta--full > .g8-confirmation-invoice,
	.g8-confirmation-meta--full > .g8-confirmation-help { grid-column: 1; }
	.g8-confirmation-meta--full > .g8-confirmation-help { padding-top: 18px; padding-left: 0; border-top: 1px solid var(--g8-border); border-left: 0; }
  .g8-confirmation-card { padding: 20px 16px; border-radius: 15px; }
  .g8-confirmation-product { grid-template-columns: 58px minmax(0,1fr); gap: 12px; }
  .g8-confirmation-product__image { width: 58px; height: 58px; }
  .g8-confirmation-product__price { grid-column: 2; justify-self: start; }
  .g8-checkout-prefooter__grid { grid-template-columns: 1fr; }
  .g8-checkout-prefooter__item { grid-template-columns: 40px minmax(0,1fr); gap: 12px; min-height: 0; padding: 16px 20px; }
  .g8-checkout-prefooter__item + .g8-checkout-prefooter__item { border-top: 1px solid var(--g8-border); border-left: 0; }
  .g8-checkout-prefooter__icon { width: 40px; height: 40px; }
  .g8-checkout-prefooter__icon svg { width: 20px; height: 20px; }
}

@media (max-width: 640px) {
	.g8-checkout-header p { font-size: 0; }
	.g8-checkout-security svg { width: 22px; height: 22px; }
	.g8-empty-cart { grid-template-columns: 1fr; text-align: center; }
	.g8-empty-cart__icon { margin-inline: auto; }
	.g8-empty-cart__actions { grid-column: 1; justify-items: center; }
	.g8-wc-checkout-page .woocommerce-form-login-toggle,
	.g8-wc-checkout-page .woocommerce-form-coupon-toggle { display: block; width: 100%; margin-right: 0; }
  .g8-checkout-steps li strong { font-size: .62rem; }
  .g8-wc-cart-page .cart_totals,
  .g8-checkout-stage,
  .g8-wc-order-summary-column { padding: 18px; }
  .g8-wc-order-summary-column #payment { padding: 16px; }
  .g8-wc-order-summary-column #payment ul.payment_methods { padding: 14px 0 0; }
  .g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label { padding-right: 14px; padding-left: 46px; font-size: .84rem; }
  .g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label::before { left: 14px; }
  .g8-wc-order-summary-column #payment div.payment_box { padding: 2px 14px 14px !important; }
  .g8-wc-order-summary-column #payment div.payment_box .form-row { width: 100% !important; margin-right: 0 !important; margin-left: 0 !important; float: none !important; }
  .g8-wc-order-summary-column #payment ul.payment_methods > li.wc_payment_method > label img { max-width: 88px; }
  .g8-stage-fields,
  .g8-stage-shipping .woocommerce-shipping-fields__field-wrapper,
  .g8-stage-shipping .woocommerce-additional-fields__field-wrapper { grid-template-columns: 1fr; }
  .g8-customer-type-field .woocommerce-input-wrapper { grid-template-columns: 1fr; }
  .g8-stage-fields .form-row { grid-column: 1; }
  .g8-stage-actions { align-items: stretch; flex-direction: column-reverse; }
  .g8-stage-next { width: 100%; }
  .g8-wc-surface table.shop_table_responsive tr td { padding-left: 42%; }
  /* v1.0.249 -- le retrait WooCommerce ci-dessus convient aux tableaux
   * catalogue génériques, mais cassait le récapitulatif sur ~42% de sa
   * largeur. Le récap utilise déjà ses propres colonnes et libellés. */
  .g8-wc-cart-page .cart_totals table.shop_table_responsive,
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tbody,
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tr {
    width: 100% !important;
    max-width: 100% !important;
  }
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tr {
    display: table-row !important;
  }
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tr > th,
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tr > td {
    display: table-cell !important;
    box-sizing: border-box;
    padding-left: var(--g8-recap-zone-px-mobile, 8px) !important;
    padding-right: var(--g8-recap-zone-px-mobile, 8px) !important;
  }
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tr > td::before {
    display: none !important;
    content: none !important;
  }
  .g8-wc-cart-page .cart_totals table.shop_table_responsive tr > td[colspan="2"] {
    width: 100% !important;
  }
  .g8-wc-cart-page .cart_totals .g8-cart-summary-coupon,
  .g8-wc-cart-page .cart_totals .g8-cart-shipping-accordion,
  .g8-wc-cart-page .cart_totals .shipping-calculator-form,
  .g8-wc-cart-page .cart_totals .wc-proceed-to-checkout,
  .g8-wc-cart-page .cart_totals .checkout-button {
    width: 100% !important;
    max-width: none !important;
  }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tr,
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table th,
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table td { box-sizing: border-box; max-width: 100%; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table,
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody,
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot { width: 100% !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot { display: table-row-group !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot > tr:not(.order-total) { display: table-row !important; width: 100% !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot > tr > th,
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot > tr > td { box-sizing: border-box; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tfoot > tr > td[colspan="2"] { display: table-cell !important; width: 100% !important; max-width: none !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table td { padding-left: 0 !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table td::before { display: none !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody tr.cart_item { display: table-row !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody tr.cart_item > td { display: table-cell !important; min-width: 0; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody tr.cart_item > .product-name { width: 76% !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table tbody tr.cart_item > .product-total { width: 24% !important; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table .order-total { display: grid; width: 100% !important; grid-template-columns: minmax(72px,.48fr) minmax(0,1.52fr); gap: 12px; align-items: start; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table .order-total > * { display: block !important; width: auto !important; min-width: 0; padding-right: 0 !important; }
  .g8-checkout-shipping-layout { grid-template-columns: minmax(92px,.62fr) minmax(0,1.38fr); gap: 14px; }
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td,
  .g8-wc-order-summary-column .woocommerce-checkout-review-order-table .woocommerce-shipping-totals label { overflow-wrap: break-word; white-space: normal; }
  body.g8-checkout-step-2 .g8-checkout-shipping-pending { font-size: .72rem; line-height: 1.3; }
  .g8-wc-cart-page .coupon { flex-direction: column; }
  .g8-wc-cart-page .coupon #coupon_code { width: 100% !important; }
  .g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product { grid-template-columns: 88px minmax(0,1fr); grid-template-rows: auto auto auto; gap: 8px 14px; padding: 14px; }
  .g8-wc-cart-page .g8-cart-product .product-thumbnail { grid-column: 1; grid-row: 1 / 4; }
  .g8-wc-cart-page .g8-cart-product .product-thumbnail img { width: 88px; height: 88px; }
  .g8-wc-cart-page .g8-cart-product .product-name { grid-column: 2; grid-row: 1; }
  .g8-wc-cart-page .g8-cart-product .product-quantity { grid-column: 2; grid-row: 2; justify-self: start; align-self: center; }
  .g8-wc-cart-page .g8-cart-product .product-subtotal { grid-column: 2; grid-row: 2; justify-self: end; align-self: center; }
  .g8-wc-cart-page .g8-cart-product .product-remove { grid-column: 2; grid-row: 3; }
  .g8-cart-item__description { display: none; }
  .g8-wc-cart-page .g8-cart-summary-coupon { grid-template-columns: 1fr; gap: 8px; }
  .g8-wc-cart-page .g8-cart-summary-coupon #coupon_code,
  .g8-wc-cart-page .g8-cart-summary-coupon .button { border-radius: 6px; }
  .g8-checkout-summary-coupon__controls { grid-template-columns: 1fr; }
  .g8-checkout-summary-coupon,
  .g8-checkout-summary-coupon__controls,
  .g8-checkout-summary-coupon__controls input,
  .g8-checkout-summary-coupon__controls button { width: 100% !important; max-width: none !important; }
  .g8-wc-cart-page .shipping-calculator-form { grid-template-columns: 1fr; }
  .g8-wc-cart-page .shipping-calculator-form #calc_shipping_country_field,
  .g8-wc-cart-page .shipping-calculator-form #calc_shipping_postcode_field { grid-column: 1; }
}

@media (max-width: 360px) {
  .g8-wc-cart-page .woocommerce-cart-form tr.g8-cart-product { grid-template-rows: auto auto auto auto; }
  .g8-wc-cart-page .g8-cart-product .product-subtotal { grid-column: 2; grid-row: 3; justify-self: start; }
  .g8-wc-cart-page .g8-cart-product .product-remove { grid-column: 2; grid-row: 4; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Pro cart hierarchy: carton identity first, included units second. */
.g8-cart-item__offer{display:block;margin-top:2px;color:#65737b;font-size:.86rem;font-weight:400;line-height:1.25}
.g8-cart-item__rate{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:#f3f8fa;color:var(--g8-navy,#22314c);font-size:.72rem;font-weight:500}
.woocommerce-notices-wrapper .woocommerce-message,.woocommerce-notices-wrapper .woocommerce-info,.woocommerce-notices-wrapper .woocommerce-error{font-weight:400}

/* v1.0.192 (mission corrective ciblée §5/§6) : prix catalogue barré sur une
 * ligne panier/récapitulatif réellement remisée (Moteur 1 ou Moteur 3). */
.g8-cart-item-struck-price {
  color: var(--g8-muted, rgba(60, 60, 60, 0.68));
  text-decoration: line-through;
  font-weight: 400;
  margin-right: 4px;
}

/* v1.0.204 (P1, feedback immédiat ajout/retrait) -- snackbar panier,
 * indépendante des styles de shop.css/professional.css (namespace propre
 * pour ne pas dépendre de leur chargement sur la page panier/checkout). */
.g8-cart-snackbar {
  position: fixed;
  z-index: 10000;
  right: 24px;
  bottom: 24px;
  max-width: min(420px, calc(100vw - 32px));
  padding: 14px 18px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: var(--g8-navy, #22314c);
  color: #fff;
  box-shadow: 0 18px 44px -20px rgba(34, 49, 76, 0.7);
  font-size: 0.95rem;
  font-weight: 400;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.22s ease, transform 0.22s ease;
  pointer-events: none;
}
.g8-cart-snackbar.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Voile unique du tunnel : masque le HTML WooCommerce avant sa première
 * composition finale et accompagne les vraies navigations. Deux pseudo-
 * éléments seulement, aucune image ni police supplémentaire. */
html.g8-checkout-hydrating,
html.g8-checkout-navigating { cursor: progress; }
html.g8-checkout-hydrating body::before,
html.g8-checkout-navigating body::before {
  position: fixed;
  z-index: 999998;
  inset: 0;
  background: rgba(255,255,255,.94);
  content: "";
}
html.g8-checkout-hydrating body::after,
html.g8-checkout-navigating body::after {
  position: fixed;
  z-index: 999999;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  border: 3px solid rgba(34,49,76,.18);
  border-top-color: var(--g8-navy,#22314c);
  border-radius: 50%;
  content: "";
  animation: g8-checkout-spin .7s linear infinite;
}
@keyframes g8-checkout-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .g8-cart-snackbar { transition: none; }
  html.g8-checkout-hydrating body::after,
  html.g8-checkout-navigating body::after { animation: none; }
}

/* v1.0.250 — WooCommerce bascule ses tableaux responsifs avant notre ancien
 * breakpoint de 640 px. Entre les deux, ses cellules devenaient des blocs de
 * 58 % avec un retrait de 42 % et un pseudo-libellé « : ». Le récapitulatif
 * possède déjà ses propres libellés : on conserve donc sa vraie table sur
 * toute la plage mobile/tablette, sans toucher aux tableaux catalogue. */
@media (max-width: 782px) {
  .g8-wc-cart-page .cart_totals .shop_table,
  .g8-wc-cart-page .cart_totals .shop_table > tbody {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody {
    display: table-row-group !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr {
    display: table-row !important;
    width: auto !important;
    max-width: none !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > th,
  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > td {
    display: table-cell !important;
    box-sizing: border-box !important;
    float: none !important;
    min-width: 0 !important;
    max-width: none !important;
    padding-right: var(--g8-recap-zone-px-mobile, 8px) !important;
    padding-left: var(--g8-recap-zone-px-mobile, 8px) !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > th {
    width: 38% !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > td {
    width: 62% !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > th[colspan="2"],
  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > td[colspan="2"] {
    width: 100% !important;
  }

  /* Une ligne de livraison colspan=2 possède aussi un <th hidden> natif.
   * Ne jamais le ressusciter : il réduisait de nouveau la valeur à droite. */
  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > th[hidden] {
    display: none !important;
  }

  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > td::before,
  .g8-wc-cart-page .cart_totals .shop_table > tbody > tr > th::before {
    display: none !important;
    content: none !important;
  }

  .g8-wc-cart-page .cart_totals .g8-cart-summary-coupon,
  .g8-wc-cart-page .cart_totals .g8-cart-shipping-accordion,
  .g8-wc-cart-page .cart_totals .shipping-calculator-form,
  .g8-wc-cart-page .cart_totals .g8-advantages-detail-accordion,
  .g8-wc-cart-page .cart_totals .wc-proceed-to-checkout,
  .g8-wc-cart-page .cart_totals .checkout-button {
    width: 100% !important;
    max-width: none !important;
  }

  /* Les coupons de livraison gratuits peuvent rendre un libellé textuel à
   * la place d'un montant. Il doit se replier proprement, jamais comprimer la
   * table ni fusionner visuellement avec le lien Enlever. */
  .g8-wc-cart-page .cart_totals .g8-cart-coupon-applied-row td {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
}
