/* Menu Kohen Avocats : cartes et verre liquide.
   Composant autonome : ce fichier, menu.js, bouton.css et le dossier img/.
   Toutes les règles sont préfixées par .km:where(#kohen-menu) : elles ne visent que la racine
   du menu (div#kohen-menu.km créée par menu.js) et rien d'autre du site ; :where() n'ajoute
   aucune spécificité, la cascade du menu est inchangée.
   v15 (4 octobre 2026) : le seul préfixe .km touchait aussi la page /droit-maritime/, dont les
   blocs portaient class="km" et devenaient des calques blancs fixes plein écran. Ne jamais
   revenir à un sélecteur .km nu. */

@property --km-beacon { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes km-beacon-rim { to { --km-beacon: 360deg; } }
@keyframes km-beacon-flow { to { transform: rotate(360deg); } }
@keyframes km-beacon-wave { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.32); opacity: 0; } }

.km:where(#kohen-menu), .km:where(#kohen-menu) *, .km:where(#kohen-menu) *::before, .km:where(#kohen-menu) *::after { box-sizing: border-box; }

.km:where(#kohen-menu) {
  --km-ink: #1D1D1F;
  --km-ink-2: #48484D;
  --km-ink-3: #6E6E73;
  --km-studio-top: #D9EAFC;
  --km-studio-mid: #E3EFFC;
  --km-studio-bot: #EDF3FC;
  --km-ochre: #E09019;
  --km-focus: #1F4FA8;
  --km-gap: 14px;
  --km-pad: clamp(16px, 2vw, 28px);
  --km-r-feature: 34px;
  --km-r-card: 26px;
  --km-inset: 8px;
  --km-ease: cubic-bezier(.16, 1, .3, 1);
  --km-spring: cubic-bezier(.3, 1.3, .5, 1);
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: var(--km-ink);
  text-align: start;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.km:where(#kohen-menu)[hidden] { display: none !important; }
.km:where(#kohen-menu):focus { outline: none; }
.km:where(#kohen-menu) .km-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

html.km-lock, html.km-lock body { overflow: hidden !important; }

/* Liens, boutons et images : neutralise les styles du thème. */
.km:where(#kohen-menu) a, .km:where(#kohen-menu) a:hover, .km:where(#kohen-menu) a:focus, .km:where(#kohen-menu) a:visited { color: inherit; text-decoration: none; }
.km:where(#kohen-menu) button {
  -webkit-appearance: none; appearance: none;
  margin: 0; padding: 0; border: 0;
  font: inherit; color: inherit; cursor: pointer;
}
.km:where(#kohen-menu) .km-langs button, .km:where(#kohen-menu) .km-langs button:hover, .km:where(#kohen-menu) .km-langs button:focus, .km:where(#kohen-menu) .km-langs button:active {
  background: transparent;
  border: 0;
  box-shadow: none;
  text-decoration: none;
}
.km:where(#kohen-menu) img { display: block; max-width: none; height: auto; border: 0; border-radius: 0; box-shadow: none; }
.km:where(#kohen-menu) p, .km:where(#kohen-menu) ul { margin: 0; padding: 0; }
.km:where(#kohen-menu) li { list-style: none; margin: 0; padding: 0; }
.km:where(#kohen-menu) a:focus-visible, .km:where(#kohen-menu) button:focus-visible { outline: 3px solid var(--km-focus); outline-offset: 3px; }

/* ---------- Le fond : une plaque de verre posée au-dessus de la page ---------- */
.km:where(#kohen-menu) { --km-lx: 18%; --km-ly: 0%; }
.km:where(#kohen-menu) .km-vitre {
  position: absolute;
  inset: 10px;
  z-index: 0;
  border-radius: 40px;
  pointer-events: none;
  background:
    radial-gradient(60vmax 44vmax at var(--km-lx) var(--km-ly), rgba(255, 255, 255, .26), rgba(255, 255, 255, 0) 62%),
    linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .08) 45%, rgba(255, 255, 255, .14));
  -webkit-backdrop-filter: blur(11px) saturate(165%) brightness(1.05);
  backdrop-filter: blur(11px) saturate(165%) brightness(1.05);
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, .95),
    inset 0 -1px 0 rgba(255, 255, 255, .45),
    inset 0 0 0 1px rgba(255, 255, 255, .35),
    inset 0 0 50px rgba(255, 255, 255, .22),
    0 40px 90px -40px rgba(16, 32, 64, .45);
  opacity: 0;
  transform: scale(.985);
  transition: opacity .36s var(--km-ease), transform .7s var(--km-ease);
}
.km:where(#kohen-menu).km-lentille .km-vitre { backdrop-filter: url(#km-lentille) blur(9px) saturate(165%) brightness(1.05); }
.km:where(#kohen-menu).is-open .km-vitre { opacity: 1; transform: none; }
@media (prefers-reduced-transparency: reduce) {
  .km:where(#kohen-menu) .km-vitre { background: rgba(241, 245, 251, .97); }
}

.km:where(#kohen-menu) .km-sheet {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  transition: opacity .34s var(--km-ease);
}
.km:where(#kohen-menu).is-open .km-sheet { opacity: 1; }

/* ---------- Barre du haut, calée sur l'en-tête du site ---------- */
.km:where(#kohen-menu) .km-bar { position: sticky; top: 0; z-index: 5; height: var(--km-bar-h, 96px); pointer-events: none; }
.km:where(#kohen-menu) .km-bar::before {
  content: "";
  position: absolute;
  inset: 0 0 -22px;
  background: rgba(241, 245, 251, .72);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-mask: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
  mask: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
  opacity: 0;
  transition: opacity .25s linear;
}
.km:where(#kohen-menu).is-scrolled .km-bar::before { opacity: 1; }

.km:where(#kohen-menu) .km-logo {
  position: absolute;
  left: var(--km-logo-x, max(var(--km-pad), calc((100% - 1480px) / 2)));
  top: var(--km-logo-y, calc(var(--km-btn-y, 18px) + var(--km-btn-h, 58px) / 2 - var(--km-logo-h, 67px) / 2));
  width: var(--km-logo-w, 113px);
  height: var(--km-logo-h, 67px);
  pointer-events: auto;
  border-radius: 10px;
}
.km:where(#kohen-menu) .km-logo img { position: relative; width: 100%; height: 100%; object-fit: contain; }
.km:where(#kohen-menu) .km-logo::before {
  content: "";
  position: absolute;
  inset: -14px -22px;
  border-radius: 999px;
  background: radial-gradient(closest-side, rgba(247, 250, 254, .96), rgba(247, 250, 254, .85) 62%, rgba(247, 250, 254, 0));
}

/* Bouton de fermeture : même place et même verre que le bouton de menu. */
.km:where(#kohen-menu) .km-close {
  position: absolute;
  left: var(--km-btn-x, calc(100% - 82px));
  top: var(--km-btn-y, 18px);
  width: var(--km-btn-w, 58px);
  height: var(--km-btn-h, 58px);
  display: grid;
  place-items: center;
  isolation: isolate;
  pointer-events: auto;
  border-radius: 19px;
  background: conic-gradient(from var(--km-beacon), #f7f9fc 0deg, #d5e3f4 50deg, #fff 95deg, #dce8f7 150deg, #eef3fa 205deg, #cfdef1 265deg, #fff 320deg, #f7f9fc 360deg);
  box-shadow: 0 0 0 1px rgba(190, 196, 211, .4), 0 10px 18px -8px rgba(24, 35, 57, .3);
  transition: transform .2s, box-shadow .2s;
}
.km:where(#kohen-menu) .km-close::before {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 23px;
  border: 1px solid rgba(136, 141, 148, .18);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), inset 0 -2px 1px rgba(255, 255, 255, .45), 0 1px 2px rgba(61, 66, 67, .17);
  pointer-events: none;
  z-index: -2;
}
.km:where(#kohen-menu) .km-close::after {
  content: "";
  position: absolute;
  inset: 2.5px;
  border-radius: 16.5px;
  z-index: -1;
  background: radial-gradient(ellipse at 35% 0%, rgba(255, 255, 255, .72), transparent 64%), linear-gradient(180deg, #eef1f5, #e2e6ec 65%, #eaedf2);
  box-shadow: inset 0 1px 1px #fff, inset 0 -1px 2px #c7ccd6;
  pointer-events: none;
}
.km:where(#kohen-menu) .km-close:hover, .km:where(#kohen-menu) .km-close:focus, .km:where(#kohen-menu) .km-close:active {
  background: conic-gradient(from var(--km-beacon), #f7f9fc 0deg, #d5e3f4 50deg, #fff 95deg, #dce8f7 150deg, #eef3fa 205deg, #cfdef1 265deg, #fff 320deg, #f7f9fc 360deg);
  color: inherit;
  border: 0;
}
.km:where(#kohen-menu) .km-close:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(190, 196, 211, .45), 0 14px 22px -8px rgba(24, 35, 57, .38); animation: km-beacon-rim 9s linear infinite; }
.km:where(#kohen-menu) .km-close:active { transform: translateY(1.5px); }
.km:where(#kohen-menu) .km-close svg { width: 24px; height: 24px; overflow: visible; }
.km:where(#kohen-menu) .km-close path {
  fill: none;
  stroke: #16191e;
  stroke-width: 1.5;
  stroke-linecap: round;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .5s var(--km-spring);
}
.km:where(#kohen-menu).is-open .km-close .km-x1 { transform: translateY(3.5px) rotate(45deg); }
.km:where(#kohen-menu).is-open .km-close .km-x2 { transform: translateY(-3.5px) rotate(-45deg); }

/* Liseré de verre : blanc et bleu pâle, discret. */
.km:where(#kohen-menu) .km-rim::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: var(--km-rim-w, 1.5px);
  pointer-events: none;
  background: conic-gradient(from var(--km-rim, 210deg),
    rgba(255, 255, 255, .95) 0deg, #cfe0f6 55deg, #fff 100deg, rgba(255, 255, 255, .5) 150deg,
    #dbe8f9 205deg, #fff 250deg, #c6daf4 300deg, rgba(255, 255, 255, .95) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: .9;
  transition: opacity .4s var(--km-ease);
}

/* Sélecteur de langue en contrôle segmenté. */
.km:where(#kohen-menu) .km-langs {
  display: flex;
  gap: 2px;
  padding: 4px;
  border-radius: 999px;
  position: absolute;
  right: var(--km-langs-r, 96px);
  left: var(--km-langs-l, auto);
  top: var(--km-langs-y, 47px);
  transform: translateY(-50%);
  pointer-events: auto;
  background: rgba(247, 250, 254, .94);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 0 0 .5px rgba(29, 29, 31, .1), 0 8px 20px -12px rgba(16, 32, 64, .3);
}
.km:where(#kohen-menu) .km-langs button {
  position: relative;
  z-index: 1;
  min-width: 40px;
  height: 34px;
  padding: 0 10px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--km-ink-3);
  transition: color .2s, background-color .2s;
}
.km:where(#kohen-menu) .km-langs button:hover { color: var(--km-ink); }
.km:where(#kohen-menu) .km-langs button[aria-pressed="true"] { color: var(--km-ink); }
/* Halo derrière le sélecteur : les drapeaux de l'en-tête ne transparaissent plus autour. */
.km:where(#kohen-menu) .km-langs--bar::before {
  content: "";
  position: absolute;
  inset: -16px -26px;
  z-index: -1;
  border-radius: 999px;
  background: radial-gradient(closest-side, rgba(247, 250, 254, .96), rgba(247, 250, 254, .82) 66%, rgba(247, 250, 254, 0));
  pointer-events: none;
}
.km:where(#kohen-menu) .km-langs-thumb {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 0;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 4px 12px -4px rgba(16, 32, 64, .22);
  transition: transform .5s var(--km-spring), width .5s var(--km-spring);
}
.km:where(#kohen-menu) .km-langs-thumb.km-fixe { transition: none; }
.km:where(#kohen-menu) .km-langs--foot { display: none; }

/* ---------- Grille (colonnes et rangées posées par menu.js selon le nombre de cartes) ---------- */
.km:where(#kohen-menu) .km-grid {
  --km-row-s: clamp(136px, 16.5vh, 156px);
  --km-row: clamp(196px, calc((100vh - var(--km-bar-h, 96px) - var(--km-row-s) - 2 * var(--km-gap) - var(--km-pad) - 6px) / 2), 330px);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-rows: var(--km-row);
  gap: var(--km-gap);
  width: min(calc(100% - 2 * var(--km-pad)), 1480px);
  margin: 0 auto;
  padding: 6px 0 max(var(--km-pad), env(safe-area-inset-bottom));
}
@supports (height: 100dvh) {
  .km:where(#kohen-menu) .km-grid {
    --km-row: clamp(196px, calc((100dvh - var(--km-bar-h, 96px) - var(--km-row-s) - 2 * var(--km-gap) - var(--km-pad) - 6px) / 2), 330px);
  }
}

/* ---------- Carte ---------- */
.km:where(#kohen-menu) .km-card {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--km-r-card);
  background: linear-gradient(180deg, var(--km-studio-top) 0%, var(--km-studio-mid) 55%, var(--km-studio-bot) 100%);
  color: var(--km-ink);
  box-shadow: 0 1px 1px rgba(16, 24, 40, .04), 0 22px 44px -30px rgba(16, 32, 64, .55);
  opacity: 0;
  transform: translate3d(0, 26px, 0) scale(.965);
  transition: opacity .5s var(--km-ease), transform .75s var(--km-ease), box-shadow .4s var(--km-ease);
  transition-delay: calc(var(--km-i, 0) * 45ms + 70ms);
  -webkit-tap-highlight-color: transparent;
}
.km:where(#kohen-menu).is-open .km-card { opacity: 1; transform: none; }
.km:where(#kohen-menu) .km-card { --km-rim: calc(196deg + var(--km-i, 0) * 47deg); }
.km:where(#kohen-menu).is-settled .km-card, .km:where(#kohen-menu).is-closing .km-card { transition-delay: 0s; }
.km:where(#kohen-menu).is-closing .km-card { transition-duration: .22s; }
.km:where(#kohen-menu) .km-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6), inset 0 1px 0 rgba(255, 255, 255, .95);
}

.km:where(#kohen-menu) .km-stage { position: absolute; inset: 0; z-index: 0; }
.km:where(#kohen-menu) .km-piece {
  position: absolute;
  opacity: 0;
  transform-origin: 50% 100%;
  transition: transform 1.05s var(--km-spring), opacity .6s var(--km-ease);
  transition-delay: calc(var(--km-i, 0) * 45ms + 230ms);
}
.km:where(#kohen-menu) .km-piece--cut {
  left: 50%;
  bottom: var(--km-b, 22%);
  width: var(--km-w, auto);
  height: var(--km-h, 72%);
  translate: -50% 0;
  transform: translate3d(0, 18%, 0) scale(.94);
  filter: drop-shadow(0 18px 22px rgba(16, 32, 64, .22));
}
.km:where(#kohen-menu) .km-piece--photo {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--km-pos, 50% 50%);
  scale: var(--km-zoom, 1);
  transform: scale(1.12);
}
/* Carte très large (tablette, téléphone) : cadrage propre à ce format quand le visuel en prévoit un. */
.km:where(#kohen-menu) .km-tile, .km:where(#kohen-menu) .km-base { container: km-tuile / size; }
@container km-tuile (min-aspect-ratio: 2/1) {
  .km:where(#kohen-menu) .km-piece--photo { object-position: var(--km-pos-large, var(--km-pos, 50% 50%)); }
}
.km:where(#kohen-menu).is-open .km-piece.is-loaded { opacity: 1; transform: none; }
.km:where(#kohen-menu).is-settled .km-piece, .km:where(#kohen-menu).is-closing .km-piece { transition-delay: 0s; }

/* ---------- Changement de langue : les cartes sortent puis reviennent en cascade ---------- */
.km:where(#kohen-menu) .km-grid.km-sortie .km-card {
  opacity: 0;
  transform: translate3d(0, -10px, 0) scale(.97);
  transition-duration: .22s, .26s, .2s;
  transition-delay: calc(var(--km-i, 0) * 18ms);
}
.km:where(#kohen-menu) .km-card.km-entree { opacity: 0; transform: translate3d(0, 26px, 0) scale(.965); transition: none; }
.km:where(#kohen-menu) .km-card.km-entree .km-piece--cut { opacity: 0; transform: translate3d(0, 18%, 0) scale(.94); transition: none; }
.km:where(#kohen-menu) .km-card.km-entree .km-piece--photo { opacity: 0; transform: scale(1.12); transition: none; }
.km:where(#kohen-menu).is-switching .km-card { transition-delay: calc(var(--km-i, 0) * 45ms + 30ms); }
.km:where(#kohen-menu).is-switching .km-piece { transition-delay: calc(var(--km-i, 0) * 45ms + 190ms); }

/* ---------- La lame de verre posée devant la pièce ---------- */
.km:where(#kohen-menu) .km-slab {
  position: absolute;
  z-index: 2;
  inset-inline: var(--km-inset);
  bottom: var(--km-inset);
  min-height: var(--km-slab-h, 38%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 4px;
  padding: 13px 15px 14px;
  border-radius: calc(var(--km-r-card) - var(--km-inset));
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0), #fff 22%, #fff 78%, rgba(255, 255, 255, 0)) top / 100% 1.5px no-repeat,
    linear-gradient(180deg, rgba(255, 255, 255, .64) 0%, rgba(255, 255, 255, .42) 100%);
  -webkit-backdrop-filter: blur(22px) saturate(190%);
  backdrop-filter: blur(22px) saturate(190%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .9),
    inset 1px 0 0 rgba(255, 255, 255, .5),
    inset -1px 0 0 rgba(255, 255, 255, .5),
    inset 0 -1px 0 rgba(255, 255, 255, .65),
    inset 0 10px 16px -12px rgba(255, 255, 255, .95),
    inset 0 -14px 22px -18px rgba(96, 128, 176, .38),
    0 12px 28px -18px rgba(16, 32, 64, .55);
}
.km:where(#kohen-menu) .km-slab::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(200px circle at var(--km-px, 25%) var(--km-py, -40%), rgba(255, 255, 255, .8), rgba(255, 255, 255, 0) 70%);
  mix-blend-mode: overlay;
  opacity: 0;
  transition: opacity .35s var(--km-ease);
}

.km:where(#kohen-menu) .km-title {
  display: inline;
  font-family: Lato, "Helvetica Neue", Arial, sans-serif;
  font-weight: 900;
  font-size: clamp(17px, 1.28vw, 21px);
  line-height: 1.08;
  letter-spacing: -.012em;
  color: var(--km-ink);
}
.km:where(#kohen-menu):lang(ru) .km-title, .km:where(#kohen-menu):lang(zh) .km-title, .km:where(#kohen-menu):lang(ar) .km-title { font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; font-weight: 800; letter-spacing: -.01em; }
.km:where(#kohen-menu) .km-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 13px;
  line-height: 1.36;
  color: var(--km-ink-2);
}
.km:where(#kohen-menu) .km-note {
  display: inline-block;
  margin-inline-start: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  vertical-align: .2em;
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.5;
  color: var(--km-ink-2);
  background: rgba(255, 255, 255, .7);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .9), 0 0 0 .5px rgba(29, 29, 31, .08);
}

.km:where(#kohen-menu) [aria-current="page"].km-title::after,
.km:where(#kohen-menu) .km-card[aria-current="page"] .km-title::after,
.km:where(#kohen-menu) .km-team-title[aria-current="page"] .km-title::after {
  content: "";
  display: inline-block;
  width: .17em;
  height: .17em;
  margin-inline-start: .16em;
  border-radius: 50%;
  background: var(--km-ochre);
  vertical-align: .62em;
}

@media (hover: hover) and (pointer: fine) {
  .km:where(#kohen-menu).is-settled .km-card:hover {
    transform: translate3d(0, -3px, 0);
    box-shadow: 0 1px 1px rgba(16, 24, 40, .05), 0 30px 52px -28px rgba(16, 32, 64, .6);
  }
  .km:where(#kohen-menu).is-settled .km-card:hover .km-piece--cut { transform: translate3d(0, -5%, 0) scale(1.045); }
  .km:where(#kohen-menu).is-settled .km-card:hover .km-piece--photo { transform: scale(1.05); }
  .km:where(#kohen-menu) .km-card:hover .km-slab::after { opacity: 1; }
}
.km:where(#kohen-menu).is-settled .km-card:active { transform: scale(.985); transition-duration: .15s; }

/* ---------- Carte principale ---------- */
.km:where(#kohen-menu) .km-feature { border-radius: var(--km-r-feature); container: km-vedette / size; }
.km:where(#kohen-menu) .km-cover { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.km:where(#kohen-menu) .km-feature .km-slab {
  --km-inset: 10px;
  min-height: 0;
  gap: 10px;
  padding: 24px 24px 22px;
  border-radius: calc(var(--km-r-feature) - 10px);
  pointer-events: none;
}
.km:where(#kohen-menu) .km-feature .km-slab a { pointer-events: auto; }
.km:where(#kohen-menu) .km-feature .km-title { display: block; font-size: clamp(34px, 3.3vw, 56px); line-height: .95; letter-spacing: -.035em; }
.km:where(#kohen-menu) .km-feature .km-desc { font-size: 15px; -webkit-line-clamp: 3; max-width: 40ch; }
.km:where(#kohen-menu) .km-feature:has(.km-title:focus-visible) { outline: 3px solid var(--km-focus); outline-offset: 4px; }
.km:where(#kohen-menu) .km-feature .km-title:focus-visible { outline: none; }

.km:where(#kohen-menu) .km-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 4px; max-width: 100%; }
.km:where(#kohen-menu) .km-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 13px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--km-ink);
  white-space: nowrap;
  background: rgba(255, 255, 255, .5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 0 0 .5px rgba(29, 29, 31, .1), 0 3px 8px -5px rgba(16, 32, 64, .35);
  transition: background-color .25s, transform .4s var(--km-spring);
}
.km:where(#kohen-menu) .km-chip:hover { background: rgba(255, 255, 255, .92); transform: translateY(-1px); }
.km:where(#kohen-menu) .km-chip:active { transform: scale(.96); }

/* Carte principale en format large : la lame à gauche, la pièce entière à droite. */
@container km-vedette (min-aspect-ratio: 13/10) {
  .km:where(#kohen-menu) .km-feature .km-slab { inset-inline-end: auto; width: 56%; }
  .km:where(#kohen-menu) .km-feature .km-piece--cut { height: 90%; bottom: 4%; left: 76%; }
  .km:where(#kohen-menu)[dir="rtl"] .km-feature .km-piece--cut { left: 24%; }
}

/* ---------- Nos avocats : portraits lus sur la page équipe ---------- */
.km:where(#kohen-menu) .km-glass {
  background: linear-gradient(180deg, rgba(255, 255, 255, .7), rgba(247, 250, 254, .56));
  -webkit-backdrop-filter: blur(24px) saturate(170%);
  backdrop-filter: blur(24px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 0 0 .5px rgba(29, 29, 31, .06), 0 18px 40px -30px rgba(16, 32, 64, .5);
}
/* Bandes de portraits : une par membre ; la bande ouverte s'élargit et montre la photo en couleur. */
.km:where(#kohen-menu) .km-team { padding: 0; }
.km:where(#kohen-menu) .km-bandes {
  position: absolute;
  inset: var(--km-inset);
  display: flex;
  gap: 5px;
  contain: layout paint;
}
.km:where(#kohen-menu) .km-bande {
  position: relative;
  display: block;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
  border-radius: 12px;
  background: #e7eef7;
  transition: flex-grow .75s var(--km-ease);
  -webkit-tap-highlight-color: transparent;
}
.km:where(#kohen-menu) .km-bande.is-open { flex-grow: var(--km-bande-ouverte, 6); }
.km:where(#kohen-menu) .km-bande--vide { opacity: .5; }
.km:where(#kohen-menu) .km-bande-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
  opacity: 0;
  transition: opacity .6s var(--km-ease), filter .8s var(--km-ease), transform 1s var(--km-ease);
}
.km:where(#kohen-menu).is-open .km-bande-img.is-loaded { opacity: 1; }
/* v13 (2 octobre 2026) : plus de voile pastel ni de noir et blanc, les bandes fermées gardent leurs couleurs. */
.km:where(#kohen-menu) .km-bande-legende {
  position: absolute;
  z-index: 2;
  inset-inline: 8px;
  bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-block: 9px;
  padding-inline: 14px 9px;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .76), rgba(255, 255, 255, .54));
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  backdrop-filter: blur(16px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 10px 22px -16px rgba(16, 32, 64, .55);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .3s var(--km-ease), transform .5s var(--km-ease);
}
.km:where(#kohen-menu) .km-bande.is-open .km-bande-legende { opacity: 1; transform: none; transition-delay: .35s; }
.km:where(#kohen-menu) .km-bande-texte { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
/* Nom et fonction sur deux lignes au plus : la bande ouverte est étroite sur téléphone. */
.km:where(#kohen-menu) .km-bande-nom, .km:where(#kohen-menu) .km-bande-role { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: break-word; }
.km:where(#kohen-menu) .km-bande-nom { font-family: Lato, "Helvetica Neue", Arial, sans-serif; font-weight: 900; font-size: 15px; line-height: 1.15; color: var(--km-ink); }
.km:where(#kohen-menu) .km-bande-role { font-size: 12px; line-height: 1.3; color: var(--km-ink-2); }
.km:where(#kohen-menu) .km-bande-fleche, .km:where(#kohen-menu) .km-team-fleche {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 10px -6px rgba(16, 32, 64, .5);
  transition: transform .3s var(--km-ease);
}
.km:where(#kohen-menu) .km-bande-fleche svg, .km:where(#kohen-menu) .km-team-fleche svg { width: 15px; height: 15px; fill: none; stroke: var(--km-ink); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.km:where(#kohen-menu)[dir="rtl"] .km-bande-fleche svg, .km:where(#kohen-menu)[dir="rtl"] .km-team-fleche svg { transform: scaleX(-1); }
.km:where(#kohen-menu) .km-bande:hover .km-bande-fleche, .km:where(#kohen-menu) .km-team-title:hover .km-team-fleche { transform: translate(1px, -1px); }
.km:where(#kohen-menu) .km-team-title {
  position: absolute;
  z-index: 3;
  top: calc(var(--km-inset) + 8px);
  inset-inline-end: calc(var(--km-inset) + 8px);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-block: 6px;
  padding-inline: 14px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .82);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  backdrop-filter: blur(16px) saturate(170%);
  box-shadow: inset 0 1px 0 #fff, 0 0 0 .5px rgba(29, 29, 31, .08), 0 8px 18px -12px rgba(16, 32, 64, .45);
}
.km:where(#kohen-menu) .km-team-title .km-title { font-size: clamp(14px, 1.1vw, 18px); }

/* ---------- Base de données ---------- */
.km:where(#kohen-menu) .km-base .km-slab { --km-slab-h: 0; }
/* Tuile haute (deux rangées) : lame plus courte, pièce plus haute. */
.km:where(#kohen-menu) .km-tile--haute .km-slab { --km-slab-h: 20%; }
.km:where(#kohen-menu) .km-tile--haute .km-piece--cut { height: 58%; bottom: 25%; }

/* ---------- Contact : les deux boutons du site ---------- */
.km:where(#kohen-menu) .km-contact { container: km-contact / inline-size; padding: 18px 24px; }
.km:where(#kohen-menu) .km-contact-in { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.km:where(#kohen-menu) .km-contact-text { display: flex; flex-wrap: wrap; align-items: baseline; min-width: 0; }
.km:where(#kohen-menu) .km-contact .km-title { font-size: clamp(18px, 1.4vw, 22px); }
.km:where(#kohen-menu) .km-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 7px; }

.km:where(#kohen-menu) .km-btn {
  --km-btn-h: 64px;
  --km-btn-icon: 48px;
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 13px;
  min-height: var(--km-btn-h);
  padding-block: 7px;
  padding-inline: 8px 24px;
  border-radius: 999px;
  color: #16191e;
  font-family: Lato, Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  background: conic-gradient(from var(--km-beacon), #f5f7fa 0deg, #ccd7e4 40deg, #fff 80deg, #f6dfb3 85deg, #d4e8fc 92deg, #e0e5ed 150deg, #bacdde 185deg, #fff 202deg, #f3e6c8 206deg, #ccebf1 211deg, #edf2f8 270deg, #c2d5e7 320deg, #fff 338deg, #f5f7fa 360deg);
  box-shadow: 0 0 0 1px rgba(190, 196, 211, .4), 0 12px 18px -5px rgba(24, 35, 57, .27);
  animation: km-beacon-rim 9s linear infinite;
  transition: transform .2s, box-shadow .2s;
}
/* Les pages en arabe forcent les liens tel: en bloc de gauche à droite : pas dans le menu. */
.km:where(#kohen-menu) .km-actions a.km-btn { display: inline-flex; direction: inherit; unicode-bidi: normal; }
.km:where(#kohen-menu) .km-btn::before {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: inherit;
  border: 1px solid rgba(136, 141, 148, .18);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), inset 0 -2px 1px rgba(255, 255, 255, .45), 0 1px 2px rgba(61, 66, 67, .17);
  pointer-events: none;
  z-index: -2;
}
.km:where(#kohen-menu) .km-btn::after {
  content: "";
  position: absolute;
  inset: 2.7px;
  border-radius: inherit;
  z-index: -1;
  background: radial-gradient(ellipse at 35% 0%, rgba(255, 255, 255, .72), transparent 64%), linear-gradient(180deg, #e9e9e9, #dedee0 65%, #e7e7e9);
  box-shadow: inset 0 1px 1px #fff, inset 0 -1px 2px #c1c3ca;
  pointer-events: none;
}
.km:where(#kohen-menu) .km-btn:hover { transform: translateY(-1px); box-shadow: 0 2px 2px rgba(255, 255, 255, .53), 0 15px 22px -6px rgba(24, 35, 57, .33); }
.km:where(#kohen-menu) .km-btn:active { transform: translateY(1.5px); box-shadow: 0 1px 2px rgba(255, 255, 255, .53), 0 5px 8px -3px rgba(24, 35, 57, .25); }
.km:where(#kohen-menu) .km-btn:focus-visible { outline: 3px solid var(--km-focus); outline-offset: 10px; }
.km:where(#kohen-menu) .km-btn-icon {
  position: relative;
  isolation: isolate;
  z-index: 2;
  display: grid;
  place-items: center;
  flex: 0 0 var(--km-btn-icon);
  width: var(--km-btn-icon);
  height: var(--km-btn-icon);
  border-radius: 50%;
  color: #fff;
  transition: transform .2s;
}
.km:where(#kohen-menu) .km-btn:active .km-btn-icon { transform: scale(.96); }
.km:where(#kohen-menu) .km-btn-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  z-index: 0;
  background: repeating-conic-gradient(from 35deg, transparent 0deg, var(--km-reflet-1) 18deg, transparent 29deg, transparent 80deg, var(--km-reflet-2) 92deg, transparent 106deg);
  opacity: .2;
  pointer-events: none;
  animation: km-beacon-flow 11s linear infinite;
}
.km:where(#kohen-menu) .km-btn-icon::after {
  content: "";
  position: absolute;
  inset: -2px;
  border: 1px solid var(--km-onde);
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
  animation: km-beacon-wave 3.5s ease-out infinite;
}
.km:where(#kohen-menu) .km-btn-icon svg { position: relative; z-index: 3; width: calc(var(--km-btn-icon) * .56); height: calc(var(--km-btn-icon) * .56); }
.km:where(#kohen-menu) .km-btn--call .km-btn-icon {
  --km-reflet-1: #79f5a5; --km-reflet-2: #bafbd1; --km-onde: #25d366;
  border: 1px solid #a5edbe;
  background: radial-gradient(ellipse at 30% 15%, rgba(206, 255, 223, .4), transparent 45%), linear-gradient(145deg, #25D366, #128C4A);
  box-shadow: inset 0 1px 3px #ddffe8, 0 0 16px rgba(37, 211, 102, .47);
}
.km:where(#kohen-menu) .km-btn--call svg { fill: #fff; filter: drop-shadow(0 1px 1px #00351f); }
.km:where(#kohen-menu) .km-btn--form .km-btn-icon {
  --km-reflet-1: #56d6ff; --km-reflet-2: #86e9ff; --km-onde: #469eff;
  border: 1px solid #82c6ff;
  background: radial-gradient(ellipse at 30% 15%, rgba(153, 218, 255, .33), transparent 45%), linear-gradient(145deg, #276bcc, #082c72);
  box-shadow: inset 0 1px 3px #b3e2ff, 0 0 16px rgba(50, 140, 255, .47);
}
.km:where(#kohen-menu) .km-btn--form svg { fill: none; stroke: #fff; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 1px #001940); }
.km:where(#kohen-menu) .km-btn-text { position: relative; z-index: 2; }

/* Carte de contact étroite : titre au-dessus, boutons plus compacts. */
@container km-contact (max-width: 640px) {
  .km:where(#kohen-menu) .km-contact-in { flex-direction: column; align-items: flex-start; justify-content: center; gap: 12px; }
  .km:where(#kohen-menu) .km-btn { --km-btn-h: 54px; --km-btn-icon: 40px; gap: 10px; padding-inline: 7px 18px; font-size: 13px; }
  .km:where(#kohen-menu) .km-actions { gap: 14px; }
}
@container km-contact (max-width: 380px) {
  .km:where(#kohen-menu) .km-actions { flex-direction: column; align-items: stretch; width: 100%; }
}

/* ---------- Ordinateur peu haut (portables 13 pouces) ---------- */
@media (min-width: 1100px) and (max-height: 860px) {
  .km:where(#kohen-menu) .km-feature .km-title { font-size: clamp(34px, 6vh, 50px); }
  .km:where(#kohen-menu) .km-feature .km-slab { gap: 8px; padding-block: 20px 18px; padding-inline: 22px 0; }
  .km:where(#kohen-menu) .km-feature .km-desc { padding-inline-end: 22px; }
  .km:where(#kohen-menu) .km-feature .km-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-block: 2px 4px;
    padding-inline: 1px 22px;
    -webkit-mask: linear-gradient(to right, #000 calc(100% - 36px), transparent);
    mask: linear-gradient(to right, #000 calc(100% - 36px), transparent);
  }
  .km:where(#kohen-menu) .km-feature .km-chips::-webkit-scrollbar { display: none; }
}

/* ---------- Tablette ---------- */
@media (max-width: 1099px) {
  .km:where(#kohen-menu) .km-grid { grid-auto-rows: auto; }
  .km:where(#kohen-menu) .km-feature { height: 400px; }
  .km:where(#kohen-menu) .km-tile { height: 250px; }
  .km:where(#kohen-menu) .km-team, .km:where(#kohen-menu) .km-base { height: 290px; }
  .km:where(#kohen-menu) .km-contact { min-height: 118px; }
}

/* ---------- Téléphone ---------- */
@media (max-width: 699px) {
  .km:where(#kohen-menu) { --km-gap: 10px; --km-r-card: 22px; --km-r-feature: 28px; }
  .km:where(#kohen-menu) .km-vitre { inset: 6px; border-radius: 30px; }
  .km:where(#kohen-menu) .km-langs--bar { display: none; }
  .km:where(#kohen-menu) .km-langs--foot {
    display: flex;
    position: static;
    transform: none;
    justify-content: space-between;
    width: min(calc(100% - 2 * var(--km-pad)), 1480px);
    margin: 4px auto max(var(--km-pad), env(safe-area-inset-bottom));
  }
  .km:where(#kohen-menu) .km-langs--foot { position: relative; left: auto; right: auto; top: auto; }
  .km:where(#kohen-menu) .km-langs--foot button { min-width: 0; flex: 1; padding: 0; }
  .km:where(#kohen-menu) .km-grid { padding-bottom: 12px; }
  .km:where(#kohen-menu) .km-feature { height: 468px; }
  .km:where(#kohen-menu) .km-feature .km-slab { padding-block: 18px 16px; padding-inline: 18px 0; }
  .km:where(#kohen-menu) .km-feature .km-title { font-size: 38px; }
  .km:where(#kohen-menu) .km-feature .km-desc { font-size: 14px; padding-inline-end: 18px; }
  .km:where(#kohen-menu) .km-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-block: 2px 4px;
    padding-inline: 1px 18px;
    -webkit-mask: linear-gradient(to right, #000 calc(100% - 28px), transparent);
    mask: linear-gradient(to right, #000 calc(100% - 28px), transparent);
  }
  .km:where(#kohen-menu) .km-chips::-webkit-scrollbar { display: none; }
  .km:where(#kohen-menu) .km-chip { height: 32px; padding: 0 12px; font-size: 13px; }
  .km:where(#kohen-menu) .km-tile { height: 200px; }
  .km:where(#kohen-menu) .km-slab { padding: 11px 12px 12px; min-height: 0; }
  .km:where(#kohen-menu) .km-title { font-size: 16px; }
  .km:where(#kohen-menu) .km-tile .km-desc { display: none; }
  .km:where(#kohen-menu) .km-team { height: 250px; --km-bande-ouverte: 8; }
  .km:where(#kohen-menu) .km-bandes { gap: 4px; }
  .km:where(#kohen-menu) .km-bande { border-radius: 10px; }
  .km:where(#kohen-menu) .km-bande-legende { inset-inline: 6px; bottom: 6px; gap: 6px; padding-block: 8px; padding-inline: 10px 7px; }
  .km:where(#kohen-menu) .km-bande-nom { font-size: 13px; }
  .km:where(#kohen-menu) .km-bande-role { font-size: 11px; }
  .km:where(#kohen-menu) .km-bande-fleche { width: 24px; height: 24px; }
  .km:where(#kohen-menu) .km-base { height: 120px; }
  .km:where(#kohen-menu) .km-base .km-desc { font-size: 12.5px; }
  .km:where(#kohen-menu) .km-contact { padding: 18px 16px; }
}
.km:where(#kohen-menu)[dir="rtl"] .km-chips { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent); }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
  .km:where(#kohen-menu) .km-sheet { transition-duration: .15s; }
  .km:where(#kohen-menu) .km-card, .km:where(#kohen-menu) .km-piece, .km:where(#kohen-menu) .km-bande-img, .km:where(#kohen-menu) .km-close path {
    transition: opacity .2s linear !important;
    transform: none !important;
  }
  .km:where(#kohen-menu) .km-bande, .km:where(#kohen-menu) .km-bande::after, .km:where(#kohen-menu) .km-bande-legende { transition: none !important; }
  .km:where(#kohen-menu) .km-btn, .km:where(#kohen-menu) .km-close, .km:where(#kohen-menu) .km-btn-icon::before, .km:where(#kohen-menu) .km-btn-icon::after { animation: none !important; }
}


/* ==========================================================================================
   Copie locale du 13 octobre 2026 (menu-variantes-20261013/actuel/) : ajouts à la feuille en
   ligne 20261011-com-menu-pop-v2, qui précède ce bloc sans changement. Toutes les pages du site
   (fiches ouvertes par le « + » des cartes), les autres expertises, quatre dispositions de la
   grille (data-disposition f1 à f4, posé par menu.js). Même préfixe .km:where(#kohen-menu).
   ========================================================================================== */

/* Liens copiés du plan : le contexte (« Lyon, droit du travail ») est lu, pas affiché. */
.km:where(#kohen-menu) .km-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.km:where(#kohen-menu) .km-role { display: none; }
.km:where(#kohen-menu) .km-grid[hidden], .km:where(#kohen-menu) .km-fiche[hidden] { display: none; }

/* ---------- Tuiles : la carte entière mène à la page, la lame laisse passer le clic ---------- */
.km:where(#kohen-menu) :is(.km-tile, .km-base, .km-fiche-tete) .km-slab,
.km:where(#kohen-menu) .km-sec-in { pointer-events: none; }
.km:where(#kohen-menu) :is(.km-tile, .km-base, .km-fiche-tete) .km-slab :is(a, button),
.km:where(#kohen-menu) .km-sec-in :is(a, button) { pointer-events: auto; }
.km:where(#kohen-menu) :is(.km-tile, .km-base, .km-sec):has(.km-title:focus-visible) { outline: 3px solid var(--km-focus); outline-offset: 4px; }
.km:where(#kohen-menu) :is(.km-tile, .km-base, .km-sec) .km-title:focus-visible { outline: none; }

/* ---------- Bouton « + » : toutes les pages de la carte, dans son angle ---------- */
.km:where(#kohen-menu) .km-plus {
  position: absolute;
  z-index: 5;
  top: 12px;
  inset-inline-end: 12px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--km-ink);
  background: #fff;
  box-shadow: 0 0 0 .5px rgba(29, 29, 31, .08), 0 6px 14px -8px rgba(16, 32, 64, .55);
  transition: transform .35s var(--km-spring), box-shadow .25s;
}
.km:where(#kohen-menu) .km-plus::before { content: ""; position: absolute; inset: -5px; border-radius: 50%; }
.km:where(#kohen-menu) .km-plus:hover, .km:where(#kohen-menu) .km-plus:focus { color: var(--km-ink); background: #fff; }
.km:where(#kohen-menu) .km-plus:hover { transform: scale(1.08); box-shadow: 0 0 0 .5px rgba(29, 29, 31, .1), 0 10px 18px -8px rgba(16, 32, 64, .6); }
.km:where(#kohen-menu) .km-plus:active { transform: scale(.94); }
.km:where(#kohen-menu) .km-plus svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; }

/* Nos avocats : le « + » à côté du titre. */
.km:where(#kohen-menu) .km-team-haut {
  position: absolute;
  z-index: 3;
  top: calc(var(--km-inset) + 8px);
  inset-inline-end: calc(var(--km-inset) + 8px);
  display: flex;
  align-items: center;
  gap: 8px;
}
.km:where(#kohen-menu) .km-team-haut .km-team-title,
.km:where(#kohen-menu) .km-team-haut .km-plus { position: relative; top: auto; inset-inline-end: auto; }

/* ---------- Autres expertises ---------- */
.km:where(#kohen-menu) .km-autres { container: km-autres / inline-size; }
.km:where(#kohen-menu) .km-autres-in { height: 100%; display: flex; flex-direction: column; gap: 12px; padding: 18px 18px 20px 20px; }
.km:where(#kohen-menu) .km-autres-tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; }
.km:where(#kohen-menu) .km-autres-tete .km-plus { position: relative; top: auto; inset-inline-end: auto; flex: none; }
.km:where(#kohen-menu) .km-autres-liste { display: flex; flex-wrap: wrap; gap: 7px; min-width: 0; }
/* Carte étroite (une colonne) : une liste. */
@container km-autres (max-width: 340px) {
  .km:where(#kohen-menu) .km-autres-liste { flex-direction: column; flex-wrap: nowrap; gap: 0; }
  .km:where(#kohen-menu) .km-autres-liste .km-chip {
    height: auto;
    padding: 7px 0;
    font-size: 14.5px;
    white-space: normal;
    background: none;
    box-shadow: none;
    transition: color .2s;
  }
  .km:where(#kohen-menu) .km-autres-liste .km-chip:hover { background: none; transform: none; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
}
/* ---------- Autres expertises en cartes (f3) ---------- */
.km:where(#kohen-menu) .km-sec-in { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 5px; padding: 14px 16px 16px 18px; }
.km:where(#kohen-menu) .km-sec .km-title { font-size: clamp(16px, 1.15vw, 19px); }
.km:where(#kohen-menu) .km-sec .km-desc { font-size: 12.5px; }

/* ---------- Contact sur une colonne : les deux boutons en pastilles ---------- */
@container km-contact (max-width: 300px) {
  .km:where(#kohen-menu) .km-contact-in { gap: 10px; }
  .km:where(#kohen-menu) .km-contact .km-title { font-size: 17px; }
  .km:where(#kohen-menu) .km-actions { flex-direction: row; align-items: center; width: auto; gap: 20px; padding: 7px; }
  .km:where(#kohen-menu) .km-btn { --km-btn-h: 50px; --km-btn-icon: 42px; gap: 0; padding: 4px; }
  .km:where(#kohen-menu) .km-btn-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---------- Dispositions (ordinateur) ---------- */
@media (min-width: 1100px) {
  /* f1 : le contact en bandeau, sur toute la largeur. */
  .km:where(#kohen-menu):is([data-disposition="f1"], [data-disposition="f5"]) .km-grid { --km-row-c: 118px; }
  /* f2, f4 : les autres expertises sur deux colonnes d'une rangée courte, une ligne qui défile. */
  .km:where(#kohen-menu):is([data-disposition="f2"], [data-disposition="f4"], [data-disposition="f5"]) .km-autres-in { justify-content: center; gap: 10px; padding: 14px 16px 14px 20px; }
  .km:where(#kohen-menu):is([data-disposition="f2"], [data-disposition="f4"], [data-disposition="f5"]) .km-autres-liste {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-block: 2px 4px;
    padding-inline: 1px 24px;
    -webkit-mask: linear-gradient(to right, #000 calc(100% - 32px), transparent);
    mask: linear-gradient(to right, #000 calc(100% - 32px), transparent);
  }
  .km:where(#kohen-menu):is([data-disposition="f2"], [data-disposition="f4"], [data-disposition="f5"]) .km-autres-liste::-webkit-scrollbar { display: none; }
}

/* ---------- Fiche : toutes les pages d'une carte ---------- */
.km:where(#kohen-menu) .km-fiche {
  width: min(calc(100% - 2 * var(--km-pad)), 1480px);
  margin: 0 auto;
  padding: 6px 0 max(var(--km-pad), env(safe-area-inset-bottom));
}
.km:where(#kohen-menu) .km-fiche:focus { outline: none; }
.km:where(#kohen-menu) .km-fiche-haut { display: flex; align-items: center; margin-bottom: var(--km-gap); }
.km:where(#kohen-menu) .km-retour {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 44px;
  padding-inline: 12px 20px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  color: var(--km-ink);
  background: rgba(255, 255, 255, .82);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  backdrop-filter: blur(16px) saturate(170%);
  box-shadow: inset 0 1px 0 #fff, 0 0 0 .5px rgba(29, 29, 31, .08), 0 8px 18px -12px rgba(16, 32, 64, .45);
  transition: transform .35s var(--km-spring);
}
.km:where(#kohen-menu) .km-retour:hover, .km:where(#kohen-menu) .km-retour:focus { color: var(--km-ink); background: rgba(255, 255, 255, .96); }
.km:where(#kohen-menu) .km-retour:hover { transform: translateX(-2px); }
.km:where(#kohen-menu) .km-retour svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.km:where(#kohen-menu)[dir="rtl"] .km-retour svg { transform: scaleX(-1); }

.km:where(#kohen-menu) .km-fiche-grille { display: grid; grid-template-columns: minmax(300px, 5fr) 8fr; gap: var(--km-gap); align-items: start; }
.km:where(#kohen-menu) .km-fiche-tete {
  position: sticky;
  top: calc(var(--km-bar-h, 96px) + 6px);
  height: clamp(340px, calc(100vh - var(--km-bar-h, 96px) - 96px), 640px);
  border-radius: var(--km-r-feature);
  container: km-vedette / size;
}
@supports (height: 100dvh) {
  .km:where(#kohen-menu) .km-fiche-tete { height: clamp(340px, calc(100dvh - var(--km-bar-h, 96px) - 96px), 640px); }
}
.km:where(#kohen-menu) .km-fiche-tete .km-slab {
  --km-inset: 10px;
  min-height: 0;
  gap: 8px;
  padding: 22px 24px 20px;
  border-radius: calc(var(--km-r-feature) - 10px);
}
.km:where(#kohen-menu) .km-fiche-titre { margin: 0; font: inherit; }
.km:where(#kohen-menu) .km-fiche-tete .km-title { display: inline; font-size: clamp(30px, 2.6vw, 44px); line-height: 1; letter-spacing: -.03em; }
.km:where(#kohen-menu) .km-fiche-tete .km-desc { font-size: 15px; -webkit-line-clamp: 3; max-width: 40ch; }
.km:where(#kohen-menu) .km-fiche-compte { font-size: 13px; font-weight: 600; color: var(--km-ink-3); }
.km:where(#kohen-menu) .km-fiche-fleche {
  display: inline-grid;
  place-items: center;
  width: .72em;
  height: .72em;
  margin-inline-start: .22em;
  vertical-align: .02em;
}
.km:where(#kohen-menu) .km-fiche-fleche svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.km:where(#kohen-menu)[dir="rtl"] .km-fiche-fleche svg { transform: scaleX(-1); }
/* Tête sans visuel (autres expertises, cabinet) : du verre, sans lame. */
.km:where(#kohen-menu) .km-fiche-tete.km-glass { height: auto; min-height: 240px; container: none; }
.km:where(#kohen-menu) .km-fiche-tete.km-glass .km-slab {
  position: relative;
  inset: auto;
  min-height: 240px;
  padding: 26px 26px 24px;
  background: none;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.km:where(#kohen-menu) .km-fiche-tete.km-glass .km-slab::before { display: none; }
/* Fiche sans visuel : la tête en bandeau sur toute la largeur, les groupes en trois colonnes. */
.km:where(#kohen-menu) .km-fiche-grille:has(> .km-fiche-tete.km-glass) { grid-template-columns: minmax(0, 1fr); }
.km:where(#kohen-menu) .km-fiche-tete.km-glass, .km:where(#kohen-menu) .km-fiche-tete.km-glass .km-slab { position: relative; top: auto; min-height: 0; }
.km:where(#kohen-menu) .km-fiche-tete.km-glass .km-slab { padding: 22px 26px; }
.km:where(#kohen-menu) .km-fiche-grille:has(> .km-fiche-tete.km-glass) .km-fiche-corps { columns: 3 280px; }
/* Fiche ouverte : le verre du fond se fait plus dense, la page derrière ne se lit plus. */
.km:where(#kohen-menu).km-avec-fiche .km-vitre { background: linear-gradient(180deg, rgba(247, 250, 254, .8), rgba(241, 245, 251, .72)); }

/* Corps : les groupes en colonnes, les villes en dessous sur toute la largeur. */
.km:where(#kohen-menu) .km-fiche-corps { columns: 2 300px; column-gap: var(--km-gap); }
.km:where(#kohen-menu) .km-fiche-corps > .km-card { display: block; break-inside: avoid; margin-bottom: var(--km-gap); }
.km:where(#kohen-menu) .km-fiche-corps > :is(.km-villes-carte, .km-groupe-seul) { column-span: all; }
.km:where(#kohen-menu) .km-groupe-carte, .km:where(#kohen-menu) .km-villes-carte { padding: 18px 20px 20px; }
.km:where(#kohen-menu) .km-groupe-titre {
  margin: 0 0 12px;
  font-family: Lato, "Helvetica Neue", Arial, sans-serif;
  font-weight: 900;
  font-size: 17px;
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--km-ink);
}
.km:where(#kohen-menu) .km-chips--fiche { margin-top: 0; }
.km:where(#kohen-menu) .km-chips--fiche .km-chip { height: auto; min-height: 32px; padding: 6px 13px; line-height: 1.25; white-space: normal; }
.km:where(#kohen-menu) .km-dom-lien:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.km:where(#kohen-menu) .km-dom-desc { margin: -6px 0 12px; font-size: 13px; line-height: 1.4; color: var(--km-ink-2); }
.km:where(#kohen-menu) .km-dom-groupe { margin: 12px 0 8px; font-size: 12px; font-weight: 600; color: var(--km-ink-3); }
.km:where(#kohen-menu) .km-dom-desc + .km-dom-groupe { margin-top: 0; }
.km:where(#kohen-menu) .km-villes { columns: 5 130px; column-gap: 22px; }
.km:where(#kohen-menu) .km-villes li { break-inside: avoid; }
.km:where(#kohen-menu) .km-ville { display: block; padding: 5px 0; font-size: 14px; line-height: 1.3; color: var(--km-ink-2); transition: color .2s; }
.km:where(#kohen-menu) .km-ville:hover { color: var(--km-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* ---------- Tablette ---------- */
@media (max-width: 1099px) {
  .km:where(#kohen-menu) .km-autres { height: auto; }
  .km:where(#kohen-menu) .km-sec { height: 150px; }
  .km:where(#kohen-menu) .km-fiche-grille { grid-template-columns: minmax(0, 1fr); }
  .km:where(#kohen-menu) .km-fiche-tete { position: relative; top: auto; height: 300px; }
  .km:where(#kohen-menu) .km-fiche-tete.km-glass, .km:where(#kohen-menu) .km-fiche-tete.km-glass .km-slab { min-height: 0; }
  .km:where(#kohen-menu) .km-fiche-corps { columns: 2 260px; }
  .km:where(#kohen-menu) .km-villes { columns: 4 120px; }
}

/* ---------- Téléphone ---------- */
@media (max-width: 699px) {
  .km:where(#kohen-menu) .km-sec { height: 132px; }
  .km:where(#kohen-menu) .km-sec .km-desc { display: none; }
  .km:where(#kohen-menu) .km-plus { width: 32px; height: 32px; top: 10px; inset-inline-end: 10px; }
  .km:where(#kohen-menu) .km-autres-liste .km-chip { min-height: 44px; }
  .km:where(#kohen-menu) .km-fiche-tete { height: 240px; border-radius: var(--km-r-feature); }
  .km:where(#kohen-menu) .km-fiche-tete .km-title { font-size: 30px; }
  .km:where(#kohen-menu) .km-fiche-tete .km-desc { font-size: 14px; }
  .km:where(#kohen-menu) .km-fiche-corps { columns: 1; }
  .km:where(#kohen-menu) .km-chips--fiche { flex-wrap: wrap; overflow: visible; padding: 0; -webkit-mask: none; mask: none; }
  .km:where(#kohen-menu) .km-chips--fiche .km-chip { min-height: 44px; }
  .km:where(#kohen-menu) .km-villes { columns: 2; column-gap: 16px; }
  .km:where(#kohen-menu) .km-ville { padding: 11px 0; font-size: 15px; }
}

/* ---------- Habillages g1 à g3 : l'image dit le sujet de la carte ---------- */
.km:where(#kohen-menu) .km-card[data-type="travail"] { --km-t1: #3b82f6; --km-t2: #1e40af; --km-fond: #e3edfd; }
.km:where(#kohen-menu) .km-card[data-type="famille"] { --km-t1: #f0567a; --km-t2: #b4234b; --km-fond: #fde6ec; }
.km:where(#kohen-menu) .km-card[data-type="etrangers"] { --km-t1: #14b8a6; --km-t2: #0f766e; --km-fond: #ddf5f1; }
.km:where(#kohen-menu) .km-card[data-type="fiscal"] { --km-t1: #22c55e; --km-t2: #15803d; --km-fond: #e2f6e8; }
.km:where(#kohen-menu) .km-card[data-type="dommage"] { --km-t1: #ef4444; --km-t2: #a21c1c; --km-fond: #fde5e5; }
.km:where(#kohen-menu) .km-card[data-type="routier"] { --km-t1: #f59e0b; --km-t2: #b45309; --km-fond: #fdf0dc; }
.km:where(#kohen-menu) .km-card[data-type="affaires"] { --km-t1: #6366f1; --km-t2: #3730a3; --km-fond: #e8e8fd; }
.km:where(#kohen-menu) .km-card[data-type="immobilier"] { --km-t1: #d97706; --km-t2: #92400e; --km-fond: #fbeedd; }
.km:where(#kohen-menu) .km-card[data-type="public"] { --km-t1: #64748b; --km-t2: #334155; --km-fond: #e8ecf1; }
.km:where(#kohen-menu) .km-card[data-type="numerique"] { --km-t1: #a855f7; --km-t2: #6b21a8; --km-fond: #f1e6fd; }
.km:where(#kohen-menu) .km-card[data-type="sante"] { --km-t1: #ec4899; --km-t2: #9d174d; --km-fond: #fce6f1; }
.km:where(#kohen-menu) .km-card[data-type="aerien"] { --km-t1: #38bdf8; --km-t2: #0369a1; --km-fond: #def3fd; }
.km:where(#kohen-menu) .km-card[data-type="maritime"] { --km-t1: #2563eb; --km-t2: #1e3a8a; --km-fond: #e0e9fb; }
.km:where(#kohen-menu) .km-card[data-type="environnement"] { --km-t1: #84cc16; --km-t2: #3f6212; --km-fond: #edf6dc; }
.km:where(#kohen-menu) .km-card[data-type="boutique"] { --km-t1: #eab308; --km-t2: #854d0e; --km-fond: #fbf3d6; }
.km:where(#kohen-menu) .km-card[data-type="compte"] { --km-t1: #78716c; --km-t2: #44403c; --km-fond: #eeecea; }
.km:where(#kohen-menu) .km-card[data-type="base"] { --km-t1: #0ea5e9; --km-t2: #075985; --km-fond: #dff1fb; }
.km:where(#kohen-menu) .km-card:has(> .km-stage--typo), .km:where(#kohen-menu) .km-card:has(> .km-stage--icone), .km:where(#kohen-menu) .km-card:has(> .km-stage--mixte) { background: #fff; }
.km:where(#kohen-menu) .km-stage--typo, .km:where(#kohen-menu) .km-stage--icone, .km:where(#kohen-menu) .km-stage--mixte {
  display: flex; align-items: center; justify-content: center; padding: 16px 16px 40%;
}
/* Le mot du sujet, en grand, à la manière de « 48MP » ou « 5G ». */
.km:where(#kohen-menu) .km-mot {
  font-family: Lato, "Helvetica Neue", Arial, sans-serif; font-weight: 900;
  font-size: clamp(26px, 2.5vw, 40px); line-height: .98; letter-spacing: -.035em; text-align: center;
  background: linear-gradient(160deg, var(--km-t1), var(--km-t2)); -webkit-background-clip: text; background-clip: text; color: transparent;
  overflow-wrap: anywhere;
}
.km:where(#kohen-menu) .km-card:has(> .km-stage--typo) { background: linear-gradient(180deg, #fff, var(--km-fond)); }
/* Icône d'application : un carré arrondi en dégradé, le pictogramme en blanc. */
.km:where(#kohen-menu) .km-icone {
  display: grid; place-items: center;
  width: clamp(64px, 5.6vw, 92px); aspect-ratio: 1; border-radius: 24%;
  background: linear-gradient(160deg, var(--km-t1), var(--km-t2));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 14px 26px -14px var(--km-t2);
  transition: transform .6s var(--km-spring);
}
.km:where(#kohen-menu) .km-icone svg { width: 52%; height: 52%; fill: none; stroke: #fff; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.km:where(#kohen-menu).is-settled .km-card:hover .km-icone { transform: scale(1.06) translateY(-2px); }
.km:where(#kohen-menu) .km-card:has(> .km-stage--icone), .km:where(#kohen-menu) .km-card:has(> .km-stage--mixte) { background: linear-gradient(180deg, #fff 30%, var(--km-fond)); }
@media (max-width: 699px) { .km:where(#kohen-menu) .km-mot { font-size: 24px; } }

/* g4 : la photo et le mot du sujet. */
.km:where(#kohen-menu) .km-mot--photo {
  position: absolute; z-index: 1; inset-inline: 14px; top: 16px;
  font-size: clamp(22px, 1.9vw, 32px); text-align: start;
  background: linear-gradient(160deg, var(--km-t1), var(--km-t2)); -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* g5 « Couverture » : le mot du sujet derrière la pièce, comme le titre d'un magazine derrière son sujet. */
.km:where(#kohen-menu) .km-stage--couverture { isolation: isolate; background: linear-gradient(180deg, #fff, var(--km-fond, #eef3fb)); }
.km:where(#kohen-menu) .km-mot--une {
  position: absolute; z-index: 0; inset-inline: 12px; top: 10px;
  font-size: clamp(30px, 17cqw, 60px); line-height: .9; letter-spacing: -.05em; text-align: start; overflow-wrap: normal; hyphens: none;
  background: linear-gradient(170deg, var(--km-t1), var(--km-t2)); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.km:where(#kohen-menu) .km-stage--couverture .km-piece { z-index: 1; mix-blend-mode: multiply; }
.km:where(#kohen-menu) .km-mot--une.km-mot--long { font-size: clamp(24px, 12cqw, 52px); }
@media (max-width: 699px) { .km:where(#kohen-menu) .km-mot--une { font-size: 28px; } .km:where(#kohen-menu) .km-mot--une.km-mot--long { font-size: 22px; } }

/* g6 « Une » : le nom du domaine, une seule couleur d'encre, la pièce devant ; la lame disparaît à l'écran
   (son lien reste lu au clavier et par les lecteurs d'écran). */
.km:where(#kohen-menu) .km-stage--une { background: #fff; }
.km:where(#kohen-menu) .km-stage--une .km-mot--une { background: none; color: var(--km-ink); -webkit-background-clip: border-box; background-clip: border-box; top: 14px; inset-inline: 16px; }
.km:where(#kohen-menu) .km-card:has(> .km-stage--une) .km-slab {
  position: absolute !important; width: 1px; height: 1px; min-height: 0; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0);
  border: 0; box-shadow: none; background: none; -webkit-backdrop-filter: none; backdrop-filter: none;
}
.km:where(#kohen-menu) .km-card:has(> .km-stage--une):has(.km-title:focus-visible) { outline: 3px solid var(--km-focus); outline-offset: 4px; }
.km:where(#kohen-menu) .km-stage--une .km-piece--cut { height: 64%; bottom: 6%; }

/* Habillages : le contact sans carte autour, les deux boutons en entier. */
.km:where(#kohen-menu)[data-habillage] .km-contact { background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; overflow: visible; padding-inline: 8px; }
.km:where(#kohen-menu)[data-habillage] .km-contact::after { display: none; }
.km:where(#kohen-menu)[data-habillage] .km-contact .km-btn { white-space: nowrap; }
.km:where(#kohen-menu)[data-habillage] .km-contact .km-actions { flex-wrap: nowrap; }

/* Le mot centré dans la partie libre de la carte, au-dessus de la lame, quelle que soit sa largeur
   (un padding en % suivait la largeur : les cartes larges plaçaient leur mot trop haut). */
.km:where(#kohen-menu) .km-stage--typo, .km:where(#kohen-menu) .km-stage--icone, .km:where(#kohen-menu) .km-stage--mixte { inset: 0 0 34% 0; padding: 12px 16px; }

/* Équipe : les bandes ne se touchent plus ; un liseré clair et un peu d'air entre elles et autour. */
.km:where(#kohen-menu) .km-bandes { inset: 12px; gap: 8px; }
.km:where(#kohen-menu) .km-bande { border-radius: 14px; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .85), 0 6px 14px -10px rgba(16, 32, 64, .45); }
.km:where(#kohen-menu) .km-bande-img { border-radius: inherit; }

/* Pénal, pièce détourée : un halo de lumière derrière la pièce, son reflet au sol, la pièce plus grande. */
.km:where(#kohen-menu)[data-penal] .km-feature .km-stage::before {
  content: ""; position: absolute; z-index: 0; width: 62%; aspect-ratio: 1; left: 76%; top: 50%; translate: -50% -55%;
  border-radius: 50%; background: radial-gradient(closest-side, rgba(255,255,255,.95), rgba(255,255,255,.35) 60%, rgba(255,255,255,0));
}
.km:where(#kohen-menu)[data-penal] .km-feature .km-stage::after {
  content: ""; position: absolute; z-index: 0; width: 34%; height: 5%; left: 76%; bottom: 5%; translate: -50% 0;
  border-radius: 50%; background: radial-gradient(closest-side, rgba(16,32,64,.28), rgba(16,32,64,0));
}
.km:where(#kohen-menu)[data-penal] .km-feature .km-piece--cut { z-index: 1; max-width: 46%; object-fit: contain; filter: drop-shadow(0 26px 30px rgba(16,32,64,.28)); }

.km:where(#kohen-menu) .km-card:has(> .km-stage--vide) { background: linear-gradient(180deg, #fff, #eef3fb); }

/* Équipe (Hassan, 13/10/2026, après essai) : les bandes remplissent toute la carte, sans marge ni espace entre elles. */
.km:where(#kohen-menu) .km-bandes { inset: 0; gap: 0; }
.km:where(#kohen-menu) .km-bande { border-radius: 0; box-shadow: none; }
.km:where(#kohen-menu) .km-bande + .km-bande { box-shadow: inset 1px 0 0 rgba(255, 255, 255, .55); }

/* kohenavocats.fr (20261014-fr-g1) : teintes des cartes propres au .fr, reprises de la palette du .com. */
.km:where(#kohen-menu) .km-card[data-type="bail"] { --km-t1: #14b8a6; --km-t2: #0f766e; --km-fond: #ddf5f1; }
.km:where(#kohen-menu) .km-card[data-type="contentieux"] { --km-t1: #f0567a; --km-t2: #b4234b; --km-fond: #fde6ec; }
.km:where(#kohen-menu) .km-card[data-type="societes"] { --km-t1: #a855f7; --km-t2: #6b21a8; --km-fond: #f1e6fd; }
.km:where(#kohen-menu) .km-card[data-type="urbanisme"] { --km-t1: #22c55e; --km-t2: #15803d; --km-fond: #e2f6e8; }

/* kohenavocats.fr (20261014-fr-g3) : cartes d'expertise au nom du domaine, sans lame ; le mot occupe toute la carte. */
.km:where(#kohen-menu) .km-card--nom > .km-stage--typo { inset: 0; padding: 18px 20px; }
.km:where(#kohen-menu) .km-card--nom .km-mot { font-size: clamp(24px, 2.2vw, 36px); line-height: 1.04; overflow-wrap: normal; hyphens: manual; text-wrap: balance; }
.km:where(#kohen-menu) .km-card--nom:has(> .km-cover:focus-visible) { outline: 3px solid var(--km-focus); outline-offset: 4px; }
.km:where(#kohen-menu) .km-card--nom > .km-cover:focus-visible { outline: none; }
@media (max-width: 699px) { .km:where(#kohen-menu) .km-card--nom .km-mot { font-size: 21px; } }
