/* =========================================================================
   AN NAJM — PANIER ET COMMANDE (refonte 2026)
   Fichier : wp-content/themes/annajm-child/assets/css/annajm-shop.css
   Chargé uniquement sur le panier, la commande et la confirmation
   (functions.php, section 9.1). Périmètre : body.annajm-shop.

   Panier   : blocs WooCommerce (.wp-block-woocommerce-cart). La mise en
              page responsive des blocs est conservée ; seul l'habillage
              change (charte, lisibilité, zones tactiles).
   Commande : shortcode classique (form.checkout). Deux colonnes à partir
              de 1 025 px (coordonnées | récapitulatif et paiement), une
              colonne en dessous.

   Aucun formulaire de paiement n'est restylé à l'intérieur : les champs
   de carte de Stripe et les boutons PayPal restent ceux des prestataires.

   1. Variables
   2. Base commune (titres, liens, boutons, champs, notices)
   3. Panier (blocs)
   4. Panier vide
   5. Commande : mise en page
   6. Commande : champs du formulaire
   7. Commande : récapitulatif, livraison, paiement
   8. Bloc « Paiement rapide et sécurisé » et accord numérique
   9. Confirmation de commande
   10. Accessibilité, mouvement réduit, impression
   ========================================================================= */


/* -------------------------------------------------------------------------
   1. VARIABLES
   ------------------------------------------------------------------------- */
body.annajm-shop {
  --as-navy:        var(--global-palette6, #2C3E50);
  --as-navy-deep:   #1A252F;
  --as-gold:        var(--global-palette1, #D4A574);
  --as-gold-soft:   #E6BF8A;
  --as-ink-gold:    #8A6038;                 /* 5,4:1 sur fond clair */
  --as-text:        #2C3E50;                 /* 10,4:1 sur blanc */
  --as-muted:       #55606B;                 /* 6,2:1 sur blanc */
  --as-cream:       #FEFCF8;
  --as-sand:        #F5F2ED;
  --as-card:        #FFFFFF;
  --as-line:        #E8E3D8;
  --as-line-strong: #D9D1C2;
  --as-success:     #2F6B3F;                 /* 6,1:1 sur blanc */
  --as-success-bg:  #EEF6F0;
  --as-danger:      #9B2C2C;                 /* 7,6:1 sur blanc */
  --as-danger-bg:   #FBEFEF;
  --as-info-bg:     #F3F6F9;
  --as-font-heading: var(--anjm-font-heading, 'Crimson Text', Georgia, serif);
  --as-font-body:    var(--anjm-font-body, 'Inter', system-ui, -apple-system, sans-serif);
  --as-radius:      12px;
  --as-radius-sm:   8px;
  --as-field-h:     48px;
  --as-shadow:      0 1px 2px rgba(26, 37, 47, 0.05), 0 8px 24px rgba(26, 37, 47, 0.06);
  --as-focus:       0 0 0 3px rgba(212, 165, 116, 0.45);
  --as-dur:         0.2s;
}


/* -------------------------------------------------------------------------
   2. BASE COMMUNE
   ------------------------------------------------------------------------- */
body.annajm-shop .entry-content,
body.annajm-shop .wp-block-woocommerce-cart,
body.annajm-shop form.checkout {
  font-family: var(--as-font-body);
  color: var(--as-text);
}

/* Titre de page dans le contenu (réglage Kadence « titre dans le contenu »).
   Dans le bandeau marine, le titre reste crème (annajm-ui.css, section 3). */
body.annajm-shop #primary .entry-title,
body.annajm-shop #primary .page-title {
  font-family: var(--as-font-heading);
  font-weight: 600;
  color: var(--as-navy);
  letter-spacing: -0.01em;
}

body.annajm-shop .wp-block-woocommerce-cart h2,
body.annajm-shop form.checkout h3,
body.annajm-shop .woocommerce-order h2 {
  font-family: var(--as-font-heading);
  font-weight: 600;
  color: var(--as-navy);
  line-height: 1.2;
}

body.annajm-shop .wc-block-components-totals-wrapper a,
body.annajm-shop .wc-block-components-product-metadata a,
body.annajm-shop form.checkout a,
body.annajm-shop .woocommerce-form-coupon-toggle a,
body.annajm-shop .woocommerce-form-login-toggle a {
  color: var(--as-ink-gold);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.annajm-shop .wc-block-components-totals-wrapper a:hover,
body.annajm-shop .wc-block-components-product-metadata a:hover,
body.annajm-shop form.checkout a:hover {
  color: var(--as-navy);
}

/* Focus visible partout (clavier) */
body.annajm-shop .wp-block-woocommerce-cart :focus-visible,
body.annajm-shop form.checkout :focus-visible,
body.annajm-shop .woocommerce-form-coupon-toggle :focus-visible,
body.annajm-shop .annajm-cart-empty :focus-visible {
  outline: 2px solid var(--as-ink-gold);
  outline-offset: 2px;
}

/* Bouton principal (panier : « Valider la commande » ; commande : bouton final) */
body.annajm-shop .wc-block-cart__submit-button,
body.annajm-shop form.checkout #place_order,
body.annajm-shop .annajm-cart-empty__button {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  margin: 0;
  padding: 14px 20px;
  border: 0;
  border-radius: var(--as-radius-sm);
  background: var(--as-navy);
  color: var(--as-cream);
  font-family: var(--as-font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  transition: background-color var(--as-dur) ease;
}

body.annajm-shop .wc-block-cart__submit-button:hover,
body.annajm-shop form.checkout #place_order:hover,
body.annajm-shop .annajm-cart-empty__button:hover {
  background: var(--as-navy-deep);
  color: var(--as-cream);
}

body.annajm-shop .wc-block-cart__submit-button .wc-block-components-button__text {
  color: inherit;
}

/* Bouton en cours de traitement (WooCommerce ajoute .processing au form) */
body.annajm-shop form.checkout.processing #place_order {
  opacity: 0.7;
  cursor: progress;
}

/* Notices : succès, information, erreur */
body.annajm-shop .woocommerce-message,
body.annajm-shop .woocommerce-info,
body.annajm-shop .woocommerce-error,
body.annajm-shop .wc-block-components-notice-banner {
  margin: 0 0 20px;
  padding: 14px 16px 14px 18px;
  border: 1px solid var(--as-line);
  border-left-width: 4px;
  border-radius: var(--as-radius-sm);
  background: var(--as-info-bg);
  color: var(--as-text);
  font-size: 0.9375rem;
  line-height: 1.5;
  list-style: none;
}

body.annajm-shop .woocommerce-message,
body.annajm-shop .wc-block-components-notice-banner.is-success {
  border-left-color: var(--as-success);
  background: var(--as-success-bg);
}

body.annajm-shop .woocommerce-info,
body.annajm-shop .wc-block-components-notice-banner.is-info {
  border-left-color: var(--as-navy);
}

body.annajm-shop .woocommerce-error,
body.annajm-shop .wc-block-components-notice-banner.is-error {
  border-left-color: var(--as-danger);
  background: var(--as-danger-bg);
  color: var(--as-danger);
}

body.annajm-shop .woocommerce-error li + li {
  margin-top: 6px;
}

body.annajm-shop .woocommerce-error::before,
body.annajm-shop .woocommerce-info::before,
body.annajm-shop .woocommerce-message::before {
  display: none;
}


/* -------------------------------------------------------------------------
   3. PANIER (blocs WooCommerce)
   ------------------------------------------------------------------------- */
body.annajm-shop .wp-block-woocommerce-cart {
  margin-top: 8px;
}

/* Colonne des articles : carte claire */
body.annajm-shop .wc-block-cart__main {
  padding: 8px 24px 16px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-card);
  box-shadow: var(--as-shadow);
}

body.annajm-shop .wc-block-cart-items {
  margin: 0;
  border: 0;
}

body.annajm-shop .wc-block-cart-items__header {
  border-bottom: 1px solid var(--as-line);
}

body.annajm-shop .wc-block-cart-items__header th,
body.annajm-shop .wc-block-cart-items__header span {
  color: var(--as-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.annajm-shop .wc-block-cart-items__row {
  border-bottom: 1px solid var(--as-line);
}

body.annajm-shop .wc-block-cart-items__row:last-child {
  border-bottom: 0;
}

/* Grand écran uniquement : sur mobile, WooCommerce passe chaque ligne en
   grille (.is-small / .is-mobile) et gère lui-même les espacements. */
body.annajm-shop .is-large table.wc-block-cart-items .wc-block-cart-items__row td {
  padding-top: 20px;
  padding-bottom: 20px;
  vertical-align: top;
}

/* Petits conteneurs (.is-small / .is-mobile) : la grille de WooCommerce
   (colonnes fixes 80 px + 132 px + total) déborde sous ~310 px de large.
   Colonnes fluides : couverture | détails | total. */
body.annajm-shop .is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
body.annajm-shop .is-small table.wc-block-cart-items .wc-block-cart-items__row {
  grid-template-columns: 64px minmax(0, 1fr) auto;
  column-gap: 12px;
}

body.annajm-shop .is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image,
body.annajm-shop .is-small table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
  grid-column: 1;
  padding-right: 0;
}

body.annajm-shop .is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product,
body.annajm-shop .is-small table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product {
  grid-column: 2;
  min-width: 0;
}

body.annajm-shop .is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total,
body.annajm-shop .is-small table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
  grid-column: 3;
  grid-row: 1;
}

body.annajm-shop .is-mobile .wc-block-components-quantity-selector {
  min-width: 120px;
}

@media (max-width: 400px) {
  body.annajm-shop .wc-block-cart__main {
    padding-inline: 12px;
  }
}

/* Couverture : proportions du livre, fond sable */
body.annajm-shop .wc-block-cart-item__image img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  background: var(--as-sand);
  box-shadow: 0 1px 2px rgba(26, 37, 47, 0.12);
}

body.annajm-shop .wc-block-cart-item__product .wc-block-components-product-name {
  display: inline-block;
  margin-bottom: 6px;
  color: var(--as-navy);
  font-family: var(--as-font-heading);
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
}

body.annajm-shop .wc-block-cart-item__product .wc-block-components-product-name:hover {
  color: var(--as-ink-gold);
  text-decoration: underline;
}

/* Prix unitaire et variations */
body.annajm-shop .wc-block-cart-item__prices,
body.annajm-shop .wc-block-components-product-metadata {
  color: var(--as-muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

body.annajm-shop .wc-block-components-product-details {
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

body.annajm-shop .wc-block-components-product-details__name {
  font-weight: 600;
}

/* Sous-total de la ligne */
body.annajm-shop .wc-block-cart-item__total .wc-block-components-product-price,
body.annajm-shop .wc-block-cart-item__total .wc-block-formatted-money-amount {
  color: var(--as-navy);
  font-size: 1.0625rem;
  font-weight: 700;
  white-space: nowrap;
}

body.annajm-shop .wc-block-components-product-sale-badge {
  border: 1px solid var(--as-ink-gold);
  border-radius: 100px;
  background: transparent;
  color: var(--as-ink-gold);
  font-size: 0.75rem;
  font-weight: 600;
}

/* Quantité : boutons de 44 px, valeur lisible */
body.annajm-shop .wc-block-cart-item__quantity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin-top: 14px;
}

body.annajm-shop .wc-block-components-quantity-selector {
  display: inline-flex;
  align-items: stretch;
  width: auto;
  min-width: 132px;
  margin: 0;
  border: 1px solid var(--as-line-strong);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  overflow: hidden;
}

body.annajm-shop .wc-block-components-quantity-selector::after {
  display: none;
}

body.annajm-shop .wc-block-components-quantity-selector__button {
  min-width: 44px;
  min-height: 44px;
  border: 0;
  background: var(--as-sand);
  color: var(--as-navy);
  font-size: 1.125rem;
  font-weight: 600;
  opacity: 1;
  cursor: pointer;
}

body.annajm-shop .wc-block-components-quantity-selector__button:hover:not(:disabled) {
  background: var(--as-line);
}

body.annajm-shop .wc-block-components-quantity-selector__button:disabled {
  color: var(--as-line-strong);
  cursor: not-allowed;
}

body.annajm-shop .wc-block-components-quantity-selector__input {
  width: 44px;
  min-height: 44px;
  border: 0;
  background: var(--as-card);
  color: var(--as-text);
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  box-shadow: none;
}

/* Suppression : icône corbeille de WooCommerce (libellé accessible
   « Retirer … du panier »). Zone tactile portée à 44 px par une marge
   intérieure compensée, sans changer son affichage ni la mise en page. */
body.annajm-shop table.wc-block-cart-items .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
  margin: -10px;
  padding: 10px;
  border-radius: 50%;
  color: var(--as-muted);
  box-sizing: content-box;
}

body.annajm-shop table.wc-block-cart-items .wc-block-cart-item__quantity .wc-block-cart-item__remove-link:hover {
  background: var(--as-danger-bg);
  color: var(--as-danger);
}

body.annajm-shop table.wc-block-cart-items .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg {
  display: block;
  fill: currentColor;
}

/* Récapitulatif : carte, total mis en avant */
body.annajm-shop .wc-block-cart__sidebar {
  align-self: start;
  padding: 20px 24px 24px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-cream);
  box-shadow: var(--as-shadow);
}

body.annajm-shop .wc-block-cart__totals-title {
  margin: 0 0 4px;
  padding: 0;
  color: var(--as-navy);
  font-family: var(--as-font-heading);
  font-size: 1.375rem;
  font-weight: 600;
  text-align: left;
  text-transform: none;
}

body.annajm-shop .wc-block-components-totals-wrapper {
  border-top-color: var(--as-line);
}

body.annajm-shop .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block > .wc-block-components-totals-wrapper:first-child {
  border-top: 0;
  padding-top: 0;
}

body.annajm-shop .wc-block-components-totals-item__label,
body.annajm-shop .wc-block-components-totals-item__value {
  font-size: 0.9375rem;
}

body.annajm-shop .wc-block-components-totals-item__description {
  color: var(--as-muted);
  font-size: 0.8125rem;
}

body.annajm-shop .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.annajm-shop .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--as-navy);
  font-size: 1.25rem;
  font-weight: 700;
}

/* Code promo : panneau repliable lisible, champ de 48 px */
body.annajm-shop .wc-block-components-totals-coupon .wc-block-components-panel__button {
  min-height: 44px;
  color: var(--as-navy);
  font-size: 0.9375rem;
  font-weight: 600;
}

body.annajm-shop .wc-block-components-text-input input,
body.annajm-shop .wc-block-components-totals-coupon__input input {
  min-height: var(--as-field-h);
  border: 1px solid var(--as-line-strong);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  font-size: 1rem;
}

body.annajm-shop .wc-block-components-text-input input:focus {
  border-color: var(--as-navy);
  box-shadow: var(--as-focus);
}

body.annajm-shop .wc-block-components-totals-coupon__button {
  min-height: var(--as-field-h);
  border: 1px solid var(--as-navy);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  color: var(--as-navy);
  font-weight: 600;
}

body.annajm-shop .wc-block-components-totals-coupon__button:hover:not(:disabled) {
  background: var(--as-navy);
  color: var(--as-cream);
}

/* Code promo appliqué : étiquette */
body.annajm-shop .wc-block-components-chip {
  border: 1px solid var(--as-line-strong);
  border-radius: 100px;
  background: var(--as-card);
  color: var(--as-navy);
}

/* Erreur de champ (code refusé) */
body.annajm-shop .wc-block-components-validation-error {
  color: var(--as-danger);
  font-size: 0.875rem;
}

/* Bouton « Valider la commande » et moyens de paiement acceptés */
body.annajm-shop .wc-block-cart__submit-container {
  padding-top: 8px;
}

body.annajm-shop .wc-block-cart__payment-options,
body.annajm-shop .wc-block-components-express-payment--cart {
  margin-top: 12px;
}

/* Mobile : barre fixe du bouton (fournie par WooCommerce) aux couleurs */
body.annajm-shop .wc-block-cart__submit-container--sticky {
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--as-line);
  background: var(--as-cream);
  box-shadow: 0 -6px 18px rgba(26, 37, 47, 0.08);
}

body.annajm-shop .wc-block-cart__submit-container--sticky::before {
  display: none;
}

/* Produits suggérés (ventes croisées réelles, si renseignées) */
body.annajm-shop .wp-block-woocommerce-cart-cross-sells-block h2,
body.annajm-shop .wp-block-woocommerce-product-collection h2 {
  margin-top: 32px;
  font-size: 1.375rem;
}

/* Chargement des blocs : squelette discret */
body.annajm-shop .wp-block-woocommerce-cart.is-loading {
  min-height: 320px;
}


/* -------------------------------------------------------------------------
   4. PANIER VIDE (contenu fourni par functions.php, section 9.2)
   ------------------------------------------------------------------------- */
body.annajm-shop .annajm-cart-empty {
  max-width: 560px;
  margin: 8px auto 32px;
  padding: 40px 28px 32px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-cream);
  box-shadow: var(--as-shadow);
  text-align: center;
}

body.annajm-shop .annajm-cart-empty__icon {
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto 12px;
  color: var(--as-gold);
}

body.annajm-shop .annajm-cart-empty__title {
  margin: 0;
  color: var(--as-navy);
  font-family: var(--as-font-heading);
  font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2rem);
  font-weight: 600;
  line-height: 1.15;
}

body.annajm-shop .annajm-cart-empty__text {
  margin: 10px auto 0;
  max-width: 34em;
  color: var(--as-muted);
  font-size: 1rem;
  line-height: 1.6;
}

body.annajm-shop .annajm-cart-empty__actions {
  max-width: 320px;
  margin: 24px auto 0;
}

body.annajm-shop .annajm-cart-empty__collections {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--as-line);
}

body.annajm-shop .annajm-cart-empty__label {
  margin: 0 0 12px;
  color: var(--as-muted);
  font-size: 0.875rem;
}

body.annajm-shop .annajm-cart-empty__collections ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.annajm-shop .annajm-cart-empty__collections a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid var(--as-line-strong);
  border-radius: 100px;
  background: var(--as-card);
  color: var(--as-navy);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transition: border-color var(--as-dur) ease, background-color var(--as-dur) ease;
}

body.annajm-shop .annajm-cart-empty__collections a:hover {
  border-color: var(--as-gold);
  background: var(--as-sand);
}


/* -------------------------------------------------------------------------
   5. COMMANDE : MISE EN PAGE
   ------------------------------------------------------------------------- */
body.annajm-shop .annajm-checkout-required {
  margin: 0 0 16px;
  color: var(--as-muted);
  font-size: 0.875rem;
}

/* WooCommerce masque les astérisques (visibility: hidden) : on les montre,
   puisque la mention en tête du formulaire y renvoie. */
body.annajm-shop .annajm-checkout-required abbr,
body.annajm-shop form.checkout .form-row abbr.required,
body.annajm-shop form.checkout abbr.required {
  visibility: visible;
  color: var(--as-danger);
  font-weight: 700;
  text-decoration: none;
  border: 0;
}

/* Liens « Vous avez un code promo ? » / « Déjà client ? » */
body.annajm-shop .woocommerce-form-coupon-toggle .woocommerce-info,
body.annajm-shop .woocommerce-form-login-toggle .woocommerce-info {
  border-left-color: var(--as-gold);
  background: var(--as-cream);
}

body.annajm-shop form.checkout_coupon,
body.annajm-shop form.woocommerce-form-login {
  margin: 0 0 24px;
  padding: 20px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-card);
}

/* Blocs de contenu de la commande : cartes */
body.annajm-shop form.checkout #customer_details,
body.annajm-shop form.checkout #order_review {
  padding: 24px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-card);
  box-shadow: var(--as-shadow);
}

body.annajm-shop form.checkout #order_review {
  background: var(--as-cream);
}

body.annajm-shop form.checkout #order_review_heading {
  margin: 0 0 12px;
  font-size: 1.5rem;
}

/* Les deux blocs de coordonnées l'un sous l'autre (jamais côte à côte
   dans une colonne étroite) */
body.annajm-shop form.checkout .col2-set {
  display: block;
  width: 100%;
}

body.annajm-shop form.checkout .col2-set .col-1,
body.annajm-shop form.checkout .col2-set .col-2 {
  float: none;
  width: 100%;
  max-width: none;
  padding: 0;
}

body.annajm-shop form.checkout .col2-set .col-2 {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--as-line);
}

body.annajm-shop form.checkout .col2-set::before,
body.annajm-shop form.checkout .col2-set::after {
  display: none;
}

body.annajm-shop form.checkout .woocommerce-billing-fields > h3,
body.annajm-shop form.checkout .woocommerce-additional-fields > h3,
body.annajm-shop form.checkout #ship-to-different-address {
  margin: 0 0 16px;
  font-size: 1.375rem;
}

/* Ordinateur : coordonnées à gauche, récapitulatif et paiement à droite.
   On garde la mise en page native de Kadence / WooCommerce (blocs
   flottants) et on ajuste seulement les largeurs. Pas de grille CSS :
   les extensions de paiement ajoutent leurs propres blocs dans le
   formulaire (paiement express Stripe et PayPal) et Kadence fixe des
   largeurs en % qui, dans une grille, réduisaient la colonne de droite
   de moitié (bug du 14/10). */
body.annajm-shop form.checkout.woocommerce-checkout {
  display: flow-root;                        /* contient les flottants */
}

body.annajm-shop form.checkout.woocommerce-checkout > #customer_details,
body.annajm-shop form.checkout.woocommerce-checkout > #order_review_heading,
body.annajm-shop form.checkout.woocommerce-checkout > #order_review {
  box-sizing: border-box;
  max-width: none;
}

@media (min-width: 1025px) {
  body.annajm-shop form.checkout.woocommerce-checkout > #customer_details {
    float: left;
    clear: left;
    width: calc(57% - 20px);
    margin: 0;
  }

  body.annajm-shop form.checkout.woocommerce-checkout > #order_review_heading,
  body.annajm-shop form.checkout.woocommerce-checkout > #order_review {
    float: right;
    clear: right;
    width: calc(43% - 20px);
    margin-left: 0;
    margin-right: 0;
  }

  /* Tout autre bloc du formulaire (paiement express, messages) : pleine largeur */
  body.annajm-shop form.checkout.woocommerce-checkout > :not(#customer_details):not(#order_review_heading):not(#order_review) {
    clear: both;
    float: none;
    width: auto;
  }
}

/* Tablette et mobile : une colonne, récapitulatif après les coordonnées */
@media (max-width: 1024px) {
  body.annajm-shop form.checkout.woocommerce-checkout > #customer_details,
  body.annajm-shop form.checkout.woocommerce-checkout > #order_review_heading,
  body.annajm-shop form.checkout.woocommerce-checkout > #order_review {
    float: none;
    width: auto;
    margin-left: 0;
    margin-right: 0;
  }

  body.annajm-shop form.checkout #order_review_heading {
    margin-top: 28px;
  }
}


/* Paiement express (Google Pay / Apple Pay via Stripe, PayPal) :
   un seul bloc « Paiement express » au lieu de deux encadrés et de deux
   séparateurs « OR » / « OU ». Les boutons restent ceux des prestataires. */
body.annajm-shop .wc-stripe-banner-checkout,
body.annajm-shop .wc-ppcp-express-checkout {
  box-sizing: border-box;
  max-width: 720px;
  margin: 0 auto 12px;
}

body.annajm-shop .wc-stripe-banner-checkout fieldset,
body.annajm-shop .wc-ppcp-express-checkout fieldset {
  min-width: 0;
  margin: 0;
  padding: 18px 20px 20px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-card);
  box-shadow: var(--as-shadow);
}

body.annajm-shop .wc-stripe-banner-checkout legend,
body.annajm-shop .wc-ppcp-express-checkout legend {
  margin: 0 auto;
  padding: 0 12px;
  color: var(--as-navy);
  font-family: var(--as-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}

body.annajm-shop .wc-stripe-banner-checkout ul {
  margin: 0;
  padding: 0;
}

body.annajm-shop .wc-stripe-banner-checkout li {
  margin: 0;
}

/* Les deux prestataires présents : un seul encadré visuel */
body.annajm-shop .wc-stripe-banner-checkout.active:has(+ .wc-ppcp-express-checkout) {
  margin-bottom: 0;
}

body.annajm-shop .wc-stripe-banner-checkout.active:has(+ .wc-ppcp-express-checkout) fieldset {
  padding-bottom: 8px;
  border-bottom: 0;
  border-radius: var(--as-radius) var(--as-radius) 0 0;
  box-shadow: none;
}

body.annajm-shop .wc-stripe-banner-checkout.active:has(+ .wc-ppcp-express-checkout) .banner-divider {
  display: none;
}

body.annajm-shop .wc-stripe-banner-checkout.active + .wc-ppcp-express-checkout fieldset {
  padding-top: 8px;
  border-top: 0;
  border-radius: 0 0 var(--as-radius) var(--as-radius);
}

body.annajm-shop .wc-stripe-banner-checkout.active + .wc-ppcp-express-checkout legend {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* Séparateur « ou » avant le formulaire */
body.annajm-shop .wc-stripe-banner-checkout .banner-divider,
body.annajm-shop .wc-ppcp-express-checkout .wc-ppcp-express-divider,
body.annajm-shop .wc-ppcp-express-checkout .express-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: 720px;
  margin: 18px auto 22px;
  color: var(--as-muted);
  font-family: var(--as-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.annajm-shop .wc-stripe-banner-checkout .banner-divider::before,
body.annajm-shop .wc-stripe-banner-checkout .banner-divider::after,
body.annajm-shop .wc-ppcp-express-checkout .wc-ppcp-express-divider::before,
body.annajm-shop .wc-ppcp-express-checkout .wc-ppcp-express-divider::after,
body.annajm-shop .wc-ppcp-express-checkout .express-divider::before,
body.annajm-shop .wc-ppcp-express-checkout .express-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--as-line-strong);
}


/* -------------------------------------------------------------------------
   6. COMMANDE : CHAMPS DU FORMULAIRE
   ------------------------------------------------------------------------- */
body.annajm-shop form.checkout .form-row {
  margin: 0 0 16px;
  padding: 0;
}

body.annajm-shop form.checkout .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) {
  display: block;
  margin: 0 0 6px;
  color: var(--as-navy);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
}

body.annajm-shop form.checkout .form-row label .optional {
  color: var(--as-muted);
  font-weight: 400;
}

body.annajm-shop form.checkout .input-text,
body.annajm-shop form.checkout select,
body.annajm-shop form.checkout textarea,
body.annajm-shop form.checkout .select2-container .select2-selection--single,
body.annajm-shop form.checkout_coupon .input-text {
  width: 100%;
  min-height: var(--as-field-h);
  padding: 11px 14px;
  border: 1px solid var(--as-line-strong);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  color: var(--as-text);
  font-family: var(--as-font-body);
  font-size: 1rem;                          /* 16 px : pas de zoom sur iPhone */
  line-height: 1.4;
  box-shadow: none;
  transition: border-color var(--as-dur) ease, box-shadow var(--as-dur) ease;
}

body.annajm-shop form.checkout textarea {
  min-height: 96px;
}

body.annajm-shop form.checkout .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
  height: auto;
}

body.annajm-shop form.checkout .select2-container .select2-selection__rendered {
  padding: 0;
  color: var(--as-text);
  line-height: 1.4;
}

body.annajm-shop form.checkout .select2-container .select2-selection__arrow {
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}

body.annajm-shop form.checkout .input-text:focus,
body.annajm-shop form.checkout select:focus,
body.annajm-shop form.checkout textarea:focus,
body.annajm-shop form.checkout .select2-container--focus .select2-selection--single,
body.annajm-shop form.checkout .select2-container--open .select2-selection--single {
  border-color: var(--as-navy);
  outline: none;
  box-shadow: var(--as-focus);
}

/* Champ en erreur (WooCommerce : .woocommerce-invalid) */
body.annajm-shop form.checkout .woocommerce-invalid .input-text,
body.annajm-shop form.checkout .woocommerce-invalid select,
body.annajm-shop form.checkout .woocommerce-invalid .select2-selection--single {
  border-color: var(--as-danger);
  box-shadow: 0 0 0 1px var(--as-danger);
}

body.annajm-shop form.checkout .woocommerce-invalid label {
  color: var(--as-danger);
}

body.annajm-shop form.checkout .checkout-inline-error-message {
  margin: 6px 0 0;
  color: var(--as-danger);
  font-size: 0.8125rem;
}

/* Champ validé */
body.annajm-shop form.checkout .woocommerce-validated .input-text {
  border-color: var(--as-line-strong);
}

/* Prénom / nom côte à côte à partir de 560 px seulement */
@media (max-width: 559px) {
  body.annajm-shop form.checkout .form-row-first,
  body.annajm-shop form.checkout .form-row-last {
    float: none;
    width: 100%;
  }
}

/* Cases à cocher : zone tactile confortable */
body.annajm-shop form.checkout .woocommerce-form__label-for-checkbox,
body.annajm-shop form.checkout label.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
}

body.annajm-shop form.checkout input[type="checkbox"],
body.annajm-shop form.checkout input[type="radio"] {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--as-navy);
  cursor: pointer;
}

body.annajm-shop form.checkout #ship-to-different-address label {
  font-family: var(--as-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--as-navy);
}


/* -------------------------------------------------------------------------
   7. COMMANDE : RÉCAPITULATIF, LIVRAISON, PAIEMENT
   ------------------------------------------------------------------------- */
/* Récapitulatif : lignes souples plutôt que tableau à 2 colonnes étroites
   (le choix du transporteur prend toute la largeur, aucun débordement). */
body.annajm-shop .woocommerce-checkout-review-order-table,
body.annajm-shop .woocommerce-checkout-review-order-table thead,
body.annajm-shop .woocommerce-checkout-review-order-table tbody,
body.annajm-shop .woocommerce-checkout-review-order-table tfoot {
  display: block;
  width: 100%;
}

body.annajm-shop .woocommerce-checkout-review-order-table {
  margin: 0 0 20px;
  border: 0;
  font-size: 0.9375rem;
}

body.annajm-shop .woocommerce-checkout-review-order-table tr {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 4px 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--as-line);
}

body.annajm-shop .woocommerce-checkout-review-order-table th,
body.annajm-shop .woocommerce-checkout-review-order-table td {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}

body.annajm-shop .woocommerce-checkout-review-order-table thead tr {
  padding-top: 0;
}

body.annajm-shop .woocommerce-checkout-review-order-table thead th {
  color: var(--as-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.annajm-shop .woocommerce-checkout-review-order-table .product-name {
  flex: 1 1 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

body.annajm-shop .woocommerce-checkout-review-order-table .product-total,
body.annajm-shop .woocommerce-checkout-review-order-table tfoot td {
  flex: none;
  text-align: right;
  white-space: nowrap;
}

body.annajm-shop .woocommerce-checkout-review-order-table .product-quantity {
  color: var(--as-muted);
  font-weight: 600;
  white-space: nowrap;
}

body.annajm-shop .woocommerce-checkout-review-order-table tfoot th {
  font-weight: 500;
}

body.annajm-shop .woocommerce-checkout-review-order-table .order-total {
  padding-top: 16px;
  border-bottom: 0;
}

body.annajm-shop .woocommerce-checkout-review-order-table .order-total th,
body.annajm-shop .woocommerce-checkout-review-order-table .order-total td {
  color: var(--as-navy);
  font-size: 1.25rem;
  font-weight: 700;
}

body.annajm-shop .woocommerce-checkout-review-order-table .order-total .includes_tax {
  display: block;
  color: var(--as-muted);
  font-size: 0.8125rem;
  font-weight: 400;
}

/* Ligne « Expédition » : libellé puis choix sur toute la largeur */
body.annajm-shop .woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-totals th,
body.annajm-shop .woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-totals td {
  flex: 1 1 100%;
  text-align: left;
  white-space: normal;
}

/* Modes de livraison : lignes cliquables, prix aligné */
body.annajm-shop #shipping_method {
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

body.annajm-shop #shipping_method li {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 4px 10px;
  margin: 0 0 8px;
  padding: 10px 12px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  text-indent: 0;
}

body.annajm-shop #shipping_method li:has(input:checked) {
  border-color: var(--as-navy);
  box-shadow: inset 0 0 0 1px var(--as-navy);
}

body.annajm-shop #shipping_method li label {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-weight: 500;
  cursor: pointer;
}

/* Moyens de paiement : cartes sélectionnables */
body.annajm-shop #payment {
  border-radius: 0;
  background: transparent;
}

body.annajm-shop #payment ul.payment_methods {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  list-style: none;
}

body.annajm-shop #payment ul.payment_methods > li {
  margin: 0 0 10px;
  padding: 14px 16px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  line-height: 1.4;
}

body.annajm-shop #payment ul.payment_methods > li:has(> input:checked) {
  border-color: var(--as-navy);
  box-shadow: inset 0 0 0 1px var(--as-navy);
}

/* Kadence habille chaque libellé (fond sable, barre de 5 px à gauche,
   marges) : neutralisé, la carte entière porte l'état sélectionné. */
body.annajm-shop #payment ul.payment_methods > li > label,
body.annajm-shop #payment ul.payment_methods > li > input:checked + label {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  width: auto;
  max-width: calc(100% - 32px);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--as-navy);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  vertical-align: middle;
  cursor: pointer;
}

body.annajm-shop #payment ul.payment_methods > li > input[type="radio"] {
  margin: 0 10px 0 0;
  vertical-align: middle;
}

body.annajm-shop #payment ul.payment_methods > li > label img {
  display: inline-block;
  float: none;
  width: auto;
  max-width: 100%;
  max-height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  vertical-align: middle;
}

body.annajm-shop #payment ul.payment_methods > li > label::before,
body.annajm-shop #payment ul.payment_methods > li > label::after {
  display: none;
}

/* Carte entière cliquable visuellement : survol discret */
body.annajm-shop #payment ul.payment_methods > li:hover {
  border-color: var(--as-line-strong);
}

/* Zone propre à chaque prestataire : fond neutre, pas de flèche décorative */
body.annajm-shop #payment div.payment_box {
  margin: 12px 0 0;
  padding: 12px 0 0;
  border-top: 1px solid var(--as-line);
  background: transparent;
  color: var(--as-text);
  font-size: 0.875rem;
}

body.annajm-shop #payment div.payment_box::before {
  display: none;
}

body.annajm-shop #payment .place-order {
  margin: 0;
  padding: 0;
}

/* Conditions générales et confidentialité */
body.annajm-shop .woocommerce-terms-and-conditions-wrapper {
  margin: 0 0 16px;
}

body.annajm-shop .woocommerce-privacy-policy-text p {
  margin: 0 0 12px;
  color: var(--as-muted);
  font-size: 0.8125rem;
  line-height: 1.55;
}

body.annajm-shop .woocommerce-terms-and-conditions-wrapper .form-row {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
}

body.annajm-shop .woocommerce-terms-and-conditions {
  max-height: 240px;
  margin: 0 0 12px;
  padding: 12px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  font-size: 0.875rem;
}

body.annajm-shop .annajm-checkout-withdrawal {
  margin: 12px 0 16px;
  color: var(--as-muted);
  font-size: 0.8125rem;
  line-height: 1.55;
}

/* Bouton final : pleine largeur, toujours sous les yeux après les CGV */
body.annajm-shop form.checkout #place_order {
  float: none;
  margin-top: 4px;
  white-space: normal;                       /* WooCommerce : nowrap */
  text-wrap: balance;
}


/* -------------------------------------------------------------------------
   8. BLOC « PAIEMENT RAPIDE ET SÉCURISÉ » ET ACCORD NUMÉRIQUE
   ------------------------------------------------------------------------- */
body.annajm-shop .annajm-securepay {
  margin: 4px 0 16px;
  padding: 14px 16px;
  border: 1px solid rgba(212, 165, 116, 0.45);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
}

body.annajm-shop .annajm-securepay__head {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.annajm-shop .annajm-securepay__icon {
  flex: none;
  color: var(--as-ink-gold);
}

body.annajm-shop form.checkout .annajm-securepay__title,
body.annajm-shop .annajm-securepay__title {
  margin: 0;
  color: var(--as-navy);
  font-family: var(--as-font-body);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
}

body.annajm-shop .annajm-securepay__text {
  margin: 6px 0 0;
  color: var(--as-text);
  font-size: 0.8125rem;
  line-height: 1.55;
}

body.annajm-shop .annajm-securepay__list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
  color: var(--as-muted);
  font-size: 0.75rem;
  line-height: 1.5;
}

body.annajm-shop .annajm-securepay__list li {
  position: relative;
  margin: 0;
  padding-left: 12px;
}

body.annajm-shop .annajm-securepay__list li::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--as-gold);
}

/* Accord exprès pour les contenus numériques */
body.annajm-shop .annajm-digital-consent {
  min-width: 0;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid var(--as-line-strong);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
}

body.annajm-shop .annajm-digital-consent__title {
  float: left;                               /* légende dans la boîte */
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  color: var(--as-navy);
  font-size: 0.9375rem;
  font-weight: 700;
}

body.annajm-shop form.checkout .annajm-digital-consent .annajm-digital-consent__row {
  clear: both;
  margin: 0;
}

body.annajm-shop .annajm-digital-consent__help {
  margin: 8px 0 0 30px;
  color: var(--as-muted);
  font-size: 0.8125rem;
  line-height: 1.5;
}

body.annajm-shop .annajm-digital-consent.woocommerce-invalid,
body.annajm-shop .annajm-digital-consent:has(.woocommerce-invalid) {
  border-color: var(--as-danger);
}


/* -------------------------------------------------------------------------
   9. CONFIRMATION DE COMMANDE (page « Merci »)
   ------------------------------------------------------------------------- */
body.annajm-shop .woocommerce-order .woocommerce-thankyou-order-received {
  margin: 0 0 24px;
  padding: 16px 18px;
  border: 1px solid var(--as-line);
  border-left: 4px solid var(--as-success);
  border-radius: var(--as-radius-sm);
  background: var(--as-success-bg);
  color: var(--as-success);
  font-weight: 600;
}

body.annajm-shop .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}

body.annajm-shop .woocommerce-order-overview li {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius-sm);
  background: var(--as-card);
  color: var(--as-muted);
  font-size: 0.8125rem;
  text-transform: none;
}

body.annajm-shop .woocommerce-order-overview li strong {
  display: block;
  margin-top: 2px;
  color: var(--as-navy);
  font-size: 1rem;
}

body.annajm-shop .annajm-order-legal {
  margin: 24px 0;
  padding: 18px 20px;
  border: 1px solid var(--as-line);
  border-radius: var(--as-radius);
  background: var(--as-cream);
}

body.annajm-shop .annajm-order-legal .annajm-order-legal__title {
  margin: 0 0 4px;
  font-size: 1.125rem;
}

body.annajm-shop .annajm-order-legal__title:not(:first-child) {
  margin-top: 16px;
}

body.annajm-shop .annajm-order-legal p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
}


/* -------------------------------------------------------------------------
   Petits écrans : marges internes réduites, aucun débordement
   ------------------------------------------------------------------------- */
@media (max-width: 599px) {
  body.annajm-shop .wc-block-cart__main,
  body.annajm-shop .wc-block-cart__sidebar,
  body.annajm-shop form.checkout #customer_details,
  body.annajm-shop form.checkout #order_review {
    padding: 16px;
  }

  body.annajm-shop .annajm-cart-empty {
    padding: 32px 18px 24px;
  }

  body.annajm-shop form.checkout,
  body.annajm-shop .wp-block-woocommerce-cart {
    overflow-wrap: anywhere;
  }
}


/* -------------------------------------------------------------------------
   10. ACCESSIBILITÉ, MOUVEMENT RÉDUIT, IMPRESSION
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  body.annajm-shop .wc-block-cart__submit-button,
  body.annajm-shop form.checkout #place_order,
  body.annajm-shop .annajm-cart-empty__button,
  body.annajm-shop .annajm-cart-empty__collections a,
  body.annajm-shop form.checkout .input-text {
    transition: none;
  }
}

@media (forced-colors: active) {
  body.annajm-shop .wc-block-cart__submit-button,
  body.annajm-shop form.checkout #place_order,
  body.annajm-shop .annajm-cart-empty__button {
    border: 1px solid ButtonText;
  }

  body.annajm-shop #payment ul.payment_methods > li:has(> input:checked),
  body.annajm-shop #shipping_method li:has(input:checked) {
    outline: 2px solid Highlight;
  }
}

@media print {
  body.annajm-shop .wc-block-cart__main,
  body.annajm-shop .wc-block-cart__sidebar,
  body.annajm-shop form.checkout #customer_details,
  body.annajm-shop form.checkout #order_review,
  body.annajm-shop .annajm-order-legal {
    border-color: #999;
    box-shadow: none;
  }

  body.annajm-shop .annajm-securepay,
  body.annajm-shop .wc-block-cart__submit-container,
  body.annajm-shop #place_order {
    display: none;
  }
}
