/* Le catalogue professionnel (maquette validee par Alex le 16/10/2026).
   Un catalogue qui se lit au pouce : les tables en pleine largeur, puis chaque
   piece a l'echelle, sur le meme lin clair. Une seule lumiere : la creme.

   ⚠ TOUT EST SOUS .k-root ET PREFIXE k- : la page vit dans le gabarit de la
   vitrine, qui a deja ses .cover, .mark, .facts, .wide, .detail, .step, .num,
   .contact, .back. Les variables sont posees sur .k-root, jamais sur :root.
   Polices : celles que la vitrine sert (web/fonts.mjs). Cormorant n'a pas
   d'italique servi : l'italique est en Lora. */
.k-root {
  --creme: #F4F0E7; --lin: #E9E5DC; --tile: #ECE7DE; --trait: #DED7C9;
  --encre: #14110E; --encre-2: #4A443C; --encre-3: #6B665D;
  --or: #A8823E; --or-texte: #86672C; --or-clair: #D6B87C;
  --blanc-txt: #F7F3EA;
  --acc: var(--or);
  --f-display: 'Cormorant Garamond', Cormorant, Garamond, 'Times New Roman', serif;
  --f-name: Lora, Georgia, 'Times New Roman', serif;
  --f-text: Manrope, 'Segoe UI', system-ui, -apple-system, sans-serif;
  --gut: clamp(16px, 4.2vw, 44px);
  --max: 1180px;
  background: var(--creme); color: var(--encre); font: 400 16px/1.6 var(--f-text);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
.k-root img { max-width: 100%; display: block; }
.k-root a { color: inherit; }
.k-root h1, .k-root h2, .k-root h3 { text-wrap: balance; margin: 0; font-weight: 400; letter-spacing: normal; }
.k-root p { margin: 0; }
.k-root figure { margin: 0; }
/* Sous l'en-tete collant de la vitrine : un lien du sommaire ne cache pas son titre. */
.k-root [id] { scroll-margin-top: 120px; }
.k-root :focus-visible { outline: 2px solid var(--or); outline-offset: 3px; }
.k-wrap { max-width: var(--max); margin-inline: auto; padding-inline: var(--gut); box-sizing: content-box; }

.k-eyebrow { font: 600 11px/1.4 var(--f-text); letter-spacing: .24em; text-transform: uppercase; color: var(--or-texte); }
.k-root h2 { font: 300 clamp(34px, 6.4vw, 58px)/1.04 var(--f-display); letter-spacing: -.005em; }
.k-body { font-size: 17px; line-height: 1.65; color: var(--encre-2); max-width: 62ch; }
.k-logo { display: block; width: auto; }

/* boutons */
.k-btn { display: inline-flex; align-items: center; gap: 8px; justify-self: start; font: 600 13px/1 var(--f-text);
  text-decoration: none; padding: 14px 20px; border-radius: 999px; border: 1px solid var(--encre); min-height: 44px; box-sizing: border-box; }
.k-btn:hover { background: var(--encre); color: var(--creme); }
.k-btn.k-solid { background: var(--encre); color: var(--creme); }
.k-btn.k-solid:hover { background: #2B2620; }
.k-btn-pdf::before { content: 'PDF'; font: 700 9.5px/1 var(--f-text); letter-spacing: .08em; padding: 4px 5px; border: 1px solid currentColor; border-radius: 3px; }

/* couverture */
.k-cover { display: grid; }
.k-cover-img { position: relative; aspect-ratio: 4 / 5; max-height: 72svh; width: 100%; overflow: hidden; }
.k-cover-img img { width: 100%; height: 100%; object-fit: cover; }
.k-cover-txt { padding: 30px var(--gut) 48px; display: grid; gap: 16px; align-content: center; }
.k-mark .k-logo { height: clamp(34px, 5.4vw, 52px); }
.k-cover h1 { display: grid; gap: 16px; }
/* Le sur-titre est dans le titre principal (les mots que l'on cherche) ; il garde
   l'allure d'un sur-titre. */
.k-cover h1 .k-eyebrow { display: block; }
.k-h1-main { display: block; font: 300 clamp(42px, 10vw, 84px)/1.0 var(--f-display); letter-spacing: -.01em; max-width: 11ch; text-wrap: balance; }
/* Un titre long (plus de 24 signes, construir.py) : plus petit, lignes equilibrees,
   la meme masse que les titres courts des autres langues. */
.k-h1-main.k-h1-long { font-size: clamp(36px, 6.4vw, 60px); line-height: 1.04; max-width: 15ch; }
.k-lead { font-size: 17px; line-height: 1.6; color: var(--encre-2); max-width: 36ch; }
.k-base { font: 500 11px/1.4 var(--f-text); letter-spacing: .3em; text-transform: uppercase; color: var(--encre-3); }
.k-cover-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
@media (min-width: 900px) {
  .k-cover { grid-template-columns: 1fr 1fr; max-width: calc(var(--max) + 2 * var(--gut)); margin-inline: auto; align-items: center; }
  .k-cover-img { order: 2; max-height: none; }
  .k-cover-txt { padding: 56px 56px 56px var(--gut); }
}

/* etiquette Inspiration (les images generees le disent toujours) */
.k-ins-img, .k-coll-hero-img, .k-cover-img, .k-wide, .k-detail, .k-exp-img, .k-xmas-imgs figure { position: relative; }
.k-tag { position: absolute; right: 10px; bottom: 10px; font: 600 9.5px/1 var(--f-text); letter-spacing: .2em; text-transform: uppercase;
  color: var(--blanc-txt); background: rgba(20, 17, 14, .42); padding: 6px 8px; border-radius: 2px; }

/* la maison */
.k-intro { padding-block: clamp(56px, 9vw, 110px) clamp(40px, 6vw, 72px); display: grid; gap: 40px; }
.k-intro-txt { display: grid; gap: 20px; }
.k-zone { font: 600 11px/1.4 var(--f-text); letter-spacing: .24em; text-transform: uppercase; color: var(--or-texte); }
.k-facts { display: grid; gap: 26px 32px; grid-template-columns: minmax(0, 1fr); }
.k-fact { border-top: 1px solid var(--trait); padding-top: 16px; display: grid; gap: 6px; min-width: 0; }
.k-fact h3 { font: 400 18px/1.3 var(--f-name); }
.k-fact p { font-size: 14.5px; line-height: 1.6; color: var(--encre-2); }
@media (min-width: 560px) { .k-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 980px) { .k-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.k-wide { aspect-ratio: 21 / 9; overflow: hidden; width: 100%; }
.k-wide img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) { .k-wide { aspect-ratio: 4 / 3; } }
.k-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.k-chips a { font: 500 13px/1 var(--f-text); text-decoration: none; padding: 0 14px; min-height: 44px; display: inline-flex; align-items: center;
  border: 1px solid var(--trait); border-radius: 999px; background: var(--creme); box-sizing: border-box; }
.k-chips a:hover { border-color: var(--encre); }
.k-chips a.k-chip-pdf { background: var(--encre); color: var(--creme); border-color: var(--encre); }

/* tete des collections */
.k-cols-head { padding-block: clamp(40px, 6vw, 72px) clamp(48px, 7vw, 88px); display: grid; gap: 20px; border-top: 1px solid var(--trait); }
.k-ccards { display: grid; gap: 14px; margin-top: 14px; }
.k-ccard { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: center; text-decoration: none;
  background: var(--lin); padding: 10px; }
.k-ccard-img { aspect-ratio: 1; overflow: hidden; display: block; }
.k-ccard-img img { width: 100%; height: 100%; object-fit: cover; }
.k-ccard-txt { display: grid; gap: 4px; min-width: 0; }
.k-ccard-n { font: 400 24px/1 var(--f-display); letter-spacing: .26em; }
.k-ccard-n::after { content: ''; display: block; width: 28px; height: 2px; background: var(--acc); margin-top: 10px; }
.k-ccard-t { font: 400 14px/1.45 var(--f-text); color: var(--encre-2); }
@media (min-width: 820px) {
  .k-ccards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .k-ccard { grid-template-columns: minmax(0, 1fr); padding: 0 0 18px; background: none; }
  .k-ccard-img { aspect-ratio: 4 / 5; }
}

/* une collection */
.k-coll { padding-bottom: clamp(56px, 9vw, 110px); }
.k-coll-hero { position: relative; height: clamp(360px, 58vw, 640px); overflow: hidden; }
.k-coll-hero-img { position: absolute; inset: 0; }
.k-coll-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.k-coll-hero-img::after { content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20, 17, 14, .7), rgba(20, 17, 14, .14) 62%, rgba(20, 17, 14, 0)); }
.k-coll-hero .k-tag { top: 12px; bottom: auto; z-index: 2; }
.k-coll-title { position: absolute; left: 0; right: 0; bottom: 0; padding-bottom: clamp(26px, 5vw, 56px); color: var(--blanc-txt);
  display: grid; gap: 8px; z-index: 1; }
.k-coll-title .k-eyebrow { color: var(--or-clair); }
.k-root .k-cname { font: 300 clamp(48px, 12vw, 120px)/.92 var(--f-display); letter-spacing: .2em; margin-right: -.2em; }
.k-ctag { font: 400 italic clamp(16px, 2.2vw, 20px)/1.4 var(--f-name); max-width: 34ch; }
.k-coll-intro { display: grid; gap: 28px; padding-block: clamp(36px, 6vw, 64px); }
.k-coll-txt { display: grid; gap: 14px; align-content: start; border-left: 2px solid var(--acc); padding-left: 18px; }
.k-cnt { font: 600 11px/1.4 var(--f-text); letter-spacing: .2em; text-transform: uppercase; color: var(--encre-3); }
.k-detail { aspect-ratio: 3 / 2; overflow: hidden; }
.k-detail img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 860px) { .k-coll-intro { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; gap: 56px; } }
.k-lineup { margin: 0 0 8px; background: var(--tile); }
.k-lineup img { width: 100%; height: auto; }
.k-lineup figcaption { font: 400 italic 14px/1.4 var(--f-name); color: var(--encre-3); padding: 0 16px 14px; text-align: center; }

/* groupes de pieces */
.k-grp { margin-top: clamp(30px, 4vw, 44px); }
.k-grp-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-top: 1px solid var(--trait);
  padding-top: 14px; margin-bottom: 18px; }
.k-root .k-grp-h h3 { font: 600 12px/1.3 var(--f-text); letter-spacing: .22em; text-transform: uppercase; }
.k-grp-h .k-cnt { font-weight: 500; letter-spacing: .1em; }
.k-grid { display: grid; gap: 24px 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 600px) { .k-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 980px) { .k-g6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } .k-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .k-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.k-pz { display: grid; gap: 10px; align-content: start; min-width: 0; }
.k-pz-img { aspect-ratio: 1; background: var(--tile); overflow: hidden; }
.k-pz-img img { width: 100%; height: 100%; object-fit: cover; }
.k-pz figcaption { display: grid; gap: 3px; }
.k-pz-n { font: 400 15px/1.32 var(--f-name); }
/* Le nom et la photo menent a la fiche de la piece sur le site (17/10). */
a.k-pz-n { color: inherit; text-decoration: none; }
a.k-pz-n:hover, a.k-pz-n:focus-visible { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.k-pz-a { display: block; width: 100%; height: 100%; }
.k-pz-a img { transition: transform .6s ease; }
.k-pz-a:hover img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .k-pz-a img { transition: none; } .k-pz-a:hover img { transform: none; } }
.k-pz-s { font: 500 12px/1.45 var(--f-text); color: var(--encre-3); }
/* La reference client (0087) : celle qu'un pro recopie dans son devis. */
.k-pz-r { font: 600 11px/1.4 var(--f-text); letter-spacing: .12em; color: var(--or-texte); }
.k-plan { display: grid; place-items: center; color: var(--encre-2); }
.k-plan svg { width: 86%; height: 86%; }
.k-plan .k-tbl { fill: var(--creme); stroke: currentColor; stroke-width: 1.4; }
.k-plan .k-chairs rect { fill: none; stroke: currentColor; stroke-width: 1.2; opacity: .75; }
.k-plan .k-chairs .k-back { fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; opacity: .75; }
.k-plan text { font: 500 15px var(--f-text); fill: currentColor; letter-spacing: .04em; }

/* le couvert par invite (« Por invitado ») */
.k-cubierto { margin-top: clamp(30px, 4vw, 44px); }
.k-cub-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 14px 8px; }
@media (min-width: 700px) { .k-cub-list { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 16px 10px; } }
.k-cub-list li { display: grid; gap: 6px; align-content: start; min-width: 0; }
.k-cub-img { display: block; aspect-ratio: 1; background: var(--tile); overflow: hidden; }
.k-cub-img img { width: 100%; height: 100%; object-fit: cover; }
.k-cub-n { font: 400 11.5px/1.3 var(--f-name); }
@media (min-width: 700px) { .k-cub-n { font-size: 12.5px; } }
.k-cub-q { font: 700 12px/1 var(--f-text); color: var(--encre); letter-spacing: .04em; }
.k-cub-note { font: 400 italic 13px/1.5 var(--f-name); color: var(--encre-3); margin-top: 14px; max-width: 70ch; }
.k-coll-txt .k-ficha-btn { margin-top: 6px; }

/* les QR codes (PDF) */
.k-qr { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; }
.k-qr figure { margin: 0; display: grid; gap: 6px; justify-items: center; width: 108px; }
.k-qr-svg { width: 108px; height: 108px; display: block; }
.k-qr figcaption { font: 600 10px/1.3 var(--f-text); text-align: center; color: var(--encre-3); }

/* la fiche d'une collection : une page A4 */
.k-ficha { width: 210mm; height: 297mm; box-sizing: border-box; display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; }
.k-fh { position: relative; height: 80mm; overflow: hidden; }
.k-fh-img { position: absolute; inset: 0; margin: 0; }
.k-fh-img img { width: 100%; height: 100%; object-fit: cover; }
.k-fh-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 17, 14, .72), rgba(20, 17, 14, .1) 65%, rgba(20, 17, 14, 0)); }
.k-fh .k-tag { top: 8px; bottom: auto; z-index: 2; font-size: 7px; padding: 4px 6px; }
.k-fh-title { position: absolute; left: 12mm; right: 12mm; bottom: 7mm; color: var(--blanc-txt); z-index: 1; display: grid; gap: 3px; }
.k-fh-title .k-eyebrow { color: var(--or-clair); font-size: 9px; }
.k-root.k-ficha .k-cname { font: 300 50px/.95 var(--f-display); letter-spacing: .2em; }
.k-fh-title .k-ctag { font-size: 14px; }
.k-fb { padding: 6mm 12mm 0; display: grid; gap: 4mm; align-content: start; }
.k-fb-desc { font-size: 10.5px; line-height: 1.55; color: var(--encre-2); max-width: 160mm; border-left: 2px solid var(--acc); padding-left: 4mm; }
.k-fgrid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3.5mm 3mm; }
.k-fp { margin: 0; display: grid; gap: 1.4mm; align-content: start; min-width: 0; }
.k-fp img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--tile); display: block; }
.k-fp figcaption { display: grid; gap: .5mm; }
.k-fp-n { font: 400 8.4px/1.25 var(--f-name); }
.k-fp-s { font: 500 6.6px/1.3 var(--f-text); color: var(--encre-3); }
.k-fp .k-pz-r { font-size: 6.6px; }
.k-fp-q { font: 700 6.8px/1.3 var(--f-text); color: var(--encre); }
.k-ficha .k-cub-note { font-size: 8.5px; margin-top: 0; }
.k-ff { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6mm; align-items: end; margin: 0 12mm; padding: 5mm 0 9mm; border-top: 1px solid var(--trait); }
.k-ff-txt { display: grid; gap: 1.6mm; font-size: 9px; color: var(--encre-2); }
.k-ff-txt .k-logo { height: 20px; margin-bottom: 1mm; }
.k-ff-zone { font: 600 7px/1.4 var(--f-text); letter-spacing: .18em; text-transform: uppercase; color: var(--or-texte); }
.k-ficha .k-qr { margin: 0; gap: 4mm; }
.k-ficha .k-qr figure { width: 23mm; }
.k-ficha .k-qr-svg { width: 23mm; height: 23mm; }
.k-ficha .k-qr figcaption { font-size: 6.5px; }

/* sections */
.k-sect { padding-block: clamp(56px, 9vw, 110px); display: grid; gap: 0; border-top: 1px solid var(--trait); }
.k-sect-txt { display: grid; gap: 16px; padding-block: clamp(28px, 4vw, 44px) 0; }

.k-insp { display: grid; gap: 30px 18px; margin-top: 32px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .k-insp { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.k-ins { display: grid; gap: 10px; min-width: 0; }
.k-ins-img { aspect-ratio: 3 / 2; overflow: hidden; }
.k-ins-img img { width: 100%; height: 100%; object-fit: cover; }
.k-ins figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.k-ins-n { font: 400 italic 18px/1.3 var(--f-name); }
.k-ins-c { font: 600 10.5px/1 var(--f-text); letter-spacing: .24em; color: var(--encre-3); }

.k-como h2 { margin-bottom: 30px; }
.k-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px 32px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .k-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 980px) { .k-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.k-step { display: grid; gap: 8px; align-content: start; border-top: 1px solid var(--trait); padding-top: 14px; }
.k-num { font: 300 46px/1 var(--f-display); color: var(--or); }
.k-step h3 { font: 400 18px/1.3 var(--f-name); }
.k-step p { font-size: 14.5px; color: var(--encre-2); }

/* contact */
/* Plus de fond noir (Alex, 17/10) : le lin clair, le texte a gauche et notre
   equipe a droite ; au telephone, l'image passe sous le texte. */
.k-contact { background: var(--lin); color: var(--encre); padding-block: clamp(64px, 10vw, 120px) clamp(48px, 7vw, 80px);
  border-top: 1px solid var(--trait); }
.k-contact .k-wrap { display: grid; gap: 22px; }
.k-contact-grid { grid-template-columns: minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 64px) !important; }
@media (min-width: 900px) { .k-contact-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
.k-contact-txt { display: grid; gap: 22px; min-width: 0; }
.k-contact-img { position: relative; margin: 0; aspect-ratio: 3 / 2; overflow: hidden; }
@media (min-width: 900px) { .k-contact-img { aspect-ratio: 4 / 5; } }
.k-contact-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.k-contact .k-body { color: var(--encre-2); }
.k-contact-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.k-root .k-wa-btn { background: var(--or); color: var(--encre); text-decoration: none; font: 600 15px/1 var(--f-text);
  padding: 16px 24px; border-radius: 999px; min-height: 48px; box-sizing: border-box; display: inline-flex; align-items: center; }
.k-root .k-wa-btn:hover { background: var(--or-clair); }
.k-contact .k-btn { border-color: var(--encre); }
.k-contact .k-btn:hover { background: var(--encre); color: var(--creme); }
.k-ct { margin: 18px 0 0; display: grid; gap: 18px 40px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .k-ct { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.k-ct div { border-top: 1px solid var(--trait); padding-top: 12px; min-width: 0; }
.k-ct dt { font: 600 10.5px/1.4 var(--f-text); letter-spacing: .24em; text-transform: uppercase; color: var(--or-texte); }
.k-ct dd { margin: 4px 0 0; font: 400 19px/1.4 var(--f-name); overflow-wrap: anywhere; }
.k-ct a { text-decoration: none; }
.k-ct a:hover { text-decoration: underline; text-underline-offset: 4px; }
.k-ct-logo { margin-top: 34px; }
.k-ct-logo .k-logo { height: clamp(38px, 6vw, 58px); }
.k-sig { font: 400 italic clamp(17px, 2.4vw, 21px)/1.3 var(--f-name); color: var(--or-texte); }
.k-foot { font-size: 12.5px; color: var(--encre-3); }

/* Noel, de saison */
.k-xmas-imgs { display: grid; gap: 14px; margin-top: 28px; grid-template-columns: minmax(0, 1fr); }
.k-xmas-imgs figure { overflow: hidden; }
.k-xmas-imgs img { width: 100%; height: 100%; object-fit: cover; }
.k-xmas-a { aspect-ratio: 3 / 2; }
.k-xmas-b { aspect-ratio: 4 / 5; }
@media (min-width: 860px) { .k-xmas-imgs { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); } .k-xmas-a, .k-xmas-b { aspect-ratio: auto; height: 460px; } }
.k-xmas .k-eyebrow { color: #7A2E1E; }

/* experiences et chefs */
.k-exp-grid { display: grid; gap: 28px; }
.k-exp-img { aspect-ratio: 4 / 3; overflow: hidden; }
.k-exp-img img { width: 100%; height: 100%; object-fit: cover; }
.k-exp-txt { display: grid; gap: 16px; align-content: center; }
@media (min-width: 860px) { .k-exp-grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 56px; } }
.k-chefs { margin-top: clamp(36px, 5vw, 56px); background: var(--lin); padding: clamp(22px, 4vw, 40px); display: grid; gap: 22px; }
.k-chefs-head { display: grid; gap: 6px; }
.k-root .k-chefs-head h3 { font: 400 clamp(26px, 4vw, 36px)/1.1 var(--f-display); }
.k-chefs-head p { color: var(--encre-2); }
.k-chef-pts { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px 28px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .k-chef-pts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.k-chef-pts li { border-top: 1px solid var(--trait); padding-top: 12px; display: grid; gap: 6px; }
.k-chef-pts h3 { font: 400 17px/1.3 var(--f-name); }
.k-chef-pts p { font-size: 14.5px; color: var(--encre-2); }

/* le bouton WhatsApp qui suit la lecture */
.k-root .k-wa-float { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 30;
  display: inline-flex; align-items: center; gap: 8px; background: var(--encre); color: var(--blanc-txt); text-decoration: none;
  font: 600 13px/1 var(--f-text); padding: 13px 18px 13px 14px; border-radius: 999px; box-shadow: 0 6px 24px rgba(20, 17, 14, .22); min-height: 44px; box-sizing: border-box; }
.k-wa-float svg { width: 18px; height: 18px; fill: none; stroke: var(--or-clair); stroke-width: 1.8; stroke-linejoin: round; }

/* impression : A4 portrait, une section par page (les PDF) */
@page { size: A4; margin: 0; }
@media print {
  html, body { background: var(--creme, #F4F0E7); margin: 0; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .k-root { font-size: 13px; }
  .k-wa-float, .k-chips, .k-cover-cta, .k-ccards, .k-contact-cta .k-btn { display: none !important; }
  .k-wrap { max-width: none; padding-inline: 14mm; }
  .k-cover { display: block; height: 297mm; break-after: page; position: relative; }
  .k-cover-img { aspect-ratio: auto; max-height: none; height: 190mm; }
  .k-cover-txt { padding: 14mm 14mm 0; gap: 4mm; }
  .k-h1-main { font-size: 46px; max-width: 16ch; }
  .k-h1-main.k-h1-long { font-size: 38px; max-width: 21ch; }
  .k-intro { padding-block: 16mm 10mm; gap: 8mm; break-after: page; }
  .k-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-wide { aspect-ratio: 2.2 / 1; }
  .k-cols-head { display: none; }
  .k-coll { break-before: page; padding-bottom: 6mm; }
  .k-coll-hero { height: 112mm; }
  .k-root .k-cname { font-size: 64px; }
  .k-coll-intro { grid-template-columns: minmax(0, 5fr) minmax(0, 5fr); gap: 8mm; padding-block: 8mm; align-items: center; }
  .k-grp { break-inside: avoid; margin-top: 6mm; }
  #decoracion .k-grp { break-inside: auto; }
  .k-grp-h { break-after: avoid; }
  .k-pz { break-inside: avoid; }
  .k-grid.k-g6, .k-grid.k-g4 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5mm 4mm; }
  .k-grid.k-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .k-grid.k-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .k-grid.k-n6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  #mantel .k-wide, #decoracion .k-wide { aspect-ratio: 3 / 1; }
  .k-ins-img { aspect-ratio: 16 / 10; }
  .k-step p { font-size: 11.5px; }
  .k-coll .k-lineup + .k-grp, .k-coll .k-lineup + .k-cubierto { break-before: page; margin-top: 0; padding-top: 14mm; }
  .k-cub-list { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3mm 2mm; }
  .k-coll { padding-bottom: 0; }
  .k-cub-n { font-size: 7.5px; } .k-cub-q { font-size: 7.5px; } .k-cub-note { font-size: 9px; margin-top: 2mm; }
  .k-cubierto + .k-grp { margin-top: 5mm; }
  .k-qr figure { width: 26mm; } .k-qr-svg { width: 26mm; height: 26mm; } .k-qr figcaption { font-size: 7px; }
  .k-pz-n { font-size: 11px; } .k-pz-s { font-size: 9px; } .k-pz-r { font-size: 8.5px; }
  .k-lineup { break-inside: avoid; }
  .k-sect { break-before: page; padding-block: 14mm 8mm; }
  .k-insp { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5mm 4mm; margin-top: 6mm; }
  .k-ins-n { font-size: 13px; } .k-ins-c { font-size: 8px; }
  .k-ins { break-inside: avoid; }
  .k-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5mm; }
  .k-como { break-before: auto; border-top: 0; padding-top: 6mm; }
  .k-como h2 { font-size: 30px; margin-bottom: 4mm; }
  .k-contact { break-before: page; padding-block: 24mm; min-height: 297mm; box-sizing: border-box; }
  .k-contact-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .k-contact { padding-block: 16mm 12mm; }
  .k-contact-img { aspect-ratio: auto; height: 78mm; order: -1; }
  /* Avec les QR codes, la page contact doit tenir sur une page : sinon une page
     blanche suit. */
  .k-contact-img { height: 64mm; }
  .k-contact .k-qr { margin-top: 0; }
  .k-contact .k-qr figure { width: 22mm; } .k-contact .k-qr-svg { width: 22mm; height: 22mm; }
  .k-contact .k-ct { margin-top: 2mm; gap: 3mm 10mm; }
  /* Une collection tient sur deux pages, couvert compris : six vignettes par ligne. */
  .k-coll .k-grid.k-g6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4mm 3mm; }
  .k-xmas-imgs { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  .k-xmas-a, .k-xmas-b { aspect-ratio: auto; height: 70mm; }
  .k-exp { break-before: page; }
  .k-exp-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8mm; }
  .k-chef-pts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .k-chef-btn { display: none; }
  .k-tag { font-size: 7px; padding: 4px 6px; }
}

/* =========================================================================
   LA VERSION COURTE (Alex, 17/10 : « trop long » ; « un catalogue des pieces
   expliquees, avec une illustration de table des pieces qu'on a vraiment,
   juste les pieces »). Dans le PDF, une page par rubrique (.k-pg) : la
   couverture et l'essentiel, chaque collection avec sa table, le linge et le
   mobilier, la decoration, Noel en saison, le contact.
   ========================================================================= */
.k-root .k-mini-h { font: 600 11px/1.4 var(--f-text); letter-spacing: .24em; text-transform: uppercase; color: var(--or-texte); margin: 0 0 10px; }

/* couverture : l'essentiel en quatre lignes, et le sommaire */
.k-cv { display: grid; }
.k-cv-img { position: relative; aspect-ratio: 16 / 10; max-height: 62svh; width: 100%; overflow: hidden; }
.k-cv-img img { width: 100%; height: 100%; object-fit: cover; }
.k-cv-txt { max-width: var(--max); margin-inline: auto; box-sizing: content-box; padding: 30px var(--gut) 56px; display: grid; gap: 36px; }
.k-cv-a { display: grid; gap: 16px; align-content: start; }
.k-cv h1 { display: grid; gap: 16px; }
.k-cv h1 .k-eyebrow { display: block; }
.k-cv-b { display: grid; gap: 28px; align-content: start; }
.k-ess { list-style: none; margin: 0; padding: 0; counter-reset: ess; }
.k-ess li { position: relative; border-top: 1px solid var(--trait); padding: 12px 0 12px 34px; font-size: 15px; line-height: 1.5; color: var(--encre-2); }
.k-ess li::before { counter-increment: ess; content: counter(ess); position: absolute; left: 0; top: 9px; font: 300 24px/1 var(--f-display); color: var(--or); }
.k-som ol { list-style: none; margin: 0; padding: 0; }
.k-som a { display: flex; justify-content: space-between; align-items: center; gap: 12px; text-decoration: none; border-top: 1px solid var(--trait);
  padding: 8px 0; min-height: 44px; box-sizing: border-box; }
.k-som a:hover .k-som-t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.k-som-t { font: 400 17px/1.3 var(--f-name); }
.k-som-t.k-som-c { font: 400 19px/1.2 var(--f-display); letter-spacing: .22em; }
.k-som-n { font: 300 18px/1 var(--f-display); color: var(--or-texte); }
@media (min-width: 900px) {
  .k-cv-txt { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; padding-top: 56px; }
}

/* une page de pieces : la table, puis chaque piece avec sa ligne */
.k-court .k-cl, .k-court .k-sc { border-top: 1px solid var(--trait); }
.k-pg-body { max-width: var(--max); margin-inline: auto; box-sizing: content-box; padding: clamp(28px, 4vw, 44px) var(--gut) clamp(48px, 7vw, 80px); }
.k-mesa { margin: 0; }
.k-mesa-img { position: relative; aspect-ratio: 21 / 9; overflow: hidden; background: var(--lin); }
.k-mesa-img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) { .k-mesa-img { aspect-ratio: 16 / 10; } }
.k-mesa figcaption { max-width: var(--max); margin-inline: auto; box-sizing: content-box; padding: 8px var(--gut) 0; text-align: right;
  font: 400 italic 13px/1.4 var(--f-name); color: var(--encre-3); }
.k-cl-head { display: grid; gap: 14px; }
/* Le nom, puis sa phrase a cote quand la place le permet ; la description dessous. */
.k-cl-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 28px; }
.k-root .k-cl-name .k-cname { font-size: clamp(44px, 9vw, 84px); }
.k-cl-name .k-ctag { color: var(--encre-2); }
.k-cl-txt { display: grid; gap: 14px; align-content: start; justify-items: start; border-left: 2px solid var(--acc); padding-left: 18px; margin-top: 6px; }
.k-cl-desc { font-size: 16px; line-height: 1.65; color: var(--encre-2); max-width: 78ch; }
.k-sc-head { display: grid; gap: 14px; }
.k-lg { margin-top: clamp(26px, 4vw, 40px); }
.k-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px 28px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .k-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .k-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.k-it { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; min-width: 0; }
.k-it-img { aspect-ratio: 1; background: var(--tile); overflow: hidden; }
.k-it-img img { width: 100%; height: 100%; object-fit: cover; }
.k-it-img .k-plan { width: 100%; height: 100%; }
.k-it-txt { display: grid; gap: 3px; min-width: 0; }
.k-court .k-pz-n { font-size: 16px; }
.k-it-u { font-size: 13.5px; line-height: 1.45; color: var(--encre-2); }

/* le contact : une ligne pour les experiences et une pour la facon de travailler */
.k-mas ul { list-style: none; margin: 0; padding: 0; }
.k-mas a { display: grid; gap: 2px; text-decoration: none; border-top: 1px solid var(--trait); padding: 12px 0; }
.k-mas strong { font: 400 18px/1.3 var(--f-name); }
.k-mas a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.k-mas span { font-size: 14.5px; color: var(--encre-2); }
.k-mas .k-mas-u { font: 600 11px/1.4 var(--f-text); letter-spacing: .06em; color: var(--or-texte); }

/* le pied d'une page du PDF */
.k-pf { display: flex; justify-content: space-between; align-items: center; gap: 6mm; border-top: 1px solid var(--trait);
  font: 500 7.5px/1.3 var(--f-text); color: var(--encre-3); }
.k-pf-n { font: 300 15px/1 var(--f-display); color: var(--or-texte); }

@media print {
  .k-court .k-pg { height: 297mm; box-sizing: border-box; overflow: hidden; display: flex; flex-direction: column;
    break-before: page; padding: 0; border-top: 0; }
  .k-court .k-cv { break-before: auto; }
  .k-court .k-pf { margin: auto 14mm 0; padding: 2.6mm 0 7mm; }

  .k-court .k-cv-img { aspect-ratio: auto; max-height: none; height: 150mm; flex: none; }
  .k-court .k-cv-txt { max-width: none; margin: 0; padding: 9mm 14mm 10mm; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 11mm; flex: 1; }
  .k-court .k-cv-a { gap: 4mm; }
  .k-court .k-cv h1 { gap: 4mm; }
  .k-court .k-mark .k-logo { height: 28px; }
  .k-court .k-h1-main { font-size: 40px; max-width: 13ch; }
  .k-court .k-h1-main.k-h1-long { font-size: 33px; max-width: 16ch; }
  .k-court .k-lead { font-size: 10.5px; line-height: 1.55; }
  .k-court .k-cv-b { gap: 6mm; }
  .k-root.k-court .k-mini-h { font-size: 8px; margin-bottom: 2mm; }
  .k-court .k-ess li { font-size: 10px; line-height: 1.45; padding: 2.2mm 0 2.2mm 7mm; }
  .k-court .k-ess li::before { font-size: 17px; top: 1.8mm; }
  .k-court .k-som a { min-height: 0; padding: 1.6mm 0; }
  .k-court .k-som-t { font-size: 11px; }
  .k-court .k-som-t.k-som-c { font-size: 12px; }
  .k-court .k-som-n { font-size: 12px; }

  .k-court .k-mesa { flex: none; }
  .k-court .k-mesa-img { aspect-ratio: auto; height: 80mm; }
  .k-court .k-mesa figcaption { max-width: none; margin: 0; padding: 1.4mm 14mm 0; font-size: 8px; }
  .k-court .k-pg-body { max-width: none; margin: 0; padding: 2mm 14mm 0; }
  .k-court .k-cl-head { gap: 1.6mm; padding-top: 1mm; }
  .k-root.k-court .k-cl-name .k-cname { font-size: 40px; }
  .k-court .k-cl-name { gap: 1mm 7mm; }
  .k-court .k-ctag { font-size: 12px; }
  .k-court .k-cl-txt { padding-left: 4mm; gap: 2mm; margin-top: 1mm; }
  .k-court .k-cl-desc { font-size: 9.2px; line-height: 1.5; max-width: none; }
  .k-court .k-sc-head { gap: 3mm; padding-top: 10mm; }
  .k-root.k-court .k-sc-head h2 { font-size: 40px; }
  .k-court .k-xmas .k-sc-head { padding-top: 2mm; }
  .k-court .k-sc-head .k-body { font-size: 10.5px; }
  .k-court .k-lg { margin-top: 4.5mm; break-inside: avoid; }
  .k-court .k-grp-h { padding-top: 2mm; margin-bottom: 2.6mm; }
  .k-root.k-court .k-grp-h h3 { font-size: 8.5px; }
  .k-court .k-grp-h .k-cnt { font-size: 8px; }
  .k-court .k-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3mm 5mm; }
  .k-court .k-it { grid-template-columns: 19mm minmax(0, 1fr); gap: 3mm; }
  /* Peu de pieces sur la page du linge : des photos plus grandes. */
  .k-court #mantel .k-it { grid-template-columns: 30mm minmax(0, 1fr); }
  .k-court #mantel .k-list { gap: 5mm; }
  .k-court .k-pz-n { font-size: 10px; line-height: 1.25; }
  .k-court .k-it-u { font-size: 8.4px; line-height: 1.35; }
  .k-court .k-pz-s { font-size: 7.4px; }
  .k-court .k-pz-r { font-size: 7.4px; }

  .k-court .k-contact.k-pg { display: block; padding: 12mm 0 8mm; }
  .k-court .k-contact-img { height: 72mm; }
  .k-court .k-contact-txt { gap: 4mm; }
  .k-root.k-court .k-contact h2 { font-size: 36px; }
  .k-court .k-contact .k-body { font-size: 11px; }
  .k-root.k-court .k-wa-btn { font-size: 11px; padding: 9px 16px; min-height: 0; }
  .k-court .k-ct { margin-top: 0; }
  .k-court .k-ct dd { font-size: 13px; }
  .k-court .k-ct div { padding-top: 2mm; }
  .k-court .k-ct-logo { margin-top: 2mm; }
  .k-court .k-ct-logo .k-logo { height: 30px; }
  .k-court .k-sig { font-size: 13px; }
  .k-court .k-foot { font-size: 9px; }
  .k-court .k-mas strong { font-size: 12px; }
  .k-court .k-mas span { font-size: 9.5px; }
  .k-court .k-mas .k-mas-u { font-size: 8px; }
  .k-court .k-mas a { padding: 2mm 0; }
}

/* L'EDITION PRIVEE avec les prix pro (Alex, 19/10/2026 ; fabricar.mjs --precios).
   Jamais sur le site : ces regles ne servent qu'a ses PDF. Le prix sous chaque
   piece, la page des collections au couvert, celle des conditions. */
.k-it-p { display: grid; gap: 1px; margin-top: 3px; }
.k-it-p b { font: 600 15px/1.2 var(--f-text); color: var(--encre); letter-spacing: .01em; }
.k-it-p span { font: 500 11px/1.3 var(--f-text); color: var(--encre-3); }
.k-it-nd b { font-weight: 500; color: var(--or-texte); }
.k-pv-badge { display: grid; gap: 4px; border-left: 2px solid var(--or); padding: 2px 0 2px 14px; }
.k-pv-badge b { font: 600 12px/1.4 var(--f-text); letter-spacing: .16em; text-transform: uppercase; color: var(--or-texte); }
.k-pv-badge span { font-size: 14px; color: var(--encre-2); }
.k-px-cards { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 24px; }
.k-px-c { display: grid; align-content: start; background: var(--tile); border-top: 2px solid var(--acc); }
.k-px-img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.k-px-img img { width: 100%; height: 100%; object-fit: cover; }
.k-px-txt { display: grid; gap: 6px; padding: 14px 16px 18px; align-content: start; }
.k-root .k-px-c .k-cname { font-size: 34px; letter-spacing: .2em; }
.k-px-p { display: grid; gap: 2px; margin: 8px 0 6px; }
.k-px-p b { font: 300 40px/1 var(--f-display); color: var(--encre); }
.k-px-p span { font: 500 12px/1.35 var(--f-text); color: var(--encre-3); }
.k-px-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; font-size: 14px; color: var(--encre-2); }
.k-px-l li::before { content: '·'; color: var(--acc); margin-right: 6px; }
.k-px-frase { font: 300 26px/1.25 var(--f-display); color: var(--encre); margin-top: 28px; max-width: 40ch; }
.k-px-nota { font-size: 14px; color: var(--encre-2); margin-top: 10px; }
.k-cd-grid { display: grid; gap: 18px 36px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 24px; }
.k-cd-b { border-top: 1px solid var(--trait); padding-top: 12px; display: grid; gap: 6px; align-content: start; font-size: 15px; color: var(--encre-2); }
.k-cd-t { display: grid; gap: 6px; }
.k-cd-z { list-style: none; margin: 4px 0; padding: 0; display: grid; gap: 0; }
.k-cd-z li { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px dotted var(--trait); padding: 5px 0; }
.k-cd-z b { font-weight: 600; color: var(--encre); white-space: nowrap; }

@media print {
  .k-court .k-it-p { margin-top: .6mm; gap: 0; }
  .k-court .k-it-p b { font-size: 9.4px; }
  .k-court .k-it-p span { font-size: 6.6px; }
  .k-court .k-pv-badge { padding: .5mm 0 .5mm 3.5mm; gap: 1mm; }
  .k-court .k-pv-badge b { font-size: 7.4px; }
  .k-court .k-pv-badge span { font-size: 9.5px; }
  .k-court .k-px-cards { gap: 5mm; margin-top: 7mm; }
  .k-court .k-px-txt { gap: 1.4mm; padding: 4mm 4.5mm 5mm; }
  .k-root.k-court .k-px-c .k-cname { font-size: 24px; }
  .k-court .k-px-c .k-ctag { font-size: 9.5px; }
  .k-court .k-px-p { margin: 2mm 0 2mm; gap: .6mm; }
  .k-court .k-px-p b { font-size: 30px; }
  .k-court .k-px-p span { font-size: 7.6px; }
  .k-court .k-px-l { font-size: 9px; gap: .8mm; }
  .k-court .k-px-frase { font-size: 19px; margin-top: 9mm; }
  .k-court .k-px-nota { font-size: 9.5px; margin-top: 3mm; }
  /* Le prix ajoute deux lignes a chaque piece : la table de la collection un
     peu plus basse, pour que la page des 15 pieces d'ALBA tienne. */
  .k-pv-body .k-court .k-mesa-img { height: 64mm; }
  .k-court .k-px-img { aspect-ratio: auto; height: 78mm; }
  .k-court .k-px-c .k-ctag { min-height: 2.9em; }
  .k-court .k-px-frase { font-size: 23px; margin-top: 12mm; border-left: 2px solid var(--or); padding: 1mm 0 1mm 6mm; max-width: 34ch; }
  .k-court .k-cd-grid { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 9mm; }
  .k-court .k-cd-b { grid-template-columns: 52mm minmax(0, 1fr); column-gap: 8mm; font-size: 11.5px; line-height: 1.55; padding: 7mm 0; }
  .k-court .k-cd-b > .k-mini-h { font-size: 8.4px; margin: .9mm 0 0; }
  .k-court .k-cd-t { display: grid; gap: 2mm; align-content: start; }
  /* La regle partenaire, mise en avant : c'est elle qui fait revenir un pro. */
  .k-court .k-cd-pa { background: var(--tile); border-top: 2px solid var(--or); padding: 6mm 5mm; margin: 2mm 0; }
  .k-court .k-cd-pa .k-cd-t { font: 300 17px/1.35 var(--f-display); color: var(--encre); }
  .k-court .k-cd-z { max-width: 120mm; }
  .k-court .k-cd-z li { padding: 1.6mm 0; }
  .k-court .k-cd-c { font-weight: 600; color: var(--encre); }
}
