/*
 * ONIVA SHOP V107.2.16 — Design System Enterprise.
 * Couche globale non destructive : jetons, composants partagés, responsive
 * et accessibilité. La couleur de campagne peut surcharger --ov-accent,
 * sans modifier les couleurs sémantiques.
 */
:root{
  --ov-brand-950:#0f172a;
  --ov-brand-900:#172033;
  --ov-brand-700:#2e7d5b;
  --ov-brand-600:#378f69;
  --ov-gold-600:#b98400;
  --ov-gold-500:#d4a017;
  --ov-success:#16794b;
  --ov-info:#1769aa;
  --ov-warning:#9a6700;
  --ov-danger:#b42318;
  --ov-canvas:#f7f8f6;
  --ov-card:#ffffff;
  --ov-ink:#0f172a;
  --ov-ink-muted:#5b6678;
  --ov-border:#dfe4e8;
  --ov-space-1:4px;
  --ov-space-2:8px;
  --ov-space-3:12px;
  --ov-space-4:16px;
  --ov-space-6:24px;
  --ov-space-8:32px;
  --ov-space-12:48px;
  --ov-radius-control:999px;
  --ov-radius-card:20px;
  --ov-radius-panel:24px;
  --ov-shadow-1:0 2px 8px rgba(15,23,42,.07);
  --ov-shadow-2:0 16px 38px rgba(15,23,42,.10);
  --ov-motion-fast:160ms;
  --ov-motion-base:220ms;
  --ov-ease-enter:cubic-bezier(.2,.8,.2,1);
}

html{scroll-behavior:smooth}
body{color:var(--ov-ink);background:var(--ov-canvas)}
[hidden]{display:none!important}

.btn-primary,.btn-buy,.btn-wa,.btn-more,.btn-light,.btn-hero,.ov-btn,
.card-p .add,.tunnel button[type="submit"]{
  min-height:48px;
  padding:0 22px;
  border-radius:var(--ov-radius-control);
  font-weight:750;
  line-height:1.15;
  text-align:center;
  transition:
    transform var(--ov-motion-fast) var(--ov-ease-enter),
    box-shadow var(--ov-motion-base) var(--ov-ease-enter),
    filter var(--ov-motion-base) var(--ov-ease-enter);
}

.chip{
  min-height:44px;
  padding:0 17px;
  border-radius:var(--ov-radius-control);
  font-weight:700;
}

.btn-primary,.card-p .add,.tunnel button[type="submit"]{
  background:var(--ov-accent);
  color:#fff;
  box-shadow:0 9px 22px color-mix(in srgb,var(--ov-accent) 25%,transparent);
}

.btn-buy{
  background:var(--ov-gold-500);
  color:#151000;
  box-shadow:0 9px 22px rgba(212,160,23,.24);
}

.btn-wa{background:#128c4a;color:#fff}
.btn-more,.ov-btn-ghost{background:var(--ov-card);color:var(--ov-ink);border:1px solid var(--ov-border)}

.btn-primary:hover,.btn-buy:hover,.btn-wa:hover,.btn-more:hover,.btn-light:hover,
.btn-hero:hover,.ov-btn:hover,.card-p .add:hover,.tunnel button[type="submit"]:hover{
  transform:translateY(-2px);
  filter:saturate(1.05);
  box-shadow:var(--ov-shadow-2);
}

.btn-primary:active,.btn-buy:active,.btn-wa:active,.btn-more:active,
.btn-light:active,.btn-hero:active,.ov-btn:active,.card-p .add:active{
  transform:translateY(0) scale(.98);
}

button:disabled,[aria-disabled="true"]{cursor:not-allowed;opacity:.56;box-shadow:none}

.card-p,.card-c,.card-u,.tcard,.cat-enrich-card{
  border-color:var(--ov-border);
  border-radius:var(--ov-radius-card);
  box-shadow:var(--ov-shadow-1);
}

.card-p{
  min-width:0;
  isolation:isolate;
}

.grid-prod{align-items:stretch}
.card-p .bd{padding:14px;gap:8px}
.card-p .nm{min-height:2.8em;font-size:.92rem;line-height:1.4}
.card-p .pr{min-height:1.55em;font-size:1.02rem;color:var(--ov-accent)}
.card-p .ph img{object-fit:contain;background:#fff}
.pfiche .gal,.qv,.quote-box{border-radius:var(--ov-radius-panel)}

:focus-visible{
  outline:3px solid color-mix(in srgb,var(--ov-accent) 65%,#fff);
  outline-offset:3px;
}

@media(max-width:639px){
  .btn-primary,.btn-buy,.btn-wa,.btn-more,.btn-light,.btn-hero,.ov-btn,
  .card-p .add,.tunnel button[type="submit"]{
    width:100%;
    min-height:48px;
  }
  .pactions{display:grid;grid-template-columns:1fr;gap:10px}
  .card-p .bd{padding:12px}
}

@media(prefers-color-scheme:dark){
  :root{
    --ov-canvas:#0f1411;
    --ov-card:#181d1a;
    --ov-ink:#eef2ef;
    --ov-ink-muted:#a8b2aa;
    --ov-border:#2a332d;
  }
  body{color:var(--ov-ink);background:var(--ov-canvas)}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
