/** Shopify CDN: Minification failed

Line 24:0 All "@import" rules must come first
Line 26:0 All "@import" rules must come first

**/
/* ============================================================
   OREILLER — feuille portée du tunnel source, TRANSFORMÉE pour
   cohabiter avec Shrine PRO :
   · tout scopé sous .evn-pillow — les classes génériques (.active,
     .open, .show, .next…) n'atteignent plus le thème ; le tiroir
     panier de Shrine utilise .active, collision confirmée ;
   · :root / html / body deviennent .evn-pillow : plus de fuite des
     33 variables CSS sur toute la boutique ;
   · règles .cart-* supprimées — le tiroir natif de Shrine les
     remplace (le tunnel source était headless).
   La page doit être enveloppée dans <div class="evn-pillow">.
   ============================================================ */

/* Fond et couleur de page : la règle source pointait sur une variable Tailwind
   (--color-background) qui n'est pas portée. On fixe explicitement les valeurs
   du thème de la page, sinon la section hérite du fond de Shrine. */
.evn-pillow { background-color: var(--background, #fdfbf7); color: var(--foreground, #0c1633); }
@import "tailwindcss" source(none);
@source "../src";
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
/*
 * Design system definition.
 *
 * The @theme inline block maps CSS custom properties to Tailwind utility
 * classes (e.g. --color-primary -> bg-primary, text-primary).
 *
 * The :root and .dark blocks define the actual color values using oklch.
 * All colors MUST use oklch format.
 *
 * To add a new semantic color:
 * 1. Add the variable to :root (light value) and .dark (dark value)
 * 2. Register it in @theme inline as --color-<name>: var(--<name>)
 */

@theme inline {
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --radius-2xl: calc(var(--radius) + 8px);
  --radius-3xl: calc(var(--radius) + 12px);
  --radius-4xl: calc(var(--radius) + 16px);
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-card: var(--card);
  --color-card-foreground: var(--card-foreground);
  --color-popover: var(--popover);
  --color-popover-foreground: var(--popover-foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-muted: var(--muted);
  --color-muted-foreground: var(--muted-foreground);
  --color-accent: var(--accent);
  --color-accent-foreground: var(--accent-foreground);
  --color-destructive: var(--destructive);
  --color-destructive-foreground: var(--destructive-foreground);
  --color-border: var(--border);
  --color-input: var(--input);
  --color-ring: var(--ring);
  --color-ring-offset-background: var(--background);
  --color-chart-1: var(--chart-1);
  --color-chart-2: var(--chart-2);
  --color-chart-3: var(--chart-3);
  --color-chart-4: var(--chart-4);
  --color-chart-5: var(--chart-5);
  --color-sidebar: var(--sidebar);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-ring: var(--sidebar-ring);
}
.evn-pillow {
  --radius: 8px;
  --background: oklch(0.98 0.01 85);
  --foreground: oklch(0.2 0.02 60);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.2 0.02 60);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.2 0.02 60);
  --primary: oklch(0.35 0.08 75);
  --primary-foreground: oklch(0.98 0.01 85);
  --secondary: oklch(0.94 0.02 80);
  --secondary-foreground: oklch(0.3 0.03 60);
  --muted: oklch(0.94 0.02 80);
  --muted-foreground: oklch(0.5 0.04 60);
  --accent: oklch(0.55 0.12 85);
  --accent-foreground: oklch(0.98 0.01 85);
  --destructive: oklch(0.55 0.18 25);
  --destructive-foreground: oklch(0.98 0.01 85);
  --border: oklch(0.88 0.02 80);
  --input: oklch(0.88 0.02 80);
  --ring: oklch(0.55 0.12 85);
  --chart-1: oklch(0.55 0.12 85);
  --chart-2: oklch(0.45 0.1 180);
  --chart-3: oklch(0.35 0.08 75);
  --chart-4: oklch(0.65 0.14 60);
  --chart-5: oklch(0.75 0.16 50);
  --sidebar: oklch(0.96 0.01 80);
  --sidebar-foreground: oklch(0.2 0.02 60);
  --sidebar-primary: oklch(0.35 0.08 75);
  --sidebar-primary-foreground: oklch(0.98 0.01 85);
  --sidebar-accent: oklch(0.94 0.02 80);
  --sidebar-accent-foreground: oklch(0.3 0.03 60);
  --sidebar-border: oklch(0.88 0.02 80);
  --sidebar-ring: oklch(0.55 0.12 85);
}
.evn-pillow .dark {
  --background: oklch(0.18 0.02 60);
  --foreground: oklch(0.94 0.02 80);
  --card: oklch(0.22 0.03 60);
  --card-foreground: oklch(0.94 0.02 80);
  --popover: oklch(0.22 0.03 60);
  --popover-foreground: oklch(0.94 0.02 80);
  --primary: oklch(0.75 0.1 80);
  --primary-foreground: oklch(0.18 0.02 60);
  --secondary: oklch(0.28 0.04 60);
  --secondary-foreground: oklch(0.94 0.02 80);
  --muted: oklch(0.28 0.04 60);
  --muted-foreground: oklch(0.7 0.05 70);
  --accent: oklch(0.65 0.14 85);
  --accent-foreground: oklch(0.18 0.02 60);
  --destructive: oklch(0.65 0.18 25);
  --destructive-foreground: oklch(0.98 0.01 85);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --ring: oklch(0.65 0.14 85);
  --chart-1: oklch(0.65 0.14 85);
  --chart-2: oklch(0.55 0.12 180);
  --chart-3: oklch(0.75 0.1 80);
  --chart-4: oklch(0.75 0.16 60);
  --chart-5: oklch(0.85 0.18 50);
  --sidebar: oklch(0.22 0.03 60);
  --sidebar-foreground: oklch(0.94 0.02 80);
  --sidebar-primary: oklch(0.75 0.1 80);
  --sidebar-primary-foreground: oklch(0.18 0.02 60);
  --sidebar-accent: oklch(0.28 0.04 60);
  --sidebar-accent-foreground: oklch(0.94 0.02 80);
  --sidebar-border: oklch(1 0 0 / 10%);
  --sidebar-ring: oklch(0.65 0.14 85);
}
@layer base {
.evn-pillow * {
    border-color: var(--color-border);
  }
.evn-pillow {
    font-family: "Inter", system-ui, sans-serif;
  }
.evn-pillow h1, .evn-pillow h2, .evn-pillow h3, .evn-pillow h4, .evn-pillow h5, .evn-pillow h6, .evn-pillow .font-serif {
    font-family: "Cormorant Garamond", Georgia, serif;
  }
.evn-pillow {
    background-color: var(--color-background);
    color: var(--color-foreground);
  }
}
/* Verrou horizontal global de la cible (style-2.css : html,body{overflow-x:clip}).
   Sans lui, iOS laisse panner la page latéralement — le menu latéral fermé vit
   à gauche du viewport et les pistes de photos en max-content dépassent à
   droite : tout ce qui pointe hors cadre rend la page « loose » au doigt.
   /decouverte était couverte par le clip de .dc ; /oreiller et la landing ne
   l'étaient pas. Chrome desktop ne montre pas le symptôme, Safari iOS oui. */
.evn-pillow, .evn-pillow {
  overflow-x: clip;
}
/* ===================================================================
 * Design system cible partagé par /decouverte (dc-) et /oreiller (pp-).
 * Valeurs exactes extraites du CSS de la cible.
 * Tokens portés par les racines de page (et non :root global) pour ne pas
 * écraser les tokens shadcn du reste du site.
 * =================================================================== */
.evn-pillow .dc-page, .evn-pillow .pp-root, .evn-pillow{
  --font-display: "Fredoka", ui-rounded, system-ui, sans-serif;
  --font-sans: "Nunito Sans", ui-sans-serif, system-ui, sans-serif;
  --ink: #0c1633;
  --primary: #16295a;
  --primary-2: #1f3672;
  --secondary: #6e8bd6;
  --accent: #f5c45e;
  --accent-soft: #fbe6b8;
  --bg-light: #f3f6fc;
  --cream: #fbf6ec;
  --surface: #ffffff;
  --text-dark: #0c1633;
  --text-muted: #6a7488;
  --text-light: #e7ecf7;
  --success: #4fb286;
  --danger: #e5705b;
  --border: #e6eaf2;
  --container: 1280px;
  --radius: 16px;
  --radius-sm: 10px;
  --radius-lg: 26px;
  --shadow-sm: 0 1px 2px #0c16330d;
  --shadow: 0 8px 30px -12px #0c163329;
  --shadow-lg: 0 30px 70px -24px #0c16334d;
  font-family: var(--font-sans);
  color: var(--text-dark);
  background: var(--surface);
  -webkit-font-smoothing: antialiased;
}
/* Racine /oreiller : reprise exacte du `body` de la cible. */
.evn-pillow .pp-root {
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
}
/* La cible applique body{zoom:.9} au-dessus de 1025px : toute la page est
   rendue à 90 %. Scopé ici à la racine de page pour ne pas toucher le reste
   du site. */
@media (min-width: 1025px) {
.evn-pillow .pp-root {
    zoom: 0.9;
  }
}
.evn-pillow .dc-page *, .evn-pillow .pp-root * {
  box-sizing: border-box;
}
/* Resets de la cible (`a{}`, `button{}`, `img{}`), en :where() pour garder la
   spécificité 0 et ne jamais l'emporter sur .ln-btn & co. */
.evn-pillow :where(.pp-root) a {
  color: inherit;
  text-decoration: none;
}
.evn-pillow :where(.pp-root) button {
  font: inherit;
  cursor: pointer;
  color: inherit;
  background: 0 0;
  border: 0;
}
.evn-pillow :where(.pp-root) img {
  max-width: 100%;
  display: block;
}
/* Cible : `h1,h2,h3,h4{…}` — spécificité 0,0,1, donc n'importe quelle classe
   (.pp-title, .pp-packs-title) l'emporte. :where() reproduit ce comportement. */
.evn-pillow :where(.pp-root) h1, .evn-pillow :where(.pp-root) h2, .evn-pillow :where(.pp-root) h3, .evn-pillow :where(.pp-root) h4 {
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
  font-weight: 600;
  line-height: 1.06;
}
/* ---------- éléments communs (ln-) ---------- */
.evn-pillow .ln-topbar {
  background: var(--ink);
  color: #fff;
  text-align: center;
  padding: 11px 16px;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
}
.evn-pillow .ln-topbar .dot {
  background: var(--accent);
  opacity: 0.85;
  vertical-align: middle;
  border-radius: 50%;
  width: 4px;
  height: 4px;
  margin: 0 14px;
  display: inline-block;
}
.evn-pillow .pp-stars {
  color: var(--accent);
  display: inline-flex;
  gap: 2px;
  letter-spacing: 2px;
}
.evn-pillow .ln-stars {
  color: var(--accent);
  gap: 2px;
  display: inline-flex;
}
.evn-pillow .ln-stars svg {
  fill: currentColor;
  width: 16px;
  height: 16px;
}
.evn-pillow .ln-section-soft {
  background: var(--bg-light);
}
/* Bloc « Everything is included », déplacé le 21/08 après le bloc crème de la
   section problème. Brahim l'a voulu sur fond blanc pour supprimer la jointure
   crème -> bleu. Ses 7 rangées étaient des cartes BLANCHES sur fond bleu : on
   inverse le rapport, sinon elles deviennent blanc sur blanc. Même palette.
   Le fond des 7 rangées n'est PAS ici : elles portent un style INLINE, qu'aucune
   règle de feuille ne peut battre sans !important. Il est corrigé à la source,
   dans sections/inclus-en.html. */
.evn-pillow .ln-inclus {
  background: #fff;
}

.evn-pillow .ln-section-cream {
  background: var(--cream);
}
.evn-pillow .ln-section-dark {
  background: var(--ink);
  color: #fff;
}
.evn-pillow .ln-section-dark h1 em, .evn-pillow .ln-section-dark h2 em, .evn-pillow .ln-section-dark h3 em {
  color: var(--accent);
  font-style: italic;
}
/* .ln-btn : valeurs exactes de la cible — AUCUNE font-family, la police
   Nunito Sans est héritée du body. */
.evn-pillow .ln-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  max-width: 100%;
  border-radius: 999px;
  padding: 16px 30px;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  border: 1.5px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 0.15s,
    background 0.2s,
    color 0.2s,
    box-shadow 0.2s;
}
.evn-pillow .ln-btn:active {
  transform: scale(0.985);
}
.evn-pillow .ln-btn-lg {
  padding: 19px 36px;
  font-size: 14.5px;
}
.evn-pillow .ln-btn-primary {
  background: var(--ink);
  color: #fff;
  box-shadow: var(--shadow);
}
.evn-pillow .ln-btn-primary:hover {
  background: #000;
}
.evn-pillow .ln-btn-accent {
  background: var(--accent);
  color: var(--ink);
}
/* Sur iOS, une règle :hover fait que le PREMIER appui ne sert qu'à survoler
   et le second seulement à cliquer — c'est la cause classique du « il faut
   cliquer deux fois ». On la réserve aux appareils qui survolent vraiment. */
@media (hover: hover) {
  .evn-pillow .ln-btn-accent:hover {
    background: #ecb444;
  }
}
.evn-pillow .ln-btn-block {
  width: 100%;
}
/* ===================================================================
 * Advertorial /decouverte — préfixe `dc-`.
 * CSS exact de la cible (prelanding lapetitenuit), copié tel quel.
 * Racine de page : <div class="dc dc-v2 dc-page"> (dc-page porte les tokens).
 * =================================================================== */
.evn-pillow .dc-stars {color:#374151;letter-spacing:1px}
.evn-pillow .dc {--dc-max:1180px;font-family:var(--font-sans);color:var(--ink);background:#fff;overflow-x:clip}
.evn-pillow .dc * {box-sizing:border-box}
.evn-pillow .dc svg {flex:none;display:block}
.evn-pillow .dc-wrap {width:100%;max-width:var(--dc-max);margin:0 auto;padding:0 20px}
.evn-pillow .dc-topbar {background:var(--ink);color:#fff;letter-spacing:.02em;text-align:center;flex-wrap:wrap;justify-content:center;gap:8px 20px;padding:10px 16px;font-size:13px;font-weight:700;display:flex}
.evn-pillow .dc-topbar span {align-items:center;gap:8px;display:inline-flex}
.evn-pillow .dc-topbar .dc-dot {opacity:.35}
.evn-pillow .dc-topbar svg {color:var(--accent)}
.evn-pillow .dc-header {z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#ffffffeb;position:sticky;top:0}
.evn-pillow .dc-header-in {max-width:var(--dc-max);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:11px 20px;display:flex}
.evn-pillow .dc-logo {font-family:var(--font-display);color:var(--ink);white-space:nowrap;align-items:center;gap:7px;font-size:18px;font-weight:700;display:inline-flex}
.evn-pillow .dc-logo svg {color:var(--accent)}
.evn-pillow .dc-header-right {align-items:center;gap:12px;display:flex}
.evn-pillow .dc-header-rating {color:var(--ink);align-items:center;gap:7px;font-size:13px;font-weight:800;display:none}
.evn-pillow .dc-header-rating .dc-stars {color:#374151;letter-spacing:1px}
.evn-pillow .dc-header-cta {letter-spacing:.03em;white-space:nowrap;padding:9px 15px;font-size:12px}
.evn-pillow .dc-hd-full {display:none}
.evn-pillow .dc-hd-short {display:inline}
.evn-pillow .dc-cta-row {flex-direction:column;align-items:center;gap:11px;display:flex}
.evn-pillow .dc-cta-note {color:var(--text-muted);align-items:center;gap:7px;font-size:13.5px;font-weight:700;display:inline-flex}
.evn-pillow .dc-cta-note svg {color:var(--accent)}
.evn-pillow .dc-pills {flex-wrap:wrap;align-items:center;gap:9px;display:flex}
.evn-pillow .dc-pill {background:var(--accent-soft);color:var(--primary-2);border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:800;display:inline-flex}
.evn-pillow .dc-pill-stars {border:1.5px solid var(--border);background:#fff}
.evn-pillow .dc-pill-stars .dc-stars {color:#374151;letter-spacing:1px}
.evn-pillow .dc-pill-offer {background:var(--danger);color:#fff}
.evn-pillow .dc-hero {padding:24px 0 6px}
.evn-pillow .dc-hero-grid {flex-direction:column;display:flex}
.evn-pillow .dc-hero-media {border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:var(--bg-light);aspect-ratio:1;margin-top:16px;position:relative;overflow:hidden}
.evn-pillow .dc-hero-media img {object-fit:cover;width:100%;height:100%}
.evn-pillow .dc-offer-badge {z-index:2;background:var(--danger);color:#fff;font-family:var(--font-display);min-width:58px;height:58px;box-shadow:var(--shadow);border:2px solid #fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;position:absolute;top:13px;right:13px}
.evn-pillow .dc-offer-badge b {font-size:19px}
.evn-pillow .dc-offer-badge span {letter-spacing:.06em;text-transform:uppercase;opacity:.9;margin-top:2px;font-size:9px}
.evn-pillow .dc-h1 {font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;margin:13px 0 0;font-size:clamp(25px,6.6vw,56px);font-weight:700;line-height:1.06}
.evn-pillow .dc-h1 em {color:var(--primary-2);font-style:normal}
.evn-pillow .dc-sub {color:var(--text-muted);margin:12px 0 0;font-size:clamp(15px,3.9vw,20px);line-height:1.5}
.evn-pillow .dc-checks {gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}
.evn-pillow .dc-checks li {color:var(--ink);align-items:flex-start;gap:11px;font-size:clamp(14.5px,3.7vw,18px);font-weight:700;line-height:1.3;display:flex}
.evn-pillow .dc-check {background:var(--accent);width:23px;height:23px;color:var(--ink);border-radius:50%;flex:0 0 23px;justify-content:center;align-items:center;margin-top:1px;display:flex}
.evn-pillow .dc-check svg {color:var(--ink)}
.evn-pillow .dc-hero-cta {flex-direction:column;gap:11px;margin-top:24px;display:flex}
.evn-pillow .dc-hero-cta .ln-btn {width:100%}
.evn-pillow .dc-hero-cta .dc-cta-note {justify-content:center}
.evn-pillow .dc-trust {background:var(--bg-light);margin-top:26px;padding:24px 0}
.evn-pillow .dc-trust-grid {text-align:center;grid-template-columns:repeat(2,1fr);gap:20px 14px;display:grid}
.evn-pillow .dc-trust-item {flex-direction:column;align-items:center;gap:8px;display:flex}
.evn-pillow .dc-trust-ico {color:var(--primary-2);display:inline-flex}
.evn-pillow .dc-trust-item b {color:var(--ink);font-size:15px;font-weight:800;line-height:1.15}
.evn-pillow .dc-trust-item p {color:var(--text-muted);margin:0;font-size:12.5px;font-weight:600}
.evn-pillow .dc-sec {padding:54px 0}
.evn-pillow .dc-sec-soft {background:var(--bg-light)}
.evn-pillow .dc-sec-cream {background:var(--cream)}
.evn-pillow .dc-eyebrow {letter-spacing:.18em;text-transform:uppercase;color:var(--primary-2);margin:0 0 12px;font-size:12px;font-weight:800}
.evn-pillow .dc-h2 {font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;margin:0;font-size:clamp(26px,6.6vw,44px);font-weight:700;line-height:1.07}
.evn-pillow .dc-h2-c {text-align:center}
.evn-pillow .dc-lead {color:var(--text-muted);margin:15px 0 0;font-size:clamp(16.5px,4.3vw,20px);line-height:1.55}
.evn-pillow .dc-lead-c {text-align:center;max-width:46ch;margin-left:auto;margin-right:auto}
.evn-pillow .dc-problems {grid-template-columns:1fr;gap:12px;margin-top:28px;display:grid}
.evn-pillow .dc-prob {border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;align-items:flex-start;gap:14px;padding:16px;display:flex}
.evn-pillow .dc-prob-ico {background:var(--bg-light);width:44px;height:44px;color:var(--primary-2);border-radius:13px;flex:0 0 44px;justify-content:center;align-items:center;display:flex}
.evn-pillow .dc-prob b {color:var(--ink);margin-bottom:3px;font-size:16px;font-weight:800;display:block}
.evn-pillow .dc-prob span {color:var(--text-muted);font-size:14px;line-height:1.4}
.evn-pillow .dc-bridge {text-align:center;color:var(--ink);margin-top:26px;font-size:clamp(17px,4.6vw,22px);font-weight:700;line-height:1.4}
.evn-pillow .dc-bridge em {color:var(--primary-2);font-style:normal}
.evn-pillow .dc-split {grid-template-columns:1fr;align-items:center;gap:22px;display:grid}
.evn-pillow .dc-split-media {border-radius:var(--radius-lg);box-shadow:var(--shadow);background:var(--bg-light);position:relative;overflow:hidden}
.evn-pillow .dc-split-media img {object-fit:cover;width:100%;height:100%}
.evn-pillow .dc-mini-checks {gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}
.evn-pillow .dc-mini-checks li {color:var(--ink);align-items:center;gap:11px;font-size:clamp(15.5px,4vw,18px);font-weight:700;display:flex}
.evn-pillow .dc-mini-checks .dc-check {flex-basis:23px;width:23px;height:23px}
.evn-pillow .dc-note {color:var(--text-muted);margin:16px 0 0;font-size:13.5px;font-style:italic;line-height:1.5}
.evn-pillow .dc-badge-float {box-shadow:var(--shadow);color:var(--ink);background:#fff;border-radius:13px;align-items:center;gap:8px;padding:9px 13px;font-size:12.5px;font-weight:800;display:inline-flex;position:absolute;bottom:13px;left:13px}
.evn-pillow .dc-badge-float svg {color:var(--success)}
.evn-pillow .dc-ba {grid-template-columns:1fr;gap:16px;margin-top:28px;display:grid}
.evn-pillow .dc-ba-card {border-radius:var(--radius-lg);background:var(--bg-light);box-shadow:var(--shadow);position:relative;overflow:hidden}
.evn-pillow .dc-ba-card img {aspect-ratio:4/3;object-fit:cover;width:100%}
.evn-pillow .dc-ba-tag {color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex;position:absolute;top:12px;left:12px}
.evn-pillow .dc-ba-tag.bad {background:var(--danger)}
.evn-pillow .dc-ba-tag.good {background:var(--success)}
.evn-pillow .dc-ba-cap {color:var(--ink);background:#fff;padding:13px 15px;font-size:15px;font-weight:700}
.evn-pillow .dc-ba-cap.bad b {color:var(--danger)}
.evn-pillow .dc-ba-cap.good b {color:var(--success)}
.evn-pillow .dc-transform {text-align:center}
.evn-pillow .dc-rate-row {flex-wrap:wrap;justify-content:center;gap:24px;margin-top:30px;display:flex}
.evn-pillow .dc-rate {flex-direction:column;align-items:center;gap:4px;display:flex}
.evn-pillow .dc-rate .dc-stars {color:#f5c45e;letter-spacing:2px;font-size:18px}
.evn-pillow .dc-rate b {letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-size:12.5px;font-weight:800}
.evn-pillow .dc-cards {grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px;display:grid}
.evn-pillow .dc-card {border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}
.evn-pillow .dc-card-media {aspect-ratio:1;background:var(--bg-light);overflow:hidden}
.evn-pillow .dc-card-media img {object-fit:cover;width:100%;height:100%}
.evn-pillow .dc-card b {color:var(--ink);padding:13px 14px 4px;font-size:15px;font-weight:800;display:block}
.evn-pillow .dc-card span {color:var(--text-muted);padding:0 14px 15px;font-size:13.5px;line-height:1.4;display:block}
.evn-pillow .dc-marquee {margin-top:24px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}
/* L'écart est une marge par photo, surtout pas un `gap` : la boucle se referme
   sur -50% de la piste, or `gap` n'en pose qu'entre les photos — la moitié
   tombait 6px à côté du raccord, d'où le sursaut à chaque tour. En marge, chaque
   photo occupe 142px pleins et la moitié coïncide au pixel. */
.evn-pillow .dc-marquee-track {width:max-content;will-change:transform;backface-visibility:hidden;animation:42s linear infinite dc-scroll;display:flex}
.evn-pillow .dc-marquee-track img {object-fit:cover;background:var(--bg-light);border-radius:16px;flex:none;width:130px;height:166px;margin-right:12px}
@keyframes dc-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}
}
@media (prefers-reduced-motion:reduce){
.evn-pillow .dc-marquee-track {animation:none}
}
.evn-pillow .dc-reviews {grid-template-columns:1fr;gap:14px;margin-top:24px;display:grid}
.evn-pillow .dc-review {border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;padding:18px}
.evn-pillow .dc-review-top {align-items:center;gap:11px;margin-bottom:9px;display:flex}
.evn-pillow .dc-review-av {background:var(--accent-soft);width:40px;height:40px;color:var(--primary-2);border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;font-size:17px;font-weight:800;display:flex}
.evn-pillow .dc-review-name {color:var(--ink);font-size:14.5px;font-weight:800;display:block}
.evn-pillow .dc-review-verif {color:var(--success);align-items:center;gap:4px;font-size:11.5px;font-weight:700;display:inline-flex}
.evn-pillow .dc-review .dc-stars {color:#f5c45e;letter-spacing:1px;font-size:14px}
.evn-pillow .dc-review p {color:#2b3346;-webkit-line-clamp:6;-webkit-box-orient:vertical;margin:8px 0 0;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}
.evn-pillow .dc-guarantee {background:var(--cream);border:1.5px solid var(--accent-soft);border-radius:var(--radius-lg);text-align:center;padding:26px 22px}
.evn-pillow .dc-guarantee-seal {border:2px solid var(--accent);width:58px;height:58px;color:var(--primary-2);box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 12px;display:flex}
.evn-pillow .dc-guarantee b {font-size:clamp(19px,5vw,24px);font-family:var(--font-display);color:var(--ink);font-weight:700;display:block}
.evn-pillow .dc-guarantee p {color:var(--text-muted);max-width:42ch;margin:8px auto 0;font-size:16px}
.evn-pillow .dc-final {background:var(--primary);color:#fff;text-align:center;padding:58px 0 64px}
.evn-pillow .dc-final .dc-h2 {color:#fff}
.evn-pillow .dc-final .dc-h2 em {color:var(--accent)}
.evn-pillow .dc-final-sub {color:var(--text-light);opacity:.86;max-width:40ch;margin:15px auto 0;font-size:clamp(16.5px,4.3vw,20px)}
.evn-pillow .dc-final-checks {text-align:left;gap:11px;max-width:30ch;margin:24px auto 0;padding:0;list-style:none;display:grid}
.evn-pillow .dc-final-checks li {align-items:center;gap:11px;font-size:17px;font-weight:700;display:flex}
.evn-pillow .dc-final-checks .dc-check {background:var(--accent)}
.evn-pillow .dc-final-cta {margin-top:28px}
.evn-pillow .dc-final-cta .ln-btn {width:100%;max-width:460px}
.evn-pillow .dc-final-trust {color:var(--text-light);opacity:.72;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:18px;font-size:13px;display:flex}
.evn-pillow .dc-final-trust span {align-items:center;gap:6px;display:inline-flex}
.evn-pillow .dc-footer {background:var(--ink);color:#ffffffa8;text-align:center;padding:28px 20px 110px;font-size:12.5px;line-height:1.6}
.evn-pillow .dc-footer a {color:#ffffffdb;text-decoration:underline}
.evn-pillow .dc-sticky {z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fffffff0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px -12px #0c163347}
.evn-pillow .dc-sticky .ln-btn {width:100%}
@media (min-width:760px){
.evn-pillow .dc-wrap {padding:0 32px}
.evn-pillow .dc-sec {padding:82px 0}
.evn-pillow .dc-header-rating {display:flex}
.evn-pillow .dc-logo {font-size:21px}
.evn-pillow .dc-header-cta {padding:11px 20px;font-size:12.5px}
.evn-pillow .dc-hd-full {display:inline}
.evn-pillow .dc-hd-short {display:none}
.evn-pillow .dc-hero {padding:46px 0 12px}
.evn-pillow .dc-hero-grid {grid-template-columns:1.05fr 1fr;grid-template-areas:"pills media""title media""sub media""checks media""cta media";align-items:start;column-gap:48px;display:grid}
.evn-pillow .dc-pills {grid-area:pills}
.evn-pillow .dc-h1 {grid-area:title}
.evn-pillow .dc-sub {grid-area:sub}
.evn-pillow .dc-hero-media {aspect-ratio:1;grid-area:media;align-self:center;margin-top:0}
.evn-pillow .dc-checks {grid-area:checks}
.evn-pillow .dc-hero-cta {grid-area:cta;align-items:flex-start}
.evn-pillow .dc-hero-cta .ln-btn {width:auto}
.evn-pillow .dc-hero-cta .dc-cta-note {justify-content:flex-start}
.evn-pillow .dc-trust-grid {grid-template-columns:repeat(4,1fr)}
.evn-pillow .dc-problems {grid-template-columns:repeat(3,1fr);gap:16px}
.evn-pillow .dc-split {grid-template-columns:1fr 1fr;gap:48px}
.evn-pillow .dc-split-media {aspect-ratio:4/3}
.evn-pillow .dc-split-rev .dc-split-media {order:2}
.evn-pillow .dc-ba {grid-template-columns:1fr 1fr;gap:22px;margin-top:40px}
.evn-pillow .dc-cards {grid-template-columns:repeat(4,1fr);gap:18px}
.evn-pillow .dc-reviews {grid-template-columns:repeat(3,1fr)}
.evn-pillow .dc-guarantee {text-align:left;align-items:center;gap:22px;padding:30px 34px;display:flex}
.evn-pillow .dc-guarantee-seal {flex:0 0 58px;margin:0}
.evn-pillow .dc-guarantee p {margin:6px 0 0}
.evn-pillow .dc-sticky {display:none}
.evn-pillow .dc-footer {padding-bottom:40px}
}
@media (max-width:360px){
.evn-pillow .dc-trust-grid, .evn-pillow .dc-cards {grid-template-columns:1fr 1fr}
}
.evn-pillow .dc-v2 .dc-tb-more {display:none}
.evn-pillow .dc-v2 .dc-echo {color:var(--text-muted);border-left:3px solid var(--accent);margin:0 0 2px;padding-left:11px;font-size:clamp(14px,3.6vw,17px);font-weight:600;line-height:1.4}
.evn-pillow .dc-v2 .dc-hero-media {aspect-ratio:3/2;margin-top:14px}
.evn-pillow .dc-v2 .dc-hero-cta, .evn-pillow .dc-v2 .dc-checks {margin-top:16px}
.evn-pillow .dc-v2 .dc-hero-proof {background:var(--bg-light);border-radius:var(--radius);border:1px solid var(--border);margin-top:16px;padding:13px 15px}
.evn-pillow .dc-v2 .dc-hero-proof-top {color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:7px;font-size:14px;display:flex}
.evn-pillow .dc-v2 .dc-hero-proof-top b {color:var(--ink);font-size:15px}
.evn-pillow .dc-v2 .dc-hero-proof-top .dc-stars {color:#6a7488;letter-spacing:1px}
.evn-pillow .dc-v2 .dc-hero-proof-q {color:var(--ink);margin:8px 0 4px;font-size:clamp(14.5px,3.7vw,17px);font-style:italic;line-height:1.45}
.evn-pillow .dc-v2 .dc-hero-proof-n {color:var(--text-muted);margin:0;font-size:13px;font-weight:700}
.evn-pillow .dc-timeline {gap:13px;margin-top:20px;display:grid}
.evn-pillow .dc-tl-step {border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;padding:16px 16px 16px 54px;position:relative}
.evn-pillow .dc-tl-num {background:var(--accent);width:27px;height:27px;color:var(--ink);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;position:absolute;top:15px;left:15px}
.evn-pillow .dc-tl-step b {color:var(--ink);margin-bottom:3px;font-size:16px;display:block}
.evn-pillow .dc-tl-step p {color:var(--text-muted);margin:0;font-size:15px;line-height:1.45}
.evn-pillow .dc-review-solo {max-width:640px;margin:0 auto}
.evn-pillow .dc-problems-3 {grid-template-columns:1fr}
.evn-pillow .dc-why {grid-template-columns:1fr;gap:12px}
.evn-pillow .dc-why .dc-card {padding-left:52px;position:relative}
.evn-pillow .dc-why-num {background:var(--primary-2);color:#fff;width:26px;height:26px;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:absolute;top:18px;left:16px}
.evn-pillow .dc-why-media {border-radius:var(--radius-lg);margin-top:18px;overflow:hidden}
.evn-pillow .dc-sizes {grid-template-columns:1fr;gap:11px}
@media (min-width:760px){
.evn-pillow .dc-v2 .dc-tb-more {display:inline-flex}
.evn-pillow .dc-timeline, .evn-pillow .dc-problems-3, .evn-pillow .dc-why, .evn-pillow .dc-sizes {grid-template-columns:repeat(3,1fr)}
.evn-pillow .dc-v2 .dc-hero-media {aspect-ratio:4/3}
}
@media (max-width:360px){
.evn-pillow .dc-v2 .dc-echo {padding-left:9px;font-size:13.5px}
.evn-pillow .dc-v2 .dc-hero-proof {padding:11px 12px}
}
.evn-pillow .dc-sticky.dc-sticky-off {opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;transform:translateY(100%)}
.evn-pillow .dc-sticky {transition:opacity .18s,transform .18s}
.evn-pillow .dc-v2 .dc-card p {color:var(--text-muted);margin:0;padding:0 14px 15px;font-size:14px;line-height:1.45}
.evn-pillow .dc-v2 .dc-card b {padding:14px 14px 5px;line-height:1.3}
.evn-pillow .dc-why-media {border-radius:var(--radius-lg);max-width:560px;box-shadow:var(--shadow);background:var(--bg-light);margin:20px auto 0;overflow:hidden}
.evn-pillow .dc-why-media img {width:100%;height:auto;display:block}
.evn-pillow .dc-final-trust img {object-fit:contain;background:#fff;border-radius:6px;width:46px;height:46px}
.evn-pillow .dc-v2 .dc-final-trust {justify-content:center;align-items:center;gap:10px}
.evn-pillow .dc-v2 .dc-cta-row {margin-top:24px}
.evn-pillow .dc-review p.dc-review-open {-webkit-line-clamp:unset;display:block}
.evn-pillow .dc-review-more {color:var(--primary-2,#16295a);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:2px 0;font-size:13.5px;font-weight:800;text-decoration:underline}
/* Placeholder gris pour les emplacements dont l'original est interdit (DMCA). */
.evn-pillow .dc-ph {background:#dfe3ec;color:#6a7488;text-align:center;justify-content:center;align-items:center;padding:18px;font-size:12.5px;font-weight:600;line-height:1.5;display:flex}
.evn-pillow .dc-ph span {max-width:32ch}
/* Logo image Insolya dans le header dc (la cible utilise un logo texte+SVG). */
.evn-pillow .dc-logo .dc-logo-img {width:auto;height:28px;display:block}
/* ============================================================
   /oreiller — clone fidèle de la page cible.
   Toutes les valeurs proviennent des feuilles de la cible
   (miroir/index.html + miroir/assets/style-*.css).
   ============================================================ */
.evn-pillow .pp-root {
  padding-bottom: 0;
}
/* ---------- header ---------- */
.evn-pillow .ln-header {
  position: sticky;
  top: 0;
  z-index: 50;
  -webkit-backdrop-filter: saturate(140%) blur(8px);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--border);
  background: #ffffffeb;
}
.evn-pillow .ln-header-inner {
  max-width: var(--container);
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  margin: 0 auto;
  padding: 16px 28px;
  display: grid;
}
.evn-pillow .ln-header-left {
  align-items: center;
  gap: 16px;
  min-width: 0;
  display: flex;
}
.evn-pillow .ln-header-actions {
  justify-content: flex-end;
  align-items: center;
  gap: 18px;
  font-size: 13px;
  display: flex;
}
.evn-pillow .ln-text-link {
  font-weight: 700;
  transition: color 0.15s;
}
.evn-pillow .ln-text-link:hover {
  color: var(--secondary);
}
/* nav desktop */
.evn-pillow .ln-nav {
  align-items: center;
  gap: 26px;
  font-size: 13.5px;
  font-weight: 700;
  display: flex;
}
.evn-pillow .ln-nav a, .evn-pillow .ln-nav-trigger {
  white-space: nowrap;
}
.evn-pillow .ln-nav a {
  color: var(--text-dark);
  transition: color 0.15s;
}
.evn-pillow .ln-nav a:hover {
  color: var(--secondary);
}
.evn-pillow .ln-nav-group {
  align-items: center;
  display: flex;
  position: relative;
}
.evn-pillow .ln-nav-trigger {
  font: inherit;
  color: var(--text-dark);
  cursor: pointer;
  background: 0 0;
  border: 0;
  align-items: center;
  gap: 6px;
  padding: 0;
  font-weight: 700;
  display: inline-flex;
  transition: color 0.15s;
}
.evn-pillow .ln-nav-trigger:hover {
  color: var(--secondary);
}
.evn-pillow .ln-nav-chevron {
  width: 12px;
  height: 12px;
  transition: transform 0.15s;
}
.evn-pillow .ln-nav-group:hover .ln-nav-chevron, .evn-pillow .ln-nav-group:focus-within .ln-nav-chevron {
  transform: rotate(180deg);
}
.evn-pillow .ln-nav-menu {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  min-width: 220px;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  z-index: 60;
  background: #fff;
  gap: 2px;
  padding: 8px;
  transition:
    opacity 0.16s,
    transform 0.16s;
  display: grid;
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translate(-50%) translateY(6px);
}
/* pont de survol entre le bouton et le menu (14px) */
.evn-pillow .ln-nav-menu::before {
  content: "";
  height: 14px;
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
}
.evn-pillow .ln-nav-group:hover .ln-nav-menu, .evn-pillow .ln-nav-group:focus-within .ln-nav-menu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%) translateY(0);
}
.evn-pillow .ln-nav-menu a {
  border-radius: var(--radius-sm);
  color: var(--text-dark);
  white-space: nowrap;
  padding: 11px 13px;
  font-size: 13.5px;
  font-weight: 700;
  display: block;
}
.evn-pillow .ln-nav-menu a:hover {
  background: var(--bg-light);
  color: var(--secondary);
}
/* logo */
.evn-pillow .ln-logo {
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  color: var(--ink);
  white-space: nowrap;
  align-items: center;
  gap: 10px;
  font-size: 25px;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
}
.evn-pillow .ln-logo-mark {
  width: 32px;
  height: 32px;
  color: var(--accent);
  justify-content: center;
  align-items: center;
  display: inline-flex;
}
.evn-pillow .ln-logo-mark svg {
  width: 100%;
  height: 100%;
}
.evn-pillow .ln-logo-text {
  font-weight: 700;
}
.evn-pillow .ln-logo-img {
  width: auto;
  height: 32px;
  display: block;
}
.evn-pillow .ln-logo-img--light {
  filter: brightness(0) invert(1);
}
.evn-pillow .dc-logo-img {
  width: auto;
  height: 28px;
  display: block;
}
/* boutons icône */
.evn-pillow .ln-icon-btn {
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  transition: background 0.15s;
  display: inline-flex;
}
.evn-pillow .ln-icon-btn:hover {
  background: var(--bg-light);
}
.evn-pillow .ln-icon-btn svg {
  width: 20px;
  height: 20px;
}
.evn-pillow .ln-cart-btn {
  position: relative;
}
.evn-pillow .ln-cart-badge {
  min-width: 18px;
  height: 18px;
  color: var(--ink);
  background: var(--accent);
  border: 2px solid var(--surface);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0 5px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  animation: 0.28s cubic-bezier(0.34, 1.56, 0.64, 1) ln-badge-in;
  display: inline-flex;
  position: absolute;
  top: -2px;
  right: -2px;
}
.evn-pillow .ln-cart-btn.bump {
  animation: 0.6s ln-cart-bump;
}
@keyframes ln-badge-in {
  0% {
    transform: scale(0);
  }
  to {
    transform: scale(1);
  }
}
@keyframes ln-cart-bump {
  0% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.22) rotate(-8deg);
  }
  55% {
    transform: scale(0.94) rotate(4deg);
  }
  to {
    transform: scale(1) rotate(0);
  }
}
@media (prefers-reduced-motion: reduce) {
.evn-pillow .ln-cart-badge, .evn-pillow .ln-cart-btn.bump {
    animation: none;
  }
}
.evn-pillow .ln-mobile-trigger {
  display: none;
}
/* ---------- drawer mobile ---------- */
.evn-pillow .ln-drawer-overlay {
  z-index: 90;
  opacity: 0;
  pointer-events: none;
  background: #0c163380;
  transition: opacity 0.2s;
  position: fixed;
  inset: 0;
}
.evn-pillow .ln-drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.evn-pillow .ln-drawer {
  background: var(--surface);
  z-index: 100;
  width: min(82vw, 340px);
  height: 100dvh;
  box-shadow: var(--shadow-lg);
  flex-direction: column;
  padding: 22px;
  transition: transform 0.25s;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  transform: translate(-100%);
}
.evn-pillow .ln-drawer.open {
  transform: translate(0);
}
.evn-pillow .ln-drawer-head {
  flex: none;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
  display: flex;
}
.evn-pillow .ln-drawer-links {
  overscroll-behavior: contain;
  flex: auto;
  gap: 4px;
  min-height: 0;
  display: grid;
  overflow-y: auto;
}
.evn-pillow .ln-drawer-links a {
  border-bottom: 1px solid var(--border);
  padding: 15px 6px;
  font-size: 16px;
  font-weight: 700;
  transition: opacity 0.15s;
}
.evn-pillow .ln-drawer-links a:active {
  opacity: 0.55;
}
.evn-pillow .ln-drawer-group {
  gap: 2px;
  display: grid;
}
.evn-pillow .ln-drawer-group-label {
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 18px 6px 4px;
  font-size: 11.5px;
  font-weight: 800;
}
.evn-pillow .ln-drawer-contact {
  text-align: center;
  background: var(--ink);
  color: #fff;
  letter-spacing: 0.06em;
  border-radius: 999px;
  flex: none;
  margin-top: 16px;
  padding: 16px;
  font-size: 13px;
  font-weight: 800;
}
/* ---------- badge praticiens ---------- */
.evn-pillow .pp-pract-card {
  border-radius: var(--radius);
  background: var(--primary);
  color: #fff;
  align-items: center;
  gap: 14px;
  padding: 15px 18px;
  display: flex;
}
.evn-pillow .pp-pract-seal {
  color: #fff;
  background: #ffffff1f;
  border-radius: 50%;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 46px;
  height: 46px;
  display: flex;
}
.evn-pillow .pp-pract-seal svg {
  width: 24px;
  height: 24px;
}
.evn-pillow .pp-pract-body b {
  margin-bottom: 3px;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
  display: block;
}
.evn-pillow .pp-pract-body p {
  color: #ffffffd1;
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
}
.evn-pillow .pp-pract-mobilewrap {
  max-width: var(--container);
  margin: 0 auto;
  padding: 14px 16px 0;
  display: block;
}
.evn-pillow .pp-pract-desktoponly {
  display: none;
}
.evn-pillow .pp-pract-desktoponly.pp-pract-card {
  margin-bottom: 16px;
}
@media (min-width: 901px) {
.evn-pillow .pp-pract-mobilewrap {
    display: none;
  }
.evn-pillow .pp-pract-desktoponly {
    display: flex;
  }
}
/* ---------- layout produit ---------- */
/* Items de la grille produit. SANS `min-width: 0`, un item de grille garde
   `min-width: auto` : il ne descend jamais sous son min-content, et la piste
   grossit avec lui. Sur mobile la colonne montait à 409 px dans un écran de
   375, et `.evn-pillow { overflow-x: clip }` COUPAIT le débordement au lieu
   de le faire défiler — 48 px du bloc offre étaient invisibles. */
.evn-pillow .pp-gallery,
.evn-pillow .pp-info {
  min-width: 0;
}

.evn-pillow .pp-wrap {
  max-width: var(--container);
  grid-template-columns: 1.05fr 0.95fr;
  align-items: start;
  gap: 56px;
  margin: 0 auto;
  padding: 40px 28px;
  display: grid;
}
/* ---------- galerie ---------- */
.evn-pillow .pp-gallery {
  gap: 14px;
  display: grid;
  position: sticky;
  top: 96px;
}
.evn-pillow .pp-stage-wrap {
  position: relative;
}
.evn-pillow .pp-stage {
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  align-items: flex-start;
  gap: 12px;
  display: flex;
  overflow: auto hidden;
}
.evn-pillow .pp-stage::-webkit-scrollbar {
  display: none;
}
.evn-pillow .pp-slide {
  aspect-ratio: 1;
  scroll-snap-align: start;
  border-radius: var(--radius-lg);
  background: var(--bg-light);
  flex: 0 0 88%;
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 0 0 1px #0c163314,
    0 1px 5px #0c16330d;
}
.evn-pillow .pp-slide .pp-img, .evn-pillow .pp-slide img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}
.evn-pillow .pp-stage-arrow {
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  z-index: 4;
  width: 42px;
  height: 42px;
  box-shadow: var(--shadow);
  color: var(--ink);
  cursor: pointer;
  background: #ffffffe6;
  border: 0;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  transition: background 0.15s;
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.evn-pillow .pp-stage-arrow:hover {
  background: #fff;
}
.evn-pillow .pp-stage-arrow.prev {
  left: 14px;
}
.evn-pillow .pp-stage-arrow.next {
  right: 14px;
}
.evn-pillow .pp-stage-arrow svg {
  width: 18px;
  height: 18px;
}
@media (min-width: 1024px) {
.evn-pillow .pp-stage-arrow {
    display: flex;
  }
}
.evn-pillow .pp-thumbs {
  scrollbar-width: thin;
  gap: 10px;
  margin-top: 4px;
  padding-bottom: 4px;
  display: flex;
  overflow-x: auto;
}
.evn-pillow .pp-thumbs::-webkit-scrollbar {
  height: 4px;
}
.evn-pillow .pp-thumbs::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 99px;
}
.evn-pillow .pp-thumb {
  aspect-ratio: 1;
  background: var(--bg-light);
  cursor: pointer;
  border: 2px solid #0000;
  border-radius: 12px;
  flex: 0 0 82px;
  padding: 0;
  transition: border-color 0.15s;
  position: relative;
  overflow: hidden;
}
.evn-pillow .pp-thumb.active {
  border-color: var(--ink);
}
.evn-pillow .pp-thumb .pp-img, .evn-pillow .pp-thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
/* ---------- encadré miel (atelier / promesse 30 nuits) ---------- */
.evn-pillow .pp-moneyback {
  border: 1.5px solid var(--accent-soft);
  border-radius: var(--radius);
  background: var(--cream);
  align-items: center;
  gap: 15px;
  margin-top: 18px;
  padding: 16px 18px;
  display: flex;
}
.evn-pillow .pp-moneyback-seal {
  border: 2px solid var(--accent);
  width: 54px;
  height: 54px;
  color: var(--primary-2);
  box-shadow: var(--shadow-sm);
  background: #fff;
  border-radius: 50%;
  flex: 0 0 54px;
  justify-content: center;
  align-items: center;
  display: flex;
}
.evn-pillow .pp-moneyback-seal svg {
  width: 27px;
  height: 27px;
}
.evn-pillow .pp-moneyback b {
  color: var(--ink);
  margin-bottom: 3px;
  font-size: 15px;
  display: block;
}
.evn-pillow .pp-moneyback p {
  color: var(--text-muted);
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
}
/* ---------- colonne d'achat ---------- */
.evn-pillow .pp-info {
  gap: 0;
  display: grid;
}
.evn-pillow .pp-rating-row {
  color: var(--text-muted);
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  font-size: 13.5px;
  display: flex;
}
.evn-pillow .pp-rating-row a {
  text-decoration: underline;
}
.evn-pillow .pp-title {
  margin: 0 0 12px;
  font-size: clamp(24px, 4vw, 48px);
}
.evn-pillow .pp-subtitle {
  color: var(--text-muted);
  margin: 0 0 20px;
  font-size: clamp(14.5px, 3.8vw, 17px);
  line-height: 1.55;
}
/* 4 micro-arguments */
.evn-pillow .pp-keygrid {
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin: 2px 0 24px;
  display: grid;
}
.evn-pillow .pp-keycell {
  text-align: center;
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  flex-direction: column;
  align-items: center;
  gap: 9px;
  padding: 16px 12px;
  display: flex;
}
.evn-pillow .pp-keycell-ico {
  border: 1px solid var(--border);
  width: 40px;
  height: 40px;
  color: var(--secondary);
  box-shadow: var(--shadow-sm);
  background: #fff;
  border-radius: 50%;
  flex: none;
  justify-content: center;
  align-items: center;
  display: flex;
}
.evn-pillow .pp-keycell-ico svg {
  width: 20px;
  height: 20px;
}
.evn-pillow .pp-keycell b {
  color: var(--ink);
  font-size: clamp(12.5px, 3.4vw, 14.5px);
  font-weight: 800;
  line-height: 1.25;
}
@media (max-width: 380px) {
.evn-pillow .pp-keygrid {
    grid-template-columns: 1fr;
  }
}
/* rareté */
.evn-pillow .pp-scarcity {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--cream);
  margin: 16px 0 6px;
  padding: 16px 18px;
}
.evn-pillow .pp-scarcity-top {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 3px;
  display: flex;
}
.evn-pillow .pp-scarcity-top b {
  color: var(--ink);
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 800;
  display: inline-flex;
}
.evn-pillow .pp-scarcity-top b svg {
  width: 16px;
  height: 16px;
  color: var(--danger);
}
.evn-pillow .pp-scarcity-sub {
  color: var(--text-muted);
  margin: 0 0 12px;
  font-size: 12.5px;
}
/* certification sécurité */
.evn-pillow .pp-cert {
  text-align: left;
  cursor: pointer;
  width: 100%;
  color: var(--primary-2);
  background: #eef8f2;
  border: 1.5px solid #bfe3cd;
  border-radius: 12px;
  align-items: flex-start;
  gap: 11px;
  margin: 16px 0;
  padding: 12px 14px;
  transition:
    border-color 0.15s,
    background 0.15s;
  display: flex;
}
.evn-pillow .pp-cert:hover {
  background: #e4f4ea;
  border-color: #9ad4b2;
}
.evn-pillow .pp-cert-ico {
  color: #fff;
  background: #157347;
  border-radius: 9px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 34px;
  height: 34px;
  display: inline-flex;
}
.evn-pillow .pp-cert-txt {
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  display: flex;
}
.evn-pillow .pp-cert-title {
  color: #146c43;
  font-size: 14.5px;
  font-weight: 800;
  line-height: 1.3;
}
.evn-pillow .pp-cert-sub {
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.4;
}
.evn-pillow .pp-cert-link {
  color: #157347;
  text-underline-offset: 2px;
  align-items: center;
  gap: 4px;
  margin-top: 5px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: underline;
  display: inline-flex;
}
.evn-pillow .pp-cert-link svg {
  transition: transform 0.15s;
}
.evn-pillow .pp-cert:hover .pp-cert-link svg {
  transform: translate(2px);
}
.evn-pillow .pp-cert-refs {
  color: var(--text-muted);
  margin: -8px 0 16px;
  font-size: 12px;
  line-height: 1.5;
}
.evn-pillow .pp-cert-refs b {
  color: #146c43;
  font-weight: 700;
}
.evn-pillow .pp-cert-refs a {
  color: #157347;
  text-underline-offset: 2px;
  text-decoration: underline;
}
/* seconde note */
.evn-pillow .pp-mini-photo-rating {
  color: var(--ink);
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 16px 0 -2px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.2;
  display: flex;
}
.evn-pillow .pp-mini-photo-rating .ln-stars {
  color: var(--ink);
}
/* ---------- bandeaux photo ---------- */
.evn-pillow .pm {
  overflow: hidden;
  -webkit-mask: linear-gradient(90deg, #0000, #000 6%, #000 94%, #0000);
  mask: linear-gradient(90deg, #0000, #000 6%, #000 94%, #0000);
}
/* L'écart est une marge par carte, surtout pas un `gap` : la boucle se referme
   sur -50% de la piste, or `gap` n'en pose qu'entre les cartes — la moitié
   tombait 8px à côté du raccord, d'où le sursaut à chaque tour. */
.evn-pillow .pm-track {
  width: max-content;
  will-change: transform;
  backface-visibility: hidden;
  animation: pm-scroll var(--pm-dur, 70s) linear infinite;
  display: flex;
}
.evn-pillow .pm-track > .pm-card {
  margin-right: 16px;
}
.evn-pillow .pm:hover .pm-track {
  animation-play-state: paused;
}
.evn-pillow .pm-card {
  height: 260px;
  box-shadow: var(--shadow-sm);
  background: #fff;
  border-radius: 18px;
  flex: none;
  overflow: hidden;
}
.evn-pillow .pm-card img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}
.evn-pillow .pm-compact {
  margin-top: 12px;
  margin-bottom: 14px;
  -webkit-mask: linear-gradient(90deg, #0000, #000 10%, #000 90%, #0000);
  mask: linear-gradient(90deg, #0000, #000 10%, #000 90%, #0000);
}
.evn-pillow .pm-compact .pm-track > .pm-card {
  margin-right: 8px;
}
.evn-pillow .pm-compact .pm-card {
  border-radius: 10px;
  box-shadow: 0 6px 16px -12px #0c163359;
}
.evn-pillow .pm-compact + .pp-packs-head {
  margin-top: 24px;
}
@keyframes pm-scroll {
  0% {
    transform: translate(0);
  }
  to {
    transform: translate(-50%);
  }
}
@media (max-width: 700px) {
.evn-pillow .pm-card {
    border-radius: 14px;
    height: 188px;
  }
.evn-pillow .pm {
    margin-top: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
.evn-pillow .pm-track {
    animation: none;
  }
.evn-pillow .pm {
    overflow-x: auto;
    -webkit-mask: none;
    mask: none;
  }
}
/* ---------- packs ---------- */
.evn-pillow .pp-packs-head {
  margin-bottom: 14px;
}
.evn-pillow .pp-packs-eyebrow {
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--text-muted);
  align-items: center;
  gap: 14px;
  font-size: 11.5px;
  font-weight: 800;
  display: flex;
}
.evn-pillow .pp-packs-eyebrow::before, .evn-pillow .pp-packs-eyebrow::after {
  content: "";
  background: var(--border);
  flex: 1;
  height: 1px;
}
.evn-pillow .pp-packs-title {
  font-family: var(--font-sans);
  color: var(--ink);
  margin-top: 10px;
  font-size: 18px;
  font-weight: 800;
}
.evn-pillow .pp-bundles {
  gap: 10px;
  margin-bottom: 14px;
  display: grid;
}
.evn-pillow .pp-bundle {
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  transition:
    border-color 0.15s,
    background 0.15s,
    box-shadow 0.15s;
  position: relative;
}
.evn-pillow .pp-bundle:hover {
  border-color: var(--secondary);
}
.evn-pillow .pp-bundle[data-active="true"] {
  border-color: var(--primary);
  background: var(--bg-light);
  border-width: 2px;
  box-shadow: 0 8px 22px -12px #16295a4d;
}
.evn-pillow .pp-bundle-head {
  text-align: left;
  cursor: pointer;
  background: 0 0;
  border: 0;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 16px 12px 46px;
  display: flex;
  position: relative;
}
.evn-pillow .pp-bundle-radio {
  border: 2px solid var(--border);
  background: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  transition: border-color 0.15s;
  position: absolute;
  top: 50%;
  left: 18px;
  transform: translateY(-50%);
}
.evn-pillow .pp-bundle[data-active="true"] .pp-bundle-radio {
  border-color: var(--primary);
}
.evn-pillow .pp-bundle[data-active="true"] .pp-bundle-radio::after {
  content: "";
  background: var(--primary);
  border-radius: 50%;
  width: 11px;
  height: 11px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.evn-pillow .pp-bundle-id {
  flex: 1;
  gap: 4px;
  min-width: 0;
  display: grid;
}
.evn-pillow .pp-bundle-name {
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
}
.evn-pillow .pp-bundle-perunit {
  color: var(--text-muted);
  margin-top: 8px;
  font-size: 12.5px;
  font-weight: 700;
  display: inline-block;
}
.evn-pillow .pp-bundle-save {
  width: fit-content;
  color: var(--primary);
  background: var(--accent-soft);
  border-radius: 6px;
  margin-top: 7px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 800;
  display: inline-block;
}
.evn-pillow .pp-bundle-price {
  color: var(--ink);
  white-space: nowrap;
  text-align: right;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
}
.evn-pillow .pp-bundle-price .c {
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 600;
  text-decoration: line-through;
  display: block;
}
.evn-pillow .pp-bundle-badge {
  background: var(--primary);
  color: #fff;
  z-index: 2;
  letter-spacing: 0.02em;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 800;
  position: absolute;
  top: -11px;
  right: 14px;
  box-shadow: 0 4px 10px -3px #16295a66;
}
.evn-pillow .pp-bundle-ages {
  gap: 6px;
  padding: 0 16px 12px 46px;
  display: grid;
}
/* ---- housse(s) offerte(s) des packs 3 et 4 ----
   Le bandeau vert de la carte annonce le cadeau ; ce bloc-ci le configure.
   Une housse a une taille et un motif, et rien de tout ça n'existe côté
   Shopify — c'est un cadeau, pas une variante — donc le choix ne survit que
   dans les attributs de la ligne de panier. */
.evn-pillow .pp-gift-config {
  display: grid;
  gap: 10px;
  padding: 0 16px 14px 46px;
}
.evn-pillow .pp-gift {
  background: #eaf8f0;
  border: 1px solid #b8e6cb;
  border-radius: 14px;
  padding: 12px;
  display: grid;
  gap: 10px;
}
.evn-pillow .pp-gift-head {
  align-items: center;
  gap: 12px;
  display: flex;
}
.evn-pillow .pp-gift-head > img {
  width: 54px;
  height: 54px;
  border-radius: 10px;
  border: 1.5px solid #fff;
  object-fit: cover;
  flex: none;
}
.evn-pillow .pp-gift-head b {
  color: var(--ink);
  font-size: 16px;
  font-weight: 800;
  display: block;
}
.evn-pillow .pp-gift-head span {
  align-items: baseline;
  gap: 7px;
  margin-top: 2px;
  display: flex;
}
.evn-pillow .pp-gift-head em {
  color: #0a6b38;
  font-size: 15.5px;
  font-weight: 800;
  font-style: normal;
}
.evn-pillow .pp-gift-head s {
  color: #7d8aa3;
  font-size: 14px;
  font-weight: 700;
}
.evn-pillow .pp-gift-row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 8px;
}
.evn-pillow .pp-gift-opt {
  min-height: 42px;
  padding: 8px 6px;
  border: 1.5px solid #dfe6f2;
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.evn-pillow .pp-gift-opt[data-on="true"] {
  border-color: var(--primary-2);
  border-width: 2px;
  background: #f3f6fc;
}
.evn-pillow .pp-gift-opt-img > img {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  object-fit: cover;
  flex: none;
}
.evn-pillow .pp-bundle-ages-label {
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}
.evn-pillow .pp-age-row {
  align-items: center;
  gap: 10px;
  display: flex;
}
.evn-pillow .pp-age-num {
  color: var(--text-muted);
  flex: none;
  width: 22px;
  font-size: 12px;
  font-weight: 800;
}
.evn-pillow .pp-age-row .pp-select {
  flex: 1;
}
.evn-pillow .pp-select {
  position: relative;
}
.evn-pillow .pp-select select {
  -webkit-appearance: none;
  appearance: none;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-light);
  width: 100%;
  color: var(--ink);
  cursor: pointer;
  padding: 10px 38px 10px 12px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
}
.evn-pillow .pp-select select:focus {
  border-color: var(--ink);
  outline: none;
}
.evn-pillow .pp-select svg {
  width: 18px;
  height: 18px;
  color: var(--text-muted);
  pointer-events: none;
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
}
/* champ date de l'encart délai */
.evn-pillow #vacation-return-date {
  -webkit-appearance: none;
  appearance: none;
}
.evn-pillow #vacation-return-date::-webkit-date-and-time-value {
  text-align: left;
}
/* ---------- paiement ---------- */
.evn-pillow .pp-or {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin: 16px 0 12px;
  font-size: 11px;
  font-weight: 800;
  display: flex;
}
.evn-pillow .pp-or::before, .evn-pillow .pp-or::after {
  content: "";
  background: var(--border);
  flex: 1;
  height: 1px;
}
.evn-pillow .pp-secure {
  color: var(--ink);
  justify-content: center;
  align-items: center;
  gap: 7px;
  margin: 14px 0 12px;
  font-size: 13px;
  font-weight: 700;
  display: flex;
}
.evn-pillow .pp-secure svg {
  width: 15px;
  height: 15px;
  color: var(--secondary);
}
.evn-pillow .pp-payrow {
  margin-top: 18px;
}
.evn-pillow .ln-paybadges {
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  display: flex;
}
.evn-pillow .ln-paybadges.center {
  justify-content: center;
}
.evn-pillow .ln-paybadge {
  line-height: 0;
  display: inline-flex;
}
.evn-pillow .ln-paybadge svg {
  border-radius: 4px;
  width: auto;
  height: 24px;
  display: block;
}
/* ---------- mini-avis ---------- */
.evn-pillow .mr {
  margin-top: 18px;
}
.evn-pillow .mr-card {
  text-align: left;
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 96px;
  padding: 13px 14px;
  transition: border-color 0.15s;
  display: flex;
}
.evn-pillow .mr-card:hover {
  border-color: var(--secondary);
}
.evn-pillow .mr-av {
  background: #fff;
  border-radius: 50%;
  flex: none;
  width: 46px;
  height: 46px;
  overflow: hidden;
}
.evn-pillow .mr-av img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}
.evn-pillow .mr-body {
  flex: 1;
  gap: 3px;
  min-width: 0;
  display: grid;
}
.evn-pillow .mr-top {
  align-items: center;
  gap: 8px;
  display: flex;
}
.evn-pillow .mr-top b {
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
}
.evn-pillow .mr-stars {
  color: var(--accent);
  gap: 1px;
  display: inline-flex;
}
.evn-pillow .mr-text {
  color: var(--text-dark);
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  font-size: 13px;
  line-height: 1.5;
  display: -webkit-box;
  overflow: hidden;
}
.evn-pillow .mr-arrow {
  color: var(--text-muted);
  flex: none;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}
.evn-pillow .mr-dots {
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
  display: flex;
}
.evn-pillow .mr-dots i {
  background: var(--border);
  border-radius: 50%;
  width: 6px;
  height: 6px;
  transition: all 0.2s;
}
.evn-pillow .mr-dots i[data-on="true"] {
  background: var(--primary);
  border-radius: 999px;
  width: 18px;
}
/* ---------- accordéon ---------- */
.evn-pillow .pp-details {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  margin-top: 26px;
  overflow: hidden;
}
.evn-pillow .faq-item {
  border-bottom: 1px solid var(--border);
}
.evn-pillow .faq-item:last-child {
  border-bottom: 0;
}
.evn-pillow .faq-item button {
  width: 100%;
}
.evn-pillow .faq-item .ans {
  padding: 0 22px 18px;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--text-muted);
}
.evn-pillow .faq-item .ans b {
  color: var(--ink);
}
/* ---------- barres collantes ---------- */
.evn-pillow .pp-stickybar {
  z-index: 75;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--border);
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: #fffffffa;
  align-items: center;
  gap: 12px;
  transition: transform 0.28s;
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  transform: translateY(120%);
  box-shadow: 0 -8px 30px -16px #0c163347;
}
.evn-pillow .pp-stickybar.show {
  transform: translateY(0);
}
.evn-pillow .pp-stickybar-info {
  flex: 1;
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex;
}
.evn-pillow .pp-stickybar-thumb {
  background: var(--bg-light);
  border-radius: 10px;
  flex: 0 0 44px;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  font-size: 22px;
  display: flex;
  overflow: hidden;
}
.evn-pillow .pp-stickybar-thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}
.evn-pillow .pp-stickybar .meta {
  min-width: 0;
}
.evn-pillow .pp-stickybar .meta b {
  color: var(--ink);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  display: block;
  overflow: hidden;
}
.evn-pillow .pp-stickybar .meta span {
  color: var(--text-muted);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 12.5px;
  display: block;
  overflow: hidden;
}
.evn-pillow .pp-stickybar-cta {
  flex: none;
  padding: 14px 22px;
}
.evn-pillow .offer-sticky {
  z-index: 90;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-top: 1px solid var(--border);
  background: #fffffff0;
  transition: transform 0.28s;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  transform: translateY(115%);
  box-shadow: 0 -6px 24px -14px #0c16334d;
}
.evn-pillow .offer-sticky.show {
  transform: translateY(0);
}
.evn-pillow .offer-sticky-btn {
  border-radius: 14px;
  padding: 13px 18px;
  font-size: 15px;
}
@media (min-width: 1024px) {
.evn-pillow .offer-sticky {
    display: none;
  }
}
/* bouton « retour en haut » : décalé quand une barre collante est visible */
.evn-pillow .ln-scrolltop {
  right: 18px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  background: var(--ink);
  color: #fff;
  width: 38px;
  height: 38px;
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  z-index: 80;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  transition:
    opacity 0.25s,
    transform 0.25s;
  display: flex;
  position: fixed;
  transform: translateY(10px);
}
.evn-pillow .ln-scrolltop.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.evn-pillow .ln-scrolltop:hover {
  background: #000;
}
.evn-pillow.lpn-sticky-active .ln-scrolltop, .evn-pillow.lpn-offersticky-active .ln-scrolltop {
  bottom: calc(84px + env(safe-area-inset-bottom, 0px));
}
/* ---------- points de rupture ---------- */
@media (max-width: 1024px) {
.evn-pillow .pp-wrap {
    gap: 40px;
  }
}
@media (max-width: 900px) {
.evn-pillow .ln-nav, .evn-pillow .ln-header-actions .ln-text-link {
    display: none;
  }
.evn-pillow .ln-mobile-trigger {
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    margin-left: -8px;
    display: inline-flex;
  }
.evn-pillow .ln-mobile-trigger svg {
    width: 22px;
    height: 22px;
  }
.evn-pillow .ln-header-inner {
    gap: 8px;
    padding: 12px 16px;
  }
.evn-pillow .ln-logo {
    font-size: 22px;
  }
.evn-pillow .pp-wrap {
    grid-template-columns: 1fr;
  }
.evn-pillow .pp-gallery {
    position: static;
  }
}
@media (max-width: 600px) {
.evn-pillow .pp-slide {
    flex-basis: 100%;
  }
.evn-pillow .pp-stage {
    gap: 0;
  }
.evn-pillow .pp-wrap {
    padding: 20px 14px;
  }
.evn-pillow .pp-thumb {
    flex-basis: 92px;
  }
.evn-pillow .pp-stickybar .meta span {
    display: none;
  }
}
@media (max-width:380px){

}
@media (max-width:600px) and (max-height:700px){

}
@media (min-width:1025px){

}

/* ---- Rétablir l'attribut `hidden` -----------------------------------------
   L'attribut HTML `hidden` ne vaut qu'une règle `display:none` de la feuille
   du navigateur : n'importe quelle déclaration `display` d'une feuille auteur
   la bat. Les fonds de modale et la barre collante étant en `display:flex`,
   ils restaient affichés malgré `hidden`.

   Le piège vient du portage : dans la source React ces composants n'étaient
   pas RENDUS tant qu'ils n'étaient pas ouverts ({ouvert && <Modal/>}), donc la
   question ne se posait pas. En les rendant toujours présents dans le DOM, il
   faut redonner la main à `hidden` — sélecteur d'attribut, qui gagne en
   spécificité sans recourir à !important.

   Le piège s'est présenté TROIS fois (fonds de modale en `display:flex`,
   puis la superposition play de la vidéo UGC, puis les libellés de la pastille
   son que leur media query remet en `display:inline`). D'où une règle unique
   et générale, scopée : `.evn-pillow [hidden]`.

   Le !important est ici justifié, pas paresseux : la règle est à spécificité
   (0,2,0), exactement comme `.evn-pillow .sa-playwrap` et consorts, et la
   feuille des sections se charge APRÈS — sans lui, elle perdrait l'arbitrage
   par ordre de déclaration. Compter sur l'ordre des feuilles serait fragile
   sur un thème. Et « caché veut dire caché » n'est pas une règle qu'une autre
   a vocation à renverser. La portée reste `.evn-pillow` : rien ne fuit vers
   Shrine.

   EXCEPTION : la barre collante n'utilise pas `hidden`. Elle a son propre
   mécanisme dans le CSS de la cible (`.pp-stickybar.show`, qui la fait
   glisser depuis translateY(120%)). C'est celui-là qu'on utilise. */
.evn-pillow [hidden]{display:none !important}

/* Pas de délai d'appui sur les barres collantes : `touch-action: manipulation`
   désactive le double-tap-pour-zoomer, qui coûte ~300 ms au premier appui. */
.evn-pillow .offer-sticky,
.evn-pillow .offer-sticky-btn,
.evn-pillow .pp-stickybar,
.evn-pillow .pp-stickybar-cta {
  touch-action: manipulation;
}
.evn-pillow .offer-sticky-btn:active,
.evn-pillow .pp-stickybar-cta:active {
  transform: scale(.985);
}


/* ---- housses offertes : compléments tactiles ------------------------------
   Les règles de mise en forme sont plus haut (.pp-gift, .pp-gift-head,
   .pp-gift-row, .pp-gift-opt), transcrites de la cible. Il ne manquait que
   le balisage, désormais émis par pack-selector.liquid. Ici uniquement ce
   que la cible n'avait pas besoin de dire : pas de délai d'appui, pas de
   survol sur écran tactile — le même piège que sur les barres collantes,
   qui obligeait Brahim à cliquer deux fois.
   Les règles de la PILE d'images des packs vivent dans oreiller-packs.css
   (source : CSS_EXTRA de build-harness.py) ; je les avais redupliquées ici
   en croyant qu'elles manquaient, deux fichiers se contredisaient.
   -------------------------------------------------------------------------- */
.evn-pillow .pp-gift-opt {
  touch-action: manipulation;
  min-width: 0;
  transition: border-color .12s, background-color .12s, transform .08s;
}
.evn-pillow .pp-gift-opt:active { transform: scale(.97); }
@media (hover: hover) {
  .evn-pillow .pp-gift-opt:hover { border-color: var(--primary-2); }
}
.evn-pillow .pp-gift-opt-img > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* « Ages 8 to 14 » sur trois colonnes : au plus juste sous 390 px. */
@media (max-width: 389px) {
  .evn-pillow .pp-gift-opt { font-size: 12px; padding: 8px 3px; }
}
