/* Branzolo, sito statico (ex Framer): regole aggiunte a mano sopra il CSS di Framer.
   La molla "S" di Framer (bounce .2, durata .4) resa come curva linear() di 0,42 s. */
:root {
  --bz-spring: linear(0, 0.048, 0.16, 0.298, 0.439, 0.571, 0.685, 0.778, 0.852, 0.908, 0.949, 0.977, 0.995, 1.006, 1.012, 1.014, 1.015, 1.013, 1.012, 1.009, 1.007, 1.006, 1.004, 1.003, 1.002, 1.001, 1.001, 1, 1);
  --bz-loop: cubic-bezier(.44, 0, .56, 1);
}

/* ---------- HOME: logo animato dell'hero ---------- */
/* loop continui: translate/rotate separati, così si sommano alla comparsa (che usa transform) */
@keyframes bz-B1 { to { translate: 0 -5px; rotate: 3deg; } }
@keyframes bz-B2 { to { translate: 0 -2px; } }
@keyframes bz-R1 { 0%, 14.286% { rotate: 0deg; } 50%, 64.286% { rotate: -2deg; } 100% { rotate: 0deg; } }
@keyframes bz-y3 { to { translate: 0 -3px; } }
@keyframes bz-y2 { to { translate: 0 -2px; } }
@keyframes bz-A1 { to { rotate: 3deg; } }
@keyframes bz-N1 { to { rotate: 4deg; } }
@keyframes bz-L1 { to { rotate: -2deg; } }
@keyframes bz-L2 { to { translate: -2px -3px; } }
@keyframes bz-S2 { to { translate: 0 -3px; rotate: 3deg; } }

.framer-bfYEs .framer-mt7hss { animation: bz-B1 4s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-845mwc { animation: bz-B2 2.5s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-1qt5hw3 { animation: bz-R1 7s var(--bz-loop) infinite; }
.framer-bfYEs .framer-1q207q { animation: bz-y3 3.5s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-tfwrp9 { animation: bz-A1 2.5s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-5dzcj3 { animation: bz-y3 1.7s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-1d0mv9n { animation: bz-N1 3s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-1hdwesj { animation: bz-y2 3s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-1u2hjs0 { animation: bz-A1 2.5s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-1au0fdf { animation: bz-y3 3.5s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-2pbwvc { animation: bz-y2 3s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-9wiy1m { animation: bz-L1 3s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-207898 { animation: bz-L2 4s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-1l8xz83 { animation: bz-y3 3s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-y94p50 { animation: bz-y3 2s var(--bz-loop) infinite alternate; }
.framer-bfYEs .framer-12fih10 { animation: bz-S2 2s var(--bz-loop) infinite alternate; }
.framer-bfYEs.bz-paused, .framer-bfYEs.bz-paused * { animation-play-state: paused !important; }

/* hover sulle lettere: entra con leggero rimbalzo, esce con la molla */
.framer-bfYEs :is(.framer-845mwc, .framer-1q207q, .framer-5dzcj3, .framer-1hdwesj, .framer-1au0fdf, .framer-2pbwvc, .framer-207898, .framer-y94p50, .framer-12fih10) {
  transition: transform .42s var(--bz-spring);
}
@media (hover: hover) {
  .framer-bfYEs :is(.framer-1q207q, .framer-5dzcj3, .framer-1hdwesj, .framer-1au0fdf, .framer-2pbwvc, .framer-207898, .framer-y94p50, .framer-12fih10):hover {
    transform: scale(1.1) rotate(-3deg) skewX(3deg);
    transition: transform .3s cubic-bezier(0, 0, .09, 1.06);
  }
  .framer-bfYEs .framer-845mwc:hover {
    transform: scale(1.1) rotate(-2deg) skewX(2deg);
    transition: transform .3s cubic-bezier(0, 0, .09, 1.06);
  }
}
/* la colonna del ticker copre la parte bassa delle lettere: nell'originale ruba l'hover */
.framer-XXFWM .framer-1hiedlk { will-change: transform; }

/* ---------- HOME: servizi e FAQ ---------- */
.framer-bFFaM { transition: background-color .42s var(--bz-spring); }
.framer-bFFaM[data-border="true"]::after { transition: border-width .42s var(--bz-spring), border-color .42s var(--bz-spring); }
.framer-bFFaM h3 { transition: color .42s var(--bz-spring); }
.framer-bFFaM.framer-v-wkgmub h3 { --framer-text-color: var(--token-ae1c2919-8749-47ce-8f4b-826155487d2d, rgb(255, 255, 255)); color: var(--token-ae1c2919-8749-47ce-8f4b-826155487d2d, rgb(255, 255, 255)); }
.framer-Tzida .framer-7ms26p { transition: transform .42s var(--bz-spring); }

/* ---------- HOME: YouTube ---------- */
.framer-169ab09-container article:hover button svg path:first-child { fill: #f00; fill-opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .framer-bfYEs, .framer-bfYEs * { animation: none !important; }
}

/* ---------- FOOTER ---------- */
:root {
  --bz-spring-04: linear(0, .0794, .2486, .4375, .6093, .7484, .8518, .9231, .9688, .9954, 1.0091, 1.0144, 1.015, 1.0131, 1.0104, 1.0076, 1.0051, 1.0032, 1.0018, 1.0009, 1);
  --bz-spring-500: linear(0, .1298, .3264, .4946, .6241, .7212, .7934, .8469, .8866, .916, .9378, .9539, .9658, .9747, .9813, .9861, .9897, .9924, .9944, .9958, .9969, .9977, .9983, .9987, 1);
}
/* fondo di riserva finché il WebGL non disegna (o se manca) */
footer.framer-v-6yb5cx, footer.framer-v-s6zna9, footer.framer-v-13y6t3p { background: linear-gradient(180deg, #c0d22f 0%, #c0d22f 45%, #000 80%); }
footer.framer-v-4iz8vo, footer.framer-v-1dxr7we, footer.framer-v-e36oew { background: linear-gradient(180deg, #000 0%, #000 40%, #c0d22f 85%); }

/* bottone Submit */
.framer-tgCxl.framer-1hlwdka { transition: background-color .2s cubic-bezier(.44, 0, .56, 1); }
.framer-tgCxl.framer-1hlwdka:not(.bz-busy):hover { background-color: #d2de78 !important; }
.framer-tgCxl.framer-1hlwdka:not(.bz-busy):active { background-color: #c0d22f !important; }
.framer-tgCxl.bz-busy { cursor: auto; }
.bz-spin { position: relative; width: 20px; height: 20px; overflow: hidden; -webkit-mask: url(img/pGiXYozQ3mE4cilNOItfe2L2fUA.svg) center/cover no-repeat; mask: url(img/pGiXYozQ3mE4cilNOItfe2L2fUA.svg) center/cover no-repeat; }
.bz-spin-c { position: absolute; inset: 0; background: conic-gradient(from 0deg, rgba(255,255,255,0) 7.2deg, #fff 342deg); animation: bz-rot 1s linear infinite; }
.bz-spin-d { position: absolute; top: 0; left: 50%; width: 2px; height: 2px; transform: translateX(-50%); background: #fff; border-radius: 1px; }
@keyframes bz-rot { to { transform: rotate(360deg); } }
.framer-tgCxl .bz-thanks { --framer-font-family: "Inter", sans-serif !important; --framer-font-weight: 600 !important; }

/* Chat now! (solo varianti chiare) */
@media (hover: hover) {
  .framer-lpDeg.framer-v-1wjc582 { transition: background-color .4s var(--bz-spring-04); }
  .framer-lpDeg.framer-v-1wjc582 .framer-70grlo, .framer-lpDeg.framer-v-1wjc582 .framer-1pgs65y { transition: transform .4s var(--bz-spring-04); }
  .framer-lpDeg.framer-v-1wjc582:hover { background-color: #000 !important; }
  .framer-lpDeg.framer-v-1wjc582:hover .framer-70grlo { transform: translateY(-50%) translateX(-32px) !important; --extracted-tcooor: #c0d22f !important; }
  .framer-lpDeg.framer-v-1wjc582:hover .framer-1pgs65y { transform: translate(140px, -1px); }
}
/* icone social */
.framer-9jVei a { transition: width .4s var(--bz-spring-04), height .4s var(--bz-spring-04); }

/* cookie banner */
.bz-ck { position: fixed; z-index: 10; box-sizing: border-box; padding: 20px; display: flex; justify-content: center; touch-action: none; }
.bz-ck--eu { inset: 0; pointer-events: all; }
.bz-ck--world { left: 0; bottom: 0; pointer-events: none; }
.bz-ck-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.1); pointer-events: none; }
.bz-ck-wrap { width: 100%; height: 100%; display: flex; justify-content: flex-start; align-items: flex-end; pointer-events: none; }
.bz-ck-anim { position: relative; z-index: 100; display: flex; flex-direction: column; gap: 12px; max-height: calc(100vh - 40px); pointer-events: auto; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.bz-ck-box { background: #fff; border-radius: 18px; box-shadow: 0 2px 4px rgba(0,0,0,.25), inset 0 0 0 1px rgba(0,0,0,.05); overflow: scroll; width: 100%; max-width: 360px; scrollbar-width: none; -ms-overflow-style: none; }
.bz-ck-box::-webkit-scrollbar { display: none; }
.bz-ck-pad { padding: 20px; }
.bz-ck-pad--simple { display: flex; flex-direction: row; gap: 20px; align-items: center; }
.bz-ck-title { margin: 0 0 10px; padding: 0; font: 700 16px/1em Quicksand, "Quicksand Placeholder", sans-serif; letter-spacing: 0; color: #789128; }
.bz-ck-desc { margin: 0; padding: 0; font: 400 15px/1.4em Quicksand, "Quicksand Placeholder", sans-serif; letter-spacing: .03em; text-align: center; color: #c0d22f; }
.bz-ck-desc a { color: #001e45; text-decoration: none; }
.bz-ck-opts { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; overflow: hidden; }
.bz-ck-opts[hidden] { display: none; }
.bz-ck-row { background: rgba(0,0,0,.02); border-radius: 8px; padding: 12px; cursor: pointer; user-select: none; transition: opacity .4s var(--bz-spring-04); }
.bz-ck-row:hover { opacity: .5; }
.bz-ck-rowhead { display: flex; justify-content: space-between; }
.bz-ck-rt { margin: 0; font-weight: 600; font-size: 12px; color: #789128; }
.bz-ck-rd { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: #c0d22f; }
.bz-ck-tg { all: unset; box-sizing: border-box; width: 24px; height: 14px; padding: 2px; border-radius: 20px; display: flex; align-items: center; background: #001e45; transition: background-color .72s var(--bz-spring-500); cursor: pointer; }
.bz-ck-tg span { width: 10px; height: 10px; border-radius: 50%; background: #fff; transition: transform .72s var(--bz-spring-500); }
.bz-ck-tg.is-on { background: #c0d22f; }
.bz-ck-tg.is-on span { transform: translateX(10px); }
.bz-ck-btns { display: flex; flex-direction: row; gap: 10px; margin-top: 16px; }
.bz-ck-btns--simple { margin-top: 0; }
.bz-ck-btns--simple .bz-ck-btn { width: auto; }
.bz-ck-btn { appearance: none; -webkit-appearance: none; border: none; width: 100%; height: auto; padding: 10px; border-radius: 8px; background: #eee; color: #444; font: 400 14px/1 sans-serif; cursor: pointer; transition: opacity .4s var(--bz-spring-04); }
.bz-ck-btn.is-primary { background: #000; color: #fff; }
.bz-ck-btn:hover { opacity: .6; }
.bz-ck-btn:active { opacity: .4; }
.__framer-cookie-component-button:focus:not(:focus-visible) { outline-color: transparent; }

/* ---------- CONDIVISI ---------- */
/* voci del menu: in grassetto al passaggio del mouse (istantaneo, come l'originale) */
.framer-TTiTK.framer-v-mvulcv:hover p.framer-text { --framer-font-weight: 700; }
/* bottoni rolling: il bordo del riquadro segue lo stato */
.framer-ebnvx .framer-1xuyz3f::after { transition: border-color .5s cubic-bezier(.82,.08,.29,1), border-width .5s cubic-bezier(.82,.08,.29,1); }
/* WhatsApp: la larghezza la anima il JS */
a.framer-YnIFV { will-change: width; }
