/* assets/css/contact.css
   CONTACT page only. */

.ct-hero-glow {
    position: absolute;
    top: -6rem;
    left: 50%;
    transform: translateX(-50%);
    width: 46rem;
    height: 28rem;
    background: radial-gradient(ellipse at center, rgba(79,70,229,0.14) 0%, transparent 65%);
    z-index: 0;
    pointer-events: none;
}
.dark .ct-hero-glow {
    background: radial-gradient(ellipse at center, rgba(99,102,241,0.22) 0%, transparent 65%);
}

/* Form fields */
.ct-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #334155;
    margin-bottom: 0.4rem;
}
.dark .ct-label { color: #cbd5e1; }

.ct-input {
    width: 100%;
    padding: 0.7rem 0.9rem;
    border-radius: 0.75rem;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #0f172a;
    font-size: 0.925rem;
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.ct-input::placeholder { color: #94a3b8; }
.ct-input:focus {
    outline: none;
    border-color: #818cf8;
    box-shadow: 0 0 0 3px rgba(79,70,229,0.15);
}
.dark .ct-input {
    background: #0f172a;
    border-color: #334155;
    color: #e2e8f0;
}
.dark .ct-input:focus { border-color: #6366f1; }

textarea.ct-input { resize: vertical; min-height: 120px; }

.ct-input.ct-invalid { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,0.12); }

/* Error text */
.ct-err {
    display: none;
    font-size: 0.78rem;
    color: #ef4444;
    margin-top: 0.35rem;
}
.ct-err.show { display: block; }

/* Status banners */
.ct-status {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-size: 0.85rem;
    font-weight: 500;
}
.ct-status.err { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.ct-status.ok  { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.dark .ct-status.err { background: rgba(239,68,68,0.1); color: #fca5a5; border-color: rgba(239,68,68,0.25); }
.dark .ct-status.ok  { background: rgba(34,197,94,0.1); color: #86efac; border-color: rgba(34,197,94,0.25); }

/* Honeypot — visually and screen-reader hidden but present for bots */
.ct-hp {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    height: 0;
    width: 0;
    overflow: hidden;
}

/* Button loader */
.ct-loader {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 9999px;
    border: 2px solid rgba(255,255,255,0.45);
    border-top-color: #fff;
    animation: ctSpin 0.7s linear infinite;
}
@keyframes ctSpin { to { transform: rotate(360deg); } }

button[disabled] { opacity: 0.7; cursor: not-allowed; }
