.public-contact-page { min-width: 0; background: #f5f8fc; }
.public-contact-shell { width: min(100%, 824px); margin: 0 auto; padding: 32px; }
.public-contact-back { display: inline-block; margin-bottom: 20px; color: #2563eb; text-underline-offset: 3px; }
.public-contact-panel { padding: 32px; border: 1px solid #dbe5f1; border-radius: 14px; background: #fff; box-shadow: 0 10px 30px rgba(30, 64, 175, .07); color: #182230; overflow-wrap: anywhere; }
.public-contact-panel h1 { margin: 0 0 14px; color: #1d4ed8; font-size: clamp(28px, 5vw, 38px); line-height: 1.2; }
.public-contact-panel h2 { margin: 30px 0 10px; font-size: 21px; line-height: 1.35; }
.public-contact-panel p { color: #50617a; line-height: 1.7; }
.public-contact-panel a { color: #2563eb; }
.public-contact-warning { padding: 12px 14px; border-left: 4px solid #2563eb; background: #eff6ff; }
.public-contact-success { padding: 14px 16px; border: 1px solid #86efac; border-radius: 9px; background: #f0fdf4; color: #166534 !important; }
.public-contact-errors { margin: 18px 0; padding: 14px 16px; border: 1px solid #fecaca; border-radius: 9px; background: #fef2f2; color: #991b1b; }
.public-contact-errors p { margin: 0 0 6px; color: inherit; font-weight: 650; }
.public-contact-errors ul { margin: 0; padding-left: 22px; }
.public-contact-form { display: grid; gap: 9px; margin-top: 22px; }
.public-contact-form label { margin-top: 7px; font-weight: 650; }
.public-contact-form label span { color: #64748b; font-size: 14px; font-weight: 400; }
.public-contact-form input,
.public-contact-form textarea { box-sizing: border-box; width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #182230; font: inherit; }
.public-contact-form textarea { min-height: 210px; resize: vertical; line-height: 1.5; }
.public-contact-form input:focus,
.public-contact-form textarea:focus { border-color: #2563eb; outline: 3px solid rgba(37, 99, 235, .18); }
.public-contact-form button { justify-self: start; min-height: 46px; margin-top: 5px; padding: 10px 20px; border: 1px solid #2563eb; border-radius: 9px; background: #2563eb; color: #fff; font: inherit; font-weight: 650; cursor: pointer; }
.public-contact-form button:hover { background: #1d4ed8; }
.public-contact-form button:focus-visible,
.public-contact-back:focus-visible,
.public-contact-panel a:focus-visible { outline: 3px solid #2563eb; outline-offset: 4px; }
.public-contact-privacy { margin: 8px 0 0; font-size: 14px; }
.public-contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.public-contact-email-details { margin-top: 24px; padding-top: 18px; border-top: 1px solid #e2e8f0; }
.public-website-info section + section { border-top: 1px solid #e2e8f0; }
.public-website-info section + section h2 { padding-top: 2px; }

@media (max-width: 600px) {
    .public-contact-shell { padding: 20px 14px; }
    .public-contact-panel { padding: 24px 18px; }
    .public-contact-form button { width: 100%; }
}
