/* ==========================================================================
   QPoint contact page — load after site.css.
   ========================================================================== */

.qp-contact { padding-block: clamp(1rem, 3vw, 2rem) 0; }

/* Form card */
.qp-contact-card { background: #fff; border-radius: var(--qp-radius-panel); padding: clamp(1.5rem, 4vw, 2.75rem); box-shadow: 0 1px 2px rgba(19, 21, 39, .06), 0 30px 60px -40px rgba(19, 21, 39, .45); }
.qp-contact-card__title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.15; color: var(--qp-navy-950); margin: 0 0 .5rem; }
.qp-contact-card__sub { color: var(--qp-navy-950); margin: 0 0 1.75rem; }
.qp-contact-form .form-label { font-weight: 600; color: var(--qp-navy-900); margin-bottom: .375rem; }
.qp-contact-form .form-control { border-radius: .875rem; border-color: var(--qp-navy-200); background: var(--qp-navy-50); font-size: 1rem; padding: .75rem 1rem; transition: border-color .2s, background-color .2s, box-shadow .2s; }
.qp-contact-form .form-control:hover { border-color: var(--qp-navy-300); }
.qp-contact-form .form-control:focus { background: #fff; border-color: var(--qp-green-500); box-shadow: 0 0 0 .25rem rgb(0 154 115 / .15); }
.qp-contact-form .form-control.is-invalid { background-image: none; padding-right: 1rem; }
.qp-contact-form textarea.form-control { min-height: 9rem; resize: vertical; }
.qp-req { color: var(--qp-green-600); }
.qp-contact-captcha:empty { display: none; }
.qp-contact-submit { display: inline-flex; align-items: center; gap: .5rem; min-width: 11rem; justify-content: center; }
.qp-contact-form .alert { border-radius: .875rem; }

/* Sent state */
.qp-contact-sent { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; padding-block: 1rem; animation: qp-contact-in .45s var(--qp-ease) both; color: var(--qp-navy-950); }
.qp-contact-sent__icon { width: 3.5rem; height: 3.5rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--qp-green-500); color: #fff; font-size: 1.75rem; margin-bottom: .5rem; }
@keyframes qp-contact-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Info cards */

@media (prefers-reduced-motion: reduce) { .qp-contact-sent { animation: none; } }

/* Dark green frame around the white form card (homepage framed-panel look) */
.qp-contact-frame { color: #fff; background: radial-gradient(60% 70% at 100% 0%, rgb(43 183 139 / .28), transparent 70%), radial-gradient(50% 60% at 0% 100%, rgb(43 183 139 / .14), transparent 70%), var(--qp-green-900); border-radius: var(--qp-radius-panel); padding: clamp(1.75rem, 5vw, 4.5rem) clamp(1rem, 4.5vw, 4rem); }
.qp-contact-frame .qp-contact-card { box-shadow: 0 30px 60px -30px rgb(0 0 0 / .45); }

/* Email + company inside the frame, under the form */

/* Left column of the frame: page title + subtitle */
.qp-contact-intro h1 { font-size: clamp(2.5rem, 1.75rem + 3vw, 4.25rem); line-height: 1.02; font-weight: 700; letter-spacing: -.04em; color: #fff; }
.qp-contact-intro__lead { font-size: 1.1875rem; line-height: 1.6; color: #fff; margin: 1.25rem 0 0; max-width: 30em; }
@media (min-width: 992px) { .qp-contact-intro { padding-right: clamp(0rem, 2vw, 1.5rem); } }
