/* ==========================================================================
   WEMHA IT : charte "luxe numérique"
   Chargée APRÈS le <style> inline de chaque page : elle redéfinit les tokens
   et reprend les composants qui avaient des couleurs codées en dur.
   Thèmes : data-theme="luxe" (défaut, clair) / data-theme="noir" (sombre).
   ========================================================================== */

/* ---------- polices auto-hébergées (Archivo, Geist Mono : licence OFL) ---------- */
@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 300 700;
  font-stretch: 100% 125%;
  font-display: swap;
  src: url(fonts/archivo-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 300 700;
  font-stretch: 100% 125%;
  font-display: swap;
  src: url(fonts/archivo-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 300 700;
  font-stretch: 100% 125%;
  font-display: swap;
  src: url(fonts/archivo-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 300 700;
  font-stretch: 100% 125%;
  font-display: swap;
  src: url(fonts/archivo-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/geistmono-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/geistmono-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/geistmono-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/geistmono-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- tokens : thème luxe (clair) ---------- */
:root,
html[data-theme="luxe"]{
  --bg:#F1EFEA;
  --bg-2:#E8E4DC;
  --bg-soft:#E2DDD3;
  --surface:#F8F7F3;
  --ink:#161615;
  --ink-2:#2B2A27;
  --muted:#5D5952;
  --muted-dim:#77726A;
  --line:rgba(22,22,21,.10);
  --line-2:rgba(22,22,21,.18);

  --beige:#C8B9A1;
  --beige-soft:#E3DACB;
  --accent-ink:#75624A;

  /* anciens tokens couleur ramenés dans la nouvelle palette */
  --blue:#161615;
  --blue-light:#2B2A27;
  --blue-pale:#75624A;
  --cyan:#75624A;
  --green:#8C7A5E;
  --green-light:#75624A;
  --grad:linear-gradient(100deg,#161615 0%,#4E4335 55%,#8C7A5E 100%);
  --grad-soft:var(--grad);

  --glass:rgba(255,255,255,.5);
  --glass-2:rgba(255,255,255,.7);
  --header-bg:rgba(241,239,234,.94);
  --shadow:0 22px 48px -30px rgba(70,56,36,.28);
  --shadow-hover:0 28px 56px -32px rgba(70,56,36,.38);

  --radius:6px;
  --radius-sm:4px;

  --ok-ink:#2F6B3A;  --ok-bg:rgba(47,107,58,.08);  --ok-line:rgba(47,107,58,.3);
  --err-ink:#A3261C; --err-bg:rgba(163,38,28,.06); --err-line:rgba(163,38,28,.3);
  --ads-a:#C5221F;   --ads-b:#75624A;

  --font-body:"Archivo",system-ui,sans-serif;
  --font-head:"Archivo",system-ui,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* ---------- tokens : thème noir ---------- */
html[data-theme="noir"]{
  --bg:#111110;
  --bg-2:#181816;
  --bg-soft:#1E1D1B;
  --surface:#1A1917;
  --ink:#EEEAE3;
  --ink-2:#D9D4CB;
  --muted:#A39E94;
  --muted-dim:#857F75;
  --line:rgba(238,234,227,.10);
  --line-2:rgba(238,234,227,.18);

  --beige:#C8B9A1;
  --beige-soft:#2C2924;
  --accent-ink:#CDBFA7;

  --blue:#EEEAE3;
  --blue-light:#D9D4CB;
  --blue-pale:#CDBFA7;
  --cyan:#CDBFA7;
  --green:#B8A88E;
  --green-light:#CDBFA7;
  --grad:linear-gradient(100deg,#EEEAE3 0%,#CDBFA7 60%,#A8977B 100%);

  --glass:rgba(255,255,255,.025);
  --glass-2:rgba(255,255,255,.05);
  --header-bg:rgba(17,17,16,.92);
  --shadow:0 24px 60px -28px rgba(0,0,0,.75);
  --shadow-hover:0 30px 64px -30px rgba(0,0,0,.85);

  --ok-ink:#8FCB98;  --ok-bg:rgba(143,203,152,.08); --ok-line:rgba(143,203,152,.3);
  --err-ink:#F0A39B; --err-bg:rgba(240,163,155,.07); --err-line:rgba(240,163,155,.3);
  --ads-a:#F28B82;   --ads-b:#CDBFA7;
}

/* Blocs noirs voulus (bandeau résultats, encadré solution, footer) :
   les tokens sont redéfinis localement, tous les enfants suivent. */
.results,
.solution-bridge,
.footer,
.sv-cta{
  --ink:#EEEAE3;
  --ink-2:#D9D4CB;
  --muted:#A39E94;
  --muted-dim:#857F75;
  --line:rgba(238,234,227,.11);
  --line-2:rgba(238,234,227,.2);
  --accent-ink:#CDBFA7;
  --beige-soft:#2C2924;
  --cyan:#CDBFA7; --blue-pale:#CDBFA7; --green-light:#CDBFA7;
  --grad:linear-gradient(100deg,#EEEAE3 0%,#CDBFA7 60%,#A8977B 100%);
  --glass:rgba(255,255,255,.03);
  --glass-2:rgba(255,255,255,.05);
  --bg:#161615;
  --surface:#1C1B19;
  color:var(--ink);
}

/* ---------- base ---------- */
html,body{background:var(--bg);color:var(--ink)}
body{font-family:var(--font-body);font-stretch:normal;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-head);font-stretch:112.5%;font-weight:500;letter-spacing:-.005em}
::selection{background:var(--beige);color:#161615}

/* effets futuristes retirés : curseur custom, particules, orbes, grille */
.cursor-dot,.cursor-ring,#particles,.bg-fixtures,.orb,.bg-dots,.hero__grid,
.contact__bg,.results__inner-glow,.service-card::after,.ads-teaser::after,
.problem-card::before,.usecase-card::before,.about__stat::before{display:none!important}
@media (pointer:fine){
  body{cursor:auto}
  a,button,summary,.contact__tab,.choice span,label.upload{cursor:pointer}
  input,select,textarea{cursor:auto}
}
.scroll-progress{background:var(--ink);box-shadow:none;height:2px}

.gradient-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------- logo (wordmark) ---------- */
.wordmark{display:inline-flex;align-items:center;gap:.55em;font-family:var(--font-head);font-stretch:125%;font-weight:600;font-size:1.06rem;letter-spacing:.3em;color:var(--ink);white-space:nowrap;line-height:1}
.wordmark__it{font-family:var(--font-mono);font-stretch:normal;font-size:.6em;font-weight:500;letter-spacing:.18em;color:var(--accent-ink);border:1px solid var(--line-2);border-radius:3px;padding:.32em .42em .3em .55em}
.footer__brand .wordmark{font-size:1.45rem}

/* ---------- header / nav (adapté du bloc "Hero 01" de ShadcnSpace, licence MIT) ---------- */
.header{transition:padding .5s var(--ease)}
.header__inner{height:72px;transition:height .5s var(--ease),padding .5s var(--ease),background .5s,border-color .5s,box-shadow .5s,max-width .5s var(--ease)}
.header.is-scrolled{background:transparent;border-bottom-color:transparent;backdrop-filter:none;padding-top:10px}
.header.is-scrolled .header__inner{height:60px;width:calc(100% - 24px);max-width:calc(var(--maxw) - 24px);padding:0 10px 0 22px;background:var(--header-bg);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.nav-premium{display:none!important}

/* navigation centrée dans une capsule */
.nav{margin:0 auto;gap:0;padding:3px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px}
.nav a{position:relative;z-index:0;padding:.46rem .95rem;font-size:.9rem;color:var(--muted);border-radius:4px;transition:color .2s}
.nav a::after{display:none}
.nav a::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:4px;background:var(--bg);box-shadow:0 1px 2px rgba(22,22,21,.08),0 0 0 1px var(--line);opacity:0;transition:opacity .2s}
.nav a:hover,.nav a.is-active{color:var(--ink)}
.nav a:hover::before,.nav a.is-active::before{opacity:1}
.header__cta{margin-left:0}
.nav .nav-ads,.mobile-menu .nav-ads{background:none;-webkit-text-fill-color:currentColor}
.nav-ads span{background:linear-gradient(90deg,var(--ads-a),var(--ads-b));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:600}

/* menu mobile : panneau latéral plein écran */
.mobile-menu{top:0;bottom:0;left:auto;right:0;width:min(100%,420px);padding:104px 28px 32px;gap:.15rem;background:var(--bg);backdrop-filter:none;border-bottom:0;border-left:1px solid var(--line);box-shadow:-30px 0 60px -30px rgba(22,22,21,.25);opacity:1;transform:translateX(100%);transition:transform .5s var(--ease)}
.mobile-menu.is-open{transform:translateX(0)}
.mobile-menu a:not(.btn){display:flex;align-items:center;gap:0;padding:.5rem 0;border-bottom:0;font-family:var(--font-head);font-stretch:112.5%;font-size:1.55rem;font-weight:500;color:var(--muted);transition:color .25s,gap .3s var(--ease)}
.mobile-menu a:not(.btn)::before{content:"";width:0;height:2px;background:var(--ink);transition:width .3s var(--ease)}
.mobile-menu a:not(.btn):hover{color:var(--ink);gap:.6rem}
.mobile-menu a:not(.btn):hover::before{width:1rem}
.mobile-menu .btn{margin-top:1.6rem;align-self:flex-start}
/* le logo et le bouton de fermeture restent au-dessus du panneau */
.header__inner{position:relative;z-index:901}
.mobile-menu a.btn{color:var(--bg);padding:.4rem 3.6rem .4rem 1.4rem;border-bottom:0;font-weight:500}
.mobile-menu a.btn:hover{padding:.4rem 1.4rem .4rem 3.6rem}
.mobile-menu{visibility:hidden;transition:transform .5s var(--ease),visibility 0s .5s}
.mobile-menu.is-open{visibility:visible;transition:transform .5s var(--ease),visibility 0s}

/* ---------- bouton à flèche glissante ---------- */
.btn--slide{position:relative;padding:.4rem 3.6rem .4rem 1.4rem;min-height:3.25rem;transition:padding .5s var(--ease)}
.btn--slide::after{display:none}
.btn--slide .btn__label{position:relative;z-index:1}
.btn--slide .btn__chip{position:absolute;top:50%;right:.35rem;width:2.55rem;height:2.55rem;margin-top:-1.275rem;display:grid;place-items:center;border-radius:3px;background:var(--bg);color:var(--ink);transition:right .5s var(--ease),transform .5s var(--ease)}
.btn--slide .btn__chip svg{width:16px;height:16px}
.btn--slide:hover{padding-left:3.6rem;padding-right:1.4rem}
.btn--slide:hover .btn__chip{right:calc(100% - 2.55rem - .35rem)}
.btn--slide .btn__chip svg{transition:transform .5s var(--ease)}
.btn--slide:hover .btn__chip svg{transform:rotate(45deg)}
.btn--sm.btn--slide{min-height:2.6rem;padding:.3rem 3rem .3rem 1.05rem;font-size:.88rem}
.btn--sm.btn--slide .btn__chip{width:2rem;height:2rem;margin-top:-1rem;right:.3rem}
.btn--sm.btn--slide:hover{padding-left:3rem;padding-right:1.05rem}
.btn--sm.btn--slide:hover .btn__chip{right:calc(100% - 2rem - .3rem)}
.btn--lg.btn--slide{min-height:3.5rem;font-size:1rem}

/* ---------- hero WEMHA (adapté du bloc "Hero 01" de ShadcnSpace, licence MIT) ---------- */
:root,html[data-theme="luxe"]{--halo-a:#E2D6C2;--halo-b:#F8F7F3;--halo-c:#D5C7AF}
html[data-theme="noir"]{--halo-a:#2B2721;--halo-b:#111110;--halo-c:#3A332A}
.hero.hero-w{position:relative;isolation:isolate;overflow:hidden;padding:152px 0 36px;text-align:center}
.hero-w__halo{position:absolute;z-index:-1;left:50%;top:150px;width:min(1080px,94vw);height:440px;border-radius:50%;background:linear-gradient(90deg,var(--halo-a),var(--halo-b) 50%,var(--halo-c));filter:blur(64px);transform:translateX(-50%);animation:haloDrift 16s ease-in-out infinite alternate}
@keyframes haloDrift{from{transform:translateX(-52%) scale(1)}to{transform:translateX(-48%) scale(1.06)}}
.hero-w__inner{display:flex;flex-direction:column;align-items:center}
.hero-w__title{max-width:none;font-size:clamp(2.1rem,4.5vw,3.85rem);line-height:1.07;font-weight:500;font-stretch:112.5%;letter-spacing:-.018em;color:var(--ink)}
.hero-w__title em{display:block;padding-bottom:.06em;font-style:italic;font-weight:300;color:var(--accent-ink)}
.hero-w__lead{max-width:38rem;margin:1.5rem auto 0;font-size:1.08rem;line-height:1.65;color:var(--muted)}
.hero-w__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.4rem 2.4rem;margin-top:2.4rem}
.hero-w__trust{display:flex;align-items:center;gap:1.1rem;text-align:left}
.hero-w__avatars{display:flex;list-style:none;margin:0;padding:0}
.hero-w__avatars li{width:40px;height:40px;margin-right:-10px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--bg);background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.04em;transition:margin .3s var(--ease)}
.hero-w__avatars li:nth-child(2){background:var(--accent-ink)}
.hero-w__avatars li:nth-child(3){background:var(--ink-2)}
.hero-w__avatars li:nth-child(4){background:var(--beige);color:#161615}
.hero-w__trust:hover .hero-w__avatars li{margin-right:-2px}
.hero-w__rating{display:flex;flex-direction:column;gap:.15rem;padding-left:10px}
.hero-w__stars{color:var(--accent-ink);font-size:.95rem;letter-spacing:.14em}
.hero-w__rating p{margin:0;font-size:.86rem;color:var(--muted)}

.hero-w__brands{margin-top:84px}
.hero-w__caption{display:flex;align-items:center;justify-content:center;gap:1.1rem;padding:0 18px}
.hero-w__caption span{width:9rem;height:1px;background:linear-gradient(270deg,var(--line-2),transparent)}
.hero-w__caption span:last-child{background:linear-gradient(90deg,var(--line-2),transparent)}
.hero-w__caption p{margin:0;font-size:.86rem;color:var(--muted)}
.marquee{--gap:4.5rem;display:flex;gap:var(--gap);overflow:hidden;padding:1.6rem 0 .4rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee__group{display:flex;flex-shrink:0;align-items:center;justify-content:space-around;gap:var(--gap);animation:wemhaMarquee 30s linear infinite}
.marquee:hover .marquee__group{animation-play-state:paused}
@keyframes wemhaMarquee{from{transform:translateX(0)}to{transform:translateX(calc(-100% - var(--gap)))}}
.brandmark{display:inline-flex;align-items:center;gap:.75rem;white-space:nowrap;font-family:var(--font-head);font-stretch:125%;font-size:.95rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .25s}
.brandmark i{display:grid;place-items:center;width:2.1rem;height:2.1rem;font-style:normal;font-family:var(--font-mono);font-stretch:normal;font-size:.68rem;font-weight:500;letter-spacing:.06em;color:var(--accent-ink);border:1px solid var(--line-2);border-radius:3px}
.brandmark:hover{color:var(--ink)}

/* apparition en cascade */
.hw-in{opacity:0;transform:translateY(32px);animation:hwIn 1s cubic-bezier(.45,0,.55,1) var(--d,0s) forwards}
@keyframes hwIn{to{opacity:1;transform:none}}
body:has(.hero-w) .header{animation:hwDown .7s cubic-bezier(.45,0,.55,1) backwards}
@keyframes hwDown{from{opacity:0;transform:translateY(-32px)}to{opacity:1;transform:none}}

@media (max-width:760px){
  .hero.hero-w{padding:118px 0 24px}
  .hero-w__halo{top:110px;height:360px}
  .hero-w__actions{flex-direction:column}
  .hero-w__brands{margin-top:56px}
  .hero-w__caption span{display:none}
  .marquee{--gap:3rem}
}
@media (prefers-reduced-motion:reduce){
  .hw-in,body:has(.hero-w) .header{animation:none;opacity:1;transform:none}
  .hero-w__halo,.marquee__group{animation:none}
  .marquee{flex-wrap:wrap;justify-content:center;-webkit-mask-image:none;mask-image:none}
  .marquee__group[aria-hidden="true"]{display:none}
}
.theme-toggle{border-color:var(--line-2);background:transparent;color:var(--ink)}
.theme-toggle:hover{border-color:var(--ink);box-shadow:none}
.theme-toggle .icon-sun{display:none}
.theme-toggle .icon-moon{display:block}
html[data-theme="noir"] .theme-toggle .icon-sun{display:block}
html[data-theme="noir"] .theme-toggle .icon-moon{display:none}
.burger{border-color:var(--line-2);background:transparent}
.burger span{background:var(--ink)}
/* le libellé "Nos réalisations & maquettes" demande plus de place : burger plus tôt */
@media (max-width:1180px){
  .nav,.header__cta{display:none}
  .header__inner .theme-toggle{display:grid;margin-left:auto}
  .header .burger{display:flex;margin-left:.5rem}
}

/* ---------- boutons ---------- */
.btn{border-radius:4px;font-weight:500;letter-spacing:.02em}
.btn--primary{background:var(--ink);color:var(--bg);box-shadow:none}
.btn--primary::after{background:var(--accent-ink)}
html[data-theme="noir"] .btn--primary::after{background:var(--beige)}
.btn--primary:hover{box-shadow:none}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2);backdrop-filter:none}
.btn--ghost:hover{border-color:var(--ink);box-shadow:none}
.btn--pulse{animation:none}
.btn:active{transform:translateY(1px)}

/* ---------- labels ---------- */
.eyebrow,.eyebrow--light{color:var(--accent-ink);font-family:var(--font-mono);font-weight:500;font-size:.74rem;letter-spacing:.16em}
/* sobriété : plus d'étiquette au-dessus de chaque titre de section */
.section__head > .eyebrow{display:none}
.badge{background:transparent;border:1px solid var(--line-2);color:var(--accent-ink);border-radius:4px;font-family:var(--font-mono);font-weight:500;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:none}
.badge__dot{display:none}
.section__head--light .section__title{color:var(--ink)}
.section__lead--light{color:var(--muted)}

/* ---------- hero (provisoire, sera remplacé) ---------- */
.hero__title{font-size:clamp(2.1rem,4.3vw,3.4rem);letter-spacing:-.01em}
.section__title{font-size:clamp(1.65rem,3.1vw,2.55rem)}
.caret,.hero__type .caret{background:var(--accent-ink);box-shadow:none}
.hero__trust li{padding-left:0}
.hero__trust li::before{display:none}
.hero__trust strong{font-family:var(--font-head);font-stretch:112.5%}
.mockup{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow);backdrop-filter:none}
.mockup__bar{background:var(--bg-2);border-bottom-color:var(--line)}
.mockup__bar > span,.mockup__bar > span:nth-child(n){background:var(--line-2)}
.mockup__url,.window__url{background:transparent;font-family:var(--font-mono);color:var(--muted-dim)}
.mockup__card{background:var(--bg);border-color:var(--line)}
.mockup__card--accent{background:var(--beige-soft);border-color:var(--line-2)}
.mockup__item{background:var(--bg);color:var(--ink-2);border-color:var(--line)}
.mockup__item .tag,.mockup__item .tag--run,.mockup__pill{background:var(--beige-soft);color:var(--accent-ink)}
.mockup__spark i{background:var(--ink);opacity:.85}
.dot--ok{background:var(--accent-ink);box-shadow:none}
.dot--run{background:var(--ink);box-shadow:none}
.float-card{background:var(--surface);border-color:var(--line);color:var(--ink);backdrop-filter:none;box-shadow:var(--shadow)}
.float-card--1,.float-card--2{color:var(--ink)}
.float-card__icon,.float-card--1 .float-card__icon{background:var(--ink);color:var(--bg)}
.logo-chip{background:transparent;border-color:var(--line);border-radius:4px;color:var(--muted)}
.logo-chip:hover{border-color:var(--ink);color:var(--ink)}
.logo-chip__mark{background:var(--ink);color:var(--bg);border-radius:3px}
.logos span{color:var(--muted-dim)}
.logos span:hover{color:var(--ink)}

/* ---------- bandeaux ---------- */
.reassure{background:var(--bg-2);border-color:var(--line)}
.reassure__ico{background:var(--beige-soft);border-color:var(--line);border-radius:4px}
.reassure__ico svg path,.reassure__ico svg circle{stroke:var(--accent-ink)}
.results{background:#161615}
html[data-theme="noir"] .results{background:#1C1B19}
.results__pills span{border-color:var(--line-2);border-radius:4px;color:var(--ink)}
.counter{background:rgba(255,255,255,.03);border-color:var(--line);box-shadow:none;border-radius:var(--radius)}
.cta-band{background:var(--bg-2);border-color:var(--line)}

/* ---------- cartes ---------- */
.problem-card,.service-card,.usecase-card,.testimonial,.faq__item,.svc-feat,.about__stat,.plan,.window,.contact__panel{border-radius:var(--radius);backdrop-filter:none}
.problem-card:hover,.service-card:hover,.usecase-card:hover,.testimonial:hover,.svc-feat:hover{border-color:var(--line-2);box-shadow:var(--shadow-hover)}
.problem-card:hover .problem-card__icon{box-shadow:none}
.problem-card__icon,.usecase-card__emoji,.service-card__icon,.svc-feat__ico{background:var(--beige-soft);color:var(--ink);border:1px solid var(--line);border-radius:4px}
.svc-feat__ico svg{stroke:var(--ink)}
.service-card__benefit{background:transparent;border:1px solid var(--line-2);border-radius:4px;color:var(--accent-ink);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.04em}
.service-card__more,.case__visit{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-2)}
.usecase-card__sector{color:var(--accent-ink);font-family:var(--font-mono);letter-spacing:.08em}
.usecase-card__results li{color:var(--ink-2)}
.usecase-card__results li::before{background:var(--beige-soft)}
.about__values li{background:transparent;border-color:var(--line-2);border-radius:4px}
.about__values li::before{display:none}
.solution-bridge{background:#161615;border:0;box-shadow:none;border-radius:var(--radius)}
.solution-bridge p{color:var(--muted)}
.solution-bridge strong{color:var(--beige)}
.solution-bridge__icon{background:var(--beige);color:#161615;box-shadow:none;border-radius:4px}
.svc-step::before{background:var(--ink)}
.timeline__item.in .timeline__num{border-color:var(--line-2);box-shadow:none}
.timeline__progress{background:var(--ink);box-shadow:none}

/* ---------- avis / FAQ ---------- */
.testimonial blockquote{color:var(--ink-2)}
.testimonial__stars{color:var(--accent-ink);text-shadow:none;letter-spacing:.2em}
.avatar{background:var(--ink);color:var(--bg)}
.faq__item summary:hover{color:var(--accent-ink)}
.faq__item[open]{border-color:var(--line-2);box-shadow:none}
.faq__item summary::after{
  background:var(--accent-ink);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (min-width:981px){.testimonials__grid{grid-template-columns:repeat(3,1fr)}}
.results__pills span{background:transparent}

/* ---------- teaser Ads (couleurs Google gardées, cadre sobre) ---------- */
.ads-teaser{background:var(--surface);border-color:var(--line);border-radius:var(--radius)}
.ads-teaser__eyebrow{color:var(--ads-a);font-family:var(--font-mono);font-weight:500;letter-spacing:.14em}
.ads-teaser__tags span{background:transparent;border-color:var(--line-2);border-radius:4px;color:var(--ink)}
.plan__badge,.case__private,.page-hero__stats .chip,.window__screen .scr-pill{border-radius:4px}
.page-hero__stats .chip b{color:var(--accent-ink)}

/* ---------- réalisations ---------- */
.case__index{color:var(--accent-ink);font-family:var(--font-mono);letter-spacing:.14em}
.case__index::before{background:var(--accent-ink)}
.case__sub{color:var(--accent-ink)}
.window{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}
.window__bar i,.window__bar i:nth-child(n){background:var(--line-2)}
a.window-link:hover .window{border-color:var(--ink);box-shadow:var(--shadow-hover)}

/* ---------- contact & formulaire ---------- */
.contact__panel{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}
.contact__tabs{background:var(--bg-2);border-radius:4px}
.contact__tab{border-radius:3px;color:var(--muted)}
.contact__tab.is-active{background:var(--ink);color:var(--bg);box-shadow:none}
.contact__list li{color:var(--ink-2)}
.contact__list li span{background:var(--beige-soft);color:var(--ink);border-radius:3px}
.contact__direct a{color:var(--ink)}
.contact__direct a:hover{color:var(--accent-ink)}
.fgroup__title .num{background:var(--ink);color:var(--bg);border-radius:3px;font-family:var(--font-mono)}
.field label{color:var(--ink-2)}
.field input,.field select,.field textarea{background:var(--bg);border-color:var(--line-2);color:var(--ink);border-radius:4px}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-dim)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(117,98,74,.18)}
.field select option{background:var(--bg);color:var(--ink)}
.choice span{background:var(--bg);border-color:var(--line-2);border-radius:4px;color:var(--ink-2)}
.choice span:hover{border-color:var(--ink);color:var(--ink)}
.choice input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--bg);box-shadow:none}
.choice input:focus-visible+span{outline:2px solid var(--accent-ink);outline-offset:2px}
.ficon--snap{color:#B89C00}
.upload{background:transparent;border-color:var(--line-2);border-radius:var(--radius);color:var(--muted)}
.upload:hover,.upload.is-drag{background:var(--bg-2);border-color:var(--ink);color:var(--ink)}
.upload > svg{color:var(--accent-ink)}
.upload strong{color:var(--ink)}
.upload-item{background:var(--bg);border-color:var(--line);border-radius:4px}
.upload-item button{color:var(--err-ink)}
.form__success{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink);border-radius:4px}
.form__error{background:var(--err-bg);border-color:var(--err-line);color:var(--err-ink);border-radius:4px}
.form__error a{color:inherit;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}

/* ---------- footer ---------- */
.footer{background:#161615}
html[data-theme="noir"] .footer{background:#0B0B0A}
.footer::before{background:var(--line);box-shadow:none}
.footer__col h3,.footer__col h4{font-size:.95rem;margin-bottom:1.1rem;color:var(--ink)}
.footer__col a:hover{color:var(--beige)}
.footer__col a.btn,.footer__col a.btn:hover{display:inline-flex;padding:.85em 1.5em;color:var(--bg)}

/* ---------- éléments flottants ---------- */
.to-top{background:var(--surface);border-color:var(--line-2);color:var(--ink);box-shadow:var(--shadow)}
.to-top:hover{border-color:var(--ink)}
.wa-float{background:var(--ink);color:var(--bg);box-shadow:0 0 0 1px rgba(200,185,161,.45),var(--shadow)}
.wa-float::before{display:none}
.cookie{background:var(--surface);border-color:var(--line-2);color:var(--ink);box-shadow:var(--shadow);border-radius:var(--radius)}
.cookie p a,.prose a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}

@media (max-width:560px){
  .badge{letter-spacing:.06em;font-size:.64rem}
  .wordmark{letter-spacing:.24em}
}

@media (prefers-reduced-motion:reduce){
  .btn,.wordmark{transition:none}
}

/* ---------- composants partagés services / Ads ---------- */
:root{--g-blue:#1A73E8;--g-red:#D93025;--g-yellow:#E37400;--g-green:#188038;--meta-a:#0064E0;--meta-b:#0082FB}
html[data-theme="noir"]{--g-blue:#8AB4F8;--g-red:#F28B82;--g-yellow:#FDD663;--g-green:#81C995;--meta-a:#4A9BFF;--meta-b:#7AB8FF}
.sv-section{scroll-margin-top:90px}
.sv-head{display:flex;align-items:center;gap:.85rem;margin-bottom:.9rem}
.sv-head h3{margin:0;font-size:1.3rem}
.sv-ico{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;border-radius:4px;background:var(--beige-soft);border:1px solid var(--line);color:var(--ink)}
.sv-ico svg{width:22px;height:22px}
.sv-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.5rem}
.sv-list li{position:relative;padding-left:1.4rem;font-size:.95rem;color:var(--ink-2)}
.sv-list li::before{content:"";position:absolute;left:.15rem;top:.58em;width:5px;height:5px;background:var(--accent-ink)}
.sv-list--2{grid-template-columns:1fr 1fr;column-gap:1.6rem}
.sv-price{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.sv-more{font-size:.92rem;font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-2);transition:text-decoration-color .2s}
.sv-more:hover{text-decoration-color:var(--ink)}
.sv-links{display:flex;align-items:center;flex-wrap:wrap;gap:1.2rem}
.sv-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line)}
html[data-theme="noir"] .sv-cta{background:#1C1B19;border:1px solid var(--line)}
.sv-ads{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.sv-ad{position:relative;display:flex;flex-direction:column;overflow:hidden;padding:34px 30px 30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.sv-ad::before{content:"";position:absolute;inset:0 0 auto 0;height:4px}
.sv-ad--google::before{background:linear-gradient(90deg,#4285F4 0 25%,#EA4335 25% 50%,#FBBC05 50% 75%,#34A853 75%)}
.sv-ad--meta::before{background:linear-gradient(90deg,#0064E0,#0082FB)}
.sv-ad h3{margin-bottom:.6rem;font-size:1.55rem}
.sv-ad__name{-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.sv-ad--google .sv-ad__name{background-image:linear-gradient(90deg,var(--g-blue),var(--g-red) 38%,var(--g-yellow) 66%,var(--g-green))}
.sv-ad--meta .sv-ad__name{background-image:linear-gradient(90deg,var(--meta-a),var(--meta-b))}
.sv-ad > p{color:var(--muted)}
.sv-ad__fee{display:flex;align-items:baseline;gap:.9rem;margin:1.3rem 0 1.2rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sv-ad__fee strong{flex:0 0 auto;font-family:var(--font-head);font-stretch:125%;font-size:2.5rem;font-weight:500;line-height:1}
.sv-ad--google .sv-ad__fee strong{color:var(--g-blue)}
.sv-ad--meta .sv-ad__fee strong{color:var(--meta-a)}
.sv-ad__fee span{max-width:24ch;font-size:.88rem;line-height:1.45;color:var(--muted)}
.sv-ad .sv-list{margin:0 0 1.6rem}
.sv-ad .btn{align-self:flex-start;margin-top:auto}
.sv-ad--google .btn--primary{background:#1A73E8;color:#fff}
.sv-ad--meta .btn--primary{background:linear-gradient(90deg,#0064E0,#0082FB);color:#fff}
.sv-ad .btn--slide .btn__chip{background:#fff}
.sv-ad--google .btn--slide .btn__chip{color:#1A73E8}
.sv-ad--meta .btn--slide .btn__chip{color:#0064E0}
.sv-calc{margin-top:24px;padding:30px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius)}
.sv-calc h3{margin-bottom:1.2rem;font-size:1.15rem}
.sv-calc__row{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:stretch}
.sv-calc__step{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:4px}
.sv-calc__step b{display:block;margin-bottom:.45rem;font-family:var(--font-head);font-stretch:112.5%;font-weight:500}
.sv-calc__step b em{margin-left:.35rem;font-style:normal;font-family:var(--font-mono);font-stretch:normal;font-size:.78rem;color:var(--accent-ink);white-space:nowrap}
.sv-calc__step span{display:block;font-size:.88rem;line-height:1.55;color:var(--muted)}
.sv-calc__step--opt{border-style:dashed;border-color:var(--line-2)}
.sv-calc__op{display:grid;place-items:center;font-size:1.4rem;color:var(--accent-ink)}
.sv-calc__ex{margin:1.2rem 0 1rem;font-size:.92rem;color:var(--ink-2)}
.sv-cta{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:40px;background:#161615;border-radius:var(--radius)}
.sv-cta h2{margin-bottom:.5rem;font-size:clamp(1.45rem,2.6vw,2rem)}
.sv-cta p{max-width:46ch;margin:0;color:var(--muted)}
@media (max-width:900px){
  .sv-ads{grid-template-columns:1fr}
  .sv-calc__row{grid-template-columns:1fr}
  .sv-calc__op{padding:0}
  .sv-cta{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  .sv-list--2{grid-template-columns:1fr}
  .sv-ad,.sv-calc,.sv-cta{padding:24px}
}

/* ---------- catalogue Nos services (recherche, filtres, fiches) ---------- */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page-hero--shop{padding-bottom:20px}
.shop{padding:12px 0 48px;scroll-margin-top:90px}
.shop__layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:40px;align-items:start}
.shop__side{position:sticky;top:96px;display:flex;flex-direction:column;gap:26px}
.fgroup-s__title{margin:0 0 .7rem;font-family:var(--font-mono);font-stretch:normal;font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}
.fcats{display:flex;flex-direction:column;gap:2px}
.fcat{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.62rem .8rem;border-radius:4px;font-size:.94rem;color:var(--ink-2);text-align:left;transition:background .2s,color .2s}
.fcat span{font-family:var(--font-mono);font-size:.74rem;color:var(--muted-dim)}
.fcat:hover{background:var(--bg-2)}
.fcat.is-active{background:var(--ink);color:var(--bg)}
.fcat.is-active span{color:var(--beige)}
.ftarifs{display:flex;flex-direction:column;gap:.1rem}
.ftarif{display:flex;align-items:center;gap:.65rem;padding:.5rem .2rem;font-size:.94rem;color:var(--ink-2);cursor:pointer}
.ftarif input{appearance:none;-webkit-appearance:none;flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;margin:0;border:1.5px solid var(--line-2);border-radius:3px;background:var(--surface);cursor:pointer;transition:background .2s,border-color .2s}
.ftarif input:checked{background:var(--ink);border-color:var(--ink)}
.ftarif input:checked::after{content:"";width:9px;height:5px;border-left:2px solid var(--bg);border-bottom:2px solid var(--bg);transform:translate(0,-1px) rotate(-45deg)}
.ftarif input:focus-visible,.fcat:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}
.ftarif em{margin-left:auto;font-style:normal;font-family:var(--font-mono);font-size:.74rem;color:var(--muted-dim)}
.freset{align-self:flex-start;font-size:.88rem;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.shop__help{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.shop__help p{margin:0 0 .7rem;font-size:.9rem;line-height:1.5;color:var(--muted)}
.shop__help b{color:var(--ink)}

.shop__bar{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}
.shop__search{position:relative;display:flex;align-items:center}
.shop__search > svg{position:absolute;left:17px;width:20px;height:20px;color:var(--muted);pointer-events:none}
.shop__search input{width:100%;height:56px;padding:0 50px;font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:6px;transition:border-color .2s,box-shadow .2s}
.shop__search input::placeholder{color:var(--muted-dim)}
.shop__search input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(117,98,74,.16)}
.shop__search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.shop__clear{position:absolute;right:10px;display:grid;place-items:center;width:36px;height:36px;border-radius:4px;color:var(--muted)}
.shop__clear:hover{background:var(--bg-2);color:var(--ink)}
.shop__clear svg{width:16px;height:16px}
.shop__clear[hidden],.freset[hidden]{display:none}
.shop__side,.shop__main{min-width:0}
.shop__tools{display:flex;align-items:center;gap:16px}
.shop__count{margin:0 auto 0 0;font-size:.92rem;color:var(--muted)}
.shop__sort{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--muted)}
.shop__sort select{height:38px;padding:0 2.1rem 0 .8rem;font:inherit;font-size:.9rem;color:var(--ink);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23948E84' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .7rem center/13px;border:1px solid var(--line-2);border-radius:4px;-webkit-appearance:none;appearance:none;cursor:pointer}
.shop__sort select:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}
.shop__note{margin:-6px 0 20px;padding:14px 16px;font-size:.9rem;line-height:1.5;color:var(--ink-2);background:var(--bg-2);border-left:3px solid var(--accent-ink);border-radius:4px}

.shop__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pcard{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .25s,box-shadow .25s,transform .25s var(--ease)}
.pcard:hover{border-color:var(--line-2);box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.pcard[hidden]{display:none}
.pcard__media{display:block;width:100%;aspect-ratio:16/10;padding:0;overflow:hidden;background:var(--bg-2);border-bottom:1px solid var(--line);cursor:pointer}
.pcard__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s var(--ease)}
.pcard:hover .pcard__media img{transform:scale(1.04)}
.ptile{position:relative;display:grid;place-items:center;width:100%;height:100%}
.ptile svg{width:50px;height:50px;transition:transform .5s var(--ease)}
.pcard:hover .ptile svg{transform:scale(1.08)}
.ptile--beige{background:linear-gradient(140deg,var(--beige-soft),var(--bg-2));color:var(--ink)}
.ptile--ink{background:#161615;color:#EEEAE3}
html[data-theme="noir"] .ptile--ink{background:#0B0B0A}
.ptile--google{background:var(--bg);color:var(--g-blue)}
.ptile--google::after{content:"";position:absolute;inset:auto 0 0 0;height:6px;background:linear-gradient(90deg,#4285F4 0 25%,#EA4335 25% 50%,#FBBC05 50% 75%,#34A853 75%)}
.ptile--meta{background:linear-gradient(135deg,#0064E0,#0082FB);color:#fff}
.pcard__body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.pcard__tags{margin:0 0 .45rem}
.pcard__tags span{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}
.pcard__name{margin:0 0 .45rem;font-size:1.12rem;line-height:1.25}
.pcard__name button{padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.pcard__name button:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-2)}
.pcard__desc{margin:0 0 1rem;font-size:.9rem;line-height:1.5;color:var(--muted)}
.pcard__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line)}
.pcard__price strong{font-family:var(--font-head);font-stretch:112.5%;font-size:1.35rem;font-weight:500;color:var(--ink)}
.pcard__price small{font-size:.8rem;color:var(--muted)}
.pcard__actions{display:flex;flex-direction:column;gap:.35rem;margin-top:.9rem}
.pcard__more{padding:.35rem;font-size:.86rem;color:var(--muted);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-2)}
.pcard__more:hover{color:var(--ink)}
#google-ads .pcard__price strong,#pmodalContent[data-product="google-ads"] .pm-price strong{color:var(--g-blue)}
#meta-ads .pcard__price strong,#pmodalContent[data-product="meta-ads"] .pm-price strong{color:var(--meta-a)}
#google-ads .btn--primary,#pmodalContent[data-product="google-ads"] .btn--primary{background:#1A73E8;color:#fff}
#meta-ads .btn--primary,#pmodalContent[data-product="meta-ads"] .btn--primary{background:linear-gradient(90deg,#0064E0,#0082FB);color:#fff}
#google-ads .btn--primary::after,#meta-ads .btn--primary::after,#pmodalContent[data-product$="-ads"] .btn--primary::after{display:none}
#pmodalContent[data-product="google-ads"] .btn__chip{color:#1A73E8;background:#fff}
#pmodalContent[data-product="meta-ads"] .btn__chip{color:#0064E0;background:#fff}

.shop__empty{padding:40px 24px;text-align:center;border:1px dashed var(--line-2);border-radius:var(--radius)}
.shop__empty p{max-width:44ch;margin:0 auto 1.2rem;color:var(--muted)}
.shop__empty b{display:block;margin-bottom:.3rem;color:var(--ink)}
.pm-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem}

.pmodal{position:fixed;inset:0;margin:auto;width:min(760px,94vw);height:fit-content;max-height:min(88dvh,860px);padding:0;overflow:hidden;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;box-shadow:0 40px 90px -30px rgba(22,22,21,.45)}
.pmodal[open]{animation:pmIn .35s var(--ease)}
@keyframes pmIn{from{opacity:0;transform:translateY(16px) scale(.98)}}
.pmodal::backdrop{background:rgba(22,22,21,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
body:has(.pmodal[open]){overflow:hidden}
.pmodal__content{max-height:min(88dvh,860px);overflow-y:auto}
.pmodal__close{position:absolute;top:12px;right:12px;z-index:2;display:grid;place-items:center;width:40px;height:40px;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:4px}
.pmodal__close:hover{border-color:var(--ink)}
.pmodal__close svg{width:18px;height:18px}
.pm-media{aspect-ratio:21/8;overflow:hidden;background:var(--bg-2);border-bottom:1px solid var(--line)}
.pm-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.pm-media .ptile svg{width:60px;height:60px}
.pm-body{padding:26px 30px 30px}
.pm-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .7rem}
.pm-tags span{padding:.25em .6em;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);border:1px solid var(--line-2);border-radius:3px}
.pm-body h2{margin:0 0 .5rem;font-size:clamp(1.5rem,3vw,2rem)}
.pm-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-bottom:1rem}
.pm-price strong{font-family:var(--font-head);font-stretch:125%;font-size:2rem;font-weight:500}
.pm-price small{font-size:.9rem;color:var(--muted)}
.pm-desc{margin-bottom:1.3rem;color:var(--muted)}
.pm-body h4,.pm-calc h4{margin:0 0 .5rem;font-size:1rem}
.pm-calc{margin-top:1.4rem;padding:16px 18px;background:var(--bg-2);border-radius:4px}
.pm-calc ol{display:grid;gap:.45rem;margin:0;padding-left:1.2rem;font-size:.9rem;line-height:1.5;color:var(--ink-2)}
.pm-note{margin-top:1rem;font-size:.9rem;color:var(--muted)}
.pm-body .pm-actions{justify-content:flex-start;margin-top:1.7rem}

@media (max-width:1180px){ .shop__grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px){
  .shop__layout{grid-template-columns:minmax(0,1fr);gap:0}
  .shop__side{position:static;gap:10px;margin-bottom:18px}
  .fgroup-s__title,.shop__help{display:none}
  .fcats,.ftarifs{flex-direction:row;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .fcats::-webkit-scrollbar,.ftarifs::-webkit-scrollbar{display:none}
  .fcat{flex:0 0 auto;width:auto;gap:.5rem;padding:.5rem .8rem;white-space:nowrap;border:1px solid var(--line-2)}
  .fcat.is-active{border-color:var(--ink)}
  .ftarif{flex:0 0 auto;gap:.5rem;padding:.42rem .75rem;white-space:nowrap;border:1px solid var(--line-2);border-radius:4px}
  .ftarif em{margin-left:.2rem}
}
@media (max-width:600px){
  .shop__grid{grid-template-columns:1fr;gap:14px}
  .pcard{flex-direction:row}
  .pcard__media{flex:0 0 34%;width:34%;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line)}
  .pcard__body{padding:14px 14px 14px 16px}
  .pcard__desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.7rem;font-size:.86rem}
  .ptile svg{width:36px;height:36px}
  .pcard__price strong{font-size:1.15rem}
  .shop__sort span{display:none}
  .pm-body{padding:22px 20px 24px}
}
@media (prefers-reduced-motion:reduce){
  .pmodal[open]{animation:none}
  .pcard,.pcard__media img,.ptile svg{transition:none}
}

/* champ pot de miel anti-spam : invisible et hors du parcours clavier */
.hp-field{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
