/* ==========================================================================
   Éditions ATP — Design System (Tokens Unifiés & Accessibilité)
   ========================================================================== */

:root {
	/* Synergie Typographique Elementor Free — Inter Tight Default (Poids Max 600) */
	--atp-font-family-heading : var(--e-global-typography-primary-font-family, var(--e-global-typography-secondary-font-family, 'Inter Tight', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif));
	--atp-font-weight-heading : var(--e-global-typography-primary-font-weight, 600);
	
	--atp-font-family-body    : var(--e-global-typography-text-font-family, 'Inter Tight', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
	--atp-font-weight-body    : var(--e-global-typography-text-font-weight, 400);

	/* Couleurs de Marque ATP & Variables Elementor Free */
	--atp-yellow        : var(--e-global-color-accent, #f59e0b);
	--atp-yellow-hover  : #d97706;
	--atp-yellow-bright : #fbbf24;
	/* Variante de jaune/or foncée pour le texte sur fond clair (Conformité WCAG AA >= 4.5:1) */
	--atp-accent-text   : #b45309;
	--atp-gold          : #c5a059;
	--atp-gold-dark     : #9b7a36;
	--atp-gold-light    : #fdfbf7;
	--atp-font-serif    : 'Playfair Display', 'Merriweather', Georgia, 'Times New Roman', serif;

	--atp-dark          : var(--e-global-color-primary, #1d2327);
	--atp-dark-soft     : var(--e-global-color-secondary, #2d3a42);
	--atp-text-dark     : var(--e-global-color-text, #0f172a);
	--atp-text-muted    : #64748b;
	--atp-pink          : #e11d48;

	/* Raccordement aux variables Elementor avec fallbacks */
	--atp-primary       : var(--e-global-color-primary, var(--atp-dark));
	--atp-primary-dark  : var(--e-global-color-secondary, var(--atp-dark-soft));
	--atp-accent        : var(--e-global-color-accent, var(--atp-yellow));

	/* Nuances neutres */
	--atp-text-light    : #9ca3af;
	--atp-border        : #e5e7eb;
	--atp-border-dark   : #cbd5e1;
	--atp-bg-light      : #f8fafc;
	--atp-bg-card       : #ffffff;

	/* Largeur de conteneur unifiée pour Header, Contenu & Footer (Aligné sur Elementor 1150px) */
	--atp-container-max-width: 1150px;

	/* Échelle des Z-Index Standardisée */
	--atp-z-content     : 1;
	--atp-z-dropdown    : 200;
	--atp-z-header      : 1000;
	--atp-z-modal       : 2000;
	--atp-z-floating    : 9000;
	--atp-z-cookie      : 10000;

	/* Rayons de bordures & Ombres */
	--atp-radius-sm     : 6px;
	--atp-radius        : 8px;
	--atp-radius-lg     : 12px;
	--atp-radius-full   : 9999px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	overflow-x: hidden;
	overflow-x: clip;
	width: 100%;
	max-width: 100%;
}

body {
	position: relative;
}

/* ── Héritage propre des polices Inter Tight (Plafond de graisse 600) ── */
body {
	font-family: var(--atp-font-family-body) !important;
	font-weight: var(--atp-font-weight-body);
	color: var(--atp-text-dark);
}

h1, h2, h3, h4, h5, h6,
.atp-page-title,
.atp-product-title,
.atp-cart-header__title,
.atp-checkout-header__title,
.atp-auth-title,
.atp-authors-header__title,
.atp-author-card__name,
.atp-auteur-title {
	font-family: var(--atp-font-family-heading) !important;
	font-weight: var(--atp-font-weight-heading) !important;
	color: var(--atp-primary);
	letter-spacing: -0.01em;
}

h1 { font-size: 24px; }
h2 { font-size: 20px; }
h3 { font-size: 18px; }
h4 { font-size: 16px; }

/* Prix WooCommerce adoucis : Poids max 600 et taille contenue */
.price,
.amount,
.atp-book-card__price,
.atp-product-price-row {
	font-weight: 600 !important;
	color: #1e293b !important;
}

.atp-book-card__price {
	font-size: 14.5px !important;
}

button, input, select, textarea {
	font-family: var(--atp-font-family-body) !important;
}

/* ── Règle Universelle d'Harmonisation : Boutons 100% Bords Arrondis (Pill Shape) ── */
button,
.button,
.btn,
.atp-btn,
.atp-btn-view,
.atp-btn-primary,
.atp-btn-secondary,
.atp-btn-feuilleter,
.atp-btn-contact-submit,
.atp-btn-next,
.atp-btn-prev,
.atp-btn-submit-final,
.atp-btn-apply-coupon,
.atp-btn-update-cart,
.atp-btn--accent,
.atp-404-btn,
.atp-author-card__cta,
.atp-single-auteur-header__btn,
.atp-single-sticky-bar__btn,
.atp-cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order,
.woocommerce-checkout button.button#place_order,
.single_add_to_cart_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-message a.button,
.woocommerce-message .button,
.woocommerce-orders-table__cell-order-actions a.button,
.woocommerce-MyAccount-downloads .download-file a.button,
form.woocommerce-EditAddressForm button[name="save_address"],
form.woocommerce-EditAccountForm.edit-account button[name="save_account_details"],
form.woocommerce-ResetPassword button[type="submit"],
.wp-block-button__link,
.elementor-button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
	border-radius: 9999px !important;
}

/* Contour de sélection visuel WCAG AA pour la navigation au clavier */
:focus-visible {
	outline: 2.5px solid var(--atp-yellow) !important;
	outline-offset: 3px !important;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2.5px solid var(--atp-yellow) !important;
	outline-offset: 3px !important;
}

/* Contrôles de contraste d'accessibilité */
.atp-text-muted-a11y {
	color: #475569 !important;
}

/* Masquage visuel strict pour l'accessibilité (screen-reader-text) */
.screen-reader-text,
.sr-only,
.atp-sr-only {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	-webkit-clip-path: inset(50%) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	word-wrap: normal !important;
}

/* ── Bannières de Notices WooCommerce & Validation de Formulaires ── */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.atp-wc-notices .woocommerce-message,
.atp-wc-notices .woocommerce-error,
.atp-wc-notices .woocommerce-info {
	position: relative !important;
	padding: 14px 20px 14px 48px !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	margin: 0 0 20px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	word-break: break-word !important;
	overflow-wrap: break-word !important;
}

/* Neutralisation de l'ancienne police iconique WooCommerce et intégration d'icônes vectorielles sobres */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
	content: "" !important;
	position: absolute !important;
	left: 16px !important;
	top: 15px !important;
	width: 20px !important;
	height: 20px !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;
	font-family: inherit !important;
	display: block !important;
	line-height: 1 !important;
	margin: 0 !important;
}

/* 1. Notice d'Information (Coupons, Toggles, Infos générales) */
.atp-wc-notices .woocommerce-info,
.woocommerce-info {
	background-color: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-left: 4px solid var(--atp-gold, #c5a880) !important;
	color: #1e293b !important;
	font-weight: 500 !important;
}

.woocommerce-info::before {
	/* Cercle et point d'information minimaliste sobre */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") !important;
}

.woocommerce-info a {
	color: var(--atp-primary, #0f172a) !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	transition: color 0.15s ease !important;
}

.woocommerce-info a:hover {
	color: var(--atp-gold, #c5a880) !important;
}

/* 2. Notice d'Erreur (Validation formulaire, Champs obligatoires, Authentification) */
.atp-wc-notices .woocommerce-error,
.woocommerce-error {
	background-color: #fef2f2 !important;
	border: 1px solid #fee2e2 !important;
	border-left: 4px solid #ef4444 !important;
	color: #991b1b !important;
	font-weight: 500 !important;
	list-style: none !important;
	margin: 0 0 20px !important;
}

.woocommerce-error::before {
	/* Cercle et point d'exclamation épuré sobre */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") !important;
}

.woocommerce-error li {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.5 !important;
}

.woocommerce-error li + li {
	margin-top: 6px !important;
}

/* 3. Notice de Succès (Ajout panier, Confirmation de mise à jour) */
.atp-wc-notices .woocommerce-message,
.woocommerce-message {
	background-color: #f0fdf4 !important;
	border: 1px solid #dcfce7 !important;
	border-left: 4px solid #16a34a !important;
	color: #14532d !important;
	font-weight: 500 !important;
	overflow: hidden !important;
}

.woocommerce-message::before {
	/* Cercle et coche sobre */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='16 9 10.5 15 8 12.5'/%3E%3C/svg%3E") !important;
}

.woocommerce-message a.button,
.woocommerce-message .button {
	float: right !important;
	background-color: #15803d !important;
	color: #ffffff !important;
	padding: 6px 14px !important;
	border-radius: 6px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	line-height: 1.4 !important;
	border: none !important;
	margin: -2px 0 -2px 14px !important;
	transition: background-color 0.15s ease !important;
}

.woocommerce-message a.button:hover,
.woocommerce-message .button:hover {
	background-color: #166534 !important;
	color: #ffffff !important;
}

/* 4. Responsive Mobile & Tablettes */
@media (max-width: 640px) {
	.woocommerce-message,
	.woocommerce-error,
	.woocommerce-info,
	.atp-wc-notices .woocommerce-message,
	.atp-wc-notices .woocommerce-error,
	.atp-wc-notices .woocommerce-info {
		padding: 12px 14px 12px 42px !important;
		font-size: 13.5px !important;
		border-radius: 8px !important;
	}

	.woocommerce-message::before,
	.woocommerce-error::before,
	.woocommerce-info::before {
		left: 12px !important;
		top: 13px !important;
		width: 18px !important;
		height: 18px !important;
	}

	.woocommerce-message a.button,
	.woocommerce-message .button {
		float: none !important;
		display: block !important;
		width: 100% !important;
		text-align: center !important;
		margin: 10px 0 0 0 !important;
		box-sizing: border-box !important;
	}
}

/* Validation des champs en erreur */
p.form-row.woocommerce-invalid input.input-text,
p.form-row.woocommerce-invalid select,
p.form-row.woocommerce-invalid textarea,
.woocommerce-invalid-required-field input {
	border-color: #ef4444 !important;
}

p.form-row.woocommerce-invalid input.input-text:focus,
p.form-row.woocommerce-invalid select:focus,
p.form-row.woocommerce-invalid textarea:focus {
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15) !important;
}

/* ── Badges de Disponibilité Produit ── */
.stock.out-of-stock {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	padding: 4px 12px !important;
	background: #fef2f2 !important;
	border: 1px solid #fecaca !important;
	color: #dc2626 !important;
	border-radius: 50px !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	margin-bottom: 12px !important;
}

.stock.in-stock {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	padding: 4px 12px !important;
	background: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	color: #15803d !important;
	border-radius: 50px !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	margin-bottom: 12px !important;
}

/* ── Modale Chapitres & Marges Internes ── */
.atp-modal__panel {
	padding: 28px !important;
	border-radius: 16px !important;
}

.atp-modal__body {
	padding: 20px 0 0 0 !important;
}

/* ── Accessibilité Clavier Universelle (WCAG 2.1 AA - 2.4.7 Focus Visible) ── */
:focus-visible {
	outline: 2px solid var(--atp-yellow, #f59e0b) !important;
	outline-offset: 2px !important;
}

