/* NO PNJ consolidated release stylesheet. Source order is contractual. */
/* source: /assets/pieces-inline-01.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 01 from prod pieces/index.html === */
:root {
  --bg:#070707;
  --panel:#121214;
  --panel2:#19191c;
  --text:#f2f2f2;
  --muted:rgba(242,242,242,.70);
  --yellow:#FFD600;
  --blue:#60AFFF;
  --green:#48c78e;
  --red:#D94141;
  --orange:#D07A36;
  --border:rgba(255,255,255,.13);
}
* { box-sizing:border-box; }
html, body { margin:0; max-width:100%; overflow-x:hidden; }
body {
  font-family: Inter, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 10% 0%, rgba(255,214,0,.10), transparent 34%),
    radial-gradient(circle at 90% 20%, rgba(96,175,255,.10), transparent 30%),
    linear-gradient(180deg, #050505, #111 54%, #070707);
}
main {
  width:min(1120px, calc(100% - 32px));
  margin:0 auto;
  padding:44px 0 68px;
}
nav {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:42px;
}
nav .brand {
  color:var(--text);
  font-weight:950;
  text-decoration:none;
  letter-spacing:-.04em;
}
nav .links {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
nav .links a {
  color:var(--muted);
  text-decoration:none;
  border:1px solid var(--border);
  border-radius:999px;
  padding:9px 12px;
  background:rgba(255,255,255,.04);
}
nav .links a:hover {
  color:var(--yellow);
  border-color:rgba(255,214,0,.45);
}
.kicker {
  color:var(--yellow);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:900;
  margin-bottom:18px;
}
h1 {
  font-size:clamp(46px, 9vw, 104px);
  line-height:.86;
  letter-spacing:-.075em;
  margin:0 0 20px;
}
h2 {
  font-size:26px;
  letter-spacing:-.04em;
  margin:0 0 10px;
}
h3 {
  font-size:clamp(28px, 4vw, 46px);
  line-height:.9;
  letter-spacing:-.065em;
  margin:0 0 14px;
  text-transform:uppercase;
}
p, li {
  color:var(--muted);
  font-size:17px;
  line-height:1.65;
}
.lead {
  max-width:860px;
  font-size:20px;
}
.grid {
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:16px;
  margin-top:24px;
}
.card {
  grid-column:span 12;
  border:1px solid var(--border);
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  padding:22px;
  position:relative;
  overflow:hidden;
}
.card::after {
  content:"";
  position:absolute;
  right:-64px;
  bottom:-64px;
  width:170px;
  height:170px;
  border:1px solid rgba(255,214,0,.16);
  transform:rotate(-12deg);
  pointer-events:none;
}
@media(min-width:820px){
  .span3 { grid-column:span 3; }
  .span4 { grid-column:span 4; }
  .span6 { grid-column:span 6; }
  .span8 { grid-column:span 8; }
}
.btns {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:12px 16px;
  border-radius:999px;
  text-decoration:none;
  font-weight:900;
  border:1px solid var(--border);
}
.btn.primary {
  background:var(--yellow);
  color:#101010;
  border-color:var(--yellow);
}
.btn.secondary {
  color:var(--text);
  background:rgba(255,255,255,.05);
}
.status {
  display:inline-flex;
  width:fit-content;
  align-items:center;
  border:1px solid var(--border);
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.status.available {
  color:#9ff0c3;
  border-color:rgba(72,199,142,.34);
  background:rgba(72,199,142,.10);
}
.status.soon {
  color:#ffe66a;
  border-color:rgba(255,214,0,.34);
  background:rgba(255,214,0,.10);
}
.status.study {
  color:#9ed1ff;
  border-color:rgba(96,175,255,.30);
  background:rgba(96,175,255,.10);
}
.tags {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.tag {
  border:1px solid var(--border);
  border-radius:999px;
  padding:8px 11px;
  color:var(--muted);
  background:rgba(255,255,255,.045);
  font-size:13px;
  font-weight:800;
}
.notice {
  border-left:4px solid var(--yellow);
  border-radius:14px;
  padding:14px 16px;
  background:rgba(255,214,0,.08);
  color:var(--muted);
}
.notice strong {
  color:var(--text);
}
.grid + .card,
.card + .card {
  margin-top:16px;
}
.card p:last-child {
  margin-bottom:0;
}
footer {
  margin-top:42px;
  color:var(--muted);
  font-size:14px;
}
footer a { color:var(--yellow); }
@media(max-width:760px){
  main { width:calc(100% - 24px); padding-top:28px; padding-bottom:56px; }
  .card { padding:18px; border-radius:20px; }
  .grid { gap:14px; margin-top:20px; }
  nav { align-items:flex-start; }
}



/*
  Doctrine visuelle :
  - aucun carré flottant derrière le contenu
  - 1 article listé = 1 carré visuel
  - les carrés sont dans le flux normal de la carte
  - aucun chevauchement avec numéro, pastille, texte, tags ou CTA
*/

/* Stop définitif des carrés globaux décoratifs */
.card::after,
.product-card::after,
article.card.span4::after,
article.card.span6::after {
  content: none !important;
  display: none !important;
}

/* Élargissement léger de la section familles si en préparation */
#pieces.shell {
  max-width: min(1320px, calc(100vw - 64px)) !important;
}

/* Grille famille : un peu plus respirante */
.product-grid {
  grid-template-columns: repeat(4, minmax(250px, 1fr)) !important;
}

/* Cartes familles produits */
.product-card {
  min-height: 760px !important;
  padding: clamp(24px, 2.6vw, 34px) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
}

/* Numéro : plus aucun chevauchement avec la pastille */
.product-card .product-signal {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  z-index: 2 !important;
  display: block !important;
  width: fit-content !important;
  margin: 0 0 10px 0 !important;
  color: rgba(255,214,0,.18) !important;
  font-size: clamp(54px, 5vw, 76px) !important;
  line-height: .74 !important;
  letter-spacing: -.12em !important;
  transform: none !important;
}

/* Pastille sous le numéro, avec respiration nette */
.product-card .product-index {
  position: relative !important;
  z-index: 3 !important;
  display: inline-flex !important;
  width: fit-content !important;
  margin: 0 0 24px 0 !important;
  transform: none !important;
}

/* Titre et texte */
.product-card h3 {
  margin-top: 0 !important;
}

.product-card p {
  margin-bottom: 0 !important;
}

/* Liste des articles : devient la zone visuelle réelle */
.product-lines {
  list-style: none !important;
  padding: 0 !important;
  margin: auto 0 0 !important;
  display: grid !important;
  gap: 18px !important;
}

/* Chaque ligne article devient une mini-fiche */
.product-lines li {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: center !important;
  gap: 10px 12px !important;
  border: 1px solid rgba(255,255,255,.11) !important;
  border-radius: 16px !important;
  padding: 12px !important;
  background: rgba(255,255,255,.035) !important;
  min-height: 158px !important;
  overflow: hidden !important;
}

/* 1 carré par article */
.product-lines li::after {
  content: "" !important;
  display: block !important;
  grid-column: 1 / -1 !important;
  justify-self: center !important;
  width: clamp(92px, 7.2vw, 122px) !important;
  aspect-ratio: 1 / 1 !important;
  margin-top: 8px !important;
  background: rgba(255,214,0,.014) !important;
  border: 1px solid rgba(255,214,0,.28) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,214,0,.035),
    0 0 24px rgba(255,214,0,.025) !important;
  transform: rotate(-8deg) !important;
  pointer-events: none !important;
}

.product-lines strong,
.product-lines em {
  position: relative !important;
  z-index: 2 !important;
}

/* Page produits : suppression des carrés flottants */
article.card.span4,
article.card.span6 {
  padding-bottom: 22px !important;
}

/* Les tags produits deviennent eux aussi des mini-fiches quand il y a plusieurs articles */
article.card.span4 .tags,
article.card.span6 .tags {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(116px, 1fr)) !important;
  gap: 12px !important;
  margin-top: 18px !important;
}

article.card.span4 .tags span,
article.card.span6 .tags span {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: center !important;
  justify-items: center !important;
  gap: 10px !important;
  min-height: 132px !important;
  padding: 11px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.035) !important;
  border: 1px solid rgba(255,255,255,.11) !important;
}

/* 1 carré par tag / article sur la page produits */
article.card.span4 .tags span::after,
article.card.span6 .tags span::after {
  content: "" !important;
  display: block !important;
  width: clamp(82px, 7vw, 106px) !important;
  aspect-ratio: 1 / 1 !important;
  background: rgba(255,214,0,.014) !important;
  border: 1px solid rgba(255,214,0,.26) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,214,0,.035),
    0 0 22px rgba(255,214,0,.025) !important;
  transform: rotate(-8deg) !important;
  pointer-events: none !important;
}

/* CTA / boutons toujours hors conflit */
.btns,
.btn,
.status,
.tags,
.product-lines {
  position: relative !important;
  z-index: 4 !important;
}

/* Responsive */
@media (max-width: 1120px) {
  .product-grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
  }

  .product-card {
    min-height: 720px !important;
  }

  .product-lines li::after {
    width: 118px !important;
  }
}

@media (max-width: 760px) {
  #pieces.shell {
    max-width: calc(100vw - 32px) !important;
  }

  .product-grid {
    grid-template-columns: 1fr !important;
  }

  .product-card {
    min-height: auto !important;
  }

  .product-lines li {
    min-height: 148px !important;
  }

  .product-lines li::after {
    width: 104px !important;
  }

  article.card.span4 .tags,
  article.card.span6 .tags {
    grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)) !important;
  }

  article.card.span4 .tags span,
  article.card.span6 .tags span {
    min-height: 122px !important;
  }

  article.card.span4 .tags span::after,
  article.card.span6 .tags span::after {
    width: 88px !important;
  }
}

/* PRELAUNCH_MINIMAL_LOCK_START */
.prelaunch-notice {
  max-width: 1180px;
  margin: 18px auto 0;
  padding: 12px 16px;
  border: 1px solid rgba(255,214,0,.28);
  border-radius: 16px;
  background: rgba(255,214,0,.075);
  color: rgba(242,242,242,.84);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.prelaunch-notice strong {
  color: #FFD600;
}

@media (max-width: 760px) {
  .prelaunch-notice {
    margin: 14px 16px 0;
  }
}
/* PRELAUNCH_MINIMAL_LOCK_END */

/*
  Scope strict : /pieces/
  But :
  - aligner les tuiles entre cartes d'une même rangée
  - aligner les boutons sous les tuiles
  - ne pas toucher aux carrés jaunes
  - ne pas toucher à la grille globale
  - ne pas forcer de structure destructrice
*/

@media (min-width: 820px) {
  .grid > article.card.span6,
  .grid > article.card.span4 {
    display: flex !important;
    flex-direction: column !important;
  }

  /*
    Point clé :
    on pousse le bloc de tuiles vers le bas.
    Le bouton reste ensuite naturellement sous les tuiles.
  */
  .grid > article.card.span6 > .tags,
  .grid > article.card.span4 > .tags {
    margin-top: auto !important;
  }

  .grid > article.card.span6 > .btns,
  .grid > article.card.span4 > .btns {
    margin-top: 22px !important;
    padding-top: 0 !important;
  }

  .grid > article.card.span6 > .btns .btn,
  .grid > article.card.span4 > .btns .btn {
    width: fit-content !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 819px) {
  .grid > article.card.span6,
  .grid > article.card.span4 {
    display: block !important;
  }

  .grid > article.card.span6 > .tags,
  .grid > article.card.span4 > .tags {
    margin-top: 18px !important;
  }

  .grid > article.card.span6 > .btns,
  .grid > article.card.span4 > .btns {
    margin-top: 22px !important;
  }
}

/*
  Problème constaté :
  .card + .card ajoute une marge verticale entre cartes.
  Dans une grille, cette marge décale les cartes suivantes vers le bas.
  Correction : aucune marge top entre cartes enfants directes d'une .grid.
*/

.grid > .card,
.grid > article.card {
  margin-top: 0 !important;
  align-self: stretch !important;
}

/* Sécurité ciblée : neutralise explicitement les cartes adjacentes dans une grille */
.grid > .card + .card,
.grid > article.card + article.card {
  margin-top: 0 !important;
}

@media (min-width: 820px) {
  /* Rangée haute : 3 tuiles régulières */
  article.card.span6 .tags {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  /* Rangée basse : 2 tuiles régulières */
  article.card.span4 .tags {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  /* Tuile : taille pilotée par la colonne, pas par un width fixe */
  article.card.span4 .tags span,
  article.card.span6 .tags span {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 132px !important;
    max-height: none !important;
    box-sizing: border-box !important;

    display: grid !important;
    grid-template-rows: auto 1fr !important;
    align-items: start !important;
    justify-items: center !important;
    text-align: center !important;

    padding: 11px !important;
    line-height: 1.12 !important;
    overflow: hidden !important;
  }

  /* Texte de tuile : compact mais pas écrasé */
  article.card.span4 .tags span,
  article.card.span6 .tags span {
    font-size: clamp(10px, .72vw, 12px) !important;
    font-weight: 900 !important;
  }

  /*
    Carré interne homothétique :
    largeur = proportion de la tuile
    plafond = évite un carré trop gros
  */
  article.card.span4 .tags span::after,
  article.card.span6 .tags span::after {
    width: min(74%, 92px) !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    flex: none !important;
    justify-self: center !important;
    align-self: end !important;
    margin-top: 8px !important;
  }
}

@media (max-width: 819px) {
  article.card.span4 .tags,
  article.card.span6 .tags {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/*
  Correction de P48 :
  - suppression du faux header .nopnj-global-*
  - reprise du header canon de l'accueil : header > .shell.nav > .brand + .nav-links
  - alignement visuel homogène sur tout le site
  - CONTACT pointe vers /contact/
*/

body {
  padding-top: 58px !important;
}

header.nopnj-site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 5000 !important;
  min-height: 58px !important;
  background: rgba(0,0,0,.94) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

header.nopnj-site-header .shell {
  width: min(1100px, calc(100% - 32px)) !important;
  margin: 0 auto !important;
}

header.nopnj-site-header .nav {
  min-height: 58px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 22px !important;
}

header.nopnj-site-header .brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: #f2f2f2 !important;
  text-decoration: none !important;
  font-weight: 950 !important;
  letter-spacing: .02em !important;
  white-space: nowrap !important;
}

header.nopnj-site-header .brand-mark {
  width: 13px !important;
  height: 13px !important;
  border-radius: 999px !important;
  border: 2px solid #FFD600 !important;
  box-shadow: 0 0 16px rgba(255,214,0,.22) !important;
  flex: 0 0 auto !important;
}

header.nopnj-site-header .nav-links {
  display: flex !important;
  align-items: center !important;
  gap: clamp(18px, 2.6vw, 34px) !important;
}

header.nopnj-site-header .nav-links a {
  color: rgba(242,242,242,.70) !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  letter-spacing: .11em !important;
  transition: color .18s ease, opacity .18s ease !important;
}

header.nopnj-site-header .nav-links a:hover,
header.nopnj-site-header .nav-links a:focus-visible {
  color: #FFD600 !important;
  outline: none !important;
}

/* Sécurité : l'ancienne nav locale doit rester supprimée */
main > nav {
  display: none !important;
}

@media (max-width: 760px) {
  body {
    padding-top: 56px !important;
  }

  header.nopnj-site-header {
    min-height: 56px !important;
  }

  header.nopnj-site-header .shell {
    width: calc(100% - 24px) !important;
  }

  header.nopnj-site-header .nav {
    min-height: 56px !important;
    gap: 14px !important;
  }

  header.nopnj-site-header .brand {
    font-size: 13px !important;
  }

  header.nopnj-site-header .brand-mark {
    width: 11px !important;
    height: 11px !important;
  }

  header.nopnj-site-header .nav-links {
    gap: 14px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  header.nopnj-site-header .nav-links::-webkit-scrollbar {
    display: none !important;
  }

  header.nopnj-site-header .nav-links a {
    font-size: 10px !important;
    letter-spacing: .08em !important;
    white-space: nowrap !important;
  }
}

header.nopnj-site-header {
  height: 58px !important;
  min-height: 58px !important;
  max-height: 58px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: normal !important;
}

header.nopnj-site-header .shell.nav {
  height: 58px !important;
  min-height: 58px !important;
  max-height: 58px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 !important;
  margin: 0 auto !important;
  line-height: normal !important;
}

header.nopnj-site-header .brand,
header.nopnj-site-header .nav-links,
header.nopnj-site-header .nav-links a {
  height: 58px !important;
  min-height: 58px !important;
  display: inline-flex !important;
  align-items: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1 !important;
}

header.nopnj-site-header .brand {
  font-size: 16px !important;
}

header.nopnj-site-header .nav-links a {
  font-size: 12px !important;
}

/* évite que le contenu commence sous le header */
body {
  padding-top: 58px !important;
}

@media (max-width: 760px) {
  header.nopnj-site-header,
  header.nopnj-site-header .shell.nav,
  header.nopnj-site-header .brand,
  header.nopnj-site-header .nav-links,
  header.nopnj-site-header .nav-links a {
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
  }

  body {
    padding-top: 56px !important;
  }

  header.nopnj-site-header .brand {
    font-size: 13px !important;
  }

  header.nopnj-site-header .nav-links a {
    font-size: 10px !important;
  }
}

/*
  Correction :
  - certaines pages internes ont un CSS local nav a en boutons/pills
  - ce CSS contamine le header canon
  - on verrouille le header NO PNJ pour qu'il reste identique à l'accueil
*/

header.nopnj-site-header .nav-links a,
header.nopnj-site-header nav.nav-links a {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;

  padding: 0 !important;
  margin: 0 !important;

  color: rgba(242,242,242,.70) !important;
  text-decoration: none !important;
  text-transform: uppercase !important;

  font-size: 12px !important;
  font-weight: 950 !important;
  letter-spacing: .11em !important;
  line-height: 1 !important;

  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;

  display: inline-flex !important;
  align-items: center !important;
}

header.nopnj-site-header .nav-links a:hover,
header.nopnj-site-header .nav-links a:focus-visible,
header.nopnj-site-header nav.nav-links a:hover,
header.nopnj-site-header nav.nav-links a:focus-visible {
  color: #FFD600 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  outline: none !important;
}

header.nopnj-site-header .brand {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Sécurité : la nav canon ne doit jamais prendre l'apparence pill */
header.nopnj-site-header .nav-links {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}

.section-card,
.step-card,
.process-card,
.info-card,
.contact-card,
.exchange-card,
.order-card,
.timeline-card {
  position: relative !important;
  overflow: hidden !important;
}

.section-num,
.step-num,
.process-num,
.card-num,
.info-num,
.exchange-num,
.order-num,
.timeline-num {
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  margin: 0 !important;
  display: block !important;
  font-size: clamp(52px, 6vw, 76px) !important;
  line-height: 0.82 !important;
  letter-spacing: -0.05em !important;
  white-space: nowrap !important;
  pointer-events: none !important;
  opacity: 0.16 !important;
  z-index: 0 !important;
}

.section-card > :not(.section-num),
.step-card > :not(.step-num),
.process-card > :not(.process-num),
.info-card > :not(.info-num),
.contact-card > :not(.card-num),
.exchange-card > :not(.exchange-num),
.order-card > :not(.order-num),
.timeline-card > :not(.timeline-num) {
  position: relative !important;
  z-index: 1 !important;
}

.section-num + *,
.step-num + *,
.process-num + *,
.card-num + *,
.info-num + *,
.exchange-num + *,
.order-num + *,
.timeline-num + * {
  margin-top: 44px !important;
}

@media (max-width: 768px) {
  .section-num,
  .step-num,
  .process-num,
  .card-num,
  .info-num,
  .exchange-num,
  .order-num,
  .timeline-num {
    top: 12px !important;
    left: 12px !important;
    font-size: clamp(44px, 12vw, 62px) !important;
  }

  .section-num + *,
  .step-num + *,
  .process-num + *,
  .card-num + *,
  .info-num + *,
  .exchange-num + *,
  .order-num + *,
  .timeline-num + * {
    margin-top: 38px !important;
  }
}

body > .prelaunch-notice{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:4px !important;
  text-align:center !important;
  min-height:46px !important;
  padding:10px 22px !important;
  line-height:1.35 !important;
}

body > .prelaunch-notice strong,
body > .prelaunch-notice .nopnj-prelaunch-copy{
  display:inline-block !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.35 !important;
  vertical-align:middle !important;
}

body > .prelaunch-notice strong{
  color:var(--yellow) !important;
  white-space:nowrap !important;
}

body > .prelaunch-notice .nopnj-prelaunch-copy{
  color:var(--text) !important;
  text-wrap:balance !important;
}

@media (max-width:760px){
  body > .prelaunch-notice{
    gap:3px !important;
    padding:12px 16px !important;
    line-height:1.45 !important;
  }

  body > .prelaunch-notice strong,
  body > .prelaunch-notice .nopnj-prelaunch-copy{
    line-height:1.45 !important;
  }
}

@media (max-width: 760px){
  header.nopnj-site-header{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    overflow:hidden !important;
  }

  header.nopnj-site-header .shell.nav{
    width:calc(100% - 24px) !important;
    max-width:calc(100% - 24px) !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    margin:0 auto !important;
    padding:0 !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:nowrap !important;
    gap:10px !important;
    overflow:hidden !important;
  }

  header.nopnj-site-header .brand{
    flex:0 0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:8px !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    white-space:nowrap !important;
    font-size:13px !important;
    line-height:1 !important;
  }

  header.nopnj-site-header .brand-mark{
    width:11px !important;
    height:11px !important;
    flex:0 0 auto !important;
  }

  header.nopnj-site-header .nav-links{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:auto !important;
    max-width:100% !important;

    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    gap:14px !important;

    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
  }

  header.nopnj-site-header .nav-links::-webkit-scrollbar{
    display:none !important;
  }

  header.nopnj-site-header .nav-links a{
    flex:0 0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:transparent !important;
    border-radius:0 !important;

    white-space:nowrap !important;
    font-size:11.5px !important;
    line-height:1 !important;
  }
}

/* === P318 mobile viewport activation === */
@media (max-width: 900px){

  .viewport-awake{
    animation:nopnjViewportWake .9s cubic-bezier(.2,.8,.2,1);
    will-change:transform,box-shadow,filter;
  }

  @keyframes nopnjViewportWake{

    0%{
      transform:translateY(8px) scale(.985);
      filter:brightness(.96);
      box-shadow:0 0 0 rgba(255,214,0,0);
    }

    40%{
      transform:translateY(-2px) scale(1.01);
      filter:brightness(1.03);
      box-shadow:0 0 24px rgba(255,214,0,.15);
    }

    100%{
      transform:none;
      filter:none;
      box-shadow:none;
    }
  }
}


/* GLOBAL SQUARE KILL SWITCH - PIECES */

/* 1. product system */
.product-card::after,
.product-lines li::after {
  display: none !important;
  content: none !important;
}

/* 2. tags system */
article.card.span4 .tags span::after,
article.card.span6 .tags span::after {
  display: none !important;
  content: none !important;
}

/* 3. legacy card system */
.card::after {
  display: none !important;
  content: none !important;
}


/* FINAL SQUARE CLEAN - PIECES ONLY */

.product-lines li::after,
article.card.span4 .tags span::after,
article.card.span6 .tags span::after,
.card::after,
.product-card::after {
  display: none !important;
  content: none !important;
}


/* REMOVE SMALL TAG TEXT IN PIECES CARDS */
.nopnj-rich-egg-card .tag,
.nopnj-rich-egg-card span.tag {
  display: none !important;
}


/* FINAL TAG TEXT REMOVAL - PIECES ONLY */
article.card .tags span {
  display: none !important;
}




/* ONLY HIDE TEXT INSIDE TAGS - KEEP SQUARES */
.tags span.tag {
  color: transparent !important;
  font-size: 0 !important;
}


/* =========================
   NO PNJ HOVER CLEAN PREMIUM
   ========================= */

.card {
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
  will-change: transform;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(0,0,0,0.45);
  border-color: rgba(255, 214, 0, 0.18);
}

.card img {
  transition: transform 0.35s ease;
  transform: scale(1);
}

.card:hover img {
  transform: scale(1.06);
}

.card:hover::after {
  opacity: 1;
  box-shadow: 0 0 0 1px rgba(255, 214, 0, 0.12);
}

@media (max-width: 768px) {
  .card:hover {
    transform: none;
    box-shadow: none;
  }

  .card:hover img {
    transform: none;
  }
}


/* =========================
   NO PNJ INNER TAG IMAGE ZOOM
   ========================= */

.tags {
  overflow: hidden;
  border-radius: 12px;
}

/* PETITS CARRÉS = CONTENEUR IMAGE */
.tags img,
.tags .tag-image,
.tags .image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
  transform: scale(1);
}

/* ZOOM UNIQUEMENT SUR LES PETITS CARRÉS */
.tags:hover img,
.tags:hover .tag-image,
.tags:hover .image {
  transform: scale(1.15);
}

/* IMPORTANT : ne pas bouger la card */
.card:hover {
  transform: none !important;
  box-shadow: 0 14px 40px rgba(0,0,0,0.45);
}


/* =========================
   TAG TILE SYSTEM (ASSET READY)
   ========================= */

.tags {
  display: flex;
  gap: 12px;
}

/* TILE ROOT */
.tags .tag {
  width: 160px;
  height: 148px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;

  cursor: pointer;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  transform: scale(1);
  z-index: 1;
}

/* HOVER FOCUS TILE */
.tags .tag:hover {
  transform: scale(1.45);
  z-index: 20;
  box-shadow: 0 25px 60px rgba(0,0,0,0.55);
}

/* IMAGE SUPPORT FUTUR */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  transform: scale(1);
}

.tags .tag:hover img {
  transform: scale(1.12);
}

/* BACKGROUND SUPPORT */
.tags .tag {
  background-size: cover;
  background-position: center;
}


/* =========================
   NO PNJ GALLERY FOCUS MODE
   ========================= */

.tags {
  display: grid;
  grid-template-columns: repeat(2, 160px);
  gap: 16px;
  position: relative;
}

/* base tile */
.tags .tag {
  width: 160px;
  height: 148px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;

  transition: transform 0.35s ease, z-index 0.2s ease;
  transform: scale(1);
  z-index: 1;
}

/* focus behavior */
.tags .tag:hover {
  transform: scale(2.2);
  z-index: 50;

  position: relative;
  box-shadow: 0 30px 80px rgba(0,0,0,0.65);
}

/* image support future */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.tags .tag:hover img {
  transform: scale(1.1);
}


/* =========================
   NO PNJ SPOTLIGHT MODE
   ========================= */

.tags {
  display: flex;
  gap: 16px;
  position: relative;
}

/* base tiles */
.tags .tag {
  width: 160px;
  height: 148px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  z-index: 1;
}

/* NON HOVER = légère réduction visuelle */
.tags:hover .tag {
  transform: scale(0.92);
  opacity: 0.7;
}

/* HOVER = spotlight */
.tags .tag:hover {
  transform: scale(2.4);
  opacity: 1;
  z-index: 99;

  position: relative;
  box-shadow: 0 35px 90px rgba(0,0,0,0.75);
}

/* image support futur */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.tags .tag:hover img {
  transform: scale(1.08);
}


/* =========================
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}

body > header .shell{
  width:min(var(--max, 1320px), calc(100% - 36px)) !important;
  max-width:min(var(--max, 1320px), calc(100% - 36px)) !important;
  margin:0 auto !important;
  padding:0 !important;
}

body > header .shell.nav{
  min-height:76px !important;
  height:auto !important;
  max-height:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  gap:22px !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
}

body > header .brand{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  flex:0 0 auto !important;
  color:var(--text, #f2f2f2) !important;
  text-decoration:none !important;
  font-size:22px !important;
  font-weight:950 !important;
  letter-spacing:-.06em !important;
  line-height:1 !important;
  text-transform:none !important;
  white-space:nowrap !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}

body > header .brand-mark{
  display:inline-block !important;
  flex:0 0 auto !important;
  width:18px !important;
  height:18px !important;
  border:2px solid var(--yellow, #FFD600) !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:inset 0 0 0 5px var(--black, #050505) !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}

body > header .nav-links{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
}

body > header .nav-links a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:var(--muted, rgba(242,242,242,.62)) !important;
  text-decoration:none !important;
  font-size:13px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.08em !important;
  line-height:1 !important;
  white-space:nowrap !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:10px 12px !important;
  border:1px solid transparent !important;
  border-radius:0 !important;
  background:transparent !important;
  opacity:1 !important;
}

body > header .nav-links a:hover,
body > header .nav-links a:focus-visible{
  color:var(--text, #f2f2f2) !important;
  border-color:var(--line, rgba(255,255,255,.14)) !important;
  background:rgba(255,255,255,.035) !important;
  outline:none !important;
}

@media(max-width:760px){
  body > header{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    overflow:hidden !important;
  }

  body > header .shell.nav{
    width:calc(100% - 24px) !important;
    max-width:calc(100% - 24px) !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    flex-wrap:nowrap !important;
    gap:10px !important;
    overflow:hidden !important;
  }

  body > header .brand{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    gap:8px !important;
    font-size:13px !important;
  }

  body > header .brand-mark{
    width:11px !important;
    height:11px !important;
  }

  body > header .nav-links{
    flex:1 1 auto !important;
    min-width:0 !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    gap:14px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
  }

  body > header .nav-links::-webkit-scrollbar{
    display:none !important;
  }

  body > header .nav-links a{
    flex:0 0 auto !important;
    font-size:11.5px !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
  }
}


/* =========================
   NO PNJ CENTER SPOTLIGHT
   ========================= */

/* base */
.tags {
  display: flex;
  gap: 12px;
  position: relative;
}

/* tiles */
.tags .tag {
  width: 110px;
  height: 110px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  cursor: pointer;

  transition: transform 0.25s ease, box-shadow 0.25s ease;
  z-index: 1;
}

/* hover trigger */
.tags .tag:hover {
  transform: scale(0); /* on cache la tile originale */
}

/* SPOTLIGHT GLOBAL */
.tags .tag:hover::after {
  content: "";
}

/* CENTER OVERLAY */
body:has(.tags .tag:hover)::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  z-index: 999;
}

/* ACTUAL CENTER IMAGE */
.tags .tag:hover {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 420px;
  height: 420px;

  transform: translate(-50%, -50%) scale(1);
  z-index: 1000;

  box-shadow: 0 40px 120px rgba(0,0,0,0.8);
}

/* image support */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* =========================
   NO PNJ SAFE SPOTLIGHT
   ========================= */

.tags {
  display: flex;
  gap: 12px;
  position: relative;
}

/* tiles */
.tags .tag {
  width: 110px;
  height: 110px;
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;

  position: relative;
  z-index: 1;

  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* hover enlarge (SAFE) */
.tags .tag:hover {
  transform: scale(2.2);
  z-index: 999;
  box-shadow: 0 30px 90px rgba(0,0,0,0.75);

  position: relative;
}

/* image support */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* =========================
   NO PNJ REAL GLOBAL SPOTLIGHT
   ========================= */

/* IMPORTANT: casse stacking context */
.card {
  transform: none !important;
  overflow: visible !important;
}

/* base tiles */
.tags {
  display: flex;
  gap: 12px;
  position: relative;
  z-index: 1;
}

/* tile */
.tags .tag {
  width: 110px;
  height: 110px;
  border-radius: 14px;
  overflow: visible;
  position: relative;

  cursor: pointer;
  transition: transform 0.2s ease, z-index 0.2s ease;
}

/* REAL SPOTLIGHT */
.tags .tag:hover {
  position: fixed;
  top: 50%;
  left: 50%;

  width: 420px;
  height: 420px;

  transform: translate(-50%, -50%) scale(1);

  z-index: 99999 !important;

  box-shadow: 0 40px 120px rgba(0,0,0,0.85);
}

/* image */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* =========================
   NO PNJ STACKING BREAK FIX
   ========================= */

/* 1. CASSE LES STACKING CONTEXT PARENTS */
.card,
article.card,
.tags {
  transform: none !important;
  filter: none !important;
  perspective: none !important;
  isolation: auto !important;
}

/* 2. BASE */
.tags {
  display: flex;
  gap: 12px;
  position: relative;
  z-index: 1;
}

/* 3. TILE */
.tags .tag {
  width: 110px;
  height: 110px;
  border-radius: 14px;

  position: relative;
  z-index: 1;

  transition: transform 0.2s ease;
}

/* 4. TRUE GLOBAL FIX */
body {
  overflow-x: hidden;
}

/* 5. PORTAL-LIKE OVERLAY */
.tags .tag:hover {
  position: fixed !important;
  top: 50%;
  left: 50%;

  transform: translate(-50%, -50%) scale(1);

  width: 420px;
  height: 420px;

  z-index: 2147483647 !important;

  box-shadow: 0 40px 120px rgba(0,0,0,0.9);
}

/* 6. IMAGE */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* =========================
   NO PNJ STACKING CLEAN RESET
   ========================= */

/* 1. CASSE LES BLOQUAGES MAJEURS */
.card,
main,
section,
.tags {
  overflow: visible !important;
  transform: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* 2. BASE */
.tags {
  display: flex;
  gap: 12px;
  position: relative;
}

/* 3. TILE */
.tags .tag {
  width: 110px;
  height: 110px;
  border-radius: 14px;

  position: relative;
  z-index: 1;

  transition: transform 0.25s ease;
}

/* 4. TRUE GLOBAL SPOTLIGHT */
.tags .tag:hover {
  position: fixed !important;
  top: 50%;
  left: 50%;

  width: 420px;
  height: 420px;

  transform: translate(-50%, -50%) scale(1);

  z-index: 2147483647 !important;

  box-shadow: 0 40px 120px rgba(0,0,0,0.85);
}

/* 5. IMAGE */
.tags .tag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* source: /assets/pieces-inline-02.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 02 from prod pieces/index.html === */
body > header{
  top:0 !important;
  margin:0 !important;
  padding:0 !important;
  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  overflow:hidden !important;
}

body > header .shell{
  width:min(var(--max, 1320px), calc(100% - 36px)) !important;
  max-width:min(var(--max, 1320px), calc(100% - 36px)) !important;
  margin:0 auto !important;
  padding:0 !important;
}

body > header .shell.nav{
  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  margin:0 auto !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  gap:22px !important;
  overflow:hidden !important;
}

body > header .brand{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

body > header .brand-mark{
  width:18px !important;
  height:18px !important;
  margin:0 !important;
  padding:0 !important;
}

body > header .nav-links{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}

body > header .nav-links a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:10px 12px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

@media(max-width:760px){
  body > header{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
  }

  body > header .shell.nav{
    width:calc(100% - 24px) !important;
    max-width:calc(100% - 24px) !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    gap:10px !important;
  }

  body > header .brand{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    gap:8px !important;
  }

  body > header .brand-mark{
    width:11px !important;
    height:11px !important;
  }

  body > header .nav-links{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    gap:14px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    justify-content:flex-start !important;
    scrollbar-width:none !important;
  }

  body > header .nav-links::-webkit-scrollbar{
    display:none !important;
  }

  body > header .nav-links a{
    padding:0 !important;
  }
}

/* source: /assets/pieces-inline-03.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 03 from prod pieces/index.html === */
/* P324 — Sur mobile, la carte centrée reçoit le même état visuel qu'un hover/clic */
@media (hover: none), (pointer: coarse) {
  .nopnj-rich-egg-card.is-mobile-active,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg {
    pointer-events: auto;
  }

  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg *,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg::before,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg::after,
  .nopnj-rich-egg-card.is-mobile-active i,
  .nopnj-rich-egg-card.is-mobile-active b,
  .nopnj-rich-egg-card.is-mobile-active span {
    animation-play-state: running !important;
  }

  /* Déclenche explicitement les éléments souvent bloqués tant qu'il n'y a pas de clic/hover */
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg::before,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg::after,
  .nopnj-rich-egg-card.is-mobile-active i,
  .nopnj-rich-egg-card.is-mobile-active b {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg {
    transform: translateY(-2px) scale(1.015) !important;
    box-shadow:
      0 0 0 1px rgba(255,214,0,.55),
      0 14px 32px rgba(255,214,0,.14) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg *,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg::before,
  .nopnj-rich-egg-card.is-mobile-active .nopnj-rich-egg::after {
    animation: none !important;
    transition: none !important;
  }
}

/* source: /assets/pieces-inline-04.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 04 from prod pieces/index.html === */
/* /pieces/ — suppression des petits carrés jaunes */
main .nopnj-rich-egg,
main .nopnj-rich-egg::before,
main .nopnj-rich-egg::after,
main .nopnj-rich-egg > i,
main .nopnj-rich-egg > b {
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  animation:none !important;
}

/* source: /assets/pieces-inline-05.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 05 from prod pieces/index.html === */
body main .nopnj-payment-status{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  margin:0 0 12px !important;
  padding:7px 10px !important;
  border-radius:999px !important;
  font-size:13px !important;
  font-weight:650 !important;
  letter-spacing:.01em !important;
}

body main .nopnj-payment-status::before{
  content:"" !important;
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
}

body main .nopnj-payment-status-off{
  color:#ff8f8f !important;
  background:rgba(120,120,120,.10) !important;
  border:1px solid rgba(255,120,120,.34) !important;
}

body main .nopnj-payment-status-off::before{
  background:#d94141 !important;
  box-shadow:0 0 10px rgba(217,65,65,.45) !important;
}

body main .nopnj-payment-status-on{
  color:#8fe388 !important;
  background:rgba(143,227,136,.10) !important;
  border:1px solid rgba(143,227,136,.38) !important;
}
body main .nopnj-payment-status-on::before{
  background:#8fe388 !important;
}

/* source: /assets/pieces-inline-06.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 06 from prod pieces/index.html === */
body main article.nopnj-p145-interest-card{
  position:relative !important;
  overflow:hidden !important;
}

body main article.nopnj-p145-interest-card .nopnj-interest-slot{
  position:absolute !important;
  top:22px !important;
  right:22px !important;
  width:54px !important;
  height:54px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
  z-index:0 !important;
}

body main article.nopnj-p145-interest-card .nopnj-interest-icon{
  width:28px !important;
  height:28px !important;
  object-fit:contain !important;
  opacity:0 !important;
  transform:scale(.88) !important;
  filter:
    brightness(0)
    saturate(100%)
    invert(84%)
    sepia(99%)
    saturate(1107%)
    hue-rotate(359deg)
    brightness(104%)
    contrast(103%)
    drop-shadow(0 0 8px rgba(255,214,0,.42)) !important;

  transition:
    opacity .22s ease,
    transform .22s ease !important;
}

body main article.nopnj-p145-interest-card:hover .nopnj-interest-icon,
body main article.nopnj-p145-interest-card:focus-within .nopnj-interest-icon,
body main article.nopnj-p145-interest-card.viewport-active .nopnj-interest-icon{
  opacity:1 !important;
  animation:nopnjP147HeartPathBeat 1.12s ease-in-out infinite !important;
}

@keyframes nopnjP147HeartPathBeat{
  0%,100%{transform:scale(1)}
  28%{transform:scale(1.12)}
  52%{transform:scale(.97)}
  76%{transform:scale(1.06)}
}

@media(max-width:760px){
  body main article.nopnj-p145-interest-card .nopnj-interest-slot{
    top:18px !important;
    right:18px !important;
    width:48px !important;
    height:48px !important;
  }

  body main article.nopnj-p145-interest-card .nopnj-interest-icon{
    width:24px !important;
    height:24px !important;
  }
}

/* source: /assets/pieces-inline-07.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 07 from prod pieces/index.html === */
/* Coeur Intérêt /pieces : taille Signal + desktop hover + mobile viewport */
body main article.nopnj-p145-interest-card .nopnj-interest-slot{
  position:absolute !important;
  top:18px !important;
  right:18px !important;
  width:32px !important;
  height:32px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
  z-index:2 !important;
}

body main article.nopnj-p145-interest-card .nopnj-interest-icon{
  width:27px !important;
  height:25px !important;
  object-fit:contain !important;
  opacity:0 !important;
  transform:scale(.88) !important;
  animation:none !important;
  transition:opacity .22s ease, transform .22s ease !important;
}

/* PC */
@media (hover:hover) and (pointer:fine){
  body main article.nopnj-p145-interest-card:hover .nopnj-interest-icon,
  body main article.nopnj-p145-interest-card:focus-within .nopnj-interest-icon{
    opacity:1 !important;
    animation:nopnjP147HeartPathBeat 1.12s ease-in-out infinite !important;
  }
}

/* Mobile : uniquement quand JS ajoute viewport-active */
@media (hover:none), (pointer:coarse){
  body main article.nopnj-p145-interest-card.viewport-active .nopnj-interest-icon{
    opacity:1 !important;
    animation:nopnjP147HeartPathBeat 1.12s ease-in-out infinite !important;
  }
}

/* source: /assets/pieces-inline-08.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 08 from prod pieces/index.html === */
body main article.nopnj-pieces-reply-card{
  position:relative !important;
  overflow:hidden !important;
}

body main article.nopnj-pieces-reply-card .nopnj-reply-slot{
  position:absolute !important;
  top:18px !important;
  right:18px !important;
  width:64px !important;
  height:64px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
  z-index:2 !important;
}

body main article.nopnj-pieces-reply-card .nopnj-reply-icon{
  width:54px !important;
  height:50px !important;
  object-fit:contain !important;
  opacity:0 !important;
  transform:scale(.88) !important;
  animation:none !important;
  transition:opacity .22s ease, transform .22s ease !important;
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 0 8px rgba(255,255,255,.42)) !important;
}

@media (hover:hover) and (pointer:fine){
  body main article.nopnj-pieces-reply-card:hover .nopnj-reply-icon,
  body main article.nopnj-pieces-reply-card:focus-within .nopnj-reply-icon{
    opacity:1 !important;
    animation:nopnjPiecesReplyPulse 1.12s ease-in-out infinite !important;
  }
}

@media (hover:none), (pointer:coarse){
  body main article.nopnj-pieces-reply-card.viewport-active .nopnj-reply-icon{
    opacity:1 !important;
    animation:nopnjPiecesReplyPulse 1.12s ease-in-out infinite !important;
  }
}

@keyframes nopnjPiecesReplyPulse{
  0%,100%{transform:scale(1)}
  28%{transform:scale(1.10)}
  52%{transform:scale(.97)}
  76%{transform:scale(1.05)}
}

/* source: /assets/pieces-inline-09.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 09 from prod pieces/index.html === */
body main article.nopnj-pieces-payment-card{
  position:relative !important;
  overflow:hidden !important;
}

body main article.nopnj-pieces-payment-card .nopnj-payment-slot{
  position:absolute !important;
  top:4px !important;
  right:4px !important;
  width:64px !important;
  height:64px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
  z-index:2 !important;
}

body main article.nopnj-pieces-payment-card .nopnj-payment-icon{
  width:54px !important;
  height:50px !important;
  object-fit:contain !important;
  opacity:0 !important;
  transform:scale(.88) !important;
  animation:none !important;
  transition:opacity .22s ease, transform .22s ease !important;
  filter:
    brightness(0)
    saturate(100%)
    invert(84%)
    sepia(99%)
    saturate(1107%)
    hue-rotate(359deg)
    brightness(104%)
    contrast(103%)
    drop-shadow(0 0 8px rgba(255,214,0,.42)) !important;
}

@media (hover:hover) and (pointer:fine){
  body main article.nopnj-pieces-payment-card:hover .nopnj-payment-icon,
  body main article.nopnj-pieces-payment-card:focus-within .nopnj-payment-icon{
    opacity:1 !important;
    animation:nopnjPiecesPaymentPulse 1.12s ease-in-out infinite !important;
  }
}

@media (hover:none), (pointer:coarse){
  body main article.nopnj-pieces-payment-card.viewport-active .nopnj-payment-icon{
    opacity:1 !important;
    animation:nopnjPiecesPaymentPulse 1.12s ease-in-out infinite !important;
  }
}

@keyframes nopnjPiecesPaymentPulse{
  0%,100%{transform:scale(1)}
  28%{transform:scale(1.10)}
  52%{transform:scale(.97)}
  76%{transform:scale(1.05)}
}

@media(max-width:760px){
  body main article.nopnj-pieces-payment-card .nopnj-payment-slot{
    top:3px !important;
    right:3px !important;
  }
}

/* source: /assets/pieces-inline-10.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 10 from prod pieces/index.html === */
body main .nopnj-pieces-delivery-card,
body main .nopnj-pieces-data-card{
  position:relative !important;
  overflow:hidden !important;
}

/* Même placement modèle que Intérêt / Réponse / Paiement */
body main .nopnj-pieces-delivery-card .nopnj-delivery-slot,
body main .nopnj-pieces-data-card .nopnj-data-slot{
  position:absolute !important;
  top:4px !important;
  right:4px !important;
  width:64px !important;
  height:64px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
  z-index:2 !important;
}

body main .nopnj-pieces-delivery-card .nopnj-delivery-icon,
body main .nopnj-pieces-data-card .nopnj-data-icon{
  width:54px !important;
  height:50px !important;
  object-fit:contain !important;
  opacity:0 !important;
  transform:scale(.88) !important;
  animation:none !important;
  transition:opacity .22s ease, transform .22s ease !important;
  filter:
    brightness(0)
    saturate(100%)
    invert(84%)
    sepia(99%)
    saturate(1107%)
    hue-rotate(359deg)
    brightness(104%)
    contrast(103%)
    drop-shadow(0 0 8px rgba(255,214,0,.42)) !important;
}

/* PC : hover/focus */
@media (hover:hover) and (pointer:fine){
  body main .nopnj-pieces-delivery-card:hover .nopnj-delivery-icon,
  body main .nopnj-pieces-delivery-card:focus-within .nopnj-delivery-icon,
  body main .nopnj-pieces-data-card:hover .nopnj-data-icon,
  body main .nopnj-pieces-data-card:focus-within .nopnj-data-icon{
    opacity:1 !important;
    animation:nopnjPiecesProcessIconPulse 1.12s ease-in-out infinite !important;
  }
}

/* Mobile : viewport-active */
@media (hover:none), (pointer:coarse){
  body main .nopnj-pieces-delivery-card.viewport-active .nopnj-delivery-icon,
  body main .nopnj-pieces-data-card.viewport-active .nopnj-data-icon{
    opacity:1 !important;
    animation:nopnjPiecesProcessIconPulse 1.12s ease-in-out infinite !important;
  }
}

@keyframes nopnjPiecesProcessIconPulse{
  0%,100%{transform:scale(1)}
  28%{transform:scale(1.10)}
  52%{transform:scale(.97)}
  76%{transform:scale(1.05)}
}

@media(max-width:760px){
  body main .nopnj-pieces-delivery-card .nopnj-delivery-slot,
  body main .nopnj-pieces-data-card .nopnj-data-slot{
    top:3px !important;
    right:3px !important;
  }
}

/* source: /assets/pieces-inline-11.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 11 from prod pieces/index.html === */
body main .nopnj-nowrap{
  white-space:nowrap !important;
  display:inline-block !important;
}

/* source: /assets/pieces-inline-12.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 12 from prod pieces/index.html === */
footer{
  margin-top:56px !important;
  padding:28px 0 36px !important;
  color:rgba(242,242,242,.48) !important;
  font-size:13px !important;
  text-align:center !important;
}

footer .shell{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
}

footer .nopnj-footer-brand{
  color:rgba(242,242,242,.58) !important;
  font-weight:650 !important;
  letter-spacing:.02em !important;
}

footer .nopnj-footer-links{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:10px !important;
}

footer .nopnj-footer-links a{
  color:rgba(242,242,242,.54) !important;
  text-decoration:none !important;
  text-underline-offset:0 !important;
  font-weight:650 !important;
  transition:color .18s ease, opacity .18s ease !important;
}

footer .nopnj-footer-links a:hover,
footer .nopnj-footer-links a:focus-visible{
  color:#FFD600 !important;
  outline:none !important;
}

footer .sep{
  color:rgba(255,214,0,.34) !important;
}

/* source: /assets/nopnj-global.css?v=15b5d04d8bbb3480 */

/* =========================
   NO PNJ FOOTER FIX FINAL
   ========================= */

.nopnj-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 28px 12px;
  text-align: center;
}

/* BRAND */
.nopnj-footer-brand {
  font-size: 13px;
  color: rgba(255,255,255,0.6);
}

/* LINKS ROW */
.nopnj-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  font-size: 12px;
}

/* LINKS */
.nopnj-footer-links a {
  color: rgba(255,255,255,0.55);
  text-decoration: none;
  transition: .2s ease;
}

/* HOVER STANDARD */
.nopnj-footer-links a:hover {
  color: #ffffff;
}

/* FACEBOOK ACCENT */
.nopnj-footer-links a[href*="facebook"]:hover {
  color: #FFD600;
}

/* SEPARATION PROPRE */
.nopnj-footer-links .sep {
  color: rgba(255,255,255,0.25);
}


/* =========================
   FOOTER TOP DIVIDER FIX
   ========================= */

.nopnj-footer {
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 40px;
}


/* =========================
   FOOTER DIVIDER FINAL FIX
   ========================= */

.nopnj-footer {
  margin-top: 48px;           /* vraie respiration */
  padding-top: 22px;          /* espace sous la ligne */
  border-top: 1px solid rgba(255,255,255,0.10);
}

/* assure centrage propre du bloc */
.nopnj-footer-links {
  margin-top: 4px;
}


/* =========================
   FOOTER SEP UNIFIED SYSTEM
   ========================= */

.nopnj-footer-links .sep {
  color: rgba(255,255,255,0.25);
  margin: 0 6px;
}


/* === Announcement banner mode ===
   Default: hidden. Add .nopnj-announcement-on on <html> or <body> to reactivate for a real announcement. */
html:not(.nopnj-announcement-on) body:not(.nopnj-announcement-on) > .prelaunch-notice{
  display:none !important;
}

html.nopnj-announcement-on body > .prelaunch-notice,
body.nopnj-announcement-on > .prelaunch-notice{
  display:flex !important;
}
/* === NO PNJ header Chau Philomene typography === */
@font-face{
  font-family:"chau-philomene-one.italic";
  src:url("/assets/fonts/ChauPhilomeneOne-Italic.woff?v=15b5d04d8bbb3480") format("woff");
  font-style:italic;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"chau-philomene-one.regular";
  src:url("/assets/fonts/ChauPhilomeneOne-Regular.ttf?v=15b5d04d8bbb3480") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
body > header .brand-main{
  font-family:"chau-philomene-one.italic", Impact, "Arial Black", sans-serif!important;
  font-style:italic!important;
  font-weight:400!important;
  letter-spacing:.015em!important;
}
body > header .brand-declinaison{
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:.055em!important;
}

/* === Global French typography guard === */
main p,
main li{
  text-wrap:pretty;
  hyphens:auto;
  text-align-last:start;
}

main h1,
main h2,
main h3,
main summary,
main .lead{
  text-wrap:balance;
}

.nopnj-nowrap{
  white-space:nowrap;
}

/* source: /assets/pieces-inline-13.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 13 from prod pieces/index.html === */
html,
body{
  margin:0 !important;
  padding-top:0 !important;
}

body > header.nopnj-main-header{
  position:sticky !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  z-index:5000 !important;

  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;

  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;

  display:block !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  background:rgba(7,7,7,.72) !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;
}

body > header.nopnj-main-header .nopnj-main-header-inner{
  width:min(var(--max, 1320px), calc(100% - 36px)) !important;
  max-width:min(var(--max, 1320px), calc(100% - 36px)) !important;

  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;

  margin:0 auto !important;
  padding:0 !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex-wrap:nowrap !important;
  gap:22px !important;

  overflow:hidden !important;
}

body > header.nopnj-main-header .nopnj-main-brand{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  flex:0 0 auto !important;

  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;

  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;

  color:#f2f2f2 !important;
  text-decoration:none !important;
  font-size:22px !important;
  font-weight:950 !important;
  letter-spacing:-.06em !important;
  line-height:1 !important;
  text-transform:none !important;
  white-space:nowrap !important;
}

body > header.nopnj-main-header .nopnj-main-brand-mark{
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  flex:0 0 auto !important;

  margin:0 !important;
  padding:0 !important;

  border:2px solid #FFD600 !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:inset 0 0 0 5px #050505 !important;
}

body > header.nopnj-main-header .nopnj-main-nav{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:wrap !important;
  gap:8px !important;

  height:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  min-width:0 !important;

  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
}

body > header.nopnj-main-header .nopnj-main-nav a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  height:auto !important;
  min-height:0 !important;
  max-height:none !important;

  margin:0 !important;
  padding:10px 12px !important;
  border:1px solid transparent !important;
  border-radius:0 !important;
  background:transparent !important;

  color:rgba(242,242,242,.62) !important;
  text-decoration:none !important;
  font-size:13px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.08em !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

body > header.nopnj-main-header .nopnj-main-nav a:hover,
body > header.nopnj-main-header .nopnj-main-nav a:focus-visible{
  color:#f2f2f2 !important;
  border-color:rgba(255,255,255,.14) !important;
  background:rgba(255,255,255,.035) !important;
  outline:none !important;
}

@media(max-width:760px){
  body > header.nopnj-main-header,
  body > header.nopnj-main-header .nopnj-main-header-inner{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
  }

  body > header.nopnj-main-header .nopnj-main-header-inner{
    width:calc(100% - 24px) !important;
    max-width:calc(100% - 24px) !important;
    gap:10px !important;
  }

  body > header.nopnj-main-header .nopnj-main-brand{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    gap:8px !important;
    font-size:13px !important;
  }

  body > header.nopnj-main-header .nopnj-main-brand-mark{
    width:11px !important;
    height:11px !important;
  }

  body > header.nopnj-main-header .nopnj-main-nav{
    flex:1 1 auto !important;
    min-width:0 !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    gap:14px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
  }

  body > header.nopnj-main-header .nopnj-main-nav::-webkit-scrollbar{
    display:none !important;
  }

  body > header.nopnj-main-header .nopnj-main-nav a{
    flex:0 0 auto !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    font-size:11.5px !important;
  }
}

/* source: /assets/pieces-inline-14.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 14 from prod pieces/index.html === */
body > .prelaunch-notice{
  margin-top:18px !important;
}

@media(max-width:760px){
  body > .prelaunch-notice{
    margin-top:14px !important;
  }
}

/* source: /assets/pieces-inline-15.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 15 from prod pieces/index.html === */
@media(min-width:761px){
  body > header.nopnj-main-header{
    height:auto !important;
    min-height:76px !important;
    max-height:none !important;
    overflow:visible !important;
  }

  body > header.nopnj-main-header .nopnj-main-header-inner{
    height:auto !important;
    min-height:76px !important;
    max-height:none !important;
    overflow:visible !important;
  }

  body > header.nopnj-main-header .nopnj-main-brand,
  body > header.nopnj-main-header .nopnj-main-nav{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
}

/* source: /assets/pieces-inline-16.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 16 from prod pieces/index.html === */
@media(min-width:761px){
  body > header{
    height:auto !important;
    min-height:76px !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }

  body > header .shell,
  body > header .nopnj-main-header-inner{
    width:min(1220px, calc(100% - 36px)) !important;
    max-width:min(1220px, calc(100% - 36px)) !important;
    margin:0 auto !important;
    padding:0 !important;
  }

  body > header .shell.nav,
  body > header .nopnj-main-header-inner{
    height:auto !important;
    min-height:76px !important;
    max-height:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    gap:22px !important;
    overflow:visible !important;
  }

  body > header .brand,
  body > header .nopnj-main-brand{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    flex:0 0 auto !important;

    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    margin:0 !important;
    padding:0 !important;

    font-family:Arial, Helvetica, sans-serif !important;
    font-size:22px !important;
    font-weight:950 !important;
    letter-spacing:-.06em !important;
    line-height:normal !important;
    text-transform:none !important;
    white-space:nowrap !important;
  }

  body > header .brand-mark,
  body > header .nopnj-main-brand-mark{
    width:18px !important;
    height:18px !important;
    flex:0 0 auto !important;
    margin:0 !important;
    padding:0 !important;
  }

  body > header .nav-links,
  body > header .nopnj-main-nav{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex-wrap:wrap !important;
    gap:8px !important;

    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }

  body > header .nav-links a,
  body > header .nopnj-main-nav a{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    margin:0 !important;
    padding:10px 12px !important;

    font-family:Arial, Helvetica, sans-serif !important;
    font-size:13px !important;
    font-weight:800 !important;
    letter-spacing:.08em !important;
    line-height:normal !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
  }
}

/* source: /assets/pieces-inline-17.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 17 from prod pieces/index.html === */
main p.lead{
  width:100% !important;
  max-width:1120px !important;
  margin-top:0 !important;
  margin-bottom:28px !important;

  color:rgba(242,242,242,.74) !important;
  font-size:clamp(17px, 1.08vw, 18px) !important;
  line-height:1.52 !important;
  letter-spacing:-.012em !important;

  text-align:left !important;
  text-wrap:normal !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
}

main p.lead .nopnj-p244-lead-break{
  display:block !important;
}

@media(max-width:760px){
  main p.lead{
    max-width:100% !important;
    font-size:17px !important;
    line-height:1.55 !important;
  }
}

/* source: /assets/header-chau-font.css?v=15b5d04d8bbb3480 */
/* === NO PNJ header Chau Philomene final override === */
@font-face{
  font-family:"chau-philomene-one.italic";
  src:url("/assets/fonts/ChauPhilomeneOne-Italic.woff?v=15b5d04d8bbb3480") format("woff");
  font-style:italic;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"chau-philomene-one.regular";
  src:url("/assets/fonts/ChauPhilomeneOne-Regular.ttf?v=15b5d04d8bbb3480") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
body > header .brand-main,
body > header[data-testid="site.header"] .brand-main{
  font-family:"chau-philomene-one.italic", Impact, "Arial Black", sans-serif!important;
  font-style:italic!important;
  font-weight:400!important;
  letter-spacing:-.06em!important;
}
body > header .brand-declinaison,
body > header[data-testid="site.header"] .brand-declinaison{
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:.07em!important;
}

body .hero-copy > .kicker{
  font-family:"chau-philomene-one.italic", Impact, "Arial Black", sans-serif!important;
  font-style:italic!important;
  font-weight:400!important;
}






body .hero-copy > .kicker::before{
  display:none!important;
  content:none!important;
}


@media (hover: hover) and (pointer: fine) {
body > header .brand-declinaison{
  font-size:0!important;
  line-height:1!important;
}

body > header .brand-declinaison::after{
  content:"TOUT SAUF UN PNJ";
  display:block;
  color:rgba(242,242,242,.86);
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-size:11px!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:.18em!important;
  line-height:1!important;
  text-transform:uppercase;
  white-space:nowrap;
}
}


@media (min-width: 901px) {
body > header .brand-main,
body > header[data-testid="site.header"] .brand-main{
  font-size: 34px!important;
  line-height: 1!important;
}

body .hero-copy > .kicker{
  font-size: clamp(13px, 1.08vw, 16px)!important;
  line-height: 1.08!important;
  letter-spacing:.13em!important;
}
}

@media (hover: hover) and (pointer: fine) {
body .hero-copy > .kicker{
  opacity:.78;
  transform:translateY(-2px);
  transition:opacity .18s ease, transform .18s ease, text-shadow .18s ease;
}

body:has(> header .brand:hover) .hero-copy > .kicker,
body:has(> header .brand:focus-visible) .hero-copy > .kicker{
  opacity:1;
  transform:translateY(0);
  text-shadow:0 0 14px rgba(255,214,0,.20);
}
}


@media (hover: hover) and (pointer: fine) {
body .hero-copy > .kicker{
  opacity:0!important;
  transform:translateY(-6px)!important;
  pointer-events:none!important;
}

body.is-desktop-brand-hover .hero-copy > .kicker,
body:has(> header .brand:hover) .hero-copy > .kicker,
body:has(> header .brand:focus-visible) .hero-copy > .kicker{
  opacity:1!important;
  transform:translateY(0)!important;
}
}


@media (hover: none), (pointer: coarse) {
body .hero-copy > .kicker{
  max-width:min(88vw, 620px)!important;
  opacity:0!important;
  transform:translateY(-6px)!important;
  pointer-events:none!important;
  font-size:clamp(11px, 2.9vw, 14px)!important;
  line-height:1.12!important;
  letter-spacing:.10em!important;
  transition:opacity .18s ease, transform .18s ease, text-shadow .18s ease;
}

body.is-touch-brand-active .hero-copy > .kicker,
body:has(> header .brand.is-brand-active) .hero-copy > .kicker{
  opacity:1!important;
  transform:translateY(0)!important;
  text-shadow:0 0 14px rgba(255,214,0,.18)!important;
}

body > header .brand.is-brand-active .brand-declinaison{
  opacity:0!important;
  transform:translateY(-2px)!important;
}
}


@media (hover: none), (pointer: coarse) {
body .hero-copy > .kicker{
  width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  font-size:clamp(7px, 1.8vw, 11px)!important;
  line-height:1!important;
  letter-spacing:.045em!important;
}

body.is-touch-brand-active .hero-copy > .kicker,
body:has(> header .brand.is-brand-active) .hero-copy > .kicker{
  opacity:1!important;
  transform:translateY(0)!important;
}

body.is-touch-brand-active > header .brand-declinaison,
body > header .brand.is-brand-active .brand-declinaison{
  opacity:1!important;
  transform:translateY(0)!important;
}
}


/* NO_PNJ_HEADER_HERO_BASELINE_FINAL_START */
body .hero-copy > .kicker{
  color:var(--yellow)!important;
  white-space:nowrap!important;
}

@media (hover: hover) and (pointer: fine) {
body > header .brand-declinaison,
body > header[data-testid="site.header"] .brand-declinaison{
  font-size:0!important;
  line-height:1!important;
  color:transparent!important;
}

body > header .brand-declinaison::after,
body > header[data-testid="site.header"] .brand-declinaison::after{
  content:"TOUT SAUF UN PNJ"!important;
  display:block!important;
  color:rgba(242,242,242,.88)!important;
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-size:11px!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:.18em!important;
  line-height:1!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

body > header .brand:hover .brand-declinaison,
body > header .brand:focus-visible .brand-declinaison,
body.is-desktop-brand-hover > header .brand-declinaison{
  opacity:1!important;
  transform:translateY(0)!important;
}

body .hero-copy > .kicker{
  font-size:clamp(15px, 1.35vw, 20px)!important;
  line-height:1.05!important;
  letter-spacing:.08em!important;
  opacity:0!important;
  transform:translateY(-6px)!important;
  pointer-events:none!important;
}

body.is-desktop-brand-hover .hero-copy > .kicker,
body:has(> header .brand:hover) .hero-copy > .kicker,
body:has(> header .brand:focus-visible) .hero-copy > .kicker{
  opacity:1!important;
  transform:translateY(0)!important;
  text-shadow:0 0 16px rgba(255,214,0,.24)!important;
}
}

@media (hover: none), (pointer: coarse) {
body > header .brand-declinaison,
body > header .brand.is-brand-active .brand-declinaison,
body.is-touch-brand-active > header .brand-declinaison{
  opacity:0!important;
  transform:translateY(-2px)!important;
}

body .hero-copy > .kicker{
  width:max-content!important;
  max-width:96vw!important;
  white-space:nowrap!important;
  overflow:visible!important;
  color:var(--yellow)!important;
  font-size:clamp(8px, 2.15vw, 12px)!important;
  line-height:1!important;
  letter-spacing:.025em!important;
  opacity:0!important;
  transform:translateY(-6px)!important;
  pointer-events:none!important;
}

body.is-touch-brand-active .hero-copy > .kicker,
body:has(> header .brand.is-brand-active) .hero-copy > .kicker{
  opacity:1!important;
  transform:translateY(0)!important;
  text-shadow:0 0 14px rgba(255,214,0,.20)!important;
}
}
/* NO_PNJ_HEADER_HERO_BASELINE_FINAL_END */


/* NO_PNJ_TOUCH_HEADER_TOUT_SAUF_VISIBLE_START */
@media (hover: none), (pointer: coarse) {
body > header .brand-declinaison,
body > header[data-testid="site.header"] .brand-declinaison{
  font-size:0!important;
  line-height:1!important;
  color:transparent!important;
}

body > header .brand-declinaison::after,
body > header[data-testid="site.header"] .brand-declinaison::after{
  content:"TOUT SAUF UN PNJ"!important;
  display:block!important;
  color:rgba(242,242,242,.88)!important;
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-size:10px!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:.16em!important;
  line-height:1!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

body.is-touch-brand-active > header .brand-declinaison,
body > header .brand.is-brand-active .brand-declinaison{
  opacity:1!important;
  transform:translateY(0)!important;
}
}
/* NO_PNJ_TOUCH_HEADER_TOUT_SAUF_VISIBLE_END */


/* NO_PNJ_HERO_DECLINAISON_SIZE_UP_START */
@media (hover: hover) and (pointer: fine) {
body .hero-copy > .kicker{
  font-size:clamp(17px, 1.6vw, 24px)!important;
  letter-spacing:.065em!important;
  white-space:nowrap!important;
}
}

@media (hover: none), (pointer: coarse) {
body .hero-copy > .kicker{
  font-size:clamp(10px, 2.6vw, 14px)!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  max-width:none!important;
}
}
/* NO_PNJ_HERO_DECLINAISON_SIZE_UP_END */


/* NO_PNJ_TOUCH_HEADER_BASELINE_UNDER_LOGO_START */
@media (hover: none), (pointer: coarse) {
body > header .brand{
  position:relative!important;
  overflow:visible!important;
}

body > header .brand-label{
  position:relative!important;
  overflow:visible!important;
}

body > header .brand-declinaison,
body > header[data-testid="site.header"] .brand-declinaison{
  position:absolute!important;
  top:calc(100% + 5px)!important;
  right:auto!important;
  bottom:auto!important;
  left:0!important;
  z-index:30!important;
  width:max-content!important;
  max-width:none!important;
  text-align:left!important;
  opacity:0!important;
  transform:translateY(-3px)!important;
  pointer-events:none!important;
}

body > header .brand-declinaison::after,
body > header[data-testid="site.header"] .brand-declinaison::after{
  font-size:9px!important;
  letter-spacing:.13em!important;
  text-align:left!important;
}

body.is-touch-brand-active > header .brand-declinaison,
body > header .brand.is-brand-active .brand-declinaison{
  opacity:1!important;
  transform:translateY(0)!important;
}
}
/* NO_PNJ_TOUCH_HEADER_BASELINE_UNDER_LOGO_END */


/* NO_PNJ_MOBILE_PORTRAIT_HERO_DECLINAISON_UP_START */
@media (hover: none) and (pointer: coarse) and (orientation: portrait) {
body .hero-copy > .kicker{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-align:left!important;
  font-size:clamp(11px, 3.15vw, 15px)!important;
  letter-spacing:0!important;
  line-height:1!important;
}
}
/* NO_PNJ_MOBILE_PORTRAIT_HERO_DECLINAISON_UP_END */

/* Keep the declinaison line in Chau, without italic slant. */
body > header .brand-declinaison,
body > header[data-testid="site.header"] .brand-declinaison,
body > header .brand-declinaison::after,
body > header[data-testid="site.header"] .brand-declinaison::after{
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-style:normal!important;
  font-synthesis-style:none!important;
}

/* Keep the yellow hero declinaison text in Chau, without italic slant. */
body .hero-copy > .kicker{
  font-family:"chau-philomene-one.regular", Impact, "Arial Black", sans-serif!important;
  font-style:normal!important;
  font-synthesis-style:none!important;
}

/* source: /assets/pieces-inline-18.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 18 from prod pieces/index.html === */
body main .nopnj-pieces-process{
  margin-top:18px !important;
}

body main .nopnj-pieces-process > h2{
  margin:0 0 16px !important;
  font-size:clamp(26px,4vw,42px) !important;
  letter-spacing:-.035em !important;
}

body main .nopnj-pieces-process-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
}

body main .nopnj-pieces-logistics-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:16px !important;
  margin-top:16px !important;
}

body main .nopnj-pieces-process .card{
  min-height:100% !important;
}

body main .nopnj-pieces-process h3{
  margin-top:0 !important;
}

@media(max-width:760px){
  body main .nopnj-pieces-process-grid,
  body main .nopnj-pieces-logistics-grid{
    grid-template-columns:1fr !important;
  }
}

/* source: /assets/pieces-inline-19.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 19 from prod pieces/index.html === */
/* Harmonisation des espacements du bloc Comment ça se passe */
body main .nopnj-pieces-process{
  margin-top:22px !important;
}

body main .nopnj-pieces-process > h2{
  margin-bottom:12px !important;
}

body main .nopnj-pieces-process-grid,
body main .nopnj-pieces-logistics-grid{
  gap:14px !important;
}

body main .nopnj-pieces-process-grid{
  margin-bottom:14px !important;
}

body main .nopnj-pieces-process .card{
  padding:20px 22px !important;
}

body main .nopnj-pieces-process .card h3{
  margin:0 0 12px !important;
  line-height:1.05 !important;
}

body main .nopnj-pieces-process .card p{
  margin:0 0 10px !important;
}

body main .nopnj-pieces-process .card p:last-child{
  margin-bottom:0 !important;
}

body main .nopnj-payment-status{
  margin:0 0 14px !important;
}

/* source: /assets/pieces-inline-20.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 20 from prod pieces/index.html === */
/* Espace stable entre Paiement et Livraison */
body main .nopnj-pieces-process-grid + .nopnj-pieces-logistics-grid{
  margin-top:22px !important;
}

body main .nopnj-pieces-logistics-grid{
  row-gap:16px !important;
}

/* source: /assets/pieces-inline-21.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 21 from prod pieces/index.html === */
/* Espacement uniforme entre tous les blocs de "Comment ça se passe ?" */
body main .nopnj-pieces-process-grid,
body main .nopnj-pieces-logistics-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:16px !important;
  margin:0 !important;
}

body main .nopnj-pieces-process-grid + .nopnj-pieces-logistics-grid{
  margin-top:16px !important;
}

body main .nopnj-pieces-process .card{
  margin:0 !important;
}

/* source: /assets/pieces-inline-22.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 22 from prod pieces/index.html === */
body main article.nopnj-p145-interest-card .nopnj-interest-slot{
  width:64px !important;
  height:64px !important;
}

body main article.nopnj-p145-interest-card .nopnj-interest-icon{
  width:54px !important;
  height:50px !important;
}

/* source: /assets/pieces-inline-23.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 23 from prod pieces/index.html === */
body main article.nopnj-pieces-reply-card .nopnj-reply-icon{
  filter:
    brightness(0)
    saturate(100%)
    invert(84%)
    sepia(99%)
    saturate(1107%)
    hue-rotate(359deg)
    brightness(104%)
    contrast(103%)
    drop-shadow(0 0 8px rgba(255,214,0,.42)) !important;
}

/* source: /assets/pieces-inline-24.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 24 from prod pieces/index.html === */
/* Modèle validé : icônes process plus proches du coin haut droit */
body main article.nopnj-p145-interest-card .nopnj-interest-slot,
body main article.nopnj-pieces-reply-card .nopnj-reply-slot{
  top:10px !important;
  right:10px !important;
  width:64px !important;
  height:64px !important;
}

body main article.nopnj-p145-interest-card .nopnj-interest-icon,
body main article.nopnj-pieces-reply-card .nopnj-reply-icon{
  width:54px !important;
  height:50px !important;
}

@media(max-width:760px){
  body main article.nopnj-p145-interest-card .nopnj-interest-slot,
  body main article.nopnj-pieces-reply-card .nopnj-reply-slot{
    top:9px !important;
    right:9px !important;
    width:58px !important;
    height:58px !important;
  }

  body main article.nopnj-p145-interest-card .nopnj-interest-icon,
  body main article.nopnj-pieces-reply-card .nopnj-reply-icon{
    width:49px !important;
    height:46px !important;
  }
}

/* source: /assets/pieces-inline-25.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 25 from prod pieces/index.html === */
/* Modèle process : coeur + réponse encore plus en coin haut droit */
body main article.nopnj-p145-interest-card .nopnj-interest-slot,
body main article.nopnj-pieces-reply-card .nopnj-reply-slot{
  top:4px !important;
  right:4px !important;
}

@media(max-width:760px){
  body main article.nopnj-p145-interest-card .nopnj-interest-slot,
  body main article.nopnj-pieces-reply-card .nopnj-reply-slot{
    top:3px !important;
    right:3px !important;
  }
}

/* source: /assets/pieces-inline-26.css?v=15b5d04d8bbb3480 */
/* === extracted faithful style block 26 from prod pieces/index.html === */
body main .product-card:has(h3:nth-child(1)) p{
  text-align:justify !important;
  text-wrap:pretty !important;
  hyphens:auto !important;
  max-width:42ch !important;
}

/* source: /assets/pieces-header-bridge.css?v=15b5d04d8bbb3480 */
/* === Pieces bridge: exact home header rendering === */

:root {
  --home-header-height: 58px;
  --home-header-gap: 14px;
}

html body {
  padding-top: calc(var(--home-header-height) + var(--home-header-gap)) !important;
}

body > header {
  position: fixed;
  inset: 0 0 auto;
  width: 100%;
  z-index: 5000;
  min-height: var(--home-header-height);
  overflow: visible;
  background: rgba(5, 5, 5, .92);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

body > header > .shell.nav {
  width: min(1320px, calc(100% - 36px));
  max-width: min(1320px, calc(100% - 36px));
  min-height: 76px;
  height: auto;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  overflow: visible;
}

body > header .brand,
body > header .brand * {
  box-sizing: border-box;
  text-decoration: none !important;
}

body > header .brand {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
  position: relative;
  overflow: visible;
  min-width: 0;
  color: var(--text);
  font-weight: 950;
  letter-spacing: 0;
  font-size: 22px;
  line-height: 1;
  text-transform: none;
  white-space: nowrap;
  isolation: isolate;
}

body > header .brand-mark {
  display: none;
}

body > header .brand-label {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 0;
  max-width: min(360px, calc(100vw - 2.75rem));
  color: inherit;
}

body > header .brand-main {
  display: block;
  color: var(--text);
  font-size: inherit;
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.06em;
}

body > header .brand-declinaison {
  display: block;
  position: static;
  width: max-content;
  max-width: calc(100vw - 4rem);
  color: rgba(242,242,242,.84);
  font-size: clamp(.54rem, .72vw, .68rem);
  font-weight: 900;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity .18s ease, transform .18s ease;
}

@media (hover: hover) and (pointer: fine) {
  body > header .brand:hover .brand-declinaison,
  body > header .brand:focus-visible .brand-declinaison {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (hover: none), (pointer: coarse) {
  body > header .brand.is-brand-active .brand-declinaison {
    opacity: 1;
    transform: translateY(0);
  }
}

body > header .nav-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

body > header .nav-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  text-decoration: none;
  transition: color .18s ease;
}

body > header .nav-links a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 6px;
  height: 1px;
  background: var(--yellow);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .18s ease;
}

body > header .nav-links a:hover,
body > header .nav-links a:focus-visible,
body > header .nav-links a.is-active {
  color: var(--text);
  outline: none;
}

body > header .nav-links a:hover::after,
body > header .nav-links a:focus-visible::after,
body > header .nav-links a.is-active::after {
  transform: scaleX(1);
}

body > .prelaunch-notice {
  margin-top: 18px !important;
}

@media (max-width: 760px) {
  body > header { min-height: 56px; }

  body > header > .shell.nav {
    width: calc(100% - 24px);
    max-width: calc(100% - 24px);
    min-height: 56px;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 10px;
    overflow: hidden;
  }

  body > header .brand {
    gap: 2px;
    min-height: 56px;
    font-size: 13px;
    line-height: 1;
  }

  body > header .brand-mark {
    width: 11px;
    height: 11px;
    margin-bottom: 1px;
  }

  body > header .brand-label {
    max-width: calc(100vw - 2.75rem);
    gap: 2px;
  }

  body > header .brand-declinaison {
    max-width: calc(100vw - 2.75rem);
    font-size: .44rem;
    letter-spacing: .035em;
  }

  body > header .nav-links {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: 100%;
    height: 56px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 14px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  body > header .nav-links::-webkit-scrollbar { display: none; }

  body > header .nav-links a {
    flex: 0 0 auto;
    height: auto;
    padding: 0 0 8px;
    white-space: nowrap;
    font-size: 11.5px;
    line-height: 1;
  }

  body > header .nav-links a::after {
    left: 0;
    right: 0;
    bottom: 0;
  }

  body > .prelaunch-notice { margin-top: 14px !important; }
}

/* === Mobile header/nav contract === */
@media (max-width: 760px){
  body > header > .shell.nav{
    min-height: 58px !important;
    height: 58px !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    overflow: visible !important;
    padding: 0 !important;
  }
  body > header .brand{
    min-height: 0 !important;
    font-size: 15px !important;
    flex: 0 0 auto !important;
  }
  body > header .brand-label{
    position: static !important;
  }
  body > header .brand-declinaison{
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: 64px !important;
    z-index: 4999 !important;
    width: auto !important;
    max-width: none !important;
    color: rgba(242,242,242,.92) !important;
    text-align: center !important;
    font-size: 9.5px !important;
    line-height: 1.15 !important;
    letter-spacing: .06em !important;
    opacity: 0 !important;
    transform: translateY(-6px) !important;
    pointer-events: none !important;
  }
  body > header .brand.is-brand-active .brand-declinaison{
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
  body > header .nav-links{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    gap: 9px !important;
    overflow: visible !important;
    padding: 0 !important;
  }
  body > header .nav-links a{
    flex: 0 0 auto !important;
    font-size: 10.3px !important;
    letter-spacing: .065em !important;
    padding-bottom: 6px !important;
    white-space: nowrap !important;
  }
  body > .prelaunch-notice{
    margin-top: 20px !important;
  }
}

/* === Header height reference v2 === */
:root{
  --home-header-height:76px;
  --home-header-gap:14px;
}

body > header{
  height:77px !important;
  min-height:77px !important;
}

body > header > .shell.nav{
  height:76px !important;
  min-height:76px !important;
}

@media (max-width:760px){
  :root{
    --home-header-height:58px;
    --home-header-gap:14px;
  }

  body > header{
    height:59px !important;
    min-height:59px !important;
  }

  body > header > .shell.nav{
    height:58px !important;
    min-height:58px !important;
  }
}

/* === Header height reference v3: measured match with home === */
html body{
  padding-top:72px !important;
}

body > header{
  height:77px !important;
  min-height:77px !important;
}

body > header > .shell.nav{
  height:76px !important;
  min-height:76px !important;
}

@media (max-width:760px){
  html body{
    padding-top:72px !important;
  }

  body > header{
    height:59px !important;
    min-height:59px !important;
  }

  body > header > .shell.nav{
    height:58px !important;
    min-height:58px !important;
  }
}

/* === Header height reference v4: override legacy specific rules === */
html body{
  padding-top:72px !important;
}

html body > header[data-testid="site.header"]{
  height:77px !important;
  min-height:77px !important;
}

html body > header[data-testid="site.header"] > .shell.nav{
  height:76px !important;
  min-height:76px !important;
}

@media (max-width:760px){
  html body{
    padding-top:72px !important;
  }

  html body > header[data-testid="site.header"]{
    height:59px !important;
    min-height:59px !important;
  }

  html body > header[data-testid="site.header"] > .shell.nav{
    height:58px !important;
    min-height:58px !important;
  }
}

/* === Header height reference v5: exact home values everywhere === */
html body{
  padding-top:72px !important;
}

html body > header[data-testid="site.header"]{
  height:77px !important;
  min-height:77px !important;
}

html body > header[data-testid="site.header"] > .shell.nav{
  height:76px !important;
  min-height:76px !important;
}

@media (max-width:760px){
  html body{
    padding-top:72px !important;
  }

  html body > header[data-testid="site.header"]{
    height:59px !important;
    min-height:59px !important;
  }

  html body > header[data-testid="site.header"] > .shell.nav{
    height:58px !important;
    min-height:58px !important;
  }
}

/* === Pieces width contract: align page sections with home shell === */
body > main{
  width:min(var(--max, 1220px), calc(100% - 36px)) !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

body > main > section{
  max-width:100% !important;
  box-sizing:border-box !important;
}

@media (max-width:760px){
  body > main{
    width:calc(100% - 24px) !important;
  }
}

/* === Pieces notice width contract: align sales banner with page sections === */
body > .prelaunch-notice{
  width:min(var(--max, 1220px), calc(100% - 36px)) !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

@media (max-width:760px){
  body > .prelaunch-notice{
    width:calc(100% - 24px) !important;
  }
}

/* === Pieces section 3 title alignment === */
.nopnj-pieces-process > h2{
  text-align:center !important;
}

/* === Pieces section 3 title axis alignment === */
.nopnj-pieces-process > h2{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

/* === pieces textile/casquette asset tiles: subdued visual treatment === */
body main .tags.nopnj-piece-assets{
  align-items:center !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag{
  background:rgba(255,255,255,.035) !important;
  border:1px solid rgba(255,214,0,.20) !important;
  overflow:hidden !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  transition:opacity .22s ease, filter .22s ease, transform .35s ease !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover img,
body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible img{
  opacity:1 !important;
  filter:none !important;
}

/* === pieces asset tiles perfect square cover === */
body main .tags.nopnj-piece-assets{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:12px !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag{
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  padding:0 !important;
  line-height:0 !important;
  border-radius:14px !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag img{
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  transform:scale(1.34) !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover img,
body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible img{
  transform:scale(1.40) !important;
}

/* === pieces asset tiles square without crop === */
body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag{
  aspect-ratio:1 / 1 !important;
  display:block !important;
  background:rgba(255,255,255,.035) !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:scale(1) !important;
}

body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover img,
body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible img{
  transform:scale(1) !important;
}

/* === pieces CTA typography: softer first-read weight === */
body main .btns .btn,
body main a.btn.primary,
body main a.btn.secondary{
  font-weight:650 !important;
  letter-spacing:-.005em !important;
}

/* === shared prelaunch/banner typography: softer first-read weight === */
body > .prelaunch-notice,
body > .prelaunch-notice strong,
body > .prelaunch-notice .nopnj-prelaunch-copy,
.prelaunch-notice,
.prelaunch-notice strong,
.prelaunch-notice .nopnj-prelaunch-copy,
.pill.warn{
  font-weight:650 !important;
  letter-spacing:-.004em !important;
}

body > .prelaunch-notice strong,
.prelaunch-notice strong{
  font-weight:700 !important;
}


/* === pieces card hover glow harmonization === */
html body main > section.grid > article.card:hover,
html body main > section.grid > article.card:focus-within,
html body main .nopnj-pieces-process .card:hover,
html body main .nopnj-pieces-process .card:focus-within,
html body main .nopnj-pieces-logistics-grid .card:hover,
html body main .nopnj-pieces-logistics-grid .card:focus-within{
  border-color:rgba(255,214,0,.34) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 20px 48px rgba(0,0,0,.34),
    0 0 0 1px rgba(255,214,0,.08) !important;
}

@media (hover:none), (pointer:coarse){
  html body main > section.grid > article.card.viewport-active,
  html body main > section.grid > article.card.is-mobile-active,
  html body main .nopnj-pieces-process .card.viewport-active,
  html body main .nopnj-pieces-process .card.is-mobile-active,
  html body main .nopnj-pieces-logistics-grid .card.viewport-active,
  html body main .nopnj-pieces-logistics-grid .card.is-mobile-active{
    border-color:rgba(255,214,0,.34) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 20px 48px rgba(0,0,0,.34),
      0 0 0 1px rgba(255,214,0,.08) !important;
  }
}
/* === pieces product asset slots: perfect square contract === */
html body main > section.grid > article.card.span4 > .tags,
html body main > section.grid > article.card.span6 > .tags{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:12px !important;
  align-items:stretch !important;
}

html body main > section.grid > article.card.span4 > .tags > .tag,
html body main > section.grid > article.card.span6 > .tags > .tag{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:1 / 1 !important;
  padding:0 !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

html body main > section.grid > article.card.span4 > .tags > .tag::after,
html body main > section.grid > article.card.span6 > .tags > .tag::after{
  content:none !important;
  display:none !important;
}

html body main > section.grid > article.card.span4 > .tags > .tag > img,
html body main > section.grid > article.card.span6 > .tags > .tag > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
}

@media(max-width:760px){
  html body main > section.grid > article.card.span4 > .tags,
  html body main > section.grid > article.card.span6 > .tags{
    gap:10px !important;
  }
}
/* === pieces product lightbox === */
html.nopnj-lightbox-open,
html.nopnj-lightbox-open body{
  overflow:hidden !important;
}

html body main .nopnj-product-lightbox-trigger{
  cursor:zoom-in !important;
}

.nopnj-product-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px, 4vw, 52px);
  background:rgba(0,0,0,.84);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}

.nopnj-product-lightbox.is-open{
  opacity:1;
  pointer-events:auto;
}

.nopnj-product-lightbox-frame{
  width:min(86vw, 760px);
  max-height:86vh;
  margin:0;
  display:grid;
  gap:14px;
  place-items:center;
}

.nopnj-product-lightbox-image{
  display:block;
  width:min(86vw, 680px, 76vh);
  height:min(86vw, 680px, 76vh);
  max-width:100%;
  max-height:76vh;
  aspect-ratio:1 / 1;
  object-fit:cover;
  object-position:center;
  border:1px solid rgba(255,214,0,.42);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  box-shadow:
    0 32px 90px rgba(0,0,0,.72),
    0 0 0 1px rgba(255,214,0,.08);
}

.nopnj-product-lightbox-caption{
  color:rgba(255,255,255,.74);
  font:650 13px/1.3 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-align:center;
  display:grid;
  gap:6px;
  justify-items:center;
  max-width:min(86vw, 680px);
}

.nopnj-product-lightbox-caption-note{
  color:#FFD600;
  font-weight:800;
  text-align:center;
}

.nopnj-product-lightbox-close{
  position:fixed;
  top:18px;
  right:18px;
  width:42px;
  height:42px;
  border:1px solid rgba(255,214,0,.42);
  border-radius:999px;
  background:rgba(10,10,10,.86);
  color:#FFD600;
  font:700 28px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}

.nopnj-product-lightbox-close:hover,
.nopnj-product-lightbox-close:focus-visible{
  border-color:rgba(255,214,0,.72);
  outline:none;
  box-shadow:0 0 0 3px rgba(255,214,0,.16);
}

@media(max-width:760px){
  .nopnj-product-lightbox{
    padding:18px;
  }

  .nopnj-product-lightbox-image{
    width:min(92vw, 560px, 72vh);
    height:min(92vw, 560px, 72vh);
    max-height:72vh;
    border-radius:14px;
  }

  .nopnj-product-lightbox-close{
    top:12px;
    right:12px;
  }
}
/* === pieces asset hover neutralization for lightbox === */
html body main .tags.nopnj-piece-assets,
html body main .tags.nopnj-piece-assets:hover{
  transform:none !important;
}

html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover,
html body main .tags.nopnj-piece-assets:hover .nopnj-piece-asset-tag,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible{
  transform:none !important;
  z-index:auto !important;
  box-shadow:none !important;
  cursor:zoom-in !important;
}

html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag::before,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag::after,
body:has(.tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover)::before{
  content:none !important;
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag img,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover img,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible img{
  transform:none !important;
  transition:filter .18s ease, opacity .18s ease !important;
}

html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover img,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible img{
  filter:none !important;
}
/* === pieces asset hover shake hard stop === */
html body main .tags.nopnj-piece-assets,
html body main .tags.nopnj-piece-assets:hover,
html body main .tags.nopnj-piece-assets:focus-within{
  transform:none !important;
  animation:none !important;
  transition:none !important;
}

html body main .tags.nopnj-piece-assets *,
html body main .tags.nopnj-piece-assets:hover *,
html body main .tags.nopnj-piece-assets:focus-within *{
  animation:none !important;
}

html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible,
html body main .tags.nopnj-piece-assets:hover .nopnj-piece-asset-tag,
html body main .tags.nopnj-piece-assets:hover .nopnj-piece-asset-tag:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  rotate:0deg !important;
  animation:none !important;
  transition:border-color .18s ease, filter .18s ease !important;
  box-shadow:none !important;
  z-index:1 !important;
}

html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag img,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:hover img,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus img,
html body main .tags.nopnj-piece-assets .nopnj-piece-asset-tag:focus-visible img,
html body main .tags.nopnj-piece-assets:hover .nopnj-piece-asset-tag img,
html body main .tags.nopnj-piece-assets:hover .nopnj-piece-asset-tag:hover img{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  rotate:0deg !important;
  animation:none !important;
  transition:filter .18s ease, opacity .18s ease !important;
}
/* === pieces real asset tiles: legacy spotlight kill switch === */
html body main .tags.nopnj-piece-assets{
  overflow:visible !important;
  position:relative !important;
  isolation:isolate !important;
  transform:none !important;
  filter:none !important;
  perspective:none !important;
}

html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:hover,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:focus,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:focus-visible,
html body main .tags.nopnj-piece-assets:hover .tag.nopnj-piece-asset-tag,
html body main .tags.nopnj-piece-assets:hover .tag.nopnj-piece-asset-tag:hover{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  inset:auto !important;
  width:100% !important;
  height:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:1 / 1 !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  rotate:0deg !important;
  opacity:1 !important;
  z-index:1 !important;
  box-shadow:none !important;
  overflow:hidden !important;
}

html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag::before,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag::after,
html body:has(main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:hover)::before,
html body:has(main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:hover)::after{
  content:none !important;
  display:none !important;
  position:static !important;
  inset:auto !important;
  width:0 !important;
  height:0 !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  background:none !important;
  box-shadow:none !important;
}

html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag img,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:hover img,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:focus img,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:focus-visible img,
html body main .tags.nopnj-piece-assets:hover .tag.nopnj-piece-asset-tag img{
  position:static !important;
  inset:auto !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:none !important;
  max-height:none !important;
  transform:scale(1.34) !important;
  translate:none !important;
  scale:1 !important;
  rotate:0deg !important;
  object-fit:cover !important;
  object-position:center !important;
  z-index:auto !important;
  box-shadow:none !important;
}

html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:has(img):hover img,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:has(img):focus-visible img{
  transform:scale(1.40) !important;
}
/* === pieces lightbox close optical centering === */
.nopnj-product-lightbox-close{
  padding:0 0 3px 0 !important;
  line-height:1 !important;
  text-align:center !important;
}

.nopnj-product-lightbox-close::before{
  content:"";
  display:block;
  width:0;
  height:0;
}
/* === pieces real asset hover light boost === */
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:has(img):hover,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:has(img):focus-visible{
  border-color:rgba(255,214,0,.42) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,214,0,.16),
    0 0 18px rgba(255,214,0,.10) !important;
}

html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:has(img):hover img,
html body main .tags.nopnj-piece-assets .tag.nopnj-piece-asset-tag:has(img):focus-visible img{
  opacity:1 !important;
  filter:none !important;
}

/* === pieces product assets: fill the whole tile === */
html body main > section.grid > article.card.span4 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag > img,
html body main > section.grid > article.card.span6 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag > img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  transform:scale(1.34) !important;
}

html body main > section.grid > article.card.span4 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:hover > img,
html body main > section.grid > article.card.span4 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:focus-visible > img,
html body main > section.grid > article.card.span6 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:hover > img,
html body main > section.grid > article.card.span6 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:focus-visible > img{
  transform:scale(1.40) !important;
}

/* === pieces patch card: separate 3D and thermocollant families === */
html body main > section.grid > article.card > h3{
  font-size:clamp(25px, 2.85vw, 34px) !important;
}

/* === pieces cards with 2 visuals: compact vertical rhythm === */
html body main > section.grid > article.card.nopnj-egg-sticker > .tags.nopnj-piece-assets,
html body main > section.grid > article.card.nopnj-egg-stacked-images > .tags.nopnj-piece-assets,
html body main > section.grid > article.card.nopnj-egg-badge-images > .tags.nopnj-piece-assets,
html body main > section.grid > article.card.nopnj-egg-badge > .tags.nopnj-piece-assets{
  grid-template-columns:minmax(0, calc((100% - 12px) / 2)) !important;
  justify-content:center !important;
  margin-top:22px !important;
}

html body main > section.grid > article.card.nopnj-egg-sticker > .btns,
html body main > section.grid > article.card.nopnj-egg-stacked-images > .btns,
html body main > section.grid > article.card.nopnj-egg-badge-images > .btns,
html body main > section.grid > article.card.nopnj-egg-badge > .btns{
  margin-top:auto !important;
  padding-top:26px !important;
}

html body main .nopnj-egg-patch .nopnj-piece-assets-patch-3d{
  margin-bottom:0 !important;
}

html body main .nopnj-egg-patch .nopnj-piece-subtitle{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:2px !important;
  margin:clamp(18px, 2.2vw, 22px) 0 10px !important;
  max-width:100% !important;
  overflow-wrap:break-word !important;
}

html body main .nopnj-egg-patch .nopnj-piece-subtitle-detail{
  display:block !important;
  max-width:100% !important;
  font:inherit !important;
  font-size:clamp(25px, 2.85vw, 34px) !important;
  letter-spacing:-.055em !important;
  line-height:.9 !important;
  white-space:nowrap !important;
}

html body main .nopnj-egg-patch .nopnj-piece-assets-patch-thermo{
  margin-top:0 !important;
}

/* === pieces product assets: keep original image brightness === */
html body main > section.grid > article.card.span4 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag > img,
html body main > section.grid > article.card.span4 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:hover > img,
html body main > section.grid > article.card.span4 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:focus-visible > img,
html body main > section.grid > article.card.span6 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag > img,
html body main > section.grid > article.card.span6 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:hover > img,
html body main > section.grid > article.card.span6 > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:focus-visible > img{
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;


}

/* Cadrage manuel : vignette haute du mug */
html body main > section.grid > article.card.span4.nopnj-egg-mug > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag > img[src^="/assets/products/mug01.webp?v=15b5d04d8bbb3480"]{
  object-fit:cover !important;
  object-position:center center !important;
  transform:translateX(-9%) scale(1.18) !important;
  transform-origin:center center !important;
}

html body main > section.grid > article.card.span4.nopnj-egg-mug > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:has(img[src^="/assets/products/mug01.webp?v=15b5d04d8bbb3480"]):hover > img,
html body main > section.grid > article.card.span4.nopnj-egg-mug > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:has(img[src^="/assets/products/mug01.webp?v=15b5d04d8bbb3480"]):focus-visible > img{
  transform:translateX(-9%) scale(1.22) !important;
}

/* Cadrage manuel : flammes carrées, visuel complet */
html body main > section.grid > article.card.span4.nopnj-egg-sticker > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:has(img[src^="/assets/products/flamme?v=15b5d04d8bbb3480"]){
  aspect-ratio:1 / 1 !important;
}

html body main > section.grid > article.card.span4.nopnj-egg-sticker > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag > img[src^="/assets/products/flamme?v=15b5d04d8bbb3480"]{
  object-fit:cover !important;
  object-position:center center !important;
  transform:scale(1) !important;
}

html body main > section.grid > article.card.span4.nopnj-egg-sticker > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:has(img[src^="/assets/products/flamme?v=15b5d04d8bbb3480"]):hover > img,
html body main > section.grid > article.card.span4.nopnj-egg-sticker > .tags.nopnj-piece-assets > .tag.nopnj-piece-asset-tag:has(img[src^="/assets/products/flamme?v=15b5d04d8bbb3480"]):focus-visible > img{
  transform:scale(1) !important;
}

/* === pieces copy bullets: regular readable rhythm === */
html body main .nopnj-piece-copy-list{
  list-style:none !important;
  margin:0 0 18px !important;
  padding:0 !important;
  display:grid !important;
  gap:8px !important;
  color:var(--muted) !important;
}

html body main .nopnj-piece-copy-list > li{
  position:relative !important;
  margin:0 !important;
  padding-left:0 !important;
  color:var(--muted) !important;
  font-size:17px !important;
  line-height:1.52 !important;
  letter-spacing:0 !important;
  text-wrap:pretty !important;
}

html body main .nopnj-piece-copy-list > li::before{
  content:none !important;
  display:none !important;
}

html body main .nopnj-piece-copy-list + .tags,
html body main .nopnj-piece-copy-list + .btns{
  margin-top:18px !important;
}

html body main .nopnj-pieces-process .card .nopnj-piece-copy-list,
html body main .nopnj-pieces-logistics-grid .card .nopnj-piece-copy-list{
  gap:9px !important;
  margin-bottom:0 !important;
}

html body main .nopnj-payment-status + .nopnj-piece-copy-list{
  margin-top:12px !important;
}

@media(max-width:760px){
  html body main .nopnj-piece-copy-list{
    gap:7px !important;
    margin-bottom:16px !important;
  }

  html body main .nopnj-piece-copy-list > li{
    font-size:16px !important;
    line-height:1.5 !important;
    padding-left:0 !important;
  }
}

/* source: /assets/pieces-drop-slots.css?v=15b5d04d8bbb3480 */
/* Drops slot-machine module on pieces page */
body main .nopnj-drop-slots {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
}

body main .nopnj-drop-separator {
  height: 1px;
  margin: 28px 0;
  background:
    linear-gradient(90deg, transparent, rgba(255, 214, 0, .74), rgba(96, 175, 255, .48), transparent);
  box-shadow: 0 0 18px rgba(255, 214, 0, .12);
}

body main .nopnj-drop-slot {
  --drop-accent: var(--yellow);
  --slot-item-size: 430px;
  --slot-gap: 24px;
  --slot-cell-top: calc((100% - var(--slot-item-size)) / 2);
  --slot-mystery-shift-y: clamp(76px, calc(var(--slot-item-size) * .23), 100px);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 20px;
  min-width: 0;
  min-height: 640px;
  padding: 18px;
  color: var(--text);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .018)),
    radial-gradient(circle at 50% 0, color-mix(in srgb, var(--drop-accent) 24%, transparent), transparent 46%),
    #0b0b0d;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .035),
    0 18px 42px rgba(0, 0, 0, .28);
  display: grid;
  grid-template-rows: 1fr auto auto;
  gap: 12px;
  overflow: hidden;
  position: relative;
  text-align: left;
  transform: translateY(0);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

body main .nopnj-drop-slot::before {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 1;
}

body main .nopnj-drop-slot::before {
  inset: 18px 18px auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--drop-accent), transparent);
  opacity: .55;
}

body main .nopnj-drop-slot[data-drop-accent="lucide"] {
  --drop-accent: var(--blue);
}

body main .nopnj-drop-slot[data-drop-accent="nopnj"] {
  --drop-accent: var(--orange);
}

body main .nopnj-drop-slot:hover,
body main .nopnj-drop-slot.is-revealed {
  border-color: color-mix(in srgb, var(--drop-accent) 54%, rgba(255, 255, 255, .16));
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .05),
    0 20px 48px rgba(0, 0, 0, .34),
    0 0 24px color-mix(in srgb, var(--drop-accent) 24%, transparent);
  transform: translateY(-2px);
}

body main .nopnj-drop-slot-title,
body main .nopnj-drop-slot-result {
  position: relative;
  z-index: 2;
}

body main .nopnj-drop-slot-window {
  appearance: none;
  align-self: stretch;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 16px;
  min-height: 480px;
  width: 100%;
  padding: 0;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  z-index: 2;
  display: block;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .025)),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .10), transparent 54%),
    #080809;
}

body main .nopnj-drop-slot-window > * {
  pointer-events: none;
}

body main .nopnj-drop-slot-window:focus-visible {
  outline: 2px solid var(--drop-accent);
  outline-offset: 3px;
}

body main .nopnj-drop-slot-window::before,
body main .nopnj-drop-slot-window::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 42px;
  z-index: 4;
  pointer-events: none;
}

body main .nopnj-drop-slot-window::before {
  top: 0;
  background: linear-gradient(180deg, rgba(5, 5, 5, .88), transparent);
}

body main .nopnj-drop-slot-window::after {
  bottom: 0;
  background: linear-gradient(0deg, rgba(5, 5, 5, .88), transparent);
}

body main .nopnj-drop-slot-window .nopnj-drop-slot-payline {
  display: none;
}

body main .nopnj-drop-slot-reel {
  display: grid;
  gap: var(--slot-gap);
  opacity: 0;
  justify-items: center;
  left: 0;
  position: absolute;
  right: 0;
  top: var(--slot-cell-top);
  transform: translateY(0);
  will-change: transform;
}

body main .nopnj-drop-slot-frame {
  width: calc(100% - 16px);
  height: var(--slot-item-size);
}

body main .nopnj-drop-slot-frame {
  border: 1px solid color-mix(in srgb, var(--drop-accent) 42%, rgba(255, 255, 255, .12));
  border-radius: 14px;
  display: grid;
  isolation: isolate;
  overflow: hidden;
  place-items: center;
  padding: 0;
  position: relative;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02)),
    radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--drop-accent) 22%, transparent), transparent 62%),
    #18191b;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .36);
  transform: translateX(0);
}

body main .nopnj-drop-slot-frame::before {
  content: "";
  inset: 10px;
  pointer-events: none;
  position: absolute;
  z-index: -1;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .10), transparent 64%),
    linear-gradient(180deg, rgba(255, 255, 255, .05), transparent);
  border-radius: 12px;
}

body main .nopnj-drop-slot-frame:nth-child(3n) {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .025)),
    radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--drop-accent) 28%, transparent), transparent 62%),
    #1e2022;
}

body main .nopnj-drop-slot.is-spinning .nopnj-drop-slot-frame {
  box-shadow:
    0 12px 26px rgba(0, 0, 0, .36),
    inset 0 0 0 1px rgba(255, 255, 255, .04);
}

body main .nopnj-drop-infographic {
  display: block;
  height: 100%;
  position: relative;
  width: 100%;
}

body main .nopnj-drop-art {
  background: none;
  border: 0;
  box-shadow: none;
  height: auto;
  object-fit: contain;
  padding: 0;
  position: absolute;
  transform-origin: center;
  width: auto;
  filter:
    drop-shadow(0 7px 5px rgba(0, 0, 0, .34))
    drop-shadow(0 20px 18px rgba(0, 0, 0, .68));
}

body main .nopnj-drop-slot-frame.is-signal .is-badge {
  left: 8%;
  top: 31%;
  width: 42%;
  z-index: 2;
}

body main .nopnj-drop-slot-frame.is-signal .is-patch-thermo {
  left: 31%;
  top: 18%;
  transform: rotate(-3deg);
  width: 66%;
  z-index: 1;
}

body main .nopnj-drop-slot-frame.is-lucide .is-patch-3d {
  left: 11%;
  top: 30%;
  transform: rotate(-2deg);
  width: 72%;
  z-index: 1;
}

body main .nopnj-drop-slot-frame.is-lucide .is-badge {
  left: 7%;
  top: 47%;
  width: 30%;
  z-index: 3;
}

body main .nopnj-drop-slot-frame.is-lucide .is-flamme {
  right: 7%;
  top: 25%;
  transform: rotate(7deg);
  width: 58%;
  z-index: 2;
}

body main .nopnj-drop-slot-frame.is-nopnj .is-mug {
  left: 2%;
  top: 17%;
  width: 47%;
  z-index: 2;
}

body main .nopnj-drop-slot-frame.is-nopnj .is-patch-thermo {
  right: 4%;
  top: 31%;
  transform: rotate(-3deg);
  width: 55%;
  z-index: 1;
}

body main .nopnj-drop-slot-frame.is-nopnj .is-badge {
  left: 35%;
  top: 50%;
  width: 27%;
  z-index: 4;
}

body main .nopnj-drop-slot-frame.is-nopnj .is-flamme {
  right: 8%;
  top: 23%;
  transform: rotate(7deg);
  width: 52%;
  z-index: 3;
}

body main .nopnj-drop-slot-mystery {
  color: var(--drop-accent);
  display: grid;
  font-size: 0;
  font-weight: 950;
  height: var(--slot-item-size);
  left: 50%;
  line-height: 1;
  place-items: center;
  position: absolute;
  top: calc(var(--slot-cell-top) + var(--slot-mystery-shift-y));
  transform: translateX(-50%);
  text-shadow: none;
  width: calc(100% - 16px);
  z-index: 3;
}

body main .nopnj-drop-slot-mystery::before {
  --pixel: clamp(12px, calc(var(--slot-item-size) * .044), 19px);
  --pixel-bright: color-mix(in srgb, var(--drop-accent) 78%, #fff);
  --pixel-core: var(--drop-accent);
  --pixel-shadow: color-mix(in srgb, var(--drop-accent) 62%, #050505);
  content: "";
  display: block;
  height: var(--pixel);
  image-rendering: pixelated;
  width: var(--pixel);
  background: transparent;
  box-shadow:
    calc(var(--pixel) * 4) calc(var(--pixel) * 0) 0 var(--pixel-bright),
    calc(var(--pixel) * 5) calc(var(--pixel) * 0) 0 var(--pixel-bright),
    calc(var(--pixel) * 6) calc(var(--pixel) * 0) 0 var(--pixel-bright),
    calc(var(--pixel) * 7) calc(var(--pixel) * 0) 0 var(--pixel-bright),
    calc(var(--pixel) * 3) calc(var(--pixel) * 1) 0 var(--pixel-bright),
    calc(var(--pixel) * 4) calc(var(--pixel) * 1) 0 var(--pixel-core),
    calc(var(--pixel) * 5) calc(var(--pixel) * 1) 0 var(--pixel-core),
    calc(var(--pixel) * 6) calc(var(--pixel) * 1) 0 var(--pixel-core),
    calc(var(--pixel) * 7) calc(var(--pixel) * 1) 0 var(--pixel-core),
    calc(var(--pixel) * 8) calc(var(--pixel) * 1) 0 var(--pixel-shadow),
    calc(var(--pixel) * 2) calc(var(--pixel) * 2) 0 var(--pixel-bright),
    calc(var(--pixel) * 3) calc(var(--pixel) * 2) 0 var(--pixel-core),
    calc(var(--pixel) * 8) calc(var(--pixel) * 2) 0 var(--pixel-shadow),
    calc(var(--pixel) * 9) calc(var(--pixel) * 2) 0 var(--pixel-shadow),
    calc(var(--pixel) * 2) calc(var(--pixel) * 3) 0 var(--pixel-core),
    calc(var(--pixel) * 8) calc(var(--pixel) * 3) 0 var(--pixel-shadow),
    calc(var(--pixel) * 9) calc(var(--pixel) * 3) 0 var(--pixel-shadow),
    calc(var(--pixel) * 8) calc(var(--pixel) * 4) 0 var(--pixel-shadow),
    calc(var(--pixel) * 9) calc(var(--pixel) * 4) 0 var(--pixel-shadow),
    calc(var(--pixel) * 7) calc(var(--pixel) * 5) 0 var(--pixel-core),
    calc(var(--pixel) * 8) calc(var(--pixel) * 5) 0 var(--pixel-shadow),
    calc(var(--pixel) * 6) calc(var(--pixel) * 6) 0 var(--pixel-core),
    calc(var(--pixel) * 7) calc(var(--pixel) * 6) 0 var(--pixel-shadow),
    calc(var(--pixel) * 5) calc(var(--pixel) * 7) 0 var(--pixel-core),
    calc(var(--pixel) * 6) calc(var(--pixel) * 7) 0 var(--pixel-shadow),
    calc(var(--pixel) * 4) calc(var(--pixel) * 8) 0 var(--pixel-core),
    calc(var(--pixel) * 5) calc(var(--pixel) * 8) 0 var(--pixel-shadow),
    calc(var(--pixel) * 4) calc(var(--pixel) * 9) 0 var(--pixel-shadow),
    calc(var(--pixel) * 5) calc(var(--pixel) * 9) 0 var(--pixel-shadow),
    calc(var(--pixel) * 4) calc(var(--pixel) * 12) 0 var(--pixel-core),
    calc(var(--pixel) * 5) calc(var(--pixel) * 12) 0 var(--pixel-shadow),
    calc(var(--pixel) * 4) calc(var(--pixel) * 13) 0 var(--pixel-core),
    calc(var(--pixel) * 5) calc(var(--pixel) * 13) 0 var(--pixel-shadow);
  filter:
    drop-shadow(calc(var(--pixel) * .5) calc(var(--pixel) * .5) 0 rgba(0, 0, 0, .58))
    drop-shadow(0 0 calc(var(--pixel) * 1.8) color-mix(in srgb, var(--drop-accent) 42%, transparent));
  transform:
    translate(calc(var(--pixel) * -5.5), calc(var(--pixel) * -7))
    scale(1.06);
}

body main .nopnj-drop-slot.is-spinning .nopnj-drop-slot-mystery,
body main .nopnj-drop-slot.is-settling .nopnj-drop-slot-mystery,
body main .nopnj-drop-slot.is-revealed .nopnj-drop-slot-mystery {
  opacity: 0;
}

body main .nopnj-drop-slot.is-spinning .nopnj-drop-slot-reel,
body main .nopnj-drop-slot.is-settling .nopnj-drop-slot-reel,
body main .nopnj-drop-slot.is-revealed .nopnj-drop-slot-reel {
  opacity: 1;
}

body main .nopnj-drop-slot.is-spinning .nopnj-drop-slot-reel {
  animation: nopnjDropSlotNatural 1.9s both;
  filter: blur(1px);
}

body main .nopnj-drop-slot.is-settling .nopnj-drop-slot-reel {
  animation: none;
}

body main .nopnj-drop-slot.is-revealed .nopnj-drop-slot-reel {
  transform: translateY(var(--spin-offset));
}

body main .nopnj-drop-slot-title {
  color: var(--text);
  display: block;
  font-size: 40px;
  font-weight: 950;
  letter-spacing: 0;
  line-height: .9;
  text-transform: uppercase;
}

body main .nopnj-drop-slot-result {
  color: var(--text);
  border-left: 3px solid var(--drop-accent);
  max-height: 84px;
  min-height: 58px;
  opacity: 1;
  overflow: hidden;
  padding-left: 10px;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.35;
  transform: translateY(0);
  animation: nopnjDropPromptBlink 1.05s steps(1, end) infinite;
  visibility: visible;
  white-space: pre-line;
}

body main .nopnj-drop-slot.is-revealed .nopnj-drop-slot-result {
  visibility: visible;
}

body main .nopnj-drop-slot-result.is-typing,
body main .nopnj-drop-slot-result.is-complete {
  color: color-mix(in srgb, var(--text) 92%, var(--drop-accent));
}

body main .nopnj-drop-copy-line,
body main .nopnj-drop-price-line,
body main .nopnj-drop-note-line {
  display: inline;
}

body main .nopnj-drop-price-line {
  color: var(--yellow);
  font-weight: 850;
}

body main .nopnj-drop-note-line {
  color: color-mix(in srgb, var(--text) 78%, var(--drop-accent));
  font-size: .92em;
  font-weight: 430;
}

@keyframes nopnjDropSlotNatural {
  0% {
    filter: blur(0);
    transform: translateY(0);
  }
  10% {
    filter: blur(1px);
    transform: translateY(-120px);
  }
  30% {
    filter: blur(6px);
    transform: translateY(calc(var(--spin-offset) + 920px));
  }
  58% {
    filter: blur(5px);
    transform: translateY(calc(var(--spin-offset) + 320px));
  }
  76% {
    filter: blur(2px);
    transform: translateY(calc(var(--spin-offset) - 34px));
  }
  88% {
    filter: blur(.5px);
    transform: translateY(calc(var(--spin-offset) + 14px));
  }
  100% {
    filter: blur(0);
    transform: translateY(var(--spin-offset));
  }
}

@keyframes nopnjDropPromptBlink {
  0%, 46% { border-left-color: var(--drop-accent); }
  47%, 100% { border-left-color: transparent; }
}

@media (max-width: 900px) {
  body main .nopnj-drop-slots {
    grid-template-columns: 1fr;
  }

  body main .nopnj-drop-slot {
    min-height: 640px;
  }

  body main .nopnj-drop-slot-window {
    min-height: 466px;
  }

  body main .nopnj-drop-slot-reel {
    top: var(--slot-cell-top);
  }

  body main .nopnj-drop-slot-frame {
    width: calc(100% - 16px);
    height: var(--slot-item-size);
  }

  body main .nopnj-drop-slot-result {
    max-height: none;
  }

  body main .nopnj-drop-slot-mystery {
    width: calc(100% - 16px);
  }
}

@media (max-width: 1100px) and (min-width: 901px) {
  body main .nopnj-drop-slot-title {
    font-size: 34px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body main .nopnj-drop-slot,
  body main .nopnj-drop-slot-result {
    transition: none;
  }
}

/* source: /assets/nopnj-announcement-mode.css?v=15b5d04d8bbb3480 */
/* === NO PNJ announcement banner mode ===
   Default OFF. Reactivate by adding .nopnj-announcement-on on <html> or <body>. */
html:not(.nopnj-announcement-on) body:not(.nopnj-announcement-on) > .prelaunch-notice{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

html.nopnj-announcement-on body > .prelaunch-notice,
body.nopnj-announcement-on > .prelaunch-notice{
  display:flex !important;
  visibility:visible !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}

/* source: /assets/site-header-contract.css?v=15b5d04d8bbb3480 */
/* NO PNJ shared header/nav contract.
   Loaded last on every storefront page to neutralize page-local header drift. */
:root {
  --site-header-height: 76px;
  --site-header-height-mobile: 58px;
  --site-header-x: 18px;
  --site-header-x-mobile: 12px;
}

/* Shared decorative square full stop used by display titles. */
html body .nopnj-square-dot,
html body .hero-dot,
html body .yellow-dot,
html body .lab-title-dot{
  display:inline-block!important;
  position:relative!important;
  width:.16em!important;
  height:.16em!important;
  min-width:7px!important;
  min-height:7px!important;
  aspect-ratio:1 / 1!important;
  margin-left:.10em!important;
  vertical-align:-.055em!important;
  overflow:hidden!important;
  background:rgba(244,244,238,.88)!important;
  color:transparent!important;
  border-radius:0!important;
  font-size:1em!important;
  line-height:0!important;
  letter-spacing:0!important;
  text-indent:-9999px!important;
  text-shadow:none!important;
  box-shadow:
    0 0 10px rgba(244,244,238,.18),
    0 0 18px rgba(244,244,238,.08)!important;
}

html body .hero-dot,
html body .yellow-dot,
html body .lab-title-dot{
  background:#FFD600!important;
  box-shadow:
    0 0 12px rgba(255,214,0,.34),
    0 0 24px rgba(255,214,0,.16)!important;
}

html body .nopnj-dot-keep{
  white-space:nowrap!important;
}

@media (min-width:761px){
  html body .nopnj-square-dot,
  html body .hero-dot,
  html body .yellow-dot,
  html body .lab-title-dot{
    width:.16em!important;
    height:.16em!important;
    min-width:12px!important;
    min-height:12px!important;
  }
}

html body .nopnj-square-dot::before,
html body .nopnj-square-dot::after,
html body .hero-dot::before,
html body .hero-dot::after,
html body .yellow-dot::before,
html body .yellow-dot::after,
html body .lab-title-dot::before,
html body .lab-title-dot::after{
  content:none!important;
  display:none!important;
}

html body > header[data-testid="site.header"] {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: 0 !important;
  z-index: 5000 !important;
  width: 100% !important;
  height: auto !important;
  min-height: var(--site-header-height) !important;
  max-height: none !important;
  overflow: visible !important;
  background: rgba(5, 5, 5, .92) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

html body > header[data-testid="site.header"] > .shell.nav {
  width: min(1320px, calc(100% - (var(--site-header-x) * 2))) !important;
  max-width: min(1320px, calc(100% - (var(--site-header-x) * 2))) !important;
  height: var(--site-header-height) !important;
  min-height: var(--site-header-height) !important;
  max-height: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 22px !important;
  overflow: visible !important;
}

html body > header[data-testid="site.header"] .brand,
html body > header[data-testid="site.header"] .brand * {
  box-sizing: border-box !important;
  text-decoration: none !important;
}

html body > header[data-testid="site.header"] .brand {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  position: relative !important;
  min-width: max-content !important;
  min-height: 0 !important;
  overflow: visible !important;
  color: var(--text, #f2f2f2) !important;
  font-size: 27px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  isolation: isolate !important;
}

html body > header[data-testid="site.header"] .brand-mark {
  display: none !important;
}

html body > header[data-testid="site.header"] .brand-label {
  position: relative !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px !important;
  min-width: 0 !important;
  max-width: none !important;
}

html body > header[data-testid="site.header"] .brand-main {
  display: block !important;
  color: var(--text, #f2f2f2) !important;
  font-size: inherit !important;
  line-height: .9 !important;
}

html body > header[data-testid="site.header"] .brand-baseline {
  display: block !important;
  position: static !important;
  width: max-content !important;
  color: rgba(242,242,242,.82) !important;
  font-family: "chau-philomene-one.regular", Impact, "Arial Black", sans-serif !important;
  font-size: 13px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  pointer-events: none !important;
  opacity: 0 !important;
  transform: translateX(-3px) !important;
  transition: opacity .18s ease, transform .18s ease !important;
}

html body > header[data-testid="site.header"] .brand:hover .brand-baseline {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

@media (hover: none), (pointer: coarse), (max-width: 760px) {
  html body > header[data-testid="site.header"] .brand.is-brand-active .brand-baseline {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
}

html body > header[data-testid="site.header"] .nav-links {
  flex: 0 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  overflow: visible !important;
}

html body > header[data-testid="site.header"] .nav-links a {
  position: relative !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 0 12px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--muted, #9a9a9a) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

html body > header[data-testid="site.header"] .nav-links a::after {
  content: "" !important;
  position: absolute !important;
  left: 12px !important;
  right: 12px !important;
  bottom: 8px !important;
  height: 1px !important;
  background: var(--yellow, #ffd600) !important;
  transform: scaleX(0) !important;
  transform-origin: left center !important;
  transition: transform .18s ease !important;
}

html body > header[data-testid="site.header"] .nav-links a:hover,
html body > header[data-testid="site.header"] .nav-links a:focus-visible,
html body > header[data-testid="site.header"] .nav-links a.is-active {
  color: var(--text, #f2f2f2) !important;
  outline: none !important;
}

html body > header[data-testid="site.header"] .nav-links a:hover::after,
html body > header[data-testid="site.header"] .nav-links a:focus-visible::after,
html body > header[data-testid="site.header"] .nav-links a.is-active::after {
  transform: scaleX(1) !important;
}

@media (max-width: 760px) {
  html body > header[data-testid="site.header"] {
    min-height: var(--site-header-height-mobile) !important;
  }

  html body > header[data-testid="site.header"] > .shell.nav {
    width: calc(100% - (var(--site-header-x-mobile) * 2)) !important;
    max-width: calc(100% - (var(--site-header-x-mobile) * 2)) !important;
    height: var(--site-header-height-mobile) !important;
    min-height: var(--site-header-height-mobile) !important;
    gap: 10px !important;
  }

  html body > header[data-testid="site.header"] .brand {
    height: var(--site-header-height-mobile) !important;
    font-size: 20px !important;
    min-width: max-content !important;
    align-self: center !important;
  }

  html body > header[data-testid="site.header"] .brand-main {
    font-size: 20px !important;
  }

  html body > header[data-testid="site.header"] .brand-label {
    position: relative !important;
    gap: 7px !important;
  }

  html body > header[data-testid="site.header"] .brand-baseline {
    font-size: clamp(9px, 2.2vw, 11px) !important;
    letter-spacing: .08em !important;
  }

  html body > header[data-testid="site.header"] .nav-links {
    flex: 1 1 auto !important;
    height: var(--site-header-height-mobile) !important;
    justify-content: flex-end !important;
    gap: clamp(8px, 2.5vw, 14px) !important;
    margin-left: auto !important;
    overflow-x: visible !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  html body > header[data-testid="site.header"] .nav-links::-webkit-scrollbar {
    display: none !important;
  }

  html body > header[data-testid="site.header"] .nav-links a {
    height: var(--site-header-height-mobile) !important;
    min-height: var(--site-header-height-mobile) !important;
    padding: 0 !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
  }

  html body > header[data-testid="site.header"] .nav-links a::after {
    left: 0 !important;
    right: 0 !important;
    bottom: 12px !important;
  }
}

/* source: /assets/nopnj-cursor.css?v=15b5d04d8bbb3480 */
/* NO PNJ cursor layer: desktop precision pointers only. */
@media (hover: hover) and (pointer: fine) {
  html.nopnj-cursor-loading,
  html.nopnj-cursor-loading *,
  html.nopnj-loader-active,
  html.nopnj-loader-active * {
    cursor: none !important;
  }

  .nopnj-loading-cursor {
    position: fixed;
    left: 50vw;
    top: 50vh;
    z-index: 2147483647;
    width: 46px;
    height: 46px;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-50%, -50%, 0) scale(.92);
    transition: opacity .2s ease, transform .2s ease;
    will-change: left, top, opacity, transform;
    mix-blend-mode: screen;
  }

  html.nopnj-cursor-loading .nopnj-loading-cursor,
  html.nopnj-loader-active .nopnj-loading-cursor {
    opacity: .9;
    transform: translate3d(-50%, -50%, 0) scale(1);
  }

  .nopnj-loading-cursor svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    animation: nopnjCursorWireSpin 1.35s linear infinite;
    filter:
      drop-shadow(0 0 4px rgba(248, 244, 228, .16))
      drop-shadow(0 0 10px rgba(248, 244, 228, .08));
    transform-origin: 50% 50%;
  }

  .nopnj-loading-cursor path {
    fill: none;
    stroke: rgba(248, 244, 228, .88);
    stroke-width: 4.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
  }
}

@media (hover: none), (pointer: coarse) {
  .nopnj-loading-cursor {
    display: none !important;
  }
}

@keyframes nopnjCursorWireSpin {
  to {
    transform: rotate(360deg);
  }
}
