@font-face {
  font-family:Manrope;
  src:url('assets/fonts/manrope.woff2') format('woff2');
  font-style:normal;
  font-weight:200 800;
  font-display:swap
}
@font-face {
  font-family:'Outfit';
  src:url('assets/fonts/outfit-semibold.woff2') format('woff2');
  font-style:normal;
  font-weight:600;
  font-display:swap
}
:root {
  --green:#143e2e;
  --deep:#09271d;
  --ink:#17382b;
  --lime:#8ac326;
  --yellow:#ffef38;
  --paper:#f8f9f5;
  --muted:#607266;
  --line:rgba(20,62,46,.2);
  --content-max:1440px;
  --page-padding:clamp(22px,5vw,88px);
  /* Keep section backgrounds full width while centering their content. */
  --gutter:max(var(--page-padding),calc((100% - var(--content-max))/2));
  --section:clamp(76px,10vw,156px);
  --ease:cubic-bezier(.22,1,.36,1);
  color-scheme:light
}
.diagonal-arrow { display:inline-block; width:1em; height:1em; flex:none; vertical-align:-.12em; }
.menu-top:focus { outline:none; }
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 16px/1.65 Manrope,Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
body.menu-open {
  overflow:hidden
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.055em
}
p+p {
  margin-top:1.4em
}
h1 em,h2 em,.footer-call em {
  font-family:'Outfit',Arial,sans-serif;
  font-style:normal;
  font-weight:600;
  letter-spacing:-.025em;
  text-transform:uppercase
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer;
  color:inherit;
  border:0;
  background:none
}
img {
  display:block;
  max-width:100%;
  object-fit:cover
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--lime);
  outline-offset:6px
}
input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid var(--green);
  outline-offset:3px
}
[hidden] {
  display:none!important
}
::selection {
  background:var(--yellow);
  color:var(--deep)
}
.section {
  padding:var(--section) var(--gutter)
}
.eyebrow {
  font-size:12px;
  line-height:1.5;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:600
}
.small-note {
  font-size:14px;
  line-height:1.5
}
.section-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:54px
}
.section-title {
  font-size:calc(clamp(43px,5.4vw,82px) * var(--section-heading-scale, 1))
}
.statement {
  font-size:calc(clamp(45px,7.3vw,112px) * var(--section-heading-scale, 1))
}
.lead {
  font-size:clamp(26px,3vw,43px);
  line-height:1.25;
  letter-spacing:-.045em
}
.underlined {
  font-size:14px;
  border-bottom:1px solid currentColor;
  padding-bottom:5px
}
.underlined:hover {
  color:#497821
}
.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  transform:translateY(-180%);
  z-index:300;
  background:var(--yellow);
  padding:12px
}
.skip-link:focus {
  transform:none
}
.header {
  position:absolute;
  inset:0 0 auto;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:28px var(--gutter);
  color:#fff;
  transition:background .3s,padding .3s;
  min-height:104px
}
.brand {
  display:inline-block;
  flex-shrink:0
}
.brand img {
  width:clamp(156px,16vw,225px);
  height:auto;
  object-fit:contain
}
.desktop-nav {
  display:flex;
  gap:clamp(22px,3vw,52px);
  align-items:center
}
.desktop-nav>a {
  font-size:14px;
  position:relative;
  padding:8px 0
}
.desktop-nav>a:after {
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:var(--yellow);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s var(--ease)
}
.desktop-nav>a:hover:after,.desktop-nav>a[aria-current=page]:after {
  transform:scaleX(1)
}
.header.scrolled {
  position:fixed;
  padding-top:16px;
  padding-bottom:16px;
  min-height:82px;
  background:rgba(9,39,29,.97);
  box-shadow:0 2px 20px #001a1010;
  animation:header-in .3s
}
.scroll-progress {
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:var(--yellow);
  transform:scaleX(var(--progress,0));
  transform-origin:left
}
.menu-toggle {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:14px;
  padding:10px 0
}
.menu-icon {
  width:25px;
  height:14px;
  border-top:1px solid currentColor;
  border-bottom:1px solid currentColor
}
.desktop-nav+.menu-toggle {
  display:none
}
.menu-dialog {
  position:fixed;
  inset:0;
  width:100%;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:30px var(--gutter);
  border:0;
  background:var(--deep);
  color:var(--paper);
  z-index:100;
  overflow-y:auto
}
.menu-dialog::backdrop {
  background:var(--deep)
}
.menu-dialog[open] {
  animation:menu-in .4s var(--ease)
}
.menu-top,.menu-bottom {
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center
}
.menu-close {
  font-size:16px;
  padding:12px 0 12px 16px;
  display:flex;
  align-items:center;
  gap:20px
}
.menu-close span {
  font-size:32px;
  font-weight:200
}
.menu-layout {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:min(10vw,144px);
  padding:60px 0
}
.menu-main {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:15px
}
.menu-main>a {
  font-size:clamp(34px,5.5vw,82px);
  letter-spacing:-.05em;
  line-height:1.2
}
.menu-main>a:hover {
  color:var(--yellow)
}
.menu-services {
  align-self:center
}
.menu-services .eyebrow {
  color:var(--lime);
  margin-bottom:18px
}
.menu-services a {
  display:flex;
  justify-content:space-between;
  padding:12px 0;
  border-bottom:1px solid #ffffff29;
  font-size:15px
}
.menu-bottom {
  border-top:1px solid #ffffff30;
  padding:25px 0;
  font-size:14px;
  color:#c1d1c6
}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  border:1px solid #123d2d40;
  background:#123d2d0d;
  color:var(--green);
  transition:background .3s,color .3s,border-color .3s;
  line-height:1.4
}
.text-button {
  padding:14px 0;
  border-radius:0;
  border-bottom:1px solid currentColor;
  font-weight:500;
  min-width:175px;
  margin-top:28px;
  align-self:flex-start
}
.text-button:hover {
  color:#608915
}
.hero {
  position:relative;
  min-height:760px;
  height:100svh;
  max-height:1250px;
  overflow:hidden;
  background:var(--deep);
  color:var(--paper)
}
.hero-image,.hero-overlay {
  position:absolute;
  inset:0
}
.hero-image {
  will-change:transform;
  transform:translateY(var(--parallax,0px)) scale(1.07)
}
.hero-image picture {
  display:block;
  width:100%;
  height:100%
}
.hero-image img {
  width:100%;
  height:100%;
  object-position:64% center
}
.hero-overlay {
  background:linear-gradient(180deg,rgba(3,34,25,.6),rgba(7,46,31,.32) 35%,rgba(3,32,23,.8))
}
.hero-content {
  position:relative;
  padding:150px var(--gutter) 48px;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  z-index:1
}
.hero-intro {
  margin-bottom:36px
}
.hero-intro>.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px
}
.hero-intro>p:last-child {
  font-size:20px;
  line-height:1.45;
  letter-spacing:-.025em
}
.dot {
  display:inline-block;
  width:6px;
  height:6px;
  background:var(--yellow);
  border-radius:50%
}
.hero h1 {
  font-size:clamp(75px,11.5vw,182px);
  line-height:.94;
  letter-spacing:-.075em
}
.hero h1 span,.hero h1 em {
  display:block
}
.hero h1 em {
  animation-delay:.12s;
  margin-left:8vw;
  line-height:1.13
}
.hero-bottom {
  display:flex;
  gap:32px;
  justify-content:space-between;
  align-items:end;
  margin-top:32px;
  border-top:1px solid #ffffff50;
  padding-top:24px
}
.hero-bottom>p {
  font-size:14px;
  line-height:1.6
}
.hero-actions {
  display:flex;
  gap:12px
}
.explore-link {
  font-size:12px;
  display:flex;
  gap:15px;
  align-items:center;
  padding-bottom:15px
}
.explore-link span {
  font-size:22px
}
.hero-coordinate {
  position:absolute;
  right:var(--gutter);
  top:42%;
  font-size:12px;
  letter-spacing:.08em;
  writing-mode:vertical-rl;
  opacity:.65
}
.intro .statement {
  max-width:1200px
}
.intro-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:min(10vw,144px);
  align-items:center;
  margin-top:80px
}
.editorial-photo {
  width:100%;
  max-width:540px
}
.editorial-photo>img {
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-position:50% 60%
}
.editorial-photo figcaption {
  font-size:12px;
  color:var(--muted);
  margin-top:12px
}
.intro-copy {
  max-width:490px
}
.intro-copy>.lead {
  margin-bottom:28px
}
.intro-copy>p:not(.lead) {
  color:var(--muted)
}
.heritage {
  border-top:1px solid var(--line);
  display:flex;
  gap:30px;
  align-items:center;
  margin-top:70px;
  padding-top:25px
}
.heritage>span {
  font-size:65px;
  line-height:1;
  letter-spacing:-.075em
}
.heritage>p {
  font-size:13px;
  color:var(--muted)
}
.expertise {
  background:var(--green);
  color:var(--paper)
}
.expertise-layout {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:min(9vw,129.6px);
  align-items:start
}
.expertise-heading {
  position:sticky;
  top:125px
}
.expertise-heading .eyebrow {
  color:#b9ceae;
  margin-bottom:42px
}
.expertise-heading .section-title em {
  color:var(--yellow)
}
.expertise-heading>p:not(.eyebrow) {
  color:#c8d6ca;
  max-width:320px;
  margin-top:30px
}
.expertise-heading .text-button:hover {
  color:var(--yellow)
}
.service-row {
  display:grid;
  grid-template-columns:28px 1fr 40px;
  gap:20px;
  align-items:start;
  border-top:1px solid #ffffff35;
  padding:36px 0;
  transition:padding .35s var(--ease),color .3s
}
.service-row:last-child {
  border-bottom:1px solid #ffffff35
}
.service-row h3 {
  font-size:calc(clamp(26px,2.65vw,40px) * var(--section-heading-scale, 1));
  letter-spacing:-.045em;
  line-height:1.18
}
.service-row p {
  font-size:14px;
  line-height:1.65;
  color:#bacdbc;
  max-width:390px;
  margin-top:16px
}
.service-arrow {
  border:1px solid #ffffff40;
  border-radius:50%;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  transition:background .3s,color .3s,transform .3s
}
.service-row:hover {
  color:var(--yellow);
  padding-left:12px
}
.service-row:hover .service-arrow {
  background:var(--yellow);
  color:var(--deep);
  transform:rotate(45deg)
}
.jobs-heading {
  display:flex;
  justify-content:space-between;
  gap:35px;
  align-items:end;
  margin-bottom:60px
}
.jobs-heading>p {
  font-size:14px;
  color:var(--muted)
}
.job-list {
  border-top:1px solid var(--line)
}
.job-card {
  display:grid;
  grid-template-columns:42px 1fr minmax(160px,22%) 44px;
  align-items:center;
  gap:25px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
  transition:background .3s,padding .3s
}
.job-card:hover {
  background:#eaf0df;
  padding-left:15px;
  padding-right:15px
}
.job-card h3 {
  font-size:calc(clamp(23px,2.2vw,33px) * var(--section-heading-scale, 1));
  line-height:1.2;
  letter-spacing:-.04em
}
.job-card .job-location {
  font-size:13px;
  color:var(--muted);
  margin-top:9px
}
.job-card .job-meta {
  font-size:13px;
  color:var(--muted)
}
.job-card .job-meta strong {
  display:block;
  color:var(--ink);
  font-weight:500;
  margin-top:5px
}
.job-card .service-arrow {
  border-color:var(--line)
}
.job-card:hover .service-arrow {
  background:var(--green);
  color:var(--yellow)
}
.register-line {
  margin-top:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px
}
.register-line>p {
  font-size:14px;
  color:var(--muted)
}
.register-line .button {
  margin-top:0
}
.feed-status,.empty-state {
  padding:35px 0;
  color:var(--muted)
}
.empty-state h3 {
  font-size:calc(24px * var(--section-heading-scale, 1));
  margin-bottom:12px
}
.retry-jobs {
  margin-top:18px;
}
.footer {
  background:var(--deep);
  color:var(--paper);
  padding:70px var(--gutter) 25px
}
.footer-top>.eyebrow {
  color:#bad1be
}
.footer-call {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  font-size:clamp(78px,13vw,200px);
  line-height:1.4;
  letter-spacing:-.07em;
  padding:20px 0 45px
}
.footer-call>span:first-child {
  transition:color .3s
}
.footer-call:hover>span:first-child {
  color:var(--yellow)
}
.round-arrow {
  display:grid;
  place-items:center;
  flex-shrink:0;
  background:var(--yellow);
  color:var(--deep);
  width:clamp(76px,12vw,175px);
  aspect-ratio:1;
  border-radius:50%;
  font-family:Arial,sans-serif;
  font-size:clamp(40px,6vw,95px);
  transition:transform .5s var(--ease)
}
.footer-call:hover .round-arrow {
  transform:rotate(45deg)
}
.footer-grid {
  display:grid;
  grid-template-columns:1.2fr 1.2fr 1.2fr .7fr;
  gap:35px;
  border-top:1px solid #ffffff25;
  padding:55px 0
}
.footer-grid>div>p:not(.eyebrow) {
  font-size:14px;
  color:#c2d1c4;
  margin-top:20px
}
.footer-grid .eyebrow {
  font-size:12px;
  color:#9caf9f;
  margin-bottom:20px
}
.footer-grid a:not(.brand) {
  display:block;
  font-size:14px;
  line-height:2;
  overflow-wrap:anywhere
}
.footer-grid a:hover {
  color:var(--yellow)
}
.footer-bottom {
  display:flex;
  gap:30px;
  align-items:center;
  border-top:1px solid #ffffff25;
  padding-top:25px;
  color:#a9bfaf;
  font-size:12px
}
.footer-bottom>span:first-child {
  margin-right:auto
}
.footer-bottom a:hover {
  color:var(--yellow)
}
.page-hero {
  padding:170px var(--gutter) 75px;
  background:var(--green);
  color:var(--paper)
}
.page-hero>.eyebrow {
  color:#b9cfb7;
  margin-bottom:35px
}
.page-hero h1 {
  font-size:clamp(62px,8.3vw,124px);
  line-height:1.02;
  max-width:1240px
}
.page-hero h1 em {
  color:var(--yellow)
}
.page-hero-bottom {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:40px;
  border-top:1px solid #ffffff30;
  padding-top:28px;
  margin-top:50px
}
.page-hero-bottom>p {
  max-width:510px;
  color:#d3dfd0;
  line-height:1.6
}
.breadcrumbs {
  display:flex;
  gap:12px;
  font-size:12px;
  margin-bottom:40px;
  color:#c0d4bd;
  flex-wrap:wrap
}
.breadcrumbs a:hover {
  color:var(--yellow)
}
.service-hero {
  padding-top:145px
}
.service-hero>.eyebrow {
  margin-bottom:25px
}
.service-intro {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:min(10vw,144px);
  align-items:center
}
.service-intro .eyebrow {
  margin-bottom:30px
}
.service-intro .section-title {
  font-size:calc(clamp(40px,4.7vw,70px) * var(--section-heading-scale, 1))
}
.prose {
  margin-top:35px;
  color:var(--muted)
}
.prose strong {
  font-weight:600;
  color:var(--green)
}
.service-inclusions {
  border-top:1px solid var(--line)
}
.inclusion-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:60px 55px
}
.inclusion-grid h3 {
  font-size:calc(28px * var(--section-heading-scale, 1));
  letter-spacing:-.04em;
  line-height:1.15;
  margin:22px 0 18px
}
.inclusion-grid p {
  font-size:16px;
  color:var(--muted)
}
.process {
  background:var(--green);
  color:var(--paper)
}
.process>.eyebrow {
  margin-bottom:32px;
  color:#b6caae
}
.process .section-title em {
  color:var(--yellow)
}
.process-grid {
  margin-top:60px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px
}
.process-grid article {
  border-top:1px solid #ffffff45;
  padding-top:22px
}
.process-grid article>span {
  font-size:13px;
  color:var(--yellow)
}
.process-grid h3 {
  font-size:calc(28px * var(--section-heading-scale, 1));
  line-height:1.2;
  margin:28px 0 18px
}
.process-grid p {
  font-size:16px;
  color:#c0d1c3
}
.faq {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:min(9vw,129.6px)
}
.faq .eyebrow {
  margin-bottom:30px
}
.faq .section-title {
  font-size:calc(clamp(40px,4.8vw,70px) * var(--section-heading-scale, 1))
}
.sector-list {
  list-style:none;
  padding:0;
  margin-top:35px;
  font-size:14px;
  color:var(--muted)
}
.sector-list li {
  padding:8px 0
}
.sector-list li:before {
  content:'↗';
  margin-right:12px;
  color:#668e1d
}
details {
  border-top:1px solid var(--line)
}
details:last-child {
  border-bottom:1px solid var(--line)
}
summary {
  list-style:none;
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:25px;
  padding:26px 0;
  cursor:pointer;
  font-size:17px;
  line-height:1.5
}
summary::-webkit-details-marker {
  display:none
}
summary span {
  font-size:24px;
  line-height:1;
  transition:transform .3s
}
details[open] summary span {
  transform:rotate(45deg)
}
details>p {
  color:var(--muted);
  padding:0 35px 30px 0;
  font-size:16px
}
details[open]>p {
  animation:rise-in .35s var(--ease)
}
.related {
  padding-top:0
}
.related>.eyebrow {
  margin-bottom:28px
}
.related>a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:clamp(26px,4vw,50px);
  letter-spacing:-.04em;
  border-top:1px solid var(--line);
  padding:24px 0
}
.related>a:hover {
  color:#598720
}
.team-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:70px 42px
}
.person:nth-child(3n+2) {
  transform:translateY(60px)
}
.person-photo {
  background:#e3eadd;
  overflow:hidden;
  position:relative
}
.person-photo>img {
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center top;
  transition:transform 1s var(--ease),filter .6s;
  filter:saturate(.65)
}
.person:hover img {
  transform:scale(1.04);
  filter:saturate(1)
}
.person h2 {
  font-size:calc(26px * var(--section-heading-scale, 1));
  letter-spacing:-.045em;
  margin-top:22px;
  line-height:1.2
}
.person>p {
  font-size:14px;
  color:var(--muted);
  margin-top:8px
}
.team-belief {
  padding-top:100px;
  border-top:1px solid var(--line);
  margin-top:50px
}
.team-belief>.eyebrow {
  margin-bottom:35px
}
.team-belief>p:last-child {
  max-width:520px;
  margin:40px 0 0 auto;
  color:var(--muted)
}
.job-filters {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:22px
}
.job-filters label {
  display:block;
  font-size:14px;
  color:var(--muted);
  margin-bottom:10px
}
.job-filters input,.job-filters select {
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  width:100%;
  color:var(--ink);
  padding:14px 0;
  font-size:16px;
  min-height:55px
}
.filter-reset {
  font-size:14px;
  justify-self:start;
  padding:8px 0;
  text-decoration:underline;
  grid-column:1/-1
}
.job-count {
  margin:28px 0;
  font-size:14px;
  color:var(--muted)
}
.salary-note {
  font-size:13px;
  color:var(--muted);
  margin-top:20px;
  max-width:680px
}
.jobs-section {
  padding-top:65px
}
.board-note {
  font-size:13px;
  color:var(--muted);
  margin:25px 0
}
.back-to-jobs {
  display:inline-block
}
#application-board {
  width:100%;
  min-height:1000px;
  border:0;
  display:block;
  background:white
}
.contact-hero {
  padding-bottom:65px
}
.contact-section {
  padding-top:70px;
  display:grid;
  grid-template-columns:1.35fr 1fr;
  gap:min(10vw,144px)
}
.form-tabs {
  display:flex;
  gap:30px;
  border-bottom:1px solid var(--line);
  margin-bottom:42px
}
.form-tabs button {
  font-size:16px;
  text-align:left;
  padding:10px 0 18px;
  border-bottom:3px solid transparent
}
.form-tabs button[aria-selected=true] {
  border-color:var(--green);
  font-weight:600
}
.contact-forms h2 {
  font-size:calc(30px * var(--section-heading-scale, 1));
  letter-spacing:-.04em;
  margin-bottom:15px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px 25px;
  margin:35px 0
}
.field label {
  display:block;
  font-size:14px;
  margin-bottom:8px;
  color:var(--muted)
}
.field label>span {
  color:var(--ink)
}
.field input,.field select,.field textarea {
  width:100%;
  border:0;
  border-radius:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:12px 0;
  color:var(--ink);
  min-height:48px;
  font-size:16px
}
.field input:focus,.field textarea:focus {
  border-color:var(--green)
}
.field textarea {
  resize:vertical;
  line-height:1.5
}
.full {
  grid-column:1/-1
}
.form-note {
  font-size:13px;
  color:var(--muted);
  line-height:1.7;
  max-width:470px
}
.contact-forms form>.form-note {
  margin-top:18px
}
.form-status {
  font-size:14px;
  margin-top:15px
}
.copy-enquiry {
  margin-top:10px;
}
.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
  margin:0;
}
.field-hint {
  font-weight:400;
  color:var(--muted);
}
.field-message {
  display:block;
  margin-top:8px;
  font-size:13px;
  line-height:1.5;
  color:var(--error, #b3261e);
}
.field-invalid label {
  color:var(--error, #b3261e);
}
.field-invalid input,.field-invalid select,.field-invalid textarea {
  border-bottom-color:var(--error, #b3261e);
  box-shadow:0 1px 0 var(--error, #b3261e);
}
.consent-field {
  margin-top:8px;
}
.field label.checkbox-label {
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:14px;
  line-height:1.6;
  color:var(--muted);
  cursor:pointer;
}
.field label.checkbox-label input[type="checkbox"] {
  flex:0 0 auto;
  width:20px;
  height:20px;
  min-height:0;
  margin:2px 0 0;
  padding:0;
  border:1.5px solid var(--line);
  border-radius:4px;
  accent-color:var(--green);
  box-shadow:none;
  cursor:pointer;
}
.field label.checkbox-label a {
  text-decoration:underline;
  color:var(--ink);
}
.field-invalid label.checkbox-label input[type="checkbox"] {
  outline:2px solid var(--error, #b3261e);
  outline-offset:2px;
}
.policy-notice {
  padding-bottom:24px;
  margin-bottom:40px;
  border-bottom:1px solid var(--line);
}
.policy-notice .eyebrow {
  margin-bottom:12px;
}
.policy-notice h2 {
  margin-top:0;
}
.field input[type="file"] {
  padding:10px 12px;
  cursor:pointer;
}
.field input[type="file"]::file-selector-button {
  font:inherit;
  font-size:14px;
  margin-right:12px;
  padding:6px 12px;
  border:1px solid currentColor;
  border-radius:6px;
  background:transparent;
  color:inherit;
  cursor:pointer;
}
.contact-details>.eyebrow {
  margin-bottom:25px
}
.contact-number {
  display:block;
  font-size:clamp(23px,2.5vw,35px);
  letter-spacing:-.04em;
  line-height:1.4
}
.contact-number:hover,.contact-email:hover {
  color:#668e1d
}
.contact-email {
  display:block;
  font-size:15px;
  overflow-wrap:anywhere;
  margin-top:14px
}
.contact-address {
  border-top:1px solid var(--line);
  padding-top:35px;
  margin-top:35px
}
.contact-address p:not(.eyebrow) {
  font-size:14px;
  margin:18px 0
}
.reveal {
  transition:opacity .9s var(--ease),translate .9s var(--ease)
}
.reveal.pending {
  opacity:0;
  translate:0 28px
}
.reveal.visible {
  opacity:1;
  translate:0 0
}
.motion-paused .reveal {
  opacity:1!important;
  translate:none!important
}
.motion-paused * {
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important
}
.motion-paused [data-parallax] {
  transform:none!important
}
@keyframes rise-in {
  from {
    opacity:0;
    translate:0 25px
  }
  to {
    opacity:1;
    translate:0 0
  }
}
@keyframes header-in {
  from {
    translate:0 -100%
  }
  to {
    translate:0 0
  }
}
@keyframes menu-in {
  from {
    opacity:0;
    translate:0 -20px
  }
  to {
    opacity:1;
    translate:0 0
  }
}
@media(max-width:1100px) {
  .desktop-nav {
    gap:22px
  }
  .hero {
    min-height:740px
  }
  .hero h1 {
    font-size:12.4vw
  }
  .expertise-layout {
    gap:5vw;
    grid-template-columns:1fr 1.2fr
  }
  .service-row {
    gap:13px;
    grid-template-columns:22px 1fr 32px
  }
  .service-arrow {
    width:32px;
    height:32px
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:35px 55px
  }
  .contact-section {
    gap:5vw
  }
  .hero-coordinate {
    display:none
  }
  .team-grid {
    gap:65px 24px
  }
  .inclusion-grid {
    gap:45px 30px
  }
}
@media(max-width:800px) {
  .desktop-nav {
    display:none
  }
  .desktop-nav+.menu-toggle {
    display:flex
  }
  .header {
    padding-top:22px;
    padding-bottom:22px;
    min-height:88px
  }
  .hero {
    height:100svh;
    min-height:760px
  }
  .hero-content {
    padding-top:135px;
    padding-bottom:30px
  }
  .hero-intro {
    margin-bottom:42px
  }
  .hero h1 {
    font-size:clamp(76px,13vw,104px)
  }
  .hero h1 em {
    margin-left:0
  }
  .hero-bottom {
    flex-wrap:wrap;
    align-items:center;
    gap:22px
  }
  .hero-actions {
    order:-1;
    width:100%
  }
  .hero-actions .button {
    min-width:180px
  }
  .explore-link {
    margin-left:auto;
    padding-bottom:0
  }
  .intro-grid {
    gap:40px;
    margin-top:50px
  }
  .heritage {
    flex-direction:column;
    align-items:start;
    gap:15px;
    margin-top:35px
  }
  .heritage>span {
    font-size:55px
  }
  .expertise-layout {
    grid-template-columns:1fr;
    gap:45px
  }
  .expertise-heading {
    position:static
  }
  .expertise-heading .section-title {
    font-size:calc(clamp(48px,7vw,65px) * var(--section-heading-scale, 1))
  }
  .expertise-heading>p:not(.eyebrow) {
    max-width:450px
  }
  .expertise-heading .eyebrow {
    margin-bottom:30px
  }
  .service-row {
    grid-template-columns:30px 1fr 40px;
    padding:30px 0
  }
  .service-row h3 {
    font-size:calc(30px * var(--section-heading-scale, 1))
  }
  .service-arrow {
    width:40px;
    height:40px
  }
  .service-row p {
    max-width:100%
  }
  .jobs-heading {
    display:block
  }
  .jobs-heading>p {
    margin-top:25px
  }
  .job-card {
    grid-template-columns:22px 1fr 36px;
    gap:15px
  }
  .job-meta {
    grid-column:2;
    grid-row:2
  }
  .job-card>.service-arrow {
    grid-column:3;
    grid-row:1/3
  }
  .job-card h3 {
    font-size:calc(26px * var(--section-heading-scale, 1))
  }
  .register-line {
    align-items:start
  }
  .page-hero h1 {
    font-size:clamp(55px,8vw,80px)
  }
  .page-hero {
    padding-top:145px;
    padding-bottom:55px
  }
  .page-hero-bottom {
    gap:25px
  }
  .page-hero-bottom>p {
    font-size:16px
  }
  .service-intro {
    gap:45px;
    grid-template-columns:1fr 1fr;
    align-items:start
  }
  .inclusion-grid {
    grid-template-columns:1fr 1fr
  }
  .process-grid {
    grid-template-columns:1fr 1fr;
    gap:40px
  }
  .faq {
    grid-template-columns:1fr;
    gap:40px
  }
  .sector-list {
    columns:2
  }
  .team-grid {
    grid-template-columns:1fr 1fr
  }
  .person:nth-child(3n+2) {
    transform:none
  }
  .person:nth-child(even) {
    transform:translateY(45px)
  }
  .team-belief {
    margin-top:25px
  }
  .job-filters {
    grid-template-columns:1fr 1fr
  }
  .search-field {
    grid-column:1/-1
  }
  .contact-section {
    grid-template-columns:1fr;
    gap:75px
  }
  .contact-details {
    max-width:640px
  }
  .contact-number {
    font-size:32px
  }
  .menu-layout {
    gap:40px;
    grid-template-columns:1fr 1fr
  }
  .menu-main>a {
    font-size:44px
  }
}
@media(max-width:560px) {
  html {
    scroll-padding-top:90px
  }
  .section-heading {
    margin-bottom:35px
  }
  .hero {
    height:auto;
    min-height:790px;
    height:100svh;
    max-height:1050px
  }
  .hero-content {
    padding-top:135px;
    justify-content:flex-end
  }
  .hero-intro {
    margin-bottom:auto
  }
  .hero-intro>p:last-child {
    font-size:18px
  }
  .hero h1 {
    font-size:clamp(60px,15.5vw,87px);
    line-height:.98;
    margin-top:55px
  }
  .hero h1 em {
    line-height:1.15;
    font-size:.93em
  }
  .hero-bottom {
    margin-top:28px;
    padding-top:20px
  }
  .hero-actions {
    gap:10px
  }
  .hero-actions .button {
    flex:1;
    min-width:0;
    padding:14px 17px;
    gap:12px;
    font-size:14px
  }
  .hero-bottom>p {
    font-size:13px
  }
  .hero-image img {
    object-position:60% center
  }
  .hero-overlay {
    background:linear-gradient(180deg,#082b2066,#082d2155 30%,#062519dc)
  }
  .intro-grid {
    grid-template-columns:1fr;
    gap:45px
  }
  .editorial-photo {
    max-width:100%;
    width:84%
  }
  .editorial-photo>img {
    aspect-ratio:4/5
  }
  .intro-copy {
    padding-left:12%;
    max-width:100%
  }
  .intro-copy>.lead {
    font-size:29px
  }
  .heritage {
    flex-direction:row;
    align-items:center;
    gap:25px;
    margin-top:40px
  }
  .heritage>span {
    font-size:52px
  }
  .heritage>p {
    font-size:12px
  }
  .statement {
    font-size:calc(clamp(39px,10vw,58px) * var(--section-heading-scale, 1))
  }
  .section-title {
    font-size:calc(46px * var(--section-heading-scale, 1))
  }
  .service-row {
    grid-template-columns:20px 1fr 34px;
    gap:12px
  }
  .service-row h3 {
    font-size:calc(27px * var(--section-heading-scale, 1))
  }
  .service-row p {
    font-size:14px;
    margin-top:12px
  }
  .service-row .service-arrow {
    width:34px;
    height:34px
  }
  .jobs-heading {
    margin-bottom:35px
  }
  .jobs-heading>p {
    font-size:14px
  }
  .job-card {
    padding:26px 0;
    gap:9px 13px
  }
  .job-card h3 {
    font-size:calc(23px * var(--section-heading-scale, 1))
  }
  .job-card .job-location,.job-card .job-meta {
    font-size:13px
  }
  .job-card .job-meta strong {
    display:inline;
    margin-left:8px
  }
  .job-card .service-arrow {
    height:33px;
    width:33px
  }
  .register-line {
    flex-direction:column;
    gap:8px
  }
  .footer {
    padding-top:55px
  }
  .footer-call {
    font-size:clamp(67px,17vw,94px);
    gap:12px;
    padding:20px 0 40px
  }
  .round-arrow {
    width:64px;
    font-size:38px
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:35px 18px;
    padding:35px 0
  }
  .footer-grid .brand img {
    width:165px
  }
  .footer-grid>div:first-child {
    grid-column:1/-1
  }
  .footer-grid>div>p:not(.eyebrow) {
    font-size:13px;
    margin-top:12px
  }
  .footer-grid a:not(.brand) {
    font-size:13px;
    overflow-wrap:anywhere
  }
  .footer-grid .eyebrow {
    margin-bottom:12px;
    font-size:12px
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:12px 20px;
    font-size:12px;
    justify-content:space-between
  }
  .footer-bottom>span:first-child {
    width:100%;
    margin:0
  }
  .page-hero {
    padding-top:135px
  }
  .page-hero h1 {
    font-size:clamp(44px,11.3vw,62px);
    line-height:1.07
  }
  .page-hero>.eyebrow {
    font-size:12px;
    margin-bottom:25px
  }
  .page-hero-bottom {
    flex-direction:column;
    align-items:start;
    margin-top:35px;
    gap:25px
  }
  .breadcrumbs {
    font-size:12px;
    gap:10px;
    margin-bottom:30px
  }
  .service-intro {
    grid-template-columns:1fr;
    gap:40px
  }
  .service-intro .section-title {
    font-size:calc(42px * var(--section-heading-scale, 1))
  }
  .inclusion-grid {
    gap:38px 25px
  }
  .inclusion-grid h3 {
    font-size:calc(23px * var(--section-heading-scale, 1));
    margin-top:15px
  }
  .process-grid {
    gap:35px 25px
  }
  .process-grid h3 {
    font-size:calc(24px * var(--section-heading-scale, 1));
    margin:20px 0 15px
  }
  .sector-list {
    columns:1;
    font-size:14px
  }
  .faq .section-title {
    font-size:calc(44px * var(--section-heading-scale, 1))
  }
  summary {
    font-size:16px
  }
  .team-grid {
    gap:45px 18px
  }
  .person h2 {
    font-size:calc(20px * var(--section-heading-scale, 1));
    margin-top:15px
  }
  .person>p {
    font-size:13px;
    line-height:1.5
  }
  .team-belief {
    padding-top:60px
  }
  .job-filters {
    gap:18px
  }
  .job-filters label {
    font-size:13px
  }
  .job-filters select {
    font-size:14px
  }
  .job-filters .search-field input {
    font-size:16px
  }
  .form-tabs {
    gap:25px
  }
  .form-tabs button {
    font-size:14px
  }
  .contact-forms h2 {
    font-size:calc(27px * var(--section-heading-scale, 1))
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .contact-number {
    font-size:28px
  }
  .contact-email {
    font-size:14px
  }
  .menu-dialog {
    padding-top:22px
  }
  .menu-layout {
    grid-template-columns:1fr;
    gap:35px;
    padding:28px 0
  }
  .menu-main {
    gap:8px
  }
  .menu-main>a {
    font-size:38px
  }
  .menu-services a {
    font-size:14px;
    padding:10px 0
  }
  .menu-services .eyebrow {
    margin-bottom:10px
  }
  .menu-bottom {
    align-items:start;
    flex-direction:column;
    font-size:13px;
    gap:12px
  }
  .menu-close {
    font-size:14px;
    gap:15px
  }
  .contact-section {
    padding-top:45px
  }
  .related>a {
    font-size:25px;
    gap:15px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
  .reveal.pending {
    opacity:1;
    translate:none
  }
  [data-parallax] {
    transform:none!important
  }
}
[data-job-detail] {
  scroll-margin-top:115px
}
.job-primary-actions {
  margin:20px 0 28px
}
/* Brand motion: the logo chevron is the recurring directional signature. */
.preloader {
  display: none;
}
.has-loader .preloader {
  display: grid;
  place-items: center;
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--deep);
  color: var(--paper);
  clip-path: inset(0);
  transition: clip-path .95s cubic-bezier(.76,0,.24,1), visibility 0s .95s;
}
.is-loading {
  overflow: hidden;
}
.is-ready .preloader {
  clip-path: inset(0 0 100%);
  pointer-events: none;
  visibility: hidden;
}
.preloader-center {
  width: min(70vw, 490px);
  text-align: center;
}
.preloader-center svg {
  width: 100%;
  height: auto;
  overflow: visible;
}
.preloader-center p {
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #bbcdbe;
  margin-top: 24px;
}
.preloader-location {
  position: absolute;
  bottom: 35px;
  font-size: 12px;
  letter-spacing: .06em;
}
.preloader-location {
  left: var(--gutter);
  text-transform: uppercase;
  color: #bbcdbe;
}
.brand-chevron {
  display: inline-block;
  width: 17px;
  height: 23px;
  flex: 0 0 auto;
  background: var(--lime);
  clip-path: polygon(0 0,100% 39%,100% 61%,0 100%,0 76%,67% 50%,0 24%);
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
}
.section-heading > .eyebrow::before, .expertise-heading > .eyebrow::before, .process > .eyebrow::before, .team-belief > .eyebrow::before{
  content: '';
  width: 8px;
  height: 8px;
  background: var(--lime);
  flex: 0 0 auto;
}
.expertise .brand-chevron, .process .brand-chevron {
  background: var(--yellow);
}
.service-row .brand-chevron {
  margin-top: 7px;
  width: 13px;
  height: 18px;
}
.inclusion-grid .brand-chevron, .process-grid .brand-chevron {
  margin-bottom: 8px;
}
.job-indicator {
  width: 7px;
  height: 7px;
  border: 1px solid var(--green);
  border-radius: 50%;
  transition: background .3s, transform .3s;
}
.job-card:hover .job-indicator {
  background: var(--lime);
  transform: scale(1.3);
}
/* Upright Outfit accents pair with the primary Manrope headings. */
h1 em, h2 em, .footer-call em {
  font-style: normal;
}
.hero h1 {
  font-size: clamp(60px, 7.4vw, 124px);
  letter-spacing: -.065em;
  line-height: 1.04;
}
.hero h1 em {
  font-size: 1.17em;
  margin-left: 7vw;
  line-height: 1.03;
  color: var(--yellow);
  letter-spacing: -.018em;
  margin-top: 8px;
}
.hero h1 span, .hero h1 em {
  animation: none;
}
.hero-intro, .hero-bottom {
  animation: none;
}
.hero-intro {
  margin-bottom: auto;
}
.hero-content {
  padding-top: 150px;
}
.hero-intro > p:last-child {
  font-size: 17px;
}
.hero h1 {
  margin-top: 50px;
}
.hero-image img {
  transform: scale(1);
}
.is-loading .hero h1 > *, .is-loading .hero-intro, .is-loading .hero-bottom, .is-loading .page-hero > * {
  opacity: 0;
}
.is-ready .hero h1 > * {
  animation: title-unfold 1.5s .25s var(--ease) both;
}
.is-ready .hero h1 em {
  animation-delay: .4s;
}
.is-ready .hero-intro, .is-ready .page-hero > .eyebrow:not(.home-kicker), .is-ready .breadcrumbs {
  animation: rise-in 1.2s .25s var(--ease) both;
}
.is-ready .hero-bottom, .is-ready .page-hero-bottom {
  animation: rise-in 1.3s .65s var(--ease) both;
}
.is-ready .hero-image img {
  animation: image-settle 2.5s var(--ease) both;
}
@keyframes title-unfold {
  from {
    opacity: 0;
    clip-path: inset(0 0 100%);
    transform: translateY(45px) rotate(1.8deg);
    transform-origin: left bottom;
  }
  to {
    opacity: 1;
    clip-path: inset(-15% -2% -15%);
    transform: none;
  }
}
@keyframes image-settle {
  from {
    transform: scale(1.16);
  }
  to {
    transform: scale(1);
  }
}
.section-title em, .statement em {
  line-height: 1.04;
}
.statement em {
  font-size: 1.13em;
}
.page-hero h1 {
  max-width: 1250px;
}
.page-hero h1 em {
  line-height: 1.05;
}
/* Real people, paired portraits and a measured rhythm of local photography. */
.people-composition {
  position: relative;
  padding: 0 15% 100px 0;
}
.people-composition .editorial-photo {
  width: 100%;
  max-width: none;
}
.people-composition .editorial-photo > img {
  aspect-ratio: 4/5;
  object-position: center top;
}
.people-composition .editorial-photo figcaption {
  max-width: 58%;
}
.person-caption > span {
  display: block;
  white-space: nowrap;
}
.person-caption > span:first-child {
  font-weight: 600;
  color: var(--green);
}
.portrait-inset {
  position: absolute;
  right: -5%;
  bottom: 0;
  width: 46%;
}
.portrait-inset img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  border: 8px solid var(--paper);
  object-position: center top;
}
figcaption {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
  margin-top: 12px;
}
.portrait-inset figcaption {
  padding-left: 8px;
}
.candidate-support .section-heading > .eyebrow::before {
  display: none;
}
.candidate-support .section-heading .brand-chevron {
  width: 13px;
  height: 18px;
}
.intro-grid {
  align-items: center;
}
.person-photo > img {
  filter: none;
}
.contact-recruiter {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 26px 0;
  margin-top: 28px;
  border-top: 1px solid var(--line);
  font-size: 13px;
  line-height: 1.65;
}
.contact-recruiter img {
  width: 72px;
  height: 88px;
  object-position: center top;
}
.contact-recruiter strong {
  font-size: 18px;
  font-weight: 500;
}
.contact-recruiter > span:last-child {
  margin-left: auto;
  font-size: 24px;
}
.contact-recruiter:hover strong {
  text-decoration: underline;
}
/* Scroll choreography: soft text movement, image crops, staggered groups. */
.reveal {
  transition: opacity 1s var(--ease) var(--reveal-delay,0ms), translate 1.2s var(--ease) var(--reveal-delay,0ms), clip-path 1.4s var(--ease) var(--reveal-delay,0ms);
}
.reveal.pending {
  translate: 0 42px;
}
figure.reveal, .person.reveal {
  clip-path: inset(-2% -2% -2%);
}
figure.reveal.pending, .person.reveal.pending {
  clip-path: inset(0 0 22%);
  translate: 0 35px;
}
.statement.reveal.pending, .section-title.reveal.pending {
  translate: 0 32px;
}
.service-row.reveal {
  transition: opacity 1s var(--ease), translate 1.2s var(--ease), padding .4s var(--ease), color .3s;
}
.service-row.reveal.pending {
  translate: 12px 15px;
}
.motion-paused .reveal {
  clip-path: none!important;
}
.motion-paused .preloader {
  display: none!important;
}
@media (max-width:800px) {
  .hero h1 {
    font-size: clamp(56px,8.8vw,80px);
  }
  .hero h1 em {
    margin-left: 0;
    font-size: 1.15em;
  }
  .hero-intro {
    margin-bottom: auto;
  }
  .portrait-inset {
    right: -7%;
  }
}
@media (max-width:560px) {
  .hero {
    min-height: 760px;
    height: 100svh;
    max-height: 1050px;
  }
  .hero-content {
    padding-top: 127px;
    padding-bottom: 25px;
  }
  .hero h1 {
    font-size: clamp(49px,12.5vw,70px);
    line-height: 1.03;
    margin-top: 50px;
  }
  .hero h1 > span {
    max-width: 100%;
  }
  .hero h1 em {
    font-size: 1.02em;
    line-height: 1.03;
    margin-top: 14px;
    max-width: 95%;
  }
  .hero-intro > p:last-child {
    font-size: 16px;
  }
  .hero-intro > .eyebrow {
    font-size: 11px;
  }
  .hero-bottom {
    margin-top: 25px;
    gap: 18px;
  }
  .hero-bottom > p {
    font-size: 12px;
  }
  .preloader-center {
    width: 78vw;
  }
  .preloader-center p {
    font-size: 10px;
    letter-spacing: .09em;
  }
  .preloader-location {
    max-width: 160px;
    font-size: 10px;
    bottom: 35px;
  }
  .people-composition {
    width: 90%;
    padding-bottom: 100px;
  }
  .people-composition .editorial-photo {
    width: 100%;
  }
  .portrait-inset {
    right: -10%;
    width: 52%;
  }
  .portrait-inset img {
    border-width: 6px;
  }
  .intro-copy {
    padding-left: 0;
  }
  .statement em {
    font-size: 1.1em;
  }
  .service-row {
    grid-template-columns: 18px 1fr 34px;
  }
}
@media (prefers-reduced-motion:reduce) {
  .preloader {
    display: none!important;
  }
  .reveal {
    clip-path: none!important;
  }
}
@media (max-width:420px) {
  .inclusion-grid, .process-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
}
@media (max-width:360px) {
  .hero-actions .button {
    padding: 14px 12px;
    gap: 8px;
    font-size: 13px;
  }
}
/* Job search leads the homepage; the landscape stays in the background. */
.jobs-first-hero {
  height: auto;
  min-height: 0;
  max-height: none;
}
.jobs-first-hero .hero-content {
  min-height: clamp(690px, 78.2svh, 874px);
  padding-top: 165px;
  padding-bottom: 74px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: min(6vw,86.4px);
}
.jobs-first-hero h1 {
  font-size: clamp(72px,7.2vw,112px);
  margin: 26px 0 22px;
}
.jobs-first-hero h1 em {
  margin-left: 0;
  font-size: 1.14em;
}
.hero-description {
  font-size: 17px;
  line-height: 1.65;
}
.jobs-first-hero .hero-overlay {
  background: linear-gradient(90deg,#09271dcc,#09271d91 50%,#09271dcc),linear-gradient(0deg,#09271d91,transparent);
}
.hero-search-panel {
  padding-top: 45px;
}
@media(min-width:801px) {
  .jobs-first-hero .hero-content {
    min-height: clamp(759px, 86.02svh, 961.4px);
    padding-top: 150px;
    padding-bottom: 110px;
  }
  .jobs-first-hero .hero-search-panel { padding-top: 0; }
}
.job-search-form label {
  display: block;
  font-size: 22px;
  letter-spacing: -.035em;
  margin-bottom: 20px;
}
.hero-search-field {
  display: flex;
  gap: 12px;
  padding: 8px;
  border: 1px solid #ffffff66;
  background: var(--paper);
  border-radius: 6px;
}
.hero-search-field input {
  min-width: 0;
  flex: 1;
  padding: 12px 10px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 16px;
}
.hero-search-field .button {
  flex-shrink: 0;
}
.job-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 15px 22px;
  font-size: 13px;
  margin-top: 22px;
}
.job-shortcuts a {
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-color: #ffffff66;
}
.job-shortcuts a:hover {
  color: var(--yellow);
  text-decoration-color: var(--yellow);
}
.is-loading .hero-search-panel, .is-loading .job-hero-heading > p { opacity: 0; }
.is-ready .hero-search-panel, .is-ready .job-hero-heading > p:not(.home-kicker) {
  animation: rise-in 1.2s .4s var(--ease) both;
}
.page-index .opportunities { padding-top: 70px; padding-bottom: 80px; }
.page-index .jobs-heading { margin-bottom: 42px; }
.page-index .opportunities .section-heading { margin-bottom: 35px; }
.candidate-support { border-top: 1px solid var(--line); }
.candidate-support .statement { font-size:calc(clamp(44px,6.4vw,96px) * var(--section-heading-scale, 1)); }
.candidate-permits { border-top: 1px solid var(--line); padding-top: 28px; margin-top: 40px; font-size: 14px; }
.candidate-permits p { margin-bottom: 10px; }
.candidate-permits a { text-decoration: underline; text-underline-offset: 5px; }
.business-support { display: grid; grid-template-columns: 1fr 1fr; gap: min(7vw,100.8px); align-items: start; }
.business-support .eyebrow { margin-bottom: 35px; }
.business-support .section-title { font-size:calc(clamp(40px,4.5vw,67px) * var(--section-heading-scale, 1)); }
.support-link { display: flex; gap: 28px; border-top: 1px solid var(--line); padding: 30px 0; }
.support-link:last-child { border-bottom: 1px solid var(--line); }
.support-link h3 { font-size:calc(31px * var(--section-heading-scale, 1)); }
.support-link p { margin-top: 15px; font-size: 16px; color: var(--muted); }
.support-link > span { font-size: 25px; margin-left: auto; }
.support-link:hover h3 { color: #58831d; }
.service-next-step { padding: 45px; background: #eaf0e3; border-top: 5px solid var(--lime); }
.service-next-step h3 { font-size:calc(clamp(42px,4.6vw,70px) * var(--section-heading-scale, 1)); margin-bottom: 28px; }
.service-next-step h3 em { font-family: 'Outfit',Arial,sans-serif; font-style: normal; text-transform: uppercase; }
.service-next-step > p:not(.eyebrow) { color: var(--muted); }
.service-next-step .button { margin: 30px 0; }
.service-next-step > a:last-child { display: inline-block; }
@media(max-width:1100px) {
  .jobs-first-hero .hero-content { gap: 4vw; }
  .hero-search-field { flex-wrap: wrap; }
  .hero-search-field input { flex-basis: 100%; }
  .hero-search-field .button { width: 100%; }
}
@media(max-width:800px) {
  .jobs-first-hero .hero-content { grid-template-columns: 1fr; padding-top: 130px; padding-bottom: 45px; gap: 30px; }
  .jobs-first-hero h1 { font-size: clamp(66px,calc(10vw + 4px),90px); margin: 22px 0 18px; }
  .hero-search-panel { padding-top: 0; }
  .hero-search-field { flex-wrap: nowrap; }
  .hero-search-field input { flex-basis: auto; }
  .hero-search-field .button { width: auto; }
  .business-support { grid-template-columns: 1fr; gap: 40px; }
  .service-next-step { padding: 30px; }
}
@media(max-width:560px) {
  .jobs-first-hero .hero-content { padding-top: 120px; padding-bottom: 30px; gap: 24px; }
  .jobs-first-hero h1 { font-size: clamp(62px,calc(14vw + 8px),84px); margin: 20px 0 16px; }
  .jobs-first-hero h1 em { margin-top: 0; }
  .jobs-first-hero .eyebrow { font-size: 11px; }
  .hero-description { font-size: 15px; }
  .job-search-form label { font-size: 17px; margin-bottom: 12px; }
  .hero-search-field { flex-wrap: wrap; gap: 5px; padding: 7px; }
  .hero-search-field input { flex-basis: 100%; padding: 10px 6px; }
  .hero-search-field .button { width: 100%; min-height: 46px; padding: 12px 16px; }
  .job-shortcuts { gap: 14px 18px; font-size: 12px; margin-top: 18px; }
  .page-index .opportunities { padding-top: 50px; padding-bottom: 55px; }
  .page-index .jobs-heading .section-title { font-size:calc(44px * var(--section-heading-scale, 1)); }
  .page-index .opportunities .section-heading { align-items: center; gap: 15px; }
  .page-index .opportunities .eyebrow { font-size: 11px; }
  .page-index .opportunities .underlined { font-size: 12px; white-space: nowrap; }
  .candidate-support .statement { font-size:calc(clamp(40px,10vw,56px) * var(--section-heading-scale, 1)); }
  .support-link h3 { font-size:calc(27px * var(--section-heading-scale, 1)); }
}

/* Shared actions: the homepage hero design, adapted to light and dark surfaces. */
.home-cta-row { display:flex; flex-wrap:wrap; gap:12px; }
.hero-cta-row { margin-top:30px; padding-top:24px; border-top:1px solid #ffffff40; }
.recruiter-cta-row { margin-top:30px; }
.button {
  --cta-fill:var(--green);
  --cta-ink:#fff;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:50px;
  padding:12px 16px;
  gap:16px;
  border-radius:6px;
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  box-shadow:none;
}
.button::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--cta-fill);
  opacity:1;
  clip-path:polygon(0 0,0 0,-20% 100%,0 100%);
  transition:clip-path .45s var(--ease);
  pointer-events:none;
}
.home-cta-row .button { flex:1 1 180px; }
.button > span:last-child {
  display:grid; place-items:center; flex:0 0 20px; width:20px; height:20px;
  background:transparent; color:inherit; transition:transform .35s var(--ease);
}
.button .diagonal-arrow { width:17px; height:17px; }
.button:hover > span:last-child { transform:translate(2px,-2px); }
.button:focus-visible { outline:2px solid var(--cta-focus,var(--green)); outline-offset:4px; }
.button-light { background:#ffffff0f; border-color:#ffffff55; color:var(--paper); }
.button-glass { background:#123d2d33; border-color:#ffffff40; color:var(--paper); }
.button-green { background:#123d2d0d; border-color:#123d2d40; color:var(--green); }
.button-outline { background:transparent; border-color:#123d2d33; color:var(--green); }
.button-light, .button-glass, .page-hero .button, .jobs-first-hero .button { --cta-fill:#fff; --cta-ink:var(--green); --cta-focus:#fff; }
.page-hero .button, .jobs-first-hero .button { background:#ffffff0f; border-color:#ffffff55; color:var(--paper); }
.jobs-first-hero .button-glass { background:#123d2d33; border-color:#ffffff40; }
/* The search action sits on paper, so it needs its own solid treatment. */
.jobs-first-hero .hero-search-field .button {
  --cta-fill:#fff67a;
  --cta-ink:var(--deep);
  --cta-focus:var(--green);
  background:var(--yellow);
  border-color:var(--yellow);
  color:var(--deep);
}
.hero-search-field input::placeholder { color:var(--muted); opacity:1; }
.hero-cta-row .button { --cta-fill:#fff; --cta-ink:var(--green); }
@media(hover:hover) {
  .button:hover { color:var(--cta-ink); border-color:var(--cta-fill); }
  .button:hover::before { clip-path:polygon(0 0,120% 0,100% 100%,0 100%); }
}
.button:is(:focus-visible,:active) { color:var(--cta-ink); border-color:var(--cta-fill); }
.button:is(:focus-visible,:active)::before { clip-path:polygon(0 0,120% 0,100% 100%,0 100%); }
.motion-paused .button,
.motion-paused .button::before,
.motion-paused .button > span:last-child { transition:none; }
@media(prefers-reduced-motion:reduce) {
  .button,
  .button::before,
  .button > span:last-child { transition:none; }
}
.page-index .employer-cta { margin-top:28px; }
@media(max-width:560px) {
  .hero-cta-row { margin-top:24px; padding-top:20px; gap:10px; }
  .hero-cta-row .button { flex:1 1 0; min-width:0; padding:10px; gap:8px; font-size:13px; }
}

/* Accessible icon links with a full-width mobile social row. */
.social-icons { display:flex; flex-wrap:wrap; gap:10px; }
.footer-grid .social-icons a { display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffff40; border-radius:50%; color:#fff; transition:background .25s,color .25s,border-color .25s; }
.social-icons svg { display:block; }
.footer-grid .social-icons a:is(:hover,:focus-visible) { background:var(--yellow); border-color:var(--yellow); color:var(--green); }
@media(min-width:1101px) { .footer-grid { grid-template-columns:1.2fr 1.2fr 1.2fr 1fr; } }
@media(max-width:800px) { .footer-social { grid-column:1 / -1; width:100%; } .social-icons { gap:16px; } }

/* Background film stays behind the existing brand gradient and search. */
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:0; transition:opacity .8s ease; }
.hero-video.is-playing { opacity:1; }
@media(max-width:800px) {
  .jobs-first-hero .hero-content { min-height:0; padding-bottom:86px; }
}

/* Service overview: direct routes to every specialist page. */
.expertise-overview-hero { padding-bottom:0; }
.expertise-overview-hero h1 { font-size:clamp(42px,6.3vw,96px); }
.expertise-overview-intro { display:flex; align-items:end; justify-content:space-between; gap:32px; margin:32px 0 44px; }
.expertise-overview-intro p { max-width:640px; color:#c4d4ca; font-size:18px; }
.expertise-overview-intro a { flex-shrink:0; }
.expertise-jump-links { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #ffffff35; }
.expertise-jump-links a { display:flex; justify-content:space-between; gap:16px; padding:24px 20px; border-right:1px solid #ffffff35; transition:background .25s,color .25s; }
.expertise-jump-links a:first-child { padding-left:0; }
.expertise-jump-links a:last-child { border-right:0; }
.expertise-jump-links a:hover { color:var(--yellow); background:#ffffff08; }
.expertise-directory { padding-top:80px; padding-bottom:80px; }
.expertise-directory-heading { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:end; margin-bottom:40px; }
.expertise-directory-heading h2 { font-size:calc(clamp(30px,3.6vw,54px) * var(--section-heading-scale, 1)); margin-top:20px; }
.expertise-directory-heading>p { max-width:430px; color:var(--muted); }
.expertise-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.expertise-card-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.expertise-card { display:flex; flex-direction:column; padding:32px; border:1px solid var(--line); min-height:330px; transition:background .35s,border-color .35s; }
.expertise-card h3 { font-size:calc(clamp(26px,2.6vw,38px) * var(--section-heading-scale, 1)); margin:26px 0 20px; letter-spacing:-.04em; }
.expertise-card>p { color:var(--muted); margin-bottom:32px; }
.expertise-card-action { margin-top:auto; display:flex; justify-content:space-between; gap:16px; padding-top:20px; border-top:1px solid var(--line); }
.expertise-card-action>span { transition:transform .3s; }
.expertise-card:hover { background:#edf2e5; border-color:var(--green); }
.expertise-card:hover .expertise-card-action>span { transform:translate(3px,-3px); }
.expertise-support-directory { background:#edf0e8; }
.expertise-support-directory .expertise-card { background:var(--paper); }
.expertise-support-directory .expertise-card:hover { background:#e2ebd5; }
.expertise-guidance { display:grid; grid-template-columns:1.25fr 1fr; gap:min(10vw,144px); }
.expertise-guidance h2 { font-size:calc(clamp(32px,4vw,60px) * var(--section-heading-scale, 1)); margin:22px 0; }
.expertise-guidance p { max-width:610px; }
.expertise-guidance .button { margin-top:30px; }
.expertise-guidance aside { border-left:1px solid var(--line); padding-left:48px; }
.expertise-guidance h3 { font-size:calc(32px * var(--section-heading-scale, 1)); margin:22px 0; }
.expertise-guidance aside .underlined { display:table; margin-top:22px; }
@media(max-width:800px) {
  .expertise-overview-intro { display:block; }
  .expertise-overview-intro a { display:inline-block; margin-top:24px; }
  .expertise-jump-links { grid-template-columns:1fr; }
  .expertise-jump-links a { padding:20px 0; border-right:0; border-bottom:1px solid #ffffff25; }
  .expertise-directory { padding-top:56px; padding-bottom:56px; }
  .expertise-directory-heading,.expertise-card-grid,.expertise-card-grid-two,.expertise-guidance { grid-template-columns:1fr; }
  .expertise-directory-heading { gap:24px; }
  .expertise-card { min-height:0; padding:26px; }
  .expertise-guidance { gap:48px; }
  .expertise-guidance aside { padding:32px 0 0; border-left:0; border-top:1px solid var(--line); }
}
/* The first content surface covers its pinned hero in the normal scroll flow. */
.home-opening, .page-opening { position: relative; isolation: isolate; background: var(--deep); }
.home-opening .jobs-first-hero, main .page-opening > .page-hero { position: sticky; top: var(--hero-pin-top, 0px); z-index: 0; }
.home-opening .opportunities, .page-opening > .page-rollover {
  position: relative;
  z-index: 1;
  margin-top: -32px;
  border-radius: 36px 36px 0 0;
  background: var(--paper);
  box-shadow: 0 -16px 40px #09271d18;
}
.page-rollover { display: flow-root; }
.page-rollover > section { border-radius: inherit; }
/* Leave the hero's bottom links above the overlapping rounded edge. */
.page-opening > .expertise-overview-hero { padding-bottom: 32px; }
.eyebrow.home-kicker {
  --kicker-size: 13px;
  position: relative;
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  padding: 5px 18px 5px 25px;
  gap: 0;
  isolation: isolate;
}
.eyebrow.home-kicker::before { display: none; }
.page-index :is(.jobs-first-hero, .expertise, .footer) .home-kicker > .brand-chevron, .page-hero .eyebrow.home-kicker > .brand-chevron {
  background: var(--yellow);
}
.page-index :is(.header, .menu-dialog, .jobs-first-hero, .expertise, .footer) .diagonal-arrow,
.page-index .menu-icon,
.page-index .menu-close > span { color: var(--yellow); }
.page-index .round-arrow .diagonal-arrow { color:var(--deep); }
.page-index .expertise .service-row:hover .service-arrow .diagonal-arrow { color:var(--deep); }
/* Button icons always follow their label, including on the white hover fill. */
.button .diagonal-arrow, .page-index .button .diagonal-arrow { color:inherit; }
.eyebrow.home-kicker > .brand-chevron {
  position: absolute;
  left: 0;
  top: calc(50% - 9px);
  width: var(--kicker-size);
  height: 18px;
  margin: 0;
  background: var(--lime);
  z-index: 2;
}
.home-kicker .kicker-text { position: relative; padding: 0 4px; }
.home-kicker::after {
  content: '';
  position: absolute;
  inset: 2px 13px 2px 0;
  z-index: -1;
  background: linear-gradient(to right, transparent 25px, var(--yellow) 25px);
  clip-path: inset(0 100% 0 0);
}
.kicker-play > .brand-chevron { animation: kicker-travel 1.2s cubic-bezier(.65,0,.35,1) both; }
.kicker-play .kicker-text { animation: kicker-reveal 1.2s cubic-bezier(.65,0,.35,1) both; }
.kicker-play::after { animation: kicker-highlight 1.2s cubic-bezier(.65,0,.35,1) both; }
@keyframes kicker-travel {
  0%, 100% { left: 0; }
  42%, 58% { left: calc(100% - var(--kicker-size)); }
}
@keyframes kicker-reveal {
  0% { clip-path: inset(-5px 100% -5px 0); }
  42%, 58% { clip-path: inset(-5px -2px); color: var(--deep); }
  100% { clip-path: inset(-5px -2px); }
}
@keyframes kicker-highlight {
  0%, 100% { clip-path: inset(0 100% 0 0); }
  42%, 58% { clip-path: inset(0); }
}
@media(max-width:560px) {
  .home-opening .opportunities, .page-opening > .page-rollover { margin-top: -22px; border-radius: 26px 26px 0 0; }
  .page-index .opportunities .section-heading { flex-wrap: wrap; }
}
.motion-paused .home-opening .jobs-first-hero, .motion-paused main .page-opening > .page-hero { position: relative; top: 0; }
.motion-paused .home-kicker *, .motion-paused .home-kicker::after { animation: none !important; }
@media(prefers-reduced-motion:reduce) {
  .home-opening .jobs-first-hero, main .page-opening > .page-hero { position: relative; top: 0; }
  .home-kicker *, .home-kicker::after { animation: none !important; }
}

/* Selected accent: uppercase Outfit with an open outline. */
h1 em, h2 em, .footer-call em, .service-next-step h3 em {
  font-family: Outfit, Arial, sans-serif;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  -webkit-text-stroke: 1px currentColor;
  -webkit-text-fill-color: transparent;
  letter-spacing: -.025em;
}
.jobs-first-hero h1 em { font-size: clamp(42px, 5.8vw, 104px); max-width:100%; }
.statement em { font-size: .95em; }
.page-hero h1 em { overflow-wrap: anywhere; }
/* One type scale for every inner-page hero; longer mobile copy is shortened in the template. */
body .page-hero h1, body.page-jobs.viewing-job .jobs-hero h1 {
  font-size:clamp(48px,6.96vw,105.6px);
  line-height:1.07;
  max-width:100%;
}
.hero-copy-desktop { display:block; }
.hero-copy-mobile { display:none; }
/* Keep every hero curve the same visible weight, independent of SVG scale. */
.page-hero :is(.expertise-flow,.people-flow,.jobs-flow) { color:#bdce7866; opacity:1; }
.page-hero :is(.expertise-flow,.people-flow,.jobs-flow) :is(path,ellipse,rect) {
  stroke-width:1.75px;
  vector-effect:non-scaling-stroke;
}
/* Swap the static curves for their spring-driven counterparts only while active. */
.magnetic-line { display:none; }
.magnetic-art-active .magnetic-original { visibility:hidden; }
.magnetic-art-active .magnetic-line { display:inline; }
.hero-cursor { position:fixed; inset:0 auto auto 0; z-index:60; width:0; height:0; pointer-events:none; }
.hero-cursor[hidden] { display:none; }
.hero-cursor-ring,.hero-cursor-trail,.hero-cursor-dot { position:absolute; left:0; top:0; border-radius:50%; }
.hero-cursor-ring { width:34px; height:34px; border:1px solid #d3e894b3; transition:width .2s,height .2s; }
.hero-cursor-trail { width:27px; height:27px; border:1px solid #d3e89430; }
.hero-cursor-trail-last { width:20px; height:20px; opacity:.45; }
.hero-cursor-dot { width:4px; height:4px; background:var(--yellow); transform:translate(-50%,-50%); }
.hero-cursor.is-link .hero-cursor-ring { width:46px; height:46px; }
@media(min-width:801px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .hero-has-cursor { cursor:none; }
  .hero-has-cursor :is(a,button,summary) { cursor:pointer; }
}
.motion-paused .hero-cursor { display:none; }
.motion-paused .magnetic-original { visibility:visible; }
.motion-paused .magnetic-line { display:none; }
@media(max-width:800px), (hover:none), (pointer:coarse), (prefers-reduced-motion:reduce) {
  .hero-cursor { display:none; }
  .magnetic-original { visibility:visible; }
  .magnetic-line { display:none; }
}
@media(max-width:800px) {
  body .page-hero h1, body.page-jobs.viewing-job .jobs-hero h1 { font-size:clamp(38.4px,9vw,72px); }
  .hero-copy-desktop { display:none; }
  .hero-copy-mobile { display:block; }
  .jobs-first-hero h1 > span { font-size:calc(1em - 2px); }
  .footer .footer-navigation { display:none; }
  .footer-bottom { flex-wrap:nowrap; gap:clamp(6px,1.5vw,12px); font-size:clamp(10px,2.8vw,12px); line-height:1.5; justify-content:space-between; }
  .footer-bottom > span:first-child { width:auto; margin:0; }
  .footer-bottom > * { white-space:nowrap; }
  .jobs-first-hero h1 em { font-size: clamp(44px, calc(10.7vw + 4px), 78px); }
}
@media(max-width:560px) {
  .jobs-first-hero h1 em { font-size: clamp(48px, calc(10.7vw + 8px), 82px); }
}
@media(forced-colors:active) {
  h1 em, h2 em, .footer-call em, .service-next-step h3 em { -webkit-text-fill-color:currentColor; -webkit-text-stroke:0; }
}

/* Fill the usable phone viewport without stretching unusually tall windows.
   Natural content can grow on small screens or when text is enlarged. */
@media(max-width:800px) {
  .jobs-first-hero .hero-content {
    min-height:min(100svh,1000px);
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-end;
    padding-top:120px;
    padding-bottom:max(72px,calc(env(safe-area-inset-bottom,0px) + 64px));
    gap:clamp(28px,4svh,40px);
  }
  .page-hero {
    min-height:min(100svh,1000px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .page-hero .expertise-jump-links { margin-top:auto; }
  .page-opening > .expertise-overview-hero { padding-top:120px; }
  .page-hero.expertise-overview-hero > .home-kicker { margin-bottom:20px; }
  .page-hero.expertise-overview-hero h1 { margin-top:0; }
  .page-hero.expertise-overview-hero .expertise-overview-intro { margin:24px 0 28px; }
  .page-hero .expertise-overview-intro p { font-size:16px; }
  .page-hero.expertise-overview-hero .expertise-overview-intro .button { margin-top:20px; }
  .page-hero .expertise-jump-links a { padding:12px 0; }
  .page-hero :is(.expertise-flow,.people-flow,.jobs-flow) { opacity:.65; }
}

/* Scroll and load choreography: masked heading lines, staggered reveals, image settles and the hero hand-off.
   Elements are only concealed by JavaScript, so every page reads normally without it. */
.heading-line { display:block; clip-path:inset(-.32em -.3em); }
.heading-line > span { display:block; transform-origin:0 100%; }
.reveal { transition:opacity 1s var(--ease) var(--reveal-delay,0ms), translate 1.1s var(--ease) var(--reveal-delay,0ms), clip-path 1.3s var(--ease) var(--reveal-delay,0ms); }
.reveal.pending { translate:0 36px; }
.reveal-lines .heading-line > span { transition:translate 1.25s var(--ease) calc(var(--reveal-delay,0ms) + var(--line-delay,0ms)), rotate 1.25s var(--ease) calc(var(--reveal-delay,0ms) + var(--line-delay,0ms)); }
.reveal-lines .heading-line:nth-child(2) { --line-delay:130ms; }
.reveal-lines .heading-line:nth-child(3) { --line-delay:260ms; }
.reveal-lines.pending .heading-line > span { translate:0 calc(100% + .4em); rotate:1.6deg; }
.reveal.reveal-lines.pending { opacity:1; translate:none; }
.no-transition, .no-transition * { transition:none!important; }
/* Photography settles into its frame while the frame is unmasked. */
figure.photo-story.reveal .photo-window img { transition:scale 1.7s var(--ease) var(--reveal-delay,0ms); }
figure.photo-story.reveal.pending .photo-window img { scale:1.08; }
figure.photo-story.reveal { clip-path:inset(-8%); }
figure.photo-story.reveal.pending { clip-path:inset(0 0 22%); }
/* Interactive elements keep their hover transitions while revealing. */
.job-card.reveal { transition:opacity .9s var(--ease) var(--reveal-delay,0ms), translate 1s var(--ease) var(--reveal-delay,0ms), background .3s, padding .3s; }
.job-card.reveal.pending { translate:0 26px; }
.button.reveal { transition:opacity 1s var(--ease) var(--reveal-delay,0ms), translate 1.1s var(--ease) var(--reveal-delay,0ms), background .3s, color .3s, border-color .3s; }
details.reveal { transition:opacity 1s var(--ease) var(--reveal-delay,0ms), translate 1.1s var(--ease) var(--reveal-delay,0ms), border-color .9s var(--ease) var(--reveal-delay,0ms); }
details.reveal.pending { border-color:transparent; }
.faq summary { transition:color .25s; }
.faq summary:hover { color:#497821; }
.footer-call.reveal .round-arrow { transition:transform .5s var(--ease), scale 1.3s var(--ease) calc(var(--reveal-delay,0ms) + 150ms), rotate 1.3s var(--ease) calc(var(--reveal-delay,0ms) + 150ms); }
.footer-call.reveal.pending .round-arrow { scale:.6; rotate:-45deg; }
/* Text links: the underline sweeps out to the right and returns from the left. */
.underlined { border-bottom:0; background:linear-gradient(currentColor,currentColor) no-repeat 0 100% / 100% 1px; }
@keyframes underline-sweep {
  0% { background-size:100% 1px; background-position:100% 100%; }
  45% { background-size:0 1px; background-position:100% 100%; }
  50% { background-size:0 1px; background-position:0 100%; }
  100% { background-size:100% 1px; background-position:0 100%; }
}
@media(hover:hover) { .underlined:hover { animation:underline-sweep .8s var(--ease); } }
/* Inner-page heroes: kicker, masked title lines, introduction and jump links arrive in sequence. */
/* Keep layout measurable while deferred JavaScript stages the first frame.
   The inline boot script enables this guard; pages without JavaScript stay visible. */
@media(prefers-reduced-motion:no-preference) {
  .motion-booting:not(.motion-paused) main,
  .motion-booting:not(.motion-paused) .footer { visibility:hidden; }
  .motion-booting:not(.motion-paused) main * { animation-play-state:paused!important; }
}
@keyframes line-rise { from { translate:0 calc(100% + .4em); rotate:2deg; } to { translate:0 0; rotate:0deg; } }
.is-ready .page-hero h1 .heading-line > span { animation:line-rise 1.4s .3s var(--ease) both; }
.is-ready .page-hero h1 .heading-line:nth-child(2) > span { animation-delay:.46s; }
.is-ready .page-hero .expertise-overview-intro > *, .is-ready .page-hero .jobs-hero-actions > * { animation:rise-in 1.2s .7s var(--ease) both; }
.is-ready .page-hero .expertise-overview-intro > :nth-child(2), .is-ready .page-hero .jobs-hero-actions > :nth-child(2) { animation-delay:.82s; }
.is-ready .page-hero .expertise-jump-links > a { animation:rise-in 1.1s .95s var(--ease) both; }
.is-ready .page-hero .expertise-jump-links > a:nth-child(2) { animation-delay:1.05s; }
.is-ready .page-hero .expertise-jump-links > a:nth-child(3) { animation-delay:1.15s; }
/* Hero text is uncovered by the delayed highlight, without a separate rise or fade. */
@media(prefers-reduced-motion:no-preference) {
  .is-ready:not(.motion-paused) :is(.jobs-first-hero, .page-hero) .home-kicker:not(.kicker-play) .kicker-text { clip-path:inset(-5px 100% -5px 0); }
}
:is(.jobs-first-hero, .page-hero) .kicker-play > .brand-chevron,
:is(.jobs-first-hero, .page-hero) .kicker-play .kicker-text,
:is(.jobs-first-hero, .page-hero) .kicker-play::after { animation-delay:.6s; }
/* The pinned hero recedes as the first section rolls over it. */
@media(prefers-reduced-motion:no-preference) {
  .page-hero :is(.expertise-flow,.people-flow,.jobs-flow) {
    translate:calc(var(--cover,0) * -28px) calc(var(--cover,0) * 64px);
    rotate:calc(var(--cover,0) * -4deg);
  }
}
/* Touch screens use continuous artwork drift and scroll response instead of a mouse cursor. */
@media(max-width:800px) and (prefers-reduced-motion:no-preference) {
  .page-hero :is(.expertise-flow,.people-flow,.jobs-flow) svg { animation-duration:8s; }
  main .page-opening > .page-hero { transform-origin:50% 30%; opacity:calc(1 - var(--cover,0) * .4); scale:calc(1 - var(--cover,0) * .025); }
  .home-opening .hero-content { opacity:calc(1 - var(--cover,0) * .5); translate:0 calc(var(--cover,0) * -3vh); }
  .home-opening .hero-image { transform:translateY(var(--parallax,0px)) scale(calc(1.07 + var(--cover,0) * .04)); }
}
.motion-paused .page-hero :is(.expertise-flow,.people-flow,.jobs-flow) { translate:none; rotate:none; }
@media(min-width:801px) {
  main .page-opening > .page-hero { transform-origin:50% 30%; opacity:calc(1 - var(--cover,0) * .7); scale:calc(1 - var(--cover,0) * .05); }
  .home-opening .hero-content { opacity:calc(1 - var(--cover,0) * .9); translate:0 calc(var(--cover,0) * -6vh); }
  .home-opening .hero-image { transform:translateY(var(--parallax,0px)) scale(calc(1.07 + var(--cover,0) * .1)); }
}
.motion-paused .heading-line > span { translate:none!important; rotate:none!important; }
.motion-paused .photo-window img { scale:none!important; }
.motion-paused .footer-call .round-arrow { scale:none!important; rotate:none!important; }
.motion-paused details.reveal { border-color:var(--line)!important; }
.motion-paused main .page-opening > .page-hero, .motion-paused .home-opening .hero-content { opacity:1!important; scale:none!important; translate:none!important; }
@media(prefers-reduced-motion:reduce) {
  .heading-line > span { translate:none!important; rotate:none!important; }
  .photo-window img { scale:none!important; }
  figure.reveal { clip-path:none!important; }
  .footer-call .round-arrow { scale:none!important; rotate:none!important; }
  details.reveal { border-color:var(--line)!important; }
  main .page-opening > .page-hero, .home-opening .hero-content { opacity:1!important; scale:none!important; translate:none!important; }
}

/* Inner-page section and card headings grow without changing the homepage or hero titles. */
body:not(.page-index) main :is(h2,h3,h4,h5,h6) { --section-heading-scale:1.1; }
.section-copy-desktop { display:block; }
.section-copy-mobile { display:none; }
@media(max-width:800px) {
  .section-copy-desktop { display:none; }
  .section-copy-mobile { display:block; }
}
