/* contact: hand-written (PACK card B-10; Contact has no mockup). Concept B tokens around the kept 1.1.x form
   markup (.field, .two, .btn, .formnote, .formstate and .kv come from inc/contact.php and the template). */
.cb-contact-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.cb-contact-hero { background: var(--cb-night); color: var(--cb-white); background-image: repeating-linear-gradient(0deg, rgba(143,227,240,0.06) 0 1px, transparent 1px 88px), repeating-linear-gradient(90deg, rgba(143,227,240,0.06) 0 1px, transparent 1px 88px); }
.cb-contact-hero .cb-contact-wrap { padding-top: 72px; padding-bottom: 80px; display: flex; flex-direction: column; gap: 24px; }
.cb-contact-h1 { margin: 0; font-family: var(--cb-display); font-weight: 400; font-size: clamp(56px, 7vw, 104px); line-height: 0.95; letter-spacing: -0.015em; }
.cb-contact-intro { margin: 0; font-size: 22px; line-height: 1.5; color: var(--cb-on-dark); max-width: 36em; }
.cb-page a.cb-contact-tel { color: var(--cb-cyan-soft); font-weight: 600; }
.cb-contact-main { background: var(--cb-deep); color: var(--cb-on-dark); padding: 88px 0 96px; }
.cb-contact-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 56px; align-items: start; }
@media (max-width: 860px) { .cb-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; } .cb-contact-intro { font-size: 19px; } }

/* The form card, styled like the Snapshot form card on Home. */
.cb-contact-card { background: var(--cb-white); color: var(--cb-ink); border-radius: 14px; padding: 36px; }
@media (max-width: 600px) { .cb-contact-card { padding: 24px; } }
.cb-contact-card .field { gap: 6px; margin-bottom: 18px; }
.cb-contact-card .field label { font-family: var(--cb-sans); font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--cb-ink); }
.cb-contact-card .field input { font: inherit; font-size: 17px; font-weight: 400; padding: 14px; border: 1px solid var(--cb-field); border-radius: 6px; background: var(--cb-white); color: var(--cb-ink); min-height: 50px; }
.cb-contact-card .field input::placeholder { color: #6B7690; }
.cb-contact-card .field input:focus-visible { outline: 2px solid var(--cb-link); outline-offset: 2px; }
.cb-contact-card .btn.lg { font-family: var(--cb-sans); font-weight: 600; font-size: 18px; background: var(--cb-link); color: var(--cb-white); border: 0; border-radius: 6px; padding: 16px 24px; min-height: 54px; box-shadow: none; transform: none; }
.cb-contact-card .btn.lg:hover { background: var(--cb-link-hover); color: var(--cb-white); }
.cb-contact-card .btn .arw { font-family: var(--cb-sans); }
.cb-contact-card .formnote { font-family: var(--cb-sans); font-size: 14px; letter-spacing: 0; color: var(--cb-body); margin: 14px 0 0; }
.cb-contact-card .formstate { color: var(--cb-ink); border-color: var(--cb-line); border-radius: 6px; }
.cb-contact-card .formstate.ok { border-left-color: var(--cb-link); background: #EAF5F7; }
.cb-contact-card .formstate.bad { border-left-color: #B4441E; background: #FBEFEA; }

/* Contact details, the 1.1.x .kv rows in Concept B type. */
.cb-contact-details { display: grid; gap: 22px; padding-top: 8px; }
.cb-contact-details .kv .k { font-family: var(--cb-sans); font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--cb-cyan); }
.cb-contact-details .kv .v { font-size: 18px; color: var(--cb-white); }
.cb-page .cb-contact-details .kv a { color: var(--cb-white); }
.cb-contact-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 48px; }
.cb-contact-cta .cb-btn { font-size: 17px; padding: 16px 24px; }
.cb-contact-cta .cb-btn--outline { padding: 15px 24px; }

/* After a submit the handler lands on #form, and the thank-you or error box sits just above it: keep the box on
   screen (the GTM Lead trigger needs .formstate.ok in view). 1.1.13 had the same problem. */
.cb-contact-card .formstate + #form { scroll-margin-top: 220px; }
