/*!
 * Biancaluna — Modulo contatti
 * Sono gli stessi stili del blocco consegnato a mano: cambia da dove
 * arrivano i dati, non l'aspetto.
 */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500&family=Jost:wght@300;400;500&display=swap");

.blcd-root{
  --blcd-avorio:#FDFBF8;
  --blcd-avorio-caldo:#F9F4EF;
  --blcd-inchiostro:#3F3439;
  --blcd-inchiostro-70:#6B5E63;
  --blcd-inchiostro-45:#6E6165;
  --blcd-rosa:#9C5464;
  --blcd-rosa-scuro:#8E4A59;
  --blcd-rosa-chiaro:#E4B7C0;
  --blcd-cipria:#EFC9C4;
  --blcd-malva:#C6B3D3;
  --blcd-lilla:#DACFE7;
  --blcd-salvia:#C0CFBA;
  --blcd-pesca:#F3D2B7;
  --blcd-chiaro:#FFF9F8;
  --blcd-linea:rgba(156,84,100,.26);
  --blcd-linea-tenue:rgba(156,84,100,.15);
  --blcd-display:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --blcd-testo:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;
  --blcd-margine:clamp(18px,4vw,56px);
  --blcd-t:.3s cubic-bezier(.22,.61,.36,1);
}

/* Il tema ed Elementor impongono stili globali: qui li neutralizziamo
   soltanto dentro la sezione, campi di modulo compresi. */
.blcd-root, .blcd-root *, .blcd-root *::before, .blcd-root *::after{ box-sizing:border-box; }
.blcd-root{
  display:block;
  font-family:var(--blcd-testo); font-weight:400; line-height:1.7;
  color:var(--blcd-inchiostro);
}
.blcd-root a{ text-decoration:none; color:inherit; }
.blcd-root p{ margin:0; }
.blcd-root ul{ list-style:none; margin:0; padding:0; }
.blcd-root svg{ display:block; }
.blcd-root button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
.blcd-root input, .blcd-root textarea{
  font:inherit; color:inherit; background:none; border:0; margin:0;
  -webkit-appearance:none; appearance:none;
}
.blcd-root :focus-visible{ outline:2px solid var(--blcd-rosa); outline-offset:3px; border-radius:8px; }

/* ---------- fondo a tutta larghezza, contenuto a 1200px ---------- */
html{ overflow-x:clip; }
body{ overflow-x:clip; }
.blcd-root{
  width:100vw; max-width:100vw;
  margin-inline:calc(50% - 50vw);
}

.blcd-root .blcd-sezione{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--blcd-avorio-caldo);
  padding-block:clamp(48px,5.6vw,96px);
}
.blcd-root .blcd-interno{
  position:relative; z-index:3;
  width:min(1200px, 100% - 2*var(--blcd-margine));
  margin-inline:auto;
}

.blcd-root .blcd-velo{
  position:absolute; z-index:1; border-radius:50%; aspect-ratio:1;
  pointer-events:none; filter:blur(76px); mix-blend-mode:multiply;
}
.blcd-root .blcd-velo--a{
  top:-22%; left:-8%; width:min(450px,42vw); opacity:.28;
  background:radial-gradient(circle at 50% 50%, var(--blcd-lilla), transparent 68%);
}
.blcd-root .blcd-velo--b{
  bottom:-24%; right:-8%; width:min(430px,40vw); opacity:.26;
  background:radial-gradient(circle at 50% 50%, var(--blcd-pesca), transparent 70%);
}

/* ---------- il quadro ---------- */
.blcd-root .blcd-quadro{
  width:min(940px, 100%); margin-inline:auto;
  padding:clamp(28px,4vw,60px);
  background:var(--blcd-chiaro);
  border:1px solid var(--blcd-linea-tenue);
  border-radius:26px;
  box-shadow:0 46px 92px -60px rgba(120,76,88,.5);
}

.blcd-root .blcd-testata{ margin-bottom:clamp(26px,3vw,40px); }
.blcd-root .blcd-titolo{
  font-family:var(--blcd-display); font-weight:400;
  font-size:clamp(28px,3.4vw,44px); line-height:1.12; letter-spacing:-.012em;
  color:var(--blcd-inchiostro); margin:0; max-width:20ch; text-wrap:balance;
}
.blcd-root .blcd-filetto{
  display:block; width:70px; height:1px; margin:clamp(18px,2vw,26px) 0;
  background:linear-gradient(90deg, var(--blcd-rosa), transparent);
}
.blcd-root .blcd-guida{
  font-size:clamp(16px,.4vw+15.2px,17.5px); line-height:1.78;
  color:var(--blcd-inchiostro-70); max-width:56ch;
}

/* ---------- impianto del modulo ---------- */
.blcd-root .blcd-modulo{
  display:grid; gap:clamp(16px,2vw,22px);
}
@media (min-width:720px){
  .blcd-root .blcd-modulo{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blcd-root .blcd-campo--intero{ grid-column:1 / -1; }
}
.blcd-root .blcd-esito{ grid-column:1 / -1; }
.blcd-root .blcd-invio{ grid-column:1 / -1; }

.blcd-root .blcd-campo{ display:flex; flex-direction:column; }

.blcd-root .blcd-etichetta{
  font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--blcd-rosa); margin-bottom:9px;
}
/* "facoltativo" non deve pesare quanto il nome del campo */
.blcd-root .blcd-facolt{
  letter-spacing:.1em; text-transform:none;
  font-size:11px; color:var(--blcd-inchiostro-45);
}

/* ---------- i riquadri dei campi ----------
   Nessun aspetto predefinito: bordo sottile, fondo appena caldo e un
   anello rosa quando il campo e' attivo. */
.blcd-root .blcd-riquadro{
  width:100%;
  padding:14px 16px;
  font-size:16px; line-height:1.5;   /* 16px: sotto, iOS ingrandisce la pagina */
  color:var(--blcd-inchiostro);
  background:var(--blcd-avorio);
  border:1px solid var(--blcd-linea-tenue);
  border-radius:14px;
  transition:border-color var(--blcd-t), box-shadow var(--blcd-t), background var(--blcd-t);
}
.blcd-root .blcd-riquadro::placeholder{ color:var(--blcd-inchiostro-45); opacity:1; }
.blcd-root .blcd-riquadro:hover{ border-color:var(--blcd-linea); }
.blcd-root .blcd-riquadro:focus,
.blcd-root .blcd-riquadro:focus-visible{
  outline:0;
  background:var(--blcd-chiaro);
  border-color:var(--blcd-rosa);
  box-shadow:0 0 0 3px rgba(156,84,100,.14);
}
.blcd-root .blcd-area{ resize:vertical; min-height:132px; }

.blcd-root .blcd-campo.is-errata .blcd-riquadro,
.blcd-root .blcd-campo.is-errata .blcd-casella{
  border-color:var(--blcd-rosa-scuro);
  box-shadow:0 0 0 3px rgba(142,74,89,.13);
}
.blcd-root .blcd-errore{
  margin-top:8px; font-size:13.5px; line-height:1.5; color:var(--blcd-rosa-scuro);
}

/* ---------- menu a tendina ---------- */
.blcd-root .blcd-tendina{ position:relative; }
.blcd-root .blcd-scelta{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  text-align:left; cursor:pointer;
}
.blcd-root .blcd-scelta__valore{ color:var(--blcd-inchiostro-45); }
.blcd-root .blcd-tendina.is-scelta .blcd-scelta__valore{ color:var(--blcd-inchiostro); }
.blcd-root .blcd-freccia{ width:11px; height:8px; flex:none; color:var(--blcd-rosa); transition:transform var(--blcd-t); }
.blcd-root .blcd-scelta[aria-expanded="true"] .blcd-freccia{ transform:rotate(180deg); }

.blcd-root .blcd-elenco{
  position:absolute; z-index:20; top:calc(100% + 8px); left:0; right:0;
  max-height:264px; overflow-y:auto;
  padding:8px;
  background:var(--blcd-chiaro);
  border:1px solid var(--blcd-linea);
  border-radius:16px;
  box-shadow:0 28px 56px -34px rgba(120,76,88,.5);
}
.blcd-root .blcd-elenco li{
  padding:10px 12px; border-radius:10px; cursor:pointer;
  font-size:15.5px; color:var(--blcd-inchiostro-70);
  transition:background var(--blcd-t), color var(--blcd-t);
}
.blcd-root .blcd-elenco li:hover,
.blcd-root .blcd-elenco li.is-segnata{
  background:var(--blcd-avorio-caldo); color:var(--blcd-inchiostro);
}
.blcd-root .blcd-elenco li[aria-selected="true"]{ color:var(--blcd-rosa); }

/* ---------- data: calendario disegnato ---------- */
.blcd-root .blcd-data{ position:relative; }
.blcd-root .blcd-segno-data{ width:19px; height:19px; flex:none; color:var(--blcd-rosa); }

.blcd-root .blcd-calendario{
  position:absolute; z-index:24; top:calc(100% + 8px); left:0;
  width:min(320px, calc(100vw - 2*var(--blcd-margine)));
  padding:14px;
  background:var(--blcd-chiaro);
  border:1px solid var(--blcd-linea);
  border-radius:18px;
  box-shadow:0 30px 60px -34px rgba(120,76,88,.5);
}
/* accanto al bordo destro dello schermo si apre verso sinistra */
.blcd-root .blcd-calendario.is-destra{ left:auto; right:0; }

.blcd-root .blcd-cal-testa{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin-bottom:12px;
}
.blcd-root .blcd-cal-mese{
  font-family:var(--blcd-display); font-size:19px; line-height:1.2;
  color:var(--blcd-inchiostro); text-align:center; flex:1;
}
.blcd-root .blcd-cal-passo{
  display:grid; place-items:center; width:32px; height:32px; flex:none;
  border-radius:50%; color:var(--blcd-rosa);
  border:1px solid var(--blcd-linea-tenue);
  transition:background var(--blcd-t), border-color var(--blcd-t);
}
.blcd-root .blcd-cal-passo svg{ width:12px; height:12px; }
.blcd-root .blcd-cal-passo:hover{ background:var(--blcd-avorio-caldo); border-color:var(--blcd-linea); }

.blcd-root .blcd-cal-giorni,
.blcd-root .blcd-cal-griglia{
  display:grid; grid-template-columns:repeat(7,1fr); gap:2px;
}
.blcd-root .blcd-cal-giorni{
  margin-bottom:6px; padding-bottom:8px;
  border-bottom:1px solid var(--blcd-linea-tenue);
}
.blcd-root .blcd-cal-giorni span{
  text-align:center; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--blcd-inchiostro-45);
}

.blcd-root .blcd-cal-griglia button{
  display:grid; place-items:center;
  aspect-ratio:1; border-radius:10px;
  font-size:14.5px; color:var(--blcd-inchiostro-70);
  transition:background var(--blcd-t), color var(--blcd-t);
}
.blcd-root .blcd-cal-griglia button:hover{
  background:var(--blcd-avorio-caldo); color:var(--blcd-inchiostro);
}
.blcd-root .blcd-cal-griglia button[disabled]{
  color:rgba(110,97,101,.38); cursor:default;
}
.blcd-root .blcd-cal-griglia button[disabled]:hover{ background:none; }
/* il giorno di oggi si riconosce dal contorno, quello scelto dal pieno */
.blcd-root .blcd-cal-griglia .is-oggi{
  box-shadow:inset 0 0 0 1px var(--blcd-linea);
  color:var(--blcd-inchiostro);
}
.blcd-root .blcd-cal-griglia .is-scelto{
  background:var(--blcd-rosa); color:var(--blcd-chiaro);
}
.blcd-root .blcd-cal-griglia .is-scelto:hover{ background:var(--blcd-rosa-scuro); color:var(--blcd-chiaro); }
.blcd-root .blcd-cal-griglia .blcd-cal-vuoto{ visibility:hidden; }

.blcd-root .blcd-cal-piede{
  display:flex; justify-content:space-between; gap:10px;
  margin-top:12px; padding-top:11px;
  border-top:1px solid var(--blcd-linea-tenue);
}
.blcd-root .blcd-cal-azione{
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blcd-rosa);
  transition:color var(--blcd-t);
}
.blcd-root .blcd-cal-azione:hover{ color:var(--blcd-rosa-scuro); }

/* ---------- consenso ---------- */
.blcd-root .blcd-consenso{
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
}
.blcd-root .blcd-consenso input{
  position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;
}
.blcd-root .blcd-casella{
  display:grid; place-items:center; flex:none;
  width:22px; height:22px; margin-top:2px;
  background:var(--blcd-avorio);
  border:1px solid var(--blcd-linea-tenue); border-radius:7px;
  color:transparent;
  transition:background var(--blcd-t), border-color var(--blcd-t), color var(--blcd-t);
}
.blcd-root .blcd-casella svg{ width:13px; height:13px; }
.blcd-root .blcd-consenso input:checked + .blcd-casella{
  background:var(--blcd-rosa); border-color:var(--blcd-rosa); color:var(--blcd-chiaro);
}
/* il fuoco da tastiera deve vedersi: la casella vera e' nascosta */
.blcd-root .blcd-consenso input:focus-visible + .blcd-casella{
  outline:2px solid var(--blcd-rosa); outline-offset:3px;
}
.blcd-root .blcd-consenso__testo{
  font-size:14.5px; line-height:1.7; color:var(--blcd-inchiostro-70);
}
.blcd-root .blcd-consenso__testo a{
  color:var(--blcd-rosa); border-bottom:1px solid var(--blcd-linea-tenue);
  transition:border-color var(--blcd-t);
}
.blcd-root .blcd-consenso__testo a:hover{ border-bottom-color:var(--blcd-rosa); }

/* ---------- invio ---------- */
.blcd-root .blcd-invio{
  display:flex; flex-wrap:wrap; align-items:center; gap:16px 22px;
  margin-top:clamp(6px,1vw,12px);
}
.blcd-root .blcd-bottone{
  display:inline-flex; align-items:center; gap:11px;
  padding:15px 32px; border-radius:999px;
  background:var(--blcd-rosa); border:1px solid var(--blcd-rosa);
  color:var(--blcd-chiaro);
  font-size:14.5px; letter-spacing:.05em;
  transition:background var(--blcd-t), border-color var(--blcd-t), transform var(--blcd-t);
}
.blcd-root .blcd-bottone svg{ width:22px; height:10px; flex:none; }
.blcd-root .blcd-bottone:hover{
  background:var(--blcd-rosa-scuro); border-color:var(--blcd-rosa-scuro);
}
.blcd-root .blcd-bottone:active{ transform:translateY(1px); }
.blcd-root .blcd-nota{
  font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--blcd-inchiostro-45);
}

/* ---------- esito ---------- */
.blcd-root .blcd-esito{
  padding:14px 18px; border-radius:14px;
  font-size:15px; line-height:1.65;
  background:var(--blcd-avorio-caldo);
  border:1px solid var(--blcd-linea-tenue);
  color:var(--blcd-inchiostro);
}
.blcd-root .blcd-esito a{
  color:var(--blcd-rosa); border-bottom:1px solid var(--blcd-linea-tenue);
}
.blcd-root .blcd-esito.is-errata{ border-color:var(--blcd-rosa-scuro); }

/* ---------- comparsa allo scorrimento ----------
   Senza JavaScript resta tutto visibile: e' lo script ad accendere
   l'animazione, non a spegnerla. */
.blcd-root.blcd-pronta .blcd-entra{
  opacity:0; transform:translateY(20px);
  transition:opacity .9s ease, transform .9s cubic-bezier(.16,.86,.3,1);
  transition-delay:calc(var(--i,0) * 85ms);
}
.blcd-root.blcd-pronta.blcd-vista .blcd-entra{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  .blcd-root *{ animation:none !important; transition-duration:.01ms !important; }
  .blcd-root.blcd-pronta .blcd-entra{ opacity:1; transform:none; }
}

/* La trappola per gli invii automatici deve essere fuori vista ma non
   display:none: molti robot ignorano i campi nascosti in quel modo. */
.blcd-root .blcd-esca{
  position:absolute !important;
  width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap;
}
