/* Shared contact section, independent of the individual landing page themes. */
.crm-contact { position:relative; padding:80px 0; background:#eef3f8; color:#122033; scroll-margin-top:100px; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.6; }
.crm-contact *, .crm-floating { box-sizing:border-box; }
.crm-shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; display:grid; grid-template-columns:.85fr 1.15fr; align-items:start; gap:56px; }
.crm-intro { padding-top:16px; }
.crm-intro .crm-kicker { color:#1565c0; font-size:14px; font-weight:700; margin:0 0 16px; }
.crm-intro h2 { color:#102542; margin:0 0 24px; font-size:clamp(32px,3.3vw,46px); font-weight:650; line-height:1.15; letter-spacing:-.035em; }
.crm-intro > p { font-size:17px; color:#526278; max-width:430px; margin:0 0 24px; }
.crm-direct { display:grid; gap:10px; margin-top:28px; }
.crm-direct a { color:#102542; font-size:clamp(16px,1.8vw,21px); text-decoration:none; overflow-wrap:anywhere; }
.crm-form { min-width:0; padding:32px; border:1px solid #dce4ee; border-radius:12px; background:white; color:#122033; }
.crm-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.crm-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.crm-fields:empty { display:none; }
#contactExtraFields:not(:empty) { margin-top:18px; }
.crm-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.crm-field label { display:block; font-size:14px; font-weight:600; color:#122033; }
.crm-field label span { font-size:12px; font-weight:400; color:#526278; }
.crm-field input,.crm-field textarea,.crm-field select { display:block; width:100%; min-width:0; min-height:48px; border:1px solid #b9c6d7; border-radius:6px; background:#fff; color:#122033; padding:11px 12px; font:inherit; font-size:16px; line-height:1.5; box-shadow:none; }
.crm-field textarea { resize:vertical; }
.crm-wide { grid-column:1/-1; }
.crm-consent { display:flex; gap:10px; align-items:flex-start; margin:24px 0; color:#43556c; font-size:13px; line-height:1.6; font-weight:400; }
.crm-consent input { appearance:auto; flex:0 0 18px; width:18px; height:18px; min-height:0; margin:3px 0 0; accent-color:#1565c0; }
.crm-consent a,.crm-status a,.crm-form noscript a { text-decoration:underline; text-underline-offset:3px; color:inherit; }
.crm-submit { width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:52px; padding:14px 20px; border:0; border-radius:6px; background:#1565c0; color:#fff; font:inherit; font-size:16px; font-weight:600; cursor:pointer; }
.crm-submit:hover { background:#104e97; }
.crm-submit:disabled { cursor:wait; opacity:.65; }
.crm-contact :focus-visible,.crm-floating:focus-visible { outline:3px solid #007db2; outline-offset:3px; }
.crm-status { padding:14px; margin-top:20px; border:1px solid #b9c6d7; border-radius:6px; font-size:14px; overflow-wrap:anywhere; background:#f1f5fa; color:#243c59; }
.crm-status[data-state="error"] { border-color:#d99797; background:#fff3f3; color:#802424; }
.crm-status[data-state="success"] { border-color:#88b9a3; background:#edf8f2; color:#19533b; }
.crm-status[hidden],.crm-floating[hidden] { display:none!important; }
.crm-sr-only,.crm-honeypot { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.crm-anchor { position:absolute; top:0; scroll-margin-top:100px; }
.crm-floating { position:fixed; z-index:120; right:max(24px,env(safe-area-inset-right)); bottom:calc(24px + env(safe-area-inset-bottom)); display:inline-flex; gap:20px; align-items:center; min-height:54px; padding:14px 22px; border:1px solid #ffffff50; border-radius:100px; color:#fff; background:#1565c0; box-shadow:0 6px 24px #10254226; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:15px; line-height:1.5; font-weight:650; text-decoration:none; }
.crm-floating:hover { background:#104e97; }
.crm-floating > span { font-size:21px; line-height:1; }
.nav-open .crm-floating { visibility:hidden; }
@media(max-width:900px) { .crm-shell { gap:32px; grid-template-columns:1fr 1.2fr; } .crm-form { padding:24px; } }
@media(max-width:700px) {
 .crm-contact { padding:48px 0; }
 .crm-shell { width:calc(100% - 32px); grid-template-columns:1fr; gap:28px; }
 .crm-intro { padding:0; }
 .crm-form { padding:20px; }
 .crm-floating { right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); min-height:50px; padding:12px 18px; font-size:14px; }
 body > footer { padding-bottom:90px; }
}
@media(max-width:420px) { .crm-fields { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } }
