/* ==========================================================================
   Composants communs WordPress + Shopify
   Le balisage est écrit deux fois (PHP, Liquid) avec ces mêmes classes.
   ========================================================================== */

/* --- Marques (SVG en <img>, encre ou blanc selon le fond) ------------------ */

.mark { display: block; width: 100%; height: auto; }

/* Séparateur hirondelle centré */
.separator {
  width: min(408px, 70%);
  margin-inline: auto;
}

/* --- Bouton cartouche -----------------------------------------------------
   Deux embouts SVG fixes + double filet extensible : la cartouche suit la
   longueur du libellé sans déformer ses coins.                              */

.btn-cartouche {
  --cap: 15px;
  --line: var(--ink);
  --fill: transparent;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 1px calc(var(--cap) + 16px) 0;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-label);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--ink);
  background:
    linear-gradient(var(--line), var(--line)) var(--cap) 0       / calc(100% - 2 * var(--cap)) 1px    no-repeat,
    linear-gradient(var(--line), var(--line)) var(--cap) 3.1px   / calc(100% - 2 * var(--cap)) 0.75px no-repeat,
    linear-gradient(var(--line), var(--line)) var(--cap) 40.15px / calc(100% - 2 * var(--cap)) 0.75px no-repeat,
    linear-gradient(var(--line), var(--line)) var(--cap) 43px    / calc(100% - 2 * var(--cap)) 1px    no-repeat,
    linear-gradient(var(--fill), var(--fill)) var(--cap) 0       / calc(100% - 2 * var(--cap)) 100%   no-repeat;
  transition: color .25s ease;
}
/* Embouts : contour (::before/::after) + version pleine révélée au survol (fond des embouts) */
.btn-cartouche::before,
.btn-cartouche::after {
  content: "";
  position: absolute;
  top: 0;
  width: var(--cap);
  height: 44px;
  background-color: var(--line);
  -webkit-mask: var(--cap-svg) 0 0 / 100% 100% no-repeat;
          mask: var(--cap-svg) 0 0 / 100% 100% no-repeat;
}
.btn-cartouche::before { left: 0;  --cap-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.0 44.0' width='15.0' height='44.0'%3E%3Cg fill='none' stroke='%23000' stroke-linejoin='round'%3E%3Cpath stroke-width='1.0' d='M107.57 7.86 L107.57 3.67 L107.52 3.65 L106.28 3.64 L105.74 3.57 L105.38 3.48 L105.03 3.35 L104.71 3.19 L104.40 3.00 L104.12 2.78 L103.83 2.48 L103.61 2.20 L103.43 1.90 L103.28 1.59 L103.17 1.26 L103.11 0.98 L103.07 0.55 L103.05 0.50 L11.48 0.51 L11.46 0.87 L11.39 1.22 L11.29 1.55 L11.11 1.93 L10.92 2.22 L10.71 2.50 L10.40 2.79 L10.12 3.01 L9.82 3.20 L9.49 3.36 L9.14 3.49 L8.78 3.58 L8.24 3.64 L7.00 3.65 L6.97 3.70 L6.97 7.82 L6.95 7.88 L6.16 8.63 L5.47 9.36 L4.77 10.18 L4.15 10.97 L3.54 11.86 L3.02 12.71 L2.50 13.65 L2.08 14.56 L1.80 15.22 L1.57 15.82 L1.36 16.43 L1.18 17.05 L1.01 17.68 L0.87 18.32 L0.75 18.96 L0.66 19.61 L0.58 20.27 L0.53 20.93 L0.50 21.60 L0.50 22.28 L0.52 22.95 L0.57 23.61 L0.64 24.27 L0.73 24.92 L0.88 25.71 L1.06 26.49 L1.27 27.25 L1.53 28.07 L1.81 28.81 L2.12 29.53 L2.45 30.25 L2.85 31.00 L3.25 31.68 L3.71 32.40 L4.17 33.05 L4.69 33.73 L5.20 34.34 L5.78 34.98 L6.34 35.55 L6.97 36.14 L6.97 40.33 L7.03 40.35 L8.27 40.36 L8.81 40.43 L9.17 40.52 L9.52 40.65 L9.84 40.81 L10.15 41.00 L10.43 41.22 L10.72 41.52 L10.94 41.80 L11.12 42.09 L11.27 42.41 L11.38 42.74 L11.44 43.02 L11.48 43.45 L11.50 43.50 L103.07 43.49 L103.09 43.13 L103.16 42.78 L103.26 42.45 L103.44 42.07 L103.63 41.78 L103.84 41.50 L104.14 41.21 L104.43 40.99 L104.73 40.80 L105.06 40.64 L105.41 40.51 L105.77 40.42 L106.31 40.36 L107.55 40.35 L107.57 40.31 L107.57 36.19 L107.60 36.12 L108.23 35.53 L108.84 34.91 L109.41 34.26 L109.96 33.60 L110.48 32.91 L110.97 32.20 L111.42 31.48 L111.85 30.73 L112.23 29.96 L112.59 29.18 L112.90 28.38 L113.16 27.64 L113.41 26.81 L113.62 25.97 L113.78 25.11 L113.90 24.31 L114.01 23.14 L114.05 22.02 L114.02 20.90 L113.92 19.80 L113.75 18.72 L113.51 17.58 L113.20 16.47 L112.82 15.39 L112.37 14.33 L111.87 13.31 L111.30 12.32 L110.67 11.36 L109.99 10.44 L109.25 9.55 L108.47 8.71 L107.57 7.86Z'/%3E%3Cpath stroke-width='0.75' d='M9.97 37.63 L10.56 37.84 L11.18 38.12 L11.75 38.47 L12.01 38.65 L12.29 38.87 L12.55 39.11 L12.85 39.40 L13.08 39.67 L13.30 39.95 L13.66 40.50 L100.89 40.49 L101.09 40.18 L101.28 39.91 L101.50 39.63 L101.74 39.37 L102.04 39.07 L102.30 38.84 L102.58 38.62 L102.84 38.44 L103.42 38.10 L104.03 37.82 L104.57 37.63 L104.57 36.19 L104.59 35.86 L104.64 35.55 L104.73 35.24 L104.86 34.90 L104.99 34.63 L105.15 34.38 L105.34 34.15 L105.54 33.94 L106.13 33.38 L106.65 32.85 L107.14 32.31 L107.61 31.74 L108.05 31.16 L108.46 30.56 L108.84 29.94 L109.20 29.31 L109.53 28.67 L109.82 28.01 L110.09 27.34 L110.31 26.72 L110.51 26.02 L110.69 25.32 L110.83 24.60 L110.92 23.95 L111.02 22.95 L111.05 22.02 L111.02 21.08 L110.94 20.16 L110.80 19.26 L110.60 18.31 L110.34 17.38 L110.02 16.47 L109.64 15.58 L109.22 14.72 L108.74 13.88 L108.21 13.07 L107.63 12.29 L107.00 11.54 L106.33 10.82 L105.50 10.03 L105.30 9.81 L105.11 9.57 L104.95 9.31 L104.82 9.04 L104.71 8.75 L104.64 8.46 L104.59 8.16 L104.57 7.86 L104.57 6.37 L103.98 6.16 L103.37 5.88 L102.80 5.53 L102.54 5.35 L102.26 5.13 L102.00 4.89 L101.70 4.60 L101.46 4.33 L101.25 4.05 L100.89 3.50 L13.66 3.51 L13.46 3.82 L13.27 4.10 L13.05 4.37 L12.81 4.63 L12.51 4.93 L12.25 5.16 L11.96 5.38 L11.71 5.56 L11.13 5.90 L10.51 6.18 L9.97 6.37 L9.97 7.82 L9.96 8.15 L9.90 8.47 L9.81 8.79 L9.68 9.12 L9.55 9.38 L9.40 9.62 L9.22 9.85 L9.02 10.05 L8.29 10.75 L7.69 11.37 L7.09 12.07 L6.57 12.74 L6.05 13.50 L5.61 14.21 L5.18 15.01 L4.82 15.78 L4.59 16.33 L4.22 17.34 L4.07 17.86 L3.81 18.92 L3.71 19.46 L3.57 20.55 L3.53 21.11 L3.50 21.67 L3.50 22.23 L3.52 22.79 L3.56 23.35 L3.69 24.44 L3.82 25.10 L3.97 25.75 L4.14 26.39 L4.37 27.08 L4.60 27.70 L4.85 28.31 L5.14 28.90 L5.48 29.55 L5.81 30.11 L6.20 30.73 L6.59 31.27 L7.03 31.86 L7.46 32.37 L7.96 32.92 L8.43 33.40 L9.03 33.95 L9.24 34.17 L9.43 34.41 L9.59 34.67 L9.73 34.95 L9.83 35.23 L9.91 35.53 L9.96 35.83 L9.97 36.14 L9.97 37.63Z'/%3E%3C/g%3E%3C/svg%3E"); }
.btn-cartouche::after  { right: 0; --cap-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.0 44.0' width='15.0' height='44.0'%3E%3Cg fill='none' stroke='%23000' stroke-linejoin='round' transform='translate%2815.0 0%29 scale%28-1 1%29'%3E%3Cpath stroke-width='1.0' d='M107.57 7.86 L107.57 3.67 L107.52 3.65 L106.28 3.64 L105.74 3.57 L105.38 3.48 L105.03 3.35 L104.71 3.19 L104.40 3.00 L104.12 2.78 L103.83 2.48 L103.61 2.20 L103.43 1.90 L103.28 1.59 L103.17 1.26 L103.11 0.98 L103.07 0.55 L103.05 0.50 L11.48 0.51 L11.46 0.87 L11.39 1.22 L11.29 1.55 L11.11 1.93 L10.92 2.22 L10.71 2.50 L10.40 2.79 L10.12 3.01 L9.82 3.20 L9.49 3.36 L9.14 3.49 L8.78 3.58 L8.24 3.64 L7.00 3.65 L6.97 3.70 L6.97 7.82 L6.95 7.88 L6.16 8.63 L5.47 9.36 L4.77 10.18 L4.15 10.97 L3.54 11.86 L3.02 12.71 L2.50 13.65 L2.08 14.56 L1.80 15.22 L1.57 15.82 L1.36 16.43 L1.18 17.05 L1.01 17.68 L0.87 18.32 L0.75 18.96 L0.66 19.61 L0.58 20.27 L0.53 20.93 L0.50 21.60 L0.50 22.28 L0.52 22.95 L0.57 23.61 L0.64 24.27 L0.73 24.92 L0.88 25.71 L1.06 26.49 L1.27 27.25 L1.53 28.07 L1.81 28.81 L2.12 29.53 L2.45 30.25 L2.85 31.00 L3.25 31.68 L3.71 32.40 L4.17 33.05 L4.69 33.73 L5.20 34.34 L5.78 34.98 L6.34 35.55 L6.97 36.14 L6.97 40.33 L7.03 40.35 L8.27 40.36 L8.81 40.43 L9.17 40.52 L9.52 40.65 L9.84 40.81 L10.15 41.00 L10.43 41.22 L10.72 41.52 L10.94 41.80 L11.12 42.09 L11.27 42.41 L11.38 42.74 L11.44 43.02 L11.48 43.45 L11.50 43.50 L103.07 43.49 L103.09 43.13 L103.16 42.78 L103.26 42.45 L103.44 42.07 L103.63 41.78 L103.84 41.50 L104.14 41.21 L104.43 40.99 L104.73 40.80 L105.06 40.64 L105.41 40.51 L105.77 40.42 L106.31 40.36 L107.55 40.35 L107.57 40.31 L107.57 36.19 L107.60 36.12 L108.23 35.53 L108.84 34.91 L109.41 34.26 L109.96 33.60 L110.48 32.91 L110.97 32.20 L111.42 31.48 L111.85 30.73 L112.23 29.96 L112.59 29.18 L112.90 28.38 L113.16 27.64 L113.41 26.81 L113.62 25.97 L113.78 25.11 L113.90 24.31 L114.01 23.14 L114.05 22.02 L114.02 20.90 L113.92 19.80 L113.75 18.72 L113.51 17.58 L113.20 16.47 L112.82 15.39 L112.37 14.33 L111.87 13.31 L111.30 12.32 L110.67 11.36 L109.99 10.44 L109.25 9.55 L108.47 8.71 L107.57 7.86Z'/%3E%3Cpath stroke-width='0.75' d='M9.97 37.63 L10.56 37.84 L11.18 38.12 L11.75 38.47 L12.01 38.65 L12.29 38.87 L12.55 39.11 L12.85 39.40 L13.08 39.67 L13.30 39.95 L13.66 40.50 L100.89 40.49 L101.09 40.18 L101.28 39.91 L101.50 39.63 L101.74 39.37 L102.04 39.07 L102.30 38.84 L102.58 38.62 L102.84 38.44 L103.42 38.10 L104.03 37.82 L104.57 37.63 L104.57 36.19 L104.59 35.86 L104.64 35.55 L104.73 35.24 L104.86 34.90 L104.99 34.63 L105.15 34.38 L105.34 34.15 L105.54 33.94 L106.13 33.38 L106.65 32.85 L107.14 32.31 L107.61 31.74 L108.05 31.16 L108.46 30.56 L108.84 29.94 L109.20 29.31 L109.53 28.67 L109.82 28.01 L110.09 27.34 L110.31 26.72 L110.51 26.02 L110.69 25.32 L110.83 24.60 L110.92 23.95 L111.02 22.95 L111.05 22.02 L111.02 21.08 L110.94 20.16 L110.80 19.26 L110.60 18.31 L110.34 17.38 L110.02 16.47 L109.64 15.58 L109.22 14.72 L108.74 13.88 L108.21 13.07 L107.63 12.29 L107.00 11.54 L106.33 10.82 L105.50 10.03 L105.30 9.81 L105.11 9.57 L104.95 9.31 L104.82 9.04 L104.71 8.75 L104.64 8.46 L104.59 8.16 L104.57 7.86 L104.57 6.37 L103.98 6.16 L103.37 5.88 L102.80 5.53 L102.54 5.35 L102.26 5.13 L102.00 4.89 L101.70 4.60 L101.46 4.33 L101.25 4.05 L100.89 3.50 L13.66 3.51 L13.46 3.82 L13.27 4.10 L13.05 4.37 L12.81 4.63 L12.51 4.93 L12.25 5.16 L11.96 5.38 L11.71 5.56 L11.13 5.90 L10.51 6.18 L9.97 6.37 L9.97 7.82 L9.96 8.15 L9.90 8.47 L9.81 8.79 L9.68 9.12 L9.55 9.38 L9.40 9.62 L9.22 9.85 L9.02 10.05 L8.29 10.75 L7.69 11.37 L7.09 12.07 L6.57 12.74 L6.05 13.50 L5.61 14.21 L5.18 15.01 L4.82 15.78 L4.59 16.33 L4.22 17.34 L4.07 17.86 L3.81 18.92 L3.71 19.46 L3.57 20.55 L3.53 21.11 L3.50 21.67 L3.50 22.23 L3.52 22.79 L3.56 23.35 L3.69 24.44 L3.82 25.10 L3.97 25.75 L4.14 26.39 L4.37 27.08 L4.60 27.70 L4.85 28.31 L5.14 28.90 L5.48 29.55 L5.81 30.11 L6.20 30.73 L6.59 31.27 L7.03 31.86 L7.46 32.37 L7.96 32.92 L8.43 33.40 L9.03 33.95 L9.24 34.17 L9.43 34.41 L9.59 34.67 L9.73 34.95 L9.83 35.23 L9.91 35.53 L9.96 35.83 L9.97 36.14 L9.97 37.63Z'/%3E%3C/g%3E%3C/svg%3E"); }
/* Survol : cartouche remplie d'encre, texte blanc (comme « S'inscrire ») */
.btn-cartouche:hover,
.btn-cartouche:focus-visible { --fill: var(--ink); color: #fff; }
.btn-cartouche:hover::before,
.btn-cartouche:focus-visible::before,
.btn-cartouche--solid::before { --cap-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.0 44.0' width='15.0' height='44.0'%3E%3Cg fill='%23000' stroke='%23000' stroke-width='1' stroke-linejoin='round'%3E%3Cpath d='M107.57 7.86 L107.57 3.67 L107.52 3.65 L106.28 3.64 L105.74 3.57 L105.38 3.48 L105.03 3.35 L104.71 3.19 L104.40 3.00 L104.12 2.78 L103.83 2.48 L103.61 2.20 L103.43 1.90 L103.28 1.59 L103.17 1.26 L103.11 0.98 L103.07 0.55 L103.05 0.50 L11.48 0.51 L11.46 0.87 L11.39 1.22 L11.29 1.55 L11.11 1.93 L10.92 2.22 L10.71 2.50 L10.40 2.79 L10.12 3.01 L9.82 3.20 L9.49 3.36 L9.14 3.49 L8.78 3.58 L8.24 3.64 L7.00 3.65 L6.97 3.70 L6.97 7.82 L6.95 7.88 L6.16 8.63 L5.47 9.36 L4.77 10.18 L4.15 10.97 L3.54 11.86 L3.02 12.71 L2.50 13.65 L2.08 14.56 L1.80 15.22 L1.57 15.82 L1.36 16.43 L1.18 17.05 L1.01 17.68 L0.87 18.32 L0.75 18.96 L0.66 19.61 L0.58 20.27 L0.53 20.93 L0.50 21.60 L0.50 22.28 L0.52 22.95 L0.57 23.61 L0.64 24.27 L0.73 24.92 L0.88 25.71 L1.06 26.49 L1.27 27.25 L1.53 28.07 L1.81 28.81 L2.12 29.53 L2.45 30.25 L2.85 31.00 L3.25 31.68 L3.71 32.40 L4.17 33.05 L4.69 33.73 L5.20 34.34 L5.78 34.98 L6.34 35.55 L6.97 36.14 L6.97 40.33 L7.03 40.35 L8.27 40.36 L8.81 40.43 L9.17 40.52 L9.52 40.65 L9.84 40.81 L10.15 41.00 L10.43 41.22 L10.72 41.52 L10.94 41.80 L11.12 42.09 L11.27 42.41 L11.38 42.74 L11.44 43.02 L11.48 43.45 L11.50 43.50 L103.07 43.49 L103.09 43.13 L103.16 42.78 L103.26 42.45 L103.44 42.07 L103.63 41.78 L103.84 41.50 L104.14 41.21 L104.43 40.99 L104.73 40.80 L105.06 40.64 L105.41 40.51 L105.77 40.42 L106.31 40.36 L107.55 40.35 L107.57 40.31 L107.57 36.19 L107.60 36.12 L108.23 35.53 L108.84 34.91 L109.41 34.26 L109.96 33.60 L110.48 32.91 L110.97 32.20 L111.42 31.48 L111.85 30.73 L112.23 29.96 L112.59 29.18 L112.90 28.38 L113.16 27.64 L113.41 26.81 L113.62 25.97 L113.78 25.11 L113.90 24.31 L114.01 23.14 L114.05 22.02 L114.02 20.90 L113.92 19.80 L113.75 18.72 L113.51 17.58 L113.20 16.47 L112.82 15.39 L112.37 14.33 L111.87 13.31 L111.30 12.32 L110.67 11.36 L109.99 10.44 L109.25 9.55 L108.47 8.71 L107.57 7.86Z'/%3E%3C/g%3E%3C/svg%3E"); }
.btn-cartouche:hover::after,
.btn-cartouche:focus-visible::after,
.btn-cartouche--solid::after { --cap-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.0 44.0' width='15.0' height='44.0'%3E%3Cg fill='%23000' stroke='%23000' stroke-width='1' stroke-linejoin='round' transform='translate%2815.0 0%29 scale%28-1 1%29'%3E%3Cpath d='M107.57 7.86 L107.57 3.67 L107.52 3.65 L106.28 3.64 L105.74 3.57 L105.38 3.48 L105.03 3.35 L104.71 3.19 L104.40 3.00 L104.12 2.78 L103.83 2.48 L103.61 2.20 L103.43 1.90 L103.28 1.59 L103.17 1.26 L103.11 0.98 L103.07 0.55 L103.05 0.50 L11.48 0.51 L11.46 0.87 L11.39 1.22 L11.29 1.55 L11.11 1.93 L10.92 2.22 L10.71 2.50 L10.40 2.79 L10.12 3.01 L9.82 3.20 L9.49 3.36 L9.14 3.49 L8.78 3.58 L8.24 3.64 L7.00 3.65 L6.97 3.70 L6.97 7.82 L6.95 7.88 L6.16 8.63 L5.47 9.36 L4.77 10.18 L4.15 10.97 L3.54 11.86 L3.02 12.71 L2.50 13.65 L2.08 14.56 L1.80 15.22 L1.57 15.82 L1.36 16.43 L1.18 17.05 L1.01 17.68 L0.87 18.32 L0.75 18.96 L0.66 19.61 L0.58 20.27 L0.53 20.93 L0.50 21.60 L0.50 22.28 L0.52 22.95 L0.57 23.61 L0.64 24.27 L0.73 24.92 L0.88 25.71 L1.06 26.49 L1.27 27.25 L1.53 28.07 L1.81 28.81 L2.12 29.53 L2.45 30.25 L2.85 31.00 L3.25 31.68 L3.71 32.40 L4.17 33.05 L4.69 33.73 L5.20 34.34 L5.78 34.98 L6.34 35.55 L6.97 36.14 L6.97 40.33 L7.03 40.35 L8.27 40.36 L8.81 40.43 L9.17 40.52 L9.52 40.65 L9.84 40.81 L10.15 41.00 L10.43 41.22 L10.72 41.52 L10.94 41.80 L11.12 42.09 L11.27 42.41 L11.38 42.74 L11.44 43.02 L11.48 43.45 L11.50 43.50 L103.07 43.49 L103.09 43.13 L103.16 42.78 L103.26 42.45 L103.44 42.07 L103.63 41.78 L103.84 41.50 L104.14 41.21 L104.43 40.99 L104.73 40.80 L105.06 40.64 L105.41 40.51 L105.77 40.42 L106.31 40.36 L107.55 40.35 L107.57 40.31 L107.57 36.19 L107.60 36.12 L108.23 35.53 L108.84 34.91 L109.41 34.26 L109.96 33.60 L110.48 32.91 L110.97 32.20 L111.42 31.48 L111.85 30.73 L112.23 29.96 L112.59 29.18 L112.90 28.38 L113.16 27.64 L113.41 26.81 L113.62 25.97 L113.78 25.11 L113.90 24.31 L114.01 23.14 L114.05 22.02 L114.02 20.90 L113.92 19.80 L113.75 18.72 L113.51 17.58 L113.20 16.47 L112.82 15.39 L112.37 14.33 L111.87 13.31 L111.30 12.32 L110.67 11.36 L109.99 10.44 L109.25 9.55 L108.47 8.71 L107.57 7.86Z'/%3E%3C/g%3E%3C/svg%3E"); }

/* Bouton plein (S'inscrire) */
.btn-solid {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 28px;
  border: var(--rule);
  background: var(--ink);
  color: #fff;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-label-sm);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
}
.btn-solid:hover { background: #4a3a34; }

/* --- Navigation ---------------------------------------------------------- */

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  color: var(--ink);            /* teinte par défaut : encre */
  background: transparent;      /* jamais de fond */
  transition: color .35s ease;
}
/* Teinte calculée par site.js selon la luminosité moyenne de ce qui passe sous la nav */
.site-header.is-light-text { color: var(--on-video); }

.nav {
  --nav-gap: clamp(28px, calc(18vw - 150px), 112px);  /* écart identique entre tous les éléments */
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  column-gap: var(--nav-gap);
  align-items: center;
  min-height: 84px;
}
.nav__links {
  display: flex;
  align-items: center;
  gap: var(--nav-gap);
}
.nav__links:first-child { justify-content: flex-end; }
.nav__links:nth-child(3) { justify-content: flex-start; }
.nav__links a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-nav);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
  text-underline-offset: 6px;
  white-space: nowrap;
}
.nav__links a:hover,
.nav__links a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 1px; }

.nav__brand {
  display: block;
  padding: 10px 0;
}
.nav__brand { position: relative; }
.nav__brand .mark { width: 324px; }
.nav__brand .mark--blanc { position: absolute; left: 0; top: 10px; opacity: 0; transition: opacity .35s ease; }
.nav__brand .mark--encre { transition: opacity .35s ease; }
.is-light-text .nav__brand .mark--blanc { opacity: 1; }
.is-light-text .nav__brand .mark--encre { opacity: 0; }

.nav .nav__toggle { display: none; }

/* Panneau mobile */
.nav-panel {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  padding: 24px var(--gutter) 40px;
  color: var(--ink);
  background: var(--paper) var(--texture) repeat;
  background-size: var(--texture-size);
}
.nav-panel[hidden] { display: none; }
.nav-panel__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.nav-panel__top .mark { width: 200px; }
.nav-panel__links {
  margin-top: 12vh;
  display: grid;
  gap: 10px;
}
.nav-panel__links a {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 46px;
  line-height: 1.2;
}
.nav-panel .separator { margin-top: auto; }

.text-button {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  padding: 0 4px;
  border: 0;
  background: none;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-label);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
}

@media (max-width: 1080px) {
  .nav {
    grid-template-columns: 1fr auto;
    min-height: 64px;
  }
  .nav__links { display: none; }
  .nav__brand .mark { width: 210px; }
  .nav .nav__toggle { display: inline-flex; justify-self: end; }
}

/* --- Cadre (packshot, scène) -------------------------------------------- */

.frame {
  position: relative;
  background: var(--frame);
  border: var(--rule);
}
.frame--portrait { aspect-ratio: 4 / 5; }
.frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* --- Pied de page ---------------------------------------------------------- */

.site-footer {
  border-top: var(--rule);
  padding-top: 100px;
  padding-bottom: 36px;
}
.footer__grid {
  display: grid;
  grid-template-columns: 103px 65px minmax(0, 462px) 1fr auto;
  align-items: start;
}
.footer__logo { grid-column: 1; display: block; }
.footer__logo .mark { width: 103px; }
.footer__news { grid-column: 3; min-width: 0; }

.footer__news h2 {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-newsletter);
  line-height: 1.1;
}
.footer__news p {
  margin-top: 6px;
  font-size: var(--fs-lead);
}
.newsletter-form {
  display: flex;
  margin-top: 26px;
  max-width: 462px;
}
.newsletter-form input {
  flex: 1 1 auto;
  min-width: 0;
  height: 46px;
  padding: 0 14px;
  border: var(--rule);
  border-right: 0;
  border-radius: 0;
  background: transparent;
  font-size: var(--fs-lead);
}
.newsletter-form input::placeholder { color: var(--ink); opacity: .7; font-style: italic; }
.newsletter-form .btn-solid { flex: 0 0 140px; }

.footer__col h2 { margin-bottom: 10px; }
.footer__col li a {
  display: inline-block;
  font-size: var(--fs-link);
  line-height: 31px;
}
.footer__col li a:hover { text-decoration: underline; text-underline-offset: 3px; }

.footer__bottom {
  display: flex;
  justify-content: flex-end;
  margin-top: 70px;
  padding-top: 20px;
  border-top: var(--rule);
}

@media (max-width: 1100px) {
  .footer__grid {
    grid-template-columns: 103px 40px minmax(0, 1fr);
    row-gap: 48px;
  }
}
@media (max-width: 640px) {
  .site-footer { padding-top: 64px; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__news, .footer__logo { grid-column: 1; }
  .footer__logo .mark { width: 80px; }
  .newsletter-form .btn-solid { flex-basis: 116px; padding: 0 16px; }
  .footer__bottom { justify-content: flex-start; margin-top: 48px; }
}

/* Colonnes de liens regroupées (simplifie le passage en mobile) */
.footer__cols {
  grid-column: 5;
  display: grid;
  grid-template-columns: repeat(3, 180px);
}
@media (max-width: 1100px) {
  .footer__cols { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 640px) {
  .footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
}

.btn-cartouche--solid { --fill: var(--ink); color: #fff; border: 0; cursor: pointer; }
.btn-cartouche--solid:hover,
.btn-cartouche--solid:focus-visible { --fill: #4a3a34; --line: #4a3a34; }
.btn-cartouche--block { display: flex; width: 100%; }

/* ==========================================================================
   Blocs partagés entre les pages
   ========================================================================== */

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 14px;
  border-bottom: var(--rule);
}
.index__title {
  font-family: var(--font-display);
  font-size: var(--fs-index);
  line-height: 1;
}
.labo__scene {
  aspect-ratio: 1225 / 521;
}
.labo__legend {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 41px;
  margin-top: 30px;
}
.labo__legend a {
  display: block;
  padding-top: 18px;
  border-top: var(--rule);
}
.labo__legend .t-label { display: block; margin-bottom: 2px; }
.labo__legend span:last-child { font-size: var(--fs-link); }
.labo__legend a:hover span:last-child { text-decoration: underline; text-underline-offset: 3px; }



.section-rule { padding-top: 18px; border-top: var(--rule); }

/* Image à venir */
.placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: var(--frame);
  color: var(--ink-muted);
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-label-sm);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
  text-align: center;
}

.price { font-size: var(--fs-price); line-height: 1.2; }

/* Pastilles de statut produit */
.badge,
.status {
  font-family: var(--font-label);
  font-weight: 700;
  font-size: 9px;
  letter-spacing: var(--tracking);
  text-transform: uppercase;
  background: var(--ink);
  color: #fff;
  white-space: nowrap;
}
.badge { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 7px 10px; }
.status { display: inline-block; margin-left: 10px; padding: 4px 8px; vertical-align: 2px; line-height: 1.3; }
.status--out { background: transparent; color: var(--ink); border: var(--rule); }
.is-soldout .frame img { opacity: .4; }

/* Bouton rond (flèches) */
.round-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--tap);
  height: var(--tap);
  border: var(--rule);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 18px;
  line-height: 1;
  transition: background-color .2s ease, color .2s ease;
}
.round-btn:hover:not(:disabled) { background: var(--ink); color: #fff; }
.round-btn:disabled { opacity: .3; cursor: default; }

/* En-tête des pages intérieures */
.page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 64px;
  padding-top: 190px;
}
.page-head .t-display { font-size: calc(var(--fs-display) * 1.3); }
.page-head__intro { max-width: 440px; font-style: italic; font-size: 19px; line-height: 1.5; }

/* Filtres (rubriques, catégories) */
.filters { margin-top: 56px; }
.filters ul {
  display: flex;
  gap: 40px;
  border-top: var(--rule);
  border-bottom: 1px solid rgba(51, 36, 31, .3);
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
}
.filters ul::-webkit-scrollbar { display: none; }
.filters a,
.filters span {
  display: inline-flex;
  align-items: center;
  min-height: 56px;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-label);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
  text-underline-offset: 8px;
}
.filters a:hover,
.filters [aria-current] { text-decoration: underline; text-decoration-thickness: 1px; }
.filters--inactive { opacity: .4; pointer-events: none; }

/* Article en grand (texte + image carrée) */
.feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 51.2%;
  gap: 60px;
  align-items: center;
}
.feature--reverse { grid-template-columns: 51.2% minmax(0, 1fr); }
.feature--reverse .feature__img { order: -1; }
.feature__text { max-width: 470px; }
.feature--reverse .feature__text { justify-self: end; }
.feature__text .t-label { margin-bottom: 10px; }
.feature__text .t-h2 { margin-bottom: 18px; }
.feature__text p:not(.t-label) { margin-bottom: 30px; }
.feature__img { display: block; aspect-ratio: 1; border: var(--rule); overflow: hidden; }
.feature__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.feature__img:hover img { transform: scale(1.02); }
.feature .t-h2 a:hover { font-style: italic; }

/* Vignettes (articles, projets) */
.cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px;
  margin-top: 96px;
}
.card { display: flex; flex-direction: column; gap: 10px; }
.card__img { display: flex; aspect-ratio: 4 / 5; margin-bottom: 6px; border: var(--rule); overflow: hidden; }
.card__img img { width: 100%; height: 100%; object-fit: cover; }
.card__title { font-size: 24px; line-height: 1.2; }
.card:hover .card__title { font-style: italic; }

/* Produits (courriers) */
.products { display: grid; gap: 48px 28px; }
.products--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.products--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.product { display: flex; flex-direction: column; gap: 6px; }
.product .frame { display: block; margin-bottom: 10px; }
.product .frame img { padding: 3% 6% 9%; }
.product__title { font-size: 22px; line-height: 1.2; }
.product__price { font-size: var(--fs-lead); }
.product:hover .product__title { font-style: italic; }

/* Encart « Courrier du mois » (Journal) */
.encart {
  margin-top: 120px;
  padding: 80px 0;
  background: var(--paper-rose) var(--texture-rose) repeat;
  background-size: var(--texture-size);
}
.encart__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 84px;
  align-items: center;
}
.encart__text { max-width: 560px; }
.encart__text .t-label { margin-bottom: 12px; }
.encart__text .t-h2 { margin-bottom: 16px; }
.encart__text p:not(.t-label) { margin-bottom: 28px; }
.encart__frame img { padding: 0 2% 4%; }

/* Pagination */
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 110px;
  padding-top: 8px;
  border-top: var(--rule);
  font-family: var(--font-label);
  font-weight: 700;
  font-size: var(--fs-label);
  letter-spacing: var(--tracking);
  text-transform: uppercase;
}
.pagination ol { display: flex; align-items: center; gap: 4px; }
.pagination a,
.pagination span,
.pagination li { display: inline-flex; align-items: center; justify-content: center; min-width: var(--tap); min-height: var(--tap); text-underline-offset: 6px; }
.pagination a:hover,
.pagination [aria-current] { text-decoration: underline; }
.pagination [aria-disabled="true"] { opacity: .35; }

/* Pause vidéo (hors accueil) */
.video-pause {
  position: absolute;
  z-index: 2;
  left: 24px;
  bottom: 22px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: var(--tap);
  padding: 0;
  border: 0;
  background: none;
  color: #fff;
}
.video-pause[hidden] { display: none; }
.video-pause svg { width: 9px; height: 10px; }

@media (max-width: 1100px) {
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 28px; }
  .products--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .labo__legend { gap: 24px; }
}
@media (max-width: 760px) {
  .page-head { padding-top: 120px; }
  .feature,
  .feature--reverse { grid-template-columns: 1fr; gap: 28px; }
  .feature__img,
  .feature--reverse .feature__img { order: -1; }
  .feature--reverse .feature__text { justify-self: start; }
  .cards { margin-top: 56px; gap: 40px 16px; }
  .card__title { font-size: 19px; }
  .encart { margin-top: 80px; padding: 56px 0; }
  .encart__inner { grid-template-columns: 1fr; gap: 32px; }
  .encart__frame { order: -1; max-width: 260px; }
  .products { gap: 36px 16px; }
  .product__title { font-size: 18px; }
  .pagination { margin-top: 72px; }
  .pagination__prev, .pagination__next { font-size: 0; }
  .pagination__prev::before { content: "←"; font-size: 16px; }
  .pagination__next::before { content: "→"; font-size: 16px; }
  .labo__scene { aspect-ratio: 4 / 3; }
  .labo__legend { grid-template-columns: 1fr; gap: 0; margin-top: 20px; }
  .labo__legend a { padding: 14px 0; }
}
