/*
Theme Name: Royale Digital Keys
Description: Thème blocs sur mesure de la boutique Royale Digital Keys (WooCommerce).
Author: Aurelius-DC
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: royale-digital-keys
*/

/* ==========================================================================
   Socle — ne pas retirer (voir references/theme-sur-mesure.md)
   ========================================================================== */

/* Espacement automatique de Gutenberg coupé à la source (theme.json : blockGap 0) ; filet de
   sécurité à spécificité nulle, qui ne peut écraser aucune marge des composants ci-dessous. */
:where(.wp-site-blocks) > * { margin-block: 0; }
:where(.wp-block-group, .wp-block-column, .wp-block-cover__inner-container) > :where(*) { margin-block: 0; }
figure.wp-block-image { margin: 0; }

/* L'attribut height="…" des images l'emporterait sur tout aspect-ratio des composants. */
img { height: auto; max-width: 100%; }

/* Contenu saisi par le client dans une page ordinaire (hors composants de la maquette) :
   rythme de lecture par défaut. */
.entry-content > :where(p, ul, ol, h2, h3, h4, blockquote, figure) + :where(p, ul, ol, h2, h3, h4, blockquote, figure) {
	margin-block-start: var(--wp--preset--spacing--s);
}

/* ==========================================================================
   Composants de la maquette — coller ici le CSS validé en phase maquette
   (sélecteurs de classes : ils s'appliquent tels quels aux blocs via className)
   ========================================================================== */
/* ==========================================================================
   Royale Digital Keys — composants (maquette 1920 px du client)
   Copié ensuite dans style.css du thème (build/construire-theme.sh).
   ========================================================================== */

:root {
	--rdk-marge: 88px;              /* marge latérale de la maquette (1920 px) */
	--rdk-carte-rayon: 24px;
	--icone-ecran: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E");
	--icone-manette: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8h12a4 4 0 0 1 4 4l-1 5a2.5 2.5 0 0 1-4.3 1.2L15 16H9l-1.7 2.2A2.5 2.5 0 0 1 3 17l-1-5a4 4 0 0 1 4-4z'/%3E%3Cpath d='M7 12h3M8.5 10.5v3M16 11h.01M18 13h.01'/%3E%3C/svg%3E");
	--icone-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7L3 8'/%3E%3Cpath d='M3 3v5h5M12 7v5l3 2'/%3E%3C/svg%3E");
	--icone-couronne: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l4 4 5-7 5 7 4-4-2 11H5z'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E");
	--icone-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");
	--icone-fenetre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5l8-1v7H3zM13 3.8L21 3v8h-8zM3 13h8v7l-8-1zM13 13h8v8l-8-1z'/%3E%3C/svg%3E");
	--icone-document: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4l9-2 5 2v16l-5 2-9-2zm5 1v14l4 1V4z'/%3E%3C/svg%3E");
	--icone-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='8' cy='12' r='4'/%3E%3Cpath d='M12 12h9M18 12v3M21 12v2'/%3E%3C/svg%3E");
	--icone-cycle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M20 12a8 8 0 0 1-14 5.3M4 12a8 8 0 0 1 14-5.3'/%3E%3Cpath d='M18 3v4h-4M6 21v-4h4'/%3E%3C/svg%3E");
	--icone-portable: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='8' height='18' rx='3'/%3E%3Crect x='13' y='3' width='8' height='18' rx='3'/%3E%3C/svg%3E");
}

body { background: var(--wp--preset--color--fond); color: var(--wp--preset--color--texte); font-family: var(--wp--preset--font-family--texte); }
a { color: inherit; }

/* ---------------------------------------------------------------- en-tête */
header.wp-block-template-part { background: var(--wp--preset--color--noir); }
.entete { display: flex; align-items: center; gap: 40px; height: 130px; padding: 0 var(--rdk-marge); box-sizing: border-box; }
.entete .logo { flex: 0 0 auto; margin: 0; }
.entete .logo img { width: 150px; height: auto; display: block; }
/* maquette : logo | menu + recherche au centre-gauche | compte, panier à droite (devise unique XOF : pas de sélecteur) */
.nav-principale { flex: 0 0 auto; margin-left: auto; }
.nav-principale .wp-block-navigation__container { gap: 40px; }
.nav-principale .wp-block-navigation-item__content { display: flex; align-items: center; gap: 10px; color: var(--wp--preset--color--texte); font-size: 20px; font-weight: 700; text-decoration: none; }
.nav-principale .wp-block-navigation-item__content::before { content: ""; width: 30px; height: 30px; background: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.nav-logiciels { --i: var(--icone-ecran); }
.nav-jeux { --i: var(--icone-manette); }
.nav-abonnements { --i: var(--icone-horloge); }
.nav-meilleures-ventes { --i: var(--icone-couronne); }

.entete .recherche { flex: 0 0 auto; border-left: 1px solid var(--wp--preset--color--separateur); padding-left: 28px; height: 50px; display: flex; align-items: center; margin-right: auto; }
.entete .rdk-recherche-ouvrir { display: block; width: 26px; height: 26px; background: var(--wp--preset--color--primaire); cursor: pointer;
	-webkit-mask: var(--icone-loupe) center / contain no-repeat; mask: var(--icone-loupe) center / contain no-repeat; }
.entete .rdk-recherche-ouvrir:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 4px; }

/* panneau de recherche (functions.php + assets/app.js) : barre arrondie, puis 3 suggestions sur fond noir */
html.rdk-recherche-ouverte { overflow: hidden; }
.rdk-recherche { position: fixed; inset: 0; z-index: 1000; box-sizing: border-box; padding: 24px 16px; overflow-y: auto; background: rgba(0, 0, 0, .7); }
.rdk-recherche[hidden] { display: none; }
.admin-bar .rdk-recherche { padding-top: 56px; }  /* sous la barre d administration (connecté) */
.rdk-recherche-boite { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; max-width: 1000px; margin: 0 auto; }
.rdk-recherche-form { display: flex; align-items: center; gap: 12px; box-sizing: border-box; height: 64px; margin: 0; padding: 7px 7px 7px 24px; border-radius: 40px; background: #2D2D2D; }
.rdk-recherche-loupe { flex: 0 0 22px; width: 22px; height: 22px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--icone-loupe) center / contain no-repeat; mask: var(--icone-loupe) center / contain no-repeat; }
.rdk-recherche-champ { flex: 1 1 auto; min-width: 0; height: 48px; margin: 0; padding: 0; border: 0; background: none; font: inherit; font-size: 20px; color: var(--wp--preset--color--texte); outline: none; }
.rdk-recherche-champ::placeholder { color: #CFCFCF; opacity: 1; }
.rdk-recherche-champ::-webkit-search-cancel-button { -webkit-appearance: none; }
.rdk-recherche-envoyer { flex: 0 0 auto; height: 50px; margin: 0; padding: 0 28px; border: 0; border-radius: 30px; background: var(--wp--preset--color--primaire);
	font: inherit; font-size: 19px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); cursor: pointer; }
.rdk-recherche-envoyer:hover { filter: brightness(1.08); }
.rdk-recherche-fermer { flex: 0 0 44px; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; color: var(--wp--preset--color--texte); }
.rdk-recherche-fermer::before { content: "×"; font-size: 32px; line-height: 44px; }
.rdk-recherche-fermer:hover { background: #3A3A3A; }
.rdk-recherche-form :focus-visible { outline: 2px solid var(--wp--preset--color--primaire); outline-offset: 2px; }
.rdk-recherche-resultats { padding: 26px 22px 22px; border-radius: 22px; background: #000000; }
.rdk-recherche-titre { margin: 0 0 12px; font-size: 16px; font-weight: 500; color: #EDEDED; }
.rdk-recherche-liste { margin: 0; padding: 0; list-style: none; }
.rdk-recherche-liste li { margin: 0; border-top: 1px solid #3A3A3A; }
.rdk-recherche-liste li:first-child { border-top: 0; }
.rdk-recherche-produit { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 20px; padding: 12px 0; text-decoration: none; }
.rdk-recherche-image { width: 80px; height: 80px; border-radius: 8px; object-fit: cover; }
.rdk-recherche-infos { display: flex; flex-direction: column; justify-content: space-between; gap: 6px; min-width: 0; }
.rdk-recherche-nom { font-size: 20px; font-weight: 800; line-height: 1.25; color: var(--wp--preset--color--texte); }
.rdk-recherche-prix { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; font-size: 18px; color: var(--wp--preset--color--texte); }
.rdk-recherche-prix del { order: 2; color: #CFCFCF; font-size: 16px; }
.rdk-recherche-prix ins { text-decoration: none; }
.rdk-recherche-produit:hover .rdk-recherche-nom, .rdk-recherche-produit:focus-visible .rdk-recherche-nom { color: var(--wp--preset--color--primaire); }
.rdk-recherche-produit:focus-visible { outline: 2px solid var(--wp--preset--color--primaire); outline-offset: 2px; border-radius: 8px; }
.rdk-recherche-tout { display: inline-block; margin-top: 14px; font-size: 16px; font-weight: 700; color: var(--wp--preset--color--primaire); }

.entete-outils { display: flex; align-items: center; gap: 60px; flex: 0 0 auto; }
.compte .wc-block-customer-account__link { color: var(--wp--preset--color--texte); display: flex; }
.compte svg { width: 38px; height: 38px; }
.panier .wc-block-mini-cart__button { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--wp--preset--color--separateur); background: transparent;
	color: var(--wp--preset--color--texte); display: flex; align-items: center; justify-content: center; padding: 0; }
.panier .wc-block-mini-cart__quantity-badge svg { width: 32px; height: 32px; }

/* ---------------------------------------------------------------- héros */
.hero.wp-block-cover { min-height: 620px !important; padding: 0 0 0 131px; justify-content: flex-start; align-items: center;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 90%); }
.hero .wp-block-cover__inner-container { width: auto; max-width: 640px; margin: 0; padding-top: 50px; }
/* photo du héros : voile sombre à gauche pour garder le titre lisible quelle que soit la photo */
.hero .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg, rgba(0, 0, 0, .78) 0, rgba(0, 0, 0, .5) 38%, rgba(0, 0, 0, 0) 68%) !important; }
.hero-titre { margin: 0; font-size: var(--wp--preset--font-size--xl); font-weight: 800; line-height: 1.25; color: var(--wp--preset--color--texte); }
.hero-texte { margin: 2px 0 30px; font-size: 26px; line-height: 1.3; color: var(--wp--preset--color--texte); }
.b-plein .wp-block-button__link { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); font-size: 20px; font-weight: 700;
	padding: 12px 26px; border-radius: 30px; text-decoration: none; }

/* ---------------------------------------------------------------- plateformes */
.plateformes { display: flex; justify-content: center; gap: 88px; padding: 80px var(--rdk-marge) 50px; }
.plateforme { margin: 0; }
.plateforme a { display: flex; flex-direction: column; align-items: center; gap: 22px; color: var(--wp--preset--color--texte); text-decoration: none;
	font-size: 16px; font-weight: 700; letter-spacing: .06em; }
.plateforme a::before { content: ""; width: 56px; height: 56px; background: #B2B2B2; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.plateforme-steam { --i: var(--icone-cycle); }
.plateforme-windows { --i: var(--icone-fenetre); }
.plateforme-office { --i: var(--icone-document); }
.plateforme-logiciels { --i: var(--icone-cle); }
.plateforme-abonnements { --i: var(--icone-horloge); }
.plateforme-xbox { --i: var(--icone-manette); }
.plateforme-nintendo { --i: var(--icone-portable); }

/* ---------------------------------------------------------------- rayons de produits */
.rayon { padding: 90px var(--rdk-marge) 0; }
.rayon + .rayon { padding-top: 60px; }
.rayon-titre { margin: 0 0 46px; font-size: var(--wp--preset--font-size--xxl); font-weight: 800; color: var(--wp--preset--color--texte); }
/* 4 par ligne (lancement : catalogue réduit, cartes plus grandes ; 5 auparavant) */
.cartes-produits.wc-block-product-template { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 50px 30px; margin: 0; padding: 0; list-style: none; }
.cartes-produits.wc-block-product-template > .wc-block-product { width: auto !important; margin: 0 !important; max-width: none; }
.cartes-produits .wc-block-product { display: flex; flex-direction: column; background: var(--wp--preset--color--fond-alt); border-radius: var(--rdk-carte-rayon); overflow: hidden; }
.carte-image { margin: 0 !important; }
.carte-image img { display: block; width: 100%; height: auto; }
.carte-corps { padding: 30px 30px 22px; flex: 1 1 auto; }
.carte-titre { margin: 0; font-size: var(--wp--preset--font-size--l); font-weight: 700; line-height: 1.45; min-height: 64px;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.carte-titre a { color: var(--wp--preset--color--texte); text-decoration: none; }
.carte-infos { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 16px 0 14px; }
.puce-plateforme a { display: inline-block; padding: 4px 10px; border: 1px solid #4A4A4A; border-radius: 4px; background: var(--wp--preset--color--puce);
	color: #E6E6E6; font-size: var(--wp--preset--font-size--s); text-decoration: none; }
.carte-region a { color: var(--wp--preset--color--texte); font-size: var(--wp--preset--font-size--s); font-weight: 700; text-decoration: none; }
.carte-prix { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.carte-prix .prix .wc-block-components-product-price { display: flex; flex-direction: column-reverse; align-items: flex-start; font-size: var(--wp--preset--font-size--xl); line-height: 1.2; }
.carte-prix .prix ins { text-decoration: none; color: var(--wp--preset--color--texte); }
.carte-prix .prix del { font-size: 18px; color: var(--wp--preset--color--secondaire); margin-top: 6px; opacity: 1; }
.carte-prix { position: relative; }
/* prix en F CFA plus longs qu'en $ : le badge suit le prix dans le flux, calé sur la ligne de l'ancien prix,
   et passe dessous quand la carte est trop étroite (jamais de chevauchement) */
.carte-prix { align-items: flex-end; }
.remise { position: static; margin: 0 0 -4px; }
.remise .wc-block-components-product-sale-badge { position: static; background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire);
	border: 0; border-radius: 20px; padding: 2px 11px; font-size: 17px; font-weight: 700; text-transform: none; }
.voir-tout { display: flex; justify-content: center; margin-top: 50px; }
.b-contour .wp-block-button__link { background: transparent; color: var(--wp--preset--color--primaire); border: 1px solid var(--wp--preset--color--primaire);
	font-size: 20px; font-weight: 700; padding: 13px 25px; border-radius: 30px; text-decoration: none; }

/* ---------------------------------------------------------------- avis */
.avis { display: grid; grid-template-columns: 240px 1fr; gap: 60px; align-items: center; margin-top: 60px; padding: 90px 0 90px 24px; background: var(--wp--preset--color--noir); }
.avis-resume { text-align: center; }
.avis-resume p { margin: 0; }
.avis-note { font-size: 30px; font-weight: 700; }
.etoiles { color: #F0B22A; letter-spacing: 4px; font-size: 22px; }
.etoiles-grandes { font-size: 36px; }
.avis-total { font-size: 16px; margin-top: 8px !important; }
.avis-liste { display: grid; grid-template-columns: repeat(4, 1fr); gap: 60px; padding-right: 60px; }
.avis-carte p { margin: 0 0 8px; }
.avis-auteur { color: #BFBFBF; font-size: 16px; }
.avis-titre { font-weight: 700; font-size: 19px; }
.avis-texte { font-size: 16px; line-height: 1.35; }

/* ---------------------------------------------------------------- catégories */
.categories { padding: 90px var(--rdk-marge) 0; }
.tuiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.tuile-categorie.wp-block-cover { min-height: 0 !important; aspect-ratio: 422 / 423; border-radius: 12px; overflow: hidden; align-items: flex-start; padding: 50px 20px; }
.tuile-categorie::after { content: "RDK"; position: absolute; z-index: 1; inset: auto auto 0 0; width: 60%; height: 52%; padding: 0 0 18px 6px; box-sizing: border-box;
	display: flex; align-items: flex-end; font-size: 38px; font-weight: 800; letter-spacing: -1px; color: #FFFFFF;
	background: radial-gradient(ellipse 100% 100% at 0 100%, var(--wp--preset--color--accent) 99%, transparent 100%); }
/* photos des tuiles : voile en haut, sous le titre, pour qu'il reste lisible sur un ciel clair */
.tuile-categorie .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(180deg, rgba(0, 0, 0, .82) 0, rgba(0, 0, 0, .3) 40%, rgba(0, 0, 0, 0) 65%) !important; }
.tuile-titre { margin: 0; text-align: center; font-size: 28px; font-weight: 700; text-shadow: 0 2px 6px rgba(0, 0, 0, .6); }
.tuile-titre a { color: #FFFFFF; text-decoration: none; }

/* ---------------------------------------------------------------- FAQ */
.faq { padding: 110px var(--rdk-marge) 60px; }
.faq > * { max-width: var(--wp--style--global--content-size); margin-left: auto !important; margin-right: auto !important; }
.faq-titre { text-align: center; font-size: 48px; font-weight: 800; margin-bottom: 40px !important; }
.faq-question { border: 1px solid var(--wp--preset--color--bordure); border-radius: 16px; margin-bottom: 14px !important; }
.faq-question summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 25px 30px; font-size: 20px; font-weight: 700; cursor: pointer; }
.faq-question summary::-webkit-details-marker { display: none; }
.faq-question summary::after { content: "+"; color: var(--wp--preset--color--primaire); font-size: 34px; font-weight: 300; line-height: 1; }
.faq-question[open] summary::after { content: "−"; }
.faq-question > p { padding: 0 30px 24px; margin: 0; }
.faq-plus { margin-top: 30px !important; }

/* ---------------------------------------------------------------- pied de page */
footer.wp-block-template-part { background: var(--wp--preset--color--pied); }
.pied { padding: 170px var(--rdk-marge) 30px; }
.pied-colonnes { display: grid; grid-template-columns: 1fr 1fr 1fr 424px; gap: 20px; padding-bottom: 140px; }
.pied-titre { margin: 0 0 26px; font-size: 20px; font-weight: 800; }
.nav-pied .wp-block-navigation__container { gap: 14px; }
.nav-pied .wp-block-navigation-item__content { color: #CFCFCF; font-size: 20px; text-decoration: none; }
.newsletter-titre { margin: -20px 0 12px; font-size: 18px; }
/* formulaire de l'extension Newsletter (shortcode [newsletter_form type="minimal"]) */
.newsletter .tnp-subscription-minimal { margin: 0; padding: 0; max-width: none; background: none; }
.newsletter .tnp-subscription-minimal form { display: flex; gap: 8px; text-align: left !important; }
.newsletter .tnp-subscription-minimal .tnp-email { flex: 1 1 auto; min-width: 0; width: auto; margin: 0; padding: 16px 20px; background: #2E2E2E; border: 1px solid var(--wp--preset--color--bordure); border-radius: 4px; font: inherit; font-size: 15px; color: var(--wp--preset--color--texte); }
.newsletter .tnp-subscription-minimal .tnp-email::placeholder { color: #BFBFBF; opacity: 1; }
.newsletter .tnp-subscription-minimal .tnp-submit { flex: 0 0 auto; width: auto; margin: 0; padding: 0 22px; background: var(--wp--preset--color--primaire); border: 0; border-radius: 4px; font: inherit; font-size: 15px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); cursor: pointer; }
.newsletter .tnp-subscription-minimal .tnp-submit:hover, .newsletter .tnp-subscription-minimal .tnp-submit:focus-visible { filter: brightness(1.08); }
.pied-bas { display: flex; align-items: center; gap: 16px; border-top: 1px solid var(--wp--preset--color--separateur); margin: 0 calc(-1 * var(--rdk-marge)); padding: 28px var(--rdk-marge) 0; }
.suivez-nous { margin: 0; font-size: 20px; color: #CFCFCF; }
.reseaux.wp-block-social-links { gap: 20px; margin: 0; }
.reseaux .wp-social-link { background: transparent !important; color: #CFCFCF !important; }
.reseaux .wp-social-link svg { width: 30px; height: 30px; }

/* ---------------------------------------------------------------- écrans moyens */
@media (max-width: 1500px) {
	:root { --rdk-marge: 48px; }
	.entete { gap: 24px; }
	.nav-principale .wp-block-navigation__container { gap: 24px; }
	.nav-principale .wp-block-navigation-item__content { font-size: 17px; }
	.entete-outils { gap: 30px; }
	.plateformes { gap: 48px; }
	.cartes-produits.wc-block-product-template { gap: 40px 20px; }
	.carte-corps { padding: 22px; }
	.carte-titre { font-size: 19px; min-height: 55px; }
	.carte-prix .prix .wc-block-components-product-price { font-size: 23px; }
	.carte-prix .prix del { font-size: 16px; }
	.avis { padding-left: 16px; gap: 40px; }
	.avis-liste { gap: 30px; padding-right: 30px; }
}

/* ---------------------------------------------------------------- tablettes : menu en bouton (overlay)
   Le bloc Navigation ne passe en bouton que sous 600 px ; de 600 à ~1 060 px, le menu complet débordait de l'écran.
   On reprend ses propres règles de mobile jusqu'à 1 100 px. */
@media (max-width: 1100px) {
	.nav-principale { order: 5; margin-left: 0; }
	.nav-principale .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.nav-principale .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.entete .recherche { margin-left: auto; margin-right: 0; }
	/* blocs trop larges entre 782 et 1 100 px (relevé du 2026-09-30) */
	.plateformes { flex-wrap: wrap; gap: 28px 40px; }
	.avis { grid-template-columns: minmax(0, 1fr); gap: 36px; padding: 70px var(--rdk-marge); }
	.avis-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; padding-right: 0; }
	.pied-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 30px; padding-bottom: 80px; }
}

/* ---------------------------------------------------------------- mobile */
@media (max-width: 781px) {
	:root { --rdk-marge: 16px; }
	.rdk-recherche { padding: 12px 10px; }
	.rdk-recherche-form { height: 56px; gap: 8px; padding: 5px 5px 5px 16px; }
	.rdk-recherche-champ { font-size: 17px; }
	.rdk-recherche-envoyer { height: 44px; padding: 0 16px; font-size: 16px; }
	.rdk-recherche-fermer { flex-basis: 40px; width: 40px; height: 40px; }
	.rdk-recherche-resultats { padding: 18px 14px 16px; }
	.rdk-recherche-produit { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; }
	.rdk-recherche-image { width: 64px; height: 64px; }
	.rdk-recherche-nom { font-size: 16px; }
	.rdk-recherche-prix { font-size: 16px; }
	.entete { height: 72px; gap: 12px; }
	.entete .logo img { width: 110px; }
	.nav-principale { order: 5; flex: 0 0 auto; }
	.entete .recherche { border: 0; padding-left: 0; margin-left: auto; margin-right: 0; }
	.entete-outils { gap: 14px; }
	.compte svg { width: 30px; height: 30px; }
	.panier .wc-block-mini-cart__button { width: 44px; height: 44px; }
	.hero.wp-block-cover { min-height: 420px !important; padding: 0 20px; }
	.hero .wp-block-cover__inner-container { padding-top: 140px; }
	.hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(0, 0, 0, .8) 0, rgba(0, 0, 0, .45) 55%, rgba(0, 0, 0, .1) 100%) !important; }
	.hero-titre { font-size: 26px; }
	.hero-texte { font-size: 19px; }
	.plateformes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px 8px; padding: 20px 16px 10px; }
	.plateforme a { gap: 10px; font-size: 11px; }
	.plateforme a::before { width: 36px; height: 36px; }
	.rayon, .categories { padding-top: 56px; }
	.rayon-titre { font-size: 28px; margin-bottom: 24px; }
	.cartes-produits.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
	.carte-corps { padding: 14px; }
	.carte-titre { font-size: 15px; min-height: 44px; }
	.puce-plateforme a, .carte-region a { font-size: 12px; }
	.carte-prix .prix .wc-block-components-product-price { font-size: 20px; }
	.carte-prix .prix del { font-size: 14px; }
	.remise { position: static; }
	.remise .wc-block-components-product-sale-badge { font-size: 13px; }
	.carte-prix { flex-direction: column; align-items: flex-start; }
	.avis { grid-template-columns: 1fr; padding: 50px 16px; gap: 30px; }
	.avis-liste { grid-template-columns: 1fr; padding: 0; gap: 24px; }
	.tuiles { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.tuile-categorie.wp-block-cover { padding: 20px 8px; }
	.tuile-titre { font-size: 20px; }
	.tuile-categorie::after { font-size: 22px; }
	.faq { padding: 56px 16px 40px; }
	.faq-titre { font-size: 30px; }
	.faq-question summary { padding: 18px 18px; font-size: 16px; }
	.pied { padding-top: 60px; }
	.pied-colonnes { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-bottom: 50px; }
	.newsletter-titre { margin-top: 0; }
}
/* ==========================================================================
   Royale Digital Keys — fiche produit (modèle single-product du thème)
   Même langage que l'accueil : fond anthracite, cartes fond-alt arrondies, or pour l'action.
   Ajouté après composants.css dans style.css (build/construire-theme.sh).
   ========================================================================== */

body.woocommerce .fiche-haut { padding: 36px var(--rdk-marge) 0; }

/* fil d'Ariane */
body.woocommerce .fil-ariane { margin: 0 0 32px; font-size: 15px; color: var(--wp--preset--color--secondaire); }
body.woocommerce .fil-ariane a { color: var(--wp--preset--color--texte); text-decoration: none; }
body.woocommerce .fil-ariane a:hover, body.woocommerce .fil-ariane a:focus-visible { color: var(--wp--preset--color--primaire); }

/* visuel | informations */
body.woocommerce .fiche-grille { display: grid; grid-template-columns: minmax(0, 640px) minmax(0, 1fr); gap: 72px; align-items: start; }
body.woocommerce .fiche-visuel { background: var(--wp--preset--color--fond-alt); border-radius: var(--rdk-carte-rayon); overflow: hidden; }
body.woocommerce .fiche-visuel .onsale { display: none; }
body.woocommerce .fiche-visuel .wp-block-woocommerce-product-image-gallery { max-width: none; }  /* le bloc plafonne à 512 px */  /* le badge « -45% » est à côté du prix */
body.woocommerce .fiche-visuel div.woocommerce-product-gallery.images { margin: 0; float: none; width: auto; }  /* bat .woocommerce div.product div.images (48 %, marge 2em) */
body.woocommerce .fiche-visuel .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; }
body.woocommerce .fiche-visuel .flex-control-thumbs { display: flex; gap: 12px; margin: 0; padding: 12px; list-style: none; }
body.woocommerce .fiche-visuel .flex-control-thumbs li { width: 88px; }
body.woocommerce .fiche-visuel .flex-control-thumbs img { display: block; width: 100%; border-radius: 8px; opacity: .6; cursor: pointer; }
body.woocommerce .fiche-visuel .flex-control-thumbs img.flex-active { opacity: 1; outline: 2px solid var(--wp--preset--color--primaire); }

body.woocommerce .fiche-infos { padding-top: 8px; }
body.woocommerce .fiche-titre { margin: 0 0 20px; font-size: var(--wp--preset--font-size--xxl); font-weight: 800; line-height: 1.2; }
body.woocommerce .fiche-puces { margin: 0 0 28px; }
body.woocommerce .fiche-puces .puce-plateforme a { font-size: 16px; padding: 6px 14px; }

/* prix : prix actuel en grand, ancien prix barré, badge de remise */
body.woocommerce .carte-prix.fiche-prix { align-items: center; gap: 16px; margin: 0 0 24px; }
body.woocommerce .fiche-prix .prix .wc-block-components-product-price { display: flex; flex-direction: row; align-items: baseline; gap: 14px; font-size: 40px; font-weight: 800; line-height: 1.1; }
body.woocommerce .fiche-prix .prix ins { order: -1; }
body.woocommerce .fiche-prix .prix del { margin: 0; font-size: 20px; font-weight: 600; }
body.woocommerce .fiche-prix .remise { margin: 0; }
body.woocommerce .fiche-prix .remise .wc-block-components-product-sale-badge { font-size: 18px; padding: 4px 14px; }

body.woocommerce .fiche-resume { margin: 0 0 30px; font-size: 18px; line-height: 1.6; color: #CFCFCF; }
body.woocommerce .fiche-resume p { margin: 0; }

/* achat : quantité + bouton */
body.woocommerce .fiche-achat form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
/* clearfix de woocommerce.css : en flex, ces pseudo-éléments deviennent des cases vides décalées de l'écart */
body.woocommerce .fiche-achat form.cart::before, body.woocommerce .fiche-achat form.cart::after { display: none; }
/* quantité : pilule « − 1 + » (réglage « stepper » du bloc), comme la maquette ; sélecteurs renforcés contre woocommerce.css */
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity { display: flex; align-items: center; box-sizing: border-box; width: 150px; height: 60px; margin: 0; padding: 0 6px; gap: 0;
	border: 0; border-radius: 30px; background: #333333; }
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity::after { display: none; }
/* input[type=number].input-text.qty : bat la règle du mode stepper de WooCommerce (0,7,2), qui ajoute 0.9rem de marge intérieure */
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity input[type="number"].input-text.qty { flex: 1 1 auto; min-width: 0; width: auto; height: 44px; box-sizing: border-box; margin: 0; padding: 0; border: 0; background: none; box-shadow: none;
	font: inherit; font-size: 20px; font-weight: 700; color: var(--wp--preset--color--texte); text-align: center; -moz-appearance: textfield; appearance: textfield; }
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity input.qty::-webkit-outer-spin-button, body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity .wc-block-components-quantity-selector__button { flex: 0 0 44px; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%;
	background: none; font: inherit; font-size: 26px; font-weight: 400; line-height: 1; color: var(--wp--preset--color--texte); opacity: 1; cursor: pointer; }
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: #444444; }
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity .wc-block-components-quantity-selector__button:disabled { color: #6A6A6A; cursor: default; }
body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity .wc-block-components-quantity-selector__button:focus-visible, body.woocommerce .fiche-achat.fiche-achat form.cart div.quantity input.qty:focus-visible { outline: 2px solid var(--wp--preset--color--primaire); outline-offset: -2px; }
body.woocommerce .fiche-achat .single_add_to_cart_button.button { box-sizing: border-box; height: 60px; margin: 0; padding: 0 48px; background: var(--wp--preset--color--primaire); border: 0;
	border-radius: 30px; font: inherit; font-size: 20px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); cursor: pointer; }
body.woocommerce .fiche-achat .single_add_to_cart_button.button:hover, body.woocommerce .fiche-achat .single_add_to_cart_button.button:focus-visible { background: var(--wp--preset--color--primaire); filter: brightness(1.08); }
body.woocommerce .fiche-achat .single_add_to_cart_button:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }
/* « Acheter maintenant » : sous la quantité et « Ajouter au panier », sur la même largeur (bloc d'achat de 520 px, « Add to cart » étiré) ;
   contour doré, l'action principale restant dorée pleine */
body.woocommerce .fiche-achat form.cart:has(.rdk-acheter) { max-width: 520px; }
body.woocommerce .fiche-achat form.cart:has(.rdk-acheter) .single_add_to_cart_button.button { flex: 1 1 auto; }
body.woocommerce .fiche-achat .rdk-acheter.button { flex: 1 1 100%; box-sizing: border-box; height: 60px; margin: 0; padding: 0 24px; border: 2px solid var(--wp--preset--color--primaire);
	border-radius: 30px; background: none; font: inherit; font-size: 20px; font-weight: 700; color: var(--wp--preset--color--primaire); cursor: pointer; }
body.woocommerce .fiche-achat .rdk-acheter.button:hover { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }
body.woocommerce .fiche-achat .rdk-acheter:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }

/* atouts : encadré à coches */
body.woocommerce .fiche-atouts { display: grid; gap: 14px; margin: 32px 0 0; padding: 26px 28px; list-style: none; background: var(--wp--preset--color--fond-alt); border-radius: 16px; }
body.woocommerce .fiche-atouts li { position: relative; padding-left: 34px; font-size: 17px; line-height: 1.4; }
body.woocommerce .fiche-atouts li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; background: var(--wp--preset--color--primaire);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat; }

body.woocommerce .fiche-meta { margin-top: 24px; font-size: 15px; color: var(--wp--preset--color--secondaire); }
body.woocommerce .fiche-meta a { color: var(--wp--preset--color--texte); }

/* détails : onglets (description, informations, avis) */
body.woocommerce .fiche-details { padding: 90px var(--rdk-marge) 0; }
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs { margin: 0; padding: 0; }
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none;
	border-bottom: 1px solid var(--wp--preset--color--separateur); overflow: visible; }
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs::before,
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li::before,
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li::after { display: none; }
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li { margin: 0 0 -1px; padding: 0; background: none; border: 0; border-radius: 0; }
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li a { display: block; padding: 14px 22px; font-size: 18px; font-weight: 700;
	color: var(--wp--preset--color--secondaire); text-decoration: none; border-bottom: 3px solid transparent; }
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li.active a,
body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li a:hover { color: var(--wp--preset--color--texte); border-bottom-color: var(--wp--preset--color--primaire); }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel { margin: 0; padding: 40px 0 0; font-size: 17px; line-height: 1.65; color: #DADADA; }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel > h2 { margin: 0 0 20px; font-size: var(--wp--preset--font-size--l); font-weight: 800; color: var(--wp--preset--color--texte); }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel a { color: var(--wp--preset--color--primaire); }
/* onglet « Comment activer » : étapes numérotées en pastilles dorées */
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel--rdk_activation { max-width: 900px; }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel--rdk_activation p { margin: 0 0 16px; }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel--rdk_activation ol { display: grid; gap: 14px; margin: 0 0 26px; padding: 0; list-style: none; counter-reset: etape; }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel--rdk_activation ol li { position: relative; min-height: 32px; padding: 3px 0 0 48px; counter-increment: etape; }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel--rdk_activation ol li::before { content: counter(etape); position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%; background: var(--wp--preset--color--puce); font-size: 15px; font-weight: 800; color: var(--wp--preset--color--primaire); }
body.woocommerce .fiche .details-produit .woocommerce-Tabs-panel--rdk_activation strong { color: var(--wp--preset--color--texte); }
body.woocommerce .fiche .details-produit .shop_attributes { width: 100%; max-width: 760px; border-collapse: collapse; border: 0; }
body.woocommerce .fiche .details-produit .shop_attributes th, body.woocommerce .fiche .details-produit .shop_attributes td { padding: 14px 0; border: 0; border-bottom: 1px solid var(--wp--preset--color--separateur);
	background: none; text-align: left; font-style: normal; vertical-align: top; }
body.woocommerce .fiche .details-produit .shop_attributes th { width: 220px; font-weight: 700; color: var(--wp--preset--color--secondaire); }
body.woocommerce .fiche .details-produit .shop_attributes td p { margin: 0; padding: 0; }
body.woocommerce .fiche .details-produit .shop_attributes td a { color: var(--wp--preset--color--texte); text-decoration: none; }

/* avis : liste et formulaire */
body.woocommerce .fiche #reviews .woocommerce-noreviews, body.woocommerce .fiche #reviews .woocommerce-Reviews-title { margin: 0 0 20px; }
body.woocommerce .fiche #review_form_wrapper { max-width: 760px; margin-top: 10px; padding: 32px; background: var(--wp--preset--color--fond-alt); border-radius: 16px; }
body.woocommerce .fiche #review_form .comment-reply-title { display: block; margin: 0 0 16px; font-size: 20px; font-weight: 800; color: var(--wp--preset--color--texte); }
body.woocommerce .fiche #review_form label { display: block; margin: 0 0 6px; font-weight: 700; color: var(--wp--preset--color--texte); }
body.woocommerce .fiche #review_form textarea, body.woocommerce .fiche #review_form input[type="text"], body.woocommerce .fiche #review_form input[type="email"] { box-sizing: border-box; width: 100%; padding: 14px 16px;
	background: #2E2E2E; border: 1px solid var(--wp--preset--color--bordure); border-radius: 8px; font: inherit; color: var(--wp--preset--color--texte); }
body.woocommerce .fiche #review_form .stars a { color: var(--wp--preset--color--primaire); }
body.woocommerce .fiche #review_form .form-submit input[type="submit"] { height: 54px; padding: 0 36px; background: var(--wp--preset--color--primaire); border: 0; border-radius: 30px;
	font: inherit; font-size: 18px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); cursor: pointer; }

/* produits associés : même grille que l'accueil (.rayon) */
body.woocommerce .fiche-associes { padding-bottom: 20px; }

/* messages de la boutique (« ajouté au panier », erreurs) : aux couleurs du site, partout.
   !important sur la couleur du lien : wc-blocks.css l'impose en !important (gris #2F2F2F, illisible sur fond sombre) */
body.woocommerce .wc-block-components-notice-banner { margin: 0 0 28px; padding: 16px 20px; gap: 14px; background: var(--wp--preset--color--fond-alt);
	border: 1px solid var(--wp--preset--color--bordure); border-left: 4px solid var(--wp--preset--color--primaire); border-radius: 10px; color: var(--wp--preset--color--texte); font-size: 16px; }
body.woocommerce .wc-block-components-notice-banner > svg { background: var(--wp--preset--color--primaire); fill: var(--wp--preset--color--sur-primaire); }
body.woocommerce .wc-block-components-notice-banner.is-error { border-left-color: #E5484D; }
body.woocommerce .wc-block-components-notice-banner.is-error > svg { background: #E5484D; fill: #FFFFFF; }
body.woocommerce .wc-block-components-notice-banner .wc-forward, body.woocommerce .wc-block-components-notice-banner a { color: var(--wp--preset--color--primaire) !important; font-weight: 700; text-decoration: none; opacity: 1; }

/* ---------------------------------------------------------------- écrans moyens */
@media (max-width: 1500px) {
	body.woocommerce .fiche-grille { grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: 48px; }
	body.woocommerce .fiche-titre { font-size: 34px; }
	body.woocommerce .fiche-prix .prix .wc-block-components-product-price { font-size: 34px; }
}

/* ---------------------------------------------------------------- tablettes : deux colonnes égales, prix qui peut passer à la ligne */
@media (max-width: 1100px) {
	body.woocommerce .fiche-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
	body.woocommerce .fiche-titre { font-size: 30px; }
	body.woocommerce .carte-prix.fiche-prix { flex-wrap: wrap; }
	body.woocommerce .fiche-prix .prix .wc-block-components-product-price { flex-wrap: wrap; font-size: 30px; }
}

/* ---------------------------------------------------------------- mobile */
@media (max-width: 781px) {
	body.woocommerce .fiche-haut { padding-top: 20px; }
	body.woocommerce .fil-ariane { margin-bottom: 18px; font-size: 14px; }
	body.woocommerce .fiche-grille { grid-template-columns: minmax(0, 1fr); gap: 26px; }
	body.woocommerce .fiche-titre { font-size: 26px; margin-bottom: 14px; }
	body.woocommerce .fiche-puces { margin-bottom: 18px; }
	body.woocommerce .fiche-prix .prix .wc-block-components-product-price { font-size: 28px; gap: 10px; }
	body.woocommerce .fiche-prix .prix del { font-size: 16px; }
	body.woocommerce .carte-prix.fiche-prix { flex-direction: row; align-items: center; }
	body.woocommerce .fiche-resume { font-size: 16px; margin-bottom: 22px; }
	body.woocommerce .fiche-achat .single_add_to_cart_button.button { flex: 1 1 auto; padding: 0 20px; }
	body.woocommerce .fiche-atouts { padding: 20px; margin-top: 24px; }
	body.woocommerce .fiche-atouts li { font-size: 16px; }
	body.woocommerce .fiche-details { padding-top: 56px; }
	/* quatre onglets : grille 2 × 2, tous visibles (une rangée défilante cachait « Reviews ») */
	body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; overflow: visible; }
	body.woocommerce .fiche .details-produit.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li a { padding: 12px 8px; font-size: 16px; text-align: center; white-space: nowrap; }
	body.woocommerce .fiche .details-produit .shop_attributes th { width: 40%; }
	body.woocommerce .fiche #review_form_wrapper { padding: 20px; }
}
/* ==========================================================================
   Royale Digital Keys — listes de produits (catégories, boutique, plateformes)
   Maquette du client : sources/maquette-client/maquette-categorie-1920.png (cotes relevées à 1920 px).
   Ajouté après composants.css et fiche-produit.css dans style.css (build/construire-theme.sh).
   Sélecteurs préfixés par body.woocommerce là où woocommerce.css / les blocs de filtres imposent leurs styles.
   ========================================================================== */

/* menu principal : rayon en cours en pastille dorée (classe posée par functions.php) */
.nav-principale .current-menu-item > .wp-block-navigation-item__content { margin: -9px -16px; padding: 9px 16px; border-radius: 30px;
	background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }

/* ---------------------------------------------------------------- en-tête de la liste */
body.woocommerce .categorie-haut { padding: 28px var(--rdk-marge) 0; }
body.woocommerce .categorie .fil-ariane { margin: 0 0 22px; font-size: 18px; color: var(--wp--preset--color--texte); }
body.woocommerce .categorie .fil-ariane a { color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
body.woocommerce .fil-ariane .woocommerce-breadcrumb > a:first-child::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 10px; vertical-align: -2px;
	background: currentColor; -webkit-mask: var(--icone-maison) center / contain no-repeat; mask: var(--icone-maison) center / contain no-repeat; }
:root { --icone-maison: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l9 8h-3v10h-5v-6h-2v6H6V11H3z'/%3E%3C/svg%3E"); }
body.woocommerce .categorie-titre { margin: 0 0 50px; font-size: 48px; font-weight: 800; line-height: 1.1; }

/* barre d'outils : filtres | compteur + intro … tri | vue */
body.woocommerce .categorie-outils { display: flex; align-items: center; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--wp--preset--color--bordure); }
body.woocommerce .outil-filtres { flex: 0 0 auto; align-self: stretch; display: flex; align-items: center; padding-right: 20px; border-right: 1px solid var(--wp--preset--color--bordure); }
.bascule-filtres { display: flex; align-items: center; gap: 10px; padding: 0; border: 0; background: none; font: inherit; font-size: 20px; color: var(--wp--preset--color--primaire); cursor: pointer; }
.bascule-filtres .interrupteur { position: relative; width: 30px; height: 16px; box-sizing: border-box; border: 2px solid var(--wp--preset--color--primaire); border-radius: 10px; }
.bascule-filtres .interrupteur::after { content: ""; position: absolute; top: 1px; left: 1px; width: 10px; height: 10px; border-radius: 50%; background: var(--wp--preset--color--primaire); transition: left .15s; }
.bascule-filtres[aria-pressed="true"] .interrupteur::after { left: 15px; }
.bascule-filtres[aria-pressed="false"] { color: var(--wp--preset--color--secondaire); }
.bascule-filtres[aria-pressed="false"] .interrupteur { border-color: var(--wp--preset--color--secondaire); }
.bascule-filtres[aria-pressed="false"] .interrupteur::after { background: var(--wp--preset--color--secondaire); }
.bascule-filtres:focus-visible, .outil-vue button:focus-visible, .filtre-reset:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }

body.woocommerce .categorie-compte { flex: 1 1 auto; min-width: 0; }
body.woocommerce .categorie-total, body.woocommerce .categorie-total .woocommerce-result-count { margin: 0; float: none; font-size: 20px; font-weight: 800; line-height: 1.5; color: var(--wp--preset--color--texte); }
body.woocommerce .categorie-intro { margin: 0; font-size: 20px; line-height: 1.5; }
body.woocommerce .categorie-intro p { margin: 0; }

body.woocommerce .categorie-tri { flex: 0 0 auto; display: flex; align-items: center; gap: 20px; }
body.woocommerce .categorie .tri { margin: 0; padding-right: 20px; border-right: 1px solid var(--wp--preset--color--bordure); align-self: stretch; display: flex; align-items: center; }
/* « Sort By: Featured ⌄ » : libellé et valeur sur la même ligne de base, sans cadre, chevron doré */
body.woocommerce .categorie .tri .woocommerce-ordering { position: relative; display: flex; align-items: baseline; gap: 20px; margin: 0; float: none; font-size: 20px; line-height: 1.4; }
body.woocommerce .categorie .tri label { margin: 0; color: var(--wp--preset--color--texte); font-weight: 400; }
body.woocommerce .categorie .tri select.orderby { margin: 0; padding: 0 28px 0 0; border: 0; border-radius: 0; box-shadow: none; outline: 0; font: inherit; line-height: inherit;
	color: var(--wp--preset--color--texte); cursor: pointer; appearance: none;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0B22A' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") right center / 14px no-repeat; }
body.woocommerce .categorie .tri select.orderby:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 4px; border-radius: 4px; }
body.woocommerce .categorie .tri select.orderby option { background: var(--wp--preset--color--fond-alt); color: var(--wp--preset--color--texte); }

/* liste déroulante dessinée (select personnalisable : Chrome, Edge ≥ 135) — ailleurs, liste native du système */
@supports (appearance: base-select) {
	body.woocommerce .categorie .tri select.orderby, body.woocommerce .categorie .tri select.orderby::picker(select) { appearance: base-select; }
	body.woocommerce .categorie .tri select.orderby { display: flex; align-items: baseline; gap: 14px; padding: 0; background: none; }
	body.woocommerce .categorie .tri select.orderby::picker-icon { content: ""; align-self: center; width: 14px; height: 14px; background: var(--wp--preset--color--primaire);
		-webkit-mask: var(--icone-chevron) center / contain no-repeat; mask: var(--icone-chevron) center / contain no-repeat; transition: rotate .15s; }
	body.woocommerce .categorie .tri select.orderby:open::picker-icon { rotate: 180deg; }
	body.woocommerce .categorie .tri select.orderby::picker(select) { margin-top: 12px; padding: 8px; min-width: 206px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 10px;
		background: var(--wp--preset--color--fond-alt); box-shadow: 0 16px 40px rgba(0, 0, 0, .5); position-area: bottom span-left; }
	body.woocommerce .categorie .tri select.orderby option { padding: 10px 20px; border-radius: 8px; background: none; font-size: 20px; line-height: 1.4; white-space: nowrap; cursor: pointer; }
	body.woocommerce .categorie .tri select.orderby option::checkmark { display: none; }
	body.woocommerce .categorie .tri select.orderby option:hover, body.woocommerce .categorie .tri select.orderby option:focus-visible { background: #202020; outline: 0; }
	body.woocommerce .categorie .tri select.orderby option:checked { background: var(--wp--preset--color--noir); }
}
:root { --icone-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E"); }
.outil-vue { display: flex; padding: 0; border-radius: 30px; background: var(--wp--preset--color--noir); }
.outil-vue button { display: flex; align-items: center; justify-content: center; width: 46px; height: 42px; padding: 0; border: 0; border-radius: 30px; background: none; color: var(--wp--preset--color--primaire); cursor: pointer; }
.outil-vue button svg { width: 20px; height: 20px; fill: currentColor; }
.outil-vue button[aria-pressed="true"] { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }

/* ---------------------------------------------------------------- filtres | grille */
body.woocommerce .categorie-corps { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: 172px; align-items: start; padding: 64px var(--rdk-marge) 0; }
body.woocommerce .categorie-filtres { margin-top: 10px; }
body.woocommerce .categorie-corps.filtres-masques { grid-template-columns: minmax(0, 1fr); }
body.woocommerce .categorie-corps.filtres-masques .categorie-filtres { display: none; }

/* filtres : titre + Reset, cases noires 30 px, compteurs à droite ; séparateur entre deux filtres */
body.woocommerce .categorie-filtres .wc-block-product-filters { margin: 0; }
body.woocommerce .categorie-filtres .filtre { margin: 0; padding: 0 0 26px; }
body.woocommerce .categorie-filtres .filtre + .filtre { margin-top: 18px; padding-top: 30px; border-top: 1px solid var(--wp--preset--color--bordure); }
body.woocommerce .categorie-filtres .filtre-entete { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 9px; }
body.woocommerce .categorie-filtres .filtre-titre { margin: 0; font-size: 18px; font-weight: 400; letter-spacing: .3px; }
.filtre-reset { padding: 0; border: 0; background: none; font: inherit; font-size: 15px; color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.filtre-reset.est-inactif { color: var(--wp--preset--color--secondaire); pointer-events: none; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list fieldset { margin: 0; padding: 0; border: 0; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__items { display: grid; gap: 20px; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__label { display: flex; align-items: flex-start; gap: 16px; cursor: pointer; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__input-wrapper { position: relative; flex: 0 0 30px; width: 30px; height: 30px; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__input { position: absolute; inset: 0; width: 30px; height: 30px; margin: 0; appearance: none; cursor: pointer;
	background: var(--wp--preset--color--noir); border: 1px solid #3A3A3A; border-radius: 2px; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__input:checked { background: var(--wp--preset--color--primaire); border-color: var(--wp--preset--color--primaire); }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__input:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 2px; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__input-wrapper svg { position: absolute; inset: 5px; width: 20px; height: 20px; pointer-events: none;
	color: var(--wp--preset--color--sur-primaire); fill: currentColor; visibility: hidden; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__input:checked + svg { visibility: visible; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__text-wrapper { flex: 1 1 auto; display: flex; justify-content: space-between; gap: 10px; min-width: 0; padding-top: 2px; }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__text { font-size: 20px; line-height: 1.3; color: var(--wp--preset--color--texte); }
/* compteur sans parenthèses, petit, en haut à droite */
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__count { font-size: 0; color: var(--wp--preset--color--texte); }
body.woocommerce .categorie-filtres .wc-block-product-filter-checkbox-list__count > span { font-size: 15px; }
/* bouton « Filter products » : réservé au mobile (tiroir WooCommerce) */
body.woocommerce .categorie-filtres .wc-block-product-filters__open-overlay { display: none; }

/* grille : 4 cartes (mêmes cartes que l'accueil) */
/* 3 par ligne avec les filtres, 4 sans (lancement : catalogue réduit ; 4 et 5 auparavant) */
body.woocommerce .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 54px 20px; }
/* visuel carré sur cette page (maquette : 314 × 313) */
body.woocommerce .grille-categorie .carte-image img { aspect-ratio: 1 !important; object-fit: cover; }  /* le bloc impose 324/313 en style en ligne */
/* prix un cran plus petit qu'à l'accueil : « 53 100 F CFA » + badge tiennent sur une ligne dans une carte de 314 px */
body.woocommerce .grille-categorie .carte-prix .prix .wc-block-components-product-price { font-size: 26px; }
body.woocommerce .filtres-masques .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* vue liste : une carte par ligne, visuel à gauche */
body.woocommerce .vue-liste .grille-categorie .cartes-produits.wc-block-product-template,
body.woocommerce .vue-liste.filtres-masques .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: minmax(0, 1fr); gap: 20px; }
body.woocommerce .vue-liste .grille-categorie .wc-block-product { display: grid; grid-template-columns: 200px minmax(0, 1fr); }
body.woocommerce .vue-liste .grille-categorie .carte-corps { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr; column-gap: 30px; align-items: start; }
body.woocommerce .vue-liste .grille-categorie .carte-titre { grid-column: 1; min-height: 0; }
body.woocommerce .vue-liste .grille-categorie .carte-infos { grid-column: 1; margin-bottom: 0; }
body.woocommerce .vue-liste .grille-categorie .carte-prix { grid-column: 2; grid-row: 1 / span 2; align-self: center; }

/* pagination : pastilles rondes, page en cours dorée */
body.woocommerce .grille-categorie .pagination { display: flex; justify-content: center; align-items: center; gap: 4px; margin: 64px 0 0; }
body.woocommerce .grille-categorie .pagination .page-numbers,
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-previous,
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-next { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 52px;
	box-sizing: border-box; border-radius: 50%; font-size: 18px; color: var(--wp--preset--color--texte); text-decoration: none; }
body.woocommerce .grille-categorie .pagination .page-numbers.current { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); font-weight: 700; }
body.woocommerce .grille-categorie .pagination a.page-numbers:hover { background: var(--wp--preset--color--fond-alt); }
/* précédent / suivant : flèche dans un cercle, libellé réservé aux lecteurs d'écran */
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-previous,
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-next { margin: 0 0 0 20px; font-size: 0; border: 1px solid var(--wp--preset--color--separateur); }
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-previous { margin: 0 20px 0 0; }
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-previous::before,
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-next::before { content: ""; width: 18px; height: 18px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--icone-fleche) center / contain no-repeat; mask: var(--icone-fleche) center / contain no-repeat; }
body.woocommerce .grille-categorie .pagination .wp-block-query-pagination-previous::before { transform: scaleX(-1); }
:root { --icone-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E"); }

/* ---------------------------------------------------------------- contenu de la catégorie (composition synchronisée) */
body.woocommerce .categorie-contenu { padding: 120px var(--rdk-marge) 70px calc(var(--rdk-marge) + 264px + 172px); font-size: 18px; line-height: 1.65; color: #E6E6E6; }
body.woocommerce .categorie-contenu > * { max-width: 1300px; }
body.woocommerce .categorie-contenu h2 { margin: 80px 0 30px; font-size: 38px; font-weight: 800; line-height: 1.25; color: var(--wp--preset--color--texte); }
body.woocommerce .categorie-contenu > h2:first-child { margin-top: 0; }
body.woocommerce .categorie-contenu h3 { margin: 30px 0 4px; font-size: 18px; font-weight: 800; color: var(--wp--preset--color--texte); }
body.woocommerce .categorie-contenu p { margin: 0 0 18px; }
body.woocommerce .categorie-contenu ul, body.woocommerce .categorie-contenu ol { margin: 0 0 22px; padding-left: 38px; }
body.woocommerce .categorie-contenu li { margin: 0 0 12px; }
body.woocommerce .categorie-contenu strong { color: var(--wp--preset--color--texte); }
/* FAQ de la catégorie : centrée sur la page, plus compacte que celle de l'accueil */
body.woocommerce .categorie-contenu .faq { margin: 90px 0 0 calc(-264px - 172px); max-width: none; padding: 0; }
body.woocommerce .categorie-contenu .faq > * { max-width: 836px; }
body.woocommerce .categorie-contenu .faq-titre { margin-top: 0; font-size: 44px; line-height: 1.2; }
body.woocommerce .categorie-contenu .faq-question { border-radius: 12px; }
body.woocommerce .categorie-contenu .faq-question summary { padding: 24px 30px; font-size: 18px; gap: 20px; }
body.woocommerce .categorie-contenu .faq-question summary::after { font-size: 30px; }
body.woocommerce .categorie-contenu .faq-question > p { font-size: 17px; }

/* ---------------------------------------------------------------- écrans moyens */
@media (max-width: 1500px) {
	body.woocommerce .categorie-corps { grid-template-columns: 240px minmax(0, 1fr); gap: 48px; }
	body.woocommerce .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 20px; }
	body.woocommerce .filtres-masques .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	body.woocommerce .categorie-contenu { padding-left: calc(var(--rdk-marge) + 240px + 48px); }
	body.woocommerce .categorie-contenu .faq { margin-left: calc(-240px - 48px); }
	body.woocommerce .categorie-intro, body.woocommerce .categorie .tri .woocommerce-ordering, body.woocommerce .categorie .tri select.orderby, body.woocommerce .categorie .tri select.orderby option { font-size: 18px; }
}

/* ---------------------------------------------------------------- tablette */
@media (max-width: 1100px) {
	body.woocommerce .categorie-outils { flex-wrap: wrap; }
	body.woocommerce .categorie-compte { order: 3; flex-basis: 100%; }
	body.woocommerce .categorie-tri { margin-left: auto; }
	body.woocommerce .categorie-corps { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
	body.woocommerce .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.woocommerce .categorie-contenu { padding-left: var(--rdk-marge); }
	body.woocommerce .categorie-contenu .faq { margin-left: 0; }
}

/* ---------------------------------------------------------------- mobile : filtres dans le tiroir WooCommerce */
@media (max-width: 781px) {
	.nav-principale .current-menu-item > .wp-block-navigation-item__content { margin: 0; }
	body.woocommerce .categorie-haut { padding-top: 18px; }
	body.woocommerce .categorie .fil-ariane { font-size: 15px; margin-bottom: 14px; }
	body.woocommerce .categorie-titre { font-size: 30px; margin-bottom: 18px; }
	body.woocommerce .categorie-outils { gap: 14px; padding-bottom: 18px; }
	body.woocommerce .outil-filtres { display: none; }
	body.woocommerce .categorie-total, body.woocommerce .categorie-total .woocommerce-result-count { font-size: 17px; }
	body.woocommerce .categorie-intro { font-size: 15px; }
	body.woocommerce .categorie-tri { margin-left: 0; width: 100%; justify-content: space-between; }
	body.woocommerce .categorie .tri .woocommerce-ordering, body.woocommerce .categorie .tri select.orderby, body.woocommerce .categorie .tri select.orderby option { font-size: 16px; }
	body.woocommerce .categorie-corps, body.woocommerce .categorie-corps.filtres-masques { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 20px; }
	body.woocommerce .categorie-corps.filtres-masques .categorie-filtres { display: block; }
	body.woocommerce .categorie-filtres .wc-block-product-filters__open-overlay { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border: 1px solid var(--wp--preset--color--primaire);
		border-radius: 30px; background: none; font: inherit; font-size: 16px; font-weight: 700; color: var(--wp--preset--color--primaire); }
	body.woocommerce .categorie-filtres .wc-block-product-filters__open-overlay svg { fill: currentColor; }
	body.woocommerce .grille-categorie .cartes-produits.wc-block-product-template,
	body.woocommerce .filtres-masques .grille-categorie .cartes-produits.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
	body.woocommerce .vue-liste .grille-categorie .wc-block-product { grid-template-columns: 110px minmax(0, 1fr); }
	body.woocommerce .vue-liste .grille-categorie .carte-corps { display: block; }
	body.woocommerce .grille-categorie .pagination { margin-top: 40px; }
	body.woocommerce .grille-categorie .pagination .page-numbers { min-width: 40px; height: 40px; font-size: 16px; }
	body.woocommerce .categorie-contenu { padding: 70px var(--rdk-marge) 40px; font-size: 16px; }
	body.woocommerce .categorie-contenu h2 { margin-top: 50px; font-size: 26px; }
	body.woocommerce .categorie-contenu .faq-titre { font-size: 28px; }
	body.woocommerce .categorie-contenu .faq-question summary { padding: 18px 20px; font-size: 16px; }
}

/* ---------------------------------------------------------------- résultats de recherche (modèle product-search-results)
   Même page que les catégories ; sans résultat : carte avec autre recherche et catégories. */
body.woocommerce .recherche-resultats .categorie-titre { overflow-wrap: anywhere; }
body.woocommerce .recherche-vide { max-width: 860px; padding: 40px; border-radius: 20px; background: var(--wp--preset--color--fond-alt); }
body.woocommerce .recherche-vide .recherche-vide-titre { margin: 0 0 10px; font-size: 26px; font-weight: 800; }
body.woocommerce .recherche-vide .recherche-vide-texte { margin: 0 0 22px; font-size: 17px; color: #CFCFCF; }
body.woocommerce .recherche-vide .recherche-vide-champ { margin: 0 0 22px; }
body.woocommerce .recherche-vide .recherche-vide-categories { gap: 10px; }
/* aucun résultat : ni filtres ni bascule de vue (rien à filtrer), carte sur toute la largeur */
body.search-no-results.woocommerce .recherche-resultats .outil-filtres,
body.search-no-results.woocommerce .recherche-resultats .outil-vue,
body.search-no-results.woocommerce .recherche-resultats .categorie-filtres { display: none; }
body.search-no-results.woocommerce .recherche-resultats .categorie-corps { display: block; }
/* champ de recherche de la carte : sombre, bouton doré (le bloc de WooCommerce est blanc par défaut) */
body.woocommerce .recherche-vide-champ .wc-block-product-search__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.woocommerce .recherche-vide-champ .wc-block-product-search__fields { display: flex; gap: 8px; }
body.woocommerce .recherche-vide-champ .wc-block-product-search__field { flex: 1 1 auto; min-width: 0; height: 52px; margin: 0; padding: 0 16px; border: 1px solid var(--wp--preset--color--bordure);
	border-radius: 10px; background: #1B1B1B; font: inherit; font-size: 17px; color: var(--wp--preset--color--texte); }
body.woocommerce .recherche-vide-champ .wc-block-product-search__field::placeholder { color: #8A8A8A; opacity: 1; }
body.woocommerce .recherche-vide-champ .wc-block-product-search__field:focus { border-color: var(--wp--preset--color--primaire); outline: 0; box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
body.woocommerce .recherche-vide-champ .wc-block-product-search__button { flex: 0 0 52px; width: 52px; height: 52px; margin: 0; padding: 0; border: 0; border-radius: 10px;
	background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); cursor: pointer; }
body.woocommerce .recherche-vide-champ .wc-block-product-search__button svg { fill: currentColor; }
body.woocommerce .recherche-vide-champ .wc-block-product-search__button:hover { filter: brightness(1.08); }
@media (max-width: 1100px) {
	body.woocommerce .recherche-vide .recherche-vide-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.woocommerce .recherche-vide .recherche-vide-categories .wp-block-button, body.woocommerce .recherche-vide .recherche-vide-categories .wp-block-button__link { width: 100%; box-sizing: border-box; }
}
@media (max-width: 781px) {
	body.woocommerce .recherche-vide { padding: 24px 18px; }
	body.woocommerce .recherche-vide .recherche-vide-titre { font-size: 21px; }
}
/* ==========================================================================
   Royale Digital Keys — panier (modèle page-cart du thème + bloc Panier de WooCommerce)
   Pas de maquette du client : même langage que la fiche produit et les catégories
   (fond anthracite, cartes fond-alt arrondies, or pour l'action).
   Le bloc Panier est rendu dans le navigateur ; WooCommerce pose ses tailles de mise en page
   (.is-large, .is-medium, .is-small, .is-mobile) sur .wc-block-cart selon la largeur disponible.
   ========================================================================== */

/* ---------------------------------------------------------------- en-tête */
.panier-haut { padding: 28px var(--rdk-marge) 0; }
.panier .fil-ariane { margin: 0 0 22px; font-size: 18px; color: var(--wp--preset--color--texte); }
.panier .fil-ariane a { color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.panier .fil-ariane .woocommerce-breadcrumb > a:first-child::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 10px; vertical-align: -2px;
	background: currentColor; -webkit-mask: var(--icone-maison) center / contain no-repeat; mask: var(--icone-maison) center / contain no-repeat; }
.panier-titre { margin: 0 0 40px; font-size: 48px; font-weight: 800; line-height: 1.1; }

.panier-contenu { padding: 0 var(--rdk-marge) 40px; }
.panier .wp-block-woocommerce-cart { margin: 0; max-width: none; }

/* ---------------------------------------------------------------- articles | résumé */
.panier .wc-block-cart.wc-block-components-sidebar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 60px; align-items: start; margin: 0; }
.panier .wc-block-cart .wc-block-cart__main, .panier .wc-block-cart .wc-block-cart__sidebar { width: auto; margin: 0; }
.panier .wc-block-cart .wc-block-cart__main { padding: 0; }

/* lignes : une carte par article */
.panier .wc-block-cart table.wc-block-cart-items { width: 100%; margin: 0; border: 0; border-collapse: separate; border-spacing: 0 14px; }
.panier .wc-block-cart .wc-block-cart-items__header th { padding: 0 24px 2px; border: 0; font-size: 14px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--secondaire); }
.panier .wc-block-cart .wc-block-cart-items__header-image { padding-left: 24px; }
/* fond des cellules en !important : cart.css de WooCommerce impose « background: none !important » aux cellules */
.panier .wc-block-cart .wc-block-cart-items__row td { padding: 20px 24px; border: 0; background: var(--wp--preset--color--fond-alt) !important; vertical-align: middle; }
.panier .wc-block-cart .wc-block-cart-items__row td:first-child { border-radius: 16px 0 0 16px; }
.panier .wc-block-cart .wc-block-cart-items__row td:last-child { border-radius: 0 16px 16px 0; }
.panier .wc-block-cart .wc-block-cart-item__image { width: 110px; padding-right: 0; }
.panier .wc-block-cart .wc-block-cart-item__image img { display: block; width: 110px; height: 110px; border-radius: 12px; object-fit: cover; }
.panier .wc-block-cart .wc-block-cart-item__wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.panier .wc-block-cart .wc-block-components-product-name { font-size: 20px; font-weight: 700; line-height: 1.35; color: var(--wp--preset--color--texte); text-decoration: none; }
.panier .wc-block-cart .wc-block-components-product-name:hover { color: var(--wp--preset--color--primaire); }
.panier .wc-block-cart .wc-block-cart-item__prices { font-size: 16px; }
.panier .wc-block-cart .wc-block-cart-item__prices del { color: var(--wp--preset--color--secondaire); }
.panier .wc-block-cart .wc-block-cart-item__prices ins { margin-left: 8px; color: var(--wp--preset--color--texte); text-decoration: none; }
.panier .wc-block-cart .wc-block-components-product-metadata { margin: 0; font-size: 15px; color: var(--wp--preset--color--secondaire); }
.panier .wc-block-cart .wc-block-components-product-metadata p { margin: 0; }

/* quantité : pilule − 1 + ; suppression discrète */
.panier .wc-block-cart .wc-block-cart-item__quantity { display: flex; align-items: center; gap: 18px; margin-top: 8px; }
.panier .wc-block-components-quantity-selector { display: flex; width: 132px; height: 44px; margin: 0; border: 1px solid var(--wp--preset--color--bordure); border-radius: 30px; background: #232323; overflow: hidden; }
.panier .wc-block-components-quantity-selector::after { display: none; }
.panier .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; border: 0; background: none; box-shadow: none;
	font: inherit; font-size: 17px; font-weight: 700; color: var(--wp--preset--color--texte); text-align: center; }
.panier .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { flex: 0 0 42px; min-width: 42px; margin: 0; padding: 0; border: 0; background: none;
	font-size: 22px; line-height: 1; color: var(--wp--preset--color--primaire); opacity: 1; cursor: pointer; }
.panier .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { color: #5A5A5A; cursor: default; }
.panier .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: #2F2F2F; }
.panier .wc-block-cart .wc-block-cart-item__remove-link { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%;
	background: none; color: var(--wp--preset--color--secondaire); cursor: pointer; }
.panier .wc-block-cart .wc-block-cart-item__remove-link svg { width: 22px; height: 22px; fill: currentColor; }
.panier .wc-block-cart .wc-block-cart-item__remove-link:hover { color: #FF6B6B; background: #2F2F2F; }
.panier .wc-block-cart .wc-block-cart-item__quantity button:focus-visible,
.panier .wc-block-components-quantity-selector__input:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 2px; }

/* total de la ligne + badge d'économie doré */
/* cellule du total : vraie cellule de tableau (cart.css la passe en flex : elle ne s'étirait plus sur la hauteur de la ligne
   et son fond s'arrêtait sous le badge) ; la mise en page est portée par le bloc intérieur */
.panier .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__total { display: table-cell; text-align: right; white-space: nowrap; }
.panier .wc-block-cart .wc-block-cart-item__total .wc-block-components-product-price__value { font-size: 22px; font-weight: 800; color: var(--wp--preset--color--texte); }
.panier .wc-block-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.panier .wc-block-components-sale-badge { margin: 0; padding: 3px 12px; border: 0; border-radius: 20px; background: var(--wp--preset--color--primaire);
	font-size: 14px; font-weight: 700; text-transform: none; color: var(--wp--preset--color--sur-primaire); }

/* ---------------------------------------------------------------- résumé de la commande */
.panier .wc-block-cart .wc-block-cart__sidebar { position: sticky; top: 24px; padding: 32px; border-radius: 24px; background: var(--wp--preset--color--fond-alt); }
.panier .wc-block-cart .wc-block-cart__totals-title { display: block; margin: 0 0 12px; padding: 0; font-size: 22px; font-weight: 800; letter-spacing: 0; text-transform: none; text-align: left; color: var(--wp--preset--color--texte); }
.panier .wc-block-cart__sidebar .wc-block-components-totals-wrapper { padding: 18px 0; border-top: 1px solid var(--wp--preset--color--separateur); }
.panier .wc-block-cart__sidebar .wc-block-components-totals-wrapper:empty { display: none; }
.panier .wc-block-cart__sidebar .wc-block-components-totals-item { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 17px; }
.panier .wc-block-cart__sidebar .wc-block-components-totals-footer-item { font-size: 22px; font-weight: 800; }
.panier .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--wp--preset--color--primaire); }
.panier .wc-block-cart__sidebar .wc-block-components-totals-item__description { flex-basis: 100%; font-size: 14px; font-weight: 400; color: var(--wp--preset--color--secondaire); }
/* code promo : panneau repliable */
.panier .wc-block-components-totals-coupon .wc-block-components-panel__button { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; font-size: 17px; font-weight: 700; color: var(--wp--preset--color--texte); cursor: pointer; }
.panier .wc-block-components-totals-coupon .wc-block-components-panel__button svg { fill: var(--wp--preset--color--primaire); }
.panier .wc-block-components-totals-coupon__form { display: flex; gap: 10px; margin-top: 14px; }
.panier .wc-block-components-totals-coupon__form .wc-block-components-text-input input { box-sizing: border-box; height: 50px; padding: 14px 16px 0; border: 1px solid var(--wp--preset--color--bordure); border-radius: 10px; background: #232323; color: var(--wp--preset--color--texte); }
.panier .wc-block-components-totals-coupon__form .wc-block-components-text-input label { color: var(--wp--preset--color--secondaire); }
.panier .wc-block-components-totals-coupon__button { height: 50px; padding: 0 20px; border: 1px solid var(--wp--preset--color--primaire); border-radius: 30px; background: none; font-weight: 700; color: var(--wp--preset--color--primaire); }
/* bouton de commande : pilule dorée pleine largeur */
.panier .wc-block-cart__submit { margin: 10px 0 0; }
.panier .wc-block-cart__submit-container { padding: 0; }
.panier .wc-block-cart .wc-block-cart__submit-button { width: 100%; min-height: 60px; padding: 0 24px; border: 0; border-radius: 30px; background: var(--wp--preset--color--primaire);
	font-size: 20px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); text-decoration: none; }
.panier .wc-block-cart .wc-block-cart__submit-button:hover { filter: brightness(1.08); background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }
.panier .wc-block-cart .wc-block-cart__submit-button:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }
.panier .wc-block-cart__payment-options:empty { display: none; }

/* ---------------------------------------------------------------- suggestions et nouveautés (nos cartes) */
.panier-suggestions { margin-top: 60px; }
.panier-suggestions .rayon-titre, .panier-nouveautes .rayon-titre { margin: 0 0 30px; font-size: 32px; }
.panier .grille-suggestions .cartes-produits.wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 20px; }
.panier .grille-nouveautes .cartes-produits.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 20px; }

/* ---------------------------------------------------------------- panier vide */
.panier-vide { display: flex; flex-direction: column; align-items: center; padding: 70px 24px; border-radius: 24px; background: var(--wp--preset--color--fond-alt); text-align: center; }
.panier-vide::before { content: ""; width: 72px; height: 72px; margin-bottom: 20px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--icone-panier) center / contain no-repeat; mask: var(--icone-panier) center / contain no-repeat; }
:root { --icone-panier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11h11l2-8H6.3'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.5'/%3E%3Ccircle cx='17' cy='19.5' r='1.5'/%3E%3C/svg%3E"); }
.panier-vide-titre { margin: 0 0 12px; font-size: 36px; font-weight: 800; }
.panier-vide-texte { margin: 0 0 30px; font-size: 18px; color: #CFCFCF; }
.panier-vide-boutons { margin: 0; }
.panier-nouveautes { margin-top: 80px; }

/* ---------------------------------------------------------------- écrans moyens */
@media (max-width: 1500px) {
	.panier .wc-block-cart.wc-block-components-sidebar-layout { grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; }
	.panier .grille-nouveautes .cartes-produits.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------------------------------------------------------------- tablette : résumé sous les articles (après la règle 1500 px) */
@media (max-width: 1100px) { .panier .wc-block-cart.wc-block-components-sidebar-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; } }

/* ---------------------------------------------------------------- mobile */
@media (max-width: 781px) {
	.panier-haut { padding-top: 18px; }
	.panier .fil-ariane { font-size: 15px; margin-bottom: 14px; }
	.panier-titre { font-size: 30px; margin-bottom: 20px; }
	/* ligne en carte : visuel | nom, prix, quantité ; total en dessous */
	.panier .wc-block-cart table.wc-block-cart-items { border-spacing: 0; }
	.panier .wc-block-cart .wc-block-cart-items__header { display: none; }
	/* une colonne, quelle que soit la classe de taille posée (ou non) par WooCommerce */
	.panier .wc-block-cart.wc-block-components-sidebar-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.panier .wc-block-cart table.wc-block-cart-items, .panier .wc-block-cart table.wc-block-cart-items tbody { display: block; width: 100%; }
	.panier .wc-block-cart table.wc-block-cart-items tr.wc-block-cart-items__row { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 0 14px; margin-bottom: 12px; padding: 16px; border-radius: 16px; background: var(--wp--preset--color--fond-alt); }
	/* sélecteurs renforcés : cart.css place les cellules avec (0,5,1) */
	.panier .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td { grid-area: auto; }
	.panier .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__product { grid-column: 2; grid-row: 1; }
	.panier .wc-block-cart .wc-block-cart-items__row td { padding: 0; border-radius: 0 !important; background: none !important; }
	.panier .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__image { width: auto; grid-column: 1; grid-row: 1 / span 2; }
	.panier .wc-block-cart .wc-block-cart-item__image img { width: 76px; height: 76px; }
	.panier .wc-block-cart .wc-block-components-product-name { font-size: 17px; }
	.panier .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__total { grid-column: 2; grid-row: 2; justify-content: flex-start; text-align: left; margin-top: 10px; }
	.panier .wc-block-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper { flex-direction: row; flex-wrap: wrap; align-items: center; }
	.panier .wc-block-cart .wc-block-cart-item__total .wc-block-components-product-price__value { font-size: 19px; }
	.panier .wc-block-cart .wc-block-cart__sidebar { position: static; width: auto; padding: 22px; }
	.panier .grille-suggestions .cartes-produits.wc-block-product-template,
	.panier .grille-nouveautes .cartes-produits.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
	.panier-suggestions .rayon-titre, .panier-nouveautes .rayon-titre { font-size: 24px; }
	.panier-vide { padding: 44px 20px; }
	.panier-vide-titre { font-size: 26px; }
}
/* ==========================================================================
   Royale Digital Keys — validation de commande (modèle page-checkout + bloc Commande)
   Pas de maquette du client : même langage que le panier. Champs demandés : e-mail, prénom, nom, téléphone
   (les autres champs d'adresse sont masqués par functions.php ; le pays, que le bloc affiche toujours, l'est ici).
   ========================================================================== */

/* ---------------------------------------------------------------- en-tête épuré */
.entete-commande { display: flex; align-items: center; gap: 30px; height: 110px; padding: 0 var(--rdk-marge); box-sizing: border-box; background: var(--wp--preset--color--noir); }
.entete-commande .logo { margin: 0; }
.entete-commande .logo img { display: block; width: 150px; height: auto; }
.commande-securisee { display: flex; align-items: center; gap: 10px; margin: 0; padding-left: 30px; border-left: 1px solid var(--wp--preset--color--separateur);
	font-size: 17px; font-weight: 700; color: var(--wp--preset--color--texte); }
.commande-securisee::before { content: ""; width: 20px; height: 20px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--icone-cadenas) center / contain no-repeat; mask: var(--icone-cadenas) center / contain no-repeat; }
:root { --icone-cadenas: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }
.commande-retour { margin: 0 0 0 auto; font-size: 17px; }
.commande-retour a { color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 5px; }
.commande-retour a:hover { color: var(--wp--preset--color--primaire); }

/* ---------------------------------------------------------------- titre */
.commande-haut { padding: 40px var(--rdk-marge) 0; }
.commande-titre { margin: 0 0 40px; font-size: 48px; font-weight: 800; line-height: 1.1; }
.commande-contenu { padding: 0 var(--rdk-marge) 60px; }
.commande .wp-block-woocommerce-checkout { margin: 0; max-width: none; padding: 0; }

/* ---------------------------------------------------------------- formulaire | récapitulatif */
.commande .wc-block-checkout.wc-block-components-sidebar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 520px; gap: 60px; align-items: start; margin: 0; }
.commande .wc-block-checkout .wc-block-checkout__main, .commande .wc-block-checkout .wc-block-checkout__sidebar { width: auto; margin: 0; }
.commande .wc-block-checkout .wc-block-checkout__main { padding: 0; }

/* étapes : cartes numérotées */
.commande .wc-block-checkout .wc-block-components-checkout-step { position: relative; margin: 0 0 20px; padding: 30px 32px; border-radius: 20px; background: var(--wp--preset--color--fond-alt); }
.commande .wc-block-checkout .wc-block-components-checkout-step::after { display: none; }  /* trait vertical entre les numéros */
.commande .wc-block-checkout .wc-block-components-checkout-step__heading-container { margin: 0 0 18px; }
.commande .wc-block-checkout .wc-block-components-checkout-step__title { margin: 0; font-size: 22px; font-weight: 800; color: var(--wp--preset--color--texte); }
.commande .wc-block-checkout .wc-block-components-checkout-step__container::after,
.commande .wc-block-checkout .wc-block-components-checkout-step__heading::before { display: none; }
.commande .wc-block-checkout .wc-block-components-checkout-step__description { color: var(--wp--preset--color--secondaire); }

/* le pays reste dans le formulaire (le bloc l'exige) mais n'est pas demandé : pays de la boutique (functions.php) */
.commande .wc-block-components-address-form__country,
.commande .wc-block-components-address-card__address-section--secondary { display: none; }

/* champs à étiquette flottante */
.commande .wc-block-components-address-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.commande .wc-block-components-address-form > * { margin: 0; }
.commande .wc-block-components-address-form__email, .commande .wc-block-components-address-form__phone { grid-column: 1 / -1; }
/* sélecteurs renforcés : packages-style.css vise .wc-block-components-form … input[type="email"] */
.commande .wc-block-components-form .wc-block-components-text-input input[type], .commande .wc-block-components-form .wc-blocks-components-select__select { box-sizing: border-box; height: 58px; margin: 0; padding: 22px 16px 6px;
	border: 1px solid var(--wp--preset--color--bordure); border-radius: 12px; background: #232323; font: inherit; font-size: 17px; color: var(--wp--preset--color--texte); box-shadow: none; }
.commande .wc-block-components-form .wc-block-components-text-input label { left: 17px; color: var(--wp--preset--color--secondaire); font-size: 17px; }
.commande .wc-block-components-form .wc-block-components-text-input.is-active label { font-size: 13px; }
.commande .wc-block-components-form .wc-block-components-text-input input[type]:focus { border-color: var(--wp--preset--color--primaire); outline: 0; box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
.commande .wc-block-components-form .wc-block-components-text-input.has-error input[type] { border-color: #FF6B6B; }
.commande .wc-block-components-validation-error { color: #FF8A8A; font-size: 14px; }
.commande .wc-block-components-checkbox__label, .commande .wc-block-checkout__guest-checkout-notice, .commande .wc-block-checkout__login-prompt { color: #CFCFCF; }
.commande .wc-block-checkout__login-prompt { color: var(--wp--preset--color--primaire); }

/* carte d'adresse (client déjà connu) */
.commande .wc-block-components-address-card { padding: 18px 20px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 12px; background: #232323; color: var(--wp--preset--color--texte); }
.commande .wc-block-components-address-card__edit { color: var(--wp--preset--color--primaire); text-decoration: underline; cursor: pointer; }

/* paiement : options en cartes, choix courant bordé d'or */
.commande .wc-block-components-radio-control-accordion-option { margin: 0 0 10px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 12px; background: #232323; box-shadow: none; }
.commande .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: var(--wp--preset--color--primaire); box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
.commande .wc-block-components-radio-control__option { padding: 18px 18px 18px 54px; color: var(--wp--preset--color--texte); font-weight: 700; }
.commande .wc-block-components-radio-control__input { left: 18px; border-color: var(--wp--preset--color--secondaire); background: transparent; }
.commande .wc-block-components-radio-control__input:checked { border-color: var(--wp--preset--color--primaire); }
.commande .wc-block-components-radio-control__input:checked::before { background: var(--wp--preset--color--primaire); }
.commande .wc-block-components-radio-control-accordion-content { padding: 0 18px 18px 54px; color: #CFCFCF; font-size: 15px; }

/* conditions + actions */
.commande .wc-block-checkout__terms { margin: 10px 0 20px; font-size: 15px; color: #CFCFCF; }
.commande .wc-block-checkout__terms a { color: var(--wp--preset--color--primaire); }
.commande .wc-block-checkout__actions_row { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.commande .wc-block-components-checkout-return-to-cart-button { display: inline-flex; align-items: center; gap: 6px; color: var(--wp--preset--color--texte); text-decoration: none; font-size: 17px; }
.commande .wc-block-components-checkout-return-to-cart-button svg { fill: currentColor; }
.commande .wc-block-components-checkout-return-to-cart-button:hover { color: var(--wp--preset--color--primaire); }
.commande .wc-block-checkout .wc-block-components-checkout-place-order-button { min-width: 280px; min-height: 60px; padding: 0 36px; border: 0; border-radius: 30px;
	background: var(--wp--preset--color--primaire); font-size: 20px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); }
.commande .wc-block-checkout .wc-block-components-checkout-place-order-button:hover { filter: brightness(1.08); background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }
.commande .wc-block-checkout .wc-block-components-checkout-place-order-button:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }

/* ---------------------------------------------------------------- récapitulatif */
.commande .wc-block-checkout .wc-block-checkout__sidebar { position: sticky; top: 24px; padding: 30px; border-radius: 24px; background: var(--wp--preset--color--fond-alt); }
.commande .wc-block-components-checkout-order-summary__title { margin: 0 0 10px; }
.commande .wc-block-components-checkout-order-summary__title-text { font-size: 22px; font-weight: 800; color: var(--wp--preset--color--texte); }
.commande .wc-block-components-order-summary-item { padding: 14px 0; gap: 16px; }
.commande .wc-block-components-order-summary-item__image img { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; }
.commande .wc-block-components-order-summary-item__quantity { min-width: 22px; height: 22px; border: 0; border-radius: 11px; background: var(--wp--preset--color--primaire);
	color: var(--wp--preset--color--sur-primaire); font-size: 12px; font-weight: 800; box-shadow: none; }
.commande .wc-block-components-product-name { font-size: 16px; font-weight: 700; color: var(--wp--preset--color--texte); }
.commande .wc-block-components-order-summary-item__individual-prices, .commande .wc-block-components-product-metadata { color: var(--wp--preset--color--secondaire); font-size: 14px; }
.commande .wc-block-components-order-summary-item__total-price { font-weight: 700; color: var(--wp--preset--color--texte); }
.commande .wc-block-components-sale-badge { margin: 4px 0 0; padding: 2px 10px; border: 0; border-radius: 20px; background: var(--wp--preset--color--primaire);
	font-size: 12px; font-weight: 700; text-transform: none; color: var(--wp--preset--color--sur-primaire); }
.commande .wc-block-checkout__sidebar .wc-block-components-totals-wrapper { padding: 16px 0; border-top: 1px solid var(--wp--preset--color--separateur); }
.commande .wc-block-checkout__sidebar .wc-block-components-totals-wrapper:empty { display: none; }
.commande .wc-block-checkout__sidebar .wc-block-components-totals-item { font-size: 17px; }
.commande .wc-block-checkout__sidebar .wc-block-components-totals-footer-item { font-size: 22px; font-weight: 800; }
.commande .wc-block-checkout__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--wp--preset--color--primaire); }
.commande .wc-block-components-totals-coupon .wc-block-components-panel__button { font-weight: 700; color: var(--wp--preset--color--texte); }
.commande .wc-block-components-totals-coupon .wc-block-components-panel__button svg { fill: var(--wp--preset--color--primaire); }
.commande .wc-block-components-totals-coupon__button { height: 50px; padding: 0 20px; border: 1px solid var(--wp--preset--color--primaire); border-radius: 30px; background: none; font-weight: 700; color: var(--wp--preset--color--primaire); }

/* ---------------------------------------------------------------- écrans moyens / tablette */
@media (max-width: 1500px) {
	.commande .wc-block-checkout.wc-block-components-sidebar-layout { grid-template-columns: minmax(0, 1fr) 440px; gap: 40px; }
}
@media (max-width: 1100px) {
	.commande .wc-block-checkout.wc-block-components-sidebar-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.commande .wc-block-checkout .wc-block-checkout__sidebar { position: static; }
}

/* ---------------------------------------------------------------- mobile */
@media (max-width: 781px) {
	.entete-commande { height: 80px; gap: 16px; }
	.entete-commande .logo img { width: 110px; }
	.commande-securisee { padding-left: 16px; font-size: 14px; }
	.commande-retour { display: none; }
	.commande-haut { padding-top: 24px; }
	.commande-titre { font-size: 30px; margin-bottom: 20px; }
	.commande .wc-block-checkout .wc-block-components-checkout-step { padding: 22px 18px; }
	.commande .wc-block-components-address-form { grid-template-columns: minmax(0, 1fr); }
	.commande .wc-block-checkout .wc-block-checkout__sidebar { padding: 20px; }
	.commande .wc-block-checkout__actions_row { flex-direction: column-reverse; align-items: stretch; }
	.commande .wc-block-checkout .wc-block-components-checkout-place-order-button { width: 100%; min-width: 0; }
}

/* ---------------------------------------------------------------- paiement Mobile Money (extension rdk-mobile-money)
   Étape 1 : montant exact + numéros (cartes, point aux couleurs de l'opérateur, choix = opérateur utilisé) ;
   étape 2 : numéro d'envoi et ID de transaction. */
.commande .rdk-mm { display: grid; gap: 14px; padding-top: 4px; color: #CFCFCF; font-size: 16px; font-weight: 400; }
.commande .rdk-mm p { margin: 0; }
.commande .rdk-mm-etape { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; color: var(--wp--preset--color--texte); }
.commande .rdk-mm-num { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 26px; width: 26px; height: 26px; margin-right: 4px; border-radius: 50%;
	background: var(--wp--preset--color--puce); font-size: 14px; font-weight: 800; color: var(--wp--preset--color--primaire); align-self: center; }
.commande .rdk-mm-montant { font-size: 18px; font-weight: 800; color: var(--wp--preset--color--primaire); white-space: nowrap; }
.commande .rdk-mm-operateurs { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
/* carte d’opérateur : bouton | logo (tuile blanche : le logo Orange Money a un texte noir) | nom, numéro, titulaire */
.commande .rdk-mm-operateur { position: relative; display: grid; grid-template-columns: 20px 48px minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 14px 16px;
	border: 1px solid var(--wp--preset--color--bordure); border-radius: 12px; background: #1B1B1B; cursor: pointer; }
.commande .rdk-mm-operateur.is-choisi { border-color: var(--wp--preset--color--primaire); box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
.commande .rdk-mm-operateur input { grid-row: 1 / span 3; width: 18px; height: 18px; margin: 0; accent-color: var(--wp--preset--color--primaire); }
.commande .rdk-mm-logo { grid-row: 1 / span 3; width: 48px; height: 48px; padding: 3px; box-sizing: border-box; border-radius: 10px; background: #FFFFFF; object-fit: contain; }
.commande .rdk-mm-operateur-nom { font-size: 15px; font-weight: 700; color: var(--wp--preset--color--texte); }
.commande .rdk-mm-operateur-numero { font-size: 20px; font-weight: 800; letter-spacing: .5px; color: var(--wp--preset--color--texte); font-variant-numeric: tabular-nums; }
.commande .rdk-mm-operateur-titulaire { font-size: 13px; color: var(--wp--preset--color--secondaire); }
.commande .rdk-mm-frais { font-size: 14px; color: var(--wp--preset--color--secondaire); }
/* deux champs côte à côte : libellés, champs et aides sur trois rangées communes (sous-grille), pour que les deux champs restent
   alignés même quand un libellé passe sur deux lignes (« Numéro depuis lequel vous avez envoyé l’argent ») */
.commande .rdk-mm-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto; column-gap: 12px; row-gap: 6px; }
.commande .rdk-mm-champ { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 6px; min-width: 0; }
.commande .rdk-mm-champ label { align-self: end; font-size: 14px; font-weight: 700; color: var(--wp--preset--color--texte); }
.commande .rdk-mm-champ input { box-sizing: border-box; width: 100%; height: 50px; margin: 0; padding: 0 14px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 10px;
	background: #1B1B1B; font: inherit; font-size: 17px; color: var(--wp--preset--color--texte); }
.commande .rdk-mm-champ input:focus { border-color: var(--wp--preset--color--primaire); outline: 0; box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
.commande .rdk-mm-aide { font-size: 13px; color: var(--wp--preset--color--secondaire); }
@media (max-width: 781px) {
	/* le contenu du moyen de paiement reprend toute la largeur (retrait de 54 px pensé pour un simple texte) */
	.commande .wc-block-components-radio-control-accordion-content { padding: 0 14px 16px; }
	.commande .rdk-mm-champs { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 12px; }
	.commande .rdk-mm-champ { display: flex; flex-direction: column; gap: 6px; grid-row: auto; }
	.commande .rdk-mm-operateur { grid-template-columns: 20px 40px minmax(0, 1fr); column-gap: 10px; }
	.commande .rdk-mm-logo { width: 40px; height: 40px; }
	.commande .rdk-mm-operateur-numero { font-size: 18px; }
}
/* ==========================================================================
   Royale Digital Keys — confirmation de commande (modèle order-confirmation, page affichée après le paiement)
   Même langage que le panier et la commande : cartes fond-alt arrondies, or pour l'action.
   ========================================================================== */

/* ---------------------------------------------------------------- statut : coche dorée + titre */
.confirmation-haut { padding: 50px var(--rdk-marge) 0; }
.confirmation .confirmation-statut { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 22px; align-items: center; margin: 0 0 40px; max-width: none; }
.confirmation .confirmation-statut::before { content: ""; grid-row: 1 / span 2; width: 64px; height: 64px; border-radius: 50%;
	background: var(--wp--preset--color--primaire) var(--icone-coche-fonce) center / 30px no-repeat; }
:root { --icone-coche-fonce: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E"); }
.confirmation .confirmation-statut h1 { margin: 0; font-size: 48px; font-weight: 800; line-height: 1.1; }
.confirmation .confirmation-statut p { margin: 6px 0 0; font-size: 20px; color: #CFCFCF; }

/* ---------------------------------------------------------------- détail | suite */
.confirmation-grille { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 40px; align-items: start; padding: 0 var(--rdk-marge) 80px; }
.confirmation-principal, .confirmation-cote { display: grid; gap: 20px; }
.confirmation .confirmation-carte { margin: 0; padding: 30px 32px; border-radius: 20px; background: var(--wp--preset--color--fond-alt); }
.confirmation .confirmation-titre { margin: 0 0 18px; font-size: 22px; font-weight: 800; }

/* synthèse : cinq pastilles clé / valeur */
.confirmation .confirmation-synthese { margin: 0; max-width: none; }
.confirmation .wc-block-order-confirmation-summary-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.confirmation .wc-block-order-confirmation-summary-list-item { display: flex; flex-direction: column; gap: 6px; box-sizing: border-box; min-width: 0; margin: 0; padding: 18px 20px; border-radius: 16px; background: var(--wp--preset--color--fond-alt); }
.confirmation .wc-block-order-confirmation-summary-list-item__key { font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--secondaire); }
.confirmation .wc-block-order-confirmation-summary-list-item__value { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--texte); overflow-wrap: anywhere; }

/* détail de la commande : tableau sans cadre, total doré */
.confirmation .wc-block-order-confirmation-totals { margin: 0; max-width: none; }
.confirmation .wc-block-order-confirmation-totals__table { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.confirmation .wc-block-order-confirmation-totals__table th, .confirmation .wc-block-order-confirmation-totals__table td { padding: 16px 0; border: 0; border-bottom: 1px solid var(--wp--preset--color--separateur); background: none; font-size: 17px; }
.confirmation .wc-block-order-confirmation-totals__table thead th { padding-top: 0; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--secondaire); }
.confirmation .wc-block-order-confirmation-totals__table .wc-block-order-confirmation-totals__total { text-align: right; white-space: nowrap; }
.confirmation .wc-block-order-confirmation-totals__table td a { color: var(--wp--preset--color--texte); font-weight: 700; text-decoration: none; }
.confirmation .wc-block-order-confirmation-totals__table td a:hover { color: var(--wp--preset--color--primaire); }
.confirmation .wc-block-order-confirmation-totals__table .product-quantity { color: var(--wp--preset--color--secondaire); font-weight: 700; }
.confirmation .wc-block-order-confirmation-totals__table tfoot th, .confirmation .wc-block-order-confirmation-totals__table tfoot td { border-bottom: 0; padding-bottom: 0; font-size: 22px; font-weight: 800; }
.confirmation .wc-block-order-confirmation-totals__table tfoot th { text-align: left; }
.confirmation .wc-block-order-confirmation-totals__table tfoot td { color: var(--wp--preset--color--primaire); }

/* instructions du moyen de paiement */
.confirmation .confirmation-instructions { margin: 0; max-width: none; padding: 18px 22px; border: 1px solid var(--wp--preset--color--bordure); border-left: 4px solid var(--wp--preset--color--primaire);
	border-radius: 12px; font-size: 16px; color: #CFCFCF; }
.confirmation .confirmation-instructions p { margin: 0; }
.confirmation .confirmation-instructions:empty { display: none; }

/* « What happens next » : étapes numérotées */
.confirmation .confirmation-etapes { display: grid; gap: 16px; margin: 0 0 26px; padding: 0; list-style: none; counter-reset: etape; }
.confirmation .confirmation-etapes li { position: relative; padding-left: 44px; font-size: 16px; line-height: 1.5; color: #DADADA; counter-increment: etape; }
.confirmation .confirmation-etapes li::before { content: counter(etape); position: absolute; left: 0; top: -2px; display: flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50%; background: var(--wp--preset--color--puce); font-size: 15px; font-weight: 800; color: var(--wp--preset--color--primaire); }
.confirmation .confirmation-etapes strong { color: var(--wp--preset--color--texte); }
.confirmation .confirmation-boutons { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.confirmation .confirmation-boutons .wp-block-button__link { font-size: 17px; padding: 12px 24px; }
/* colonne de droite (440 px, au-delà de 1 100 px) : « Continuer mes achats » et « Mon compte » ne tiennent pas côte à côte
   en français → l'un sous l'autre, pleine largeur */
@media (min-width: 1101px) {
	.confirmation .confirmation-boutons { flex-direction: column; }
	.confirmation .confirmation-boutons .wp-block-button, .confirmation .confirmation-boutons .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; }
}

/* coordonnées */
.confirmation .wc-block-order-confirmation-billing-address { margin: 0; padding: 0; border: 0; font-style: normal; font-size: 16px; line-height: 1.7; color: #DADADA; }
.confirmation .wc-block-order-confirmation-billing-address p { margin: 0; }

/* ---------------------------------------------------------------- écrans moyens / mobile */
@media (max-width: 1100px) {
	.confirmation-grille { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 781px) {
	.confirmation-haut { padding-top: 28px; }
	.confirmation .confirmation-statut { grid-template-columns: 48px minmax(0, 1fr); column-gap: 14px; margin-bottom: 24px; }
	.confirmation .confirmation-statut::before { width: 48px; height: 48px; background-size: 22px; }
	.confirmation .confirmation-statut h1 { font-size: 28px; }
	.confirmation .confirmation-statut p { font-size: 16px; }
	.confirmation .wc-block-order-confirmation-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.confirmation .confirmation-carte { padding: 22px 18px; }
	.confirmation .wc-block-order-confirmation-totals__table th, .confirmation .wc-block-order-confirmation-totals__table td { font-size: 15px; }
	.confirmation .wc-block-order-confirmation-totals__table tfoot th, .confirmation .wc-block-order-confirmation-totals__table tfoot td { font-size: 19px; }
}
/* ==========================================================================
   Royale Digital Keys — clés de licence (extension Digital License Manager)
   Blocs de l'extension : « Your license(s) » sur la page de confirmation et le détail de commande,
   onglet « Licenses » de Mon compte. Sa feuille account.css pose un fond clair sous la clé : avec le texte
   blanc du thème, la clé devenait invisible. Tout est redessiné ici, dans le langage du site.
   account.css se charge APRÈS style.css et pose un dégradé clair en background-image : sélecteurs préfixés par body,
   background-image: none.
   ========================================================================== */

.dlm-myaccount-element { margin-top: 30px; }
.dlm-myaccount-page-title { margin: 0 0 16px; font-size: 22px; font-weight: 800; color: var(--wp--preset--color--texte); }

/* une carte par produit : nom, puis clé + action */
table.dlm-myaccount-table { width: 100%; margin: 0 0 14px; border: 1px solid var(--wp--preset--color--bordure); border-collapse: separate; border-spacing: 0;
	border-radius: 14px; background: #232323; overflow: hidden; }
table.dlm-myaccount-table th, table.dlm-myaccount-table td { padding: 14px 18px; border: 0; background: none; text-align: left; vertical-align: middle; color: var(--wp--preset--color--texte); }
table.dlm-myaccount-table thead th { padding-bottom: 0; font-size: 14px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--wp--preset--color--secondaire); }
table.dlm-myaccount-table thead th a { color: inherit; text-decoration: none; }

/* la clé : police à chasse fixe, pastille à bord pointillé doré, copie au clic (script de l'extension) */
.dlm-myaccount-license-key { display: inline-flex; margin: 0; padding: 0; border: 0; background: none; }
body .dlm-myaccount-license-key > .dlm-myaccount-license-key-action { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px;
	border: 1px dashed var(--wp--preset--color--primaire); border-radius: 10px; background: #1B1B1B; background-image: none;
	font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 18px; font-weight: 700; letter-spacing: 1px; color: var(--wp--preset--color--texte); cursor: pointer; }
body .dlm-myaccount-license-key > .dlm-myaccount-license-key-action::after { content: ""; width: 18px; height: 18px; flex: 0 0 18px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--icone-copier) center / contain no-repeat; mask: var(--icone-copier) center / contain no-repeat; }
body .dlm-myaccount-license-key > .dlm-myaccount-license-key-action:hover { background: #262626; background-image: none; color: var(--wp--preset--color--texte); }
:root { --icone-copier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='12' height='12' rx='2'/%3E%3Cpath d='M5 15V5a2 2 0 0 1 2-2h10'/%3E%3C/svg%3E"); }

/* bouton « View » : contour doré */
.dlm-myaccount-table-row-actions { display: flex; justify-content: flex-end; gap: 8px; }
.dlm-myaccount-table-row-actions .button, .dlm-myaccount-table-row-actions a { display: inline-block; padding: 8px 18px; border: 1px solid var(--wp--preset--color--primaire); border-radius: 30px;
	background: none; font-size: 15px; font-weight: 700; color: var(--wp--preset--color--primaire); text-decoration: none; }
.dlm-myaccount-table-row-actions .button:hover, .dlm-myaccount-table-row-actions a:hover { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }

/* « Activations 0 / ∞ » : compteur de l'API de l'extension, pour les logiciels qu'on édite soi-même. Nos clés s'activent chez
   l'éditeur (Microsoft, Steam…) : le compteur resterait à 0 et ferait croire à un nombre illimité. Masqué (liste et page d'une clé). */
.dlm-myaccount-table .table-col-activations, .dlm-myaccount-table-row--activations { display: none; }

/* état « Livrée » (« Valid » de l'extension) en pastille */
.dlm-license-status { display: inline-block; padding: 2px 10px; border-radius: 20px; font-size: 13px; font-weight: 700; }

@media (max-width: 781px) {
	table.dlm-myaccount-table td.table-col-license-key, table.dlm-myaccount-table td.table-col-actions { display: block; }
	table.dlm-myaccount-table td.table-col-actions { padding-top: 0; }
	.dlm-myaccount-table-row-actions { justify-content: flex-start; }
	body .dlm-myaccount-license-key > .dlm-myaccount-license-key-action { font-size: 15px; }
}
/* ==========================================================================
   Royale Digital Keys — Mon compte (modèle page-my-account + shortcode [woocommerce_my_account])
   Vues : tableau de bord (modèle du thème woocommerce/myaccount/dashboard.php), commandes, détail d'une commande,
   clés (Digital License Manager, voir licences.css), détails du compte, connexion / inscription, mot de passe oublié.
   Sélecteurs sous .compte (et body.woocommerce-account) : woocommerce.css / woocommerce-layout.css visent
   .woocommerce-account … (0,2,0) et flottent le menu (30 %) et le contenu (68 %).
   ========================================================================== */

:root {
	--icone-tableau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='9' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1.5'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1.5'/%3E%3Crect x='3' y='16' width='7' height='5' rx='1.5'/%3E%3C/svg%3E");
	--icone-commandes: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12l1 18H5z'/%3E%3Cpath d='M9 8a3 3 0 0 0 6 0'/%3E%3C/svg%3E");
	--icone-profil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E");
	--icone-sortie: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h4v16h-4M10 8l-4 4 4 4M6 12h10'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------- en-tête */
.compte-haut { padding: 28px var(--rdk-marge) 0; }
.compte .fil-ariane { margin: 0 0 22px; font-size: 18px; color: var(--wp--preset--color--texte); }
.compte .fil-ariane a { color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.compte .fil-ariane .woocommerce-breadcrumb > a:first-child::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 10px; vertical-align: -2px;
	background: currentColor; -webkit-mask: var(--icone-maison) center / contain no-repeat; mask: var(--icone-maison) center / contain no-repeat; }
/* .compte-haut : bat « :root :where(.is-layout-flow) > :last-child { margin-block-end: 0 } » du thème (0,2,0) */
.compte-haut .compte-titre { margin: 0 0 40px; font-size: 48px; font-weight: 800; line-height: 1.1; }
.compte-contenu { padding: 0 var(--rdk-marge) 80px; font-size: 17px; line-height: 1.6; color: #DADADA; }
body .compte .compte-contenu > * { max-width: none; margin-left: 0; margin-right: 0; }  /* woocommerce-blocktheme.css bride .woocommerce du compte à 1000 px */

/* ---------------------------------------------------------------- menu | contenu (connecté) */
.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 40px; align-items: start; }
/* placement explicite : WooCommerce glisse d'autres éléments (messages…) avant le menu, qui sinon décalent la grille */
.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) > * { grid-column: 1 / -1; }
.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: span 2; }
.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content { grid-column: 2; }
body.woocommerce-account .compte .woocommerce-MyAccount-navigation,
body.woocommerce-account .compte .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
.compte .woocommerce-MyAccount-navigation { padding: 12px; border-radius: 20px; background: var(--wp--preset--color--fond-alt); }
.compte .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.compte .woocommerce-MyAccount-navigation li { margin: 0; }
body .compte .woocommerce-MyAccount-navigation li a, body .compte .woocommerce-MyAccount-navigation li.is-active a { text-decoration: none; }
/* woocommerce-blocktheme.css : 1em de marge haute et basse par entrée, soulignement de l'entrée active */
body.woocommerce-account .compte .woocommerce-MyAccount-navigation li { padding: 0; }
body.woocommerce-account .compte .woocommerce-MyAccount-navigation li + li { margin-top: 4px; }
.compte .woocommerce-MyAccount-navigation li a { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 12px; font-size: 17px; font-weight: 700;
	color: var(--wp--preset--color--texte); text-decoration: none; }
.compte .woocommerce-MyAccount-navigation li a::before { content: ""; flex: 0 0 22px; width: 22px; height: 22px; background: currentColor;
	-webkit-mask: var(--i, var(--icone-tableau)) center / contain no-repeat; mask: var(--i, var(--icone-tableau)) center / contain no-repeat; }
.compte .woocommerce-MyAccount-navigation-link--orders { --i: var(--icone-commandes); }
.compte .woocommerce-MyAccount-navigation-link--digital-licenses { --i: var(--icone-cle); }
.compte .woocommerce-MyAccount-navigation-link--edit-account { --i: var(--icone-profil); }
.compte .woocommerce-MyAccount-navigation-link--customer-logout { --i: var(--icone-sortie); margin-top: 8px !important; padding-top: 8px !important; border-top: 1px solid var(--wp--preset--color--separateur); }
.compte .woocommerce-MyAccount-navigation li a:hover { background: #333333; }
.compte .woocommerce-MyAccount-navigation li.is-active a { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }
.compte .woocommerce-MyAccount-navigation li a:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 2px; }
.compte .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.compte .woocommerce-MyAccount-content h2, .compte .woocommerce-MyAccount-content h3 { margin: 30px 0 16px; font-size: 22px; font-weight: 800; color: var(--wp--preset--color--texte); }
.compte .woocommerce-MyAccount-content a:not(.button) { color: var(--wp--preset--color--primaire); }

/* ---------------------------------------------------------------- tableau de bord */
.compte-bonjour { margin: 0 0 6px; font-size: 26px; color: var(--wp--preset--color--texte); }
.compte-intro { margin: 0 0 26px; color: #CFCFCF; }
.compte-cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.compte .compte-carte { display: flex; flex-direction: column; gap: 4px; padding: 24px; border: 1px solid transparent; border-radius: 20px; background: var(--wp--preset--color--fond-alt);
	color: var(--wp--preset--color--texte); text-decoration: none; }
.compte .compte-carte:hover { border-color: var(--wp--preset--color--primaire); }
.compte-carte-chiffre { font-size: 40px; font-weight: 800; line-height: 1.1; color: var(--wp--preset--color--primaire); }
.compte-carte-icone { width: 44px; height: 44px; margin-bottom: 4px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--icone-profil) center / contain no-repeat; mask: var(--icone-profil) center / contain no-repeat; }
.compte-carte-libelle { font-size: 18px; font-weight: 800; }
.compte-carte-lien { font-size: 15px; color: var(--wp--preset--color--secondaire); }
.compte-sous-titre { margin: 36px 0 14px !important; }
.compte-commandes-recentes { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.compte .compte-commandes-recentes a { display: grid; grid-template-columns: 90px 1fr auto auto; align-items: center; gap: 20px; padding: 16px 20px; border-radius: 14px;
	background: var(--wp--preset--color--fond-alt); color: var(--wp--preset--color--texte); text-decoration: none; }
.compte .compte-commandes-recentes a:hover { background: #333333; }
.commande-numero { font-weight: 800; }
.commande-date { color: var(--wp--preset--color--secondaire); }
.commande-total { font-weight: 800; text-align: right; }
.compte-vide { padding: 20px; border-radius: 14px; background: var(--wp--preset--color--fond-alt); }

/* statuts de commande en pastilles (tableau de bord, liste des commandes) */
.commande-statut, .compte .woocommerce-orders-table__cell-order-status { font-size: 14px; font-weight: 700; }
.commande-statut { padding: 3px 12px; border-radius: 20px; background: #3A3A3A; color: var(--wp--preset--color--texte); }
.commande-statut--completed { background: #1F4D33; color: #8FF0B4; }
.commande-statut--processing { background: #4A3A12; color: var(--wp--preset--color--primaire); }
.commande-statut--on-hold, .commande-statut--pending { background: #3A3A3A; color: #E6E6E6; }
.commande-statut--cancelled, .commande-statut--failed, .commande-statut--refunded { background: #4D1F24; color: #FF9CA5; }

/* ---------------------------------------------------------------- tableaux (commandes, détail, clés) */
.compte .woocommerce table.shop_table { width: 100%; margin: 0 0 24px; border: 0; border-collapse: separate; border-spacing: 0; border-radius: 16px; background: var(--wp--preset--color--fond-alt); overflow: hidden; }
.compte .woocommerce table.shop_table th, .compte .woocommerce table.shop_table td { padding: 16px 18px; border: 0; border-top: 1px solid var(--wp--preset--color--separateur); background: none;
	color: var(--wp--preset--color--texte); font-size: 16px; text-align: left; vertical-align: middle; }
.compte .woocommerce table.shop_table thead th { border-top: 0; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--secondaire); }
.compte .woocommerce table.shop_table tfoot th, .compte .woocommerce table.shop_table tfoot td { font-weight: 800; }
.compte .woocommerce table.shop_table a { color: var(--wp--preset--color--texte); font-weight: 700; text-decoration: none; }
.compte .woocommerce table.shop_table a:not(.button):hover { color: var(--wp--preset--color--primaire); }
.compte .woocommerce-orders-table__cell-order-actions { text-align: right !important; }

/* résumé d'une commande (« Order #174 was placed on … ») : pas de surlignage jaune */
.compte .woocommerce-MyAccount-content mark { padding: 0; background: none; font-weight: 800; color: var(--wp--preset--color--texte); }
.compte .woocommerce-customer-details address { padding: 18px 20px; border: 0; border-radius: 14px; background: var(--wp--preset--color--fond-alt); font-style: normal; color: #DADADA; }
.compte .woocommerce-customer-details address p { margin: 4px 0 0; }

/* ---------------------------------------------------------------- boutons */
body .compte .woocommerce .button, body .compte .woocommerce button.button, body .compte .woocommerce a.button {
	display: inline-flex; align-items: center; justify-content: center; margin: 2px 0 2px 6px; padding: 8px 18px; border: 1px solid var(--wp--preset--color--primaire); border-radius: 30px;
	background: transparent; font: inherit; font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--wp--preset--color--primaire); text-decoration: none; cursor: pointer; }
body .compte .woocommerce .button:hover { background: var(--wp--preset--color--primaire); color: var(--wp--preset--color--sur-primaire); }
/* bouton principal d'un formulaire (connexion, inscription, enregistrer) : doré plein */
body .compte .woocommerce form button[type="submit"].button { min-height: 54px; margin: 10px 0 0; padding: 0 32px; border: 0; background: var(--wp--preset--color--primaire);
	font-size: 18px; color: var(--wp--preset--color--sur-primaire); }
body .compte .woocommerce form button[type="submit"].button:hover { filter: brightness(1.08); }
body .compte .woocommerce .button:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }

/* ---------------------------------------------------------------- formulaires */
.compte .woocommerce form .form-row { display: block; margin: 0 0 16px; padding: 0; }
.compte .woocommerce form .form-row label { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 700; color: var(--wp--preset--color--texte); line-height: 1.4; }
.compte .woocommerce form .form-row .required { color: var(--wp--preset--color--primaire); text-decoration: none; }
.compte .woocommerce form .input-text, .compte .woocommerce form input[type="text"], .compte .woocommerce form input[type="email"], .compte .woocommerce form input[type="password"] {
	box-sizing: border-box; width: 100%; height: 52px; padding: 0 16px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 12px; background: #232323;
	font: inherit; font-size: 17px; color: var(--wp--preset--color--texte); box-shadow: none; }
.compte .woocommerce form .input-text:focus, .compte .woocommerce form input:focus { border-color: var(--wp--preset--color--primaire); outline: 0; box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
.compte .woocommerce form .form-row-first, .compte .woocommerce form .form-row-last { float: none; width: auto; }
.compte .woocommerce-EditAccountForm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; max-width: 760px; }
.compte .woocommerce-EditAccountForm > *, .compte .woocommerce-EditAccountForm .clear { grid-column: 1 / -1; }
.compte .woocommerce-EditAccountForm > .form-row-first { grid-column: 1; }
.compte .woocommerce-EditAccountForm > .form-row-last { grid-column: 2; }
.compte .woocommerce form fieldset { margin: 20px 0 0; padding: 22px 22px 6px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 16px; }
.compte .woocommerce form fieldset legend { padding: 0 8px; font-size: 17px; font-weight: 800; color: var(--wp--preset--color--texte); }
.compte .woocommerce form em, .compte .woocommerce-privacy-policy-text, .compte .woocommerce form .description { font-size: 14px; font-style: normal; color: var(--wp--preset--color--secondaire); }
.compte .woocommerce-privacy-policy-text a { color: var(--wp--preset--color--primaire); }
.compte .show-password-input { top: 50% !important; transform: translateY(-50%); }

/* ---------------------------------------------------------------- connexion / inscription (déconnecté) */
.compte #customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; max-width: 1100px; }
.compte #customer_login::before, .compte #customer_login::after { display: none; }
.compte #customer_login > .u-column1, .compte #customer_login > .u-column2 { float: none; width: auto; padding: 34px; border-radius: 24px; background: var(--wp--preset--color--fond-alt); }
.compte #customer_login h2 { margin: 0 0 20px; font-size: 26px; font-weight: 800; color: var(--wp--preset--color--texte); }
.compte .woocommerce form.login, .compte .woocommerce form.register { margin: 0; padding: 0; border: 0; border-radius: 0; }
/* « Remember me » sur sa propre ligne, au-dessus du bouton « Log in » */
.compte .woocommerce form.login .form-row:has(.woocommerce-form-login__rememberme) { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-top: 4px; }
.compte .woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: 10px; margin: 0 !important; font-weight: 400 !important; cursor: pointer; }
body .compte .woocommerce form.login button[type="submit"].button { margin: 0; }
.compte .woocommerce-form-login__rememberme input { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: var(--wp--preset--color--primaire); }
.compte .woocommerce-LostPassword { margin: 16px 0 0; }
.compte .woocommerce-LostPassword a, .compte .woocommerce form.register a { color: var(--wp--preset--color--primaire); }
.compte .woocommerce-ResetPassword { max-width: 560px; padding: 34px; border-radius: 24px; background: var(--wp--preset--color--fond-alt); }

/* messages de WooCommerce sur ces pages (mêmes couleurs que sur la boutique) */
.compte .wc-block-components-notice-banner, .compte .woocommerce-message, .compte .woocommerce-info, .compte .woocommerce-error {
	margin: 0 0 24px; padding: 16px 20px; border: 1px solid var(--wp--preset--color--bordure); border-left: 4px solid var(--wp--preset--color--primaire); border-radius: 10px;
	background: var(--wp--preset--color--fond-alt); color: var(--wp--preset--color--texte); font-size: 16px; }
.compte .woocommerce-error { border-left-color: #E5484D; }
.compte .woocommerce-message::before, .compte .woocommerce-info::before, .compte .woocommerce-error::before { display: none; }
.compte .wc-block-components-notice-banner > svg { background: var(--wp--preset--color--primaire); fill: var(--wp--preset--color--sur-primaire); }
.compte .wc-block-components-notice-banner a, .compte .wc-block-components-notice-banner .button { color: var(--wp--preset--color--primaire) !important; }
/* bouton d'un message (« Browse products »…) : pilule à contour doré, à droite du texte. wc-blocks.css lui retire marge intérieure
   et bordure en !important */
.compte .wc-block-components-notice-banner__content:has(.button) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
body .compte .wc-block-components-notice-banner .wc-block-components-notice-banner__content .button { float: none; order: 2; flex: 0 0 auto; margin: 0 0 0 auto; padding: 8px 20px !important; border: 1px solid var(--wp--preset--color--primaire) !important;
	border-radius: 30px; background: none; font-size: 15px; font-weight: 700; line-height: 1.3; text-decoration: none; white-space: nowrap; opacity: 1; }
/* wc-blocks.css : background: transparent !important sur .wc-forward — le fond du survol doit être !important lui aussi */
body .compte .wc-block-components-notice-banner .wc-block-components-notice-banner__content .button:hover { background: var(--wp--preset--color--primaire) !important; color: var(--wp--preset--color--sur-primaire) !important; }

/* clés : état « Livrée » (« Valid » de l'extension) lisible sur fond sombre (vert de l'extension : 2,2:1) */
.compte .dlm-license-status--valid, .confirmation .dlm-license-status--valid { background: #1F4D33; color: #8FF0B4; }

/* ---------------------------------------------------------------- écrans moyens / mobile */
@media (max-width: 1100px) {
	.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation,
	.compte .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content { grid-column: 1; grid-row: auto; }
	.compte-cartes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.compte-haut { padding-top: 18px; }
	.compte .fil-ariane { font-size: 15px; margin-bottom: 14px; }
	.compte-haut .compte-titre { font-size: 30px; margin-bottom: 20px; }
	.compte .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 6px; }
	.compte .woocommerce-MyAccount-navigation li a { padding: 10px 12px; font-size: 15px; }
	.compte .woocommerce-MyAccount-navigation-link--customer-logout { margin: 0 !important; padding: 0; border: 0; }
	.compte-cartes { grid-template-columns: minmax(0, 1fr); }
	.compte .compte-commandes-recentes a { grid-template-columns: 1fr auto; row-gap: 6px; }
	.compte #customer_login { grid-template-columns: minmax(0, 1fr); }
	.compte #customer_login > .u-column1, .compte #customer_login > .u-column2, .compte .woocommerce-ResetPassword { padding: 22px; }
	.compte .woocommerce-EditAccountForm { grid-template-columns: minmax(0, 1fr); }
	.compte .woocommerce-EditAccountForm > .form-row-first, .compte .woocommerce-EditAccountForm > .form-row-last { grid-column: 1; }
}
/* ==========================================================================
   Royale Digital Keys — pages légales (conditions générales de vente, politique de confidentialité, retours et remboursements)
   Modèles page-conditions-generales-de-vente.html / page-politique-de-confidentialite.html / page-retours-et-remboursements.html ; contenu construit par build/pages_legales.py.
   Sommaire collant à gauche | texte en colonne de lecture (760 px).
   ========================================================================== */
.legal-haut { padding: 28px var(--rdk-marge) 0; }
.legal .fil-ariane, .contact .fil-ariane { margin: 0 0 22px; font-size: 18px; color: var(--wp--preset--color--texte); }
.legal .fil-ariane a, .contact .fil-ariane a { color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.legal .fil-ariane .woocommerce-breadcrumb > a:first-child::before, .contact .fil-ariane .woocommerce-breadcrumb > a:first-child::before { content: ""; display: inline-block; width: 18px; height: 18px;
	margin-right: 10px; vertical-align: -2px; background: currentColor; -webkit-mask: var(--icone-maison) center / contain no-repeat; mask: var(--icone-maison) center / contain no-repeat; }
/* deux classes : bat « :root :where(.is-layout-flow) > :last-child { margin-block-end: 0 } » (0,2,0) */
.legal-haut .legal-page-titre, .contact-haut .contact-page-titre { margin: 0 0 40px; font-size: 48px; font-weight: 800; line-height: 1.1; }
.legal-contenu { padding: 0 var(--rdk-marge) 90px; }
body .legal .legal-contenu > * { max-width: none; margin-left: 0; margin-right: 0; }

.legal .legal-grille { display: grid; grid-template-columns: 300px minmax(0, 760px); gap: 70px; align-items: start; }

/* sommaire */
.legal .legal-sommaire { position: sticky; top: 30px; padding: 24px; border-radius: 20px; background: var(--wp--preset--color--fond-alt); }
.legal .legal-sommaire-titre { margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--secondaire); }
.legal .legal-sommaire-liste { margin: 0; padding: 0; list-style: none; }
.legal .legal-sommaire-liste li { margin: 0; }
.legal .legal-sommaire-liste a { display: block; padding: 8px 12px; border-radius: 10px; font-size: 15px; font-weight: 600; line-height: 1.4; color: #DADADA; text-decoration: none; }
.legal .legal-sommaire-liste a:hover { background: #333333; color: var(--wp--preset--color--texte); }
.legal .legal-sommaire-liste a:focus-visible { outline: 2px solid var(--wp--preset--color--primaire); outline-offset: 0; }

/* texte */
.legal .legal-texte { font-size: 17px; line-height: 1.7; color: #DADADA; }
.legal .legal-texte > * { margin: 0 0 16px; }
.legal .legal-texte .legal-date { display: inline-block; margin-bottom: 26px; padding: 6px 14px; border-radius: 20px; background: var(--wp--preset--color--fond-alt);
	font-size: 14px; font-weight: 700; color: var(--wp--preset--color--secondaire); }
.legal .legal-texte h2 { margin: 44px 0 14px; scroll-margin-top: 30px; font-size: 24px; font-weight: 800; line-height: 1.3; color: var(--wp--preset--color--texte); }
.legal .legal-texte ul, .legal .legal-texte ol { padding-left: 22px; }
.legal .legal-texte ol li::marker { font-weight: 800; }
.legal .legal-texte li { margin: 0 0 10px; }
.legal .legal-texte li::marker { color: var(--wp--preset--color--primaire); }
.legal .legal-texte strong { color: var(--wp--preset--color--texte); }
.legal .legal-texte a { color: var(--wp--preset--color--primaire); text-underline-offset: 3px; }

/* éléments à fournir par le client : bien visibles tant qu'ils ne sont pas remplacés */
mark.a-fournir { padding: 1px 6px; border-radius: 6px; background: #5A4410; color: #FFE3A3; }

@media (max-width: 1100px) {
	.legal .legal-grille { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.legal .legal-sommaire { position: static; }
}
@media (max-width: 781px) {
	.legal-haut { padding-top: 18px; }
	.legal .fil-ariane, .contact .fil-ariane { font-size: 14px; margin-bottom: 18px; }
	.legal-haut .legal-page-titre, .contact-haut .contact-page-titre { font-size: 30px; margin-bottom: 20px; }
	.legal-contenu { padding-bottom: 60px; }
	.legal .legal-sommaire { padding: 18px; }
	.legal .legal-texte { font-size: 16px; }
	.legal .legal-texte h2 { margin-top: 34px; font-size: 20px; }
}
/* ==========================================================================
   Royale Digital Keys — pages Contact et Programme d'affiliation (modèles page-contact.html, page-affiliation.html ; formulaire Contact Form 7 : build/formulaire-contact.php)
   Informations utiles à gauche | carte du formulaire. Champs sombres, bouton doré, comme la commande.
   ========================================================================== */
.contact-haut { padding: 28px var(--rdk-marge) 0; }
.contact-contenu { padding: 0 var(--rdk-marge) 90px; }
body .contact .contact-contenu > * { max-width: none; margin-left: 0; margin-right: 0; }
.contact .contact-grille { display: grid; grid-template-columns: minmax(0, 440px) minmax(0, 1fr); gap: 50px; align-items: start; }

/* colonne d'informations */
.contact .contact-cote { display: grid; gap: 16px; }
.contact .contact-intro { margin: 0 0 8px; font-size: 19px; line-height: 1.6; color: #DADADA; }
.contact .contact-info { position: relative; margin: 0; padding: 22px 24px 22px 76px; border-radius: 18px; background: var(--wp--preset--color--fond-alt); }
.contact .contact-info::before { content: ""; position: absolute; left: 22px; top: 22px; width: 38px; height: 38px; border-radius: 50%; background: var(--wp--preset--color--puce); }
.contact .contact-info::after { content: ""; position: absolute; left: 31px; top: 31px; width: 20px; height: 20px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.contact .contact-info-commande { --i: var(--icone-commandes); }
.contact .contact-info-activation { --i: var(--icone-cle); }
.contact .contact-info-email { --i: var(--icone-lettre); }
.contact .contact-info-postuler { --i: var(--icone-lettre); }  /* page Programme d'affiliation : même mise en page */
.contact .contact-info-lien { --i: var(--icone-lien); }
.contact .contact-info-gains { --i: var(--icone-commandes); }
:root { --icone-lien: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7'/%3E%3C/svg%3E"); }
:root { --icone-lettre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.contact .contact-info h3 { margin: 0 0 6px; font-size: 18px; font-weight: 800; color: var(--wp--preset--color--texte); }
.contact .contact-info p { margin: 0; font-size: 16px; line-height: 1.6; color: #CFCFCF; }
.contact .contact-info a { color: var(--wp--preset--color--primaire); }

/* carte du formulaire */
.contact .contact-carte { margin: 0; padding: 36px 40px 40px; border-radius: 24px; background: var(--wp--preset--color--fond-alt); }
.contact .contact-carte .contact-titre { margin: 0 0 24px; font-size: 26px; font-weight: 800; }
.contact .wpcf7 form { margin: 0; }
.contact .contact-champs { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.contact .contact-champ { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.contact .contact-large { grid-column: 1 / -1; }
.contact .contact-champ > label { font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--wp--preset--color--texte); }
.contact .contact-champ .requis { color: var(--wp--preset--color--primaire); }
.contact .contact-champ .facultatif { font-weight: 400; color: var(--wp--preset--color--secondaire); }
.contact .wpcf7-form-control-wrap { display: block; }
.contact .wpcf7 .wpcf7-text, .contact .wpcf7 .wpcf7-email, .contact .wpcf7 .wpcf7-select, .contact .wpcf7 .wpcf7-textarea {
	display: block; box-sizing: border-box; width: 100%; min-height: 56px; margin: 0; padding: 14px 18px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 14px;
	background: #1F1F1F; font: inherit; font-size: 17px; line-height: 1.4; color: var(--wp--preset--color--texte); }
.contact .wpcf7 .wpcf7-textarea { min-height: 170px; resize: vertical; }
.contact .wpcf7 .wpcf7-select { appearance: none; padding-right: 48px; cursor: pointer;
	background: #1F1F1F url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0B22A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 18px center / 18px no-repeat; }
.contact .wpcf7 .wpcf7-select option { background: #1F1F1F; color: var(--wp--preset--color--texte); }
.contact .wpcf7 ::placeholder { color: #8A8A8A; opacity: 1; }
.contact .wpcf7 .wpcf7-form-control:focus { outline: none; border-color: var(--wp--preset--color--primaire); box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
.contact .wpcf7 .wpcf7-not-valid { border-color: #E5484D; }
.contact .wpcf7 .wpcf7-not-valid-tip { margin-top: 6px; font-size: 14px; font-weight: 600; color: #FF8A8E; }

/* piège à robots : hors écran (pas display: none, que certains robots repèrent) */
.contact .contact-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* accord */
.contact .contact-accord .wpcf7-list-item { margin: 0; }
.contact .contact-accord label { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; font-weight: 400; line-height: 1.5; color: #CFCFCF; cursor: pointer; }
.contact .contact-accord input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--wp--preset--color--primaire); }
.contact .contact-accord a { color: var(--wp--preset--color--primaire); }

/* envoi */
.contact .contact-envoi { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.contact .wpcf7 .contact-bouton { min-height: 58px; margin: 0; padding: 0 40px; border: 0; border-radius: 30px; background: var(--wp--preset--color--primaire);
	font: inherit; font-size: 18px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); cursor: pointer; }
.contact .wpcf7 .contact-bouton:hover { filter: brightness(1.08); }
.contact .wpcf7 .contact-bouton:focus-visible { outline: 2px solid var(--wp--preset--color--texte); outline-offset: 3px; }
.contact .wpcf7 .contact-bouton:disabled { opacity: .5; cursor: not-allowed; filter: none; }
.contact .wpcf7-spinner { margin: 0; background-color: var(--wp--preset--color--primaire); }

/* message de résultat */
.contact .wpcf7 form .wpcf7-response-output { margin: 22px 0 0; padding: 14px 18px; border: 1px solid var(--wp--preset--color--bordure); border-left: 4px solid var(--wp--preset--color--primaire);
	border-radius: 12px; background: #262626; font-size: 16px; color: var(--wp--preset--color--texte); }
.contact .wpcf7 form.sent .wpcf7-response-output { border-color: #2E6B47; border-left-color: #3DD68C; }
.contact .wpcf7 form.invalid .wpcf7-response-output, .contact .wpcf7 form.unaccepted .wpcf7-response-output,
.contact .wpcf7 form.failed .wpcf7-response-output, .contact .wpcf7 form.spam .wpcf7-response-output { border-color: #6B2E30; border-left-color: #E5484D; }

@media (max-width: 1100px) {
	.contact .contact-grille { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.contact .contact-carte { order: -1; }  /* le formulaire d'abord, les informations ensuite */
}
@media (max-width: 781px) {
	.contact-haut { padding-top: 18px; }
	.contact-contenu { padding-bottom: 60px; }
	.contact .contact-carte { padding: 24px 18px 26px; }
	.contact .contact-champs { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.contact .contact-intro { font-size: 17px; }
	.contact .wpcf7 .contact-bouton { width: 100%; }
}
/* ==========================================================================
   Royale Digital Keys — pages d'aide : Comment acheter, Centre d'aide
   Modèles page-comment-acheter.html / page-aide.html ; contenu construit par build/pages_aide.py.
   Questions : .faq-question de composants.css ; boutons : .b-plein / .b-contour.
   ========================================================================== */
.aide-haut { padding: 28px var(--rdk-marge) 0; }
.aide .fil-ariane { margin: 0 0 22px; font-size: 18px; color: var(--wp--preset--color--texte); }
.aide .fil-ariane a { color: var(--wp--preset--color--texte); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.aide .fil-ariane .woocommerce-breadcrumb > a:first-child::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 10px; vertical-align: -2px;
	background: currentColor; -webkit-mask: var(--icone-maison) center / contain no-repeat; mask: var(--icone-maison) center / contain no-repeat; }
/* deux classes : bat « :root :where(.is-layout-flow) > :last-child { margin-block-end: 0 } » (0,2,0) */
.aide-haut .aide-page-titre { margin: 0 0 24px; font-size: 48px; font-weight: 800; line-height: 1.1; }
.aide-contenu { padding: 0 var(--rdk-marge) 100px; }
body .aide .aide-contenu > * { max-width: none; margin-left: 0; margin-right: 0; }

.aide .aide-intro { max-width: 820px; margin: 0 0 44px; font-size: 20px; line-height: 1.6; color: #DADADA; }
.aide .aide-titre { margin: 0 0 26px; font-size: 34px; font-weight: 800; line-height: 1.2; }
.aide .aide-bloc { margin-top: 90px; }

/* cartes */
.aide .aide-carte { position: relative; margin: 0; padding: 28px 30px; border-radius: 20px; background: var(--wp--preset--color--fond-alt); }
.aide .aide-carte h3 { margin: 0 0 10px; font-size: 21px; font-weight: 800; line-height: 1.3; color: var(--wp--preset--color--texte); }
.aide .aide-carte p { margin: 0; font-size: 16px; line-height: 1.6; color: #CFCFCF; }
.aide .aide-carte p a { color: var(--wp--preset--color--primaire); }
.aide .aide-carte strong { color: var(--wp--preset--color--texte); }

/* étapes numérotées (Comment acheter) */
.aide .aide-etapes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; counter-reset: etape; }
.aide .aide-etape { padding-top: 88px; counter-increment: etape; }
.aide .aide-etape::before { content: counter(etape); position: absolute; left: 30px; top: 28px; display: flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 50%; background: var(--wp--preset--color--primaire); font-size: 20px; font-weight: 800; color: var(--wp--preset--color--sur-primaire); }

/* conseils (Comment acheter) */
.aide .aide-grille-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.aide .aide-conseil { border-top: 4px solid var(--wp--preset--color--primaire); }

/* raccourcis (Support) : carte entière cliquable, icône dorée */
.aide .aide-grille-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.aide .aide-raccourci { padding-top: 90px; transition: background-color .15s; }
.aide .aide-raccourci::before { content: ""; position: absolute; left: 30px; top: 28px; width: 44px; height: 44px; border-radius: 50%; background: var(--wp--preset--color--puce); }
.aide .aide-raccourci::after { content: ""; position: absolute; left: 41px; top: 39px; width: 22px; height: 22px; background: var(--wp--preset--color--primaire);
	-webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.aide .aide-raccourci-commandes { --i: var(--icone-commandes); }
.aide .aide-raccourci-cles { --i: var(--icone-cle); }
.aide .aide-raccourci-retours { --i: var(--icone-retour); }
.aide .aide-raccourci-compte { --i: var(--icone-profil); }
:root { --icone-retour: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14L4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 0 1 0 11H11'/%3E%3C/svg%3E"); }
.aide .aide-raccourci h3 a { color: var(--wp--preset--color--texte); text-decoration: none; }
.aide .aide-raccourci h3 a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 20px; }  /* toute la carte est le lien */
.aide .aide-raccourci h3 a::after { content: " →"; color: var(--wp--preset--color--primaire); }
.aide .aide-raccourci:hover { background: #333333; }
.aide .aide-raccourci h3 a:focus-visible { outline: none; }
.aide .aide-raccourci:has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--primaire); outline-offset: 2px; }

/* questions */
.aide .aide-faq > .faq-question { max-width: 980px; margin: 0 0 14px; }
.aide .aide-faq .faq-question summary { font-size: 19px; }
.aide .aide-faq .faq-question > p { font-size: 17px; line-height: 1.65; color: #DADADA; }
.aide .aide-faq .faq-question > p a { color: var(--wp--preset--color--primaire); }
.aide .aide-raccourcis + .aide-faq { margin-top: 80px; }
.aide .aide-faq + .aide-faq { margin-top: 56px; }
.aide .aide-faq + .aide-faq .aide-titre { font-size: 26px; }
.aide .aide-raccourcis + .aide-faq .aide-titre { font-size: 26px; }

/* appel final */
.aide .aide-appel { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 40px; align-items: center; margin-top: 90px; padding: 44px 50px;
	border: 1px solid var(--wp--preset--color--bordure); border-radius: 24px; background: var(--wp--preset--color--fond-alt); }
.aide .aide-appel h2 { grid-column: 1; margin: 0 0 8px; font-size: 32px; font-weight: 800; }
.aide .aide-appel p { grid-column: 1; margin: 0; font-size: 18px; color: #CFCFCF; }
.aide .aide-appel .aide-boutons { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
/* plein et contour : même hauteur (le contour a une bordure, le plein non) */
.aide .aide-boutons .wp-block-button__link { display: inline-flex; align-items: center; box-sizing: border-box; height: 58px; padding-top: 0; padding-bottom: 0; }

@media (max-width: 1100px) {
	.aide .aide-etapes, .aide .aide-grille-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.aide .aide-grille-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.aide .aide-appel { grid-template-columns: minmax(0, 1fr); }
	.aide .aide-appel .aide-boutons { grid-column: 1; grid-row: auto; margin-top: 24px; }
}
@media (max-width: 781px) {
	.aide-haut { padding-top: 18px; }
	.aide .fil-ariane { font-size: 14px; margin-bottom: 18px; }
	.aide-haut .aide-page-titre { font-size: 30px; margin-bottom: 16px; }
	.aide-contenu { padding-bottom: 60px; }
	.aide .aide-intro { font-size: 17px; margin-bottom: 30px; }
	.aide .aide-titre { font-size: 26px; }
	.aide .aide-bloc { margin-top: 60px; }
	.aide .aide-etapes, .aide .aide-grille-3, .aide .aide-grille-4 { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.aide .aide-carte { padding: 22px 20px; }
	.aide .aide-etape { padding: 22px 20px 22px 80px; }
	.aide .aide-etape::before { left: 20px; top: 22px; }
	.aide .aide-raccourci { padding: 22px 20px 22px 84px; }
	.aide .aide-raccourci::before { left: 20px; top: 20px; }
	.aide .aide-raccourci::after { left: 31px; top: 31px; }
	.aide .aide-faq .faq-question summary { font-size: 16px; padding: 18px 20px; }
	.aide .aide-faq .faq-question > p { font-size: 16px; padding: 0 20px 20px; }
	.aide .aide-appel { padding: 28px 22px; }
	.aide .aide-appel h2 { font-size: 26px; }
	.aide .aide-appel p { font-size: 16px; }
}

/* ---------------------------------------------------------------- page Newsletter (messages de l'extension : ?nm=confirmed, unsubscribe…)
   Le message de chaque étape (textes : build/newsletter-reglages.php) : la zone de contenu elle-même devient une carte.
   Sans paramètre, la page affiche le formulaire d'inscription complet de l'extension. */
body .newsletter-page .aide-contenu { box-sizing: border-box; max-width: 760px; margin: 0 var(--rdk-marge) 100px; padding: 36px 40px; border-radius: 24px;
	background: var(--wp--preset--color--fond-alt); font-size: 18px; line-height: 1.6; color: #DADADA; }
.newsletter-page .aide-contenu > * { margin-top: 0; }
.newsletter-page .aide-contenu h2 { margin: 0 0 12px; font-size: 30px; font-weight: 800; color: var(--wp--preset--color--texte); }
.newsletter-page .aide-contenu p { margin: 0 0 16px; }
.newsletter-page .aide-contenu > :last-child { margin-bottom: 0; }
/* body + .tnp-submit : la feuille de l'extension (chargée après le thème) vise .tnp-unsubscribe button.tnp-submit */
.newsletter-page .newsletter-bouton, body .newsletter-page .aide-contenu button.tnp-submit, body .newsletter-page .aide-contenu input.tnp-submit, .newsletter-page .aide-contenu button, .newsletter-page .aide-contenu input[type="submit"] {
	display: inline-flex; align-items: center; min-height: 52px; margin: 6px 0 0; padding: 0 30px; border: 0; border-radius: 30px; background: var(--wp--preset--color--primaire);
	font: inherit; font-size: 17px; font-weight: 700; color: var(--wp--preset--color--sur-primaire); text-decoration: none; cursor: pointer; }
.newsletter-page .newsletter-bouton:hover, body .newsletter-page .aide-contenu .tnp-submit:hover, .newsletter-page .aide-contenu button:hover, .newsletter-page .aide-contenu input[type="submit"]:hover { filter: brightness(1.08); }
/* formulaires de l'extension : inscription (page sans message) et profil (« Manage your subscription ») */
.newsletter-page .tnp-subscription, .newsletter-page .tnp-profile { max-width: none; margin: 0 0 20px; }
body .newsletter-page .aide-contenu .tnp-field { margin: 0 0 16px; }
body .newsletter-page .aide-contenu form label { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 700; color: var(--wp--preset--color--texte); }
body .newsletter-page .aide-contenu form input[type="email"], body .newsletter-page .aide-contenu form input[type="text"], body .newsletter-page .aide-contenu form select {
	box-sizing: border-box; width: 100%; height: 52px; padding: 0 16px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 10px; background: #1B1B1B;
	font: inherit; font-size: 17px; color: var(--wp--preset--color--texte); }
body .newsletter-page .aide-contenu form input:focus { border-color: var(--wp--preset--color--primaire); outline: 0; box-shadow: 0 0 0 1px var(--wp--preset--color--primaire); }
/* sauf l avis « Visible only to administrators » de l extension (fond gris clair en style en ligne) */
.newsletter-page .aide-contenu p:not([style]) a:not(.newsletter-bouton) { color: var(--wp--preset--color--primaire); }
@media (max-width: 781px) {
	body .newsletter-page .aide-contenu { margin-bottom: 60px; padding: 24px 20px; }
	.newsletter-page .aide-contenu h2 { font-size: 24px; }
}
