/* BitHub Studio v2 · pagine servizio (body.bhs). Si appoggia ai token di bh.css. */
.bhs-page { --acc: #6416c8; }
.bhs-crumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; color: var(--bh-faint); font-size: 13px; }
.bhs-crumb a { color: var(--bh-muted); text-decoration: none; } .bhs-crumb a:hover { color: var(--bh-ink); }

/* ---------- hero ---------- */
.bhs-hero { position: relative; padding: 130px 0 9vh; }
.bhs-hero-in { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 4vw; min-height: calc(100vh - 170px); }
.bhs-h1 { margin: 0; font-size: clamp(50px, 6.6vw, 112px); font-weight: 650; line-height: .92; letter-spacing: -.055em; }
.bhs-teaser { max-width: 560px; margin: 26px 0 0; color: var(--bh-ink-2); font-size: clamp(19px, 1.5vw, 23px); line-height: 1.45; }
.bhs-claim { max-width: 520px; margin: 14px 0 0; color: var(--bh-muted); font-size: 16px; line-height: 1.6; }
.bhs-hero .bh-hero-ctas { margin-top: 34px; }
.bhs-facts { display: flex; flex-wrap: wrap; gap: 26px; margin: 40px 0 0; padding: 22px 0 0; border-top: 1px solid var(--bh-line); list-style: none; }
.bhs-facts li { display: grid; gap: 2px; } .bhs-facts b { font-size: 22px; letter-spacing: -.03em; } .bhs-facts span { color: var(--bh-muted); font-size: 13px; }
.bhs-visual { position: relative; height: min(70vh, 640px); perspective: 1400px; }
.bhs-chips { position: absolute; inset: 0; pointer-events: none; }
.bhs-chips .bh-chip { position: absolute; animation: bhs-bob 6s ease-in-out infinite; animation-delay: calc(var(--i) * -1.4s); }
.bhs-chips .bh-chip:nth-child(1) { left: 2%; top: 14%; } .bhs-chips .bh-chip:nth-child(2) { right: 0; top: 30%; --c: var(--bh-amber); }
.bhs-chips .bh-chip:nth-child(3) { left: 8%; bottom: 14%; --c: #16a37a; } .bhs-chips .bh-chip:nth-child(4) { right: 8%; bottom: 6%; --c: #3b82f6; }
@keyframes bhs-bob { 50% { transform: translateY(-14px); } }
.bhs-disc { position: absolute; inset: 6%; border-radius: 50%; background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,255,255,.3) 48%, color-mix(in srgb, var(--acc) 18%, transparent) 70%, transparent 72%); box-shadow: 0 60px 120px -60px color-mix(in srgb, var(--acc) 60%, transparent); }
.bhs-v-particles .bh-particles { position: absolute; inset: 0; --pc1: #3a138f; --pc2: #8b5cf6; --pc3: #f2a93b; }

/* terminale */
.bhs-win { position: absolute; left: 4%; right: 4%; top: 18%; border-radius: 22px; overflow: hidden; transform: rotateY(-12deg) rotateX(6deg); }
.bh-glass--dark.bhs-win, .bhs-win { background: linear-gradient(160deg, #1d1638, #120d24); color: #e9e4ff; box-shadow: var(--bh-shadow-lg); }
.bhs-win-bar { display: flex; align-items: center; gap: 7px; padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.bhs-win-bar i { width: 11px; height: 11px; border-radius: 50%; background: #ff6b6b; } .bhs-win-bar i:nth-child(2) { background: #ffd166; } .bhs-win-bar i:nth-child(3) { background: #6ee7a8; }
.bhs-win-bar span { margin-left: 10px; color: #9b93c4; font: 500 12px ui-monospace, Menlo, monospace; }
.bhs-code { padding: 20px 22px 26px; font: 500 clamp(12px, 1vw, 15px)/1.9 ui-monospace, "SF Mono", Menlo, monospace; }
.bhs-code p { margin: 0; white-space: nowrap; overflow: hidden; opacity: 0; transform: translateX(-8px); animation: bhs-type .6s var(--bh-ease) forwards; animation-delay: calc(var(--i) * .45s + .5s); }
.bhs-code b { display: inline-block; width: 2.2em; color: #5c5480; font-weight: 400; }
.bhs-code .k { color: #f2a93b; } .bhs-code .s { color: #d9f36a; } .bhs-code .c { color: #7d7598; } .bhs-code .f { color: #8fd3ff; }
@keyframes bhs-type { to { opacity: 1; transform: none; } }

/* SERP */
.bhs-serp { position: absolute; left: 0; right: 10%; top: 10%; padding: 20px; border-radius: 24px; transform: rotateY(10deg) rotateX(4deg); }
.bhs-serp-q { display: flex; gap: 10px; padding: 13px 16px; border-radius: 99px; background: #fff; box-shadow: 0 6px 18px -10px rgba(50,30,110,.4); font-weight: 600; font-size: 15px; } .bhs-serp-q span { color: var(--acc); }
.bhs-serp-r { position: relative; display: grid; gap: 4px; margin-top: 12px; padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.55); animation: bhs-rank 7s var(--bh-ease) infinite; animation-delay: calc(var(--i) * .1s); }
.bhs-serp-r small { color: #16a37a; font-size: 12px; } .bhs-serp-r b { color: #1a3bb5; font-size: 16px; font-weight: 600; }
.bhs-serp-r i { height: 7px; border-radius: 4px; background: var(--bh-line); } .bhs-serp-r i.s { width: 70%; }
.bhs-serp-r.me { background: #fff; box-shadow: 0 0 0 2px color-mix(in srgb, var(--acc) 50%, transparent), var(--bh-shadow); animation-name: bhs-climb; }
@keyframes bhs-climb { 0%, 12% { transform: translateY(330%); } 40%, 100% { transform: none; } }
@keyframes bhs-rank { 0%, 12% { transform: translateY(-100%); } 40%, 100% { transform: none; } }
.bhs-rank { position: absolute; right: 0; bottom: 8%; display: grid; padding: 18px 22px; border-radius: 22px; transform: translateZ(60px); }
.bhs-rank small { color: var(--bh-muted); font-size: 12px; } .bhs-rank b { font-size: 46px; letter-spacing: -.04em; line-height: 1; } .bhs-rank span { color: #16a37a; font-size: 13px; font-weight: 600; }

/* grafico */
.bhs-chart { position: absolute; left: 4%; right: 4%; top: 12%; padding: 26px; border-radius: 26px; }
.bhs-chart-head { display: flex; justify-content: space-between; align-items: baseline; } .bhs-chart-head small { color: var(--bh-muted); } .bhs-chart-head b { font-size: 34px; letter-spacing: -.04em; }
.bhs-bars { display: flex; align-items: end; gap: 12px; height: 240px; margin-top: 24px; }
.bhs-bars i { flex: 1; height: calc(var(--h) * 1%); border-radius: 10px 10px 4px 4px; background: linear-gradient(180deg, var(--acc), color-mix(in srgb, var(--acc) 40%, #fff)); transform-origin: 50% 100%; transform: scaleY(0); animation: bhs-grow 1.4s var(--bh-ease) forwards; animation-delay: calc(var(--i) * .12s + .4s); box-shadow: inset 0 1px 0 rgba(255,255,255,.5); }
.bhs-bars i:last-child { background: linear-gradient(180deg, var(--bh-amber), #ffd7b8); }
@keyframes bhs-grow { to { transform: none; } }
.bhs-chart svg { position: absolute; left: 26px; right: 26px; bottom: 26px; width: calc(100% - 52px); height: 240px; overflow: visible; }
.bhs-chart path { fill: none; stroke: var(--bh-ink); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: bhs-draw 2s var(--bh-ease) 1.2s forwards; vector-effect: non-scaling-stroke; }
@keyframes bhs-draw { to { stroke-dashoffset: 0; } }
.bhs-kpis { position: absolute; left: 0; right: 0; bottom: 4%; display: flex; justify-content: center; gap: 10px; }
.bhs-kpis .bh-chip { animation: bhs-bob 5s ease-in-out infinite; animation-delay: calc(var(--i) * -1.2s); } .bhs-kpis .bh-chip:nth-child(2) { --c: var(--bh-amber); } .bhs-kpis .bh-chip:nth-child(3) { --c: #16a37a; }

/* feed */
.bhs-feed { position: absolute; left: 0; top: 8%; width: 70%; display: grid; gap: 12px; }
.bhs-feed-row { display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 14px; padding: 12px 16px 12px 12px; border-radius: 18px; animation: bhs-flow 6s var(--bh-ease) infinite; animation-delay: calc(var(--i) * .5s); }
.bhs-feed-row i { aspect-ratio: 1; border-radius: 12px; background: linear-gradient(135deg, color-mix(in srgb, var(--acc) 30%, #fff), #ffd7b8); }
.bhs-feed-row b { font-size: 15px; } .bhs-feed-row span { padding: 5px 10px; border-radius: 99px; font-size: 12px; font-weight: 700; }
.bhs-feed-row .ok { background: #dcf7ea; color: #0f7a55; } .bhs-feed-row .warn { background: #fff0d6; color: #a05a00; }
@keyframes bhs-flow { 0% { transform: translateX(-20px); opacity: 0; } 12%, 70% { transform: none; opacity: 1; } 100% { transform: translateX(60px); opacity: 0; } }
.bhs-feed-dest { position: absolute; right: 0; bottom: 10%; width: 52%; padding: 22px; border-radius: 22px; background: linear-gradient(160deg, #1d1638, #120d24); color: #fff; box-shadow: var(--bh-shadow-lg); }
.bhs-feed-dest small { color: #a49dc4; } .bhs-feed-dest b { display: block; margin: 4px 0 14px; font-size: 24px; }
.bhs-meter { height: 10px; border-radius: 6px; background: rgba(255,255,255,.12); overflow: hidden; } .bhs-meter i { display: block; height: 100%; width: 92%; border-radius: inherit; background: linear-gradient(90deg, #6ee7a8, #d9f36a); transform-origin: 0; animation: bhs-grow-x 2s var(--bh-ease) .6s both; }
@keyframes bhs-grow-x { from { transform: scaleX(0); } }

/* chat */
.bhs-phone { position: absolute; left: 50%; top: 50%; width: min(320px, 70%); aspect-ratio: 9 / 17; padding: 12px; border-radius: 44px; background: #15102a; box-shadow: var(--bh-shadow-lg); transform: translate(-50%, -50%) rotate(-5deg); }
.bhs-phone-in { display: flex; flex-direction: column; justify-content: end; gap: 10px; height: 100%; padding: 18px 14px; border-radius: 34px; background: linear-gradient(180deg, #f6f3ff, #fff); overflow: hidden; }
.bhs-phone-in p { max-width: 84%; margin: 0; padding: 10px 14px; border-radius: 18px; font-size: 13.5px; line-height: 1.4; opacity: 0; transform: translateY(12px) scale(.96); animation: bhs-msg .5s var(--bh-ease) forwards; animation-delay: calc(var(--i) * 1.1s + .4s); }
.bhs-phone-in .m-u { align-self: end; background: var(--acc); color: #fff; border-bottom-right-radius: 6px; }
.bhs-phone-in .m-b { background: #fff; box-shadow: 0 6px 16px -10px rgba(50,30,110,.4); border-bottom-left-radius: 6px; }
.bhs-phone-in .m-typing { display: flex; gap: 4px; width: auto; background: #fff; } .m-typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--bh-faint); animation: bhs-dot 1s infinite; } .m-typing i:nth-child(2) { animation-delay: .15s; } .m-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes bhs-msg { to { opacity: 1; transform: none; } } @keyframes bhs-dot { 50% { transform: translateY(-4px); opacity: .4; } }

/* telefoni */
.bhs-device { position: absolute; top: 50%; left: 50%; width: min(210px, 32%); aspect-ratio: 9 / 18.5; padding: 9px; border-radius: 38px; background: #15102a; box-shadow: var(--bh-shadow-lg); transform: translate(-50%, -50%) translateX(var(--x, 0)) rotateY(var(--ry, 0deg)) translateZ(var(--tz, 0)); }
.bhs-device.d0 { --x: -62%; --ry: 24deg; --tz: -80px; opacity: .9; } .bhs-device.d2 { --x: 62%; --ry: -24deg; --tz: -80px; opacity: .9; } .bhs-device.d1 { z-index: 2; animation: bhs-float 6s ease-in-out infinite; }
@keyframes bhs-float { 50% { translate: 0 -16px; } }
.bhs-device-in { height: 100%; border-radius: 30px; background: #fff; overflow: hidden; }
.u-app { display: grid; gap: 10px; padding: 34px 14px 14px; height: 100%; align-content: start; }
.u-app i { height: 46px; border-radius: 14px; background: #f0ecfa; } .u-app .top { height: 14px; width: 50%; } .u-app .hero { height: 130px; background: linear-gradient(135deg, var(--acc), #b38cff); } .u-app .cta { height: 40px; border-radius: 99px; background: #f6d64a; }
.u-app.alt .hero { background: linear-gradient(135deg, #ffd7b8, var(--bh-amber)); }

/* scudo (cyber, tema scuro) */
.bhs-shield { position: absolute; left: 50%; top: 44%; width: min(360px, 62%); aspect-ratio: 200 / 230; transform: translate(-50%, -50%); }
.bhs-shield svg { position: relative; z-index: 2; width: 100%; overflow: visible; filter: drop-shadow(0 30px 60px rgba(100,22,200,.55)); }
.bhs-shield .s1 { fill: rgba(167,139,250,.08); stroke: url(#shg); stroke-width: 3; }
.bhs-shield .s2 { fill: rgba(59,130,246,.1); stroke: rgba(167,139,250,.5); stroke-width: 1.5; stroke-dasharray: 6 6; animation: bh-dash 1.4s linear infinite; }
.bhs-shield .ck { fill: none; stroke: #6ee7a8; stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 120; stroke-dashoffset: 120; animation: bhs-ck 1.2s var(--bh-ease) 1s forwards; }
@keyframes bhs-ck { to { stroke-dashoffset: 0; } }
.bhs-shield .ring { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(167,139,250,.35); border-radius: 50%; transform: translate(-50%, -50%) rotateX(70deg); }
.bhs-shield .r1 { width: 150%; aspect-ratio: 1; animation: bhs-spin 14s linear infinite; border-style: dashed; } .bhs-shield .r2 { width: 190%; aspect-ratio: 1; border-color: rgba(59,130,246,.25); animation: bhs-spin 22s linear infinite reverse; } .bhs-shield .r3 { width: 120%; aspect-ratio: 1; border-color: rgba(110,231,168,.3); }
@keyframes bhs-spin { to { transform: translate(-50%, -50%) rotateX(70deg) rotateZ(360deg); } }
.bhs-shield .scan { position: absolute; left: -10%; right: -10%; top: 0; z-index: 3; height: 3px; background: linear-gradient(90deg, transparent, #6ee7a8, transparent); box-shadow: 0 0 20px #6ee7a8; animation: bhs-scan 3.2s ease-in-out infinite; }
@keyframes bhs-scan { 0%, 100% { top: 6%; opacity: 0; } 10%, 90% { opacity: 1; } 50% { top: 90%; } }
.bhs-log { position: absolute; left: 0; right: 0; bottom: 0; padding: 16px 20px; border-radius: 20px; font: 500 13px/1.9 ui-monospace, Menlo, monospace; }
.bhs-log p { margin: 0; opacity: 0; animation: bhs-type .5s var(--bh-ease) forwards; animation-delay: calc(var(--i) * .5s + 1.2s); }
.bhs-log b { display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; } .bhs-log .g { background: #6ee7a8; } .bhs-log .w { background: #ffd166; }

/* consenso */
.bhs-consent { position: absolute; left: 8%; right: 8%; top: 12%; padding: 26px; border-radius: 26px; }
.bhs-consent > b { font-size: 20px; } .bhs-consent p { margin: 8px 0 16px; color: var(--bh-muted); font-size: 14px; }
.bhs-tog { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--bh-line); font-weight: 600; }
.bhs-tog i { position: relative; width: 46px; height: 26px; border-radius: 99px; background: #e4def4; transition: background .3s; } .bhs-tog i::after { content: ""; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.2); transition: transform .4s var(--bh-ease); }
.bhs-tog i.on { background: var(--acc); } .bhs-tog i.on::after { transform: translateX(20px); } .bhs-tog i.lock { opacity: .6; }
.bhs-tog:nth-child(5) i { animation: bhs-toggle 4s var(--bh-ease) infinite; } .bhs-tog:nth-child(5) i::after { animation: bhs-knob 4s var(--bh-ease) infinite; }
@keyframes bhs-toggle { 40%, 80% { background: var(--acc); } } @keyframes bhs-knob { 40%, 80% { transform: translateX(20px); } }
.bhs-consent-btns { display: flex; gap: 10px; margin-top: 16px; } .bhs-consent-btns span { flex: 1; padding: 12px; border-radius: 99px; text-align: center; font-weight: 600; box-shadow: inset 0 0 0 1px var(--bh-line-2); } .bhs-consent-btns .p { background: var(--bh-ink); color: #fff; box-shadow: none; }
.bhs-badges { position: absolute; left: 0; right: 0; bottom: 4%; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; } .bhs-badges .bh-chip:nth-child(2) { --c: var(--bh-amber); } .bhs-badges .bh-chip:nth-child(3) { --c: #16a37a; }

/* ricerca */
.bhs-sbox { position: absolute; left: 4%; right: 4%; top: 10%; display: flex; gap: 12px; align-items: center; padding: 18px 22px; border-radius: 99px; font-size: 17px; font-weight: 600; }
.bhs-sbox span { color: var(--acc); font-size: 22px; } .bhs-sbox em { font-style: normal; } .bhs-sbox em::after { content: "|"; margin-left: 2px; color: var(--acc); animation: bhs-blink 1s steps(1) infinite; }
@keyframes bhs-blink { 50% { opacity: 0; } }
.bhs-sres { position: absolute; left: 4%; right: 4%; top: 30%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.bhs-scard { display: grid; gap: 6px; padding: 12px 12px 16px; border-radius: 20px; opacity: 0; transform: translateY(30px); animation: bhs-msg .7s var(--bh-ease) forwards; animation-delay: calc(var(--i) * .2s + 2.4s); }
.bhs-scard i { aspect-ratio: 1; border-radius: 14px; background: linear-gradient(135deg, color-mix(in srgb, var(--acc) 25%, #fff), #ffd7b8); }
.bhs-scard b { font-size: 15px; } .bhs-scard small { color: var(--bh-muted); font-size: 12px; } .bhs-scard span { color: #16a37a; font-size: 12px; font-weight: 700; }

/* catalogo AI */
.bhs-prod { position: absolute; left: 8%; top: 8%; width: 62%; padding: 16px 16px 20px; border-radius: 26px; }
.bhs-prod-img { aspect-ratio: 4 / 3; border-radius: 18px; background: linear-gradient(135deg, #ece6ff, #ffe7d4); display: grid; place-items: center; }
.bhs-prod-img i { width: 46%; aspect-ratio: .8; border-radius: 40% 40% 12px 12px; background: linear-gradient(160deg, #2b3a8f, #15102a); box-shadow: 0 20px 30px -14px rgba(20,10,60,.5); }
.bhs-prod > b { display: block; margin: 14px 4px 10px; font-size: 18px; }
.bhs-tags { display: flex; flex-wrap: wrap; gap: 6px; } .bhs-tags span { padding: 6px 10px; border-radius: 99px; background: color-mix(in srgb, var(--acc) 10%, #fff); color: var(--acc); font-size: 12px; font-weight: 600; opacity: 0; transform: scale(.7); animation: bhs-msg .45s cubic-bezier(.34,1.56,.64,1) forwards; animation-delay: calc(var(--i) * .3s + .8s); }
.bhs-ai { position: absolute; right: 2%; bottom: 12%; padding: 20px 22px; border-radius: 22px; background: linear-gradient(160deg, #1d1638, #120d24); color: #fff; box-shadow: var(--bh-shadow-lg); } .bhs-ai small { color: #a49dc4; } .bhs-ai b { display: block; font-size: 20px; }

/* mappa */
.bhs-map { position: absolute; inset: 6% 2%; border-radius: 30px; overflow: hidden; background: linear-gradient(#f6f3ff 0 0); }
.bhs-map svg { position: absolute; inset: 0; width: 100%; height: 100%; } .bhs-map path { fill: none; stroke: #ddd3fa; stroke-width: 12; } .bhs-map path.r { stroke: #fff; stroke-width: 18; }
.bhs-pin { position: absolute; width: 18px; height: 18px; margin: -9px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 0 6px color-mix(in srgb, var(--acc) 18%, transparent); opacity: 0; animation: bhs-msg .5s var(--bh-ease) forwards; animation-delay: var(--d, 0s); }
.bhs-pin.main { width: 26px; height: 26px; margin: -13px; background: var(--bh-ink); animation-delay: 0s; }
.bhs-pin.main b { position: absolute; left: 50%; bottom: 150%; padding: 8px 14px; border-radius: 12px; background: var(--bh-ink); color: #fff; font-size: 14px; white-space: nowrap; transform: translateX(-50%); }
.bhs-radar { position: absolute; left: 52%; top: 46%; width: 60%; aspect-ratio: 1; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--acc) 30%, transparent); transform: translate(-50%, -50%) scale(0); animation: bhs-radar 3s ease-out infinite; }
@keyframes bhs-radar { to { transform: translate(-50%, -50%) scale(1.4); opacity: 0; } }

/* stack isometrico */
.bhs-iso { position: absolute; left: 50%; top: 48%; width: min(380px, 66%); aspect-ratio: 1.2; transform-style: preserve-3d; transform: translate(-50%, -50%) rotateX(58deg) rotateZ(-40deg); }
.bhs-iso-l { position: absolute; inset: 0; border-radius: 22px; border: 1px solid rgba(255,255,255,.85); background: linear-gradient(140deg, rgba(255,255,255,.85), rgba(255,255,255,.45)); box-shadow: 0 30px 50px -20px rgba(60,30,130,.35); transform: translateZ(calc(var(--z) * 56px)); animation: bhs-lift 5s var(--bh-ease) infinite alternate; }
.bhs-iso-l:first-child { background: linear-gradient(140deg, var(--acc), color-mix(in srgb, var(--acc) 50%, #fff)); }
.bhs-iso-l:last-child { background: linear-gradient(140deg, #1d1638, #2b2152); }
.bhs-iso-l span { position: absolute; left: 18px; top: 16px; padding: 6px 12px; border-radius: 99px; background: #fff; font-size: 13px; font-weight: 700; box-shadow: var(--bh-shadow); }
@keyframes bhs-lift { to { transform: translateZ(calc(var(--z) * 84px)); } }

/* flusso */
.bhs-v-flow { }
.bhs-flow-lines { position: absolute; inset: 0; width: 100%; height: 100%; } .bhs-flow-lines path { fill: none; stroke: color-mix(in srgb, var(--acc) 40%, transparent); stroke-width: 2.5; stroke-dasharray: 7 9; animation: bh-dash 1s linear infinite; }
.bhs-node { position: absolute; display: inline-flex; align-items: center; gap: 8px; padding: 12px 16px; border-radius: 16px; font-weight: 650; transform: translate(-50%, -50%); }
.bhs-node b { width: 10px; height: 10px; border-radius: 50%; background: var(--acc); }
.bhs-node.n0 { left: 18%; top: 20%; } .bhs-node.n1 { left: 18%; top: 50%; } .bhs-node.n2 { left: 18%; top: 80%; } .bhs-node.n3 { left: 84%; top: 27.5%; } .bhs-node.n4 { left: 84%; top: 72.5%; }
.bhs-node.n3 b, .bhs-node.n4 b { background: var(--bh-amber); }
.bhs-core { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 150px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #a07bff, var(--acc)); color: #fff; font-weight: 700; text-align: center; transform: translate(-50%, -50%); box-shadow: 0 0 0 14px color-mix(in srgb, var(--acc) 14%, transparent), 0 30px 60px -20px var(--acc); animation: bhs-pulse 3s ease-in-out infinite; }
@keyframes bhs-pulse { 50% { box-shadow: 0 0 0 26px color-mix(in srgb, var(--acc) 6%, transparent), 0 30px 60px -20px var(--acc); } }

/* ---------- introduzione ---------- */
.bhs-intro { padding: 8vh 0 12vh; }
.bhs-intro-in { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 5vw; }
.bhs-intro.noimg .bhs-intro-in { grid-template-columns: 1fr; max-width: 1000px; }
.bhs-statement { margin: 0 0 28px; font-size: clamp(28px, 3vw, 46px); font-weight: 600; line-height: 1.12; letter-spacing: -.035em; }
.bhs-statement .mw { color: color-mix(in srgb, var(--bh-ink) 16%, transparent); transition: color .35s; } .bhs-statement .mw.on { color: var(--bh-ink); }
.bhs-intro-small { max-width: 620px; color: var(--bh-muted); font-size: 18px; line-height: 1.6; }
.bhs-intro-small br:first-child { display: none; }
.bhs-intro-media { position: relative; margin: 0; perspective: 1200px; }
.bhs-intro-media .bh-card-media { border-radius: 28px; aspect-ratio: 4 / 3.2; transform: rotateX(calc((.5 - var(--v, .5)) * 14deg)) rotateY(calc((var(--v, .5) - .5) * -12deg)) translateY(calc((.5 - var(--v, .5)) * 70px)) scale(calc(.94 + var(--v, .5) * .08)); transform-style: preserve-3d; will-change: transform; }
.bhs-intro-media::after { content: ""; position: absolute; inset: 8% -6% -8% 6%; z-index: -1; border-radius: 32px; background: linear-gradient(135deg, color-mix(in srgb, var(--acc) 30%, transparent), rgba(242,169,59,.25)); filter: blur(30px); }
.bhs-intro-tag { position: absolute; z-index: 2; padding: 10px 16px; border-radius: 16px; font-size: 13px; font-weight: 650; box-shadow: var(--bh-shadow); animation: bhs-app-float 6s ease-in-out infinite; }
.bhs-intro-tag.t1 { left: -6%; top: 12%; } .bhs-intro-tag.t2 { right: -4%; bottom: 10%; animation-delay: -3s; }
.bhs-intro-lead { max-width: 640px; margin: 0; color: var(--bh-ink); font-size: clamp(22px, 2vw, 30px); font-weight: 520; line-height: 1.35; letter-spacing: -.02em; }
.bhs-intro-lead + .bhs-intro-small { margin-top: 22px; }

/* ---------- testata sezioni ---------- */
.bhs-sec { padding: 10vh 0; }
.bhs-sec-head { width: min(var(--bh-max), calc(100% - 2 * var(--bh-pad))); margin: 0 auto 56px; }
.bhs-sec-head .bh-kick, .bhs-split-head .bh-kick, .bhs-quote .bh-kick { font: italic 400 22px "Instrument Serif", serif; letter-spacing: 0; text-transform: none; color: var(--acc); }
.bhs-sec-head .bh-kick::before, .bhs-split-head .bh-kick::before, .bhs-quote .bh-kick::before { display: none; }
.bhs-sec .bh-h2 { max-width: 16ch; font-size: clamp(38px, 4.6vw, 76px); }
body.bhs main ul { padding-left: 0; list-style: none; }
body.bhs main li { position: relative; padding-left: 22px; margin: 0 0 10px; line-height: 1.5; }
body.bhs main li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 0 4px color-mix(in srgb, var(--acc) 14%, transparent); }
body.bhs main a:not(.bh-btn):not(.bh-link):not(.bhs-crumb a):not(.bhc-ch):not([class*="bhs-"]):not(.bh-chip):not(.bhs-pills a) { color: var(--acc); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.bh-dark.bhs main a:not(.bh-btn):not(.bh-link):not([class*="bhs-"]):not(.bh-chip):not(.bhs-pills a) { color: #c4b5fd; }

/* bento */
.bhs-bento-in { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
.bhs-bc { grid-column: span 2; display: flex; flex-direction: column; gap: 14px; padding: 30px; border-radius: 28px; color: var(--bh-ink-2); }
.bhs-bento-in.n2 .bhs-bc { grid-column: span 3; } .bhs-bento-in.n4 .bhs-bc:nth-child(1), .bhs-bento-in.n4 .bhs-bc:nth-child(4) { grid-column: span 4; } .bhs-bento-in.n4 .bhs-bc:nth-child(2), .bhs-bento-in.n4 .bhs-bc:nth-child(3) { grid-column: span 2; }
.bhs-bento-in.n5 .bhs-bc:nth-child(-n+2) { grid-column: span 3; } .bhs-bento-in.n1 .bhs-bc { grid-column: span 6; }
.bhs-bc h3, .bhs-fc h3, .bhs-sc h3, .bhs-ix h3, .bhs-tab-copy h3 { margin: 0; color: var(--bh-ink); font-size: clamp(22px, 1.8vw, 28px); font-weight: 640; line-height: 1.08; letter-spacing: -.03em; }
.bhs-bc-n, .bhs-fc-n, .bhs-sc-n, .bhs-ix-n { color: var(--acc); font: italic 400 30px/1 "Instrument Serif", serif; }
.bhs-bc p, .bhs-fc p, .bhs-sc p { margin: 0; }
.bhs-bc:first-child { background: linear-gradient(150deg, color-mix(in srgb, var(--acc) 12%, rgba(255,255,255,.8)), rgba(255,255,255,.45)); }
.bhs-ci-media { overflow: hidden; border-radius: 18px; } .bhs-ci-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 1s var(--bh-ease); }
.bhs-bc:hover .bhs-ci-media img, .bhs-fc:hover .bhs-ci-media img { transform: scale(1.05); }

/* ventaglio 3D */
.bhs-fan-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; perspective: 1600px; }
.bhs-fc { display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 28px; color: var(--bh-ink-2); transform: rotateY(calc((1 - var(--p, 1)) * var(--k) * -18deg)) translateZ(calc((1 - var(--p, 1)) * -120px)) translateY(calc((1 - var(--p, 1)) * var(--ka, 0) * 50px)); }
.bhs-fan-in > .bhs-fc { transition: transform .2s linear; }
.bhs-fc:nth-child(2n) { margin-top: 40px; }

/* tab */
.bhs-tabs-bar { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; padding: 6px; border-radius: 99px; background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px var(--bh-line); width: fit-content; max-width: 100%; }
.bhs-tabs-bar button { position: relative; z-index: 1; display: inline-flex; gap: 10px; align-items: center; padding: 12px 20px; border: 0; border-radius: 99px; background: none; color: var(--bh-muted); font: 600 15px Inter, sans-serif; cursor: pointer; transition: color .3s; }
.bhs-tabs-bar button span { color: var(--acc); font: italic 400 18px "Instrument Serif", serif; }
.bhs-tabs-bar button[aria-selected="true"] { color: #fff; } .bhs-tabs-bar button[aria-selected="true"] span { color: #f6d64a; }
.bhs-tabs-ink { position: absolute; z-index: 0; top: 6px; height: calc(100% - 12px); border-radius: 99px; background: var(--bh-ink); transition: left .5s var(--bh-ease), width .5s var(--bh-ease); }
.bhs-tab-p { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; min-height: 380px; padding: clamp(28px, 4vw, 54px); border-radius: 32px; animation: bhs-msg .6s var(--bh-ease); }
.bhs-tab-p[hidden] { display: none; }
.bhs-tab-copy h3 { margin-bottom: 20px; font-size: clamp(28px, 2.6vw, 42px); }
.bhs-tab-art { display: grid; place-items: center; height: 100%; min-height: 260px; border-radius: 24px; background: radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--acc) 30%, #fff), transparent 60%), linear-gradient(135deg, #efe9ff, #fff3e6); }
.bhs-tab-art b { color: var(--acc); font: italic 400 160px/1 "Instrument Serif", serif; opacity: .9; }

/* pila */
.bhs-stack-in { display: grid; gap: 22px; }
.bhs-sc { position: sticky; top: calc(110px + var(--i) * 22px); display: grid; grid-template-columns: 90px 1fr; gap: 24px; align-items: start; min-height: 280px; padding: 38px; border-radius: 30px; transform: scale(var(--s, 1)); transform-origin: 50% 0; }
.bhs-sc .bhs-ci-media { grid-column: 2; max-width: 560px; }
.bhs-sc-n { font-size: 56px; }

/* fisarmonica */
.bhs-ol-in { display: grid; gap: 14px; }
.bhs-ol { border-radius: 26px; overflow: hidden; }
.bhs-ol summary { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 18px; padding: 26px 30px; cursor: pointer; list-style: none; }
.bhs-ol summary::-webkit-details-marker { display: none; }
.bhs-ol summary span { color: var(--acc); font: italic 400 30px/1 "Instrument Serif", serif; }
.bhs-ol summary h3 { margin: 0; font-size: clamp(22px, 2vw, 32px); font-weight: 640; letter-spacing: -.03em; }
.bhs-ol summary i { position: relative; width: 44px; height: 44px; border-radius: 50%; background: var(--bh-ink); transition: transform .5s var(--bh-ease), background .3s; }
.bhs-ol summary i::before, .bhs-ol summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; background: #fff; transform: translate(-50%, -50%); } .bhs-ol summary i::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .4s; }
.bhs-ol[open] summary i { background: var(--acc); transform: rotate(180deg); } .bhs-ol[open] summary i::after { transform: translate(-50%, -50%) rotate(0); }
.bhs-ol-body { display: grid; grid-template-columns: 1fr auto; gap: 30px; padding: 0 30px 30px 118px; color: var(--bh-ink-2); }
.bhs-ol-body .bhs-ci-media { width: 280px; }

/* indice editoriale */
.bhs-ix { display: grid; grid-template-columns: 90px .8fr 1.2fr; gap: 30px; align-items: start; padding: 34px 0; border-top: 1px solid var(--bh-line-2); }
.bhs-ix:last-child { border-bottom: 1px solid var(--bh-line-2); }
.bhs-ix-n { font-size: 42px; } .bhs-ix h3 { font-size: clamp(24px, 2.4vw, 38px); } .bhs-ix-body { color: var(--bh-ink-2); }
.bhs-ix .bhs-ci-media { grid-column: 3; max-width: 420px; }

/* prosa */
.bhs-split-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 6vw; align-items: start; }
.bhs-split-head { position: sticky; top: 130px; }
.bhs-split-body { color: var(--bh-ink-2); font-size: 19px; line-height: 1.65; }
.bhs-split-body .bhs-prose-p:first-child::first-letter { float: left; margin: .06em .1em 0 0; color: var(--acc); font: italic 400 4.2em/.8 "Instrument Serif", serif; }
.bhs-quote .bh-h2 { max-width: 20ch; margin-bottom: 40px; }
.bhs-quote-body { columns: 2 320px; column-gap: 50px; color: var(--bh-ink-2); font-size: 18px; line-height: 1.65; }
.bhs-note { padding-top: 0; } .bhs-note-in { position: relative; max-width: 940px; padding: 6px 0 6px 34px; color: var(--bh-ink-2); font-size: clamp(18px, 1.5vw, 21px); line-height: 1.65; }
.bhs-note-in::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 3px; border-radius: 3px; background: linear-gradient(var(--acc), var(--bh-amber)); }

/* processo orizzontale */
.bhs-process { position: relative; height: calc(100vh + (var(--n) + 1) * 46vh); padding: 0; }
.bhs-process-pin { position: sticky; top: 0; display: flex; flex-direction: column; justify-content: center; gap: 42px; height: 100vh; overflow: hidden; }
.bhs-process-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.bhs-process-count { display: flex; align-items: baseline; gap: 10px; color: var(--bh-muted); font-weight: 600; }
.bhs-process-count b { color: var(--acc); font: italic 400 clamp(70px, 8vw, 128px)/.8 "Instrument Serif", serif; }
.bhs-process-track { display: flex; align-items: stretch; gap: 26px; padding: 0 var(--bh-pad); width: max-content; transform: translateX(calc(var(--p, 0) * -1 * var(--tw, 0px))); }
.bhs-step { position: relative; flex: none; display: flex; flex-direction: column; gap: 14px; width: clamp(340px, 31vw, 560px); min-height: clamp(320px, 40vh, 420px); padding: 34px; border-radius: 30px; opacity: .5; transform: scale(.94) translateY(16px); transition: opacity .6s, transform .8s var(--bh-ease), box-shadow .6s; }
.bhs-step.past { opacity: .75; transform: scale(.96); }
.bhs-step.on { opacity: 1; transform: none; box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--acc) 55%, transparent), 0 40px 80px -30px color-mix(in srgb, var(--acc) 45%, transparent), var(--bh-shadow-lg); }
.bhs-step-top { display: flex; align-items: flex-start; justify-content: space-between; }
.bhs-step-top span { color: var(--acc); font: italic 400 72px/.9 "Instrument Serif", serif; }
.bhs-step-top i { padding: 6px 10px; border-radius: 99px; background: rgba(255,255,255,.6); color: var(--bh-muted); font-size: 12px; font-style: normal; font-weight: 700; letter-spacing: .06em; }
.bhs-step h3 { margin: auto 0 0; font-size: clamp(26px, 2.2vw, 34px); font-weight: 640; letter-spacing: -.035em; }
.bhs-step p { margin: 0; color: var(--bh-muted); font-size: 16.5px; line-height: 1.55; }
.bhs-step-bar { display: block; height: 4px; margin-top: 8px; border-radius: 4px; background: var(--bh-line); overflow: hidden; }
.bhs-step-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--acc), var(--bh-amber)); transform-origin: 0; transform: scaleX(var(--sp, 0)); }
.bhs-step--cta { justify-content: space-between; color: #fff; text-decoration: none; background: linear-gradient(150deg, var(--acc), color-mix(in srgb, var(--acc) 55%, #15102a)); box-shadow: var(--bh-shadow-lg); opacity: 1; transform: none; }
.bhs-step--cta .bhs-step-k { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.bhs-step--cta, body.bhs main a.bhs-step--cta { color: #fff; }
.bhs-step--cta strong { color: #fff; font-size: clamp(30px, 2.8vw, 44px); font-weight: 640; line-height: 1.02; letter-spacing: -.04em; }
.bhs-step--cta em { align-self: flex-start; padding: 14px 22px; border-radius: 99px; background: #fff; color: #15102a; font-style: normal; font-weight: 650; transition: transform .5s var(--bh-ease); }
.bhs-step--cta:hover em { transform: translateX(8px); }
.bhs-process-rail { position: relative; }
.bhs-rail-line { height: 6px; border-radius: 6px; background: var(--bh-line); overflow: hidden; }
.bhs-rail-line i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--acc), var(--bh-amber)); transform-origin: 0; transform: scaleX(var(--p, 0)); }
.bhs-process-rail ol { display: grid; grid-template-columns: repeat(var(--n), 1fr); margin: 14px 0 0; padding: 0; list-style: none; }
body.bhs main .bhs-process-rail li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; color: var(--bh-muted); font-size: 14px; font-weight: 600; transition: color .4s; }
body.bhs main .bhs-process-rail li::before { display: none; }
.bhs-process-rail li b { width: 12px; height: 12px; border-radius: 50%; background: var(--bh-bg); box-shadow: inset 0 0 0 2px var(--bh-line-2); transition: background .4s, box-shadow .4s, transform .4s var(--bh-ease); }
body.bhs main .bhs-process-rail li.on { color: var(--bh-ink); }
.bhs-process-rail li.on b { background: var(--acc); box-shadow: 0 0 0 5px color-mix(in srgb, var(--acc) 20%, transparent); transform: scale(1.1); }
.bhs-process-hint { position: absolute; right: 0; top: -46px; display: flex; align-items: center; gap: 10px; margin: 0; color: var(--bh-muted); font-size: 13px; font-weight: 600; opacity: clamp(0, calc(1 - var(--p, 0) * 12), 1); }
.bhs-mouse { position: relative; width: 20px; height: 30px; border-radius: 12px; box-shadow: inset 0 0 0 2px currentColor; }
.bhs-mouse i { position: absolute; left: 50%; top: 6px; width: 3px; height: 6px; margin-left: -1.5px; border-radius: 2px; background: currentColor; animation: bhs-wheel 1.6s ease-in-out infinite; }
@keyframes bhs-wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(9px); opacity: 0; } 100% { opacity: 0; } }

/* CTA finale: tre schede in vetro sovrapposte in profondità */
.bhs-final .bh-final-card { grid-template-columns: 1.05fr .95fr; min-height: 0; }
.bhs-final .bh-hero-ctas { margin-top: 30px; flex-wrap: wrap; }
.bhs-final-facts { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 34px 0 0; padding: 26px 0 0; border-top: 1px solid var(--bh-line); list-style: none; }
body.bhs main .bhs-final-facts li { display: grid; gap: 2px; margin: 0; padding: 0; }
body.bhs main .bhs-final-facts li::before { display: none; }
.bhs-final-facts b { color: var(--acc); font: italic 400 30px/1 "Instrument Serif", serif; }
.bhs-final-facts span { color: var(--bh-muted); font-size: 13px; font-weight: 600; }
.bhs-final-stage { position: relative; height: 520px; transform-style: preserve-3d; }
.bhs-cc { position: absolute; padding: 22px; border-radius: 24px; box-shadow: var(--bh-shadow-lg); animation: bhs-cc-float 7s ease-in-out infinite; }
@keyframes bhs-cc-float { 50% { translate: 0 -12px; } }
.bhs-cc--cal { left: 4%; top: 2%; width: 62%; transform: translateZ(30px) rotate(-3deg); }
.bhs-cc--brief { right: 0; top: 36%; width: 56%; transform: translateZ(80px) rotate(2deg); animation-delay: -2.4s; }
.bhs-cc--who { left: 10%; bottom: 2%; width: 66%; display: flex; align-items: center; gap: 14px; transform: translateZ(120px) rotate(-1deg); animation-delay: -4.8s; }
.bhs-cc-h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 16px; }
.bhs-cc-h b { font-size: 17px; font-weight: 650; }
.bhs-cc-h span { color: var(--bh-muted); font-size: 12.5px; font-weight: 600; }
.bhs-cal { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.bhs-cal > span { display: grid; gap: 6px; }
.bhs-cal small { color: var(--bh-muted); font-size: 11px; font-weight: 700; text-align: center; }
.bhs-cal i { height: 26px; border-radius: 8px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--bh-line); }
.bhs-cal i.busy { background: repeating-linear-gradient(135deg, rgba(21,16,42,.05) 0 4px, transparent 4px 8px); box-shadow: none; }
.bhs-cal i.pick { background: var(--acc); box-shadow: 0 8px 18px -6px var(--acc); animation: bhs-pick 3.2s ease-in-out infinite; }
@keyframes bhs-pick { 0%, 30% { transform: scale(1); } 40% { transform: scale(1.18); } 50%, 100% { transform: scale(1); } }
.bhs-cc-ok { display: flex; align-items: center; gap: 8px; margin: 16px 0 0; font-size: 14px; font-weight: 600; }
.bhs-cc-ok i, .bhs-cc--brief li i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #16a37a; color: #fff; font-size: 11px; font-style: normal; }
.bhs-cc-k { margin: 0 0 12px; color: var(--bh-muted); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
body.bhs main .bhs-cc--brief ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.bhs main .bhs-cc--brief li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; font-size: 15px; font-weight: 600; opacity: 0; transform: translateX(14px); transition: opacity .5s, transform .6s var(--bh-ease); transition-delay: var(--d); }
body.bhs main .bhs-cc--brief li::before { display: none; }
.bh-final-card.in .bhs-cc--brief li, .bhs-final.in .bhs-cc--brief li { opacity: 1; transform: none; }
.bhs-av { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--acc), var(--bh-amber)); color: #fff; font-size: 14px; font-weight: 800; }
.bhs-cc--who b { display: block; font-size: 16px; }
.bhs-cc--who small { display: block; color: var(--bh-muted); font-size: 13px; }
.bhs-typing { display: flex; gap: 4px; margin-left: auto; padding: 10px 12px; border-radius: 14px; background: rgba(255,255,255,.7); }
.bhs-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--bh-muted); animation: bhs-dot 1.2s infinite; }
.bhs-typing i:nth-child(2) { animation-delay: .15s; } .bhs-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes bhs-dot { 0%, 60%, 100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-4px); opacity: 1; } }

/* consegne */
.bhs-deliver-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 5vw; align-items: start; }
.bhs-deliver .bh-lead { margin-top: 24px; }
.bhs-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; }
body.bhs .bhs-checks li { display: flex; gap: 14px; align-items: flex-start; margin: 0; padding: 20px 22px; border-radius: 20px; font-weight: 550; }
body.bhs .bhs-checks li::before { display: none; }
.bhs-checks i { flex: none; position: relative; width: 26px; height: 26px; border-radius: 50%; background: var(--acc); }
.bhs-checks i::after { content: ""; position: absolute; left: 9px; top: 5px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.bhs-band { margin: 4vh 0; }

/* FAQ */
.bhs-faq-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5vw; align-items: start; }
.bhs-faq-head { position: sticky; top: 130px; } .bhs-faq-head .bh-lead { margin-top: 20px; }
body.bhs .service-faq__list { display: grid; gap: 12px; }
body.bhs .service-faq__item { border: 1px solid rgba(255,255,255,.8); border-radius: 22px; background: linear-gradient(150deg, rgba(255,255,255,.75), rgba(255,255,255,.42)); backdrop-filter: blur(16px); box-shadow: var(--bh-shadow); overflow: hidden; }
body.bh-dark.bhs .service-faq__item { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.05); }
body.bhs .service-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 26px; cursor: pointer; list-style: none; }
body.bhs .service-faq__item summary::-webkit-details-marker { display: none; }
body.bhs .service-faq__item summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--bh-ink); color: var(--bh-bg); font-size: 20px; transition: transform .4s var(--bh-ease); }
body.bhs .service-faq__item[open] summary::after { transform: rotate(45deg); background: var(--acc); color: #fff; }
body.bhs .service-faq__item h3 { margin: 0; font-size: 18px; font-weight: 620; letter-spacing: -.015em; line-height: 1.35; }
body.bhs .service-faq__answer { padding: 0 26px 22px; color: var(--bh-ink-2); line-height: 1.65; }

/* collegamenti a fine pagina (dal layout) */
body.bhs .service-connections { width: min(var(--bh-max), calc(100% - 2 * var(--bh-pad))); margin: 0 auto; padding: 8vh 0; }
body.bhs .service-connections .sx-eyebrow { display: block; margin-bottom: 14px; color: var(--bh-muted); font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
body.bhs .service-connections h2 { margin: 0 0 34px; font-size: clamp(32px, 3.4vw, 54px); font-weight: 620; letter-spacing: -.045em; line-height: 1; }
body.bhs .service-connections .sx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
body.bhs .service-connections .sx-grid a { display: grid; gap: 8px; padding: 22px; border: 1px solid rgba(255,255,255,.8); border-radius: 22px; background: rgba(255,255,255,.55); color: var(--bh-ink) !important; text-decoration: none !important; box-shadow: var(--bh-shadow); transition: transform .5s var(--bh-ease); }
body.bhs .service-connections .sx-grid a:hover { transform: translateY(-6px); }
body.bhs .service-connections .sx-grid p { margin: 0; color: var(--bh-muted); font-size: 15px; }
body.bh-dark.bhs .service-connections .sx-grid a { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.05); }
body.bhs .service-local-strip { width: min(var(--bh-max), calc(100% - 2 * var(--bh-pad))); margin: 0 auto 8vh; }
body.bhs .service-local-strip ul { display: flex; flex-wrap: wrap; gap: 8px; }
body.bhs .service-local-strip li { padding: 0; } body.bhs .service-local-strip li::before { display: none; }
body.bhs .service-local-strip a { display: inline-flex; padding: 9px 16px; border-radius: 99px; background: rgba(255,255,255,.6); box-shadow: inset 0 0 0 1px var(--bh-line-2); text-decoration: none !important; color: var(--bh-ink) !important; font-weight: 600; }

/* tema scuro: visual */
.bh-dark .bhs-disc { background: radial-gradient(circle at 35% 30%, rgba(167,139,250,.28), rgba(100,22,200,.1) 50%, transparent 70%); }
.bh-dark .bhs-statement .mw { color: rgba(255,255,255,.14); } .bh-dark .bhs-statement .mw.on { color: #fff; }
.bh-dark .bhs-tabs-bar { background: rgba(255,255,255,.06); } .bh-dark .bhs-tabs-ink { background: #fff; } .bh-dark .bhs-tabs-bar button[aria-selected="true"] { color: #0b0816; } .bh-dark .bhs-tabs-bar button[aria-selected="true"] span { color: var(--acc); }
.bh-dark .bhs-ol summary i { background: rgba(255,255,255,.14); }
.bh-dark .bhs-tab-art { background: radial-gradient(circle at 30% 30%, rgba(167,139,250,.35), transparent 60%), rgba(255,255,255,.04); }
.bh-dark .bhs-bc:first-child { background: linear-gradient(150deg, rgba(167,139,250,.18), rgba(255,255,255,.03)); }
.bh-dark .service-faq__item summary::after { background: rgba(255,255,255,.14); color: #fff; }
.bh-dark .bh-final-card::after { background: radial-gradient(circle, rgba(100,22,200,.5), transparent 65%); }
.bh-dark .bh-final-orb, .bh-dark .bhs-v-particles .bh-particles { --pc1: #a78bfa; --pc2: #e9e2ff; --pc3: #6ee7a8; }
.bh-dark .service-local-strip a { background: rgba(255,255,255,.06); }
.bh-dark .bhs-cal i { background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); } .bh-dark .bhs-cal i.busy { background: repeating-linear-gradient(135deg, rgba(255,255,255,.07) 0 4px, transparent 4px 8px); }
.bh-dark .bhs-typing, .bh-dark .bhs-step-top i { background: rgba(255,255,255,.08); } .bh-dark .bhs-process-rail li b { background: #0b0816; }

@media (max-width: 1000px) {
  .bhs-hero { padding-top: 110px; }
  .bhs-hero-in, .bhs-intro-in, .bhs-split-in, .bhs-deliver-in, .bhs-faq-in, .bhs-tab-p { grid-template-columns: 1fr; }
  .bhs-hero-in { min-height: 0; } .bhs-visual { height: 440px; }
  .bhs-split-head, .bhs-faq-head { position: static; }
  .bhs-bento-in { grid-template-columns: 1fr; } .bhs-bento-in .bhs-bc { grid-column: auto !important; }
  .bhs-fc { transform: none !important; } .bhs-fc:nth-child(2n) { margin-top: 0; }
  .bhs-ix { grid-template-columns: 60px 1fr; } .bhs-ix-body, .bhs-ix .bhs-ci-media { grid-column: 2; }
  .bhs-ol-body { grid-template-columns: 1fr; padding-left: 30px; } .bhs-ol-body .bhs-ci-media { width: auto; }
  .bhs-sc { grid-template-columns: 1fr; position: relative; top: 0; } .bhs-sc .bhs-ci-media { grid-column: 1; }
  .bhs-checks { grid-template-columns: 1fr; }
  .bhs-process { height: auto; } .bhs-process-pin { position: relative; height: auto; padding: 10vh 0; }
  .bhs-process-track { flex-direction: column; width: auto; transform: none !important; } .bhs-step { width: auto; min-height: 0; opacity: 1; transform: none; } .bhs-step-bar, .bhs-process-count { display: none; } .bhs-process-rail { display: none; }
  .bhs-final .bh-final-card { grid-template-columns: 1fr; } .bhs-final-stage { height: 460px; max-width: 520px; width: 100%; margin: 0 auto; }
  .bhs-tabs-bar { border-radius: 24px; }
  .bhs-sres { grid-template-columns: repeat(2, 1fr); } .bhs-scard:nth-child(3) { display: none; }
}
@media (max-width: 600px) {
  .bhs-h1 { font-size: clamp(42px, 12vw, 64px); }
  .bhs-visual { height: 380px; }
  .bhs-ol summary { grid-template-columns: 44px 1fr auto; padding: 20px; } .bhs-ol-body { padding: 0 20px 22px; }
  .bhs-sc { padding: 26px; }
  .bhs-device { width: 44%; } .bhs-feed { width: 88%; } .bhs-feed-dest { width: 70%; }
  .bhs-final-stage { height: 420px; } .bhs-cc { padding: 16px; } .bhs-cc--cal { width: 78%; left: 0; } .bhs-cc--brief { width: 74%; } .bhs-cc--who { width: 86%; left: 4%; } .bhs-cal i { height: 20px; }
  .bhs-final .bh-hero-ctas .bh-btn--ghost { flex: 1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .bhs-chips .bh-chip, .bhs-serp-r, .bhs-feed-row, .bhs-device.d1, .bhs-iso-l, .bhs-core, .bhs-radar, .bhs-shield .ring, .bhs-shield .scan { animation: none !important; }
  .bhs-code p, .bhs-log p, .bhs-phone-in p, .bhs-scard, .bhs-tags span, .bhs-pin, .bhs-bars i { animation: none !important; opacity: 1 !important; transform: none !important; }
  .bhs-chart path, .bhs-shield .ck { animation: none; stroke-dashoffset: 0; }
  .bhs-process { height: auto; } .bhs-process-pin { position: relative; height: auto; padding: 10vh 0; } .bhs-process-track { flex-wrap: wrap; width: auto; transform: none !important; } .bhs-step { opacity: 1; transform: none; } .bhs-process-hint { display: none; }
  .bhs-cc, .bhs-cal i.pick, .bhs-typing i, .bhs-mouse i { animation: none !important; }
  body.bhs main .bhs-cc--brief li { opacity: 1; transform: none; }
}
html:not(.bh-js) body.bhs main .bhs-cc--brief li { opacity: 1; transform: none; }

body.bh2::before, body.bh2::after { content: none !important; display: none !important; }
.service-lucide-icon { display: inline-block; width: .9em; height: .9em; margin: 0 .35em -.08em 0; vertical-align: baseline; }
.bh-dark .service-lucide-icon { filter: invert(1) brightness(1.4); }
.bhs-ol-body .bhs-ci-media img, .bhs-ix .bhs-ci-media img { aspect-ratio: 4 / 3; }
body.bhs .service-faq__item h3, body.bhs .service-faq__item summary { color: var(--bh-ink); }
body.bhs .service-faq__answer, body.bhs .service-faq__answer p { color: var(--bh-ink-2); }
.bhs-faq-head .bh-h2 { font-size: clamp(30px, 3.2vw, 52px); max-width: 14ch; }
body.bhs .service-local-strip, body.bhs .service-local-strip > div { background: none !important; box-shadow: none !important; padding: 0 !important; color: var(--bh-ink); }
body.bhs .service-local-strip p { margin: 0 0 14px; color: var(--bh-muted); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
body.bhs .service-connections .sx-grid b { color: var(--bh-ink); }

.bhs-h1--long { font-size: clamp(40px, 4.4vw, 74px); line-height: .96; letter-spacing: -.045em; }

.bhs-note-in strong:first-child, .bhs-split-body .bhs-prose-p > strong:first-child, .bhs-quote-body .bhs-prose-p > strong:first-child { display: block; margin-bottom: 12px; color: var(--bh-ink); font-size: clamp(22px, 2vw, 30px); font-weight: 620; line-height: 1.2; letter-spacing: -.025em; }
.bhs-note-in small, .bhs-split-body small, .bhs-quote-body small { font-size: inherit; color: var(--bh-muted); }
.bhs-intro.noimg .bhs-intro-small { max-width: 760px; }
.bhs-intro.noimg .bhs-statement { font-size: clamp(30px, 3.4vw, 56px); }

/* ===================== v3 · blocchi aggiunti ===================== */
/* pagine sorelle nell'hero */
.bhs-pills { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; }
.bhs-pills a, .bhs-pills span { padding: 7px 13px; border-radius: 99px; font-size: 13px; font-weight: 600; text-decoration: none; }
body.bhs main .bhs-pills a { color: var(--bh-ink-2); background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px var(--bh-line); transition: background .3s, color .3s; }
body.bhs main .bhs-pills a:hover { background: #fff; color: var(--bh-ink); }
.bhs-pills span[aria-current] { background: var(--bh-ink); color: #fff; }
.bh-dark .bhs-pills span[aria-current] { background: #fff; color: #0b0816; }
body.bh-dark.bhs main .bhs-pills a { background: rgba(255,255,255,.06); color: var(--bh-ink-2); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }

/* hero: app vere in 3D */
.bhs-v-apps { position: relative; display: grid; place-items: center; perspective: 1600px; }
.bhs-apps-stage { position: relative; width: min(560px, 100%); height: 560px; transform-style: preserve-3d; }
.bhs-app { position: absolute; top: 50%; left: 50%; width: 210px; margin: -216px 0 0 -105px; transform-style: preserve-3d; animation: bhs-app-float 7s ease-in-out infinite; }
.bhs-app.p0 { transform: translateX(-62%) translateZ(-60px) rotateY(24deg) rotateZ(-4deg); animation-delay: -2s; }
.bhs-app.p1 { transform: translateZ(70px); z-index: 2; }
.bhs-app.p2 { transform: translateX(62%) translateZ(-60px) rotateY(-24deg) rotateZ(4deg); animation-delay: -4s; }
@keyframes bhs-app-float { 50% { translate: 0 -14px; } }
.bhs-app-frame { position: relative; padding: 9px; border-radius: 38px; background: linear-gradient(145deg, #2a2340, #0f0b1d); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.14), 0 40px 70px -24px rgba(31,18,70,.55), 0 14px 26px -12px rgba(31,18,70,.4); }
.bhs-app-isl { position: absolute; left: 50%; top: 16px; z-index: 3; width: 32%; height: 15px; margin-left: -16%; border-radius: 10px; background: #0f0b1d; }
.bhs-app-screen { container-type: inline-size; overflow: hidden; border-radius: 30px; background: #faf8f1; }
.bhs-app-screen .app-ui { pointer-events: none; }
.bhs-v-apps .bhs-chips { position: absolute; inset: 0; pointer-events: none; }
.bhs-apps-note { position: absolute; right: 4%; bottom: 2%; margin: 0; color: var(--bh-muted); font-size: 12px; font-weight: 600; }

/* showcase: anello 3D che ruota con lo scroll */
.bhs-apps { position: relative; height: 340vh; padding: 0; }
.bhs-apps-pin { position: sticky; top: 0; display: grid; grid-template-rows: auto 1fr auto; height: 100vh; padding: 12vh 0 5vh; overflow: hidden; }
.bhs-apps-head { display: grid; grid-template-columns: 1fr .8fr; align-items: end; gap: 40px; }
.bhs-apps-ring { position: relative; perspective: 1800px; transform-style: preserve-3d; }
.bhs-apps-ring::before { content: ""; position: absolute; left: 50%; bottom: 6%; width: min(760px, 80vw); height: 90px; margin-left: min(-380px, -40vw); border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--acc) 30%, transparent), transparent); filter: blur(8px); }
.bhs-ring-item { position: absolute; left: 50%; top: 50%; width: clamp(150px, 12.5vw, 200px); translate: -50% -50%; transform-style: preserve-3d; transform: translateX(calc(var(--d, 0) * clamp(170px, 15vw, 250px))) translateZ(calc(var(--ad, 0) * -200px)) rotateY(var(--ry, 0deg)); filter: saturate(calc(1 - var(--ad, 0) * .4)); opacity: clamp(0, calc(1.5 - var(--ad, 0) * .62), 1); z-index: calc(10 - var(--z, 0)); }
.bhs-ring-item.on { filter: none; opacity: 1; }
.bhs-apps-pin { gap: 2vh; }
.bhs-apps-info { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 0 auto; padding: 0 var(--bh-pad); list-style: none; }
body.bhs main .bhs-apps-info li { display: grid; gap: 4px; margin: 0; padding: 16px 0 0; border-top: 2px solid var(--bh-line); opacity: .45; transition: opacity .5s, border-color .5s; }
body.bhs main .bhs-apps-info li::before { display: none; }
body.bhs main .bhs-apps-info li.on { opacity: 1; border-color: var(--acc); }
.bhs-apps-info span { color: var(--acc); font: italic 400 26px/1 "Instrument Serif", serif; }
.bhs-apps-info b { font-size: 20px; letter-spacing: -.02em; }
.bhs-apps-info small { color: var(--bh-muted); font-size: 14px; line-height: 1.45; }

/* hero eCommerce (negozio dimostrativo) e scene animate */
.bhs-v-commerce { position: relative; display: grid; place-items: center; min-height: 560px; }
.bhs-v-commerce .co-hero-scene { width: 100%; }
.bhs-v-scene { position: relative; }
.bhs-v-scene .mo-stage { height: 560px; box-shadow: var(--bh-shadow-lg); }
.bhs-scene-in { display: grid; grid-template-columns: .75fr 1.25fr; gap: 5vw; align-items: center; }
.bhs-scene-steps { display: grid; gap: 10px; margin: 34px 0 0; padding: 0; list-style: none; counter-reset: s; }
body.bhs main .bhs-scene-steps li { display: flex; align-items: center; gap: 14px; margin: 0; padding: 14px 18px; border-radius: 16px; background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px var(--bh-line); font-weight: 600; }
body.bhs main .bhs-scene-steps li::before { display: none; }
.bhs-scene-steps span { color: var(--acc); font: italic 400 24px/1 "Instrument Serif", serif; }
.bhs-scene-art .mo-stage { height: 600px; box-shadow: var(--bh-shadow-lg); }
.bhs-journey .mo-stage { height: auto; min-height: 640px; margin-top: 40px; box-shadow: var(--bh-shadow-lg); }
body.bh-dark.bhs main .bhs-scene-steps li { background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }

/* perché BitHub */
.bhs-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 50px; perspective: 1400px; }
.bhs-why-c { display: flex; flex-direction: column; gap: 14px; min-height: 290px; padding: 30px; border-radius: 28px; }
.bhs-why-c:nth-child(even) { margin-top: 46px; }
.bhs-why-n { color: var(--acc); font: italic 400 52px/1 "Instrument Serif", serif; }
.bhs-why-c h3 { margin: auto 0 0; font-size: 23px; font-weight: 640; line-height: 1.12; letter-spacing: -.03em; }
.bhs-why-c p { margin: 0; color: var(--bh-muted); font-size: 15.5px; line-height: 1.55; }

/* BitHub Shop */
.bhs-shop-head { display: grid; grid-template-columns: 1fr 1fr; gap: 5vw; align-items: end; }
.bhs-shop-head .bh-hero-ctas { margin-top: 26px; flex-wrap: wrap; }
.bhs-shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 50px; perspective: 1400px; }
.bhs-shop-c { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 210px; padding: 26px; border-radius: 26px; color: var(--bh-ink); text-decoration: none; }
body.bhs main a.bhs-shop-c { color: var(--bh-ink); }
.bhs-shop-c > i { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: auto; border-radius: 15px; background: color-mix(in srgb, var(--acc) 14%, #fff); color: var(--acc); font-size: 26px; font-weight: 700; font-style: normal; transition: transform .5s var(--bh-ease), background .3s, color .3s; }
.bhs-shop-c:hover > i { transform: rotate(-8deg) scale(1.08); background: var(--acc); color: #fff; }
.bhs-shop-c b { margin-top: 18px; font-size: 19px; letter-spacing: -.02em; }
.bhs-shop-c span { color: var(--bh-muted); font-size: 14.5px; line-height: 1.5; }
.bhs-shop-c em { position: absolute; right: 22px; top: 22px; font-style: normal; color: var(--bh-muted); transition: transform .4s var(--bh-ease); }
.bhs-shop-c:hover em { transform: translate(4px, -4px); color: var(--acc); }
.bhs-shop-note { margin: 26px 0 0; color: var(--bh-muted); font-size: 14px; }

/* passaggio di piattaforma */
.bhs-move-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 5vw; align-items: start; }
.bhs-move-copy { position: sticky; top: 130px; }
.bhs-move-from { display: grid; gap: 10px; margin: 30px 0 26px; color: var(--bh-muted); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bhs-move-from span { display: flex; flex-wrap: wrap; gap: 8px; letter-spacing: 0; text-transform: none; }
body.bhs main .bhs-move-from a { color: var(--bh-ink); text-decoration: none; }
.bhs-move-steps { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
body.bhs main .bhs-move-steps li { display: grid; grid-template-columns: 64px 1fr 40px; align-items: center; gap: 18px; margin: 0; padding: 28px; border-radius: 26px; opacity: .55; transform: translateX(24px); transition: opacity .6s, transform .8s var(--bh-ease); }
body.bhs main .bhs-move-steps li::before { display: none; }
body.bhs main .bhs-move-steps li.on, body.bhs main .bhs-move-steps li.past { opacity: 1; transform: none; }
.bhs-move-steps span { color: var(--acc); font: italic 400 46px/1 "Instrument Serif", serif; }
.bhs-move-steps b { display: block; margin-bottom: 6px; font-size: 21px; letter-spacing: -.02em; }
.bhs-move-steps p { margin: 0; color: var(--bh-muted); font-size: 15.5px; line-height: 1.55; }
.bhs-move-steps i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--bh-line); color: transparent; font-style: normal; transition: background .5s, color .5s; }
.bhs-move-steps li.on i, .bhs-move-steps li.past i { background: #16a37a; color: #fff; }

/* GConnect */
.bhs-gc-in { display: grid; grid-template-columns: 1fr 1fr; gap: 5vw; align-items: center; }
.bhs-gc-points { display: grid; gap: 12px; margin: 30px 0; padding: 0; list-style: none; }
body.bhs main .bhs-gc-points li { display: grid; gap: 2px; margin: 0; padding: 0 0 0 30px; position: relative; color: var(--bh-muted); font-size: 15.5px; }
body.bhs main .bhs-gc-points li::before { content: "✓"; position: absolute; left: 0; top: 2px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #16a37a; color: #fff; font-size: 11px; }
.bhs-gc-points b { color: var(--bh-ink); font-size: 16px; }
.bhs-gc-in .bh-hero-ctas { flex-wrap: wrap; }
.bhs-gc-art { position: relative; perspective: 1400px; }
.bhs-gc-win { padding: 0 0 18px; border-radius: 26px; overflow: hidden; box-shadow: var(--bh-shadow-lg); }
.bhs-gc-bar { display: flex; align-items: center; gap: 6px; padding: 14px 18px; border-bottom: 1px solid var(--bh-line); }
.bhs-gc-bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--bh-line-2); }
.bhs-gc-bar span { margin-left: 10px; color: var(--bh-muted); font-size: 13px; font-weight: 600; }
.bhs-gc-u { max-width: 78%; margin: 22px 20px 0 auto; padding: 14px 18px; border-radius: 20px 20px 6px 20px; background: var(--bh-ink); color: #fff; font-size: 15px; line-height: 1.45; }
.bhs-gc-tool { display: flex; align-items: center; gap: 8px; margin: 16px 20px 0; color: var(--bh-muted); font-size: 13px; font-weight: 600; }
.bhs-gc-tool span { animation: bhs-spin 3s linear infinite; }
.bhs-gc-tool em { padding: 3px 9px; border-radius: 99px; background: rgba(22,163,122,.12); color: #0f7a55; font-style: normal; font-size: 12px; }
@keyframes bhs-spin { to { rotate: 360deg; } }
.bhs-gc-a { margin: 14px 20px 0; padding: 16px 18px; border-radius: 6px 20px 20px 20px; background: rgba(255,255,255,.8); box-shadow: inset 0 0 0 1px var(--bh-line); }
.bhs-gc-a p { margin: 0 0 12px; font-size: 15px; line-height: 1.5; }
.bhs-gc-a table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.bhs-gc-a th { padding: 6px 0; color: var(--bh-muted); font-weight: 600; text-align: left; border-bottom: 1px solid var(--bh-line); }
.bhs-gc-a td { padding: 7px 0; border-bottom: 1px solid var(--bh-line); }
.bhs-gc-a td:not(:first-child), .bhs-gc-a th:not(:first-child) { text-align: right; }
.bhs-gc-demo { margin: 12px 20px 0; color: var(--bh-muted); font-size: 12px; }
.bhs-gc-src { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.bhs-gc-src span { padding: 6px 11px; border-radius: 99px; background: rgba(255,255,255,.6); box-shadow: inset 0 0 0 1px var(--bh-line); color: var(--bh-ink-2); font-size: 12.5px; font-weight: 600; animation: bhs-src 6s ease-in-out infinite; animation-delay: calc(var(--i) * .25s); }
@keyframes bhs-src { 0%, 70%, 100% { background: rgba(255,255,255,.6); } 80% { background: color-mix(in srgb, var(--acc) 18%, #fff); } }

/* nella stessa area */
.bhs-family-head { display: grid; grid-template-columns: 1fr .9fr; gap: 5vw; align-items: end; }
.bhs-family-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin-top: 44px; perspective: 1400px; }
.bhs-fam-c { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 170px; padding: 24px; border-radius: 24px; text-decoration: none; }
body.bhs main a.bhs-fam-c { color: var(--bh-ink); }
.bhs-fam-k { color: var(--acc); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bhs-fam-c b { margin-top: auto; font-size: 20px; line-height: 1.15; letter-spacing: -.025em; }
.bhs-fam-c small { color: var(--bh-muted); font-size: 14px; line-height: 1.45; }
.bhs-fam-c em { position: absolute; right: 22px; top: 20px; font-style: normal; font-size: 20px; color: var(--bh-muted); transition: transform .4s var(--bh-ease), color .3s; }
.bhs-fam-c:hover em { transform: translateX(6px); color: var(--acc); }
.bhs-fam-c.here { background: var(--bh-ink); box-shadow: var(--bh-shadow-lg); }
.bhs-fam-c.here b { color: #fff; } .bhs-fam-c.here small { color: rgba(255,255,255,.7); } .bhs-fam-c.here .bhs-fam-k { color: var(--bh-amber); }
.bh-dark .bhs-fam-c.here { background: #fff; } .bh-dark .bhs-fam-c.here b { color: #0b0816; } .bh-dark .bhs-fam-c.here small { color: #3d3554; }
body.bh-dark.bhs main a.bhs-fam-c, body.bh-dark.bhs main a.bhs-shop-c { color: var(--bh-ink); }
.bhs-extra { padding-bottom: 4vh; }

@media (max-width: 1000px) {
  .bhs-apps { height: auto; } .bhs-apps-pin { position: relative; height: auto; display: block; padding: 10vh 0; }
  .bhs-apps-head, .bhs-scene-in, .bhs-shop-head, .bhs-move-in, .bhs-gc-in, .bhs-family-head { grid-template-columns: 1fr; }
  .bhs-apps-ring { display: flex; gap: 16px; overflow-x: auto; padding: 30px var(--bh-pad); perspective: none; scroll-snap-type: x mandatory; }
  .bhs-apps-ring::before { display: none; }
  .bhs-ring-item { position: relative; left: auto; top: auto; flex: none; width: 200px; translate: none; transform: none; opacity: 1; filter: none; scroll-snap-align: center; }
  .bhs-apps-info { grid-template-columns: 1fr 1fr; } body.bhs main .bhs-apps-info li { opacity: 1; }
  .bhs-why-grid, .bhs-shop-grid { grid-template-columns: 1fr 1fr; } .bhs-why-c:nth-child(even) { margin-top: 0; }
  .bhs-move-copy { position: static; }
  .bhs-scene-art .mo-stage, .bhs-v-scene .mo-stage { height: 520px; }
  .bhs-apps-stage { height: 480px; } .bhs-app { width: 180px; margin: -185px 0 0 -90px; }
}
@media (max-width: 600px) {
  .bhs-why-grid, .bhs-shop-grid, .bhs-apps-info { grid-template-columns: 1fr; }
  .bhs-apps-stage { height: 420px; } .bhs-app { width: 150px; margin: -155px 0 0 -75px; }
  body.bhs main .bhs-move-steps li { grid-template-columns: 44px 1fr; padding: 22px; } .bhs-move-steps i { display: none; }
  .bhs-scene-art .mo-stage, .bhs-v-scene .mo-stage { height: 460px; }
  .bhs-journey .mo-stage { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .bhs-app, .bhs-gc-tool span, .bhs-gc-src span { animation: none !important; }
  .bhs-apps { height: auto; } .bhs-apps-pin { position: relative; height: auto; display: block; padding: 10vh 0; }
  .bhs-apps-ring { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; perspective: none; }
  .bhs-ring-item { position: relative; left: auto; top: auto; translate: none; transform: none; opacity: 1; filter: none; }
  body.bhs main .bhs-move-steps li { opacity: 1; transform: none; }
}
html:not(.bh-js) body.bhs main .bhs-move-steps li { opacity: 1; transform: none; }

/* foto senza WebGL: stessa gradazione viola delle card della home */
.bhs-graded { position: relative; overflow: hidden; }
.bhs-graded img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(.96); transition: filter .6s; }
.bhs-graded::after { content: ""; position: absolute; inset: 0; background: #4b3a8f; mix-blend-mode: lighten; opacity: .32; pointer-events: none; transition: opacity .6s; }
.bhs-graded:hover::after { opacity: .08; } .bhs-graded:hover img { filter: none; }
/* le scene portano la loro altezza: niente sovrapposizioni con la sezione successiva */
.bhs-hero .bhs-v-scene, .bhs-hero .bhs-v-commerce { height: auto !important; min-height: 0; }
@media (max-width: 600px) { .bhs-v-scene .mo-stage { height: 440px; } .bhs-v-commerce { min-height: 0; } }

/* GConnect: video della demo reale */
.bhs-gc-video { grid-column: 1 / -1; display: grid; grid-template-columns: 1.35fr .65fr; align-items: center; gap: 34px; margin: 26px 0 0; padding: 14px; border-radius: 30px; }
.bhs-gc-frame { position: relative; overflow: hidden; border-radius: 20px; background: #0f0b1d; aspect-ratio: 16 / 9; box-shadow: var(--bh-shadow-lg); }
.bhs-gc-frame video { display: block; width: 100%; height: 100%; object-fit: contain; background: #0f0b1d; }
.bhs-gc-play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 84px; height: 84px; margin: -42px 0 0 -42px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); box-shadow: var(--bh-shadow); cursor: pointer; transition: transform .4s var(--bh-ease); }
.bhs-gc-play:hover { transform: scale(1.08); }
.bhs-gc-play svg { width: 24px; margin-left: 4px; fill: var(--acc); }
.bhs-gc-video.playing .bhs-gc-play { display: none; }
.bhs-gc-video figcaption { display: grid; gap: 10px; padding-right: 12px; }
.bhs-gc-video figcaption b { font-size: clamp(22px, 2vw, 30px); letter-spacing: -.03em; line-height: 1.1; }
.bhs-gc-video figcaption span { color: var(--bh-muted); font-size: 15.5px; line-height: 1.55; }
html:not(.bh-js) .bhs-gc-play { display: none; }
@media (max-width: 1000px) { .bhs-gc-video { grid-template-columns: 1fr; gap: 18px; } .bhs-gc-video figcaption { padding: 0 8px 8px; } }

/* ===================== v4 · capitoli Codex animati, sfondo in profondità ===================== */
/* sfondo: forme morbide, tenui e sfocate, che scorrono più lente della pagina; una linea scende con lo scroll */
.bhs-world { position: absolute; inset: 0; z-index: -1; overflow: clip; pointer-events: none; }
.bhs-world > i { position: absolute; top: var(--y); left: var(--x); width: var(--s); aspect-ratio: 1; border-radius: 40% 60% 65% 35% / 60% 35% 65% 40%; background: radial-gradient(ellipse at 28% 22%, rgba(255,255,255,.75), transparent 45%), linear-gradient(145deg, var(--c), color-mix(in srgb, var(--c) 55%, transparent)); opacity: .55; filter: blur(46px); transform: translateY(calc(var(--sy, 0) * .14px)) rotate(calc(var(--sp, 0) * 40deg)); animation: bhs-blob 30s ease-in-out infinite alternate; }
.bhs-world > i:nth-child(2) { transform: translateY(calc(var(--sy, 0) * .22px)) rotate(calc(var(--sp, 0) * -50deg)); animation-duration: 38s; animation-delay: -12s; opacity: .45; }
.bhs-world > i:nth-child(3) { transform: translateY(calc(var(--sy, 0) * .1px)) rotate(calc(var(--sp, 0) * 30deg)); animation-duration: 44s; animation-delay: -20s; }
.bhs-world > i:nth-child(4) { transform: translateY(calc(var(--sy, 0) * .18px)); opacity: .4; animation-delay: -6s; }
@keyframes bhs-blob { 50% { border-radius: 60% 40% 35% 65% / 40% 65% 35% 60%; scale: 1.08; } }
.bhs-world > svg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; fill: none; stroke: color-mix(in srgb, var(--acc) 22%, transparent); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--sp, 0) * 1.15); vector-effect: non-scaling-stroke; }
.bhs-world.is-dark > i { opacity: .5; filter: blur(60px); }
.bhs-world.is-dark > svg { stroke: rgba(167,139,250,.25); }

/* scena dell'hero senza riquadro: l'illustrazione sta accanto al titolo e si muove con lo scroll */
.bhs-v-scene.is-bare .mo-stage { background: none !important; border: 0 !important; box-shadow: none !important; overflow: visible; border-radius: 0 !important; }
.bhs-v-scene.is-bare :is(.mo-organic, .mo-scene-grain, .mo-scene-topline, .mo-caption, .mo-scene-progress) { display: none !important; }
.bhs-v-scene.is-bare { --h: clamp(0, calc((var(--v, .4) - .42) * 2.2), 1); }
/* telefoni: posizioni e movimento di scroll della composizione Codex (app-interfaces.css, --mo-p) */
.bhs-v-scene.is-bare .mo-stage { height: 600px; }
.bhs-v-scene.is-bare .mo-pipeline-art, .bhs-v-scene.is-bare .mo-architecture-art { transform: translateY(calc(var(--h) * -50px)) rotate(calc(var(--h) * -3deg)); }
/* scene nelle pagine: senza cornice, l'illustrazione sta sulla pagina */
.bhs-scene-art .mo-stage { background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible; backdrop-filter: none; }
.bhs-scene-art :is(.mo-organic, .mo-scene-grain, .mo-scene-topline, .mo-scene-progress) { display: none !important; }
.bhs-scene-art .mo-caption > strong { display: none; }
.bhs-scene-art .mo-caption { inset: auto 0 -8px 0 !important; text-align: left; }


/* capitoli: copia e visual alternati, il visual entra ruotando e resta vivo mentre scorri */
.bhx-chapters .bh-wrap { display: grid; gap: clamp(60px, 10vh, 140px); }
.bhx-ch { --t: clamp(0, calc(var(--v, .5) * 2.4), 1); --m: calc(var(--v, .5) - .5); display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 6vw; min-height: 70vh; }
.bhx-ch.is-flip { grid-template-columns: 1.1fr .9fr; }
.bhx-ch.is-flip .bhx-ch-copy { order: 2; }
.bhx-ord { margin: 0 0 18px; color: var(--acc); font: 600 12px/1.4 ui-monospace, Menlo, monospace; letter-spacing: .12em; }
.bhx-ch-copy h3 { margin: 0 0 20px; color: var(--bh-ink); font-size: clamp(34px, 3.6vw, 60px); font-weight: 650; line-height: .98; letter-spacing: -.045em; }
.bhx-ch-copy { color: var(--bh-ink-2); font-size: 17.5px; line-height: 1.65; }
.bhx-art { position: relative; display: grid; place-items: center; min-height: 520px; perspective: 1400px; transform-style: preserve-3d; }
.bhx-art > :first-child { opacity: var(--t); transform: translateY(calc((1 - var(--t)) * 120px + var(--m) * -60px)) rotateY(calc((1 - var(--t)) * -28deg + var(--m) * 14deg)) rotateZ(calc(var(--m) * -6deg)) scale(calc(.86 + var(--t) * .14)); }
.is-flip .bhx-art > :first-child { transform: translateY(calc((1 - var(--t)) * 120px + var(--m) * -60px)) rotateY(calc((1 - var(--t)) * 28deg + var(--m) * -14deg)) rotateZ(calc(var(--m) * 6deg)) scale(calc(.86 + var(--t) * .14)); }
.bhx-chrome { display: flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-bottom: 1px solid var(--bh-line); color: var(--bh-muted); font: 600 9px/1 ui-monospace, Menlo, monospace; letter-spacing: .08em; }
.bhx-chrome i { width: 7px; height: 7px; border-radius: 50%; background: var(--bh-line-2); } .bhx-chrome span { margin: auto; }
.bhx-ph { display: grid; gap: 10px; place-content: center; aspect-ratio: 1.25; border-radius: 10px; background: linear-gradient(135deg, color-mix(in srgb, var(--acc) 22%, #fff), #fff7ec); }
.bhx-ph i { width: 140px; height: 10px; border-radius: 5px; background: rgba(255,255,255,.8); } .bhx-ph i:nth-child(2) { width: 90px; }
/* finestra */
.bhx-display { width: min(94%, 620px); padding-bottom: 14px; border-radius: 18px; background: rgba(255,255,255,.82); box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 50px 90px -40px rgba(31,18,70,.45); backdrop-filter: blur(10px); }
.bhx-display-body { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; padding: 12px; }
.bhx-display-body img { display: block; width: 100%; aspect-ratio: 1.25; object-fit: cover; border-radius: 10px; }
.bhx-side { display: grid; align-content: start; justify-content: center; gap: 22px; padding-top: 12px; color: var(--acc); } .bhx-side i { font-style: normal; font-size: 18px; }
.bhx-dock { display: flex; justify-content: center; gap: 8px; } .bhx-dock i { width: 8px; height: 8px; border-radius: 3px; background: var(--bh-line-2); }
.bhx-plot { position: absolute; right: 0; bottom: 4%; width: 46%; height: 140px; padding: 18px; border-radius: 18px; background: rgba(255,255,255,.92); box-shadow: var(--bh-shadow-lg); transform: rotate(6deg) translateY(calc(var(--m) * -90px)) translateZ(60px); }
/* telefono con app */
.bhx-device { position: relative; width: min(280px, 62%); padding: 9px; border-radius: 46px; background: linear-gradient(120deg, #33303f, #b5b0bd 34%, #37333f 65%, #aaa4b2); box-shadow: 0 60px 100px -40px rgba(31,18,70,.6); }
.bhx-device .bhx-isl { position: absolute; left: 50%; top: 18px; z-index: 3; width: 32%; height: 18px; margin-left: -16%; border-radius: 12px; background: #15121c; }
.bhx-device-ui { container-type: inline-size; overflow: hidden; border-radius: 38px; background: #faf8f1; }
.bhx-sticker { position: absolute; left: 4%; bottom: 10%; z-index: 2; width: 150px; aspect-ratio: 1; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 6px rgba(255,255,255,.85), var(--bh-shadow-lg); transform: translateY(calc(var(--m) * 110px)) rotate(calc(var(--m) * -30deg)); }
.is-flip .bhx-sticker { left: auto; right: 4%; }
.bhx-sticker img { width: 100%; height: 100%; object-fit: cover; }
.bhx-note { position: absolute; right: 0; top: 18%; z-index: 3; display: flex; gap: 12px; width: 230px; padding: 16px; border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--bh-shadow-lg); font-size: 14px; font-weight: 600; transform: translateY(calc(var(--m) * -80px)) rotate(4deg); }
.is-flip .bhx-note { right: auto; left: 0; transform: translateY(calc(var(--m) * -80px)) rotate(-4deg); }
.bhx-note i { color: var(--acc); font-style: normal; font-size: 20px; } .bhx-note small { display: block; color: var(--bh-muted); font-size: 12px; font-weight: 500; }
/* locandina */
.bhx-poster { position: relative; width: 84%; padding: 20px; border-radius: 10px; background: #f4dfbe; box-shadow: 0 50px 90px -40px rgba(80,50,30,.5); }
.bhx-poster span { display: block; margin-bottom: 18px; font: 600 10px/1 ui-monospace, Menlo, monospace; letter-spacing: .1em; }
.bhx-poster img { display: block; width: 100%; aspect-ratio: 1.1; object-fit: cover; border-radius: 6px; }
.bhx-poster > i { position: absolute; right: 18px; bottom: 14px; font-style: normal; font-size: 26px; }
.bhx-stamp { position: absolute; right: 2%; top: 6%; display: grid; place-items: center; width: 130px; height: 130px; border-radius: 50%; background: var(--acc); color: #fff; font-size: 14px; font-weight: 800; line-height: 1.1; text-align: center; letter-spacing: .06em; transform: rotate(calc(var(--m) * 120deg)) translateZ(60px); }
/* pannello di verifica (sicurezza) */
.bhx-evidence { position: relative; width: 90%; overflow: hidden; border-radius: 14px; background: #1b2530; box-shadow: 0 50px 90px -40px rgba(0,0,0,.7), 0 0 0 1px rgba(110,231,168,.18); }
.bhx-evidence .bhx-chrome { color: #7fb7a1; border-color: rgba(255,255,255,.08); } .bhx-evidence .bhx-chrome i { background: #3c5a50; }
.bhx-evidence img { display: block; width: 100%; aspect-ratio: 1.35; object-fit: cover; opacity: .9; }
.bhx-scan { position: absolute; left: 0; right: 0; top: 40px; height: 34%; background: linear-gradient(180deg, transparent, rgba(110,231,168,.28), transparent); transform: translateY(calc(var(--v, .5) * 220%)); mix-blend-mode: screen; }
.bhx-halo { position: absolute; inset: 4% 12%; z-index: -1; border: 1px solid rgba(110,231,168,.25); border-radius: 50%; transform: rotate(calc(14deg + var(--m) * 60deg)); }
.bhx-tag { position: absolute; left: 0; bottom: 8%; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 14px; background: rgba(11,8,22,.8); color: #e9fff4; font-size: 13px; font-weight: 600; box-shadow: var(--bh-shadow-lg); transform: translateY(calc(var(--m) * -70px)); }
.bhx-tag b { width: 9px; height: 9px; border-radius: 50%; background: #6ee7a8; box-shadow: 0 0 0 5px rgba(110,231,168,.2); }
/* mini grafici */
.bhx-line { display: block; width: 100%; height: 100%; overflow: visible; }
.bhx-line path { fill: none; stroke: var(--acc); stroke-width: 3; stroke-linecap: round; }
.bhx-line .g { stroke: var(--bh-line); stroke-width: 1; } .bhx-line .t { opacity: .22; stroke-width: 4; }
.bhx-line .l { stroke-dasharray: 1; stroke-dashoffset: calc(1 - clamp(0, var(--v, .5) * 1.8, 1)); }
.bhx-line circle { fill: var(--acc); }
.bhx-bars { display: flex; align-items: flex-end; gap: 10px; height: 100%; padding: 0 6%; }
.bhx-bars i { flex: 1; height: var(--h); border-radius: 6px 6px 0 0; background: linear-gradient(var(--acc), color-mix(in srgb, var(--acc) 25%, #fff)); transform: scaleY(clamp(.2, calc(var(--v, .5) * 1.6 - var(--k) * .05), 1)); transform-origin: bottom; }
.bhx-ring { position: relative; display: grid; place-items: center; width: 110px; height: 110px; margin: auto; }
.bhx-ring i { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(var(--acc) 0deg calc(var(--v, .5) * 340deg), var(--bh-line) 0); -webkit-mask: radial-gradient(transparent 57%, #000 58%); mask: radial-gradient(transparent 57%, #000 58%); }
.bhx-ring b { position: absolute; inset: 16%; border: 1px dashed var(--bh-line-2); border-radius: 50%; transform: rotate(calc(var(--v, .5) * 180deg)); }
.bhx-ring span { color: var(--acc); font-size: 40px; }

/* schede con mini-schemi */
.bhx-feats-in { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.bhx-feats-in.n3 { grid-template-columns: repeat(3, 1fr); }
.bhx-f { display: flex; flex-direction: column; gap: 12px; padding: 30px; border-radius: 30px; color: var(--bh-ink-2); }
.bhx-feats-in:not(.n3) .bhx-f:nth-child(even) { transform: translateY(70px); }
.bhx-feats-in.n3 .bhx-f:nth-child(2) { transform: translateY(50px); }
.bhx-f-n { color: var(--acc); font: italic 400 46px/1 "Instrument Serif", serif; }
.bhx-f h3 { margin: 0; color: var(--bh-ink); font-size: clamp(22px, 1.9vw, 30px); font-weight: 640; line-height: 1.08; letter-spacing: -.03em; }
.bhx-f-art { position: relative; height: 170px; margin-top: auto; padding-top: 20px; }
.bhx-f-note { position: absolute; right: 0; bottom: -6px; color: var(--bh-faint, #9a93ad); font-size: 11px; }
.bhx-map { position: relative; width: 100%; height: 100%; }
.bhx-map svg { position: absolute; inset: 5% 0; width: 100%; height: 90%; }
.bhx-map path { fill: none; stroke: var(--acc); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: calc(1 - clamp(0, var(--v, .5) * 1.7, 1)); }
.bhx-map span { position: absolute; left: calc(2% + var(--n) * 33%); top: calc(48% - var(--n) * 12%); display: grid; gap: 8px; width: 30%; color: var(--bh-muted); font-size: 12px; font-weight: 600; transform: translateY(calc((var(--v, .5) - .5) * -40px)); }
.bhx-map span i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--bh-bg); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--acc) 50%, #fff); color: var(--acc); font: 600 10px ui-monospace, monospace; font-style: normal; }
.bhx-tiles { display: flex; justify-content: center; align-items: center; gap: 12px; height: 100%; }
.bhx-tiles span { width: 28%; padding: 12px; border-radius: 14px; background: color-mix(in srgb, var(--acc) 9%, #fff); box-shadow: var(--bh-shadow); transform: rotate(calc((var(--n) - 1) * 10deg * (1 - var(--v, .5)))) translateY(calc((var(--n) - 1) * (var(--v, .5) - .5) * -50px)); }
.bhx-tiles i { display: block; width: 62%; margin: 0 auto 10px; aspect-ratio: 1; border-radius: 60% 40% 50% 50%; background: radial-gradient(circle at 25% 25%, #fff9, transparent 50%), linear-gradient(120deg, #e3d7ef, var(--acc)); }
.bhx-tiles b { display: block; color: var(--bh-ink); font-size: 11px; text-align: center; }
.bhx-dialog { display: grid; gap: 8px; height: 100%; align-content: center; }
.bhx-dialog span { justify-self: start; max-width: 85%; padding: 12px 18px; border-radius: 18px 18px 18px 4px; background: color-mix(in srgb, var(--acc) 12%, #fff); color: var(--bh-ink); font-size: 13px; transform: translateX(calc((var(--v, .5) - .5) * -40px)); }
.bhx-dialog span:last-child { justify-self: end; border-radius: 18px 18px 4px 18px; background: var(--bh-ink); color: #fff; transform: translateX(calc((var(--v, .5) - .5) * 40px)); }
.bhx-dialog i { justify-self: center; color: var(--acc); font-style: normal; }
.bhx-orb { position: relative; height: 100%; }
.bhx-orb > i { position: absolute; left: 15%; top: 8%; width: 70%; height: 84%; border: 1px dashed color-mix(in srgb, var(--acc) 40%, transparent); border-radius: 50%; transform: rotate(calc(var(--v, .5) * 120deg)); }
.bhx-orb > b { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 54px; height: 54px; margin: -27px; border-radius: 50%; background: var(--acc); color: #fff; font-size: 24px; }
.bhx-orb span { position: absolute; left: 50%; top: 50%; padding: 6px 12px; border-radius: 99px; background: #fff; box-shadow: var(--bh-shadow); color: var(--bh-ink); font-size: 12px; font-weight: 600; white-space: nowrap; transform: translate(-50%, -50%) rotate(calc(var(--n) * 120deg + var(--v, .5) * 120deg)) translateX(clamp(70px, 9vw, 120px)) rotate(calc(var(--n) * -120deg - var(--v, .5) * 120deg)); }
.bhx-word { display: flex; justify-content: space-between; align-items: center; height: 100%; }
.bhx-word span { color: var(--bh-muted); font: 600 12px ui-monospace, monospace; }
.bhx-word b { color: var(--acc); font-size: clamp(34px, 4vw, 60px); font-weight: 650; letter-spacing: -.05em; transform: rotate(calc(-5deg + var(--v, .5) * 8deg)); }
.bhx-word i { font-style: normal; font-size: 28px; }
.bhx-code { display: grid; gap: 8px; align-content: center; height: 100%; padding-left: 20px; border-left: 2px solid color-mix(in srgb, var(--acc) 40%, transparent); color: var(--bh-muted); font: 13px/1.3 ui-monospace, Menlo, monospace; }
.bhx-code i { color: var(--acc); font-style: normal; } .bhx-code b { padding-left: 20px; color: var(--bh-ink); font-weight: 500; }
.bhx-code > * { transform: translateX(calc((1 - clamp(0, var(--v, .5) * 2, 1)) * 30px)); }
.bhx-layers { position: relative; height: 100%; }
.bhx-layers span { position: absolute; left: calc(var(--n) * 8%); top: calc(var(--n) * 31%); display: flex; align-items: center; gap: 12px; width: 78%; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.92); box-shadow: var(--bh-shadow); color: var(--bh-ink); font-size: 13px; font-weight: 600; transform: translateX(calc((var(--v, .5) - .5) * var(--n) * 40px)); }
.bhx-layers i { color: var(--acc); font: 600 10px ui-monospace, monospace; font-style: normal; } .bhx-layers b { margin-left: auto; color: var(--acc); }
.bhx-mini-phone { width: 90px; height: 100%; margin: auto; overflow: hidden; border-radius: 20px; box-shadow: 0 0 0 5px #2a2340; }
.bhx-mini-phone > div { container-type: inline-size; }
.bh-dark .bhx-display, .bh-dark .bhx-plot, .bh-dark .bhx-note { background: rgba(30,24,52,.85); }
.bh-dark .bhx-layers span, .bh-dark .bhx-orb span, .bh-dark .bhx-tiles span { background: rgba(255,255,255,.08); color: var(--bh-ink); }

@media (max-width: 1000px) {
  .bhx-ch, .bhx-ch.is-flip { grid-template-columns: 1fr; gap: 30px; min-height: 0; }
  .bhx-ch.is-flip .bhx-ch-copy { order: 0; }
  .bhx-art { min-height: 440px; }
  .bhx-feats-in, .bhx-feats-in.n3 { grid-template-columns: 1fr; } .bhx-f:nth-child(n) { transform: none !important; }
  .bhx-note { width: 190px; } .bhx-sticker { width: 110px; }
}
@media (prefers-reduced-motion: reduce) {
  .bhs-world > i { animation: none; transform: none !important; } .bhs-world > svg { stroke-dashoffset: 0; }
  .bhx-art > :first-child, .is-flip .bhx-art > :first-child { opacity: 1; transform: none !important; }
  .bhx-sticker, .bhx-note, .bhx-plot, .bhx-stamp, .bhx-tag, .bhx-scan { transform: none !important; }
  .bhs-v-scene.is-bare * { translate: none !important; rotate: none !important; }
}
html:not(.bh-js) .bhx-art > :first-child { opacity: 1; transform: none; }
/* testo + immagine dentro le sezioni */
.bhs-spread { --m: calc(var(--v, .5) - .5); display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 5vw; margin: 0 0 40px; perspective: 1300px; }
.bhs-spread-lead { margin: 0 0 16px; color: var(--bh-ink); font-size: clamp(22px, 2vw, 30px); font-weight: 600; line-height: 1.25; letter-spacing: -.02em; }
.bhs-spread-media { margin: 0; }
.bhs-spread-media .bh-card-media { overflow: hidden; border-radius: 26px; aspect-ratio: 4 / 3; box-shadow: var(--bh-shadow-lg); transform: rotateY(calc(var(--m) * -22deg)) rotateX(calc(var(--m) * 10deg)) translateY(calc(var(--m) * -50px)); }
.bhs-split-body .bhs-spread, .bhs-quote-body .bhs-spread { grid-template-columns: 1fr; }
@media (max-width: 1000px) { .bhs-spread { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .bhs-spread-media .bh-card-media { transform: none; } }

/* percorso · variante timeline: titolo fermo a sinistra, i passi si accendono uno alla volta */
.bhs-tl-in { display: grid; grid-template-columns: .85fr 1.15fr; gap: 6vw; align-items: start; }
.bhs-tl-head { position: sticky; top: 130px; display: grid; gap: 26px; }
.bhs-tl-meter { width: 100%; height: 6px; border-radius: 6px; background: var(--bh-line); overflow: hidden; }
.bhs-tl-meter i { display: block; height: 100%; background: linear-gradient(90deg, var(--acc), var(--bh-amber)); transform-origin: 0; transform: scaleX(var(--p, 0)); }
.bhs-tl-steps { position: relative; margin: 0; padding: 0; list-style: none; }
.bhs-tl-steps::before { content: ""; position: absolute; left: 39px; top: 20px; bottom: 20px; width: 2px; background: var(--bh-line); }
body.bhs main .bhs-tl-steps li { position: relative; display: grid; grid-template-columns: 80px 1fr; gap: 26px; min-height: 30vh; margin: 0; padding: 0 0 40px; opacity: .38; transition: opacity .6s; }
body.bhs main .bhs-tl-steps li::before { display: none; }
body.bhs main .bhs-tl-steps li.on, body.bhs main .bhs-tl-steps li.past { opacity: 1; }
.bhs-tl-n { position: relative; z-index: 1; display: grid; place-items: center; width: 80px; height: 80px; border-radius: 50%; background: var(--bh-bg); box-shadow: inset 0 0 0 2px var(--bh-line-2); color: var(--acc); font: italic 400 34px/1 "Instrument Serif", serif; transition: background .5s, color .5s, transform .6s var(--bh-ease); }
.bhs-tl-steps li.on .bhs-tl-n { background: var(--acc); color: #fff; transform: scale(1.08); box-shadow: 0 0 0 8px color-mix(in srgb, var(--acc) 18%, transparent); }
.bhs-tl-steps li.past .bhs-tl-n { background: color-mix(in srgb, var(--acc) 14%, var(--bh-bg)); }
.bhs-tl-steps h3 { margin: 18px 0 10px; font-size: clamp(26px, 2.4vw, 38px); font-weight: 640; letter-spacing: -.035em; }
.bhs-tl-steps p { margin: 0; color: var(--bh-muted); font-size: 17px; line-height: 1.6; max-width: 46ch; }
/* percorso · variante griglia con linea che si disegna */
.bhs-pg-in { position: relative; display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 18px; margin-top: 60px; }
.bhs-pg-line { position: absolute; left: 0; right: 0; top: 38px; width: 100%; height: 40px; z-index: -1; }
.bhs-pg-line path { fill: none; stroke: var(--acc); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: calc(1 - clamp(0, var(--v, .5) * 2.2 - .3, 1)); vector-effect: non-scaling-stroke; }
.bhs-pg-c { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: 26px; }
.bhs-pg-c:nth-child(even) { margin-top: 60px; }
.bhs-pg-c b { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--acc); color: #fff; font: italic 400 30px/1 "Instrument Serif", serif; box-shadow: 0 0 0 8px color-mix(in srgb, var(--acc) 15%, transparent); }
.bhs-pg-c h3 { margin: 10px 0 0; font-size: 24px; letter-spacing: -.03em; } .bhs-pg-c p { margin: 0; color: var(--bh-muted); }
/* perché BitHub · variante elenco */
.bhs-wl { margin: 50px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--bh-line-2); }
body.bhs main .bhs-wl li { display: grid; grid-template-columns: 120px minmax(0, .9fr) minmax(0, 1.1fr); align-items: baseline; gap: 30px; margin: 0; padding: 34px 0; border-bottom: 1px solid var(--bh-line-2); transition: padding .5s var(--bh-ease); }
body.bhs main .bhs-wl li::before { display: none; }
body.bhs main .bhs-wl li:hover { padding-left: 18px; }
.bhs-wl span { color: var(--acc); font: italic 400 64px/.8 "Instrument Serif", serif; }
.bhs-wl b { font-size: clamp(24px, 2.4vw, 36px); font-weight: 640; line-height: 1.05; letter-spacing: -.035em; }
.bhs-wl p { margin: 0; color: var(--bh-muted); font-size: 17px; line-height: 1.6; }
/* perché BitHub · variante schede impilate */
.bhs-ws-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5vw; align-items: start; }
.bhs-ws-head { position: sticky; top: 130px; }
.bhs-ws { display: grid; gap: 0; }
.bhs-ws-c { position: sticky; top: calc(120px + var(--i) * 26px); display: grid; gap: 12px; min-height: 260px; margin-bottom: 40px; padding: 34px; border-radius: 30px; transform: scale(var(--s, 1)); transform-origin: top center; filter: brightness(calc(1 - var(--dim, 0) * .08)); }
.bhs-ws-c span { color: var(--acc); font: italic 400 56px/1 "Instrument Serif", serif; }
.bhs-ws-c h3 { margin: 0; font-size: clamp(26px, 2.4vw, 36px); letter-spacing: -.035em; } .bhs-ws-c p { margin: 0; color: var(--bh-muted); font-size: 17px; line-height: 1.6; }
@media (max-width: 1000px) {
  .bhs-tl-in, .bhs-ws-in { grid-template-columns: 1fr; } .bhs-tl-head, .bhs-ws-head { position: static; }
  body.bhs main .bhs-tl-steps li { min-height: 0; opacity: 1; grid-template-columns: 60px 1fr; } .bhs-tl-n { width: 60px; height: 60px; font-size: 26px; } .bhs-tl-steps::before { left: 29px; }
  .bhs-pg-in { grid-template-columns: 1fr 1fr; } .bhs-pg-c:nth-child(even) { margin-top: 0; } .bhs-pg-line { display: none; }
  body.bhs main .bhs-wl li { grid-template-columns: 70px 1fr; } .bhs-wl p { grid-column: 2; } .bhs-wl span { font-size: 44px; }
  .bhs-ws-c { position: relative; top: 0; }
}
@media (max-width: 600px) { .bhs-pg-in { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { body.bhs main .bhs-tl-steps li { opacity: 1; } .bhs-pg-line path { stroke-dashoffset: 0; } }
html:not(.bh-js) body.bhs main .bhs-tl-steps li { opacity: 1; }

/* mini-schemi aggiuntivi: risultati di ricerca e spunte */
.bhx-serp { display: grid; gap: 8px; align-content: center; height: 100%; }
.bhx-serp span { display: grid; gap: 2px; padding: 9px 14px; border-radius: 12px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--bh-line); transform: translateX(calc((var(--v, .5) - .5) * (var(--n) - 1) * 30px)); }
.bhx-serp span.me { box-shadow: inset 0 0 0 1.5px var(--acc), var(--bh-shadow); transform: translateY(calc((.5 - var(--v, .5)) * 24px)) scale(1.02); }
.bhx-serp small { color: #16a37a; font-size: 10.5px; } .bhx-serp b { color: #1f4fd8; font-size: 13px; font-weight: 650; }
.bhx-serp i { display: block; width: 70%; height: 5px; border-radius: 3px; background: var(--bh-line); }
.bhx-checks { display: grid; gap: 8px; align-content: center; height: 100%; }
.bhx-checks span { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--bh-line); color: var(--bh-ink); font-size: 13px; font-weight: 600; opacity: clamp(.25, calc(var(--v, .5) * 3 - var(--n) * .35), 1); }
.bhx-checks i { display: grid; place-items: center; flex: none; width: 20px; height: 20px; border-radius: 50%; background: #16a37a; color: #fff; font-size: 11px; font-style: normal; }
.bh-dark .bhx-serp span, .bh-dark .bhx-checks span { background: rgba(255,255,255,.07); }
@media (prefers-reduced-motion: reduce) { .bhx-checks span { opacity: 1; } }
/* percorso per settore: nessuna cornice, la scena sta sulla pagina come nella versione Codex */
.bhs-journey .mo-stage.co-journey { height: auto !important; min-height: 0; margin: 18px 0 0; padding: 0; overflow: visible; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.bhs-journey .mo-stage.co-journey :is(.mo-organic, .mo-scene-grain, .mo-scene-progress) { display: none !important; }
.bhs-journey .co-journey-heading h2 { margin: 0 0 18px; font-size: clamp(36px, 5vw, 72px); line-height: 1; letter-spacing: -.05em; max-width: 16ch; }
.bhs-journey .co-sector-window { filter: drop-shadow(0 40px 60px rgba(31,18,70,.18)); }

/* scena a strati sulle pagine scure: vetro scuro e immagine nitida in primo piano */
.bh-dark .bhs-scene-art .mo-glass-sheet { border-color: rgba(255,255,255,.16); background: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.04)); box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 30px 60px -28px rgba(0,0,0,.75); backdrop-filter: none; color: var(--bh-ink); }
.bh-dark .bhs-scene-art .mo-glass-sheet--2 { z-index: 4; }
.bh-dark .bhs-scene-art .mo-glass-sheet :is(span, .mo-sheet-switch span) { color: var(--bh-ink-2); }
.bh-dark .bhs-scene-art .mo-skeleton i { background: rgba(255,255,255,.16); }
.bh-dark .bhs-scene-art .mo-layers-orb { opacity: .5; }

/* ===== app: telefoni in vero 3D nei capitoli ===== */
.bhx-art--device { perspective: 1600px; transform-style: preserve-3d; }
.bhx-art--device > .bhx-device:first-child {
  z-index: 2; transform-style: preserve-3d;
  transform: translateY(calc((1 - var(--t)) * 160px + var(--m) * -70px)) rotateY(calc((1 - var(--t)) * -55deg + var(--m) * 34deg + -14deg)) rotateX(calc(8deg + var(--m) * -10deg)) rotateZ(calc(var(--m) * -5deg)) scale(calc(.82 + var(--t) * .18));
  box-shadow: 1px 0 0 #9c97a8, 2px 0 0 #8a8597, 3px 0 0 #77728a, 4px 0 0 #645f78, 5px 1px 0 #524d66, 6px 2px 0 #403b54, 0 70px 110px -40px rgba(31,18,70,.65), 0 24px 40px -20px rgba(31,18,70,.4);
}
.is-flip .bhx-art--device > .bhx-device:first-child {
  transform: translateY(calc((1 - var(--t)) * 160px + var(--m) * -70px)) rotateY(calc((1 - var(--t)) * 55deg + var(--m) * -34deg + 14deg)) rotateX(calc(8deg + var(--m) * -10deg)) rotateZ(calc(var(--m) * 5deg)) scale(calc(.82 + var(--t) * .18));
  box-shadow: -1px 0 0 #9c97a8, -2px 0 0 #8a8597, -3px 0 0 #77728a, -4px 0 0 #645f78, -5px 1px 0 #524d66, -6px 2px 0 #403b54, 0 70px 110px -40px rgba(31,18,70,.65), 0 24px 40px -20px rgba(31,18,70,.4);
}
.bhx-gloss { position: absolute; inset: 9px; z-index: 4; border-radius: 38px; pointer-events: none; background: linear-gradient(calc(110deg + var(--m) * 60deg), rgba(255,255,255,0) 30%, rgba(255,255,255,.38) 46%, rgba(255,255,255,0) 60%); mix-blend-mode: soft-light; }
.bhx-device--back { position: absolute; z-index: 1; width: min(230px, 50%); opacity: calc(.35 + var(--t) * .5); filter: saturate(.8) brightness(.97); transform: translateX(calc(46% + var(--m) * 90px)) translateY(calc(-8% + var(--m) * 60px)) translateZ(-160px) rotateY(calc(-26deg + var(--m) * 20deg)) rotateZ(6deg); box-shadow: 0 50px 80px -40px rgba(31,18,70,.5); }
.is-flip .bhx-device--back { transform: translateX(calc(-46% + var(--m) * -90px)) translateY(calc(-8% + var(--m) * 60px)) translateZ(-160px) rotateY(calc(26deg + var(--m) * -20deg)) rotateZ(-6deg); }
.bhx-art--device .bhx-sticker { z-index: 3; transform: translateZ(90px) translateY(calc(var(--m) * 130px)) rotate(calc(var(--m) * -40deg)); }
.bhx-art--device .bhx-note { z-index: 3; transform: translateZ(120px) translateY(calc(var(--m) * -110px)) rotate(4deg); }
.is-flip .bhx-art--device .bhx-note { transform: translateZ(120px) translateY(calc(var(--m) * -110px)) rotate(-4deg); }
@media (max-width: 1000px) { .bhx-device--back { width: 42%; } }
@media (prefers-reduced-motion: reduce) { .bhx-art--device > .bhx-device:first-child, .is-flip .bhx-art--device > .bhx-device:first-child { transform: rotateY(-12deg) rotateX(6deg) !important; } .bhx-device--back { transform: translateX(46%) translateZ(-160px) rotateY(-20deg) !important; opacity: .7; } }

/* ===== app: l'hero si apre in modo evidente mentre scorri ===== */
@media (min-width: 901px) {
  .bhs-v-scene.is-bare.studio-experience--phones { --h: clamp(0, calc((var(--v, .4) - .44) * 2.6), 1); }
  .studio-experience--phones.is-bare .mo-phone-trio { transform: translateY(calc(var(--h) * -70px)) scale(calc(1 + var(--h) * .06)); }
  .studio-experience--phones.is-bare .mo-phone--ritmo { translate: calc(var(--h) * -130px) calc(var(--h) * 70px); rotate: calc(var(--h) * -12deg); }
  .studio-experience--phones.is-bare .mo-phone--nido { translate: calc(var(--h) * -30px) calc(var(--h) * -90px); scale: calc(1 + var(--h) * .08); }
  .studio-experience--phones.is-bare .mo-phone--altrove { translate: calc(var(--h) * 70px) calc(var(--h) * -20px); rotate: calc(var(--h) * 8deg); }
  .studio-experience--phones.is-bare .mo-phone--forma { translate: calc(var(--h) * 170px) calc(var(--h) * 90px); rotate: calc(var(--h) * 16deg); }
  .studio-experience--phones.is-bare .mo-phone-sticker { translate: calc(var(--h) * 40px) calc(var(--h) * 120px); rotate: calc(var(--h) * -8deg); }
}
@media (prefers-reduced-motion: reduce) { .studio-experience--phones.is-bare :is(.mo-phone, .mo-phone-trio, .mo-phone-sticker) { translate: none !important; rotate: none !important; scale: none !important; } }

/* ===== volontariato digitale · responsible disclosure (Cyber security + Chi siamo) ===== */
body.bhs main .bhd li { padding-left: 0; margin: 0; line-height: inherit; }
body.bhs main .bhd li::before { display: none; }
.bhd b, .bhd strong { font-weight: 700; }
.bhd .bhd-node b { font-weight: 600; }
.bhd-real-copy p, .bhd-what-copy p, .bhd-how-copy p, .bhd-who-copy p, .bhd-priv-copy p, .bhd-about-copy p { margin: 0 0 14px; }
.bhd { position: relative; padding-block: clamp(90px, 12vw, 170px); }
.bhd .bh-wrap { position: relative; }
.bhd-head { max-width: 980px; margin-bottom: clamp(56px, 7vw, 96px); }
.bhd-head .bh-lead { margin-top: 22px; max-width: 720px; }
.bhd-h3 { margin: 0 0 18px; font-size: clamp(26px, 2.6vw, 40px); font-weight: 650; letter-spacing: -.035em; line-height: 1.06; color: var(--bh-ink); }
.bhd p { color: var(--bh-ink-2); line-height: 1.65; }
.bhd-pledge { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
body.bhs main .bhd-pledge li { display: inline-flex; align-items: center; gap: 9px; padding: 10px 16px 10px 10px; border-radius: 99px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px var(--bh-line-2, rgba(0,0,0,.12)); color: var(--bh-ink); font-size: 14px; font-weight: 550; }
body.bhs main .bhd-pledge li i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #34d399; color: #062b1d; font-style: normal; font-size: 12px; font-weight: 800; }

/* 1 · conseguenze reali: timeline */
.bhd-real { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.bhd-real-copy { position: sticky; top: 120px; }
.bhd-caveat a.bh-link { display: inline; padding-bottom: 0; background-size: 100% 1px; }
.bhd-caveat { margin-top: 22px; padding-left: 18px; border-left: 2px solid var(--acc, #8b5cf6); font-size: 15px; }
.bhd-tl { position: relative; margin: 0; padding: 0 0 0 40px; list-style: none; display: grid; gap: 18px; }
.bhd-tl::before, .bhd-tl::after { content: ""; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: var(--bh-line-2, rgba(0,0,0,.14)); }
.bhd-tl::after { background: linear-gradient(#f2a93b, #fb7185 55%, var(--acc, #8b5cf6)); transform-origin: top; transform: scaleY(clamp(0, calc(var(--v, 1) * 2.1 - .35), 1)); }
body.bhs main .bhd .bhd-tl-i { position: relative; padding: 26px 30px 24px; border-radius: 22px; background: linear-gradient(150deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); box-shadow: inset 0 0 0 1px var(--bh-line, rgba(0,0,0,.08)); }
.bhd-tl-dot { position: absolute; left: -35px; top: 32px; width: 14px; height: 14px; border-radius: 50%; background: var(--bh-bg, #0b0816); box-shadow: 0 0 0 2px #f2a93b, 0 0 18px 2px rgba(242,169,59,.55); }
body.bhs main .bhd-tl-i:nth-child(2) .bhd-tl-dot { box-shadow: 0 0 0 2px #fb7185, 0 0 18px 2px rgba(251,113,133,.5); }
body.bhs main .bhd-tl-i:nth-child(3) .bhd-tl-dot { box-shadow: 0 0 0 2px var(--acc, #8b5cf6), 0 0 18px 2px rgba(139,92,246,.55); }
body.bhs main .bhd-tl-i time { display: inline-block; margin-bottom: 12px; font: italic 400 22px/1 "Instrument Serif", serif; color: var(--bh-ink); }
body.bhs main .bhd-tl-i h4 { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bh-muted); }
body.bhs main .bhd-tl-i p { margin: 0; max-width: 62ch; font-size: 15.5px; line-height: 1.6; }
.bhd-src { display: inline-flex; gap: 6px; margin-top: 16px; font-size: 13px; font-weight: 600; color: var(--bh-violet) !important; text-decoration: none; }
.bhd-src:hover { text-decoration: underline; }

/* 2 · superficie osservata */
.bhd-what { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; margin-top: clamp(90px, 11vw, 160px); }
.bhd-surface { position: relative; container-type: inline-size; width: 100%; max-width: 560px; aspect-ratio: 1; margin-inline: auto; }
.bhd-surface::before, .bhd-surface::after { content: ""; position: absolute; inset: 18%; border-radius: 50%; border: 1px solid rgba(167,139,250,.35); animation: bhd-pulse 5s var(--bh-ease) infinite; }
.bhd-surface::after { animation-delay: 2.5s; }
@keyframes bhd-pulse { from { transform: scale(.55); opacity: .9; } to { transform: scale(1.45); opacity: 0; } }
.bhd-scan { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--bh-line-2, rgba(0,0,0,.16)); stroke-width: .5; stroke-dasharray: 2 4; transform: rotate(calc(var(--v, 0) * 120deg)); }
.bhd-core { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; place-items: center; align-content: center; width: 30cqi; height: 30cqi; border-radius: 50%; transform: translate(-50%, -50%); background: radial-gradient(circle at 35% 30%, #a78bfa, #5b21b6 60%, #2e1065); box-shadow: 0 0 0 10px rgba(139,92,246,.12), 0 0 80px 10px rgba(124,58,237,.45); color: #fff; text-align: center; }
.bhd-core span { font-size: clamp(16px, 4.4cqi, 24px); font-weight: 700; letter-spacing: -.02em; }
.bhd-core small { font-size: clamp(10px, 2.6cqi, 13px); opacity: .8; }
.bhd-node { position: absolute; left: 50%; top: 50%; width: 0; height: 0; --a: calc(360deg / var(--n) * var(--k) + var(--v, 0) * 70deg - 90deg); transform: rotate(var(--a)); }
.bhd-node::before { content: ""; position: absolute; left: 15cqi; top: -.5px; width: 23cqi; height: 1px; background: linear-gradient(90deg, rgba(167,139,250,.6), rgba(167,139,250,.08)); }
.bhd-node::after { content: ""; position: absolute; left: 15cqi; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: #c4b5fd; box-shadow: 0 0 10px #a78bfa; animation: bhd-travel 3.6s linear infinite; animation-delay: calc(var(--k) * -.6s); }
@keyframes bhd-travel { from { transform: translateX(23cqi); opacity: 0; } 15% { opacity: 1; } to { transform: translateX(0); opacity: 0; } }
.bhd-node b { position: absolute; left: 39cqi; top: 0; display: block; max-width: 30cqi; padding: 9px 13px; border-radius: 14px; transform: translate(-50%, -50%) rotate(calc(-1 * var(--a))); background: rgba(20,14,40,.72); backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14), 0 14px 30px -14px rgba(0,0,0,.7); color: #f4f1ff; font-size: clamp(10.5px, 2.5cqi, 13.5px); font-weight: 600; line-height: 1.25; text-align: center; }
.bhd-node b::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: #f2a93b; box-shadow: 0 0 8px #f2a93b; vertical-align: 1px; }
.bhd-triad { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
body.bhs main .bhd-triad li { padding: 18px 16px 16px; border-radius: 18px; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px var(--bh-line, rgba(0,0,0,.08)); border-top: 3px solid #34d399; }
body.bhs main .bhd-triad li:nth-child(2) { border-top-color: #f2a93b; }
body.bhs main .bhd-triad li:nth-child(3) { border-top: 3px dashed var(--bh-faint, #8f8aa6); }
.bhd-triad b { display: block; margin-bottom: 6px; color: var(--bh-ink); font-size: 15px; }
.bhd-triad span { display: block; color: var(--bh-muted); font-size: 13.5px; line-height: 1.45; }

/* 3 · come operiamo + scheda segnalazione */
.bhd-how { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 96px); align-items: center; margin-top: clamp(90px, 11vw, 160px); }
.bhd-never { margin-top: 26px; }
.bhd-never-k { margin: 0 0 12px !important; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bh-muted) !important; }
.bhd-never ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
body.bhs main .bhd-never li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; background: rgba(251,113,133,.07); box-shadow: inset 0 0 0 1px rgba(251,113,133,.22); color: var(--bh-ink); font-size: 14px; font-weight: 550; }
body.bhs main .bhd-never li i { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(251,113,133,.18); color: #fb7185; font-style: normal; font-size: 11px; font-weight: 800; }
.bhd-how-note { margin: 18px 4px 0; font-size: 14px; color: var(--bh-muted) !important; }
.bhd-ticket { position: relative; padding: 24px; border-radius: 26px; --on0: clamp(0, calc(var(--v, 1) * 5 - 1.1), 1); --on1: clamp(0, calc(var(--v, 1) * 5 - 1.6), 1); --on2: clamp(0, calc(var(--v, 1) * 5 - 2.1), 1); --on3: clamp(0, calc(var(--v, 1) * 5 - 2.6), 1); transform: perspective(1200px) rotateY(calc((.5 - var(--v, .5)) * 10deg)) rotateX(calc((var(--v, .5) - .5) * 6deg)); }
.bhd-ticket-h { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid var(--bh-line, rgba(0,0,0,.08)); }
.bhd-ticket-h b { display: block; color: var(--bh-ink); font-size: 16px; }
.bhd-ticket-h small { display: block; color: var(--bh-muted); font-size: 12.5px; }
.bhd-ticket-ico { position: relative; flex: none; width: 44px; height: 44px; border-radius: 14px; background: linear-gradient(140deg, #8b5cf6, #5b21b6); box-shadow: 0 10px 24px -10px rgba(124,58,237,.8); }
.bhd-ticket-ico i { position: absolute; left: 12px; top: 13px; width: 20px; height: 15px; border: 2px solid #fff; border-radius: 3px; }
.bhd-ticket-ico i::before { content: ""; position: absolute; left: 2px; top: -3px; width: 12px; height: 12px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: scaleX(.95) rotate(45deg); }
.bhd-ticket-red { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; padding: 16px 0; border-bottom: 1px solid var(--bh-line, rgba(0,0,0,.08)); font-size: 13px; }
.bhd-ticket-red span { color: var(--bh-muted); }
.bhd-ticket-red b { color: var(--bh-ink); font-weight: 600; }
.bhd-redact { display: flex; gap: 6px; }
.bhd-redact i { font-style: normal; letter-spacing: -.12em; color: rgba(255,255,255,.82); }
.bh2:not(.bh-dark) .bhd-redact i { color: var(--bh-ink); }
.bhd-status { position: relative; margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 16px; }
body.bhs main .bhd-status li { --on: var(--on0); position: relative; display: flex; align-items: center; gap: 14px; opacity: calc(.38 + var(--on) * .62); }
body.bhs main .bhd-status li:nth-child(2) { --on: var(--on1); } body.bhs main .bhd-status li:nth-child(3) { --on: var(--on2); } body.bhs main .bhd-status li:nth-child(4) { --on: var(--on3); }
body.bhs main .bhd-status li:not(:last-child)::after { content: ""; position: absolute; left: 13px; top: 30px; width: 2px; height: 18px; background: color-mix(in srgb, #34d399 calc(var(--on) * 100%), rgba(128,128,160,.3)); }
body.bhs main .bhd-status li > i { position: relative; flex: none; width: 28px; height: 28px; border-radius: 50%; background: color-mix(in srgb, #34d399 calc(var(--on) * 100%), rgba(128,128,160,.18)); box-shadow: 0 0 calc(var(--on) * 18px) rgba(52,211,153,.6); }
body.bhs main .bhd-status li > i::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: #062b1d; font-size: 14px; font-weight: 800; font-style: normal; transform: scale(var(--on)); }
.bhd-status b { display: block; color: var(--bh-ink); font-size: 15px; }
.bhd-status small { display: block; color: var(--bh-muted); font-size: 12.5px; }

/* 4 · chi contattiamo */
.bhd-who { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: center; margin-top: clamp(90px, 11vw, 160px); }
.bhd-rings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
body.bhs main .bhd-rings li { position: relative; padding: 112px 20px 22px; border-radius: 24px; overflow: hidden; background: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); box-shadow: inset 0 0 0 1px var(--bh-line, rgba(0,0,0,.08)); transform: translateY(calc((1 - clamp(0, calc(var(--v, 1) * 3 - .6 - var(--i) * .25), 1)) * 50px)); }
body.bhs main .bhd-rings li::before { display: block; content: ""; position: absolute; left: 52px; top: 54px; width: calc(25px * (var(--i) + 1) + 20px); height: auto; aspect-ratio: 1; border-radius: 50%; translate: -50% -50%; background: radial-gradient(circle, var(--acc, #8b5cf6) 0 6px, rgba(139,92,246,.28) 7px 9px, transparent 10px), repeating-radial-gradient(circle, transparent 0 11px, rgba(167,139,250,.55) 11px 12.5px); box-shadow: none; animation: bhd-breathe 4s ease-in-out infinite; animation-delay: calc(var(--i) * -.8s); }
@keyframes bhd-breathe { 50% { scale: 1.08; } }
.bhd-ring-n { position: absolute; right: 18px; top: 18px; font: italic 400 26px/1 "Instrument Serif", serif; color: var(--bh-faint); }
.bhd-rings b { display: block; margin-bottom: 8px; color: var(--bh-ink); font-size: 17px; letter-spacing: -.01em; }
.bhd-rings span:not(.bhd-ring-n) { display: block; color: var(--bh-muted); font-size: 14px; line-height: 1.5; }

/* 5 · riservatezza */
.bhd-priv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; margin-top: clamp(90px, 11vw, 160px); }
body.bhs main .bhd-hide { margin: 0; padding: 8px 24px; list-style: none; border-radius: 24px; background: rgba(0,0,0,.22); box-shadow: inset 0 0 0 1px var(--bh-line, rgba(0,0,0,.08)); }
body.bhs main .bhd-hide li { --w: clamp(0, calc(var(--v, 1) * 4 - 1 - var(--i) * .3), 1); display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "l s" "b s"; gap: 4px 16px; align-items: center; padding: 16px 0; border-bottom: 1px dashed var(--bh-line-2, rgba(0,0,0,.14)); }
body.bhs main .bhd-hide li:last-child { border-bottom: 0; }
.bhd-hide span { grid-area: l; color: var(--bh-ink); font-size: 14.5px; font-weight: 600; }
.bhd-hide b { grid-area: b; justify-self: start; font: 500 18px/1.2 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing: -.08em; color: transparent; background: linear-gradient(var(--bh-ink-2), var(--bh-ink-2)) no-repeat 0 50% / calc(var(--w) * 100%) 72%; border-radius: 3px; }
.bhd-hide small { grid-area: s; padding: 6px 10px; border: 1.5px solid #fb7185; border-radius: 8px; color: #fb7185; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: var(--w); transform: rotate(calc(-8deg + var(--w) * 4deg)) scale(calc(1.25 - var(--w) * .25)); }

.bhd-quote { max-width: 1000px; margin: clamp(90px, 11vw, 160px) auto 0; padding: 0; text-align: center; }
.bhd-quote p { margin: 0; color: var(--bh-ink) !important; font: italic 400 clamp(30px, 4vw, 58px)/1.12 "Instrument Serif", serif; letter-spacing: -.01em; }

/* versione compatta (Chi siamo) */
.bhd--about { padding-block: clamp(80px, 10vw, 150px); }
.bhd-about { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.bhd-about-copy .bh-h2 { margin-bottom: 26px; }
.bhd-about-copy p { max-width: 640px; }
.bhd-about-more { margin-top: 26px; }
.bhd-about-art { display: grid; gap: 18px; }
.bhd-about-art .bhd-pledge { margin: 0; justify-content: center; }

@media (max-width: 960px) {
  .bhd-real, .bhd-what, .bhd-how, .bhd-who, .bhd-priv, .bhd-about { grid-template-columns: 1fr; }
  .bhd-real-copy { position: static; }
  .bhd-what .bhd-surface { order: 2; }
  .bhd-rings { grid-template-columns: 1fr; }
body.bhs main .bhd-rings li { padding: 22px 20px 22px 104px; }
body.bhs main .bhd-rings li::before { left: 52px; top: 50%; }
}
@media (max-width: 600px) {
  .bhd-triad, .bhd-never ul { grid-template-columns: 1fr; }
  .bhd-tl { padding-left: 30px; }
  .bhd-tl-dot { left: -25px; }
  body.bhs main .bhd .bhd-tl-i { padding: 22px 20px 20px; }
  .bhd-ticket { padding: 20px; transform: none; }
  .bhd-node b { max-width: 34cqi; padding: 7px 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .bhd-surface::before, .bhd-surface::after, .bhd-node::after, body.bhs main .bhd-rings li::before { animation: none; }
  .bhd-surface::before, .bhd-surface::after { opacity: .4; }
.bhd-ticket, body.bhs main .bhd-rings li { transform: none; }
  .bhd-ticket { --on0: 1; --on1: 1; --on2: 1; --on3: .45; }
body.bhs main .bhd-hide li { --w: 1; }
}
