/* Nosif Partner Sheets — fiche produit, cartes et sections.
   Tous les styles sont limités à .nps-scope pour ne pas être déformés par le thème. */

@font-face { font-family: "NPS Montserrat"; src: url("fonts/montserrat-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "NPS Montserrat"; src: url("fonts/montserrat-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "NPS Montserrat"; src: url("fonts/montserrat-latin-800-normal.woff2") format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "NPS Inter"; src: url("fonts/inter-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "NPS Inter"; src: url("fonts/inter-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "NPS Inter"; src: url("fonts/inter-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "NPS Inter"; src: url("fonts/inter-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }

.nps-scope {
	--nps-navy: #111827;
	--nps-navy-2: #1f2937;
	--nps-line: #374151;
	--nps-pink: #d6146f;
	--nps-pink-txt: #c8106a;
	--nps-pink-soft: #f472b6;
	--nps-pink-bg: #fdf2f8;
	--nps-green: #15803d;
	--nps-green-bg: #ecfdf3;
	--nps-yellow: #ffc21a;
	--nps-ink: #141a2a;
	--nps-muted: #4b5563;
	--nps-page: #f4f5f8;
	--nps-display: "NPS Montserrat", Montserrat, system-ui, sans-serif;
	--nps-body: "NPS Inter", Inter, system-ui, sans-serif;
	font-family: var(--nps-body);
	color: var(--nps-ink);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.nps-scope *, .nps-scope *::before, .nps-scope *::after { box-sizing: border-box; }
.nps-scope h1, .nps-scope h2, .nps-scope h3, .nps-scope h4 { font-family: var(--nps-display); letter-spacing: 0; text-transform: none; margin: 0; padding: 0; line-height: 1.15; }
.nps-scope p { margin: 0; }
.nps-scope ul, .nps-scope ol { margin: 0; padding: 0; list-style: none; }
.nps-scope li { margin: 0; padding: 0; line-height: 1.45; }
.nps-scope li::marker { content: none; }
.nps-scope img { max-width: 100%; height: auto; display: block; }
.nps-scope a { text-decoration: none; }
.nps-scope button { font: inherit; }
.nps-scope strong, .nps-scope b { font-weight: 700; }
.nps-scope .nps-ico { flex-shrink: 0; }
.nps-scope :focus-visible { outline: 3px solid var(--nps-pink-soft); outline-offset: 2px; }
.nps-scope .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

body.nps-single { overflow-x: clip; }
.nps-fiche { width: 100vw; position: relative; left: 50%; margin-left: -50vw; background: var(--nps-page); }
.nps-wrapc { max-width: 1440px; margin: 0 auto; padding: 0 32px; }

/* ---------- Hero ---------- */
.nps-hero { background: var(--nps-navy); color: #fff; padding: calc(20px + var(--nps-offset, 0px)) 0 40px; }
.nps-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: #e5e7eb; margin-bottom: 18px; }
.nps-crumbs a { color: #e5e7eb; display: inline-flex; }
.nps-crumbs a:hover { color: #fff; text-decoration: underline; }
.nps-crumbs [aria-current] { color: #fff; }

.nps-cols { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.nps-gallery { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.nps-info { flex: 1.35 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.nps-buy { flex: .95 1 340px; min-width: 0; }

/* Galerie */
.nps-gallery-main { position: relative; border-radius: 16px; overflow: hidden; background: var(--nps-navy-2); aspect-ratio: 1 / .89; }
.nps-slide { margin: 0; position: absolute; inset: 0; }
.nps-slide[hidden] { display: none; }
.nps-slide img { width: 100%; height: 100%; object-fit: cover; }
.nps-noimg { background: var(--nps-navy-2); }
.nps-badge { position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; background: var(--nps-pink); color: #fff; font-weight: 700; font-size: 15px; padding: 8px 14px; border-radius: 999px; }
.nps-gbtn { position: absolute; z-index: 2; width: 48px; height: 48px; border-radius: 50%; border: 2px solid #fff; background: rgba(17, 24, 39, .7); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.nps-gbtn:hover { background: rgba(17, 24, 39, .9); }
.nps-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.nps-next { right: 14px; top: 50%; transform: translateY(-50%); }
.nps-zoom { right: 14px; bottom: 14px; width: 44px; height: 44px; border-radius: 10px; border: 0; background: rgba(17, 24, 39, .85); }
.nps-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.nps-thumb { padding: 0; border: 1px solid #4b5563; border-radius: 8px; overflow: hidden; background: none; cursor: pointer; aspect-ratio: 1; }
.nps-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nps-thumb.is-on { border: 2px solid var(--nps-pink); }

/* Infos */
.nps-title { font-family: var(--nps-display); font-weight: 800; font-size: clamp(30px, 3.3vw, 46px); line-height: 1.05; color: #fff; }
.nps-brandline { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 18px; }
.nps-brand { background: var(--nps-pink-soft); color: var(--nps-navy); font-family: var(--nps-display); font-weight: 800; padding: 6px 18px; border-radius: 8px; }
.nps-model { color: #e5e7eb; }
.nps-lead { font-size: 17px; color: #e5e7eb; }
.nps-trace { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; color: #d1d5db; }
.nps-trace a { color: #f9a8d4; text-decoration: underline; }

.nps-specs { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); text-align: center; }
.nps-specs li { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 4px; }
.nps-specs li + li { border-left: 1px solid var(--nps-line); }
.nps-specs strong { font-size: 20px; color: #fff; }
.nps-specs span { font-size: 14px; color: #d1d5db; }

.nps-pm { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.nps-plus, .nps-moins { border-radius: 12px; padding: 16px 18px; color: #111827; display: flex; flex-direction: column; gap: 8px; }
.nps-plus { background: var(--nps-green-bg); }
.nps-moins { background: var(--nps-pink-bg); }
.nps-pm h2 { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 22px; color: #111827; }
.nps-dot { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.nps-dot .nps-ico { stroke-width: 3; }
.nps-dot-ok { background: var(--nps-green); }
.nps-dot-ko { background: var(--nps-pink); }
.nps-pm ul { display: flex; flex-direction: column; gap: 6px; font-size: 16px; }
.nps-pm li { padding-left: 1.2em !important; text-indent: -1.2em; }
.nps-plus li::before { content: "✓ "; color: var(--nps-green); font-weight: 700; }
.nps-moins li::before { content: "– "; color: var(--nps-pink); font-weight: 700; }

/* Carte Amazon */
.nps-buy { background: #fff; color: #111827; border: 3px solid var(--nps-pink-soft); border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.nps-buy-where { text-align: center; font-size: 15px; color: #374151; }
.nps-buy-where strong { font-family: var(--nps-display); font-size: 22px; color: #111827; }
.nps-buy-gamme { display: flex; align-items: baseline; justify-content: center; gap: 12px; flex-wrap: wrap; }
.nps-buy-gamme span { font-family: var(--nps-display); font-weight: 800; font-size: 44px; color: var(--nps-pink-txt); letter-spacing: 2px; line-height: 1; }
.nps-buy-gamme strong { font-size: 17px; }
.nps-buy-price { text-align: center; display: flex; flex-direction: column; gap: 4px; }
.nps-buy-price strong { font-family: var(--nps-display); font-weight: 800; font-size: 44px; line-height: 1; color: var(--nps-pink-txt); }
.nps-buy-price span { font-size: 12px; color: var(--nps-muted); }
.nps-buy-gamme.is-small span { font-size: 20px; letter-spacing: 1px; }
.nps-buy-gamme.is-small strong { font-size: 14px; }
.nps-buy-tag { text-align: center; font-size: 15px; color: #374151; }
.nps-buy-btn { display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--nps-yellow); color: #111827 !important; font-family: var(--nps-display); font-weight: 800; font-size: 19px; line-height: 1.2; padding: 16px 18px; border-radius: 999px; min-height: 48px; text-align: center; transition: transform .15s, box-shadow .15s; }
.nps-buy-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(255, 194, 26, .45); }
.nps-buy-cond { text-align: center; font-size: 13px; color: var(--nps-muted); }
.nps-trust { background: #f9fafb; border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.nps-trust h2 { font-weight: 800; font-size: 17px; text-align: center; color: #111827; }
.nps-trust-row { display: flex; align-items: center; gap: 14px; }
.nps-ring { --p: 0; width: 96px; height: 96px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: conic-gradient(var(--nps-green) calc(var(--p) * 1%), #e5e7eb 0); }
.nps-ring span { width: 76px; height: 76px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--nps-display); font-weight: 800; font-size: 22px; }
.nps-trust ul { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.nps-trust li { display: flex; gap: 6px; align-items: center; }
.nps-trust li .nps-ico { color: var(--nps-green); stroke-width: 3; }
.nps-disclose { font-size: 12px; line-height: 1.4; color: var(--nps-muted); text-align: center; }

/* Choisissez selon votre budget */
.nps-ranges { margin-top: 24px; background: #fff; color: #111827; border: 2px solid var(--nps-pink-soft); border-radius: 14px; padding: 16px 18px; display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; }
.nps-ranges-intro { flex: 1.2 1 260px; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.nps-ranges-intro h2 { font-weight: 800; font-size: 20px; color: #111827; }
.nps-ranges-intro p { font-size: 13px; line-height: 1.4; color: var(--nps-muted); }
.nps-range { flex: 1 1 240px; display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 10px; border: 1px solid #e5e7eb; color: #111827; min-height: 44px; }
a.nps-range:hover { border-color: var(--nps-pink-soft); background: #fff7fb; }
.nps-range.is-here { background: var(--nps-pink-bg); border: 2px solid var(--nps-pink-soft); }
.nps-range-num { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; color: #111827; }
.nps-range-1 .nps-range-num { background: #f59e0b; }
.nps-range-2 .nps-range-num { background: #9ca3af; }
.nps-range-3 .nps-range-num { background: #c2703d; }
.nps-range-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nps-range-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nps-range-name strong { font-size: 16px; }
.nps-range-name em { font-style: normal; font-size: 11px; font-weight: 700; background: var(--nps-pink); color: #fff; padding: 2px 8px; border-radius: 999px; }
.nps-range-for { font-size: 13px; color: #374151; }
.nps-range-prod { font-size: 13px; color: var(--nps-muted); }
.nps-range-g { font-weight: 800; color: var(--nps-pink-txt); }
.nps-range-go { color: var(--nps-pink-txt); display: inline-flex; }

/* ---------- Onglets ---------- */
.nps-tabs-wrap { padding-top: 24px; padding-bottom: 48px; }
.nps-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 24px; }
.nps-tabs button { min-height: 52px; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; color: #111827; font-family: var(--nps-display); font-weight: 700; font-size: 17px; cursor: pointer; padding: 0 12px; }
.nps-tabs button:hover { border-color: var(--nps-pink-soft); }
.nps-tabs button[aria-selected="true"] { background: var(--nps-pink); color: #fff; border-color: var(--nps-pink); }
.nps-panel[hidden] { display: none; }
.nps-h2 { font-weight: 800; font-size: 28px; border-left: 5px solid var(--nps-pink); padding-left: 14px; margin-bottom: 16px !important; color: #111827; }
.nps-text { font-size: 17px; line-height: 1.6; }
.nps-pres { display: flex; flex-wrap: wrap; gap: 20px; align-items: stretch; }
.nps-pres-main { flex: 2 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.nps-pres-main .nps-h2 { margin-bottom: 0 !important; }
.nps-usages { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.nps-usage { background: #fff; border-radius: 12px; padding: 18px 12px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.nps-usage .nps-ico { color: var(--nps-pink); stroke-width: 1.6; }
.nps-usage strong { font-family: var(--nps-display); font-size: 17px; }
.nps-usage span { font-size: 14px; color: var(--nps-muted); }
.nps-revbox { flex: 1 1 340px; min-width: 0; background: #fff; border-radius: 16px; padding: 24px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); display: flex; flex-direction: column; gap: 14px; }
.nps-revbox .nps-h2 { font-size: 24px; margin-bottom: 0 !important; }

.nps-tablebox { overflow-x: auto; background: #fff; border-radius: 12px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.nps-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 16px; }
.nps-table th, .nps-table td { padding: 12px 18px; border: 0; border-bottom: 1px solid #e5e7eb; text-align: left; vertical-align: top; }
.nps-table th { width: 38%; font-weight: 600; color: #374151; background: #f9fafb; }
.nps-table tr:last-child th, .nps-table tr:last-child td { border-bottom: 0; }

.nps-rich { background: #fff; border-radius: 12px; padding: 22px 24px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); font-size: 17px; line-height: 1.65; }
.nps-rich p + p, .nps-rich p + ul, .nps-rich ul + p, .nps-rich h3 + p { margin-top: 12px; }
.nps-rich h3, .nps-rich h4 { font-size: 20px; margin: 18px 0 8px; }
.nps-rich h3:first-child { margin-top: 0; }
.nps-rich ul { list-style: disc; padding-left: 22px; margin-top: 8px; }
.nps-rich li { margin: 4px 0; }
.nps-rich li::marker { content: initial; }
.nps-rich ol { padding-left: 22px; }
.nps-advice { margin-top: 24px; }
.nps-advice h3 { font-weight: 800; font-size: 22px; margin-bottom: 12px; }

.nps-faq { display: flex; flex-direction: column; gap: 10px; }
.nps-faq details { background: #fff; border-radius: 12px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.nps-faq summary { cursor: pointer; padding: 16px 20px; font-family: var(--nps-display); font-weight: 700; font-size: 17px; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.nps-faq summary::-webkit-details-marker { display: none; }
.nps-faq summary::after { content: "+"; color: var(--nps-pink); font-size: 22px; line-height: 1; }
.nps-faq details[open] summary::after { content: "–"; }
.nps-faq details p { padding: 0 20px 18px; color: #374151; }

/* Avis */
.nps-stars { display: inline-flex; gap: 3px; }
.nps-star { position: relative; display: inline-flex; background: linear-gradient(90deg, #f59e0b var(--f), #d1d5db var(--f)); -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2l3 6.5 7 .8-5.2 4.8 1.4 7L12 17.6 5.8 21l1.4-7L2 9.3l7-.8z"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2l3 6.5 7 .8-5.2 4.8 1.4 7L12 17.6 5.8 21l1.4-7L2 9.3l7-.8z"/></svg>') center / contain no-repeat; }
.nps-star svg { display: block; opacity: 0; }
.nps-rev-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; flex: 1; justify-content: center; }
.nps-rev-empty p { color: #374151; }
.nps-pill-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border-radius: 999px; background: var(--nps-pink); color: #fff !important; font-weight: 700; }
.nps-pill-btn:hover { background: #b80f5e; }
.nps-rev-sum { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.nps-rev-avg { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.nps-rev-avg strong { font-family: var(--nps-display); font-weight: 800; font-size: 40px; line-height: 1; }
.nps-rev-avg small { font-size: 20px; font-weight: 700; }
.nps-rev-dist { flex: 1 1 180px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.nps-rev-dist li { display: grid; grid-template-columns: 34px 1fr 44px; gap: 8px; align-items: center; }
.nps-bar { height: 8px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
.nps-bar span { display: block; height: 100%; background: var(--nps-pink); }
.nps-reviews { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.nps-reviews-list { flex: 2 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.nps-reviews-form { flex: 1 1 320px; min-width: 0; background: #fff; border-radius: 16px; padding: 22px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.nps-review { background: #fff; border-radius: 12px; padding: 16px 18px; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.nps-review header { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 8px; }
.nps-review time { color: var(--nps-muted); font-size: 13px; margin-left: auto; }
.nps-reviews-form .comment-reply-title { font-family: var(--nps-display); font-weight: 800; font-size: 20px; margin: 0 0 12px; }
.nps-reviews-form p { margin: 0 0 12px; }
.nps-reviews-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.nps-reviews-form input[type="text"], .nps-reviews-form input[type="email"], .nps-reviews-form input[type="url"], .nps-reviews-form textarea { width: 100%; border: 1px solid #9ca3af; border-radius: 8px; padding: 10px 12px; font: inherit; background: #fff; color: #111827; }
.nps-reviews-form .submit { background: var(--nps-pink); color: #fff; border: 0; border-radius: 999px; padding: 12px 24px; min-height: 44px; font-weight: 700; cursor: pointer; }
.nps-rate { border: 0; padding: 0; margin: 0 0 12px; }
.nps-rate legend { font-weight: 600; margin-bottom: 4px; padding: 0; }
.nps-rate-stars { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.nps-rate-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.nps-rate-stars label { color: #d1d5db; cursor: pointer; margin: 0; display: inline-flex; padding: 4px; }
.nps-rate-stars label:hover, .nps-rate-stars label:hover ~ label, .nps-rate-stars input:checked ~ label { color: #f59e0b; }
.nps-rate-stars input:focus-visible + label { outline: 3px solid var(--nps-pink-soft); border-radius: 6px; }

/* Barre fixe mobile */
.nps-sticky { display: none; }
@media (max-width: 782px) {
	.nps-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; background: #fff; color: #111827; padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); box-shadow: 0 -4px 16px rgba(0, 0, 0, .25); display: flex; align-items: center; gap: 12px; transform: translateY(110%); transition: transform .25s; }
	.nps-sticky.is-on { transform: none; }
	.nps-sticky img { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; }
	.nps-sticky-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
	.nps-sticky-txt strong { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.nps-sticky-txt span { font-size: 13px; color: var(--nps-pink-txt); font-weight: 800; }
	.nps-sticky a { display: flex; align-items: center; min-height: 48px; padding: 0 16px; border-radius: 999px; background: var(--nps-yellow); color: #111827; font-family: var(--nps-display); font-weight: 800; font-size: 15px; white-space: nowrap; }
	.nps-wrapc { padding: 0 16px; }
	.nps-specs { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 14px; }
	.nps-specs li:nth-child(3n + 1) { border-left: 0; }
	.nps-fiche { padding-bottom: 80px; }
	.nps-h2 { font-size: 23px; }
}

/* Plein écran */
.nps-lightbox { border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 96vh; }
.nps-lightbox::backdrop { background: rgba(0, 0, 0, .85); }
.nps-lightbox img { max-width: 96vw; max-height: 92vh; object-fit: contain; border-radius: 8px; }
.nps-lb-close { position: fixed; top: 16px; right: 16px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #fff; color: #111827; display: flex; align-items: center; justify-content: center; cursor: pointer; }

/* ---------- Cartes et sections Shopping ---------- */
.nps-section { padding: 48px 0 24px; color: #fff; }
.nps-section-head { text-align: center; margin-bottom: 28px; }
.nps-section-head h2 { font-family: var(--nps-display); font-weight: 700; font-size: clamp(26px, 3vw, 32px); color: #fff; }
.nps-section-head h2 span { color: #f7a2ce; }
.nps-section-count { font-size: 12px; color: #f7a2ce; letter-spacing: .1em; text-transform: uppercase; margin-top: 8px !important; }
.nps-section-line { width: 100%; height: 1px; background: linear-gradient(90deg, transparent, #f7a2ce, transparent); margin-top: 20px; }
.nps-section.is-light { color: var(--nps-ink); }
.nps-section.is-light .nps-section-head h2 { color: var(--nps-ink); }
.nps-section.is-light .nps-section-head h2 span, .nps-section.is-light .nps-section-count { color: var(--nps-pink-txt); }
.nps-section.is-light .nps-soon { color: var(--nps-muted); }
.nps-soon { text-align: center; color: #d1d5db; padding: 12px 0 24px; }
.nps-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.nps-pcard { background: #fff; color: #111827; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); transition: transform .15s, box-shadow .15s; }
.nps-pcard:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 0, 0, .25); }
.nps-pcard-media { position: relative; display: block; aspect-ratio: 4 / 3; background: #f3f4f6; }
.nps-pcard-media img, .nps-card-noimg { width: 100%; height: 100%; object-fit: cover; display: block; }
.nps-pcard .nps-badge { font-size: 12px; padding: 5px 10px; top: 10px; left: 10px; }
.nps-pcard-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.nps-pcard-brand { font-size: 12px; font-weight: 700; color: var(--nps-pink-txt); text-transform: uppercase; letter-spacing: .06em; }
.nps-pcard-title { font-family: var(--nps-display); font-weight: 800; font-size: 18px; line-height: 1.2; }
.nps-pcard-title a { color: #111827; }
.nps-pcard-title a:hover { color: var(--nps-pink-txt); }
.nps-pcard-meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 13px; color: #374151; flex-wrap: wrap; }
.nps-pcard-gamme strong { color: var(--nps-pink-txt); font-size: 15px; }
.nps-pcard-trust { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; color: var(--nps-green); }
.nps-pcard-btn { margin-top: auto; display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 999px; background: var(--nps-pink); color: #fff !important; font-weight: 700; }
.nps-pcard-btn:hover { background: #b80f5e; }
.nps-archive { background: var(--nps-navy); padding: 24px 0 48px; width: 100vw; position: relative; left: 50%; margin-left: -50vw; }
.nps-archive-desc { color: #e5e7eb; max-width: 820px; margin: 32px auto 0; }

@media (prefers-reduced-motion: reduce) {
	.nps-scope * { transition: none !important; }
}

/* ---------- Bouclier contre les styles du thème / kit Elementor ----------
   Les kits Elementor colorent souvent h1-h6 et les liens avec une spécificité
   supérieure (.elementor-kit-N h3). On fixe ici les couleurs et polices. */
.nps-scope.nps-scope h1, .nps-scope.nps-scope h2, .nps-scope.nps-scope h3, .nps-scope.nps-scope h4 { font-family: var(--nps-display) !important; text-transform: none !important; letter-spacing: 0 !important; }
.nps-scope .nps-title { color: #fff !important; }
.nps-scope .nps-section-head h2 { color: #fff !important; }
.nps-scope .nps-section-head h2 span { color: #f7a2ce !important; }
.nps-scope.nps-section.is-light .nps-section-head h2 { color: var(--nps-ink) !important; }
.nps-scope.nps-section.is-light .nps-section-head h2 span { color: var(--nps-pink-txt) !important; }
.nps-scope .nps-pm h2, .nps-scope .nps-trust h2, .nps-scope .nps-ranges-intro h2, .nps-scope .nps-h2,
.nps-scope .nps-advice h3, .nps-scope .nps-rich h3, .nps-scope .nps-rich h4, .nps-scope .nps-faq summary,
.nps-scope .nps-reviews-form .comment-reply-title, .nps-scope .nps-review strong { color: #111827 !important; }
.nps-scope .nps-pcard-title, .nps-scope .nps-pcard-title a { color: #111827 !important; text-decoration: none !important; }
.nps-scope .nps-pcard-title a:hover { color: var(--nps-pink-txt) !important; }
.nps-scope .nps-pcard-brand { color: var(--nps-pink-txt) !important; }
.nps-scope .nps-crumbs a { color: #e5e7eb !important; }
.nps-scope .nps-trace a { color: #f9a8d4 !important; }
.nps-scope a.nps-range { color: #111827 !important; text-decoration: none !important; }
.nps-scope .nps-buy-btn, .nps-scope .nps-sticky a { color: #111827 !important; text-decoration: none !important; }
.nps-scope .nps-pcard-btn, .nps-scope .nps-pill-btn { color: #fff !important; text-decoration: none !important; }

/* Ancres des sections : laisser la place à un menu collant en haut de page. */
.nps-section { scroll-margin-top: 90px; }
