/* Cinq blocs plein cadre « Cinq leviers pour grandir » (page Nos services, base 06). Préfixe .lv.
   Images d’ambiance de la marque, typographie Everett géante, aucune ombre portée derrière les cartes. */
.lv {
  --lv-radius: clamp(18px, 1.6vw, 26px);
  --lv-swift: cubic-bezier(.76, 0, .24, 1);
  --lv-line: color-mix(in srgb, var(--hb-color-ink) 16%, transparent);
  --lv-bleed: var(--hb-gutter);
  position: relative;
}
.lv :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
.lv :where(figure, h3, p) { margin: 0; }
.lv :where(img) { max-width: none; }
.lv-dot { color: var(--hb-color-orange); font-weight: inherit; }
.lv h3 { font-family: var(--hb-font-heading); font-weight: 500; }
.lv h3 small { display: block; margin-top: .4em; font: 500 max(13px, .2em)/1 var(--hb-font-body); letter-spacing: 0; opacity: .62; }
.lv-tone--forest { --bg: var(--hb-color-forest); --ink: var(--hb-color-paper); }
.lv-tone--ivory { --bg: #f5f7f0; --ink: var(--hb-color-ink); }
.lv-tone--lime { --bg: var(--hb-color-lime); --ink: var(--hb-color-ink); }
.lv-tone--pine { --bg: var(--hb-color-pine); --ink: var(--hb-color-paper); }
.lv-tone--orange { --bg: var(--hb-color-orange); --ink: var(--hb-color-forest); }
.lv-kicker { display: flex; align-items: center; gap: 12px; font: 500 11px/1 var(--hb-font-body); letter-spacing: .16em; text-transform: uppercase; }
.lv-kicker span { opacity: .55; font-variant-numeric: tabular-nums; }
.lv-promise { font: 500 clamp(20px, 1.6vw, 26px)/1.15 var(--hb-font-heading); letter-spacing: -.035em; }
.lv-copy { max-width: 46ch; color: color-mix(in srgb, currentColor 76%, transparent); font-size: 15.5px; line-height: 1.6; }
.lv-list { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px 26px; }
.lv-list li { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.lv-list svg { flex: none; width: 20px; height: 20px; padding: 4px; border-radius: 6px; fill: none; stroke: currentColor; stroke-width: 2.6; background: color-mix(in srgb, currentColor 13%, transparent); }
.lv .hb-button { justify-self: start; }
.lv-tone--orange .hb-button:not(:hover) { background: var(--hb-color-forest); }
:is(.lv-tone--ivory, .lv-tone--lime) .hb-button:hover { background: var(--hb-color-forest); color: var(--hb-color-paper); }

/* ——— 01 · L’index ——— */
.lv-index-list { border-bottom: 1px solid var(--lv-line); }
.lv-row { position: relative; }
.lv-row::before { content: ''; position: absolute; inset: 0 0 auto; height: 1px; background: var(--lv-line); transform-origin: 0 50%; transition: scale 1.3s var(--hb-ease) calc(var(--i) * 90ms); }
.lv-row-title { font-size: inherit; }
.lv-row-head { display: grid; grid-template-columns: clamp(44px, 6vw, 108px) minmax(0, 1fr) auto 58px; align-items: center; gap: clamp(14px, 1.6vw, 28px); width: 100%; padding: clamp(18px, 2.1vw, 34px) 0; color: var(--hb-color-ink); text-align: left; cursor: pointer; }
.lv-row-num { align-self: start; padding-top: 1.2em; font: 500 12px/1 var(--hb-font-body); letter-spacing: .14em; opacity: .5; transition: color .4s, opacity .4s; }
.lv-row-name { display: block; overflow: clip; padding-bottom: .06em; font: 500 clamp(42px, 6.3vw, 116px)/1 var(--hb-font-heading); letter-spacing: -.065em; white-space: nowrap; transition: opacity .5s; }
.lv-row-name > span { position: relative; display: inline-block; transition: translate 1s var(--hb-ease) calc(var(--i) * 90ms + 120ms), transform .7s var(--hb-ease); }
.lv-row-name > span::after { content: attr(data-text); position: absolute; top: 112%; left: 0; white-space: nowrap; }
.lv-row-verb { font: 500 11px/1.4 var(--hb-font-body); letter-spacing: .16em; text-align: right; text-transform: uppercase; opacity: .55; }
.lv-row-verb small { display: block; margin-top: 4px; font-size: 12px; letter-spacing: 0; text-transform: none; }
.lv-row-plus { position: relative; width: 58px; height: 58px; border-radius: 50%; border: 1px solid var(--lv-line); transition: background-color .45s, border-color .45s, rotate .7s var(--hb-ease); }
.lv-row-plus::before, .lv-row-plus::after { content: ''; position: absolute; top: 50%; left: 50%; width: 18px; height: 1.5px; margin: -.75px 0 0 -9px; background: currentColor; transition: background-color .45s; }
.lv-row-plus::after { rotate: 90deg; }
.lv-row-head:hover .lv-row-name > span, .lv-row-head:focus-visible .lv-row-name > span { transform: translateY(-112%); }
.lv-row-head:hover .lv-row-num, .lv-row.is-open .lv-row-num { color: var(--hb-color-orange); opacity: 1; }
.lv-row-head:hover .lv-row-plus { border-color: var(--hb-color-orange); background: var(--hb-color-orange); color: #fff; }
.lv-row.is-open .lv-row-plus { rotate: 135deg; }
.lv-index-list:has(.lv-row-head:hover) .lv-row-head:not(:hover) .lv-row-name { opacity: .22; }
.lv-row-body { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .85s var(--hb-ease), visibility 0s linear .85s; }
.lv-row.is-open .lv-row-body { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .85s var(--hb-ease), visibility 0s; }
.lv-row-inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 80px); min-height: 0; overflow: hidden; padding-left: calc(clamp(44px, 6vw, 108px) + clamp(14px, 1.6vw, 28px)); }
.lv-row-pic { position: relative; aspect-ratio: 16 / 10; margin-bottom: clamp(30px, 3.4vw, 56px); overflow: hidden; border-radius: var(--lv-radius); clip-path: inset(0 0 100% 0 round var(--lv-radius)); transition: clip-path 1.1s var(--lv-swift) .08s; }
.lv-row.is-open .lv-row-pic { clip-path: inset(0 round var(--lv-radius)); }
.lv-row-pic img { width: 100%; height: 100%; object-fit: cover; scale: 1.18; transition: scale 1.6s var(--hb-ease) .08s; }
.lv-row.is-open .lv-row-pic img { scale: 1; }
.lv-row-copy { display: grid; align-content: start; gap: 18px; padding-bottom: clamp(30px, 3.4vw, 56px); opacity: 0; translate: 0 26px; transition: opacity .5s, translate .9s var(--hb-ease); }
.lv-row.is-open .lv-row-copy { opacity: 1; translate: none; transition-delay: .3s; }
.lv-index.is-ready:not(.is-in) .lv-row::before { scale: 0 1; }
.lv-index.is-ready:not(.is-in) .lv-row-name > span { translate: 0 112%; }
.lv-float { position: fixed; z-index: 40; top: 0; left: 0; display: none; width: clamp(240px, 20vw, 340px); aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--lv-radius); pointer-events: none; transform: translate(-50%, -54%); translate: var(--fx, -999px) var(--fy, -999px); rotate: var(--fr, 0deg); scale: 0; transition: scale .55s var(--hb-ease); }
.lv-float.is-on { scale: 1; }
.lv-float-pic { position: absolute; inset: 0; clip-path: inset(100% 0 0 0); transition: clip-path .7s var(--lv-swift); }
.lv-float-pic.is-active { clip-path: inset(0); }
.lv-float-pic img { width: 100%; height: 100%; object-fit: cover; scale: 1.3; transition: scale 1s var(--hb-ease); }
.lv-float-pic.is-active img { scale: 1; }
@media (hover: hover) and (pointer: fine) { .lv-float { display: block; } }

/* ——— 02 · Le portail ——— */
.lv-portal { margin-inline: calc(-1 * var(--lv-bleed)); }
.lv-portal-pin { position: relative; }
.lv-scene { position: relative; overflow: hidden; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.lv-scene-media { position: absolute; inset: 0; }
.lv-scene-media img { width: 100%; height: 100%; object-fit: cover; will-change: scale; }
.lv-scene-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 19, 14, .84) 0%, rgba(8, 19, 14, .52) 32%, rgba(8, 19, 14, 0) 60%), linear-gradient(0deg, rgba(8, 19, 14, .45), rgba(8, 19, 14, 0) 36%); }
.lv-scene-copy { position: relative; z-index: 2; display: grid; align-content: end; justify-items: start; gap: 18px; width: calc(min(600px, 46vw) + var(--lv-bleed)); min-height: 100svh; padding: 130px 0 clamp(40px, 7svh, 80px) var(--lv-bleed); box-sizing: border-box; }
.lv-scene-copy h3 { font-size: clamp(52px, 6.2vw, 116px); line-height: .9; letter-spacing: -.065em; }
.lv-scene-more { display: grid; gap: 18px; }
.lv-scene .lv-copy { color: rgba(233, 237, 226, .8); }
.lv-scene-tag { position: absolute; z-index: 3; left: calc(67% + 16px); bottom: calc(9% + 16px); display: none; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border-radius: 10px; color: var(--hb-color-ink); background: rgba(233, 237, 226, .92); font: 500 14px/1 var(--hb-font-heading); letter-spacing: -.02em; opacity: 0; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.lv-scene-tag span { display: grid; place-items: center; min-width: 28px; height: 28px; border-radius: 6px; color: #fff; background: var(--hb-color-orange); font: 500 10px/1 var(--hb-font-body); letter-spacing: .08em; }
.lv-portal-index { position: absolute; z-index: 20; top: 128px; right: var(--lv-bleed); display: none; gap: 12px; color: var(--hb-color-paper); }
.lv-portal-index li { display: flex; align-items: center; justify-content: flex-end; gap: 12px; font: 500 11px/1 var(--hb-font-body); letter-spacing: .12em; opacity: .5; transition: opacity .4s; }
.lv-portal-index i { width: 22px; height: 2px; border-radius: 2px; background: currentColor; transition: width .6s var(--hb-ease), background-color .4s; }
.lv-portal-index li.is-active { opacity: 1; }
.lv-portal-index li.is-active i { width: 48px; background: var(--hb-color-orange); }
.lv-portal.is-pinned { height: calc(var(--n) * 100svh); }
.lv-portal.is-pinned .lv-portal-pin { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.lv-portal.is-pinned .lv-scene { position: absolute; inset: 0; z-index: var(--i); }
.lv-portal.is-pinned .lv-scene:not(:first-child) { clip-path: inset(50%); }
.lv-portal.is-pinned .lv-scene-tag { display: flex; }
.lv-portal.is-pinned .lv-portal-index { display: grid; }

/* ——— 03 · Le rideau ——— */
.lv-curtain { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(36px, 5.5vw, 110px); }
.lv-curtain-frame { position: sticky; top: 104px; height: calc(100svh - 128px); overflow: hidden; border-radius: var(--lv-radius); background: var(--hb-color-forest); container-type: inline-size; }
.lv-curtain-layer { position: absolute; inset: 0; z-index: var(--i, 0); }
.lv-slat { position: absolute; top: 0; bottom: 0; left: calc(var(--s) * 100cqw / var(--slats)); width: calc(100cqw / var(--slats) + 1px); overflow: hidden; clip-path: inset(0 0 100% 0); transition: clip-path 1.05s var(--lv-swift) calc(var(--s) * 55ms); }
.lv-slat:nth-child(even) { clip-path: inset(100% 0 0 0); }
.lv-slat img { position: absolute; top: 0; left: calc(var(--s) * -100cqw / var(--slats)); width: 100cqw; height: 100%; object-fit: cover; scale: 1.16; transition: scale 1.7s var(--hb-ease) calc(var(--s) * 55ms); }
.lv-curtain-layer.is-shown .lv-slat { clip-path: inset(0); }
.lv-curtain-layer.is-shown .lv-slat img { scale: 1; }
.lv-curtain-count { position: absolute; z-index: 20; left: 20px; bottom: 20px; display: flex; align-items: baseline; gap: 8px; padding: 12px 16px; border-radius: 10px; color: var(--hb-color-paper); background: rgba(16, 33, 25, .42); font: 500 12px/1 var(--hb-font-body); letter-spacing: .1em; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.lv-curtain-digits { display: grid; height: 1em; overflow: hidden; font: 500 30px/1 var(--hb-font-heading); letter-spacing: -.04em; }
.lv-curtain-digits b { font-weight: 500; translate: 0 calc(var(--k, 0) * -100%); transition: translate .9s var(--hb-ease); }
.lv-chapter { display: grid; align-content: center; justify-items: start; gap: 18px; min-height: calc(100svh - 128px); padding-block: 48px; transition: opacity .7s; }
.lv-curtain.is-ready .lv-chapter:not(.is-active) { opacity: .26; }
.lv-chapter-num { font: 500 clamp(84px, 9vw, 168px)/.8 var(--hb-font-heading); letter-spacing: -.07em; color: transparent; -webkit-text-stroke: 1.2px color-mix(in srgb, var(--hb-color-ink) 34%, transparent); transition: -webkit-text-stroke-color .6s; }
.lv-chapter.is-active .lv-chapter-num { -webkit-text-stroke-color: var(--hb-color-orange); }
.lv-chapter h3 { font-size: clamp(44px, 4.6vw, 86px); line-height: .92; letter-spacing: -.06em; }
.lv-chapter-pic { display: none; }

/* ——— 04 · Le tunnel ——— */
.lv-tunnel { margin-inline: calc(-1 * var(--lv-bleed)); color: var(--hb-color-paper); }
.lv-tunnel-pin { position: relative; isolation: isolate; overflow: hidden; background: #09160f; }
.lv-tunnel-pin::before { content: ''; position: absolute; inset: -4%; z-index: -1; background: radial-gradient(ellipse 60% 55% at 66% 50%, rgba(9, 22, 15, .35) 0%, rgba(9, 22, 15, .82) 60%, #09160f 100%), url('/assets/media/hero/canopy.webp') 66% 50% / cover; filter: blur(3px) saturate(.8); opacity: .9; }
.lv-tunnel-space { position: absolute; inset: 0; display: none; perspective: 900px; perspective-origin: 66% 50%; }
.lv-frame, .lv-leaf { position: absolute; top: 50%; left: 66%; will-change: transform, opacity; }
.lv-frame { --w: clamp(280px, 30vw, 520px); width: var(--w); aspect-ratio: 4 / 5; margin: calc(var(--w) * -.625) 0 0 calc(var(--w) / -2); overflow: hidden; border-radius: var(--lv-radius); background: #0b1a12; }
.lv-frame img { width: 100%; height: 100%; object-fit: cover; }
.lv-frame figcaption { position: absolute; left: 14px; bottom: 14px; display: flex; align-items: center; gap: 9px; padding: 7px 12px 7px 7px; border-radius: 9px; color: var(--hb-color-ink); background: rgba(233, 237, 226, .92); font: 500 13px/1 var(--hb-font-heading); }
.lv-frame figcaption span { display: grid; place-items: center; min-width: 24px; height: 24px; border-radius: 6px; color: #fff; background: var(--hb-color-orange); font: 500 10px/1 var(--hb-font-body); letter-spacing: .08em; }
.lv-leaf { --w: 52vw; width: var(--w); margin: calc(var(--w) * -.28) 0 0 calc(var(--w) / -2); }
.lv-leaf--b, .lv-leaf--d, .lv-leaf--f { --w: 24vw; margin-top: calc(var(--w) / -2); }
.lv-leaf img { width: 100%; height: auto; filter: brightness(.42) saturate(.85) blur(1.5px); }
.lv-tunnel-hud { position: relative; z-index: 5; display: grid; align-items: center; width: calc(min(560px, 42vw) + var(--lv-bleed)); min-height: 100svh; padding: 120px 0 90px var(--lv-bleed); box-sizing: border-box; }
.lv-tunnel-panel { grid-area: 1 / 1; display: grid; justify-items: start; gap: 16px; }
.lv-tunnel-panel h3 { font-size: clamp(48px, 5.2vw, 96px); line-height: .9; letter-spacing: -.065em; }
.lv-tunnel .lv-copy { color: rgba(233, 237, 226, .78); }
.lv-tunnel-still { position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--lv-radius); }
.lv-tunnel-still img { width: 100%; height: 100%; object-fit: cover; }
.lv-tunnel-meter { position: absolute; z-index: 6; right: var(--lv-bleed); bottom: 40px; display: none; align-items: center; gap: 14px; font: 500 11px/1 var(--hb-font-body); letter-spacing: .14em; font-variant-numeric: tabular-nums; }
.lv-tunnel-meter i { position: relative; width: 150px; height: 2px; overflow: hidden; border-radius: 2px; background: rgba(233, 237, 226, .22); }
.lv-tunnel-meter b { position: absolute; inset: 0; background: var(--hb-color-orange); transform-origin: 0 50%; scale: var(--p, 0) 1; }
.lv-tunnel:not(.is-pinned) .lv-tunnel-hud { width: auto; gap: 72px; padding-right: var(--lv-bleed); padding-block: 90px; }
.lv-tunnel:not(.is-pinned) .lv-tunnel-panel { grid-area: auto; }
.lv-tunnel.is-pinned { height: calc(var(--n) * 110svh); }
.lv-tunnel.is-pinned .lv-tunnel-pin { position: sticky; top: 0; height: 100svh; }
.lv-tunnel.is-pinned .lv-tunnel-space { display: block; }
.lv-tunnel.is-pinned .lv-tunnel-meter { display: flex; }
.lv-tunnel.is-pinned .lv-tunnel-still { display: none; }
.lv-tunnel.is-pinned .lv-tunnel-panel { visibility: hidden; transition: visibility 0s linear .45s; }
.lv-tunnel.is-pinned .lv-tunnel-panel > * { opacity: 0; translate: 0 28px; transition: opacity .35s, translate .5s var(--hb-ease); }
.lv-tunnel.is-pinned .lv-tunnel-panel.is-active { visibility: visible; transition: none; }
.lv-tunnel.is-pinned .lv-tunnel-panel.is-active > * { opacity: 1; translate: none; transition: opacity .6s, translate 1s var(--hb-ease); }
.lv-tunnel.is-pinned .lv-tunnel-panel.is-active > :nth-child(3) { transition-delay: .05s; }
.lv-tunnel.is-pinned .lv-tunnel-panel.is-active > :nth-child(4) { transition-delay: .12s; }
.lv-tunnel.is-pinned .lv-tunnel-panel.is-active > :nth-child(5) { transition-delay: .18s; }
.lv-tunnel.is-pinned .lv-tunnel-panel.is-active > :nth-child(n + 6) { transition-delay: .24s; }

/* ——— 05 · Le carrousel ——— */
.lv-carousel { margin-inline: calc(-1 * var(--lv-bleed)); }
.lv-carousel-track { display: flex; gap: clamp(14px, 1.4vw, 24px); padding: 0 var(--lv-bleed) 4px; overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: auto; scroll-padding-inline: var(--lv-bleed); scrollbar-width: none; outline-offset: -3px; }
.lv-carousel-track::-webkit-scrollbar { display: none; }
.lv-carousel-track.is-dragging { user-select: none; }
.hb-instinct--services .lv-carousel { margin-inline-start: 0; }
.hb-instinct--services :is(.lv-carousel-track, .lv-carousel-bar) { padding-inline-start: 0; }
.hb-instinct--services .lv-carousel-track { scroll-padding-inline-start: 0; }
.lv-poster { position: relative; isolation: isolate; display: flex; flex: 0 0 clamp(290px, 31vw, 500px); flex-direction: column; justify-content: space-between; aspect-ratio: 3 / 4.2; overflow: hidden; border-radius: var(--lv-radius); color: var(--hb-color-paper); background: var(--hb-color-forest); }
.lv-poster-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.lv-poster-media img { width: 120%; height: 100%; margin-left: -10%; object-fit: cover; translate: var(--px, 0) 0; transition: scale 1.2s var(--hb-ease); pointer-events: none; }
.lv-poster-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8, 19, 14, .88) 0%, rgba(8, 19, 14, .45) 36%, rgba(8, 19, 14, 0) 60%), linear-gradient(180deg, rgba(8, 19, 14, .35), rgba(8, 19, 14, 0) 22%); }
.lv-poster:hover .lv-poster-media img { scale: 1.05; }
.lv-poster-top { display: flex; justify-content: space-between; padding: 18px; font: 500 11px/1 var(--hb-font-body); letter-spacing: .16em; text-transform: uppercase; }
.lv-poster-top span { padding: 8px 10px; border-radius: 7px; background: rgba(233, 237, 226, .16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.lv-poster-foot { display: grid; gap: 12px; padding: clamp(22px, 2vw, 32px); }
.lv-poster h3 { font-size: clamp(36px, 3.3vw, 60px); line-height: .92; letter-spacing: -.06em; }
.lv-poster-foot > p { font: 500 17px/1.25 var(--hb-font-heading); letter-spacing: -.02em; opacity: .84; }
.lv-poster-open { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; padding-top: 14px; border-top: 1px solid rgba(233, 237, 226, .24); color: inherit; font: 500 13px/1 var(--hb-font-body); text-align: left; cursor: inherit; }
.lv-poster-open::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.lv-poster-open:focus-visible { outline: none; }
.lv-poster-open:focus-visible::after { outline: 2px solid var(--hb-color-orange); outline-offset: -4px; }
.lv-poster-open i { position: relative; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(233, 237, 226, .4); transition: background-color .4s, border-color .4s, rotate .6s var(--hb-ease); }
.lv-poster-open i::before, .lv-poster-open i::after, .lv-detail-close i::before, .lv-detail-close i::after { content: ''; position: absolute; top: 50%; left: 50%; width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; background: currentColor; }
.lv-poster-open i::after { rotate: 90deg; }
.lv-poster:hover .lv-poster-open i { border-color: var(--hb-color-orange); background: var(--hb-color-orange); rotate: 90deg; }
.lv-carousel-bar { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); margin-top: 28px; padding-inline: var(--lv-bleed); }
.lv-carousel-count { font: 500 12px/1 var(--hb-font-body); letter-spacing: .14em; font-variant-numeric: tabular-nums; }
.lv-carousel-progress { position: relative; flex: 1; height: 2px; overflow: hidden; border-radius: 2px; background: var(--lv-line); }
.lv-carousel-progress i { position: absolute; inset: 0; background: var(--hb-color-ink); transform-origin: 0 50%; scale: var(--p, .2) 1; transition: scale .25s; }
.lv-carousel-arrows {
  --lv-arrow-color: var(--hb-color-ink);
  --lv-arrow-hover-text: var(--hb-color-paper);
  display: flex;
  gap: 8px;
}
.lv-carousel-arrows--on-dark {
  --lv-arrow-color: var(--hb-color-paper);
  --lv-arrow-hover-text: var(--hb-color-forest);
}
.lv-carousel-arrows button { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 10px; border: 1px solid color-mix(in srgb, var(--lv-arrow-color) 16%, transparent); color: var(--lv-arrow-color); transition: background-color .35s, color .35s, border-color .35s; }
.lv-carousel-arrows button:not(:disabled):hover { border-color: var(--lv-arrow-color); background: var(--lv-arrow-color); color: var(--lv-arrow-hover-text); }
.lv-carousel-arrows svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.lv-carousel-arrows button:first-child svg { rotate: 180deg; }
.hb-instinct__work-controls .hb-instinct__ghost:only-child { margin-left: 0; }
.hb-instinct__reel-bar { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); margin: clamp(16px, 2vw, 28px) var(--hb-gutter) 0; }
.hb-instinct__reel-bar .hb-instinct__reel-track { flex: 1; margin: 0; }
.lv-cursor { position: fixed; z-index: 60; top: 0; left: 0; display: none; place-items: center; width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%; color: #fff; background: var(--hb-color-orange); font: 500 13px/1 var(--hb-font-body); pointer-events: none; translate: var(--cx, -200px) var(--cy, -200px); scale: 0; transition: scale .45s var(--hb-ease); }
.lv-cursor.is-on { scale: 1; }
.lv-cursor.is-down { scale: .8; }
@media (hover: hover) and (pointer: fine) {
  .lv-carousel-track { cursor: none; }
  .lv-cursor { display: grid; }
}
@media (pointer: coarse) {
  .lv-carousel-track { scroll-snap-type: x mandatory; }
  .lv-poster { scroll-snap-align: start; }
}
.lv-detail { width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: 0; border: 0; overflow: hidden; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.lv-detail::backdrop { background: rgba(8, 19, 14, .7); }
.lv-detail[open], .lv-detail[open]::backdrop { animation: lv-detail-in .5s var(--hb-ease); }
html.lv-vt .lv-detail[open], html.lv-vt .lv-detail[open]::backdrop { animation: none; }
@keyframes lv-detail-in { from { opacity: 0; } }
@media (prefers-reduced-motion: no-preference) {
  .hb-instinct--services .lv-detail[open] { animation: none; background: transparent; }
  .hb-instinct--services .lv-detail[open]::backdrop { animation-duration: .28s; }
  .hb-instinct--services .lv-detail-item:not([hidden]) { animation: lv-detail-in .28s var(--hb-ease); }
}
.lv-detail-flight { position: absolute; z-index: 2; object-fit: cover; pointer-events: none; }
.lv-detail-media.is-expanding > img { visibility: hidden; }
.lv-detail-item { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); height: 100%; color: var(--ink); background: var(--bg); }
.lv-detail-item[hidden] { display: none; }
.lv-detail-media { position: relative; overflow: hidden; }
.lv-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.lv-detail-copy { display: grid; align-content: center; justify-items: start; gap: 18px; padding: 100px clamp(28px, 6vw, 110px) 60px; overflow-y: auto; }
.lv-detail-copy h3 { font-size: clamp(48px, 5.4vw, 100px); line-height: .9; letter-spacing: -.065em; }
.lv-detail-close { position: absolute; z-index: 3; top: 22px; right: 22px; width: 56px; height: 56px; border-radius: 10px; color: var(--hb-color-ink); background: rgba(233, 237, 226, .94); transition: background-color .35s, color .35s; }
.lv-detail-close:hover { color: #fff; background: var(--hb-color-orange); }
.lv-detail-close i::before, .lv-detail-close i::after { width: 18px; margin-left: -9px; }
.lv-detail-close i::before { rotate: 45deg; }
.lv-detail-close i::after { rotate: -45deg; }
html:has(.lv-detail[open]) { overflow: hidden; }
::view-transition-group(lv-detail-media) { animation-duration: .75s; animation-timing-function: cubic-bezier(.22, 1, .36, 1); }
::view-transition-old(lv-detail-media), ::view-transition-new(lv-detail-media) { height: 100%; object-fit: cover; }

/* Barre de comparaison des blocs */
.hb-lv-compare { position: fixed; z-index: 45; right: 18px; bottom: max(16px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 2px; padding: 4px; border-radius: 9px; color: var(--hb-color-ink); background: rgba(233, 237, 226, .92); border: 1px solid rgba(16, 33, 25, .1); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); font-family: var(--hb-font-body); }
.hb-lv-compare > span { margin: 0 9px; font-size: 10px; font-weight: 500; }
.hb-lv-compare a { display: grid; place-items: center; width: 37px; height: 36px; border-radius: 5px; font-size: 11px; font-weight: 500; }
.hb-lv-compare a:hover { background: #d3ddc8; }
.hb-lv-compare a[aria-current='page'] { color: var(--hb-color-paper); background: var(--hb-color-forest); }

/* ——— Adaptations ——— */
@media (max-width: 1023px) {
  .lv-curtain { grid-template-columns: minmax(0, 1fr); }
  .lv-curtain-stage { display: none; }
  .lv-curtain.is-ready .lv-chapter:not(.is-active) { opacity: 1; }
  .lv-chapter { min-height: 0; padding-block: 0 64px; }
  .lv-chapter-pic { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3.3; margin-bottom: 8px; overflow: hidden; border-radius: var(--lv-radius); background: var(--hb-color-forest); container-type: inline-size; }
  .lv-chapter-num { display: none; }
  .lv-tunnel-space { perspective-origin: 50% 32%; }
  .lv-frame, .lv-leaf { left: 50%; top: 32%; }
  .lv-frame { --w: clamp(200px, 40vw, 320px); }
  .lv-tunnel.is-pinned .lv-tunnel-hud { align-items: end; width: auto; padding: 0 var(--lv-bleed) 84px; }
  .lv-tunnel.is-pinned .lv-tunnel-hud::before { content: ''; position: absolute; inset: 30% 0 0; z-index: -1; background: linear-gradient(0deg, #09160f 0%, rgba(9, 22, 15, .9) 55%, rgba(9, 22, 15, 0)); }
  .lv-tunnel.is-pinned .lv-list { display: none; }
  .lv-tunnel-meter { left: var(--lv-bleed); right: auto; bottom: 34px; }
  .lv-detail-item { grid-template-columns: minmax(0, 1fr); grid-template-rows: 46svh auto; overflow-y: auto; }
  .lv-detail-copy { align-content: start; padding: 36px var(--lv-bleed) 48px; overflow: visible; }
}
@media (max-width: 760px) {
  .lv { --lv-bleed: var(--hb-gutter-mobile); }
  .lv-list { grid-template-columns: minmax(0, 1fr); }
  .lv-row-head { grid-template-columns: 26px minmax(0, 1fr) 42px; gap: 12px; padding-block: 20px; }
  .lv-row-num { padding-top: .7em; }
  .lv-row-name { font-size: clamp(30px, 8.6vw, 44px); white-space: normal; }
  .lv-row-name > span::after { display: none; }
  .lv-row-verb { display: none; }
  .lv-row-plus { width: 42px; height: 42px; }
  .lv-row-plus::before, .lv-row-plus::after { width: 14px; margin-left: -7px; }
  .lv-row-inner { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-left: 0; }
  .lv-row-pic { margin-bottom: 0; }
  .lv-scene-copy { width: auto; gap: 14px; padding: 120px var(--lv-bleed) 40px; }
  .lv-scene-copy h3 { font-size: clamp(40px, 11.5vw, 52px); }
  .lv-scene-media::after { background: linear-gradient(0deg, rgba(8, 19, 14, .9) 0%, rgba(8, 19, 14, .6) 38%, rgba(8, 19, 14, 0) 68%); }
  .lv-portal.is-pinned .lv-scene-more { display: none; }
  .lv-scene-tag { left: calc(30% + 12px); bottom: calc(52% + 12px); font-size: 13px; }
  .lv-portal.is-pinned .lv-portal-index { display: none; }
  .lv-chapter h3, .lv-tunnel-panel h3, .lv-detail-copy h3 { font-size: clamp(38px, 11vw, 50px); }
  .lv-tunnel.is-pinned .lv-tunnel-panel .lv-copy { font-size: 14.5px; line-height: 1.5; }
  .lv-poster { flex-basis: 80vw; }
  .hb-instinct--services #lv-poster-geo { font-size: clamp(28px, calc(14vw - 16px), 36px); }
  .hb-instinct--services .lv-carousel-bar { padding-bottom: 20px; }
  .lv-carousel-arrows button { width: 46px; height: 46px; }
  .hb-instinct__reel-bar { margin-inline: var(--hb-gutter-mobile); }
  .hb-lv-compare { right: 9px; bottom: max(8px, env(safe-area-inset-bottom)); }
  .hb-lv-compare a { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .lv *, .lv *::before, .lv *::after { transition-duration: .01ms !important; transition-delay: 0s !important; }
  .lv-detail[open], .lv-detail[open]::backdrop { animation: none; }
  .hb-instinct__reel-bar button { transition: none; }
}

/* Titles and promises move from the card to its dialog and back. */
[data-lv-heading-slot] { display: none; }
.lv-detail-copy > h3 + p { font: 500 clamp(20px, 1.6vw, 26px)/1.15 var(--hb-font-heading); letter-spacing: -.035em; }
