/* ════════════════════════════════════════════
   CONTATTI — Scope .oasi-c-contatti · form custom OASI
   ════════════════════════════════════════════ */
.oasi-c-contatti *, .oasi-c-contatti *::before, .oasi-c-contatti *::after { box-sizing: border-box; }
.oasi-c-contatti {
  --_t: var(--oasi-font-title, 'Fraunces', Georgia, serif);
  --_b: var(--oasi-font-body, 'Mulish', system-ui, sans-serif);
  --_cont: var(--oasi-container, 1200px);
  --_ink: var(--oasi-text, #17202e); --_mut: var(--oasi-text-muted, #52607a);
  --_blu: var(--oasi-blu, #143258); --_chi: var(--oasi-sez-chisiamo, #1f5fa8); --_chid: var(--oasi-sez-chisiamo-700, #16498a);
  --_cta: var(--oasi-cta, #c0392b); --_ctad: var(--oasi-sez-sostieni-700, #a22a1e);
  --_alt: var(--oasi-surface-alt, #eef2f7); --_bd: var(--oasi-border, rgba(20,40,70,.12));
  --_dur: var(--oasi-dur, .4s); --_ease: var(--oasi-ease, cubic-bezier(.2,.7,.2,1));
}
.oasi-c-contatti .oasi-wrap { max-width: var(--_cont); margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 3rem); }

.oasi-c-contatti .oc-grid { display: grid; grid-template-columns: 1.3fr .9fr; gap: clamp(2rem, 5vw, 4rem); padding-block: clamp(3rem, 6vw, 5rem); align-items: start; }
@media (max-width: 860px) { .oasi-c-contatti .oc-grid { grid-template-columns: 1fr; } }

.oasi-c-contatti .oc-form h2 { font-family: var(--_t); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 600; color: var(--_ink); margin-bottom: .4rem; }
.oasi-c-contatti .oc-form__sub { font-family: var(--_b); color: var(--_mut); margin-bottom: 1.6rem; max-width: 48ch; }

/* Custom form */
.oasi-c-contatti .oasi-cf__hp {
  position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden;
}
.oasi-c-contatti .oasi-cf__alert {
  font-family: var(--_b); padding: .9rem 1.1rem; border-radius: 12px; margin-bottom: 1.2rem;
}
.oasi-c-contatti .oasi-cf__alert--ok { background: #e8f6ee; color: #1b5e3b; }
.oasi-c-contatti .oasi-cf__alert--err { background: #fdecea; color: #8a1f11; }
.oasi-c-contatti .oasi-cf__row { display: grid; gap: 1rem; margin-bottom: 1rem; }
.oasi-c-contatti .oasi-cf__row--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .oasi-c-contatti .oasi-cf__row--2 { grid-template-columns: 1fr; } }
.oasi-c-contatti .oasi-cf__field { margin: 0 0 1.1rem; }
.oasi-c-contatti .oasi-cf__row .oasi-cf__field { margin-bottom: 0; }
.oasi-c-contatti .oasi-cf__field label {
  display: block; font-family: var(--_b); font-size: .85rem; font-weight: 700; color: var(--_ink); margin-bottom: .4rem;
}
.oasi-c-contatti .oasi-cf__field input[type=text],
.oasi-c-contatti .oasi-cf__field input[type=email],
.oasi-c-contatti .oasi-cf__field input[type=tel],
.oasi-c-contatti .oasi-cf__field textarea,
.oasi-c-contatti .oasi-cf__field select {
  font-family: var(--_b); font-size: 1rem; color: var(--_ink);
  padding: .8em 1em; border: 1.5px solid var(--_bd); border-radius: 12px; background: #fff; width: 100%;
  transition: border-color var(--_dur) var(--_ease), box-shadow var(--_dur) var(--_ease);
}
.oasi-c-contatti .oasi-cf__field input:focus,
.oasi-c-contatti .oasi-cf__field textarea:focus,
.oasi-c-contatti .oasi-cf__field select:focus {
  outline: none; border-color: var(--_chi);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--_chi) 18%, transparent);
}
.oasi-c-contatti .oasi-cf__field textarea { min-height: 140px; resize: vertical; }
.oasi-c-contatti .oasi-cf__field--check label {
  display: flex; gap: .65rem; align-items: flex-start; font-weight: 500; font-size: .92rem; line-height: 1.45;
}
.oasi-c-contatti .oasi-cf__field--check input { margin-top: .2rem; flex-shrink: 0; }
.oasi-c-contatti .oasi-cf__field--check a { color: var(--_chid); }
.oasi-c-contatti .oasi-cf__err {
  display: block; margin-top: .35rem; font-size: .82rem; color: #b32d2e; font-family: var(--_b);
}
.oasi-c-contatti .oasi-cf__field--invalid input,
.oasi-c-contatti .oasi-cf__field--invalid textarea,
.oasi-c-contatti .oasi-cf__field--invalid select {
  border-color: #b32d2e;
}
.oasi-c-contatti .oasi-cf__submit {
  margin-top: .2rem; display: inline-flex; align-items: center; gap: .5em;
  padding: .95em 2em; background: var(--_cta); color: #fff;
  font-family: var(--_b); font-weight: 800; font-size: .92rem; letter-spacing: .02em;
  border: none; border-radius: var(--oasi-radius-pill, 999px); cursor: pointer;
  transition: background var(--_dur) var(--_ease), transform var(--_dur) var(--_ease);
}
.oasi-c-contatti .oasi-cf__submit:hover { background: var(--_ctad); transform: translateY(-2px); }
.oasi-c-contatti .oasi-cf__submit:disabled { opacity: .65; cursor: wait; transform: none; }
.oasi-c-contatti .oasi-cf__status { margin-top: 1rem; font-family: var(--_b); font-size: .95rem; }
.oasi-c-contatti .oasi-cf__status--ok { color: #1b5e3b; }
.oasi-c-contatti .oasi-cf__status--err { color: #8a1f11; }

/* ASIDE */
.oasi-c-contatti .oc-aside { display: flex; flex-direction: column; gap: 1.5rem; }
.oasi-c-contatti .oc-box { background: var(--_alt); border-radius: var(--oasi-radius-xl, 18px); padding: clamp(1.4rem, 2.5vw, 1.8rem); }
.oasi-c-contatti .oc-box h2 { font-family: var(--_t); font-size: 1.2rem; font-weight: 600; color: var(--_ink); margin-bottom: 1rem; }
.oasi-c-contatti .oc-line { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .7rem; font-family: var(--_b); font-size: .95rem; }
.oasi-c-contatti .oc-line:last-child { margin-bottom: 0; }
.oasi-c-contatti .oc-line svg { flex-shrink: 0; margin-top: 3px; color: var(--_chid); }
.oasi-c-contatti .oc-line a { color: var(--_ink); text-decoration: none; transition: color var(--_dur) var(--_ease); }
.oasi-c-contatti .oc-line a:hover { color: var(--_chid); }
.oasi-c-contatti .oc-sede { padding: .8rem 0; border-top: 1px solid var(--_bd); font-family: var(--_b); font-size: .92rem; }
.oasi-c-contatti .oc-sede:first-of-type { border-top: 0; }
.oasi-c-contatti .oc-sede b { display: block; font-family: var(--_t); font-size: 1.02rem; font-weight: 600; color: var(--_ink); margin-bottom: .15rem; }
.oasi-c-contatti .oc-sede span { color: var(--_mut); }
.oasi-c-contatti .oc-cf { background: var(--_blu); color: #fff; border-radius: var(--oasi-radius-xl, 18px); padding: clamp(1.4rem, 2.5vw, 1.8rem); }
.oasi-c-contatti .oc-cf h2 { font-family: var(--_t); font-size: 1.2rem; font-weight: 600; margin-bottom: .5rem; }
.oasi-c-contatti .oc-cf p { font-family: var(--_b); color: rgba(255,255,255,.85); font-size: .92rem; margin-bottom: .7rem; }
.oasi-c-contatti .oc-cf__num { font-family: var(--_t); font-size: 1.5rem; letter-spacing: .02em; background: rgba(255,255,255,.12); padding: .5rem 1rem; border-radius: 10px; display: inline-block; }
