/* ===== PROCESSO QUOTIDIANO ===== */
/* the intro is a rich-text block: keep the single-paragraph look of the
   original markup, but space extra paragraphs the editor may add. */
.process .intro p{margin-bottom:16px;}
.process .intro p:last-child{margin-bottom:0;}

/* ===== REPORT FORM ===== */
.report-form{padding:130px 0;border-top:1px solid rgba(255,255,255,.08);}
.report-form .rf-grid{display:grid;grid-template-columns:0.85fr 1fr;gap:90px;align-items:start;}
.report-form .rf-eyebrow{display:block;font-family:var(--text);font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:22px;}
.report-form h2{font-size:40px;font-weight:800;color:#fff;line-height:1.08;letter-spacing:-.01em;margin-bottom:24px;}
.report-form .rf-intro{color:var(--body);max-width:420px;}
.rf-form{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px;}
/* CF7 slots its own <form> between the wrapper and the fields, so the grid
   has to move onto that form or the two columns collapse into one. */
.rf-form.rf-cf7{display:block;}
.rf-form.rf-cf7 .wpcf7-form{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px;}
.rf-form.rf-cf7 .wpcf7-response-output{grid-column:1 / -1;margin:8px 0 0;}
.rf-field{display:flex;flex-direction:column;gap:9px;}
.rf-field.full{grid-column:1 / -1;}
.rf-field label{font-family:var(--text);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.62);}
.rf-field input, .rf-form input[type=text], .rf-form input[type=email]{
  background:transparent;border:none;border-bottom:1.5px solid rgba(255,255,255,.24);
  color:#fff;font-family:var(--text);font-size:17px;padding:10px 2px;transition:border-color .25s ease;width:100%;
}
.rf-field input::placeholder{color:rgba(255,255,255,.3);}
.rf-field input:focus, .rf-form input:focus{outline:none;border-bottom-color:var(--red);}
.rf-consent{grid-column:1 / -1;display:flex;align-items:flex-start;gap:14px;margin-top:6px;}
.rf-consent input, .rf-form input[type=checkbox]{appearance:none;flex:none;width:20px;height:20px;margin-top:2px;border:1.5px solid rgba(255,255,255,.34);background:transparent;cursor:pointer;position:relative;transition:background .2s ease,border-color .2s ease;}
.rf-consent input:checked, .rf-form input[type=checkbox]:checked{background:var(--red);border-color:var(--red);}
.rf-consent input:checked::after, .rf-form input[type=checkbox]:checked::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.rf-consent label{font-family:var(--text);font-size:14px;line-height:1.5;color:var(--body);letter-spacing:0;text-transform:none;}
.rf-consent a{color:#fff;text-decoration:underline;text-underline-offset:2px;}
.rf-actions{grid-column:1 / -1;display:flex;align-items:center;gap:24px;margin-top:14px;}
.rf-note{font-family:var(--text);font-size:13px;color:rgba(255,255,255,.5);}
.rf-success{display:none;grid-column:1 / -1;font-family:var(--text);font-size:16px;color:#fff;padding:16px 0;}
.rf-success.show{display:block;}
@media (max-width:860px){
  .report-form{padding:90px 0;}
  .report-form .rf-grid{grid-template-columns:1fr;gap:48px;}
  .rf-form,.rf-form.rf-cf7 .wpcf7-form{grid-template-columns:1fr;}
}

/* ============ IL NOSTRO PATTO DI SOSTENIBILITÀ ============ */
.sost-patto h2.block{margin-bottom:26px;line-height:1.08;}
.sost-patto .intro{color:var(--body);max-width:760px;margin-bottom:56px;}
.sost-patto .intro p{margin-bottom:16px;}
.patto-grid{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:44px 90px;}
/* the marker is a grid cell of its own, so both the heading and the sentence
   below it keep the same left edge instead of wrapping under the square */
.patto-grid li{display:grid;grid-template-columns:15px minmax(0,1fr);column-gap:22px;}
.patto-grid li::before{content:"";grid-column:1;grid-row:1;width:15px;height:15px;background:var(--red);margin-top:7px;}
.patto-grid .pt{grid-column:2;grid-row:1;font-family:var(--head);font-weight:800;font-size:21px;line-height:1.25;color:#fff;}
.patto-grid .pd{grid-column:2;grid-row:2;color:var(--body);font-size:16px;line-height:1.55;margin-top:10px;}

@media (max-width:1100px){
  .patto-grid{gap:38px 60px;}
}
@media (max-width:860px){
  .sost-patto h2.block{margin-bottom:20px;}
  .sost-patto .intro{margin-bottom:36px;}
  .patto-grid{grid-template-columns:1fr;gap:30px;}
  .patto-grid .pt{font-size:19px;}
}

/* ============ ELENCHI SCRITTI NEI CAMPI TESTO ============
   The client writes lists inside the text fields. The global reset zeroes every
   padding, so a browser-numbered <ol> hangs its numbers outside the column; and
   the page's own marker is the red square, not a digit. :not([class]) keeps this
   off .sost-list, which styles itself. */
.section ol,
.section ul:not([class]){
  list-style:none;
  display:flex;flex-direction:column;gap:12px;
  margin:22px 0;max-width:760px;
}
.section ol > li,
.section ul:not([class]) > li{
  display:flex;align-items:flex-start;gap:16px;
  color:var(--body);line-height:1.55;
}
.section ol > li::before,
.section ul:not([class]) > li::before{
  content:"";flex:none;
  width:10px;height:10px;background:var(--red);
  margin-top:.55em;   /* centres on the first line at any font size */
}
