/* =========================================================
   Pagina Contatti — INFROP
   Palette: #0065AE · #171F32 · #FF5421
   ========================================================= */

.ct-hero {
    background: linear-gradient(135deg, #0065AE, #171F32);
    color: #fff;
    padding: 3.5rem 0;
    text-align: center;
}
.ct-hero__title { color: #fff; font-size: clamp(1.9rem, 3.5vw, 2.8rem); font-weight: 700; margin: 0 0 .6rem; }
.ct-hero__sub { color: rgba(255,255,255,.9); margin: 0; }

.ct-body { padding: 4rem 0; }
.ct-intro { max-width: 780px; margin: 0 auto 2.5rem; color: #555; text-align: center; }

.ct-block-title {
    color: #171F32; font-size: 1.4rem; font-weight: 700; margin-bottom: 1.2rem;
    position: relative; padding-bottom: .5rem;
}
.ct-block-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 46px; height: 3px; background: #0065AE; }

/* Info */
.ct-info__list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.ct-info__list li { display: flex; align-items: center; gap: .85rem; padding: .7rem 0; color: #333; }
.ct-info__list a { color: #333; text-decoration: none; }
.ct-info__list a:hover { color: #0065AE; }
.ct-info__ico {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(0,101,174,.12); color: #0065AE; flex-shrink: 0;
}
.ct-map { border-radius: 12px; overflow: hidden; border: 1px solid #e6e8ec; }
.ct-map iframe { display: block; }

/* Form */
.ct-form-card {
    background: #f7f8fa; border: 1px solid #e6e8ec; border-radius: 14px; padding: 2rem;
}
.ct-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 575px) { .ct-grid { grid-template-columns: 1fr; } }
.ct-field { margin-bottom: 1rem; }
.ct-field label { display: block; font-weight: 600; color: #171F32; font-size: .9rem; margin-bottom: .35rem; }
.ct-field input,
.ct-field textarea {
    width: 100%; border: 1px solid #d5d9df; border-radius: 8px; padding: .7rem .85rem; color: #171F32; background: #fff;
}
.ct-field input:focus,
.ct-field textarea:focus { outline: none; border-color: #0065AE; box-shadow: 0 0 0 .2rem rgba(0,101,174,.15); }

.ct-check { display: flex; align-items: flex-start; gap: .5rem; margin: .3rem 0 1.2rem; }
.ct-check input { margin-top: .25rem; }
.ct-check label { font-size: .9rem; color: #444; }
.ct-check a { color: #0065AE; }

.ct-submit {
    background: #FF5421; color: #fff; border: none; border-radius: 8px;
    padding: .85rem 2.2rem; font-weight: 600; cursor: pointer; transition: background .2s;
}
.ct-submit:hover { background: #ff450c; }
.ct-submit:disabled { opacity: .6; cursor: default; }

.ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.ct-feedback { margin-top: 1rem; font-size: .95rem; }
.ct-feedback.is-success { color: #1a7f37; font-weight: 600; }
.ct-feedback.is-error { color: #d1242f; font-weight: 600; }
