/* TerraSignal — adattamento di site.css al markup dei blocchi WordPress.
   site.css resta quello del sito statico; qui solo cio' che serve perche' i
   blocchi nativi (Gruppo, Immagine, Pulsanti, Tabella...) si vedano uguali.
   Convenzioni introdotte dalla conversione:
   .ts-figure  = Gruppo al posto di una <figure> con didascalia composta
   .ts-caption = la sua didascalia (Paragrafo o Gruppo)
   .ts-span    = Gruppo al posto di uno <span> decorativo (es. fotogrammi T1-T3) */

/* PULSANTI — il contenitore del blocco sparisce dal layout: il link e' il pulsante,
   come l'<a class="cta"> originale. */
.wp-block-buttons:not(.hero-actions){display:block; margin:0 0 15px}
.wp-block-button.cta{display:contents}
.wp-block-button.cta > .wp-block-button__link{display:inline-block; margin:6px 10px 6px 0; padding:13px 22px;
  background:var(--signal); color:var(--signal-ink); border:0; border-radius:9px;
  font-family:var(--mono); font-weight:800; font-size:14.5px; letter-spacing:.2px; line-height:inherit;
  width:auto; height:auto; text-align:left; word-break:normal; box-shadow:none;
  transition:transform .15s, box-shadow .15s}
.wp-block-button.cta > .wp-block-button__link:hover{text-decoration:none; transform:translateY(-2px);
  box-shadow:0 10px 30px #43d67535}
.wp-block-button.cta.ghost > .wp-block-button__link{background:transparent; color:var(--signal);
  border:1px solid var(--signal-2)}
.wp-block-button.cta.ghost > .wp-block-button__link:hover{background:#12271b; box-shadow:none; transform:none}
.wp-block-button.cta > .wp-block-button__link:focus-visible{outline-color:var(--signal-ink);
  outline-offset:-4px; box-shadow:0 0 0 var(--focus) var(--signal)}
/* Home: bottoni dell'hero impilati, larghi quanto il piu' largo, centrati in verticale sull'immagine */
.hero-row:has(> .hero-actions){align-items:center}
.wp-block-buttons.hero-actions{display:grid; grid-template-columns:max-content; justify-content:start;
  gap:var(--s-1); margin:0}
.wp-block-buttons.hero-actions .wp-block-button__link{margin:0; display:block; text-align:center}
.hero-actions .wp-block-button.cta:not(.ghost) > .wp-block-button__link{border:1px solid transparent}
@media(max-width:760px){.wp-block-buttons.hero-actions{grid-template-columns:minmax(0,1fr)}
  /* su schermo stretto il padding laterale impostato nell editor manderebbe a capo il testo */
  .hero-actions .wp-block-button.cta > .wp-block-button__link{padding-left:16px !important; padding-right:16px !important;
    font-size:12.5px; letter-spacing:0}}

/* GRUPPI CON SFONDO — niente padding automatico del blocco: lo decide la classe (.commitment, .hero-art...) */
:where(.wp-block-group.has-background){padding:0}

/* SEPARATORE — la riga sottile del sito, non i 2px del blocco */
hr.wp-block-separator{border:0; border-top:1px solid var(--line); margin:44px 0; opacity:1}

/* TABELLA */
/* il margine sta sulla figure del blocco: cosi' collassa con i vicini come faceva la <table> */
figure.wp-block-table{margin:18px 0}
.wp-block-table table{margin:0}
.wp-block-table th, .wp-block-table td{border:1px solid var(--line); padding:10px 13px}

/* FIGURE COMPOSTE (Gruppo) */
:where(.ts-figure){margin:22px 0; padding:0}
.ts-figure > .wp-block-image, .ts-figure .scroller > .wp-block-image{margin:0}
:where(.ts-caption){font-size:13px; color:var(--muted); margin:9px 0 0; line-height:1.5}

/* porte con illustrazione: la carta intera resta cliccabile (link esteso dell'invito) */
.door .go{font-size:inherit; line-height:inherit; margin:0}
.door.card .go a::after{content:""; position:absolute; inset:0; z-index:1}
.door.card:hover .go a{text-decoration:underline}
.door-art img{border:0; border-radius:0}

/* catena di misura */
.chain .ts-figure{margin:0; border:1px solid var(--line); border-radius:14px; background:var(--surface);
  overflow:hidden; transition:border-color .15s, transform .15s}
.chain .ts-figure:hover{border-color:var(--signal-2); transform:translateY(-3px)}
.chain .ts-figure > figure.wp-block-image{border:0; border-radius:0; background:none; overflow:visible; transition:none; transform:none}
.chain .ts-caption{padding:14px 15px 16px; margin:9px 0 0}
.chain .ts-caption p.n{margin:0; line-height:calc(13px * 1.5)}
.chain-fig .ts-caption{font-size:17px; color:var(--ink); line-height:1.62; margin-top:16px}

/* offerta */
.offer-head .offer-num{margin:0}
.offer-art.frames .ts-figure{margin:0; display:flex; flex-direction:column}
.offer-art.frames .ts-span{display:block; flex:1; min-height:150px; border-radius:8px;
  border:1px solid var(--line); background-color:#070d16;
  background-position:center; background-repeat:no-repeat}
.offer-art.frames .ts-caption{font-family:var(--mono); font-size:12px; color:var(--signal);
  text-align:center; margin:9px 0 0}

/* etichette che erano <span> a blocco */
.grid3 .card p.lbl{line-height:1.62}

/* galleria di mappe (Home): riquadri .hero-art in colonne uguali — 3 per riga, "due" = 2 per riga */
.map-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-2); margin:var(--s-2) 0}
.map-grid.due{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.map-grid, .map-grid.due{grid-template-columns:1fr}}
/* didascalia scura (colore "Fondo") su mappe chiare: riquadro chiaro semitrasparente solo dietro il testo */
.hero-art .cap.has-ground-color{background:rgba(255,255,255,.75); padding:6px 9px; border-radius:7px;
  font-size:10.5px; line-height:1.4;
  text-shadow:none; -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px)}

/* MENU — due tendine a un livello (Soluzioni, Casi di Studio): su mobile serve piu' altezza */
@media(max-width:880px){.navtoggle:checked ~ .mainnav{max-height:900px}}

/* varianti di griglie gia' esistenti (pagine dei casi di studio) */
.grid3.quattro{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.grid3.quattro{grid-template-columns:repeat(2,minmax(0,1fr))}}
.doors.due{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.grid3.quattro, .doors.due{grid-template-columns:1fr}}

/* Catena InSAR in Metodo: striscia finale senza separatori appesi quando va a capo, spazio prima dell'elenco tecnico */
.chain-foot{margin-bottom:28px}
.chain-foot .sep{display:none}
.chain-foot > span:not(.res):not(.sep){border-left:1px solid var(--line); padding-left:20px}

/* Modulo «Verifica di un'area»: mappa AOI, messaggi e invio */
.formgrid fieldset.aoi{border:1px solid var(--line); border-radius:12px; padding:14px 16px 12px; margin:6px 0 0; min-width:0}
.formgrid fieldset.aoi legend{padding:0 6px; font-size:14px; color:var(--ink); font-weight:600}
.formgrid fieldset.aoi legend .opt{color:var(--muted); font-weight:400}
.aoi-tools{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0}
.aoi-sp{flex:1 1 auto}
.formgrid .aoi-btn{display:inline-flex; align-items:center; margin:0; padding:8px 14px; border:1px solid var(--signal-2); border-radius:9px;
  background:transparent; color:var(--signal); font:500 13.5px var(--mono); cursor:pointer}
.formgrid .aoi-btn:hover{background:#12271b}
.formgrid .aoi-btn.save{background:var(--signal); color:var(--signal-ink); border-color:var(--signal)}
.formgrid .aoi-btn[disabled]{opacity:.4; cursor:not-allowed; background:transparent; color:var(--muted); border-color:var(--line)}
.aoi-upload input[type=file]{position:absolute; width:1px; height:1px; opacity:0; overflow:hidden}
.aoi-upload:focus-within{outline:2px solid var(--signal); outline-offset:2px}
.aoi-map{height:440px; border-radius:10px; border:1px solid var(--line); background:#0a1420; z-index:0}
.aoi-map .leaflet-control-attribution{font-size:11px}
.aoi-msg{min-height:1.4em; margin:8px 0 0; font-size:13.5px; color:var(--muted)}
.aoi-msg.err, .field-err{color:#ff8a8e}
.aoi-msg.ok{color:var(--signal)}
.aoi-summary{margin:6px 0 4px; padding:10px 12px; border-radius:9px; background:var(--surface); border:1px dashed var(--line); font-size:14px; color:var(--muted)}
.aoi-summary.set{border-style:solid; border-color:var(--signal-2); color:var(--ink)}
.aoi-summary code{font-family:var(--mono); font-size:13px}
.field-err{font-size:13px; margin:4px 0 0}
.formgrid .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.formgrid button.cta{border:0; cursor:pointer}
.formgrid button.cta[disabled]{opacity:.45; cursor:not-allowed; transform:none; box-shadow:none}
.ts-esito{margin:10px 0 0; font-size:14.5px}
.ts-esito.err{color:#ff8a8e}
.ts-esito.ok{grid-column:1/-1; padding:18px 20px; border:1px solid var(--signal-2); border-radius:12px; background:#0e2016; color:var(--ink)}
@media(max-width:760px){.aoi-map{height:340px} .aoi-sp{display:none}}

/* Piè di pagina: contenuto dal pattern sincronizzato «Piè di pagina», testo centrato */
footer.site .wrap{text-align:center}
footer.site .wrap p{margin:0 0 3px}
footer.site .footlinks{margin-top:12px; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px}
footer.site .footlinks a{margin:0}

/* Testo solo per motori di ricerca e lettori di schermo (es. H1 di «Chi siamo», dove il titolo visivo è il logo) */
.screen-reader-text{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

/* ==========================================================================
   Palette «blu notte» (variante B, scelta il 25/09/2026): sfondo più chiaro e più blu.
   Sostituisce i colori scuri di site.css senza toccarlo. Verde e testi invariati.
   Contrasto (WCAG): testo su riquadro 12,7:1 · grigio su riquadro 5,8:1 · verde su riquadro 7,7:1.
   ========================================================================== */
:root{--ground:#0e1d36; --surface:#15294a; --surface-2:#1d375f; --line:#32527a; --line-soft:#223c60}
body::before{opacity:.62}
body::after{background:
  radial-gradient(120% 90% at 50% 32%, rgba(14,29,54,.18) 0%, rgba(14,29,54,.55) 100%),
  linear-gradient(180deg, rgba(14,29,54,.22) 0%, rgba(14,29,54,.40) 100%)}
@media(max-width:760px){ body::before{opacity:.48} }
header.site{background:#10213cd9}
@media(max-width:880px){ .mainnav{background:#10213cf7} }
.navdrop-panel, .navsub-panel{background:#15294af2}
footer.site{background:#10213c}
.hero-art, .door-art, .offer-art, .offer-art.frames, .offer-art.frames span, .ts-figure .ts-span{background-color:#0e1d36}
.commitment::before{background:linear-gradient(90deg, rgba(21,41,74,.93) 38%, rgba(21,41,74,.5) 68%, rgba(21,41,74,0) 92%)}
@media(max-width:760px){ .commitment::before{background:linear-gradient(90deg, rgba(21,41,74,.94) 42%, rgba(21,41,74,.6) 72%, rgba(21,41,74,.1) 100%)} }
select, input[type=text], textarea, input[type=email], .aoi-map{background-color:#12233f}
.cta.ghost:hover, .wp-block-button.cta.ghost > .wp-block-button__link:hover, .formgrid .aoi-btn:hover{background:#163a35}
