/* SocialEDGE contact form, shared by every page. Self-contained so it renders the same on the homepage and the subpages. */
.cf-card{--cf-blue:#007bff;--cf-blue2:#4fc3ff;--cf-ink:#03101e;--cf-ink2:#071d31;--cf-ice:#b0e0e6;--cf-ease:cubic-bezier(.22,1,.36,1);--cf-r:22px;position:relative;width:100%;padding:clamp(1.6rem,3.5vw,3rem);border-radius:var(--cf-r);background:var(--cf-ink2);color:#fff;text-align:left;letter-spacing:-.008em}
.cf-card *{box-sizing:border-box}
.cf-card h3,.cf-card p{margin:0}

/* Moving border: a thin light with a soft tail travels the rounded edge */
.cf-border{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.cf-border rect{fill:none}
.cf-border__base{stroke:rgba(176,224,230,.16);stroke-width:1}
.cf-border__run{stroke:var(--cf-blue2);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:7 93;animation:cf-orbit 11s linear infinite}
.cf-border__tail{stroke:var(--cf-blue);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:20 80;stroke-dashoffset:13;opacity:.45;animation:cf-orbit-tail 11s linear infinite}
@keyframes cf-orbit{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@keyframes cf-orbit-tail{from{stroke-dashoffset:13}to{stroke-dashoffset:-87}}

.cf-form{position:relative;display:grid;gap:1.35rem}
.cf-title{font-size:clamp(1.45rem,2.4vw,2.1rem);font-weight:800;letter-spacing:-.035em;line-height:1.12;color:#fff;text-transform:none}
.cf-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem 1rem}
.cf-field{display:grid;gap:.5rem;min-width:0}
.cf-field label{font-size:.84rem;font-weight:700;letter-spacing:-.005em;color:#fff;text-transform:none}
.cf-field label em{margin-left:.35rem;color:var(--cf-blue2);font-size:.66rem;font-style:normal;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.cf-field label em.opt{color:rgba(233,244,252,.42)}
.cf-field input,.cf-field textarea{width:100%;margin:0;padding:.9rem 1rem;border:1px solid rgba(176,224,230,.18);border-radius:12px;background:rgba(3,16,30,.55);color:#fff;font:inherit;font-size:1rem;line-height:1.5;letter-spacing:normal;transition:border-color .3s var(--cf-ease),box-shadow .3s var(--cf-ease),background .3s var(--cf-ease)}
.cf-field textarea{resize:vertical;min-height:9.5rem}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:rgba(233,244,252,.36)}
.cf-field input:hover,.cf-field textarea:hover{border-color:rgba(176,224,230,.32)}
.cf-field input:focus,.cf-field textarea:focus{outline:0;border-color:var(--cf-blue2);background:rgba(3,16,30,.8);box-shadow:0 0 0 3px rgba(0,123,255,.22)}
.cf-field.is-invalid input,.cf-field.is-invalid textarea{border-color:#ff8f8f}
.cf-field__error{color:#ffb0b0;font-size:.8rem}

/* Application form extras: dropdowns and the CV upload area */
.cf-select{position:relative}
.cf-select::after{content:"";position:absolute;right:1.1rem;top:50%;width:7px;height:7px;margin-top:-6px;border-right:1.5px solid var(--cf-blue2);border-bottom:1.5px solid var(--cf-blue2);transform:rotate(45deg);pointer-events:none}
.cf-field select{width:100%;margin:0;padding:.9rem 2.6rem .9rem 1rem;border:1px solid rgba(176,224,230,.18);border-radius:12px;background:rgba(3,16,30,.55);color:#fff;font:inherit;font-size:1rem;line-height:1.5;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .3s var(--cf-ease),box-shadow .3s var(--cf-ease)}
.cf-field select:invalid{color:rgba(233,244,252,.42)}
.cf-field select option{background:var(--cf-ink2);color:#fff}
.cf-field select:hover{border-color:rgba(176,224,230,.32)}
.cf-field select:focus{outline:0;border-color:var(--cf-blue2);box-shadow:0 0 0 3px rgba(0,123,255,.22)}
.cf-field.is-invalid select{border-color:#ff8f8f}
.cf-drop{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.2rem 1rem;padding:1.15rem 1.25rem;border:1px dashed rgba(176,224,230,.32);border-radius:14px;background:rgba(3,16,30,.4);transition:border-color .3s var(--cf-ease),background .3s var(--cf-ease)}
.cf-drop input{position:absolute;inset:0;z-index:1;width:100%;height:100%;opacity:0;cursor:pointer}
.cf-drop:hover,.cf-drop.is-over{border-color:var(--cf-blue2);background:rgba(0,123,255,.1)}
.cf-drop:focus-within{border-color:var(--cf-blue2);box-shadow:0 0 0 3px rgba(0,123,255,.22)}
.cf-drop.has-file{border-style:solid;border-color:rgba(79,195,255,.55)}
.cf-drop__icon{grid-row:span 2;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:rgba(0,123,255,.16);color:var(--cf-blue2)}
.cf-drop__icon svg{width:1.25rem;height:1.25rem}
.cf-drop__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}
.cf-drop__text b{color:#fff}
.cf-drop__text span{color:rgba(233,244,252,.6)}
.cf-drop.has-file .cf-drop__text span{display:none}
.cf-drop small{color:rgba(233,244,252,.5);font-size:.78rem}
.cf-field.is-invalid .cf-drop{border-color:#ff8f8f}
.cf-field__error:empty{display:none}
.cf-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:.4rem}
.cf-submit{display:inline-flex;align-items:center;justify-content:center;min-height:3.2rem;padding:.95rem 1.8rem;border:0;border-radius:999px;background:linear-gradient(100deg,#0062cc,var(--cf-blue2));color:#fff;font:inherit;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:transform .3s var(--cf-ease),opacity .3s var(--cf-ease)}
.cf-submit:hover{transform:translateY(-2px)}
.cf-submit:focus-visible{outline:2px solid var(--cf-blue2);outline-offset:4px}
.cf-submit[disabled]{opacity:.6;cursor:progress;transform:none}
.cf-status{color:rgba(233,244,252,.6);font-size:.88rem}
.cf-status.is-error{color:#ffb0b0}
.cf-pill{display:inline-flex;padding:.45rem .95rem;border:1px solid rgba(176,224,230,.22);border-radius:999px;background:rgba(255,255,255,.03);color:rgba(233,244,252,.78);font-size:.78rem;font-weight:600}
.cf-done{position:relative;display:grid;gap:1.2rem;justify-items:start;padding-block:2rem;outline:0}
.cf-done h3{font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:800;letter-spacing:-.035em;line-height:1.1;color:#fff}
.cf-done p{color:rgba(233,244,252,.8)}
.cf-done b{color:#fff}
.cf-form[hidden],.cf-done[hidden]{display:none}
.cf-done:not([hidden]){animation:cf-done .8s var(--cf-ease)}
@keyframes cf-done{from{opacity:0;transform:translateY(12px)}}

/* Centred form inside a page hero (Contact page) */
.cf-wrap{width:100%;max-width:840px;margin:clamp(2.25rem,4.5vw,3.25rem) auto 0}

/* Small secondary links that sit under a form (book a call, services, email) */
.cf-aside{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem;margin-top:1.5rem;color:rgba(233,244,252,.62);font-size:.9rem}
.cf-aside a{color:#fff;border-bottom:1px solid rgba(176,224,230,.4);transition:border-color .3s}
.cf-aside a:hover{border-color:#fff}

/* Bright blue call-to-action sections on the subpages: message on the left, form on the right */
.cta.cta--form{text-align:left}
.cta--form .shell{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.cta--form h2{margin-top:1.1rem;font-size:clamp(2.3rem,4.6vw,4.4rem)}
.cta--form .eyebrow{color:#fff}
.cta--form .eyebrow::before{background:#fff}
.cta--form .cta__copy>p:not(.eyebrow){max-width:42ch;margin:1.5rem 0 0;color:rgba(255,255,255,.9);font-size:clamp(1.02rem,1.3vw,1.15rem)}
.cta--form .cf-aside{justify-content:flex-start;margin-top:2rem;color:rgba(255,255,255,.82)}
.cta--form .cf-card{box-shadow:0 30px 60px -30px rgba(3,16,30,.55)}

@media(max-width:960px){
  .cta--form .shell{grid-template-columns:1fr}
}
@media(max-width:600px){
  .cf-card{--cf-r:18px}
  .cf-row{grid-template-columns:1fr}
  .cf-submit{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .cf-border__run,.cf-border__tail{display:none}
  .cf-border__base{stroke:rgba(79,195,255,.35)}
  .cf-done:not([hidden]){animation:none}
}
