/* ==========================================================================
   extra-preventivo.css - moduli, avviso cookie, pagine interne e legali
   ========================================================================== */

/* --- moduli --- */
.modulo { background: #fff; border: 1px solid #c7c8ca; padding: 24px 20px; }
.campo { margin-bottom: 16px; }
.campo label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.campo input[type="text"], .campo input[type="tel"], .campo input[type="email"], .campo select, .campo textarea {
  display: block; width: 100%; font: 400 16px/22px "Barlow", Arial, sans-serif; color: #000; background: #fff;
  border: 2px solid #000; border-radius: 0; padding: 10px 12px;
}
.campo textarea { resize: vertical; min-height: 110px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: 0; border-color: #b5202b; box-shadow: 0 0 0 3px rgba(181, 32, 43, .18); }
.campo.ha-errore input, .campo.ha-errore select, .campo.ha-errore textarea { border-color: #b5202b; background: #fff6f6; }
.campo .messaggio-errore { display: block; color: #b5202b; font-size: 13px; line-height: 18px; margin-top: 5px; }
.campo--spunta label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.campo--spunta input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: #b5202b; flex-shrink: 0; }
.campo-esca { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.riepilogo-errori { border-left: 4px solid #b5202b; background: #fff6f6; padding: 10px 14px; margin-bottom: 18px; font-size: 14px; }
.riepilogo-errori:empty { display: none; }
.grazie-blocco { background: #000; color: #fff; padding: 28px 24px; }
.grazie-blocco h3 { font-family: "Bebas Neue", Impact, sans-serif; font-size: 40px; line-height: 40px; text-transform: uppercase; }
.grazie-blocco p { margin-top: 12px; }
.grazie-blocco:focus { outline: 3px solid #b5202b; }
.materiale-scelta { display: flex; flex-wrap: wrap; gap: 8px; }
.materiale-scelta label { display: inline-flex; align-items: center; gap: 8px; border: 2px solid #000; padding: 8px 14px; font-weight: 600; cursor: pointer; margin: 0; }
.materiale-scelta input { accent-color: #b5202b; }
.materiale-scelta label:has(input:checked) { background: #000; color: #fff; }
.foto-caricate { list-style: none; margin: 8px 0 0; padding: 0; font-size: 13px; }
.foto-caricate li { padding: 4px 0; border-bottom: 1px dashed #c7c8ca; }
.nota-campo { font-size: 13px; color: #555; margin-top: 5px; display: block; }

/* --- avviso cookie --- */
.avviso-cookie { position: fixed; z-index: 80; left: 12px; right: 12px; bottom: 12px; background: #fff; border: 2px solid #000; padding: 16px 44px 16px 16px; font-size: 14px; line-height: 20px; box-shadow: 0 8px 28px rgba(0, 0, 0, .2); }
.avviso-cookie[hidden] { display: none; }
.avviso-cookie-bottoni { display: flex; gap: 10px; margin-top: 12px; }
.avviso-cookie-bottoni .btn { flex: 1; }
.avviso-chiudi { position: absolute; top: 6px; right: 8px; width: 32px; height: 32px; border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; }

/* --- pagine interne --- */
.testata-pagina { position: relative; background: #000; color: #fff; overflow: hidden; }
.testata-pagina img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.testata-pagina-testo { position: relative; padding: 72px 20px 56px; max-width: 820px; }
.testata-pagina-testo p { margin-top: 16px; max-width: 560px; }
.testata-semplice { background: #e4e6e8; padding: 56px 20px 40px; }
.indice-pagina { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.indice-pagina a { display: inline-block; border: 2px solid currentColor; padding: 6px 12px 4px; font-family: "Bebas Neue", Impact, sans-serif; font-size: 18px; letter-spacing: .6px; text-decoration: none; text-transform: uppercase; }
.indice-pagina a:hover { background: #fff; color: #000; }
.testata-semplice .indice-pagina a:hover { background: #000; color: #fff; }
.blocco { padding: 56px 0; scroll-margin-top: 76px; }
.blocco + .blocco { border-top: 1px solid #e4e6e8; }
.blocco--grigio { background: #e4e6e8; }
.blocco h2.titolo-medio { margin-bottom: 14px; }
.blocco p + p { margin-top: 12px; }
.blocco-foto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-top: 24px; }
.dati-prodotto { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; margin: 18px 0 0; padding: 14px 0 0; border-top: 2px solid #000; font-size: 15px; }
.dati-prodotto dt { font-weight: 600; }
.dati-prodotto dd { margin: 0; }
.prezzo-da { display: inline-block; margin-top: 16px; background: #b5202b; color: #fff; font-family: "Bebas Neue", Impact, sans-serif; font-size: 26px; line-height: 26px; padding: 8px 12px 5px; }
.elenco-semplice { margin: 14px 0 0; padding-left: 20px; }
.elenco-semplice li { margin-bottom: 8px; }
.tabella-larga { overflow-x: auto; margin-top: 20px; }
.tabella-larga table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15px; }
.tabella-larga th, .tabella-larga td { text-align: left; padding: 12px 10px; border-bottom: 1px solid #c7c8ca; vertical-align: top; }
.tabella-larga thead th { font-family: "Bebas Neue", Impact, sans-serif; font-weight: 400; font-size: 20px; border-bottom: 2px solid #000; }
.riquadro-avviso { border: 2px solid #000; padding: 18px 20px; margin-top: 22px; background: #fff; }
.riquadro-avviso strong { font-family: "Bebas Neue", Impact, sans-serif; font-weight: 400; font-size: 24px; display: block; margin-bottom: 4px; }
.contatti-lato { background: #000; color: #fff; padding: 24px 22px; margin-top: 32px; }
.contatti-lato h2 { font-family: "Bebas Neue", Impact, sans-serif; font-size: 32px; line-height: 32px; text-transform: uppercase; }
.contatti-lato p { margin-top: 10px; color: #e4e6e8; }
.contatti-lato a { color: #fff; }

/* --- pagine legali: solo testo --- */
.legale { padding: 56px 0 72px; }
.legale .contenitore { max-width: 820px; }
.legale h1 { font-family: "Bebas Neue", Impact, sans-serif; font-size: 44px; line-height: 42px; text-transform: uppercase; overflow-wrap: break-word; }
.legale h2 { font-family: "Bebas Neue", Impact, sans-serif; font-size: 28px; line-height: 30px; text-transform: uppercase; margin: 30px 0 8px; scroll-margin-top: 76px; }
.legale p { margin-bottom: 12px; }
.legale-data { color: #555; font-size: 14px; margin-top: 6px; }
.tabella-dati { border-collapse: collapse; width: 100%; margin-top: 8px; }
.tabella-dati th, .tabella-dati td { text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid #c7c8ca; vertical-align: top; }
.tabella-dati th { width: 34%; font-weight: 600; }

@media (min-width: 768px) {
  .modulo { padding: 32px 30px; }
  .legale h1 { font-size: 64px; line-height: 58px; }
  .avviso-cookie { left: auto; right: 24px; bottom: 24px; width: 380px; }
  .testata-pagina-testo { padding: 110px 32px 80px; }
  .testata-semplice { padding: 80px 32px 56px; }
  .blocco { padding: 72px 0; }
}
@media (min-width: 1024px) {
  /* il modello tiene tutto nella colonna: qui l'avviso si appoggia in fondo alla colonna */
  .avviso-cookie { left: 12px; right: auto; bottom: 12px; width: 256px; padding: 14px 36px 14px 14px; font-size: 13px; line-height: 18px; }
  .avviso-cookie-bottoni { flex-direction: column; gap: 8px; }
  .contatti-lato { margin-top: 0; position: sticky; top: 24px; }
}
.label-finto { display: block; font-size: 14px; margin-bottom: 6px; }
.label-finto small, .campo label small { font-weight: 400; color: #555; }
.contatti-lato { overflow-wrap: anywhere; }
@media (min-width: 1024px) and (max-width: 1279px) { .contatti-lato h2 { font-size: 26px; line-height: 28px; } .laterale-due .btn { padding-left: 8px; padding-right: 8px; } }
