/* hederne-dřevo — identité « atelier & chantier » : noir, blanc, jaune signalisation, chiffres techniques.
 * Angles droits, filets noirs de 2 px, ombres « tampon » décalées. Conçu d'abord pour 360 px.
 * Compatibilité : Safari iOS 13+, Firefox 78+. SANS : gap sur flex, aspect-ratio, clamp(), inset, :has(), <dialog>.
 * Les fichiers h-*.css (catalogue, commande, devis, pages) complètent ce socle avec leurs composants propres. */

@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('../fonts/bricolage-grotesque-latin-ext-wght-normal.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('../fonts/bricolage-grotesque-latin-wght-normal.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: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url('../fonts/jetbrains-mono-latin-ext-wght-normal.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url('../fonts/jetbrains-mono-latin-wght-normal.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; }

:root {
  --ink: #111111;
  --paper: #FFFFFF;
  --hi: #FFE14D;          /* jaune signalisation (fond d'accent, jamais pour du texte sur blanc) */
  --hi-2: #FFF3B0;        /* jaune pâle (surlignage léger) */
  --gray: #F2F2F0;
  --gray-2: #E2E2DD;
  --mute: #5C5C5C;        /* 6,6:1 sur blanc */
  --rule: #111111;
  --ok: #0B6B34;          /* succès : 6,9:1 sur blanc */
  --ok-bg: #E3F4E8;
  --err: #B3261E;         /* erreur : 6,5:1 sur blanc */
  --err-bg: #FDECEA;
  --sans: 'Bricolage Grotesque', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
  --stamp: 4px 4px 0 #111111;
}

/* ---------------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 450 16px/1.5 var(--sans); -webkit-font-smoothing: antialiased; overflow-wrap: break-word; word-wrap: break-word; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
ul, ol { padding: 0; }
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
table { border-collapse: collapse; }
[hidden] { display: none !important; }
h1, h2, h3, .h-display { font-family: var(--sans); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
h1 { font-size: 40px; }
h2 { font-size: 28px; }
h3 { font-size: 19px; letter-spacing: -.01em; line-height: 1.2; }
.h-mono { font-family: var(--mono); }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.h-skip { position: absolute; left: 8px; top: -60px; z-index: 300; background: var(--hi); color: var(--ink); border: 2px solid var(--ink); padding: 10px 14px; font-weight: 800; text-decoration: none; }
.h-skip:focus { top: 8px; }
a:focus, button:focus, input:focus, select:focus, textarea:focus, summary:focus, [tabindex]:focus { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 6px var(--hi); }
a:focus:not(:focus-visible), button:focus:not(:focus-visible), summary:focus:not(:focus-visible), [tabindex]:focus:not(:focus-visible) { outline: none; box-shadow: none; }

/* ---------------------------------------------------------------- mise en page */
.h-wrap { max-width: 1280px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.h-wrap--narrow { max-width: 820px; }
.h-sec { padding-top: 28px; padding-bottom: 28px; }
.h-sec--tight { padding-top: 16px; padding-bottom: 16px; }
.h-rule { border-top: 2px solid var(--rule); }
.h-rule-b { border-bottom: 2px solid var(--rule); }
.h-mt-8 { margin-top: 8px; } .h-mt-12 { margin-top: 12px; } .h-mt-16 { margin-top: 16px; } .h-mt-24 { margin-top: 24px; } .h-mt-32 { margin-top: 32px; }
.h-mb-8 { margin-bottom: 8px; } .h-mb-12 { margin-bottom: 12px; } .h-mb-16 { margin-bottom: 16px; } .h-mb-24 { margin-bottom: 24px; }
.h-center { text-align: center; }
.h-muted { color: var(--mute); }
.h-small { font-size: 14px; }
.h-xs { font-size: 13px; }
.h-nowrap { white-space: nowrap; }
.h-stack > * + * { margin-top: 12px; }
.h-kicker { font: 700 12px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.h-lead { font-size: 18px; color: #2B2B2B; max-width: 62ch; margin-top: 12px; }
.h-mark { background: var(--hi); padding: 0 .12em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.h-link { font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.h-link:hover { background: var(--hi); }
.h-head { padding-top: 28px; padding-bottom: 22px; border-bottom: 2px solid var(--rule); }
.h-head h1 { margin-top: 10px; }
.h-row-between { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; }
.h-row-between > * { margin-top: 8px; }

/* ---------------------------------------------------------------- marque */
.h-word { font: 800 19px/1 var(--mono); letter-spacing: -.03em; white-space: nowrap; }
.h-word__dash, .h-word__end { color: var(--hi); }
.h-brand { display: flex; align-items: center; text-decoration: none; color: #fff; min-width: 0; }
.h-brand svg { flex-shrink: 0; margin-right: 10px; }

/* ---------------------------------------------------------------- barre + onglets */
.h-bar { background: var(--ink); color: #fff; }
.h-bar__in { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.h-bar__tools { display: flex; align-items: center; }
.h-bar__tools > * + * { margin-left: 14px; }
.h-bar a { color: #fff; }
.h-bar__note { display: none; font: 600 13px var(--mono); color: #CFCFCF; }
.h-cartlink { font: 700 14px var(--mono); text-decoration: none; white-space: nowrap; border: 2px solid var(--hi); padding: 6px 10px; color: var(--hi) !important; }
.h-cartlink b { color: #fff; }
.h-tabs { border-bottom: 2px solid var(--rule); background: var(--paper); position: relative; z-index: 30; }
.h-tabs__in { display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.h-tabs__in::-webkit-scrollbar { display: none; }
.h-tabs a { flex-shrink: 0; display: block; padding: 12px 14px; font: 700 13px var(--mono); letter-spacing: .04em; text-transform: uppercase; text-decoration: none; border-right: 2px solid var(--rule); white-space: nowrap; }
.h-tabs a:first-child { border-left: 2px solid var(--rule); }
.h-tabs a.is-active, .h-tabs a[aria-current] { background: var(--hi); }
.h-tabs a:hover { background: var(--hi-2); }
.h-tabs .h-tab--pro { background: var(--ink); color: var(--hi); }
.h-search { display: none; border-bottom: 2px solid var(--rule); padding: 12px 0; background: var(--gray); }
.h-search.is-open { display: block; }
.h-searchbox { display: flex; border: 2px solid var(--ink); background: #fff; }
.h-searchbox input { flex: 1; min-width: 0; border: 0; padding: 12px 14px; font-size: 16px; background: transparent; }
.h-searchbox input:focus { outline: none; box-shadow: none; }
.h-searchbox:focus-within { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 7px var(--hi); }
.h-searchbox button { border: 0; border-left: 2px solid var(--ink); background: var(--hi); font: 800 14px var(--mono); padding: 0 16px; text-transform: uppercase; }
.h-pending { background: var(--hi); border-bottom: 2px solid var(--rule); font: 600 14px var(--mono); padding: 10px 0; }
.h-pending a { font-weight: 800; text-decoration: underline; margin-left: 6px; }
.h-strip { background: var(--hi-2); border-bottom: 2px solid var(--rule); font: 600 13px var(--mono); padding: 8px 0; text-align: center; }
.h-strip b { background: var(--ink); color: var(--hi); padding: 1px 6px; }

/* ---------------------------------------------------------------- boutons */
.h-btn {
  display: inline-block; text-align: center; text-decoration: none; cursor: pointer; -webkit-appearance: none; appearance: none;
  background: var(--hi); color: var(--ink); border: 2px solid var(--ink); box-shadow: var(--stamp);
  font: 800 15px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .03em; padding: 13px 18px; border-radius: 0;
}
.h-btn:hover { background: #FFD60A; }
.h-btn:active { -webkit-transform: translate(3px, 3px); transform: translate(3px, 3px); box-shadow: 1px 1px 0 #111; }
.h-btn--ink { background: var(--ink); color: var(--hi); }
.h-btn--ink:hover { background: #2A2A2A; }
.h-btn--ghost { background: #fff; }
.h-btn--ghost:hover { background: var(--hi-2); }
.h-btn--block { display: block; width: 100%; }
.h-btn--lg { font-size: 17px; padding: 16px 20px; }
.h-btn--sm { font-size: 13px; padding: 8px 12px; box-shadow: 2px 2px 0 #111; }
.h-btn[disabled] { background: var(--gray-2); color: var(--mute); cursor: not-allowed; box-shadow: none; }
.h-textbtn { background: none; border: 0; padding: 0; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ---------------------------------------------------------------- formulaires */
.h-fields { display: grid; grid-template-columns: minmax(0, 1fr); grid-gap: 14px; gap: 14px; }
.h-field label, .h-field .h-label { display: block; font: 700 13px var(--mono); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.h-field .h-opt { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--mute); }
.h-input, .h-select, .h-textarea {
  display: block; width: 100%; min-width: 0; border: 2px solid var(--ink); border-radius: 0; background: #fff; padding: 11px 12px; font-size: 16px;
  -webkit-appearance: none; appearance: none;
}
.h-textarea { min-height: 96px; resize: vertical; }
.h-select { padding-right: 36px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23111' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
.h-input:focus, .h-select:focus, .h-textarea:focus { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 7px var(--hi); }
.h-field .h-hint { display: block; font-size: 13px; color: var(--mute); margin-top: 5px; }
.h-field .h-error { display: block; font-size: 14px; font-weight: 700; color: var(--err); margin-top: 6px; }
.h-field .h-error::before { content: '× '; }
.h-field.is-invalid .h-input, .h-field.is-invalid .h-select, .h-field.is-invalid .h-textarea { border-color: var(--err); background: var(--err-bg); }
.h-field.is-valid .h-input { border-color: var(--ok); }
.h-inline { display: flex; }
.h-inline .h-input { -webkit-box-flex: 1; flex: 1; }
.h-inline .h-btn { box-shadow: none; border-left: 0; white-space: nowrap; }
.h-check { display: grid; grid-template-columns: 24px minmax(0, 1fr); grid-gap: 10px; gap: 10px; align-items: start; cursor: pointer; font-size: 15px; }
.h-check input { width: 22px; height: 22px; margin: 0; accent-color: var(--ink); }
.h-choice { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; grid-gap: 12px; gap: 12px; align-items: start; border: 2px solid var(--ink); padding: 14px; cursor: pointer; background: #fff; }
.h-choice + .h-choice { margin-top: -2px; }
.h-choice input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ink); }
.h-choice b { display: block; }
.h-choice small { display: block; font-size: 13px; color: var(--mute); }
.h-choice.is-checked { background: var(--hi-2); box-shadow: inset 6px 0 0 var(--hi); }
.h-choice__price { font: 800 15px var(--mono); text-align: right; white-space: nowrap; }
.h-choice__price s { display: block; font-weight: 500; color: var(--mute); font-size: 12px; }

/* ---------------------------------------------------------------- prix */
.h-price { font: 800 20px/1.1 var(--mono); letter-spacing: -.02em; white-space: nowrap; }
.h-price small, .h-net { display: block; font: 500 12px/1.4 var(--mono); color: var(--mute); letter-spacing: 0; }
.h-tag { display: inline-block; font: 700 11px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .05em; border: 1.5px solid var(--ink); padding: 3px 6px; margin: 0 4px 4px 0; background: #fff; }
.h-tag--hi { background: var(--hi); }
.h-tag--ink { background: var(--ink); color: var(--hi); border-color: var(--ink); }
.h-stock { font: 700 12px var(--mono); text-transform: uppercase; }
.h-stock::before { content: ''; display: inline-block; width: 8px; height: 8px; background: var(--ok); margin-right: 6px; vertical-align: 1px; }
.h-stock--out::before { background: var(--err); }

/* ---------------------------------------------------------------- boîtes */
.h-panel { border: 2px solid var(--ink); background: #fff; padding: 16px; }
.h-panel--hi { background: var(--hi); }
.h-panel--gray { background: var(--gray); }
.h-panel--stamp { box-shadow: var(--stamp); }
.h-panel__title { font: 800 20px/1.15 var(--sans); letter-spacing: -.02em; margin-bottom: 12px; }
.h-notice { border: 2px solid var(--ink); padding: 12px 14px; font-size: 15px; margin-bottom: 14px; background: #fff; }
.h-notice--ok { background: var(--ok-bg); border-color: var(--ok); }
.h-notice--err { background: var(--err-bg); border-color: var(--err); }
.h-notice--info { background: var(--hi-2); }
.h-empty { border: 2px dashed var(--ink); padding: 28px 18px; text-align: center; }
.h-sumrow { display: flex; justify-content: space-between; align-items: baseline; padding: 7px 0; font-size: 15px; border-bottom: 1px dashed #9A9A9A; }
.h-sumrow > span:first-child { padding-right: 12px; }
.h-sumrow b { font-family: var(--mono); white-space: nowrap; }
.h-sumrow--total { border-bottom: 0; border-top: 2px solid var(--ink); margin-top: 6px; padding-top: 12px; }
.h-sumrow--total span:first-child { font-weight: 800; }
.h-sumrow--total b { font-size: 24px; }
.h-vat { font: 500 12px var(--mono); color: var(--mute); text-align: right; }
.h-ratio { position: relative; width: 100%; height: 0; padding-top: 100%; background: var(--gray); overflow: hidden; }
.h-ratio--43 { padding-top: 75%; }
.h-ratio > picture, .h-ratio > img, .h-ratio > .h-ratio__fill { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.h-ratio picture img, .h-ratio > img { width: 100%; height: 100%; object-fit: contain; }
.h-ratio--cover picture img, .h-ratio--cover > img { object-fit: cover; }

/* ---------------------------------------------------------------- tableaux techniques */
.h-table { width: 100%; font-size: 15px; }
.h-table th, .h-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--ink); vertical-align: top; }
.h-table thead th { font: 700 12px var(--mono); text-transform: uppercase; letter-spacing: .05em; background: var(--ink); color: #fff; border-bottom: 0; }
.h-table td.h-num, .h-table th.h-num { text-align: right; font-family: var(--mono); white-space: nowrap; }
.h-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 2px solid var(--ink); }
.h-specs { width: 100%; font-size: 15px; border-top: 2px solid var(--ink); }
.h-specs th, .h-specs td { text-align: left; padding: 9px 0; border-bottom: 1px solid var(--gray-2); vertical-align: top; }
.h-specs th { font: 600 13px var(--mono); color: var(--mute); text-transform: uppercase; width: 44%; padding-right: 10px; }
.h-specs td { font-weight: 700; }

/* ---------------------------------------------------------------- texte long */
.h-prose { font-size: 17px; line-height: 1.65; max-width: 70ch; }
.h-prose > * + * { margin-top: 14px; }
.h-prose h2 { font-size: 24px; margin-top: 32px; padding-top: 14px; border-top: 2px solid var(--ink); }
.h-prose h3 { margin-top: 22px; }
.h-prose a { font-weight: 700; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.h-prose ul, .h-prose ol { padding-left: 22px; }
.h-prose li + li { margin-top: 6px; }
.h-faq details { border-bottom: 2px solid var(--ink); }
.h-faq summary { cursor: pointer; padding: 16px 32px 16px 0; font-weight: 800; position: relative; list-style: none; }
.h-faq summary::-webkit-details-marker { display: none; }
.h-faq summary::after { content: '+'; position: absolute; right: 4px; top: 12px; font: 800 22px var(--mono); }
.h-faq details[open] summary::after { content: '−'; }
.h-faq details > div { padding: 0 0 16px; }
.h-crumbs { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .04em; padding-top: 14px; color: var(--mute); }
.h-crumbs ol { list-style: none; }
.h-crumbs li { display: inline; }
.h-crumbs li + li::before { content: '/'; margin: 0 8px; }
.h-crumbs a { color: var(--ink); }
.h-crumbs [aria-current] { color: var(--ink); }

/* ---------------------------------------------------------------- fenêtre (ajout au panier) */
.h-modal { display: none; position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 200; }
.h-modal.is-open { display: block; }
.h-modal__backdrop { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: rgba(17, 17, 17, .6); }
.h-modal__panel { position: absolute; left: 12px; right: 12px; bottom: 12px; max-height: 90%; overflow-y: auto; background: #fff; border: 2px solid var(--ink); box-shadow: 6px 6px 0 var(--hi); padding: 18px; margin-bottom: env(safe-area-inset-bottom); }
.h-modal__title { font: 800 22px/1.1 var(--sans); letter-spacing: -.02em; }
.h-modal__title::before { content: '✓'; display: inline-block; width: 30px; height: 30px; line-height: 28px; text-align: center; background: var(--hi); border: 2px solid var(--ink); font-size: 16px; margin-right: 10px; vertical-align: 2px; }
.h-modal__item { display: grid; grid-template-columns: 64px minmax(0, 1fr); grid-gap: 12px; gap: 12px; align-items: center; margin: 14px 0; }
.h-modal__actions { display: grid; grid-template-columns: 1fr; grid-gap: 12px; gap: 12px; margin-top: 14px; }

/* ---------------------------------------------------------------- pied de page */
.h-foot { background: var(--hi); border-top: 2px solid var(--ink); margin-top: 48px; }
.h-foot__big { font: 800 34px/0.95 var(--mono); letter-spacing: -.05em; padding-top: 28px; }
.h-foot__big .h-word { white-space: normal; font-size: inherit; }
.h-foot a, .h-foot address { word-break: break-word; overflow-wrap: break-word; }
.h-foot__cols > div:first-child { grid-column: 1 / -1; }
.h-foot__big .h-word__dash, .h-foot__big .h-word__end { color: var(--ink); }
.h-foot__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-gap: 22px 16px; gap: 22px 16px; padding: 26px 0; }
.h-foot h2 { font: 800 13px var(--mono); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
.h-foot ul { list-style: none; }
.h-foot li { padding: 3px 0; font-size: 15px; }
.h-foot address { font-style: normal; font-size: 15px; line-height: 1.6; }
.h-foot__legal { border-top: 2px solid var(--ink); padding: 14px 0 20px; font: 600 13px var(--mono); }
.h-foot__legal li { display: inline-block; margin: 0 14px 8px 0; padding: 0; font-size: 13px; }
.h-foot__legal a, .h-foot__legal button { text-transform: uppercase; }
.h-foot__legal button { background: none; border: 0; padding: 0; text-decoration: underline; font: inherit; }
.h-foot__withdraw { background: var(--ink); color: var(--hi); padding: 2px 6px; text-decoration: none; }
.h-foot--slim { margin-top: 32px; }
.h-news { display: flex; max-width: 440px; margin-top: 10px; }
.h-news input { flex: 1; min-width: 0; border: 2px solid var(--ink); border-right: 0; padding: 10px 12px; font-size: 16px; background: #fff; }
.h-news button { border: 2px solid var(--ink); background: var(--ink); color: var(--hi); font: 800 13px var(--mono); text-transform: uppercase; padding: 0 14px; }

/* ---------------------------------------------------------------- cookies, toast */
.h-consent { position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 250; background: var(--ink); color: #fff; border: 2px solid var(--ink); box-shadow: 6px 6px 0 var(--hi); padding: 14px 16px; margin-bottom: env(safe-area-inset-bottom); }
.h-consent p { font-size: 14px; }
.h-consent a { color: var(--hi); font-weight: 700; }
.h-consent__actions { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 10px; gap: 10px; margin-top: 12px; }
.h-consent .h-btn { box-shadow: none; }
.h-consent .h-btn--ghost { background: transparent; color: #fff; border-color: #fff; }
.h-toast { position: fixed; left: 12px; right: 12px; bottom: 16px; z-index: 260; background: var(--ink); color: var(--hi); border: 2px solid var(--ink); padding: 12px 14px; font: 700 14px var(--mono); text-align: center; }

/* Notification « nouvelle commande » : bande en bas sur mobile, carte en bas à gauche dès 768 px (h-site.js). */
.h-proof { position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 150; margin-bottom: env(safe-area-inset-bottom); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; background: var(--paper); color: var(--ink); border: 2px solid var(--ink); box-shadow: 4px 4px 0 var(--hi); opacity: 0; -webkit-transform: translateY(12px); transform: translateY(12px); -webkit-transition: opacity .25s, -webkit-transform .25s; transition: opacity .25s, transform .25s; }
.h-proof[hidden] { display: none; }
.h-proof.is-in { opacity: 1; -webkit-transform: none; transform: none; }
.h-proof__body { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; display: block; padding: 10px 12px; color: inherit; text-decoration: none; }
a.h-proof__body:hover .h-proof__what, a.h-proof__body:focus .h-proof__what { text-decoration: underline; }
.h-proof__when, .h-proof__who { display: block; font: 700 12px/1.4 var(--mono); color: var(--mute); }
.h-proof__what { display: block; margin: 2px 0; font-weight: 700; font-size: 14px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.h-proof__close { -webkit-box-flex: 0; -ms-flex: 0 0 auto; flex: 0 0 auto; min-width: 44px; min-height: 44px; border: 0; border-left: 2px solid var(--ink); background: var(--hi); color: var(--ink); font: 700 22px/1 var(--mono); cursor: pointer; }
.h-proof__close:focus-visible { outline: 3px solid var(--ink); outline-offset: -5px; }
@media (min-width: 768px) {
  .h-proof { left: 16px; right: auto; bottom: 16px; width: 360px; }
}
/* Bulle WhatsApp : bas droite ; fenêtre de discussion au-dessus. Vert WhatsApp pour être reconnue d'un coup d'œil. */
.h-wa__bubble { position: fixed; right: 12px; bottom: 12px; z-index: 140; margin-bottom: env(safe-area-inset-bottom); width: 58px; height: 58px; border-radius: 50%; background: #25D366; color: #fff; border: 2px solid var(--ink); box-shadow: 3px 3px 0 var(--ink); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
.h-wa__bubble:hover { background: #1EBE5A; }
.h-wa__bubble:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.h-wa.is-open .h-wa__bubble { background: var(--ink); }
.h-wa--raised .h-wa__bubble { bottom: 112px; }
.h-wa--raised .h-wa__panel, .h-wa--raised .h-wa__teaser { bottom: 182px; }
.h-wa ~ .h-proof { right: 80px; }
.h-wa__teaser { position: fixed; right: 12px; bottom: 82px; z-index: 140; margin-bottom: env(safe-area-inset-bottom); max-width: 240px; background: var(--paper); color: var(--ink); border: 2px solid var(--ink); box-shadow: 3px 3px 0 var(--hi); padding: 10px 12px; font-family: inherit; font-weight: 700; font-size: 14px; line-height: 1.35; text-align: left; cursor: pointer; }
.h-wa__teaser:after { content: ""; position: absolute; right: 22px; bottom: -9px; width: 14px; height: 14px; background: var(--paper); border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); -webkit-transform: rotate(45deg); transform: rotate(45deg); }
.h-wa__panel { position: fixed; left: 8px; right: 8px; bottom: 82px; z-index: 145; margin-bottom: env(safe-area-inset-bottom); max-height: 75vh; overflow-y: auto; background: var(--paper); color: var(--ink); border: 2px solid var(--ink); box-shadow: 5px 5px 0 var(--ink); }
.h-wa__panel[hidden], .h-wa__teaser[hidden] { display: none; }
.h-wa__head { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; background: var(--ink); color: #fff; padding: 10px 6px 10px 12px; }
.h-wa__head svg { -ms-flex-negative: 0; flex-shrink: 0; margin-right: 10px; }
.h-wa__who { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; }
.h-wa__name { font-weight: 800; font-size: 15px; line-height: 1.3; }
.h-wa__status { font: 700 12px/1.4 var(--mono); color: var(--hi); }
.h-wa__x { min-width: 44px; min-height: 44px; background: transparent; border: 0; color: #fff; font: 700 24px/1 var(--mono); cursor: pointer; }
.h-wa__x:focus-visible { outline: 3px solid var(--hi); outline-offset: -4px; }
.h-wa__chat { background: var(--gray); padding: 14px 12px 6px; }
.h-wa__msg { position: relative; background: #fff; border: 2px solid var(--ink); padding: 10px 12px; font-size: 15px; line-height: 1.45; margin-right: 24px; }
.h-wa__label { margin: 14px 0 8px; font: 700 12px/1.4 var(--mono); color: var(--mute); text-transform: uppercase; letter-spacing: .04em; }
.h-wa__topics { list-style: none; margin: 0; padding: 0; }
.h-wa__topics li { margin: 0 0 8px; }
.h-wa__topics a { display: block; min-height: 44px; padding: 11px 12px; background: var(--hi); color: var(--ink); border: 2px solid var(--ink); font-weight: 700; font-size: 15px; line-height: 1.3; text-decoration: none; }
.h-wa__topics a:after { content: " →"; }
.h-wa__topics a:hover, .h-wa__topics a:focus { background: var(--ink); color: var(--hi); }
.h-wa__topics a:focus-visible { outline: 3px solid #25D366; outline-offset: 2px; }
.h-wa__form { display: -webkit-box; display: -ms-flexbox; display: flex; border-top: 2px solid var(--ink); }
.h-wa__form input { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; min-height: 48px; border: 0; padding: 0 12px; font: inherit; font-size: 16px; background: #fff; color: var(--ink); }
.h-wa__form input:focus { outline: 3px solid var(--ink); outline-offset: -3px; }
.h-wa__form button { -ms-flex-negative: 0; flex-shrink: 0; width: 52px; border: 0; border-left: 2px solid var(--ink); background: #25D366; color: var(--ink); cursor: pointer; }
.h-wa__form button:focus-visible { outline: 3px solid var(--ink); outline-offset: -5px; }
.h-wa__note { padding: 8px 12px 10px; font: 700 11px/1.4 var(--mono); color: var(--mute); border-top: 1px solid var(--gray-2); }
@media (min-width: 768px) {
  .h-wa__bubble { right: 20px; bottom: 20px; }
  .h-wa__teaser { right: 20px; bottom: 92px; }
  .h-wa__panel { left: auto; right: 20px; bottom: 92px; width: 370px; }
  .h-wa--raised .h-wa__bubble { bottom: 96px; }
  .h-wa--raised .h-wa__panel, .h-wa--raised .h-wa__teaser { bottom: 168px; }
  .h-wa ~ .h-proof { right: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .h-proof { -webkit-transition: none; transition: none; -webkit-transform: none; transform: none; }
}

/* ---------------------------------------------------------------- ≥ 600 px */
@media (min-width: 600px) {
  h1 { font-size: 56px; }
  .h-fields--2 { grid-template-columns: 1fr 1fr; }
  .h-fields--3 { grid-template-columns: 2fr 1fr; }
  .h-foot__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .h-foot__big { font-size: 72px; }
  .h-modal__panel { left: 50%; right: auto; width: 460px; margin-left: -230px; bottom: auto; top: 12%; }
  .h-modal__actions { grid-template-columns: 1fr 1fr; }
  .h-consent { left: auto; right: 16px; bottom: 16px; width: 440px; }
  .h-toast { left: 50%; right: auto; width: 380px; margin-left: -190px; }
}

/* ---------------------------------------------------------------- ≥ 900 px */
@media (min-width: 900px) {
  .h-wrap { padding-left: 40px; padding-right: 40px; }
  .h-sec { padding-top: 48px; padding-bottom: 48px; }
  h1 { font-size: 84px; letter-spacing: -.045em; }
  h2 { font-size: 36px; }
  .h-head { padding-top: 48px; padding-bottom: 32px; }
  .h-bar__in { min-height: 64px; }
  .h-word { font-size: 22px; }
  .h-bar__note { display: block; }
  .h-tabs a { padding: 14px 20px; }
  .h-foot__cols { grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr)); }
  .h-foot__cols > div:first-child { grid-column: auto; }
  .h-foot__big { font-size: 120px; padding-top: 40px; }
  .h-panel { padding: 22px; }
}
@media (min-width: 1200px) {
  h1 { font-size: 104px; }
}

@media (prefers-reduced-motion: reduce) {
  * { -webkit-transition: none !important; transition: none !important; -webkit-animation: none !important; animation: none !important; }
}
@media print {
  .h-bar, .h-tabs, .h-search, .h-foot, .h-consent, .h-no-print { display: none !important; }
}

/* Onglet « pro » actif : texte noir sur jaune (lisible). */
.h-tabs a.h-tab--pro.is-active, .h-tabs a.h-tab--pro[aria-current] { background: var(--hi); color: var(--ink); }
/* Très petits écrans : le logo et le lien du panier ne se touchent plus. */
@media (max-width: 359px) {
  .h-word { font-size: 16px; }
  .h-brand svg { width: 26px; height: 26px; margin-right: 8px; }
  .h-cartlink { padding: 5px 7px; font-size: 13px; }
  .h-bar__tools > * + * { margin-left: 8px; }
}
