/* ============================================================
   Technologia — Habillage WooCommerce.
   Étape 4.1 : CATALOGUE (archive boutique / résultats produits).
   CSS uniquement — aucun comportement modifié. Scopé sous .woocommerce.
   Pas de !important sur les contrôles fonctionnels (bouton d'ajout, selects).
   Tokens --tec-*.
   ============================================================ */

/* Fond de page boutique + typo de base */
.woocommerce, .woocommerce-page { font-family: var(--tec-font-sans); }

/* Compteur de résultats + tri */
.woocommerce .woocommerce-result-count { color: var(--tec-ink-500); font-size: var(--tec-fs-sm); }
.woocommerce .woocommerce-ordering select {
	font-family: var(--tec-font-sans); font-size: var(--tec-fs-sm);
	color: var(--tec-navy-900); border: 1px solid var(--tec-line-300);
	border-radius: var(--tec-radius-md); padding: 8px 12px; background: var(--tec-white);
}

/* ---- Grille de cartes produit ------------------------------ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--tec-white);
	border: 1px solid var(--tec-line-200);
	border-radius: var(--tec-radius-lg);
	padding: 14px;
	transition: border-color var(--tec-dur-base), transform var(--tec-dur-base), box-shadow var(--tec-dur-base);
}
.woocommerce ul.products li.product:hover {
	border-color: #9AD5F1;
	transform: translateY(-3px);
	box-shadow: var(--tec-shadow-md);
}
/* Image : fond blanc, coins arrondis, ratio stable */
.woocommerce ul.products li.product a img {
	border-radius: var(--tec-radius-md);
	background: #fff;
	margin-bottom: 12px;
}
/* Titre */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tec-font-sans); font-weight: 700; font-size: 14.5px;
	color: var(--tec-navy-900); line-height: 1.3; padding: 0 0 4px;
}
/* Ligne de réassurance (ajoutée par hook) */
.tec-loop-reassure {
	margin: 0 0 6px; font-size: 11.5px; font-weight: 600; color: var(--tec-ink-400);
	display: flex; align-items: center; gap: 6px;
}
/* Notation : discrète */
.woocommerce ul.products li.product .star-rating { font-size: .8em; margin: 0 0 8px; }

/* Prix — cyan-encre, tabular-nums, dominant */
.woocommerce ul.products li.product .price {
	color: var(--tec-agent-ink); font-family: var(--tec-font-price);
	font-weight: 800; font-size: 17px; font-variant-numeric: tabular-nums;
	margin: 2px 0 12px; display: block;
}
.woocommerce ul.products li.product .price del { color: var(--tec-ink-400); font-weight: 500; font-size: 13px; opacity: .8; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* Bouton d'ajout — dégradé navy→cyan (habillage visuel uniquement) */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E));
	color: #fff; border: 0; border-radius: var(--tec-radius-md);
	font-family: var(--tec-font-sans); font-weight: 700; font-size: 13.5px;
	padding: 10px 16px; min-height: 42px; text-decoration: none;
	transition: filter var(--tec-dur-fast);
}
.woocommerce ul.products li.product .button:hover { filter: brightness(1.07); color: #fff; }
.woocommerce ul.products li.product .added_to_cart { background: rgba(0,194,255,.12); color: var(--tec-agent-ink); margin-top: 8px; }
/* État "ajout en cours / ajouté" (classes WooCommerce, on garde le comportement) */
.woocommerce ul.products li.product .button.loading { opacity: .75; }
.woocommerce ul.products li.product .button.added { background: var(--tec-success, #1E9E62); }

/* Badge promo */
.woocommerce span.onsale {
	background: var(--tec-agent-ink); color: #fff; border-radius: var(--tec-radius-pill);
	font-weight: 700; font-size: 12px; min-height: 0; min-width: 0; padding: 4px 10px;
	top: 10px; left: 10px; margin: 0;
}

/* Badge de stock (si affiché par le thème) */
.woocommerce ul.products li.product .stock { font-size: 12px; font-weight: 700; }
.woocommerce ul.products li.product .in-stock, .woocommerce .stock.in-stock { color: var(--tec-success, #1E9E62); }
.woocommerce ul.products li.product .out-of-stock, .woocommerce .stock.out-of-stock { color: var(--tec-danger, #D2483A); }

/* ---- Pagination -------------------------------------------- */
.woocommerce nav.woocommerce-pagination ul { border: 0; gap: 6px; display: flex; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--tec-line-300); border-radius: var(--tec-radius-md);
	color: var(--tec-navy-900); min-width: 40px; padding: 8px 12px; background: var(--tec-white);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E)); color: #fff; border-color: transparent;
}

/* ---- État "aucun résultat" / infos ------------------------- */
.woocommerce .woocommerce-info, .woocommerce .woocommerce-no-products-found .woocommerce-info {
	border-top-color: var(--tec-agent-signal, #00C2FF);
	background: var(--tec-white); border-radius: var(--tec-radius-md); color: var(--tec-navy-900);
}

/* ---- Bouton générique WooCommerce (liens "voir le produit", etc.) ---- */
.woocommerce a.button.wc-forward, .woocommerce .widget a.button {
	background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E)); color: #fff; border-radius: var(--tec-radius-md);
}

/* ---- Sidebar filtres (filter-everything-pro) — habillage visuel seul -------
   On ne touche pas au fonctionnement du plugin : uniquement couleurs/formes. */
a.wpc-filters-submit-button {
	background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E));
	color: #fff; border: 0; border-radius: var(--tec-radius-md);
	font-family: var(--tec-font-sans); font-weight: 700; padding: 11px 20px;
	transition: filter var(--tec-dur-fast);
}
a.wpc-filters-submit-button:hover { filter: brightness(1.07); color: #fff; }
a.wpc-filters-reset-button {
	background: transparent; color: var(--tec-navy-900);
	border: 1px solid var(--tec-line-300); border-radius: var(--tec-radius-md);
	font-family: var(--tec-font-sans); font-weight: 700; padding: 11px 18px;
	transition: border-color var(--tec-dur-fast), color var(--tec-dur-fast);
}
a.wpc-filters-reset-button:hover { border-color: var(--tec-agent-signal, #00C2FF); color: var(--tec-agent-ink, #0B7BA6); }

/* ============================================================
   FICHE PRODUIT (single) — habillage visuel. Comportement Woo inchangé.
   ============================================================ */
/* Titre */
.woocommerce div.product .summary .product_title {
	font-family: var(--tec-font-display); font-weight: 800; letter-spacing: -.02em;
	color: var(--tec-navy-900); line-height: 1.15;
}
/* Prix dominant — cyan-encre, tabular-nums */
.woocommerce div.product .summary .price,
.woocommerce div.product .summary .price ins {
	color: var(--tec-agent-ink); font-family: var(--tec-font-price); font-weight: 800;
	font-size: clamp(26px, 4vw, 38px); font-variant-numeric: tabular-nums; line-height: 1.1;
}
.woocommerce div.product .summary .price del { color: var(--tec-ink-400); font-weight: 500; font-size: 18px; opacity: .8; }
.woocommerce div.product .summary .price ins { text-decoration: none; }

/* Chips de réassurance (hook E) */
.tec-woo-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.tec-woo-chip {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12.5px; font-weight: 700; color: var(--tec-agent-ink);
	background: var(--tec-agent-tint, #E2F7FF); border: 1px solid rgba(0,194,255,.28);
	border-radius: var(--tec-radius-pill); padding: 6px 12px;
}

/* Quantité */
.woocommerce div.product form.cart .quantity .qty {
	border: 1px solid var(--tec-line-300); border-radius: var(--tec-radius-md);
	padding: 10px; min-height: 46px; font-family: var(--tec-font-sans); color: var(--tec-navy-900);
}

/* Bouton « Je commande » — dégradé, dominant (visuel seul) */
.woocommerce div.product form.cart .single_add_to_cart_button {
	background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E));
	color: #fff; border: 0; border-radius: var(--tec-radius-md);
	font-family: var(--tec-font-sans); font-weight: 800; font-size: 15.5px;
	padding: 14px 26px; min-height: 52px; letter-spacing: .01em;
	transition: filter var(--tec-dur-fast);
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover { filter: brightness(1.07); color: #fff; }

/* Bande conseil (hook F) */
.tec-woo-advice {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 12px;
	font-size: 13.5px; color: var(--tec-ink-500); text-decoration: none;
}
.tec-woo-advice strong { color: var(--tec-agent-ink); }
.tec-woo-advice:hover strong { text-decoration: underline; }

/* Onglets (description / caractéristiques) */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 18px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--tec-line-200); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent; border: 0; border-radius: 0; margin: 0 18px 0 0; padding: 0 0 10px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--tec-ink-500); font-weight: 700; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tec-navy-900); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { box-shadow: inset 0 -2px 0 var(--tec-agent-signal, #00C2FF); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before { display: none; }

/* Titres de section (produits liés, etc.) */
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	font-family: var(--tec-font-display); font-weight: 800; letter-spacing: -.01em; color: var(--tec-navy-900);
}

/* Badge stock sur la fiche */
.woocommerce div.product .summary .stock.in-stock { color: var(--tec-success, #1E9E62); font-weight: 700; }
.woocommerce div.product .summary .stock.out-of-stock { color: var(--tec-danger, #D2483A); font-weight: 700; }

/* ============================================================
   PANIER — habillage visuel. Quantités/totaux/coupons inchangés.
   ============================================================ */
/* Note de confiance (hook G) */
.tec-woo-cartnote {
	background: var(--tec-agent-tint, #E2F7FF); border: 1px solid rgba(0,194,255,.28);
	border-radius: var(--tec-radius-md); padding: 12px 16px; margin: 0 0 18px;
	font-size: 13.5px; font-weight: 600; color: var(--tec-agent-ink, #0B7BA6);
}

/* Barre momentum / livraison offerte (hook H) */
.tec-momentum { background: var(--tec-white); border: 1px solid var(--tec-line-200); border-radius: var(--tec-radius-lg); padding: 14px 16px; margin: 0 0 16px; }
.tec-momentum-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 14px; margin-bottom: 10px; }
.tec-momentum-elan { font-family: var(--tec-font-display); font-weight: 800; font-size: 15px; color: var(--tec-navy-900); }
.tec-momentum-goal { font-size: 12.5px; font-weight: 600; color: var(--tec-ink-500); }
.tec-momentum-goal strong { color: var(--tec-agent-ink, #0B7BA6); }
.tec-momentum-goal--ok { color: var(--tec-success, #1E9E62); font-weight: 800; }
.tec-momentum-track { height: 8px; border-radius: 999px; background: var(--tec-surface-tint, #EAF1F8); overflow: hidden; }
.tec-momentum-fill { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--tec-agent-signal, #00C2FF), var(--tec-sky, #4BA9DE)); transition: width var(--tec-dur-slow) var(--tec-ease-out); }
.tec-momentum.is-reached .tec-momentum-fill { background: linear-gradient(90deg, var(--tec-agent-signal, #00C2FF), var(--tec-success, #1E9E62)); }
@media (prefers-reduced-motion: reduce) { .tec-momentum-fill { transition: none; } }

/* Tableau du panier */
.woocommerce table.cart, .woocommerce table.shop_table {
	border: 1px solid var(--tec-line-200); border-radius: var(--tec-radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden;
}
.woocommerce table.cart th { background: var(--tec-surface-tint-2, #F4F8FC); color: var(--tec-navy-900); font-family: var(--tec-font-sans); }
.woocommerce table.cart td { border-top: 1px solid var(--tec-line-200); vertical-align: middle; }
.woocommerce table.cart img { border-radius: var(--tec-radius-md); background: #fff; }
.woocommerce table.cart td.product-name a { color: var(--tec-navy-900); font-weight: 700; text-decoration: none; }
.woocommerce table.cart td.product-price, .woocommerce table.cart td.product-subtotal {
	color: var(--tec-agent-ink, #0B7BA6); font-family: var(--tec-font-price); font-weight: 700; font-variant-numeric: tabular-nums;
}
.woocommerce table.cart .product-remove a.remove {
	color: var(--tec-danger, #D2483A) !important; background: var(--tec-danger-tint, #FBEAE8); border-radius: 50%; font-weight: 700;
}
.woocommerce table.cart .quantity .qty {
	border: 1px solid var(--tec-line-300); border-radius: var(--tec-radius-md); padding: 8px; min-height: 42px; color: var(--tec-navy-900);
}
/* Bouton « Mettre à jour le panier » — secondaire */
.woocommerce table.cart .actions .button[name="update_cart"] {
	background: transparent; color: var(--tec-navy-900); border: 1px solid var(--tec-line-300); border-radius: var(--tec-radius-md); font-weight: 700;
}
.woocommerce table.cart .actions .button[name="update_cart"]:disabled { opacity: .5; }

/* Récap (cart totals) — carte + sticky desktop */
.woocommerce .cart_totals {
	background: var(--tec-white); border: 1px solid var(--tec-line-200); border-radius: var(--tec-radius-lg); padding: clamp(16px,3vw,22px);
}
.woocommerce .cart_totals h2 { font-family: var(--tec-font-display); font-weight: 800; color: var(--tec-navy-900); }
.woocommerce .cart_totals table th, .woocommerce .cart_totals table td { border-top-color: var(--tec-line-200); color: var(--tec-navy-900); }
.woocommerce .cart_totals .order-total .amount { color: var(--tec-agent-ink, #0B7BA6); font-variant-numeric: tabular-nums; }

/* Bouton « Je confirme ma commande » (proceed) — dégradé, dominant (visuel seul) */
.woocommerce .wc-proceed-to-checkout a.checkout-button {
	background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E)) !important;
	color: #fff !important; border: 0; border-radius: var(--tec-radius-md);
	font-family: var(--tec-font-sans); font-weight: 800; font-size: 16px; padding: 16px 24px; min-height: 54px;
	display: flex; align-items: center; justify-content: center; text-align: center;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover { filter: brightness(1.07); }

/* Coupon */
.woocommerce .cart .coupon .input-text {
	border: 1px solid var(--tec-line-300); border-radius: var(--tec-radius-md); min-height: 42px; padding: 8px 12px;
}

/* Panier vide */
.woocommerce .cart-empty { color: var(--tec-navy-900); font-weight: 700; }
.woocommerce .return-to-shop a.button { background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E)); color: #fff; border-radius: var(--tec-radius-md); }

/* Récap sticky sur desktop */
@media (min-width: 981px) {
	.woocommerce .cart-collaterals .cart_totals, .woocommerce .cart_totals { position: sticky; top: 90px; }
}

/* ============================================================
   Barre d'achat FIXE mobile (fiche produit) — masquée en desktop
   ============================================================ */
.tec-buybar { display: none; }

/* ============================================================
   Passe MOBILE (≤ 767px) — anti-débordement + cibles tactiles
   ============================================================ */
@media (max-width: 767px) {
	/* Barre d'achat fixe */
	.tec-buybar {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
		align-items: center; gap: 12px;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
		background: rgba(255,255,255,.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
		border-top: 1px solid var(--tec-line-200); box-shadow: 0 -6px 20px rgba(39,63,126,.12);
	}
	.tec-buybar-info { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
	.tec-buybar-name { font-size: 12px; font-weight: 700; color: var(--tec-navy-900); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.tec-buybar-price { font-family: var(--tec-font-price); font-weight: 800; color: var(--tec-agent-ink); font-variant-numeric: tabular-nums; }
	.tec-buybar-price del { font-size: 12px; color: var(--tec-ink-400); font-weight: 500; }
	.tec-buybar-price ins { text-decoration: none; }
	.tec-buybar-cta { flex: 0 0 auto; border: 0; border-radius: var(--tec-radius-md); background: var(--tec-cta-grad, linear-gradient(135deg,#4BA9DE,#273F7E)); color: #fff; font-family: var(--tec-font-sans); font-weight: 800; font-size: 15px; padding: 12px 22px; min-height: 46px; }
	/* Espace pour ne pas masquer le bas de page sous la barre */
	.single-product .site-main, .single-product #main, .single-product .content-area { padding-bottom: 84px; }

	/* Anti-débordement horizontal général sur pages Woo */
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
	.woocommerce ul.products li.product { padding: 10px; overflow: hidden; }
	/* Blocksy dimensionne .ct-woo-card-actions pour cartes larges (columns-4) →
	   en 2 colonnes étroites il déborde : on le contient + on empile. */
	.woocommerce ul.products li.product .ct-woo-card-actions {
		flex-direction: column !important; align-items: stretch !important;
		width: 100% !important; margin: 0 !important; gap: 6px;
	}
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .added_to_cart {
		width: 100% !important; padding: 10px 8px; font-size: 12.5px; box-sizing: border-box;
	}
	.tec-loop-reassure { font-size: 10.5px; }

	/* Fiche produit : boutons pleine largeur, chips serrées */
	.woocommerce div.product form.cart .single_add_to_cart_button { width: 100%; }
	.tec-woo-chips { gap: 6px; }
	.tec-woo-chip { font-size: 11.5px; padding: 5px 10px; }

	/* Panier : le tableau peut défiler horizontalement si besoin (pas de casse) */
	.woocommerce-cart-form { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; }
	.woocommerce .cart .actions .button { width: 100%; margin: 6px 0 0; }
	.tec-momentum-head { flex-direction: column; align-items: flex-start; gap: 4px; }

	/* Empêche tout enfant de forcer une largeur > écran */
	.woocommerce img, .tec-momentum, .tec-woo-cartnote { max-width: 100%; }
}
