/* ============================================================
   WOOCOMMERCE — adaptations aux couleurs Solivalis
   Chargé uniquement sur les pages Woo (cart, checkout, my-account)
   ============================================================ */

/* Reset & font */
.woocommerce,
.woocommerce-page,
.wc-block-checkout,
.wc-block-cart,
.woocommerce-account {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--ink);
}

/* Page checkout : container plus aéré */
body.woocommerce-checkout {
	background: var(--bg);
}
body.woocommerce-checkout .wp-site-blocks,
body.woocommerce-checkout main {
	max-width: 1100px;
	margin: 0 auto;
	padding: 40px 24px;
}

/* Titres */
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.wc-block-checkout h1,
.wc-block-checkout h2,
.wc-block-checkout h3 {
	font-family: 'Inter', sans-serif;
	color: var(--ink);
	font-weight: 700;
	letter-spacing: -0.01em;
}

/* Champs de saisie : style cohérent avec le reste du site */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce select,
.woocommerce textarea,
.wc-block-components-text-input input,
.wc-block-components-checkbox input,
.wc-block-components-select__select {
	border: 1px solid var(--line) !important;
	border-radius: 10px !important;
	padding: 12px 14px !important;
	font-size: 15px !important;
	color: var(--ink) !important;
	background: var(--bg-card) !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus,
.wc-block-components-text-input input:focus,
.wc-block-components-select__select:focus {
	border-color: var(--blue) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12) !important;
	outline: none !important;
}

/* Labels */
.woocommerce label,
.wc-block-components-text-input label,
.wc-block-components-checkout-step__heading {
	color: var(--ink) !important;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.02em;
}

/* Boutons : style accent doré Solivalis */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #place_order,
.wc-block-components-button,
.wc-block-components-checkout-place-order-button {
	background: linear-gradient(135deg, var(--gold) 0%, var(--gold-bright) 100%) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--radius-pill, 999px) !important;
	padding: 14px 28px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: 0.02em !important;
	cursor: pointer !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease !important;
	text-shadow: none !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce #place_order:hover,
.wc-block-components-checkout-place-order-button:hover {
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 18px rgba(201, 162, 39, 0.3) !important;
}

/* Boutons secondaires (lien retour, annuler, etc.) */
.woocommerce a.button.alt-secondary,
.wc-block-components-button.contained.outlined,
.wc-block-components-button.outlined {
	background: var(--bg-card) !important;
	color: var(--ink) !important;
	border: 1px solid var(--line) !important;
}

/* Résumé de commande à droite */
.wc-block-components-totals-wrapper,
.woocommerce-checkout-review-order,
.cart-collaterals,
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
	background: var(--bg-card) !important;
	border: 1px solid var(--line) !important;
	border-radius: 14px !important;
	padding: 20px !important;
}

/* Total */
.wc-block-components-totals-item__value,
.order-total .amount {
	color: var(--gold) !important;
	font-weight: 800 !important;
}

/* Messages (succès, erreur, info) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	border-radius: 10px !important;
	padding: 14px 18px !important;
	font-size: 14px !important;
	border-left-width: 4px !important;
}
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	border-left-color: var(--gold) !important;
	background: var(--gold-light) !important;
}

/* Page Mon compte — navigation latérale en colonne */
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0 0 24px 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.woocommerce-MyAccount-navigation ul li {
	margin: 0;
	list-style: none;
}
.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 12px 18px;
	border-radius: 10px;
	background: var(--bg-card);
	border: 1px solid var(--line);
	color: var(--ink);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.woocommerce-MyAccount-navigation ul li a:hover {
	border-color: var(--blue);
	color: var(--blue);
}
.woocommerce-MyAccount-navigation ul li.is-active a {
	background: linear-gradient(135deg, var(--navy-700) 0%, var(--blue) 100%);
	color: #fff;
	border-color: transparent;
}

/* Lien "retour au panier" et liens secondaires */
.woocommerce-cart .cart_totals .return-to-shop,
.checkout_coupon,
a.showcoupon,
.woocommerce-info a {
	color: var(--blue) !important;
}

/* ============================================================
   MON COMPTE — onglet "Mes résultats"
   Le rendu réutilise les composants de /resultat/, mais sans
   le wrapper .results-overlay (qui prendrait le plein écran).
   ============================================================ */

.solivalis-account-results .results-stage-full {
	width: 100%;
	max-width: 100%;
	padding: 0;
}

/* Forcer overflow visible sur les conteneurs Mon compte pour permettre le sticky */
.woocommerce-account,
.woocommerce-MyAccount-content,
.woocommerce-MyAccount-content > div {
	overflow: visible !important;
}

/* Bandeau de navigation des sections : sticky sous le header, fond opaque */
.results-toc {
	position: sticky;
	top: 80px;
	z-index: 30;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	margin-bottom: 24px;
	padding: 8px 14px;
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

/* Indicateur de section courante (mis à jour au scroll par renderResultsToc) */
.results-toc-active-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-soft);
	letter-spacing: 0.02em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.results-toc-active-label:empty {
	display: none;
}
.results-toc-toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 18px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	letter-spacing: 0.02em;
	background: linear-gradient(135deg, var(--navy-700) 0%, var(--blue) 100%);
	border: 0;
	border-radius: var(--radius-pill, 999px);
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.results-toc-toggle:hover,
.results-toc-toggle[aria-expanded="true"] {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(37, 99, 235, 0.25);
}
.results-toc-arrow {
	font-size: 11px;
	line-height: 1;
	transition: transform 0.18s ease;
}
.results-toc-toggle[aria-expanded="true"] .results-toc-arrow {
	transform: rotate(180deg);
}
.results-toc-list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 220px;
	margin: 0;
	padding: 6px;
	list-style: none;
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.10);
}
.results-toc-list[hidden] { display: none; }
.results-toc-list li {
	list-style: none;
	margin: 0;
}
.results-toc-list a {
	display: block;
	padding: 10px 14px;
	font-size: 13px;
	font-weight: 500;
	color: var(--ink);
	text-decoration: none;
	border-radius: 8px;
	transition: background 0.12s ease, color 0.12s ease;
}
.results-toc-list a:hover {
	background: var(--bg-soft, #f5f7fa);
	color: var(--blue);
}

.solivalis-account-results .overview-chart {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 20px;
	margin-bottom: 20px;
}

.solivalis-account-results .divider-h {
	margin: 32px 0 12px 0;
	font-size: 18px;
	font-weight: 700;
}

/* Section "Tests précédents" — compact OCEAN/RIASEC pour chaque ancien test */
.previous-results {
	margin-top: 60px;
	padding-top: 32px;
	border-top: 1px solid var(--line);
}
.previous-results h3 {
	font-size: 22px;
	font-weight: 700;
	color: var(--ink);
	margin: 0 0 24px 0;
}
/* Note de transparence : précise ce qui est conservé pour les tests précédents. */
.previous-results-note {
	font-size: 14px;
	color: var(--ink-soft);
	line-height: 1.6;
	margin: 0 0 28px 0;
	padding: 14px 18px;
	background: var(--bg-soft, #f7f9fc);
	border-left: 3px solid var(--line);
	border-radius: 6px;
}
.previous-test-card {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 24px;
	margin-bottom: 20px;
}
.previous-test-date {
	font-size: 13px;
	color: var(--ink-mute);
	font-weight: 500;
	margin-bottom: 18px;
	letter-spacing: 0.02em;
}
.previous-test-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
@media (max-width: 700px) {
	.previous-test-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}
.previous-test-section h4 {
	font-size: 12px;
	font-weight: 700;
	color: var(--ink-soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0 0 10px 0;
}
.mini-chart-row {
	display: grid;
	grid-template-columns: 130px 1fr 42px;
	align-items: center;
	gap: 10px;
	margin-bottom: 6px;
	font-size: 13px;
}
.mini-label {
	color: var(--ink);
	display: flex;
	align-items: center;
	gap: 6px;
}
.mini-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.mini-bar {
	background: #f0f4f8;
	border-radius: 3px;
	height: 5px;
	overflow: hidden;
}
.mini-bar-fill {
	height: 100%;
	border-radius: 3px;
}
.mini-pct {
	text-align: right;
	color: var(--ink);
	font-weight: 600;
	font-size: 12px;
}

/* ============================================================
   BLOCK CHECKOUT — layout en colonne unique (PC + mobile)
   Résumé de commande sous le formulaire / bouton « Commander ».
   ============================================================ */

.wc-block-checkout {
	display: flex !important;
	flex-direction: column !important;
	max-width: 720px;
	margin: 0 auto;
	padding: 24px 16px 60px;
	gap: 16px;
}

.wc-block-checkout__sidebar {
	order: 1 !important;
	position: static !important;
	width: 100% !important;
	background: var(--bg-card) !important;
	border: 1px solid var(--line) !important;
	border-radius: 14px !important;
	padding: 24px !important;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

.wc-block-checkout__main {
	order: 2 !important;
	width: 100% !important;
	min-width: 0;
}

/* Masquage du résumé "compact" dupliqué dans le main quand on bascule
   en colonne unique. Le résumé du sidebar suffit. */
.wc-block-checkout__main .wp-block-woocommerce-checkout-totals-block,
.wc-block-checkout__main .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout__main .wc-block-components-order-summary,
.wc-block-checkout__main [class*="checkout-order-summary"] {
	display: none !important;
}

/* ============================================================
   CHAMPS DU CHECKOUT — restaurés visibles
   La simplification B2C (cacher adresse/CP/ville) bloque le bouton
   « Commander » dans le Block Checkout. À reprendre via une autre approche.
   ============================================================ */

/* Lien "+ Ajouter appartement, suite, etc." — masqué uniquement (peu utile) */
.wc-block-components-address-form__address_2-toggle,
button[class*="address_2-toggle"] {
	display: none !important;
}

/* Bloc "Ajouter une note à votre commande" — le filtre PHP
   woocommerce_enable_order_notes_field n'agit pas sur le Block Checkout */
.wp-block-woocommerce-checkout-order-note-block,
.wc-block-checkout__order-notes,
.wc-block-components-checkout-step--with-disabled-step-button[id*="order-note"],
[class*="order-note-block"],
[class*="order-notes"] {
	display: none !important;
}

/* Lignes vides du résumé de commande (livraison, frais, réductions, coupon)
   non pertinentes pour un produit virtuel sans expédition. */
.wc-block-components-totals-shipping,
.wc-block-components-totals-fees,
.wc-block-components-totals-discount,
.wc-block-components-totals-coupon,
.wp-block-woocommerce-cart-order-summary-shipping-block,
.wp-block-woocommerce-cart-order-summary-fee-block,
.wp-block-woocommerce-cart-order-summary-discount-block,
.wp-block-woocommerce-cart-order-summary-coupon-form-block,
.wp-block-woocommerce-checkout-order-summary-shipping-block,
.wp-block-woocommerce-checkout-order-summary-fee-block,
.wp-block-woocommerce-checkout-order-summary-discount-block,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block {
	display: none !important;
}

/* Hiérarchie des sections plus marquée */
.wc-block-components-checkout-step {
	background: var(--bg-card) !important;
	border: 1px solid var(--line) !important;
	border-radius: 14px !important;
	padding: 24px !important;
	margin-bottom: 16px !important;
}

.wc-block-components-checkout-step__title {
	font-size: 18px !important;
	font-weight: 700 !important;
	color: var(--ink) !important;
	margin-bottom: 6px !important;
}

.wc-block-components-checkout-step__description {
	color: var(--ink-soft) !important;
	font-size: 14px !important;
	margin-bottom: 16px !important;
}

/* ============================================================
   PAGE PRODUIT — limiter la largeur, masquer la sidebar, centrer
   ============================================================ */
body.single-product .site-main,
body.single-product main,
body.single-product .woocommerce {
	max-width: 1100px;
	margin: 0 auto;
	padding: 40px 24px;
}

/* Cacher la sidebar Woo (recherche / pages / archives / catégories) */
body.single-product aside.sidebar,
body.single-product #secondary,
body.single-product .widget-area,
body.woocommerce aside.sidebar,
body.woocommerce #secondary {
	display: none !important;
}

/* Layout 2 colonnes propre pour le produit (image + résumé) */
.single-product div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
}
@media (max-width: 800px) {
	.single-product div.product {
		grid-template-columns: 1fr;
	}
}
.single-product div.product .summary {
	max-width: 480px;
}

/* Onglets (Description / Avis) : largeur limitée, alignés sous l'image */
.single-product .woocommerce-tabs {
	grid-column: 1 / -1;
	max-width: 800px;
	margin-top: 48px;
}

/* Onglet Description : texte lisible */
.single-product .woocommerce-Tabs-panel--description {
	font-size: 15px;
	line-height: 1.7;
	color: var(--ink-soft);
}

/* ============================================================
   BLOCK CART — alignement des cartes produit "Nouveau dans la boutique"
   Approche flex column simple : image hauteur fixe, contenus enchaînés,
   bouton poussé en bas via margin-top: auto.
   ============================================================ */
/* ============================================================
   Container pages WC (Boutique, catégorie produit, etc.).
   Reprend le pattern .std de la home : max-width + centrage + padding.
   ============================================================ */
.woocommerce-page #primary.content-area,
.woocommerce #primary.content-area,
body.archive.tax-product_cat #primary.content-area,
body.post-type-archive-product #primary.content-area {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 60px 48px 80px;
	box-sizing: border-box;
}

/* Grille produits : 2 colonnes, max-width 920 px, centrée.
   Même pattern que .pricing-grid sur la home. */
.wc-block-grid__products,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 32px !important;
	align-items: stretch !important;
	list-style: none !important;
	padding: 0 !important;
	max-width: 920px !important;
	margin: 0 auto !important;
}

/* Neutralisation des pseudos clearfix hérités de WooCommerce.
   WC core injecte sur ul.products un ::before { content: " "; display: table; }
   et un ::after { content: " "; display: table; clear: both; }. C'était un
   clearfix de l'époque des floats. Quand le parent passe en display: grid
   (notre cas), ces deux pseudos deviennent eux-mêmes des grid items et
   occupent 2 cellules de la grille. Avec nos 2 produits, on obtient :
   [::before][produit 1] / [produit 2][::after], d'où un rendu en quinconce.
   On les neutralise. */
ul.products::before,
ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none !important;
	display: none !important;
}

@media (max-width: 700px) {
	.wc-block-grid__products,
	ul.products {
		grid-template-columns: 1fr !important;
	}
}

/* Padding réduit du wrapper WC sur tablette et mobile (cohérent avec .std) */
@media (max-width: 980px) {
	.woocommerce-page #primary.content-area,
	.woocommerce #primary.content-area,
	body.archive.tax-product_cat #primary.content-area,
	body.post-type-archive-product #primary.content-area {
		padding: 50px 24px 60px;
	}
}

/* Card produit : SANS cadre extérieur. Fond transparent, pas de
   bordure, pas d'ombre. Le habillage visuel est porté par la
   vignette elle-même (cf. règle suivante). Demande Gaby + brief
   Claude Design du 06/06/2026. */
.wc-block-grid__product,
ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	height: 100%;
}

/* Vignette produit — cadre 4:5 vertical avec habillage Solivalis.
   Brief Claude Design du 06/06/2026 + ajustement Gaby (07/06/2026) :
   - aspect-ratio 4:5 → ratio cohérent avec les illustrations mascotte.
   - object-fit: contain → illustration entière (jamais rognée).
   - padding 0 → l'image colle aux bords latéraux du cadre. Plus de
     « bordure intérieure » flottante.
   - object-position: center bottom → la mascotte se cale en bas du
     cadre, le fond bleu/doré n'apparaît qu'au-dessus de la tête
     (effet « halo derrière la mascotte »).
   - background radial doré (halo) + linear bleu poudré → habillage
     palette Solivalis (gold #C9A227 + navy #1E3A8A) sur les
     illustrations à fond transparent.
   - border-radius 14px → cohérent avec les autres cards du site. */
.wc-block-grid__product img,
ul.products li.product img,
ul.products li.product a img {
	aspect-ratio: 4 / 5 !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	object-fit: contain !important;
	object-position: center bottom !important;
	padding: 0 !important;
	margin: 0 auto !important;
	display: block !important;
	border-radius: 14px !important;
	background:
		radial-gradient(115% 80% at 50% 36%, #FBF1D6 0%, rgba(251, 241, 214, 0) 58%),
		linear-gradient(180deg, #E8EEFB 0%, #F2F6FD 100%) !important;
}

/* Titre */
.wc-block-grid__product-title,
ul.products li.product .woocommerce-loop-product__title {
	font-size: 16px !important;
	font-weight: 700 !important;
	text-align: center !important;
	margin: 0 !important;
	color: var(--ink) !important;
}

/* Prix */
.wc-block-grid__product-price,
ul.products li.product .price {
	font-size: 15px !important;
	text-align: center !important;
	margin: 0 !important;
	color: var(--ink-soft) !important;
}

/* Bouton : poussé en bas, centré */
.wc-block-grid__product .wp-block-button,
ul.products li.product .button {
	margin-top: auto !important;
	margin-left: auto !important;
	margin-right: auto !important;
	align-self: center !important;
}

/* ============================================================
   BLOCK CART — bouton "Vider le panier"
   ============================================================ */

.solivalis-empty-cart {
	margin: 24px 0;
	text-align: center;
}
.solivalis-empty-cart a {
	display: inline-block;
	padding: 10px 22px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-soft);
	background: transparent;
	border: 1px solid var(--line);
	border-radius: var(--radius-pill, 999px);
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.solivalis-empty-cart a:hover {
	border-color: #dc2626;
	color: #dc2626;
}

/* ============================================================
   CHECKOUT SHORTCODE — Layout moderne 1 colonne centré
   ============================================================
   Pattern adopté : checkout court (juste prénom + email + Stripe),
   centré 720px max, sections en cards distinctes.
   Cohérent avec les SaaS modernes pour petits paniers numériques. */

body.woocommerce-checkout .wp-site-blocks,
body.woocommerce-checkout main {
	max-width: 720px;
}

/* Titre principal */
body.woocommerce-checkout h1.entry-title,
body.woocommerce-checkout .page-title {
	font-size: 28px;
	font-weight: 800;
	text-align: center;
	margin: 0 0 32px;
	letter-spacing: -0.02em;
}

/* Lien « Déjà client ? Cliquez ici pour vous connecter » */
.woocommerce-form-login-toggle {
	margin: 0 0 20px;
}
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-info {
	background: var(--bg-soft);
	border: 1px solid var(--line);
	border-left: 3px solid var(--gold);
	border-radius: 10px;
	padding: 12px 16px;
	color: var(--ink);
	font-size: 14px;
}
/* Masque l'icône info ⓘ bleue injectée par WC core via ::before
   sur les pages Mon compte (mes-resultats, mon-profil, dashboard).
   Demande explicite du 04/06/2026 — pictogramme jugé inutile sur
   les notices déjà signalées par le filet doré à gauche. */
.woocommerce-info::before {
	display: none !important;
}
.woocommerce-info a {
	color: var(--gold);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-info a:hover { text-decoration: underline; }

/* Formulaires Se connecter / S'inscrire sur /mon-compte/ (déconnecté).
   Même style sur les 2 pour aligner verticalement les cadres sous les titres
   (sans cette règle équivalente sur .woocommerce-form-register, les paddings
   par défaut WC créaient un décalage entre les 2 colonnes — corrigé le
   04/06/2026 sur retour Gaby). */
form.woocommerce-form-login,
form.woocommerce-form-register {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 20px 22px !important;
	margin: 0 0 24px !important;
}

/* Sections principales (billing / order review) — en cards */
.woocommerce-checkout form.checkout #customer_details,
.woocommerce-checkout form.checkout > h3#order_review_heading,
.woocommerce-checkout form.checkout #order_review {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px 26px;
	margin: 0 0 18px;
}

/* Titre des sections (Détails de facturation, Votre commande) */
.woocommerce-checkout form.checkout h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 18px;
	padding: 0;
	letter-spacing: -0.01em;
}

/* « Détails de facturation » : titre intégré dans la card */
.woocommerce-billing-fields > h3 {
	margin-top: 0 !important;
}

/* Champs : labels au-dessus, espacés */
.woocommerce-checkout form.checkout .form-row label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
	margin: 0 0 6px;
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce-checkout form.checkout .form-row label .required,
.woocommerce-checkout form.checkout .form-row .required {
	color: #dc2626;
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-checkout form.checkout .form-row {
	margin-bottom: 14px;
}
.woocommerce-checkout form.checkout .form-row:last-child {
	margin-bottom: 0;
}

/* Inputs full-width et plus aérés */
.woocommerce-checkout form.checkout .form-row input.input-text,
.woocommerce-checkout form.checkout .form-row .select2-container {
	width: 100% !important;
	max-width: 100%;
}

/* Cache les textes destinés aux lecteurs d'écran. */
.woocommerce-checkout-review-order-table .screen-reader-text,
.woocommerce-checkout .screen-reader-text,
.woocommerce .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
	border: 0 !important;
	word-wrap: normal !important;
}


/* Tableau récap commande (Produit / Sous-total / Total) */
.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 8px;
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 10px 0;
	text-align: left;
	font-size: 14px;
	border-bottom: 1px solid var(--line);
}
.woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout-review-order-table td:last-child {
	text-align: right;
}
.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total th {
	font-size: 16px;
	font-weight: 700;
	border-bottom: none;
	color: var(--gold);
}

/* Page « Mes cadeaux offerts » (endpoint mes-cadeaux-offerts).
   Layout en liste de cards empilées avec badge d'état coloré à droite.
   Cf. tâche #45 et inc/account-gifts-list.php. */
.solivalis-account-gifts-intro {
	font-size: 14px;
	color: var(--ink-soft);
	margin: 0 0 20px;
}
.solivalis-account-gifts-list {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.solivalis-account-gifts-item {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 16px 20px;
}
.solivalis-account-gifts-item-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	flex-wrap: wrap;
}
.solivalis-account-gifts-recipient {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 15px;
}
.solivalis-account-gifts-recipient strong { color: var(--ink); }
.solivalis-account-gifts-email { font-size: 13px; color: var(--ink-mute); }
.solivalis-account-gifts-item-meta {
	margin-top: 10px;
	font-size: 12px;
	color: var(--ink-mute);
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
}
.solivalis-account-gifts-cta { text-align: center; margin: 12px 0 0; }

/* ============================================================
   Endpoint « Mes tests précédents » (/mon-compte/mes-tests-precedents/)
   Réutilise .previous-test-card / .mini-chart-row / .previous-results-note
   définis plus haut. On ajoute juste le wrapper et le CTA final.
   ============================================================ */
.solivalis-account-tests-history { margin-top: 8px; }
.solivalis-account-tests-history-cta { text-align: center; margin: 24px 0 0; }

/* ============================================================
   Polish visuel des pages Mon compte (inc/account-polish.php)
   Classes communes : intro sous le h2, cards-raccourcis du dashboard,
   CTA vide-état pour Mes commandes. Coh. avec Mes cadeaux offerts.
   ============================================================ */

/* Intro courte placée juste sous le h2 « Accueil » / « Mon profil » /
   « Mes commandes » — texte gris doux, marge basse mesurée. */
.solivalis-account-intro {
	font-size: 14px;
	color: var(--ink-soft);
	line-height: 1.6;
	margin: 0 0 18px;
}
.solivalis-account-intro strong {
	color: var(--ink);
	font-weight: 600;
}
.solivalis-account-intro a {
	color: var(--accent, #d45d3f);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.15s ease;
}
.solivalis-account-intro a:hover { border-bottom-color: currentColor; }

/* CTA d'empty state de Mes commandes : centré sous le message vide. */
.solivalis-account-orders-cta {
	text-align: center;
	margin: 20px 0 0;
}

/* ============================================================
   Page produit individuelle du cadeau — CTA « Offrir → » qui
   remplace le bouton WC « Ajouter au panier » qui plante (la
   validation serveur bloque l'ajout direct). Le CTA renvoie vers
   /offrir-le-test/ pour saisir les bénéficiaires. Tâche #71 (audit).
   ============================================================ */
.solivalis-gift-product-cta {
	margin: 18px 0 8px;
}
.solivalis-gift-product-cta .btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.solivalis-gift-product-cta-note {
	font-size: 13px;
	color: var(--ink-soft);
	margin: 10px 0 0;
	font-style: italic;
}

/* ============================================================
   Page produit individuelle — masquer « Catégorie : Boutique »
   Une seule catégorie configurée (Boutique), donc afficher la
   mention « Catégorie : Boutique » n'apporte aucune information.
   On masque tout le .product_meta (catégorie + tags + SKU le cas
   échéant) pour un rendu plus sobre. Tâche #71 (audit pré-prod).
   ============================================================ */
.single-product .product_meta {
	display: none !important;
}

/* ============================================================
   Page 404 — Solivalis (template 404.php)
   Card centrée, actions de sortie, liens utiles. Style cohérent
   avec le reste du site. Tâche #71 (audit pré-prod).
   ============================================================ */
.solivalis-404 {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: 60px 24px 100px;
}
.solivalis-404-card {
	max-width: 620px;
	width: 100%;
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 48px 40px;
	text-align: center;
}
.solivalis-404-card .eyebrow {
	display: inline-block;
	margin-bottom: 14px;
}
.solivalis-404-card h1 {
	font-size: clamp(24px, 3.5vw, 32px);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 16px;
	color: var(--ink);
}
.solivalis-404-sub {
	font-size: 15px;
	color: var(--ink-soft);
	line-height: 1.6;
	margin: 0 0 28px;
}
.solivalis-404-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 36px;
}
.solivalis-404-links {
	border-top: 1px solid var(--line);
	padding-top: 22px;
	text-align: left;
}
.solivalis-404-links-label {
	font-size: 13px;
	font-weight: 700;
	color: var(--ink-soft);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 12px;
}
.solivalis-404-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.solivalis-404-links a {
	color: var(--blue, #2563eb);
	text-decoration: none;
	font-size: 14px;
	transition: color 0.15s ease;
}
.solivalis-404-links a:hover {
	color: var(--ink);
	text-decoration: underline;
}
@media (max-width: 600px) {
	.solivalis-404 { padding: 30px 16px 60px; }
	.solivalis-404-card { padding: 32px 22px; }
}

/* ============================================================
   Page Mes commandes (/mon-compte/orders/)
   Transforme le tableau WC en cards individuelles, cohérence avec
   Mes cadeaux offerts. L'en-tête (N°, Date, Statut, Total, Actions)
   est masqué — chaque cellule porte son propre label (data-title).
   ============================================================ */

.woocommerce-orders-table.account-orders-table,
.woocommerce-orders-table.account-orders-table tbody {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.woocommerce-orders-table.account-orders-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce-orders-table.account-orders-table thead {
	display: none;
}
.woocommerce-orders-table.account-orders-table tbody tr {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px 24px;
	align-items: center;
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 18px 22px;
	margin-bottom: 14px;
}
/* Reset agressif des bordures héritées de WC core (.shop_table, etc.)
   sur tous les éléments tabulaires internes — sinon un border-top
   fantôme apparaît au-dessus du numéro de commande dans chaque card. */
.woocommerce-orders-table.account-orders-table tr,
.woocommerce-orders-table.account-orders-table th,
.woocommerce-orders-table.account-orders-table td {
	border-top: 0 !important;
	border-bottom: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	box-shadow: none !important;
}
.woocommerce-orders-table.account-orders-table tbody tr {
	/* La bordure card (1px solid var(--line) sur le tr) reste appliquée
	   via la règle de la grille au-dessus — on ne la rétablit pas ici
	   pour ne pas annuler le « border: 0 » ci-dessus. Le sélecteur
	   .woocommerce-orders-table.account-orders-table tbody tr (3 classes)
	   surcharge ce reset car il est plus spécifique. */
	border: 1px solid var(--line) !important;
}
.woocommerce-orders-table.account-orders-table tbody td {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 !important;
	font-size: 14px;
	color: var(--ink);
	background: transparent !important;
}
.woocommerce-orders-table.account-orders-table tbody td::before {
	content: attr(data-title) " :";
	font-weight: 600;
	color: var(--ink-soft);
	font-size: 13px;
	min-width: 70px;
}
/* La cellule « Actions » (bouton Voir) prend toute la colonne droite
   sur sa propre ligne pour rester accessible et bien visible. */
.woocommerce-orders-table.account-orders-table tbody td.woocommerce-orders-table__cell-order-actions {
	grid-column: 2;
	grid-row: 1 / span 2;
	justify-self: end;
	align-self: center;
}
.woocommerce-orders-table.account-orders-table tbody td.woocommerce-orders-table__cell-order-actions::before {
	display: none;
}
.woocommerce-orders-table.account-orders-table .woocommerce-button.button {
	display: inline-block;
	padding: 8px 16px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	border-radius: 999px !important;
	margin: 0 !important;
}

/* ============================================================
   Page Mon profil (/mon-compte/edit-account/)
   2 cards distinctes injectées via les hooks WC
   (inc/account-polish.php) :
    - Card 1 .solivalis-edit-account-section : infos personnelles
    - Card 2 .solivalis-edit-account-section : changement de mot de passe
   Le bouton « Enregistrer les modifications » reste hors des cards
   (convention Solivalis : actions en dehors des conteneurs visuels).
   ============================================================ */

/* Reset de l'ancienne card globale (devenue obsolète avec la séparation). */
.woocommerce-EditAccountForm {
	background: transparent;
	border: 0;
	padding: 0;
	margin-top: 6px;
}

/* Card commune (calque sur .solivalis-account-delete-section). */
.solivalis-edit-account-section {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 24px 26px;
	margin-bottom: 14px;
}

/* Fieldset « Changement de mot de passe » : maintenant à l'intérieur de
   la 2e card, donc on enlève son propre bord/padding pour ne pas créer
   de double cadre. */
.woocommerce-EditAccountForm fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}
.woocommerce-EditAccountForm fieldset legend {
	padding: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
	margin-bottom: 14px;
	letter-spacing: -0.01em;
}

/* Espacement des champs à l'intérieur des cards. */
.woocommerce-EditAccountForm .woocommerce-form-row {
	margin-bottom: 16px;
}
.solivalis-edit-account-section .woocommerce-form-row:last-child {
	margin-bottom: 0;
}

/* Description sobre sous le champ « Nom affiché ». */
.woocommerce-EditAccountForm .description,
.woocommerce-EditAccountForm em {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	font-style: italic;
	color: var(--ink-soft);
}

/* Bouton « Enregistrer les modifications » : libre, sous les cards. */
.woocommerce-EditAccountForm > p:last-of-type {
	margin: 18px 0 0;
}

/* ============================================================
   Page Voir la commande (/mon-compte/view-order/{id}/)
   Sections « Détails de la commande » et « Adresse de facturation »
   encadrées dans des cards blanches, cohérence visuelle avec le reste
   du compte. Pas d'override de template WC.
   ============================================================ */

.woocommerce-order-details,
.woocommerce-customer-details {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 22px 26px;
	margin: 18px 0 22px;
}
.woocommerce-order-details h2.woocommerce-order-details__title,
.woocommerce-customer-details h2 {
	margin-top: 0;
	margin-bottom: 16px;
	font-size: 16px !important;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--ink);
}
.woocommerce-order-details .woocommerce-table--order-details,
.woocommerce-order-details .shop_table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	margin: 0;
}
.woocommerce-order-details .woocommerce-table--order-details th,
.woocommerce-order-details .woocommerce-table--order-details td,
.woocommerce-order-details .shop_table th,
.woocommerce-order-details .shop_table td {
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
	color: var(--ink);
	background: transparent;
}
.woocommerce-order-details .woocommerce-table--order-details thead th {
	font-weight: 700;
	color: var(--ink-soft);
	font-size: 13px;
	letter-spacing: 0.02em;
}
.woocommerce-order-details .woocommerce-table--order-details tfoot td,
.woocommerce-order-details .woocommerce-table--order-details tfoot th {
	font-weight: 600;
}
.woocommerce-order-details .woocommerce-table--order-details tfoot tr:last-child td,
.woocommerce-order-details .woocommerce-table--order-details tfoot tr:last-child th {
	border-bottom: 0;
}

/* Bloc d'adresse de facturation : aération + suppression du « bord
   gris » natif WC qui faisait double cadre. */
.woocommerce-customer-details address {
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-style: normal;
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink);
}

/* Bouton « Commander une nouvelle fois » : marge cohérente, bien
   séparé visuellement du tableau. */
.woocommerce-MyAccount-content .order-again {
	margin: 6px 0 24px;
}

/* Texte « Merci pour votre commande. » : sobre, centré. */
.woocommerce-MyAccount-content > p:last-child {
	text-align: center;
	color: var(--ink-soft);
	font-size: 14px;
	margin-top: 24px;
}

/* ============================================================
   Page Supprimer le compte (/mon-compte/supprimer-mon-compte/)
   Styles migrés depuis le <style> inline d'inc/account-delete.php
   pour cohérence (typo Inter partout, plus de Georgia serif) et
   pour éviter la duplication du CSS à chaque rendu.
   ============================================================ */
.solivalis-account-delete-warning {
	background: #fff4e6;
	border-left: 3px solid #c9a227;
	padding: 14px 18px;
	border-radius: 6px;
	margin-bottom: 28px;
}
/* Chaque section informative (« Ce qui sera supprimé », « Ce qui sera
   conservé », « Cadeaux offerts ») devient une card blanche, cohérent
   avec Mes cadeaux offerts et Mes commandes. */
.solivalis-account-delete-section {
	background: var(--bg-card);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 20px 24px;
	margin-bottom: 14px;
}
.solivalis-account-delete-section h3 {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
	color: var(--ink);
	/* font-family non précisée : hérite d'Inter via .woocommerce h3 ligne 34. */
}
.solivalis-account-delete-section ul {
	padding-left: 22px;
	margin: 0;
}
.solivalis-account-delete-section ul li {
	margin-bottom: 4px;
}
.solivalis-account-delete-section ul li:last-child {
	margin-bottom: 0;
}
.solivalis-account-delete-section p {
	margin: 0;
	line-height: 1.6;
}
.solivalis-account-delete-form {
	margin-top: 36px;
	padding: 24px;
	background: #f7f9fc;
	border-radius: 8px;
	border: 1px solid #e3e8f0;
}
.solivalis-account-delete-submit {
	background: #b91c1c !important;
	border-color: #b91c1c !important;
	color: #ffffff !important;
}
.solivalis-account-delete-submit:hover {
	background: #991b1b !important;
	border-color: #991b1b !important;
}

/* Badge d'état. Couleurs sobres alignées sur les codes UX standards :
   vert = réclamé, doré = en cours, bleu = programmé, gris = expiré. */
.solivalis-gift-status {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: nowrap;
}
.solivalis-gift-status--claimed {
	background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0;
}
.solivalis-gift-status--sent,
.solivalis-gift-status--reminded {
	background: #fff8e1; color: #b45309; border: 1px solid #fde68a;
}
.solivalis-gift-status--scheduled {
	background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe;
}
.solivalis-gift-status--expired {
	background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb;
}
.solivalis-gift-status--pending {
	background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb;
}

/* Page « Supprimer mon compte » — les 3 sous-titres h3 ("Ce qui sera
   supprimé", "Ce qui sera conservé (anonymisé)", "Cadeaux offerts") en
   majuscules + letter-spacing, comme demandé par Gaby le 04/06/2026. */
.solivalis-account-delete h3 {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
	margin-top: 28px;
}

/* Note de transparence sur Stripe Link affichée juste avant le formulaire de paiement.
   Texte injecté par solivalis_checkout_stripe_link_disclaimer() (inc/checkout-fields.php). */
.solivalis-link-disclaimer {
	background: var(--bg-soft);
	border: 1px solid var(--line);
	border-left: 3px solid var(--gold);
	border-radius: 10px;
	padding: 12px 16px;
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--ink-soft);
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.solivalis-link-disclaimer-icon {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	color: var(--gold);
	margin-top: 1px;
}
.solivalis-link-disclaimer-text {
	flex: 1 1 auto;
}

/* Mention « édité par Gamaribo » sous le bouton Commander
   (cf. inc/branding.php — hook woocommerce_review_order_after_submit) */
.solivalis-gamaribo-mention {
	margin: 16px 0 0;
	text-align: center;
}
.solivalis-gamaribo-mention p {
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--ink-soft);
	margin: 0;
	font-style: italic;
}
.solivalis-gamaribo-mention strong {
	color: var(--gold);
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.05em;
}

/* Libellé « Sélectionnez le mode de règlement » entre le total et le
   bloc des moyens de paiement (cf. inc/branding.php — hook
   woocommerce_review_order_before_payment). */
.solivalis-checkout-payment-label {
	margin: 24px 0 14px;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	letter-spacing: 0.01em;
}

/* Section paiement Stripe — encart dédié dans la card order_review */
#payment {
	background: var(--bg-card) !important;
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 16px;
	margin-top: 16px;
}
#payment ul.payment_methods {
	padding: 0;
	margin: 0 0 12px;
	list-style: none;
	border: none;
}
#payment ul.payment_methods li {
	padding: 0;
	background: transparent;
}
#payment ul.payment_methods li label {
	font-weight: 700;
	font-size: 14px;
	color: var(--ink);
}
#payment div.payment_box {
	background: transparent !important;
	border: none !important;
	margin: 12px 0 0;
	padding: 0;
	font-size: 14px;
	color: var(--ink-soft);
}
#payment div.payment_box::before { display: none !important; }

/* Bouton « Commander » : grand, doré, full-width sous le récap */
.woocommerce-checkout #payment #place_order,
.woocommerce-checkout button#place_order {
	display: block;
	width: 100%;
	margin: 20px 0 0 !important;
	padding: 16px 32px !important;
	background: linear-gradient(135deg, var(--gold), var(--gold-bright)) !important;
	color: #FFFFFF !important;
	border: none !important;
	border-radius: 999px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: transform 0.12s ease, box-shadow 0.18s ease;
}
.woocommerce-checkout button#place_order:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px -10px rgba(201, 162, 39, 0.6);
}

/* Texte sous le bouton (« Vos données sont protégées… ») */
.woocommerce-terms-and-conditions-wrapper {
	margin: 14px 0 0;
}

/* Liens vers CGV / Politique de confidentialité dans les cases à cocher :
   visibles, dorés, soulignés (sinon le client ne sait pas qu'il peut cliquer). */
.woocommerce-terms-and-conditions-checkbox-text a,
.woocommerce-privacy-policy-text a,
.solivalis-waiver-row a {
	color: var(--gold);
	text-decoration: underline;
	text-underline-offset: 2px;
	font-weight: 600;
	transition: color 0.15s ease;
}
.woocommerce-terms-and-conditions-checkbox-text a:hover,
.woocommerce-privacy-policy-text a:hover,
.solivalis-waiver-row a:hover {
	color: var(--gold-bright);
}

/* Notice « Errors » WC mieux intégrées */
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-error {
	background: #FEE2E2 !important;
	border-left: 3px solid #DC2626 !important;
	color: #991B1B !important;
	border-radius: 8px !important;
	padding: 12px 16px !important;
	font-size: 14px;
	margin-bottom: 18px;
}

/* Mobile : moins de padding latéral sur les cards */
@media (max-width: 600px) {
	body.woocommerce-checkout .wp-site-blocks,
	body.woocommerce-checkout main {
		padding: 24px 12px;
	}
	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout > h3#order_review_heading,
	.woocommerce-checkout form.checkout #order_review {
		padding: 18px 16px;
	}
}
