:root{--preview-glow:#20badb;--preview-deep:#071a31}
body{background:#fff;overflow-x:hidden}
.site-header{transition:box-shadow .3s ease,background-color .3s ease}
.site-header.is-scrolled{background:#ffffffed;box-shadow:0 14px 38px #071f3724;backdrop-filter:blur(16px)}
.brand{position:relative;overflow:hidden;border-radius:14px;isolation:isolate;box-shadow:0 12px 34px #0b315012}
.brand img{transform-origin:center;will-change:transform,filter;animation:banner-reveal .9s cubic-bezier(.2,.8,.2,1) both,banner-breathe 7s ease-in-out 1s infinite}
.brand::after{content:"";position:absolute;z-index:2;top:-35%;bottom:-35%;left:-35%;width:22%;background:linear-gradient(90deg,transparent,#ffffffb8,transparent);transform:skewX(-18deg);animation:banner-shine 5.5s ease-in-out 1.2s infinite;pointer-events:none}
.brand:hover img{filter:saturate(1.08) drop-shadow(0 8px 18px #1769aa20)}
body[data-page="jobs"] .brand img{animation:banner-reveal .9s cubic-bezier(.2,.8,.2,1) both,banner-breathe 7s ease-in-out 1s infinite}
body[data-page="jobs"] .brand::after{animation:banner-shine 5.5s ease-in-out 1.2s infinite}
.nav nav>a{position:relative}
.nav nav>a:not(.cta)::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav nav>a:not(.cta):hover::after,.nav nav>a:not(.cta):focus-visible::after{transform:scaleX(1)}
.hero{position:relative;isolation:isolate;min-height:680px;display:grid;align-items:center;background:linear-gradient(135deg,#f1f8fc 0%,#fff 52%,#eaf8fb 100%)}
.hero::before{content:"";position:absolute;z-index:-2;inset:0;background:radial-gradient(circle 420px at var(--pointer-x,78%) var(--pointer-y,26%),#17a6c73b,transparent 72%);transition:background-position .25s ease}
.hero::after{content:"";position:absolute;z-index:-1;width:420px;height:420px;border:1px solid #17a6c738;border-radius:50%;right:-160px;top:70px;box-shadow:0 0 0 48px #17a6c711,0 0 0 98px #1769aa0a;animation:orbit-breathe 7s ease-in-out infinite}
.hero-grid{gap:clamp(35px,6vw,82px)}
.hero-grid>div:first-child{position:relative;padding:clamp(28px,4vw,48px);border:1px solid #fff;border-radius:28px;background:#ffffffba;box-shadow:0 28px 80px #0a35511a;backdrop-filter:blur(14px)}
.hero h1{background:linear-gradient(120deg,var(--navy) 5%,var(--blue) 60%,#0a8cae);background-clip:text;-webkit-background-clip:text;color:transparent}
.hero-art>img{transform:translateZ(0);animation:art-float 6s ease-in-out infinite}
.floating-card{animation:card-float 5s ease-in-out infinite;border-color:#9bd8e5a8}
.floating-card::before{content:"";width:8px;height:8px;border-radius:50%;background:#20b884;box-shadow:0 0 0 7px #20b8841c;position:absolute;right:14px;top:14px}
.icon-card{position:relative;overflow:hidden;transform-style:preserve-3d}
.icon-card::after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-115px;bottom:-115px;background:linear-gradient(135deg,#1769aa20,#17a6c735);transition:transform .35s ease}
.icon-card:hover::after{transform:scale(1.4)}
.icon-card .icon{transition:transform .3s ease,background .3s ease,color .3s ease}
.icon-card:hover .icon{transform:translateY(-3px) rotate(-4deg);background:var(--blue);color:#fff}
.pill-list span{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.pill-list span:hover{transform:translateY(-3px);border-color:#76bdd5;box-shadow:0 10px 22px #1769aa17}
.owner-mark{transition:transform .35s ease,box-shadow .35s ease}
.owner-mark:hover{transform:rotate(-3deg) scale(1.025);box-shadow:0 28px 70px #0b31503d}
.region-grid div{transition:transform .25s ease,background .25s ease,border-color .25s ease}
.region-grid div:hover{transform:translateY(-4px);background:#fff;border-color:#83bfd3}
.band{position:relative;overflow:hidden}
.band::after{content:"";position:absolute;width:300px;height:300px;border:70px solid #17a6c71f;border-radius:50%;right:-70px;top:-150px;pointer-events:none}
.page{position:relative;isolation:isolate;overflow:hidden}
.page::after{content:"";position:absolute;z-index:-1;width:420px;height:420px;border-radius:50%;right:-120px;top:-260px;background:#1ab2cf35;box-shadow:0 0 0 70px #1ab2cf12;animation:orbit-breathe 7s ease-in-out infinite}
.contact-form-section{position:relative;background:linear-gradient(145deg,#eef6fa 0%,#f8fbfd 48%,#e9f8fb 100%)}
.contact-form-section::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#1769aa08 1px,transparent 1px),linear-gradient(90deg,#1769aa08 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent)}
.form-layout{position:relative;z-index:1;gap:clamp(35px,6vw,80px)}
.form-layout>div:first-child{position:sticky;top:28px;padding:32px;border:1px solid #ffffffcc;border-radius:22px;background:#ffffffa6;box-shadow:0 22px 55px #0b315018;backdrop-filter:blur(14px)}
.enquiry-form{position:relative;border-color:#cfe2eb;box-shadow:0 30px 80px #0b315022;transition:box-shadow .3s ease,transform .3s ease}
.enquiry-form:focus-within{box-shadow:0 34px 90px #0b315032;transform:translateY(-2px)}
.enquiry-form label{transition:color .2s ease}
.enquiry-form label:focus-within{color:var(--blue)}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.enquiry-form input:hover,.enquiry-form select:hover,.enquiry-form textarea:hover{border-color:#7aacc2}
.enquiry-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:26px}
.enquiry-switcher button{border:1px solid #b9d3df;border-radius:10px;background:#fff;color:var(--navy);padding:10px 8px;font:700 .84rem/1.2 'DM Sans',Arial,sans-serif;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease}
.enquiry-switcher button:hover{transform:translateY(-2px);border-color:var(--blue)}
.enquiry-switcher button.is-active{background:linear-gradient(135deg,var(--blue),var(--cyan));border-color:transparent;color:#fff;box-shadow:0 9px 20px #1769aa2d}
.form-progress{grid-column:1/-1;height:5px;border-radius:99px;background:#dfebf0;overflow:hidden;margin:-5px 0 6px}
.form-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .3s ease}
.jobs{min-width:1180px}
.recruiter-heading{min-width:150px}
.recruiter-submit{display:inline-flex;align-items:center;justify-content:center;border:1px solid #86bfd3;border-radius:8px;background:#edf9fc;color:#106887;padding:8px 11px;font-weight:800;white-space:nowrap;transition:transform .2s ease,background .2s ease,color .2s ease}
.recruiter-submit:hover,.recruiter-submit:focus-visible{transform:translateY(-2px);background:var(--blue);color:#fff}
.recruiter-fields>label:first-of-type{margin-bottom:2px}
.employer-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px;border:1px solid #cbdde7;border-radius:14px;background:#f8fbfd}
.employer-fields[hidden]{display:none}
.employer-fields .wide{grid-column:1/-1}
.employer-fields label{display:grid;gap:7px;color:var(--navy);font-weight:800}
.employer-fields input,.employer-fields select,.employer-fields textarea{width:100%;border:1px solid #b9ccd8;border-radius:9px;background:#fff;padding:11px 12px;color:var(--ink);font:inherit}
.employer-fields small{color:var(--muted);font-weight:500}
.employer-conditional{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px;border:1px solid #dce6ed;border-radius:12px;background:#fff}
.employer-conditional[hidden]{display:none}
.employer-ir35-field,.employer-salary-fields{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.recruiter-guidance{margin:0;padding:12px 14px;border-left:4px solid var(--cyan);background:#fff;color:var(--muted);font-size:.9rem}
.recruiter-fields fieldset{border:0;padding:0;margin:20px 0 0;display:grid;gap:16px}
.recruiter-fields legend{font:800 1.1rem Manrope;color:var(--navy);margin-bottom:12px}
.recruiter-fields .margin-fields{display:block;margin-top:24px;padding:20px;border:1px solid #f0ca94;border-radius:12px;background:#fffaf1}
.recruiter-fields .margin-fields legend{float:left;width:100%;margin:0 0 16px;padding:0;text-align:left;line-height:1.35}
.recruiter-fields .margin-fields legend+*{clear:both}
.margin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.consent-field{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;font-weight:600!important;line-height:1.45}
.consent-field input[type=checkbox]{width:auto;flex:0 0 auto;margin:4px 0 0;accent-color:var(--blue)}
.candidate-fields{animation:panel-in .35s ease both}
.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
@keyframes art-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
@keyframes card-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes orbit-breathe{0%,100%{transform:scale(.96);opacity:.7}50%{transform:scale(1.05);opacity:1}}
@keyframes panel-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes banner-reveal{from{opacity:0;transform:translateY(-16px) scale(.985);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes banner-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
@keyframes banner-shine{0%,58%{left:-35%;opacity:0}66%{opacity:.75}82%,100%{left:118%;opacity:0}}
@media(max-width:900px){.hero{min-height:0}.form-layout>div:first-child{position:static}.enquiry-switcher{max-width:560px}.enquiry-form:focus-within{transform:none}}
@media(max-width:760px){
body[data-page="jobs"] .jobs-section .table-wrap{overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none}
body[data-page="jobs"] .jobs{display:block;width:100%;min-width:0}
body[data-page="jobs"] .jobs thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body[data-page="jobs"] .jobs tbody{display:grid;gap:18px;width:100%}
body[data-page="jobs"] .jobs tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title" "reference priority" "location location" "terms terms" "description description" "submission submission";gap:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 30px #0f314c16;overflow:hidden}
body[data-page="jobs"] .jobs tbody tr[hidden]{display:none}
body[data-page="jobs"] .jobs tbody tr:hover{background:#fff;transform:translateY(-2px);box-shadow:0 16px 34px #0f314c20}
body[data-page="jobs"] .jobs td{display:flex;min-width:0;padding:12px 16px;border:0;flex-direction:column;align-items:flex-start;gap:3px}
body[data-page="jobs"] .jobs td::before{content:attr(data-label);color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
body[data-page="jobs"] .jobs td:nth-child(1){grid-area:reference}
body[data-page="jobs"] .jobs td:nth-child(2){grid-area:description;padding-top:8px}
body[data-page="jobs"] .jobs td:nth-child(3){grid-area:priority;align-items:flex-end}
body[data-page="jobs"] .jobs td:nth-child(4){grid-area:title;display:block;padding:18px 16px 14px;background:linear-gradient(135deg,var(--navy),#134d76);color:#fff;font:800 1.16rem/1.35 Manrope,Arial,sans-serif}
body[data-page="jobs"] .jobs td:nth-child(4)::before{display:none}
body[data-page="jobs"] .jobs td:nth-child(5){grid-area:location;padding-top:8px}
body[data-page="jobs"] .jobs td:nth-child(6){grid-area:terms;padding-top:8px}
body[data-page="jobs"] .jobs td:nth-child(7){grid-area:submission;padding-top:8px;padding-bottom:18px}
body[data-page="jobs"] .jobs td:nth-child(2)::before,body[data-page="jobs"] .jobs td:nth-child(7)::before{margin-bottom:4px}
body[data-page="jobs"] .job-link,body[data-page="jobs"] .recruiter-submit{display:flex;width:100%;min-height:48px;justify-content:center;align-items:center;border-radius:10px;padding:11px 14px}
body[data-page="jobs"] .job-link{background:var(--blue);color:#fff;box-shadow:0 8px 18px #1769aa29}
body[data-page="jobs"] .recruiter-submit{background:#edf9fc}
body[data-page="jobs"] .updated{text-align:left}
}
@media(max-width:600px){.brand{border-radius:10px}.brand img{animation:banner-reveal .8s cubic-bezier(.2,.8,.2,1) both,banner-breathe 6s ease-in-out .9s infinite}.brand::after{animation-duration:4.8s}.hero-grid>div:first-child{padding:24px;border-radius:20px}.enquiry-switcher{grid-template-columns:1fr}.form-layout>div:first-child{padding:24px}.margin-grid,.employer-fields,.employer-conditional{grid-template-columns:1fr}.employer-fields{padding:16px}.page::after{right:-260px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-ready .reveal{opacity:1;transform:none}}
