/* ==========================================================================
   Regon — feuille de style du thème (version ordinateur).
   Valeurs reprises de Giftshopsen : bleu nuit, surfaces, rayons, mouvements. Accent : cyan.
   ========================================================================== */

/* Drapeaux emoji : Windows n'en dessine aucun (il affiche « CM » au lieu de 🇨🇲).
   Police limitée aux drapeaux (unicode-range) : les autres caractères gardent Poppins.
   Twemoji Country Flags (country-flag-emoji-polyfill, MIT ; dessins Twemoji, CC-BY 4.0). */
@font-face {
	font-family: "Twemoji Country Flags";
	src: url("../fonts/TwemojiCountryFlags.woff2") format("woff2");
	unicode-range: U+1F1E6-1F1FF, U+1F3F4, U+E0062-E0063, U+E0065, U+E0067, U+E006C, U+E006E, U+E0073-E0074, U+E0077, U+E007F;
	font-display: swap;
}

:root {
	--rg-navy: #0e1647;
	--rg-navy-dark: #0b113d;
	--rg-navy-deep: #080d2d;
	--rg-surface: linear-gradient(145deg, #0f194f, #09113d);
	--rg-surface-inset: #111a43;
	--rg-surface-hover: #242e5b;
	--rg-border: rgba(255, 255, 255, .10);
	--rg-border-hover: rgba(255, 255, 255, .18);
	--rg-text: #ffffff;
	--rg-text-muted: rgba(255, 255, 255, .75);
	--rg-text-dim: rgba(255, 255, 255, .5);
	--rg-accent: #00d4ff;
	--rg-accent-hover: #33ddff;
	--rg-on-accent: #061233;
	/* Boutons (Catalogue, Acheter, Choisir une option, Ajouter au panier…) : bleu choisi par le client, texte blanc. */
	--rg-btn: #3f9cff;
	--rg-btn-hover: #2b8af0;
	--rg-on-btn: #fff;
	--rg-cashback: #00d4aa;
	--rg-sale: var(--rg-btn); /* Promos : même bleu que les boutons du site. */
	--rg-wish: #ef4444; /* Cœur liste de souhaits : même rouge que le badge du panier. */
	--rg-price-original: #aeb9da;
	--rg-warn: #ffb020;
	--rg-wa: #25d366;
	--rg-radius: 18px;
	--rg-radius-sm: 12px;
	--rg-radius-input: 12px;
	--rg-shadow: 0 20px 45px rgba(3, 8, 35, .35);
	--rg-fast: 160ms;
	--rg-ui: 200ms;
	--rg-ease: cubic-bezier(.23, 1, .32, 1);
	--rg-font: "Twemoji Country Flags", "Poppins", system-ui, sans-serif;
	--rg-font-display: "Anton", "Twemoji Country Flags", "Poppins", sans-serif;
	--rg-container: 1360px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--rg-navy-dark); color: var(--rg-text); font-family: var(--rg-font); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; }
:focus-visible { outline: 2px solid var(--rg-accent); outline-offset: 3px; border-radius: 6px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.rg-skip { position: absolute; left: -999px; top: 8px; background: var(--rg-accent); color: var(--rg-on-accent); padding: 8px 14px; border-radius: 8px; z-index: 100; }
.rg-skip:focus { left: 8px; }
.rg-container { max-width: var(--rg-container); margin: 0 auto; padding: 0 24px; }
.rg-icon { flex: 0 0 auto; }
.rg-muted { color: var(--rg-text-dim); }
.rg-kicker { display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rg-text-dim); }

/* ---------- Boutons ---------- */
.rg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid transparent; font-weight: 600; font-size: 14px; white-space: nowrap; transition: background-color var(--rg-ui) var(--rg-ease), color var(--rg-ui) var(--rg-ease), border-color var(--rg-ui) var(--rg-ease), transform var(--rg-fast) var(--rg-ease); }
.rg-btn-primary, .btn-primary { background: var(--rg-btn); color: var(--rg-on-btn); }
.rg-btn-primary:hover { background: var(--rg-btn-hover); }
.rg-btn-ghost { background: transparent; border-color: var(--rg-border-hover); color: var(--rg-text); }
.rg-btn-ghost:hover { background: rgba(255, 255, 255, .06); border-color: #fff; }
.rg-btn:active { transform: scale(.98); }

/* ---------- Barre promo ---------- */

/* ---------- En-tête ---------- */
.rg-header { position: sticky; top: 0; z-index: 40; background: var(--rg-navy-dark); transition: box-shadow var(--rg-ui) ease; }
.rg-header.is-stuck { box-shadow: 0 10px 30px rgba(3, 8, 35, .45); }
.rg-header-main { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 80px; }
.rg-logo { flex: 0 0 auto; display: flex; align-items: center; }
.rg-logo img { height: 52px; width: auto; }
.rg-logo-text { font-weight: 800; font-size: 22px; letter-spacing: .02em; }
.rg-header-middle { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 16px; }
.rg-header-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.rg-iconbtn { position: relative; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: #fff; transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-iconbtn:hover { background: var(--rg-surface-inset); }
.rg-cart-count { position: absolute; top: 2px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--rg-btn); color: var(--rg-on-btn); font-size: 11px; font-weight: 800; display: grid; place-items: center; }

/* Recherche */
.rg-search { position: relative; flex: 1 1 auto; min-width: 0; max-width: 720px; }
.rg-search > .rg-icon-search { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--rg-text-muted); pointer-events: none; }
.rg-search input[type="search"] { width: 100%; height: 44px; padding: 0 44px 0 48px; border-radius: 999px; background: var(--rg-surface-inset); border: 1px solid var(--rg-border); color: #fff; font: inherit; font-size: 16px; appearance: none; transition: border-color var(--rg-fast) var(--rg-ease); }
.rg-search input::placeholder { color: var(--rg-text-muted); }
.rg-search input:hover { border-color: var(--rg-border-hover); }
.rg-search input:focus { outline: none; border-color: var(--rg-accent); box-shadow: 0 0 0 3px rgba(0, 212, 255, .18); }
.rg-search input::-webkit-search-cancel-button { appearance: none; }
.rg-search-clear { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 8px; border: 0; background: transparent; color: var(--rg-text-muted); display: grid; place-items: center; }
.rg-search-clear:hover { background: var(--rg-surface-hover); color: #fff; }
.rg-search.is-loading > .rg-icon-search { animation: rg-pulse 1s infinite; }
@keyframes rg-pulse { 50% { opacity: .35; } }
.rg-search-panel { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: var(--rg-surface-inset); border: 1px solid var(--rg-border); border-radius: 20px; box-shadow: var(--rg-shadow); padding: 0; max-height: min(70vh, 560px); overflow-y: auto; z-index: 50; }
.rg-search-group:not(.rg-search-products) { padding: 8px; border-bottom: 1px solid var(--rg-border); }
.rg-search-label { display: block; padding: 6px 10px 4px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rg-text-dim); }
.rg-search-cat { display: flex; align-items: center; justify-content: space-between; padding: 9px 10px; border-radius: 8px; font-weight: 500; }
.rg-search-cat small { color: var(--rg-text-dim); }
.rg-search-cat:hover { background: var(--rg-surface-hover); }
/* Résultats façon Gameseal : une ligne par produit, séparées par un filet. */
.rg-search-products { padding: 0; }
.rg-search-item { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 12px; border-bottom: 1px solid var(--rg-border); }
.rg-search-item:hover { background: var(--rg-surface-hover); }
.rg-search-item.is-oos { opacity: .55; }
.rg-search-media { position: relative; display: block; width: 96px; aspect-ratio: 16 / 11; }
.rg-search-thumb { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; background: #fff; }
.rg-search-platform { position: absolute; top: -6px; right: -6px; width: 22px; height: 22px; padding: 2px; border-radius: 50%; background: #fff; object-fit: cover; /* cover comme sur les cartes : le logo remplit le rond (contain laissait un anneau autour des logos rectangulaires). */ box-shadow: 0 1px 4px rgba(0, 0, 0, .35); }
.rg-search-media .rg-search-platform { height: 22px; max-width: none; } /* Sur les pages boutique, `.woocommerce img { height: auto }` écrasait la hauteur : rond devenu ovale. */
.rg-search-discount { position: absolute; left: -4px; bottom: 6px; padding: 2px 6px; border-radius: 4px; background: var(--rg-sale); color: #fff; font-size: 12px; font-weight: 800; line-height: 1.3; }
.rg-search-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rg-search-body strong { font-weight: 500; font-size: 15px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rg-search-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.rg-search-type { padding: 2px 12px; border-radius: 999px; background: #ffc531; color: #1a1a1a; font-size: 12px; font-weight: 600; }
.rg-search-region { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--rg-accent); }
.rg-search-region img { border-radius: 2px; }
.rg-search-prices { display: flex; flex-direction: column; align-items: flex-end; text-align: right; white-space: nowrap; }
.rg-search-prices s { font-size: 12px; color: var(--rg-text-dim); }
.rg-search-prices small { font-size: 11px; color: var(--rg-text-muted); }
.rg-search-prices b { font-size: 18px; font-weight: 700; color: #fff; }
.rg-search-prices .rg-search-oos { font-size: 14px; color: var(--rg-text-muted); }
.rg-search-all { display: block; text-align: center; padding: 14px; font-weight: 600; font-size: 14px; color: #fff; }
.rg-search-all:hover { background: var(--rg-surface-hover); }
.rg-search-empty { margin: 0; padding: 14px 10px; color: var(--rg-text-muted); font-size: 14px; }

/* Sélecteur pays / devise (Craft Popup) */
.rg-country .rcsp-trigger.rcsp-sc-badge--light { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 12px !important; background: transparent !important; border: 1px solid transparent !important; border-radius: 12px !important; color: #fff !important; font-family: inherit; font-weight: 600; font-size: 13px; }
.rg-country .rcsp-trigger:hover { background: var(--rg-surface-inset) !important; }
.rg-country .rcsp-sc-flag { font-size: 22px; line-height: 1; }
/* Drapeaux de l'extension Craft (barre, fenêtre pays, checkout), qui impose sa propre police. */
.rcsp-sc-flag, .rcsp-trigger-flag, .rcsp-country-flag, .rccs-geo-flag { font-family: "Twemoji Country Flags", var(--rg-font) !important; }
.rg-country .rcsp-sc-sep { opacity: .35; }
.rg-country .rcsp-sc-cur { color: var(--rg-text-muted) !important; font-size: 11px; font-weight: 600; }
.rg-country .rcsp-sc-content-mobile { display: none !important; }
.rg-lang { display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px; border-radius: 12px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-decoration: none; transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-lang:hover { background: var(--rg-surface-inset); }
.rg-lang .rg-icon { color: var(--rg-text-muted); }

/* Navigation */
.rg-nav { position: relative; z-index: 30; background: var(--rg-navy-dark); border-bottom: 1px solid var(--rg-border); }
.rg-nav-inner { display: flex; align-items: center; gap: 8px; height: 56px; }
.rg-catalogue { position: relative; }
.rg-catalogue-btn { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 16px; border: 0; border-radius: 10px; background: var(--rg-btn); color: var(--rg-on-btn); font-weight: 700; font-size: 15px; transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-catalogue-btn:hover, .rg-catalogue.is-open .rg-catalogue-btn { background: var(--rg-btn-hover); }
.rg-catalogue.is-open .rg-catalogue-btn .rg-icon-chevron { transform: rotate(180deg); }
.rg-catalogue-panel { position: absolute; top: calc(100% + 10px); left: 0; z-index: 50; width: 1050px; max-width: calc(100vw - 48px); background: var(--rg-surface-inset); border: 1px solid var(--rg-border); border-radius: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, .45); }
.rg-mega { border-radius: 16px; overflow: hidden; }

/* Pont invisible dans l'espace de 10 px entre le bouton et le panneau : le survol ne se coupe pas. */
.rg-catalogue-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
/* Méga-menu façon Gameseal : catégories | sous-catégories | produit le plus vendu */
.rg-mega { display: grid; grid-template-columns: 310px minmax(0, 1fr) 210px; /* 310 px : « Abonnements & Logiciels » tient avec sa flèche. */ min-height: 420px; }
.rg-mega-roots { list-style: none; margin: 0; padding: 12px; border-right: 1px solid var(--rg-border); display: flex; flex-direction: column; gap: 2px; }
.rg-mega-root { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; font-weight: 600; font-size: 15px; color: #fff; }
.rg-mega-root span { flex: 1 1 auto; white-space: nowrap; }
.rg-mega-root .rg-icon-chevron { flex: 0 0 auto; margin-left: auto; transform: rotate(-90deg); opacity: .6; }
/* Flèches alignées au bout : chaque ligne prend toute la largeur de la colonne. */
.rg-mega-roots > li { display: block; width: 100%; }
.rg-mega-root { width: 100%; box-sizing: border-box; }
.rg-mega-root.is-active, .rg-mega-root:hover { background: var(--rg-surface-hover); }
.rg-mega-all { display: block; margin-top: auto; padding: 14px; font-weight: 600; font-size: 14px; color: var(--rg-text-muted); }
.rg-mega-all:hover { color: #fff; }
.rg-mega-subs { padding: 22px 24px; min-width: 0; }
.rg-mega-subhead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding: 0 10px; }
.rg-mega-subhead strong { font-size: 16px; }
.rg-mega-subhead a { font-size: 13px; color: var(--rg-text-muted); }
.rg-mega-subhead a:hover { color: #fff; }
.rg-mega-links { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 16px; }
.rg-mega-links li { break-inside: avoid; }
.rg-mega-links a { display: block; padding: 9px 10px; border-radius: 10px; font-size: 14px; color: var(--rg-text-muted); }
.rg-mega-links a:hover, .rg-mega-links a:focus-visible, .rg-mega-links a.is-current { background: var(--rg-surface-hover); color: #fff; }
.rg-mega-product { align-self: start; margin: 22px 20px 22px 0; display: flex; flex-direction: column; gap: 8px; }
.rg-mega-product-img { display: block; aspect-ratio: 16 / 11; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--rg-border); }
.rg-mega-product-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--rg-ui) var(--rg-ease); }
.rg-mega-product:hover .rg-mega-product-img img { transform: scale(1.04); }
.rg-mega-product strong { font-size: 14px; line-height: 1.35; }
.rg-mega-product-price { font-weight: 700; font-size: 17px; color: #fff; }
.rg-menu { list-style: none; margin: 0 0 0 8px; padding: 0; display: flex; align-items: center; gap: 4px; }
.rg-menu > li > a { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px; border-radius: 10px; font-weight: 600; font-size: 15px; color: #fff; transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-menu > li > a:hover, .rg-menu > li.current-menu-item > a { background: var(--rg-surface-inset); }
.rg-menu > li.rg-tag > a::after { content: "Tendance"; background: var(--rg-accent); color: var(--rg-on-accent); font-size: 10px; font-weight: 800; padding: 3px 7px; border-radius: 6px; text-transform: uppercase; }

/* ---------- Accueil ---------- */
.rg-home { padding: 24px 24px 24px; }
/* Carrousel façon Eneba : panneaux inclinés (skewX) ; l'image est redressée à l'intérieur.
   La piste déborde de chaque côté et la section la coupe : les bords extérieurs restent droits. */
/* Hauteur fixe de 380 px (demande client) : les grands visuels 2,8:1 sont un peu rognés sur les côtés. */
.rg-hero { --rg-hero-skew: -8deg; --rg-hero-gap: 14px; position: relative; margin-bottom: 28px; overflow: hidden; border-radius: var(--rg-radius); }
.rg-hero-track { display: flex; gap: var(--rg-hero-gap); height: 370px; margin: 0 -28px; }
/* Bureau : bannière plus large que le contenu, comme Gameseal (jusqu'à 1660 px, 24 px de marge sur les côtés). */
@media (min-width: 821px) { .rg-hero { --rg-hero-w: min(1660px, calc(100vw - 48px)); width: var(--rg-hero-w); margin-left: calc(50% - var(--rg-hero-w) / 2); } }
.rg-hero-panel { position: relative; flex: 0 0 var(--rg-hero-side, 220px); min-width: 0; border-radius: 18px; overflow: hidden; transform: skewX(var(--rg-hero-skew)); background: var(--rg-navy-deep); cursor: pointer; transition: flex-grow .6s var(--rg-ease), flex-basis .6s var(--rg-ease), filter var(--rg-fast) var(--rg-ease); }
.rg-hero-panel.is-active { flex: 1 1 0; cursor: pointer; }
.rg-hero-panel:not(.is-active):hover { filter: brightness(1.08); }
.rg-hero-media { position: absolute; inset: 0 -40px; transform: skewX(calc(-1 * var(--rg-hero-skew))); }
.rg-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .5s var(--rg-ease); }
.rg-hero-img-main { opacity: 0; }
.rg-hero-panel.is-active .rg-hero-img-main { opacity: 1; }
.rg-hero-panel.is-active .rg-hero-img-side { opacity: 0; }
.rg-hero-panel:focus-visible { outline: 3px solid var(--rg-accent); outline-offset: -3px; }
.rg-hero-dots { display: none; }

.rg-brands { position: relative; display: flex; align-items: center; gap: 8px; margin: 0 0 36px; }
.rg-brands ul { flex: 1 1 auto; list-style: none; margin: 0; padding: 4px 0; display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.rg-brands ul::-webkit-scrollbar { display: none; }
.rg-brands li { flex: 0 0 auto; scroll-snap-align: start; }
.rg-brands a { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 104px; padding: 8px 4px; border-radius: var(--rg-radius-sm); font-size: 11px; font-weight: 500; text-align: center; line-height: 1.25; transition: background-color var(--rg-fast) var(--rg-ease); }
@media (hover: hover) { .rg-brands a:hover { background: var(--rg-surface-inset); } } /* Sur téléphone, le survol restait affiché après le toucher. */
.rg-brand-img { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; transition: transform var(--rg-ui) var(--rg-ease); }
.rg-brand-img svg { width: 100%; height: 100%; fill: currentColor; }
.rg-brand-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
@media (hover: hover) { .rg-brands a:hover .rg-brand-img { transform: translateY(-3px); } }
.rg-brands-arrow { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; display: grid; place-items: center; }
.rg-brands-arrow:hover { border-color: var(--rg-border-hover); }
.rg-brands-prev .rg-icon { transform: rotate(90deg); }
.rg-brands-next .rg-icon { transform: rotate(-90deg); }

/* Rangées de produits de l'accueil : 5 cartes visibles, défilement horizontal, flèche ronde de chaque côté. */
.rg-rail { position: relative; }
.rg-rail ul.products.rg-rail-track { display: flex !important; gap: 20px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.rg-rail ul.products.rg-rail-track::-webkit-scrollbar { display: none; }
.rg-rail ul.products.rg-rail-track > li.product { flex: 0 0 calc((100% - 80px) / 5) !important; width: auto !important; scroll-snap-align: start; }
.rg-rail-arrow { position: absolute; top: 84px; z-index: 2; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(60, 64, 80, .75); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .35); transition: transform var(--rg-fast) var(--rg-ease); }
/* Survol : la flèche gonfle légèrement, sans changer de couleur. */
.rg-rail-arrow:hover { transform: scale(1.12); }
.rg-rail-arrow:active { transform: scale(.96); }
.rg-rail-arrow[hidden] { display: none; }
.rg-rail-prev { left: -14px; }
.rg-rail-next { right: -14px; }
.rg-rail-prev .rg-icon { transform: rotate(90deg); }
.rg-rail-next .rg-icon { transform: rotate(-90deg); }

.rg-banner { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: end; min-height: 340px; margin: 0 0 48px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: linear-gradient(120deg, #141f63 0%, #0d1750 45%, #0a1140 100%); }
.rg-banner.has-photo { background: var(--rg-banner-bg) center / cover no-repeat; }
.rg-banner.has-photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 13, 45, .95) 0%, rgba(8, 13, 45, .7) 50%, rgba(8, 13, 45, .15) 100%); }
.rg-banner-games { background: linear-gradient(120deg, #0f2a5a 0%, #0c1b4e 50%, #0a1140 100%); }
.rg-banner::after { content: ""; position: absolute; right: 30%; top: -40%; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(0, 212, 255, .22), transparent 65%); pointer-events: none; }
.rg-banner-body { position: relative; z-index: 1; align-self: center; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 44px 48px; }
.rg-banner-title { font-family: var(--rg-font-display); font-weight: 400; font-size: clamp(36px, 3.6vw, 54px); line-height: 1.02; letter-spacing: .01em; text-transform: uppercase; max-width: 14ch; }
.rg-banner-body p { margin: 0; color: var(--rg-text-muted); font-size: 15px; max-width: 46ch; }
.rg-banner-body .rg-btn { margin-top: 8px; min-height: 48px; padding: 0 24px; font-size: 15px; }
.rg-banner-visual { position: relative; z-index: 1; height: 100%; min-height: 340px; display: flex; align-items: flex-end; justify-content: center; padding-top: 16px; }
.rg-banner-visual img { position: absolute; width: 230px; height: 230px; object-fit: cover; border-radius: 14px; box-shadow: 0 30px 60px rgba(0, 0, 0, .55); }
.rg-banner-visual img:nth-child(1) { transform: translateX(-120px) rotate(-10deg); z-index: 1; }
.rg-banner-visual img:nth-child(2) { transform: translateY(-10px) scale(1.12); z-index: 3; }
.rg-banner-visual img:nth-child(3) { transform: translateX(120px) rotate(10deg); z-index: 2; }
.rg-banner-visual img { position: static; width: auto; max-height: 340px; height: auto; object-fit: contain; border-radius: 0; box-shadow: none; filter: drop-shadow(0 24px 40px rgba(0, 0, 0, .6)); transform: none; }
.rg-banner-visual img:nth-child(n) { transform: none; }
.rg-banner-roblox.has-photo::before { background: linear-gradient(90deg, rgba(8, 13, 45, .96) 0%, rgba(8, 13, 45, .75) 55%, rgba(8, 13, 45, .3) 100%); }

.rg-newsletter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; padding: 0 0 28px; margin-bottom: 28px; border-bottom: 1px solid var(--rg-border); }
.rg-newsletter-title { font-size: 22px; color: #fff; margin-bottom: 6px; }
.rg-newsletter p { margin: 0; }
.rg-newsletter-form form, .rg-newsletter-form .wp-block-jetpack-subscriptions__container form { display: flex; gap: 10px; }
.rg-newsletter-form input[type="email"] { flex: 1; min-height: 48px; }
.rg-newsletter-form button, .rg-newsletter-form input[type="submit"] { flex: 0 0 auto; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 0; background: var(--rg-btn); color: var(--rg-on-btn); font: inherit; font-weight: 700; }
.rg-newsletter-form p, .rg-newsletter-form label { margin: 0; }

.rg-section { margin: 0 0 48px; }
.rg-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.rg-section-title { font-size: 26px; }
.rg-section-title-display { font-family: var(--rg-font-display); font-weight: 400; font-size: 40px; letter-spacing: .01em; text-transform: uppercase; }
.rg-section-sub { margin: 4px 0 0; color: var(--rg-text-muted); font-size: 14px; }
.rg-see-all { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--rg-border-hover); font-weight: 600; font-size: 13px; transition: border-color var(--rg-fast) var(--rg-ease), background-color var(--rg-fast) var(--rg-ease); }
.rg-see-all:hover { border-color: #fff; background: rgba(255, 255, 255, .05); }

.rg-pay-logos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
/* Pastilles rectangulaires de taille fixe (les SVG sans largeur propre se tassaient) ; retour à la ligne si la place manque. */
.rg-pay-logos li { width: 70px; height: 36px; padding: 5px 8px; border-radius: 8px; background: #fff; display: grid; place-items: center; }
.rg-pay-logos li { overflow: hidden; }
.rg-pay-logos li img { display: block; width: 100% !important; height: 26px !important; max-width: 100%; object-fit: contain; } /* Hauteur en px : un pourcentage ne se calcule pas dans la grille ; !important contre les 150 px des images de la médiathèque. */
/* Logos agrandis du pied de page (« Payez avec »). */
.rg-pay-logos-lg { gap: 12px; }
.rg-pay-logos-lg { gap: 8px; }
/* Pastilles rectangulaires, plus petites (modèle Giftshopsen, un peu plus larges). */
.rg-pay-logos-lg li { width: 64px; height: 34px; padding: 4px 8px; border-radius: 7px; }
.rg-pay-logos-lg li img { height: 24px !important; }

/* ---------- Grille et cartes produit ---------- */
ul.products.rg-grid, .rg-shop ul.products, .rg-related ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rg-card { --rg-card-action: 58px; position: relative; display: flex; flex-direction: column; margin: 0; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface-inset); overflow: hidden; transition: border-color var(--rg-ui) ease; }
.rg-card:hover, .rg-card:has(:focus-visible) { border-color: var(--rg-accent); }
/* Format 16/11 des vignettes de la prod : la carte cadeau se voit en entier (montant, région). */
.rg-card-media { position: relative; display: block; aspect-ratio: 16 / 11; background: var(--rg-navy-deep); border-radius: var(--rg-radius) var(--rg-radius) 0 0; overflow: hidden; } /* Arrondi propre : le calque composé (translateZ) échappait au découpage de la carte, d'où des coins blancs. */
.rg-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--rg-ui) var(--rg-ease); }
.rg-card:hover .rg-card-media img { transform: scale(1.03); }
.rg-card-oos .rg-card-media img { filter: saturate(.25) brightness(.75); }
.rg-badge { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 5px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .03em; line-height: 1; }
.rg-badge-oos { background: var(--rg-warn); color: #1a1200; }
.rg-badge-sale { background: var(--rg-sale); color: #fff; left: auto; right: 12px; }
/* Panneau : débordement négatif de la hauteur du bouton, puis glissement vers le haut au survol (mécanique Giftshopsen). */
.rg-card-panel { position: relative; z-index: 1; background: var(--rg-surface-inset); margin-bottom: calc(var(--rg-card-action) * -1); transition: transform var(--rg-ui) var(--rg-ease); }
.rg-card:hover .rg-card-panel, .rg-card:has(:focus-visible) .rg-card-panel { transform: translateY(calc(var(--rg-card-action) * -1)); }
.rg-cashback { display: block; padding: 12px 16px 0; font-size: 12px; line-height: 1.35; font-weight: 700; color: var(--rg-cashback); } /* Bloc (pas flex) : le texte revient à la ligne normalement sur les cartes étroites. */
.rg-card-body { display: flex; flex-direction: column; gap: 6px; padding: 12px 16px 14px; }
.rg-card-title { font-size: 14px; font-weight: 600; line-height: 1.35; min-height: 2.7em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rg-card-title a { transition: color var(--rg-fast) ease; }
.rg-card-title a:hover { color: var(--rg-accent); }
.rg-region { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: rgba(255, 255, 255, .9); }
.rg-region img { width: 18px !important; height: 13px !important; max-width: none !important; border-radius: 2px; object-fit: cover; }
.rg-card-price { font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; }
.rg-card-price del { color: var(--rg-price-original); font-weight: 400; font-size: 13px; margin-right: 6px; }
.rg-card-price ins { text-decoration: none; color: var(--rg-sale); }
.rg-card-action { height: var(--rg-card-action); padding: 2px 16px 12px; opacity: 0; transition: opacity var(--rg-fast) ease; }
.rg-card:hover .rg-card-action, .rg-card:has(:focus-visible) .rg-card-action { opacity: 1; }
.rg-card-action { display: flex; justify-content: center; }
/* Bouton de carte comme sur regoncraft.com : pilule centrée, largeur du texte, 44 px de haut. */
.rg-card-btn { width: 100%; min-height: 44px; padding: 0 18px; border-radius: 30px; font-size: 13px; font-weight: 500; }
.rg-card-btn.loading { opacity: .6; pointer-events: none; }
.rg-card-btn:not(.loading)::before { content: none !important; display: none !important; } /* Pseudo-élément vide ajouté par une extension : il décalait le texte. */
.rg-card-btn.added::after { content: " ✓"; }
.rg-card .added_to_cart { display: none; }

/* ---------- Vitrines de catégories ---------- */
.rg-cat-grid { display: grid; gap: 20px; }
.rg-cat-grid-3 { grid-template-columns: repeat(3, 1fr); }
.rg-cat-grid-2 { grid-template-columns: repeat(2, 1fr); }
.rg-cat-card { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; align-items: stretch; min-height: 300px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); overflow: hidden; background: var(--rg-surface); transition: transform var(--rg-ui) var(--rg-ease), border-color var(--rg-ui) var(--rg-ease); }
.rg-cat-card:hover { transform: translateY(-3px); border-color: var(--rg-border-hover); }
.rg-cat-card.has-bg { background: var(--rg-cat-bg) center / cover no-repeat; }
.rg-cat-card.has-bg::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 13, 45, .95), rgba(8, 13, 45, .55) 60%, rgba(8, 13, 45, .25)); }
.rg-cat-ps { background: linear-gradient(135deg, #0a0f2e, #0b2a7a 70%, #0b3aa5); }
.rg-cat-xbox { background: linear-gradient(135deg, #061a0f, #0b4a22 70%, #107c2f); }
.rg-cat-nintendo { background: linear-gradient(135deg, #2a0608, #7a0c12 70%, #b0141c); }
.rg-cat-body { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 28px 8px 28px 28px; }
.rg-cat-title { font-family: var(--rg-font-display); font-weight: 400; font-size: clamp(26px, 2.2vw, 34px); line-height: 1.05; letter-spacing: .01em; text-transform: uppercase; }
.rg-cat-text { color: var(--rg-text-muted); font-size: 14px; }
.rg-cat-body .rg-btn { margin-top: auto; min-height: 42px; padding: 0 18px; font-size: 13px; }
.rg-cat-visual { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: flex-end; }
.rg-cat-visual img { width: 100%; height: 100%; max-height: 300px; object-fit: contain; object-position: right bottom; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .55)); transition: transform var(--rg-ui) var(--rg-ease); }
.rg-cat-card:hover .rg-cat-visual img { transform: scale(1.04); }
.rg-cat-grid-2 .rg-cat-card { min-height: 280px; }

/* ---------- À propos ---------- */
.rg-about { text-align: center; max-width: 820px; margin: 0 auto 48px; padding: 36px 24px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-about-title { font-size: 30px; }
.rg-about-sub { margin: 8px 0 18px; color: var(--rg-accent); font-weight: 600; }
.rg-about-text { margin: 0; color: var(--rg-text-muted); font-size: 14px; line-height: 1.7; }

/* ---------- Fiche produit ---------- */
.rg-pdp { padding: 18px 24px 24px; }
.rg-shop > .rg-pdp { padding-bottom: 0; }
.rg-breadcrumb { font-size: 13px; color: var(--rg-text-muted); margin-bottom: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rg-breadcrumb a:hover { color: #fff; }
.rg-bc-sep { color: var(--rg-text-dim); }
/* Proportions de la galerie reprises de la prod (Blocksy > Produit unique > Galerie du produit) :
   galerie 46 % de la zone galerie + infos, image principale 16/9, miniatures verticales 100 px en 1/1 sans espacement. */
.rg-pdp-grid { display: grid; grid-template-columns: minmax(0, 46fr) minmax(0, 54fr) 360px; gap: 28px; align-items: start; }
.rg-pdp-media { position: sticky; top: 20px; }
.rg-pdp-media .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0; border-radius: var(--rg-radius); overflow: hidden; background: #fff; }
.rg-pdp-media .woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
/* Galerie : image principale, puis les miniatures en rangée dessous (modèle Gameseal, placées en bas), défilement horizontal. */
.rg-pdp-media .woocommerce-product-gallery:has(.flex-control-thumbs) { display: flex; flex-direction: column; overflow: visible; background: transparent; }
.rg-pdp-media .woocommerce-product-gallery:has(.flex-control-thumbs) > .flex-viewport { border-radius: var(--rg-radius); overflow: hidden; background: #fff; }
.rg-pdp-media .flex-control-thumbs { display: flex; gap: 10px; margin: 18px 0 0 !important; padding: 2px !important; /* !important : la feuille WooCommerce (.woocommerce div.product div.images .flex-control-thumbs) remet margin 0. */ list-style: none; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
.rg-pdp-media .flex-control-thumbs::-webkit-scrollbar { display: none; }
/* !important : WooCommerce impose width: 25% et float: left aux miniatures. */
.rg-pdp-media .flex-control-thumbs li { flex: 0 0 calc((100% - 32px) / 5); width: auto !important; float: none !important; margin: 0 !important; scroll-snap-align: start; }
.rg-pdp-media .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 16 / 11; object-fit: cover; border-radius: 8px; border: 2px solid transparent; opacity: .6; cursor: pointer; transition: opacity var(--rg-fast) var(--rg-ease), border-color var(--rg-fast); }
.rg-pdp-media .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--rg-btn); }
/* Visionneuse plein écran (PhotoSwipe) : bouton loupe discret, grande image cliquable. */
.rg-pdp-media .woocommerce-product-gallery__trigger { top: 12px; right: 12px; left: auto; width: 40px; height: 40px; border-radius: 50%; background: rgba(8, 13, 45, .72); color: #fff; z-index: 5; opacity: 0; transition: opacity var(--rg-fast) var(--rg-ease); }
.rg-pdp-media .woocommerce-product-gallery:hover .woocommerce-product-gallery__trigger, .rg-pdp-media .woocommerce-product-gallery__trigger:focus-visible { opacity: 1; }
.rg-pdp-media .woocommerce-product-gallery__trigger::before { border-color: #fff; }
.rg-pdp-media .woocommerce-product-gallery__trigger::after { background: #fff; }
.rg-pdp-media .woocommerce-product-gallery__image a { cursor: zoom-in; }
.pswp { z-index: 100000; }
.pswp__bg { background: rgba(5, 8, 30, .96); }
.pswp__caption__center { text-align: center; font-family: var(--rg-font); }
.rg-pdp-media .flex-control-thumbs img:hover { opacity: 1; }
.rg-pdp-info { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.rg-pill { display: inline-flex; align-items: center; width: fit-content; height: 26px; padding: 0 12px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.rg-pill-cashback { background: rgba(0, 212, 170, .15); color: var(--rg-cashback); }
.rg-pdp-title { font-size: 30px; }
.rg-pdp-rating .woocommerce-product-rating { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--rg-text-muted); }
.rg-pdp-rating .star-rating { color: var(--rg-warn); }
.rg-pdp-short { color: var(--rg-text-muted); font-size: 14px; }
.rg-pdp-short p { margin: 0; }

/* Cartes d'information (plateforme, région, type) */
.rg-info-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rg-info-card { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: var(--rg-radius-sm); border: 1px solid var(--rg-border); background: var(--rg-surface-inset); }
.rg-info-type { grid-column: 1 / -1; }
.rg-info-icon { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .06); display: grid; place-items: center; color: var(--rg-accent); overflow: hidden; }
.rg-info-icon img { width: 28px; height: 20px; object-fit: cover; border-radius: 3px; }
.rg-info-icon svg { width: 22px; height: 22px; }
.rg-info-body { display: flex; flex-direction: column; gap: 3px; font-size: 13.5px; color: var(--rg-text-muted); }
.rg-info-body strong { color: #fff; font-size: 14px; }
.rg-info-link { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rg-info-link:hover { color: var(--rg-accent); }

/* Sélecteur de type (Carte cadeau / Recharge directe) de Craft Upsell */

/* Variantes (Craft Sticky Bar) : recharges avec quantité de diamants, UC… */
.rg-pdp-options .csb-variations-wrap { margin-top: 6px; }
.rg-pdp-options .csb-var-label { display: block; color: var(--rg-text-dim) !important; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.rg-pdp-options .csb-variations-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important; gap: 10px !important; }
.rg-pdp-options .csb-var-card { display: flex !important; align-items: center; gap: 12px; padding: 10px 12px !important; min-height: 64px; border: 1px solid var(--rg-border) !important; border-radius: var(--rg-radius-sm) !important; background: var(--rg-surface-inset) !important; color: #fff !important; box-shadow: none !important; cursor: pointer; transition: border-color var(--rg-fast) ease, background-color var(--rg-fast) ease; }
.rg-pdp-options .csb-var-card:hover { border-color: var(--rg-border-hover) !important; }
.rg-pdp-options .csb-var-card.csb-var-selected, .rg-pdp-options .csb-var-card.is-selected, .rg-pdp-options .csb-var-card.active { border: 2px solid var(--rg-accent) !important; background: rgba(0, 212, 255, .1) !important; }
.rg-pdp-options .csb-var-img-wrap { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 8px; overflow: hidden; background: #fff; }
.rg-pdp-options .csb-var-img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.rg-pdp-options .csb-var-info { display: flex; flex-direction: column; gap: 2px; }
.rg-pdp-options .csb-var-name { color: #fff !important; font-weight: 600 !important; font-size: 13.5px !important; }
.rg-pdp-options .csb-var-price { color: var(--rg-accent) !important; font-weight: 600 !important; font-size: 13px !important; }
.rg-pdp-options .csb-var-chk-wrap { margin-left: auto; }
.rg-pdp-options .csb-var-chk { background: var(--rg-btn) !important; color: var(--rg-on-btn) !important; }

/* Champ ID joueur (Craft Sticky Bar) dans le bloc d'achat */
.rg-pdp-cta .csb-field-group { margin: 0 0 12px; }
.rg-pdp-cta .csb-field-label { display: block; margin-bottom: 6px; color: var(--rg-text-dim) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em; text-transform: uppercase; }
.rg-pdp-cta .csb-field-input { width: 100%; min-height: 48px; padding: 0 14px; border-radius: var(--rg-radius-input); border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font: inherit; }
.rg-pdp-cta .csb-field-input:focus { outline: none; border-color: var(--rg-accent); }
.rg-pdp-cta .csb-verify-msg { margin: 6px 0 0; font-size: 12px; color: var(--rg-text-muted); }
.rg-pdp-cta .csb-verify-msg:empty { display: none; }
.rg-pdp-cta .craft-sticky-bar-varwapf-selects { display: none !important; }

/* Sélecteur de région et tuiles de montant (Craft Upsell) */
.rg-pdp-notice:empty { display: none; }
.rg-pdp-notice .cn-notice { background: rgba(0, 212, 255, .08) !important; border: 1px solid rgba(0, 212, 255, .3) !important; border-radius: var(--rg-radius-sm) !important; color: #fff !important; }
.rg-pdp-notice .cn-title { color: #fff !important; }
.rg-pdp-notice .cn-message { color: var(--rg-text-muted) !important; }

/* Bloc d'achat */
.rg-pdp-buy { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; padding: 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); box-shadow: var(--rg-shadow); }
.rg-pdp-price .price { font-size: 30px; font-weight: 800; font-variant-numeric: tabular-nums; margin: 0; display: block; }
.rg-pdp-price del { font-size: 16px; color: var(--rg-price-original); font-weight: 400; margin-right: 8px; }
.rg-pdp-price ins { text-decoration: none; color: var(--rg-sale); }
.rg-pdp-facts { list-style: none; margin: 0; padding: 14px 0; border-top: 1px solid var(--rg-border); border-bottom: 1px solid var(--rg-border); display: flex; flex-direction: column; gap: 12px; }
.rg-pdp-facts li { display: flex; gap: 12px; align-items: flex-start; }
.rg-pdp-facts .rg-icon { color: var(--rg-accent); margin-top: 2px; }
.rg-pdp-facts span { display: flex; flex-direction: column; }
.rg-pdp-facts strong { font-size: 14px; font-weight: 600; }
.rg-pdp-facts small { font-size: 12px; color: var(--rg-text-muted); }
.rg-ok { color: var(--rg-cashback); }
.rg-ko { color: var(--rg-warn); }
.rg-pdp-cta .single_add_to_cart_button, .rg-pdp-cta .craft-sticky-bar-sc button, .rg-pdp-cta .craft-sticky-bar-sc-c, .rg-pdp-cta .craft-sticky-bar-sc-choose, .rg-pdp-cta .craft-sticky-bar-wapf-form button { width: 100%; min-height: 50px; border-radius: 999px !important; border: 0; background: var(--rg-btn) !important; color: var(--rg-on-btn) !important; font-family: inherit; font-weight: 700; font-size: 15px; }
.rg-pdp-cta .craft-sticky-bar-sc { display: flex; gap: 8px; }
.rg-pdp-cta .craft-sticky-bar-sc-c { width: 52px !important; flex: 0 0 52px; }
.rg-pdp-cta form.cart { display: flex; gap: 8px; }
.rg-pdp-cta .quantity input { height: 50px; width: 72px; border-radius: 12px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; text-align: center; font: inherit; }
.rg-pdp-secure { display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--rg-text-muted); }
.rg-pdp-secure > span { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.rg-pdp-secure .rg-icon { color: var(--rg-cashback); }

/* Onglets */
.rg-pdp-tabs { margin-top: 44px; }
.rg-pdp-tabs .woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 22px; padding: 0; display: flex; gap: 4px; border-bottom: 1px solid var(--rg-border); }
.rg-pdp-tabs .woocommerce-tabs ul.tabs li { margin: 0; }
.rg-pdp-tabs .woocommerce-tabs ul.tabs li a { display: inline-block; padding: 12px 16px; font-weight: 600; color: var(--rg-text-muted); border-bottom: 2px solid transparent; }
.rg-pdp-tabs .woocommerce-tabs ul.tabs li.active a { color: var(--rg-accent); border-bottom-color: var(--rg-accent); }
.rg-pdp-tabs .woocommerce-tabs .panel { max-width: 920px; color: var(--rg-text-muted); font-size: 15px; }
.rg-pdp-tabs .woocommerce-tabs .panel h2, .rg-pdp-tabs .woocommerce-tabs .panel h3 { color: #fff; margin: 1.4em 0 .6em; }
.rg-pdp-tabs .woocommerce-tabs .panel > h2:first-child { margin-top: 0; }
.rg-pdp-tabs .woocommerce-tabs .panel table { color: #fff; }
.rg-related { margin-top: 48px; }

/* ---------- Catalogue (listes de produits) ---------- */
.rg-shop { padding: 18px 24px 24px; }
/* Dernière section avant le pied de page : pas de marge en plus (le client trouvait le vide trop grand). */
.rg-home > .rg-section:last-child, .rg-home > .rg-about:last-child, .rg-pdp > .rg-section:last-child, .rg-shop > .rg-section:last-child { margin-bottom: 0; }
.rg-shop .woocommerce-products-header__title { font-size: 30px; margin: 0 0 20px; }
.rg-shop .woocommerce-result-count, .rg-shop .woocommerce-ordering { color: var(--rg-text-muted); font-size: 13px; }
.rg-shop .woocommerce-pagination ul { list-style: none; display: flex; gap: 6px; justify-content: center; margin: 32px 0 0; padding: 0; }
.rg-shop .woocommerce-pagination a, .rg-shop .woocommerce-pagination span { min-width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--rg-border); }
.rg-shop .woocommerce-pagination span.current { background: var(--rg-btn); color: var(--rg-on-btn); border-color: var(--rg-btn); }

/* ---------- Pages simples, blog ---------- */
.rg-page { padding: 28px 24px 24px; }
.rg-page > .rg-section:last-child, .rg-page > *:last-child > .rg-section:last-child { margin-bottom: 0; } /* Pas de grand vide avant le pied de page (demande du client). */
.rg-page-narrow { max-width: 900px; }
.rg-page-head { margin-bottom: 24px; }
.rg-page-title { font-size: 34px; }
.rg-content { color: var(--rg-text-muted); font-size: 15px; }
.rg-content h2, .rg-content h3 { color: #fff; margin: 1.5em 0 .6em; }
.rg-content a { color: var(--rg-accent); }
.rg-content img:not(.rg-card img):not(.rg-region img):not(.rg-card-platform) { border-radius: var(--rg-radius-sm); } /* Pas sur les cartes produit : l'image doit remplir son cadre et le drapeau rester rectangulaire (panier, Mon compte). */
.rg-content .rg-card-media img:not(.rg-card-platform), .rg-content .rg-region img { border-radius: 0 !important; } /* La pastille plateforme garde son rond. */
.rg-content .rg-region img { border-radius: 2px !important; }
.rg-blog-date { font-size: 12px; color: var(--rg-text-dim); }
.rg-blog-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; }
.rg-blog-main { position: relative; display: block; border-radius: var(--rg-radius); overflow: hidden; min-height: 380px; background: var(--rg-surface-inset); }
.rg-blog-main img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.rg-blog-main-body { position: absolute; inset: auto 0 0; padding: 28px; display: flex; flex-direction: column; gap: 6px; background: linear-gradient(rgba(8, 13, 45, 0), rgba(8, 13, 45, .96) 40%); }
.rg-blog-main strong { font-size: 22px; }
.rg-blog-side { display: flex; flex-direction: column; gap: 12px; }
.rg-blog-item { display: grid; grid-template-columns: 140px 1fr; gap: 14px; align-items: center; padding: 10px; border-radius: var(--rg-radius-sm); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-blog-item img { aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; }
.rg-blog-item strong { font-size: 15px; display: block; margin-top: 4px; }
.rg-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rg-post-card { display: flex; flex-direction: column; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); overflow: hidden; }
.rg-post-card img { aspect-ratio: 16 / 9; object-fit: cover; }
.rg-post-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px; }
.rg-post-card strong { font-size: 16px; }
.rg-article-cover { border-radius: var(--rg-radius); margin-bottom: 24px; }
.rg-empty { color: var(--rg-text-muted); }

/* ---------- WooCommerce : panier, checkout, compte, messages ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 20px; padding: 14px 18px; border-radius: var(--rg-radius-sm); border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; }
.woocommerce-error { border-color: rgba(239, 68, 68, .5); }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 12px; }
table.shop_table { width: 100%; border-collapse: collapse; border: 0; }
table.shop_table th, table.shop_table td { padding: 12px 10px; border-bottom: 1px solid var(--rg-border); text-align: left; }
table.shop_table th { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--rg-text-dim); }
.woocommerce-cart-form, .cart_totals, form.checkout .col2-set > div, #order_review, .woocommerce-form-login, .woocommerce-form-register { padding: 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); margin-bottom: 16px; }
.button, button.button, input[type="submit"], #place_order, .checkout-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--rg-btn); color: var(--rg-on-btn); font: inherit; font-weight: 600; cursor: pointer; }
.button:hover, #place_order:hover { background: var(--rg-btn-hover); }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea { width: 100%; min-height: 48px; padding: 0 14px; border-radius: var(--rg-radius-input); border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font: inherit; }
textarea { padding: 12px 14px; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--rg-accent); }
form .form-row { margin-bottom: 14px; }
form .form-row label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 500; }
form .form-row .required { color: var(--rg-sale); }
#payment ul.payment_methods { list-style: none; margin: 0 0 16px; padding: 0; }
#payment ul.payment_methods li { margin-bottom: 8px; padding: 12px 14px; border-radius: var(--rg-radius-sm); border: 1px solid var(--rg-border); background: var(--rg-surface-inset); }
#payment ul.payment_methods li label { font-weight: 600; }
#payment div.payment_box { margin-top: 10px; padding: 12px; border-radius: 8px; background: var(--rg-navy-deep); color: var(--rg-text-muted); font-size: 13px; }
.woocommerce .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.woocommerce-checkout .col2-set { display: block; }
form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 24px; align-items: start; }
form.checkout > #order_review_heading { grid-column: 2; margin: 0; font-size: 20px; }
form.checkout > #order_review { grid-column: 2; }
form.checkout > .col2-set { grid-column: 1; grid-row: 1 / span 2; }

/* ---------- Pied de page ---------- */
.rg-footer { margin-top: 0; border-top: 1px solid var(--rg-border); background: var(--rg-navy-deep); padding: 36px 0 24px; color: var(--rg-text-muted); font-size: 14px; }
.rg-footer-pay { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding-bottom: 28px; border-bottom: 1px solid var(--rg-border); }
.rg-footer-paylabel { font-weight: 700; color: #fff; margin-right: 6px; }
.rg-footer-paymore { color: var(--rg-text-dim); font-size: 13px; }
.rg-footer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding: 32px 0; border-bottom: 1px solid var(--rg-border); }
.rg-footer h3 { font-size: 15px; color: #fff; margin-bottom: 14px; }
.rg-footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rg-footer-links a:hover { color: #fff; }
.rg-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; }
.rg-footer-country { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.rg-footer-country .rcsp-trigger.rcsp-sc-badge--light { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px !important; border-radius: 10px !important; background: var(--rg-surface-inset) !important; border: 1px solid var(--rg-border) !important; color: #fff !important; font-family: inherit; font-size: 13px; font-weight: 600; }
.rg-footer-country .rcsp-sc-content-mobile { display: none !important; }
.rg-footer-copy { margin: 0; font-size: 13px; color: var(--rg-text-dim); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Petit bouton panier à côté de « Ajouter au panier » (Craft Sticky Bar) */
.rg-pdp-cta .craft-sticky-bar-sc-c { display: grid !important; place-items: center; padding: 0 !important; }
.rg-pdp-cta .craft-sticky-bar-ci, .rg-pdp-cta .craft-sticky-bar-ci svg { display: block; width: 22px !important; height: 22px !important; color: var(--rg-on-btn); }
.rg-pdp-cta .craft-sticky-bar-cs:empty { display: none; }

/* Grilles WooCommerce (produits similaires, catégories, recherche) : neutralise les flottants et largeurs de woocommerce-layout.css */
.woocommerce ul.products, .woocommerce-page ul.products, .rg-related ul.products, section.related ul.products { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after, .woocommerce-page ul.products::before, .woocommerce-page ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product, .woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product,
.rg-related ul.products li.product, section.related ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; clear: none !important; }
.woocommerce ul.products.columns-4, .woocommerce-page ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
section.related > h2, .rg-related section.related > h2 { display: none; } /* Titre déjà affiché par le thème. */
.woocommerce ul.products li.product .rg-card-media img, .woocommerce-page ul.products li.product .rg-card-media img { width: 100% !important; height: 100% !important; margin: 0 !important; object-fit: cover; }

/* Pages portant la classe body.woocommerce (fiche produit, catégories) : mêmes cartes que l'accueil */
.woocommerce ul.products li.product .rg-card-title, .woocommerce-page ul.products li.product .rg-card-title, .woocommerce ul.products li.product h3 { font-size: 14px; font-weight: 600; padding: 0; margin: 0; line-height: 1.35; }
.woocommerce ul.products li.product .rg-card-price, .woocommerce ul.products li.product .price { color: #fff; font-size: 17px; font-weight: 700; margin: 0; display: block; }
.woocommerce ul.products li.product .price del, .woocommerce ul.products li.product .rg-card-price del { color: var(--rg-price-original); font-size: 13px; opacity: 1; }
.woocommerce ul.products li.product .price ins, .woocommerce ul.products li.product .rg-card-price ins { color: var(--rg-sale); font-weight: 700; }
.woocommerce ul.products li.product .rg-region { font-size: 13px; }
.woocommerce ul.products li.product .rg-card-btn, .woocommerce-page ul.products li.product .rg-card-btn, .woocommerce a.button.rg-card-btn, .woocommerce ul.products li.product .button.rg-card-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; margin: 0; padding: 0 18px; border: 1px solid transparent; border-radius: 30px;
	background: var(--rg-btn); color: var(--rg-on-btn); font: inherit; font-weight: 600; font-size: 13px; line-height: 1; text-align: center;
}
.woocommerce ul.products li.product .rg-card-btn:hover, .woocommerce a.button.rg-card-btn:hover { background: var(--rg-btn-hover); color: var(--rg-on-btn); }
.woocommerce ul.products li.product .rg-btn-ghost.rg-card-btn { background: transparent; border-color: var(--rg-border-hover); color: #fff; }
.rg-card-btn i, .rg-card-btn .fa, .rg-card-btn .fas, .rg-card-btn svg.svg-inline--fa { display: none !important; } /* Icône panier injectée par Craft Produit (option « Icône panier »). */
.woocommerce ul.products li.product .rg-card-media, .woocommerce-page ul.products li.product .rg-card-media { margin: 0; }
.woocommerce ul.products li.product .rg-badge { margin: 0; min-height: 0; min-width: 0; line-height: 1; }
.woocommerce ul.products li.product .rg-card-panel { margin-bottom: calc(var(--rg-card-action) * -1); }
.woocommerce ul.products li.product .rg-card-body { padding: 12px 16px 14px; }
.woocommerce ul.products li.product .rg-card-action { padding: 2px 16px 12px; }

/* ==========================================================================
   Tunnel d'achat (panier, paiement, confirmation) : fond clair comme en production.
   Craft Checkpanier y dessine ses blocs en texte sombre, pensés pour un fond clair.
   Le pied de page reste sombre.
   ========================================================================== */
body.rg-funnel { background: #f3f6fb; color: #1f2937; }
body.rg-funnel .rg-main { color: #1f2937; }
body.rg-funnel .rg-page-head { display: none; } /* l'extension affiche déjà son propre titre */
body.rg-funnel .rg-page { padding-top: 32px; }
body.rg-funnel .woocommerce-cart-form, body.rg-funnel .cart_totals, body.rg-funnel form.checkout .col2-set > div, body.rg-funnel #order_review { background: #fff; border-color: #e5e7eb; color: #1f2937; box-shadow: 0 1px 3px rgba(16, 24, 40, .06); }
body.rg-funnel table.shop_table th, body.rg-funnel table.shop_table td { border-bottom-color: #e5e7eb; }
body.rg-funnel table.shop_table th { color: #6b7280; }
body.rg-funnel .rg-content a:not(.button):not(.checkout-button) { color: #2563eb; }
body.rg-funnel .rg-main input[type="text"], body.rg-funnel .rg-main input[type="email"], body.rg-funnel .rg-main input[type="tel"], body.rg-funnel .rg-main input[type="password"], body.rg-funnel .rg-main input[type="number"], body.rg-funnel .rg-main select, body.rg-funnel .rg-main textarea { background: #fff; color: #111827; border-color: #d1d5db; }
body.rg-funnel .rg-main input:focus, body.rg-funnel .rg-main select:focus, body.rg-funnel .rg-main textarea:focus { border-color: #3f9cff; box-shadow: 0 0 0 3px rgba(63, 156, 255, .18); }
body.rg-funnel .woocommerce-info, body.rg-funnel .woocommerce-message, body.rg-funnel .woocommerce-error { color: #1f2937; }

/* Paiement en deux colonnes comme en production : informations à gauche ; résumé Craft,
   moyens de paiement et « Commander » à droite. */
body.rg-funnel form.checkout { grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); gap: 24px; }
body.rg-funnel form.checkout > .col2-set { grid-column: 1; grid-row: 1 / span 6; }
body.rg-funnel form.checkout > :not(.col2-set) { grid-column: 2; }
body.rg-funnel form.checkout .col2-set .col-1, body.rg-funnel form.checkout .col2-set .col-2 { float: none; width: 100%; }
body.rg-funnel form.checkout .col2-set .col-2:not(:has(input, select, textarea)) { display: none; }
body.rg-funnel form.checkout > #payment { background: #fff; border: 1px solid #e5e7eb; border-radius: var(--rg-radius); padding: 16px; box-shadow: 0 1px 3px rgba(16, 24, 40, .06); }
body.rg-funnel .rg-content, body.rg-funnel #payment { color: #374151; }
body.rg-funnel #payment ul.payment_methods li { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 14px 16px; background: #fff; border-color: #e5e7eb; }
body.rg-funnel #payment ul.payment_methods li > input[type="radio"] { order: -1 !important; flex: 0 0 auto; /* Craft Pay le place à droite (order: 99) ; à gauche comme en production */ margin: 0; accent-color: #1f2937; }
body.rg-funnel #payment ul.payment_methods li > label { flex: 1 1 0; min-width: 0; width: auto !important; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; color: #374151; font-weight: 600; cursor: pointer; }
body.rg-funnel #payment ul.payment_methods li > label img { height: 34px; width: auto; border-radius: 8px; }
body.rg-funnel #payment div.payment_box { flex: 1 1 100%; background: #f3f6fb; color: #4b5563; }
body.rg-funnel #payment .place-order { padding: 0; margin: 0; }
body.rg-funnel #payment .woocommerce-terms-and-conditions-wrapper { color: #6b7280; font-size: 14px; margin-bottom: 12px; }
body.rg-funnel #place_order { width: 100%; min-height: 50px; font-size: 16px; }
body.rg-funnel .rg-main h1, body.rg-funnel .rg-main h2, body.rg-funnel .rg-main h3, body.rg-funnel .rg-main h4 { color: #1f2937; }

/* ==========================================================================
   Fiche produit (inc/product.php) : sélecteurs et sections, modèle Giftshopsen
   ========================================================================== */
.rg-pdp-options { display: flex; flex-direction: column; gap: 18px; }
.rg-sel { display: flex; flex-direction: column; gap: 8px; }
.rg-sel-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rg-text-dim); }
.rg-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.rg-pill-opt { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 10px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font-weight: 600; font-size: 14px; transition: border-color var(--rg-fast) var(--rg-ease), background-color var(--rg-fast) var(--rg-ease); }
a.rg-pill-opt:hover { border-color: var(--rg-border-hover); }
.rg-pill-opt.is-active { background: var(--rg-btn); border-color: var(--rg-btn); color: var(--rg-on-btn); }
.rg-pill-opt.is-oos { color: var(--rg-text-dim); }
.rg-select-wrap { position: relative; }
.rg-select { width: 100%; min-height: 50px; padding: 0 44px 0 16px; border-radius: 10px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font: inherit; font-size: 15px; appearance: none; cursor: pointer; }
.rg-select:hover { border-color: var(--rg-border-hover); }
.rg-select-wrap .rg-icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--rg-text-muted); }
.rg-amounts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; } /* 5 colonnes sur ordinateur (demande du client). */
@media (max-width: 1100px) { .rg-amounts { grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); } }
.rg-amount { display: flex; flex-direction: column; border-radius: 12px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); overflow: hidden; transition: border-color var(--rg-fast) var(--rg-ease), transform var(--rg-fast) var(--rg-ease); }
a.rg-amount:hover { border-color: var(--rg-border-hover); transform: translateY(-1px); }
.rg-amount-name { padding: 10px 14px; font-weight: 700; font-size: 14px; color: #fff; background: rgba(255, 255, 255, .04); border-bottom: 1px solid var(--rg-border); }
.rg-amount-price { padding: 10px 14px 12px; font-weight: 700; font-size: 15px; color: #fff; }
.rg-amount-price del { display: block; font-size: 12px; font-weight: 400; color: var(--rg-text-dim); }
.rg-amount-price ins { text-decoration: none; }
.rg-amount.is-active { border-color: var(--rg-btn); box-shadow: 0 0 0 1px var(--rg-btn); }
.rg-amount.is-active .rg-amount-name { background: var(--rg-btn); color: var(--rg-on-btn); border-bottom-color: var(--rg-btn); }
.rg-amount.is-oos { opacity: .55; }
.rg-amount-oos { font-size: 13px; font-weight: 500; color: var(--rg-text-dim); }
/* Cases de montant (modèle Giftshopsn, en bleu) : pastille de remise, prix barré + prix, cashback en vert. */
.rg-amount-name { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rg-amount-off { flex: 0 0 auto; padding: 2px 7px; border-radius: 999px; background: rgba(63, 156, 255, .18); color: var(--rg-accent); font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.rg-amount.is-active .rg-amount-off { background: rgba(255, 255, 255, .22); color: #fff; }
.rg-amount-price { display: flex; flex-direction: column; gap: 2px; }
.rg-amount-price del { display: inline; margin-right: 6px; }
.rg-amount-price ins { text-decoration: none; }
.rg-amount-price > .amount, .rg-amount-price > ins .amount { color: var(--rg-accent); }
.rg-amount-cb { display: block; margin-top: 2px; font-size: 12px; font-weight: 700; color: var(--rg-cashback); }
.rg-amount-cb .amount, .rg-amount-cb bdi { color: inherit; font-size: inherit; }
.rg-amounts-note { margin: 10px 0 0; font-size: 12.5px; color: var(--rg-text-muted); }

.rg-pdp-sections { display: flex; flex-direction: column; gap: 20px; margin: 40px 0 8px; }
.rg-pdp-block { padding: 24px 26px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-pdp-block-title { font-size: 20px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--rg-border); }
.rg-about-body { position: relative; }
.rg-pdp-about.is-collapsed .rg-about-body { max-height: 260px; overflow: hidden; }
/* Dégradé « Lire plus » sur toute la largeur du bloc, jusqu'à son bord bas ; le bouton reste au-dessus. */
.rg-pdp-about { position: relative; overflow: hidden; }
.rg-pdp-about.is-collapsed::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 170px; background: linear-gradient(to bottom, rgba(9, 17, 61, 0), rgba(9, 17, 61, .92) 55%, #09113d); pointer-events: none; }
.rg-pdp-about .rg-readmore { position: relative; z-index: 1; }
.rg-readmore { display: flex; align-items: center; gap: 6px; margin: 14px auto 0; padding: 6px 12px; border: 0; background: none; color: var(--rg-accent); font: inherit; font-weight: 600; cursor: pointer; }
.rg-pdp-about:not(.is-collapsed) .rg-readmore .rg-icon { transform: rotate(180deg); }
.rg-steps { margin: 0 0 16px; padding: 0; list-style: none; counter-reset: rg-step; display: flex; flex-direction: column; gap: 10px; }
.rg-steps li { counter-increment: rg-step; display: flex; gap: 12px; align-items: flex-start; color: var(--rg-text-muted); }
.rg-steps li::before { content: counter(rg-step); flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--rg-btn); color: var(--rg-on-btn); font-weight: 700; font-size: 13px; display: grid; place-items: center; }
.rg-warn { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; padding: 10px 14px; border-radius: 10px; background: rgba(255, 197, 49, .1); border: 1px solid rgba(255, 197, 49, .35); color: #ffd56b; font-size: 14px; }
.rg-btn-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 4px; }
.rg-acc { margin-top: 14px; border: 1px solid var(--rg-border); border-radius: 12px; background: var(--rg-surface-inset); }
.rg-acc summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; font-weight: 600; cursor: pointer; list-style: none; }
.rg-acc summary::-webkit-details-marker { display: none; }
.rg-acc[open] summary .rg-icon { transform: rotate(180deg); }
.rg-acc-body { padding: 0 16px 16px; color: var(--rg-text-muted); }
.rg-acc-body h2 { display: none; } /* l'onglet Product Tabs répète son titre */
.rg-kv { width: 100%; border-collapse: collapse; font-size: 14px; }
.rg-kv th, .rg-kv td { padding: 12px 4px; border-bottom: 1px solid var(--rg-border); text-align: left; vertical-align: top; }
.rg-kv tr:last-child th, .rg-kv tr:last-child td { border-bottom: 0; }
.rg-kv th { width: 30%; color: var(--rg-text-muted); font-weight: 500; }
.rg-kv td { color: #fff; }
.rg-kv thead th { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rg-text-dim); }
.rg-kv-pay tbody th { color: #fff; font-weight: 600; }
.rg-dot { margin: 0 8px; color: var(--rg-text-dim); }
.rg-reviews #reviews h2, .rg-reviews .woocommerce-Reviews-title { font-size: 20px; margin-bottom: 14px; }
.rg-reviews .commentlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rg-reviews .commentlist li { padding: 14px 16px; border-radius: 12px; background: var(--rg-surface-inset); }
.rg-reviews .star-rating { color: var(--rg-warn); }
.rg-reviews .comment-reply-title { display: block; margin: 18px 0 10px; font-weight: 700; }
.rg-reviews textarea { min-height: 110px; }
.rg-pdp-about .rg-about-body { text-align: left; }
.rg-rating-sum { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.rg-rating-sum strong { font-size: 30px; }
.rg-rating-sum > span { color: var(--rg-text-muted); margin-right: 6px; }
.rg-rating-sum small { color: var(--rg-text-muted); }
.rg-review-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rg-review-list li { padding: 14px 16px; border-radius: 12px; background: var(--rg-surface-inset); }
.rg-review-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.rg-review-head time { margin-left: auto; font-size: 12px; color: var(--rg-text-dim); }
.rg-review-list p { margin: 0; color: var(--rg-text-muted); font-size: 14px; }
.rg-reviews .star-rating { color: var(--rg-warn); }
.rg-country-cell { display: inline-flex; align-items: center; gap: 10px; }
.rg-country-cell .rg-flag { border-radius: 3px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12); object-fit: cover; }
.rg-country-cell .rg-icon { color: var(--rg-text-muted); }

/* ==========================================================================
   Pages catégorie et boutique (woocommerce/archive-product.php, inc/catalog.php)
   ========================================================================== */
.rg-shop-head { display: flex; align-items: center; gap: 18px; margin: 4px 0 18px; }
.rg-shop-logo { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: #fff; display: grid; place-items: center; }
.rg-shop-logo img { width: 100%; height: 100%; object-fit: cover; }
.rg-shop-title { font-size: 32px; }
.rg-shop-count { margin: 4px 0 0; color: var(--rg-text-muted); font-size: 14px; }
.rg-shop-desc { margin: 0 0 24px; max-width: 980px; font-size: 14px; }
.rg-shop-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.rg-shop-side { position: sticky; top: 90px; max-height: calc(100vh - 110px); overflow-y: auto; scrollbar-width: thin; }
.rg-filters { display: flex; flex-direction: column; border: 1px solid var(--rg-border); border-radius: var(--rg-radius); background: var(--rg-surface); }
.rg-filter { padding: 14px 16px; border-bottom: 1px solid var(--rg-border); }
.rg-filter:last-child { border-bottom: 0; }
.rg-filter summary { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: 15px; cursor: pointer; list-style: none; }
.rg-filter summary::-webkit-details-marker { display: none; }
.rg-filter[open] summary { margin-bottom: 10px; }
.rg-filter[open] summary .rg-icon { transform: rotate(180deg); }
.rg-filter-search { width: 100%; min-height: 38px; margin-bottom: 8px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font: inherit; font-size: 13px; }
.rg-filter-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.rg-filter-list a, .rg-filter-list label { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: 8px; font-size: 14px; color: var(--rg-text-muted); cursor: pointer; }
.rg-filter-list a:hover, .rg-filter-list label:hover { background: var(--rg-surface-hover); color: #fff; }
.rg-filter-list span { flex: 1 1 auto; }
.rg-filter-list small { color: var(--rg-text-dim); font-size: 12px; }
.rg-filter-list input[type="checkbox"], .rg-filter-check input { width: 18px; height: 18px; min-height: 0; margin: 0; accent-color: var(--rg-btn); flex: 0 0 auto; }
.rg-filter-list input:checked + span { color: #fff; font-weight: 600; }
.rg-filter-more { margin-top: 6px; padding: 4px 6px; border: 0; background: none; color: var(--rg-accent); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.rg-filter-price { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: end; }
.rg-filter-price label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--rg-text-dim); }
.rg-filter-price input { min-height: 40px; padding: 0 10px; font-size: 14px; }
.rg-filter-price .rg-btn { min-height: 40px; padding: 0 14px; }
.rg-filter-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--rg-text-muted); cursor: pointer; }
.rg-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; min-height: 44px; }
.rg-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rg-chip { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; background: var(--rg-btn); color: var(--rg-on-btn); font-size: 13px; font-weight: 600; }
.rg-chip:hover { background: var(--rg-btn-hover); }
.rg-chip-reset { font-size: 13px; color: var(--rg-text-muted); text-decoration: underline; text-underline-offset: 3px; }
.rg-toolbar-sort { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; font-size: 13px; }
.rg-select-sm { min-height: 42px; font-size: 14px; padding-right: 38px; }
.rg-select-xs { width: 84px; }
.rg-toolbar .rg-select-wrap .rg-icon { right: 12px; }
.rg-shop-main ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.rg-empty { padding: 48px 24px; text-align: center; border: 1px dashed var(--rg-border); border-radius: var(--rg-radius); color: var(--rg-text-muted); }
.rg-empty p { margin: 0 0 16px; }
.rg-filter-list .rg-flag { flex: 0 0 auto; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12); }

/* Pagination : un seul style pour tout le site public.
   - listes de produits (nav.woocommerce-pagination, sélecteurs renforcés contre le CSS de WooCommerce) ;
   - blog, guides et recherche d'articles (index.php : .rg-pagination / nav.pagination) ;
   - Mon compte > Commandes (boutons Précédent / Suivant de WooCommerce). */
:is(.woocommerce nav.woocommerce-pagination, .rg-pagination) { margin: 36px 0 8px; text-align: center; }
:is(.woocommerce nav.woocommerce-pagination, .rg-pagination) :is(ul.page-numbers, .nav-links) { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; border: 0; list-style: none; }
.woocommerce nav.woocommerce-pagination ul.page-numbers li { float: none; margin: 0; border: 0; overflow: visible; }
:is(.woocommerce nav.woocommerce-pagination ul.page-numbers li, .rg-pagination .nav-links) .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font-weight: 600; font-size: 15px; line-height: 1; transition: border-color var(--rg-fast) var(--rg-ease), background-color var(--rg-fast) var(--rg-ease), transform var(--rg-fast) var(--rg-ease); }
:is(.woocommerce nav.woocommerce-pagination ul.page-numbers li, .rg-pagination .nav-links) a.page-numbers:is(:hover, :focus-visible) { border-color: var(--rg-border-hover); background: var(--rg-surface-hover); transform: translateY(-1px); }
:is(.woocommerce nav.woocommerce-pagination ul.page-numbers li, .rg-pagination .nav-links) span.page-numbers.current { background: var(--rg-btn); border-color: var(--rg-btn); color: var(--rg-on-btn); }
:is(.woocommerce nav.woocommerce-pagination ul.page-numbers li, .rg-pagination .nav-links) span.page-numbers.dots { background: transparent; border-color: transparent; color: var(--rg-text-muted); min-width: 24px; padding: 0; }
.rg-pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.woocommerce-MyAccount-content .woocommerce-pagination { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }
.woocommerce-MyAccount-content .woocommerce-pagination .woocommerce-button { min-height: 44px; padding: 0 18px; border-radius: 12px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; }
.woocommerce-MyAccount-content .woocommerce-pagination .woocommerce-button:hover { border-color: var(--rg-border-hover); background: var(--rg-surface-hover); }

/* ==========================================================================
   Mon compte (inc/account.php, woocommerce/myaccount/navigation.php)
   Le contenu (tableau de bord, commandes…) est produit par Craft Compte : classes craft-mc-*.
   ========================================================================== */
body.rg-account .rg-page-head { display: none; }
body.rg-account .rg-page { padding-top: 28px; }
body.rg-account .rg-content > .woocommerce { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 24px; align-items: start; color: var(--rg-text-muted); }
body.rg-account .rg-content > .woocommerce::before, body.rg-account .rg-content > .woocommerce::after { display: none; } /* clearfix WooCommerce : occuperait des cases de la grille */
body.rg-account .woocommerce-MyAccount-navigation, body.rg-account .woocommerce-MyAccount-content { float: none; width: auto; }
body.rg-account .woocommerce-notices-wrapper:empty { display: none; }
body.rg-account .rg-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.rg-account-nav { position: sticky; top: 90px; padding: 10px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-account-user { display: flex; align-items: center; gap: 12px; padding: 12px 10px 16px; margin-bottom: 8px; border-bottom: 1px solid var(--rg-border); }
.rg-account-avatar, .craft-mc-avatar { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: var(--rg-btn); color: var(--rg-on-btn); display: grid; place-items: center; font-weight: 800; font-size: 18px; }
.rg-account-who { display: flex; flex-direction: column; min-width: 0; }
.rg-account-who strong { color: #fff; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-account-who small { color: var(--rg-text-dim); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-account-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.rg-account-nav li a, .rg-account-logout { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 10px; color: var(--rg-text-muted); font-weight: 600; font-size: 14.5px; transition: background-color var(--rg-fast) var(--rg-ease), color var(--rg-fast) var(--rg-ease); }
.rg-account-nav li a:hover, .rg-account-logout:hover { background: var(--rg-surface-hover); color: #fff; }
.rg-account-nav li.is-active a { background: var(--rg-btn); color: var(--rg-on-btn); }
.rg-account-logout { margin-top: 8px; border-top: 1px solid var(--rg-border); border-radius: 0 0 10px 10px; padding-top: 14px; }
.rg-account-logout:hover { color: #ff8a8a; }

.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content:has(.craft-mc-overview) > p, .woocommerce-MyAccount-content .craft-mc-native-hidden { display: none; }
.woocommerce-MyAccount-content a:not(.button):not([class*="craft-mc-"]) { color: var(--rg-accent); }
.woocommerce-MyAccount-content .dashicons { width: auto; height: auto; font-size: 18px; line-height: 1; }

/* Tableau de bord : carte de bienvenue */
.craft-mc-overview { padding: 24px; border-radius: var(--rg-radius); background: linear-gradient(135deg, #1d3fae, #0e1647 70%); border: 1px solid var(--rg-border); color: #fff; }
.craft-mc-overview-top { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.craft-mc-hello-text { display: flex; flex-direction: column; flex: 1 1 auto; }
.craft-mc-hello-text strong { font-size: 20px; }
.craft-mc-hello-text span { color: rgba(255, 255, 255, .7); font-size: 14px; }
.craft-mc-member-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .25); font-size: 12.5px; font-weight: 600; }
.craft-mc-stats { display: flex; align-items: center; gap: 22px; margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .15); }
.craft-mc-stat { display: flex; align-items: baseline; gap: 8px; }
.craft-mc-stat .num { font-size: 22px; font-weight: 800; color: #fff; }
.craft-mc-stat .label { font-size: 13px; color: rgba(255, 255, 255, .7); }
.craft-mc-stat-sep { width: 1px; height: 28px; background: rgba(255, 255, 255, .15); }
@media (max-width: 600px) { /* Deux colonnes égales : un grand montant ne sort plus du cadre. */
	.craft-mc-stats { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
	.craft-mc-stat-sep { display: none; }
	.craft-mc-stat { flex-wrap: wrap; align-items: center; min-width: 0; gap: 2px 6px; }
	.craft-mc-stat .num { font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
	.craft-mc-stat .label { flex-basis: 100%; font-size: 12px; }
}

/* Commandes : cartes */
.craft-mc-orders { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.craft-mc-order-card { display: flex; flex-direction: column; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); overflow: hidden; transition: border-color var(--rg-fast) var(--rg-ease), transform var(--rg-fast) var(--rg-ease); }
.craft-mc-order-card:hover { border-color: var(--rg-border-hover); transform: translateY(-2px); }
.craft-mc-order-img { position: relative; aspect-ratio: 16 / 11 !important; background: var(--rg-navy-deep) !important; border-radius: var(--rg-radius) var(--rg-radius) 0 0; overflow: hidden; isolation: isolate; transform: translateZ(0); } /* Même cadre que .rg-card-media : plus de coins blancs (fond et arrondi posés sur le cadre lui-même). */
.craft-mc-order-img > img:not(.rg-card-platform) { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.craft-mc-order-card { border-radius: var(--rg-radius) !important; border: 1px solid var(--rg-border) !important; box-shadow: none !important; }
.craft-mc-order-card:hover .craft-mc-order-img img:not(.rg-card-platform) { transform: scale(1.03); }
.craft-mc-order-status { z-index: 3; }
.craft-mc-order-status { position: absolute; left: 10px; top: 10px; padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; background: rgba(8, 13, 45, .85); color: #fff; }
.craft-mc-order-status.status-completed { background: #16a34a; }
.craft-mc-order-status:is(.status-pending, .status-on-hold) { background: #f59e0b; color: #1a1200; }
.craft-mc-order-status.status-processing { background: var(--rg-btn); }
.craft-mc-order-status:is(.status-failed, .status-cancelled, .status-refunded) { background: #dc2626; }
.craft-mc-order-body { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 16px; flex: 1 1 auto; }
.craft-mc-order-toprow { display: flex; justify-content: space-between; gap: 10px; }
.craft-mc-order-name { color: #fff; font-weight: 600; font-size: 14.5px; line-height: 1.35; }
.craft-mc-order-price { color: #fff; font-weight: 800; white-space: nowrap; }
.craft-mc-order-meta { font-size: 12.5px; color: var(--rg-text-dim); }
.craft-mc-order-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 6px; }
.craft-mc-order-btn { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--rg-border-hover); color: #fff; font-weight: 600; font-size: 13px; }
.craft-mc-order-btn:hover { background: var(--rg-surface-hover); }
.craft-mc-order-btn:is(.craft-mc-btn-pay, .craft-mc-btn-view) { background: var(--rg-btn); border-color: var(--rg-btn); color: var(--rg-on-btn); }
.craft-mc-order-btn.craft-mc-btn-pay:hover, .craft-mc-order-btn.craft-mc-btn-view:hover { background: var(--rg-btn-hover); }
.craft-mc-order-btn.craft-mc-btn-cancel { color: #ff8a8a; border-color: rgba(255, 138, 138, .4); }
/* Cartes de commande : mêmes dimensions que les cartes produit du catalogue (4 par ligne, 20 px d'écart, corps 12/16/14, image 16/11 pleine). */
.craft-mc-order-card { background: var(--rg-surface-inset); }
.craft-mc-orders { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 20px !important; }
.craft-mc-order-body { padding: 12px 16px 14px !important; gap: 6px !important; }
.craft-mc-order-name { font-size: 14px !important; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.craft-mc-order-price { font-size: 15px; }
.craft-mc-order-meta { font-size: 12px; }
.craft-mc-order-img img:not(.rg-card-platform) { width: 100% !important; height: 100% !important; object-fit: cover !important; }
@media (max-width: 1180px) { .craft-mc-orders { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px !important; } }
@media (max-width: 820px) {
	.craft-mc-orders { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
	.craft-mc-order-body { gap: 6px; padding: 10px 12px 12px; }
	.craft-mc-order-toprow { flex-direction: column; gap: 2px; }
	.craft-mc-order-name { font-size: 13px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.craft-mc-order-price { font-size: 14px; }
	.craft-mc-order-meta { font-size: 12px; }
	.craft-mc-order-actions { gap: 6px; }
	.craft-mc-order-btn { min-height: 32px; padding: 0 11px; font-size: 12px; }
	.craft-mc-order-status { left: 8px; top: 8px; padding: 3px 8px; font-size: 10px; }
}
.craft-mc-empty { padding: 40px 20px; text-align: center; border: 1px dashed var(--rg-border); border-radius: var(--rg-radius); color: var(--rg-text-muted); }

/* Formulaires (Détails du compte, Adresse), téléchargements, détail d'une commande */
:is(.craft-mc-account-card, .craft-mc-address-card, .craft-mc-download-card, .woocommerce-MyAccount-content .woocommerce-order-details, .woocommerce-MyAccount-content .woocommerce-customer-details) { padding: 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); margin-bottom: 16px; }
.woocommerce-MyAccount-content :is(h2, h3, legend) { color: #fff; font-size: 18px; margin: 0 0 14px; }
.woocommerce-MyAccount-content label { color: var(--rg-text-muted); font-size: 13.5px; font-weight: 600; }
.woocommerce-MyAccount-content fieldset { border: 0; padding: 0; margin: 18px 0 0; }
.craft-mc-field-hint { font-size: 12px; color: var(--rg-text-dim); }
.craft-mc-addresses, .craft-mc-downloads { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }

/* ==========================================================================
   Page de connexion / inscription plein écran (Craft Compte, classes craft-auth-*)
   Même univers que le site : fond nuit, champs sombres, bouton bleu ; visuel à droite.
   ========================================================================== */
body.craft-auth-page { background: var(--rg-navy-dark); color: var(--rg-text); font-family: var(--rg-font); }
body.craft-auth-page .craft-auth-left { background: var(--rg-navy-dark); }
body.craft-auth-page .craft-auth-title { color: #fff; font-family: var(--rg-font); font-weight: 800; }
body.craft-auth-page .craft-auth-subtitle, body.craft-auth-page .craft-auth-switch, body.craft-auth-page .craft-auth-terms, body.craft-auth-page .craft-auth-rules { color: var(--rg-text-muted); }
body.craft-auth-page .craft-auth-label { color: #fff; font-family: var(--rg-font); }
body.craft-auth-page .craft-auth-field { height: 50px; background: var(--rg-surface-inset); border: 1px solid var(--rg-border); border-radius: 12px; }
body.craft-auth-page .craft-auth-field:focus-within { border-color: var(--rg-btn); box-shadow: 0 0 0 3px rgba(63, 156, 255, .2); }
body.craft-auth-page .craft-auth-field input, body.craft-auth-page .craft-auth-field input:focus { min-height: 0; padding: 0; background: transparent !important; border: 0 !important; box-shadow: none !important; color: #fff !important; font-family: var(--rg-font); font-size: 15px; }
body.craft-auth-page .craft-auth-field input::placeholder { color: var(--rg-text-dim); }
body.craft-auth-page .craft-auth-field input:-webkit-autofill { -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 100px var(--rg-surface-inset) inset !important; }
body.craft-auth-page .craft-auth-toggle-pw { color: var(--rg-text-muted); }
body.craft-auth-page .craft-auth-btn-primary { background: var(--rg-btn) !important; color: var(--rg-on-btn) !important; border-radius: 999px !important; font-family: var(--rg-font); font-weight: 700; }
body.craft-auth-page .craft-auth-btn-primary:hover { background: var(--rg-btn-hover) !important; }
body.craft-auth-page :is(.craft-auth-forgot, .craft-auth-switch a, .craft-auth-terms a) { color: var(--rg-accent) !important; }
body.craft-auth-page .craft-auth-separator { color: var(--rg-text-dim); }
body.craft-auth-page .craft-auth-separator::before, body.craft-auth-page .craft-auth-separator::after { background: var(--rg-border) !important; }
body.craft-auth-page [class*="craft-auth-social"], body.craft-auth-page [class*="craft-auth-google"] { border-radius: 999px !important; border-color: var(--rg-border) !important; font-family: var(--rg-font); }
body.craft-auth-page .craft-auth-message { border-radius: 12px; }
/* Boutons de formulaire de Mon compte : passent devant « .woocommerce button.button » (gris) de WooCommerce. */
body.rg-account .woocommerce :is(button.button, input.button, a.button):not(.craft-mc-order-btn) { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--rg-btn); color: var(--rg-on-btn); font-family: inherit; font-weight: 700; font-size: 15px; }
body.rg-account .woocommerce :is(button.button, input.button, a.button):not(.craft-mc-order-btn):hover { background: var(--rg-btn-hover); color: var(--rg-on-btn); }

/* ==========================================================================
   Bandeau cookies (inc/consent.php, assets/js/consent.js)
   ========================================================================== */
.rg-consent { position: fixed; z-index: 9990; left: 50%; bottom: 16px; width: min(780px, calc(100vw - 32px)); display: flex; flex-direction: column; gap: 12px; padding: 20px 24px; border-radius: 16px; border: 1px solid var(--rg-border-hover); background: rgba(14, 22, 71, .97); box-shadow: 0 18px 40px rgba(0, 0, 0, .45); transform: translate(-50%, 20px); opacity: 0; transition: transform .3s var(--rg-ease), opacity .3s var(--rg-ease); }
.rg-consent.is-open { transform: translate(-50%, 0); opacity: 1; }
.rg-consent-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.rg-consent-title { margin: 0; font-size: 18px; font-weight: 700; color: #fff; }
.rg-consent-text { margin: 0; font-size: 14px; line-height: 1.55; color: var(--rg-text-muted); }
.rg-consent-prefs { display: flex; flex-direction: column; gap: 12px; }
.rg-consent-opt { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; }
.rg-consent-opt strong { display: block; font-size: 15px; color: #fff; }
.rg-consent-opt small { display: block; font-size: 13px; color: var(--rg-text-muted); }
.rg-consent-opt input { flex: 0 0 auto; width: 20px; height: 20px; min-height: 0; margin: 0; accent-color: var(--rg-btn); }
.rg-consent-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rg-consent-actions .rg-btn { min-height: 44px; padding: 0 28px; font-size: 15px; }
.rg-consent-accept { background: var(--rg-btn); color: var(--rg-on-btn); border: 0; min-width: 160px; }
.rg-consent-accept:hover { background: var(--rg-btn-hover); }
.rg-consent-more { margin-left: auto; display: inline-flex; gap: 4px; }
.rg-consent-link { padding: 6px 8px; border: 0; background: none; color: #fff; font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; white-space: nowrap; }
.rg-consent-link:hover { color: var(--rg-accent); }
.rg-footer-cookies { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Encadré « Avis important » de la fiche produit */
.rg-notice { display: flex; gap: 14px; padding: 16px 18px; border-radius: 14px; border: 1px solid rgba(63, 156, 255, .35); background: rgba(63, 156, 255, .08); }
.rg-notice + .rg-notice { margin-top: 10px; }
.rg-notice-icon { flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--rg-btn); color: var(--rg-on-btn); display: grid; place-items: center; font-weight: 800; font-style: italic; font-family: Georgia, serif; }
.rg-notice strong { display: block; color: #fff; font-size: 14.5px; margin-bottom: 4px; }
.rg-notice p { margin: 0; color: var(--rg-text-muted); font-size: 13.5px; }
.rg-notice a { color: var(--rg-accent); }

/* Bouton d'achat du thème (fiche produit, inc/product.php) */
.rg-buy { display: grid; grid-template-columns: 52px 1fr; gap: 10px; margin: 0; }
.rg-buy-cart { display: grid; place-items: center; height: 52px; border: 0; border-radius: 50%; background: var(--rg-btn); color: var(--rg-on-btn); cursor: pointer; transition: background-color var(--rg-fast) var(--rg-ease), transform var(--rg-fast) var(--rg-ease); }
.rg-buy-cart:hover { background: var(--rg-btn-hover); transform: scale(1.05); }
.rg-buy-cart:disabled { opacity: .6; cursor: wait; }
.rg-buy-now { min-height: 52px; border: 0; border-radius: 999px; background: var(--rg-btn); color: var(--rg-on-btn); font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-buy-now:hover { background: var(--rg-btn-hover); }
.rg-buy-msg { grid-column: 1 / -1; margin: 0; padding: 8px 12px; border-radius: 10px; background: rgba(22, 163, 74, .15); color: #4ade80; font-size: 13.5px; font-weight: 600; text-align: center; }
.rg-buy-oos { display: block; padding: 16px; border-radius: 12px; border: 1px solid rgba(255, 176, 32, .35); background: rgba(255, 176, 32, .08); }
.rg-buy-oos-title { margin: 0 0 4px; color: #ffb020; font-weight: 800; }
.rg-buy-oos .rg-muted { margin: 0 0 10px; font-size: 13px; }
.rg-buy-oos input[type="email"] { min-height: 44px; margin-bottom: 8px; }
.rg-buy-oos :is(button, input[type="submit"]) { width: 100%; }
/* Formulaire « Me prévenir du retour » (Back In Stock Notifier) dans le style du site */
.rg-buy-oos .cwginstock-subscribe-form, .rg-buy-oos .cwginstock-panel-primary, .rg-buy-oos .cwginstock-panel-body { border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
.rg-buy-oos .cwginstock-panel-heading { display: none !important; } /* doublon du titre du thème */
.rg-buy-oos .cwginstock-subscribe-form input[type="email"], .rg-buy-oos .cwginstock-subscribe-form input[type="text"] { width: 100% !important; min-height: 46px; border-radius: 12px !important; border: 1px solid var(--rg-border) !important; background: var(--rg-surface-inset) !important; color: #fff !important; text-align: left !important; }
.rg-buy-oos .cwginstock-subscribe-form :is(input[type="submit"], button) { width: 100% !important; min-height: 46px; margin-top: 8px; border: 0 !important; border-radius: 999px !important; background: var(--rg-btn) !important; color: var(--rg-on-btn) !important; font-weight: 700 !important; }
.rg-buy-oos .cwginstock-subscribe-form :is(input[type="submit"], button):hover { background: var(--rg-btn-hover) !important; }
/* Logo de plateforme sur les cartes produit (inc/helpers.php : regon_platform_logo_url) */
.woocommerce ul.products li.product .rg-card-media img.rg-card-platform, .rg-card-platform { position: absolute; inset: 8px 8px auto auto; width: 28px !important; height: 28px !important; margin: 0 !important; transform: none !important; z-index: 2; padding: 2px; border-radius: 50%; background: #fff; object-fit: cover; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); }
.rg-info-plateforme .rg-info-icon img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
body.rg-funnel #payment ul.payment_methods li > label { padding-left: 0 !important; margin-left: 0 !important; text-indent: 0 !important; }

/* ==========================================================================
   Confirmation de commande et « Voir la commande » (bloc des codes : Craft Livraison, classes wc-dcd-*)
   ========================================================================== */
/* La carte Craft contient déjà numéro, statut, date, total et code : les doublons WooCommerce sont masqués. */
.woocommerce-order:has(.wc-dcd-thankyou-wrapper) > :is(.woocommerce-notice--success, ul.woocommerce-order-overview, .woocommerce-order-details, .woocommerce-customer-details) { display: none; }
.wc-dcd-thankyou-wrapper { max-width: 640px; margin: 0 auto 8px; border-radius: 20px !important; overflow: hidden; font-family: var(--rg-font) !important; box-shadow: 0 18px 50px rgba(8, 13, 45, .35); }
.wc-dcd-thankyou-wrapper * { font-family: var(--rg-font) !important; }
.wc-dcd-thankyou-wrapper .wc-dcd-ty-title { color: #fff !important; }
.wc-dcd-thankyou-wrapper .wc-dcd-code-value { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace !important; }
.wc-dcd-thankyou-wrapper .wc-dcd-link-btn { border-radius: 999px !important; }
.wc-dcd-thankyou-wrapper .wc-dcd-copy-btn, .wc-dcd-thankyou-wrapper .wc-dcd-link-btn-primary { background: var(--rg-btn) !important; border-color: var(--rg-btn) !important; color: #fff !important; }
.rg-order-activation { max-width: 640px; margin: 22px auto 0; padding: 22px; border-radius: 20px; background: var(--rg-surface); border: 1px solid var(--rg-border); color: var(--rg-text-muted); }
.rg-order-activation h2 { margin: 0 0 14px; font-size: 19px; color: #fff; }
.rg-order-act + .rg-order-act { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--rg-border); }
.rg-order-act-title { margin: 0 0 12px; color: #fff; font-weight: 700; }
.rg-order-act-title small { display: block; color: var(--rg-text-dim); font-weight: 500; }
.rg-order-activation > .rg-muted { margin: 18px 0 0; font-size: 13.5px; }
.rg-order-activation a:not(.rg-btn) { color: var(--rg-accent); }
body.rg-funnel .rg-order-activation, body.rg-funnel .rg-order-activation :is(h2, .rg-order-act-title) { color: #fff; }
body.rg-funnel .woocommerce-order { background: transparent; border: 0; box-shadow: none; padding: 0; }
/* Tableau de bord : dernières commandes */
.rg-recent { margin-top: 20px; padding: 20px 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-recent-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.rg-recent-head h2 { margin: 0; font-size: 18px; color: #fff; }
.rg-recent-head a, .rg-recent-empty a { color: var(--rg-accent); font-weight: 600; font-size: 14px; }
.rg-recent-empty { margin: 0; }
.rg-recent-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rg-recent-list a { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding: 10px 12px; border-radius: 12px; background: var(--rg-surface-inset); color: var(--rg-text-muted); transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-recent-list a:hover { background: var(--rg-surface-hover); }
.rg-recent-img img { display: block; width: 112px; height: 77px; object-fit: cover; border-radius: 10px; background: #fff; } /* Ratio 16/11 des cartes produit. */
.rg-recent-body { display: flex; flex-direction: column; min-width: 0; }
.rg-recent-body strong { color: #fff; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-recent-body small { color: var(--rg-text-dim); font-size: 12.5px; }
.rg-recent-status { padding: 4px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: rgba(255, 255, 255, .08); color: #fff; white-space: nowrap; }
.rg-recent-status.status-completed { background: rgba(22, 163, 74, .2); color: #4ade80; }
.rg-recent-status:is(.status-pending, .status-on-hold) { background: rgba(245, 158, 11, .18); color: #fbbf24; }
.rg-recent-status.status-processing { background: rgba(63, 156, 255, .18); color: #7cc0ff; }
.rg-recent-status:is(.status-failed, .status-cancelled, .status-refunded) { background: rgba(220, 38, 38, .18); color: #f87171; }
.rg-recent-total { color: #fff; font-weight: 800; white-space: nowrap; }
/* Mon solde (Craft Compte, classes craft-refund-*) et champs de formulaire de Mon compte */
body.rg-account .craft-refund-space { padding: 0; }
body.rg-account .craft-refund-balance-card { background: linear-gradient(135deg, #1d3fae, #0e1647 70%); border: 1px solid var(--rg-border); border-radius: var(--rg-radius); }
body.rg-account .craft-refund-balance-label { color: rgba(255, 255, 255, .7); }
body.rg-account .craft-refund-balance-amount { color: #fff; font-size: 30px; }
body.rg-account .craft-refund-section-title { color: #fff; }
body.rg-account .craft-refund-card { background: var(--rg-surface); border: 1px solid var(--rg-border); border-radius: 14px; color: var(--rg-text-muted); }
body.rg-account .craft-refund-card-amount { color: #fff; }
body.rg-account .craft-refund-empty { padding: 28px; border: 1px dashed var(--rg-border); border-radius: var(--rg-radius); text-align: center; color: var(--rg-text-muted); background: transparent; }
body.rg-account .woocommerce-MyAccount-content :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="password"], select, textarea) { background: var(--rg-surface-inset) !important; border: 1px solid var(--rg-border) !important; color: #fff !important; border-radius: 12px !important; min-height: 48px; }
body.rg-account .woocommerce-MyAccount-content :is(input, select, textarea):focus { border-color: var(--rg-btn) !important; box-shadow: 0 0 0 3px rgba(63, 156, 255, .2) !important; }
body.rg-account .woocommerce-MyAccount-content .select2-container .select2-selection { min-height: 48px; background: var(--rg-surface-inset); border: 1px solid var(--rg-border); border-radius: 12px; }
body.rg-account .woocommerce-MyAccount-content .select2-container .select2-selection__rendered { line-height: 46px; color: #fff; }
body.rg-account .woocommerce-MyAccount-content .select2-container .select2-selection__arrow { height: 46px; }

/* ---------- Pages légales, contact, 404, blog (inc/pages.php, page.php, page-nous-contactez.php, 404.php, index.php) ---------- */
.rg-content svg:not([width]):not([class]) { width: 1em; height: 1em; } /* icônes héritées d'Elementor sans taille */
.rg-page-meta { margin: 6px 0 0; font-size: 13px; color: var(--rg-text-dim); }
.rg-side-title { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rg-text-dim); }
.rg-page-legal { max-width: 1180px; }
.rg-legal-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 32px; align-items: start; }
.rg-legal-side { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 22px; max-height: calc(100vh - 120px); overflow: auto; }
.rg-legal-nav, .rg-toc { padding: 16px; border: 1px solid var(--rg-border); border-radius: var(--rg-radius-sm); background: var(--rg-surface); }
.rg-legal-nav ul, .rg-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.rg-toc ol { counter-reset: toc; }
.rg-legal-nav a, .rg-toc a { display: block; padding: 7px 10px; border-radius: 8px; color: var(--rg-text-muted); font-size: 14px; line-height: 1.35; text-decoration: none; transition: background var(--rg-fast), color var(--rg-fast); }
.rg-toc li { counter-increment: toc; }
.rg-toc a::before { content: counter(toc) ". "; color: var(--rg-text-dim); }
.rg-legal-nav a:hover, .rg-toc a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.rg-legal-nav a[aria-current="page"] { background: rgba(63, 156, 255, .16); color: #fff; font-weight: 600; }
.rg-legal-body { padding: 28px 32px; border: 1px solid var(--rg-border); border-radius: var(--rg-radius); background: var(--rg-surface); line-height: 1.7; font-size: 15.5px; max-width: 820px; }
.rg-legal-body > :first-child { margin-top: 0; }
.rg-legal-body h2 { font-size: 20px; line-height: 1.3; scroll-margin-top: 100px; padding-top: 6px; }
.rg-legal-body h3 { font-size: 16px; }
.rg-legal-body ul, .rg-legal-body ol { padding-left: 1.3em; }
.rg-legal-body strong { color: #fff; }

.rg-contact-head p { margin: 8px 0 0; color: var(--rg-text-muted); max-width: 620px; }
.rg-contact-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
.rg-contact-card { display: flex; flex-direction: column; gap: 4px; padding: 22px; border: 1px solid var(--rg-border); border-radius: var(--rg-radius); background: var(--rg-surface); color: #fff; text-decoration: none; transition: transform var(--rg-ui) var(--rg-ease), border-color var(--rg-fast); }
.rg-contact-card:hover { transform: translateY(-2px); border-color: var(--rg-border-hover); }
.rg-contact-card strong { font-size: 17px; margin-top: 8px; }
.rg-contact-card span:not(.rg-contact-ico) { color: var(--rg-text-muted); overflow-wrap: anywhere; }
.rg-contact-card small { color: var(--rg-text-dim); font-size: 12.5px; }
.rg-contact-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: rgba(63, 156, 255, .16); color: var(--rg-btn); }
.rg-contact-card.is-wa .rg-contact-ico { background: rgba(37, 211, 102, .15); color: var(--rg-wa); }
.rg-contact-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.rg-contact-form, .rg-contact-help { padding: 26px; border: 1px solid var(--rg-border); border-radius: var(--rg-radius); background: var(--rg-surface); }
.rg-contact-form h2, .rg-contact-help h2 { margin: 0 0 18px; font-size: 20px; }
.rg-contact-form form { display: flex; flex-direction: column; gap: 14px; }
.rg-contact-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--rg-text-muted); }
.rg-contact-form button { align-self: flex-start; min-width: 160px; }
.rg-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rg-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rg-note { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--rg-radius-sm); font-size: 14px; }
.rg-note.is-ok { background: rgba(0, 212, 170, .12); border: 1px solid rgba(0, 212, 170, .4); color: #b8fff0; }
.rg-note.is-err { background: rgba(255, 98, 98, .1); border: 1px solid rgba(255, 98, 98, .4); color: #ffd0d0; }
.rg-contact-help ul { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-direction: column; gap: 14px; color: var(--rg-text-muted); font-size: 14px; line-height: 1.5; }
.rg-contact-help strong { display: block; color: #fff; }
.rg-contact-help .rg-legal-nav { padding: 0; border: 0; background: none; }

.rg-404-hero { text-align: center; padding: 40px 0 24px; max-width: 680px; margin: 0 auto; }
.rg-404-code { margin: 0; font-size: clamp(88px, 16vw, 150px); font-weight: 800; line-height: 1; background: linear-gradient(135deg, var(--rg-btn), var(--rg-accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rg-404-hero > p { color: var(--rg-text-muted); }
.rg-404-search { display: flex; align-items: center; gap: 10px; margin: 22px auto 18px; padding: 6px 6px 6px 18px; border: 1px solid var(--rg-border-hover); border-radius: 999px; background: var(--rg-surface-inset); color: var(--rg-text-dim); }
.rg-404-search input[type="search"] { flex: 1; min-width: 0; border: 0; background: none; color: #fff; font: inherit; min-height: 44px; outline: none; }
.rg-404-search .rg-btn { border-radius: 999px; }
.rg-404-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

.rg-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.rg-post-card { display: flex; flex-direction: column; border: 1px solid var(--rg-border); border-radius: var(--rg-radius); background: var(--rg-surface); color: #fff; text-decoration: none; overflow: hidden; transition: transform var(--rg-ui) var(--rg-ease), border-color var(--rg-fast); }
.rg-post-card:hover { transform: translateY(-2px); border-color: var(--rg-border-hover); }
.rg-post-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rg-post-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px; }
.rg-post-card-body > span:last-child { color: var(--rg-text-muted); font-size: 14px; }
.rg-article-cover { width: 100%; height: auto; border-radius: var(--rg-radius); margin-bottom: 24px; }
.rg-article .rg-content { line-height: 1.75; font-size: 16px; }

@media (max-width: 960px) {
	.rg-legal-layout, .rg-contact-layout { grid-template-columns: 1fr; }
	.rg-legal-side { position: static; max-height: none; }
	.rg-contact-cards { grid-template-columns: 1fr; }
	.rg-legal-body { padding: 20px; }
}
@media (max-width: 600px) {
	.rg-form-row { grid-template-columns: 1fr; }
	.rg-404-search { flex-wrap: wrap; border-radius: var(--rg-radius); padding: 10px; }
	.rg-404-search .rg-btn { width: 100%; }
}

/* ==========================================================================
   Mobile et tablette
   Points de rupture : 1180 (petit portable), 1024 (tablette paysage), 820 (tablette), 600 (téléphone).
   Éléments ajoutés pour le mobile : bouton et tiroir des filtres (archive-product.php),
   barre d'achat fixe de la fiche produit (.rg-mbar), balayage du carrousel (theme.js).
   ========================================================================== */
.rg-search-clear[hidden] { display: none !important; }
.rg-filters-btn, .rg-drawer-head, .rg-mbar { display: none; }

@media (max-width: 1180px) {
	ul.products.rg-grid, .rg-shop ul.products, .rg-related ul.products, .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.rg-shop-main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.rg-rail ul.products.rg-rail-track > li.product { flex-basis: calc((100% - 60px) / 4) !important; }
	.rg-pdp-grid { grid-template-columns: minmax(0, 1fr) 340px; }
	.rg-pdp-media { grid-column: 1; grid-row: 1; position: static; }
	.rg-pdp-info { grid-column: 1; grid-row: 2; }
	.rg-pdp-buy { grid-column: 2; grid-row: 1 / span 2; }
	.rg-mega { grid-template-columns: 250px minmax(0, 1fr); }
	.rg-mega-product { display: none; }
}

@media (max-width: 1024px) {
	/* Fiche produit : une colonne, bloc d'achat après les options, barre fixe en bas. */
	.rg-pdp { padding: 12px 16px 84px; } /* place pour la barre d'achat collante */
	.rg-pdp-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.rg-pdp-media, .rg-pdp-info, .rg-pdp-buy { grid-column: 1; grid-row: auto; }
	.rg-pdp-buy { position: static; scroll-margin-top: 150px; }
	.rg-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(8, 13, 45, .96); border-top: 1px solid var(--rg-border); backdrop-filter: blur(8px); transition: transform var(--rg-ui) var(--rg-ease); }
	.rg-mbar.is-hidden { transform: translateY(110%); }
	.rg-mbar-price { font-weight: 800; font-size: 18px; font-variant-numeric: tabular-nums; }
	.rg-mbar-price del { font-size: 13px; font-weight: 400; color: var(--rg-price-original); margin-right: 6px; }
	.rg-mbar-price ins { text-decoration: none; }
	.rg-mbar .rg-btn { min-height: 48px; padding: 0 28px; }
	body:has(.rg-mbar) .cwb-whatsapp-button { bottom: 88px !important; }
	.cwb-whatsapp-button { width: 48px !important; height: 48px !important; right: 12px !important; } /* Plus discret : il recouvrait les cartes produits. */
	.cwb-whatsapp-button svg { width: 26px !important; height: 26px !important; }

	/* Catégories : filtres en tiroir. */
	.rg-shop-layout { grid-template-columns: minmax(0, 1fr); }
	.rg-shop-side { position: fixed; inset: 0 auto 0 0; z-index: 60; width: min(340px, 88vw); max-height: none; padding: 0 16px 24px; overflow-y: auto; background: var(--rg-navy-dark); border-right: 1px solid var(--rg-border); box-shadow: var(--rg-shadow); transform: translateX(-105%); transition: transform var(--rg-ui) var(--rg-ease); }
	body.rg-filters-open .rg-shop-side { transform: none; }
	body.rg-filters-open::after { content: ""; position: fixed; inset: 0; z-index: 55; background: rgba(3, 6, 25, .55); }
	.rg-drawer-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin: 0 -16px 12px; padding: 12px 8px 12px 16px; background: var(--rg-navy-dark); border-bottom: 1px solid var(--rg-border); font-size: 17px; }
	.rg-filters-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
	.rg-toolbar { flex-wrap: wrap; }
	.rg-chips { order: 3; flex-basis: 100%; }
	.rg-chips:empty { display: none; }

	/* Grilles */
	.rg-account-nav { position: static; }
	body.rg-account .rg-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
	form.checkout, body.rg-funnel form.checkout { grid-template-columns: minmax(0, 1fr); }
	.rg-banner { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.rg-banner-visual { min-height: 220px; }
	.rg-banner-visual img { max-height: 220px; }
	.rg-cat-grid-3 { grid-template-columns: repeat(2, 1fr); }
	.rg-newsletter { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.rg-blog-grid { grid-template-columns: minmax(0, 1fr); }
	.rg-blog-main { min-height: 0; border: 1px solid var(--rg-border); }
	.rg-blog-main img { position: static; display: block; height: auto; aspect-ratio: 16 / 9; }
	.rg-blog-main-body { position: static; padding: 18px; background: none; }
}

@media (max-width: 820px) {
	.rg-container { padding: 0 16px; }

	/* En-tête sur deux lignes : logo + pays/langue/panier/compte, puis la recherche en pleine largeur. */
	.rg-header-main { flex-wrap: wrap; height: auto; gap: 8px 4px; padding-top: 8px; padding-bottom: 10px; }
	.rg-logo { margin-right: auto; }
	.rg-logo img { height: 40px; }
	.rg-header-middle { display: contents; }
	.rg-country { order: 2; }
	.rg-lang { order: 2; padding: 0 8px; }
	.rg-header-actions { order: 3; gap: 0; }
	.rg-search { order: 4; flex: 1 1 100%; max-width: none; }
	.rg-country .rcsp-trigger.rcsp-sc-badge--light { padding: 0 8px !important; gap: 6px; }
	.rg-country .rcsp-trigger { display: inline-flex !important; }
	.rg-country .rcsp-sc-content-desktop { display: inline-flex !important; align-items: center; }
	.rg-country .rcsp-sc-sep, .rg-country .rcsp-sc-cur { display: none !important; }
	.rg-search-panel { position: fixed; left: 8px; right: 8px; top: auto; max-height: 70vh; overflow-y: auto; }


	/* Navigation et méga-menu (touchers : 1er = sous-catégories, 2e = page). */
	.rg-nav-inner { height: 52px; overflow-x: auto; scrollbar-width: none; }
	.rg-catalogue-panel { position: fixed; left: 8px; right: 8px; top: auto; width: auto; max-width: none; max-height: calc(100dvh - 190px); overflow-y: auto; }
	.rg-mega { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	/* Accordéon vertical (modèle Gameseal / Giftshopsn) : catégorie > chevron, sous-catégories dessous. */
	.rg-mega-roots { flex-direction: column; overflow: visible; border-right: 0; padding: 8px; gap: 0; }
	.rg-mega-roots > li { border-bottom: 1px solid var(--rg-border); }
	.rg-mega-roots > li:last-child { border-bottom: 0; }
	.rg-mega-root { padding: 14px 10px; font-size: 15px; border-radius: 10px; }
	.rg-mega-root span { white-space: normal; }
	.rg-mega-root .rg-icon-chevron { display: block; transform: rotate(0); transition: transform var(--rg-fast) var(--rg-ease); }
	.rg-mega-root.is-active .rg-icon-chevron { transform: rotate(180deg); }
	.rg-mega-root.is-active { background: transparent; color: var(--rg-accent); }
	.rg-mega-all { display: block; margin: 4px 0 0; padding: 14px 10px; }
	.rg-mega-subs { display: none; }
	.rg-mega-roots .rg-mega-sub { padding: 0 0 10px; }
	.rg-mega-roots .rg-mega-sub .rg-mega-subhead { margin-bottom: 4px; padding: 4px 10px 6px 24px; }
	.rg-mega-roots .rg-mega-sub .rg-mega-subhead strong { display: none; }
	.rg-mega-roots .rg-mega-sub .rg-mega-subhead a { margin-left: auto; color: var(--rg-accent); font-weight: 600; }
	.rg-mega-links { columns: 1; }
	.rg-mega-links a { padding: 11px 10px 11px 24px; font-size: 15px; }

	/* Carrousel : un seul panneau, droit, balayable. */
	.rg-hero { --rg-hero-skew: 0deg; margin-bottom: 14px; overflow: visible; border-radius: 0; }
	/* L'image principale (très large) est affichée entière : recadrée en 16/9, son texte et son bouton étaient coupés. */
	/* Bande qui suit le doigt jusqu'aux bords de l'écran ; l'écart de 16 px cache la bannière suivante au repos. */
	.rg-hero-track { height: auto; aspect-ratio: auto; gap: 16px; margin: 0 -16px; padding: 0 16px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.rg-hero-track::-webkit-scrollbar { display: none; }
	.rg-hero-panel, .rg-hero-panel.is-active { flex: 0 0 100%; transform: none; border-radius: 14px; scroll-snap-align: center; scroll-snap-stop: always; }
	.rg-hero-media { position: static; transform: none; }
	.rg-hero-img-side { display: none; }
	.rg-hero-panel .rg-hero-img-main { position: static; display: block; width: 100%; height: auto; object-fit: contain; opacity: 1; }
	.rg-hero-media picture { display: contents; }
	.rg-hero-panel.has-mobile .rg-hero-img-main { aspect-ratio: 1080 / 580; object-fit: cover; }
	.rg-hero-dots { position: absolute; left: 0; right: 0; bottom: 3px; z-index: 2; display: flex; justify-content: center; pointer-events: none; } /* Dans la bannière, comme sur Gameseal. */
	.rg-hero-dots button { display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; background: transparent; cursor: pointer; pointer-events: auto; }
	.rg-hero-dots button::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .55); box-shadow: 0 0 3px rgba(0, 0, 0, .6); transition: background-color var(--rg-fast); }
	.rg-hero-dots button.is-active::before { background: #fff; }

	/* Rails de produits : défilement au doigt, flèches inutiles. */
	.rg-rail-arrow, .rg-brands-arrow { display: none !important; }
	.rg-rail ul.products.rg-rail-track { gap: 12px; scroll-padding: 0 16px; }
	.rg-rail ul.products.rg-rail-track > li.product { flex-basis: 42% !important; }
	.rg-brands { margin-bottom: 16px; }
	.rg-brands ul { gap: 16px; margin: 0 -16px; padding: 0 16px; scroll-padding-inline: 16px; } /* Défile jusqu'aux bords de l'écran, comme les rangées de produits. */
	.rg-brands a { width: min-content; min-width: 58px; gap: 4px; padding: 4px 1px; font-size: 10.5px; } /* Assez large pour le mot le plus long : « PlayStation » était coupé. */
	.rg-brand-img { width: 24px; height: 24px; }

	.rg-section-head { align-items: center; }
	.rg-section-title { font-size: 22px; }
	.rg-shop-main ul.products, ul.products.rg-grid, .rg-shop ul.products, .rg-related ul.products, .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
	.rg-cat-grid-3, .rg-cat-grid-2 { grid-template-columns: minmax(0, 1fr); }
	.rg-cat-card { min-height: 220px; }
	.rg-footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
	.rg-footer-bottom { flex-direction: column; align-items: flex-start; }
	.rg-review-list { grid-template-columns: minmax(0, 1fr); }
	.rg-page { padding: 20px 16px 20px; }
	.rg-page-title { font-size: 28px; }
	.rg-shop-head { gap: 12px; }
	.rg-shop-title { font-size: 26px; }
}

@media (max-width: 600px) {
	.rg-header-actions .rg-iconbtn { width: 40px; }
	.rg-pdp-title { font-size: 24px; }
	.rg-info-cards { grid-template-columns: minmax(0, 1fr); }
	.rg-pdp-block { padding: 18px 16px; }
	.rg-pdp-buy { padding: 18px 16px; }
	.rg-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rg-pdp-options .csb-variations-grid { grid-template-columns: minmax(0, 1fr) !important; }
	.rg-pdp-media .flex-control-thumbs li { flex-basis: calc((100% - 24px) / 4); }
	.rg-toolbar-sort .rg-muted, .rg-toolbar-sort .rg-select-wrap:has(.rg-select-xs) { display: none; }
	.rg-toolbar-sort { flex: 1 1 auto; justify-content: flex-end; }
	.rg-banner-body { padding: 24px 20px; }
	.rg-footer-grid { grid-template-columns: minmax(0, 1fr); }
	.rg-pay-logos-lg li { width: 58px; height: 32px; padding: 4px 7px; }
	.woocommerce .col2-set { grid-template-columns: minmax(0, 1fr); }
	/* Image au ratio 16/11 des cartes produit, statut sous le nom : la colonne de 48 px déformait l'image et coupait le nom. */
	.rg-recent-list a { grid-template-columns: 81px minmax(0, 1fr); gap: 4px 12px; }
	.rg-recent-list a > :nth-child(4) { display: none; }
	.rg-recent-img { grid-row: 1 / span 2; align-self: start; }
	.rg-recent-img img { width: 81px; height: 56px; border-radius: 8px; }
	.rg-recent-body strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; }
	.rg-recent-status { grid-column: 2; justify-self: start; }
	.rg-consent { width: calc(100vw - 16px); bottom: 8px; padding: 16px; }
	.rg-consent-head { flex-wrap: wrap; }
	.rg-consent-head .rg-consent-link { padding-left: 0; }
	.rg-consent-actions .rg-btn { flex: 1 1 0; padding: 0 12px; min-width: 0; }
	.rg-consent-more { width: 100%; justify-content: center; margin-left: 0; }
}
@media (max-width: 1024px) {
	.rg-drawer-head .rg-iconbtn { border: 0; background: transparent; color: #fff; cursor: pointer; }
	.rg-drawer-head .rg-iconbtn:hover { background: var(--rg-surface-inset); }
}

/* Bouton pays / devise / langue (regon_country_switcher) : « drapeau  XAF / FR ». */
.rg-country .rg-locale { display: inline-flex !important; align-items: center; gap: 12px; height: 44px; padding: 0 14px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: #fff; font: inherit; font-size: 15px; font-weight: 600; letter-spacing: .02em; cursor: pointer; white-space: nowrap; transition: background-color var(--rg-fast) var(--rg-ease), border-color var(--rg-fast) var(--rg-ease); }
.rg-country .rg-locale:hover { background: var(--rg-surface-inset); border-color: var(--rg-border); }
.rg-country .rg-locale .rcsp-sc-flag { font-size: 22px; line-height: 1; }
.rg-locale-text { color: var(--rg-text-muted); }
@media (max-width: 820px) {
	.rg-country .rg-locale { gap: 8px; padding: 0 8px; font-size: 13px; }
	.rg-country .rg-locale .rcsp-sc-flag { font-size: 19px; }
}

/* Fiche produit : image plus étroite, sélecteurs région/montant sous l'image et les infos (colonnes 1 et 2), prix en blanc. */
.rg-pdp-grid { grid-template-columns: minmax(0, 34fr) minmax(0, 66fr) 360px; row-gap: 24px; }
.rg-pdp-media { grid-column: 1; grid-row: 1; position: static; } /* plus « sticky » : elle recouvrait les montants placés dessous */
.rg-pdp-info { grid-column: 2; grid-row: 1; }
.rg-pdp-options { grid-column: 1 / 3; grid-row: 2; min-width: 0; }
.rg-pdp-options:empty { display: none; }
.rg-pdp-buy { grid-column: 3; grid-row: 1 / span 2; }
.rg-pdp-price .price, .rg-pdp-price .price .amount, .rg-mbar-price, .rg-mbar-price .amount { color: #fff !important; }
.rg-pdp-price .price ins .amount, .rg-mbar-price ins .amount { color: var(--rg-sale) !important; }
@media (max-width: 1180px) {
	.rg-pdp-grid { grid-template-columns: minmax(0, 1fr) 340px; }
	.rg-pdp-media { grid-column: 1; grid-row: 1; max-width: 520px; }
	.rg-pdp-info { grid-column: 1; grid-row: 2; }
	.rg-pdp-options { grid-column: 1; grid-row: 3; }
	.rg-pdp-buy { grid-column: 2; grid-row: 1 / span 3; }
}
@media (max-width: 1024px) {
	.rg-pdp-grid { grid-template-columns: minmax(0, 1fr); }
	.rg-pdp-media, .rg-pdp-info, .rg-pdp-options, .rg-pdp-buy { grid-column: 1; grid-row: auto; max-width: none; }
}

/* Bouton « remonter en haut » (footer.php), au-dessus du bouton WhatsApp. */
.rg-totop { position: fixed; right: 26px; bottom: 96px; z-index: 44; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--rg-border-hover); border-radius: 50%; background: rgba(14, 22, 71, .92); color: #fff; box-shadow: var(--rg-shadow); cursor: pointer; transition: transform var(--rg-fast) var(--rg-ease), background-color var(--rg-fast) var(--rg-ease); }
.rg-totop[hidden] { display: none; }
.rg-totop .rg-icon { transform: rotate(180deg); }
.rg-totop:hover { background: var(--rg-btn); border-color: var(--rg-btn); transform: translateY(-2px); }
.rg-totop:focus-visible { outline: 3px solid var(--rg-accent); outline-offset: 2px; }
@media (max-width: 1024px) {
	body:has(.rg-mbar) .rg-totop { bottom: 164px; }
}

/* Rails : pendant le défilement, Chrome dessinait parfois les images (couche animée du zoom au survol)
   hors de leur carte. Chaque carte découpe et isole son contenu. */
.rg-rail ul.products.rg-rail-track > li.product, ul.products li.product .rg-card { contain: paint; isolation: isolate; }
.rg-card-media { isolation: isolate; transform: translateZ(0); }
/* Le défilement horizontal du rail coupe aussi en hauteur : marge pour ne pas rogner la bordure des cartes (zoom navigateur, demi-pixels). */
.rg-rail ul.products.rg-rail-track { padding-top: 4px !important; padding-bottom: 6px !important; }

/* Fiche produit : avis important sous les montants, sur les colonnes 1 et 2 ; bloc d'achat sur 3 rangées. */
.rg-pdp-notice { grid-column: 1 / 3; grid-row: 3; min-width: 0; }
.rg-pdp-buy { grid-row: 1 / span 3; }
@media (max-width: 1180px) {
	.rg-pdp-notice { grid-column: 1; grid-row: 4; }
	.rg-pdp-buy { grid-row: 1 / span 4; }
}
@media (max-width: 1024px) {
	.rg-pdp-notice, .rg-pdp-buy { grid-column: 1; grid-row: auto; }
}

/* Fiche produit : même format d'image que les cartes produit (16/11), sans zoom au survol. */
.rg-pdp-media .woocommerce-product-gallery__image img { aspect-ratio: 16 / 11; object-fit: cover; }

/* Message « Ajouté au panier » (craftCartOpen, theme.js) : remplace le tiroir de Craft Cart. */
.rg-toast { position: fixed; left: 50%; bottom: 24px; z-index: 9950; display: flex; align-items: center; gap: 16px; padding: 12px 12px 12px 20px; border-radius: 14px; border: 1px solid var(--rg-border-hover); background: #0e1647; color: #fff; font-weight: 600; box-shadow: var(--rg-shadow); transform: translate(-50%, 20px); opacity: 0; pointer-events: none; transition: transform var(--rg-ui) var(--rg-ease), opacity var(--rg-ui) var(--rg-ease); }
.rg-toast.is-open { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.rg-toast .rg-btn { min-height: 40px; padding: 0 16px; font-size: 13px; }
@media (max-width: 1024px) { body:has(.rg-mbar) .rg-toast { bottom: 88px; } }
/* Barre de navigation : liens des sous-catégories les plus vendues, sur une ligne (défilement au doigt sur mobile). */
.rg-menu { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.rg-menu::-webkit-scrollbar { display: none; }
.rg-menu > li { flex: 0 0 auto; }
.rg-menu > li > a { white-space: nowrap; font-size: 14px; }
.rg-catalogue { flex: 0 0 auto; }
/* Finalisation : prénom caché (rempli avec « Client », inc/woocommerce.php). */
form.checkout .rg-field-hidden, form.checkout #billing_first_name_field { display: none !important; }
form.checkout #billing_last_name_field { width: 100% !important; float: none !important; grid-column: 1 / -1; }
.rg-pdp-about > .rg-kicker { display: block; margin-bottom: 6px; }
/* L'attribut hidden doit l'emporter sur display: flex du bandeau et de ses boutons. */
.rg-consent[hidden], .rg-consent [hidden] { display: none !important; }

/* ---------- Avis clients (inc/reviews.php) ---------- */
.rg-rating-link { display: inline-flex; align-items: center; gap: 8px; color: var(--rg-text-muted); font-size: 14px; text-decoration: none; }
.rg-rating-link .star-rating { color: var(--rg-warn); margin: 0; }
.rg-rating-link strong { color: #fff; }
.rg-rating-link span { text-decoration: underline; text-underline-offset: 3px; }
.rg-rating-link:hover span { color: #fff; }
.rg-reviews { scroll-margin-top: 150px; padding: 8px 0; }
.rg-reviews-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.rg-reviews-score { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.rg-reviews-score .star-rating { color: var(--rg-warn); margin: 0; font-size: 18px; }
.rg-reviews-score strong { font-size: 20px; font-weight: 600; color: #fff; }
.rg-reviews-count { margin: 6px 0 0; color: var(--rg-text-muted); font-size: 14px; }
.rg-reviews-give { flex: 0 0 auto; margin-top: 88px; color: var(--rg-btn); font-size: 14px; font-weight: 700; text-decoration: none; }
.rg-reviews-give:hover { text-decoration: underline; text-underline-offset: 3px; }
.rg-review-list { list-style: none; margin: 0; padding: 0; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rg-review-list li { padding: 20px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-review-list li[hidden] { display: none; }
.rg-review-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.rg-review-avatar { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--rg-surface-hover); color: #fff; font-weight: 600; font-size: 14px; }
.rg-review-who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rg-review-who strong { color: #fff; font-size: 14px; }
.rg-review-who time { color: var(--rg-text-muted); font-size: 12.5px; }
.rg-review-verified { margin-left: auto; color: var(--rg-cashback); font-size: 12px; white-space: nowrap; }
.rg-review-list .star-rating { color: var(--rg-warn); margin: 0; font-size: 13px; }
.rg-review-list p { margin: 10px 0 0; color: var(--rg-text-muted); font-size: 14px; line-height: 1.55; }
/* Accueil : avis en rangée qui glisse de gauche à droite. */
.rg-reviews-home .rg-review-list { display: flex !important; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.rg-reviews-home .rg-review-list::-webkit-scrollbar { display: none; }
.rg-reviews-home .rg-review-list li { flex: 0 0 calc((100% - 32px) / 3); min-width: 0; scroll-snap-align: start; }
@media (max-width: 820px) {
	.rg-reviews-home .rg-review-list { gap: 12px; margin: 0 -16px; padding: 0 16px; scroll-padding-inline: 16px; }
	.rg-reviews-home .rg-review-list li { flex-basis: 84%; }
}
.rg-reviews-more { display: flex; margin: 20px auto 0; }
.rg-reviews-more[hidden] { display: none; }
@media (max-width: 820px) {
	.rg-review-list { grid-template-columns: minmax(0, 1fr); }
	.rg-reviews-give { margin-top: 0; }
	.rg-reviews-head { flex-direction: column; }
}
/* Page « Donner mon avis » */
.rg-review-form { display: flex; flex-direction: column; gap: 16px; margin-top: 18px; }
.rg-review-item { margin: 0; padding: 16px; border: 1px solid var(--rg-border); border-radius: var(--rg-radius); background: var(--rg-surface); }
.rg-review-item legend { display: flex; align-items: center; gap: 12px; padding: 0; float: left; width: 100%; margin-bottom: 12px; color: #fff; }
.rg-review-thumb img { width: 64px; height: 44px; object-fit: cover; border-radius: 8px; }
.rg-stars-input { clear: both; display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.rg-stars-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rg-stars-input label { font-size: 32px; line-height: 1; color: rgba(255, 255, 255, .2); cursor: pointer; transition: color var(--rg-fast); }
.rg-stars-input label:hover, .rg-stars-input label:hover ~ label, .rg-stars-input input:checked ~ label { color: var(--rg-warn); }
.rg-stars-input input:focus-visible + label { outline: 2px solid var(--rg-accent); border-radius: 4px; }
.rg-review-comment { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; font-size: 13px; color: var(--rg-text-muted); }
.rg-review-form > .rg-btn { align-self: flex-start; }

/* « Me prévenir du retour en stock » (inc/stock-alert.php) */
.rg-stock-alert { display: flex; flex-direction: column; gap: 10px; }
.rg-stock-alert-title { margin: 0; font-size: 13px; color: var(--rg-text-muted); line-height: 1.5; }
.rg-stock-alert-row { display: flex; gap: 8px; }
.rg-stock-alert-row[hidden] { display: none; }
.rg-stock-alert-row input { flex: 1 1 auto; min-width: 0; min-height: 46px; }
.rg-stock-alert-row .rg-btn { flex: 0 0 auto; min-height: 46px; }
.rg-stock-alert-msg { margin: 0; padding: 10px 12px; border-radius: 10px; font-size: 13px; }
.rg-stock-alert-msg.is-ok { background: rgba(0, 212, 170, .12); color: #b8fff0; }
.rg-stock-alert-msg.is-err { background: rgba(255, 98, 98, .1); color: #ffd0d0; }
@media (max-width: 480px) { .rg-stock-alert-row { flex-direction: column; } }
.rg-review-list .star-rating, .rg-rating-link .star-rating, .rg-reviews-score .star-rating, .rg-review-item .star-rating { float: none !important; display: inline-block; }
/* Dans le bloc d'achat (étroit) : champ e-mail puis bouton, l'un sous l'autre. */
.rg-pdp-buy .rg-stock-alert-row { flex-direction: column; }
.rg-pdp-buy .rg-stock-alert-row input, .rg-pdp-buy .rg-stock-alert-row .rg-btn { width: 100% !important; }
.rg-reviews, .rg-review-list li { text-align: left; }
.rg-review-who { align-items: flex-start; }
.rg-review-who time { margin: 0; }

/* Rond de chargement de Craft Cart (modules/craft-cart) : sur le bouton panier rond de la fiche, il remplace l'icône. */
.rg-buy-cart:has(.cc-spin) .rg-icon { display: none; }
.rg-buy-cart .cc-spin { width: 22px !important; height: 22px !important; margin: 0 !important; border-width: 3px !important; }
.rg-card-btn .cc-spin { margin-left: 8px; }
/* Badge du panier : Craft Cart le masque à 0 et le réaffiche en inline-flex. */
.rg-cart-count.craftcart-btn-badge { align-items: center; justify-content: center; }
/* Panier latéral (Craft Cart) aux couleurs Regon : disposition Gameseal, lignes promo et cashback façon Giftshopsen.
   Les couleurs posées ici priment sur celles des réglages Craft Cart (variables sur le tiroir, pas sur :root). */
#craftcart-drawer { --cc-bg: var(--rg-navy-dark); --cc-surface: var(--rg-surface-inset); --cc-border: var(--rg-border); --cc-text: #fff; --cc-muted: var(--rg-text-muted); --cc-cta-bg: var(--rg-btn); --cc-cta-text: var(--rg-on-btn); --cc-cta2-bg: transparent; --cc-cta2-text: #fff; --cc-cta2-border: var(--rg-border-hover); background: var(--rg-navy-dark); color: #fff; font-family: inherit; border-left: 1px solid var(--rg-border); }
#craftcart-overlay { background: rgba(3, 6, 25, .6) !important; }
#craftcart-drawer .craftcart-header { background: var(--rg-navy-dark); border-bottom: 1px solid var(--rg-border); }
#craftcart-drawer .craftcart-header__title { font-size: 20px; font-weight: 800; color: #fff; }
#craftcart-drawer .craftcart-header-count { color: var(--rg-text-muted); font-weight: 600; }
#craftcart-drawer .craftcart-close-btn { background: transparent; border: 0; color: #fff; border-radius: 10px; }
#craftcart-drawer .craftcart-close-btn:hover { background: var(--rg-surface-hover); }
#craftcart-drawer .craftcart-body { background: var(--rg-navy-dark); }
#craftcart-drawer .craftcart-item { background: var(--rg-surface); border: 1px solid var(--rg-border); border-radius: 14px; }
#craftcart-drawer .craftcart-item__img { position: relative; border-radius: 10px; overflow: hidden; }
#craftcart-drawer .craftcart-item__name { color: #fff; font-weight: 600; }
#craftcart-drawer .craftcart-item__variation { color: var(--rg-text-muted); }
#craftcart-drawer .craftcart-item__actions { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
#craftcart-drawer .craftcart-item__actions .craftcart-item__qty { margin: 0; }
#craftcart-drawer .rg-wish-cart { width: 34px; height: 34px; flex: 0 0 34px; background: transparent; border: 1px solid var(--rg-border-hover); color: var(--rg-wish); }
#craftcart-drawer .rg-wish-cart.is-on .rg-icon { fill: currentColor; }
#craftcart-drawer .craftcart-item__qty { background: var(--rg-surface-inset); border: 1px solid var(--rg-border-hover); border-radius: 10px; }
#craftcart-drawer .craftcart-qty-btn { background: transparent; color: #fff; border: 0; }
#craftcart-drawer .craftcart-qty-btn:hover { background: var(--rg-surface-hover); }
#craftcart-drawer .craftcart-qty-val { color: #fff; background: transparent; }
#craftcart-drawer .craftcart-item__remove { color: var(--rg-text-muted); }
#craftcart-drawer .craftcart-item__remove:hover { color: #ff6b6b; }
#craftcart-drawer .craftcart-item__price { color: #fff; font-weight: 800; }
#craftcart-drawer .craftcart-item__price-old, #craftcart-drawer .craftcart-item__price-old bdi { color: var(--rg-price-original) !important; }
#craftcart-drawer .craftcart-item__price-new, #craftcart-drawer .craftcart-item__price-new bdi { color: var(--rg-sale) !important; }
#craftcart-drawer .craftcart-badge { background: var(--rg-sale); color: #fff; font-weight: 800; border-radius: 6px; }
#craftcart-drawer .craftcart-upsells { background: transparent; border-top: 1px solid var(--rg-border); }
#craftcart-drawer .craftcart-upsells__title { color: var(--rg-text-muted); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
#craftcart-drawer .craftcart-upsells__item { padding: 6px; margin: -6px; border-radius: 12px; transition: background-color var(--rg-fast); }
#craftcart-drawer .craftcart-upsells__item:hover { background: var(--rg-surface-inset); }
#craftcart-drawer .craftcart-upsells__img { position: relative; border-radius: 8px; overflow: hidden; }
#craftcart-drawer .craftcart-upsells__name { color: #fff; }
#craftcart-drawer .craftcart-upsells__price, #craftcart-drawer .craftcart-upsells__price bdi { color: var(--rg-text-muted); }
#craftcart-drawer .craftcart-upsells__price ins, #craftcart-drawer .craftcart-upsells__price ins bdi { color: var(--rg-sale); text-decoration: none; }
#craftcart-drawer .craftcart-upsells__add { width: 40px; height: 40px; border-radius: 10px; border: 0; background: var(--rg-btn); color: #fff; }
#craftcart-drawer .craftcart-upsells__add:hover { background: var(--rg-btn-hover); }
#craftcart-drawer #craftcart-footer, #craftcart-drawer .craftcart-footer { background: var(--rg-navy-deep); border-top: 1px solid var(--rg-border); }
#craftcart-drawer .craftcart-coupon { border: 0; padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--rg-border) !important; }
#craftcart-drawer .craftcart-coupon-msg { min-height: 0; margin-top: 0; } /* Message d'erreur vide : ne réserve plus de hauteur. */
#craftcart-drawer .craftcart-coupon-msg:not(:empty) { margin-top: 6px; }
#craftcart-drawer .craftcart-footer__totals { margin-top: 0; }
#craftcart-drawer .craftcart-footer__totals--extra { margin-top: 4px !important; } /* Trait entre le code promo et les totaux (demande du client). */
#craftcart-drawer .craftcart-footer__total-row { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--rg-border); }
#craftcart-drawer .craftcart-footer__row--fees > span:last-child { color: var(--rg-cashback) !important; font-weight: 700; }
#craftcart-drawer .craftcart-coupon-toggle { display: none; }
#craftcart-drawer .craftcart-coupon-body { display: block !important; max-height: none !important; padding: 0 !important; }
#craftcart-drawer .craftcart-coupon-row { display: flex; gap: 8px; }
#craftcart-drawer input.craftcart-coupon-input { flex: 1 1 auto; height: 44px; background: var(--rg-surface-inset); color: #fff; border: 1px solid var(--rg-border-hover); border-radius: 10px; }
#craftcart-drawer input.craftcart-coupon-input:focus { border-color: var(--rg-btn); box-shadow: 0 0 0 3px rgba(63, 156, 255, .2); outline: none; }
#craftcart-drawer input.craftcart-coupon-input::placeholder { color: var(--rg-text-dim); }
#craftcart-drawer .craftcart-coupon-btn { height: 44px; padding: 0 18px; border-radius: 10px; border: 0; background: var(--rg-surface-hover); color: #fff; font-weight: 700; }
#craftcart-drawer .craftcart-coupon-btn:hover { background: var(--rg-btn); }
#craftcart-drawer .craftcart-coupon-tag { background: rgba(0, 212, 170, .12); color: var(--rg-cashback); border-radius: 8px; }
#craftcart-drawer .craftcart-footer__totals { display: flex; flex-direction: column; gap: 6px; }
#craftcart-drawer .craftcart-footer__row { display: flex; justify-content: space-between; gap: 12px; color: var(--rg-text-muted); font-size: 14px; }
#craftcart-drawer .craftcart-footer__row > span:last-child, #craftcart-drawer .craftcart-footer__row bdi { color: #fff; font-weight: 700; }
#craftcart-drawer .craftcart-footer__row--discount > span:last-child, #craftcart-drawer .craftcart-footer__row--saved > span:last-child, #craftcart-drawer .craftcart-footer__row--saved bdi { color: var(--rg-sale) !important; }
#craftcart-drawer .craftcart-footer__row--cashback > span:last-child, #craftcart-drawer .craftcart-footer__row--cashback bdi { color: var(--rg-cashback) !important; }
#craftcart-drawer .craftcart-footer__row--cashback.is-off > span:last-child { color: var(--rg-text-dim) !important; font-weight: 500; font-size: 13px; }
#craftcart-drawer .craftcart-footer__row--fees > span:last-child { color: var(--rg-text-muted); font-weight: 500; }
#craftcart-drawer .craftcart-footer__totals--extra { margin-top: 6px; }
#craftcart-drawer .craftcart-cashback-nudge { margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(0, 212, 170, .35); border-radius: 10px; background: rgba(0, 212, 170, .08); font-size: 13px; color: var(--rg-text-muted); }
#craftcart-drawer .craftcart-cashback-nudge p { margin: 0 0 4px; }
#craftcart-drawer .craftcart-cashback-nudge strong, #craftcart-drawer .craftcart-cashback-nudge bdi, #craftcart-drawer .craftcart-cashback-nudge a { color: var(--rg-cashback); font-weight: 700; }
#craftcart-drawer .craftcart-footer__total-row { border-top: 1px solid var(--rg-border); }
#craftcart-drawer .craftcart-footer__label { color: #fff; font-weight: 700; }
#craftcart-drawer .craftcart-footer__price, #craftcart-drawer .craftcart-footer__price bdi { color: #fff; }
#craftcart-drawer .craftcart-footer__cta { background: var(--rg-btn); color: var(--rg-on-btn); border-radius: 999px; text-transform: none; letter-spacing: 0; font-size: 16px; font-weight: 700; }
#craftcart-drawer .craftcart-footer__cta:hover { background: var(--rg-btn-hover); }
#craftcart-drawer .craftcart-footer__cta2 { background: transparent; color: #fff; border: 1px solid var(--rg-border-hover); border-radius: 999px; font-weight: 700; }
#craftcart-drawer .craftcart-footer__cta2:hover { background: var(--rg-surface-inset); }
#craftcart-drawer .craftcart-empty { color: var(--rg-text-muted); }
#craftcart-drawer .craftcart-empty__title { margin: 12px 0 4px; font-size: 17px; font-weight: 700; color: #fff; }
#craftcart-drawer .craftcart-empty__sub { margin: 0 0 16px; font-size: 14px; color: var(--rg-text-muted); }
#craftcart-drawer .craftcart-shop-btn { background: var(--rg-btn); color: #fff; border-radius: 999px; }
#craftcart-drawer .craftcart-body::-webkit-scrollbar-thumb { background: var(--rg-surface-hover); }

/* ---------- Liste de souhaits (inc/wishlist.php) ---------- */
.rg-wish { display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(8, 13, 45, .72); color: #fff; cursor: pointer; transition: transform var(--rg-fast) var(--rg-ease), background-color var(--rg-fast), color var(--rg-fast); }
.rg-wish .rg-icon { fill: transparent; transition: fill var(--rg-fast); }
.rg-wish:hover { transform: scale(1.1); background: rgba(8, 13, 45, .9); }
.rg-wish.is-on { color: var(--rg-wish); }
.rg-wish.is-on .rg-icon { fill: currentColor; }
.rg-wish.is-pop { animation: rg-wish-pop .35s var(--rg-ease); }
@keyframes rg-wish-pop { 40% { transform: scale(1.3); } 100% { transform: scale(1); } }
.rg-wish:focus-visible { outline: 2px solid var(--rg-accent); outline-offset: 2px; }
/* Carte : logo de plateforme en haut à droite ; le cœur glisse juste en dessous au survol de la carte.
   Toujours visible s'il est actif (produit dans la liste) et sur écran tactile (pas de survol). */
.rg-card { position: relative; }
.rg-wish-card { position: absolute; top: 42px; right: 8px; z-index: 3; width: 28px; height: 28px; opacity: 0; transform: translateY(-10px); pointer-events: none; transition: opacity var(--rg-ui) var(--rg-ease), transform var(--rg-ui) var(--rg-ease), background-color var(--rg-fast), color var(--rg-fast); }
.rg-wish-card .rg-icon { width: 16px; height: 16px; }
.rg-card:hover .rg-wish-card, .rg-card:has(:focus-visible) .rg-wish-card, .rg-wish-card.is-on { opacity: 1; transform: none; pointer-events: auto; }
.rg-wish-card:hover { color: var(--rg-wish); transform: scale(1.1); }
@media (hover: none) { .rg-wish-card { opacity: 1; transform: none; pointer-events: auto; } }
.rg-card-media:not(:has(.rg-card-platform)) + .rg-wish-card { top: 8px; } /* Pas de logo : le cœur prend sa place. */
/* Fiche produit : cœur à droite du titre. */
.rg-pdp-titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.rg-wish-pdp { flex: 0 0 44px; width: 44px; height: 44px; margin-top: 2px; background: var(--rg-surface-inset); border: 1px solid var(--rg-border); }
/* En-tête : compteur rouge sur le cœur. */
.rg-wish-head { margin-right: -5px; } /* Cœur un peu plus près du panier. */
.rg-wish-head .rg-wish-count { background: var(--rg-wish); color: #fff; }
.rg-wish-head .rg-wish-count[hidden] { display: none; }
.rg-wish-grid { margin-top: 8px; }
.rg-empty a.rg-btn-primary, body.rg-account .woocommerce-MyAccount-content a.rg-btn-primary, body.rg-account .woocommerce-MyAccount-content a.rg-btn-primary:hover { color: #fff !important; }
.woocommerce-MyAccount-content ul.products.rg-wish-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1024px) { .woocommerce-MyAccount-content ul.products.rg-wish-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rg-wish-account-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.rg-wish-account-head h2 { margin: 0; font-size: 20px; color: #fff; }
.rg-wish-account-head a { color: var(--rg-accent); font-size: 14px; font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .rg-wish.is-pop { animation: none; } }

/* ---------- Promotions (inc/promos.php) ---------- */
.rg-badge-sale { left: 12px !important; right: auto !important; background: var(--rg-sale); color: #fff; font-size: 12px; }
.rg-promo-box { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; border-radius: var(--rg-radius-sm); background: rgba(63, 156, 255, .1); border: 1px solid rgba(63, 156, 255, .35); }
.rg-promo-pct { padding: 3px 10px; border-radius: 999px; background: var(--rg-sale); color: #fff; font-weight: 800; font-size: 13px; }
.rg-promo-left { color: var(--rg-text-muted); font-size: 13px; }
.rg-promo-left strong { color: #fff; font-variant-numeric: tabular-nums; }
.rg-menu > li.rg-menu-promo > a { color: var(--rg-sale); }
.rg-menu > li.rg-menu-promo > a::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rg-sale); box-shadow: 0 0 0 4px rgba(63, 156, 255, .2); }

/* -------------------------------------------------------------------------- */
/* Téléphone (modèle Gameseal) : en-tête ☰ + menu latéral, rails pleine largeur */
/* -------------------------------------------------------------------------- */
.rg-burger, .rg-navdrawer-head, .rg-navdrawer-backdrop { display: none; }

@media (max-width: 820px) {
	/* Ligne 1 : ☰, logo, pays/langue, favoris, panier, compte. Ligne 2 : recherche, même barre qu'au bureau. */
	.rg-header-main { gap: 8px 2px; }
	.rg-burger { display: grid; order: 0; margin-left: -8px; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
	.rg-navdrawer-head .rg-iconbtn { padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
	.rg-logo { order: 1; }
	.rg-logo img { height: 36px; }
	.rg-header-actions .rg-iconbtn { width: 38px; }
	.rg-country .rcsp-trigger { height: 34px !important; border-radius: 999px !important; font-size: 13px !important; }

	/* La barre de navigation devient le menu latéral. */
	.rg-nav { position: fixed; inset: 0 auto 0 0; z-index: 9950; width: min(88vw, 380px); display: flex; flex-direction: column; border-bottom: 0; border-right: 1px solid var(--rg-border); transform: translateX(-102%); transition: transform var(--rg-ui) var(--rg-ease); visibility: hidden; }
	body.rg-drawer-open .rg-nav { transform: none; visibility: visible; }
	.rg-navdrawer-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 8px 10px 16px; border-bottom: 1px solid var(--rg-border); font-weight: 800; font-size: 18px; }
	.rg-nav-inner { flex: 1 1 auto; flex-direction: column; align-items: stretch; height: auto; gap: 0; padding: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }
	.rg-catalogue-btn { display: none !important; }
	.rg-nav .rg-catalogue-panel, .rg-nav .rg-catalogue-panel[hidden] { display: block !important; position: static; inset: auto; width: auto; max-width: none; max-height: none; overflow: visible; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
	.rg-nav .rg-menu { flex-direction: column; align-items: stretch; flex-wrap: nowrap; overflow: visible; margin: 0; padding: 8px; gap: 2px; border-top: 1px solid var(--rg-border); }
	.rg-nav .rg-menu > li > a { display: flex; height: 46px; font-size: 15px; }
	.rg-nav .rg-menu[aria-label]::before { content: attr(aria-label); display: block; padding: 12px 10px 4px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rg-text-muted); } /* Titre de la liste « Les plus vendus » sous les catégories. */
	.rg-navdrawer-backdrop { display: block; position: fixed; inset: 0; z-index: 9940; background: rgba(3, 6, 25, .6); opacity: 0; pointer-events: none; transition: opacity var(--rg-ui) ease; }
	.rg-navdrawer-backdrop[hidden] { display: block; }
	body.rg-drawer-open .rg-navdrawer-backdrop { opacity: 1; pointer-events: auto; }
	body.rg-drawer-open { overflow: hidden; }

	/* Rails : la piste va d'un bord de l'écran à l'autre (plus de bande vide de chaque côté au glissement). */
	.rg-rail ul.products.rg-rail-track { margin: 0 -16px; padding-left: 16px !important; padding-right: 16px !important; scroll-padding-inline: 16px; }
	.rg-rail ul.products.rg-rail-track > li.product { flex-basis: 44% !important; }

	/* Cartes catégories de l'accueil : glissent aussi de gauche à droite. */
	.rg-cat-grid-3, .rg-cat-grid-2 { display: flex; gap: 12px; margin: 0 -16px; padding: 0 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; scrollbar-width: none; }
	.rg-cat-grid-3::-webkit-scrollbar, .rg-cat-grid-2::-webkit-scrollbar { display: none; }
	.rg-cat-grid > * { flex: 0 0 86%; scroll-snap-align: start; }
	.rg-cat-grid .rg-cat-card:hover { transform: none; }
}
@media (max-width: 820px) and (prefers-reduced-motion: reduce) { .rg-nav, .rg-navdrawer-backdrop { transition: none; } }

/* Cashback : ligne des totaux et bloc Mon compte */
.rg-cashback-row .rg-cashback { padding: 0; font-size: inherit; color: var(--rg-cashback); }
.rg-cashback-box { margin: 0 0 20px; padding: 16px 18px; border: 1px solid rgba(0, 212, 170, .35); border-radius: 14px; background: rgba(0, 212, 170, .08); }
.rg-cashback-box p { margin: 0 0 6px; }
.rg-cashback-box ul { margin: 0 0 8px; padding-left: 18px; }
.rg-cashback-row .rg-cashback .amount, .rg-cashback-row .rg-cashback bdi { color: inherit !important; }
#craftcart-drawer .craftcart-qty-btn, #craftcart-drawer .craftcart-qty-btn:first-child, #craftcart-drawer .craftcart-qty-btn:last-child { width: 32px; height: 32px; border: 0; border-radius: 9px; font-size: 18px; }
#craftcart-drawer .craftcart-qty-val { width: 28px; height: 32px; line-height: 32px; border: 0; color: #fff; font-size: 14px; }
#craftcart-drawer .craftcart-item__img img { background: var(--rg-navy); border-color: var(--rg-border); }
#craftcart-drawer .craftcart-footer__cta2 { text-transform: none; letter-spacing: 0; font-size: 15px; }
#craftcart-drawer .craftcart-footer { padding-top: 12px; }
#craftcart-drawer .craftcart-footer > * + * { margin-top: 10px; }
#craftcart-drawer .craftcart-cashback-nudge { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
#craftcart-drawer .craftcart-cashback-nudge p { margin: 0; }
/* Article : image à gauche ; nom + corbeille, puis cœur + quantité + prix sur une ligne (modèle Gameseal). */
#craftcart-drawer .craftcart-item { display: grid; grid-template-columns: var(--cc-img-w) minmax(0, 1fr) auto; grid-template-areas: "img name remove" "img var var" "img actions actions"; align-items: start; column-gap: 12px; row-gap: 4px; }
#craftcart-drawer .craftcart-item__content, #craftcart-drawer .craftcart-item__right { display: contents; }
#craftcart-drawer .craftcart-item__img { grid-area: img; }
#craftcart-drawer .craftcart-item__name-link { grid-area: name; }
#craftcart-drawer .craftcart-item__variation { grid-area: var; }
#craftcart-drawer .craftcart-item__actions { grid-area: actions; align-self: end; margin: 6px 0 0; }
#craftcart-drawer .craftcart-item__remove { grid-area: remove; justify-self: end; }
#craftcart-drawer .craftcart-item__price { grid-area: actions; align-self: end; justify-self: end; padding-bottom: 6px; white-space: nowrap; display: flex; flex-direction: column; align-items: flex-end; }
@media (max-width: 480px) { #craftcart-drawer { --cc-img-w: 92px; } }
.rg-shop-head .rg-shop-logo.rg-shop-logo-wish { background: rgba(63, 156, 255, .14); color: var(--rg-sale); }
.rg-shop-logo-wish .rg-icon { fill: currentColor; }
.rg-wish-note { margin: 6px 0 0; font-size: 14px; }
.rg-wish-note a { color: var(--rg-accent); text-decoration: underline; }

/* Fenêtre pays / langue (Craft Popup, modules/craft-popup) aux couleurs du thème. */
.rcsp-overlay { background: rgba(3, 6, 25, .65) !important; }
/* !important : Craft Popup imprime ses couleurs de réglage en !important (style#rccs-dynamic-css). */
.rcsp-overlay .rcsp-modal { background: var(--rg-navy-dark) !important; border: 1px solid var(--rg-border-hover) !important; border-radius: 20px !important; box-shadow: 0 24px 60px rgba(0, 0, 0, .55); font-family: inherit; color: #fff !important; padding: 28px 24px 24px; }
.rcsp-overlay .rcsp-modal .rcsp-title { color: #fff !important; font-size: 22px !important; font-weight: 800 !important; }
.rcsp-overlay .rcsp-modal .rcsp-subtitle { color: var(--rg-text-muted) !important; font-size: 14px; }
.rcsp-overlay .rcsp-modal .rcsp-label { color: var(--rg-text-muted) !important; font-size: 12px; letter-spacing: .08em; }
.rcsp-overlay .rcsp-close { background: transparent; color: #fff !important; width: 36px; height: 36px; border-radius: 10px; font-size: 15px; }
.rcsp-overlay .rcsp-close:hover { background: var(--rg-surface-hover); color: #fff !important; }
.rcsp-overlay .rcsp-fake-select { background: var(--rg-surface-inset); border: 1px solid var(--rg-border-hover); border-radius: 12px; min-height: 48px; font-family: inherit; }
.rcsp-overlay .rcsp-fake-select:hover, .rcsp-overlay .rcsp-fake-select.rcsp-open { border-color: var(--rg-btn); box-shadow: 0 0 0 3px rgba(63, 156, 255, .2); }
.rcsp-overlay .rcsp-fake-select.rcsp-open { border-radius: 12px 12px 0 0; }
.rcsp-overlay .rcsp-trigger-text, .rcsp-overlay .rcsp-fake-select * { color: #fff !important; }
.rcsp-overlay .rcsp-fake-select .rcsp-arrow { color: var(--rg-text-muted) !important; }
.rcsp-overlay .rcsp-generic-dropdown, .rcsp-overlay .rcsp-country-dropdown { background: var(--rg-surface-inset); border: 1px solid var(--rg-btn); border-top: 0; border-radius: 0 0 12px 12px; box-shadow: 0 12px 28px rgba(0, 0, 0, .45); }
.rcsp-overlay .rcsp-item-list, .rcsp-overlay .rcsp-country-list { background: var(--rg-surface-inset); scrollbar-color: var(--rg-surface-hover) transparent; }
.rcsp-overlay .rcsp-search-input, .rcsp-overlay .rcsp-country-search { background: var(--rg-navy-deep) !important; color: #fff !important; border-bottom: 1px solid var(--rg-border) !important; font-family: inherit; }
.rcsp-overlay .rcsp-search-input::placeholder, .rcsp-overlay .rcsp-country-search::placeholder { color: var(--rg-text-dim); }
.rcsp-overlay .rcsp-item-btn, .rcsp-overlay .rcsp-country-item { background: transparent; border-bottom: 1px solid var(--rg-border); font-family: inherit; }
.rcsp-overlay .rcsp-item-btn:hover, .rcsp-overlay .rcsp-country-item:hover { background: var(--rg-surface-hover); }
.rcsp-overlay .rcsp-item-btn.rcsp-active, .rcsp-overlay .rcsp-country-item.rcsp-active { background: rgba(63, 156, 255, .18); }
.rcsp-overlay .rcsp-item-label, .rcsp-overlay .rcsp-country-name { color: #fff !important; }
.rcsp-overlay .rcsp-item-sub, .rcsp-overlay .rcsp-no-results { color: var(--rg-text-muted) !important; }
.rcsp-overlay .rcsp-btn--save { background: var(--rg-btn) !important; border-radius: 999px !important; min-height: 50px; font-family: inherit; font-size: 16px; box-shadow: none; }
.rcsp-overlay .rcsp-btn--save:hover { background: var(--rg-btn-hover) !important; box-shadow: none; transform: none; }
.rccs-geo-notif { background: var(--rg-navy-dark) !important; border: 1px solid var(--rg-border-hover) !important; border-bottom: 0 !important; border-radius: 16px !important; box-shadow: 0 18px 40px rgba(0, 0, 0, .5) !important; font-family: inherit !important; }
.rccs-geo-notif .rccs-geo-name, .rccs-geo-notif .rccs-geo-detail-val { color: #fff !important; }
.rccs-geo-notif .rccs-geo-intro, .rccs-geo-notif .rccs-geo-detail-lbl, .rccs-geo-notif .rccs-geo-detail-line { color: var(--rg-text-muted) !important; }
.rccs-geo-notif .rccs-geo-btn { background: var(--rg-btn) !important; border-radius: 999px !important; }
.rcsp-overlay .rcsp-modal .rcsp-title { padding-right: 40px !important; }

/* ---------- Recharge directe (template-parts/topups.php), modèle Gameseal ---------- */
.rg-topups-hero { text-align: center; max-width: 720px; margin: 8px auto 32px; }
.rg-topups-title { margin: 0 0 10px; font-size: clamp(30px, 4.4vw, 48px); font-weight: 800; line-height: 1.1; background: linear-gradient(90deg, var(--rg-accent), var(--rg-btn)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rg-topups-lead { margin: 0 auto 22px; font-size: 18px; color: var(--rg-text-muted); }
.rg-topups-search { position: relative; display: block; max-width: 600px; margin: 0 auto; }
.rg-topups-search input { width: 100%; height: 52px; padding: 0 52px 0 22px; border-radius: 999px; border: 2px solid var(--rg-btn); background: var(--rg-surface-inset); color: #fff; font: inherit; font-size: 16px; }
.rg-topups-search input:focus { outline: none; box-shadow: 0 0 0 4px rgba(63, 156, 255, .22); }
.rg-topups-search input::placeholder { color: var(--rg-text-dim); }
.rg-topups-search .rg-icon { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: var(--rg-text-muted); pointer-events: none; }
.rg-topups-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.rg-topup[hidden] { display: none; }
.rg-topup a { display: flex; flex-direction: column; height: 100%; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); overflow: hidden; color: #fff; text-decoration: none; transition: border-color var(--rg-fast) var(--rg-ease); }
.rg-topup a:hover, .rg-topup a:focus-visible { border-color: var(--rg-border-hover); }
.rg-topup-media { display: block; aspect-ratio: 16 / 11; background: var(--rg-navy-deep); }
.rg-topup-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rg-topup-name { display: block; padding: 14px 16px; border-top: 1px solid var(--rg-border); font-weight: 700; font-size: 15px; }
.rg-topups-how { margin: 64px 0 0; }
.rg-topups-how .rg-section-title { text-align: center; margin: 0 0 28px; }
.rg-topups-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.rg-topups-step { padding: 24px 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-topups-step-icon { position: relative; display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 16px; border-radius: 16px; background: rgba(63, 156, 255, .14); color: var(--rg-btn); }
.rg-topups-step-icon b { position: absolute; top: -8px; right: -8px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--rg-btn); color: #fff; font-size: 12px; }
.rg-topups-step h3 { margin: 0 0 8px; font-size: 18px; }
.rg-topups-step p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--rg-text-muted); }
.rg-topups-seo { margin: 64px 0 24px; max-width: 980px; }
.rg-topups-seo h2 { font-size: 26px; margin: 0 0 12px; }
.rg-topups-seo h3 { font-size: 20px; margin: 28px 0 10px; }
.rg-topups-seo p, .rg-topups-seo li { color: var(--rg-text-muted); line-height: 1.7; }
@media (max-width: 1180px) { .rg-topups-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1024px) {
	.rg-topups-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rg-topups-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.rg-topups-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.rg-topup-name { padding: 10px 12px; font-size: 14px; }
	.rg-topups-steps { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.rg-topups-lead { font-size: 16px; }
	.rg-topups-how, .rg-topups-seo { margin-top: 44px; }
}

/* Avis clients sur l'accueil : produit concerné sous chaque avis. */
.rg-reviews-home { margin: 48px 0; }
.rg-review-product { display: block; width: fit-content; margin-top: 8px; font-size: 13px; color: var(--rg-accent); }
.rg-review-product:hover { text-decoration: underline; }
/* Présentation de l'accueil : liens vers les catégories citées. */
.rg-about-sub a, .rg-about-text a { color: inherit; text-decoration: underline; text-decoration-color: rgba(0, 212, 255, .5); text-underline-offset: 3px; transition: color var(--rg-fast); }
.rg-about-text a { color: #fff; }
.rg-about-sub a:hover, .rg-about-text a:hover { color: var(--rg-accent); text-decoration-color: currentColor; }

/* Menu « Région » de la fiche (theme.js, bloc 3c) : largeur de la 1re colonne de la fiche, liste dessous, recherche sans loupe. */
.rg-sel-region { width: 100%; }
@media (min-width: 1181px) { .rg-sel-region { width: calc((100% - 28px) * .34); min-width: 260px; } }
@media (min-width: 1025px) and (max-width: 1180px) { .rg-sel-region { max-width: 360px; } }
.rg-combo { position: relative; }
.rg-combo-btn { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 50px; padding: 0 14px 0 16px; border-radius: 10px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font: inherit; font-size: 15px; text-align: left; cursor: pointer; transition: border-color var(--rg-fast); }
.rg-combo-btn:hover, .rg-combo.is-open .rg-combo-btn { border-color: var(--rg-btn); }
.rg-combo-btn .rg-icon { flex: 0 0 auto; color: var(--rg-text-muted); transition: transform var(--rg-fast); }
.rg-combo.is-open .rg-combo-btn .rg-icon { transform: rotate(180deg); }
.rg-combo-panel { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; right: 0; padding: 8px; border-radius: 12px; border: 1px solid var(--rg-border-hover); background: var(--rg-navy-dark); box-shadow: 0 18px 40px rgba(0, 0, 0, .45); }
.rg-combo-panel[hidden] { display: none; }
.rg-combo-search { width: 100%; height: 40px; margin: 0 0 6px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--rg-border); background: var(--rg-surface-inset); color: #fff; font: inherit; font-size: 14px; }
.rg-combo-search:focus { outline: none; border-color: var(--rg-btn); }
.rg-combo-search::-webkit-search-cancel-button { appearance: none; }
.rg-combo-list { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--rg-surface-hover) transparent; }
.rg-combo-list li { padding: 10px 12px; border-radius: 8px; color: #fff; font-size: 14px; cursor: pointer; }
.rg-combo-list li[hidden] { display: none; }
.rg-combo-list li:hover, .rg-combo-list li.is-active { background: var(--rg-surface-hover); }
.rg-combo-list li.is-selected { background: var(--rg-btn); color: var(--rg-on-btn); }
.rg-combo-none { margin: 6px 4px; color: var(--rg-text-muted); font-size: 13px; }

/* ---------- Craft FOMO (inc/fomo.php) ---------- */
.rg-fomo-viewers { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 6px 12px; width: fit-content; border-radius: 999px; background: rgba(63, 156, 255, .12); color: #cfe4ff; font-size: 13px; font-weight: 600; }
.rg-fomo-viewers[hidden] { display: none; }
.rg-fomo-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rg-cashback); box-shadow: 0 0 0 0 rgba(0, 212, 170, .6); animation: rg-fomo-pulse 2s infinite; }
@keyframes rg-fomo-pulse { 70% { box-shadow: 0 0 0 7px rgba(0, 212, 170, 0); } 100% { box-shadow: 0 0 0 0 rgba(0, 212, 170, 0); } }
.rg-fomo-stock { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; color: var(--rg-warn); font-size: 13px; font-weight: 600; }
.rg-fomo-stock .rg-icon { flex: 0 0 auto; }
.rg-fomo-sale { position: fixed; left: 16px; bottom: 16px; z-index: 9980; display: flex; align-items: center; max-width: min(360px, calc(100vw - 96px)); padding: 10px 34px 10px 10px; border-radius: 14px; border: 1px solid var(--rg-border-hover); background: var(--rg-navy-dark); box-shadow: 0 14px 34px rgba(0, 0, 0, .45); transform: translateY(20px); opacity: 0; pointer-events: none; transition: transform .3s var(--rg-ease), opacity .3s var(--rg-ease); }
.rg-fomo-sale.is-open { transform: none; opacity: 1; pointer-events: auto; }
.rg-fomo-sale-link { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; min-width: 0; }
.rg-fomo-sale img { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 8px; object-fit: cover; }
.rg-fomo-sale strong { display: block; font-size: 13px; font-weight: 600; line-height: 1.35; }
.rg-fomo-sale small { display: block; margin-top: 2px; color: var(--rg-text-muted); font-size: 12px; }
.rg-fomo-sale-close { position: absolute; top: 4px; right: 6px; width: 26px; height: 26px; border: 0; background: none; color: var(--rg-text-muted); font-size: 18px; cursor: pointer; }
@media (max-width: 1024px) { body:has(.rg-mbar) .rg-fomo-sale { bottom: 88px; } }
@media (prefers-reduced-motion: reduce) { .rg-fomo-dot { animation: none; } .rg-fomo-sale { transition: none; } }
/* Fiche : titre « Description du produit » au-dessus du bloc (modèle Giftshopsen). */
.rg-pdp-desc-title { margin: 0 0 14px; }
/* Tableaux de la description produit (ex. « Où peut-on commander ? » pays / moyens de paiement) : bordures visibles comme dans l'éditeur. */
.rg-content table, .rg-about-body table { width: 100%; margin: 16px 0 20px; border-collapse: separate; border-spacing: 0; border: 1px solid var(--rg-border-hover); border-radius: 12px; overflow: hidden; font-size: 14px; line-height: 1.45; }
.rg-content th, .rg-content td, .rg-about-body th, .rg-about-body td { padding: 10px 14px; border-bottom: 1px solid var(--rg-border); border-right: 1px solid var(--rg-border); text-align: left; vertical-align: top; color: var(--rg-text-muted); }
.rg-content th:last-child, .rg-content td:last-child, .rg-about-body th:last-child, .rg-about-body td:last-child { border-right: 0; }
.rg-content tr:last-child td, .rg-about-body tr:last-child td { border-bottom: 0; }
.rg-content th, .rg-about-body th, .rg-content thead td, .rg-about-body thead td { background: var(--rg-surface-hover); color: #fff; font-weight: 700; font-size: 12.5px; letter-spacing: .04em; text-transform: uppercase; }
.rg-content tbody tr:nth-child(even) td, .rg-about-body tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .025); }
.rg-content td:first-child, .rg-about-body td:first-child { color: #fff; font-weight: 600; white-space: nowrap; }
.rg-content td strong, .rg-about-body td strong { color: #fff; }
.rg-content .rg-table-scroll, .rg-about-body .rg-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 16px 0 20px; }
.rg-content .rg-table-scroll table, .rg-about-body .rg-table-scroll table { margin: 0; } /* 2 colonnes : tient sur mobile, le défilement ne sert qu'aux tableaux larges. */
@media (max-width: 600px) { .rg-content th, .rg-content td, .rg-about-body th, .rg-about-body td { padding: 8px 10px; font-size: 13px; } .rg-content td:first-child, .rg-about-body td:first-child { white-space: normal; } }
.rg-pdp-about .rg-pdp-block-title { margin-top: 0; }

/* Pied de page : le champ d'inscription occupe toute sa colonne, jusqu'au bord droit comme les autres lignes. */
.rg-newsletter-form, .rg-newsletter-form .wp-block-jetpack-subscriptions__container, .rg-newsletter-form .jetpack_subscription_widget, .rg-newsletter-form form { width: 100%; max-width: none !important; }
.rg-newsletter-form form > p, .rg-newsletter-form form #subscribe-email, .rg-newsletter-form .wp-block-jetpack-subscriptions__form-elements > p:first-child { flex: 1 1 auto; width: auto !important; margin: 0 !important; }
.rg-newsletter-form input[type="email"] { width: 100% !important; max-width: none !important; }
.rg-newsletter-form form #subscribe-submit, .rg-newsletter-form .wp-block-jetpack-subscriptions__form-elements > p:last-child { flex: 0 0 auto; margin: 0 !important; }

/* Panier latéral : tailles et proportions de Gameseal (400 px, image 81 x 56, nom 13 px, quantité 26 px,
   suggestions 72 x 50 / 12 px, total 24 px, bouton 50 px), couleurs du thème. Prime sur les réglages Craft Cart. */
#craftcart-drawer { --cc-img-w: 81px; --cc-item-font: 13px; }
#craftcart-wrapper #craftcart-drawer { width: 400px; max-width: 100vw; }
#craftcart-drawer .craftcart-header { min-height: 58px; padding: 0 12px 0 20px; }
#craftcart-drawer .craftcart-header__title { font-size: 18px; font-weight: 700; }
#craftcart-drawer .craftcart-items { padding: 16px 20px 6px; }
#craftcart-drawer .craftcart-item { padding: 12px; column-gap: 12px; margin-bottom: 10px; border-radius: 12px; }
#craftcart-drawer .craftcart-item__img img { width: 81px !important; aspect-ratio: 81 / 56 !important; border-radius: 6px; }
#craftcart-drawer .craftcart-item__name { font-size: 13px; font-weight: 500; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#craftcart-drawer .craftcart-item__variation { font-size: 11px; }
#craftcart-drawer .craftcart-item__actions { gap: 8px; margin-top: 8px; }
#craftcart-drawer .rg-wish-cart { width: 26px; height: 26px; flex-basis: 26px; }
#craftcart-drawer .rg-wish-cart .rg-icon { width: 14px; height: 14px; }
#craftcart-drawer .craftcart-item__qty { border-radius: 8px; }
#craftcart-drawer .craftcart-qty-btn, #craftcart-drawer .craftcart-qty-btn:first-child, #craftcart-drawer .craftcart-qty-btn:last-child { width: 26px; height: 26px; font-size: 15px; border-radius: 7px; }
#craftcart-drawer .craftcart-qty-val { width: 32px; height: 26px; line-height: 26px; font-size: 14px; font-weight: 600; }
#craftcart-drawer .craftcart-item__price, #craftcart-drawer .craftcart-item__price bdi { font-size: 14px; font-weight: 600; padding-bottom: 4px; }
#craftcart-drawer .craftcart-item__remove svg { width: 18px; height: 18px; }
#craftcart-drawer .craftcart-badge { font-size: 11px; padding: 2px 6px; }
#craftcart-drawer .craftcart-upsells { padding: 16px 20px; }
#craftcart-drawer .craftcart-upsells__title { margin: 0 0 14px; color: #fff; font-size: 15px; font-weight: 700; letter-spacing: 0; text-transform: none; }
#craftcart-drawer .craftcart-upsells__list { gap: 10px; }
#craftcart-drawer .craftcart-upsells__item { gap: 16px; min-height: 70px; }
#craftcart-drawer .craftcart-upsells__img, #craftcart-drawer .craftcart-upsells__img img { flex: 0 0 72px; width: 72px !important; height: 50px !important; max-width: none !important; object-fit: cover; border-radius: 6px; }
#craftcart-drawer .craftcart-upsells__info { flex: 1 1 auto; min-width: 0; }
#craftcart-drawer .craftcart-upsells__name { margin: 0 0 6px; font-size: 12px; font-weight: 500; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#craftcart-drawer .craftcart-upsells__price, #craftcart-drawer .craftcart-upsells__price bdi { font-size: 14px; font-weight: 600; color: #fff; }
#craftcart-drawer .craftcart-upsells__add { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 10px; }
#craftcart-drawer .craftcart-footer { padding: 14px 20px 18px; }
#craftcart-drawer .craftcart-footer__total-row { display: flex; align-items: center; justify-content: space-between; padding-top: 12px; }
#craftcart-drawer .craftcart-footer__label { font-size: 14px; font-weight: 600; }
#craftcart-drawer .craftcart-footer__price, #craftcart-drawer .craftcart-footer__price bdi { font-size: 24px; font-weight: 600; }
#craftcart-drawer .craftcart-footer__cta, #craftcart-drawer .craftcart-footer__cta2 { min-height: 50px; padding: 0 16px; border-radius: 25px; font-size: 15px; }
@media (max-width: 480px) { #craftcart-wrapper #craftcart-drawer { width: 100vw; } }
/* Téléphone : bas du panneau resserré, pour laisser la place aux produits. */
@media (max-width: 767px) {
	#craftcart-drawer .craftcart-footer { padding: 10px 20px 12px; }
	#craftcart-drawer .craftcart-footer > * + * { margin-top: 6px; }
	#craftcart-drawer .craftcart-coupon { padding-bottom: 6px; margin-bottom: 0; }
	#craftcart-drawer input.craftcart-coupon-input { height: 38px; min-height: 0; padding: 0 12px; box-sizing: border-box; font-size: 16px; }
	#craftcart-drawer .craftcart-coupon-btn { height: 38px; padding: 0 14px; font-size: 13px; }
	#craftcart-drawer .craftcart-footer__totals { gap: 2px; margin-bottom: 0; }
	#craftcart-drawer .craftcart-footer__totals--extra { margin-top: 2px !important; }
	#craftcart-drawer .craftcart-footer__row { margin: 0; font-size: 12.5px; line-height: 1.3; }
	#craftcart-drawer .craftcart-cashback-nudge { padding: 6px 10px; border-radius: 8px; font-size: 11.5px; line-height: 1.3; }
	#craftcart-drawer .craftcart-footer__total-row { margin: 6px 0 0; padding-top: 6px; }
	#craftcart-drawer .craftcart-footer__label { font-size: 13px; }
	#craftcart-drawer .craftcart-footer__price, #craftcart-drawer .craftcart-footer__price bdi { font-size: 18px; }
	#craftcart-drawer .craftcart-footer__cta { min-height: 42px; border-radius: 21px; font-size: 14px; }
	#craftcart-drawer .craftcart-footer__cta2 { min-height: 38px; margin-top: 6px; border-radius: 19px; font-size: 13px; }
}
/* Cartes produit alignées : lignes vides réservées, panneau étiré, prix calé en bas. */
.rg-cashback.is-empty, .rg-region.is-empty { visibility: hidden; }
.rg-card-panel { flex: 1 1 auto; display: flex; flex-direction: column; }
.rg-card-body { flex: 1 1 auto; }
.rg-card-body .rg-card-price { margin-top: auto; }

/* En-tête : pastilles favoris et panier identiques (style de celle du panier : rouge, chiffre blanc, contour blanc). */
.rg-header-actions .rg-cart-count, .rg-header-actions .craftcart-btn-badge { top: -2px !important; right: -6px !important; min-width: 20px !important; height: 20px !important; padding: 0 5px !important; border: 2px solid #fff !important; border-radius: 999px !important; background: var(--rg-wish) !important; color: #fff !important; font-size: 11px !important; font-weight: 800 !important; line-height: 16px !important; box-sizing: border-box; }
.rg-header-actions .rg-wish-count[hidden] { display: none !important; }
/* Recherche ouverte : voile sombre sur la page, sous l'en-tête et le panneau de résultats. */
body::before { content: ""; position: fixed; inset: 0; z-index: 35; background: rgba(3, 6, 25, .7); opacity: 0; pointer-events: none; transition: opacity var(--rg-ui) ease; }
body.rg-search-open::before { opacity: 1; }
@media (prefers-reduced-motion: reduce) { body::before { transition: none; } }

/* Bloc d'achat de la fiche : boutons unifiés sur le modèle de regoncraft.com, pour les produits classiques (thème)
   comme pour les recharges à ID joueur (Craft Sticky Bar) : rond panier 44 px à contour bleu (intérieur vide), pilule bleue 44 px,
   texte en capitales 12 px. Haut du bloc resserré, cashback aligné à gauche. */
.rg-buy { grid-template-columns: 44px 1fr; gap: 10px; }
.rg-pdp-cta .craft-sticky-bar-sc { gap: 10px !important; align-items: center; }
.rg-buy-cart, .rg-pdp-cta .craft-sticky-bar-sc-c { width: 44px !important; height: 44px !important; min-height: 44px !important; flex: 0 0 44px !important; border: 2px solid #fff !important; border-radius: 50% !important; background: transparent !important; color: #fff !important; }
.rg-buy-cart:hover, .rg-pdp-cta .craft-sticky-bar-sc-c:hover { background: rgba(255, 255, 255, .12) !important; transform: scale(1.06); }
.rg-buy-cart .rg-icon, .rg-pdp-cta .craft-sticky-bar-sc-c svg { width: 20px; height: 20px; color: #fff; }
.rg-buy-now, .rg-pdp-cta .craft-sticky-bar-sc-b, .rg-pdp-cta .craft-sticky-bar-sc-choose { min-height: 44px !important; height: 44px; padding: 0 18px !important; border: 0 !important; border-radius: 999px !important; background: var(--rg-btn) !important; color: #fff !important; font-family: inherit !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase; line-height: 1 !important; }
.rg-buy-now:hover, .rg-pdp-cta .craft-sticky-bar-sc-b:hover { background: var(--rg-btn-hover) !important; }
.rg-pdp-cta .craft-sticky-bar-sc-b[disabled], .rg-pdp-cta .craft-sticky-bar-sc-b.csb-g2b-locked, .rg-pdp-cta .craft-sticky-bar-sc-c.csb-g2b-locked { opacity: .55; }
#rg-buy { gap: 10px; }
#rg-buy .rg-fomo-viewers { margin: 0; }
#rg-buy .rg-kicker { margin: 4px 0 0; }
#rg-buy .rg-pdp-price { margin: 0; }
#rg-buy .rg-fomo-stock { margin: 0; }
#rg-buy .rg-cashback { display: flex; flex-wrap: wrap; gap: .3em; padding: 0; margin: 0; } /* gap : en flex, l'espace entre le montant et « de cashback » disparaît. */
#rg-buy .rg-pdp-facts { margin-top: 4px; }
/* Rond panier des recharges (Craft Sticky Bar) : ses propres règles l'emportaient, sélecteur renforcé. */
#rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c:disabled { width: 44px !important; height: 44px !important; min-height: 44px !important; border: 2px solid var(--rg-btn) !important; border-radius: 50% !important; background: transparent !important; color: var(--rg-btn) !important; box-shadow: none !important; }
#rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c .craft-sticky-bar-ci, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c svg { color: var(--rg-btn) !important; stroke: currentColor; }
/* Rond panier du bloc d'achat (thème et recharges) : copie exacte de Craft Sticky Bar sur regoncraft.com :
   rond blanc, contour bleu #007dff 2 px, caddie bleu 20 px à roues creuses, pastille bleue avec « + » blanc. */
.rg-buy-cart, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c:disabled { border: 2px solid #fff !important; background: transparent !important; color: #fff !important; }
.rg-buy-cart:hover, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c:hover { background: rgba(255, 255, 255, .12) !important; }
.rg-buy-cart .rg-icon, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c svg, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c .craft-sticky-bar-ci { color: #fff !important; }
.rg-buy-cart .rg-icon-plus, #rg-buy .rg-pdp-cta .craft-sticky-bar-sc-c svg line { stroke: var(--rg-surface) !important; } /* Le « + » prend la couleur du fond : aucun blanc dans l'icône. */
.rg-buy-cart .cc-spin { border-color: rgba(255, 255, 255, .25) !important; border-top-color: #fff !important; }

/* Recharges (Craft Sticky Bar) : champ « Serveur ID » sombre comme « ID Joueur », et police du thème partout
   (libellés, champs, liste, bouton : l'extension imposait la police système). */
#rg-buy .rg-pdp-cta, #rg-buy .rg-pdp-cta * { font-family: var(--rg-font) !important; }
#rg-buy .wapf-fake-trigger { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 0 14px !important; border-radius: var(--rg-radius-input, 12px) !important; border: 1px solid var(--rg-border) !important; background: var(--rg-surface-inset) !important; color: #fff !important; box-shadow: none !important; cursor: pointer; }
#rg-buy .wapf-fake-trigger:hover, #rg-buy .wapf-fake-trigger:focus { outline: none; border-color: var(--rg-accent) !important; }
#rg-buy .wapf-fake-trigger-text { color: #fff !important; font-size: 15px; }
#rg-buy .wapf-fake-trigger-text.wapf-placeholder { color: var(--rg-text-dim) !important; }
#rg-buy .wapf-fake-arrow { color: var(--rg-text-muted) !important; font-size: 10px; }
#rg-buy .wapf-fake-dropdown { margin-top: 6px; border-radius: 12px !important; border: 1px solid var(--rg-border-hover) !important; background: var(--rg-navy-dark) !important; box-shadow: 0 18px 40px rgba(0, 0, 0, .45) !important; overflow: hidden; }
#rg-buy .wapf-fake-search-wrap { padding: 8px !important; background: transparent !important; border: 0 !important; }
#rg-buy .wapf-fake-search { width: 100%; height: 40px; padding: 0 12px !important; border-radius: 8px !important; border: 1px solid var(--rg-border) !important; background: var(--rg-surface-inset) !important; color: #fff !important; }
#rg-buy .wapf-fake-list { background: transparent !important; }
#rg-buy .wapf-fake-item { padding: 10px 14px !important; background: transparent !important; color: #fff !important; border: 0 !important; font-size: 14px !important; font-weight: 500 !important; }
#rg-buy .wapf-fake-search:focus { outline: none; border-color: var(--rg-accent) !important; box-shadow: none !important; }
#rg-buy .wapf-fake-item:hover, #rg-buy .wapf-fake-item.is-active, #rg-buy .wapf-fake-item[aria-selected="true"] { background: var(--rg-surface-hover) !important; }
#rg-buy .wapf-fake-no-results { color: var(--rg-text-muted) !important; }
#rg-buy .wapf-fake-search:focus-visible { outline: none !important; }
/* Montant choisi : petite coche bleue en bas à droite, comme les cartes des recharges (Craft Sticky Bar). */
.rg-amount { position: relative; }
.rg-amount.is-active::after { content: ""; position: absolute; right: 0; bottom: 0; width: 18px; height: 18px; border-radius: 6px 0 10px 0; border-top: 2px solid var(--rg-navy-dark); border-left: 2px solid var(--rg-navy-dark); background: var(--rg-btn) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpolyline points='2,7 5.5,10.5 12,3.5' fill='none' stroke='%23061233' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* Newsletter du pied de page : libellé au-dessus du champ, case de consentement (bleue) en dessous. */
.rg-newsletter-form { display: flex; flex-direction: column; gap: 8px; }
.rg-newsletter-label { font-size: 14px; font-weight: 600; color: #fff; }
.rg-newsletter-consent { display: flex; align-items: flex-start; gap: 10px; margin: 2px 0 0 !important; font-size: 13px; line-height: 1.5; color: var(--rg-text-muted); cursor: pointer; }
.rg-newsletter-consent input { flex: 0 0 auto; width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; accent-color: var(--rg-btn); }
.rg-newsletter-form button[disabled], .rg-newsletter-form input[type="submit"][disabled] { opacity: .5; cursor: not-allowed; }

.rg-filter-more.is-open .rg-icon { transform: rotate(180deg); }

/* Bloc d'achat, moyens de paiement : titre centré, 8 logos sur une seule ligne (modèle regoncraft.com). */
.rg-pdp-secure { gap: 8px; align-items: center; text-align: center; }
.rg-pdp-secure > span { font-size: 14px; font-weight: 700; color: #fff; }
/* Logos de paiement de la fiche : vignettes rectangulaires sur deux lignes (4 par ligne), demande du client. */
#rg-buy .rg-pay-logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; width: 100%; }
#rg-buy .rg-pay-logos li { width: auto; height: 40px; padding: 6px 10px; border-radius: 8px; border: 1px solid rgba(0, 0, 0, .25); }
#rg-buy .rg-pay-logos li img { height: 26px !important; }

/* Pages catégorie : liste en cours de rechargement (AJAX des filtres). */
.rg-shop .rg-shop-main { transition: opacity var(--rg-ui) ease; }
.rg-shop.is-loading .rg-shop-main { opacity: .45; pointer-events: none; }

/* Tableau de bord : « Mon solde & cashback » (inc/cashback.php). */
.rg-wallet { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 20px; }
.rg-wallet-card { display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: var(--rg-radius); border: 1px solid rgba(0, 212, 170, .35); background: linear-gradient(145deg, rgba(0, 212, 170, .14), rgba(63, 156, 255, .08)), var(--rg-surface); }
.rg-wallet-amount { font-size: 34px; font-weight: 800; line-height: 1.1; color: #fff; }
.rg-wallet-amount .amount, .rg-wallet-amount bdi { color: #fff; }
.rg-wallet-cash { margin: 0; font-size: 14px; color: var(--rg-text-muted); }
.rg-wallet-cash b, .rg-wallet-cash bdi { color: var(--rg-cashback); font-weight: 700; }
.rg-wallet-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 10px; }
.rg-wallet-actions .rg-btn { min-height: 42px; padding: 0 18px; font-size: 14px; }
.rg-wallet-how { padding: 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-wallet-how h3 { margin: 0 0 14px; font-size: 17px; color: #fff; }
.rg-wallet-how ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rg-wallet-how li { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--rg-text-muted); }
.rg-wallet-how li .rg-icon { flex: 0 0 auto; margin-top: 2px; color: var(--rg-accent); }
.rg-wallet-how li strong { display: block; color: #fff; font-size: 15px; }
@media (max-width: 820px) { .rg-wallet { grid-template-columns: minmax(0, 1fr); } .rg-wallet-amount { font-size: 28px; } }
.rg-wallet-actions .rg-btn-primary, .rg-wallet-actions .rg-btn-primary:hover, body.rg-account .rg-wallet-actions a.rg-btn-primary { color: #fff !important; }
.rg-wallet-more { display: inline-flex; align-items: center; gap: 8px; width: 100%; margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--rg-cashback); }
.rg-wallet-more:hover { text-decoration: underline; }
/* Pages « Mon solde » et « Cashback » (modèle Giftshopsn) */
.rg-wtabs { display: flex; gap: 4px; margin: -6px 0 22px; border-bottom: 1px solid var(--rg-border); }
.rg-wtabs a { position: relative; padding: 10px 14px 12px; font-size: 15px; font-weight: 600; color: var(--rg-text-muted); }
.rg-wtabs a:hover { color: #fff; }
.rg-wtabs a[aria-current] { color: #fff; }
.rg-wtabs a[aria-current]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px; background: var(--rg-btn); }
.rg-whead { margin-bottom: 18px; }
.rg-whead h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 26px; color: #fff; }
.rg-whead h2 .rg-icon { color: var(--rg-cashback); }
.rg-whead p { margin: 0; color: var(--rg-text-muted); font-size: 15px; }
.rg-wgrid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 16px; align-items: stretch; }
.rg-wcard { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 22px 24px; border-radius: 18px; border: 1px solid rgba(63, 156, 255, .35); background: radial-gradient(120% 140% at 100% 0%, rgba(0, 212, 170, .22), transparent 55%), linear-gradient(135deg, #1d3fae, #0e1647 70%); color: #fff; box-shadow: 0 18px 40px rgba(0, 0, 0, .35); overflow: hidden; }
.rg-wcard::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 180px; height: 180px; border-radius: 50%; border: 24px solid rgba(255, 255, 255, .05); }
.rg-wcard-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.rg-wcard-brand { font-size: 15px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.rg-wcard-brand b { color: var(--rg-accent); }
.rg-wcard-type { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; text-align: right; color: rgba(255, 255, 255, .7); max-width: 80px; }
.rg-wcard-chip { display: block; width: 40px; height: 30px; margin: 6px 0 4px; border-radius: 7px; background: linear-gradient(135deg, #f5d57a, #c9a03a); box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .15); }
.rg-wcard .rg-kicker { color: rgba(255, 255, 255, .7); }
.rg-wcard-amount { font-size: 34px; font-weight: 800; line-height: 1.1; }
.rg-wcard-amount .amount, .rg-wcard-amount bdi { color: #fff; }
.rg-wcard-holder { display: flex; flex-direction: column; gap: 2px; margin-top: auto; padding-top: 10px; }
.rg-wcard-holder b { font-size: 13px; letter-spacing: .06em; }
.rg-wsplit { display: flex; flex-direction: column; padding: 18px 20px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-wsplit-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--rg-border); }
.rg-wsplit-head h3 { margin: 0; font-size: 17px; color: #fff; }
.rg-wsplit-head span { font-size: 12px; font-weight: 700; color: var(--rg-text-dim); }
.rg-wsplit dl { display: flex; flex-direction: column; margin: 0; }
.rg-wsplit dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--rg-border); }
.rg-wsplit dt { margin: 0; font-size: 14px; color: var(--rg-text-muted); }
.rg-wsplit dd { margin: 0; font-size: 18px; font-weight: 800; color: #fff; }
.rg-wsplit dd bdi { color: #fff; }
.rg-wmore { margin-top: 12px; }
.rg-wmore summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; list-style: none; font-size: 14px; font-weight: 700; color: var(--rg-accent); }
.rg-wmore summary::-webkit-details-marker { display: none; }
.rg-wmore summary .rg-icon { transition: transform var(--rg-fast) var(--rg-ease); }
.rg-wmore[open] summary .rg-icon { transform: rotate(180deg); }
.rg-wmore ul { margin: 12px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; line-height: 1.55; color: var(--rg-text-muted); }
.rg-wmore ul b { color: #fff; }
.rg-wmore ul a { color: var(--rg-accent); font-weight: 600; }
.rg-wlots { margin-top: 16px; padding: 14px 18px; border-radius: var(--rg-radius); border: 1px solid rgba(0, 212, 170, .3); background: rgba(0, 212, 170, .06); color: var(--rg-text-muted); font-size: 14px; }
.rg-wlots p { margin: 0 0 6px; color: #fff; }
.rg-wlots ul { margin: 0; padding-left: 18px; }
.rg-wactions { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 24px; }
.rg-wactions .rg-btn { min-height: 44px; padding: 0 20px; font-size: 14px; }
.rg-wactions .rg-btn-primary, body.rg-account .rg-wactions a.rg-btn-primary { color: #fff !important; }
.rg-wstats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rg-wstat { display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-wstat .rg-icon { width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--rg-surface-inset); color: var(--rg-cashback); margin-bottom: 6px; }
.rg-wstat span { font-size: 12.5px; font-weight: 700; color: var(--rg-cashback); }
.rg-wstat b, .rg-wstat b * { font-size: 20px; font-weight: 800; color: #fff; }
.rg-wstat.is-main { border-color: rgba(0, 212, 170, .45); background: linear-gradient(145deg, rgba(0, 212, 170, .14), rgba(63, 156, 255, .08)), var(--rg-surface); }
.rg-wmore-steps { margin: 0 0 24px; padding: 14px 18px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-wsteps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 14px 0 4px; padding: 0; list-style: none; }
.rg-wsteps li { display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; color: var(--rg-text-muted); }
.rg-wsteps li .rg-icon { flex: 0 0 auto; width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--rg-surface-inset); color: var(--rg-cashback); }
.rg-wsteps li b { display: block; margin-bottom: 2px; color: #fff; font-size: 14.5px; }
.rg-wsection { margin: 0 0 12px; font-size: 18px; color: #fff; }
.rg-wempty { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.rg-wempty .rg-icon { width: 64px; height: 64px; padding: 14px; border-radius: 18px; background: var(--rg-surface-inset); color: var(--rg-cashback); }
.rg-wempty .rg-kicker { color: var(--rg-cashback); }
.rg-wempty p { margin: 0; }
.rg-wempty strong { display: block; margin-bottom: 4px; font-size: 20px; color: #fff; }
.rg-cashback-hist .rg-refunds-head { margin-bottom: 8px; }
.rg-cashback-hist li .rg-icon { color: var(--rg-cashback); }
.rg-wproducts { margin-top: 28px; }
.rg-wproducts .rg-section { margin: 0; }
.woocommerce-MyAccount-content .rg-wproducts ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
/* Carte « Solde disponible » de Craft Compte : remplacée par la carte du thème. */
body.rg-account .craft-refund-balance-card { display: none; }
body.rg-account .craft-refund-space { gap: 12px; }
@media (max-width: 1024px) { .rg-wstats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rg-wsteps { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 820px) { .rg-wgrid { grid-template-columns: minmax(0, 1fr); } .rg-wcard-amount { font-size: 30px; } .rg-whead h2 { font-size: 22px; } .rg-wtabs a { padding: 8px 10px 10px; font-size: 14px; } .woocommerce-MyAccount-content .rg-wproducts ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
@media (max-width: 480px) { .rg-wstats { gap: 10px; } .rg-wstat { padding: 14px; } .rg-wstat .rg-icon { width: 34px; height: 34px; padding: 7px; margin-bottom: 2px; } .rg-wstat b, .rg-wstat b * { font-size: 17px; } }
.rg-cashback-box + .rg-wallet-how { margin-top: 16px; }

/* ---------- Page panier (inc/funnel.php), modèle Gameseal sur fond clair ---------- */
body.woocommerce-cart .rg-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px 32px; align-items: start; }
body.woocommerce-cart .cart-collaterals { align-self: start; }
body.woocommerce-cart .rg-content > .woocommerce > .woocommerce-notices-wrapper, body.woocommerce-cart .rg-content > .woocommerce > .cart-empty, body.woocommerce-cart .rg-content > .woocommerce > .return-to-shop { grid-column: 1 / -1; }
body.woocommerce-cart .woocommerce-cart-form { grid-column: 1; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
body.woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 2; position: static; } /* Pas collant : il descendait sur les suggestions au défilement. */
/* Panier court : la rangée du récapitulatif prend au moins sa hauteur, les suggestions passent dessous sur toute la largeur. */
body.woocommerce-cart .rg-content > .woocommerce { grid-template-rows: auto minmax(0, auto) auto; }
body.woocommerce-cart .woocommerce-cart-form { min-height: 0; }
body.woocommerce-cart .woocommerce-cart-form .rg-table-scroll { margin: 0; } /* Sinon le bloc produit démarre 16 px sous le récapitulatif. */
body.woocommerce-cart .cart-collaterals .cart_totals { float: none !important; width: 100% !important; margin: 0; }
body.rg-funnel .rc-cart-title { font-size: 20px; margin-bottom: 14px; }
/* Articles : cartes blanches séparées, image 16/11 de 150 px, quantité encadrée, prix, corbeille. */
body.rg-funnel .rc-cart-items-wrap { display: flex; flex-direction: column; gap: 12px; }
body.rg-funnel .rc-cart-item { display: grid !important; grid-template-columns: 150px minmax(0, 1fr) auto auto 40px; align-items: center; gap: 18px; padding: 14px !important; border: 1px solid #e5e7eb !important; border-radius: 16px; background: #fff; box-shadow: 0 1px 3px rgba(16, 24, 40, .06); }
body.rg-funnel .rc-cart-item__img, body.rg-funnel .rc-cart-item__img img { width: 150px !important; height: auto !important; aspect-ratio: 16 / 11; object-fit: cover; border-radius: 10px; }
body.rg-funnel .rc-cart-item__content { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
body.rg-funnel .rc-cart-item__name { font-size: 15px; font-weight: 600; color: #111827; line-height: 1.35; }
body.rg-funnel .rc-cart-item__variation { font-size: 12px; color: #6b7280; }
body.rg-funnel .rc-cart-item__qty { display: inline-flex; align-items: center; border: 1px solid #d1d5db; border-radius: 10px; overflow: hidden; background: #fff; }
body.rg-funnel .rc-qty-btn { width: 40px; height: 40px; border: 0; background: #fff; color: #111827; font-size: 18px; cursor: pointer; }
body.rg-funnel .rc-qty-btn:hover { background: #f3f4f6; }
body.rg-funnel .rc-qty-val { min-width: 40px; height: 40px; line-height: 40px; text-align: center; font-weight: 700; border-left: 1px solid #e5e7eb; border-right: 1px solid #e5e7eb; }
body.rg-funnel .rc-cart-item__right { display: contents; }
body.rg-funnel .rc-cart-item__price { font-size: 18px; font-weight: 800; color: #111827; white-space: nowrap; min-width: 110px; text-align: right; }
body.rg-funnel .rc-cart-item__price .rc-pold { display: block; font-size: 12px; font-weight: 400; color: #9ca3af; text-decoration: line-through; }
body.rg-funnel .rc-cart-item__remove { width: 40px; height: 40px; display: grid; place-items: center; border: 0; background: transparent; color: #9ca3af; cursor: pointer; border-radius: 10px; }
body.rg-funnel .rc-cart-item__remove:hover { color: #dc2626; background: #fef2f2; }
/* Récapitulatif */
body.rg-funnel .cart_totals { padding: 20px; border-radius: 16px; }
body.rg-funnel .cart_totals h2 { font-size: 17px; margin: 0 0 10px; color: #111827; }
body.rg-funnel .cart_totals table.shop_table { border: 0; margin: 0; }
body.rg-funnel .cart_totals tr th { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 500; color: #6b7280; padding: 8px 0; }
body.rg-funnel .cart_totals tr td { text-align: right; padding: 8px 0; color: #111827; font-weight: 600; }
body.rg-funnel .cart_totals .woocommerce-Price-amount { color: #111827; }
body.rg-funnel .cart_totals .order-total th, body.rg-funnel .cart_totals .order-total td { padding-top: 14px; border-top: 1px solid #e5e7eb; font-size: 16px; color: #111827; font-weight: 700; }
body.rg-funnel .cart_totals .order-total .woocommerce-Price-amount { font-size: 24px; font-weight: 800; color: #111827; }
body.rg-funnel .cart_totals .rg-cashback-row td { color: var(--rg-cashback); }
body.rg-funnel .cart_totals .rg-cashback-row .rg-muted { color: #6b7280; font-weight: 400; }
body.rg-funnel .wc-proceed-to-checkout { padding: 14px 0 0; margin: 0; }
body.rg-funnel .wc-proceed-to-checkout a.checkout-button, body.rg-funnel .cart-collaterals a.checkout-button { display: flex; width: 100%; min-height: 50px; margin: 0; border-radius: 999px; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
/* Code promo (déplacé sous le bouton par theme.js) */
body.rg-funnel .cart_totals .rc-promo { margin: 14px 0 0; padding: 12px 0 0; border: 0; border-top: 1px solid #e5e7eb; background: transparent; }
body.rg-funnel .cart_totals .rc-promo__label { font-size: 14px; font-weight: 600; color: #374151; }
/* Garanties et logos */
.rg-cart-trust { margin-top: 16px; padding-top: 14px; border-top: 1px solid #e5e7eb; }
.rg-cart-trust ul { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rg-cart-trust li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #374151; }
.rg-cart-trust li .rg-icon { color: var(--rg-cashback); flex: 0 0 auto; }
.rg-cart-trust .rg-pay-logos { gap: 6px; }
.rg-cart-trust .rg-pay-logos li { width: 52px; height: 30px; padding: 3px 5px; border: 1px solid #e5e7eb; border-radius: 6px; }
.rg-cart-trust .rg-pay-logos li img { height: 22px !important; }
/* Suggestions (rangée du thème sur fond clair) */
.rg-cart-suggest { margin-top: 36px; }
.rg-cart-suggest .rg-section { margin: 0; }
.rg-cart-suggest .rg-section-title { color: #111827; font-size: 20px; }
.rg-cart-suggest .rg-rail-arrow { background: #fff; color: #111827; border: 1px solid #e5e7eb; box-shadow: 0 2px 10px rgba(16, 24, 40, .1); }
@media (max-width: 1024px) {
	body.woocommerce-cart .rg-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
	body.woocommerce-cart .woocommerce-cart-form { grid-column: 1; grid-row: 1; position: static; }
	body.woocommerce-cart .cart-collaterals { grid-column: 1; grid-row: 2; position: static; } /* Récapitulatif juste sous les articles, avant les suggestions (ordre Giftshopsn). */
	body.woocommerce-cart .rg-content > .woocommerce > .rg-cart-suggest { grid-row: 3; }
}
@media (max-width: 600px) {
	body.rg-funnel .rc-cart-item { grid-template-columns: 96px minmax(0, 1fr) auto; grid-template-areas: "img content right" "img qty right"; gap: 8px 12px; }
	body.rg-funnel .rc-cart-item__right { display: flex !important; position: static !important; grid-area: right; flex-direction: column; align-items: flex-end; justify-content: space-between; align-self: stretch; gap: 8px; }
	body.rg-funnel .rc-cart-item__img, body.rg-funnel .rc-cart-item__img img { width: 96px !important; grid-area: img; align-self: start; }
	body.rg-funnel .rc-cart-item__content { grid-area: content; }
	body.rg-funnel .rc-cart-item__qty { grid-area: qty; justify-self: start; }
	body.rg-funnel .rc-qty-btn { width: 34px; height: 34px; }
	body.rg-funnel .rc-qty-val { min-width: 34px; height: 34px; line-height: 34px; }
	body.rg-funnel .rc-cart-item__price { min-width: 0; font-size: 16px; }
	body.rg-funnel .rc-cart-item__remove { width: 36px; height: 36px; }
}
/* Panier : retouches. Logos en ligne ; barre collante Checkpanier seulement sur téléphone ; sur téléphone le
   récapitulatif reste visible (code promo, cashback) et seul son bouton cède la place à la barre collante ;
   la rangée de suggestions ne déborde pas de l'écran. */
.rg-cart-trust .rg-pay-logos { display: flex !important; flex-direction: row !important; flex-wrap: wrap; }
@media (min-width: 768px) { body.woocommerce-cart #rcBar { display: none !important; } }
@media (max-width: 767px) {
	body.woocommerce-cart .cart-collaterals, body.woocommerce-cart .cart_totals { display: block !important; }
	body.woocommerce-cart .cart_totals .rc-promo { border-top: 0; padding-top: 0; }
}
/* Rangée « Fréquemment achetés ensemble » : même largeur que « Complétez votre achat » de la fiche (24 px de retrait de chaque
   côté → cartes de 237 px), et pas de découpe sur bureau pour que la flèche ronde dépasse entièrement. */
.rg-cart-suggest { overflow: visible; }
@media (min-width: 821px) { .rg-cart-suggest .rg-section { padding: 0 24px; } }
body.woocommerce-cart .rg-main { overflow-x: clip; }

/* ---------- Finalisation (inc/funnel.php) ---------- */
/* Bandeau « Avez-vous un code promo ? » : clair, sans l'icône WooCommerce (police d'icônes absente → carré). */
body.rg-funnel .woocommerce-form-coupon-toggle .woocommerce-info { background: #fff; border: 1px solid #e5e7eb; border-left: 4px solid var(--rg-btn); border-radius: 12px; color: #374151; padding: 14px 18px; box-shadow: 0 1px 3px rgba(16, 24, 40, .06); }
body.rg-funnel .woocommerce-info::before, body.rg-funnel .woocommerce-message::before, body.rg-funnel .woocommerce-error::before { display: none !important; }
body.rg-funnel .woocommerce-form-coupon-toggle .woocommerce-info a { color: #2563eb; font-weight: 600; }
body.rg-funnel form.checkout_coupon { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 16px; margin: 0 0 16px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
body.rg-funnel form.checkout_coupon p { margin: 0; }
body.rg-funnel form.checkout_coupon .form-row-first { flex: 1 1 220px; }
/* Résumé Checkpanier : vignettes 16/11. */
body.rg-funnel .rc-billing-summary #rcBillingItems .rc-billing-item { display: flex; align-items: center; gap: 12px; }
body.rg-funnel .rc-billing-item > div { flex: 1 1 auto; min-width: 0; }
body.rg-funnel .rc-billing-item-price { flex: 0 0 auto; }
body.rg-funnel .rc-billing-item-img { flex: 0 0 64px; width: 64px; height: 44px; object-fit: cover; border-radius: 8px; border: 1px solid #e5e7eb; }
/* Barre collante Checkpanier : téléphone seulement. */
@media (min-width: 768px) { body.woocommerce-checkout #rcBar { display: none !important; } }
/* Téléphone et tablette : une seule colonne, dans l'ordre informations → résumé → paiement. */
@media (max-width: 1024px) {
	body.rg-funnel form.checkout { display: flex; flex-direction: column; gap: 16px; }
	body.rg-funnel form.checkout > .col2-set, body.rg-funnel form.checkout > :not(.col2-set) { grid-column: auto; grid-row: auto; width: 100%; }
	body.rg-funnel .rc-billing-summary { position: static !important; }
}

/* ==========================================================================
   Tunnel d'achat en sombre (panier, finalisation, confirmation), modèle Giftshopsn.
   Ces règles priment sur le bloc « Tunnel d'achat » clair plus haut et sur les styles inline de Craft Checkpanier / Craft Pay.
   ========================================================================== */
body.rg-funnel { background: var(--rg-navy-dark); color: var(--rg-text); }
body.rg-funnel .rg-main, body.rg-funnel .rg-content, body.rg-funnel #payment { color: var(--rg-text-muted); }
body.rg-funnel .rg-main h1, body.rg-funnel .rg-main h2, body.rg-funnel .rg-main h3, body.rg-funnel .rg-main h4, body.rg-funnel .rg-main strong { color: #fff; }
/* Barre d'étapes (Craft Checkpanier) */
body.rg-funnel .cpdc-steps { --st-bg: var(--rg-navy-dark); --st-text: #fff; --st-todo: rgba(255, 255, 255, .55); --st-line-todo: rgba(255, 255, 255, .18); --st-sep: var(--rg-border); --st-active: var(--rg-btn); --st-done: var(--rg-btn); --st-line-done: var(--rg-btn); background: var(--rg-navy-dark) !important; border-bottom: 1px solid var(--rg-border); box-shadow: none !important; }
body.rg-funnel .cpdc-step__lbl, body.rg-funnel .cpdc-steps__btxt { color: #fff !important; }
body.rg-funnel .cpdc-step.is-done .cpdc-step__dot { background: rgba(63, 156, 255, .15) !important; }
body.rg-funnel .cpdc-steps__btxt small, body.rg-funnel .cpdc-steps__btxt span + span { color: var(--rg-text-muted) !important; }
/* Trait sous le logo, sur téléphone : demi-pixel (une bordure de .5px reste à 1px sur certains écrans). */
@media (max-width: 640px) {
	body.rg-funnel .cpdc-steps--sep .cpdc-steps__list { position: relative; border-top: 0; }
	body.rg-funnel .cpdc-steps--sep .cpdc-steps__list::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255, 255, 255, .5); transform: scaleY(.5); }
}
/* Cartes */
body.rg-funnel .woocommerce-cart-form, body.rg-funnel .cart_totals, body.rg-funnel form.checkout .col2-set > div, body.rg-funnel #order_review, body.rg-funnel form.checkout > #payment, body.rg-funnel .rc-cart-item, body.rg-funnel form.checkout_coupon, body.rg-funnel .woocommerce-form-coupon-toggle .woocommerce-info, body.rg-funnel .woocommerce-order-details, body.rg-funnel .woocommerce-customer-details { background: var(--rg-surface) !important; border-color: var(--rg-border) !important; color: var(--rg-text-muted) !important; box-shadow: none !important; }
body.rg-funnel .rc-cart-title, body.rg-funnel .rc-billing-title, body.rg-funnel .cart_totals h2, body.rg-funnel .rc-cart-item__name, body.rg-funnel .rc-billing-item-name, body.rg-funnel .rc-cart-item__price, body.rg-funnel .cart_totals tr td, body.rg-funnel .cart_totals .woocommerce-Price-amount, body.rg-funnel .rc-billing-total-label, body.rg-funnel .rc-billing-total-amount, body.rg-funnel .rc-billing-item-price, body.rg-funnel .rc-promo__label, body.rg-funnel .rc-qty-val { color: #fff !important; }
body.rg-funnel .cart_totals tr th, body.rg-funnel .rc-cart-item__variation, body.rg-funnel .rc-billing-item-meta, body.rg-funnel .rg-cart-trust li, body.rg-funnel .rc-pold { color: var(--rg-text-muted) !important; }
body.rg-funnel .cart_totals .order-total th, body.rg-funnel .cart_totals .order-total td, body.rg-funnel .rc-billing-total, body.rg-funnel .rg-cart-trust, body.rg-funnel .cart_totals .rc-promo, body.rg-funnel .rc-billing-item, body.rg-funnel .rc-billing-summary #rcBillingItems .rc-billing-item { border-color: var(--rg-border) !important; }
body.rg-funnel .rc-cart-item__qty, body.rg-funnel .rc-qty-btn { background: var(--rg-surface-inset) !important; border-color: var(--rg-border-hover) !important; color: #fff !important; }
body.rg-funnel .rc-qty-btn:hover { background: var(--rg-surface-hover) !important; }
body.rg-funnel .rc-qty-val { border-color: var(--rg-border) !important; }
body.rg-funnel .rc-cart-item__remove { color: var(--rg-text-muted); }
body.rg-funnel .rc-cart-item__remove:hover { color: #ff6b6b; background: rgba(255, 107, 107, .12); }
body.rg-funnel .rc-cart-item__img img, body.rg-funnel .rc-billing-item-img { border-color: var(--rg-border) !important; }
body.rg-funnel .rg-cart-trust .rg-pay-logos li { border-color: transparent; }
body.rg-funnel .rc-promo__input, body.rg-funnel .rg-main input[type="text"], body.rg-funnel .rg-main input[type="email"], body.rg-funnel .rg-main input[type="tel"], body.rg-funnel .rg-main input[type="password"], body.rg-funnel .rg-main input[type="number"], body.rg-funnel .rg-main select, body.rg-funnel .rg-main textarea, body.rg-funnel .cpdc-in input { background: var(--rg-surface-inset) !important; color: #fff !important; border-color: var(--rg-border-hover) !important; }
body.rg-funnel .rg-main input::placeholder, body.rg-funnel .rc-promo__input::placeholder { color: var(--rg-text-dim) !important; }
body.rg-funnel .rg-main input:focus, body.rg-funnel .rg-main select:focus, body.rg-funnel .rg-main textarea:focus { border-color: var(--rg-btn) !important; box-shadow: 0 0 0 3px rgba(63, 156, 255, .2) !important; }
body.rg-funnel .rg-main label, body.rg-funnel form.checkout .form-row label { color: #fff; }
body.rg-funnel .rc-promo__btn { background: var(--rg-surface-hover) !important; color: #fff !important; border: 0 !important; }
body.rg-funnel .rc-promo__sw i { background: var(--rg-surface-hover) !important; }
body.rg-funnel .rc-promo__sw input:checked + i { background: var(--rg-btn) !important; }
body.rg-funnel .rc-promo__chip { background: rgba(63, 156, 255, .12) !important; color: var(--rg-sale) !important; }
/* Bandeaux et messages */
body.rg-funnel .woocommerce-info, body.rg-funnel .woocommerce-message, body.rg-funnel .woocommerce-error, body.rg-funnel .woocommerce-notice { background: var(--rg-surface-inset) !important; color: #fff !important; border: 1px solid var(--rg-border-hover) !important; border-left: 4px solid var(--rg-btn) !important; border-radius: 12px; }
body.rg-funnel .woocommerce-error { border-left-color: #ff6b6b !important; }
body.rg-funnel .rg-content a:not(.button):not(.checkout-button):not(.rg-btn):not(.wc-dcd-link-btn):not(.wc-dcd-copy-btn), body.rg-funnel .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--rg-accent) !important; }
/* Finalisation : champs Checkpanier (indicatif, annonces), moyens de paiement (Craft Pay), conditions */
body.rg-funnel .cpdc-field, body.rg-funnel .custom-phone-field .cpdc-in, body.rg-funnel #billing_rc_announce_field { color: #fff; }
body.rg-funnel #payment ul.payment_methods li { background: var(--rg-surface-inset) !important; border: 1px solid var(--rg-border) !important; border-radius: 12px; margin-bottom: 8px; }
body.rg-funnel #payment ul.payment_methods li > label, body.rg-funnel .cp-method-name { color: #fff !important; }
body.rg-funnel .cp-method-sub, body.rg-funnel .cp-method-desc, body.rg-funnel .cp-hint { color: var(--rg-text-muted) !important; }
body.rg-funnel #payment ul.payment_methods li > input[type="radio"] { accent-color: var(--rg-btn); }
body.rg-funnel #payment div.payment_box { background: var(--rg-navy-deep) !important; color: var(--rg-text-muted) !important; border-radius: 10px; }
body.rg-funnel #payment div.payment_box::before { border-bottom-color: var(--rg-navy-deep) !important; }
body.rg-funnel #payment .woocommerce-terms-and-conditions-wrapper, body.rg-funnel #payment .woocommerce-privacy-policy-text { color: var(--rg-text-muted); }
body.rg-funnel #payment .woocommerce-terms-and-conditions-wrapper a { color: var(--rg-accent); }
body.rg-funnel .rg-funnel-help { margin: 18px 0 0; font-size: 14px; color: var(--rg-text-muted); }
body.rg-funnel .rg-funnel-help a { color: var(--rg-accent); text-decoration: underline; text-underline-offset: 3px; }
/* Craft Pay : fenêtre de paiement et formulaire carte */
body.rg-funnel .cp-modal, body.rg-funnel .cp-instr-box, body.rg-funnel .cp-iframe-box { background: var(--rg-navy-dark) !important; color: #fff !important; border: 1px solid var(--rg-border-hover) !important; }
body.rg-funnel .cp-modal-header, body.rg-funnel .cp-modal-header-compact { background: transparent !important; color: #fff !important; } /* Pas de bande derrière la pastille du moyen de paiement. */
body.rg-funnel .cp-result-title, body.rg-funnel .cp-push-title { color: #fff !important; }
body.rg-funnel #cp-fail-title { display: none !important; } /* Écran d'échec : le message rouge suffit. */
body.rg-funnel .cp-label, body.rg-funnel .cp-confirm-label, body.rg-funnel .cp-card-details-label, body.rg-funnel .cp-instr-ttl, body.rg-funnel .cp-modal-amount, body.rg-funnel .cp-footer { color: #fff !important; }
body.rg-funnel .cp-instr-txt, body.rg-funnel .cp-modal-amount-lbl { color: var(--rg-text-muted) !important; }
body.rg-funnel .cp-card-input, body.rg-funnel .cp-card-field-wrap, body.rg-funnel .cp-field input { background: var(--rg-surface-inset) !important; color: #fff !important; border-color: var(--rg-border-hover) !important; }
body.rg-funnel .cp-btn-cancel { background: transparent !important; color: #fff !important; border: 1px solid var(--rg-border-hover) !important; }
/* Barre collante mobile (Craft Checkpanier) */
body.rg-funnel .rc-bar { --sb-bg: var(--rg-navy-deep); --sb-text: #fff; --sb-line: var(--rg-border); --sb-btn: var(--rg-btn); box-shadow: 0 -6px 24px rgba(0, 0, 0, .45) !important; border-top: 1px solid var(--rg-border); }
body.rg-funnel .rc-bar * { color: inherit; }
body.rg-funnel .rc-bar .rc-bar-btn { color: #fff !important; }
/* Confirmation : tableaux WooCommerce sous la carte Craft Livraison */
body.rg-funnel table.shop_table, body.rg-funnel table.shop_table th, body.rg-funnel table.shop_table td { border-color: var(--rg-border) !important; color: var(--rg-text-muted); background: transparent; }
body.rg-funnel table.shop_table th, body.rg-funnel table.shop_table tfoot td, body.rg-funnel .woocommerce-order-details .product-name a { color: #fff !important; }
body.rg-funnel .woocommerce-customer-details address { border: 0; padding: 0; }
/* Suggestions du panier : titres en blanc, flèches du thème */
body.rg-funnel .rg-cart-suggest .rg-section-title { color: #fff; }
body.rg-funnel .rg-cart-suggest .rg-rail-arrow { background: rgba(60, 64, 80, .75); color: #fff; border: 0; }
body.rg-funnel .rg-shop-count, body.rg-funnel .rg-muted { color: var(--rg-text-muted); }

/* Tunnel sombre : derniers éléments clairs (annonces Checkpanier, encart moyens de paiement, boutons Craft Livraison). */
body.rg-funnel .rc-announce, body.rg-funnel .rc-notify { background: var(--rg-surface-inset) !important; border: 1px solid var(--rg-border) !important; border-radius: 12px; color: #fff !important; }
body.rg-funnel .rc-announce__lbl, body.rg-funnel .rc-announce__txt, body.rg-funnel .rc-notify label, body.rg-funnel .rc-notify span { color: #fff !important; }
body.rg-funnel .rc-payment-info { background: rgba(63, 156, 255, .14) !important; color: #fff !important; border: 1px solid rgba(63, 156, 255, .35) !important; border-radius: 12px; }
body.rg-funnel .wc-dcd-link-btn, body.rg-funnel .wc-dcd-link-btn-primary, body.rg-funnel .wc-dcd-link-btn-done { color: #fff !important; }
body.rg-funnel .wc-dcd-link-btn-whatsapp { color: #4ade80 !important; }
body.rg-funnel .rc-phone-prefix { background: var(--rg-surface-hover) !important; color: #fff !important; border-color: var(--rg-border-hover) !important; }
body.rg-funnel .rc-phone-wrap { background: transparent !important; }
.rcsp-toast:empty { display: none !important; } /* Toast vide de Craft Popup : apparaissait comme une pastille sombre sous les pages. */
/* Indicatif téléphonique (intl-tel-input, Craft Checkpanier) en sombre. */
body.rg-funnel .iti__selected-flag, body.rg-funnel .iti__country-container, body.rg-funnel .iti__selected-country { background: var(--rg-surface-hover) !important; color: #fff !important; border-color: var(--rg-border-hover) !important; border-radius: 10px 0 0 10px; }
body.rg-funnel .iti__dropdown-content, body.rg-funnel .iti__country-list { background: var(--rg-navy-dark) !important; color: #fff !important; border: 1px solid var(--rg-border-hover) !important; }
body.rg-funnel .iti__country:hover, body.rg-funnel .iti__country.iti__highlight { background: var(--rg-surface-hover) !important; }
body.rg-funnel .iti__search-input { background: var(--rg-surface-inset) !important; color: #fff !important; }
body.rg-funnel .iti__dial-code { color: var(--rg-text-muted) !important; }
/* Indicatif téléphonique (Select2) en sombre. */
body.rg-funnel .select2-container .select2-selection--single, body.rg-funnel .select2-container--default .select2-selection--single { background: var(--rg-surface-inset) !important; border: 1px solid var(--rg-border-hover) !important; border-radius: 10px !important; color: #fff !important; }
body.rg-funnel .select2-container--default .select2-selection--single .select2-selection__rendered { color: #fff !important; }
body.rg-funnel .select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--rg-text-muted) !important; }
.select2-container--default .select2-dropdown { background: var(--rg-navy-dark) !important; border: 1px solid var(--rg-border-hover) !important; color: #fff !important; }
.select2-container--default .select2-results__option { color: #fff !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--rg-surface-hover) !important; }
.select2-container--default .select2-search--dropdown .select2-search__field { background: var(--rg-surface-inset) !important; color: #fff !important; border-color: var(--rg-border-hover) !important; }

body.woocommerce-cart .rg-content > .woocommerce > .rg-cart-suggest { grid-column: 1 / -1; grid-row: 3; }
body.rg-funnel .woocommerce-cart-form { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; } /* Simple conteneur des cartes d'articles, pas une carte lui-même. */
/* Finalisation : panneau de saisie Craft Pay (numéro Mobile Money, carte) sous le titre du moyen de paiement, en sombre. */
body.rg-funnel #payment ul.payment_methods li > .cp-panel { flex: 1 1 100%; width: 100%; order: 10; margin: 0 -16px -14px; padding: 12px 16px 16px !important; border-top: 1px solid var(--rg-border) !important; background: var(--rg-navy-deep) !important; }
body.rg-funnel #payment ul.payment_methods li > label { flex: 1 1 0; }
body.rg-funnel .cp-panel .cp-method-desc, body.rg-funnel .cp-panel .cp-confirm-label, body.rg-funnel .cp-panel .cp-hint, body.rg-funnel .cp-panel .cp-label { color: var(--rg-text-muted) !important; }
body.rg-funnel .cp-phone-wrap { background: var(--rg-surface-inset) !important; border-color: var(--rg-border-hover) !important; }
body.rg-funnel .cp-phone-wrap:focus-within { border-color: var(--rg-btn) !important; box-shadow: 0 0 0 3px rgba(63, 156, 255, .2) !important; }
body.rg-funnel .cp-prefix { background: var(--rg-surface-hover) !important; color: #fff !important; border-right: 1px solid var(--rg-border-hover); }
body.rg-funnel .cp-phone-input { background: transparent !important; color: #fff !important; }
body.rg-funnel .cp-phone-input::placeholder { color: var(--rg-text-dim) !important; }
body.rg-funnel .cp-ussd-guide { background: rgba(255, 176, 32, .12) !important; border-color: rgba(255, 176, 32, .4) !important; color: #ffd56b !important; }
body.rg-funnel .cp-sec-badge, body.rg-funnel .cp-sec-sep { color: var(--rg-text-dim) !important; }
/* Informations enregistrées (client connecté, Craft Checkpanier) : texte en blanc, lien « Modifier » en cyan. */
body.rg-funnel #rc-saved-info-box, body.rg-funnel #rc-saved-info-box strong, body.rg-funnel #rc-saved-info-box span, body.rg-funnel #rc-saved-info-box .rc-info-line { color: #fff !important; }
body.rg-funnel #rc-saved-info-box .rc-ico { color: var(--rg-text-muted) !important; }
body.rg-funnel #rc-saved-info-box .rc-ico--whatsapp { color: #25d366 !important; }
body.rg-funnel #rc-saved-info-box .rc-ico--email { color: var(--rg-accent) !important; }
body.rg-funnel #rc-saved-info-edit { color: var(--rg-accent) !important; }

/* Mon compte : « Mes remboursements » (inc/cashback.php). */
.rg-refunds { margin-top: 20px; padding: 20px 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
.rg-refunds-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.rg-refunds-head h3 { margin: 0; font-size: 18px; color: #fff; }
.rg-refunds-total { font-size: 14px; color: var(--rg-text-muted); }
.rg-refunds-total b, .rg-refunds-total bdi { color: var(--rg-cashback); font-weight: 700; }
.rg-refunds ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rg-refunds li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--rg-surface-inset); color: var(--rg-text-muted); }
.rg-refunds li .rg-icon { color: var(--rg-cashback); }
.rg-refunds-body { display: flex; flex-direction: column; min-width: 0; }
.rg-refunds-body strong { color: #fff; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-refunds-body small { font-size: 12px; }
.rg-refunds-amount, .rg-refunds-amount bdi { color: var(--rg-cashback); font-weight: 700; white-space: nowrap; }
.rg-refunds-link { color: var(--rg-accent); font-size: 13px; font-weight: 600; }
.rg-refunds-note { margin: 12px 0 0; font-size: 13px; }
@media (max-width: 600px) { .rg-refunds li { grid-template-columns: 18px minmax(0, 1fr) auto; } .rg-refunds-link { grid-column: 2 / -1; justify-self: start; } }

/* Écran tactile : pas de survol. Le « survol » collait à la carte après un appui sur le cœur (panneau remonté,
   bouton « Ajouter au panier » coincé). Carte fixe, cœur et bouton toujours visibles. */
@media (hover: none) {
	.rg-card:hover { border-color: var(--rg-border); }
	.rg-card:hover .rg-card-media img { transform: none; }
	.rg-card:hover .rg-card-panel, .rg-card:has(:focus-visible) .rg-card-panel { transform: none; }
	.rg-wish-card { opacity: 1; transform: none; pointer-events: auto; }
	/* Le « survol » du cœur collait après l'appui : il restait rouge une fois retiré des favoris. */
	.rg-wish:hover, .rg-wish-card:hover { transform: none; background: rgba(8, 13, 45, .72); color: #fff; }
	.rg-wish.is-on, .rg-wish-card.is-on { color: var(--rg-wish); }
	/* Flèche « remonter » alignée sur le bouton WhatsApp (même taille, même bord droit, juste au-dessus). */
	.rg-totop { right: 12px; width: 48px; height: 48px; bottom: 84px; }
	body:has(.rg-mbar) .rg-totop { bottom: 148px; }
}

/* ==========================================================================
   Finalisation, modèle Giftshopsn : informations (étape 1) et moyens de paiement (étape 2) à gauche,
   résumé collant à droite, cartes radio avec logo et sous-titre, bouton « Finaliser » pleine largeur.
   ========================================================================== */
body.rg-funnel.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; grid-template-rows: auto auto auto 1fr; gap: 20px 28px; align-items: start; }
body.rg-funnel.woocommerce-checkout form.checkout > .col2-set { grid-column: 1; grid-row: 1; }
body.rg-funnel.woocommerce-checkout form.checkout > .rg-co-card-pay { grid-column: 1; grid-row: 2; padding: 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay .rg-co-head { margin-bottom: 16px; }
body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay .rc-payment-info { margin: 0 0 14px !important; font-size: 13px !important; padding: 10px 14px !important; }
body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay > #payment, body.rg-funnel form.checkout .rg-co-card-pay > #payment { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.rg-funnel.woocommerce-checkout form.checkout > #order_review_heading { display: none; }
body.rg-funnel.woocommerce-checkout form.checkout > .rc-billing-summary { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: 90px; margin: 0; padding: 20px 22px; border-radius: var(--rg-radius); border: 1px solid var(--rg-border); background: var(--rg-surface); }
body.rg-funnel.woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
/* Carte « Étape 1 » */
body.rg-funnel form.checkout .woocommerce-billing-fields > h3 { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; font-size: 18px; }
body.rg-funnel form.checkout .woocommerce-billing-fields > h3::before { content: "Étape 1"; }
.rg-co-step, body.rg-funnel form.checkout .woocommerce-billing-fields > h3::before { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; background: var(--rg-btn); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.rg-co-head { display: flex; align-items: flex-start; gap: 12px; }
.rg-co-head h3 { margin: 0; font-size: 18px; color: #fff; }
.rg-co-head p { margin: 2px 0 0; font-size: 14px; color: var(--rg-text-muted); }
.rg-co-head .rg-co-step { margin-top: 2px; }
/* Cartes des moyens de paiement */
body.rg-funnel #payment ul.payment_methods { margin: 0 0 18px; }
body.rg-funnel #payment ul.payment_methods li { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 0 14px; margin-bottom: 10px; padding: 12px 14px !important; border-radius: 14px; transition: border-color var(--rg-fast) var(--rg-ease), background-color var(--rg-fast) var(--rg-ease); }
body.rg-funnel #payment ul.payment_methods li:has(> input:checked) { border-color: var(--rg-btn) !important; background: rgba(63, 156, 255, .08) !important; }
body.rg-funnel #payment ul.payment_methods li > input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
body.rg-funnel #payment ul.payment_methods li > label { display: flex !important; align-items: center; gap: 14px; flex: 1 1 0; min-width: 0; margin: 0; padding: 0 !important; cursor: pointer; font-weight: 700; }
body.rg-funnel #payment ul.payment_methods li > label img { order: -1; flex: 0 0 auto; width: 88px; height: 44px; object-fit: contain; padding: 6px 10px; border-radius: 10px; background: #fff; }
body.rg-funnel #payment ul.payment_methods li > label .rg-pm-text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 0; min-width: 0; }
body.rg-funnel #payment ul.payment_methods li > label .rg-pm-name { font-size: 15px; font-weight: 700; color: #fff; }
body.rg-funnel #payment ul.payment_methods li > label .rg-pm-sub { font-size: 13px; font-weight: 400; color: var(--rg-text-muted); }
body.rg-funnel #payment ul.payment_methods li > label::after { content: ""; flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--rg-border-hover); background: transparent; transition: border-color var(--rg-fast) var(--rg-ease), box-shadow var(--rg-fast) var(--rg-ease); }
body.rg-funnel #payment ul.payment_methods li:has(> input:checked) > label::after { border-color: var(--rg-btn); box-shadow: inset 0 0 0 5px var(--rg-btn); }
body.rg-funnel #payment ul.payment_methods li > .cp-panel { margin: 12px -14px -12px !important; padding: 14px 16px 16px !important; }
/* Bouton et bas de carte */
body.rg-funnel #payment .place-order { display: flex; flex-direction: column; gap: 10px; }
body.rg-funnel #payment #place_order, body.rg-funnel #payment button#place_order { width: 100%; min-height: 52px; font-size: 16px; font-weight: 700; border-radius: 999px; order: 2; }
body.rg-funnel #payment .woocommerce-terms-and-conditions-wrapper { order: 1; margin: 0; font-size: 13.5px; }
body.rg-funnel #payment .woocommerce-terms-and-conditions { display: none !important; } /* Le texte complet des CGV s'ouvrait dans la page : lien seulement. */
.rg-co-secure { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; order: 3; font-size: 13px; color: var(--rg-text-muted); }
.rg-co-secure .rg-icon { color: var(--rg-cashback); }
/* Résumé */
body.rg-funnel .rc-billing-title { font-size: 20px !important; font-weight: 800 !important; color: #fff !important; margin: 0 0 12px !important; }
body.rg-funnel .rc-billing-item { padding: 12px 0 !important; border-bottom: 1px solid var(--rg-border) !important; }
body.rg-funnel .rc-billing-item-name { font-size: 14px; font-weight: 600; }
body.rg-funnel .rc-billing-total { padding-top: 14px !important; margin-top: 4px; border-top: 1px solid var(--rg-border-hover) !important; }
body.rg-funnel .rc-billing-total-label { font-size: 15px !important; font-weight: 700 !important; }
body.rg-funnel .rc-billing-total-amount { font-size: 24px !important; font-weight: 800 !important; color: #fff !important; }
body.rg-funnel .rg-funnel-help { margin-top: 22px; }
/* Code promo : discret au-dessus, pas une grande barre. */
body.rg-funnel .woocommerce-form-coupon-toggle .woocommerce-info { padding: 10px 16px !important; font-size: 14px; }
@media (max-width: 1024px) { body.rg-funnel.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr) 320px; gap: 16px 20px; } }
@media (max-width: 820px) {
	body.rg-funnel.woocommerce-checkout form.checkout { display: flex; flex-direction: column; gap: 14px; }
	body.rg-funnel.woocommerce-checkout form.checkout > .rc-billing-summary { position: static; order: 10; }
	body.rg-funnel.woocommerce-checkout form.checkout > .rg-co-card-pay { padding: 16px; }
	body.rg-funnel #payment ul.payment_methods li > label img { width: 72px; height: 40px; }
}
/* Résumé : articles du thème à la place de ceux de Checkpanier */
body.rg-funnel .rc-billing-summary #rcBillingItems { display: none !important; }
body.rg-funnel .rc-billing-summary > .rg-co-items:not(:first-child) ~ .rg-co-items { display: none; }
.rg-co-items { display: flex; flex-direction: column; }
.rg-co-item { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--rg-border); transition: opacity var(--rg-fast) var(--rg-ease); }
.rg-co-item.is-busy { opacity: .45; pointer-events: none; }
.rg-co-item-img { flex: 0 0 64px; width: 64px; height: auto; align-self: flex-start; object-fit: contain; border-radius: 8px; border: 1px solid var(--rg-border); } /* Proportions réelles du visuel, jamais rogné. */
.rg-co-item-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.rg-co-item-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.rg-co-item-top strong { font-size: 14px; line-height: 1.35; color: #fff; }
.rg-co-remove { flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 8px; background: transparent; color: var(--rg-text-muted); cursor: pointer; }
.rg-co-remove:hover { color: #ff6b6b; background: rgba(255, 107, 107, .12); }
.rg-co-item-meta { font-size: 12.5px; color: var(--rg-text-muted); }
.rg-co-item-bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 4px; }
.rg-co-qty { display: inline-flex; align-items: center; border: 1px solid var(--rg-border-hover); border-radius: 8px; overflow: hidden; background: var(--rg-surface-inset); }
.rg-co-qty button { width: 28px; height: 28px; border: 0; background: transparent; color: #fff; font-size: 15px; cursor: pointer; }
.rg-co-qty button:hover { background: var(--rg-surface-hover); }
.rg-co-qty b { min-width: 28px; text-align: center; font-size: 13px; color: #fff; }
.rg-co-qty-single { font-size: 12.5px; color: var(--rg-text-muted); }
.rg-co-item-price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.rg-co-item-price del { font-size: 11px; color: var(--rg-text-dim); }
.rg-co-item-price > span, .rg-co-item-price bdi { font-size: 15px; font-weight: 800; color: #fff; }
.rg-co-line { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; font-size: 14px; color: var(--rg-text-muted); }
.rg-co-line + .rg-co-line { padding-top: 0; }
.rg-co-line span:last-child, .rg-co-line bdi { color: #fff; font-weight: 700; }
.rg-co-line-promo span:last-child, .rg-co-line-promo bdi { color: var(--rg-sale); }
.rg-co-terms { margin: 14px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--rg-text-muted); }
.rg-co-terms a { color: #fff; text-decoration: underline; }
form.checkout > .rg-co-terms, form.checkout > .rg-co-items { display: none; } /* Avant leur mise en place par theme.js. */
body.rg-funnel .rc-billing-summary > .rg-co-terms, body.rg-funnel .rc-billing-summary > .rg-co-items { display: flex; }
body.rg-funnel .rc-billing-summary > .rg-co-terms { display: block; }
/* Étape 1 (modèle Giftshopsn) : sous-titre, champs en boîtes avec coche, bouton « Continuer », étape 2 verrouillée. */
body.rg-funnel form.checkout .woocommerce-billing-fields > h3 { margin-bottom: 4px; position: relative; }
body.rg-funnel form.checkout .rg-co-sub { margin: 0 0 16px; padding-left: 0; font-size: 14px; color: var(--rg-text-muted); }
body.rg-funnel form.checkout #billing_last_name_field, body.rg-funnel form.checkout #billing_email_field, body.rg-funnel form.checkout #custom-phone-field { position: relative; margin: 0 0 12px !important; padding: 8px 44px 8px 14px !important; border: 1px solid var(--rg-border-hover); border-radius: 12px; background: var(--rg-surface-inset); transition: border-color var(--rg-fast) var(--rg-ease), box-shadow var(--rg-fast) var(--rg-ease); }
body.rg-funnel form.checkout #billing_last_name_field:focus-within, body.rg-funnel form.checkout #billing_email_field:focus-within, body.rg-funnel form.checkout #custom-phone-field:focus-within { border-color: var(--rg-btn); box-shadow: 0 0 0 3px rgba(63, 156, 255, .18); }
body.rg-funnel form.checkout #billing_last_name_field > label, body.rg-funnel form.checkout #billing_email_field > label, body.rg-funnel form.checkout #custom-phone-field > label { display: block; margin: 0 0 2px; font-size: 11.5px; font-weight: 600; letter-spacing: .02em; color: var(--rg-text-muted); }
body.rg-funnel form.checkout #billing_last_name_field > label .required, body.rg-funnel form.checkout #billing_email_field > label .required, body.rg-funnel form.checkout #custom-phone-field > label .required { display: none; }
body.rg-funnel form.checkout #billing_last_name_field input, body.rg-funnel form.checkout #billing_email_field input, body.rg-funnel form.checkout #custom-phone-field input#fake_phone { height: 30px !important; min-height: 0 !important; max-height: none !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; font-size: 16px !important; font-weight: 600; color: #fff !important; }
body.rg-funnel form.checkout #custom-phone-field > span { height: 30px !important; max-height: 30px !important; gap: 10px !important; }
body.rg-funnel form.checkout #custom-phone-field input#fake_phone { min-width: 0; flex: 1 1 0 !important; }
@media (max-width: 600px) { body.rg-funnel form.checkout #custom-phone-field input#fake_phone { font-size: 15px !important; } body.rg-funnel form.checkout #custom-phone-field input#fake_phone::placeholder { font-size: 14px; } }
body.rg-funnel form.checkout #custom-phone-field .select2-container, body.rg-funnel form.checkout #custom-phone-field .select2-container .selection, body.rg-funnel form.checkout #custom-phone-field .select2-selection--single { height: 30px !important; max-height: 30px !important; }
body.rg-funnel form.checkout #custom-phone-field .select2-selection--single { border: 0 !important; border-right: 1px solid var(--rg-border-hover) !important; border-radius: 0 !important; background: transparent !important; padding-right: 6px; }
body.rg-funnel form.checkout #custom-phone-field .select2-selection__rendered { line-height: 30px !important; padding-left: 0 !important; font-weight: 600; }
body.rg-funnel form.checkout #custom-phone-field .select2-selection__arrow { height: 30px !important; }
body.rg-funnel form.checkout #billing_last_name_field::after, body.rg-funnel form.checkout #billing_email_field::after, body.rg-funnel form.checkout #custom-phone-field::after { content: ""; position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; background: var(--rg-cashback); opacity: 0; transform: scale(.6); transition: opacity var(--rg-fast) var(--rg-ease), transform var(--rg-fast) var(--rg-ease); -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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 14px 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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 14px no-repeat; }
body.rg-funnel form.checkout .rg-co-valid::after { opacity: 1 !important; transform: scale(1) !important; }
body.rg-funnel form.checkout .rc-announce { margin-top: 4px; }
.rg-co-continue { display: flex; width: 100%; align-items: center; justify-content: center; min-height: 50px; margin-top: 14px; border: 0; border-radius: 999px; background: var(--rg-btn); color: #fff; font-family: inherit; font-size: 15px; font-weight: 700; cursor: pointer; transition: background-color var(--rg-fast) var(--rg-ease); }
.rg-co-continue:hover { background: var(--rg-btn-hover); }
#customer_details.rc-collapsed .rg-co-continue, #customer_details.rc-collapsed .rg-co-sub { display: none; }
#customer_details.rg-co-shake { animation: rg-co-shake .4s ease; }
@keyframes rg-co-shake { 20% { transform: translateX(-4px); } 40% { transform: translateX(4px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }
/* Étape 1 repliée : coordonnées + « Modifier » (boîte Checkpanier ou la nôtre) */
body.rg-funnel #rc-saved-info-box { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 0; font-size: 14.5px; }
body.rg-funnel #rc-saved-info-box br { display: none; }
body.rg-funnel #rc-saved-info-box > span, body.rg-funnel #rc-saved-info-box > strong { display: flex; align-items: center; gap: 8px; }
body.rg-funnel #rc-saved-info-box > strong { font-size: 14.5px; font-weight: 600; }
body.rg-funnel #rc-saved-info-box > strong:not(:empty)::before { content: ""; flex: 0 0 auto; width: 16px; height: 16px; background-color: var(--rg-text-muted); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-image: 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'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); mask-image: 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'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
body.rg-funnel #rc-saved-info-box > strong:empty { display: none; }
body.rg-funnel #rc-saved-info-box > span:empty { display: none; }
body.rg-funnel #rc-saved-info-edit { position: absolute; right: 0; top: 0; font-size: 14px; font-weight: 600; color: var(--rg-accent) !important; cursor: pointer; }
body.rg-funnel #customer_details.rc-collapsed #rc-saved-info-edit { display: inline !important; } /* Checkpanier le laisse en display:none tant que son script ne l'a pas montré. */
body.rg-funnel #rc-saved-info-box > span:not(:empty)::before { content: ""; flex: 0 0 auto; width: 16px; height: 16px; background-color: var(--rg-text-muted); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
body.rg-funnel #rc-saved-email::before { -webkit-mask-image: 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'%3E%3Cpath d='M4 6h16v12H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); mask-image: 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'%3E%3Cpath d='M4 6h16v12H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }
body.rg-funnel #rc-saved-phone::before { -webkit-mask-image: 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='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); mask-image: 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='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
body.rg-funnel #rc-saved-currency::before { -webkit-mask-image: 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='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/svg%3E"); mask-image: 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='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/svg%3E"); }
body.rg-funnel #rc-saved-info-box .rc-ico { display: none; } /* Icônes de Checkpanier (client connecté) remplacées par les nôtres, même rendu pour tous. */
body.rg-funnel #customer_details.rc-collapsed .woocommerce-billing-fields > h3::before { content: ""; width: 24px; padding: 0; background: var(--rg-btn) center / 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E"); }
/* Étape 2 verrouillée */
.rg-co-card-pay .rg-co-head-locked { display: none; }
.rg-co-card-pay.is-locked .rg-co-head-locked { display: block; }
.rg-co-card-pay.is-locked .rg-co-head-open, .rg-co-card-pay.is-locked .rc-payment-info, .rg-co-card-pay.is-locked #payment { display: none !important; }
.rg-co-card-pay.is-locked { opacity: .55; }
.rg-co-card-pay.is-locked .rg-co-head { margin-bottom: 0; }
.rg-co-card-pay.is-locked .rg-co-step { background: var(--rg-surface-hover); color: var(--rg-text-muted); }

/* ==========================================================================
   Panier, modèle Giftshopsn : carte article (vignette, nom, puces plateforme / pays, quantité en bas à gauche,
   poubelle en haut à droite, prix en bas à droite) et récapitulatif aligné en haut.
   ========================================================================== */
body.rg-funnel .rc-cart-title { display: none; } /* La barre d'étapes dit déjà « Panier ». */
body.rg-funnel .rc-cart-item { grid-template-columns: 110px minmax(0, 1fr) auto !important; grid-template-areas: "img content remove" "img qty price" !important; gap: 10px 18px !important; align-items: start !important; padding: 18px !important; }
body.rg-funnel .rc-cart-item__img, body.rg-funnel .rc-cart-item__img img { width: 110px !important; grid-area: img; align-self: start; }
/* Le bloc « contenu » de Checkpanier contient le nom ET la quantité : on le dissout (display: contents) pour que la
   quantité devienne une cellule de la grille et se place en bas à gauche, le prix en bas à droite. */
body.rg-funnel .rc-cart-item__content { display: contents !important; }
body.rg-funnel .rc-cart-item__content > div:first-child { grid-area: content; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
body.rg-funnel .rc-cart-item__name { font-size: 16px !important; }
.rg-cart-chips { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.rg-cart-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--rg-text-muted); }
.rg-cart-chip img { width: 16px; height: auto; border-radius: 3px; object-fit: contain; }
body.rg-funnel .rc-cart-item__qty { grid-area: qty !important; justify-self: start; align-self: end; margin: 8px 0 0 !important; }
body.rg-funnel .rc-cart-item__right { display: contents !important; }
body.rg-funnel .rc-cart-item__remove { grid-area: remove; justify-self: end; align-self: start; width: 34px; height: 34px; }
body.rg-funnel .rc-cart-item__price { grid-area: price; justify-self: end; align-self: end; display: flex; flex-direction: column; align-items: flex-end; font-size: 20px !important; }
body.rg-funnel .rc-cart-item__price .rc-pold { font-size: 12px; }
/* Récapitulatif */
body.rg-funnel .cart_totals h2 { font-size: 22px !important; font-weight: 800; margin: 0 0 12px !important; }
body.rg-funnel .cart_totals tr th { font-size: 14.5px; }
body.rg-funnel .cart_totals tr td, body.rg-funnel .cart_totals tr td .woocommerce-Price-amount { font-size: 15px; font-weight: 700; }
body.rg-funnel .cart_totals .cart-discount th, body.rg-funnel .cart_totals .cart-discount td, body.rg-funnel .cart_totals .cart-discount .woocommerce-Price-amount { color: var(--rg-sale) !important; }
body.rg-funnel .cart_totals .cart-discount th::before { content: "% "; display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: 6px; border-radius: 4px; background: rgba(63, 156, 255, .18); font-size: 10px; font-weight: 800; }
body.rg-funnel .cart_totals .cart-discount .woocommerce-remove-coupon { margin-left: 6px; font-size: 12px; color: var(--rg-text-dim) !important; }
body.rg-funnel .cart_totals .order-total th { font-size: 16px; }
body.rg-funnel .cart_totals .order-total .woocommerce-Price-amount { font-size: 26px; }
body.rg-funnel .cart_totals .rg-cashback-row th, body.rg-funnel .cart_totals .rg-cashback-row td { padding-top: 4px; border-top: 0; }
body.rg-funnel .wc-proceed-to-checkout a.checkout-button, body.rg-funnel .cart-collaterals a.checkout-button { border-radius: 999px !important; min-height: 52px; font-size: 15px; text-transform: none !important; letter-spacing: 0 !important; }
/* Craft Checkpanier crée le code promo sous les articles, theme.js le déplace dans le récapitulatif : invisible entre les deux sur ordinateur, sinon il saute au chargement. */
body.woocommerce-cart .woocommerce-cart-form #rcPromo { display: none !important; }
/* Page panier : articles et code promo sont construits en JavaScript. Le contenu reste invisible jusqu'à ce qu'il soit assemblé (classe posée par theme.js), sinon il saute au chargement ; l'animation l'affiche quoi qu'il arrive après 2,5 s. */
body.woocommerce-cart:not(.rg-cart-ready) .woocommerce-cart-form, body.woocommerce-cart:not(.rg-cart-ready) .cart-collaterals, body.woocommerce-cart:not(.rg-cart-ready) .rg-cart-suggest { visibility: hidden; animation: rg-cart-show 0s 2.5s forwards; }
@keyframes rg-cart-show { to { visibility: visible; } }
body.rg-funnel .rc-promo { border-top-color: var(--rg-border) !important; }
body.rg-funnel .cart_totals .rc-promo { margin: 18px 0 0 !important; padding: 16px 0 0 !important; border-top: 1px solid var(--rg-border) !important; }
body.rg-funnel .cart_totals .rc-promo__label { display: inline-flex; align-items: center; gap: 8px; font-size: 15px !important; font-weight: 600; color: #fff !important; }
body.rg-funnel .cart_totals .rc-promo__label::before { content: ""; width: 16px; height: 16px; background: var(--rg-accent); -webkit-mask-image: 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-linejoin='round'%3E%3Cpath d='M20 12 12 20 4 12V4h8z'/%3E%3Ccircle cx='8' cy='8' r='1.5'/%3E%3C/svg%3E"); mask-image: 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-linejoin='round'%3E%3Cpath d='M20 12 12 20 4 12V4h8z'/%3E%3Ccircle cx='8' cy='8' r='1.5'/%3E%3C/svg%3E"); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.rg-cart-terms { margin: 16px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--rg-text-muted); }
.rg-cart-terms a { color: #fff; text-decoration: underline; }
body.rg-funnel .rg-cart-trust { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--rg-border); }
@media (max-width: 600px) {
	body.rg-funnel .rc-cart-item { grid-template-columns: 90px minmax(0, 1fr) auto !important; gap: 8px 12px !important; padding: 14px !important; }
	body.rg-funnel .rc-cart-item__img, body.rg-funnel .rc-cart-item__img img { width: 90px !important; }
	body.rg-funnel .rc-cart-item__name { font-size: 14.5px !important; }
	body.rg-funnel .rc-cart-item__price { font-size: 17px !important; }
}

/* Visionneuse produit (PhotoSwipe) enrichie : titre, flèches rondes toujours visibles, miniatures en bas, croix. */
.pswp.rg-pswp .pswp__bg { opacity: .97 !important; background: #05081e; } /* Fond presque opaque : la page ne doit pas se voir derrière. */
.pswp.rg-pswp .pswp__top-bar { background: transparent; height: 56px; }
.pswp.rg-pswp .pswp__counter { left: 16px; font-family: var(--rg-font); font-size: 13px; color: rgba(255, 255, 255, .7); }
.pswp.rg-pswp .pswp__button--close { width: 44px; height: 44px; margin: 6px 10px 0 0; border-radius: 50%; background-color: rgba(255, 255, 255, .1); opacity: 1; }
.pswp.rg-pswp .pswp__button--close:hover { background-color: rgba(255, 255, 255, .2); }
.pswp.rg-pswp .pswp__button--fs, .pswp.rg-pswp .pswp__button--share { display: none; }
.pswp.rg-pswp .pswp__button--zoom { margin-top: 6px; opacity: .8; }
.rg-pswp-title { position: absolute; left: 50%; top: 14px; transform: translateX(-50%); z-index: 1600; max-width: min(70vw, 820px); padding: 6px 14px; border-radius: 999px; background: rgba(8, 13, 45, .65); color: #fff; font-family: var(--rg-font); font-size: 14px; font-weight: 700; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.pswp.rg-pswp .pswp__button--arrow--left, .pswp.rg-pswp .pswp__button--arrow--right { width: 48px; height: 48px; margin-top: -24px; border-radius: 50%; background: rgba(255, 255, 255, .12); opacity: 1 !important; visibility: visible !important; transition: background-color .15s ease; }
.pswp.rg-pswp .pswp__button--arrow--left { left: 16px; }
.pswp.rg-pswp .pswp__button--arrow--right { right: 16px; }
.pswp.rg-pswp .pswp__button--arrow--left:hover, .pswp.rg-pswp .pswp__button--arrow--right:hover { background: rgba(255, 255, 255, .24); }
.pswp.rg-pswp .pswp__button--arrow--left::before, .pswp.rg-pswp .pswp__button--arrow--right::before { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -4px; border: solid #fff; border-width: 2.5px 2.5px 0 0; background: none; transform: rotate(45deg); }
.pswp.rg-pswp .pswp__button--arrow--left::before { margin-left: -8px; transform: rotate(-135deg); margin-left: -3px; }
.pswp.rg-pswp .pswp__ui--hidden .pswp__button--arrow--left, .pswp.rg-pswp .pswp__ui--hidden .pswp__button--arrow--right { opacity: 1 !important; }
.pswp.rg-pswp .pswp__scroll-wrap { bottom: 96px; height: auto; }
.rg-pswp-thumbs { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1600; display: flex; justify-content: center; gap: 8px; padding: 14px 16px 18px; overflow-x: auto; scrollbar-width: none; background: linear-gradient(to top, rgba(5, 8, 30, .85), transparent); }
.rg-pswp-thumbs::-webkit-scrollbar { display: none; }
.rg-pswp-thumb { flex: 0 0 auto; width: 92px; height: 60px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #0e1647; cursor: pointer; opacity: .55; transition: opacity .15s ease, border-color .15s ease, transform .15s ease; }
.rg-pswp-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rg-pswp-thumb:hover { opacity: .9; }
.rg-pswp-thumb.is-active { opacity: 1; border-color: var(--rg-btn); transform: translateY(-2px); }
.pswp.rg-pswp .pswp__caption { display: none; }
@media (max-width: 600px) {
	.rg-pswp-title { max-width: 72vw; font-size: 12.5px; }
	.rg-pswp-thumbs { justify-content: flex-start; padding: 10px 12px 14px; }
	.rg-pswp-thumb { width: 72px; height: 48px; }
	.pswp.rg-pswp .pswp__scroll-wrap { bottom: 76px; }
	.pswp.rg-pswp .pswp__button--arrow--left, .pswp.rg-pswp .pswp__button--arrow--right { width: 40px; height: 40px; margin-top: -20px; }
	.pswp.rg-pswp .pswp__button--arrow--left { left: 8px; }
	.pswp.rg-pswp .pswp__button--arrow--right { right: 8px; }
}
/* Tunnel d'achat : pied de page réduit (logos de paiement, pays, copyright). */
body.rg-funnel .rg-footer { padding: 22px 0 18px; }
body.rg-funnel .rg-footer-pay { margin: 0 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--rg-border); }
body.rg-funnel .rg-footer-bottom { padding-top: 0; border-top: 0; }
/* Récapitulatif du panier : bouton centré, ligne Frais, note cashback pour les visiteurs. */
body.rg-funnel .wc-proceed-to-checkout a.checkout-button, body.rg-funnel .cart-collaterals a.checkout-button { display: flex !important; align-items: center !important; justify-content: center !important; text-align: center !important; padding: 0 20px !important; }
body.rg-funnel .cart_totals .rg-fees-row td, body.rg-funnel .cart_totals .rg-fees-row td .rg-muted { color: var(--rg-text-muted) !important; font-weight: 500 !important; font-size: 14px !important; }
body.rg-funnel .cart_totals table.shop_table { table-layout: fixed; width: 100%; } /* La note sur deux colonnes ne doit pas élargir le tableau et pousser les montants hors de la carte. */
body.rg-funnel .cart_totals .rg-cashback-note td { padding: 0 0 8px !important; text-align: left !important; white-space: normal; }
body.rg-funnel .cart_totals .rg-cashback-nudge { padding: 10px 12px; border: 1px solid rgba(0, 212, 170, .35); border-radius: 10px; background: rgba(0, 212, 170, .08); font-size: 13px; line-height: 1.45; color: var(--rg-text-muted); font-weight: 400; }
body.rg-funnel .cart_totals .rg-cashback-nudge p { margin: 0 0 4px; color: var(--rg-text-muted); }
body.rg-funnel .cart_totals .rg-cashback-nudge strong, body.rg-funnel .cart_totals .rg-cashback-nudge bdi, body.rg-funnel .cart_totals .rg-cashback-nudge a { color: var(--rg-cashback) !important; font-weight: 700; }
body.rg-funnel .cart_totals .rg-cashback-row th, body.rg-funnel .cart_totals .rg-cashback-row td { padding-top: 8px; }


/* Finalisation : la ligne « Payer avec … » du panneau Craft Pay doublonne le sous-titre de la carte (retirée). */
body.rg-funnel #payment .cp-panel .cp-method-desc { display: none !important; }
body.rg-funnel #payment ul.payment_methods li > .cp-panel { padding-top: 12px !important; }
/* Finalisation : carte « Solde Regon Craft » (Craft Compte) en tête, interrupteur, état visiteur ; note de connexion sous le numéro. */
body.rg-funnel #payment li.payment_method_craft_wallet > label .rg-pm-wallet-ico { order: -1; flex: 0 0 auto; width: 88px; height: 44px; border-radius: 10px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233f9cff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h13v4'/%3E%3Cpath d='M3 7v11a2 2 0 0 0 2 2h15V9H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M16 14.5h.01'/%3E%3C/svg%3E") center / 28px no-repeat; }
body.rg-funnel #payment ul.payment_methods li.payment_method_craft_wallet > label::after { width: 40px; height: 22px; border-radius: 999px; border: 0; background: var(--rg-border-hover); box-shadow: inset 0 0 0 2px transparent; position: relative; }
body.rg-funnel #payment ul.payment_methods li.payment_method_craft_wallet > label::before { content: ""; position: absolute; right: 32px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; background: #fff; transition: transform var(--rg-fast) var(--rg-ease); z-index: 1; }
body.rg-funnel #payment ul.payment_methods li.payment_method_craft_wallet:has(> input:checked) > label::after { background: var(--rg-btn); box-shadow: none; }
body.rg-funnel #payment ul.payment_methods li.payment_method_craft_wallet:has(> input:checked) > label::before { transform: translateX(18px); }
body.rg-funnel #payment li.payment_method_craft_wallet.rg-pm-guest { opacity: .7; }
body.rg-funnel #payment ul.payment_methods li.payment_method_craft_wallet.rg-pm-guest > label { cursor: default; pointer-events: none; } /* Visiteur : pas de clic (sinon la fenêtre « Connexion requise » de Craft Compte), le lien dessous sert à se connecter. */
#cwPopupOverlay.cw-open:has(~ form.checkout .rg-pm-guest), body.rg-funnel.rg-co-guest #cwPopupOverlay { display: none !important; }
body.rg-funnel #payment li.payment_method_craft_wallet .payment_box { display: none !important; }
body.rg-funnel #payment .rg-pm-wallet-login { display: inline-block; margin: -4px 0 12px 4px; font-size: 13px; font-weight: 600; color: var(--rg-accent) !important; text-decoration: underline; }
/* Étape 1 : autocomplétion du navigateur sans fond blanc ; champ Devise dans la même boîte que les autres. */
body.rg-funnel form.checkout input:-webkit-autofill, body.rg-funnel form.checkout input:-webkit-autofill:hover, body.rg-funnel form.checkout input:-webkit-autofill:focus, body.rg-funnel form.checkout #billing_last_name_field input:-webkit-autofill, body.rg-funnel form.checkout #billing_email_field input:-webkit-autofill, body.rg-funnel form.checkout #custom-phone-field input#fake_phone:-webkit-autofill { -webkit-text-fill-color: #fff !important; -webkit-box-shadow: 0 0 0 1000px var(--rg-surface-inset) inset !important; box-shadow: 0 0 0 1000px var(--rg-surface-inset) inset !important; caret-color: #fff; transition: background-color 9999s ease-out 0s; }
body.rg-funnel form.checkout #custom-currency-field { position: relative; margin: 0 0 12px !important; padding: 8px 14px !important; border: 1px solid var(--rg-border-hover); border-radius: 12px; background: var(--rg-surface-inset); }
body.rg-funnel form.checkout #custom-currency-field > label { display: block; margin: 0 0 2px; font-size: 11.5px; font-weight: 600; letter-spacing: .02em; color: var(--rg-text-muted); }
body.rg-funnel form.checkout #custom-currency-field > label .required { display: none; }
body.rg-funnel form.checkout #custom-currency-field .select2-container, body.rg-funnel form.checkout #custom-currency-field .select2-selection--single { height: 30px !important; }
body.rg-funnel form.checkout #custom-currency-field .select2-selection--single { border: 0 !important; background: transparent !important; padding: 0 !important; }
body.rg-funnel form.checkout #custom-currency-field .select2-selection__rendered { line-height: 30px !important; padding-left: 0 !important; font-size: 16px !important; font-weight: 600; color: #fff !important; }
body.rg-funnel form.checkout #custom-currency-field .select2-selection__arrow { height: 30px !important; }
body.rg-funnel form.checkout #custom-currency-field select#phone_currency { height: 30px !important; }
.select2-container--default .select2-results__option[aria-selected="true"] { background: var(--rg-surface-inset) !important; color: #fff !important; }
/* Panier vide (page) : même écran que le tiroir vide. */
body.woocommerce-cart .rg-content > .woocommerce > .rg-cart-empty { grid-column: 1 / -1; }
.rg-cart-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 56px 24px 64px; }
.rg-cart-empty .rg-icon { color: var(--rg-text-dim); margin-bottom: 8px; }
.rg-cart-empty h2 { margin: 0; font-size: 22px; color: #fff; }
.rg-cart-empty p { margin: 0 0 14px; font-size: 15px; color: var(--rg-text-muted); }
.rg-cart-empty .rg-btn { min-height: 46px; padding: 0 24px; }
body.rg-funnel .rg-cart-empty a.rg-btn-primary { color: #fff !important; }
/* Finalisation : liste déroulante de l'indicatif (Select2) : fond sombre, barre de défilement discrète, pas de blanc. */
.select2-container--default .select2-dropdown, .select2-container--default .select2-results, .select2-container--default .select2-results > .select2-results__options { background: var(--rg-navy-dark) !important; color: #fff !important; border-radius: 12px; }
.select2-container--default .select2-dropdown { border: 1px solid var(--rg-border-hover) !important; box-shadow: 0 16px 40px rgba(0, 0, 0, .45); overflow: hidden; }
.select2-container--default .select2-results > .select2-results__options { max-height: 260px; scrollbar-width: thin; scrollbar-color: var(--rg-border-hover) transparent; padding: 6px; }
.select2-container--default .select2-results > .select2-results__options::-webkit-scrollbar { width: 6px; }
.select2-container--default .select2-results > .select2-results__options::-webkit-scrollbar-track { background: transparent; }
.select2-container--default .select2-results > .select2-results__options::-webkit-scrollbar-thumb { background: var(--rg-border-hover); border-radius: 999px; }
.select2-container--default .select2-results__option { padding: 9px 10px; border-radius: 8px; font-size: 14px; }
.select2-container--default .select2-search--dropdown { padding: 8px; }
.select2-container--default .select2-search--dropdown .select2-search__field { border-radius: 8px; padding: 8px 10px; }
.select2-container { z-index: 100010; }
/* Liste de souhaits dans Mon compte : 4 colonnes, mêmes cartes que le catalogue. */
.woocommerce-MyAccount-content ul.products.rg-wish-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1180px) { .woocommerce-MyAccount-content ul.products.rg-wish-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) { .woocommerce-MyAccount-content ul.products.rg-wish-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
/* Liste des indicatifs / devises (Select2) : vraiment sombre, barre de défilement sombre, survol bleu, largeur du champ. */
.select2-container--open .select2-dropdown { color-scheme: dark; min-width: 280px; margin-top: 6px; }
.select2-container--default .select2-results > .select2-results__options { scrollbar-width: thin !important; scrollbar-color: rgba(255, 255, 255, .28) rgba(255, 255, 255, .04) !important; }
.select2-container--default .select2-results__option { color: #fff !important; background: transparent !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted { background: rgba(63, 156, 255, .22) !important; color: #fff !important; }
.select2-container--default .select2-results__option[aria-selected="true"], .select2-container--default .select2-results__option--selected { background: rgba(63, 156, 255, .12) !important; }
.select2-container--default .select2-search--dropdown .select2-search__field { border: 1px solid var(--rg-border-hover) !important; background: var(--rg-surface-inset) !important; color: #fff !important; outline: none; }
.select2-container--default .select2-search--dropdown .select2-search__field:focus { border-color: var(--rg-btn) !important; box-shadow: 0 0 0 3px rgba(63, 156, 255, .2); }
body.rg-funnel #payment .cp-panel .rg-pm-redirect { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13.5px; color: var(--rg-text-muted) !important; }
body.rg-funnel #payment .cp-panel .rg-pm-redirect::before { content: ""; flex: 0 0 auto; width: 16px; height: 16px; background: var(--rg-accent); -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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
/* Récapitulatif du panier sur petit écran : mêmes lignes qu'en bureau (libellé à gauche, montant à droite), pas le mode
   « tableau responsive » de WooCommerce qui masque les en-têtes et ajoute « : ». */
@media (max-width: 768px) {
	body.rg-funnel .cart_totals table.shop_table_responsive tr { display: table-row; }
	body.rg-funnel .cart_totals table.shop_table_responsive tr th { display: table-cell !important; text-align: left; }
	body.rg-funnel .cart_totals table.shop_table_responsive tr td { display: table-cell !important; text-align: right !important; }
	body.rg-funnel .cart_totals table.shop_table_responsive tr td::before { display: none !important; content: none !important; }
	body.rg-funnel .cart_totals .rg-cashback-note td, body.rg-funnel .cart_totals .rg-cashback-nudge, body.rg-funnel .cart_totals .rg-cashback-nudge p { text-align: left !important; }
}
/* En-tête sur téléphone : pas de bulle sombre qui reste sur l'icône après un toucher (survol collant). */
@media (hover: none) { .rg-iconbtn:hover { background: transparent; } }
/* En-tête sur téléphone : cœur, panier et compte aérés (ils se gênaient) ; la pastille reste sur le coin de son icône
   sans toucher la voisine. La place vient du bouton pays / devise, plus compact. */
@media (max-width: 480px) {
	.rg-header-actions { gap: 6px; }
	.rg-header-actions .rg-iconbtn { width: 36px; }
	.rg-header-actions .rg-cart-count, .rg-header-actions .craftcart-btn-badge { top: 0 !important; right: -2px !important; min-width: 17px !important; height: 17px !important; padding: 0 4px !important; font-size: 10.5px !important; line-height: 17px !important; }
	.rg-country .rg-locale { gap: 5px; padding: 0 2px; font-size: 12px; }
	.rg-country .rg-locale .rcsp-sc-flag { font-size: 18px; }
}
/* Petits téléphones (moins de 360 px) : tout tient sur la ligne du logo, icônes toujours séparées. */
@media (max-width: 359px) {
	.rg-header-main { column-gap: 0; }
	.rg-logo img { height: 30px; }
	.rg-header-actions { gap: 4px; }
	.rg-header-actions .rg-iconbtn { width: 31px; }
	.rg-header-actions .rg-iconbtn .rg-icon { width: 20px; height: 20px; }
	.rg-country .rg-locale { gap: 4px; font-size: 11.5px; }
	.rg-country .rg-locale .rcsp-sc-flag { font-size: 16px; }
}
/* Recherche sur mobile : résultats accrochés à la barre (position absolue dans l'en-tête collant). En « fixed », ils restaient
   calés sur la position d'origine et se détachaient de 36 px dès que la page avait défilé. */
@media (max-width: 820px) {
	.rg-search-panel { position: absolute; top: calc(100% + 6px); left: -8px; right: -8px; max-height: calc(100vh - 170px); max-height: calc(100dvh - 170px); }
}


/* Bannières d'accueil sur téléphone (modèle Giftshopsn) : image seule en haut, texte et bouton pleine largeur dessous, sur fond uni. */
@media (max-width: 767px) {
	.rg-banner { --rg-banner-img-h: 230px; display: block; min-height: 0; margin-bottom: 32px; }
	.rg-banner.has-photo { background: var(--rg-navy-dark); }
	.rg-banner.has-photo::before, .rg-banner-roblox.has-photo::before { inset: 0 0 auto; height: var(--rg-banner-img-h); background: linear-gradient(180deg, transparent 72%, var(--rg-navy-dark) 100%), var(--rg-banner-bg) center / cover no-repeat; }
	.rg-banner::after { display: none; }
	.rg-banner-body { position: relative; z-index: 2; align-items: stretch; gap: 10px; padding: calc(var(--rg-banner-img-h) + 12px) 20px 20px; }
	.rg-kicker { align-self: flex-start; }
	.rg-banner-title { font-size: 32px; max-width: none; }
	.rg-banner-body p { font-size: 14.5px; line-height: 1.5; max-width: none; }
	.rg-banner-body .rg-btn { justify-content: center; width: 100%; margin-top: 8px; min-height: 48px; font-size: 15px; }
	.rg-banner-visual { position: absolute; top: 0; left: 0; right: 0; z-index: 1; height: var(--rg-banner-img-h); min-height: 0; padding: 0; }
	.rg-banner-visual img { max-height: calc(var(--rg-banner-img-h) - 16px); max-width: 100%; }
	.rg-banner-games .rg-banner-visual { display: none; } /* Le fond montre déjà les joueurs ; le détouré cachait le logo FC 26. */
}

/* Espace avant le pied de page sur téléphone : le contenu le touchait sur l'accueil, les catégories et les fiches produit. */
@media (max-width: 767px) {
	.rg-home, .rg-shop { padding-bottom: 36px; }
}

/* Fiche produit sur téléphone : blocs d'information et montants en rangées à faire glisser, comme les rangées de produits. */
@media (max-width: 767px) {
	.rg-info-cards, .rg-amounts { display: flex; gap: 10px; margin: 0 -16px; padding: 2px 16px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: 16px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.rg-info-cards::-webkit-scrollbar, .rg-amounts::-webkit-scrollbar { display: none; }
	.rg-info-card { flex: 0 0 78%; min-width: 0; scroll-snap-align: start; }
	.rg-amount { flex: 0 0 44%; min-width: 0; scroll-snap-align: start; }
	.rg-pdp-media .woocommerce-product-gallery { margin-bottom: 0 !important; } /* Le titre était à 54 px de l'image produit, 16 px maintenant. */
	.rg-pdp-media { margin-bottom: -8px; }
	.rg-sel-region { flex-direction: row; align-items: center; gap: 12px; } /* « Région » à gauche de la barre, sur la même ligne. */
	.rg-sel-region .rg-sel-label { flex: 0 0 auto; }
	.rg-sel-region > :not(.rg-sel-label) { flex: 1 1 auto; min-width: 0; }
}

/* Recherche sur téléphone (modèle Giftshopsn) : toucher la barre ouvre un écran plein réservé à la recherche. */
.rg-search-back, .rg-search-popular { display: none; }
@media (max-width: 767px) {
	.rg-search-spacer { order: 4; flex: 1 1 100%; }
	body.rg-search-fs { overflow: hidden; }
	body.rg-search-fs .rg-header { z-index: 10000; }
	body.rg-search-fs .cwb-whatsapp-button, body.rg-search-fs .rg-totop, body.rg-search-fs .rg-mbar { display: none !important; }
	.rg-search.is-fs { position: fixed; inset: 0; z-index: 1; flex: none; max-width: none; padding: 10px 12px 10px 56px; background: var(--rg-navy-dark); }
	.rg-search.is-fs .rg-search-back { position: absolute; left: 6px; top: 13px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
	.rg-search.is-fs .rg-search-back .rg-icon { transform: rotate(180deg); }
	.rg-search.is-fs > .rg-icon-search { top: 35px; left: 72px; }
	.rg-search.is-fs .rg-search-clear { top: 35px; right: 22px; }
	.rg-search.is-fs .rg-search-panel, .rg-search.is-fs .rg-search-popular { position: absolute; inset: 70px 0 0; max-height: none; border: 0; border-top: 1px solid var(--rg-border); border-radius: 0; background: transparent; box-shadow: none; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 45vh; } /* Marge du bas : le clavier ne cache jamais les derniers résultats. */
	.rg-search.is-fs .rg-search-popular { display: block; padding-top: 14px; }
	.rg-search.is-fs .rg-search-panel:not([hidden]) + .rg-search-popular { display: none; }
	.rg-search-popular .rg-search-label { padding: 0 20px 6px; }
	.rg-search-popular button { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 46px; padding: 0 20px; border: 0; background: transparent; color: #fff; font: inherit; font-size: 15px; text-align: left; cursor: pointer; }
	.rg-search-popular button .rg-icon { flex: 0 0 auto; color: var(--rg-text-muted); }
	.rg-search-popular button:active { background: var(--rg-surface-hover); }
}

/* Paiement sur téléphone : carte « Ajouter vos informations » plus compacte une fois validée. Le formulaire ouvert ne change pas. */
@media (max-width: 767px) {
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed > div { margin-bottom: 0 !important; padding: 14px 20px !important; }
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed .woocommerce-billing-fields, body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed .woocommerce-billing-fields__field-wrapper { margin: 0 !important; padding: 0 !important; }
	body.rg-funnel.woocommerce-checkout form.checkout #customer_details.rc-collapsed .woocommerce-billing-fields > h3 { gap: 8px; font-size: 15px; line-height: 22px; }
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed .woocommerce-billing-fields > h3::before { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 0; background-size: 13px; }
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed #rc-saved-info-edit { font-size: 13px; line-height: 22px; }
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed #rc-saved-info-box { gap: 2px; margin: 8px 0 0; line-height: 20px; }
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed #rc-saved-info-box > strong, body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed #rc-saved-info-box > span { font-size: 14px !important; line-height: 20px !important; }
}
/* Menu ☰ sur téléphone, modèle Gameseal (en bleu) : plein écran, logo et croix en tête, catégories avec icône et chevron à
   droite ; une catégorie touchée fait glisser sa liste par-dessus (retour, titre, croix, « Tous les produits », trait). */
.rg-drill { display: none; }
@media (max-width: 820px) {
	.rg-shop > .rg-pdp { padding-left: 0; padding-right: 0; }
	.rg-nav { width: 100%; border-right: 0; overflow: hidden; }
	body.rg-drawer-open .cwb-whatsapp-button, body.rg-drawer-open .rg-totop { display: none !important; }
	.rg-navdrawer-head { min-height: 58px; padding: 7px 8px 7px 16px; background: var(--rg-surface); }
	.rg-navdrawer-logo { display: flex; align-items: center; }
	.rg-navdrawer-logo img { height: 40px; width: auto; }
	.rg-nav-inner { margin: 0; width: 100%; max-width: none; }
	.rg-mega-roots { padding: 8px 12px; }
	.rg-mega-roots > li { border-bottom: 0; }
	.rg-mega-root { min-height: 54px; padding: 10px 8px; gap: 14px; font-size: 16px; font-weight: 500; }
	.rg-mega-root > .rg-icon:first-child { flex: 0 0 auto; width: 22px; height: 22px; color: #fff; }
	.rg-mega-root .rg-icon-chevron, .rg-mega-root.is-active .rg-icon-chevron { width: 20px; height: 20px; transform: rotate(-90deg); opacity: .85; }
	.rg-mega-root.is-active, .rg-mega-root:hover { background: transparent; color: #fff; }
	.rg-mega-all { min-height: 48px; margin: 0; padding: 14px 8px; font-size: 16px; font-weight: 500; }
	.rg-nav .rg-menu > li > a { padding-left: 12px; padding-right: 12px; }
	.rg-nav .rg-menu[aria-label]::before { padding-left: 12px; padding-right: 12px; }
	.rg-drill { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; background: var(--rg-navy-dark); transform: translateX(100%); visibility: hidden; transition: transform var(--rg-ui) var(--rg-ease), visibility 0s linear var(--rg-ui); }
	.rg-drill.is-open { transform: none; visibility: visible; transition: transform var(--rg-ui) var(--rg-ease); }
	.rg-drill-head { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; min-height: 58px; padding: 7px 8px; background: var(--rg-btn); color: #fff; }
	.rg-drill-head strong { flex: 1 1 auto; min-width: 0; font-size: 19px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.rg-drill-head .rg-iconbtn { flex: 0 0 auto; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
	.rg-drill-back .rg-icon { transform: rotate(90deg); }
	.rg-drill-body { flex: 1 1 auto; padding: 8px 20px 24px; overflow-y: auto; overscroll-behavior: contain; }
	.rg-drill-all { display: flex; align-items: center; min-height: 54px; border-bottom: 1px solid var(--rg-border-hover); font-size: 16px; font-weight: 600; color: #fff; }
	.rg-drill-list { list-style: none; margin: 6px 0 0; padding: 0; }
	.rg-drill-list a { display: flex; align-items: center; min-height: 50px; padding: 0; font-size: 16px; color: #fff; }
	.rg-drill-list a:active { color: var(--rg-accent); }
	.rg-mega-root { -webkit-tap-highlight-color: transparent; } /* Sinon la surbrillance du toucher reste affichée par-dessus le panneau qui arrive. */
}
@media (max-width: 820px) and (prefers-reduced-motion: reduce) { .rg-drill, .rg-drill.is-open { transition: none; } }

/* Cartes produit sans survol ou sur téléphone : bouton toujours visible en bas de la carte, sans animation. */
@media (hover: none), (max-width: 600px) {
	.rg-card-panel, .woocommerce ul.products li.product .rg-card-panel { margin-bottom: 0; transition: none; }
	.rg-card:hover .rg-card-panel, .rg-card:has(:focus-visible) .rg-card-panel { transform: none; }
	.rg-card-action { height: auto; opacity: 1; transition: none; }
	.rg-wish-card { opacity: 1; transform: none; pointer-events: auto; transition: none; }
}

/* Téléphone : deux cartes à l'écran, la suivante dépasse à peine ; contenu réduit pour laisser respirer la carte. */
@media (max-width: 600px) {
	.rg-rail ul.products.rg-rail-track > li.product { flex-basis: calc((100% - 22px) / 2) !important; }
	.rg-cashback { padding: 10px 10px 0; font-size: 11px; }
	.rg-card-body, .woocommerce ul.products li.product .rg-card-body { gap: 4px; padding: 6px 10px 10px; }
	.rg-card-title, .woocommerce ul.products li.product .rg-card-title, .woocommerce-page ul.products li.product .rg-card-title, .woocommerce ul.products li.product h3 { min-height: 2.8em; font-size: 13px; line-height: 1.4; } /* Moins de 1.4 : le haut de la 3e ligne dépasse sous le titre coupé (hauteur de la police Poppins). */
	.rg-region, .woocommerce ul.products li.product .rg-region { gap: 5px; font-size: 12px; }
	.rg-region img { width: 15px !important; height: 11px !important; }
	.rg-card-price, .woocommerce ul.products li.product .rg-card-price, .woocommerce ul.products li.product .price { font-size: 14px; }
	.rg-card-price del, .woocommerce ul.products li.product .price del, .woocommerce ul.products li.product .rg-card-price del { font-size: 11px; }
	.rg-card-action, .woocommerce ul.products li.product .rg-card-action { padding: 0 10px 10px; }
	.rg-card-btn, .woocommerce ul.products li.product .rg-card-btn, .woocommerce-page ul.products li.product .rg-card-btn, .woocommerce a.button.rg-card-btn, .woocommerce ul.products li.product .button.rg-card-btn { min-height: 36px; padding: 0 8px; font-size: 12px; line-height: 1.15; white-space: normal; }
	.woocommerce ul.products li.product .rg-card-media img.rg-card-platform, .rg-card-platform { inset: 6px 6px auto auto; width: 24px !important; height: 24px !important; }
	.rg-wish-card { top: 36px; right: 6px; width: 24px; height: 24px; }
	.rg-wish-card .rg-icon { width: 14px; height: 14px; }
	.rg-wish-card::after { content: ""; position: absolute; inset: -6px; } /* Zone de toucher plus grande que le cœur. */
	.rg-card-media:not(:has(.rg-card-platform)) + .rg-wish-card { top: 6px; }
	.rg-badge { top: 8px; left: 8px; padding: 4px 8px; font-size: 10px; }
}
@media (max-width: 359px) {
	.rg-card-btn, .woocommerce ul.products li.product .rg-card-btn, .woocommerce-page ul.products li.product .rg-card-btn, .woocommerce a.button.rg-card-btn, .woocommerce ul.products li.product .button.rg-card-btn { padding: 0 4px; font-size: 11px; }
}

/* Panier sur téléphone (modèle Giftshopsn, mêmes tailles et mêmes espacements, couleurs du thème). */
@media (min-width: 768px) { body.rg-funnel .cart_totals tr.rg-savings-row { display: none !important; } }
@media (max-width: 767px) {
	body.woocommerce-cart { padding-bottom: 69px !important; }
	body.woocommerce-cart .rg-page, body.rg-funnel.woocommerce-checkout:not(.woocommerce-order-received, .woocommerce-order-pay) .rg-page { padding-top: 24px; }
	body.woocommerce-cart .rg-footer, body.woocommerce-cart .rg-totop, body.rg-funnel.woocommerce-checkout:not(.woocommerce-order-received, .woocommerce-order-pay) .rg-footer, body.rg-funnel.woocommerce-checkout:not(.woocommerce-order-received, .woocommerce-order-pay) .rg-totop { display: none; }

	/* Carte de l'article : vignette à gauche, nom sur une ligne, puces, quantité et prix en bas, poubelle dans le coin. */
	body.rg-funnel.woocommerce-cart .rc-cart-item { position: relative; grid-template-columns: 90px auto minmax(0, 1fr) !important; grid-template-rows: auto 1fr; grid-template-areas: "img content content" "img qty price" !important; gap: 0 16px !important; padding: 16px !important; border-radius: 12px; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__img, body.rg-funnel.woocommerce-cart .rc-cart-item__img img { width: 90px !important; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__img img { height: auto !important; max-height: 135px; object-fit: contain; border-radius: 8px; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__content > div:first-child { gap: 4px; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__name { display: block; overflow: hidden; margin: 0; padding-right: 32px; font-size: 14px !important; font-weight: 600; line-height: 20px; white-space: nowrap; text-overflow: ellipsis; }
	body.rg-funnel.woocommerce-cart .rg-cart-chips { gap: 6px; }
	body.rg-funnel.woocommerce-cart .rg-cart-chip { gap: 4px; padding: 2px 8px; border-radius: 999px; background: var(--rg-surface-hover); font-size: 12px; line-height: 16px; color: #fff; }
	body.rg-funnel.woocommerce-cart .rg-cart-chip img { width: 14px; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__qty { margin: 12px 0 0 !important; border: 1px solid var(--rg-border) !important; border-radius: 6px; background: transparent !important; }
	body.rg-funnel.woocommerce-cart .rc-qty-btn { width: 32px; height: 32px; background: var(--rg-surface-hover) !important; font-size: 16px; }
	body.rg-funnel.woocommerce-cart .rc-qty-val { min-width: 36px; height: 32px; line-height: 32px; background: var(--rg-surface-inset); font-size: 14px; font-weight: 500; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__price { margin-top: 12px; min-width: 0; font-size: 14px !important; font-weight: 700; line-height: 20px; text-align: right; white-space: normal; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__price .rc-pold { margin-bottom: 2px; font-size: 12px; font-weight: 400; line-height: 1; color: rgba(255, 255, 255, .4) !important; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__remove { position: absolute; top: 12px; right: 12px; width: 28px; height: 28px; padding: 6px; color: rgba(255, 255, 255, .35); }
	body.rg-funnel.woocommerce-cart .rc-cart-item__remove svg { width: 16px; height: 16px; }

	/* Récapitulatif. */
	body.rg-funnel.woocommerce-cart .rg-table-scroll { margin: 0 !important; }
	body.rg-funnel.woocommerce-cart .cart_totals { padding: 20px !important; border-radius: 16px; }
	body.rg-funnel.woocommerce-cart .cart_totals h2 { margin: 0 0 16px !important; font-size: 20px !important; font-weight: 700; line-height: 26px; }
	body.rg-funnel.woocommerce-cart .cart_totals tr th, body.rg-funnel.woocommerce-cart .cart_totals tr td { padding: 6px 0 !important; border: 0 !important; font-size: 14px; line-height: 21px; }
	body.rg-funnel.woocommerce-cart .cart_totals tr th { font-weight: 400 !important; color: var(--rg-text-muted) !important; }
	body.rg-funnel.woocommerce-cart .cart_totals tr td, body.rg-funnel.woocommerce-cart .cart_totals tr td .woocommerce-Price-amount { font-size: 14px !important; font-weight: 600 !important; color: #fff; }
	body.rg-funnel.woocommerce-cart .cart_totals tr:first-child th, body.rg-funnel.woocommerce-cart .cart_totals tr:first-child td { padding-top: 0 !important; }
	body.rg-funnel.woocommerce-cart .cart_totals tr.rg-savings-row th, body.rg-funnel.woocommerce-cart .cart_totals tr.rg-savings-row td { padding-block: 9px !important; }
	body.rg-funnel.woocommerce-cart .cart_totals tr.rg-savings-row th, body.rg-funnel.woocommerce-cart .cart_totals tr.rg-savings-row td, body.rg-funnel.woocommerce-cart .cart_totals tr.rg-savings-row td .woocommerce-Price-amount { font-size: 12px !important; font-weight: 600 !important; color: var(--rg-sale) !important; }
	body.rg-funnel.woocommerce-cart .cart_totals .rg-savings-row th::before { content: "%"; display: inline-grid; place-items: center; width: 15px; height: 15px; margin-right: 5px; border-radius: 3px; background: rgba(63, 156, 255, .18); font-size: 9px; font-weight: 700; }
	body.rg-funnel.woocommerce-cart .cart_totals .rg-fees-row th, body.rg-funnel.woocommerce-cart .cart_totals .rg-fees-row td { padding-bottom: 12px !important; }
	body.rg-funnel.woocommerce-cart .cart_totals .rg-fees-row td, body.rg-funnel.woocommerce-cart .cart_totals .rg-fees-row td .rg-muted { font-size: 14px !important; font-weight: 400 !important; color: #fff !important; }
	body.rg-funnel.woocommerce-cart .cart_totals .order-total th, body.rg-funnel.woocommerce-cart .cart_totals .order-total td { padding: 12px 0 20px !important; border-top: 1px solid var(--rg-border) !important; vertical-align: middle; }
	body.rg-funnel.woocommerce-cart .cart_totals tr.order-total th { font-size: 16px; font-weight: 600 !important; color: #fff !important; }
	body.rg-funnel.woocommerce-cart .cart_totals .order-total th::after { content: " :"; }
	body.rg-funnel.woocommerce-cart .cart_totals tr.order-total td, body.rg-funnel.woocommerce-cart .cart_totals tr.order-total td .woocommerce-Price-amount { font-size: 20px !important; font-weight: 700 !important; line-height: 28px; }
	body.rg-funnel.woocommerce-cart .wc-proceed-to-checkout { margin: 0; padding: 0; }
	body.rg-funnel.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; min-height: 44px; margin: 0 !important; padding: 12px 20px !important; border-radius: 999px !important; font-size: 14px !important; font-weight: 700; line-height: 20px; text-align: center; }

	/* Code promo : ligne dépliable avec chevron à la place de l'interrupteur. */
	body.rg-funnel.woocommerce-cart .cart_totals .rc-promo { margin: 16px 0 0 !important; padding: 12px 0 0 !important; }
	body.rg-funnel.woocommerce-cart .rc-promo__row { min-height: 44px; gap: 8px; }
	body.rg-funnel.woocommerce-cart .cart_totals .rc-promo__label { font-size: 14px !important; font-weight: 500; }
	body.rg-funnel.woocommerce-cart .rc-promo__form { gap: 8px; margin-top: 8px; }
	body.rg-funnel.woocommerce-cart .rc-promo__input { height: 42px; padding: 8px 12px; border-radius: 8px !important; font-size: 16px; }
	body.rg-funnel.woocommerce-cart .rc-promo__btn { height: 42px; padding: 8px 16px; border-radius: 10px; background: var(--rg-btn) !important; font-size: 12px; font-weight: 700; }
	body.rg-funnel.woocommerce-cart .rc-promo__input:placeholder-shown + .rc-promo__btn { opacity: .4; }
	body.rg-funnel.woocommerce-cart .rg-cart-terms { margin: 16px 0 0; font-size: 12px; line-height: 19.5px; }
	body.rg-funnel.woocommerce-cart .rg-cart-trust { display: none; }

	/* Barre du bas : suit le défilement (--rg-bar-p, de 0 à 1, posé par theme.js), sans animation qui la ferait traîner derrière le doigt. */
	body.rg-funnel.woocommerce-cart .rc-bar { background: var(--rg-navy-deep) !important; box-shadow: 0 -6px 24px rgba(0, 0, 0, .35) !important; transform: translateY(calc((1 - var(--rg-bar-p, 0)) * 110%)) !important; transition: none !important; }
	body.rg-funnel.woocommerce-cart .rc-main { justify-content: space-between; gap: 12px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); }
	body.rg-funnel.woocommerce-cart .rc-total-label { display: block; font-size: 12px; font-weight: 400; line-height: 16px; color: var(--rg-text-muted) !important; }
	body.rg-funnel.woocommerce-cart #rcTotal { display: block; font-size: 18px; font-weight: 700; line-height: 22.5px; color: #fff !important; }
	body.rg-funnel.woocommerce-cart .rc-bar .rc-bar-btn { flex: 0 0 auto; width: auto; max-width: none; min-height: 44px; padding: 12px 20px; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 20px; white-space: nowrap; }
}
@media (max-width: 379px) {
	body.rg-funnel.woocommerce-cart .rc-cart-item { grid-template-columns: 72px auto minmax(0, 1fr) !important; gap: 0 12px !important; }
	body.rg-funnel.woocommerce-cart .rc-cart-item__img, body.rg-funnel.woocommerce-cart .rc-cart-item__img img { width: 72px !important; }
	body.rg-funnel.woocommerce-cart .rc-qty-btn { width: 28px; }
	body.rg-funnel.woocommerce-cart .rc-qty-val { min-width: 28px; }
	body.rg-funnel.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { padding-inline: 8px !important; }
	body.rg-funnel.woocommerce-cart #rcTotal { font-size: 13px; }
	body.rg-funnel.woocommerce-cart .rc-bar .rc-bar-btn { padding: 12px 10px; font-size: 12px; }
}

/* Paiement sur téléphone (modèle Giftshopsn, mêmes tailles et mêmes espacements, couleurs du thème). */
body.rg-funnel #rc-saved-info-box .rc-flag { width: 20px; height: 15px; object-fit: cover; border-radius: 2px !important; } /* Drapeau bien rectangulaire. */
.rg-co-hint, .rg-co-err, .rg-co-secure-m, .rg-sheet-close { display: none; }
@media (min-width: 768px) { .rg-co-line-savings { display: none !important; } }
@media (max-width: 767px) {
	body.rg-funnel.woocommerce-checkout { padding-bottom: 96px !important; }
	body.rg-funnel.woocommerce-checkout form.checkout { gap: 16px; }

	/* Cartes des étapes. */
	body.rg-funnel.woocommerce-checkout form.checkout .col2-set > div, body.rg-funnel.woocommerce-checkout form.checkout > .rg-co-card-pay { padding: 20px !important; border-radius: 16px; }
	body.rg-funnel.woocommerce-checkout form.checkout .woocommerce-billing-fields > h3, body.rg-funnel.woocommerce-checkout form.checkout .rg-co-head h3 { margin: 0; font-size: 16px; font-weight: 600; line-height: 24px; }
	body.rg-funnel.woocommerce-checkout form.checkout .woocommerce-billing-fields > h3 { align-items: flex-start; gap: 12px; }
	body.rg-funnel.woocommerce-checkout form.checkout .woocommerce-billing-fields > h3::before, body.rg-funnel.woocommerce-checkout form.checkout .rg-co-step { flex: 0 0 64px; justify-content: center; width: 64px; height: 22px; margin-top: 1px; padding: 0; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-sub { margin: 2px 0 16px; padding-left: 76px; font-size: 12px; line-height: 19.5px; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-head p { margin: 2px 0 0; font-size: 12px; line-height: 19.5px; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay .rg-co-head { margin-bottom: 12px; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay.is-locked { opacity: .4; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay.is-locked .rg-co-head { margin-bottom: 12px; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-card-pay .rc-payment-info { display: none !important; }

	/* Champs : libellé posé dans le champ vide, en petit au-dessus de la valeur sinon. */
	body.rg-funnel.woocommerce-checkout form.checkout #billing_last_name_field, body.rg-funnel.woocommerce-checkout form.checkout #billing_email_field { min-height: 56px; margin: 0 0 16px !important; padding: 24px 44px 8px 16px !important; border-radius: 10px; }
	body.rg-funnel.woocommerce-checkout form.checkout #billing_email_field { margin-bottom: 6px !important; }
	body.rg-funnel.woocommerce-checkout form.checkout #billing_last_name_field > label, body.rg-funnel.woocommerce-checkout form.checkout #billing_email_field > label { position: absolute; left: 16px; top: 6px; margin: 0; font-size: 11px; font-weight: 400; line-height: 14px; letter-spacing: 0; text-transform: none; color: var(--rg-text-muted); pointer-events: none; transition: top .2s, font-size .2s; }
	body.rg-funnel.woocommerce-checkout form.checkout #billing_last_name_field:has(input:placeholder-shown):not(:focus-within) > label, body.rg-funnel.woocommerce-checkout form.checkout #billing_email_field:has(input:placeholder-shown):not(:focus-within) > label { top: 18px; font-size: 15px; line-height: 20px; color: var(--rg-text-dim); }
	body.rg-funnel.woocommerce-checkout form.checkout #billing_last_name_field input, body.rg-funnel.woocommerce-checkout form.checkout #billing_email_field input { height: 24px !important; font-size: 15px !important; font-weight: 400; line-height: 24px; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-hint { display: block; margin: 0 0 16px; font-size: 12px; line-height: 16px; color: var(--rg-text-muted); }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-invalid { border-color: #f87171 !important; }
	body.rg-funnel.woocommerce-checkout form.checkout .rg-co-err { display: block; margin: -10px 0 12px; font-size: 12px; line-height: 16px; color: #f87171; }
	body.rg-funnel.woocommerce-checkout form.checkout #billing_email_field + .rg-co-err { margin-top: 0; margin-bottom: 4px; }

	/* Téléphone : indicatif à gauche, numéro à droite, séparés d'un trait. */
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field { min-height: 56px; margin: 0 0 16px !important; padding: 22px 40px 6px 0 !important; border-radius: 10px; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field > label { position: absolute; left: 124px; right: 12px; top: 6px; margin: 0; overflow: hidden; font-size: 11px; font-weight: 400; line-height: 14px; letter-spacing: 0; text-transform: none; white-space: nowrap; text-overflow: ellipsis; color: var(--rg-text-muted); pointer-events: none; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field:has(#fake_phone:placeholder-shown):not(:focus-within) > label { opacity: 0; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field > span { gap: 0 !important; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-container { position: relative; z-index: auto !important; box-sizing: border-box; flex: 0 0 112px; width: 112px !important; padding: 0 22px 0 12px; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-container::after { content: ""; position: absolute; right: 0; top: -22px; bottom: -6px; width: 1px; background: var(--rg-border-hover); pointer-events: none; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-container::before { content: "Indicatif"; position: absolute; left: 12px; top: -16px; font-size: 11px; line-height: 14px; color: var(--rg-text-muted); }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-selection--single { border-right: 0 !important; padding-right: 0; overflow: visible; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-selection__arrow { right: -18px !important; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-selection__rendered { position: relative; top: -6px; padding-right: 0 !important; overflow: visible; font-size: 15px; font-weight: 500; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field input#fake_phone { padding: 0 0 0 12px !important; font-size: 15px !important; font-weight: 400; }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field input#fake_phone::placeholder { font-size: 15px; font-weight: 400; color: var(--rg-text-dim); }
	body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field input#fake_phone:placeholder-shown:not(:focus) { transform: translateY(-8px); }

	body.rg-funnel.woocommerce-checkout form.checkout .rc-notify { margin: 0 0 16px !important; }
	body.rg-funnel.woocommerce-checkout form.checkout .rc-notify span { font-size: 12px; font-weight: 400; line-height: 18px; }
	body.rg-funnel.woocommerce-checkout .rg-co-continue { min-height: 44px; margin-top: 0; border-radius: 999px; font-size: 14px; line-height: 20px; }

	/* Étape 1 validée : coche dans la pastille, coordonnées en lignes discrètes, « Modifier » à droite. */
	body.rg-funnel.woocommerce-checkout #customer_details.rc-collapsed .woocommerce-billing-fields > h3::before { flex: 0 0 34px; width: 34px; height: 22px; background-size: 14px; border-radius: 999px; }
	body.rg-funnel.woocommerce-checkout #rc-saved-info-edit { position: static !important; flex: 0 0 auto; align-self: flex-start; margin: 0 0 0 auto !important; transform: none; font-size: 14px; font-weight: 500; line-height: 24px; }
	body.rg-funnel.woocommerce-checkout #rc-saved-info-box { gap: 6px; margin: 12px 0 0; font-size: 14px; line-height: 20px; }
	body.rg-funnel.woocommerce-checkout #rc-saved-info-box, body.rg-funnel.woocommerce-checkout #rc-saved-info-box > strong, body.rg-funnel.woocommerce-checkout #rc-saved-info-box > span { color: var(--rg-text-muted) !important; font-size: 14px; font-weight: 400; }

	/* Moyens de paiement : le moyen choisi passe en plein, couleur du bouton. */
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods { margin: 0; padding: 0; border: 0 !important; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li::before { display: none; } /* Pseudo-élément vide de WooCommerce : décalait le contenu de la largeur de l'espacement. */
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li { min-height: 80px; margin-bottom: 8px; padding: 16px !important; border-radius: 8px; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li > label { gap: 12px; }
	body.rg-funnel.woocommerce-checkout #payment li.payment_method_craft_wallet > label .rg-pm-wallet-ico { flex: 0 0 40px; width: 40px; height: 40px; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li > label .rg-pm-name { font-size: 14px; font-weight: 600; line-height: 21px; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li > label .rg-pm-sub { font-size: 12px; line-height: 19.5px; }
	body.rg-funnel.woocommerce-checkout .rg-pm-cc { display: none; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li > label::after { width: 20px; height: 20px; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) { border-color: var(--rg-btn) !important; background: var(--rg-btn) !important; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) .rg-pm-sub, body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) .cp-panel, body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) .cp-panel :is(p, label) { color: #fff !important; }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li:not(.payment_method_craft_wallet):has(> input:checked) > label::after { border-color: #fff; box-shadow: none; background: radial-gradient(circle, var(--rg-btn) 0 3px, #fff 3.5px); }
	body.rg-funnel.woocommerce-checkout #payment ul.payment_methods li > .cp-panel { box-sizing: border-box; flex: 0 0 calc(100% + 32px); width: calc(100% + 32px); margin: 12px -16px -16px !important; padding: 0 16px 16px !important; background: transparent !important; border: 0 !important; }
	/* Le bouton reste dans le formulaire : la barre du bas le déclenche. */
	body.rg-funnel.woocommerce-checkout #payment #place_order, body.rg-funnel.woocommerce-checkout #payment .place-order > .rg-co-secure { display: none !important; }
	body.rg-funnel.woocommerce-checkout #payment .place-order { height: 0; margin: 0 !important; padding: 0 !important; border: 0 !important; overflow: hidden; }
	body.rg-funnel.woocommerce-checkout #payment .cp-field { display: flex; flex-direction: column; }
	body.rg-funnel.woocommerce-checkout #payment .cp-confirm-label { order: -1; margin: 0 0 8px !important; font-size: 14px; font-weight: 500; line-height: 21px; letter-spacing: 0; color: #fff !important; }
	body.rg-funnel.woocommerce-checkout #payment .cp-phone-input { font-size: 15px !important; }
	body.rg-funnel.woocommerce-checkout .rg-funnel-help { margin: 16px 0 0; font-size: 12px; line-height: 19.5px; color: var(--rg-text-muted); }
	body.rg-funnel.woocommerce-checkout .rg-co-secure-m { display: flex; margin: 16px 0 0; font-size: 12px; font-weight: 500; line-height: 16px; }

	/* Barre du bas, toujours visible : nombre d'articles, total, bouton. */
	body.rg-funnel.woocommerce-checkout .rc-bar { background: var(--rg-navy-deep) !important; color: #fff; box-shadow: 0 -6px 24px rgba(0, 0, 0, .35) !important; }
	body.rg-funnel.woocommerce-checkout .rc-bar.rc-hidden { transform: none !important; }
	body.rg-funnel.woocommerce-checkout .rc-bar.is-open { border-radius: 0; }
	body.rg-funnel.woocommerce-checkout .rc-main { gap: 12px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); }
	body.rg-funnel.woocommerce-checkout .rc-toggle { gap: 8px; min-height: 44px; }
	body.rg-funnel.woocommerce-checkout .rc-sum { flex: 0 0 auto; }
	body.rg-funnel.woocommerce-checkout .rc-chevron { width: 20px; height: 20px; color: #fff; }
	body.rg-funnel.woocommerce-checkout .rc-count, body.rg-funnel.woocommerce-checkout .rc-bar--nocount .rc-count { display: block; font-size: 12px; line-height: 16px; color: #fff; }
	body.rg-funnel.woocommerce-checkout .rc-total-label { display: none; }
	body.rg-funnel.woocommerce-checkout #rcTotal { font-size: 18px; font-weight: 700; line-height: 22.5px; color: #fff !important; }
	body.rg-funnel.woocommerce-checkout .rc-bar .rc-bar-btn { flex: 0 0 auto; width: auto; max-width: none; min-height: 44px; padding: 12px 20px; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 20px; white-space: nowrap; }
	body.rg-funnel.woocommerce-checkout .rc-bar .rc-bar-btn:disabled { opacity: .5; }

	/* Résumé déplié au-dessus de la barre. */
	body.rg-funnel.woocommerce-checkout .rc-sheet { max-height: 60vh; max-height: 60dvh; overflow-y: auto; border-bottom: 0; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-items { display: none; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-billing-summary { display: block !important; position: static; margin: 0; padding: 16px 16px 8px !important; border: 0 !important; border-radius: 0; background: transparent !important; box-shadow: none !important; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-billing-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px !important; font-size: 14px !important; font-weight: 600 !important; line-height: 20px; }
	.rg-sheet-close { display: flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; margin: -12px -12px -12px 0; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item { gap: 12px; padding: 0 0 16px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-img { flex: 0 0 90px; width: 90px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-top strong { overflow: hidden; font-size: 14px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-body, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-top { min-width: 0; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-meta { font-size: 12px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-qty { border-radius: 4px; border-color: var(--rg-border); }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-qty button { width: 24px; height: 24px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-qty b { font-size: 12px; font-weight: 500; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price del { font-size: 10px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price > span, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price bdi { font-size: 14px; font-weight: 600; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-remove { width: 24px; height: 24px; color: rgba(255, 255, 255, .35); }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line { padding: 16px 0 0; font-size: 14px; line-height: 21px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line + .rg-co-line { padding-top: 12px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line span:last-child, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line bdi { font-weight: 600; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line-promo span:last-child, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line-promo bdi { color: var(--rg-sale); }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-billing-total { margin-top: 12px; padding-top: 12px !important; border-top: 1px solid var(--rg-border) !important; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-billing-total-label { font-size: 16px !important; font-weight: 600 !important; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-billing-total-label::after { content: " :"; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rc-billing-total-amount { font-size: 20px !important; font-weight: 700 !important; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-terms { margin: 16px 0 0; font-size: 12px; line-height: 19.5px; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-top strong, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price > span, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price bdi, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-qty button, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-qty b, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-terms a, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line span:last-child, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line bdi { color: #fff !important; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-meta, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line span:first-child, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-terms, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price del, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price del bdi { color: var(--rg-text-muted) !important; }
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line-promo span:last-child, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line-promo bdi { color: var(--rg-sale) !important; }
}
@media (max-width: 379px) {
	body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-img { flex: 0 0 72px; width: 72px; }
	body.rg-funnel.woocommerce-checkout #rcTotal { font-size: 15px; }
	body.rg-funnel.woocommerce-checkout .rc-bar .rc-bar-btn { padding: 12px 14px; }
}

/* Pages catégories et sous-catégories sur téléphone : pas de description, les produits remontent (le texte reste dans la page pour le référencement). */
@media (max-width: 767px) {
	.rg-shop-desc { display: none; }
}

/* Promo : le prix réduit passe au bleu des promos partout où il était blanc. */
.rg-amount-price ins .amount, .rg-amount-price ins bdi { color: var(--rg-sale) !important; }
.rg-search-prices:has(s) b { color: var(--rg-sale); }
body.rg-funnel .rc-pnow, body.rg-funnel .rc-pnow .woocommerce-Price-amount, body.rg-funnel .rc-pnow bdi { color: var(--rg-sale) !important; }
.rg-co-item-price del + span, .rg-co-item-price del + span bdi { color: var(--rg-sale); }
body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price del + span, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-item-price del + span bdi { color: var(--rg-sale) !important; }

/* Accueil : titres et descriptions plus discrets, « Voir plus » aligné sur la première ligne du titre. */
.rg-home .rg-section-head { align-items: flex-start; margin-bottom: 14px; }
.rg-home .rg-section-title, .rg-home .rg-section-title-display { font-size: 22px; line-height: 28px; }
.rg-home .rg-section-sub { display: none; } /* Pas de description sur l'accueil (demande du client). */
.rg-home .rg-see-all { height: 32px; margin-top: -2px; padding: 0 12px; gap: 6px; font-size: 12px; }
.rg-home .rg-see-all .rg-icon { width: 14px; height: 14px; }
.rg-home .rg-reviews-count { font-size: 13px; }
.rg-home .rg-banner-title { font-size: clamp(28px, 2.6vw, 38px); }
.rg-home .rg-banner-body p { font-size: 14px; }
.rg-home .rg-about-title { font-size: 20px; }
.rg-home .rg-about-sub { margin: 4px 0 12px; font-size: 13px; }
.rg-home .rg-about-text { font-size: 13px; line-height: 1.6; }
@media (max-width: 820px) {
	.rg-home .rg-section-title, .rg-home .rg-section-title-display { font-size: 19px; line-height: 24px; }
	.rg-home .rg-see-all { height: 28px; padding: 0 10px; font-size: 11.5px; }
	.rg-home .rg-banner-title { font-size: 24px; }
	.rg-home .rg-banner-body p { font-size: 13px; }
	.rg-home .rg-about-title { font-size: 18px; }
	.rg-home .rg-about-text { font-size: 12.5px; }
}

/* Message d'installation de l'application (inc/pwa.php, assets/js/pwa.js), en bas au centre. */
.rg-pwa { position: fixed; z-index: 9980; left: 12px; right: 12px; bottom: calc(env(safe-area-inset-bottom) + 12px); display: grid; grid-template-columns: 48px minmax(0, 1fr) 32px; gap: 14px 12px; max-width: 448px; margin: 0 auto; padding: 16px; border: 1px solid var(--rg-border-hover); border-radius: 22px; background: var(--rg-navy-dark); box-shadow: 0 16px 40px rgba(0, 0, 0, .55); animation: rg-pwa-in .25s var(--rg-ease); }
@media (min-width: 821px) { .rg-pwa { bottom: 24px; } }
@media (max-width: 820px) { body.single-product .rg-pwa { bottom: calc(env(safe-area-inset-bottom) + 84px); } } /* Au-dessus de la barre d'achat. */
.rg-pwa-icon { width: 48px; height: 48px; border-radius: 12px; }
.rg-pwa-close { width: 32px; height: 32px; margin: -4px -4px 0 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--rg-text-muted); font-size: 22px; line-height: 1; cursor: pointer; }
@media (hover: hover) { .rg-pwa-close:hover { background: var(--rg-surface-inset); color: #fff; } }
.rg-pwa-title { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.3; color: #fff; text-wrap: balance; }
.rg-pwa-text { margin: 3px 0 0; font-size: 12.5px; line-height: 1.4; color: var(--rg-text-muted); }
.rg-pwa-steps { margin: 6px 0 0; padding-left: 18px; font-size: 12.5px; line-height: 1.45; color: var(--rg-text-muted); }
.rg-pwa-actions { grid-column: 1 / -1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
.rg-pwa-yes, .rg-pwa-no { min-height: 44px; padding: 0 18px; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.rg-pwa-yes { border: 0; background: var(--rg-btn); color: var(--rg-on-btn); }
.rg-pwa-no { border: 1px solid var(--rg-border-hover); background: transparent; color: #fff; }
@keyframes rg-pwa-in { from { transform: translateY(12px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .rg-pwa { animation: none; } }

/* Version anglaise : textes écrits dans les feuilles de style. */
html[lang^="en"] .rg-menu > li.rg-tag > a::after { content: "Trending"; }
html[lang^="en"] body.rg-funnel form.checkout .woocommerce-billing-fields > h3::before { content: "Step 1"; }
html[lang^="en"] body.rg-funnel.woocommerce-checkout form.checkout #custom-phone-field .select2-container::before { content: "Code"; }

/* Cashback au panier et à la finalisation : montant en vert, comme au panier latéral. */
body.rg-funnel .rg-cashback-row .rg-cashback, body.rg-funnel .rg-cashback-row .rg-cashback .amount, body.rg-funnel .rg-cashback-row .rg-cashback bdi,
.rg-co-line-cashback span:last-child, .rg-co-line-cashback bdi, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line-cashback span:last-child, body.rg-funnel.woocommerce-checkout .rc-sheet .rg-co-line-cashback bdi { color: var(--rg-cashback) !important; }
.rg-co-line-cashback.is-off span:last-child { color: var(--rg-text-dim) !important; font-size: 13px; font-weight: 500; }
.rg-co-items .rg-cashback-nudge { margin: 2px 0 10px; padding: 10px 12px; border: 1px solid rgba(0, 212, 170, .35); border-radius: 10px; background: rgba(0, 212, 170, .08); font-size: 13px; line-height: 1.45; color: var(--rg-text-muted); }
.rg-co-items .rg-cashback-nudge p { margin: 0 0 4px; color: var(--rg-text-muted); }
.rg-co-items .rg-cashback-nudge p:last-child { margin: 0; }
body.rg-funnel .rg-co-items .rg-cashback-nudge strong, body.rg-funnel .rg-co-items .rg-cashback-nudge bdi, body.rg-funnel .rg-co-items .rg-cashback-nudge a { color: var(--rg-cashback) !important; font-weight: 700; }
