/* =====================================================================
   BILONI · CONTATTI + FORM MULTI-STEP
   Tutto il CSS e' prefissato (.blc-*, .bf*) per non toccare il tema.
   Il font IBM Plex Sans e' gia' caricato dal tema.
   ===================================================================== */
.blc,.bf{
  --nero:#3C3C3B;--rosso:#B31907;--rosso-scuro:#8F1405;--rosso-tenue:#FBEDEB;
  --grigio:#ECECEC;--grigio-2:#F7F7F7;--bianco:#FFFFFF;--bordo:#DCDCDC;
  --max:1280px;--gutter:5vw;--vh:72px;
  font-family:"IBM Plex Sans",sans-serif;font-size:18px;line-height:1.8;color:var(--nero);
}
.blc *,.blc *::before,.blc *::after,.bf *,.bf *::before,.bf *::after{box-sizing:border-box}
.blc img{max-width:100%;display:block}
.blc a{color:#3C3C3B;}
.blc h1,.blc h2,.bf h3{margin:0 0 .6em;font-weight:600;line-height:1.15;letter-spacing:normal;color:inherit}
.blc h1{font-size:clamp(2.2rem,5vw,3.2rem);text-transform:uppercase;font-weight:400}
.blc h2{font-size:clamp(1.5rem,3vw,2.025rem);text-transform:uppercase}
.blc p,.bf p{margin:0 0 1.3em;font-size:inherit;line-height:inherit}
.blc-wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.blc-kicker{display:block;color:var(--rosso);font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin-bottom:1rem;line-height:1.4}
.blc-tratto{width:56px;height:3px;background:var(--rosso);border:0;margin:0 0 1.8rem;opacity:1}

/* ---------- hero ---------- */
.blc-hero{position:relative;min-height:56svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:#2a2622}
/* Immagine hero: hero-contatti.jpg nella stessa cartella della pagina (in WordPress: URL del file caricato).
   Se il file manca resta visibile, sotto, la foto del lago. */
.blc-hero__bg{position:absolute;inset:0;background:var(--blc-hero-img) center 60%/cover no-repeat;transform-origin:60% 50%;animation:blcRespiro 26s ease-in-out infinite alternate}
@keyframes blcRespiro{from{transform:scale(1)}to{transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){.blc-hero__bg{animation:none}}
@media(max-width:700px){.blc-hero__bg{background-position:24% 60%;transform-origin:24% 50%}}
.blc-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,0) 26%,rgba(0,0,0,0) 46%,rgba(28,18,10,.35) 70%,rgba(20,14,8,.72) 100%)}
.blc-hero h1,.blc-hero p,.blc-hero .blc-kicker{text-shadow:0 1px 18px rgba(0,0,0,.35)}
.blc-hero__in{position:relative;z-index:2;width:100%;padding-top:9rem;padding-bottom:clamp(2.5rem,7vh,4.5rem)}
.blc-hero .blc-kicker{color:#fff;opacity:.9}
.blc-hero h1{margin-bottom:.3em}
.blc-hero p{font-size:clamp(1.15rem,2.4vw,1.6rem);font-weight:300;max-width:34ch;margin:0; color: white;}

/* ---------- sezione contatti ---------- */
.blc-contatti{background:var(--grigio);padding:var(--vh) 0}
.blc-contatti__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:start}
@media(max-width:960px){.blc-contatti__grid{grid-template-columns:1fr}}
.blc-intro{position:sticky;top:120px}
@media(max-width:960px){.blc-intro{position:static}.blc-contatti__grid .bf{order:-1}}
.blc-intro p{font-size:1.02rem;line-height:1.75}
.blc-filiera{list-style:none;margin:2rem 0 2.4rem;padding:0;border-top:1px solid var(--bordo)}
.blc-filiera li{display:grid;grid-template-columns:3rem 1fr;gap:.4rem;padding:1.1rem 0;border-bottom:1px solid var(--bordo);font-size:.98rem;line-height:1.6}
.blc-filiera b{display:block;text-transform:uppercase;font-size:.85rem;letter-spacing:.08em}
.blc-filiera span.n{color:var(--rosso);font-weight:600;font-size:.85rem;letter-spacing:.1em;padding-top:.1rem}
.blc-diretti{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.5rem}
.blc-diretti div span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;opacity:.6;margin-bottom:.2rem}
.blc-diretti a,.blc-diretti strong{font-size:1rem;font-weight:600;text-decoration:none;line-height:1.45;display:block}
.blc-diretti a:hover{color:var(--rosso)}
@media(max-width:480px){.blc-diretti{grid-template-columns:1fr}}

/* =====================================================================
   FORM MULTI-STEP BILONI  (.bf)  — blocco autonomo, incorporabile
   ===================================================================== */
.bf{background:var(--bianco);padding:clamp(1.5rem,3.6vw,3rem);position:relative;scroll-margin-top:110px}
.bf *{box-sizing:border-box}
.bf__head{margin-bottom:2rem}
.bf__track{height:3px;background:var(--grigio);position:relative;overflow:hidden}
.bf__bar{position:absolute;left:0;top:0;bottom:0;background:var(--rosso);width:33%;transition:width .45s cubic-bezier(.2,.7,.3,1)}
.bf__meta{display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}
.bf__meta span:first-child{opacity:.55}
.bf__meta span:last-child{font-weight:600;color:var(--rosso)}
.bf__step{display:none}
.bf__step.is-active{display:block;animation:bfIn .4s ease}
@keyframes bfIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.bf__step.is-active{animation:none}.bf__bar{transition:none}}
.bf h3{font-size:clamp(1.3rem,2.5vw,1.65rem);text-transform:uppercase;margin:0 0 .45rem;outline:none}
.bf__sub{font-size:1rem;font-weight:300;line-height:1.6;margin:0 0 1.8rem;opacity:.85}

/* card target */
.bf__targets{display:grid;gap:12px}
.bf__target{position:relative;display:grid;grid-template-columns:120px 1fr 44px;align-items:stretch;border:1px solid var(--bordo);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;background:var(--bianco)}
.bf__target input{position:absolute;opacity:0;pointer-events:none}
.bf__timg{background-size:cover;background-position:center;min-height:104px}
.bf__tbody{padding:1rem 1.2rem;display:flex;flex-direction:column;justify-content:center}
.bf__tbody strong{font-size:1.02rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.3;margin-bottom:.25rem}
.bf__tbody small{font-size:.9rem;line-height:1.5;opacity:.75}
.bf__tarrow{display:flex;align-items:center;justify-content:center;color:var(--rosso);font-size:1.3rem;transition:transform .2s ease}
.bf__target:hover{border-color:var(--nero)}
.bf__target:hover .bf__tarrow{transform:translateX(4px)}
.bf__target:has(input:checked){border-color:var(--rosso);box-shadow:inset 4px 0 0 var(--rosso)}
.bf__target:has(input:focus-visible){outline:2px solid var(--rosso);outline-offset:2px}
@media(max-width:520px){.bf__target{grid-template-columns:84px 1fr 32px}.bf__timg{min-height:96px}.bf__tbody{padding:.85rem .9rem}.bf__tbody strong{font-size:.92rem}.bf__tbody small{font-size:.84rem}}
/* ritaglio delle foto nelle card su mobile (card stretta): punto focale sul soggetto */
@media(max-width:520px){.bf__target input[value="acquisto"]+.bf__timg{background-position:62% 45%!important}.bf__target input[value="investimento"]+.bf__timg{background-position:46% 58%!important}}

/* domande */
.bf__q{border:0;margin:0 0 1.6rem;padding:0;min-width:0}
.bf__q legend,.bf__lbl{display:block;padding:0;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.7rem;line-height:1.4}
.bf__q legend em,.bf__lbl em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;opacity:.6;font-size:.85rem;margin-left:.3rem}
.bf__chips{display:flex;flex-wrap:wrap;gap:8px}
.bf__chip{position:relative;cursor:pointer}
.bf__chip input{position:absolute;opacity:0;pointer-events:none}
.bf__chip span{display:inline-flex;align-items:center;gap:.5rem;padding:.62rem 1rem;border:1px solid var(--bordo);background:var(--bianco);font-size:.94rem;line-height:1.35;transition:all .18s ease;user-select:none}
.bf__chip:hover span{border-color:var(--nero)}
.bf__chip input:checked+span{background:var(--nero);border-color:var(--nero);color:#fff}
.bf__chip input[type=checkbox]+span::before{content:"";width:12px;height:12px;border:1px solid currentColor;flex:none}
.bf__chip input[type=checkbox]:checked+span::before{background:var(--rosso);border-color:var(--rosso);box-shadow:inset 0 0 0 2px var(--nero)}
.bf__chip input:focus-visible+span{outline:2px solid var(--rosso);outline-offset:2px}
.bf__q.has-err .bf__chip span{border-color:var(--rosso)}
.bf__q[hidden]{display:none!important}
.bf__q.is-rivelata{animation:bfIn .35s ease}
.bf__chips--grandi{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bf__chips--grandi .bf__chip{display:flex}
.bf__chips--grandi .bf__chip span{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.95rem 2.4rem .95rem 1.1rem}
.bf__chips--grandi .bf__chip span b{font-weight:600;font-size:.98rem;line-height:1.3}
.bf__chips--grandi .bf__chip span small{font-size:.84rem;line-height:1.4;opacity:.72}
.bf__chips--grandi .bf__chip input:checked+span small{opacity:.85}
.bf__chips--grandi .bf__chip input[type=checkbox]+span::before{position:absolute;top:1.05rem;right:1rem}
@media(max-width:520px){.bf__chips--grandi{grid-template-columns:1fr}}

/* campi */
.bf__row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media(max-width:560px){.bf__row{grid-template-columns:1fr}}
.bf__field{margin-bottom:1.1rem}
.bf__input{width:100%;background:var(--grigio-2);border:1px solid var(--bordo);color:var(--nero);padding:.85rem 1rem;font-family:inherit;font-size:1rem;line-height:1.4;border-radius:0;transition:border-color .2s ease,background .2s ease}
.bf__input:focus{outline:none;border-color:var(--nero);background:var(--bianco)}
textarea.bf__input{resize:vertical;min-height:88px}
.bf__field.has-err .bf__input{border-color:var(--rosso);background:var(--rosso-tenue)}
.bf__err{margin:.4rem 0 0;font-size:.82rem;line-height:1.4;color:var(--rosso);font-weight:500;min-height:0}
.bf__err:empty{display:none}
.bf__check{display:flex;gap:.75rem;align-items:flex-start;font-size:.86rem;line-height:1.55;cursor:pointer}
.bf__check input{margin:.2rem 0 0;width:17px;height:17px;accent-color:var(--rosso);flex:none}
.bf__check a{color:inherit}
.bf__field.has-err .bf__check{color:var(--rosso)}
.bf__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* navigazione */
.bf__nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem;padding-top:1.5rem;border-top:1px solid var(--bordo);flex-wrap:wrap}
.bf__back{background:none;border:0;padding:.5rem 0;font-family:inherit;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--nero);cursor:pointer;opacity:.7}
.bf__back:hover{opacity:1;color:var(--rosso)}
.bf__btn{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;background:var(--rosso);color:#fff;text-decoration:none;padding:18px 34px;font-family:inherit;font-size:.88rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;border:0;cursor:pointer;transition:background .25s ease,transform .25s ease}
.bf__btn:hover{background:var(--rosso-scuro);transform:translateY(-2px)}
.bf__btn[disabled]{opacity:.6;cursor:wait;transform:none}
.bf__btn--linea{background:transparent;color:var(--nero);border:1px solid var(--nero)}
.bf__btn--linea:hover{background:var(--nero);color:#fff}
/* pulsanti CTA della schermata di ringraziamento: battono ".blc a" solo qui, il footer resta invariato */
.bf__cta a.bf__btn{color:#fff}
.bf__cta a.bf__btn--linea{color:var(--nero)}
.bf__cta a.bf__btn--linea:hover{color:#fff}
/* link informativa privacy nel consenso: visibile come link (batte ".blc a" solo qui) */
.bf .bf__check a{color:var(--rosso);text-decoration:underline;text-underline-offset:2px}
.bf .bf__check a:hover{color:var(--rosso-scuro)}
.bf__rassicura{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:1rem;font-size:.8rem;opacity:.65}
.bf__rassicura span::before{content:"—";color:var(--rosso);margin-right:.4rem}
.bf__cambia{background:none;border:0;padding:0;font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer;color:var(--nero);opacity:.7;margin:-1rem 0 1.6rem;display:inline-block}
.bf__cambia:hover{opacity:1;color:var(--rosso)}
.bf__alert{display:none;background:var(--rosso-tenue);border-left:3px solid var(--rosso);padding:.85rem 1rem;font-size:.9rem;line-height:1.5;margin:0 0 1.2rem}
.bf__alert.is-on{display:block}

/* esito */
.bf__tick{width:58px;height:58px;background:var(--rosso);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:1.5rem}
.bf__done .bf__sub{font-size:1.08rem}
.bf__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.6rem}


/* ---------- mappa ---------- */
.blc-mappa{position:relative;background:var(--grigio);height:clamp(320px,45vw,480px)}
.blc-mappa iframe{display:block;width:100%;height:100%;border:0}

/* ---------- sezione contatti comune (altre pagine: biloni_sezione_contatti() in functions.php) ---------- */
/* bianco (titolo) → grigio (intro + modulo) → mappa → bianco (recapiti): mai due fasce grigie attaccate */
.blc-sez__titolo{background:var(--bianco);padding:var(--vh) 0 calc(var(--vh) * .5)}
.blc-sez__titolo .paragrafo{margin:0}
.blc-sez__diretti{background:var(--bianco);padding:calc(var(--vh) * .75) 0 var(--vh)}
.blc-sez__diretti .blc-diretti{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.3rem 2.5rem}
@media(max-width:960px){.blc-sez__diretti .blc-diretti{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.blc-sez__diretti .blc-diretti{grid-template-columns:1fr}}
