.ah-frame{
  --navy: #0a2540;
  --blue: #2563eb;
  --cream: #f5f0e8;
  --muted: #52657d;
  --ink: #0a2540;
  --white: #fff;
  --font: "Inter", "Segoe UI", sans-serif;
  --display: "Plus Jakarta Sans", "Inter", sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --blue-deep: #1d4ed8;
}

.ah-frame *, .ah-frame *::before, .ah-frame *::after{
  box-sizing: border-box;
}

html:has(.ah-frame){
  scroll-behavior: smooth;
}

.ah-frame{
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: var(--font);
}

.ah-frame img{
  max-width: 100%;
  display: block;
}

.ah-frame a{
  color: inherit;
  text-decoration: none;
}

.ah-frame button, .ah-frame input{
  font: inherit;
}

.ah-frame button{
  cursor: pointer;
}

.ah-frame .frame{
  --content: 1280px;
  --gutter: max(20px, calc((100% - var(--content)) / 2));
  width: 100%;
  position: relative;
  background: var(--white);
}

.ah-frame .skip-link{
  position: absolute;
  left: 16px;
  top: -40px;
  background: var(--white);
  color: var(--navy);
  padding: 8px 12px;
  z-index: 100;
}

.ah-frame .skip-link:focus{
  top: 12px;
}

.ah-frame .site-header{
  position: fixed;
  z-index: 40;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  height: 96px;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--white);
  background: transparent;
  transition: background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.ah-frame .site-header.is-scrolled, .ah-frame .site-header:has(.site-nav.is-open){
  background: rgba(10, 37, 64, 0.96);
  box-shadow: 0 10px 30px rgba(10, 37, 64, 0.18);
  backdrop-filter: blur(16px);
}

/* Hello Elementor caps .site-header and .site-footer at the theme content width. */
.ah-frame .site-footer{
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.ah-frame .logo{
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 0 1 auto;
}

.ah-frame .logo img{
  width: auto;
  height: 72px;
  max-width: min(280px, 46vw);
  object-fit: contain;
  object-position: left center;
  mix-blend-mode: screen;
}

.ah-frame .site-nav{
  display: flex;
  align-items: center;
  gap: 32px;
}

.ah-frame .site-nav a{
  position: relative;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  text-transform: uppercase;
  transition: color 0.25s var(--ease);
}

.ah-frame .site-nav a::after{
  content: "";
  position: absolute;
  left: 0;
  top: 25px;
  width: 100%;
  height: 1px;
  background: var(--white);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s var(--ease);
}

.ah-frame .site-nav a:hover{
  color: var(--white);
}

.ah-frame .site-nav a:hover::after, .ah-frame .site-nav a[aria-current="page"]::after{
  transform: scaleX(1);
}

.ah-frame .site-nav a[aria-current="page"]{
  color: var(--white);
}

.ah-frame .site-nav a.header-cta::after{
  display: none;
}

.ah-frame .header-cta{
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 10px 24px;
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.ah-frame .nav-toggle, .ah-frame .nav-cta{
  display: none;
}

.ah-frame .hero{
  position: relative;
  height: 950px;
  overflow: hidden;
  color: var(--white);
}

.ah-frame .hero-media, .ah-frame .hero-shade, .ah-frame .hero-top-shade{
  position: absolute;
  inset: 0;
}

.ah-frame .hero-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ah-frame .hero-shade{
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.96) 0%, rgba(0, 0, 0, 0.8) 22%, rgba(0, 0, 0, 0.4) 48%, rgba(0, 0, 0, 0.08) 72%, rgba(0, 0, 0, 0) 100%);
}

.ah-frame .hero-top-shade{
  height: 180px;
  inset: 0 0 auto 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 100%);
}

.ah-frame .hero-copy{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 0 var(--gutter) 72px;
}

.ah-frame .hero-row{
  width: 100%;
  display: flex;
  align-items: flex-end;
}

.ah-frame .hero-left{
  width: min(811px, 63%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.ah-frame .hero-kicker{
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 500;
  line-height: 16.5px;
  letter-spacing: 2.8px;
  text-transform: uppercase;
}

.ah-frame .hero h1{
  margin: 0;
  color: var(--white);
  font-family: var(--display);
  font-size: 58px;
  font-weight: 700;
  line-height: 61.48px;
}

.ah-frame .hero h1 span{
  color: var(--blue);
  font-family: "Arimo", sans-serif;
  font-style: italic;
  font-weight: 700;
}

.ah-frame .hero-split{
  align-self: stretch;
  display: flex;
  padding: 0 48px;
}

.ah-frame .hero-split span{
  width: 1px;
  background: rgba(255, 255, 255, 0.22);
}

.ah-frame .hero-right{
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 24px;
}

.ah-frame .hero-right p{
  width: 372px;
  max-width: 100%;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 16px;
  font-weight: 400;
  line-height: 27px;
}

.ah-frame .btn-glass{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 189px;
  padding: 13px 26px;
  border-radius: 999px;
  border: 1.2px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  color: var(--white);
  font-family: "Arimo", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.ah-frame .btn-glass svg{
  width: 14px;
  height: 14px;
}

.ah-frame .hero-stats{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  height: 188px;
  padding: 0 var(--gutter);
  background: var(--navy);
  color: var(--white);
}

.ah-frame .hero-stats article{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 52px 0 52px 40px;
  border-left: 1.2px solid rgba(255, 255, 255, 0.1);
}

.ah-frame .hero-stats article:first-child{
  border-left: 0;
}

.ah-frame .hero-stats strong{
  font-family: var(--display);
  font-size: 52px;
  font-weight: 700;
  line-height: 56px;
}

.ah-frame .hero-stats span{
  display: block;
  padding-top: 8px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.3px;
}

.ah-frame .clients{
  position: relative;
  overflow: hidden;
  min-height: 971px;
  padding: 110px var(--gutter);
  background: var(--cream);
}

.ah-frame .clients-intro{
  width: min(768px, 100%);
  margin: 0 auto;
  text-align: center;
}

.ah-frame .eyebrow{
  margin: 0;
  color: var(--blue);
  font-size: 11.52px;
  font-weight: 500;
  line-height: 17.28px;
  letter-spacing: 2.53px;
  text-transform: uppercase;
}

.ah-frame .clients h2, .ah-frame .practice h2, .ah-frame .work h2, .ah-frame .disciplines h2, .ah-frame .trust h2, .ah-frame .voices-quote, .ah-frame .cta h2{
  font-family: var(--display);
}

.ah-frame .clients h2{
  margin: 20px 0 0;
  color: var(--navy);
  font-size: 60px;
  font-weight: 600;
  line-height: 63.6px;
}

.ah-frame .clients-intro > p{
  width: min(576px, 100%);
  margin: 20px auto 0;
  color: var(--muted);
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
}

.ah-frame .client-bar{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: min(672px, 100%);
  margin: 48px auto 0;
  overflow: hidden;
  border-radius: 16px;
  background: var(--navy);
  box-shadow: 0 28px 56px -36px rgba(10, 37, 64, 0.75);
  color: var(--white);
  text-align: center;
}

.ah-frame .client-bar article{
  padding: 36px 32px;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.ah-frame .client-bar article:first-child{
  border-left: 0;
}

.ah-frame .client-bar strong{
  display: block;
  font-family: var(--display);
  font-size: 38.4px;
  font-weight: 400;
  line-height: 38.4px;
}

.ah-frame .client-bar span{
  display: block;
  padding-top: 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 11px;
  font-weight: 600;
  line-height: 16.5px;
  letter-spacing: 1.76px;
  text-transform: uppercase;
}

.ah-frame .collab-head{
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  margin: 72px auto 0;
}

.ah-frame .collab-head p{
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  white-space: nowrap;
}

.ah-frame .collab-head span{
  flex: 1;
  height: 1px;
  background: rgba(10, 37, 64, 0.1);
}

.ah-frame .logo-window{
  width: 100%;
  max-width: 100%;
  margin: 24px auto 0;
  overflow: hidden;
}

.ah-frame .logo-track{
  display: flex;
  gap: 20px;
  width: max-content;
  animation: marquee 40s linear infinite;
}

.ah-frame .logo-card{
  display: grid;
  place-items: center;
  width: 220px;
  height: 130px;
  padding: 0 28px;
  border-radius: 16px;
  border: 1.2px solid rgba(10, 37, 64, 0.1);
  background: var(--white);
  box-shadow: 0 12px 32px -24px rgba(10, 37, 64, 0.4);
  text-align: center;
}

.ah-frame .logo-card strong{
  display: block;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.2;
}

.ah-frame .logo-card small{
  display: block;
  margin-top: 4px;
  color: #5b6b82;
  font-size: 10px;
  letter-spacing: 0.4px;
}

.ah-frame .logo-card img{
  width: auto;
  max-width: 160px;
  max-height: 72px;
  object-fit: contain;
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.ah-frame .sectors{
  margin: 40px 0 0;
  text-align: center;
  color: rgba(10, 37, 64, 0.7);
  font-size: 13px;
  font-weight: 500;
  line-height: 16.5px;
  letter-spacing: 1.76px;
  text-transform: uppercase;
}

.ah-frame .practice{
  padding: 110px var(--gutter);
  background: var(--white);
}

.ah-frame .practice-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 7vw, 112px);
  align-items: start;
}

.ah-frame .practice-photo{
  position: relative;
  height: 714px;
  border-radius: 16px;
  overflow: visible;
  box-shadow: 0 40px 80px -30px rgba(10, 37, 64, 0.25);
}

.ah-frame .practice-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
}

.ah-frame .est-card{
  position: absolute;
  right: -16px;
  bottom: 24px;
  width: 236px;
  padding: 28px;
  border-radius: 16px;
  background: var(--white);
  box-shadow: 0 30px 60px -20px rgba(10, 37, 64, 0.3);
}

.ah-frame .est-card strong, .ah-frame .est-card b{
  display: block;
  color: var(--blue);
  font-family: var(--display);
  font-size: 48px;
  line-height: 48px;
}

.ah-frame .est-card strong{
  font-weight: 600;
}

.ah-frame .est-card b{
  font-weight: 400;
}

.ah-frame .est-card p{
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .practice h2{
  width: 584px;
  max-width: 100%;
  margin: 20px 0 0;
  color: var(--navy);
  font-size: 60px;
  font-weight: 600;
  line-height: 63.6px;
}

.ah-frame .practice-lead{
  width: 584px;
  max-width: 100%;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 29.25px;
}

.ah-frame .values{
  width: 584px;
  max-width: 100%;
  margin-top: 40px;
}

.ah-frame .value{
  margin-top: 28px;
  padding-left: 24px;
  border-left: 3px solid var(--blue);
}

.ah-frame .value:first-child{
  margin-top: 0;
}

.ah-frame .value h3{
  margin: 0;
  color: var(--navy);
  font-size: 20px;
  font-weight: 400;
  line-height: 28px;
}

.ah-frame .value p{
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 24px;
}

.ah-frame .practice-actions{
  display: flex;
  gap: 16px;
  margin-top: 44px;
}

.ah-frame .btn-blue, .ah-frame .btn-line, .ah-frame .btn-line-light{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.ah-frame .btn-blue{
  background: var(--blue);
  color: var(--white);
}

.ah-frame .btn-line{
  border: 1px solid rgba(10, 37, 64, 0.2);
  color: var(--navy);
}

.ah-frame .work{
  padding: 110px var(--gutter);
  background: var(--cream);
}

.ah-frame .section-head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.ah-frame .work h2, .ah-frame .disciplines h2{
  width: min(576px, 100%);
  margin: 20px 0 0;
  color: var(--navy);
  font-size: 60px;
  font-weight: 600;
  line-height: 62.4px;
}

.ah-frame .btn-outline{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding: 10px 24px;
  border-radius: 999px;
  border: 1px solid rgba(10, 37, 64, 0.2);
  color: #334155;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  white-space: nowrap;
}

.ah-frame .work-top{
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: 20px;
  margin-top: 56px;
}

.ah-frame .work-side{
  display: grid;
  gap: 20px;
}

.ah-frame .project{
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  color: var(--white);
}

.ah-frame .project img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ah-frame .project.is-feature{
  height: 520px;
}

.ah-frame .work-side .project{
  height: 250px;
}

.ah-frame .project-shade{
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(10, 37, 64, 0.95) 0%, rgba(10, 37, 64, 0.3) 50%, rgba(10, 37, 64, 0.1) 100%);
}

.ah-frame .work-side .project-shade{
  background: linear-gradient(0deg, rgba(10, 37, 64, 0.9) 0%, rgba(10, 37, 64, 0.2) 50%, rgba(10, 37, 64, 0.1) 100%);
}

.ah-frame .badge{
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

.ah-frame .work-side .badge{
  top: 16px;
  right: 16px;
  padding: 2px 10px;
  font-size: 10px;
  line-height: 15px;
  letter-spacing: 0.5px;
}

.ah-frame .project-body{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 32px;
}

.ah-frame .work-side .project-body{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 24px;
}

.ah-frame .project h3{
  margin: 12px 0 0;
  font-family: var(--display);
  font-weight: 600;
}

.ah-frame .is-feature h3{
  font-size: 36px;
  line-height: 49.5px;
}

.ah-frame .work-side h3, .ah-frame .mini h3{
  font-size: 20px;
  line-height: 27.5px;
}

.ah-frame .project .meta, .ah-frame .project .client{
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .project .client{
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  line-height: 16px;
}

.ah-frame .work-side .meta{
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  line-height: 16px;
}

.ah-frame .case-link{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-size: 14px;
  font-weight: 600;
}

.ah-frame .arrow{
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  flex: none;
  color: var(--white);
  font-size: 0;
}

.ah-frame .arrow::before{
  content: none;
}

.ah-frame .arrow svg{
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  transition: transform 0.3s var(--ease);
}

.ah-frame .work-bottom{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 20px;
}

.ah-frame .mini{
  position: relative;
  height: 258px;
  overflow: hidden;
  border-radius: 16px;
  color: var(--white);
}

.ah-frame .mini img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ah-frame .mini .project-shade{
  background: linear-gradient(0deg, #0a2540 0%, rgba(10, 37, 64, 0.1) 50%, rgba(10, 37, 64, 0) 100%);
}

.ah-frame .mini .project-body{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 20px;
}

.ah-frame .mini .eyebrow{
  color: rgba(255, 255, 255, 0.6);
}

.ah-frame .mini .eyebrow.is-blue{
  color: var(--blue);
}

.ah-frame .mini h3{
  margin: 4px 0 0;
  font-size: 18px;
  line-height: 24.75px;
}

.ah-frame .mini .arrow{
  width: 32px;
  height: 32px;
}

.ah-frame .stat-strip{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 40px;
  padding: 20px 32px;
  border-radius: 16px;
  border: 1px solid rgba(10, 37, 64, 0.1);
  background: var(--white);
  box-shadow: 0 2px 16px rgba(10, 37, 64, 0.06);
}

.ah-frame .stat-strip ul{
  display: flex;
  gap: 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ah-frame .stat-strip strong{
  color: var(--blue);
  font-family: var(--display);
  font-size: 24px;
  font-weight: 600;
  line-height: 32px;
}

.ah-frame .stat-strip span{
  margin-left: 12px;
  color: var(--muted);
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .departments{
  padding: 110px var(--gutter);
  background: var(--white);
}

.ah-frame .departments h2{
  width: min(640px, 100%);
  margin: 20px 0 0;
  color: var(--navy);
  font-family: var(--display);
  font-size: 48px;
  font-weight: 600;
  line-height: 52.8px;
}

.ah-frame .dept-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 56px;
}

.ah-frame .dept-card{
  padding: 32px;
  border-radius: 16px;
  border: 1px solid rgba(10, 37, 64, 0.07);
  background: var(--cream);
}

.ah-frame .dept-icon{
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 2px 12px rgba(10, 37, 64, 0.08);
  color: var(--blue);
}

.ah-frame .dept-icon svg{
  width: 28px;
  height: 28px;
}

.ah-frame .dept-card h3{
  margin: 0;
  color: var(--navy);
  font-family: var(--display);
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
}

.ah-frame .dept-card p{
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 24px;
}

.ah-frame .disciplines{
  padding: 110px var(--gutter);
  background: var(--white);
}

.ah-frame .disc-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 56px;
}

.ah-frame .disc-card{
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(10, 37, 64, 0.06);
  background: var(--white);
  box-shadow: 0 8px 28px -18px rgba(10, 37, 64, 0.35);
}

.ah-frame .disc-card img{
  width: 100%;
  height: 258px;
  object-fit: cover;
}

.ah-frame .disc-card > div{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 28px;
}

.ah-frame .disc-card > div > div{
  min-width: 0;
}

.ah-frame .disc-card h3{
  margin: 0;
  color: var(--navy);
  font-family: var(--display);
  font-size: 24px;
  font-weight: 600;
  line-height: 32px;
}

.ah-frame .disc-card p{
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 24px;
}

.ah-frame .disc-card .arrow{
  background: rgba(10, 37, 64, 0.06);
  color: var(--navy);
  width: 44px;
  height: 44px;
}

.ah-frame .trust{
  padding: 110px var(--gutter);
  background: var(--navy);
  color: var(--white);
}

.ah-frame .trust-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}

.ah-frame .trust .eyebrow{
  color: rgba(255, 255, 255, 0.85);
}

.ah-frame .trust h2{
  margin: 20px 0 0;
  font-size: 60px;
  font-weight: 600;
  line-height: 62.4px;
}

.ah-frame .trust-copy > p{
  width: 448px;
  max-width: 100%;
  margin: 28px 0 0;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  line-height: 29.25px;
}

.ah-frame .btn-line-light{
  margin-top: 40px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: var(--white);
}

.ah-frame .trust-stats{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 24px;
}

.ah-frame .trust-stats article{
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ah-frame .trust-stats strong{
  display: block;
  color: var(--blue);
  font-family: var(--display);
  font-size: 60px;
  font-weight: 600;
  line-height: 60px;
}

.ah-frame .trust-stats span{
  display: block;
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 16px;
  line-height: 24px;
}

.ah-frame .voices{
  padding: 110px var(--gutter);
  background: var(--cream);
  text-align: center;
}

.ah-frame .voices-inner{
  width: min(896px, 100%);
  margin: 0 auto;
}

.ah-frame .quote-mark{
  display: block;
  margin-top: 24px;
  color: rgba(10, 37, 64, 0.1);
  font-family: var(--display);
  font-size: 144px;
  font-weight: 400;
  line-height: 100px;
}

.ah-frame .voices-quote{
  margin: 16px 0 0;
  color: var(--navy);
  font-size: 33.6px;
  font-weight: 600;
  line-height: 46.37px;
}

.ah-frame .client{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 44px;
}

.ah-frame .avatar{
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.3);
  color: var(--white);
  font-family: var(--display);
  font-size: 18px;
  font-weight: 700;
}

.ah-frame .avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ah-frame .client p{
  margin: 0;
  text-align: left;
}

.ah-frame .client strong{
  display: block;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

.ah-frame .client span{
  display: block;
  color: var(--muted);
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .stars{
  margin-left: 12px;
  color: var(--blue);
  letter-spacing: 2px;
}

.ah-frame .quote-nav{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 48px;
}

.ah-frame .quote-nav button{
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(10, 37, 64, 0.15);
  background: transparent;
  color: var(--navy);
}

.ah-frame .dots{
  display: flex;
  gap: 8px;
  align-items: center;
}

.ah-frame .dots i, .ah-frame .dots b{
  display: block;
  height: 6px;
  border-radius: 999px;
}

.ah-frame .dots b{
  width: 40px;
  background: var(--blue);
}

.ah-frame .dots i{
  width: 8px;
  background: rgba(10, 37, 64, 0.15);
}

.ah-frame .satisfaction{
  margin: 40px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .cta-wrap{
  padding: 110px 80px;
  background: var(--white);
}

.ah-frame .cta{
  position: relative;
  width: 100%;
  max-width: 1440px;
  min-height: 596px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 24px;
  color: var(--white);
  text-align: center;
}

.ah-frame .cta img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ah-frame .cta::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, rgba(10, 37, 64, 0.88) 0%, rgba(10, 37, 64, 0.6) 50%, rgba(10, 37, 64, 0.45) 100%);
}

.ah-frame .cta-copy{
  position: relative;
  z-index: 1;
  padding: 128px 64px;
}

.ah-frame .cta .eyebrow{
  width: auto;
  margin: 0;
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--font);
  font-size: 11.52px;
  font-weight: 500;
  line-height: 17.28px;
  letter-spacing: 2.53px;
  text-transform: uppercase;
}

.ah-frame .cta h2{
  width: min(768px, 100%);
  margin: 20px auto 0;
  color: var(--white);
  font-size: 60px;
  font-weight: 600;
  line-height: 62.4px;
  text-align: center;
}

.ah-frame .cta-copy > p{
  width: min(576px, 100%);
  margin: 24px auto 0;
  color: rgba(255, 255, 255, 0.68);
  font-family: var(--font);
  font-size: 18px;
  font-weight: 400;
  line-height: 28px;
}

.ah-frame .cta-actions{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 44px;
}

.ah-frame .cta .btn-blue,
.ah-frame .cta .btn-line-light{
  margin-top: 0;
  padding: 16px 32px;
  border-radius: 999px;
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.ah-frame .cta .btn-line-light{
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: var(--white);
}

.ah-frame .cta .btn-blue svg{
  width: 16px;
  height: 16px;
}

.ah-frame .site-footer{
  padding: 110px var(--gutter);
  background: var(--navy);
  color: rgba(255, 255, 255, 0.7);
}

.ah-frame .footer-top{
  display: grid;
  grid-template-columns: 1fr 592px;
  gap: 40px;
  padding-bottom: 64px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ah-frame .footer-top h2{
  margin: 0;
  color: var(--white);
  font-family: var(--display);
  font-size: 48px;
  font-weight: 500;
  line-height: 52.8px;
}

.ah-frame .footer-top h2 span{
  color: var(--blue);
}

.ah-frame .talk{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 18px;
  line-height: 28px;
}

.ah-frame .talk i{
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.85);
}

.ah-frame .talk i svg{
  display: block;
  width: 16px;
  height: 16px;
  fill: none;
}

.ah-frame .newsletter h3, .ah-frame .footer-grid h3, .ah-frame .footer-follow h3{
  margin: 0;
  color: rgba(255, 255, 255, 0.4);
  font-family: var(--font);
  font-size: 11.52px;
  font-weight: 500;
  line-height: 17.28px;
  letter-spacing: 2.53px;
  text-transform: uppercase;
}

.ah-frame .newsletter p{
  margin: 12px 0 0;
  font-size: 16px;
  line-height: 24px;
  color: rgba(255, 255, 255, 0.7);
}

.ah-frame .newsletter-row{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.ah-frame .newsletter input{
  flex: 1;
  border: 0;
  background: transparent;
  color: var(--white);
  font-size: 16px;
  outline: none;
}

.ah-frame .newsletter input::placeholder{
  color: rgba(255, 255, 255, 0.4);
}

.ah-frame .newsletter button{
  border: 0;
  background: transparent;
  color: var(--blue);
  font-size: 14px;
  font-weight: 500;
}

.ah-frame .footer-grid{
  display: grid;
  grid-template-columns: 1fr 1fr 290px 290px;
  gap: 32px;
  padding: 64px 0;
}

.ah-frame .footer-grid ul{
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.ah-frame .footer-grid li + li{
  margin-top: 8px;
}

.ah-frame .footer-grid a, .ah-frame .footer-grid p{
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 16px;
  line-height: 24px;
}

.ah-frame .footer-grid .is-services a{
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .office h3{
  letter-spacing: 2.5px;
}

.ah-frame .office p, .ah-frame .office a{
  font-size: 15px;
  line-height: 26px;
}

.ah-frame .office-phone{
  margin-top: 10px;
}

.ah-frame .footer-follow, .ah-frame .footer-legal{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.ah-frame .footer-follow{
  align-items: flex-start;
  padding-top: 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ah-frame .footer-legal{
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.35);
  font-size: 14px;
  line-height: 20px;
}

.ah-frame .footer-legal p{
  margin: 0;
}

.ah-frame .socials{
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

.ah-frame .socials a{
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
  transition: background 0.28s var(--ease), color 0.28s var(--ease), border-color 0.28s var(--ease);
}

.ah-frame .socials a:hover{
  background: var(--white);
  color: var(--navy);
  border-color: var(--white);
}

.ah-frame .socials svg{
  width: 16px;
  height: 16px;
}

.ah-frame .office-chips{
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 0;
}

.ah-frame .site-footer a.chip{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  border-radius: 16px;
  border: 1.2px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
}

.ah-frame .chip b,
.ah-frame .chip .chip-pin{
  display: grid;
  place-items: center;
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #2563eb;
}

.ah-frame .chip .chip-pin svg{
  display: block;
  width: 14px;
  height: 14px;
  fill: none;
}

.ah-frame .chip .chip-copy{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  line-height: 18px;
  letter-spacing: 0;
}

.ah-frame .chip .chip-go{
  display: grid;
  place-items: center;
  flex: none;
  width: 12px;
  height: 12px;
  margin-left: 4px;
  opacity: 0.3;
}

.ah-frame .chip .chip-go svg{
  display: block;
  width: 12px;
  height: 12px;
  fill: none;
}

.ah-frame .chip strong{
  display: block;
  color: rgba(255, 255, 255, 0.85);
  font-family: Inter, var(--font);
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  letter-spacing: 0;
}

.ah-frame .chip .chip-copy span{
  display: block;
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-family: Inter, var(--font);
  font-size: 11px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 0.5px;
}

.ah-frame .header-cta, .ah-frame .btn-blue, .ah-frame .btn-line, .ah-frame .btn-line-light, .ah-frame .btn-outline, .ah-frame .btn-glass, .ah-frame .case-link, .ah-frame .quote-nav button, .ah-frame .chip, .ah-frame .newsletter button{
  transition: transform 0.28s var(--ease), background 0.28s var(--ease), color 0.28s var(--ease), border-color 0.28s var(--ease), box-shadow 0.28s var(--ease);
}

.ah-frame .header-cta:hover, .ah-frame .btn-blue:hover{
  background: var(--blue-deep);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -12px rgba(37, 99, 235, 0.7);
}

.ah-frame .btn-line:hover, .ah-frame .btn-outline:hover{
  border-color: var(--navy);
  background: var(--navy);
  color: var(--white);
  transform: translateY(-2px);
}

.ah-frame .btn-line-light:hover, .ah-frame .case-link:hover{
  background: var(--white);
  color: var(--navy);
  border-color: var(--white);
  transform: translateY(-2px);
}

.ah-frame .btn-glass:hover{
  background: rgba(255, 255, 255, 0.22);
  transform: translateY(-2px);
}

.ah-frame .header-cta:hover svg, .ah-frame .btn-blue:hover svg, .ah-frame .btn-glass:hover svg, .ah-frame .btn-line:hover svg, .ah-frame .btn-outline:hover svg, .ah-frame .case-link:hover svg{
  transform: translateX(4px);
}

.ah-frame .header-cta svg, .ah-frame .btn-blue svg, .ah-frame .btn-glass svg, .ah-frame .btn-line svg, .ah-frame .btn-outline svg, .ah-frame .case-link svg{
  transition: transform 0.28s var(--ease);
}

.ah-frame .dept-card, .ah-frame .disc-card, .ah-frame .project, .ah-frame .mini, .ah-frame .logo-card, .ah-frame .est-card, .ah-frame .stat-strip{
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease);
}

.ah-frame .dept-card:hover, .ah-frame .disc-card:hover, .ah-frame .logo-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 22px 40px -24px rgba(10, 37, 64, 0.45);
}

.ah-frame .project:hover, .ah-frame .mini:hover{
  transform: translateY(-6px);
  box-shadow: 0 24px 40px -20px rgba(10, 37, 64, 0.45);
}

.ah-frame .dept-card img, .ah-frame .disc-card img, .ah-frame .project img, .ah-frame .mini img, .ah-frame .practice-photo img{
  transition: transform 0.7s var(--ease);
}

.ah-frame .disc-card:hover img, .ah-frame .project:hover img, .ah-frame .mini:hover img{
  transform: scale(1.06);
}

.ah-frame .dept-icon{
  transition: background 0.3s var(--ease), color 0.3s var(--ease), transform 0.4s var(--ease);
}

.ah-frame .dept-card:hover .dept-icon{
  background: var(--blue);
  color: var(--white);
  transform: rotate(-8deg) scale(1.05);
}

.ah-frame .arrow, .ah-frame .disc-card .arrow{
  transition: transform 0.3s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease);
}

.ah-frame .project:hover .arrow, .ah-frame .mini:hover .arrow, .ah-frame .disc-card:hover .arrow{
  background: var(--blue);
  color: var(--white);
  transform: translateX(6px);
}

.ah-frame .disc-card:hover .arrow svg, .ah-frame .project:hover .arrow svg, .ah-frame .mini:hover .arrow svg{
  transform: translate(3px, -3px);
}

.ah-frame .logo-window:hover .logo-track{
  animation-play-state: paused;
}

.ah-frame .logo-card:hover strong{
  color: var(--blue);
}

.ah-frame .quote-nav button:hover{
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}

.ah-frame .chip:hover{
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
}

.ah-frame .newsletter button:hover{
  color: var(--white);
}

@media (min-width: 1800px) {
  .ah-frame .frame{
    --content: 1440px;
  }
}

@media (max-width: 1200px) {
  .ah-frame .hero h1, .ah-frame .clients h2, .ah-frame .practice h2, .ah-frame .work h2, .ah-frame .disciplines h2, .ah-frame .trust h2, .ah-frame .cta h2{
    font-size: 48px;
    line-height: 1.08;
  }

  .ah-frame .site-nav{
    gap: 20px;
  }
}

@media (max-width: 1100px) {
  .ah-frame .site-header{
    height: 80px;
    padding: 0 16px;
    gap: 12px;
  }

  .ah-frame .logo,
  .ah-frame .nav-toggle{
    position: relative;
    z-index: 2;
  }

  .ah-frame .logo img{
    height: 56px;
    max-width: min(220px, 62vw);
  }

  .ah-frame .site-nav,
  .ah-frame .site-header > .header-cta{
    display: none;
  }

  .ah-frame .site-nav.is-open{
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 4px;
    padding: 108px 28px 40px;
    background: rgba(10, 37, 64, 0.97);
    backdrop-filter: blur(18px);
    overflow: auto;
  }

  .ah-frame .site-nav.is-open a{
    width: auto;
    padding: 8px 0;
    color: var(--white);
    font-family: var(--display);
    font-size: 34px;
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.03em;
    text-transform: none;
  }

  .ah-frame .site-nav.is-open a::after{
    display: none;
  }

  body.ah-nav-open{
    overflow: hidden;
  }

  .ah-frame .nav-toggle{
    display: inline-grid;
    place-items: center;
    flex: none;
    margin-left: auto;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 12px;
    background: transparent;
    color: var(--white);
    line-height: 0;
  }

  .ah-frame .nav-toggle svg{
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
  }

  .ah-frame .nav-toggle .icon-close,
  .ah-frame .nav-toggle[aria-expanded="true"] .icon-menu{
    display: none;
  }

  .ah-frame .nav-toggle[aria-expanded="true"] .icon-close{
    display: block;
  }

  .ah-frame .nav-toggle .screen-reader-text{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .ah-frame .site-nav.is-open .nav-cta{
    display: inline-flex;
    justify-content: center;
    width: auto;
    height: 48px;
    margin-top: 22px;
    padding: 0 28px;
    font-family: var(--font);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
  }
}

@media (max-width: 860px) {
  .ah-frame .hero{
    height: auto;
    min-height: 720px;
  }

  .ah-frame .hero-row, .ah-frame .practice-grid, .ah-frame .work-top, .ah-frame .trust-grid, .ah-frame .footer-top{
    grid-template-columns: 1fr;
    display: grid;
  }

  .ah-frame .hero-row{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
  }

  .ah-frame .hero-left, .ah-frame .hero-right p, .ah-frame .practice h2, .ah-frame .practice-lead, .ah-frame .values, .ah-frame .trust-copy > p{
    width: auto;
    max-width: 100%;
  }

  .ah-frame .hero-split{
    display: none;
  }

  .ah-frame .hero-stats, .ah-frame .work-bottom, .ah-frame .dept-grid, .ah-frame .disc-grid, .ah-frame .footer-grid{
    grid-template-columns: 1fr 1fr;
  }

  .ah-frame .hero-stats{
    height: auto;
  }

  .ah-frame .practice-photo, .ah-frame .project.is-feature{
    height: 420px;
  }

  .ah-frame .voices-quote{
    font-size: 26px;
    line-height: 1.35;
  }

  .ah-frame .client{
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .ah-frame .hero{
    min-height: 640px;
  }

  .ah-frame .hero h1, .ah-frame .clients h2, .ah-frame .practice h2, .ah-frame .work h2, .ah-frame .disciplines h2, .ah-frame .trust h2, .ah-frame .cta h2, .ah-frame .footer-top h2, .ah-frame .departments h2{
    font-size: 34px;
    line-height: 1.12;
  }

  .ah-frame .hero-stats, .ah-frame .footer-grid, .ah-frame .trust-stats{
    grid-template-columns: 1fr;
  }

  .ah-frame .client-bar article{
    padding: 22px 8px;
  }

  .ah-frame .client-bar strong{
    font-size: 28px;
    line-height: 1;
  }

  .ah-frame .client-bar span{
    font-size: 9px;
    letter-spacing: 0.6px;
  }

  .ah-frame .hero-stats article{
    padding: 28px 0 28px 20px;
  }

  .ah-frame .hero-stats{
    height: auto;
  }

  .ah-frame .practice-actions, .ah-frame .section-head, .ah-frame .stat-strip, .ah-frame .footer-follow, .ah-frame .footer-legal, .ah-frame .office-chips{
    flex-direction: column;
    align-items: flex-start;
  }

  .ah-frame .cta-wrap{
    padding: 64px 20px;
  }

  .ah-frame .cta{
    min-height: 0;
  }

  .ah-frame .cta-copy{
    padding: 56px 20px;
  }

  .ah-frame .cta h2{
    font-size: 36px;
    line-height: 1.12;
  }

  .ah-frame .cta-actions{
    flex-direction: column;
    align-items: center;
  }

  .ah-frame .section-head{
    align-items: flex-start;
  }

  .ah-frame .quote-mark{
    font-size: 96px;
    line-height: 72px;
  }

  .ah-frame .est-card{
    right: 12px;
    bottom: 12px;
    width: min(220px, calc(100% - 24px));
  }
}

@media (prefers-reduced-motion: reduce) {
  html:has(.ah-frame){
    scroll-behavior: auto;
  }

  .ah-frame .logo-track, .ah-frame .dept-card, .ah-frame .disc-card, .ah-frame .project, .ah-frame .mini, .ah-frame .logo-card, .ah-frame .header-cta, .ah-frame .btn-blue, .ah-frame .btn-line, .ah-frame .btn-line-light, .ah-frame .btn-outline, .ah-frame .btn-glass, .ah-frame .arrow, .ah-frame .arrow::before{
    animation: none;
    transition: none;
  }
}

.elementor-widget-ah-header,
.elementor-widget-ah-hero,
.elementor-widget-ah-stat-row,
.elementor-widget-ah-clients,
.elementor-widget-ah-practice,
.elementor-widget-ah-projects,
.elementor-widget-ah-departments,
.elementor-widget-ah-disciplines,
.elementor-widget-ah-trust,
.elementor-widget-ah-testimonials,
.elementor-widget-ah-cta,
.elementor-widget-ah-footer {
  width: 100%;
}

.elementor-widget-ah-header {
  height: 0;
  margin-bottom: 0 !important;
  overflow: visible;
}

.elementor-editor-preview .elementor-widget-ah-header {
  height: 96px;
}

.admin-bar .ah-frame .site-header {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .ah-frame .site-header {
    top: 46px;
  }
}

.ah-frame .logo-fallback {
  color: var(--white);
  font-family: var(--display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.04em;
}

.ah-frame .ah-ph {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(10, 37, 64, 0.18), rgba(10, 37, 64, 0.38));
}

.ah-frame .hero-media .ah-ph,
.ah-frame .cta .ah-ph,
.ah-frame .practice-photo .ah-ph,
.ah-frame .project .ah-ph,
.ah-frame .mini .ah-ph {
  position: absolute;
  inset: 0;
}

.ah-frame .disc-card .ah-ph {
  height: 258px;
}

.ah-frame .hero,
.ah-frame .cta {
  background: var(--navy);
}

.ah-frame .disc-card,
.ah-frame .project,
.ah-frame .mini {
  position: relative;
}

.ah-frame .ah-card-link {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.ah-frame .ah-card-link .skip-link {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  background: transparent;
}

.ah-frame .quote-slide[hidden] {
  display: none;
}

.ah-frame .quote-slide {
  animation: ah-quote-in 0.45s var(--ease);
}

@keyframes ah-quote-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    body:not(.elementor-editor-active) .ah-frame section {
      animation: ah-rise 0.9s var(--ease) both;
      animation-timeline: view();
      animation-range: entry 0% cover 32%;
    }
  }
}

.ah-frame section.ah-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}

.ah-frame section.ah-reveal.is-in {
  opacity: 1;
  transform: none;
}

@keyframes ah-rise {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ah-frame .quote-slide,
  .ah-frame section.ah-reveal,
  body:not(.elementor-editor-active) .ah-frame section {
    animation: none;
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.ah-frame .quote-nav .dots button {
  width: 8px;
  height: 6px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(10, 37, 64, 0.15);
}

.ah-frame .quote-nav .dots button.is-active,
.ah-frame .quote-nav .dots button:hover {
  width: 40px;
  background: var(--blue);
  color: inherit;
  border-color: transparent;
  transform: none;
  box-shadow: none;
}

.ah-frame .form-note {
  margin: 12px 0 0;
  color: var(--white);
  font-size: 14px;
}

.ah-frame .ah-hp {
  position: absolute;
  left: -9999px;
  height: 0;
  width: 0;
  opacity: 0;
}

@media (max-width: 860px) {
  .ah-frame .departments,
  .ah-frame .disciplines,
  .ah-frame .work,
  .ah-frame .site-footer{
    padding-top: 64px;
    padding-bottom: 48px;
  }

  .ah-frame .dept-grid,
  .ah-frame .disc-grid{
    display: flex;
    gap: 14px;
    margin-top: 28px;
    margin-right: calc(var(--gutter) * -1);
    padding-right: var(--gutter);
    padding-bottom: 8px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 4px;
    scrollbar-width: none;
  }

  .ah-frame .dept-grid::-webkit-scrollbar,
  .ah-frame .disc-grid::-webkit-scrollbar{
    display: none;
  }

  .ah-frame .dept-card,
  .ah-frame .disc-card{
    flex: 0 0 min(82vw, 320px);
    scroll-snap-align: start;
  }

  .ah-frame .dept-card{
    min-height: 240px;
  }

  .ah-frame .disc-card img{
    height: 180px;
  }

  .ah-frame .work-mosaic{
    display: flex;
    gap: 14px;
    margin-top: 28px;
    margin-right: calc(var(--gutter) * -1);
    padding-right: var(--gutter);
    padding-bottom: 8px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .ah-frame .work-mosaic::-webkit-scrollbar{
    display: none;
  }

  .ah-frame .work-mosaic .work-top,
  .ah-frame .work-mosaic .work-side,
  .ah-frame .work-mosaic .work-bottom{
    display: contents;
  }

  .ah-frame .work-mosaic .project,
  .ah-frame .work-mosaic .mini{
    flex: 0 0 min(82vw, 320px);
    width: min(82vw, 320px);
    height: 280px;
    scroll-snap-align: start;
  }

  .ah-frame .work-mosaic .is-feature h3{
    font-size: 28px;
    line-height: 1.2;
  }

  .ah-frame .footer-top{
    gap: 28px;
    padding-bottom: 32px;
  }

  .ah-frame .footer-top h2{
    font-size: 34px;
    line-height: 1.15;
  }

  .ah-frame .footer-grid{
    grid-template-columns: 1fr 1fr;
    gap: 28px 20px;
    padding: 32px 0;
  }

  .ah-frame .footer-grid .office{
    grid-column: 1 / -1;
  }

  .ah-frame .footer-follow,
  .ah-frame .footer-legal{
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .ah-frame .office-chips{
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .ah-frame .site-footer a.chip{
    width: 100%;
  }

  .ah-frame .footer-legal p{
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .ah-frame .footer-grid{
    grid-template-columns: 1fr;
  }

  .ah-frame .site-nav.is-open a{
    font-size: 28px;
  }

  .ah-frame .site-header{
    height: 72px;
  }

  .ah-frame .logo img{
    height: 48px;
    max-width: min(190px, 64vw);
  }
}
