/* Compléments WordPress / WooCommerce — app.css est la feuille d'origine, inchangée. */

[hidden] { display: none !important; }
html { background: #0a0a0a; }
body { min-height: 100vh; }
input[type="checkbox"], input[type="radio"] { accent-color: #c9a96e; }
.obs-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
a { color: inherit; text-decoration: none; }
.btn-primary:disabled { opacity: .5; cursor: not-allowed; }

/* Messages WooCommerce */
.woocommerce-error, .woocommerce-message, .woocommerce-info,
.woocommerce-NoticeGroup ul {
	list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.25rem;
	font-size: .875rem; line-height: 1.5; border: 1px solid #2a2a2a; background: #111111; color: #a0a0a0;
}
.woocommerce-error { border-color: rgba(239, 68, 68, .4); color: #fca5a5; background: rgba(239, 68, 68, .08); }
.woocommerce-message { border-color: rgba(74, 222, 128, .35); color: #4ade80; }
.woocommerce-error li + li { margin-top: .35rem; }
.woocommerce-error a, .woocommerce-message a, .woocommerce-info a { color: #c9a96e; text-decoration: underline; }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 1rem; }
.woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-invalid input { border-color: #ef4444 !important; }

/* Chargement AJAX WooCommerce */
.blockUI.blockOverlay { background: rgba(10, 10, 10, .6) !important; }
form.processing { opacity: .7; pointer-events: none; }

/* Moyens de paiement */
.wc_payment_method img { display: inline-block; max-height: 22px; margin-left: .5rem; vertical-align: middle; }
.payment_box p { margin: 0; }
.payment_box input, .payment_box select {
	width: 100%; background: #111111; border: 1px solid #2a2a2a; color: #fff; padding: .6rem .8rem; font-size: .875rem;
}
.woocommerce-terms-and-conditions-wrapper { font-size: .75rem; color: #6b6b6b; }

/* Contenu générique (pages créées dans l'admin) */
.obs-prose h2 { font-family: Playfair Display, Georgia, serif; font-size: 1.5rem; color: #fff; margin: 2.5rem 0 1rem; }
.obs-prose h3 { color: #fff; font-weight: 600; margin: 2rem 0 .75rem; }
.obs-prose p, .obs-prose ul, .obs-prose ol { margin-bottom: 1rem; }
.obs-prose ul { list-style: disc; padding-left: 1.25rem; }
.obs-prose ol { list-style: decimal; padding-left: 1.25rem; }
.obs-prose a { color: #c9a96e; text-decoration: underline; }
.obs-prose strong { color: #fff; }

/* Espace client connecté */
.obs-account-nav a:last-child { border-bottom: 0; }
.obs-account-content { color: #a0a0a0; font-size: .9rem; line-height: 1.7; }
.obs-account-content p { margin-bottom: 1rem; }
.obs-account-content a { color: #c9a96e; }
.obs-account-content h2, .obs-account-content h3, .obs-account-content legend {
	font-family: Playfair Display, Georgia, serif; color: #fff; font-size: 1.35rem; margin: 0 0 1rem;
}
.obs-account-content table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; background: #111111; border: 1px solid #2a2a2a; }
.obs-account-content th, .obs-account-content td { text-align: left; padding: .85rem 1rem; border-bottom: 1px solid #2a2a2a; }
.obs-account-content th { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #6b6b6b; font-weight: 600; }
.obs-account-content td { color: #fff; }
.obs-account-content .button, .obs-account-content button[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; padding: .55rem 1.25rem; margin: .15rem .25rem .15rem 0;
	background: #c9a96e; color: #1a1a1a !important; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
	border: 0; cursor: pointer; transition: background .3s; text-decoration: none;
}
.obs-account-content .button:hover, .obs-account-content button[type="submit"]:hover { background: #d4b87a; }
.obs-account-content form .form-row { margin-bottom: 1rem; }
.obs-account-content label { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #a0a0a0; margin-bottom: .5rem; }
.obs-account-content input.input-text, .obs-account-content select, .obs-account-content textarea {
	width: 100%; background: #1e1e1e; border: 1px solid #2a2a2a; color: #fff; padding: .75rem 1rem; font-size: .875rem;
}
.obs-account-content input.input-text:focus, .obs-account-content select:focus { outline: none; border-color: #c9a96e; }
.obs-account-content fieldset { border: 1px solid #2a2a2a; padding: 1.25rem; margin: 1.5rem 0; }
.obs-account-content .woocommerce-Addresses { display: grid; gap: 1.5rem; }
.obs-account-content address { font-style: normal; background: #111111; border: 1px solid #2a2a2a; padding: 1.25rem; color: #fff; }
.obs-account-content mark { background: none; color: #c9a96e; }
.obs-account-content .required { color: #ef4444; text-decoration: none; border: 0; }
.obs-account-content .woocommerce-pagination { display: flex; gap: .5rem; }
@media (min-width: 48rem) {
	.obs-account-content .form-row-first, .obs-account-content .form-row-last { width: 48.5%; display: inline-block; vertical-align: top; }
	.obs-account-content .form-row-first { margin-right: 3%; }
}

/* Page « mot de passe oublié » (rendue dans l'espace client) */
.woocommerce-ResetPassword { max-width: 28rem; margin: 4rem auto; padding: 0 1rem; color: #a0a0a0; }

/* Avis clients */
#avis .comment-form-cookies-consent, #avis .logged-in-as { display: none; }
#avis .form-submit { margin: 0; }
#avis .comment-reply-title { display: none; }

/* Formulaire carte Monext (widget intégré) aux couleurs du site.
   Les champs numéro et cryptogramme sont des iframes : Monext y recopie le style
   des champs .pl-input, d'où les règles appliquées aussi aux champs masqués. */
.payment_box:has(.PaylineWidget) > p { display: none; }
.PaylineWidget { font-family: var(--font-body) !important; margin-top: .25rem; }
.PaylineWidget .pl-tabs-container { border: 0 !important; }
.PaylineWidget .pl-tab { background: #1e1e1e !important; border: 1px solid #2a2a2a !important; border-bottom: 0 !important; }
.PaylineWidget .pl-tab.pl-active { background: #111111 !important; }
.PaylineWidget .pl-paymentMethods { background: #111111 !important; border: 1px solid #2a2a2a !important; }
.PaylineWidget .pl-pmContainer { background: transparent !important; padding: 1rem 1.25rem 1.25rem !important; }
.PaylineWidget .pl-label-input {
	color: #a0a0a0 !important; font-size: .7rem !important; font-weight: 500 !important;
	text-transform: uppercase; letter-spacing: .08em; margin-bottom: .5rem !important;
}
.PaylineWidget .pl-input-group {
	background: #ffffff !important; border: 1px solid #3a3a3a !important; border-radius: 0 !important;
	box-shadow: none !important; transition: border-color .2s, box-shadow .2s;
}
.PaylineWidget .pl-input-group:focus-within { border-color: #c9a96e !important; box-shadow: 0 0 0 2px rgba(201, 169, 110, .35) !important; }
/* Les champs numéro et cryptogramme sont des iframes Monext à fond blanc :
   tous les champs sont donc blancs à texte foncé (Monext recopie ce style dans les iframes). */
.PaylineWidget .pl-input, .PaylineWidget input.pl-input, .PaylineWidget select.pl-input, .PaylineWidget iframe.pl-input {
	background: #ffffff !important; color: #1a1a1a !important; border: 0 !important; border-radius: 0 !important;
	font-size: 15px !important; box-shadow: none !important;
}
.PaylineWidget .pl-input::placeholder { color: #8a8a8a !important; }
.PaylineWidget .pl-tab.obs-duplicate { display: none !important; }
.PaylineWidget .pl-message-error { color: #fca5a5 !important; }
.PaylineWidget .pl-pay-btn {
	background: #c9a96e !important; color: #1a1a1a !important; border: 0 !important; border-radius: 0 !important;
	text-transform: uppercase; letter-spacing: .05em; font-weight: 600 !important; font-size: .875rem !important;
	padding: .9rem 2rem !important; width: 100%; margin-top: .5rem; transition: background .3s;
}
.PaylineWidget .pl-pay-btn:hover { background: #d4b87a !important; }
