
/* =========================================================
   CONTATTI — artboard Figma 39:476 (1512 × 1318)
   Fascia unica #E2E2E1: recapiti a sinistra, mappa a destra.
   ========================================================= */
.sec-ct{
  background:var(--bg);
  min-height:clamp(420px, calc(874 * var(--px)), 874px);   /* 108 -> 982 */
}
/* margini di questa fascia: 96 a sinistra, 51 a destra (39:477 / 39:536) */
.sec-ct .wrap{
  padding-inline:clamp(20px, calc(96 * var(--px)), 96px)
                 clamp(20px, calc(51 * var(--px)), 51px);
}
.ct-griglia{
  display:grid;
  grid-template-columns:calc(597 * var(--px)) 1fr;
  gap:calc(63 * var(--px));
  align-items:start;
  padding-block:calc(194 * var(--px)) calc(86 * var(--px));   /* titolo a y299 */
}
/* 39:504 — Allerta Stencil 54px */
.ct-titolo{
  margin:0 0 calc(16 * var(--px));
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(26px, calc(54 * var(--px)), 54px);
  line-height:1;
  color:var(--red-card);
}
/* 39:505 — Albert Sans Medium 28px */
.ct-dati{
  margin:0; padding-top:calc(2 * var(--px)); font-style:normal;
  color:#3d3d3d; font-weight:500;
  font-size:clamp(14px, calc(28 * var(--px)), 28px);
  line-height:1.21;                  /* passo 34 come a progetto */
}
.ct-dati p{ margin:0 0 calc(36 * var(--px)); }
.ct-dati p:last-child{ margin-bottom:0; }
.ct-dati a{ text-decoration:none; }
.ct-dati a:hover{ text-decoration:underline; }
/* Proposta C (19/10/2026): orari e recapiti in due colonne, etichette
   sottili a sinistra e dati allineati a destra. */
.ct-tab{ display:grid; grid-template-columns:max-content 1fr; column-gap:1.2em; row-gap:.3em; margin:0; }
.ct-tab dt{ font-weight:400; }
.ct-tab dd{ margin:0; }
.ct-tab .sep, .ct-tab .sep + dd{ margin-top:calc(36 * var(--px)); }

.ct-mappa{
  display:grid; grid-template-rows:minmax(0, 1fr);
  position:relative; margin:calc(16 * var(--px)) 0 0;
  height:calc(529 * var(--px));
  min-height:330px; min-width:0;
  border-radius:0; overflow:hidden; box-shadow:none;
  color:var(--ink); font-family:var(--font-body);
}
.ct-mappa-vista{ position:relative; overflow:hidden; background:#d7d7d4; }
.ct-mappa iframe{ display:block; width:100%; height:100%; border:0; }
/* 28/9/2026: tolta la fascia verde «Apri in Google Maps». La scheda di
   Google dentro la mappa ha già il collegamento alla mappa grande. */
/* Anteprima del modulo Contatti: stessi font e colori, campi leggibili a ogni larghezza. */
.sec-ct--form > .wrap{ padding-top:clamp(36px, calc(80 * var(--px)), 80px); }
.sec-ct--form .ct-griglia{ padding-top:clamp(40px, calc(72 * var(--px)), 72px); }
.ct-form{
  width:100%; max-width:1000px; margin-top:clamp(24px, calc(36 * var(--px)), 36px);
  color:var(--ink); font-family:var(--font-body);
  font-size:clamp(16px, calc(20 * var(--px)), 20px); line-height:1.5;
}
/* 28/9/2026: il titolo del modulo apre la pagina ed e' grande quanto
   «CONTATTI», che ora sta sopra i recapiti. */
.ct-form .ct-form-titolo{
  margin:0 0 calc(16 * var(--px)); font-family:var(--font-display); font-weight:400;
  font-size:clamp(26px, calc(54 * var(--px)), 54px); line-height:1;
  color:var(--red-card);
}
.ct-form .ct-form-intro{ margin:0 0 24px; font-size:16px; }
.ct-form-campi{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ct-form-campo{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.ct-form-campo label{ font-weight:600; }
.ct-form-campo--messaggio{ grid-column:1 / -1; }
.ct-form-campo input, .ct-form-campo textarea{
  display:block; box-sizing:border-box; width:100%; min-width:0;
  padding:12px 16px; border:1px solid var(--footer-bg); border-radius:8px;
  background:var(--white); color:var(--ink); font:inherit;
}
.ct-form-campo input{ min-height:52px; }
.ct-form-campo textarea{ min-height:168px; resize:vertical; }
.ct-form-consenso{ display:flex; align-items:flex-start; gap:12px; margin-top:24px; font-size:16px; }
.ct-form-consenso input{
  flex:0 0 20px; width:20px; height:20px; margin:2px 0 0;
  accent-color:var(--red-btn); cursor:pointer;
}
.ct-form-consenso label{ cursor:pointer; }
.ct-form-consenso a{ color:var(--red-card); text-decoration:underline; text-underline-offset:3px; }
.ct-form :is(input,textarea,a):focus-visible{ outline:3px solid var(--red-card); outline-offset:3px; }
/* Campo trappola per i robot: fuori schermo, non nascosto (i robot saltano i campi hidden). */
.ct-form-trappola{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.ct-form-esito{ margin:0; font-weight:600; }
.ct-form-esito--ok{ color:var(--ink); }
.ct-form-esito--dati, .ct-form-esito--troppi, .ct-form-esito--errore{ color:var(--red-card); }
.ct-form-azioni{ display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-top:28px; }
.ct-form .ct-form-invia{
  min-height:52px; padding:14px 28px; border:0; font-size:18px;
  line-height:1.3; box-shadow:none;
}
.ct-form .ct-form-invia:disabled{ cursor:not-allowed; opacity:1; transform:none; box-shadow:none; }
@media (max-width:900px){
  .ct-form-campi{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .ct-form-azioni{ align-items:flex-start; flex-direction:column; }
}
