/* Fiches produit statiques (produits/*.html) — générées par _tools/build_product_pages.js.
   Vocabulaire : celui d'inku.css (papier, encre, vermillon). Rien ici ne redéfinit le système. */

.pp-hero{ padding-top:clamp(1.5rem, 3vw, 2.5rem); }
.crumbs{ display:flex; flex-wrap:wrap; gap:.4rem .6rem; font-family:var(--font-mono); font-size:.76rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:0 0 1.4rem; }
.crumbs a{ color:inherit; }
.crumbs a:hover{ color:var(--seal); }

.pp-photo{ margin:0; background:#fff; border:1px solid var(--line); aspect-ratio:1/1; position:relative; max-width:100%; }
.pp-photo img{ width:100%; height:100%; object-fit:contain; display:block; }
.pp-photo figcaption{ position:absolute; left:0; bottom:0; padding:.55rem .8rem; background:var(--paper);
  border-top:1px solid var(--line); border-right:1px solid var(--line); font-size:.9rem; }
.pp-photo figcaption .mono{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-right:.3rem; }

.pp-buy{ display:grid; gap:1.1rem; align-content:start; min-width:0; }
.pp-buy h1{ margin:0; overflow-wrap:anywhere; }
.pp-buy .lead{ margin:0; }
.pp-buy .price{ margin:.2rem 0 0; }
.pp-cta{ justify-self:start; }

.swatches{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem;
  grid-template-columns:repeat(auto-fill, minmax(11rem, 1fr)); }
.sw{ display:flex; align-items:center; gap:.6rem; width:100%; padding:.45rem .6rem; background:transparent;
  border:1px solid var(--line); color:inherit; font:inherit; font-size:.9rem; text-align:left; cursor:pointer; min-width:0; }
.sw:hover{ border-color:var(--ink); }
.sw.is-on{ border-color:var(--seal); box-shadow:inset 0 0 0 1px var(--seal); }
.sw__dot{ flex:none; width:1.4rem; height:1.4rem; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(0,0,0,.18); }
.sw__name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.tbl-scroll{ overflow-x:auto; max-width:100%; }
.tbl{ width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.tbl th, .tbl td{ padding:.7rem .9rem .7rem 0; border-top:1px solid var(--line); text-align:left; white-space:nowrap; }
.tbl thead th{ font-family:var(--font-mono); font-size:.74rem; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); border-top:0; }
.tbl .num{ text-align:right; }
.tbl tbody th{ font-weight:600; }
.sheet--ink .tbl th, .sheet--ink .tbl td{ border-color:var(--rule-on-ink); }
.sheet--ink .tbl thead th{ color:var(--lavis-on-ink); }
.sheet--ink .tbl td.num:nth-child(2){ color:var(--seal); font-family:var(--font-display); font-size:1.15rem; }
.tbl--chart tbody th{ white-space:normal; min-width:12rem; }
.tbl--chart .num{ text-align:center; }

.fabric{ margin:1rem 0; padding-left:1.1rem; display:grid; gap:.35rem; }
.small{ font-size:.86rem; }
.gauges{ margin:1rem 0; display:grid; gap:.9rem; }
.gauge-row{ display:grid; grid-template-columns:minmax(8rem, 12rem) 1fr; gap:1rem; align-items:center; }
.gauge-row dt{ font-family:var(--font-mono); font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.gauge-row dd{ margin:0; min-width:0; }
.bar{ display:block; height:.5rem; background:var(--paper-2); position:relative; }
.bar > span{ display:block; height:100%; background:var(--ink); }
.ends{ display:flex; justify-content:space-between; font-size:.76rem; color:var(--muted); margin-top:.25rem; }

.steps-pp{ list-style:none; margin:0 0 2rem; padding:0; }
.sheet--ink .items, .sheet--ink .items > *{ border-color:var(--rule-on-ink); }
.sheet--ink .items p{ color:var(--lavis-on-ink); }
.more{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1.6rem 0 0; }

.sub{ font-family:var(--font-mono); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  margin:2rem 0 .8rem; padding-top:.8rem; border-top:1px solid var(--line); }
.cards{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(12rem, 1fr)); }
.card{ display:grid; gap:.25rem; text-decoration:none; color:inherit; min-width:0; }
.card img{ width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; background:#fff; border:1px solid var(--line); transition:border-color var(--t-hover) var(--ease); }
.card:hover img{ border-color:var(--ink); }
.card__brand{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin-top:.4rem; }
.card__name{ font-weight:600; line-height:1.2; }
.card__price{ color:var(--seal); font-variant-numeric:tabular-nums; font-size:.92rem; }

@media (max-width:640px){
  .gauge-row{ grid-template-columns:1fr; gap:.3rem; }
  .swatches{ grid-template-columns:repeat(auto-fill, minmax(9.5rem, 1fr)); }
  .cards{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .pp-cta{ justify-self:stretch; text-align:center; }
}
