/* ========================================
   Reset / Base Styles
======================================== */
/* Box sizing */
*,
*::before,
*::after {
  box-sizing: border-box; }

/* Remove default margin */
* {
  margin: 0; }

/* Improve text rendering */
html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased; }

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
  text-rendering: optimizeLegibility; }

/* Remove list styles */
ul,
ol {
  list-style: none;
  padding: 0; }

/* Remove default link styles */
a {
  text-decoration: none;
  color: inherit; }

/* Media defaults */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%; }

/* Form elements inherit font */
input,
button,
textarea,
select {
  font: inherit; }

/* Buttons reset */
button {
  background: none;
  border: none;
  cursor: pointer; }

/* Tables */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* Remove animations for people who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important; } }
body.menu-open #main-menu li.menu-item-has-children > ul {
  display: none;
  position: static;
  transform: none;
  opacity: 1;
  visibility: visible; }

body.menu-open #main-menu li.menu-item-has-children.submenu-open > ul {
  display: block; }

html {
  font-size: 62.5%;
  background: #1C3A5C; }

@keyframes page-fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
  body {
    animation: page-fade-in 0.6s ease-out; } }
#menu-bg {
  background: rgba(0, 0, 0, 0.3);
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  z-index: 80;
  visibility: hidden;
  opacity: 0; }

body {
  background: #1C3A5C;
  color: #FFF;
  font-size: 2.0rem;
  font-family: "segoe-ui", Segoe UI, Arial, sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal; }
  body:not(.home):not(.page-id-35) {
    background: #1C3A5C url(../images/squiggles.png) left top no-repeat; }
    body:not(.home):not(.page-id-35):has(.widget-hero.bg-soft-peach) {
      background: #1C3A5C; }
    @media screen and (max-width: 1000px) {
      body:not(.home):not(.page-id-35) {
        background-size: 65%; } }
  body:not(.home):not(.menu-open) #main-menu ul ul {
    padding-top: 20px;
    width: 200px; }
    body:not(.home):not(.menu-open) #main-menu ul ul li {
      background: #67ABB5; }
      body:not(.home):not(.menu-open) #main-menu ul ul li:first-child a {
        padding-top: 10px !important; }
      body:not(.home):not(.menu-open) #main-menu ul ul li:last-child a {
        padding-bottom: 10px !important; }
      body:not(.home):not(.menu-open) #main-menu ul ul li a {
        padding: 5px 15px !important; }
  body.home {
    background: #1C3A5C;
    isolation: isolate; }
    body.home #header {
      opacity: 0;
      visibility: hidden;
      max-height: 0;
      display: none; }
    body.home.normal-menu #header {
      opacity: 1;
      visibility: visible;
      max-height: 99999px;
      display: block; }
    body.home.normal-menu:not(.menu-open) #main-menu ul ul {
      padding-top: 20px;
      width: 200px; }
      body.home.normal-menu:not(.menu-open) #main-menu ul ul li {
        background: #67ABB5; }
        body.home.normal-menu:not(.menu-open) #main-menu ul ul li:first-child a {
          padding-top: 10px !important; }
        body.home.normal-menu:not(.menu-open) #main-menu ul ul li:last-child a {
          padding-bottom: 10px !important; }
        body.home.normal-menu:not(.menu-open) #main-menu ul ul li a {
          padding: 5px 15px !important; }
    body.home .home-parallax {
      position: fixed;
      inset: 0;
      z-index: -1;
      pointer-events: none;
      overflow: hidden;
      visibility: hidden; }
    body.home .home-parallax-art {
      width: 100%;
      background: url(../images/homebg.png) center top/auto 100% no-repeat;
      will-change: transform; }
    body.home #toggle-menu {
      display: block;
      margin-left: auto; }
  body.home:not(.normal-menu) #main-menu, body.menu-open:not(.normal-menu) #main-menu {
    position: fixed;
    right: 0;
    transform: translate(1000px, 0);
    top: 0;
    width: 90%;
    max-width: 450px;
    height: 100vh;
    background: #67ABB5;
    padding: 0; }
    body.home:not(.normal-menu) #main-menu ul, body.menu-open:not(.normal-menu) #main-menu ul {
      flex-direction: column;
      flex-wrap: wrap; }
    body.home:not(.normal-menu) #main-menu ul, body.menu-open:not(.normal-menu) #main-menu ul {
      width: 100%; }
      body.home:not(.normal-menu) #main-menu ul li a, body.menu-open:not(.normal-menu) #main-menu ul li a {
        padding: 10px 40px; }
      body.home:not(.normal-menu) #main-menu ul ul, body.menu-open:not(.normal-menu) #main-menu ul ul {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: unset; }
  body.normal-menu #header {
    background: #1C3A5C;
    padding: 20px 0; }
    body.normal-menu #header #logo {
      width: 60px; }
    body.normal-menu #header .row {
      align-items: flex-end; }
  body.normal-menu #main-menu {
    opacity: 1; }
  body.normal-menu #toggle-menu {
    opacity: 0;
    visibility: hidden; }
  body.menu-open:not(.normal-menu) #main-menu {
    transform: translate(0, 0); }
  body.menu-open {
    overflow: hidden;
    height: 100vh; }
    body.menu-open #mobile-menu-header {
      display: flex; }
    body.menu-open #header {
      background: none; }
    body.menu-open #menu-bg {
      opacity: 1;
      visibility: visible;
      transition: .3s opacity ease; }
    body.menu-open #main-menu {
      transition: transform 0.3s ease; }
      body.menu-open #main-menu ul li.menu-item-has-children.submenu-open > a:after {
        content: '-'; }
      body.menu-open #main-menu ul li.menu-item-has-children > a {
        display: flex;
        align-items: center; }
        body.menu-open #main-menu ul li.menu-item-has-children > a:after {
          content: '+';
          display: flex;
          align-items: center;
          justify-content: center;
          margin-left: auto;
          width: 18px;
          height: 17px;
          font-size: 15px;
          line-height: 14px;
          border: 1px solid #FFF;
          color: #FFF; }
  body.admin-bar #header {
    top: 32px; }
  body.admin-bar.home:not(.normal-menu) #main-menu {
    top: 32px;
    height: calc(100vh - 32px); }
    body.admin-bar.home:not(.normal-menu) #main-menu ul {
      width: 100%; }
      body.admin-bar.home:not(.normal-menu) #main-menu ul li a {
        padding: 10px 40px; }
      body.admin-bar.home:not(.normal-menu) #main-menu ul ul {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: unset; }
        body.admin-bar.home:not(.normal-menu) #main-menu ul ul li a {
          padding: 10px 60px; }

p + div, p + p, p + ul, p + ol, p + blockquote, p + h1, p + h2, p + h3, p + h4, p + h5, p + h6, ul + div, ul + p, ul + ul, ul + ol, ul + blockquote, ul + h1, ul + h2, ul + h3, ul + h4, ul + h5, ul + h6, ol + div, ol + p, ol + ul, ol + ol, ol + blockquote, ol + h1, ol + h2, ol + h3, ol + h4, ol + h5, ol + h6, blockquote + div, blockquote + p, blockquote + ul, blockquote + ol, blockquote + blockquote, blockquote + h1, blockquote + h2, blockquote + h3, blockquote + h4, blockquote + h5, blockquote + h6, h1 + div, h1 + p, h1 + ul, h1 + ol, h1 + blockquote, h1 + h1, h1 + h2, h1 + h3, h1 + h4, h1 + h5, h1 + h6, h2 + div, h2 + p, h2 + ul, h2 + ol, h2 + blockquote, h2 + h1, h2 + h2, h2 + h3, h2 + h4, h2 + h5, h2 + h6, h3 + div, h3 + p, h3 + ul, h3 + ol, h3 + blockquote, h3 + h1, h3 + h2, h3 + h3, h3 + h4, h3 + h5, h3 + h6, h4 + div, h4 + p, h4 + ul, h4 + ol, h4 + blockquote, h4 + h1, h4 + h2, h4 + h3, h4 + h4, h4 + h5, h4 + h6, h5 + div, h5 + p, h5 + ul, h5 + ol, h5 + blockquote, h5 + h1, h5 + h2, h5 + h3, h5 + h4, h5 + h5, h5 + h6, h6 + div, h6 + p, h6 + ul, h6 + ol, h6 + blockquote, h6 + h1, h6 + h2, h6 + h3, h6 + h4, h6 + h5, h6 + h6 {
  margin-top: 22px; }

a {
  transition: transform 0.3s ease, color 0.3s ease, background 0.3s, opacity 0.3s; }
  a.button-primary {
    display: inline-block;
    background: #E6C3B5;
    font-family: consolas, Consolas, "Courier New", monospace;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    font-size: 1.6rem;
    padding: 5px 24px;
    color: #1C3A5C;
    border: 1px solid #1C3A5C; }
    a.button-primary:hover {
      background: #D45113;
      color: #FFF; }

.container {
  max-width: 1540px;
  margin: 0 auto;
  padding: 0 20px; }

.row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%; }

#header {
  padding: 40px 0;
  position: sticky;
  top: 0;
  z-index: 99; }
  #header #logo {
    transition: width .3s ease;
    width: 75px; }
  #header:has(+ .widget-hero), #header:has(+ .widget-contact) {
    position: fixed;
    background: none;
    width: 100%; }
  #header .row {
    align-items: flex-start; }

#mobile-menu-header,
#toggle-menu {
  display: none;
  transition: transform 0.3s ease, color 0.3s ease; }

#mobile-menu-header {
  flex-wrap: wrap;
  align-items: center;
  padding: 40px 40px 30px 40px; }
  #mobile-menu-header #mobile-logo {
    display: block;
    max-width: 55px; }
  #mobile-menu-header #close-menu {
    display: block;
    width: 43px;
    margin-left: auto; }

#main-menu {
  margin-left: auto;
  font-family: consolas, Consolas, "Courier New", monospace;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-weight: 700; }
  #main-menu ul {
    display: flex;
    width: 100%; }
    #main-menu ul ul {
      position: absolute;
      left: 0;
      top: 0;
      transform: translate(0, 0);
      display: block;
      opacity: 0;
      visibility: hidden;
      transition: transform 0.3s ease, color 0.3s ease; }
    #main-menu ul li {
      text-transform: uppercase;
      position: relative;
      display: block; }
      #main-menu ul li a {
        display: block;
        padding: 0 20px; }
        #main-menu ul li a:hover {
          color: #D45113; }
      #main-menu ul li:last-child a {
        padding-right: 0; }
      #main-menu ul li:first-child a {
        padding-left: 0; }
      #main-menu ul li:hover > ul {
        transform: translate(0, 30px);
        opacity: 1;
        visibility: visible; }

h1 + a, h2 + a, h3 + a, h4 + a, h5 + a, h6 + a {
  margin-top: 24px; }

h1, h2, h3, h4, h5, h6 {
  font-family: "segoe-ui", Segoe UI, Arial, sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-weight: 400; }
  h1 strong, h2 strong, h3 strong, h4 strong, h5 strong, h6 strong {
    font-weight: 700; }

h2, .h2 {
  font-size: 4.0rem;
  line-height: 4.4rem; }

.bg-teal {
  background: #67ABB5;
  color: #1C3A5C; }

.bg-soft-peach {
  background: #E6C3B5;
  color: #1C3A5C; }
  .bg-soft-peach a.button-primary {
    background-color: #67ABB5;
    border-color: #FFF;
    color: #FFF; }
    .bg-soft-peach a.button-primary:hover {
      background-color: #D45113; }

.widget-header {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: 90px;
  max-width: 1065px;
  width: 100%;
  margin: 0 auto; }
  .widget-header .widget-header-right,
  .widget-header .widget-header-left {
    width: calc(50% - 45px); }
  .widget-header .widget-header-left {
    max-width: 430px;
    width: auto; }
    .widget-header .widget-header-left h2, .widget-header .widget-header-left .h2 {
      font-size: 4.0rem;
      line-height: 4.4rem;
      color: #67ABB5; }
  .widget-header .widget-header-right {
    max-width: 650px;
    font-size: 2.0rem;
    line-height: 2.6rem;
    font-weight: 300;
    padding-top: 90px; }

/** Content Blocks **/
.widget {
  position: relative;
  padding: 120px 0; }
  .widget:has(+ .widget-projects) {
    padding-bottom: 120px !important; }
  .widget .row {
    justify-content: center; }
  .widget.widget-quicklinks {
    padding: 40px 0 0 0; }
    .widget.widget-quicklinks .quicklinks {
      display: flex;
      flex-wrap: wrap;
      justify-content: center; }
      .widget.widget-quicklinks .quicklinks li {
        text-transform: uppercase;
        display: flex; }
        .widget.widget-quicklinks .quicklinks li a {
          display: block;
          text-transform: uppercase;
          font-weight: 600;
          color: #67ABB5;
          font-size: 3.6rem;
          line-height: 2.8rem; }
        .widget.widget-quicklinks .quicklinks li:after {
          content: '|';
          color: #67ABB5;
          font-size: 3.6rem;
          line-height: 2.8rem;
          font-weight: 600;
          display: block;
          padding: 0 10px; }
        .widget.widget-quicklinks .quicklinks li:last-child:after {
          display: none; }
        .widget.widget-quicklinks .quicklinks li.active a {
          color: #FFF;
          cursor: pointer; }
  .widget.widget-projects {
    position: relative;
    background: #6bc7ce;
    background-size: cover;
    color: #1C3A5C;
    padding: 0 0 50px 0;
    margin-top: 70px; }
    .widget.widget-projects .line-animation {
      z-index: 2;
      pointer-events: none;
      top: 0;
      padding-bottom: 60px; }
    .widget.widget-projects .container {
      position: relative;
      z-index: unset;
      max-width: 1380px; }
    .widget.widget-projects .row {
      position: relative;
      width: 100%;
      min-width: 0;
      gap: 0 60px;
      align-items: flex-start; }
    .widget.widget-projects .widget-header {
      padding: 40px 0 0 0;
      width: calc(25% - 30px);
      position: relative;
      z-index: 3; }
    .widget.widget-projects .projects {
      width: calc(75% - 30px);
      min-width: 0;
      margin-top: -70px; }
    .widget.widget-projects .project {
      width: 100%;
      min-width: 0;
      position: relative; }
    .widget.widget-projects .project-media {
      min-width: 0;
      position: relative; }
    .widget.widget-projects .project-images {
      width: 100%;
      min-width: 0;
      max-width: 100%;
      overflow: hidden;
      border-radius: 2rem; }
      .widget.widget-projects .project-images .swiper-wrapper {
        min-width: 0; }
      .widget.widget-projects .project-images .swiper-slide {
        width: 100%;
        min-width: 0;
        aspect-ratio: 1226/760; }
      .widget.widget-projects .project-images img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover; }
    .widget.widget-projects .project-images-navigation {
      display: flex;
      align-items: center;
      gap: 1.3rem;
      margin-top: 40px;
      position: relative;
      z-index: 3; }
    .widget.widget-projects .project-images-prev,
    .widget.widget-projects .project-images-next {
      position: relative;
      display: block;
      width: 4rem;
      height: 4rem;
      flex: 0 0 4rem;
      padding: 0;
      border: 0;
      border-radius: 50%;
      background: #1C3A5C;
      cursor: pointer;
      transition: opacity 0.3s ease; }
      .widget.widget-projects .project-images-prev:hover,
      .widget.widget-projects .project-images-next:hover {
        opacity: 0.8; }
      .widget.widget-projects .project-images-prev:after,
      .widget.widget-projects .project-images-next:after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 0.8rem;
        height: 0.8rem;
        border-top: 0.2rem solid #fff;
        border-right: 0.2rem solid #fff; }
    .widget.widget-projects .project-images-prev:after {
      transform: translate(-35%, -50%) rotate(-135deg); }
    .widget.widget-projects .project-images-next:after {
      transform: translate(-65%, -50%) rotate(45deg); }
    .widget.widget-projects .project-images-pagination {
      display: flex;
      align-items: center;
      width: auto !important;
      gap: 1.3rem; }
      .widget.widget-projects .project-images-pagination .swiper-pagination-bullet {
        display: block;
        width: 1.1rem;
        height: 1.1rem;
        margin: 0 !important;
        border: 0;
        border-radius: 50%;
        background: #1C3A5C;
        opacity: 1; }
      .widget.widget-projects .project-images-pagination .swiper-pagination-bullet-active {
        background: #FFF; }
    .widget.widget-projects .project-details {
      margin: 20px 0 0 0;
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 0 30px;
      position: relative;
      z-index: 3; }
    .widget.widget-projects .project-details {
      font-size: 2.0rem;
      line-height: 2.6rem;
      font-weight: 400; }
    .widget.widget-projects .project-meta,
    .widget.widget-projects .project-stats,
    .widget.widget-projects .project-description {
      width: calc(33.333% - 20px); }
    .widget.widget-projects .project-description {
      padding-top: 10px;
      max-width: 800px; }
    .widget.widget-projects .project-meta-item {
      padding: 20px 0;
      min-height: 101px;
      border-bottom: 1px solid #FFF; }
    .widget.widget-projects .project-meta-label {
      font-family: consolas, Consolas, "Courier New", monospace;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      display: block;
      font-size: 2.2rem;
      line-height: 2.6rem;
      font-weight: 600;
      text-transform: uppercase;
      color: #FFF; }
    .widget.widget-projects .project-meta-value {
      font-family: consolas, Consolas, "Courier New", monospace;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      display: block;
      font-size: 2.2rem;
      line-height: 2.6rem;
      font-weight: 600;
      text-transform: uppercase;
      color: #1C3A5C; }
    .widget.widget-projects .project-stat {
      padding: 10px 0;
      border-bottom: 1px solid #FFF;
      font-family: "segoe-ui", Segoe UI, Arial, sans-serif;
      font-optical-sizing: auto;
      font-weight: 300;
      font-style: normal; }
    .widget.widget-projects .project-stat-value {
      font-size: 3.8rem;
      line-height: 4.4rem;
      font-weight: 400;
      color: #FFF; }
    .widget.widget-projects .project-stat-label {
      font-size: 2.0rem;
      line-height: 2.6rem;
      font-weight: 400;
      color: #1C3A5C; }
  .widget.widget-video {
    padding: 0;
    margin-top: -60px; }
    .widget.widget-video .container {
      max-width: unset;
      padding: 0; }
    .widget.widget-video .video-desktop {
      width: 100%; }
      .widget.widget-video .video-desktop video {
        display: block;
        width: 100%;
        height: 100%; }
        .widget.widget-video .video-desktop video.is-loading {
          opacity: 0; }
  .widget.widget-sectors {
    padding: 0; }
    .widget.widget-sectors.style2 .sectors {
      max-width: 1065px;
      display: flex;
      flex-wrap: wrap;
      padding: 0;
      align-items: flex-start; }
    .widget.widget-sectors.style2 .sector-selector,
    .widget.widget-sectors.style2 .sector-conent-wrapper {
      width: calc(50%); }
    .widget.widget-sectors.style2 .sector-selector {
      display: flex; }
    .widget.widget-sectors.style2 .sector-content-wrapper {
      margin: 0;
      margin: 0; }
    .widget.widget-sectors.style2 .sector-images {
      position: relative;
      width: 107px;
      height: 107px; }
    .widget.widget-sectors.style2 .sector-image {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease; }
      .widget.widget-sectors.style2 .sector-image img {
        display: block;
        width: 100%;
        height: auto; }
      .widget.widget-sectors.style2 .sector-image.active {
        opacity: 1;
        visibility: visible; }
    .widget.widget-sectors.style2 .sector-navigation {
      display: block; }
    .widget.widget-sectors.style2 .sector-nav-item {
      cursor: pointer;
      opacity: 0.2;
      transition: opacity 0.3s ease; }
      .widget.widget-sectors.style2 .sector-nav-item h3 {
        font-size: 4.0rem;
        line-height: 4.6rem;
        font-weight: 400;
        margin: 0; }
      .widget.widget-sectors.style2 .sector-nav-item.active {
        opacity: 1; }
      .widget.widget-sectors.style2 .sector-nav-item:hover {
        opacity: 1; }
    .widget.widget-sectors.style2 .sector-content-wrapper {
      position: relative;
      display: grid; }
    .widget.widget-sectors.style2 .sector-content {
      display: block;
      grid-area: 1 / 1; }
      .widget.widget-sectors.style2 .sector-content h3 {
        font-size: 2.0rem;
        line-height: 2.6rem;
        font-weight: 300;
        margin: 0 0 2rem; }
      .widget.widget-sectors.style2 .sector-content p {
        font-size: 2rem;
        line-height: 2.6rem; }
    .widget.widget-sectors a.button-primary {
      background: #67ABB5;
      color: #FFF;
      border-color: #FFF;
      padding: 5px 12px;
      margin-top: 33px; }
      .widget.widget-sectors a.button-primary:hover {
        background: #D45113; }
    .widget.widget-sectors .widget-header {
      padding-bottom: 60px; }
      .widget.widget-sectors .widget-header h2 {
        color: #E6C3B5; }
    .widget.widget-sectors .sectors {
      max-width: 1065px;
      width: 100%;
      margin: 0 auto;
      padding-left: 295px; }
    .widget.widget-sectors .sector-selector {
      display: grid;
      grid-template-columns: 90px minmax(0, 1fr);
      align-items: center;
      column-gap: 40px; }
    .widget.widget-sectors .sector-images {
      display: grid;
      width: 90px;
      height: 90px;
      align-items: center;
      justify-items: center; }
    .widget.widget-sectors .sector-image {
      grid-area: 1 / 1;
      width: 90px;
      opacity: 0;
      visibility: hidden; }
      .widget.widget-sectors .sector-image.active {
        opacity: 1;
        visibility: visible; }
      .widget.widget-sectors .sector-image img {
        display: block;
        width: 100%;
        height: auto; }
    .widget.widget-sectors .sector-navigation {
      display: flex;
      flex-direction: column;
      align-items: flex-start; }
    .widget.widget-sectors .sector-nav-item {
      opacity: 0.2; }
      .widget.widget-sectors .sector-nav-item.active {
        opacity: 1;
        color: #67ABB5; }
      .widget.widget-sectors .sector-nav-item h3 {
        margin: 0;
        font-weight: 400;
        font-size: 4.0rem;
        line-height: 4.6rem; }
    .widget.widget-sectors .sector-content-wrapper {
      display: grid;
      position: relative;
      margin-top: 60px;
      margin-left: 130px;
      max-width: 450px; }
    .widget.widget-sectors .sector-content {
      grid-area: 1 / 1;
      opacity: 0;
      visibility: hidden;
      pointer-events: none; }
      .widget.widget-sectors .sector-content.active {
        opacity: 1;
        visibility: visible;
        pointer-events: auto; }
      .widget.widget-sectors .sector-content p {
        max-width: 450px; }
  .widget.widget-about {
    padding: 0; }
    .widget.widget-about > .container {
      min-height: 0; }
    .widget.widget-about .row {
      position: relative;
      display: flex;
      flex-direction: column; }
    .widget.widget-about .widget-header {
      position: relative;
      z-index: 2; }
      .widget.widget-about .widget-header .widget-header-right {
        width: 100%;
        max-width: 1000px;
        padding-left: 140px; }
    .widget.widget-about .about-sections {
      display: grid;
      position: relative;
      margin-top: 80px;
      /*
       * This gives the changing content enough
       * physical room without forcing 100vh.
       */
      min-height: 320px; }
    .widget.widget-about .about-step {
      grid-area: 1 / 1;
      display: flex;
      align-items: flex-start;
      gap: 40px;
      width: 100%;
      max-width: 1065px;
      padding-left: 140px;
      font-size: 4.0rem;
      line-height: 4.6rem;
      opacity: 0;
      visibility: hidden;
      pointer-events: none; }
      .widget.widget-about .about-step strong {
        font-style: italic;
        font-weight: 700; }
      .widget.widget-about .about-step.active {
        opacity: 1;
        visibility: visible;
        pointer-events: auto; }
    .widget.widget-about .about-step-image {
      width: 110px;
      flex: 0 0 110px;
      margin-top: 10px; }
      .widget.widget-about .about-step-image img {
        display: block;
        width: 100%;
        height: auto; }
    .widget.widget-about .about-step-content h3 {
      margin: 0; }
    .widget.widget-about .about-step-content .about-step-text p {
      margin: 0; }
  .widget.widget-expertise {
    padding: 140px 0 0 0; }
    .widget.widget-expertise svg {
      width: 100%;
      height: auto;
      max-width: 1738px;
      position: absolute;
      left: 0;
      bottom: 0;
      z-index: 1;
      right: 0;
      margin: 0 auto; }
    .widget.widget-expertise a.button-primary {
      background: #67ABB5;
      color: #FFF;
      border-color: #FFF;
      padding: 5px 12px;
      margin-top: 33px; }
      .widget.widget-expertise a.button-primary:hover {
        background: #D45113; }
    .widget.widget-expertise .container {
      max-width: 1660px; }
    .widget.widget-expertise .expertise {
      display: flex;
      flex-wrap: wrap;
      padding: 0 80px;
      position: relative;
      z-index: 2; }
      .widget.widget-expertise .expertise .expertise-item {
        display: flex;
        flex-wrap: wrap;
        gap: 0 30px;
        width: 33.333%; }
        .widget.widget-expertise .expertise .expertise-item h3 + p {
          margin-top: 10px; }
        .widget.widget-expertise .expertise .expertise-item:nth-of-type(1) {
          width: 40%; }
          .widget.widget-expertise .expertise .expertise-item:nth-of-type(1) .expertise-image {
            width: 167px; }
          .widget.widget-expertise .expertise .expertise-item:nth-of-type(1) .expertise-content {
            width: calc(100% - 167px - 30px);
            padding-top: 60px; }
        .widget.widget-expertise .expertise .expertise-item:nth-of-type(2) {
          padding-top: 220px;
          width: 36%;
          margin-left: -140px; }
          .widget.widget-expertise .expertise .expertise-item:nth-of-type(2) .expertise-image {
            width: 143px; }
          .widget.widget-expertise .expertise .expertise-item:nth-of-type(2) .expertise-content {
            width: calc(100% - 143px - 30px);
            padding-top: 40px; }
        .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) {
          padding-top: 510px;
          width: 37%;
          margin-left: -70px; }
          .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) .expertise-image {
            width: 119px; }
          .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) .expertise-content {
            width: calc(100% - 119px - 30px); }
  .widget.widget-timeline {
    position: relative;
    padding: 150px 0;
    /*
     * CONTINUOUS SVG LINE
     */ }
    .widget.widget-timeline .timeline {
      position: relative;
      width: 100%; }
    .widget.widget-timeline .timeline-line {
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
      height: 100%;
      z-index: 1;
      pointer-events: none; }
      .widget.widget-timeline .timeline-line svg {
        display: block;
        width: 100%;
        height: 100%;
        overflow: visible; }
      .widget.widget-timeline .timeline-line path {
        fill: none; }
    .widget.widget-timeline .timeline-items {
      position: relative;
      z-index: 2; }
    .widget.widget-timeline .timeline-item {
      position: relative;
      min-height: 500px;
      display: flex;
      align-items: flex-start;
      width: 50%; }
      .widget.widget-timeline .timeline-item.timeline-item-right {
        margin-left: 50%;
        padding-left: 192px; }
        .widget.widget-timeline .timeline-item.timeline-item-right .timeline-icon {
          left: 0;
          transform: translateX(-50%); }
      .widget.widget-timeline .timeline-item.timeline-item-left {
        margin-right: 50%;
        padding-right: 192px;
        text-align: right;
        justify-content: flex-end; }
        .widget.widget-timeline .timeline-item.timeline-item-left .timeline-item-content h2 {
          color: #67ABB5; }
        .widget.widget-timeline .timeline-item.timeline-item-left .timeline-icon {
          right: 0;
          transform: translateX(50%); }
    .widget.widget-timeline .timeline-icon {
      position: absolute;
      top: 0;
      width: 222px;
      height: 237px;
      background: #1C3A5C;
      padding: 30px;
      border-radius: 50%;
      z-index: 5;
      opacity: 0; }
      .widget.widget-timeline .timeline-icon img {
        display: block;
        width: 100%;
        height: auto; }
    .widget.widget-timeline .timeline-item-content {
      color: rgba(255, 255, 255, 0.7); }
      .widget.widget-timeline .timeline-item-content h2 {
        margin-top: 0;
        color: #E6C3B5;
        font-size: 4.0rem;
        line-height: 4.4rem;
        font-weight: 400; }
      .widget.widget-timeline .timeline-item-content .subheading {
        text-transform: uppercase;
        font-family: consolas, Consolas, "Courier New", monospace;
        font-optical-sizing: auto;
        font-weight: 400;
        font-style: normal;
        font-weight: 400;
        font-size: 1.4rem;
        color: rgba(255, 255, 255, 0.7); }
      .widget.widget-timeline .timeline-item-content h3 {
        font-size: 2.0rem;
        line-height: 2.6rem;
        font-weight: 300; }
      .widget.widget-timeline .timeline-item-content .timeline-content p {
        font-size: 2.0rem;
        line-height: 2.6rem; }
  .widget.widget-hero {
    padding-top: 194px;
    padding-bottom: 0;
    height: 960px; }
    .widget.widget-hero > div {
      position: relative;
      z-index: 2; }
    .widget.widget-hero p strong {
      font-weight: bold; }
    .widget.widget-hero.bg-deep-navy {
      position: relative; }
    .widget.widget-hero.bg-soft-peach {
      position: relative;
      background: #E6C3B5 url(../images/herolines.png) center bottom -50px no-repeat;
      background-size: cover;
      height: 850px;
      position: relative; }
      .widget.widget-hero.bg-soft-peach:before {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        background: url(../images/squiggles.png) left top no-repeat; }
    .widget.widget-hero .row {
      justify-content: flex-end; }
    .widget.widget-hero h1 {
      font-weight: 700;
      font-size: 7.2rem;
      line-height: 7.8rem; }
    .widget.widget-hero h2 {
      font-weight: 300;
      font-size: 2.0rem;
      line-height: 2.6rem; }
    .widget.widget-hero p {
      font-size: 2.0rem;
      line-height: 2.6rem; }
    .widget.widget-hero .hero-content {
      width: 50%; }
  .widget.widget-cta {
    padding: 0 20px; }
    .widget.widget-cta .container {
      max-width: 1380px;
      border-radius: 25px;
      padding: 120px 120px; }
    .widget.widget-cta .cta {
      max-width: 1065px;
      width: 100%;
      margin: 0 auto; }
      .widget.widget-cta .cta .cta-inner {
        max-width: 1040px; }
  .widget.widget-news .news-widget {
    width: 100%;
    margin-top: 60px; }
  .widget.widget-news .widget-header {
    padding: 0; }
    .widget.widget-news .widget-header h2 {
      font-size: 4.0rem;
      line-height: 4.6rem;
      font-weight: 400;
      color: #67ABB5; }
  .widget.widget-contact {
    background: url(../images/contact.svg) center bottom no-repeat;
    background-size: 100%;
    padding-top: 200px;
    padding-bottom: 200px; }
    .widget.widget-contact p strong {
      font-weight: bold; }
    .widget.widget-contact .contact-inner {
      display: flex;
      justify-content: flex-end;
      width: 100%; }
    .widget.widget-contact .contact-content {
      width: 50%; }
    .widget.widget-contact h1 {
      font-size: 7.2rem;
      line-height: 7.8rem;
      font-weight: 700; }
    .widget.widget-contact h2 {
      font-size: 2.0rem;
      line-height: 2.6rem;
      font-weight: 300; }
    .widget.widget-contact p {
      font-size: 2.0rem;
      line-height: 2.6rem; }
    .widget.widget-contact .contact-details {
      width: 100%;
      max-width: 480px;
      margin-top: 200px; }
    .widget.widget-contact .contact-detail {
      display: grid;
      grid-template-columns: 4.5rem 1fr;
      gap: 2rem;
      align-items: center;
      padding: 2.8rem 0;
      border-bottom: 1px solid #FFF; }
      .widget.widget-contact .contact-detail:first-child {
        padding-top: 0; }
    .widget.widget-contact .contact-detail-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.5rem;
      height: 4.5rem;
      color: #fff; }
      .widget.widget-contact .contact-detail-icon svg {
        display: block;
        width: 100%;
        height: 100%; }
    .widget.widget-contact .contact-detail-content {
      min-width: 0;
      font-family: consolas, Consolas, "Courier New", monospace;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      font-size: 2.0rem;
      line-height: 2.6rem; }
    .widget.widget-contact .contact-detail-label {
      font-weight: 600; }
    .widget.widget-contact .contact-detail-link {
      display: inline-block;
      color: #E6C3B5;
      text-decoration: none;
      word-break: break-word;
      font-weight: 600; }
      .widget.widget-contact .contact-detail-link:hover {
        text-decoration: underline; }
  .widget.widget-insights .widget-header {
    padding-bottom: 60px; }
    .widget.widget-insights .widget-header h2 {
      margin: 0;
      font-size: 4.0rem;
      line-height: 4.6rem;
      font-weight: 400;
      color: #E6C3B5; }
  .widget.widget-insights .insights-slider {
    width: 100%;
    min-width: 0;
    max-width: 1065px;
    overflow: hidden; }
  .widget.widget-insights .swiper-wrapper {
    align-items: stretch; }
  .widget.widget-insights .swiper-slide {
    height: auto; }
  .widget.widget-insights .insight-card {
    height: 100%;
    display: flex;
    flex-direction: column; }
  .widget.widget-insights .insight-image {
    display: block;
    width: 100%;
    aspect-ratio: 536/383;
    overflow: hidden;
    border-radius: 25px; }
    .widget.widget-insights .insight-image img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.5s ease; }
    .widget.widget-insights .insight-image:hover img {
      transform: scale(1.03); }
  .widget.widget-insights .insight-read-time {
    font-family: consolas, Consolas, "Courier New", monospace;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 1.6rem;
    font-weight: 400;
    text-transform: uppercase;
    margin: 25px 0; }
  .widget.widget-insights h3 {
    font-size: 2.4rem;
    line-height: 2.8rem;
    font-weight: 600; }
    .widget.widget-insights h3 a {
      color: #FFF;
      text-decoration: none; }
  .widget.widget-insights .insight-excerpt {
    margin-bottom: 2rem; }
    .widget.widget-insights .insight-excerpt p {
      margin: 0;
      font-size: 2.0rem;
      line-height: 2.6rem;
      font-weight: 300; }
  .widget.widget-insights .insight-read-more {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    margin-top: auto;
    align-self: flex-start;
    color: #67ABB5;
    font-family: consolas, Consolas, "Courier New", monospace;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 1.6rem;
    text-transform: uppercase;
    text-decoration: none;
    transition: gap 0.3s ease; }
    .widget.widget-insights .insight-read-more span {
      font-size: 2rem;
      line-height: 1;
      font-weight: 300; }
    .widget.widget-insights .insight-read-more:hover {
      gap: 1.2rem; }
  .widget.widget-insights .insights-navigation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    margin-top: 8rem; }
  .widget.widget-insights .insights-prev,
  .widget.widget-insights .insights-next {
    position: relative;
    width: 4.4rem;
    height: 4.4rem;
    flex: 0 0 4.4rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: opacity 0.3s ease; }
    .widget.widget-insights .insights-prev:after,
    .widget.widget-insights .insights-next:after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 0.8rem;
      height: 0.8rem;
      border-top: 0.2rem solid #1c4165;
      border-right: 0.2rem solid #1c4165; }
    .widget.widget-insights .insights-prev:hover,
    .widget.widget-insights .insights-next:hover {
      opacity: 0.8; }
  .widget.widget-insights .insights-prev:after {
    transform: translate(-35%, -50%) rotate(-135deg); }
  .widget.widget-insights .insights-next:after {
    transform: translate(-65%, -50%) rotate(45deg); }
  .widget.widget-insights .insights-pagination {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    width: auto !important; }
    .widget.widget-insights .insights-pagination .swiper-pagination-bullet {
      width: 1.1rem;
      height: 1.1rem;
      margin: 0 !important;
      border-radius: 50%;
      background: #fff;
      opacity: 1; }
    .widget.widget-insights .insights-pagination .swiper-pagination-bullet-active {
      background: #68c4cb; }
  .widget.widget-single {
    padding-bottom: 0;
    padding-top: 60px; }
    .widget.widget-single:has(+ #footer) {
      padding-bottom: 60px; }
    .widget.widget-single .widget-header {
      padding-bottom: 0;
      flex-direction: column; }
      .widget.widget-single .widget-header a {
        color: #E6C3B5; }
        .widget.widget-single .widget-header a:hover {
          color: #E6C3B5;
          text-decoration: underline; }
      .widget.widget-single .widget-header > ul {
        padding-left: 30px; }
        .widget.widget-single .widget-header > ul li {
          position: relative; }
          .widget.widget-single .widget-header > ul li ul {
            margin-top: 8px; }
          .widget.widget-single .widget-header > ul li:before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #FFF;
            position: absolute;
            left: -20px;
            top: 12px; }
          .widget.widget-single .widget-header > ul li + li {
            margin-top: 8px; }
      .widget.widget-single .widget-header img {
        display: block;
        border-radius: 25px; }
  .widget.widget-team {
    padding: 120px 20px; }
    .widget.widget-team .container {
      max-width: 1660px;
      padding: 0; }
    .widget.widget-team .widget-header {
      padding: 0; }
      .widget.widget-team .widget-header h2 {
        font-size: 4.0rem;
        line-height: 4.6rem;
        font-weight: 400;
        color: #67ABB5; }
    .widget.widget-team .team-filters {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      font-family: consolas, Consolas, "Courier New", monospace;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      font-size: 1.6rem;
      width: 100%;
      max-width: 1065px;
      margin-top: 10px;
      display: none; }
    .widget.widget-team .team-filter {
      position: relative;
      padding: 0 1.2rem;
      border: 0;
      background: none;
      color: rgba(255, 255, 255, 0.7);
      text-transform: uppercase;
      cursor: pointer;
      transition: color 0.3s ease; }
      .widget.widget-team .team-filter:first-child {
        padding-left: 0; }
      .widget.widget-team .team-filter:not(:last-child):after {
        content: '';
        position: absolute;
        top: 50%;
        right: 0;
        width: 0.1rem;
        height: 1.2rem;
        background: rgba(255, 255, 255, 0.4);
        transform: translateY(-50%); }
      .widget.widget-team .team-filter:hover, .widget.widget-team .team-filter.active {
        color: #E6C3B5; }
    @media not all and (min-width: 1000px) {
      .widget.widget-team .team-filter[data-filter="all"] {
        display: none; }
      .widget.widget-team .team-filter[data-filter="all"] + .team-filter {
        padding-left: 0; } }
    .widget.widget-team .team-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 60px 30px;
      padding: 60px 0 0 0;
      width: 100%; }
    .widget.widget-team .team-member {
      min-width: 0;
      width: calc(20% - 24px); }
    .widget.widget-team .team-member-open {
      display: block;
      width: 100%;
      padding: 0;
      border: 0;
      background: none;
      text-align: left;
      color: inherit;
      cursor: pointer; }
    .widget.widget-team .team-member-image {
      position: relative;
      width: 100%;
      aspect-ratio: 0.73;
      overflow: hidden;
      border-radius: 2rem;
      background: #68c4cb;
      transition: transform 0.3s ease; }
      .widget.widget-team .team-member-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover; }
    .widget.widget-team .team-member-open:hover .team-member-image {
      transform: translateY(-0.4rem); }
    .widget.widget-team .team-member-outline:not(.team-member-original) {
      display: flex;
      align-items: flex-end;
      justify-content: center;
      width: 100%;
      height: 100%;
      padding: 2rem 1.5rem 0;
      align-items: center; }
      .widget.widget-team .team-member-outline:not(.team-member-original) img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
        max-height: 320px; }
    .widget.widget-team .team-member-original {
      height: 100%; }
      .widget.widget-team .team-member-original img {
        object-fit: cover;
        max-height: unset; }
    .widget.widget-team .team-member-details {
      padding-top: 20px; }
    .widget.widget-team .team-member-title-row {
      display: flex;
      align-items: center;
      gap: 0 8px; }
    .widget.widget-team .team-member-name {
      width: auto;
      padding: 0;
      margin: 0;
      border: 0;
      background: none;
      color: #fff;
      font-size: 2.4rem;
      line-height: 2.8rem;
      font-weight: 600;
      text-align: left;
      cursor: pointer;
      transition: opacity 0.3s ease; }
      .widget.widget-team .team-member-name:hover {
        opacity: 0.75; }
    .widget.widget-team .team-member-job {
      margin-top: 0.2rem;
      font-size: 2.0rem;
      line-height: 2.6rem;
      font-weight: 300; }
    .widget.widget-team .team-member-linkedin {
      margin-top: 4px;
      text-decoration: none;
      transition: transform 0.2s ease, opacity 0.2s ease; }
      .widget.widget-team .team-member-linkedin svg {
        display: block;
        width: 25px;
        height: 25px; }
      .widget.widget-team .team-member-linkedin:hover {
        transform: translateY(-0.2rem);
        opacity: 0.85; }
    .widget.widget-team .team-modal {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 3rem;
      background: rgba(12, 37, 61, 0.85);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.3s ease, visibility 0.3s ease; }
      .widget.widget-team .team-modal.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto; }
    .widget.widget-team .team-modal-inner {
      position: relative;
      width: 100%;
      max-width: 70rem;
      max-height: 85vh;
      overflow-y: auto;
      padding: 5rem;
      border-radius: 2rem;
      background: #68c4cb;
      color: #1c4165; }
      .widget.widget-team .team-modal-inner h3 {
        margin: 0 0 0.5rem;
        font-size: 4rem;
        line-height: 4.6rem;
        font-weight: 300;
        color: #1c4165; }
    .widget.widget-team .team-modal-close {
      position: absolute;
      top: 2rem;
      right: 2rem;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4rem;
      height: 4rem;
      padding: 0;
      border: 0;
      border-radius: 50%;
      background: #1c4165;
      color: #fff;
      font-size: 2.8rem;
      line-height: 1;
      cursor: pointer;
      transition: opacity 0.3s ease;
      padding-bottom: 3px; }
      .widget.widget-team .team-modal-close:hover {
        opacity: 0.8; }
    .widget.widget-team .team-modal-job {
      margin-bottom: 3rem;
      font-size: 2rem;
      line-height: 2.6rem;
      font-weight: 400;
      color: #1c4165; }
    .widget.widget-team .team-modal-bio p {
      margin: 0 0 1.8rem;
      font-size: 1.8rem;
      line-height: 2.6rem;
      font-weight: 400;
      color: #1c4165; }
      .widget.widget-team .team-modal-bio p:last-child {
        margin-bottom: 0; }
    .widget.widget-team .team-modal-linkedin {
      display: inline-block;
      margin-top: 3rem;
      color: #1c4165;
      font-size: 1.6rem;
      line-height: 2rem;
      font-weight: 600;
      text-decoration: underline; }
      .widget.widget-team .team-modal-linkedin:hover {
        text-decoration: none; }
  .widget body.team-modal-open {
    overflow: hidden; }
  .widget.widget-origin {
    padding: 0;
    overflow: hidden; }
    .widget.widget-origin .container {
      position: relative; }
    .widget.widget-origin .widget-header h2 {
      font-size: 4.0rem;
      font-weight: 400;
      line-height: 4.4rem;
      color: #67ABB5;
      width: 100%; }
    .widget.widget-origin .widget-header h3 {
      font-weight: 300;
      font-size: 2.0rem;
      line-height: 2.6rem; }
    .widget.widget-origin .widget-header p {
      font-size: 2.0rem;
      line-height: 2.6rem; }
    .widget.widget-origin .widget-header .widget-header-content {
      max-width: 750px;
      margin: 0 auto;
      margin-top: 40px; }
    .widget.widget-origin .widget-origin-cards {
      position: relative;
      height: 55rem;
      width: 100%; }
    .widget.widget-origin .widget-origin-card {
      position: absolute;
      width: 480px;
      height: 585px;
      opacity: 0;
      background: url(../images/photoframe.png) center top no-repeat;
      background-size: contain;
      padding: 38px 44px 128px 30px; }
      .widget.widget-origin .widget-origin-card img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover; }
      .widget.widget-origin .widget-origin-card:nth-child(1) {
        left: 2%;
        top: 0;
        transform: rotate(-11deg);
        z-index: 1; }
      .widget.widget-origin .widget-origin-card:nth-child(2) {
        left: 27%;
        top: 7rem;
        transform: rotate(-2deg);
        z-index: 2; }
      .widget.widget-origin .widget-origin-card:nth-child(3) {
        left: 48%;
        top: 17rem;
        transform: rotate(6deg);
        z-index: 4; }
      .widget.widget-origin .widget-origin-card:nth-child(4) {
        right: 2%;
        top: 3rem;
        transform: rotate(11deg);
        z-index: 3; }

.line-animation {
  position: relative;
  width: 100%;
  max-width: unset;
  margin-left: auto;
  margin-right: auto;
  pointer-events: none;
  overflow: hidden; }
  .line-animation .line-animation-svg {
    width: 100%;
    transform-origin: center center; }
    .line-animation .line-animation-svg svg {
      display: block;
      width: 100%;
      height: auto;
      overflow: visible; }

.line-animation-svg {
  transform-origin: center center; }
  .line-animation-svg svg {
    display: block;
    width: 100%;
    height: auto; }

#footer {
  padding-bottom: 40px;
  padding-top: 40px; }
  #footer ul li {
    display: block; }
    #footer ul li a {
      display: block; }
      #footer ul li a:hover {
        opacity: 0.4; }
  #footer .row {
    width: 100%;
    align-items: flex-start;
    gap: 0 15px; }
  #footer #footer-logo {
    width: 75px; }
    #footer #footer-logo img {
      display: block;
      width: 100%;
      height: auto; }
  #footer #footer-content {
    width: calc(100% - 15px - 75px);
    padding-left: 22px;
    border-left: 1px solid #FFF; }
  #footer #strapline {
    font-weight: 300;
    font-size: 3.2rem; }
  #footer #socials {
    margin: 36px 0 0 0;
    padding: 0 0 37px 0;
    display: flex;
    gap: 0 17px;
    flex-wrap: wrap; }
  #footer #links {
    border-top: 1px solid #FFF;
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    padding: 30px 0 60px 0;
    gap: 0 22px; }
  #footer .footer-menu {
    width: calc(20% - 18px);
    font-family: consolas, Consolas, "Courier New", monospace;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 1.6rem; }
  #footer p.h6 {
    font-weight: 700; }
  #footer #copyright {
    border-top: 1px solid #FFF;
    padding-top: 38px; }

@media screen and (max-width: 1660px) {
  .widget.widget-expertise .expertise {
    padding: 0; }
    .widget.widget-expertise .expertise .expertise-item:nth-of-type(1), .widget.widget-expertise .expertise .expertise-item:nth-of-type(2), .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) {
      width: 33.333%;
      margin-left: 0; }
      .widget.widget-expertise .expertise .expertise-item:nth-of-type(1) .expertise-image, .widget.widget-expertise .expertise .expertise-item:nth-of-type(2) .expertise-image, .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) .expertise-image {
        width: 100px; }
    .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) {
      padding-top: 425px;
      padding-bottom: 60px; } }
@media screen and (max-width: 1500px) {
  .widget.widget-cta .container {
    max-width: 1080px;
    padding: 80px; }
  .widget.widget-projects .container {
    max-width: 1080px; } }
@media screen and (max-width: 1200px) {
  .line-animation {
    margin: 0 !important; }

  .widget-header .widget-header-left,
  .widget-header .widget-header-right {
    width: 100%;
    max-width: unset; }
  .widget-header .widget-header-left h2, .widget-header .widget-header-left .h2 {
    font-size: 4.0rem;
    line-height: 4.6rem; }
  .widget-header .widget-header-right {
    padding-left: 40px;
    font-size: 2.0rem;
    line-height: 2.6rem;
    padding-top: 40px; }

  .widget:has(+ .widget-projects) {
    padding: 0 20px !important; }
  .widget.widget-cta .container {
    padding: 60px 60px; }
  .widget.widget-about .widget-header .widget-header-right {
    padding-left: 0; }
  .widget.widget-about .about-step {
    padding-left: 40px; }
  .widget.widget-hero {
    height: auto; }
  .widget.widget-video .container {
    padding: 0; }
  .widget.widget-projects {
    margin-top: 60px; }
    .widget.widget-projects .widget-header {
      width: 100%;
      margin-bottom: 60px;
      max-width: unset; }
    .widget.widget-projects .projects {
      width: 100%;
      margin: 0; }
  .widget.widget-sectors.style2 .sector-images {
    width: 80px;
    height: 80px; }
  .widget.widget-sectors.style2 .sector-nav-item h3 {
    font-size: 3.2rem;
    line-height: 3.8rem; }
  .widget.widget-sectors .sector-content-wrapper {
    margin-left: 60px;
    margin-top: 60px; }
  .widget.widget-sectors .sector-nav-item h3 {
    font-size: 3.6rem;
    line-height: 4.0rem; }
  .widget.widget-sectors .sectors {
    padding-left: 0; }
  .widget.widget-team .team-member {
    width: calc(25% - 23px); }
  .widget.widget-expertise {
    padding-top: 50px; }
    .widget.widget-expertise .widget-header-left {
      max-width: unset; }
    .widget.widget-expertise .expertise {
      padding: 0;
      gap: 60px 0; }
      .widget.widget-expertise .expertise .expertise-item:nth-of-type(1), .widget.widget-expertise .expertise .expertise-item:nth-of-type(2), .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) {
        width: 100%;
        padding: 0; }
        .widget.widget-expertise .expertise .expertise-item:nth-of-type(1) .expertise-content, .widget.widget-expertise .expertise .expertise-item:nth-of-type(2) .expertise-content, .widget.widget-expertise .expertise .expertise-item:nth-of-type(3) .expertise-content {
          width: calc(100% - 130px); } }
@media screen and (max-width: 1000px) {
  body.normal-menu.menu-open #main-menu, body.page-template-default.menu-open #main-menu, body.post-template-default.menu-open #main-menu, body.blog.menu-open #main-menu {
    transform: translate(0, 0); }
  body.normal-menu.admin-bar #main-menu, body.page-template-default.admin-bar #main-menu, body.post-template-default.admin-bar #main-menu, body.blog.admin-bar #main-menu {
    top: 32px;
    height: calc(100vh - 32px); }
  body.normal-menu #toggle-menu, body.page-template-default #toggle-menu, body.post-template-default #toggle-menu, body.blog #toggle-menu {
    display: block;
    margin-left: auto;
    opacity: 1;
    visibility: visible;
    width: 23px; }
  body.normal-menu #main-menu, body.page-template-default #main-menu, body.post-template-default #main-menu, body.blog #main-menu {
    position: fixed;
    right: 0;
    transform: translate(1000px, 0);
    top: 0;
    width: 90%;
    max-width: 400px;
    height: 100vh;
    background: #67ABB5; }
    body.normal-menu #main-menu ul, body.page-template-default #main-menu ul, body.post-template-default #main-menu ul, body.blog #main-menu ul {
      width: 100%;
      flex-direction: column;
      flex-wrap: wrap; }
      body.normal-menu #main-menu ul li a, body.page-template-default #main-menu ul li a, body.post-template-default #main-menu ul li a, body.blog #main-menu ul li a {
        padding: 10px 40px; }
      body.normal-menu #main-menu ul ul, body.page-template-default #main-menu ul ul, body.post-template-default #main-menu ul ul, body.blog #main-menu ul ul {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: unset; }
  body #header {
    padding: 20px 0; }
    body #header #logo {
      width: 50px; }
  body.normal-menu #header {
    padding: 20px 0; }
    body.normal-menu #header #logo {
      width: 50px; }

  .line-animation {
    margin: 0 !important; }

  #header .row {
    align-items: flex-end; }
  #header #logo {
    display: block;
    width: 75px; }

  .widget.widget-timeline .timeline-item-content h3 {
    font-size: 2.0rem;
    line-height: 2.6rem; }
  .widget.widget-quicklinks .quicklinks li a {
    font-size: 2.0rem;
    line-height: 2.6rem; }
  .widget.widget-quicklinks .quicklinks li:after {
    font-size: 2.0rem;
    line-height: 2.6rem; }
  .widget.widget-hero {
    height: auto;
    padding-top: 126px; }
    .widget.widget-hero.bg-soft-peach {
      background-position: left -100px bottom -100px;
      height: 900px; }
      .widget.widget-hero.bg-soft-peach:before {
        background-size: 65%; }
    .widget.widget-hero .hero-content {
      width: 100%; }
  .widget.widget-team .team-member {
    width: calc(33.333% - 20px); }
  .widget.widget-cta .container {
    padding: 60px 60px; }
  .widget.widget-origin .widget-origin-card {
    width: 372px;
    height: 479px;
    padding: 30px 34px 126px 23px; }
  .widget.widget-sectors.style2 .sector-content-wrapper,
  .widget.widget-sectors.style2 .sector-selector {
    width: 100%; }
  .widget.widget-sectors.style2 .sector-content-wrapper {
    margin-top: 60px;
    max-width: 600px; }
  .widget.widget-contact {
    padding-bottom: 100px; }
    .widget.widget-contact .contact-content {
      width: 100%; }
    .widget.widget-contact .contact-details {
      margin-top: 100px; }
  .widget.widget-projects .project-meta,
  .widget.widget-projects .project-stats {
    width: calc(50% - 20px); }
  .widget.widget-projects .project-description {
    width: 100%;
    padding-top: 0;
    margin: 30px 0 0 0; }
  .widget.widget-news, .widget.widget-insights {
    padding: 30px 0 0 0; }
    .widget.widget-news .news-widget, .widget.widget-insights .news-widget {
      margin-top: 30px; }
  .widget.widget-insights {
    padding: 0 0 60px 0; }
    .widget.widget-insights .insight-excerpt p {
      font-size: 1.6rem;
      line-height: 2.2rem; }
    .widget.widget-insights .widget-header {
      padding-bottom: 30px; }
  .widget.widget-video {
    margin-top: -40px; }

  #footer .row {
    position: relative; }
  #footer #socials,
  #footer #strapline {
    padding-left: 130px;
    text-align: right;
    justify-content: flex-end; }
  #footer #footer-logo,
  #footer #footer-content {
    width: 100%; }
  #footer #footer-content {
    padding: 0;
    border: 0; }
  #footer #footer-logo {
    position: absolute;
    left: 0;
    top: 10px; }
    #footer #footer-logo a {
      display: block;
      width: 75px; } }
@media screen and (max-width: 800px) {
  #footer #links {
    gap: 22px; }
  #footer .footer-menu {
    width: 100%; }

  .widget.widget-team .team-member {
    width: calc(50% - 15px); }
  .widget.widget-hero h1, .widget.widget-contact h1 {
    font-size: 4.0rem;
    line-height: 4.6rem; }
  .widget.widget-hero h2, .widget.widget-contact h2 {
    font-size: 2.6rem;
    line-height: 3.2rem; }

  .line-animation .st0,
  .line-animation .draw-line {
    stroke-width: 8.57px; } }
@media screen and (max-width: 600px) {
  body {
    font-size: 1.6rem;
    line-height: 2.2rem; }

  h2, .h2 {
    font-size: 3.4rem;
    line-height: 4.0rem; }

  .widget.widget-hero p {
    font-size: 1.6rem;
    line-height: 2.2rem; }

  .widget-header .widget-header-right {
    font-size: 2.0rem;
    line-height: 2.6rem;
    padding-top: 40px; }
  .widget-header .widget-header-left h2, .widget-header .widget-header-left .h2 {
    font-size: 3.4rem;
    line-height: 4.0rem; }

  .widget:has(+ .widget-projects) {
    padding: 0 0 60px 0 !important; }
  .widget.widget-news .widget-header h2, .widget.widget-insights .widget-header h2, .widget.widget-origin .widget-header h2, .widget.widget-team .widget-header h2 {
    font-size: 3.4rem;
    line-height: 4.0rem; }
  .widget.widget-origin .widget-origin-card {
    width: 250px;
    height: 303px;
    padding: 20px 23px 67px 15px; }
  .widget.widget-team {
    padding: 60px 20px; }
    .widget.widget-team .team-member {
      width: calc(100%); }
  .widget.widget-projects {
    margin: 0; }
    .widget.widget-projects .project-meta,
    .widget.widget-projects .project-stats {
      width: 100%; }
  .widget.widget-cta {
    padding: 0; }
    .widget.widget-cta.section-soft-peach:has(+ .widget-projects) {
      padding-bottom: 0 !important; }
    .widget.widget-cta .container {
      border-radius: 0;
      padding: 40px 30px; }
  .widget.widget-contact .contact-detail-content {
    font-size: 2.0rem;
    line-height: 2.6rem; }
  .widget.widget-about .about-sections {
    margin-top: 0; }
  .widget.widget-about .about-step {
    font-size: 3.4rem;
    line-height: 4.0rem;
    flex-wrap: wrap;
    padding-left: 0; }
  .widget.widget-about .about-step-content {
    width: 100%; }

  #footer #footer-logo a {
    width: 75px; }
  #footer #strapline {
    font-size: 2.0rem;
    padding-left: 90px; }
  #footer #socials {
    padding-bottom: 24px;
    margin-top: 60px; }
  #footer #links {
    padding-bottom: 30px; }
  #footer #copyright {
    font-size: 1.6rem;
    line-height: 2.2rem; } }
/* Responsive timeline: text and icons share one grid; JS connects icon centres. */
.widget.widget-timeline {
  padding: clamp(64px, 8vw, 150px) 0; }

.widget.widget-timeline .timeline {
  --timeline-icon-size: clamp(100px, 13vw, 180px);
  --timeline-gap: clamp(24px, 4vw, 64px); }

.widget.widget-timeline .timeline-line {
  inset: 0;
  transform: none;
  width: 100%;
  height: 100%; }

.widget.widget-timeline .timeline-line path {
  fill: none;
  stroke: #fff;
  stroke-width: 5;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke; }

.widget.widget-timeline .timeline-items {
  display: grid;
  gap: clamp(56px, 7vw, 112px);
  padding: 0; }

.widget.widget-timeline .timeline-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--timeline-icon-size) minmax(0, 1fr);
  gap: 0 var(--timeline-gap);
  align-items: start;
  min-height: 0;
  width: 100%; }

.widget.widget-timeline .timeline-item.timeline-item-left,
.widget.widget-timeline .timeline-item.timeline-item-right {
  margin: 0;
  padding: 0; }

.widget.widget-timeline .timeline-item.timeline-item-left .timeline-icon,
.widget.widget-timeline .timeline-item.timeline-item-right .timeline-icon {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  inset: auto;
  transform: none;
  width: var(--timeline-icon-size);
  height: var(--timeline-icon-size);
  padding: clamp(12px, 2vw, 24px);
  display: grid;
  place-items: center;
  opacity: 1;
  box-sizing: border-box; }

.widget.widget-timeline .timeline-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  min-height: 0; }

.widget.widget-timeline .timeline-icon:not(:has(img)) {
  background: transparent; }

.widget.widget-timeline .timeline-item-content {
  grid-row: 1;
  grid-column: 3;
  min-width: 0;
  overflow-wrap: anywhere; }

.widget.widget-timeline .timeline-item-left .timeline-item-content {
  grid-column: 1; }

.widget.widget-timeline .timeline-item-content h2 {
  font-size: clamp(3.2rem, 5.5vw, 4rem);
  line-height: 1.2; }

.widget.widget-timeline .timeline-enhanced .timeline-item {
  opacity: 0;
  transition: opacity 0.35s ease; }

.widget.widget-timeline .timeline-enhanced .timeline-item.is-revealed,
.widget.widget-timeline .timeline-enhanced .timeline-item:first-child {
  opacity: 1; }

@media (max-width: 767px) {
  .widget.widget-timeline .timeline {
    --timeline-icon-size: 100px;
    --timeline-gap: 20px; }

  .widget.widget-timeline .timeline-item {
    grid-template-columns: var(--timeline-icon-size) minmax(0, 1fr); }

  .widget.widget-timeline .timeline-item.timeline-item-left,
  .widget.widget-timeline .timeline-item.timeline-item-right {
    text-align: left; }

  .widget.widget-timeline .timeline-item.timeline-item-left .timeline-icon,
  .widget.widget-timeline .timeline-item.timeline-item-right .timeline-icon {
    grid-column: 1;
    padding: 8px; }

  .widget.widget-timeline .timeline-item .timeline-item-content {
    grid-column: 2; } }
@media (prefers-reduced-motion: reduce) {
  .widget.widget-timeline .timeline-enhanced .timeline-item {
    opacity: 1;
    transition: none; } }
/* Stack About images and content only at the existing mobile breakpoint. */
@media screen and (max-width: 600px) {
  .widget.widget-about .about-step {
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 40px; }

  .widget.widget-about .about-step-image {
    flex: 0 0 auto;
    margin-top: 0; }

  .widget.widget-about .about-step-content {
    width: 100%;
    min-width: 0; } }
/* Reserve the contained hero artwork below the content on smaller screens. */
@media screen and (max-width: 1719.98px) {
  .widget.widget-hero.bg-soft-peach {
    height: auto;
    background-size: contain;
    background-position: center bottom;
    padding-bottom: max(0px, calc(var(--hero-art-height, 43.7247vw) - 200px)); } }
@media screen and (max-width: 1000px) {
  .widget.widget-hero.bg-soft-peach {
    padding-bottom: var(--hero-art-height, 43.7247vw); } }
body.macos {
  background-color: #1D4267 !important; }
  body.macos.normal-menu #header {
    background-color: #1D4267 !important; }
  body.macos .widget.widget-timeline .timeline-icon {
    background-color: #1D4267 !important; }

.widget.widget-hero.bg-soft-peach {
  --hero-rive-offset: -12vw; }

.widget.widget-hero.bg-soft-peach .hero-rive {
  position: absolute;
  left: 0;
  bottom: var(--hero-rive-offset);
  width: 100%;
  height: 100%;
  display: block;
  visibility: hidden;
  pointer-events: none;
  z-index: 1; }

.widget.widget-hero.bg-soft-peach.hero-rive-ready {
  background-image: none; }

.widget.widget-hero.bg-soft-peach.hero-rive-ready .hero-rive {
  visibility: visible; }

@media screen and (max-width: 1719.98px) {
  .widget.widget-hero.bg-soft-peach {
    --hero-rive-offset: -12vw; }

  .widget.widget-hero.bg-soft-peach .hero-rive {
    height: var(--hero-art-height, 43.7247vw); } }
@media (prefers-reduced-motion: reduce) {
  .widget.widget-hero.bg-soft-peach.hero-rive-ready {
    background-image: url(../images/herolines.png); }

  .widget.widget-hero.bg-soft-peach.hero-rive-ready .hero-rive {
    visibility: hidden; } }
/* Keep origin cards in two readable rows on smaller screens. */
@media screen and (max-width: 1000px) {
  .widget.widget-origin .widget-origin-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    padding: 8% 7% 12%;
    height: auto; }

  .widget.widget-origin .widget-origin-card:nth-child(n) {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 480 / 585;
    padding: 0;
    /* Preserve the existing rotations and GSAP entrance animation. */ }

  .widget.widget-origin .widget-origin-card:nth-child(even) {
    top: 6%; }

  .widget.widget-origin .widget-origin-card:nth-child(n + 3) {
    margin-top: -30%; }

  .widget.widget-origin .widget-origin-card img {
    position: absolute;
    left: 6.25%;
    top: 6.496%;
    width: 84.583%;
    height: 71.624%; } }
/* Each project now slides as one unit, retaining the existing image proportions. */
.widget.widget-projects .projects-slider {
  width: 100%;
  min-width: 0; }

.widget.widget-projects .projects-slider .project {
  height: auto; }

.widget.widget-projects .projects-slider .project-images {
  aspect-ratio: 1226 / 760; }

/* Shared controls stay below the image while the complete project slides. */
.widget.widget-projects .projects {
  position: relative; }

.widget.widget-projects .projects > .project-images-navigation {
  position: absolute;
  left: 0;
  top: var(--project-image-height, 0px);
  margin-top: 40px;
  z-index: 4; }

.widget.widget-projects .projects-has-navigation .project-media {
  padding-bottom: calc(40px + 4rem); }

/* Show the selected outline until the team profile is hovered or keyboard-focused. */
.widget.widget-team .team-member-image-reveal .team-member-photo {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.4s ease; }

.widget.widget-team .team-member:hover .team-member-image-reveal .team-member-photo,
.widget.widget-team .team-member-open:focus-visible .team-member-image-reveal .team-member-photo {
  opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .widget.widget-team .team-member-image-reveal .team-member-photo {
    transition: none; } }
@media screen and (max-width: 500px) {
  .widget.widget-projects .project-images-pagination {
    gap: 5px; } }
/* Both project columns belong to the same slide. */
.widget.widget-projects .projects {
  width: 100%; }

.widget.widget-projects .projects-slider .project {
  display: grid;
  grid-template-columns: minmax(0, calc(25% - 30px)) minmax(0, calc(75% - 30px));
  column-gap: 60px;
  align-items: start; }

.widget.widget-projects .project-sidebar {
  display: block;
  margin: 0;
  padding-top: 110px;
  min-width: 0; }

.widget.widget-projects .project-sidebar .widget-header {
  width: 100%;
  padding: 0;
  margin: 0 0 20px; }

.widget.widget-projects .project-sidebar .project-meta,
.widget.widget-projects .project-sidebar .project-stats {
  width: 100%; }

.widget.widget-projects .project-sidebar .project-stats {
  margin-top: 30px; }

.widget.widget-projects .project-main {
  min-width: 0; }

.widget.widget-projects .project-main .project-description {
  width: 100%;
  margin-top: 20px;
  font-size: 2.0rem;
  line-height: 2.6rem;
  font-weight: 400;
  position: relative;
  z-index: 3; }

.widget.widget-projects .projects > .project-images-navigation {
  left: var(--project-image-left, 0px); }

@media screen and (max-width: 1200px) {
  .widget.widget-projects .projects-slider .project {
    padding-top: 40px;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 40px; }

  .widget.widget-projects .project-sidebar {
    padding-top: 0; } }

/*# sourceMappingURL=styles.css.map */
