/* CONTACT0 Cornalba - v0.4 DEV. Compatibile con il layout esistente. */
.cn-contact-page { min-height:100vh; min-height:100svh; display:flex; flex-direction:column; }
.cn-contact-main { flex:1; width:100%; padding:clamp(58px,6vw,96px) var(--page-gutter) clamp(100px,11vw,170px); background:#f7f7f9; }
.cn-contact-intro { width:min(100%,760px); margin:0 auto clamp(34px,4vw,52px); text-align:center; }
.cn-contact-kicker { margin-bottom:12px; color:var(--color-primary); font-weight:800; font-size:14px; letter-spacing:.08em; }
.cn-contact-intro h1 { margin-bottom:18px; color:var(--color-primary); font-size:clamp(36px,5vw,62px); line-height:1.1; }
.cn-contact-intro > p:last-child { margin-bottom:0; font-size:18px; line-height:1.65; }
.cn-contact-form-wrap { width:min(100%,900px); margin-inline:auto; }

.contact0 { width:100%; padding:clamp(24px,4vw,42px); border:1px solid #dfe1ea; border-radius:18px; background:#fff; box-shadow:0 10px 34px rgba(25,27,65,.06); }
.contact0__form { display:grid; gap:26px; }
.contact0__section { display:grid; gap:20px; margin:0; padding:0 0 26px; border:0; border-bottom:1px solid #e5e6ed; }
.contact0__section legend { width:100%; margin:0 0 2px; padding:0; color:var(--color-primary); font-size:14px; font-weight:800; letter-spacing:.08em; }
.contact0__grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact0__field label,
.contact0__field-label { display:block; margin:0 0 8px; font-size:15px; font-weight:700; }
.contact0__optional { font-size:13px; font-weight:500; color:#666; }
.contact0__field input[type="text"],
.contact0__field input[type="email"],
.contact0__field input[type="tel"],
.contact0__field textarea { width:100%; min-height:48px; padding:12px 14px; border:1px solid #b8bac9; border-radius:7px; background:#fff; color:var(--color-text); font:inherit; }
.contact0__field textarea { min-height:155px; resize:vertical; line-height:1.5; }
.contact0__field input:focus-visible,
.contact0__field textarea:focus-visible { outline:3px solid var(--color-accent-soft); outline-offset:2px; border-color:var(--color-primary); }
.contact0__choices { display:grid; gap:10px; }
.contact0__choice { display:flex!important; align-items:flex-start; gap:10px; margin:0!important; padding:12px 14px; border:1px solid #d8dae4; border-radius:8px; background:#fafafe; font-weight:500!important; cursor:pointer; }
.contact0__choice input { flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; accent-color:var(--color-primary); }
.contact0__privacy { margin-top:-2px; }
.contact0__check { display:flex; align-items:flex-start; gap:11px; font-size:14px; line-height:1.5; }
.contact0__check input { flex:0 0 auto; width:19px; height:19px; margin-top:2px; accent-color:var(--color-primary); }
.contact0__check a { color:var(--color-primary); font-weight:700; }
.contact0__notice,
.contact0__dev-note { padding:13px 15px; border-radius:8px; line-height:1.5; font-size:14px; }
.contact0__notice { margin-bottom:20px; border:1px solid; }
.contact0__notice--success { background:#edf8f0; border-color:#9bc9a7; color:#245b32; }
.contact0__notice--error { background:#fff3f3; border-color:#e0a0a0; color:#842727; }
.contact0__dev-note { margin-bottom:20px; background:#fff8df; border:1px solid #e6cf7a; color:#5d4b05; }
.contact0__antispam { min-height:65px; }
.contact0__required-note { margin:0; font-size:12px; color:#666; }
.contact0__submit { justify-self:start; min-width:150px; min-height:48px; padding:12px 28px; border:0; border-radius:999px; background:var(--color-primary); color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.contact0__submit:hover { filter:brightness(1.06); }
.contact0__submit:focus-visible { outline:3px solid var(--color-accent-soft); outline-offset:3px; }
.contact0__trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

@media(max-width:767px) {
    .cn-contact-main { padding-top:44px; padding-bottom:88px; }
    .cn-contact-intro { margin-bottom:30px; }
    .cn-contact-intro > p:last-child { font-size:16px; }
    .contact0 { padding:22px 18px; border-radius:14px; }
    .contact0__grid { grid-template-columns:1fr; gap:20px; }
    .contact0__submit { width:100%; }
}
