/* ============================================================
   UNIVERS DU CHIEN — Feuille de style  ·  « La Collection »
   reset · base · texture · layout · header+mega · hero ·
   marquee · collection · manifesto · approach · journal ·
   partners · newsletter · footer · forms · reveal
   ============================================================ */
/* Polices & tokens chargés via <link> dans le <head> (perf : pas de @import bloquant). */

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 20px); interpolate-size:allow-keywords; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
body{
  font-family:var(--font-sans); font-size:var(--fs-body); line-height:var(--lh-body);
  color:var(--ink); background:var(--cream); -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; font-feature-settings:"kern","liga","cv11"; overflow-x:hidden;
}
img,svg,picture{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button,input,textarea,select{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
::selection{ background:var(--accent); color:#fff; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
/* scrollbar raffinée (desktop) — chaleureuse, discrète */
@media (pointer:fine){
  html{ scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--ink) 24%,transparent) transparent; }
  ::-webkit-scrollbar{ width:13px; height:13px; }
  ::-webkit-scrollbar-track{ background:transparent; }
  ::-webkit-scrollbar-thumb{ background:color-mix(in srgb,var(--ink) 20%,transparent); border-radius:99px; border:3.5px solid var(--cream); background-clip:padding-box; }
  ::-webkit-scrollbar-thumb:hover{ background:color-mix(in srgb,var(--ink) 38%,transparent); background-clip:padding-box; }
}

/* ---------- type ---------- */
h1,h2,h3,h4{ font-family:var(--font-sans); font-weight:700; line-height:1.14; letter-spacing:-.02em; text-wrap:balance; }
h1{ font-size:var(--fs-h1); line-height:1.06; font-weight:800; letter-spacing:-.032em; }
h2{ font-size:var(--fs-h2); font-weight:800; letter-spacing:-.03em; }
h3{ font-size:var(--fs-h3); font-weight:700; letter-spacing:-.022em; }
.display{ font-family:var(--font-sans); }
em.mark{ font-style:normal; color:var(--accent); }
p{ color:var(--ink); text-wrap:pretty; }
strong{ font-weight:600; }

/* ---------- texture helpers ---------- */
.grain{ position:relative; }
.grain::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:var(--grain); background-size:180px; opacity:.05; mix-blend-mode:multiply;
}
.grain > *{ position:relative; z-index:1; }
.grain--dark::after{ mix-blend-mode:soft-light; opacity:.09; }

/* halo d'accent doux */
.glow{ position:absolute; border-radius:50%; filter:blur(50px); pointer-events:none; z-index:0; }
.glow--accent{ background:radial-gradient(circle, rgba(231,115,35,.30), transparent 68%); }
.glow--sage{ background:radial-gradient(circle, rgba(110,122,85,.22), transparent 68%); }

/* motif topographique (atlas) */
.topo{ position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.5; overflow:hidden; }
.topo svg{ width:100%; height:100%; }

/* ---------- layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.15rem,5vw,2.25rem); }
.container--wide{ max-width:var(--wide); }
.container--narrow{ max-width:var(--narrow); }
.section{ position:relative; padding-block:var(--section-y); }
.section--cream{ background:var(--cream); }
.section--paper{ background:var(--cream-hi); }
.section--deep{ background:var(--cream-deep); }
.section--espresso{ background:var(--espresso); color:var(--on-dark); }
.section--espresso h1,.section--espresso h2,.section--espresso h3{ color:#fff; }
.stack>*+*{ margin-top:var(--space-4); }
.measure{ max-width:var(--measure); }
.center{ text-align:center; }
.center.section-head{ margin-inline:auto; }
.grid-3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); }
@media (max-width:760px){ .grid-3{ grid-template-columns:1fr; } }

/* ---------- eyebrow / heads ---------- */
.eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-sans);
  font-size:var(--fs-eyebrow); font-weight:600; letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase; color:var(--accent-deep); }
.eyebrow::before{ content:""; width:26px; height:1.5px; background:currentColor; border-radius:2px; opacity:.7; }
.eyebrow--center{ justify-content:center; }
.eyebrow--sage{ color:var(--sage-deep); }
.eyebrow--light{ color:var(--accent-soft); }

.section-head{ max-width:760px; margin-bottom:var(--space-8); }
.section-head.center{ margin-inline:auto; }
.section-head h2{ margin-top:var(--space-4); }
.section-head p{ margin-top:var(--space-4); color:var(--ink-soft); font-size:var(--fs-lead); }
.section--espresso .section-head p{ color:var(--on-dark-soft); }
.lead{ font-size:var(--fs-lead); color:var(--ink-soft); line-height:1.6; }


/* ---------- buttons ---------- */
.btn{ --_bg:var(--ink); --_fg:#fff; --_bd:var(--ink);
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.85rem 1.5rem; border-radius:var(--radius-pill); background:var(--_bg); color:var(--_fg);
  border:1.5px solid var(--_bd); font-family:var(--font-sans); font-size:var(--fs-small); font-weight:600;
  cursor:pointer; transition:transform .18s var(--ease), background .2s, border-color .2s, box-shadow .2s, color .2s; white-space:nowrap; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.985); }
.btn:disabled,.btn[aria-disabled="true"]{ opacity:.5; cursor:not-allowed; box-shadow:none; }
.btn:disabled:hover,.btn[aria-disabled="true"]:hover{ transform:none; }
.btn--accent{ --_bg:var(--accent); --_fg:#fff; --_bd:var(--accent); box-shadow:0 6px 18px -8px rgba(231,115,35,.55); }
.btn--accent:hover{ --_bg:var(--accent-deep); --_bd:var(--accent-deep); box-shadow:0 12px 26px -8px rgba(231,115,35,.6); }
.btn--ghost{ --_bg:transparent; --_fg:var(--ink); --_bd:var(--hairline); }
.btn--ghost:hover{ --_bd:var(--ink); background:rgba(28,22,15,.03); }
.btn--light{ --_bg:var(--cream-hi); --_fg:var(--ink); --_bd:var(--cream-hi); box-shadow:var(--shadow-sm); }
.btn--onDark{ --_bg:var(--accent); --_fg:#fff; --_bd:var(--accent); }
.btn--lg{ padding:1.05rem 1.9rem; font-size:1rem; }
.btn--block{ display:flex; width:100%; }
.link-more{ display:inline-flex; align-items:center; gap:.45rem; font-family:var(--font-sans); font-weight:600; color:var(--accent-deep); font-size:var(--fs-small); }
.link-more svg{ transition:transform .2s var(--ease); }
.link-more:hover svg{ transform:translateX(4px); }

/* ---------- announce bar ---------- */
.announce{ background:var(--espresso); color:var(--on-dark); font-size:var(--fs-xs); }
.announce__row{ display:flex; align-items:center; justify-content:center; gap:.9rem; height:var(--announce-h); text-align:center; }
.announce b{ color:#fff; font-weight:600; }
.announce .dot{ width:5px; height:5px; border-radius:50%; background:var(--accent); flex:none; }
.announce a{ color:var(--accent-soft); font-weight:600; display:inline-flex; align-items:center; gap:.3rem; }
.announce a:hover{ color:#fff; }
@media (max-width:600px){
  .announce a.announce__link-extra, .announce .announce__cut{ display:none; }
  .announce__row{ height:auto; min-height:var(--announce-h); padding-block:.35rem; line-height:1.35; gap:.6rem; }
}

/* ---------- header ---------- */
.site-header{ position:sticky; top:0; z-index:100; background:color-mix(in srgb,var(--cream) 84%,transparent);
  backdrop-filter:saturate(150%) blur(14px); border-bottom:1px solid transparent; transition:border-color .3s, background .3s; }
.site-header.is-scrolled{ border-color:var(--hairline); background:color-mix(in srgb,var(--cream) 93%,transparent); box-shadow:0 1px 0 rgba(28,22,15,.02); }
.nav{ display:flex; align-items:center; gap:var(--space-6); height:var(--header-h); }
.nav__brand{ display:flex; align-items:center; margin-right:auto; }
.nav__brand img{ height:32px; width:auto; }
.nav__menu{ display:flex; align-items:center; gap:var(--space-2); list-style:none; padding:0; }
.nav__item{ position:relative; }
.nav__link{ display:inline-flex; align-items:center; gap:.35rem; padding:.5rem .7rem; border-radius:10px;
  font-family:var(--font-sans); font-size:var(--fs-small); font-weight:500; color:var(--ink-soft); transition:color .2s, background .2s; }
.nav__link:hover,.nav__item:focus-within>.nav__link,.nav__link[aria-current="page"]{ color:var(--ink); background:rgba(28,22,15,.04); }
.nav__link svg{ width:14px; height:14px; transition:transform .25s var(--ease); opacity:.6; }
.nav__item.has-mega:hover .nav__link svg,.nav__item.has-mega:focus-within .nav__link svg{ transform:rotate(180deg); }
.nav__actions{ display:flex; align-items:center; gap:var(--space-2); }
.icon-btn{ display:grid; place-items:center; width:40px; height:40px; border-radius:12px; border:1px solid var(--hairline);
  background:transparent; cursor:pointer; color:var(--ink); transition:border-color .2s, background .2s; }
.icon-btn:hover{ border-color:var(--ink); background:rgba(28,22,15,.03); }
.icon-btn svg{ width:18px; height:18px; }
.nav__login{ font-family:var(--font-sans); font-size:var(--fs-small); font-weight:500; color:var(--ink-soft); padding:.5rem .6rem; }
.nav__login:hover{ color:var(--ink); }
.nav__toggle{ display:none; background:none; border:0; padding:.4rem; cursor:pointer; }
.nav__toggle span{ display:block; width:22px; height:2px; background:var(--ink); border-radius:2px; transition:.3s var(--ease); }
.nav__toggle span+span{ margin-top:5px; }
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- mega-menu ---------- */
.mega{ position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(8px);
  width:min(920px, 92vw); background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); padding:var(--space-6); opacity:0; visibility:hidden; transition:.26s var(--ease); z-index:120; }
.nav__item.has-mega:hover .mega,.nav__item.has-mega:focus-within .mega,.mega.is-open{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.mega__grid{ display:grid; grid-template-columns:1fr 1fr 1.15fr; gap:var(--space-6); }
.mega__col h5{ font-family:var(--font-sans); font-size:var(--fs-eyebrow); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--ink-faint); margin-bottom:var(--space-4); }
.mega__list{ list-style:none; padding:0; display:grid; gap:.15rem; }
.mega__list a{ display:flex; align-items:center; gap:.7rem; padding:.55rem .6rem; border-radius:10px; font-size:var(--fs-small); color:var(--ink); transition:background .2s, transform .2s; }
.mega__list a:hover{ background:var(--cream); transform:translateX(2px); }
.mega__list .ic{ width:30px; height:30px; border-radius:8px; display:grid; place-items:center; background:var(--sage-wash); color:var(--sage-deep); flex:none; }
.mega__list .ic svg{ width:16px; height:16px; }
.mega__list .soon{ margin-left:auto; font-size:var(--fs-xs); color:var(--ink-faint); }
.mega__feature{ border-radius:var(--radius); overflow:hidden; background:var(--espresso); color:var(--on-dark); padding:var(--space-5);
  display:flex; flex-direction:column; gap:.5rem; position:relative; }
.mega__feature .pill{ align-self:flex-start; }
.mega__feature img{ position:absolute; right:-14px; bottom:-10px; width:96px; border-radius:8px; box-shadow:var(--shadow-md); transform:rotate(6deg); }
.mega__feature-title{ display:block; color:#fff; font-weight:700; font-size:1.15rem; letter-spacing:-.01em; max-width:11ch; }
.mega__feature .btn{ align-self:flex-start; margin-top:auto; }
.mega__foot{ margin-top:var(--space-5); padding-top:var(--space-4); border-top:1px solid var(--hairline); display:flex; justify-content:space-between; align-items:center; }

/* ---------- search overlay ---------- */
.search{ position:fixed; inset:0; z-index:200; display:none; }
.search.is-open{ display:block; }
.search__scrim{ position:absolute; inset:0; background:rgba(28,22,15,.42); backdrop-filter:blur(3px); }
.search__panel{ position:relative; max-width:640px; margin:12vh auto 0; background:var(--cream-hi); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:var(--space-5); animation:pop .3s var(--ease-spring); }
@keyframes pop{ from{ transform:translateY(14px) scale(.98); opacity:0; } }
.search__field{ display:flex; align-items:center; gap:.8rem; border:1.5px solid var(--hairline); border-radius:var(--radius); padding:.85rem 1rem; background:var(--paper); }
.search__field svg{ width:20px; height:20px; color:var(--ink-faint); flex:none; }
.search__field input{ border:0; outline:0; width:100%; background:transparent; font-size:1.1rem; }
.search__hint{ margin-top:var(--space-4); display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.search__hint span{ font-size:var(--fs-xs); color:var(--ink-faint); margin-right:.3rem; }

/* ---------- chips ---------- */
.chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .85rem; border-radius:var(--radius-pill);
  border:1px solid var(--hairline); background:var(--cream-hi); font-family:var(--font-sans); font-size:var(--fs-xs);
  font-weight:500; color:var(--ink-soft); cursor:pointer; transition:.2s var(--ease); }
.chip:hover{ border-color:var(--ink); color:var(--ink); transform:translateY(-1px); }
.chip[aria-pressed="true"]{ background:var(--ink); color:#fff; border-color:var(--ink); }
.pill{ display:inline-flex; align-items:center; gap:.4rem; padding:.3rem .7rem; border-radius:var(--radius-pill);
  background:var(--accent-wash); color:var(--accent-deep); font-family:var(--font-sans); font-size:var(--fs-eyebrow);
  font-weight:600; text-transform:uppercase; letter-spacing:.09em; }
.pill--sage{ background:var(--sage-wash); color:var(--sage-deep); }
.pill--dark{ background:rgba(255,255,255,.1); color:#fff; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; overflow:hidden; padding-block:clamp(3rem,2rem+5vw,5.5rem) 0; }
.hero .glow--accent{ width:640px; height:640px; top:-220px; right:-180px; }
.hero .glow--sage{ width:520px; height:520px; bottom:-260px; left:-200px; }
.hero__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(2rem,4vw,4.5rem); align-items:center; min-height:min(78vh,640px); }
.hero__eyebrow{ margin-bottom:var(--space-5); }
.hero h1{ font-family:var(--font-sans); font-size:clamp(2.7rem,1.5rem+3.9vw,4.5rem); line-height:1.05; font-weight:800; letter-spacing:-.033em; }
.hero h1 .accent{ color:var(--accent); }
.hero__lead{ margin-top:var(--space-6); max-width:38ch; font-size:var(--fs-lead); color:var(--ink-soft); }
.hero__cta{ margin-top:var(--space-7); display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center; }
.hero__meta{ margin-top:var(--space-6); display:flex; flex-wrap:wrap; gap:var(--space-5); align-items:center; }
.hero__meta-item{ display:flex; flex-direction:column; }
.hero__meta-item .n{ font-family:var(--font-display); font-size:1.6rem; font-weight:600; line-height:1; }
.hero__meta-item .l{ font-size:var(--fs-xs); color:var(--ink-faint); margin-top:.25rem; text-transform:uppercase; letter-spacing:.1em; }
.hero__meta-sep{ width:1px; height:34px; background:var(--hairline); }
.hero__stars{ color:var(--accent); letter-spacing:.05em; font-size:.95rem; }

/* collage à droite */
.hero__stage{ position:relative; aspect-ratio:1/1; display:grid; place-items:center; }
.hero__disc{ position:absolute; width:78%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 50% 40%, var(--accent-wash), var(--cream-deep) 70%); border:1px solid var(--hairline-2); }
.hero__disc::after{ content:""; position:absolute; inset:8%; border-radius:50%; border:1px dashed var(--hairline); }
.hero__cover{ position:absolute; width:46%; border-radius:12px; overflow:hidden; box-shadow:var(--shadow-cover); background:var(--paper); }
.hero__cover img{ width:100%; }
.hero__cover--front{ transform:rotate(-6deg) translate(-16%,6%); z-index:3; }
.hero__cover--back{ transform:rotate(7deg) translate(20%,-8%); z-index:2; width:44%; }
.hero__float{ position:absolute; z-index:4; display:inline-flex; align-items:center; gap:.5rem; padding:.5rem .85rem;
  background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-pill);
  box-shadow:var(--shadow-md); font-family:var(--font-sans); font-size:var(--fs-xs); font-weight:600; color:var(--ink);
  animation:floaty 6s var(--ease) infinite; }
.hero__float .dot{ width:8px; height:8px; border-radius:50%; }
.hero__float--1{ top:8%; left:2%; animation-delay:0s; }
.hero__float--2{ top:34%; right:-2%; animation-delay:-2s; }
.hero__float--3{ bottom:12%; left:8%; animation-delay:-4s; }
.hero__vol{ position:absolute; z-index:4; bottom:2%; right:4%; font-family:var(--font-sans); font-style:normal; font-weight:500;
  font-size:.92rem; color:var(--ink-soft); background:var(--cream-hi); border:1px solid var(--hairline);
  padding:.35rem .8rem; border-radius:var(--radius-pill); box-shadow:var(--shadow-sm); }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
.hero__paw{ position:absolute; width:34px; opacity:.5; color:var(--accent); z-index:1; }
.hero__paw--a{ top:16%; right:20%; }
.hero__paw--b{ bottom:24%; right:12%; width:22px; opacity:.35; }

/* bandeau défilant de thèmes */
.marquee{ margin-top:clamp(2rem,4vw,3.5rem); border-block:1px solid var(--hairline); background:var(--cream-hi); overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.marquee__track{ display:flex; gap:0; width:max-content; animation:scrollx 52s linear infinite; will-change:transform; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{ display:inline-flex; align-items:center; gap:.55rem; padding-inline:1.4rem; font-family:var(--font-sans);
  font-style:normal; font-weight:500; font-size:1rem; color:var(--ink-soft); white-space:nowrap; }
.marquee__item::after{ content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); opacity:.5; margin-left:1.4rem; flex:none; }
@keyframes scrollx{ to{ transform:translateX(-50%); } }

@media (max-width:900px){
  .hero__grid{ grid-template-columns:1fr; gap:var(--space-7); min-height:0; }
  .hero__stage{ order:-1; max-width:420px; margin-inline:auto; width:100%; }
  .hero__lead{ max-width:48ch; }
}

/* ============================================================
   TRUST STRIP
   ============================================================ */
.trust{ background:var(--espresso); color:var(--on-dark); }
.trust__row{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,3vw,2.5rem); padding-block:var(--space-6); }
.trust__item{ display:flex; align-items:center; gap:.8rem; font-size:var(--fs-small); color:var(--on-dark-soft); }
.trust__item svg{ width:26px; height:26px; color:var(--accent-soft); flex:none; }
.trust__item b{ color:#fff; font-weight:600; display:block; font-family:var(--font-display); }
@media (max-width:820px){ .trust__row{ grid-template-columns:1fr 1fr; gap:var(--space-5); } }
@media (max-width:460px){ .trust__row{ grid-template-columns:1fr; } }

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto{ position:relative; overflow:hidden; }
.manifesto .glow--accent{ width:600px; height:600px; top:-200px; left:50%; transform:translateX(-50%); opacity:.5; }
.manifesto__inner{ max-width:900px; margin-inline:auto; text-align:center; position:relative; }
.manifesto__q{ font-family:var(--font-sans); font-size:var(--fs-display); line-height:1.1; font-weight:800; letter-spacing:-.03em; text-wrap:balance; }
.manifesto__q em{ font-style:normal; color:var(--accent); }
.manifesto__sign{ margin-top:var(--space-6); display:inline-flex; align-items:center; gap:.7rem; color:var(--ink-faint); font-size:var(--fs-small); }
.manifesto__sign::before{ content:""; width:34px; height:1px; background:var(--hairline); }

/* ============================================================
   COLLECTION
   ============================================================ */
.collection{ position:relative; }
.collection__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--space-5); margin-bottom:var(--space-6); }
.collection__head .section-head{ margin-bottom:0; }
.filters{ display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:var(--space-7); }

.vol-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.1rem,2vw,1.6rem); }
@media (max-width:940px){ .vol-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .vol-grid{ grid-template-columns:1fr; } }

.vol{ position:relative; display:flex; flex-direction:column; background:var(--cream-hi); border:1px solid var(--hairline);
  border-radius:var(--radius-lg); padding:var(--space-5); transition:transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.vol--live:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--hairline-2); }
.vol__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-4); }
.vol__no{ font-family:var(--font-sans); font-style:normal; font-size:var(--fs-xs); font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-faint); }
.vol__cover{ border-radius:12px; overflow:hidden; box-shadow:var(--shadow-sm); aspect-ratio:1/1.32; background:var(--cream);
  display:grid; place-items:center; }
.vol__cover img{ width:100%; height:100%; object-fit:cover; transition:transform .55s var(--ease); }
.vol--live:hover .vol__cover img{ transform:scale(1.045); }
.vol__format{ font-family:var(--font-sans); font-size:var(--fs-xs); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.vol__cat{ font-family:var(--font-sans); font-size:var(--fs-xs); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--sage-deep); margin:var(--space-4) 0 .3rem; }
.vol h3{ font-size:1.3rem; margin-bottom:.5rem; letter-spacing:-.02em; }
.vol p{ font-size:var(--fs-small); color:var(--ink-soft); }
.vol__foot{ margin-top:auto; padding-top:var(--space-5); }
/* prix — composition éditoriale */
.vol__price{ display:flex; align-items:center; gap:.7rem; margin-bottom:var(--space-5); }
.vol__price-now{ font-size:1.75rem; font-weight:700; letter-spacing:-.025em; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; }
.vol__price-old{ display:inline-flex; flex-direction:column; gap:.1rem; }
.vol__price-old .was{ font-size:var(--fs-xs); color:var(--ink-faint); text-decoration:line-through; text-decoration-thickness:1px; font-variant-numeric:tabular-nums; }
.vol__price-old .off{ font-size:var(--fs-xs); font-weight:700; letter-spacing:.02em; color:var(--accent-deep); }
.vol__actions{ display:flex; gap:.6rem; }
.vol__actions .btn--accent{ flex:1; }

/* carte "à venir" */
.vol--soon{ background:transparent; border-style:dashed; border-color:var(--hairline); }
.vol--soon .vol__cover{ background:var(--cream-deep); box-shadow:none; color:var(--ink-faint); }
.vol--soon .vol__cover svg{ width:40px; height:40px; opacity:.5; }
.vol--soon h3{ color:var(--ink-soft); }
.vol__soon-tag{ display:inline-flex; align-items:center; gap:.4rem; font-size:var(--fs-xs); font-weight:600; color:var(--ink-faint); white-space:nowrap; }

.collection__cta{ margin-top:var(--space-8); display:flex; flex-direction:column; align-items:center; gap:var(--space-4); text-align:center; }

/* ============================================================
   APPROACH (3 principes éditoriaux)
   ============================================================ */
.approach{ position:relative; overflow:hidden; }
.approach .topo{ opacity:.4; }
.principle{ display:grid; grid-template-columns:auto 1fr; gap:var(--space-5); align-items:start; padding-block:var(--space-6);
  border-top:1px solid rgba(239,231,217,.16); }
.principle:first-of-type{ border-top:0; }
.principle__no{ font-family:var(--font-sans); font-size:clamp(2.3rem,4.5vw,3.4rem); font-weight:800; font-style:normal;
  color:var(--accent-soft); line-height:.95; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.principle__body h3{ color:#fff; font-size:var(--fs-h3); margin-bottom:.5rem; }
.principle__body p{ color:var(--on-dark-soft); max-width:52ch; }
.approach__aside{ align-self:center; }
.approach__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
@media (max-width:860px){ .approach__grid{ grid-template-columns:1fr; gap:var(--space-6); } }

/* ============================================================
   JOURNAL
   ============================================================ */
.journal__grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(1.5rem,3vw,2.5rem); }
@media (max-width:860px){ .journal__grid{ grid-template-columns:1fr; } }
.post{ display:block; border-radius:var(--radius-lg); overflow:hidden; transition:transform .3s var(--ease); }
.post:hover{ transform:translateY(-3px); }
.post--lead{ background:var(--espresso); color:var(--on-dark); padding:clamp(1.75rem,3vw,2.5rem); display:flex; flex-direction:column; justify-content:flex-end; min-height:340px; position:relative; overflow:hidden; }
.post--lead .glow--accent{ width:360px; height:360px; top:-140px; right:-120px; opacity:.6; }
.post-lead__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .6s var(--ease); }
.post-lead__scrim{ position:absolute; inset:0; z-index:0; background:linear-gradient(165deg, rgba(28,20,12,.28) 0%, rgba(16,11,6,.86) 82%); }
.post--lead:hover .post-lead__bg{ transform:scale(1.04); }
.post--lead h3{ color:#fff; font-size:var(--fs-h2); max-width:16ch; margin:var(--space-3) 0; position:relative; }
.post--lead p{ color:var(--on-dark-soft); max-width:44ch; position:relative; }
.post--lead .link-more{ color:var(--accent-soft); margin-top:var(--space-4); position:relative; }
.post-list{ display:grid; gap:var(--space-4); }
.post-row{ display:grid; grid-template-columns:auto 1fr; gap:var(--space-4); align-items:center; padding:var(--space-4);
  border:1px solid var(--hairline); border-radius:var(--radius); background:var(--cream-hi); transition:.25s var(--ease); }
.post-row:hover{ border-color:var(--ink); transform:translateX(3px); }
.post-row__ic{ width:58px; height:58px; border-radius:12px; overflow:hidden; background:var(--cream-deep); flex:none; }
.post-row__ic svg{ width:20px; height:20px; }
.post-row__ic img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.post-row:hover .post-row__ic img{ transform:scale(1.06); }
.post-row__cat{ font-size:var(--fs-xs); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.post-row h3{ font-family:var(--font-sans); font-size:1.08rem; font-weight:600; letter-spacing:-.015em; line-height:1.3; margin-top:.2rem; }

/* ============================================================
   PARTNERS
   ============================================================ */
.partner-cards{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.25rem,2.5vw,2rem); }
@media (max-width:820px){ .partner-cards{ grid-template-columns:1fr; } }
.partner-card{ display:flex; flex-direction:column; background:var(--cream-hi); border:1px solid var(--hairline);
  border-radius:var(--radius-lg); padding:clamp(1.75rem,3vw,2.6rem); position:relative; overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.partner-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--hairline-2); }
.partner-card__head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:var(--space-4); }
.partner-card__logo{ height:34px; display:flex; align-items:center; }
.partner-card__logo img{ max-height:34px; max-width:150px; width:auto; object-fit:contain; }
.partner-card__seal{ display:inline-flex; align-items:center; gap:.4rem; font-size:var(--fs-xs); font-weight:600; letter-spacing:.01em; color:var(--sage-deep); white-space:nowrap; }
.partner-card > .pill{ align-self:flex-start; margin-bottom:var(--space-3); }
.partner-card h3{ font-size:var(--fs-h3); max-width:20ch; }
.partner-card__desc{ color:var(--ink-soft); margin-top:var(--space-3); font-size:var(--fs-small); max-width:40ch; }
.partner-card__benefits{ list-style:none; padding:0; margin:var(--space-5) 0; display:grid; gap:.75rem; }
.partner-card__benefits li{ position:relative; padding-left:1.9rem; font-size:var(--fs-small); color:var(--ink); }
.partner-card__benefits li::before{ content:""; position:absolute; left:0; top:.05rem; width:19px; height:19px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C25812' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
.partner-card__foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:var(--space-2); }
.partner-card__tag{ display:inline-flex; align-items:center; gap:.45rem; font-size:var(--fs-xs); color:var(--ink-faint); white-space:nowrap; }
.partner-card__tag::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); opacity:.6; }
@media (max-width:420px){ .partner-card__foot{ flex-direction:column; align-items:flex-start; } .partner-card__foot .btn{ width:100%; } }
.partners-note{ display:block; max-width:640px; margin:0 auto var(--space-7);
  text-align:center; font-size:var(--fs-small); color:var(--ink-soft); line-height:1.6; text-wrap:pretty; }
.partners-note svg{ display:inline-block; width:17px; height:17px; color:var(--sage-deep); vertical-align:-.2em; margin-right:.5rem; }
.partners-note b{ color:var(--ink); font-weight:600; }
@media (max-width:520px){ .partners-note{ flex-direction:column; gap:.4rem; } }

/* ============================================================
   NEWSLETTER
   ============================================================ */
.newsletter-form{ display:flex; gap:.6rem; max-width:460px; margin:var(--space-6) auto 0; position:relative; }
.newsletter-form input{ flex:1; padding:.95rem 1.2rem; border-radius:var(--radius-pill); border:1.5px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); color:#fff; }
.newsletter-form input::placeholder{ color:var(--on-dark-soft); }
.newsletter-form input:focus-visible{ outline-color:var(--accent); border-color:transparent; }
.form-note{ font-size:var(--fs-small); color:var(--on-dark-soft); margin-top:var(--space-3); position:relative; }
@media (max-width:480px){ .newsletter-form{ flex-direction:column; } }

/* ---------- forms (auth/contact) ---------- */
.field{ display:block; margin-bottom:var(--space-4); }
.field label{ display:block; font-size:var(--fs-small); font-weight:600; margin-bottom:.4rem; }
.input{ width:100%; padding:.9rem 1rem; border-radius:var(--radius); border:1.5px solid var(--hairline); background:var(--paper); transition:border-color .2s, box-shadow .2s; }
.input:focus-visible{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-wash); }
.form-card{ max-width:440px; margin-inline:auto; background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:clamp(1.5rem,4vw,2.5rem); box-shadow:var(--shadow-sm); }
.form-msg{ font-size:var(--fs-small); padding:.7rem .9rem; border-radius:var(--radius); margin-bottom:var(--space-4); display:none; }
.form-msg.is-error{ display:block; background:#FBEAE8; color:var(--danger); }
.form-msg.is-success{ display:block; background:#E7F4EE; color:var(--success); }

/* ============================================================
   FOOTER — dernière section éditoriale (compacte, premium)
   ============================================================ */
.site-footer{ background:var(--espresso); color:var(--on-dark-soft); position:relative; overflow:hidden; }
.site-footer .glow--accent{ width:520px; height:520px; top:-260px; right:-140px; opacity:.5; }

/* bandeau newsletter en tête de footer */
.footer-cta{ position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,4rem); align-items:center;
  padding-block:clamp(2.5rem,5vw,4rem); border-bottom:1px solid rgba(239,231,217,.12); }
.footer-cta__head h3{ color:#fff; font-size:var(--fs-h2); max-width:18ch; }
.footer-cta__head p{ color:var(--on-dark-soft); font-size:var(--fs-small); margin-top:var(--space-3); max-width:44ch; }
.footer-cta__form .newsletter-form{ margin:0; max-width:none; }
.footer-cta__form .form-note{ text-align:left; }

/* corps du footer : liens */
.footer-main{ position:relative; display:grid; grid-template-columns:1.8fr 1fr 1.3fr; gap:clamp(2rem,5vw,5rem);
  padding-block:clamp(3rem,5vw,4.5rem); border-bottom:1px solid rgba(239,231,217,.1); }
.footer-brand img{ height:30px; filter:brightness(0) invert(1); }
.footer-brand p{ font-size:var(--fs-small); color:var(--on-dark-soft); max-width:36ch; margin-top:var(--space-4); }
.footer-social{ display:flex; gap:.55rem; margin-top:var(--space-6); }
.footer-social a{ width:38px; height:38px; border-radius:10px; border:1px solid rgba(239,231,217,.16); display:grid; place-items:center;
  color:var(--on-dark-soft); transition:.22s var(--ease); }
.footer-social a:hover{ color:#fff; border-color:#fff; transform:translateY(-2px); }
.footer-social svg{ width:17px; height:17px; }

.footer-col h4{ font-family:var(--font-sans); color:#fff; font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.13em; margin-bottom:var(--space-5); }
.footer-col ul{ list-style:none; padding:0; display:grid; gap:.75rem; }
.footer-col a{ font-size:var(--fs-small); color:var(--on-dark-soft); transition:color .2s, transform .2s; display:inline-block; }
.footer-col a:hover{ color:#fff; transform:translateX(2px); }

/* méthodes populaires : mini "dos de livre" */
.footer-methods{ display:grid; gap:var(--space-4); }
.footer-method{ display:flex; align-items:center; gap:.8rem; }
.footer-method img{ width:38px; aspect-ratio:1/1.32; object-fit:cover; border-radius:5px; box-shadow:var(--shadow-sm); }
.footer-method .m{ display:flex; flex-direction:column; }
.footer-method .m b{ color:#fff; font-weight:600; font-size:var(--fs-small); font-family:var(--font-sans); }
.footer-method .m span{ font-size:var(--fs-xs); color:var(--accent-soft); margin-top:.1rem; }

/* articles */

/* barre légale */
.footer-legal{ position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--space-4);
  padding-block:var(--space-5); font-size:var(--fs-small); color:rgba(239,231,217,.58); }
.footer-legal__links{ display:flex; flex-wrap:wrap; gap:var(--space-5); }
.footer-legal a{ color:rgba(239,231,217,.58); transition:color .2s; }
.footer-legal a:hover{ color:#fff; }

@media (max-width:900px){
  .footer-cta{ grid-template-columns:1fr; gap:var(--space-5); }
  .footer-main{ grid-template-columns:1fr 1fr; row-gap:var(--space-7); column-gap:var(--space-6); }
  .footer-brand{ grid-column:1 / -1; }
}
@media (max-width:540px){
  .footer-main{ grid-template-columns:1fr; }
  .footer-legal{ flex-direction:column; align-items:flex-start; }
}

/* ---------- mobile nav ---------- */
@media (max-width:980px){
  /* .site-header (backdrop-filter) est le bloc conteneur du menu fixed → top relatif au header, donc le menu suit le header automatiquement */
  .nav__menu{ position:fixed; inset:var(--header-h) 0 auto 0; flex-direction:column; align-items:stretch;
    gap:.2rem; background:var(--cream); padding:var(--space-5) clamp(1.15rem,5vw,2rem) var(--space-7); border-bottom:1px solid var(--hairline);
    box-shadow:var(--shadow-md); transform:translateY(-10px); opacity:0; pointer-events:none; transition:.28s var(--ease);
    max-height:calc(100dvh - var(--header-h)); overflow-y:auto; }
  .nav__menu.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav__link{ font-size:1.1rem; padding:.7rem; }
  .nav__toggle{ display:block; }
  .nav__actions .btn--accent{ display:none; }
  .mega{ position:static; transform:none; width:100%; box-shadow:none; border:0; background:transparent; padding:.4rem 0 .8rem; opacity:1; visibility:visible; }
  .mega__grid{ grid-template-columns:1fr; gap:var(--space-4); }
  .mega__feature{ display:none; }
  .nav__item.has-mega .nav__link svg{ display:none; }
}

/* ---------- tactile : pas d'état hover « collant » ---------- */
@media (hover:none){
  .vol--live:hover, .partner-card:hover, .post:hover, .post-row:hover,
  .btn:hover, .chip:hover, .footer-method:hover{ transform:none; }
  .vol--live:hover, .partner-card:hover{ box-shadow:none; }
  .btn:active{ transform:scale(.98); }
}

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.09s; }
.reveal[data-delay="2"]{ transition-delay:.18s; }
.reveal[data-delay="3"]{ transition-delay:.27s; }
.reveal[data-delay="4"]{ transition-delay:.36s; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } .hero__float{ animation:none; } .marquee__track{ animation:none; } }

/* ============================================================
   COLLECTION — système de couverture éditorial (.book)
   Même cadre pour toute la collection, variation par sujet (--c + icône).
   Échelle via container queries → net à toutes les tailles.
   ============================================================ */
.book{ container-type:inline-size; position:relative; width:100%; aspect-ratio:565/800; border-radius:12px; overflow:hidden;
  background:var(--cream); box-shadow:var(--shadow-sm); display:block;
  --c:var(--accent); --cw:color-mix(in srgb, var(--c) 15%, var(--cream)); }
.book::before{ content:""; position:absolute; inset:0; background:radial-gradient(115% 75% at 82% 6%, var(--cw), transparent 58%); }
.book::after{ content:""; position:absolute; inset:0; background-image:var(--grain); background-size:130px; opacity:.05; mix-blend-mode:multiply; pointer-events:none; }
.book__spine{ position:absolute; left:0; top:0; bottom:0; width:2.2cqw; background:var(--c); }
.book__pad{ position:relative; z-index:1; display:flex; flex-direction:column; height:100%; padding:8.5cqw 8cqw 7cqw 10cqw; }
.book__top{ display:flex; align-items:center; justify-content:space-between; }
.book__kicker{ font-weight:800; font-size:3.1cqw; letter-spacing:.24em; text-transform:uppercase; color:var(--accent-deep); }
.book__num{ font-weight:700; font-size:3cqw; letter-spacing:.12em; color:var(--c); }
.book__title{ display:block; font-family:var(--font-sans); font-weight:800; letter-spacing:-.03em; line-height:1.02; font-size:11cqw; color:var(--ink); margin-top:7cqw; text-wrap:balance; }
.book__sub{ display:block; font-size:3.5cqw; line-height:1.3; color:var(--ink-soft); margin-top:2.5cqw; max-width:26ch; }
.book__art{ margin-top:auto; margin-bottom:auto; align-self:center; width:44cqw; height:44cqw; color:var(--c); display:grid; place-items:center; }
.book__art svg{ width:100%; height:100%; }
.book__brand{ display:flex; align-items:center; gap:1.6cqw; justify-content:center; font-weight:800; font-size:3cqw; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); }
.book__brand svg{ width:4.4cqw; height:4.4cqw; color:var(--accent); }
/* sujets */
.book[data-subject="laisse"]     { --c:#E77323; }
.book[data-subject="proprete"]   { --c:#6E7A55; }
.book[data-subject="aboiements"] { --c:#C6892E; }
.book[data-subject="solitude"]   { --c:#5B7C9E; }
.book[data-subject="rappel"]     { --c:#4F7A57; }
.book[data-subject="chiot"]      { --c:#B06A4E; }

/* méthode page : la couverture est un .book, pas un <img> */
.vol__cover--book{ display:block; aspect-ratio:auto; background:transparent; box-shadow:none; border-radius:0; overflow:visible; }

/* ============================================================
   PAGE SIMPLE (hero de sous-page)
   ============================================================ */
.page-hero{ position:relative; overflow:hidden; padding-block:clamp(2.5rem,2rem+4vw,4.5rem) clamp(1.5rem,3vw,2.5rem); }
.page-hero .glow--accent{ width:520px; height:520px; top:-240px; right:-160px; }
.breadcrumb{ display:flex; align-items:center; gap:.5rem; font-size:var(--fs-small); color:var(--ink-faint); margin-bottom:var(--space-4); flex-wrap:wrap; }
.breadcrumb a{ color:var(--ink-soft); } .breadcrumb a:hover{ color:var(--ink); }
.breadcrumb span{ color:var(--hairline); }
.page-hero h1{ font-size:var(--fs-display); font-weight:800; letter-spacing:-.033em; line-height:1.04; max-width:16ch; }
.page-hero .lead{ margin-top:var(--space-4); max-width:60ch; }

/* ---------- 404 ---------- */
.notfound{ display:flex; align-items:center; min-height:calc(100vh - var(--header-h) - 90px); }
.notfound__inner{ max-width:640px; margin-inline:auto; position:relative; z-index:1; }
.notfound__paw{ display:inline-flex; width:58px; color:var(--accent); opacity:.9; margin-bottom:var(--space-3); }
.notfound__title{ font-size:clamp(2.1rem,1.4rem+3vw,3.3rem); margin-top:var(--space-3); }
.notfound__lead{ margin:var(--space-4) auto 0; max-width:50ch; }
.notfound__cta{ margin-top:var(--space-6); display:flex; gap:var(--space-3); justify-content:center; flex-wrap:wrap; }
.notfound__links{ margin-top:var(--space-7); display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; align-items:center; }
.notfound__links > span{ font-size:var(--fs-small); color:var(--ink-faint); margin-right:.3rem; }

/* ============================================================
   FICHE PRODUIT (page méthode)
   ============================================================ */
.product-hero{ position:relative; overflow:hidden; padding-block:clamp(2rem,2rem+3vw,3.5rem) var(--section-y); }
.product-hero .glow--accent{ width:560px; height:560px; top:-220px; left:-160px; }
.product-hero .glow--sage{ width:440px; height:440px; bottom:-260px; right:-160px; }
.product__grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
@media (max-width:900px){ .product__grid{ grid-template-columns:1fr; gap:var(--space-7); } }
.product__cover{ position:relative; max-width:340px; margin-inline:auto; width:100%; }
.product__cover .book{ box-shadow:var(--shadow-lg); transform:rotate(-2deg); transition:transform .4s var(--ease); }
.product__cover:hover .book{ transform:rotate(0); }
.product__cover-tag{ position:absolute; bottom:-14px; left:50%; transform:translateX(-50%); background:var(--cream-hi); border:1px solid var(--hairline);
  box-shadow:var(--shadow-sm); border-radius:var(--radius-pill); padding:.45rem 1rem; font-size:var(--fs-xs); font-weight:600; color:var(--ink); white-space:nowrap; }
.product__cat{ color:var(--sage-deep); }
.product h1{ font-size:clamp(2rem,1.4rem+2.6vw,3.1rem); font-weight:800; letter-spacing:-.03em; line-height:1.05; margin-top:var(--space-3); }
.product__promise{ font-size:var(--fs-lead); color:var(--ink-soft); margin-top:var(--space-4); max-width:46ch; }
.product__buy{ margin-top:var(--space-6); display:flex; flex-direction:column; gap:var(--space-4); padding:var(--space-5); background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.product__price{ display:flex; align-items:center; gap:.7rem; }
.product__price .now{ font-size:2.1rem; font-weight:700; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.product__price .old{ display:inline-flex; flex-direction:column; }
.product__price .was{ font-size:var(--fs-small); color:var(--ink-faint); text-decoration:line-through; }
.product__price .off{ font-size:var(--fs-xs); font-weight:700; color:var(--accent-deep); }
.product__buy .btn{ width:100%; }
.product__reassure{ display:flex; flex-wrap:wrap; gap:.4rem 1.1rem; }
.product__reassure span{ display:inline-flex; align-items:center; gap:.4rem; font-size:var(--fs-xs); color:var(--ink-soft); }
.product__reassure svg{ width:14px; height:14px; color:var(--sage-deep); }

/* blocs de contenu produit */
.prose{ max-width:var(--measure); }
.prose h2{ font-size:var(--fs-h2); font-weight:800; letter-spacing:-.03em; margin-bottom:var(--space-4); }
.prose h2:not(:first-child){ margin-top:var(--space-7); }
.prose p{ color:var(--ink-soft); margin-bottom:var(--space-4); }
.checklist{ list-style:none; padding:0; display:grid; gap:.85rem; }
.checklist li{ position:relative; padding-left:2rem; color:var(--ink); }
.checklist li::before{ content:""; position:absolute; left:0; top:.1rem; width:20px; height:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C25812' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
.toc{ counter-reset:day; display:grid; gap:.2rem; }
.toc__item{ counter-increment:day; display:grid; grid-template-columns:auto 1fr; gap:var(--space-4); align-items:baseline; padding:var(--space-4) 0; border-top:1px solid var(--hairline); }
.toc__item:first-child{ border-top:0; }
.toc__day{ font-weight:700; font-size:var(--fs-small); color:var(--accent-deep); letter-spacing:.04em; white-space:nowrap; }
.toc__item h3{ font-size:1.1rem; margin-bottom:.2rem; }
.toc__item p{ font-size:var(--fs-small); color:var(--ink-soft); margin:0; }
.forwho{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
@media (max-width:640px){ .forwho{ grid-template-columns:1fr; } }
.forwho__card{ padding:var(--space-6); border-radius:var(--radius-lg); border:1px solid var(--hairline); background:var(--cream-hi); }
.forwho__card h3{ display:flex; align-items:center; gap:.5rem; font-size:1.15rem; margin-bottom:var(--space-4); }
.forwho__card ul{ list-style:none; padding:0; display:grid; gap:.7rem; font-size:var(--fs-small); color:var(--ink); }
.forwho__card li{ position:relative; padding-left:1.6rem; }
.forwho--yes li::before{ content:"✓"; position:absolute; left:0; color:var(--success); font-weight:700; }
.forwho--no li::before{ content:"–"; position:absolute; left:0; color:var(--ink-faint); font-weight:700; }
.faq__item{ border-top:1px solid var(--hairline); }
.faq__item summary{ cursor:pointer; list-style:none; padding:var(--space-5) 0; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-weight:600; font-size:1.05rem; transition:color .2s var(--ease); }
.faq__item summary:hover{ color:var(--accent-deep); }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{ content:""; width:20px; height:20px; flex:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236C6357' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; transition:transform .25s var(--ease); }
.faq__item[open] summary::after{ transform:rotate(180deg); }
.faq__item p{ color:var(--ink-soft); padding-bottom:var(--space-5); margin:0; max-width:64ch; }
@keyframes faqReveal{ from{ opacity:0; transform:translateY(-5px); } to{ opacity:1; transform:none; } }
.faq__item[open] > p{ animation:faqReveal .32s var(--ease); }
/* Accordéon fluide sur navigateurs récents (progressif, sinon apparition instantanée) */
@media (prefers-reduced-motion:no-preference){
  .faq__item::details-content{ opacity:0; block-size:0; overflow:clip; transition:opacity .3s var(--ease), block-size .34s var(--ease), content-visibility .34s allow-discrete; }
  .faq__item[open]::details-content{ opacity:1; block-size:auto; }
}
/* barre d'achat sticky mobile */
.buybar{ position:fixed; left:0; right:0; bottom:0; z-index:90; display:none; align-items:center; justify-content:space-between; gap:1rem;
  padding:.7rem clamp(1rem,4vw,1.5rem) calc(.7rem + env(safe-area-inset-bottom)); background:color-mix(in srgb,var(--cream) 92%,transparent); backdrop-filter:saturate(150%) blur(12px);
  border-top:1px solid var(--hairline); }
.buybar__price{ display:flex; flex-direction:column; line-height:1.1; }
.buybar__price .now{ font-weight:700; font-size:1.15rem; }
.buybar__price .was{ font-size:var(--fs-xs); color:var(--ink-faint); text-decoration:line-through; }
@media (max-width:760px){ .buybar{ display:flex; } body.has-buybar{ padding-bottom:calc(86px + env(safe-area-inset-bottom)); } }

/* ============================================================
   COMPTE / ESPACE MEMBRE
   ============================================================ */
.authshell{ min-height:100dvh; display:flex; flex-direction:column; background:var(--cream); }
.authbar{ display:flex; align-items:center; justify-content:space-between; padding:1rem clamp(1.15rem,5vw,2rem); border-bottom:1px solid var(--hairline); background:var(--cream); }
.authbar img{ height:30px; width:auto; }
.authbar a{ font-size:var(--fs-small); color:var(--ink-soft); font-weight:500; }
.authbar a:hover{ color:var(--ink); }
.authmain{ flex:1; display:grid; place-items:center; padding:clamp(2rem,6vw,4rem) 1.15rem; position:relative; overflow:hidden; }
.authmain .glow--accent{ width:520px; height:520px; top:-260px; right:-140px; }
.auth-card{ position:relative; width:100%; max-width:428px; background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:clamp(1.6rem,4vw,2.4rem); box-shadow:var(--shadow-md); }
.auth-card .eyebrow{ margin-bottom:var(--space-3); }
.auth-card h1{ font-size:1.6rem; letter-spacing:-.02em; }
.auth-card .sub{ color:var(--ink-soft); font-size:var(--fs-small); margin-top:.4rem; margin-bottom:var(--space-5); }
.auth-card .field:last-of-type{ margin-bottom:var(--space-5); }
.auth-row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:var(--space-4); font-size:var(--fs-small); }
.auth-alt{ text-align:center; margin-top:var(--space-5); padding-top:var(--space-5); border-top:1px solid var(--hairline); font-size:var(--fs-small); color:var(--ink-soft); }
.auth-alt a{ color:var(--accent-deep); font-weight:600; }
.field-link{ color:var(--accent-deep); font-weight:600; }

/* dashboard */
.account-hero{ background:var(--espresso); color:var(--on-dark); padding-block:clamp(2rem,4vw,3rem); position:relative; overflow:hidden; }
.account-hero .glow--accent{ width:460px; height:460px; top:-240px; right:-120px; opacity:.5; }
.account-hero h1{ color:#fff; font-size:clamp(1.7rem,1.2rem+1.6vw,2.4rem); }
.account-hero p{ color:var(--on-dark-soft); margin-top:.4rem; }
.account-tabs{ display:flex; gap:.4rem; flex-wrap:wrap; margin-top:var(--space-5); position:relative; }
.account-tab{ font-size:var(--fs-small); font-weight:600; color:var(--on-dark-soft); padding:.5rem .9rem; border-radius:var(--radius-pill); border:1px solid rgba(239,231,217,.18); cursor:pointer; background:transparent; }
.account-tab[aria-selected="true"]{ background:var(--accent); color:#fff; border-color:var(--accent); }
.account-panel{ display:none; }
.account-panel.is-active{ display:block; }
.account-empty{ text-align:center; max-width:460px; margin:var(--space-6) auto; padding:var(--space-7); border:1px dashed var(--hairline); border-radius:var(--radius-lg); background:var(--cream-hi); }
.account-empty svg{ width:44px; height:44px; color:var(--ink-faint); margin-bottom:var(--space-4); }
.data-table{ width:100%; border-collapse:collapse; font-size:var(--fs-small); }
.data-table th{ text-align:left; font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint); padding:.6rem .8rem; border-bottom:1px solid var(--hairline); }
.data-table td{ padding:.85rem .8rem; border-bottom:1px solid var(--hairline); }
.account-info{ max-width:520px; }
.account-info dt{ font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint); margin-top:var(--space-4); }
.account-info dd{ margin:.2rem 0 0; font-weight:500; }

/* ============================================================
   PRÉ-PRODUCTION : mode démo · bibliothèque membre · tunnel · « en préparation »
   (2026-07-08 — ajouts non destructifs, réutilisent les tokens existants)
   ============================================================ */

/* ---- Cartes « en préparation » (bibliothèque) : cover vibrant + badge ---- */
.vol--upcoming .vol__cover{ position:relative; }
.vol__ribbon{ position:absolute; top:.7rem; left:.7rem; z-index:2; font-size:var(--fs-xs); font-weight:700;
  letter-spacing:.02em; color:#fff; background:var(--accent); padding:.2rem .6rem; border-radius:var(--radius-pill);
  box-shadow:var(--shadow-sm); }
.vol--upcoming .book{ filter:saturate(.92); }
.vol__foot--soon{ display:flex; flex-direction:column; align-items:stretch; gap:.5rem; }
.vol__foot--soon .link-more{ align-self:center; }
.soon-note{ font-weight:700; color:var(--ink-soft); font-size:var(--fs-small); }

/* ---- Bandeau MODE DÉMO ---- */
.demo-bar{ position:sticky; top:0; z-index:60; display:flex; align-items:center; gap:.8rem; flex-wrap:wrap;
  justify-content:center; text-align:center; background:var(--espresso); color:var(--on-dark);
  padding:.6rem 1rem; font-size:var(--fs-small); }
.demo-bar p{ margin:0; }
.demo-bar strong{ color:#fff; }
.demo-bar__dot{ font-size:1.05rem; }
.demo-bar__exit{ color:var(--accent-soft); font-weight:600; text-decoration:underline; white-space:nowrap; }

/* ---- Connexion : séparateur + option démo ---- */
.auth-demo{ margin-top:var(--space-5); }
.auth-demo__sep{ display:flex; align-items:center; gap:.8rem; margin:0 0 var(--space-4); color:var(--ink-faint);
  font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.14em; }
.auth-demo__sep::before, .auth-demo__sep::after{ content:""; flex:1; height:1px; background:var(--hairline); }

/* ---- Espace membre = « Ma bibliothèque » ---- */
.libgrid{ display:grid; gap:var(--space-5); grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.libcard{ display:flex; gap:var(--space-4); background:var(--paper); border:1px solid var(--hairline);
  border-radius:var(--radius-lg); padding:var(--space-4); box-shadow:var(--shadow-xs); transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); }
.libcard:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.libcard__cover{ flex:0 0 96px; }
.libcard__cover .book{ width:96px; }
.libcard__body{ display:flex; flex-direction:column; min-width:0; }
.libcard__vol{ font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); font-weight:600; }
.libcard__title{ font-size:1.15rem; margin:.15rem 0 .3rem; }
.libcard__desc{ font-size:var(--fs-small); color:var(--ink-soft); margin:0 0 var(--space-4); }
.libcard__actions{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:auto; }

/* ---- Mes téléchargements ---- */
.dllist{ display:flex; flex-direction:column; gap:.6rem; }
.dlrow{ display:flex; align-items:center; gap:var(--space-4); background:var(--paper); border:1px solid var(--hairline);
  border-radius:var(--radius); padding:.85rem 1rem; text-decoration:none; color:inherit; transition:border-color var(--dur) var(--ease); }
.dlrow:hover{ border-color:var(--accent); }
.dlrow__ic{ flex:none; width:34px; height:34px; color:var(--accent); }
.dlrow__ic svg{ width:100%; height:100%; }
.dlrow__meta{ display:flex; flex-direction:column; min-width:0; }
.dlrow__meta small{ color:var(--ink-faint); font-size:var(--fs-xs); }
.dlrow__act{ margin-left:auto; font-weight:600; font-size:var(--fs-small); color:var(--accent-deep); white-space:nowrap; }

/* ---- Les nouveautés ---- */
.newsgrid{ display:grid; gap:var(--space-5); grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.newscard{ display:flex; flex-direction:column; gap:.4rem; background:var(--paper); border:1px solid var(--hairline);
  border-left:3px solid var(--c,var(--accent)); border-radius:var(--radius); padding:var(--space-5);
  text-decoration:none; color:inherit; transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); }
.newscard:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.newscard__tag{ font-size:var(--fs-xs); font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--c,var(--accent)); }
.newscard h3{ font-size:1.1rem; margin:.1rem 0; }
.newscard p{ font-size:var(--fs-small); color:var(--ink-soft); margin:0 0 .3rem; }

/* ---- Mon compte + Besoin d'aide (2 colonnes) ---- */
.account-cols{ display:grid; gap:var(--space-8); grid-template-columns:1fr 1fr; align-items:start; }
.account-block{ min-width:0; }
.helpgrid{ display:flex; flex-direction:column; gap:.6rem; }
.helpcard{ display:grid; grid-template-columns:auto 1fr; gap:.2rem 1rem; align-items:center; background:var(--paper);
  border:1px solid var(--hairline); border-radius:var(--radius); padding:.9rem 1.1rem; text-decoration:none; color:inherit;
  transition:border-color var(--dur) var(--ease); }
.helpcard:hover{ border-color:var(--accent); }
.helpcard svg{ grid-row:span 2; width:26px; height:26px; color:var(--accent); }
.helpcard b{ font-size:var(--fs-small); }
.helpcard small{ color:var(--ink-faint); font-size:var(--fs-xs); }

/* ---- Tunnel : checkout ---- */
.checkout-card{ max-width:520px; }
.checkout__summary{ display:flex; gap:var(--space-4); align-items:center; background:var(--cream-hi);
  border:1px solid var(--hairline); border-radius:var(--radius); padding:var(--space-4); margin:var(--space-4) 0; }
.checkout__cover{ flex:none; width:70px; height:100px; border-radius:8px; display:flex; align-items:flex-end;
  padding:.5rem; color:#fff; font-size:var(--fs-xs); font-weight:700; background:var(--accent); box-shadow:var(--shadow-sm); }
.checkout__cover[data-subject="laisse"]{ background:#E77323; } .checkout__cover[data-subject="proprete"]{ background:#6E7A55; }
.checkout__cover[data-subject="aboiements"]{ background:#C6892E; } .checkout__cover[data-subject="solitude"]{ background:#5B7C9E; }
.checkout__cover[data-subject="rappel"]{ background:#4F7A57; } .checkout__cover[data-subject="chiot"]{ background:#B06A4E; }
.checkout__meta{ min-width:0; }
.checkout__cat{ font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); font-weight:600; }
.checkout__meta h2{ font-size:1.15rem; margin:.1rem 0 .3rem; }
.checkout__meta p{ font-size:var(--fs-small); color:var(--ink-soft); margin:0 0 .4rem; }
.checkout__price{ display:flex; align-items:baseline; gap:.5rem; }
.checkout__price .now{ font-size:1.25rem; font-weight:800; color:var(--ink); }
.checkout__price .old{ display:flex; gap:.4rem; align-items:center; }
.checkout__price .old .was{ text-decoration:line-through; color:var(--ink-faint); font-size:var(--fs-small); }
.checkout__price .old .off{ font-size:var(--fs-xs); font-weight:700; color:var(--accent-deep); background:var(--accent-wash); padding:.1rem .4rem; border-radius:var(--radius-pill); }
.checkout__note{ display:flex; gap:.6rem; align-items:flex-start; font-size:var(--fs-small); color:var(--ink-soft);
  background:var(--sage-wash); border-radius:var(--radius); padding:.8rem 1rem; margin-bottom:var(--space-4); }
.checkout__note svg{ flex:none; color:var(--sage-deep); margin-top:2px; }

/* ---- Success : coche ---- */
.success-check{ width:64px; height:64px; margin:0 auto var(--space-4); border-radius:50%; background:var(--sage-wash);
  color:var(--success); display:flex; align-items:center; justify-content:center; }
.success-check svg{ width:34px; height:34px; }

/* ---- Responsive ---- */
@media (max-width:720px){
  .account-cols{ grid-template-columns:1fr; gap:var(--space-6); }
  .libgrid{ grid-template-columns:1fr; }
  .libcard{ flex-direction:row; }
}

/* ============================================================
   ESPACE MEMBRE — Tableau de bord app-shell (2026-07-09)
   Sidebar espresso + tuiles + cartes + liste, identité Univers du Chien.
   ============================================================ */
.dash-body{ background:var(--cream); }
.dash{ display:flex; min-height:100vh; align-items:stretch; }

/* ---- Sidebar ---- */
.dash__side{ flex:0 0 264px; width:264px; background:var(--espresso); color:var(--on-dark);
  position:sticky; top:0; align-self:flex-start; height:100vh; display:flex; flex-direction:column; gap:1.1rem; padding:1.5rem 1.1rem; }
.dash__brand{ display:flex; align-items:center; gap:.6rem; color:#fff; font-weight:800; font-size:1.05rem; text-decoration:none; }
.dash__brand svg{ width:26px; height:26px; color:var(--accent); }
.dash__cta{ justify-content:center; gap:.5rem; }
.dash__nav{ display:flex; flex-direction:column; gap:.12rem; margin-top:.2rem; }
.dash__nav a{ display:flex; align-items:center; gap:.7rem; padding:.6rem .7rem; border-radius:var(--radius-sm);
  color:var(--on-dark-soft); text-decoration:none; font-weight:500; font-size:.95rem; transition:background .18s, color .18s; }
.dash__nav a svg{ width:19px; height:19px; flex:none; }
.dash__nav a:hover{ background:rgba(255,255,255,.06); color:#fff; }
.dash__nav a.is-active{ background:var(--accent); color:#fff; }
.dash__side-foot{ margin-top:auto; display:flex; flex-direction:column; gap:.7rem; }
.dash__plan{ display:flex; gap:.6rem; align-items:center; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.09); border-radius:var(--radius); padding:.7rem .8rem; font-size:.78rem; }
.dash__plan b{ color:#fff; display:block; }
.dash__plan small{ color:var(--on-dark-soft); }
.dash__plan a{ margin-left:auto; color:var(--accent-soft); font-weight:600; white-space:nowrap; align-self:flex-start; }
.dash__user{ display:flex; align-items:center; gap:.6rem; padding-top:.8rem; border-top:1px solid rgba(255,255,255,.09); }
.dash__avatar{ width:38px; height:38px; border-radius:50%; background:var(--accent); color:#fff; flex:none;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.82rem; }
.dash__user-meta{ display:flex; flex-direction:column; min-width:0; }
.dash__user-meta b{ color:#fff; font-size:.9rem; line-height:1.2; }
.dash__user-meta small{ color:var(--on-dark-soft); font-size:.76rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dash__logout{ margin-left:auto; color:var(--on-dark-soft); flex:none; }
.dash__logout:hover{ color:var(--accent-soft); }

/* ---- Main ---- */
.dash__main{ flex:1; min-width:0; }
.dash__main-in{ max-width:1120px; margin:0 auto; padding:clamp(1.3rem,3.5vw,2.4rem); }
.dash__top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.4rem; }
.dash__crumb{ font-size:.85rem; color:var(--ink-faint); display:flex; gap:.5rem; align-items:center; }
.dash__crumb b{ color:var(--ink); }
.dash__site-link{ font-size:.85rem; font-weight:600; color:var(--accent-deep); display:inline-flex; align-items:center; gap:.3rem; text-decoration:none; }
.dash__site-link:hover{ color:var(--accent); }
.dash__section{ margin-bottom:2.4rem; scroll-margin-top:1.5rem; }
.dash__hello{ font-size:clamp(1.8rem,1.2rem + 2vw,2.6rem); letter-spacing:var(--tracking-tight); margin-bottom:.25rem; }
.dash__sub{ color:var(--ink-soft); margin-bottom:1.5rem; max-width:60ch; }
.dash__head{ display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap; margin-bottom:1rem; }
.dash__head h2{ font-size:1.35rem; }
.dash__head-note{ font-size:.85rem; color:var(--ink-faint); }

/* ---- Tuiles ---- */
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.stat{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:1.15rem 1.25rem;
  display:flex; flex-direction:column; gap:.1rem; text-decoration:none; color:inherit; transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
.stat__ic{ width:38px; height:38px; border-radius:12px; background:var(--cream-deep); color:var(--accent-deep);
  display:flex; align-items:center; justify-content:center; margin-bottom:.55rem; }
.stat__ic svg{ width:20px; height:20px; }
.stat__n{ font-size:1.9rem; font-weight:800; letter-spacing:-.02em; line-height:1; }
.stat__label{ font-size:.82rem; color:var(--ink-soft); }
.stat--accent{ background:var(--accent); border-color:var(--accent); color:#fff; }
.stat--accent .stat__ic{ background:rgba(255,255,255,.2); color:#fff; }
.stat--accent .stat__n{ color:#fff; }
.stat--accent .stat__label{ color:rgba(255,255,255,.92); }
.stat--accent:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }

/* ---- Cartes de méthode ---- */
.dash-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:1rem; }
.dash-cards--sm{ grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }
.dashcard{ display:flex; gap:1rem; background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-lg);
  padding:1.1rem; box-shadow:var(--shadow-xs); transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
.dashcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.dashcard__cover{ flex:0 0 92px; position:relative; }
.dashcard__cover .book{ width:92px; }
.dashcard__body{ display:flex; flex-direction:column; min-width:0; flex:1; }
.dashcard__meta{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint);
  font-weight:600; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.dashcard__badge{ text-transform:none; letter-spacing:0; font-size:.7rem; font-weight:700; color:var(--success);
  background:var(--sage-wash); padding:.1rem .5rem; border-radius:var(--radius-pill); }
.dashcard__soon{ text-transform:none; letter-spacing:0; font-size:.7rem; font-weight:700; color:var(--ink-faint); }
.dashcard h3{ font-size:1.1rem; margin:.25rem 0 .3rem; }
.dashcard p{ font-size:.88rem; color:var(--ink-soft); margin:0 0 .8rem; }
.dashcard__actions{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:auto; }
.dashcard--sm{ flex-direction:column; gap:.7rem; }
.dashcard--sm .dashcard__cover{ flex:none; align-self:flex-start; }
.dashcard--sm h3{ font-size:1rem; }
.dashcard__foot{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:auto; }
.dashcard__price{ font-weight:800; font-size:1.05rem; }
.dashcard__ribbon{ position:absolute; top:.4rem; left:.4rem; font-size:.66rem; font-weight:700; color:#fff;
  background:var(--accent); padding:.15rem .5rem; border-radius:var(--radius-pill); box-shadow:var(--shadow-sm); }
.dashcard--soon .book{ filter:saturate(.92); }

/* ---- Liste téléchargements : pastille de statut ---- */
.dlrow__pill{ margin-left:auto; font-size:.72rem; font-weight:700; color:var(--sage-deep);
  background:var(--sage-wash); padding:.15rem .55rem; border-radius:var(--radius-pill); }
.dlrow__pill + .dlrow__act{ margin-left:1rem; }

/* ---- Vide & invitation ---- */
.dash__empty{ text-align:center; padding:2.6rem 1.2rem; border:1px dashed var(--hairline); border-radius:var(--radius-lg); }
.dash__empty svg{ width:40px; height:40px; color:var(--ink-faint); margin-bottom:.6rem; }
.dash__empty h3{ font-size:1.2rem; }
.dash__empty p{ color:var(--ink-soft); margin:.4rem 0 1.2rem; }
.dash__invite{ display:flex; align-items:center; justify-content:center; min-height:100vh; padding:2rem; }
.dash__invite[hidden]{ display:none; }
.dash__invite-card{ max-width:520px; text-align:center; background:var(--paper); border:1px solid var(--hairline);
  border-radius:var(--radius-xl); padding:clamp(2rem,5vw,3rem); box-shadow:var(--shadow-md); }
.dash__invite-card h1{ margin:.4rem 0; }
.dash__invite-card p{ color:var(--ink-soft); }
.dash__invite-cta{ margin-top:var(--space-5); display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; }

/* ---- Responsive ---- */
@media (max-width:1000px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:860px){
  .dash{ flex-direction:column; }
  .dash__side{ position:sticky; top:0; z-index:50; width:100%; height:auto; flex:none; flex-direction:row; align-items:center;
    gap:.8rem; padding:.7rem 1rem; }
  .dash__brand span{ display:inline; }
  .dash__cta, .dash__nav, .dash__plan{ display:none; }
  .dash__side-foot{ margin-top:0; margin-left:auto; flex-direction:row; gap:.7rem; }
  .dash__user{ padding-top:0; border-top:0; }
  .dash__user-meta{ display:none; }
}
@media (max-width:520px){ .stat-grid{ grid-template-columns:1fr 1fr; } .dash-cards{ grid-template-columns:1fr; } .dashcard{ flex-direction:row; } }

/* ============================================================
   ESPACE MEMBRE « Mon Univers » — app multi-vues premium (2026-07-09)
   Identité Univers du Chien conservée. Remplace l'ancien dashboard.
   ============================================================ */
/* couleur par sujet, réutilisable hors .book (n'écrase pas --c) */
[data-subject="laisse"]{ --sub:#E77323; } [data-subject="proprete"]{ --sub:#6E7A55; }
[data-subject="aboiements"]{ --sub:#C6892E; } [data-subject="solitude"]{ --sub:#5B7C9E; }
[data-subject="rappel"]{ --sub:#4F7A57; } [data-subject="chiot"]{ --sub:#B06A4E; }

.member{ background:var(--cream); }
.mbr{ display:flex; min-height:100vh; align-items:stretch; }

/* ---- Sidebar ---- */
.mbr__side{ flex:0 0 252px; width:252px; background:var(--espresso); color:var(--on-dark);
  position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:.2rem; padding:1.5rem 1rem; }
.mbr__brand{ display:flex; align-items:center; gap:.6rem; color:#fff; font-weight:800; font-size:1.02rem; text-decoration:none; margin-bottom:1.3rem; padding:0 .3rem; }
.mbr__brand svg{ width:26px; height:26px; color:var(--accent); }
.mbr__nav{ display:flex; flex-direction:column; gap:.15rem; }
.mbr__nav a{ display:flex; align-items:center; gap:.75rem; padding:.7rem .8rem; border-radius:12px;
  color:var(--on-dark-soft); text-decoration:none; font-weight:600; font-size:.96rem; transition:background .18s, color .18s, box-shadow .18s; }
.mbr__nav-ic{ font-size:1.05rem; width:1.3em; text-align:center; filter:saturate(.9); }
.mbr__nav a:hover{ background:rgba(255,255,255,.06); color:#fff; }
.mbr__nav a.is-active{ background:rgba(255,255,255,.09); color:#fff; box-shadow:inset 3px 0 0 var(--accent); }
.mbr__side-foot{ margin-top:auto; display:flex; flex-direction:column; gap:.35rem; }
.mbr__help-link{ display:flex; align-items:center; gap:.6rem; padding:.55rem .8rem; border-radius:10px;
  color:var(--on-dark-soft); text-decoration:none; font-size:.88rem; transition:.18s; }
.mbr__help-link:hover{ background:rgba(255,255,255,.06); color:#fff; }
.mbr__usercard{ display:flex; align-items:center; gap:.65rem; padding:.6rem .7rem; border-radius:14px;
  background:rgba(255,255,255,.06); text-decoration:none; transition:background .18s; }
.mbr__usercard:hover{ background:rgba(255,255,255,.11); }
.mbr__avatar{ width:40px; height:40px; border-radius:50%; background:var(--accent); color:#fff; flex:none;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; }
.mbr__user-meta{ min-width:0; }
.mbr__user-meta b{ color:#fff; font-size:.9rem; display:block; line-height:1.2; }
.mbr__user-meta small{ color:var(--on-dark-soft); font-size:.76rem; }
.mbr__logout{ display:flex; align-items:center; gap:.55rem; padding:.5rem .8rem; border-radius:10px;
  color:var(--on-dark-soft); font-size:.85rem; text-decoration:none; transition:.18s; }
.mbr__logout:hover{ color:var(--accent-soft); background:rgba(255,255,255,.05); }

/* ---- Main & vues ---- */
.mbr__main{ flex:1; min-width:0; }
.mbr__top{ display:flex; align-items:center; justify-content:flex-end; gap:1rem;
  padding:.9rem clamp(1.2rem,3vw,2.4rem); }
.mbr__menu{ display:none; background:none; border:0; color:var(--ink); cursor:pointer; margin-right:auto; }
.mbr__site-link{ font-size:.85rem; font-weight:600; color:var(--accent-deep); display:inline-flex; align-items:center; gap:.3rem; text-decoration:none; }
.mbr__site-link:hover{ color:var(--accent); }
.mbr__stage{ padding:0 clamp(1.2rem,3.5vw,2.6rem) clamp(2rem,4vw,3rem); max-width:1140px; margin:0 auto; }
.view{ display:none; }
.view.is-active{ display:block; animation:viewIn .34s var(--ease); }
@keyframes viewIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.view__head{ margin-bottom:1.8rem; }
.view__head h1{ font-size:clamp(1.7rem,1.1rem + 2vw,2.4rem); letter-spacing:var(--tracking-tight); }
.view__head p{ color:var(--ink-soft); margin-top:.35rem; }

/* ---- Hero d'accueil ---- */
.hero-welcome{ position:relative; overflow:hidden; background:var(--espresso); color:var(--on-dark);
  border-radius:var(--radius-xl); padding:clamp(1.8rem,4vw,3rem); margin-bottom:2rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.hero-welcome__in{ position:relative; z-index:1; }
.hero-welcome h1{ color:#fff; font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem); margin:.5rem 0 .35rem; letter-spacing:-.02em; }
.hero-welcome p{ color:var(--on-dark-soft); max-width:48ch; }
.hero-welcome__art{ width:104px; height:104px; color:rgba(231,115,35,.45); flex:none; position:relative; z-index:1; }
.hero-welcome__art svg{ width:100%; height:100%; }

/* ---- Blocs ---- */
.blk{ margin-bottom:2.3rem; }
.blk__head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1.1rem; flex-wrap:wrap; }
.blk__head h2{ font-size:1.35rem; }
.blk__note{ font-size:.85rem; color:var(--ink-faint); }

/* ---- Reprendre (cartes phares) ---- */
.resume-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:1.2rem; }
.resume{ position:relative; overflow:hidden; display:flex; gap:1.1rem; background:var(--paper);
  border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:1.2rem 1.3rem 1.2rem 1.5rem;
  box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.resume::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--sub,var(--accent)); }
.resume:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.resume__cover{ flex:0 0 92px; }
.resume__cover .book{ width:92px; }
.resume__body{ display:flex; flex-direction:column; min-width:0; flex:1; }
.resume__kicker{ font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; font-weight:800; color:var(--sub,var(--accent-deep)); }
.resume__body h3{ font-size:1.15rem; margin:.2rem 0 .8rem; }
.resume__prog{ display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.resume__bar{ flex:1; height:7px; background:var(--cream-deep); border-radius:99px; overflow:hidden; }
.resume__bar span{ display:block; height:100%; background:var(--sub,var(--accent)); border-radius:99px; transition:width .7s var(--ease); }
.resume__pct{ font-size:.78rem; color:var(--ink-faint); white-space:nowrap; }
.resume__foot{ display:flex; align-items:center; gap:.9rem; margin-top:auto; flex-wrap:wrap; }
.resume__time{ font-size:.8rem; color:var(--ink-faint); }
.resume-empty{ background:var(--paper); border:1px dashed var(--hairline); border-radius:var(--radius-lg); padding:1.8rem; text-align:center; }
.resume-empty p{ color:var(--ink-soft); margin:0 0 1rem; }

/* ---- Collection (progression segmentée) ---- */
.collection{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:1.3rem 1.5rem; }
.collection__row{ display:flex; align-items:baseline; gap:.6rem; justify-content:space-between; flex-wrap:wrap; font-size:.95rem; color:var(--ink-soft); }
.collection__row b{ color:var(--ink); font-size:1.15rem; font-weight:800; }
.collection__track{ display:flex; gap:.5rem; margin:1rem 0 .7rem; }
.collection__seg{ flex:1; height:11px; border-radius:99px; background:var(--cream-deep); transition:background .5s var(--ease); }
.collection__seg.is-on{ background:var(--sub); }
.collection__hint{ font-size:.82rem; color:var(--ink-faint); margin:0; }

/* ---- Bibliothèque (grandes cartes) ---- */
.library{ display:grid; gap:1.3rem; grid-template-columns:repeat(auto-fill,minmax(430px,1fr)); }
.libitem{ position:relative; overflow:hidden; display:flex; gap:1.4rem; background:var(--paper);
  border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:1.4rem 1.5rem 1.4rem 1.7rem;
  box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.libitem::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--sub,var(--accent)); }
.libitem:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.libitem__cover{ flex:0 0 120px; }
.libitem__cover .book{ width:120px; }
.libitem__body{ min-width:0; display:flex; flex-direction:column; }
.libitem__badge{ align-self:flex-start; font-size:.7rem; font-weight:700; color:var(--success);
  background:var(--sage-wash); padding:.15rem .55rem; border-radius:99px; }
.libitem__body h3{ font-size:1.25rem; margin:.55rem 0 .3rem; }
.libitem__body > p{ font-size:.9rem; color:var(--ink-soft); margin:0; }
.libitem__meta{ list-style:none; padding:0; margin:.8rem 0 1.1rem; display:flex; flex-wrap:wrap; gap:.35rem 1.3rem; font-size:.82rem; color:var(--ink-soft); }
.libitem__meta b{ color:var(--ink); }
.libitem__actions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:auto; }

/* ---- Continuer l'aventure (verrouillées) ---- */
.locked-grid{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(185px,1fr)); }
.lockitem{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-lg);
  padding:1.1rem 1rem 1.2rem; display:flex; flex-direction:column; gap:.25rem; text-align:center;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.lockitem:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.lockitem__cover{ position:relative; width:104px; margin:0 auto .7rem; }
.lockitem__cover .book{ width:104px; }
.lockitem.is-locked .book{ filter:saturate(.85); }
.lockitem__lock{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; background:rgba(28,22,15,.14); border-radius:12px; }
.lockitem__cat{ font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint); font-weight:600; }
.lockitem h4{ font-size:1rem; margin:.1rem 0 .5rem; }
.lockitem__foot{ display:flex; align-items:center; justify-content:center; gap:.6rem; margin-top:auto; }
.lockitem__price{ font-weight:800; }

/* ---- Journal ---- */
.journal-grid{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.journal-grid--full{ grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); }
.journalcard{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--hairline);
  border-radius:var(--radius); overflow:hidden; text-decoration:none; color:inherit;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease); }
.journalcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.journalcard__media{ display:block; aspect-ratio:16/9; overflow:hidden; background:var(--cream-deep); }
.journalcard__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s var(--ease); }
.journalcard:hover .journalcard__media img{ transform:scale(1.045); }
.journalcard__body{ display:flex; flex-direction:column; gap:.35rem; flex:1;
  padding:1.05rem 1.2rem 1.25rem; border-top:3px solid var(--c,var(--accent)); }
.journalcard__tag{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--c,var(--accent)); }
.journalcard h3{ font-size:1.05rem; margin:.1rem 0; letter-spacing:-.015em; }
.journalcard p{ font-size:.85rem; color:var(--ink-soft); margin:0 0 .3rem; }
.journalcard .link-more{ margin-top:auto; }

/* ---- Sélections ---- */
.selections{ display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); }
.selcard{ display:flex; gap:1.3rem; background:var(--paper); border:1px solid var(--hairline);
  border-radius:var(--radius-lg); padding:1.4rem; box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.selcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.selcard__logo{ flex:0 0 66px; height:66px; display:flex; align-items:center; }
.selcard__logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.selcard__tag{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--sage-deep); }
.selcard__body h3{ font-size:1.15rem; margin:.15rem 0 .3rem; }
.selcard__body > p{ font-size:.88rem; color:var(--ink-soft); margin:0; }
.selcard__checks{ list-style:none; padding:0; margin:.7rem 0 1rem; display:flex; flex-direction:column; gap:.3rem; font-size:.85rem; color:var(--ink-soft); }
.selcard__checks li{ position:relative; padding-left:1.4rem; }
.selcard__checks li::before{ content:"✓"; position:absolute; left:0; color:var(--success); font-weight:800; }

/* ---- Profil ---- */
.profile{ display:flex; gap:1.5rem; align-items:center; flex-wrap:wrap; background:var(--paper);
  border:1px solid var(--hairline); border-radius:var(--radius-xl); padding:clamp(1.5rem,4vw,2.4rem); box-shadow:var(--shadow-sm); }
.profile__card{ display:flex; gap:1.3rem; align-items:center; }
.profile__avatar{ width:78px; height:78px; border-radius:50%; background:var(--accent); color:#fff; flex:none;
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.7rem; box-shadow:var(--shadow-sm); }
.profile__meta{ display:flex; flex-direction:column; }
.profile__hello{ color:var(--ink-faint); font-size:.9rem; }
.profile__name{ font-size:1.5rem; font-weight:800; letter-spacing:-.01em; }
.profile__badge{ align-self:flex-start; margin:.35rem 0; font-size:.75rem; font-weight:700; color:var(--accent-deep);
  background:var(--accent-wash); padding:.18rem .7rem; border-radius:99px; }
.profile__since, .profile__count{ font-size:.85rem; color:var(--ink-soft); }
.profile__actions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-left:auto; }
.helpgrid--wide{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }

/* ---- Invitation ---- */
.mbr__invite{ display:flex; align-items:center; justify-content:center; min-height:100vh; padding:2rem; }
.mbr__invite[hidden]{ display:none; }
.mbr__invite-card{ max-width:520px; text-align:center; background:var(--paper); border:1px solid var(--hairline);
  border-radius:var(--radius-xl); padding:clamp(2rem,5vw,3rem); box-shadow:var(--shadow-md); }
.mbr__invite-card h1{ margin:.4rem 0; } .mbr__invite-card p{ color:var(--ink-soft); }
.mbr__invite-cta{ margin-top:var(--space-5); display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; }
.mbr__empty{ text-align:center; padding:2.6rem 1.2rem; border:1px dashed var(--hairline); border-radius:var(--radius-lg); }
.mbr__empty h3{ font-size:1.2rem; } .mbr__empty p{ color:var(--ink-soft); margin:.4rem 0 1.2rem; }

/* ---- Onglets mobile ---- */
.mbr__tabs{ display:none; }

/* ---- Responsive ---- */
@media (max-width:900px){
  .mbr__side{ position:fixed; left:0; top:0; bottom:0; z-index:80; height:100%; transform:translateX(-100%);
    transition:transform .28s var(--ease); box-shadow:var(--shadow-lg); }
  body.mbr-menu-open .mbr__side{ transform:none; }
  body.mbr-menu-open::after{ content:""; position:fixed; inset:0; background:rgba(20,14,8,.45); z-index:70; }
  .mbr__menu{ display:inline-flex; }
  .mbr__stage{ padding-bottom:calc(64px + 1.5rem); }
  .mbr__tabs{ display:flex; position:fixed; bottom:0; left:0; right:0; z-index:60; background:var(--paper);
    border-top:1px solid var(--hairline); padding:.35rem .3rem calc(.35rem + env(safe-area-inset-bottom)); box-shadow:0 -6px 20px -12px rgba(28,22,15,.25); }
  .mbr__tabs a{ flex:1; display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:.35rem 0;
    font-size:.66rem; font-weight:600; color:var(--ink-faint); text-decoration:none; border-radius:10px; }
  .mbr__tabs a span{ font-size:1.15rem; line-height:1; }
  .mbr__tabs a.is-active{ color:var(--accent-deep); }
  .resume-grid, .library, .selections{ grid-template-columns:1fr; }
  .profile__actions{ margin-left:0; width:100%; }
}
@media (max-width:600px){
  .hero-welcome__art{ display:none; }
  .libitem{ flex-direction:column; } .libitem__cover{ align-self:flex-start; }
}

/* ============================================================
   PHASE 0 — Couverture provisoire · logo espace membre · bande réassurance
   (2026-07-09) — additif, identité conservée.
   ============================================================ */

/* ---- Couverture PROVISOIRE (méthodes « en préparation ») ----
   Titre en orange sur fond beige, typographique, sans illustration ni icône.
   Se dimensionne comme .book (container queries). */
.pcover{ container-type:inline-size; position:relative; width:100%; aspect-ratio:565/800; border-radius:12px; overflow:hidden;
  background:linear-gradient(158deg, var(--cream-hi) 0%, var(--cream) 45%, var(--cream-deep) 100%);
  border:1px solid var(--hairline); box-shadow:var(--shadow-sm); }
.pcover::before{ content:""; position:absolute; left:0; right:0; top:0; height:1.7cqw; background:var(--accent); z-index:2; }
.pcover::after{ content:""; position:absolute; inset:3.4cqw; border:1px solid rgba(194,88,18,.14); border-radius:8px; pointer-events:none; z-index:2; }
.pcover__pad{ position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; padding:9cqw 9cqw 8cqw; }
.pcover__top{ display:flex; align-items:center; justify-content:space-between;
  font-size:3cqw; font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-faint); }
.pcover__top .soon{ color:var(--accent-deep); }
.pcover__title{ margin-top:14cqw; font-family:var(--font-sans); font-weight:800;
  letter-spacing:-.03em; line-height:1.02; font-size:13cqw; color:var(--accent-deep); text-wrap:balance; }
.pcover__rule{ width:20cqw; height:1.1cqw; background:var(--accent); border-radius:2px; margin-top:5cqw; }
.pcover__brand{ margin-top:auto; font-size:2.9cqw; font-weight:800; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); }
.lockitem__cover .pcover{ width:104px; }
.checkout__cover.pcover, .product__cover .pcover{ width:100%; }

/* ---- Logo officiel dans l'espace membre (sidebar sombre) : pastille claire ---- */
.mbr__brand{ padding:0; }
.mbr__logo{ display:inline-flex; align-items:center; background:transparent; border-radius:0; padding:0; box-shadow:none; }
.mbr__logo img{ height:26px; width:auto; display:block; filter:brightness(0) invert(1); }

/* ---- Bande de réassurance premium (homepage) ---- */
.trust{ padding-block:clamp(2.5rem,5vw,4rem); }
.trust__head{ text-align:center; margin-bottom:clamp(1.4rem,3vw,2.2rem); }
.trust__row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.trust__item{ display:flex; flex-direction:column; gap:.45rem; align-items:flex-start; text-align:left;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.09); border-radius:var(--radius-lg);
  padding:1.5rem 1.4rem; transition:transform .28s var(--ease), background .28s var(--ease), border-color .28s var(--ease); }
.trust__item:hover{ transform:translateY(-5px); background:rgba(255,255,255,.08); border-color:rgba(231,115,35,.4); }
.trust__ic{ width:46px; height:46px; border-radius:13px; background:rgba(231,115,35,.16); color:var(--accent-soft);
  display:flex; align-items:center; justify-content:center; margin-bottom:.3rem; transition:background .28s, color .28s; }
.trust__item:hover .trust__ic{ background:var(--accent); color:#fff; }
.trust__ic svg{ width:23px; height:23px; }
.trust__item b{ color:#fff; font-size:1.06rem; letter-spacing:-.01em; }
.trust__desc{ color:var(--on-dark-soft); font-size:.86rem; line-height:1.5; }
@media (max-width:820px){ .trust__row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .trust__row{ grid-template-columns:1fr; } }

/* ============================================================
   BLOG / ARTICLES ÉDITORIAUX (2026-07-11)
   ============================================================ */
.article{ padding-block:clamp(1.25rem,2.5vw,2rem) var(--section-y); }
.article__head{ max-width:var(--measure); margin:0 auto var(--space-6); }
.article__cat{ color:var(--accent-deep); }
.article__head h1{ font-size:clamp(1.95rem,1.35rem+2.4vw,2.9rem); letter-spacing:-.032em; line-height:1.06; margin-top:var(--space-3); max-width:20ch; }
.article__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .8rem; margin-top:var(--space-4); color:var(--ink-faint); font-size:var(--fs-small); }
.article__meta .sep{ width:4px; height:4px; border-radius:50%; background:currentColor; opacity:.45; }
.article__meta b{ color:var(--ink-soft); font-weight:600; }
.article__body{ max-width:var(--measure); margin-inline:auto; }
.article__lead{ font-size:var(--fs-lead); color:var(--ink); line-height:1.6; margin-bottom:var(--space-5); }
.article__hero{ max-width:940px; margin:0 auto var(--space-7); }
.article__hero img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); display:block; background:var(--cream-deep); }
.article__body h2{ font-size:clamp(1.4rem,1.1rem+1vw,1.85rem); font-weight:800; letter-spacing:-.028em; margin:var(--space-8) 0 var(--space-4); scroll-margin-top:90px; }
.article__body h3{ font-size:1.18rem; font-weight:700; letter-spacing:-.02em; margin:var(--space-6) 0 var(--space-3); }
.article__body p{ color:var(--ink-soft); margin-bottom:var(--space-4); }
.article__body ul, .article__body ol{ color:var(--ink-soft); margin:0 0 var(--space-4); padding-left:1.3rem; display:grid; gap:.55rem; }
.article__body li{ padding-left:.2rem; } .article__body li::marker{ color:var(--accent); }
.article__body strong{ color:var(--ink); font-weight:600; }
.article__body a:not(.btn){ color:var(--accent-deep); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.article__body a:not(.btn):hover{ color:var(--accent); }
.article__body blockquote{ margin:var(--space-6) 0; padding:var(--space-2) 0 var(--space-2) var(--space-5); border-left:3px solid var(--accent); font-size:1.2rem; line-height:1.5; color:var(--ink); font-weight:500; }
.article__figure{ margin:var(--space-6) 0; }

/* Figure éditoriale intercalée dans l'article */
.article-figure{ margin:var(--space-7) 0; }
.article-figure img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-sm); display:block; background:var(--cream-deep); }
.article-figure figcaption{ margin-top:.6rem; font-size:var(--fs-xs); color:var(--ink-faint); text-align:center; line-height:1.5; }

/* Encadrés éditoriaux (conseil / erreur / points-clés) */
.callout{ display:grid; grid-template-columns:auto 1fr; gap:.15rem 1rem; align-items:start;
  margin:var(--space-6) 0; padding:var(--space-5); border-radius:var(--radius);
  background:var(--cream-hi); border:1px solid var(--hairline); border-left:4px solid var(--accent); }
.callout__ic{ grid-row:span 2; width:36px; height:36px; border-radius:10px; display:grid; place-items:center; flex:none;
  background:var(--accent-wash); color:var(--accent-deep); }
.callout__ic svg{ width:19px; height:19px; }
.callout__title{ align-self:center; font-weight:700; font-size:.95rem; letter-spacing:-.01em; color:var(--ink); text-transform:uppercase; letter-spacing:.04em; font-size:.78rem; }
.callout__c{ grid-column:2; }
.callout__c p{ margin:0; font-size:var(--fs-small); color:var(--ink-soft); }
.callout__c p + p{ margin-top:.5rem; }
.callout__c ul{ margin:.3rem 0 0; padding-left:1.2rem; display:grid; gap:.4rem; font-size:var(--fs-small); color:var(--ink-soft); }
.callout__c ul li::marker{ color:var(--accent); }
.callout--tip{ border-left-color:var(--sage-deep); }
.callout--tip .callout__ic{ background:var(--sage-wash); color:var(--sage-deep); }
.callout--warn{ border-left-color:var(--accent-deep); }
.callout--warn .callout__ic{ background:var(--accent-wash); color:var(--accent-deep); }
.callout--key{ background:var(--cream-deep); border-left-color:var(--ink); }
.callout--key .callout__ic{ background:rgba(28,22,15,.08); color:var(--ink); }

/* CTA méthode (maillage interne) */
.article-cta{ display:flex; gap:var(--space-5); align-items:center; background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:var(--space-5); margin:var(--space-7) auto; max-width:var(--measure); box-shadow:var(--shadow-sm); }
.article-cta__cover{ flex:0 0 86px; }
.article-cta__cover .realcover, .article-cta__cover .book, .article-cta__cover .pcover{ width:86px; }
.article-cta__body{ min-width:0; }
.article-cta__kicker{ font-size:var(--fs-xs); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--sage-deep); }
.article-cta__body h3{ margin:.25rem 0 .35rem; font-size:1.2rem; }
.article-cta__body p{ margin:0 0 .85rem; font-size:var(--fs-small); color:var(--ink-soft); }
@media (max-width:560px){ .article-cta{ flex-direction:column; align-items:flex-start; } }

/* CTA méthode — mini-fiche produit premium */
.article-method{ position:relative; display:grid; grid-template-columns:auto 1fr; gap:var(--space-4) var(--space-6); align-items:center;
  max-width:var(--measure); margin:var(--space-8) auto; padding:var(--space-6) var(--space-6) var(--space-6) calc(var(--space-6) + 4px);
  background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; }
.article-method::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--sub,var(--accent)); }
.article-method__cover{ display:block; width:116px; flex:none; align-self:center; }
.article-method__cover .realcover, .article-method__cover .book, .article-method__cover .pcover{ width:116px; box-shadow:var(--shadow-md); border-radius:10px; transition:transform .4s var(--ease); }
.article-method:hover .article-method__cover .realcover, .article-method:hover .article-method__cover .book, .article-method:hover .article-method__cover .pcover{ transform:translateY(-3px) rotate(-1.5deg); }
.article-method__kicker{ font-size:var(--fs-xs); font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--sage-deep); }
.article-method h3{ font-size:1.35rem; margin:.3rem 0 .4rem; letter-spacing:-.02em; }
.article-method__benefit{ color:var(--ink-soft); font-size:var(--fs-small); margin:0 0 var(--space-4); }
.article-method__points{ list-style:none; padding:0; margin:0 0 var(--space-5); display:flex; flex-wrap:wrap; gap:.45rem 1.2rem; }
.article-method__points li{ font-size:var(--fs-xs); color:var(--ink-soft); display:inline-flex; align-items:center; gap:.4rem; }
.article-method__points li::before{ content:""; width:15px; height:15px; flex:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C25812' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
.article-method__foot{ display:flex; align-items:center; gap:.9rem 1.4rem; flex-wrap:wrap; }
.article-method__price{ display:flex; align-items:baseline; gap:.5rem; }
.article-method__price .now{ font-size:1.55rem; font-weight:800; letter-spacing:-.025em; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; }
.article-method__price .old{ font-size:var(--fs-small); color:var(--ink-faint); text-decoration:line-through; }
.article-method__price .off{ font-size:var(--fs-xs); font-weight:700; color:var(--accent-deep); background:var(--accent-wash); padding:.12rem .5rem; border-radius:99px; }
.article-method__soon{ font-weight:700; color:var(--ink-soft); }
@media (max-width:560px){ .article-method{ grid-template-columns:1fr; gap:var(--space-4); } .article-method__cover{ align-self:flex-start; width:104px; } .article-method__cover .realcover, .article-method__cover .book, .article-method__cover .pcover{ width:104px; } }

/* Encart recommandation partenaire (affiliation, transparent) */
.reco{ border:1px solid var(--hairline); border-radius:var(--radius-lg); background:var(--paper); padding:var(--space-6); margin:var(--space-7) auto; max-width:var(--measure); box-shadow:var(--shadow-sm); }
.reco__label{ display:inline-flex; align-items:center; gap:.4rem; font-size:var(--fs-xs); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--sage-deep); }
.reco__label svg{ width:15px; height:15px; }
.reco h3{ margin:.55rem 0 .4rem; font-size:1.3rem; }
.reco p{ color:var(--ink-soft); font-size:var(--fs-small); margin:0 0 var(--space-5); }
.reco__foot{ display:flex; align-items:center; gap:1rem 1.2rem; flex-wrap:wrap; }
.reco__disc{ font-size:var(--fs-xs); color:var(--ink-faint); }

/* Articles liés */
.article-related{ max-width:var(--narrow); margin:calc(var(--section-y) * .7) auto 0; }
.article-related__head{ margin-bottom:var(--space-5); }

/* Index du journal : filtres + grille d'articles */
.blog-filters{ justify-content:flex-start; margin:var(--space-7) 0 var(--space-6); }
.blog-empty{ text-align:center; color:var(--ink-faint); padding:var(--space-8) 0; font-size:var(--fs-small); }
.blog-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.1rem,2vw,1.6rem); }
@media (max-width:900px){ .blog-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-feature{ display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(1.5rem,3vw,2.5rem); align-items:center; margin-bottom:var(--space-8);
  background:var(--espresso); color:var(--on-dark); border-radius:var(--radius-lg); overflow:hidden; }
.blog-feature__body{ padding:clamp(1.75rem,3vw,2.75rem); }
.blog-feature__body h2{ color:#fff; font-size:var(--fs-h2); max-width:16ch; margin:var(--space-3) 0; }
.blog-feature__body p{ color:var(--on-dark-soft); max-width:44ch; }
.blog-feature__art{ align-self:stretch; min-height:240px; background:var(--espresso-2); position:relative; overflow:hidden; }
.blog-feature__art img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:720px){ .blog-feature{ grid-template-columns:1fr; } .blog-feature__art{ order:-1; min-height:0; aspect-ratio:16/9; } }

/* ============================================================
   ESPACE MEMBRE — Accueil sobre + stats élégantes (refonte 2026-07-11)
   Registre Notion/Linear/Stripe : peu d'ombres, beaucoup d'air.
   ============================================================ */
.mbr-greet{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.4rem 2.5rem; flex-wrap:wrap; margin-bottom:2.6rem; }
.mbr-greet__intro h1{ font-size:clamp(1.65rem,1.2rem+1.5vw,2.15rem); letter-spacing:-.022em; line-height:1.08; }
.mbr-greet__intro p{ color:var(--ink-soft); margin-top:.45rem; font-size:1.02rem; }
.mbr-greet__stats{ display:flex; gap:.7rem; flex-wrap:wrap; }
.mbr-stat{ min-width:106px; padding:.8rem 1.1rem .85rem; background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius); }
.mbr-stat__n{ display:flex; align-items:baseline; gap:.12rem; font-size:1.55rem; font-weight:800; letter-spacing:-.02em; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; }
.mbr-stat__u{ font-size:.88rem; font-weight:700; color:var(--ink-faint); letter-spacing:0; }
.mbr-stat__l{ display:block; margin-top:.45rem; font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-faint); font-weight:600; }
@media (max-width:560px){ .mbr-greet__stats{ width:100%; } .mbr-stat{ flex:1; min-width:0; text-align:center; } .mbr-stat__n{ justify-content:center; } }

/* Vraies couvertures illustrées (img) — s'insèrent comme .book dans les conteneurs de cover */
.realcover{ display:block; width:100%; aspect-ratio:565/800; object-fit:cover; border-radius:12px; box-shadow:var(--shadow-sm); background:var(--cream); }
.resume__cover .realcover, .libitem__cover .realcover, .lockitem__cover .realcover{ width:100%; }
/* Vraie couverture dans le hero de fiche produit : même mise en scène que .book */
.product__cover .realcover{ box-shadow:var(--shadow-lg); transform:rotate(-2deg); transition:transform .4s var(--ease); border-radius:14px; }
.product__cover:hover .realcover{ transform:rotate(0); }

/* Cartes membres : ombres plus discrètes, hover plus subtil, plus d'air */
.member .resume, .member .libitem, .member .selcard{ box-shadow:0 1px 2px rgba(28,22,15,.045); }
.member .resume:hover, .member .libitem:hover, .member .selcard:hover,
.member .lockitem:hover, .member .journalcard:hover{ transform:translateY(-2px); box-shadow:0 14px 32px -18px rgba(28,22,15,.18); }
.member .blk{ margin-bottom:2.7rem; }
.member .view__head{ margin-bottom:2rem; }

/* ============================================================
   BLOCS DE CONFIANCE PREMIUM (partagés) — 2026-07-13
   Mini-cartes signature réutilisées : hero d'accueil, page Nos méthodes,
   pages produit. Titre + sous-titre, icône discrète. Additif non destructif.
   ============================================================ */
.featrow{ display:flex; flex-wrap:wrap; gap:.7rem; }
.featgrid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(.7rem,1.5vw,1rem); }
.featcard{ display:flex; align-items:flex-start; gap:.7rem; padding:.85rem 1.1rem; background:var(--cream-hi);
  border:1px solid var(--hairline); border-radius:var(--radius); box-shadow:var(--shadow-xs);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease); }
.featcard:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); border-color:var(--hairline-2); }
.featcard__ic{ flex:none; width:30px; height:30px; border-radius:9px; display:grid; place-items:center;
  background:var(--accent-wash); color:var(--accent-deep); margin-top:1px; }
.featcard__ic svg{ width:16px; height:16px; }
.featcard__t{ display:block; font-family:var(--font-display); font-weight:600; font-size:.95rem; letter-spacing:-.01em; color:var(--ink); line-height:1.2; }
.featcard__s{ display:block; font-size:var(--fs-xs); color:var(--ink-soft); margin-top:.15rem; line-height:1.35; }
@media (max-width:820px){ .featgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:460px){ .featgrid{ grid-template-columns:1fr; } }

/* Hero d'accueil : 2 blocs premium + preuve sociale Beacons (sous les CTA) */
.hero__proof{ display:flex; align-items:center; gap:.6rem; margin-top:var(--space-5); }
.hero__proof .hero__stars{ color:var(--accent); font-size:1.02rem; letter-spacing:.06em; }
.hero__proof .l{ font-size:var(--fs-xs); color:var(--ink-faint); text-transform:uppercase; letter-spacing:.09em; max-width:26ch; }
.hero__feat{ max-width:440px; }

/* Couvertures cliquables (accueil) — hero + cartes collection. A11y clavier. */
.hero__cover-link, .vol__cover-link{ display:block; width:100%; height:100%; border-radius:inherit; }
.hero__cover-link:focus-visible, .vol__cover-link:focus-visible{ outline:2px solid var(--accent-deep); outline-offset:3px; border-radius:12px; }
.vol__cover-link{ position:relative; }
.vol__cover-link::after{ content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 0 var(--accent);
  opacity:0; transition:opacity .3s var(--ease); pointer-events:none; }
.vol--live:hover .vol__cover-link::after{ opacity:1; box-shadow:inset 0 0 0 2px rgba(231,115,35,.18); }

/* ============================================================
   PAGE PRODUIT — dopamine premium (2026-07-13, additif)
   Renforce le bloc d'achat, la lisibilité prix, les preuves de confiance.
   ============================================================ */
.product__buy{ position:relative; }
.product__buy::before{ content:""; position:absolute; inset:0; border-radius:var(--radius-lg);
  box-shadow:inset 0 0 0 1px rgba(231,115,35,.16); pointer-events:none; }
.product__pricewrap{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.product__save{ display:inline-flex; align-items:center; gap:.35rem; font-size:var(--fs-xs); font-weight:700;
  color:var(--accent-deep); background:var(--accent-wash); border-radius:var(--radius-pill); padding:.32rem .7rem; white-space:nowrap; }
.product__perks{ list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.product__perks li{ display:flex; align-items:flex-start; gap:.6rem; font-size:var(--fs-small); color:var(--ink); }
.product__perks svg{ flex:none; width:17px; height:17px; color:var(--success); margin-top:2px; }
.product__guarantee{ display:flex; align-items:center; gap:.55rem; font-size:var(--fs-xs); color:var(--ink-soft);
  padding-top:var(--space-4); border-top:1px solid var(--hairline); }
.product__guarantee svg{ flex:none; width:16px; height:16px; color:var(--sage-deep); }
/* Micro-interactions discrètes sur les étapes du programme */
.toc__item{ transition:border-color .3s var(--ease); }
.toc__item:hover .toc__day{ color:var(--accent); }
.checklist li{ transition:transform .25s var(--ease); }
.checklist li:hover{ transform:translateX(2px); }

/* ============================================================
   « À DÉCOUVRIR AUSSI » — cartes compactes (2026-07-13)
   Présentation secondaire : ne concurrence pas le produit principal.
   ============================================================ */
.rel-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(.8rem,1.6vw,1.2rem); max-width:var(--narrow); }
.relcard{ display:grid; grid-template-columns:auto 1fr; gap:var(--space-4); align-items:center; text-decoration:none;
  background:var(--cream-hi); border:1px solid var(--hairline); border-radius:var(--radius); padding:.85rem 1rem;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease); }
.relcard:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); border-color:var(--hairline-2); }
.relcard__cover{ width:58px; flex:none; border-radius:8px; overflow:hidden; box-shadow:var(--shadow-xs); }
.relcard__cover .realcover, .relcard__cover .book, .relcard__cover .pcover{ width:58px; border-radius:8px; box-shadow:none; }
.relcard__cat{ display:block; font-size:var(--fs-xs); font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--sage-deep); }
.relcard__t{ display:block; font-family:var(--font-display); font-weight:600; font-size:1rem; letter-spacing:-.015em; color:var(--ink); margin:.15rem 0 .3rem; line-height:1.2; }
.relcard__price{ display:inline-flex; align-items:baseline; gap:.4rem; font-size:var(--fs-small); }
.relcard__price .now{ font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.relcard__price .was{ font-size:var(--fs-xs); color:var(--ink-faint); text-decoration:line-through; }
.relcard__price .soon{ font-size:var(--fs-xs); font-weight:600; color:var(--ink-faint); }
@media (max-width:560px){ .rel-grid{ grid-template-columns:1fr; } }

/* « À lire ensuite » — chapô éditorial */
.article-related__intro{ color:var(--ink-soft); font-size:var(--fs-small); margin-top:var(--space-2); max-width:52ch; }

/* ============================================================
   AUTH — connexion Google (OAuth) + séparateur (2026-07-13)
   ============================================================ */
.auth-oauth{ margin-top:var(--space-4); }
.btn-oauth{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem; width:100%;
  padding:.82rem 1.2rem; border-radius:var(--radius-pill); border:1px solid var(--hairline);
  background:var(--paper); color:var(--ink); font-family:var(--font-sans); font-weight:600; font-size:var(--fs-small);
  cursor:pointer; transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease); }
.btn-oauth:hover{ border-color:var(--hairline-2); box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.btn-oauth:disabled{ opacity:.6; cursor:default; transform:none; box-shadow:none; }
.btn-oauth svg{ width:18px; height:18px; flex:none; }
.auth-sep{ display:flex; align-items:center; text-align:center; gap:.8rem; color:var(--ink-faint); font-size:var(--fs-xs); margin:var(--space-5) 0 var(--space-4); }
.auth-sep::before, .auth-sep::after{ content:""; flex:1; height:1px; background:var(--hairline); }
