/* ===== Contact (Sponsors) — enterprise style ===== */
:root{
  --brand-primary:#0b2a45;
  --brand-accent:#61ce70;
  /* larghezza identica per TESTO e FORM (modifica qui se serve) */
  --contact-width: 880px;
}

/* ---------- LARGHEZZA IDENTICA E CENTRATA (testo + form) ---------- */
#sponsors-aside,
#contact-sponsors .wpcf7{
  width: min(100%, var(--contact-width));
  margin-left: auto;
  margin-right: auto;
}

/* ---------- CF7 (form) ---------- */
#contact-sponsors .wpcf7{ margin-top:0; }

#contact-sponsors .cf7-card{
  background:#fff;
  border:1px solid rgba(11,42,69,.12);
  border-radius:16px;
  padding:26px 28px;
  box-shadow:0 10px 28px rgba(11,42,69,.10);
  display:flex;
  flex-direction:column;
}

#contact-sponsors .cf7-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:24px;
  row-gap:14px; /* compatto */
}

#contact-sponsors .cf7-span2{ grid-column:1 / -1; }

#contact-sponsors .cf7-field label{
  display:block;
  font-weight:700;
  color:var(--brand-primary);
  margin:0 0 8px;
}

/* campi */
#contact-sponsors input[type="text"],
#contact-sponsors input[type="email"],
#contact-sponsors textarea{
  width:100%;
  border:1px solid rgba(11,42,69,.25);
  border-radius:12px;
  padding:14px 16px;
  font-size:16px;
  line-height:1.5;
  background:#fff;
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
#contact-sponsors textarea{ min-height:160px; resize:vertical; }
#contact-sponsors ::placeholder{ color:rgba(11,42,69,.55); }

/* focus */
#contact-sponsors input[type="text"]:focus,
#contact-sponsors input[type="email"]:focus,
#contact-sponsors textarea:focus{
  outline:none;
  border-color:var(--brand-accent);
  box-shadow:0 0 0 3px rgba(97,206,112,.22);
}

/* turnstile + bottone: spacing compatto */
#contact-sponsors .cf-turnstile,
#contact-sponsors [class*="turnstile"]{ margin:6px 0 6px !important; }
#contact-sponsors .wpcf7-form .cf-turnstile iframe{ display:block; }
#contact-sponsors .cf7-actions{ margin-top:8px !important; }

/* submit button */
#contact-sponsors .btn.btn-primary,
#contact-sponsors input[type="submit"]{
  display:inline-block;
  background:var(--brand-accent);
  color:var(--brand-primary);
  border:0;
  border-radius:16px;
  padding:14px 24px;
  font-weight:800;
  letter-spacing:.2px;
  cursor:pointer;
  transition:transform .06s ease, box-shadow .2s ease;
}
#contact-sponsors .btn.btn-primary:hover,
#contact-sponsors input[type="submit"]:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(97,206,112,.28);
}

/* messaggi CF7 */
#contact-sponsors .wpcf7-response-output{ border-radius:12px; }
#contact-sponsors .wpcf7 form.sent .wpcf7-response-output{ border-color:var(--brand-accent)!important; }
#contact-sponsors .wpcf7 form.invalid .wpcf7-response-output{ border-color:#e53935!important; }
#contact-sponsors .wpcf7-not-valid-tip{ color:#e53935; font-size:13px; margin-top:6px; }

/* fallback: se manca la .cf7-card */
#contact-sponsors .wpcf7:not(:has(.cf7-card)) form{
  background:#fff;
  border:1px solid rgba(11,42,69,.12);
  border-radius:16px;
  padding:26px 28px;
  box-shadow:0 10px 28px rgba(11,42,69,.10);
}

/* ---------- TESTO (sponsors-aside) — stile hero + justify ---------- */
#sponsors-aside{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  color:rgba(255,255,255,.86);
}

#sponsors-aside h3{
  color:#fff !important;
  font-weight:800;
  letter-spacing:.2px;
  font-size:clamp(28px, 3.2vw + 10px, 48px);
  line-height:1.12;
  margin:0 0 14px;
  text-align:left;
  text-wrap:balance;
}

#sponsors-aside p{
  color:rgba(255,255,255,.86) !important;
  font-size:18px;
  line-height:1.7;
  margin:0 0 14px;
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto; -webkit-hyphens:auto; -ms-hyphens:auto;
}
#sponsors-aside p:empty{ display:none; }
#sponsors-aside a{ color:#61ce70; text-decoration:none; }
#sponsors-aside a:hover{ text-decoration:underline; }

/* ---------- LAYOUT 2 COLONNE (solo se usi Row con classi) ---------- */
/* Desktop: stessa altezza (“a quadro”) */
@media (min-width:981px){
  .contact-row{
    display:flex;
    align-items:stretch;
    gap:32px;
  }
  .contact-row .col-form,
  .contact-row .col-aside{
    width:auto !important;
    flex:1 1 0;
    display:flex;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  /* respiro laterale del testo quando sta a destra */
  #sponsors-aside{ margin-left:28px; }
}

/* Tablet/Mobile: testo sopra al form */
@media (max-width:980px){
  .contact-row{ display:flex; flex-wrap:wrap; }
  .contact-row .col-aside{ order:-1; width:100% !important; margin:0 0 18px; }
  .contact-row .col-form{  order:0;  width:100% !important; }
  #contact-sponsors .cf7-grid{ grid-template-columns:1fr; }
  #contact-sponsors .wpcf7{ padding-left:8px; padding-right:8px; }
}
