@font-face {
  font-family:'DM Sans';
  src:url('/assets/fonts/dm-sans-latin-variable.woff2') format('woff2');
  font-style:normal;
  font-weight:100 1000;
  font-display:swap
}
.arrow-icon {
  display:inline-block;
  width:20px;
  height:20px;
  flex-shrink:0;
  vertical-align:middle
}
:root {
  --navy:#102744;
  --deep:#0a203b;
  --blue:#1264d5;
  --muted:#5b6877;
  --line:#d8dee3;
  --paper:#f7f8f6;
  --white:#fff;
  --font:'DM Sans',Arial,sans-serif;
  --display:'DM Sans',Arial,sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:auto;
  scroll-padding-top:104px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--navy);
  font:16px/1.7 var(--font);
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button {
  cursor:pointer
}
button:disabled {
  cursor:wait;
  opacity:.65
}
img {
  display:block;
  max-width:100%
}
button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:5px
}
::selection {
  background:#c4dcfa;
  color:var(--navy)
}
[hidden] {
  display:none!important
}
.wrap {
  width:min(1280px,calc(100% - 112px));
  margin-inline:auto
}
.skip-link {
  position:fixed;
  z-index:100;
  top:-100px;
  left:20px;
  background:var(--white);
  padding:12px 20px
}
.skip-link:focus {
  top:12px
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:#f7f8f6f5;
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px)
}
.header-inner {
  height:96px;
  display:flex;
  align-items:center;
  gap:32px
}
.brand {
  display:inline-block;
  flex-shrink:0
}
.brand img {
  width:182px;
  height:auto
}
.desktop-nav {
  display:flex;
  margin-left:auto;
  gap:27px;
  font-size:13px;
  font-weight:550
}
.desktop-nav a:hover {
  color:var(--blue)
}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  padding:18px 22px;
  min-height:56px;
  border:1px solid var(--blue);
  background:var(--blue);
  color:white;
  font-size:13px;
  font-weight:650;
  line-height:1.4;
  border-radius:2px;
  transition:background .18s,border-color .18s
}
.button:hover {
  background:#0d4fae;
  border-color:#0d4fae
}
.button span {
  font-size:20px;
  font-weight:400;
  line-height:1
}
.button-small {min-height:46px;padding:12px 17px;font-size:13px;gap:18px;background:var(--navy);border-color:var(--navy)}
.menu-toggle {
  display:none;
  padding:12px;
  background:transparent;
  border:0
}
.menu-toggle span {
  display:block;
  width:25px;
  height:2px;
  background:var(--navy);
  margin:6px 0
}
.mobile-nav {
  border-top:1px solid var(--line);
  padding:10px 28px 22px
}
.mobile-nav a {
  display:block;
  padding:13px 0;
  font-weight:600;
  border-bottom:1px solid var(--line)
}
.eyebrow {
  color:#456580;
  margin:0
}
.hero {
  overflow:hidden
}
.hero-grid {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:5%;
  padding-block:74px 66px;
  align-items:center
}
.hero h1 {
  font:550 clamp(42px,4.5vw,64px)/1.14 var(--display);
  letter-spacing:-.035em;
  margin:0 0 27px
}
.hero h1 span {
  color:var(--blue)
}
.hero-lead {
  font-size:21px;
  line-height:1.5;
  font-weight:500;
  letter-spacing:-.02em;
  margin:0 0 17px
}
.hero-description {
  color:var(--muted);
  font-size:15px;
  line-height:1.8;
  max-width:465px;
  margin:0
}
.hero-actions {
  display:flex;
  gap:26px;
  align-items:center;
  margin-top:30px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:19px;
  font-size:14px;
  font-weight:650;
  line-height:1.6;
  border-bottom:1px solid #9cadbc;
  padding:3px 0 6px;
  transition:color .18s;
  white-space:nowrap
}
.text-link:hover {
  color:var(--blue)
}
.text-link span {
  font-size:17px
}
.hero-location {
  font-size:13px;
  letter-spacing:0;
  font-weight:600;
  color:#5b6e82;
  margin:32px 0 0
}
.hero-location span {
  color:#a2b0bf;
  margin-inline:8px
}
.hero-location a { text-decoration:underline; text-decoration-color:#9cadbc; text-underline-offset:4px }
.hero-location a:hover { color:var(--blue) }
.section {
  padding-block:112px
}
.section-heading {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:12%;
  align-items:end;
  margin-bottom:52px
}
h2 {
  font:550 clamp(30px,3vw,42px)/1.22 var(--display);
  letter-spacing:-.025em;
  margin:21px 0 0
}
.section-heading>p {
  font-size:15px;
  color:var(--muted);
  line-height:1.85;
  margin:0 0 4px;
  max-width:420px
}
.capability-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:60px
}
.capability {
  display:grid;
  grid-template-columns:30px 1fr;
  gap:14px;
  border-top:1px solid var(--line);
  padding:29px 0 32px
}
.capability h3 {
  font:600 21px/1.3 var(--display);
  letter-spacing:-.035em;
  margin:0 0 12px
}
.capability p {
  font-size:15px;
  color:var(--muted);
  line-height:1.8;
  margin:0;
  max-width:440px
}
.practice {
  background:var(--deep);
  color:#fff;
  position:relative
}
.practice-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12%;
  align-items:center
}
.eyebrow.light {
  color:#a5c6e8
}
.practice h2 {
  font-size:clamp(30px,3vw,42px);
  line-height:1.13;
  margin-top:25px
}
.practice-copy>p:not(.eyebrow) {
  color:#b4c4d4;
  font-size:15px;
  max-width:410px;
  margin:29px 0
}
.inverse {
  color:#e2edf8;
  border-color:#7791a9
}
.inverse:hover {
  color:#96c5ff
}
.workflow-example {
  border:1px solid #536b83;
  padding:31px;
  background:#152d49
}
.example-heading {
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center
}
.example-heading .micro {
  color:#adbed0;
  font-size:13px
}
.example-tag {
  font-size:13px;
  background:#254363;
  padding:6px 9px;
  color:#c9d9e8;
  letter-spacing:0
}
.workflow-example h3 {
  font:500 27px/1.35 var(--display);
  letter-spacing:-.045em;
  margin:33px 0
}
.workflow-sources {
  display:flex;
  gap:8px
}
.workflow-sources>span {
  flex:1;
  border:1px solid #52708a;
  background:#213b58;
  padding:12px 8px;
  font-size:13px;
  color:#d5e2ef;
  line-height:1.5
}
.workflow-sources>span>span {
  display:block;
  font-size:22px;
  color:#85b3e8;
  margin-bottom:10px
}
.workflow-line {
  display:flex;
  justify-content:space-around;
  gap:15px;
  position:relative;
  margin:26px 0;
  padding-block:15px;
  font-size:13px;
  letter-spacing:.15em;
  color:#a9c5e2;
  border-block:1px solid #3c5671
}
.workflow-line::before,.workflow-line::after {
  content:'';
  position:absolute;
  left:50%;
  width:1px;
  height:26px;
  background:#6688a9
}
.workflow-line::before {
  bottom:100%
}
.workflow-line::after {
  top:100%
}
.workflow-output {
  border-left:2px solid #78b7ff;
  background:#284769;
  padding:21px 20px;
  margin-top:27px
}
.output-title {
  display:flex;
  gap:13px;
  align-items:center;
  font-size:12px
}
.output-check {
  border:1px solid #a8cdf5;
  border-radius:50%;
  height:21px;
  width:21px;
  flex-shrink:0;
  line-height:19px;
  text-align:center;
  color:#c6e0fb
}
.workflow-output ul {
  list-style:none;
  padding:0 0 0 34px;
  margin:13px 0 0;
  color:#c7d7e7;
  font-size:15px;
  line-height:2
}
.workflow-output li::before {
  content:'';
  display:inline-block;
  width:4px;
  height:4px;
  background:currentColor;
  vertical-align:middle;
  margin-right:8px;
  color:#83a8d0
}
.example-note {
  font-size:13px;
  line-height:1.7;
  color:#9db3c8;
  margin:22px 0 0
}
.delivery-note {
  display:flex;
  align-items:center;
  gap:26px;
  border-bottom:1px solid var(--line);
  padding:31px 0
}
.delivery-note h3 {
  font-size:16px;
  font-weight:550;
  margin:0 0 5px
}
.delivery-note p {
  font-size:15px;
  margin:0;
  color:var(--muted)
}
.delivery-note>.micro {
  margin-left:auto;
  white-space:nowrap;
  font-size:13px;
  color:#647c91
}
.approach {
  background:#eaf0f4
}
.approach .section-heading {
  grid-template-columns:1.4fr .7fr;
  gap:8%
}
.approach-steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  list-style:none;
  margin:0;
  padding:0
}
.approach-steps li {
  padding:28px 28px 24px 0;
  border-top:1px solid #aec0cf;
  position:relative
}
.approach-steps li+li {
  padding-left:28px;
  border-left:1px solid #c7d3de
}
.step-number {
  font-size:13px;
  color:var(--blue);
  letter-spacing:.05em
}
.approach-steps h3 {
  font:600 23px/1.3 var(--display);
  letter-spacing:-.035em;
  margin:27px 0 13px
}
.approach-steps p {
  color:var(--muted);
  font-size:15px;
  line-height:1.85;
  margin:0 0 25px
}
.approach-steps .micro {
  font-size:13px;
  letter-spacing:0;
  color:#60788f
}
.responsibility-note {
  border-top:1px solid #bdcdd9;
  padding-top:26px;
  margin:23px 0 0;
  font-size:12px;
  color:#50667b;
  display:flex;
  gap:15px
}
.responsibility-note>span {
  font-size:20px;
  line-height:1.4;
  color:var(--blue)
}
.experience-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13%
}
.experience-intro {
  font-size:16px;
  line-height:1.85;
  color:var(--muted);
  max-width:410px;
  margin-top:28px
}
.experience-context {
  font-size:13px;
  line-height:1.8;
  color:#66798b;
  max-width:360px;
  margin-top:30px
}
.experience-record {
  border-top:1px solid var(--line);
  padding:29px 0
}
.experience-record:last-child {
  border-bottom:1px solid var(--line)
}
.experience-brand {
  display:flex;
  gap:26px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:24px;
  min-height:56px
}
.mercedes-logo {
  width:64px;
  height:64px
}
.nsp-logo {
  width:108px;
  height:50px;
  object-fit:contain;
  object-position:left center
}
.aroona-logo {
  width:112px;
  height:32px;
  object-fit:contain;
  object-position:left center;
  filter:invert(1);
  mix-blend-mode:multiply
}
.experience-brand>.micro {
  font-size:13px;
  letter-spacing:0;
  color:#6a7e90;
  text-align:right
}
.experience-record h3 {
  font:600 21px/1.3 var(--display);
  letter-spacing:-.035em;
  margin:0 0 12px
}
.experience-record p {
  font-size:15px;
  line-height:1.8;
  color:var(--muted);
  margin:0;
  max-width:490px
}
.faq {
  border-top:1px solid var(--line);
  padding-block:81px 104px
}
.faq-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:10%
}
.faq h2 {
  font-size:clamp(30px,3vw,42px)
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-list details {
  border-bottom:1px solid var(--line)
}
.faq-list summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  padding:22px 0;
  list-style:none;
  font-size:15px;
  line-height:1.6;
  font-weight:550;
  cursor:pointer
}
.faq-list summary span {
  font-size:23px;
  color:var(--blue);
  flex-shrink:0
}
.faq-list details[open] summary span {
  transform:rotate(45deg)
}
.faq-list p {
  margin:0 34px 24px 0;
  color:var(--muted);
  font-size:15px;
  line-height:1.9
}
.contact {
  background:var(--navy);
  color:#fff
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12%;
  align-items:start
}
.contact-copy {
  padding-top:14px
}
.contact h2 {
  font-size:clamp(30px,3vw,42px);
  line-height:1.13;
  margin-top:29px
}
.contact-copy>p:not(.eyebrow) {
  color:#bac9d7;
  font-size:15px;
  max-width:385px;
  line-height:1.8;
  margin:29px 0
}
.contact-email {
  display:inline-flex;
  align-items:center;
  gap:30px;
  border-bottom:1px solid #8fa7bd;
  padding-block:7px;
  font-size:20px;
  letter-spacing:-.01em
}
.contact-email>span {
  color:#8fbfff
}
.contact-email:hover {
  color:#9fc6ff
}
.next-step {
  border-top:1px solid #3c536c;
  margin-top:56px;
  padding-top:23px;
  max-width:365px
}
.next-step .micro {
  font-size:13px;
  color:#9ebddc
}
.next-step p {
  font-size:15px;
  color:#bdcddc;
  line-height:1.9
}
.contact-location {
  display:block;
  font-size:9px;
  color:#a5bdd3;
  margin-top:35px
}
.form-panel {
  background:var(--paper);
  padding:37px;
  color:var(--navy)
}
.contact-copy .callback-invitation {
  font-size:15px;
  max-width:365px;
  margin:25px 0 0
}
.callback-invitation a {
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px
}
.callback-invitation a:hover {
  color:#9fc6ff
}
.request-option {
  scroll-margin-top:115px
}
.request-option+.request-option {
  border-top:1px solid #c6d1da;
  margin-top:26px;
  padding-top:22px
}
.request-option>summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  list-style:none;
  cursor:pointer;
  font-size:17px;
  font-weight:600;
  line-height:1.45;
  padding-block:4px
}
.request-option>summary::-webkit-details-marker {
  display:none
}
.request-option-indicator {
  flex-shrink:0;
  font-size:24px;
  line-height:1;
  font-weight:400;
  color:var(--blue)
}
.request-option[open]>summary .request-option-indicator {
  transform:rotate(45deg)
}
.request-option-content {
  padding-top:23px
}
.request-option-content .form-intro {
  line-height:1.65
}
.field-optional {
  color:var(--muted);
  font-weight:400
}
.form-email-alternative {
  color:var(--muted);
  font-size:14px;
  margin-bottom:0
}
.form-email-alternative a {
  text-decoration:underline;
  text-underline-offset:3px
}
.form-panel h3 {
  font:600 23px/1.3 var(--display);
  letter-spacing:-.035em;
  margin:0 0 8px
}
.form-intro {
  font-size:12px;
  color:var(--muted);
  margin:0 0 26px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.form-panel label {
  display:block;
  font-size:13px;
  font-weight:600;
  line-height:1.5;
  margin-bottom:17px
}
.form-panel input,.form-panel textarea,.form-panel select {
  display:block;
  width:100%;
  margin-top:7px;
  border:1px solid #bdc9d2;
  border-radius:1px;
  background:#fff;
  min-height:47px;
  padding:11px 12px;
  color:var(--navy);
  font-size:13px;
  line-height:1.5;
  outline:none;
  resize:vertical
}
.form-panel input:focus,.form-panel textarea:focus,.form-panel select:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 2px #1264d51a
}
.form-panel input::placeholder,.form-panel textarea::placeholder {
  color:#64717d
}
.field-hint {
  font-size:13px;
  color:var(--muted);
  margin:-7px 0 20px
}
.form-submit {
  width:100%;
  font-size:13px
}
.form-verification {
  max-width:100%;
  min-width:0;
  margin:0 0 12px
}
.form-verification:empty {
  display:none
}
.form-verification iframe {
  max-width:100%
}
.form-disclaimer {
  font-size:13px;
  color:#607285;
  line-height:1.8;
  margin:17px 0 0
}
.form-disclaimer a {
  text-decoration:underline;
  text-underline-offset:3px
}
.form-message:empty {
  display:none
}
.form-message {
  font-size:12px;
  line-height:1.8;
  margin-top:18px
}
.form-message.error {
  border-left:2px solid #b53131;
  padding-left:12px;
  color:#9a2424
}
.form-message a {
  text-decoration:underline
}
.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}
.form-success {
  min-height:420px;
  display:flex;
  flex-direction:column;
  justify-content:center
}
.success-icon {
  border:1px solid #87b99e;
  background:#e0eee6;
  color:#267048;
  width:49px;
  height:49px;
  line-height:47px;
  text-align:center;
  border-radius:50%;
  font-size:24px;
  margin-bottom:24px
}
.form-success h3 {
  font-size:29px;
  margin-top:16px
}
.form-success>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  line-height:1.8
}
.form-success .text-link {
  align-self:flex-start;
  border:0;
  border-bottom:1px solid #9cadbc;
  background:none;
  color:var(--navy);
  padding-inline:0;
  margin-top:20px
}
.success-reference {
  font-size:10px!important
}
.site-footer {
  background:#091d34;
  color:#c5d1dc
}
.privacy-page {
  max-width:830px;
  padding-block:70px 100px
}
.privacy-page h1 {
  font:550 clamp(39px,5vw,59px)/1.15 var(--display);
  letter-spacing:-.05em;
  margin-top:45px
}
.privacy-page h2 {
  font-size:clamp(30px,3vw,42px);
  margin-top:36px
}
.privacy-page p,.privacy-page li {
  font-size:15px;
  color:var(--muted)
}
.privacy-page a:not(.brand) {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px
}
.nsp-logo {
  width:64px;
  height:56px;
  filter:brightness(0);
  object-fit:contain
}
@media(min-width:1600px) {
  .hero-grid {
    padding-block:90px 80px
  }
  .hero h1 {
    font-size:58px
  }
}
@media(max-width:1180px) {
  .wrap {
    width:calc(100% - 72px)
  }
  .header-inner {
    gap:23px
  }
  .desktop-nav {
    gap:19px;
    font-size:12px
  }
  .brand img {
    width:155px
  }
  .button-small {min-height:46px;padding:12px 17px;font-size:13px;gap:18px;background:var(--navy);border-color:var(--navy)}
  .hero-grid {
    gap:4%
  }
  .hero h1 {
    font-size:58px
  }
  .hero-actions {
    flex-wrap:wrap;
    gap:19px
  }
.capability-list {
    column-gap:38px
  }
  .practice-grid,.experience-grid,.contact-grid {
    gap:7%
  }
  .section-heading {
    gap:8%
  }
}
@media(max-width:960px) {
  .desktop-nav,.header-cta {
    display:none
  }
  .menu-toggle {
    display:block;
    margin-left:auto
  }
  .header-inner {
    height:80px
  }
  .brand img {
    width:174px
  }
  .hero-grid {
    padding-block:55px;
    grid-template-columns:1.08fr 1fr
  }
  .hero h1 {
    font-size:clamp(40px,5.5vw,52px)
  }
  .hero-lead {
    font-size:18px
  }
  .hero-description {
    font-size:14px
  }
.hero-location {
    font-size:13px;
    line-height:1.9
  }
  .section {
    padding-block:87px
  }
  .section-heading {
    gap:6%
  }
  .capability h3 {
    font-size:19px
  }
  .capability {
    grid-template-columns:23px 1fr;
    gap:10px
  }
  .capability p {
    font-size:15px
  }
  .workflow-example {
    padding:23px
  }
  .example-tag {
    font-size:13px;
    padding:5px
  }
  .workflow-example h3 {
    font-size:24px
  }
  .workflow-sources>span {
    font-size:13px;
    padding:10px 6px
  }
  .practice-grid {
    gap:6%
  }
  .approach-steps {
    grid-template-columns:1fr 1fr;
    gap:25px 0
  }
  .approach-steps li:nth-child(3) {
    padding-left:0;
    border-left:0
  }
  .experience-grid {
    gap:6%
  }
  .experience-brand {
    gap:16px
  }
  .experience-brand>.micro {
    font-size:13px
  }
  .contact-grid {
    gap:6%
  }
  .form-panel {
    padding:27px
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .contact-email {
    font-size:18px
  }
}
@media(max-width:700px) {
  html {
    scroll-padding-top:92px
  }
  .wrap {
    width:calc(100% - 42px)
  }
  .header-inner {
    height:75px
  }
  .brand img {
    width:157px
  }
  .hero-grid {
    grid-template-columns:1fr;
    padding-block:46px 35px;
    gap:0
  }
  .hero h1 {
    font-size:clamp(39px,9.5vw,52px);
    margin:0 0 24px
  }
  .hero-lead {
    font-size:20px
  }
  .hero-description {
    font-size:15px;
    max-width:480px
  }
  .hero-actions {
    gap:21px;
    margin-top:26px
  }
  .hero-actions .button {
    font-size:12px;
    padding:16px 18px
  }
  .hero-location {
    margin-top:24px;
    font-size:13px
  }
.section {
    padding-block:72px
  }
  h2 {
    font-size:clamp(30px,3vw,42px)
  }
  .section-heading {
    grid-template-columns:1fr;
    gap:23px;
    margin-bottom:34px
  }
  .section-heading>p {
    font-size:14px;
    max-width:500px
  }
  .capability-list {
    grid-template-columns:1fr
  }
  .capability {
    padding-block:25px;
    grid-template-columns:28px 1fr;
    gap:11px
  }
  .capability h3 {
    font-size:21px
  }
  .capability p {
    font-size:15px;
    margin-bottom:18px
  }
  .practice-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .practice h2 {
    font-size:clamp(30px,3vw,42px)
  }
  .practice-copy>p:not(.eyebrow) {
    font-size:15px
  }
  .workflow-example {
    padding:25px;
    max-width:540px
  }
  .workflow-example h3 {
    font-size:25px
  }
  .workflow-sources>span {
    font-size:13px;
    padding:11px 8px
  }
  .delivery-note {
    align-items:start;
    gap:17px;
    padding-block:25px
  }
  .delivery-note h3 {
    font-size:14px
  }
  .delivery-note p {
    font-size:15px
  }
  .delivery-note>.micro {
    display:none
  }
  .approach .section-heading {
    grid-template-columns:1fr
  }
  .approach h2 {
    font-size:clamp(30px,3vw,42px)
  }
  .approach-steps {
    gap:21px 0
  }
  .approach-steps li {
    padding-right:20px
  }
  .approach-steps li+li {
    padding-left:20px
  }
  .approach-steps li:nth-child(3) {
    padding-left:0
  }
  .approach-steps h3 {
    font-size:21px;
    margin-top:21px
  }
  .approach-steps p {
    font-size:15px;
    margin-bottom:16px
  }
  .approach-steps .micro {
    font-size:13px
  }
  .responsibility-note {
    font-size:11px;
    line-height:1.9
  }
  .experience-grid {
    grid-template-columns:1fr;
    gap:31px
  }
  .experience-intro {
    font-size:15px;
    margin-top:23px
  }
  .experience-context {
    margin-top:20px
  }
  .experience-brand>.micro {
    font-size:13px
  }
  .experience-record h3 {
    font-size:21px
  }
  .faq-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .faq h2 {
    font-size:clamp(30px,3vw,42px)
  }
  .faq-list summary {
    font-size:15px
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:36px
  }
  .contact h2 {
    font-size:clamp(30px,3vw,42px)
  }
  .contact-copy {
    padding-top:0
  }
  .contact-copy>p:not(.eyebrow) {
    font-size:15px;
    max-width:420px
  }
  .contact-email {
    font-size:20px
  }
  .next-step {
    margin-top:30px;
    padding-top:20px
  }
  .contact-location {
    margin-top:22px
  }
  .form-panel {
    padding:27px 23px
  }
  .form-panel h3 {
    font-size:21px
  }
  .form-grid {
    grid-template-columns:1fr 1fr;
    gap:13px
  }
  .form-panel input,.form-panel textarea,.form-panel select {
    font-size:16px;
    min-height:48px
  }
  .form-submit {
    font-size:13px
  }
  .privacy-page {
    padding-block:40px 70px
  }
}
@media(max-width:380px) {
  .wrap {
    width:calc(100% - 34px)
  }
  .hero h1 {
    font-size:46px
  }
  .hero-actions {
    align-items:flex-start;
    flex-direction:column
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .workflow-example {
    padding:20px
  }
  .workflow-sources>span {
    font-size:13px
  }
  .example-tag {
    font-size:13px
  }
  .approach-steps {
    grid-template-columns:1fr
  }
  .approach-steps li+li {
    padding-left:0;
    border-left:0
  }
  .approach-steps li {
    padding-right:0
  }
  .experience-brand>.micro {
    font-size:13px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important
  }
}

/* Programme detail pages use a compact reading layout and the same brand system. */
.training-page {
  padding-block:38px 88px
}
.breadcrumbs {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  color:var(--muted);
  font-size:14px;
  margin-bottom:40px
}
.breadcrumbs a:hover {
  color:var(--blue)
}
.training-intro {
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:10%;
  align-items:start;
  padding-bottom:58px;
  border-bottom:1px solid var(--line)
}
.training-page h1,.not-found h1 {
  font:550 clamp(34px,3.5vw,52px)/1.2 var(--display);
  letter-spacing:-.025em;
  margin:0 0 22px;
  max-width:700px
}
.training-lead {
  font-size:18px;
  line-height:1.7;
  color:var(--muted);
  max-width:670px;
  margin:0 0 30px
}
.training-facts {
  margin:0;
  padding-left:28px;
  border-left:2px solid var(--blue)
}
.training-facts>div+div {
  margin-top:26px
}
.training-facts dt {
  color:var(--muted);
  font-size:14px
}
.training-facts dd {
  margin:5px 0 0;
  font-size:17px;
  font-weight:500
}
.training-content {
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:10%;
  padding-top:20px
}
.programme-section {
  padding-top:32px
}
.programme-section h2 {
  font-size:27px;
  margin:0 0 19px
}
.programme-section p,.programme-section li,.training-aside p {
  color:var(--muted);
  font-size:16px;
  line-height:1.85
}
.programme-section ul {
  padding-left:20px
}
.programme-section a { color:#1556a6; text-decoration:underline; text-underline-offset:3px }
.programme-section li {
  margin-bottom:13px
}
.training-aside {
  padding-top:34px
}
.training-aside h2 {
  font-size:23px;
  margin:0
}
.training-aside h3 {
  font-size:18px;
  margin-top:36px
}
.training-aside ul {
  list-style:none;
  padding:0;
  margin-bottom:30px
}
.training-aside li {
  border-top:1px solid var(--line);
  padding:12px 0;
  font-size:15px
}
.training-aside a:hover {
  color:var(--blue)
}
.training-aside .text-link {
  white-space:normal;
  font-size:14px
}
.not-found {
  min-height:65vh;
  padding-block:80px 90px
}
.not-found>.eyebrow {
  margin-bottom:20px
}
.not-found>p:not(.eyebrow) {
  color:var(--muted);
  font-size:17px;
  max-width:600px
}
.error-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:24px;
  margin-top:32px
}
.error-contact {
  border-top:1px solid var(--line);
  margin-top:48px;
  padding-top:20px;
  max-width:670px
}
.error-contact p {
  margin:4px 0;
  font-size:15px
}
.error-contact a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px
}
.error-header-link {
  margin-left:auto
}
.error-footer {
  padding-block:26px;
  font-size:14px
}

/* Shared editorial components: programme choices, evidence and information pages. */
.header-inner { height:84px }
.desktop-nav { font-size:14px; gap:24px }
.hero-grid { grid-template-columns:1.12fr .88fr; gap:7%; padding-block:68px 58px }
.hero-description { font-size:16px; line-height:1.75 }
.hero-actions .button { font-size:14px }
.text-link { font-size:14px; white-space:normal }
.experience-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:20px 32px; border-block:1px solid var(--line); padding-block:25px }
.experience-strip>p { grid-column:1/-1; font-size:14px; color:var(--muted); margin:0 }
.experience-strip>a { display:flex; align-items:center; gap:20px; font-size:14px; line-height:1.55; font-weight:550; justify-self:start; min-width:0 }
.experience-strip>a:hover { color:var(--blue) }
.experience-strip-copy { display:flex; flex-direction:column; gap:5px; min-width:0 }
.experience-strip-copy strong { font-size:14px; font-weight:600; line-height:1.5 }
.experience-strip-service { font-size:13px; font-weight:400; color:var(--muted); line-height:1.55 }
.experience-strip img { flex-shrink:0; object-fit:contain }
.experience-strip .experience-logo-nsp { filter:brightness(0) }
.experience-strip .experience-logo-aroona { width:86px; height:26px; filter:invert(1); mix-blend-mode:multiply }
.capability { display:block }
.capability h3 { letter-spacing:-.02em }
.capability p { font-size:15px; margin-bottom:0 }
.experience { background:#edf1f3; border-block:1px solid var(--line) }
.experience-record { padding-block:25px 29px; border-color:#c0cbd4 }
.experience-record:last-child { border-color:#c0cbd4 }
.experience-brand { margin-bottom:20px }
.experience-record p { font-size:15px }
.experience-intro { max-width:440px }
.practice-copy>p:not(.eyebrow),.contact-copy>p:not(.eyebrow) { font-size:16px }
.workflow-example { border:0; background:transparent; border-left:1px solid #45607b; padding:0 0 0 38px }
.workflow-example h3 { font-size:29px; letter-spacing:-.025em }
.workflow-sources>span { background:transparent; border:0; border-bottom:1px solid #52708a; padding:0 8px 12px 0; font-size:14px }
.workflow-line { letter-spacing:0; font-size:14px }
.workflow-output { padding:20px; background:#1d3957 }
.output-title { font-size:15px }
.workflow-output ul { font-size:14px }
.example-tag { background:transparent; padding:0 }
.programme-index { border-top:1px solid #b9c7d2 }
.programme-row { display:grid; grid-template-columns:1.1fr 1fr .65fr; gap:5%; padding:34px 0; border-bottom:1px solid #b9c7d2; align-items:start }
.programme-overview .micro { font-size:14px; color:var(--muted); line-height:1.6; margin:0 0 10px }
.programme-row h3 { font:550 25px/1.3 var(--font); letter-spacing:-.025em; margin:0 0 13px }
.programme-row h3 a:hover { color:var(--blue) }
.programme-duration { font-size:14px; color:#4f6479 }
.programme-row>p { font-size:15px; color:var(--muted); margin:0; line-height:1.85 }
.programme-links { display:flex; flex-direction:column; align-items:flex-start; gap:20px; padding-top:3px }
.programme-links .text-link { justify-content:space-between; gap:13px; width:100% }
.programme-enquire { font-size:14px; color:var(--muted); text-decoration:underline; text-underline-offset:4px; line-height:1.7 }
.programme-enquire:hover { color:var(--blue) }
.delivery-note p,.responsibility-note,.next-step p { font-size:15px }
.approach-steps p { font-size:15px }
.faq-list summary { font-size:16px }
.faq-list p { font-size:15px }
.contact-location { font-size:14px }
.form-intro { font-size:15px }
.form-panel input,.form-panel textarea,.form-panel select { font-size:16px }
.form-panel { padding:38px }
.form-success>p:not(.eyebrow) { font-size:15px }
.success-reference { font-size:13px!important }
.footer-top { display:grid; grid-template-columns:1.25fr 1fr .75fr; gap:9%; padding-block:62px 48px }
.footer-brand p { max-width:260px; font-size:15px; color:#b8c8d7; margin:18px 0 12px }
.footer-email { font-size:15px; text-decoration:underline; text-underline-offset:5px }
.footer-top nav { display:flex; flex-direction:column; align-items:flex-start; gap:10px; font-size:14px; line-height:1.7 }
.footer-top nav>p { color:#91a9c0; font-size:14px; margin:0 0 6px }
.footer-top nav a { display:inline-flex; gap:12px; align-items:center }
.footer-top a:hover,.footer-bottom a:hover { color:#a4cdff }
.footer-bottom { border-top:1px solid #34495e; padding-block:24px; display:flex; align-items:center; gap:24px; font-size:13px; color:#b0c0cf }
.footer-bottom p { margin:0 }
.footer-bottom p:nth-child(2) { margin-right:auto }
.footer-bottom a { display:inline-flex; align-items:center; gap:12px; min-height:36px }
.site-footer :focus-visible { outline-color:#a4cdff }
.information-page { padding-block:36px 100px }
.information-heading { padding-bottom:36px; border-bottom:1px solid var(--line); margin-bottom:45px }
.information-heading h1 { font:550 clamp(38px,4vw,56px)/1.2 var(--font); letter-spacing:-.035em; margin:13px 0 17px }
.information-lead { font-size:20px; color:var(--muted); max-width:680px; line-height:1.65; margin:0 0 22px }
.updated { font-size:14px; color:var(--muted); margin:0 }
.information-layout { display:grid; grid-template-columns:270px minmax(0,740px); gap:8%; align-items:start }
.information-index { position:sticky; top:115px }
.information-index p { font-size:14px; font-weight:600; margin:0 0 14px }
.information-index ol { list-style:none; padding:0; margin:0 }
.information-index li { margin-bottom:10px; font-size:14px; color:var(--muted); line-height:1.65 }
.information-index a:hover { color:var(--blue) }
.information-related { border-top:1px solid var(--line); padding-top:22px; margin-top:25px }
.information-related a { display:block; font-size:14px; color:var(--muted); margin:8px 0 }
.information-content section+section { margin-top:35px; padding-top:30px; border-top:1px solid var(--line) }
.information-content h2 { font-size:25px; letter-spacing:-.02em; margin:0 0 17px }
.information-content p,.information-content li { font-size:16px; line-height:1.9; color:var(--muted); margin:0 0 17px; overflow-wrap:anywhere }
.information-content a { color:#1556a6; text-decoration:underline; text-underline-offset:3px }
.information-contact { border-left:2px solid var(--blue); padding-left:24px; margin-top:45px }
.information-contact h2 { font-size:21px }
.not-found { display:grid; grid-template-columns:.65fr 1.35fr; gap:9%; align-items:center; min-height:65vh }
.error-code { font-size:clamp(90px,12vw,170px); line-height:1; color:#7994b0; font-weight:450; letter-spacing:-.06em; align-self:start; padding-top:20px }
.error-copy h1 { margin-top:15px; max-width:620px }
.error-copy>p:not(.eyebrow) { font-size:17px; color:var(--muted); max-width:580px }
@media(max-width:1180px) {
  .header-inner { gap:22px }
  .desktop-nav { font-size:13px; gap:18px }
  .button-small { font-size:12px; gap:14px }
  .programme-row { grid-template-columns:1fr 1fr; gap:24px 6% }
  .programme-links { grid-column:2; padding:0; margin-top:-10px; gap:15px }
  .programme-links .text-link { width:auto; gap:22px }
  .programme-overview { grid-row:span 2 }
  .footer-top { gap:6% }
  .information-layout { grid-template-columns:230px minmax(0,1fr); gap:7% }
}
@media(max-width:960px) {
  .header-inner { height:78px }
  .hero-grid { padding-block:48px; gap:5% }
.experience-strip { gap:25px }
  .experience-strip>a { gap:12px; font-size:13px }
  .information-layout { grid-template-columns:190px minmax(0,1fr); gap:6% }
}
@media(max-width:700px) {
  .header-inner { height:74px }
  .hero-grid { grid-template-columns:1fr; gap:0; padding-block:42px 36px }
  .hero h1 { font-size:clamp(37px,9.4vw,51px) }
  .hero-description { font-size:16px }
  .hero-actions { gap:20px }
  .hero-actions .button { font-size:14px; padding:17px 19px }
  .experience-strip { grid-template-columns:1fr; gap:22px; padding-block:24px }
  .experience-strip>p { grid-column:1/-1; max-width:none; font-size:14px }
  .experience-strip>a { justify-self:start; gap:12px; font-size:13px }
  .experience-strip img { width:32px; height:36px }
  .experience-strip .experience-logo-nsp { width:37px }
  .experience-strip .experience-logo-aroona { width:76px; height:24px }
  .section-heading>p { font-size:16px }
  .capability p,.experience-record p { font-size:15px }
  .workflow-example { padding:0 0 0 20px }
  .workflow-example h3 { font-size:26px }
  .workflow-sources { gap:10px }
  .workflow-sources>span { padding-right:0; font-size:13px }
  .workflow-output { padding:18px 15px }
  .workflow-output ul { padding-left:0; font-size:14px; line-height:1.8 }
  .output-title { font-size:14px }
  .programme-row { display:block; padding-block:28px }
  .programme-row h3 { font-size:24px; margin-bottom:10px }
  .programme-row>p { margin-top:18px }
  .programme-links { margin-top:21px; gap:15px }
  .programme-duration { font-size:14px }
  .delivery-note h3 { font-size:18px }
  .delivery-note p { font-size:15px }
  .approach-steps p { font-size:15px }
  .responsibility-note { font-size:14px }
  .faq-list summary { font-size:16px }
  .faq-list p { font-size:15px }
  .form-panel { padding:28px 23px }
  .form-grid { grid-template-columns:1fr; gap:0 }
  .footer-top { grid-template-columns:1fr 1fr; gap:34px 7%; padding-block:45px 34px }
  .footer-brand { grid-column:1/-1 }
  .footer-brand p { max-width:300px }
  .footer-top nav { gap:12px; font-size:14px }
  .footer-top nav a { align-items:flex-start }
  .footer-explore .arrow-icon { display:none }
  .footer-bottom { display:flex; flex-wrap:wrap; gap:10px 20px; padding-block:20px }
  .footer-bottom p:nth-child(2) { order:3; flex-basis:100%; margin:0 }
  .footer-bottom a { margin-left:auto }
  .information-page { padding-block:25px 64px }
  .information-heading { margin-bottom:30px; padding-bottom:27px }
  .information-lead { font-size:18px }
  .information-layout { display:flex; flex-direction:column; gap:30px }
  .information-index { position:static; width:100%; border-bottom:1px solid var(--line); padding-bottom:20px }
  .information-index ol { columns:2; column-gap:25px }
  .information-index li { break-inside:avoid; font-size:13px }
  .information-related { display:none }
  .information-content h2 { font-size:24px }
  .not-found { display:block; min-height:0; padding-block:40px 65px }
  .error-code { font-size:80px; padding:0; margin-bottom:25px }
  .error-copy h1 { font-size:37px }
}
@media(max-width:380px) {
  .hero h1 { font-size:36px }
  .experience-strip>a { gap:12px }
  .information-index ol { columns:1 }
  .footer-top { grid-template-columns:1fr; gap:28px }
  .footer-brand { grid-column:auto }
}
@media(max-width:700px) {
  .training-intro,.training-content {
    grid-template-columns:1fr;
    gap:32px
  }
  .training-page {
    padding-block:27px 60px
  }
  .breadcrumbs {
    margin-bottom:27px;
    font-size:13px
  }
  .training-lead {
    font-size:17px
  }
  .training-intro {
    padding-bottom:33px
  }
  .training-facts {
    padding-left:18px
  }
  .training-aside {
    border-top:1px solid var(--line)
  }
  .not-found {
    padding-block:50px 65px
  }
  .programme-section h2 {
    font-size:25px
  }
}

/* Brand geometry and programme catalogue. Artwork is local SVG. */
.hero {
  background:linear-gradient(112deg,var(--paper) 62%,#e7eef4 62%);
}
.experience-band {
  background:var(--paper);
}
.experience-strip {
  border-top:2px solid var(--navy);
}
.experience-strip>a {
  padding-block:5px;
}
.capability {
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:20px;
}
.capability-mark {
  margin-top:2px;
  color:var(--navy);
}
.experience-grid>div:first-child {
  border-left:3px solid var(--blue);
  padding-left:28px;
  align-self:start;
}
.experience-brand {
  padding-bottom:18px;
  border-bottom:1px solid #d4dde4;
}
.practice {
  background:linear-gradient(120deg,var(--deep) 68%,#123452 68%);
}
.workflow-example {
  background:#15324d;
  padding:32px;
  border:1px solid #47647f;
  border-top:3px solid #80b8ff;
}
.workflow-example h3 {
  margin-top:25px;
}
.workflow-line {
  justify-content:space-between;
}
.workflow-output {
  background:#21425e;
}
.programmes {
  background:#eef2f4;
}
.programme-layout {
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  align-items:stretch;
  border-bottom:1px solid #b9c7d2;
}
.programme-intro {
  padding:64px 52px;
  background:var(--navy);
  color:var(--white);
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
}
.programme-intro::after {
  content:'';
  width:190px;
  height:310px;
  position:absolute;
  right:-100px;
  bottom:-95px;
  border-left:30px solid #1d5081;
  border-right:30px solid #1d5081;
  transform:rotate(34deg);
  pointer-events:none;
}
.programme-intro>* {
  position:relative;
  z-index:1;
}
.programme-intro .eyebrow {
  color:#a5c6e8;
}
.programme-intro h2 {
  font-size:clamp(32px,3.1vw,45px);
  line-height:1.3;
  margin:32px 0 30px;
  max-width:350px;
  scroll-margin-top:140px;
}
.programme-intro>p:not(.eyebrow) {
  font-size:16px;
  line-height:1.8;
  color:#c0cfdd;
  margin:0;
  max-width:320px;
}
.programme-format {
  display:flex;
  flex-direction:column;
  gap:7px;
  border-top:1px solid #49617a;
  padding-top:23px;
  margin-top:auto;
  padding-bottom:5px;
  font-size:14px;
  line-height:1.6;
}
.programme-format span+span {
  color:#b5c8da;
}
.programme-index {
  border-top:1px solid #b9c7d2;
  background:#fbfcfb;
  min-width:0;
}
.programme-row {
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:25px;
  padding:30px 32px;
  border-bottom:1px solid #b9c7d2;
}
.programme-row:last-child {
  border-bottom:0;
}
.programme-row:focus-within {
  background:#edf4fc;
}
.programme-mark {
  width:88px;
  height:72px;
  margin-top:15px;
}
.programme-overview {
  grid-row:auto;
}
.programme-overview .micro {
  font-size:13px;
  margin-bottom:7px;
}
.programme-row h3 {
  font-size:26px;
  font-weight:600;
  margin:0 0 6px;
}
.programme-duration {
  display:inline-block;
  color:#2362a2;
  font-size:13px;
  font-weight:600;
}
.programme-content>p {
  margin:13px 0 17px;
  font-size:15px;
  color:var(--muted);
  line-height:1.75;
  max-width:460px;
}
.programme-links {
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:11px 22px;
  margin:0;
  padding:0;
}
.programme-links .text-link {
  width:auto;
  gap:22px;
  font-size:14px;
  padding-bottom:3px;
}
.programme-enquire {
  font-size:13px;
}
.delivery-note {
  padding:26px 0 0;
  border-bottom:0;
}
.delivery-note h3 {
  font-size:20px;
}
.approach {
  background:var(--paper);
}
.approach-steps {
  gap:28px;
}
.approach-steps li,
.approach-steps li+li {
  border-left:0;
  border-top:2px solid #98aec2;
  padding:30px 0 0;
}
.approach-steps li::before {
  content:'';
  position:absolute;
  width:18px;
  height:5px;
  left:0;
  top:-3px;
  background:var(--blue);
}
.step-number {
  font-size:44px;
  line-height:1;
  letter-spacing:-.05em;
  color:#7891a7;
  font-weight:400;
}
.approach-steps h3 {
  margin-top:22px;
}
.contact {
  background:linear-gradient(125deg,var(--navy) 67%,#173b60 67%);
  border-top:5px solid var(--blue);
}
.training-intro {
  border-top:3px solid var(--navy);
  padding-top:38px;
}
.training-facts {
  background:#e7eef4;
  padding:28px;
  border-left:3px solid var(--blue);
}
.training-aside {
  background:#e7eef4;
  padding:30px;
  margin-top:34px;
  align-self:start;
  border-top:3px solid var(--blue);
}
.sydney-programmes {
  margin-block:52px;
}
@media (hover:hover) {
  .programme-row:hover {
    background:#edf4fc;
  }
  .programme-row:hover h3 {
    color:var(--blue);
  }
}
@media(max-width:1180px) {
  .programme-layout {
    grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  }
  .programme-intro {
    padding:48px 36px;
  }
  .programme-intro h2 {
    scroll-margin-top:124px;
  }
  .programme-row {
    grid-template-columns:66px minmax(0,1fr);
    gap:18px;
    padding:27px 25px;
  }
  .programme-mark {
    width:66px;
    height:60px;
  }
}
@media(max-width:960px) {
  .programme-layout {
    grid-template-columns:1fr;
  }
  .programme-intro {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    column-gap:32px;
    padding:44px 36px;
  }
  .programme-intro .eyebrow {
    grid-column:1/-1;
  }
  .programme-intro h2 {
    margin:22px 0 0;
    max-width:380px;
    scroll-margin-top:112px;
  }
  .programme-intro>p:not(.eyebrow) {
    margin-top:18px;
  }
  .programme-format {
    grid-column:1/-1;
    flex-direction:row;
    flex-wrap:wrap;
    gap:8px 26px;
    margin-top:27px;
    padding-top:18px;
  }
  .programme-row {
    grid-template-columns:88px minmax(0,1fr);
    padding:30px 36px;
    gap:28px;
  }
  .programme-mark {
    width:88px;
    height:72px;
  }
  .workflow-example {
    padding:26px;
  }
  .approach-steps {
    gap:30px;
  }
}
@media(max-width:700px) {
  .hero {
    background:var(--paper);
    border-top:4px solid #dbe7f2;
  }
  .capability {
    grid-template-columns:30px minmax(0,1fr);
    gap:17px;
    padding-block:24px;
  }
  .capability-mark {
    width:29px;
    height:29px;
  }
  .experience-grid>div:first-child {
    padding-left:21px;
  }
  .experience-brand {
    padding-bottom:16px;
    gap:18px;
  }
  .practice {
    background:var(--deep);
  }
  .workflow-example {
    padding:24px 20px;
  }
  .example-heading {
    flex-wrap:wrap;
  }
  .programme-intro {
    display:block;
    padding:38px 28px;
  }
  .programme-intro h2 {
    font-size:34px;
    line-height:1.3;
    margin:24px 0 28px;
    scroll-margin-top:104px;
  }
  .programme-intro>p:not(.eyebrow) {
    font-size:15px;
    margin:0;
  }
  .programme-format {
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-top:28px;
    padding-top:17px;
    font-size:13px;
  }
  .programme-row {
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:15px;
    padding:27px 20px;
  }
  .programme-mark {
    width:48px;
    height:44px;
    margin-top:3px;
  }
  .programme-row h3 {
    font-size:23px;
    margin-bottom:8px;
  }
  .programme-overview .micro {
    font-size:12px;
    line-height:1.5;
    margin-bottom:10px;
  }
  .programme-content>p {
    font-size:15px;
    margin:15px 0 18px;
  }
  .programme-links {
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }
  .programme-enquire {
    font-size:13px;
  }
  .delivery-note h3 {
    font-size:20px;
  }
  .approach-steps {
    display:block;
  }
  .approach-steps li,
  .approach-steps li+li {
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    column-gap:22px;
    padding:25px 0 22px;
  }
  .step-number {
    grid-row:1/3;
    font-size:37px;
    padding-top:3px;
  }
  .approach-steps h3 {
    margin:0 0 10px;
  }
  .approach-steps p {
    margin:0;
  }
  .responsibility-note {
    margin-top:10px;
  }
  .training-intro {
    padding-top:28px;
  }
  .training-aside,.training-facts {
    padding:24px;
  }
  .training-aside {
    margin-top:0;
  }
  .sydney-programmes {
    margin-block:35px;
  }
}

/* Local and self-hosted AI environments. */
.local-ai {
  background:#fff;
  border-top:1px solid var(--line);
}
.local-ai-main {
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:8%;
  align-items:center;
}
.local-ai-copy h2 {
  max-width:510px;
  margin-bottom:25px;
}
.local-ai-copy>p:not(.eyebrow) {
  color:var(--muted);
  font-size:16px;
  line-height:1.8;
  margin:0 0 18px;
  max-width:510px;
}
.local-ai-copy .text-link {
  margin-top:8px;
}
.model-range {
  margin:0;
  padding:38px 36px 30px;
  background:var(--navy);
  color:#fff;
  border-top:4px solid var(--blue);
}
.model-range-heading {
  font-size:14px;
  color:#bdd3e8;
  line-height:1.6;
  padding-bottom:25px;
  border-bottom:1px solid #45617d;
}
.model-range-endpoints {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px;
  padding-block:30px;
}
.model-endpoint+.model-endpoint {
  border-left:1px solid #45617d;
  padding-left:27px;
}
.model-hardware {
  display:block;
  width:78px;
  height:58px;
  margin-bottom:23px;
  color:#c1d9f0;
}
.model-environment {
  font-size:14px;
  line-height:1.5;
  color:#bdd3e8;
  margin:0 0 12px;
}
.model-title {
  font-size:28px;
  line-height:1.25;
  font-weight:550;
  letter-spacing:-.025em;
  margin:0 0 19px;
}
.model-detail {
  font-size:14px;
  color:#c0cfdd;
  line-height:1.75;
  margin:0;
}
.model-range figcaption {
  border-top:1px solid #45617d;
  padding-top:20px;
  color:#a9bfd4;
  font-size:12px;
  line-height:1.7;
}
.local-ai-priorities {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:45px;
  margin-top:55px;
}
.local-ai-priorities article {
  border-top:2px solid #b7cbdc;
  padding-top:24px;
}
.local-ai-priorities h3 {
  font-size:20px;
  font-weight:600;
  line-height:1.4;
  margin:0 0 12px;
  letter-spacing:-.02em;
}
.local-ai-priorities p {
  font-size:15px;
  line-height:1.8;
  color:var(--muted);
  margin:0;
}
@media(max-width:1180px) {
  .local-ai-main {
    gap:5%;
  }
  .model-range {
    padding:30px 26px 25px;
  }
  .model-range-endpoints {
    gap:20px;
  }
  .model-endpoint+.model-endpoint {
    padding-left:20px;
  }
}
@media(max-width:960px) {
  .local-ai-main {
    grid-template-columns:1fr;
    gap:36px;
  }
  .local-ai-copy h2,.local-ai-copy>p:not(.eyebrow) {
    max-width:650px;
  }
  .model-range {
    padding:36px;
  }
  .model-title {
    font-size:28px;
  }
  .local-ai-priorities {
    gap:25px;
  }
}
@media(max-width:700px) {
  .local-ai-copy>p:not(.eyebrow) {
    font-size:15px;
  }
  .model-range {
    padding:27px 24px 23px;
  }
  .model-range-heading {
    font-size:13px;
    padding-bottom:22px;
  }
  .model-range-endpoints {
    grid-template-columns:1fr;
    gap:26px;
    padding-block:25px;
  }
  .model-endpoint {
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    column-gap:22px;
    align-content:start;
  }
  .model-endpoint+.model-endpoint {
    border-left:0;
    border-top:1px solid #45617d;
    padding:25px 0 0;
  }
  .model-hardware {
    grid-row:1/4;
    width:48px;
    height:40px;
    margin:4px 0 0;
  }
  .model-title {
    font-size:25px;
    margin-bottom:13px;
  }
  .model-environment {
    font-size:13px;
    margin-bottom:10px;
  }
  .model-detail {
    font-size:14px;
  }
  .local-ai-priorities {
    grid-template-columns:1fr;
    gap:27px;
    margin-top:35px;
  }
  .local-ai-priorities article {
    padding-top:20px;
  }
}

/* Inline training process: four layers and one selected step. */
.hero-local-note {
  margin:14px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.hero-local-note a {
  text-decoration:underline;
  text-decoration-color:#acbac7;
  text-underline-offset:4px;
}
.hero-local-note a:hover {
  color:var(--blue);
}
.hero-process {
  min-width:0;
  align-self:center;
  padding-top:10px;
}
.process-heading {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid #a5b8ca;
}
.process-heading p {
  margin:0;
  font-size:14px;
  font-weight:600;
}
.process-instruction {
  color:var(--muted);
  font-size:12px;
  text-align:right;
}
.process-scene {
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
  user-select:none;
  -webkit-user-select:none;
  -webkit-user-drag:none;
  touch-action:manipulation;
}
.process-slab-art {
  transition:transform .2s ease;
  transform-box:fill-box;
  transform-origin:center;
}
.hero-process[data-enhanced="true"] .process-slab {
  cursor:pointer;
}
.process-slab.is-active .process-slab-art {
  transform:translateY(-8px);
}
.process-hit {
  pointer-events:all;
}
.process-outline {
  stroke:transparent;
  stroke-width:2.5px;
  pointer-events:none;
}
.process-slab.is-active .process-outline {
  stroke:var(--blue);
}
.process-callout {
  stroke:#829eb6;
  stroke-width:1;
}
.process-layer-number {
  fill:#526c84;
  font:500 19px var(--font);
}
.process-slab.is-active .process-callout {
  stroke:var(--blue);
}
.process-slab.is-active .process-layer-number {
  fill:var(--blue);
  font-weight:700;
}
.process-controls {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:4px;
  margin-top:1px;
}
.process-step {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:48px;
  padding:10px 5px;
  border:0;
  border-bottom:2px solid #becbd6;
  background:transparent;
  color:#536a7e;
  font-size:13px;
  font-weight:500;
  line-height:1.5;
}
.process-step-number {
  font-size:11px;
  font-weight:400;
}
.process-step.is-active {
  border-bottom-color:var(--blue);
  color:var(--navy);
  font-weight:650;
}
.process-step.is-active .process-step-number {
  color:var(--blue);
}
.process-panels {
  min-height:132px;
  padding-top:19px;
}
.process-panels article+article:not([hidden]) {
  margin-top:20px;
}
.process-panels h3 {
  font-size:20px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:-.02em;
  margin:0 0 8px;
}
.process-panels p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.75;
  max-width:460px;
}
.hero-process[data-enhanced="true"] .process-panels article {
  margin-top:0;
}
@media(max-width:1180px) {
  .process-controls {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px 12px;
  }
  .process-heading {
    align-items:flex-start;
  }
  .process-instruction {
    max-width:95px;
  }
  .process-panels {
    min-height:158px;
  }
}
@media(max-width:700px) {
  .hero-process {
    margin-top:37px;
    padding-top:22px;
    border-top:1px solid var(--line);
  }
  .process-scene {
    width:min(100%,310px);
    margin-inline:auto;
  }
  .process-layer-number {
    font-size:26px;
  }
  .process-heading {
    align-items:center;
    border-bottom:0;
    padding-bottom:0;
  }
  .process-instruction {
    max-width:125px;
  }
  .process-step {
    font-size:14px;
  }
  .process-step-number {
    font-size:12px;
  }
  .process-panels {
    min-height:145px;
    padding-top:20px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .process-slab-art {
    transition:none;
  }
  .process-slab.is-active .process-slab-art {
    transform:none;
  }
}

/* A working technical stage, with motion confined to the diagrams. */
.hero-process {
  position:relative;
  padding:24px 26px 12px;
  border:1px solid #3a5d7c;
  background:linear-gradient(145deg,#0b2037,#153954);
  color:#f3f8fd;
  box-shadow:0 22px 55px -34px #10274480;
}
.hero-process::before {
  content:'';
  position:absolute;
  top:-1px;
  left:-1px;
  width:84px;
  height:3px;
  background:#79baff;
}
.process-heading {
  align-items:center;
  border-bottom-color:#3c5a75;
  gap:14px;
}
.process-heading p {
  color:#eff6fc;
}
.process-instruction {
  display:block;
  margin-top:2px;
  max-width:none;
  text-align:left;
  color:#b6cbdc;
  font-size:11px;
}
.hero-process button:focus-visible {
  outline-color:#9bcdff;
  outline-offset:3px;
}
.process-grid-plane {
  opacity:.16;
}
.process-circuit {
  stroke:#4f7695;
  opacity:.55;
}
.process-signal {
  stroke:#8ac8ff;
  stroke-width:1.8;
  stroke-dasharray:18 240;
  stroke-dashoffset:0;
  opacity:.75;
}
.process-slab-art {
  transition:transform .28s cubic-bezier(.2,.7,.2,1);
}
.process-slab-assembly {
  transform-box:fill-box;
  transform-origin:center;
}
.process-outline {
  stroke:#7497b5;
  stroke-width:.75px;
}
.process-slab.is-active .process-outline {
  stroke:#93cbff;
  stroke-width:2.2px;
}
.process-callout {
  stroke:#7d9cb7;
}
.process-layer-number {
  fill:#bdcfe0;
}
.process-slab.is-active .process-callout {
  stroke:#93cbff;
}
.process-slab.is-active .process-layer-number {
  fill:#b9ddff;
}
.process-step {
  color:#bccfe0;
  border-bottom-color:#4a6881;
  font-size:12px;
}
.process-step.is-active {
  color:#fff;
  border-bottom-color:#91c8ff;
}
.process-step.is-active .process-step-number {
  color:#a4d4ff;
}
.process-panels {
  min-height:132px;
}
.process-panels h3 {
  color:#f5f9fe;
}
.process-panels p {
  color:#bfd0df;
  font-size:13px;
}
.approach-steps li::after {
  content:'';
  position:absolute;
  top:-2px;
  left:0;
  width:100%;
  height:2px;
  background:var(--blue);
  transform-origin:left center;
}
.workflow-line>span {
  position:relative;
}
.workflow-line>span::after {
  content:'';
  position:absolute;
  left:0;
  bottom:-16px;
  width:100%;
  height:2px;
  background:#92c9ff;
  transform-origin:left center;
}
@keyframes layer-assemble {
  from { transform:translateY(32px); opacity:.15; }
  to { transform:translateY(0); opacity:1; }
}
@keyframes signal-travel {
  0% { stroke-dashoffset:258; opacity:0; }
  10%,85% { opacity:.75; }
  100% { stroke-dashoffset:0; opacity:0; }
}
@keyframes connector-extend {
  from { transform:scaleX(0); }
  to { transform:scaleX(1); }
}
@keyframes hardware-trace {
  from { stroke-dashoffset:100; }
  to { stroke-dashoffset:0; }
}
@media(prefers-reduced-motion:no-preference) {
  html[data-motion="running"] .hero-process.has-entered:not(.motion-complete) .process-slab-assembly {
    animation:layer-assemble .64s cubic-bezier(.16,.75,.2,1) both;
  }
  html[data-motion="running"] .process-slab[data-process-layer="1"] .process-slab-assembly { animation-delay:.1s; }
  html[data-motion="running"] .process-slab[data-process-layer="2"] .process-slab-assembly { animation-delay:.2s; }
  html[data-motion="running"] .process-slab[data-process-layer="3"] .process-slab-assembly { animation-delay:.3s; }
  html[data-motion="running"] .hero-process.has-entered:not(.motion-complete) .process-signal {
    animation:signal-travel 3.2s linear .2s 1 both;
  }
  html[data-motion="running"] .hero-process.has-entered:not(.motion-complete) .process-signal-late { animation-delay:.5s; }
  html[data-motion="running"] .hero-process.has-entered:not(.motion-complete) .process-signal-short { animation-delay:.8s; }
  html[data-motion="running"] .approach-steps li.has-entered:not(.motion-complete)::after {
    animation:connector-extend .7s cubic-bezier(.2,.7,.2,1) both;
  }
  html[data-motion="running"] .approach-steps li:nth-child(2)::after { animation-delay:.12s; }
  html[data-motion="running"] .approach-steps li:nth-child(3)::after { animation-delay:.24s; }
  html[data-motion="running"] .approach-steps li:nth-child(4)::after { animation-delay:.36s; }
  html[data-motion="running"] .workflow-example.has-entered:not(.motion-complete) .workflow-line>span::after {
    animation:connector-extend .65s ease-out both;
  }
  html[data-motion="running"] .workflow-line>span:nth-child(2)::after { animation-delay:.2s; }
  html[data-motion="running"] .workflow-line>span:nth-child(3)::after { animation-delay:.4s; }
  html[data-motion="running"] .model-endpoint.has-entered:not(.motion-complete) .model-hardware-accent {
    stroke-dasharray:100;
    animation:hardware-trace .9s ease-out both;
  }

  html[data-motion="running"] :is(.button,.text-link,.footer-bottom>a) .arrow-icon {
    transition:transform .22s cubic-bezier(.2,.7,.2,1);
  }
  html[data-motion="running"] :is(.button,.text-link):is(:hover,:focus-visible) .arrow-icon {
    transform:translate(3px,-3px);
  }
  html[data-motion="running"] .text-link[href="#programmes"]:is(:hover,:focus-visible) .arrow-icon { transform:translateY(3px); }
  html[data-motion="running"] .footer-bottom>a:is(:hover,:focus-visible) .arrow-icon { transform:translateY(-3px); }
}
html[data-page-visible="false"] :is(.process-signal,.process-slab-assembly,.programme-detail,.programme-entry-trace,.model-hardware-accent),
html[data-page-visible="false"] .approach-steps li::after,
html[data-page-visible="false"] .workflow-line>span::after {
  animation-play-state:paused!important;
}
html[data-motion="paused"] .process-slab-art,
html[data-motion="paused"] .process-slab.is-active .process-slab-art {
  transition:none;
  transform:none;
}
@media(max-width:1180px) {
  .hero-process { padding:22px 20px 12px; }
  .process-heading { align-items:center; gap:8px; }
  .process-heading p { font-size:13px; }
  .process-instruction { max-width:none; font-size:10px; }
  .process-step { font-size:13px; }
  .process-panels { min-height:148px; }
}
@media(max-width:700px) {
  .hero-process { padding:20px 18px 10px; margin-top:38px; border-top:1px solid #3a5d7c; }
  .process-heading { padding-bottom:10px; border-bottom:1px solid #3c5a75; }
  .process-heading p { font-size:14px; }
  .process-instruction { font-size:10px; }
  .process-scene { width:min(100%,340px); margin-top:8px; }
  .process-step { font-size:14px; min-height:48px; }
  .process-panels { min-height:145px; }
  .process-panels p { font-size:13px; }
}
@media(max-width:380px) {
  .hero-process { padding-inline:14px; }
  .process-heading p { font-size:14px; }
  .process-instruction { max-width:none; }
}
@media(prefers-reduced-motion:reduce) {
  .process-slab-art { transition:none; }
  .process-slab.is-active .process-slab-art { transform:none; }
}

/* Programme diagrams: a single connector trace on entry, then deliberate
   interaction feedback. The complete diagram remains visible without motion. */
.programme-mark {
  overflow:visible;
}
.programme-entry-trace {
  stroke-dasharray:1;
  stroke-dashoffset:0;
}
.programme-signal {
  fill:none;
  stroke:#2589ff;
  stroke-width:1.8;
  stroke-dasharray:1;
  stroke-dashoffset:1;
  opacity:0;
}
@media (prefers-reduced-motion:no-preference) {
  html[data-motion="running"] .programme-row.motion-ready.has-entered:not(.motion-complete) .programme-entry-trace {
    animation:programme-connect .58s cubic-bezier(.2,.7,.2,1) both;
  }
  html[data-motion="running"] .programme-row.motion-ready.has-entered:not(.motion-complete) .programme-detail:not(.programme-entry-trace) {
    animation:programme-detail-in .58s ease-out both;
  }
  html:not([data-motion="paused"]) .programme-row .programme-signal {
    transition:stroke-dashoffset .48s cubic-bezier(.2,.7,.2,1),opacity .18s ease;
  }
}
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
  html:not([data-motion="paused"]) .programme-row:focus-within .programme-signal,
  html:not([data-motion="paused"]) .programme-row:hover .programme-signal {
    stroke-dashoffset:0;
    opacity:1;
  }
}
@keyframes programme-connect {
  from { stroke-dashoffset:1; }
  to { stroke-dashoffset:0; }
}
@keyframes programme-detail-in {
  from { opacity:.35; }
  to { opacity:1; }
}
@media (prefers-reduced-motion:reduce), (hover:none), (pointer:coarse) {
  .programme-row .programme-signal {
    transition:none;
    stroke-dashoffset:1;
    opacity:0;
  }
}
html[data-motion="paused"] .programme-row .programme-entry-trace,
html[data-motion="paused"] .programme-row .programme-detail {
  animation:none;
}
html[data-motion="paused"] .programme-row .programme-signal {
  transition:none;
  opacity:0;
}

/* Small diagrams extend the technical language into the experience records. */
.experience-record-heading {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px 22px;
  margin-bottom:16px;
}
.experience-record-heading h3 {
  flex:1 1 190px;
  margin:0;
}
.experience-circuit {
  display:block;
  width:136px;
  height:auto;
  flex:0 0 136px;
  overflow:visible;
  pointer-events:none;
}
.experience-terminal {
  stroke:#45627e;
}
.experience-link {
  stroke:#5f8fb9;
}
.experience-entry-trace,
.experience-hover-trace {
  stroke:var(--blue);
  stroke-width:1.7;
  stroke-dasharray:1;
  stroke-dashoffset:1;
  opacity:0;
}
@keyframes experience-connect {
  0% { stroke-dashoffset:1; opacity:0; }
  12% { opacity:1; }
  82% { stroke-dashoffset:0; opacity:1; }
  100% { stroke-dashoffset:0; opacity:0; }
}
@media(prefers-reduced-motion:no-preference) {
  html[data-motion="running"] .experience-record.has-entered:not(.motion-complete) .experience-entry-trace {
    animation:experience-connect 1.1s cubic-bezier(.2,.7,.2,1) both;
  }
  html[data-page-visible="false"] .experience-entry-trace {
    animation-play-state:paused;
  }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
  html[data-motion="running"] .experience-hover-trace {
    transition:stroke-dashoffset .45s cubic-bezier(.2,.7,.2,1),opacity .2s ease;
  }
  html[data-motion="running"] .experience-record:hover .experience-hover-trace {
    stroke-dashoffset:0;
    opacity:1;
  }
}
@media(max-width:700px) {
  .experience-record-heading { gap:14px 18px; margin-bottom:16px; }
  .experience-circuit { width:120px; flex-basis:120px; }
}

/* Shared precision details: a consistent line language beyond the hero. */
.desktop-nav a {
  position:relative;
  padding-block:5px;
}
.desktop-nav a::after {
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:left;
}
.desktop-nav a:is(:hover,:focus-visible,[aria-current="location"])::after {
  transform:scaleX(1);
}
.desktop-nav a[aria-current="location"],
.mobile-nav a[aria-current="location"] {
  color:var(--blue);
}
.capability {
  position:relative;
}
.capability::after {
  content:'';
  position:absolute;
  top:-1px;
  left:0;
  width:38px;
  height:2px;
  background:var(--blue);
  transform-origin:left;
}
.capability-accent {
  stroke-dasharray:1;
  stroke-dashoffset:0;
}
.capability-signal {
  stroke:#2589ff;
  stroke-dasharray:1;
  stroke-dashoffset:1;
  opacity:0;
}
.section-heading {
  position:relative;
}
.section-heading::before {
  content:'';
  position:absolute;
  right:0;
  top:-23px;
  width:84px;
  height:10px;
  border-top:1px solid #9db3c7;
  border-right:1px solid #9db3c7;
  transform-origin:right;
}
.section-heading::after {
  content:'';
  position:absolute;
  right:68px;
  top:-24px;
  width:16px;
  height:3px;
  background:var(--blue);
}
.next-step-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.contact-circuit {
  display:block;
  flex:0 0 108px;
  color:#8faec9;
  overflow:visible;
  pointer-events:none;
}
.contact-entry-trace {
  stroke-dasharray:1;
  stroke-dashoffset:0;
}
.form-panel {
  position:relative;
}
.form-panel::before,
.form-panel::after {
  content:'';
  position:absolute;
  width:24px;
  height:24px;
  pointer-events:none;
}
.form-panel::before {
  top:0;
  left:0;
  border-top:2px solid #5da1f1;
  border-left:2px solid #5da1f1;
}
.form-panel::after {
  right:0;
  bottom:0;
  border-right:2px solid #5da1f1;
  border-bottom:2px solid #5da1f1;
}
.form-panel label {
  position:relative;
}
.form-panel label::after {
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:38px;
  height:2px;
  background:var(--blue);
  opacity:0;
  transform:scaleX(0);
  transform-origin:left;
  pointer-events:none;
}
.form-panel label:focus-within::after {
  opacity:1;
  transform:scaleX(1);
}
.form-panel label:focus-within {
  color:#1556a6;
}
.faq-list details[open] {
  border-bottom-color:#6b9fd6;
}
.local-ai-priorities article,
.training-facts,
.training-aside,
.information-heading,
.information-contact,
.error-code,
.footer-brand {
  position:relative;
}
.local-ai-priorities article::after {
  content:'';
  position:absolute;
  left:0;
  top:-2px;
  width:44px;
  height:2px;
  background:var(--blue);
  transform-origin:left;
}
.training-facts::after,
.training-aside::after {
  content:'';
  position:absolute;
  top:0;
  right:0;
  width:36px;
  height:18px;
  border-top:2px solid #5b8ebc;
  border-right:2px solid #5b8ebc;
  transform-origin:right;
}
.programme-section h2 {
  position:relative;
  padding-left:19px;
}
.programme-section h2::before {
  content:'';
  position:absolute;
  left:0;
  top:.45em;
  width:7px;
  height:7px;
  border:1px solid #7299bd;
}
.information-heading::after {
  content:'';
  position:absolute;
  right:0;
  bottom:-1px;
  width:56px;
  height:3px;
  background:var(--blue);
}
.error-code::after {
  content:'';
  position:absolute;
  left:0;
  bottom:-18px;
  width:60px;
  height:8px;
  border-bottom:2px solid var(--blue);
  border-right:2px solid var(--blue);
}
.footer-brand::after {
  content:'';
  display:block;
  width:74px;
  height:12px;
  margin-top:23px;
  border-top:1px solid #52799a;
  border-right:1px solid #52799a;
  transform-origin:left;
}
.footer-top nav a,
.breadcrumbs a {
  text-decoration-color:transparent;
  text-underline-offset:5px;
}
.footer-top nav a:is(:hover,:focus-visible),
.breadcrumbs a:is(:hover,:focus-visible) {
  text-decoration:underline;
}
@keyframes detail-trace {
  from { stroke-dashoffset:1; }
  to { stroke-dashoffset:0; }
}
@keyframes answer-appear {
  from { opacity:.55; transform:translateY(4px); }
  to { opacity:1; transform:translateY(0); }
}
@media(prefers-reduced-motion:no-preference) {
  html[data-motion="running"] .desktop-nav a::after,
  html[data-motion="running"] .form-panel label::after {
    transition:transform .25s cubic-bezier(.2,.7,.2,1),opacity .2s ease;
  }
  html[data-motion="running"] :is(.faq-list summary>span,.request-option-indicator) {
    transition:transform .2s ease;
  }
  html[data-motion="running"] .faq-list details[open]>p {
    animation:answer-appear .24s ease-out both;
  }
  html[data-motion="running"] .capability.has-entered:not(.motion-complete) .capability-accent {
    animation:detail-trace .75s ease-out both;
  }
  html[data-motion="running"] .capability.has-entered:not(.motion-complete)::after,
  html[data-motion="running"] .section-heading.has-entered:not(.motion-complete)::before,
  html[data-motion="running"] .local-ai-priorities article.has-entered:not(.motion-complete)::after,
  html[data-motion="running"] :is(.training-facts,.training-aside).has-entered:not(.motion-complete)::after,
  html[data-motion="running"] .footer-brand.has-entered:not(.motion-complete)::after {
    animation:connector-extend .7s cubic-bezier(.2,.7,.2,1) both;
  }
  html[data-motion="running"] .contact-copy.has-entered:not(.motion-complete) .contact-entry-trace {
    animation:detail-trace .9s ease-out both;
  }
  html[data-motion="running"] .capability-signal {
    transition:stroke-dashoffset .4s ease,opacity .2s ease;
  }
  html[data-motion="running"] .contact-email .arrow-icon {
    transition:transform .22s ease;
  }
  html[data-motion="running"] .contact-email:is(:hover,:focus-visible) .arrow-icon {
    transform:translate(3px,-3px);
  }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
  html[data-motion="running"] .capability:hover .capability-signal {
    stroke-dashoffset:0;
    opacity:1;
  }
}
html[data-page-visible="false"] :is(.capability-accent,.contact-entry-trace,.experience-entry-trace),
html[data-page-visible="false"] .faq-list details[open]>p,
html[data-page-visible="false"] :is(.capability,.section-heading,.local-ai-priorities article,.training-facts,.training-aside,.footer-brand)::after,
html[data-page-visible="false"] .section-heading::before {
  animation-play-state:paused!important;
}
@media(max-width:700px) {
  .section-heading::before { width:62px; height:8px; }
  .section-heading::after { right:46px; }
  .contact-circuit { width:96px; flex-basis:96px; }
  .next-step-heading { gap:14px; }
  .programme-section h2 { padding-left:16px; }
}

/* Scroll reveals are armed only below the viewport by the optional runtime. */
.scroll-reveal {
  --reveal-x:0px;
  --reveal-y:18px;
  opacity:1;
  transform:none;
}
.programme-row.scroll-reveal,
.experience-record.scroll-reveal {
  --reveal-x:14px;
  --reveal-y:0px;
}
.section-heading.scroll-reveal {
  --reveal-y:12px;
}
@media(prefers-reduced-motion:no-preference) {
  html[data-motion="running"] .scroll-reveal {
    transition:opacity .55s ease,transform .6s cubic-bezier(.16,.75,.2,1);
  }
  html[data-motion="running"] .scroll-reveal.reveal-pending:not(:focus-within) {
    opacity:0;
    transform:translate(var(--reveal-x),var(--reveal-y));
  }
  html[data-motion="running"] .capability-list>.scroll-reveal:nth-child(even) {
    transition-delay:.07s;
  }
  html[data-motion="running"] .approach-steps>.scroll-reveal:nth-child(2) { transition-delay:.06s; }
  html[data-motion="running"] .approach-steps>.scroll-reveal:nth-child(3) { transition-delay:.12s; }
  html[data-motion="running"] .approach-steps>.scroll-reveal:nth-child(4) { transition-delay:.18s; }
  html[data-motion="running"] .local-ai-priorities>.scroll-reveal:nth-child(2) { transition-delay:.08s; }
  html[data-motion="running"] .local-ai-priorities>.scroll-reveal:nth-child(3) { transition-delay:.16s; }
}
html[data-motion="paused"] .scroll-reveal,
html[data-page-visible="false"] .scroll-reveal,
.scroll-reveal:focus-within {
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}
@media(max-width:700px) {
  .programme-row.scroll-reveal,
  .experience-record.scroll-reveal {
    --reveal-x:0px;
    --reveal-y:16px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .scroll-reveal {
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}
@media print {
  .scroll-reveal {
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
