/* Functional process diagrams */
.flow-shell{margin-top:2.5rem;border:1px solid var(--line);background:#fff;padding:clamp(1.2rem,3vw,2.25rem)}
.flow-title{font-size:.8rem;font-weight:750;color:var(--blue);text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.7rem}
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;align-items:stretch;list-style:none;margin:0;padding:0}
.flow li{position:relative;padding:1.1rem 1rem;border:1px solid var(--line);border-top:3px solid var(--blue);min-width:0;background:var(--paper)}
.flow li:not(:last-child)::after{content:"→";position:absolute;left:calc(100% + .32rem);top:50%;transform:translateY(-50%);color:var(--blue);font-size:1.1rem;font-weight:700}
.flow strong{display:block;font-size:1rem;line-height:1.3;margin-bottom:.4rem}
.flow span{display:block;color:var(--muted);font-size:.86rem;line-height:1.45}
.flow-caption{font-size:.9rem;color:var(--muted);margin:1.2rem 0 0}
.flow.technology li{border-top-color:var(--ink)}
.flow.technology li:last-child{border-top-color:var(--blue);background:#e7f3f5}

/* Contact form */
.form-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:3rem;align-items:start}
.contact-form{border:1px solid var(--line);padding:clamp(1.25rem,4vw,2.5rem);background:var(--paper)}
.contact-form h2{margin:0 0 .5rem}
.form-intro{margin:0 0 1.7rem;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:block;margin-bottom:1.1rem}
.field span{display:block;font-size:.91rem;font-weight:700;margin-bottom:.35rem}
.field input,.field textarea{display:block;width:100%;background:white;border:1px solid #9fb2bc;color:var(--ink);font:inherit;border-radius:0;padding:.72rem .82rem;min-height:48px}
.field textarea{resize:vertical;min-height:150px}
.field input:focus,.field textarea:focus{outline:3px solid #a8d5df;outline-offset:1px;border-color:var(--blue)}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{color:var(--muted);font-size:.84rem;max-width:560px}
.form-status{margin:.8rem 0 0;font-weight:700;min-height:1.4em}
.form-status.success{color:#155c43}.form-status.error{color:#a02c27}
.contact-form button:disabled{cursor:wait;opacity:.68}
.contact-direct{border-top:3px solid var(--blue);padding-top:1rem}
.contact-direct h3{font:400 1.65rem Georgia,serif;margin:0 0 .8rem}
.contact-direct p{color:var(--muted)}
.contact-direct a{overflow-wrap:anywhere;font-weight:700}
@media(max-width:750px){.form-layout{grid-template-columns:1fr}.flow{grid-template-columns:1fr 1fr}.flow li:not(:last-child)::after{display:none}}
@media(max-width:520px){.form-grid,.flow{grid-template-columns:1fr}.flow li:not(:last-child)::after{display:block;content:"↓";left:50%;top:calc(100% + .12rem);transform:translateX(-50%);z-index:1}.flow{gap:1.6rem}}
