/* Contact block at the end of every page (core/includes/service_contact_form.html). */
.cb { position: relative; padding: clamp(4rem, 9vw, 7rem) 0; background: linear-gradient(180deg, transparent, rgba(255,255,255,.025) 30%, rgba(255,255,255,.025)), #050607; border-top: 1px solid rgba(255,255,255,.07); }
.cb-wrap { width: min(100% - (var(--page-gutter, 1.25rem) * 2), 1160px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.cb-eyebrow { margin: 0 0 .9rem; color: var(--c-text-muted, #9aa1a9); font: 700 .74rem/1 var(--font-mono, ui-monospace, monospace); letter-spacing: .14em; text-transform: uppercase; }
.cb-intro h2 { margin: 0 0 1rem; color: #fff; font-size: clamp(2.1rem, 4.4vw, 3.5rem); line-height: 1.02; letter-spacing: -.045em; }
.cb-direct { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin: 1.8rem 0 0; color: var(--c-text-soft, #c9ced4); font-size: .95rem; }
.cb-direct a { color: #fff; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(255,255,255,.3); }
.cb-form { min-width: 0; padding: clamp(1.3rem, 2.6vw, 2.2rem); border: 1px solid rgba(255,255,255,.12); background: rgba(6,8,11,.85); }
@media (max-width: 860px) { .cb-wrap { grid-template-columns: 1fr; } .cb-intro h2 { margin-bottom: 1.4rem; } }
@media (max-width: 420px) { .cb-form .contact-form { grid-template-columns: 1fr; } }
html.a11y-light .cb { background: #fff; }
html.a11y-light .cb-intro h2, html.a11y-light .cb-direct a { color: #000; }

.cb-lead { margin: 0; color: var(--c-text-muted, #9aa1a9); font-size: 1.05rem; line-height: 1.6; max-width: 26rem; }
.cb-person { display: flex; align-items: center; gap: .9rem; margin: 2rem 0 0; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.1); }
.cb-person img { flex: 0 0 64px; width: 64px !important; height: 64px !important; max-width: none; aspect-ratio: 1; border-radius: 50%; object-fit: cover; border: 1px solid rgba(255,255,255,.18); }
.cb-person figcaption { display: grid; gap: .15rem; }
.cb-person strong { color: #fff; font-size: .98rem; }
.cb-person span { color: var(--c-text-muted, #9aa1a9); font-size: .88rem; }
.cb-direct { margin-top: 1.4rem; }
html.a11y-light .cb-person strong { color: #000; }

/* Bigger, calmer contact block (2026-10). */
.cb { padding: clamp(5rem, 10vw, 8rem) 0; }
.cb-wrap { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; }
.cb-intro h2 { font-size: clamp(2.4rem, 5vw, 4rem); margin-bottom: 1.2rem; }
.cb-lead { font-size: clamp(1.05rem, 1.4vw, 1.2rem); max-width: 30rem; color: var(--c-text-soft, #c9ced4); }
.cb-form { padding: clamp(1.6rem, 3vw, 2.6rem); border-color: rgba(255,255,255,.16); box-shadow: 0 40px 90px -50px rgba(0,0,0,.9); }
.cb-form .contact-form { gap: 1.3rem; }
.cb-form .contact-form label > span { font-size: .92rem; color: var(--c-text-soft, #c9ced4); }
.cb-form .contact-form input, .cb-form .contact-form textarea { font-size: 17px; padding: 1rem 1.05rem; background: #07090c; border-color: rgba(255,255,255,.16); transition: border-color .15s ease, box-shadow .15s ease; }
.cb-form .contact-form textarea { min-height: 170px; }
.cb-form .contact-form input:focus, .cb-form .contact-form textarea:focus { outline: none; border-color: var(--c-green, #29c97a); box-shadow: 0 0 0 3px rgba(41,201,122,.18); }
.cb-form .contact-form textarea::placeholder { color: rgba(255,255,255,.32); }
.cb-form .cf-submit { min-height: 56px; font-size: 1.02rem; }
.cb-person img { border: 2px solid rgba(255,255,255,.12); }
