:root {
  --blue:#283f92;
  --navy:#111c30;
  --ink:#172033;
  --muted:#4b5867;
  --line:#ced4da;
  --paper:#faf9f6;
  --light:#edf0f5;
  --white:#fff;
  --width:1312px;
  --gutter:clamp(20px,5vw,78px);
  --sans:"Segoe UI",Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:18px;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:17px/1.6 var(--sans);
  overflow-wrap:break-word;
}
a {
  color:var(--blue);
  text-underline-offset:.21em;
}
a:hover {
  text-decoration-thickness:2px;
}
button,input,select,textarea {
  font:inherit;
}
button {
  cursor:pointer;
}
button:disabled {
  opacity:.58;
  cursor:default;
}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid #dc8100;
  outline-offset:4px;
}
img {
  max-width:100%;
  height:auto;
  display:block;
}
figure,p,h1,h2,h3,h4 {
  margin:0;
}
h1,h2,h3,h4 {
  line-height:1.13;
}
p+p {
  margin-top:.9em;
}
h1,h2,.headline,.story-title {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.035em;
  text-wrap:balance;
}
h1 {
  font-size:clamp(2.3rem,4vw,3.7rem);
}
h2 {
  font-size:clamp(2rem,3.1vw,3.1rem);
}
h3 {
  font-weight:600;
  font-size:1.2rem;
}
.wrap {
  width:min(var(--width),calc(100% - 2 * var(--gutter)));
  margin-inline:auto;
}
.skip {
  position:absolute;
  top:0;
  left:1rem;
  transform:translateY(-160%);
  background:white;
  z-index:12;
  padding:10px 20px;
}
.skip:focus {
  transform:none;
}
.mast {
  background:white;
  border-top:4px solid var(--blue);
  border-bottom:1px solid var(--line);
}
.mast-inner {
  display:flex;
  gap:22px;
  align-items:center;
  justify-content:space-between;
  min-height:86px;
}
.brand {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.brand img {
  width:auto;
  height:62px;
  max-width:195px;
  object-fit:contain;
}
.nav {
  display:flex;
  gap:clamp(12px,2vw,30px);
  align-items:center;
}
.nav a,.menu,.service-menu summary {
  font:600 .91rem/1.3 var(--sans);
  color:var(--ink);
  text-decoration:none;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.nav a:hover,.nav [aria-current=page],.service-menu summary:hover {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:7px;
}
.service-menu {
  position:relative;
}
.service-menu summary {
  cursor:pointer;
  gap:6px;
  list-style:none;
}
.service-menu summary::-webkit-details-marker {
  display:none;
}
.service-menu summary:after {
  content:"";
  width:6px;
  height:6px;
  border-bottom:1.5px solid;
  border-right:1.5px solid;
  transform:rotate(45deg);
  margin-top:-3px;
}
.service-menu div {
  position:absolute;
  z-index:5;
  top:100%;
  left:-16px;
  background:white;
  border:1px solid var(--line);
  width:290px;
  padding:8px 16px;
}
.service-menu div a {
  display:flex;
  border-bottom:1px solid var(--line);
}
.service-menu div a:last-child {
  border:0;
}
.btn,.nav .btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  background:var(--blue);
  color:white;
  border:1px solid var(--blue);
  padding:12px 18px;
  text-decoration:none;
  min-height:46px;
  font:600 .91rem/1.35 var(--sans);
}
.btn:hover,.nav .btn:hover {
  background:#1c3077;
  color:white;
  text-decoration:none;
}
.btn.light {
  background:white;
  color:var(--blue);
  border-color:white;
}
.btn.light:hover {
  background:#e1e7f3;
}
.txtlink {
  display:inline-flex;
  align-items:center;
  gap:.55em;
  min-height:44px;
  text-decoration:none;
  font-weight:600;
  font-size:.94rem;
}
.txtlink:hover,.listlink:hover span {
  text-decoration:underline;
}
.arr {
  font-family:Arial,sans-serif;
  font-weight:400;
  font-size:1.16em;
  flex:none;
}
.menu {
  display:none;
  background:white;
  border:1px solid var(--line);
  padding:8px 12px;
}
.kicker {
  display:flex;
  align-items:center;
  gap:11px;
  font:650 .73rem/1.5 var(--sans);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:15px;
}
.kicker:before {
  content:"";
  width:28px;
  height:2px;
  background:currentColor;
  flex:none;
}
.homehero {
  padding:clamp(40px,5vw,80px) 0 clamp(32px,4vw,60px);
  background:var(--paper);
}
.hero-grid {
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  align-items:center;
  gap:clamp(30px,4vw,70px);
}
.homehero h1 {
  font-size:clamp(3.05rem,5.25vw,4.5rem);
  letter-spacing:-.054em;
  line-height:1.02;
  margin-bottom:20px;
}
.homehero h1 em {
  color:var(--blue);
  font-weight:400;
}
.lead {
  font-size:clamp(1.06rem,1.35vw,1.22rem);
  line-height:1.57;
  color:var(--muted);
  max-width:63ch;
}
.actions {
  display:flex;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:25px;
}
.visual {
  margin:0;
}
.visual img {
  width:100%;
  object-fit:contain;
  height:auto;
}
.visual figcaption,.caption {
  font-size:.76rem;
  color:var(--muted);
  line-height:1.48;
  padding-top:8px;
}
.hero-figure {
  position:relative;
}
.hero-figure:before {
  content:"";
  position:absolute;
  right:-8px;
  top:-8px;
  width:42px;
  height:42px;
  border-top:1px solid var(--blue);
  border-right:1px solid var(--blue);
}
.hero-caption {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--line);
  padding:8px 0;
}
.hero-caption span:last-child {
  font-variant-numeric:tabular-nums;
}
.section {
  padding:clamp(40px,5vw,76px) 0;
}
.section.white {
  background:white;
}
.section-top {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  margin-bottom:26px;
}
.section-top .kicker {
  margin-bottom:8px;
}
.practices {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(22px,4vw,64px);
}
.practice {
  border-top:2px solid var(--blue);
  padding:22px 0 0;
  display:flex;
  flex-direction:column;
  align-items:start;
}
.practice h3 {
  font:400 clamp(1.6rem,2.5vw,2.3rem)/1.14 var(--serif);
  letter-spacing:-.025em;
}
.practice p {
  color:var(--muted);
  max-width:50ch;
  margin:12px 0;
}
.practice .txtlink {
  margin-top:auto;
}
.intel {
  background:var(--navy);
  color:white;
}
.intel .kicker,.contactband .kicker {
  color:#c2cffd;
}
.intel-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(24px,4.5vw,70px);
  align-items:center;
}
.intel p {
  color:#e0e5ef;
  margin:16px 0 22px;
  max-width:48ch;
}
.intel figure img {
  width:100%;
  height:auto;
  border:1px solid #58637c;
}
.intel figcaption {
  color:#d2d9e6;
}
.pathways {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(26px,4.5vw,70px);
}
.listlink {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  min-height:55px;
  border-top:1px solid var(--line);
  color:var(--ink);
  font-weight:600;
  text-decoration:none;
  padding:9px 2px;
}
.listlink:last-child {
  border-bottom:1px solid var(--line);
}
.listlink .arr {
  color:var(--blue);
}
.stories {
  display:grid;
  grid-template-columns:1.17fr 1fr;
  gap:clamp(24px,4vw,64px);
}
.story,.rowstory {
  color:var(--ink);
  display:block;
  text-decoration:none;
}
.story .visual {
  margin-bottom:15px;
}
.story h3,.rowstory h3 {
  font:400 clamp(1.4rem,2.25vw,2rem)/1.2 var(--serif);
  letter-spacing:-.02em;
}
.story:hover h3,.rowstory:hover h3 {
  color:var(--blue);
  text-decoration:underline;
  text-decoration-thickness:1px;
}
.meta {
  display:block;
  color:var(--muted);
  font-size:.79rem;
  line-height:1.5;
  margin-bottom:8px;
  font-weight:600;
}
.story p,.rowstory p {
  color:var(--muted);
  line-height:1.55;
  margin-top:10px;
}
.rowstory {
  border-top:1px solid var(--line);
  padding:18px 0;
}
.rowstory:first-child {
  border-top:2px solid var(--blue);
}
.cases {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.case {
  border-top:1px solid var(--line);
  padding-top:15px;
}
.case h3 {
  font-size:1.12rem;
  margin:7px 0 8px;
}
.case p {
  font-size:1rem;
  color:var(--muted);
}
.band {
  background:#e8ecf3;
}
.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  list-style:none;
  counter-reset:steps;
  padding:0;
  margin:25px 0 0;
}
.steps li {
  counter-increment:steps;
  border-top:1px solid #afb9c7;
  padding-top:14px;
}
.steps li:before {
  content:counter(steps,decimal-leading-zero);
  font:italic 1.35rem var(--serif);
  color:var(--blue);
  display:block;
}
.steps strong {
  display:block;
  margin-top:6px;
}
.steps p {
  color:var(--muted);
  font-size:1rem;
}
.contactband {
  background:var(--blue);
  color:white;
  padding:35px 0;
}
.contactband .wrap {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}
.contactband h2 {
  font-size:clamp(1.7rem,2.6vw,2.5rem);
}
footer {
  background:white;
  padding:38px 0 18px;
  border-top:1px solid var(--line);
}
.footgrid {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr 1fr;
  gap:22px;
}
footer h2 {
  font:650 .8rem var(--sans);
  color:var(--muted);
  margin-bottom:7px;
  text-transform:uppercase;
  letter-spacing:.07em;
}
footer a {
  display:table;
  color:var(--ink);
  font-size:.91rem;
  padding:5px 0;
  text-decoration:none;
}
footer a:hover {
  text-decoration:underline;
}
.footline {
  font-size:.79rem;
  color:var(--muted);
  padding-top:16px;
  margin-top:24px;
  border-top:1px solid var(--line);
}
.footbrand {
  height:60px;
  width:auto;
  max-width:175px;
  object-fit:contain;
}
.crumb {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  color:var(--muted);
  font-size:.82rem;
  margin-bottom:22px;
}
.crumb a {
  color:inherit;
}
.pagehead {
  padding:32px 0 36px;
  border-bottom:1px solid var(--line);
}
.pagehead .lead {
  margin-top:18px;
}
.pagehead h1 {
  max-width:27ch;
}
.insidehero {
  grid-template-columns:1.1fr .9fr;
}
.insidehero h1 {
  max-width:20ch;
}
.reading-layout {
  display:grid;
  grid-template-columns:minmax(155px,.31fr) minmax(0,1fr);
  gap:clamp(36px,7vw,104px);
  align-items:start;
}
.toc {
  border-top:2px solid var(--blue);
  font-size:.9rem;
  padding-top:13px;
}
.toc strong {
  display:block;
  margin-bottom:10px;
}
.toc a {
  display:block;
  color:var(--muted);
  padding:7px 0;
  line-height:1.4;
  text-decoration:none;
}
.toc a:hover {
  text-decoration:underline;
}
.articletext {
  width:100%;
  max-width:75ch;
  min-width:0;
}
.articletext section+section {
  margin-top:38px;
  padding-top:23px;
  border-top:1px solid var(--line);
}
.articletext h2 {
  font-size:clamp(1.55rem,2.6vw,2.3rem);
  margin-bottom:16px;
}
.articletext h3,.articletext h4 {
  margin:1.4em 0 .5em;
  font-weight:600;
  line-height:1.3;
}
.articletext p,.articletext ul,.articletext ol,.articletext figure {
  margin:.7em 0;
}
.articletext img {
  max-height:520px;
  object-fit:contain;
  width:auto;
}
.articletext li+li {
  margin-top:.4em;
}
.articletext table {
  display:block;
  max-width:100%;
  overflow:auto;
  border-collapse:collapse;
  font-size:1rem;
}
.articletext th,.articletext td {
  padding:9px;
  border:1px solid var(--line);
  text-align:left;
}
.articletext>section:first-child>:first-child {
  margin-top:0;
}
.filters {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:16px;
}
.filters button {
  color:var(--ink);
  background:transparent;
  border:1px solid #96a2b2;
  padding:8px 15px;
  min-height:44px;
  font-size:.95rem;
}
.filters button[aria-pressed=true] {
  background:var(--navy);
  border-color:var(--navy);
  color:white;
}
.library {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  column-gap:48px;
}
.library .rowstory {
  border-top:1px solid var(--line);
}
[hidden] {
  display:none!important;
}
.count {
  font-size:.85rem;
  color:var(--muted);
  margin-bottom:16px;
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:clamp(28px,7vw,100px);
  align-items:start;
}
.enquiry {
  background:white;
  padding:clamp(18px,3vw,40px);
  border:1px solid var(--line);
}
.enquiry label {
  font-size:.94rem;
  font-weight:620;
  display:block;
  margin:15px 0 6px;
}
.enquiry select,.enquiry textarea {
  width:100%;
  color:var(--ink);
  border:1px solid #8996a9;
  background:white;
  border-radius:0;
  padding:10px;
}
.enquiry textarea {
  min-height:140px;
  resize:vertical;
}
.enquiry .note {
  font-size:.9rem;
  color:var(--muted);
  margin:12px 0;
}
.enquiry h2,.offices h2 {
  font-size:1.8rem;
}
.offices h3 {
  margin-top:24px;
}
.offices p {
  margin:6px 0;
}
.directory {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 32px;
  margin-top:22px;
}
.sub {
  background:var(--light);
}
.figure-space {
  margin:25px auto 0;
  max-width:870px;
}
.hide-label {
  position:absolute;
  clip-path:inset(50%);
  width:1px;
  height:1px;
  overflow:hidden;
}
@media(max-width:950px) {
  .mast-inner {
    gap:12px;
  }
  .nav {
    gap:12px;
  }
  .nav .btn {
    display:none;
  }
  .hero-grid {
    grid-template-columns:1fr 1.05fr;
    gap:28px;
  }
  .actions {
    gap:8px 16px;
  }
  .homehero h1 {
    font-size:3.1rem;
  }
  .cases {
    gap:20px;
  }
  .reading-layout {
    grid-template-columns:170px 1fr;
    gap:28px;
  }
}
@media(max-width:740px) {
  .mast-inner {
    flex-wrap:wrap;
    min-height:72px;
    padding:7px 0;
  }
  .brand img {
    height:52px;
  }
  .menu {
    display:inline-flex;
  }
  .nav {
    display:flex;
    flex-basis:100%;
    align-items:stretch;
    flex-direction:column;
    gap:0;
    padding-bottom:12px;
  }
  .js .nav:not(.open) {
    display:none;
  }
  .nav .btn {
    display:flex;
    align-self:flex-start;
  }
  .service-menu div {
    position:static;
    width:100%;
    border:0;
    border-left:2px solid var(--blue);
  }
  .nav a {
    min-height:46px;
  }
  .hero-grid,.intel-grid,.stories,.pathways,.contact-grid {
    grid-template-columns:1fr;
  }
  .homehero h1 {
    font-size:clamp(2.55rem,8vw,3.1rem);
  }
  .hero-grid {
    gap:24px;
  }
  .homehero {
    padding:30px 0;
  }
  .kicker {
    font-size:.68rem;
  }
  .section {
    padding:36px 0;
  }
  .section-top {
    align-items:start;
    flex-direction:column;
    gap:5px;
  }
  .practices,.cases,.steps,.directory,.library {
    grid-template-columns:1fr;
  }
  .cases,.steps {
    gap:20px;
  }
  .contactband .wrap {
    align-items:start;
    flex-direction:column;
  }
  .footgrid {
    grid-template-columns:1fr 1fr;
  }
  .reading-layout {
    grid-template-columns:1fr;
    gap:24px;
  }
  .toc {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 14px;
  }
  .toc strong {
    grid-column:1/-1;
  }
  .toc a {
    min-height:44px;
  }
  .pagehead {
    padding:22px 0 27px;
  }
  .visual figcaption {
    font-size:.75rem;
  }
  .pagehead .visual {
    max-width:580px;
  }
  .btn {
    min-height:48px;
  }
  .footgrid a {
    min-height:44px;
  }
  .articletext {
    font-size:1rem;
  }
}
@media(max-width:410px) {
  .footgrid {
    grid-template-columns:1fr;
  }
  .footgrid>div:first-child {
    margin-bottom:6px;
  }
  .hero-caption {
    display:block;
  }
  .hero-caption span:last-child {
    display:none;
  }
  .toc {
    grid-template-columns:1fr;
  }
  .hero-figure:before {
    right:-5px;
    top:-5px;
  }
  .actions {
    align-items:start;
  }
  .enquiry {
    padding:16px;
  }
  .directory .listlink {
    font-size:1rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important;
  }
}
@media print {
  .nav,.menu,.contactband,.toc,.filters,.enquiry,.actions {
    display:none;
  }
  .reading-layout,.hero-grid {
    display:block;
  }
  .wrap {
    width:100%;
  }
  body {
    background:white;
    color:black;
    font-size:11pt;
  }
  .visual {
    max-width:65%;
  }
}
.intel figcaption a {
  color:#fff;
}
.footline a {
  display:inline-block;
  margin-left:18px;
}
.listlink,.rowstory {
  overflow-wrap:anywhere;
}
.library>.story {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:clamp(18px,4vw,52px);
  align-content:center;
  padding:24px 0;
  margin-bottom:14px;
  border-top:2px solid var(--blue);
}
.library>.story .visual {
  grid-row:1/5;
  align-self:center;
  margin:0;
}
.library>.story .meta {
  margin-top:auto;
}
.library>.story h3 {
  font-size:clamp(1.7rem,3vw,3rem);
}
.library>.rowstory p {
  font-size:1rem;
}
.library .story[hidden] {
  display:none!important;
}
@media(max-width:740px) {
  .library>.story {
    display:block;
  }
  .library>.story .visual {
    margin-bottom:12px;
  }
}
.long-title .insidehero {
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
}
.long-title h1 {
  max-width:32ch;
  font-size:clamp(2.15rem,3.2vw,3.05rem);
}
@media(max-width:740px) {
  .long-title .insidehero {
    grid-template-columns:1fr;
  }
}
@media(max-width:410px) {
  .hero-caption {
    display:flex;
  }
  .hero-caption span:last-child {
    display:inline;
  }
}
