/* Dedicated contact page styles — loaded after the global stylesheet. */
.contact-page { background: linear-gradient(180deg, #f7faff 0%, #ffffff 72%); }
.contact-hero { padding: 72px 0 96px; }
.contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr); gap: 72px; align-items: start; }
.contact-intro { padding-top: 12px; }
.contact-intro h1 { font-size: clamp(46px, 5.4vw, 72px); line-height: 1.03; max-width: 720px; margin-bottom: 24px; }
.contact-intro .lead { max-width: 650px; font-size: 20px; line-height: 1.55; }
.contact-points { margin-top: 42px; border-top: 1px solid #dfe7f0; }
.contact-points > div { display: grid; grid-template-columns: 42px 1fr; gap: 14px; padding: 18px 0; border-bottom: 1px solid #dfe7f0; }
.contact-points > div > span { color: #1769e8; font-size: 12px; font-weight: 900; letter-spacing: .08em; padding-top: 2px; }
.contact-points p { margin: 0; color: #60718a; }
.contact-points strong { color: #0a1930; }

.contact-form-card { background: #ffffff; border: 1px solid #dfe7f0; border-radius: 24px; padding: 34px; box-shadow: 0 18px 55px rgba(10,25,48,.10); position: sticky; top: 98px; }
.contact-form { display: grid; gap: 20px; }
.contact-form .form-row { display: grid; gap: 16px; }
.contact-form .two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-form label { display: grid; gap: 8px; margin: 0; color: #1f3552; font-size: 14px; font-weight: 750; }
.contact-form label > span { display: block; }
.contact-form label small { color: #60718a; font-weight: 500; }
.contact-form input,
.contact-form textarea { appearance: none; width: 100%; min-width: 0; border: 1px solid #cfd9e7; border-radius: 11px; background: #fff; color: #0a1930; padding: 13px 14px; font: inherit; line-height: 1.45; outline: none; box-shadow: none; }
.contact-form input { min-height: 48px; }
.contact-form textarea { min-height: 180px; resize: vertical; }
.contact-form input:focus,
.contact-form textarea:focus { border-color: #1769e8; box-shadow: 0 0 0 3px rgba(23,105,232,.12); }
.contact-form input::placeholder,
.contact-form textarea::placeholder { color: #91a0b3; opacity: 1; }
.contact-form .form-submit { width: 100%; min-height: 54px; margin-top: 2px; border: 0; border-radius: 12px; background: #1769e8; color: #fff; font-weight: 800; cursor: pointer; }
.contact-form .form-submit:hover { background: #0f52c0; }
.contact-form .form-submit:disabled { opacity: .6; cursor: wait; }
.form-status { min-height: 22px; margin: -4px 0 0; font-size: 14px; line-height: 1.45; }
.form-status.success { color: #176c42; }
.form-status.error { color: #a12a2a; }
.form-privacy { margin: 0; color: #60718a; font-size: 12px; line-height: 1.55; }
.form-privacy a { color: #0f52c0; text-underline-offset: 2px; }

@media (max-width: 960px) {
  .contact-grid { grid-template-columns: 1fr; gap: 42px; }
  .contact-form-card { position: static; }
}

@media (max-width: 620px) {
  .contact-hero { padding: 48px 0 72px; }
  .contact-intro h1 { font-size: 44px; }
  .contact-form-card { padding: 24px 18px; border-radius: 18px; }
  .contact-form .two-col { grid-template-columns: 1fr; }
}
