/* AJ Safety Services brand and component layer.
   The supplied Stravise section markup and animation hooks remain intact. */
:root {
  --rr-theme-primary: #f36c21;
  --rr-theme-primary-2: #f36c21;
  --rr-theme-primary-3: #ffb17e;
  --rr-heading-primary: #101a20;
  --rr-body-bg: #101a20;
  --rr-body-primary: #101a20;
  --rr-body-primary-1: #0b1419;
  --rr-body-primary-3: #16242c;
  --rr-text-body: #26353d;
  --rr-color-white_smoke: #f5f3ef;
  --rr-color-white_smoke-2: #f0eee9;
  --aj-orange: #f36c21;
  --aj-orange-dark: #d9500a;
  --aj-ink: #101a20;
  --aj-ink-2: #172832;
  --aj-slate: #64747c;
  --aj-paper: #f8f6f2;
  --aj-white: #fffaf6;
}

body { color: var(--aj-ink); background: #fff; }
::selection { color: #fff; background: var(--aj-orange); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid rgba(243, 108, 33, .5);
  outline-offset: 3px;
}
.aj-skip-link {
  position: fixed;
  z-index: 100000;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  color: #fff;
  background: var(--aj-orange);
  transform: translateY(-160%);
}
.aj-skip-link:focus { transform: translateY(0); }

/* Header and brand lockups */
.rr-header-3 .rr-header__top { background: #071015; }
.rr-header__contact { color: rgba(255, 255, 255, .72); }
.rr-header__contact a { color: rgba(255, 255, 255, .9); }
.rr-header__contact a:hover { color: var(--aj-orange); }
#rr-header-sticky .rr-header__main {
  background: rgba(11, 20, 25, .94);
  border-top: 1px solid rgba(255, 255, 255, .06);
  backdrop-filter: blur(16px);
}
#rr-header-sticky.rr-sticky .rr-header__main { box-shadow: 0 16px 45px rgba(0, 0, 0, .22); }
.rr-header__logo .logo img { width: 238px; max-height: 58px; object-fit: contain; }
.offcanvas__logo img { width: 225px; height: auto; }
.aj-offcanvas-actions { display: grid; gap: 10px; }
.aj-offcanvas-actions h3 { margin-bottom: 10px !important; color: #fff; }
.aj-offcanvas-primary,
.aj-offcanvas-secondary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 54px;
  padding: 0 18px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
}
.aj-offcanvas-primary { border-color: var(--aj-orange); background: var(--aj-orange); }
.aj-offcanvas-primary:hover { color: #fff; background: var(--aj-orange-dark); }
.aj-offcanvas-secondary:hover { color: #fff; border-color: var(--aj-orange); }
.footer-section-3__logo img { width: 255px; height: auto; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li > a,
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.has-dropdown::after {
  color: #fff;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li > a::before { background: var(--aj-orange); }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li:hover > a,
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.active > a { color: var(--aj-orange); }
.aj-header-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 0 24px;
  color: #fff;
  background: var(--aj-orange);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .02em;
}
.aj-header-cta:hover { color: #fff; background: var(--aj-orange-dark); transform: translateY(-2px); }

/* Desktop mega menu, retained inside the template's native dropdown structure */
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent { position: static; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent::after { display: none; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent > a {
  padding-right: 17px;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent > a::after {
  content: "\f107";
  position: absolute;
  top: 50%;
  right: 0;
  color: currentColor;
  font-family: var(--rr-ff-fontawesome);
  font-size: 14px;
  transform: translateY(-50%);
  transition: transform .25s ease;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent:hover > a::after,
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent:focus-within > a::after {
  transform: translateY(-50%) rotate(180deg);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu {
  left: 50%;
  width: min(980px, calc(100vw - 64px));
  padding: 0;
  overflow: hidden;
  white-space: normal;
  transform: translateX(-50%) translateY(12px);
  border: 1px solid rgba(255, 255, 255, .09);
  border-top: 3px solid var(--aj-orange);
  background: rgba(12, 22, 28, .98);
  box-shadow: 0 32px 70px rgba(0, 0, 0, .34);
  backdrop-filter: blur(18px);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li:hover .sub-menu.aj-mega-menu,
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li:focus-within .sub-menu.aj-mega-menu {
  top: 100%;
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu li.aj-mega-grid {
  display: grid;
  width: 100%;
  padding: 0;
  grid-template-columns: 1fr 1fr .88fr;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column {
  min-height: 285px;
  padding: 32px;
  border-right: 1px solid rgba(255, 255, 255, .08);
  overflow: visible;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column:last-child {
  border-right: 0;
  background: linear-gradient(145deg, rgba(243, 108, 33, .19), rgba(243, 108, 33, .04));
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column:hover { margin-left: 0; }
.aj-mega-kicker {
  display: block;
  margin-bottom: 18px;
  color: var(--aj-orange);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu a {
  position: relative;
  padding: 8px 0 8px 18px;
  color: rgba(255, 255, 255, .84);
  font-size: 15px;
  line-height: 1.35;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu a::before {
  content: "";
  position: absolute;
  top: 17px;
  left: 0;
  width: 8px;
  height: 2px;
  background: var(--aj-orange);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu a:hover { color: #fff; transform: translateX(3px); }
.aj-mega-card { display: block; margin-top: 10px; padding: 18px !important; color: #fff !important; border: 1px solid rgba(255,255,255,.15); }
.aj-mega-card::before { display: none; }
.aj-mega-card strong { display: block; margin-bottom: 4px; }
.aj-mega-card span { color: rgba(255, 255, 255, .7); font-size: 13px; }

/* Hero */
.banner-section-3__wrapper { background-position: center; }
.banner-section-3__wrapper::before {
  z-index: 1;
  opacity: .9;
  transform: none;
  background: linear-gradient(90deg, rgba(7, 16, 21, .96) 0%, rgba(7, 16, 21, .77) 38%, rgba(7, 16, 21, .12) 72%, rgba(7, 16, 21, .08) 100%);
}
.banner-section-3__wrapper::after {
  z-index: 1;
  opacity: .2;
  transform: none;
  background: linear-gradient(0deg, rgba(7, 16, 21, .8), transparent 45%);
}
.banner-section-3__content { z-index: 2; max-width: 920px; }
.banner-section-3__title { max-width: 900px; font-size: clamp(48px, 5.2vw, 92px); line-height: .98; letter-spacing: -.045em; }
.banner-section-3__subtitle { color: rgba(255, 255, 255, .78); letter-spacing: .06em; text-transform: uppercase; }
.banner-section-3__subtitle::before { background: var(--aj-orange); }
.banner-section-3__bottom { z-index: 3; }
.banner-section-3__dots .swiper-pagination-bullet-active { background: var(--aj-orange); }
.aj-hero-video {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.aj-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.aj-btn-outline { color: #fff !important; background: transparent !important; border: 1px solid rgba(255, 255, 255, .42); }
.aj-btn-outline:hover { border-color: var(--aj-orange); }

/* Template section refinements */
.section__subtitle { color: var(--aj-orange); }
.section__subtitle span { background: var(--aj-orange); }
.project-section-3__thumb img,
.team-section-3__thumb img,
.blog-section-3__thumb img,
.about-section-3__thumb img,
.why-choose-us-3__thumb img,
.planning-section-3__thumb img { width: 100%; object-fit: cover; }
.aj-media-box {
  position: relative;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden;
}
.aj-media-box--landscape {
  margin-left: auto;
  align-self: flex-start;
  aspect-ratio: 784 / 444;
}

.aj-media-box--portrait {
  margin-left: auto;
  align-self: flex-start;
  height: 836px !important;
  aspect-ratio: auto;
}

.aj-media-box--people {
  align-self: stretch;
  aspect-ratio: 577 / 652;
}
.aj-media-box > img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  object-fit: cover;
  object-position: center;
  transform: none !important;
}
.aj-media-box--landscape > img { object-position: center 42%; }

@media (max-width: 991px) {
  .aj-media-box--landscape {
    width: 100%;
    height: auto !important;
    aspect-ratio: 698 / 444;
  }

  .aj-media-box--portrait {
    width: 100%;
    height: auto !important;
    aspect-ratio: 813 / 836;
  }

  .aj-media-box--people {
    width: 100%;
    height: auto !important;
    align-self: flex-start;
  }

  .planning-section-3__thumb.aj-media-box--people { aspect-ratio: 9 / 10; }
  .about-section-6__thumb.aj-media-box--people { aspect-ratio: 577 / 652; }
}
.project-section-3__item, .blog-section-3__item { box-shadow: 0 22px 55px rgba(16, 26, 32, .08); }
.aj-trust-stat { color: var(--aj-orange); }
.aj-proof-note { max-width: 740px; color: rgba(255, 255, 255, .72); }
.aj-disclaimer {
  padding: 18px 20px;
  color: #44545c;
  border-left: 3px solid var(--aj-orange);
  background: #f7f3ee;
}
.aj-form-intro { max-width: 770px; margin: 0 auto 34px; text-align: center; }
.aj-jotform-shell {
  overflow: hidden;
  border: 1px solid rgba(16, 26, 32, .09);
  background: #fff;
  box-shadow: 0 28px 70px rgba(16, 26, 32, .1);
}
.aj-jotform-shell iframe { display: block; width: 100%; min-height: 1080px; border: 0; }
.aj-jotform-shell--worker iframe { min-height: 1450px; }
.aj-form-aside {
  max-width: 470px;
  margin-top: 40px;
  overflow: hidden;
  border: 1px solid rgba(16, 26, 32, .1);
  background: #071117;
  box-shadow: 0 24px 60px rgba(7, 17, 23, .13);
}
.aj-form-aside__media { position: relative; height: 235px; overflow: hidden; }
.aj-form-aside__media::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, transparent 45%, rgba(7, 17, 23, .62));
}
.aj-form-aside__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s cubic-bezier(.2,.75,.25,1);
}
.aj-form-aside:hover .aj-form-aside__media img { transform: scale(1.045); }
.aj-form-aside__body { padding: 27px 29px 29px; }
.aj-form-aside__eyebrow {
  display: block;
  margin-bottom: 9px;
  color: var(--aj-orange);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.aj-form-aside__body h4 {
  margin: 0 0 17px;
  color: #fff;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.2;
}
.aj-form-aside__list { display: grid; gap: 9px; margin: 0 0 22px; }
.aj-form-aside__list li { display: flex; gap: 10px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.55; }
.aj-form-aside__list i { flex: 0 0 auto; margin-top: 4px; color: var(--aj-orange); }
.aj-form-aside__link {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  color: #fff;
  font-size: 13px;
  font-weight: 650;
}
.aj-form-aside__link:hover { color: var(--aj-orange); }
.aj-form-aside__link i:last-child { transition: transform .25s ease; }
.aj-form-aside__link:hover i:last-child { transform: translate(3px, -3px); }
@media (max-width: 991px) {
  .aj-form-aside { max-width: none; margin-bottom: 36px; }
  .aj-form-aside__media { height: 280px; }
}
@media (max-width: 575px) {
  .aj-form-aside { margin-top: 30px; margin-bottom: 30px; }
  .aj-form-aside__media { height: 210px; }
  .aj-form-aside__body { padding: 23px 21px 25px; }
}

/* Human-readable site map */
.aj-sitemap__intro { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 30px 70px; margin-bottom: 60px; }
.aj-sitemap__intro .section__subtitle { grid-column: 1 / -1; }
.aj-sitemap__intro h2 { margin: 0; font-size: clamp(38px,5vw,70px); line-height: 1.03; letter-spacing: -.04em; }
.aj-sitemap__intro p { align-self: end; max-width: 570px; margin: 0; color: #637072; font-size: 18px; line-height: 1.7; }
.aj-sitemap__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.aj-sitemap-group { padding: clamp(28px,4vw,50px); border: 1px solid #dfe3e1; background: #fff; }
.aj-sitemap-group h2 { margin: 0 0 25px; color: #101f25; font-size: 27px; }
.aj-sitemap-group ul { margin: 0; padding: 0; list-style: none; }
.aj-sitemap-group a { display: flex; padding: 13px 0; border-top: 1px solid #edf0ee; color: #566164; justify-content: space-between; gap: 20px; }
.aj-sitemap-group a:hover, .aj-sitemap-group a:focus-visible { color: var(--aj-orange); }
@media (max-width: 767px) {
  .aj-sitemap__intro, .aj-sitemap__grid { grid-template-columns: 1fr; }
  .aj-sitemap__intro { gap: 20px; }
}
.aj-legal-copy { max-width: 900px; margin: 0 auto; }
.aj-legal-copy h2 { margin: 45px 0 15px; font-size: clamp(28px, 3vw, 42px); }
.aj-legal-copy h3 { margin: 30px 0 10px; font-size: 24px; }
.aj-legal-copy p, .aj-legal-copy li { color: #47575f; line-height: 1.85; }
.aj-legal-copy ul { padding-left: 22px; list-style: disc; }
.aj-policy-links { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 42px; }
.aj-policy-links a { display: inline-flex; align-items: center; gap: 14px; padding: 13px 18px; color: var(--aj-ink); border: 1px solid #d9dedc; border-radius: 6px; font-size: 15px; font-weight: 600; }
.aj-policy-links a:hover { color: #fff; background: var(--aj-ink); border-color: var(--aj-ink); }
.aj-policy-links i { color: var(--aj-orange); }
.aj-policy-section { padding: 34px 0; border-top: 1px solid #dfe2df; scroll-margin-top: 145px; }
.aj-policy-section .aj-detail__kicker { margin-bottom: 12px; }
.aj-policy-section h2 { margin-top: 0; }
.aj-policy-section li { margin-bottom: 15px; padding-left: 5px; }
.aj-updated { margin-bottom: 26px; color: var(--aj-orange); font-weight: 600; }
.breadcrumb-section__wrapper::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,16,21,.92), rgba(7,16,21,.5)); }
.breadcrumb-section__content { position: relative; z-index: 1; }
.breadcrumb-section__title { color: #fff; }
.breadcrumb-section__page, .breadcrumb-section__page a { color: rgba(255, 255, 255, .78); }

/* Footer */
.footer-section-3__area { background: #081218; }
.footer-section-3__title { color: #fff; }
.footer-section-3__dec { max-width: 360px; }
.footer-section-3__menu a:hover { color: var(--aj-orange); }
.aj-footer-contact a { color: rgba(255, 255, 255, .72); }
.aj-footer-contact > p { max-width: 340px; }
.aj-footer-contact .aj-footer-email {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-bottom: 18px;
  color: rgba(255,255,255,.78);
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.aj-footer-contact .aj-footer-email i { flex: 0 0 auto; color: var(--aj-orange); }
.aj-footer-contact .aj-footer-email:hover { color: #fff; }
.aj-footer-actions { display: grid; max-width: 350px; gap: 10px; }
.aj-footer-contact .aj-footer-action {
  display: flex;
  min-height: 50px;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 13px 16px;
  border: 1px solid transparent;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}
.aj-footer-contact .aj-footer-action i { flex: 0 0 auto; transition: transform .25s ease; }
.aj-footer-contact .aj-footer-action--request { border-color: rgba(255,255,255,.12); background: #2c3b41; }
.aj-footer-contact .aj-footer-action--request:hover { border-color: rgba(255,255,255,.26); color: #fff; background: #3a4a50; transform: translateY(-2px); }
.aj-footer-contact .aj-footer-action--worker { background: var(--aj-orange); }
.aj-footer-contact .aj-footer-action--worker:hover { color: #fff; background: #df5d16; transform: translateY(-2px); }
.aj-footer-contact .aj-footer-action:hover i { transform: translate(3px,-3px); }
.aj-footer-address {
  display: flex;
  max-width: 350px;
  gap: 10px;
  align-items: flex-start;
  margin: 18px 0 0;
  color: rgba(255,255,255,.57);
  font-size: 13px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.55;
}
.aj-footer-address i { flex: 0 0 auto; margin-top: 4px; color: var(--aj-orange); }
.aj-offcanvas-address,
.aj-contact-address { margin: 0; font: inherit; font-style: normal; }
.copyright-3__wrap { gap: 24px; }
.copyright-3__menu ul { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.copyright-3__menu button {
  padding: 0;
  color: rgba(255, 255, 255, .66);
  border: 0;
  background: transparent;
  font: inherit;
}
.copyright-3__menu button:hover { color: var(--aj-orange); }
.cta-3__wrap { background: var(--aj-orange); }
.cta-3__text p, .cta-3__text a { color: #fff; }

/* Cookie banner and preferences */
.aj-cookie-banner {
  position: fixed;
  z-index: 99998;
  right: 22px;
  bottom: 22px;
  left: 22px;
  display: none;
  max-width: 1220px;
  margin: 0 auto;
  padding: 22px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .13);
  background: rgba(8, 18, 24, .97);
  box-shadow: 0 28px 80px rgba(0, 0, 0, .38);
  backdrop-filter: blur(18px);
}
.aj-cookie-banner.is-visible { display: block; animation: ajCookieIn .45s ease both; }
.aj-cookie-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: center; }
.aj-cookie-copy h2 { margin: 0 0 7px; color: #fff; font-size: 22px; }
.aj-cookie-copy p { margin: 0; color: rgba(255, 255, 255, .7); font-size: 14px; line-height: 1.65; }
.aj-cookie-copy a { color: #fff; text-decoration: underline; text-decoration-color: var(--aj-orange); }
.aj-cookie-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.aj-cookie-btn { min-height: 44px; padding: 0 17px; color: #fff; border: 1px solid rgba(255, 255, 255, .24); background: transparent; font-size: 14px; font-weight: 600; }
.aj-cookie-btn--primary { border-color: var(--aj-orange); background: var(--aj-orange); }
.aj-cookie-btn:hover { border-color: var(--aj-orange); transform: translateY(-1px); }
.aj-cookie-overlay { position: fixed; z-index: 99998; inset: 0; display: none; background: rgba(4, 10, 14, .72); backdrop-filter: blur(7px); }
.aj-cookie-overlay.is-visible { display: grid; place-items: center; padding: 22px; }
.aj-cookie-modal { width: min(650px, 100%); max-height: min(760px, calc(100vh - 44px)); overflow: auto; background: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.4); }
.aj-cookie-modal__head { display: flex; justify-content: space-between; gap: 20px; padding: 28px 30px 20px; border-bottom: 1px solid #e7e3dd; }
.aj-cookie-modal__head h2 { margin: 0; font-size: 28px; }
.aj-cookie-close { width: 42px; height: 42px; color: var(--aj-ink); border: 1px solid #ddd7cf; background: #fff; font-size: 24px; }
.aj-cookie-modal__body { padding: 8px 30px 30px; }
.aj-cookie-category { display: grid; grid-template-columns: 1fr auto; gap: 22px; padding: 22px 0; border-bottom: 1px solid #ece8e2; }
.aj-cookie-category h3 { margin: 0 0 5px; font-size: 18px; }
.aj-cookie-category p { margin: 0; color: #64747c; font-size: 14px; line-height: 1.55; }
.aj-cookie-toggle { position: relative; width: 52px; height: 30px; margin-top: 4px; }
.aj-cookie-toggle input { position: absolute; opacity: 0; }
.aj-cookie-toggle span { position: absolute; inset: 0; border-radius: 30px; background: #c9c6c1; cursor: pointer; }
.aj-cookie-toggle span::after { content: ""; position: absolute; top: 4px; left: 4px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.aj-cookie-toggle input:checked + span { background: var(--aj-orange); }
.aj-cookie-toggle input:checked + span::after { transform: translateX(22px); }
.aj-cookie-toggle input:disabled + span { cursor: not-allowed; opacity: .7; }
.aj-cookie-modal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding-top: 24px; }
.aj-cookie-modal { display: flex; flex-direction: column; max-height: min(760px, calc(100dvh - 44px)); }
.aj-cookie-modal__head { flex: 0 0 auto; }
.aj-cookie-modal__head > div { min-width: 0; }
.aj-cookie-modal__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.aj-cookie-close { flex: 0 0 44px; width: 44px; height: 44px; }
.aj-cookie-modal .aj-cookie-btn:not(.aj-cookie-btn--primary) { color: var(--aj-ink); border-color: #a8b1b5; background: #f5f6f3; }
.aj-cookie-toggle input:focus-visible + span { outline: 2px solid var(--aj-ink); outline-offset: 3px; }
@media (max-width: 375px) { .aj-cookie-modal__head h2 { font-size: 23px; } }
@keyframes ajCookieIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1399px) {
  .rr-header-2 .rr-header__main { padding-right: 34px; padding-left: 34px; }
  .rr-header-2 .rr-header__menu__wrapper .main-menu ul li { margin: 0 10px; }
  .rr-header-2 .rr-header__menu__wrapper .main-menu ul li > a { font-size: 15px; }
  .rr-header__logo .logo img { width: 205px; }
}
@media (min-width: 1200px) and (max-width: 1599px) {
  .rr-header-3 .rr-header__main { padding-right: 28px; padding-left: 28px; }
  .rr-header-3 .rr-header__menu__wrapper { margin-left: 24px; padding-left: 24px; }
  .rr-header__logo .logo img { width: 188px; }
  .rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
  }
  .rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li { margin: 0 5px; }
  .rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li > a { font-size: 14px; }
  .rr-header__btn { display: none !important; }
}
@media (min-width: 1600px) {
  /* Allow the additional Policies link without crowding the desktop actions. */
  .rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li { margin: 0 10px; }
  .rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li > a { font-size: 16px; }
}
@media (max-width: 1199px) {
  .aj-header-cta { display: none; }
  .rr-header__top,
  .rr-header__menu__wrapper { display: none !important; }
  #rr-header-sticky .rr-header__main { padding: 18px 24px; }
  #rr-header-sticky .rr-header__main { min-height: 96px; }
}
@media (max-width: 767px) {
  .rr-header__logo .logo img { width: 185px; }
  .banner-section-3_space { padding-top: 165px; padding-bottom: 190px; }
  .banner-section-3__wrapper { background-position: 66% center; }
  .banner-section-3__wrapper::before { background: linear-gradient(90deg, rgba(7,16,21,.96), rgba(7,16,21,.72)); }
  .banner-section-3__title { font-size: clamp(42px, 12vw, 62px); line-height: 1.02; }
  .banner-section-3__bottom { padding-right: 16px; padding-left: 16px; }
  .banner-section-3__dec { display: none; }
  .aj-cookie-banner { right: 10px; bottom: 10px; left: 10px; padding: 18px; }
  .aj-cookie-grid { grid-template-columns: 1fr; gap: 16px; }
  .aj-cookie-actions { justify-content: flex-start; }
  .aj-cookie-btn { flex: 1 1 auto; }
  .aj-cookie-overlay.is-visible { padding: 10px; }
  .aj-cookie-modal__head, .aj-cookie-modal__body { padding-right: 20px; padding-left: 20px; }
  .copyright-3__wrap { align-items: flex-start; flex-direction: column; }
}

/* Service-to-service journeys */
.aj-related-services { margin: clamp(70px,9vw,125px) 0 0; padding: clamp(38px,5vw,70px); color: #fff; background: #101f25; }
.aj-related-services__heading { display: flex; justify-content: space-between; gap: 30px; align-items: flex-end; margin-bottom: 34px; }
.aj-related-services__heading > span { color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.aj-related-services__heading h3 { margin: 0; color: #fff; font-size: clamp(31px,3.6vw,52px); line-height: 1.05; }
.aj-related-services__links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.17); border-left: 1px solid rgba(255,255,255,.17); }
.aj-related-services__links a { display: flex; min-height: 126px; padding: 25px; border-right: 1px solid rgba(255,255,255,.17); border-bottom: 1px solid rgba(255,255,255,.17); color: #fff; justify-content: space-between; gap: 20px; align-items: flex-end; transition: color .25s ease, background .25s ease; }
.aj-related-services__links a:hover, .aj-related-services__links a:focus-visible { color: #fff; background: var(--aj-orange); }
.aj-related-services__links i { transition: transform .25s ease; }
.aj-related-services__links a:hover i, .aj-related-services__links a:focus-visible i { transform: translate(3px,-3px); }
@media (max-width: 991px) { .aj-related-services__links { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 575px) {
  .aj-related-services { padding: 30px 22px; }
  .aj-related-services__heading { display: block; }
  .aj-related-services__heading > span { display: block; margin-bottom: 12px; }
  .aj-related-services__links { grid-template-columns: 1fr; }
  .aj-related-services__links a { min-height: 92px; }
}

/* Launch pass: distinctive service and rail-environment page families */
.aj-directory-heading {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr);
  gap: clamp(44px,8vw,130px);
  align-items: end;
  margin-bottom: clamp(44px,6vw,86px);
}
.aj-directory-heading .section__title {
  max-width: 820px;
  margin-top: 18px;
  font-size: clamp(46px,5.3vw,82px);
  line-height: .98;
  letter-spacing: -.048em;
  text-wrap: balance;
}
.aj-directory-heading p {
  margin-bottom: 24px;
  color: #5f6c6d;
  font-size: 18px;
  line-height: 1.75;
}
.aj-inline-link {
  display: inline-flex;
  gap: 13px;
  align-items: center;
  padding-bottom: 7px;
  color: #142326;
  border-bottom: 1px solid rgba(20,35,38,.35);
  font-weight: 600;
  transition: color .25s ease, border-color .25s ease;
}
.aj-inline-link i { color: var(--aj-orange); transition: transform .25s ease; }
.aj-inline-link:hover { color: var(--aj-orange); border-color: var(--aj-orange); }
.aj-inline-link:hover i { transform: translate(3px,-3px); }

.aj-service-directory { background: #f6f4f0; }
.aj-service-bento {
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  grid-auto-rows: 215px;
  gap: 16px;
}
.aj-service-card {
  position: relative;
  display: block;
  min-height: 215px;
  overflow: hidden;
  color: #fff;
  background: #0a161b;
  isolation: isolate;
}
.aj-service-card--01 { grid-column: 1 / 8; grid-row: 1 / 3; }
.aj-service-card--02 { grid-column: 8 / 13; }
.aj-service-card--03 { grid-column: 8 / 13; }
.aj-service-card--04 { grid-column: 1 / 5; }
.aj-service-card--05 { grid-column: 5 / 9; }
.aj-service-card--06 { grid-column: 9 / 13; }
.aj-service-card--07 { grid-column: 1 / 7; }
.aj-service-card--08 { grid-column: 7 / 13; }
.aj-service-card--09 { grid-column: 1 / 13; }
.aj-service-card__media,
.aj-service-card__shade { position: absolute; inset: 0; }
.aj-service-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.84) contrast(1.04);
  transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
.aj-service-card__shade {
  background: linear-gradient(180deg,rgba(5,13,17,.06) 15%,rgba(5,13,17,.93) 100%);
  transition: background .4s ease;
}
.aj-service-card__content {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 8px 18px;
  align-items: end;
  padding: 27px 29px;
}
.aj-service-card__content > i { grid-row: 1 / 3; color: var(--aj-orange); font-size: 25px; }
.aj-service-card__number {
  position: absolute;
  top: -165px;
  right: 28px;
  color: rgba(255,255,255,.82);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
}
.aj-service-card__content strong { color: #fff; font-size: clamp(21px,2vw,31px); line-height: 1.08; }
.aj-service-card__content small { grid-column: 2; max-width: 640px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.55; }
.aj-service-card__link {
  grid-column: 3;
  grid-row: 1 / 3;
  display: flex;
  gap: 9px;
  align-items: center;
  align-self: end;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.aj-service-card:hover .aj-service-card__media img { filter: saturate(1.04) contrast(1.08); transform: scale(1.055); }
.aj-service-card:hover .aj-service-card__shade { background: linear-gradient(180deg,rgba(243,108,33,.08),rgba(5,13,17,.96)); }
.aj-service-card:hover .aj-service-card__link i { transform: translate(3px,-3px); }
.aj-service-card--01 .aj-service-card__number { top: -365px; }
.aj-service-card--07 .aj-service-card__content,
.aj-service-card--08 .aj-service-card__content,
.aj-service-card--09 .aj-service-card__content { grid-template-columns: auto minmax(0,1fr) auto; }
.aj-service-directory + .work-process__area { background: #0b171d; }
.aj-service-directory + .work-process__area .section__title,
.aj-service-directory + .work-process__area .section__subtitle { color: #fff; }

.aj-environment-showcase { overflow: hidden; background: #fff; }
.aj-directory-heading--environment .section__title { max-width: 900px; }
.aj-environment-panels {
  display: grid;
  min-height: 720px;
  grid-template-columns: repeat(12,minmax(0,1fr));
  grid-template-rows: 1fr 1fr;
  gap: 16px;
}
.aj-environment-panel {
  position: relative;
  display: block;
  min-height: 350px;
  overflow: hidden;
  color: #fff;
  background: #071117;
}
.aj-environment-panel--01 { grid-column: 1 / 7; grid-row: 1 / 3; }
.aj-environment-panel--02 { grid-column: 7 / 10; grid-row: 1; }
.aj-environment-panel--03 { grid-column: 10 / 13; grid-row: 1; }
.aj-environment-panel--04 { grid-column: 7 / 13; grid-row: 2; }
.aj-environment-panel > img,
.aj-environment-panel__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.aj-environment-panel > img { object-fit: cover; transition: transform .85s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.aj-environment-panel__shade { background: linear-gradient(180deg,rgba(4,12,16,.08),rgba(4,12,16,.94)); }
.aj-environment-panel__top {
  position: absolute;
  top: 28px;
  right: 28px;
  left: 28px;
  display: flex;
  justify-content: space-between;
  color: rgba(255,255,255,.78);
}
.aj-environment-panel__top small { color: var(--aj-orange); font-weight: 700; letter-spacing: .15em; }
.aj-environment-panel__top em { font-size: 12px; font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.aj-environment-panel__content {
  position: absolute;
  right: 30px;
  bottom: 30px;
  left: 30px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px 22px;
  align-items: end;
}
.aj-environment-panel__content strong { color: #fff; font-size: clamp(28px,3vw,49px); line-height: 1; letter-spacing: -.035em; }
.aj-environment-panel__content small { max-width: 620px; color: rgba(255,255,255,.71); font-size: 14px; line-height: 1.55; }
.aj-environment-panel__content i { grid-column: 2; grid-row: 1 / 3; color: var(--aj-orange); font-size: 27px; transition: transform .3s ease; }
.aj-environment-panel:hover > img { filter: saturate(1.08); transform: scale(1.045); }
.aj-environment-panel:hover .aj-environment-panel__content i { transform: translate(4px,-4px); }
.aj-environment-showcase + .work-process__area { background: #eeeae3; }

/* Detail-page shared foundation */
.aj-detail { position: relative; overflow: hidden; background: #fff; }
.aj-detail__intro {
  display: grid;
  grid-template-columns: minmax(0,1.16fr) minmax(340px,.84fr);
  gap: clamp(50px,8vw,150px);
  align-items: end;
  padding-bottom: clamp(58px,7vw,100px);
}
.aj-detail__intro-title { position: relative; padding-left: 88px; }
.aj-detail__index {
  position: absolute;
  top: 2px;
  left: 0;
  color: var(--aj-orange);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .18em;
}
.aj-detail__intro-title .section__subtitle { display: block; margin-bottom: 18px; }
.aj-detail__intro h2 {
  max-width: 850px;
  margin: 0;
  font-size: clamp(48px,5.2vw,82px);
  line-height: .99;
  letter-spacing: -.05em;
  text-wrap: balance;
}
.aj-detail__intro-copy p { margin: 0 0 19px; color: #5d696b; font-size: 17px; line-height: 1.72; }
.aj-detail__intro-copy .aj-inline-link { margin-top: 8px; }
.aj-detail__hero { position: relative; height: clamp(520px,58vw,790px); overflow: hidden; background: #071117; }
.aj-detail__hero > img { width: 100%; height: 100%; object-fit: cover; }
.aj-detail__hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(4,12,16,.56),rgba(4,12,16,.02) 62%); }
.aj-detail__hero-panel {
  position: absolute;
  bottom: 0;
  left: max(24px,calc((100vw - 1320px)/2));
  display: grid;
  width: min(490px,calc(100% - 48px));
  grid-template-columns: 56px minmax(0,1fr);
  gap: 7px 18px;
  padding: 35px 40px;
  color: #fff;
  background: rgba(7,17,23,.94);
  backdrop-filter: blur(12px);
}
.aj-detail__hero-panel > i { grid-row: 1 / 4; color: var(--aj-orange); font-size: 33px; }
.aj-detail__hero-panel small { color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.aj-detail__hero-panel strong { color: #fff; font-size: 19px; line-height: 1.4; }
.aj-detail__hero-panel span { color: rgba(255,255,255,.64); font-size: 12px; letter-spacing: .05em; }
.aj-detail__overview {
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr);
  gap: clamp(60px,9vw,150px);
  padding: clamp(85px,10vw,150px) 0;
}
.aj-detail__kicker { display: block; margin-bottom: 22px; color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.aj-detail__overview h3,
.aj-detail__confidence h3 { margin-bottom: 28px; font-size: clamp(37px,4vw,59px); line-height: 1.05; letter-spacing: -.035em; text-wrap: balance; }
.aj-detail__overview p,
.aj-detail__confidence p { margin-bottom: 18px; color: #637072; font-size: 17px; line-height: 1.72; }
.aj-detail__checklist { padding: 35px 38px; border: 1px solid #dfe2df; background: #f7f6f2; }
.aj-detail__checklist ul { margin: 0; padding: 0; list-style: none; }
.aj-detail__checklist li { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 13px; align-items: start; padding: 16px 0; border-bottom: 1px solid #dfe2df; color: #1c292b; }
.aj-detail__checklist li:last-child { border-bottom: 0; }
.aj-detail__checklist li i { color: var(--aj-orange); font-size: 16px; }
.aj-detail__gallery { display: grid; min-height: 600px; grid-template-columns: 1.25fr .75fr; grid-template-rows: 1fr 1fr; gap: 16px; }
.aj-detail__gallery-item { margin: 0; overflow: hidden; background: #0b171d; }
.aj-detail__gallery-item--1 { grid-row: 1 / 3; }
.aj-detail__gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.aj-detail__gallery-item:hover img { transform: scale(1.04); }
.aj-detail__confidence { display: grid; grid-template-columns: minmax(0,1fr) minmax(380px,.8fr); gap: clamp(60px,9vw,150px); align-items: center; padding: clamp(85px,10vw,150px) 0 0; }
.aj-detail__feature-list { display: flex; flex-wrap: wrap; gap: 10px; }
.aj-detail__feature-list span { padding: 13px 17px; color: #162427; border: 1px solid #d9dedc; border-radius: 999px; font-size: 13px; font-weight: 600; }

/* Core workforce: bold manifesto and panoramic imagery */
.aj-detail--foundation { background: linear-gradient(180deg,#fff 0,#fff 36%,#f2f0eb 36%,#f2f0eb 100%); }
.aj-detail--foundation .aj-detail__hero { height: clamp(590px,64vw,850px); margin: 0 clamp(0px,3vw,52px); }
.aj-detail--foundation .aj-detail__overview { padding-top: 130px; }
.aj-detail--foundation .aj-detail__checklist { color: #fff; border: 0; background: #0b171d; }
.aj-detail--foundation .aj-detail__checklist li { color: #fff; border-color: rgba(255,255,255,.12); }

/* Control roles: technical split-screen composition */
.aj-detail--control { padding-bottom: 1px; background: #f1eee8; }
.aj-detail--control .aj-detail__intro { grid-template-columns: .95fr 1.05fr; }
.aj-detail--control .aj-detail__hero { width: 68%; height: clamp(560px,58vw,760px); margin-left: auto; overflow: visible; }
.aj-detail--control .aj-detail__hero > img { object-position: center; }
.aj-detail--control .aj-detail__hero-panel {
  top: 50%;
  bottom: auto;
  left: auto;
  right: calc(100% - 1px);
  width: min(470px,46vw);
  padding: 48px;
  transform: translateY(-50%);
}
.aj-detail--control .aj-detail__overview { position: relative; grid-template-columns: 1fr 1fr; }
.aj-detail--control .aj-detail__overview::before { position: absolute; top: 120px; bottom: 120px; left: 50%; width: 1px; content: ""; background: rgba(15,32,36,.15); }
.aj-detail--control .aj-detail__checklist { padding: 0 0 0 70px; border: 0; background: transparent; }
.aj-detail--control .aj-detail__gallery { min-height: 410px; grid-template-columns: repeat(3,1fr); grid-template-rows: 1fr; }
.aj-detail--control .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--control .aj-detail__confidence { margin-bottom: 120px; padding: 70px; color: #fff; background: #0b171d; }
.aj-detail--control .aj-detail__confidence h3 { color: #fff; }
.aj-detail--control .aj-detail__confidence p { color: rgba(255,255,255,.65); }
.aj-detail--control .aj-detail__feature-list span { color: #fff; border-color: rgba(255,255,255,.18); }

/* Field roles: full-bleed worksite with an editorial overlap */
.aj-detail--field { padding-top: 0; background: #fff; }
.aj-detail--field .aj-detail__intro { padding-top: 100px; color: #fff; }
.aj-detail--field::before { position: absolute; top: 0; right: 0; left: 0; height: 560px; content: ""; background: #0b171d; }
.aj-detail--field .aj-detail__intro { position: relative; z-index: 1; }
.aj-detail--field .aj-detail__intro h2 { color: #fff; }
.aj-detail--field .aj-detail__intro-copy p { color: rgba(255,255,255,.66); }
.aj-detail--field .aj-inline-link { color: #fff; border-color: rgba(255,255,255,.35); }
.aj-detail--field .aj-detail__hero { height: clamp(650px,66vw,900px); }
.aj-detail--field .aj-detail__hero-panel { right: max(24px,calc((100vw - 1320px)/2)); left: auto; bottom: 52px; background: var(--aj-orange); }
.aj-detail--field .aj-detail__hero-panel > i,
.aj-detail--field .aj-detail__hero-panel small { color: #fff; }
.aj-detail--field .aj-detail__overview { position: relative; z-index: 2; margin-top: -80px; padding: 70px; background: #fff; box-shadow: 0 28px 80px rgba(7,17,23,.12); }
.aj-detail--field .aj-detail__checklist { border: 0; border-left: 3px solid var(--aj-orange); background: transparent; }
.aj-detail--field .aj-detail__gallery { min-height: 720px; grid-template-columns: .72fr 1.28fr; }
.aj-detail--field .aj-detail__gallery-item--1 { grid-column: 2; grid-row: 1 / 3; }
.aj-detail--field .aj-detail__gallery-item--2 { grid-column: 1; grid-row: 1; }
.aj-detail--field .aj-detail__gallery-item--3 { grid-column: 1; grid-row: 2; }

/* London Underground: darker, enclosed and route-led */
.aj-detail--underground { color: #fff; background: #071117; }
.aj-detail--underground::after { position: absolute; top: 120px; right: -7%; width: 42%; height: 10px; content: ""; background: var(--aj-orange); transform: rotate(-9deg); opacity: .58; }
.aj-detail--underground .aj-detail__intro { position: relative; z-index: 1; }
.aj-detail--underground .aj-detail__intro h2,
.aj-detail--underground .aj-detail__overview h3,
.aj-detail--underground .aj-detail__confidence h3 { color: #fff; }
.aj-detail--underground .aj-detail__intro-copy p,
.aj-detail--underground .aj-detail__overview p,
.aj-detail--underground .aj-detail__confidence p { color: rgba(255,255,255,.65); }
.aj-detail--underground .aj-inline-link { color: #fff; border-color: rgba(255,255,255,.3); }
.aj-detail--underground .aj-detail__hero { margin: 0 clamp(22px,5vw,90px); border: 1px solid rgba(255,255,255,.12); }
.aj-detail--underground .aj-detail__hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 7px; content: ""; background: var(--aj-orange); }
.aj-detail--underground .aj-detail__hero-panel { background: rgba(16,30,36,.95); }
.aj-detail--underground .aj-detail__overview { grid-template-columns: 1.15fr .85fr; }
.aj-detail--underground .aj-detail__checklist { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.045); }
.aj-detail--underground .aj-detail__checklist li { color: #fff; border-color: rgba(255,255,255,.1); }
.aj-detail--underground .aj-detail__feature-list span { color: #fff; border-color: rgba(255,255,255,.18); }

/* Network Rail: wide, open mainline composition */
.aj-detail--mainline { background: #f4f2ed; }
.aj-detail--mainline .aj-detail__hero { height: clamp(480px,45vw,660px); margin: 0 clamp(18px,5vw,90px); }
.aj-detail--mainline .aj-detail__hero-panel { right: 0; left: auto; bottom: 0; background: rgba(255,255,255,.96); box-shadow: 0 15px 50px rgba(5,15,20,.14); }
.aj-detail--mainline .aj-detail__hero-panel strong { color: #142326; }
.aj-detail--mainline .aj-detail__hero-panel span { color: #637072; }
.aj-detail--mainline .aj-detail__overview { grid-template-columns: .9fr 1.1fr; }
.aj-detail--mainline .aj-detail__checklist { background: #fff; }
.aj-detail--mainline .aj-detail__gallery { min-height: 420px; grid-template-columns: repeat(3,1fr); grid-template-rows: 1fr; }
.aj-detail--mainline .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--mainline .aj-detail__confidence { border-top: 1px solid #d6d9d6; }

/* RFLI / Central Operating Section: a distinct modern-infrastructure visual family. */
.aj-detail--crossrail {
  background:
    linear-gradient(90deg,transparent 0 8%,rgba(119,58,139,.055) 8% calc(8% + 1px),transparent calc(8% + 1px) 100%),
    linear-gradient(180deg,#f5f3f5 0,#fff 36%,#eef1f1 36%,#eef1f1 100%);
}
.aj-detail--crossrail::before { position: absolute; top: 165px; right: -8%; width: 48%; height: 8px; content: ""; background: linear-gradient(90deg,transparent,#6f3b78 24%,var(--aj-orange)); transform: rotate(-6deg); opacity: .78; }
.aj-detail--crossrail .aj-detail__intro { position: relative; z-index: 1; }
.aj-detail--crossrail .aj-detail__index { color: #6f3b78; }
.aj-detail--crossrail .aj-detail__hero { height: clamp(560px,52vw,760px); margin: 0 clamp(18px,4vw,72px); border: 1px solid rgba(27,46,54,.12); }
.aj-detail--crossrail .aj-detail__hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 7px; content: ""; background: linear-gradient(90deg,#6f3b78 0 38%,var(--aj-orange) 38% 100%); }
.aj-detail--crossrail .aj-detail__hero-panel { top: auto; right: 42px; bottom: 42px; left: auto; width: min(460px,calc(100% - 84px)); transform: none; background: rgba(11,24,30,.95); backdrop-filter: blur(12px); }
.aj-detail--crossrail .aj-detail__overview { grid-template-columns: 1.05fr .95fr; }
.aj-detail--crossrail .aj-detail__checklist { border: 0; background: #fff; box-shadow: 0 24px 65px rgba(7,20,27,.09); }
.aj-detail--crossrail .aj-detail__gallery { min-height: 500px; grid-template-columns: 1.15fr .85fr; grid-template-rows: 1fr 1fr; }
.aj-detail--crossrail .aj-detail__gallery-item--1 { grid-row: 1 / 3; }
.aj-detail--crossrail .aj-detail__confidence { border-top: 5px solid #6f3b78; background: #fff; }
.aj-role-module--rfli { border: 1px solid #dcdfe0; background: #f8f8f7; }
.aj-rfli-project-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid #dcdfe0; border-left: 1px solid #dcdfe0; }
.aj-rfli-project-grid article { min-height: 230px; padding: 32px 28px; border-right: 1px solid #dcdfe0; border-bottom: 1px solid #dcdfe0; }
.aj-rfli-project-grid i { color: #6f3b78; font-size: 28px; }
.aj-rfli-project-grid small { float: right; color: var(--aj-orange); font-weight: 700; letter-spacing: .14em; }
.aj-rfli-project-grid h4 { margin: 30px 0 12px; font-size: 22px; }
.aj-rfli-project-grid p { margin: 0; color: #687477; font-size: 14px; line-height: 1.6; }
.aj-rfli-role-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 18px; gap: 8px; background: #101d23; }
.aj-rfli-role-links a { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 18px; color: #fff; border: 1px solid rgba(255,255,255,.12); transition: border-color .25s ease,background .25s ease; }
.aj-rfli-role-links a i { color: var(--aj-orange); }
.aj-rfli-role-links a:hover { color: #fff; border-color: rgba(255,255,255,.36); background: #6f3b78; }

/* Compliance: evidence-led rather than image-led */
.aj-detail--trust { background: #fff; }
.aj-detail--trust .aj-detail__intro { padding: 80px; color: #fff; background: #0b171d; }
.aj-detail--trust .aj-detail__intro h2 { color: #fff; }
.aj-detail--trust .aj-detail__intro-copy p { color: rgba(255,255,255,.66); }
.aj-detail--trust .aj-inline-link { color: #fff; border-color: rgba(255,255,255,.3); }
.aj-detail--trust .aj-detail__hero { width: min(1320px,calc(100% - 48px)); height: 520px; margin: 0 auto; }
.aj-detail--trust .aj-detail__hero-panel { right: 0; left: auto; }
.aj-detail--trust .aj-detail__overview { grid-template-columns: .8fr 1.2fr; }
.aj-detail--trust .aj-detail__checklist { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 25px; padding: 48px; background: #f3f1ec; }
.aj-detail--trust .aj-detail__checklist .aj-detail__kicker { margin: 0; }
.aj-detail--trust .aj-detail__gallery { min-height: 330px; grid-template-columns: 1.25fr .75fr; grid-template-rows: 1fr; }
.aj-detail--trust .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--trust .aj-detail__gallery-item--3 { display: none; }
.aj-detail--trust .aj-detail__confidence { padding: 80px; color: #fff; background: var(--aj-orange); }
.aj-detail--trust .aj-detail__confidence h3,
.aj-detail--trust .aj-detail__confidence p { color: #fff; }
.aj-detail--trust .aj-detail__feature-list span { color: #fff; border-color: rgba(255,255,255,.42); }

/* Role-specific editorial modules: each service earns its own visual logic. */
.aj-role-module { margin: 0 0 clamp(70px,9vw,130px); }
.aj-role-module__heading { display: grid; grid-template-columns: minmax(180px,.34fr) minmax(0,1fr); gap: 38px; align-items: start; margin-bottom: 45px; padding-top: 34px; border-top: 1px solid #d8ddda; }
.aj-role-module__heading > span { color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.aj-role-module__heading h3 { max-width: 900px; margin: 0; font-size: clamp(34px,4vw,58px); line-height: 1.04; letter-spacing: -.04em; text-wrap: balance; }

.aj-role-manifesto { display: grid; grid-template-columns: repeat(7,auto); gap: 18px; align-items: center; padding: 38px 42px; color: #fff; background: #0b171d; }
.aj-role-manifesto span,
.aj-role-manifesto strong { color: #fff; font-size: 14px; text-align: center; }
.aj-role-manifesto strong { padding: 15px 18px; background: var(--aj-orange); }
.aj-role-manifesto i { color: var(--aj-orange); }

.aj-role-interface { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #cfd4d1; }
.aj-role-interface article { position: relative; min-height: 330px; padding: 40px; background: #fff; }
.aj-role-interface article > i { margin-bottom: 70px; color: var(--aj-orange); font-size: 36px; }
.aj-role-interface small { position: absolute; top: 40px; right: 40px; color: #8a9492; font-size: 11px; letter-spacing: .16em; }
.aj-role-interface h4 { margin-bottom: 13px; font-size: 30px; }
.aj-role-interface p { color: #687375; font-size: 15px; line-height: 1.65; }

.aj-role-module--coordinates { padding: 65px; color: #fff; background: #101f25; }
.aj-role-module--coordinates .aj-role-module__heading { border-color: rgba(255,255,255,.16); }
.aj-role-module--coordinates h3 { color: #fff; }
.aj-coordinate-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.aj-coordinate-grid article { padding: 28px 0 0; border-top: 3px solid var(--aj-orange); }
.aj-coordinate-grid span { display: block; margin-bottom: 38px; color: rgba(255,255,255,.48); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.aj-coordinate-grid strong { display: block; margin-bottom: 13px; color: #fff; font-size: 25px; }
.aj-coordinate-grid p { color: rgba(255,255,255,.64); font-size: 14px; line-height: 1.65; }

.aj-role-module--safety-stack { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(50px,8vw,130px); align-items: start; }
.aj-role-module--safety-stack .aj-role-module__heading { display: block; margin: 0; border: 0; }
.aj-role-module--safety-stack .aj-role-module__heading > span { display: block; margin-bottom: 22px; }
.aj-safety-stack { margin: 0; padding: 0; counter-reset: none; list-style: none; border-top: 1px solid #cad0cd; }
.aj-safety-stack li { display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 5px 15px; padding: 25px 0; border-bottom: 1px solid #cad0cd; }
.aj-safety-stack li > span { grid-row: 1 / 3; color: var(--aj-orange); font-size: 12px; font-weight: 700; }
.aj-safety-stack strong { font-size: 19px; }
.aj-safety-stack small { color: #707b7c; font-size: 14px; }

.aj-role-module--gang { padding: 65px; color: #fff; background: var(--aj-orange); }
.aj-role-module--gang .aj-role-module__heading { border-color: rgba(255,255,255,.3); }
.aj-role-module--gang .aj-role-module__heading > span,
.aj-role-module--gang .aj-role-module__heading h3 { color: #fff; }
.aj-gang-line { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; margin-bottom: 28px; background: rgba(255,255,255,.28); }
.aj-gang-line span { padding: 22px 14px; color: #fff; background: var(--aj-orange); border: 1px solid rgba(255,255,255,.26); font-size: 13px; font-weight: 600; text-align: center; }
.aj-role-module--gang > p { max-width: 850px; margin: 0; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.7; }

.aj-plant-role-grid { display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 16px; }
.aj-plant-role-grid > * { min-height: 330px; padding: 35px; border: 1px solid #d9dedb; background: #fff; transition: color .3s ease, background .3s ease, transform .3s ease; }
.aj-plant-role-grid > a:hover { color: #fff; background: #0c1a20; transform: translateY(-5px); }
.aj-plant-role-grid > * > i { display: block; margin-bottom: 75px; color: var(--aj-orange); font-size: 39px; }
.aj-plant-role-grid small { display: block; margin-bottom: 10px; color: #778182; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.aj-plant-role-grid strong { display: block; margin-bottom: 28px; color: inherit; font-size: 29px; line-height: 1.12; }
.aj-plant-role-grid span { color: #6a7576; font-size: 13px; }
.aj-plant-role-grid a:hover small,
.aj-plant-role-grid a:hover span { color: rgba(255,255,255,.68); }
.aj-plant-role-grid span i { margin-left: 8px; color: var(--aj-orange); }
.aj-plant-role-grid article { background: #f2f0eb; }

.aj-detail--logistics { background: linear-gradient(90deg,#fff 0,#fff 68%,#eef0ed 68%); }
.aj-detail--logistics .aj-detail__hero { width: calc(100% - clamp(24px,6vw,100px)); height: clamp(520px,50vw,720px); }
.aj-detail--logistics .aj-detail__hero-panel { right: max(24px,calc((100vw - 1320px)/2)); left: auto; background: rgba(255,255,255,.95); }
.aj-detail--logistics .aj-detail__hero-panel strong { color: #102024; }
.aj-detail--logistics .aj-detail__hero-panel span { color: #687475; }
.aj-detail--logistics .aj-detail__gallery { min-height: 450px; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.aj-detail--logistics .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--logistics .aj-detail__gallery-item--3 { display: none; }
.aj-load-route { display: grid; grid-template-columns: repeat(7,auto); gap: 15px; align-items: center; padding: 50px 35px; border: 1px solid #d5dad7; background: #fff; }
.aj-load-route article { min-width: 0; text-align: center; }
.aj-load-route article > i { display: block; margin-bottom: 18px; color: var(--aj-orange); font-size: 30px; }
.aj-load-route article > span { display: block; margin-bottom: 7px; color: #8c9694; font-size: 10px; letter-spacing: .12em; }
.aj-load-route strong { display: block; font-size: 19px; }
.aj-load-route small { color: #6b7677; font-size: 12px; }
.aj-load-route > i { color: #a0a8a6; }

.aj-detail--civils { padding-top: 0; color: #fff; background: #0a161c; }
.aj-detail--civils .aj-detail__intro { position: relative; z-index: 1; padding-top: 100px; }
.aj-detail--civils .aj-detail__intro h2,
.aj-detail--civils .aj-detail__overview h3,
.aj-detail--civils .aj-detail__confidence h3,
.aj-detail--civils .aj-role-module__heading h3 { color: #fff; }
.aj-detail--civils .aj-detail__intro-copy p,
.aj-detail--civils .aj-detail__overview p,
.aj-detail--civils .aj-detail__confidence p { color: rgba(255,255,255,.64); }
.aj-detail--civils .aj-inline-link { color: #fff; border-color: rgba(255,255,255,.3); }
.aj-detail--civils .aj-detail__hero { height: clamp(560px,54vw,770px); margin: 0 clamp(20px,4vw,70px); }
.aj-detail--civils .aj-detail__hero-panel { background: var(--aj-orange); }
.aj-detail--civils .aj-detail__hero-panel i,
.aj-detail--civils .aj-detail__hero-panel small { color: #fff; }
.aj-detail--civils .aj-detail__checklist { border-color: rgba(255,255,255,.13); background: rgba(255,255,255,.05); }
.aj-detail--civils .aj-detail__checklist li { color: #fff; border-color: rgba(255,255,255,.1); }
.aj-detail--civils .aj-role-module__heading { border-color: rgba(255,255,255,.16); }
.aj-terrain-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.aj-terrain-grid article { min-height: 290px; padding: 40px; color: #172629; background: #fff; }
.aj-terrain-grid span { display: block; margin-bottom: 70px; color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.aj-terrain-grid h4 { margin-bottom: 15px; font-size: 29px; }
.aj-terrain-grid p { color: #687475; font-size: 14px; line-height: 1.65; }
.aj-detail--civils .aj-detail__gallery { min-height: 460px; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.aj-detail--civils .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--civils .aj-detail__gallery-item--3 { display: none; }
.aj-detail--civils .aj-detail__feature-list span { color: #fff; border-color: rgba(255,255,255,.2); }

.aj-role-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.aj-role-pair article { min-height: 390px; padding: 45px; color: #fff; background: #101f25; }
.aj-role-pair article:last-child { background: var(--aj-orange); }
.aj-role-pair article > i { display: block; margin-bottom: 80px; font-size: 42px; }
.aj-role-pair small { display: block; margin-bottom: 10px; color: rgba(255,255,255,.58); font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.aj-role-pair h4 { margin-bottom: 17px; color: #fff; font-size: 36px; }
.aj-role-pair p { max-width: 500px; color: rgba(255,255,255,.72); line-height: 1.65; }

/* Page-specific silhouette changes within the shared template system. */
.aj-detail--crane-controller-supply .aj-detail__gallery { grid-template-columns: 1.3fr .7fr; grid-template-rows: 1fr 1fr; min-height: 620px; }
.aj-detail--crane-controller-supply .aj-detail__gallery-item--1 { grid-row: 1 / 3; }
.aj-detail--machine-controller-supply .aj-detail__hero { width: 100%; }
.aj-detail--machine-controller-supply .aj-detail__hero-panel { right: max(24px,calc((100vw - 1320px)/2)); left: auto; }
.aj-detail--coss-supply { background: #fff; }
.aj-detail--coss-supply .aj-detail__hero { width: min(1320px,calc(100% - 48px)); margin: 0 auto; }
.aj-detail--coss-supply .aj-detail__hero-panel { background: var(--aj-orange); }
.aj-detail--coss-supply .aj-detail__hero-panel i,
.aj-detail--coss-supply .aj-detail__hero-panel small { color: #fff; }
.aj-detail--track-gangs-labour-support .aj-detail__gallery { min-height: 460px; grid-template-columns: repeat(3,1fr); grid-template-rows: 1fr; }
.aj-detail--track-gangs-labour-support .aj-detail__gallery-item { grid-column: auto; grid-row: auto; }
.aj-detail--plant-machine-operator-supply .aj-detail__gallery { min-height: 470px; grid-template-columns: 1.2fr .8fr; grid-template-rows: 1fr; }
.aj-detail--plant-machine-operator-supply .aj-detail__gallery-item--1 { grid-column: auto; grid-row: auto; }
.aj-detail--plant-machine-operator-supply .aj-detail__gallery-item--3 { display: none; }

.aj-service-role-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.aj-service-role-links a,
.aj-service-role-links span { display: inline-flex; gap: 7px; align-items: center; padding: 7px 11px; color: #172629; border: 1px solid #d9dedb; border-radius: 999px; font-size: 11px; font-weight: 600; }
.aj-service-role-links a:hover { color: #fff; border-color: var(--aj-orange); background: var(--aj-orange); }

@media (max-width: 1199px) {
  .aj-service-bento { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 310px; }
  .aj-service-card,
  .aj-service-card--01,
  .aj-service-card--02,
  .aj-service-card--03,
  .aj-service-card--04,
  .aj-service-card--05,
  .aj-service-card--06,
  .aj-service-card--07,
  .aj-service-card--08,
  .aj-service-card--09 { grid-column: auto; grid-row: auto; }
  .aj-service-card--01 { grid-row: span 2; }
  .aj-service-card__number,
  .aj-service-card--01 .aj-service-card__number { top: -245px; }
  .aj-detail__intro-title { padding-left: 62px; }
  .aj-detail--control .aj-detail__hero { width: 72%; }
  .aj-detail--control .aj-detail__hero-panel { width: 40vw; }
  .aj-role-module--safety-stack { grid-template-columns: 1fr; gap: 42px; }
  .aj-load-route { grid-template-columns: repeat(4,1fr); gap: 28px 12px; }
  .aj-load-route > i { display: none; }
}

@media (max-width: 991px) {
  .aj-directory-heading,
  .aj-detail__intro,
  .aj-detail__overview,
  .aj-detail__confidence { grid-template-columns: 1fr; gap: 38px; }
  .aj-environment-panels { min-height: 0; grid-template-columns: 1fr 1fr; grid-template-rows: 500px 340px 340px; }
  .aj-environment-panel--01 { grid-column: 1 / 3; grid-row: 1; }
  .aj-environment-panel--02,
  .aj-environment-panel--03 { grid-column: auto; grid-row: 2; }
  .aj-environment-panel--04 { grid-column: 1 / 3; grid-row: 3; }
  .aj-detail__intro h2 { max-width: 760px; }
  .aj-detail--control .aj-detail__intro { grid-template-columns: 1fr; }
  .aj-detail--control .aj-detail__hero { width: calc(100% - 80px); overflow: hidden; }
  .aj-detail--control .aj-detail__hero-panel { top: auto; right: auto; bottom: 0; left: 0; width: min(480px,calc(100% - 32px)); transform: none; }
  .aj-detail--control .aj-detail__overview::before { display: none; }
  .aj-detail--control .aj-detail__checklist { padding-left: 0; }
  .aj-detail--control .aj-detail__confidence,
  .aj-detail--trust .aj-detail__intro,
  .aj-detail--trust .aj-detail__confidence { padding: 55px; }
  .aj-detail--field .aj-detail__overview { margin-top: -45px; padding: 50px; }
  .aj-detail--underground .aj-detail__overview,
  .aj-detail--crossrail .aj-detail__overview,
  .aj-detail--mainline .aj-detail__overview,
  .aj-detail--trust .aj-detail__overview { grid-template-columns: 1fr; }
  .aj-detail--trust .aj-detail__checklist { grid-template-columns: 1fr; }
  .aj-role-module__heading { grid-template-columns: 1fr; gap: 15px; }
  .aj-role-interface,
  .aj-coordinate-grid,
  .aj-plant-role-grid,
  .aj-terrain-grid { grid-template-columns: 1fr; }
  .aj-rfli-project-grid { grid-template-columns: 1fr 1fr; }
  .aj-rfli-role-links { grid-template-columns: 1fr 1fr; }
  .aj-gang-line { grid-template-columns: repeat(2,1fr); }
  .aj-detail--logistics .aj-detail__hero { width: 100%; }
}

@media (max-width: 767px) {
  .aj-directory-heading .section__title,
  .aj-detail__intro h2 { font-size: clamp(38px,11vw,54px); }
  .aj-directory-heading { margin-bottom: 38px; }
  .aj-directory-heading p { font-size: 16px; }
  .aj-service-bento { display: block; }
  .aj-service-card { min-height: 390px; margin-bottom: 14px; }
  .aj-service-card__content { grid-template-columns: 34px minmax(0,1fr); padding: 24px; }
  .aj-service-card__content > i { font-size: 22px; }
  .aj-service-card__content strong { font-size: 26px; }
  .aj-service-card__content small { grid-column: 2; }
  .aj-service-card__link { grid-column: 2; grid-row: auto; margin-top: 7px; }
  .aj-service-card__number,
  .aj-service-card--01 .aj-service-card__number { top: -270px; right: 22px; }
  .aj-environment-panels { display: block; }
  .aj-environment-panel { min-height: 470px; margin-bottom: 14px; }
  .aj-environment-panel__content { right: 23px; bottom: 25px; left: 23px; }
  .aj-environment-panel__content strong { font-size: 34px; }
  .aj-environment-panel__content small { grid-column: 1 / -1; }
  .aj-environment-panel__content i { grid-row: 1; }
  .aj-detail { padding-top: 80px; }
  .aj-detail__intro { padding-bottom: 52px; }
  .aj-detail__intro-title { padding-left: 0; }
  .aj-detail__index { position: static; display: block; margin-bottom: 15px; }
  .aj-detail__hero,
  .aj-detail--foundation .aj-detail__hero,
  .aj-detail--field .aj-detail__hero { height: 590px; margin: 0; }
  .aj-detail__hero-panel { right: 18px; bottom: 18px; left: 18px; width: auto; padding: 27px 25px; }
  .aj-detail__overview { padding: 70px 0; }
  .aj-detail__overview h3,
  .aj-detail__confidence h3 { font-size: 37px; }
  .aj-detail__checklist { padding: 28px 24px; }
  .aj-detail__gallery,
  .aj-detail--control .aj-detail__gallery,
  .aj-detail--field .aj-detail__gallery,
  .aj-detail--crossrail .aj-detail__gallery,
  .aj-detail--mainline .aj-detail__gallery,
  .aj-detail--trust .aj-detail__gallery { display: grid; min-height: 0; grid-template-columns: 1fr; grid-template-rows: repeat(3,300px); gap: 10px; }
  .aj-detail__gallery-item,
  .aj-detail--field .aj-detail__gallery-item--1,
  .aj-detail--field .aj-detail__gallery-item--2,
  .aj-detail--field .aj-detail__gallery-item--3 { grid-column: auto; grid-row: auto; }
  .aj-detail--trust .aj-detail__gallery { grid-template-rows: repeat(2,300px); }
  .aj-detail--logistics .aj-detail__gallery,
  .aj-detail--civils .aj-detail__gallery,
  .aj-detail--crane-controller-supply .aj-detail__gallery,
  .aj-detail--track-gangs-labour-support .aj-detail__gallery,
  .aj-detail--plant-machine-operator-supply .aj-detail__gallery { grid-template-rows: repeat(2,300px); }
  .aj-detail__confidence { padding: 70px 0 0; }
  .aj-detail--control .aj-detail__hero { width: 100%; height: 590px; }
  .aj-detail--control .aj-detail__hero-panel { right: 18px; bottom: 18px; left: 18px; width: auto; }
  .aj-detail--control .aj-detail__confidence { margin-bottom: 70px; padding: 36px 28px; }
  .aj-detail--field { padding-top: 0; }
  .aj-detail--field::before { height: 700px; }
  .aj-detail--field .aj-detail__intro { padding-top: 70px; }
  .aj-detail--field .aj-detail__hero-panel { right: 18px; bottom: 18px; }
  .aj-detail--field .aj-detail__overview { margin-top: 0; padding: 60px 0; box-shadow: none; }
  .aj-detail--underground .aj-detail__hero,
  .aj-detail--crossrail .aj-detail__hero,
  .aj-detail--mainline .aj-detail__hero,
  .aj-detail--trust .aj-detail__hero { width: 100%; height: 590px; margin: 0; }
  .aj-detail--mainline .aj-detail__hero-panel { right: 18px; bottom: 18px; left: 18px; }
  .aj-detail--crossrail .aj-detail__hero-panel { right: 18px; bottom: 18px; left: 18px; width: auto; }
  .aj-detail--trust .aj-detail__intro,
  .aj-detail--trust .aj-detail__confidence { padding: 38px 26px; }
  .aj-detail--trust .aj-detail__hero { width: 100%; }
  .aj-role-module { margin-bottom: 70px; }
  .aj-role-module--coordinates,
  .aj-role-module--gang { padding: 38px 25px; }
  .aj-role-interface article,
  .aj-terrain-grid article { min-height: 0; padding: 30px 25px; }
  .aj-role-interface article > i,
  .aj-terrain-grid span { margin-bottom: 35px; }
  .aj-role-pair { grid-template-columns: 1fr; }
  .aj-role-pair article { min-height: 330px; padding: 35px 28px; }
  .aj-role-pair article > i { margin-bottom: 55px; }
  .aj-load-route { grid-template-columns: 1fr 1fr; padding: 35px 20px; }
  .aj-gang-line { grid-template-columns: 1fr; }
  .aj-rfli-project-grid,
  .aj-rfli-role-links { grid-template-columns: 1fr; }
  .aj-detail--civils .aj-detail__hero { width: 100%; margin: 0; }
}

@media (max-width: 480px) {
  .aj-service-card { min-height: 350px; }
  .aj-service-card__number,
  .aj-service-card--01 .aj-service-card__number { top: -230px; }
  .aj-environment-panel { min-height: 420px; }
  .aj-detail__hero-panel { grid-template-columns: 42px minmax(0,1fr); }
  .aj-detail__hero-panel > i { font-size: 27px; }
  .aj-detail__hero-panel strong { font-size: 16px; }
}
/* Accessible page title kept outside the looping hero so Swiper cannot clone it. */
.aj-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Final AJ homepage visual pass */
.banner-section-3__area,
.banner-section-3__active,
.banner-section-3__active .swiper-wrapper,
.banner-section-3__active .swiper-slide,
.aj-hero-panel {
  min-height: min(900px, 100svh);
}
.aj-hero-panel {
  isolation: isolate;
  overflow: hidden;
  background-color: #071015;
  background-position: center;
  transform: none !important;
}
.aj-hero-panel::before {
  z-index: 1;
  opacity: 1;
  background: linear-gradient(90deg, rgba(5, 13, 18, .96) 0%, rgba(5, 13, 18, .86) 38%, rgba(5, 13, 18, .36) 67%, rgba(5, 13, 18, .2) 100%);
}
.aj-hero-panel::after {
  z-index: 1;
  opacity: 1;
  background: linear-gradient(0deg, rgba(5, 13, 18, .78), transparent 48%);
}
.aj-hero-video {
  display: block;
  opacity: 1;
  visibility: visible;
  filter: saturate(.92) contrast(1.04);
  transition: opacity .6s ease;
}
.banner-section-3__active .swiper-slide:not(.swiper-slide-active) .aj-hero-video { opacity: 0; }
.banner-section-3__content {
  z-index: 3;
  text-shadow: 0 3px 24px rgba(0, 0, 0, .55);
}
.banner-section-3__subtitle,
.banner-section-3__title { color: #fff; }
.banner-section-3__bottom { z-index: 4; }

.counter-section-3__wrapper {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 0;
}
.counter-section-3__item {
  min-width: 0;
  margin-right: 0 !important;
  padding: 0 42px !important;
}
.counter-section-3__item:first-child { padding-left: 0 !important; }
.counter-section-3__item:last-child { padding-right: 0 !important; }
.counter-section-3__item h2 {
  display: flex;
  align-items: flex-start;
  font-size: clamp(74px, 6.3vw, 112px);
  line-height: 1;
}
.aj-counter-suffix {
  margin-top: .08em;
  margin-left: .04em;
  color: var(--aj-orange);
  font-size: .42em;
  line-height: 1;
}
.counter-section-3__item p { line-height: 1.5; }

.service-section-3_2__wrapper {
  isolation: isolate;
  position: relative;
  background-position: center;
  background-size: cover;
}
.service-section-3_2__wrapper::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(8, 20, 25, .96), rgba(8, 20, 25, .74) 52%, rgba(8, 20, 25, .18));
}
.service-section-3_2__content { position: relative; z-index: 2; }
.service-section-3_2__content .section__title,
.service-section-3_2__content .section__subtitle { color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.5); }
.service-section-3_2__thumb { box-shadow: 0 26px 60px rgba(7, 16, 21, .2); }
.service-section-3_2__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 1366 / 616;
  object-fit: cover;
  transform: none !important;
}
.aj-why-wrapper { margin-top: 20px; margin-right: 70px; }
.aj-why-wrapper .why-choose-us-3__wrap {
  height: auto;
  overflow: visible;
}
.aj-why-wrapper .why-choose-us-3__content {
  padding-left: 0;
  border-left: 0;
  transform: none !important;
}
.aj-standard-grid { display: grid; gap: 14px; }
.aj-standard-grid article {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 15px;
  align-items: start;
  padding: 18px 20px;
  border: 1px solid rgba(25, 41, 41, .1);
  background: #fff;
}
.aj-standard-grid article > i {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: #fff;
  background: var(--aj-orange);
}
.aj-standard-grid h3 { margin: 0 0 5px; font-size: 20px; line-height: 1.2; }
.aj-standard-grid p { margin: 0; color: rgba(25, 41, 41, .7); font-size: 15px; line-height: 1.55; }
.why-choose-us-3__thumb img {
  width: 100%;
  aspect-ratio: 813 / 836;
  object-fit: cover;
  transform: none !important;
}

.aj-support-list {
  display: grid;
  gap: 14px;
  margin: 26px 0 0;
  padding: 0;
}
.planning-section-3__list .aj-support-list li {
  display: flex;
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 15px 18px;
  color: var(--rr-heading-primary);
  border: 1px solid rgba(25, 41, 41, .1);
  background: #fff;
}
.planning-section-3__list .aj-support-list i { color: var(--aj-orange); }

.team-section-3__thumb > img {
  display: block;
  width: 100%;
  aspect-ratio: 452 / 589;
  object-fit: cover;
  object-position: center top;
}
.team-section-3__info { background: linear-gradient(180deg, rgba(10,20,25,.02), rgba(10,20,25,.98)); }
.team-section-3__position { color: rgba(255,255,255,.72) !important; letter-spacing: .08em; text-transform: uppercase; }
.team-section-3__name a { color: #fff; }

.testimonial-section-3__card {
  height: 100%;
  color: #fff;
  border-color: rgba(255, 255, 255, .1);
  background: var(--aj-ink);
}
.testimonial-section-3__card .aj-mega-kicker { color: var(--aj-orange); }
.aj-standard-card { padding: 42px 34px; }
.aj-standard-card h2 { margin: 18px 0 12px; color: #fff; font-size: clamp(48px, 3.6vw, 66px); line-height: .94; letter-spacing: -.04em; }
.aj-standard-card p { margin: 0; color: rgba(255,255,255,.72); font-size: 18px; line-height: 1.55; }
.aj-statement-content { padding: 8px 0; }
.testimonial-section-3__active.aj-single-statement .swiper-wrapper {
  display: block;
  height: auto;
  transform: none !important;
}
.testimonial-section-3__active.aj-single-statement .swiper-slide {
  width: 100% !important;
  margin: 0 !important;
}
.testimonial-section-3__active.aj-single-statement .testimonial-section-3__item {
  width: 100%;
}
.testimonial-section-3__bottom .testimonial-section-3__thumb { isolation: isolate; position: relative; }
.testimonial-section-3__bottom::before { display: none !important; }
.testimonial-section-3__bottom .testimonial-section-3__thumb::after {
  display: none;
}
.testimonial-section-3__bottom img {
  display: block;
  width: 100%;
  aspect-ratio: 1733 / 639;
  object-fit: cover;
  filter: brightness(.46) saturate(.88);
  transform: none !important;
}
.testimonial-section-3__bottom .testimonial-section-3__content {
  z-index: 2;
  opacity: 1 !important;
  transform: none !important;
}
.testimonial-section-3__bottom .testimonial-section-3__title { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.5); }

@media (max-width: 1199px) {
  .counter-section-3__item { padding: 0 24px !important; }
  .aj-why-wrapper { margin-right: 0; }
}
@media (max-width: 991px) {
  .counter-section-3__wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
  .counter-section-3__item,
  .counter-section-3__item:first-child,
  .counter-section-3__item:last-child { padding: 0 24px !important; }
  .counter-section-3__item:nth-child(2)::before { display: none; }
}
@media (max-width: 575px) {
  .banner-section-3__area,
  .banner-section-3__active,
  .banner-section-3__active .swiper-wrapper,
  .banner-section-3__active .swiper-slide,
  .aj-hero-panel { min-height: 760px; }
  .aj-hero-panel::before { background: linear-gradient(90deg, rgba(5,13,18,.94), rgba(5,13,18,.7)); }
  .counter-section-3__wrapper { grid-template-columns: 1fr; }
  .counter-section-3__item { padding: 0 !important; text-align: left; }
  .counter-section-3__item::before { display: none; }
  .aj-standard-grid article { grid-template-columns: 40px 1fr; padding: 15px; }
}

/* Homepage refinement: navigation, interaction depth and balanced content */
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu {
  width: min(1240px, calc(100vw - 44px));
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu li.aj-mega-grid {
  grid-template-columns: 1fr 1fr .92fr .86fr;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column {
  min-height: 322px;
  padding: 30px 27px;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column:nth-child(3) {
  background: linear-gradient(145deg, rgba(243, 108, 33, .19), rgba(243, 108, 33, .04));
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column:last-child {
  border-right: 1px solid rgba(255, 255, 255, .08);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu a.aj-mega-visual {
  position: relative;
  display: block;
  min-height: 322px;
  padding: 0 !important;
  overflow: hidden;
  background: #0b151b;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu a.aj-mega-visual::before { display: none; }
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu a.aj-mega-visual:hover { transform: none; }
.aj-mega-visual > img {
  width: 100%;
  height: 322px;
  object-fit: cover;
  transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .4s ease;
}
.aj-mega-visual__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5,13,18,.04) 18%, rgba(5,13,18,.9) 100%);
}
.aj-mega-visual__content {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 14px;
  align-items: end;
  color: #fff;
}
.aj-mega-visual__content small { grid-column: 1 / -1; color: rgba(255,255,255,.7); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.aj-mega-visual__content strong { font-size: 19px; line-height: 1.2; }
.aj-mega-visual__content i { color: var(--aj-orange); font-size: 22px; transition: transform .3s ease; }
.aj-mega-visual:hover > img { transform: scale(1.055); filter: saturate(1.12); }
.aj-mega-visual:hover .aj-mega-visual__content i { transform: translate(3px, -3px); }

.aj-offcanvas-profile {
  margin-top: 18px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.aj-offcanvas-profile > p { margin: 0 0 18px; color: rgba(255,255,255,.67); font-size: 14px; line-height: 1.7; }
.aj-offcanvas-profile ul { display: grid !important; gap: 11px; margin: 0; padding: 0; list-style: none; }
.aj-offcanvas-profile li { display: grid !important; grid-template-columns: 20px minmax(0,1fr); gap: 9px; align-items: start; color: rgba(255,255,255,.76); font-size: 13px; }
.aj-offcanvas-profile li i { margin-top: 3px; color: var(--aj-orange); }
.aj-offcanvas-profile li > a {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  min-width: 0;
  padding: 0 !important;
  color: rgba(255,255,255,.82);
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow-wrap: anywhere;
}
.aj-offcanvas-connect { display: flex; gap: 9px; margin-top: 20px; }
.aj-offcanvas-connect a,
.aj-footer-social a {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  background: rgba(255,255,255,.035);
}
.aj-offcanvas-connect a:hover,
.aj-footer-social a:hover { color: #fff; border-color: var(--aj-orange); background: var(--aj-orange); transform: translateY(-2px); }

.service-section-3_2__content .section__title { margin-bottom: 0; }
.service-section-3_2__content .aj-specialist-copy { max-width: 590px; margin-top: 32px; transform: none; }
.service-section-3__thumb { z-index: 20; will-change: transform, opacity; }
.service-section-3__wrap:hover .service-section-3__thumb {
  opacity: 1 !important;
  visibility: visible !important;
}

.project-section-3__item { isolation: isolate; overflow: hidden; }
.project-section-3__thumb { aspect-ratio: 452 / 589; }
.project-section-3__content {
  max-width: none;
  max-height: none;
  opacity: 0;
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  background: linear-gradient(180deg, rgba(8,18,24,.46), rgba(8,18,24,.9));
  transform: scale(.96);
  transition: opacity .35s ease, transform .45s cubic-bezier(.2,.75,.2,1);
}
.project-section-3__item:hover .project-section-3__content,
.project-section-3__item:focus-within .project-section-3__content { opacity: 1; transform: scale(1); }
.project-section-3__details {
  z-index: 3;
  top: 50%;
  right: auto;
  left: 50%;
  overflow: visible;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.project-section-3__details > span {
  display: grid;
  width: 94px;
  height: 94px;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: var(--aj-orange);
  box-shadow: 0 18px 42px rgba(0,0,0,.28);
  font-size: 31px;
  transform: scale(.75);
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.project-section-3__item:hover .project-section-3__details > span,
.project-section-3__item:focus-within .project-section-3__details > span { transform: scale(1); }
.project-section-3__info { z-index: 3; }
.project-section-3__title { color: #fff; }
.project-section-3__cat { color: rgba(255,255,255,.72); }
.aj-project-card-link { position: absolute; z-index: 5; inset: 0; }
.aj-project-card-link:focus-visible { outline: 4px solid var(--aj-orange); outline-offset: -6px; }
.project-section-3__bottom p { display: flex; flex: 1; gap: 10px; align-items: center; min-width: 0; }
.project-section-3__bottom p::before { flex: 0 0 108px; width: 108px; margin-right: 20px; }
.project-section-3__bottom p img { flex: 0 0 auto; }
.aj-workforce-boundary { display: inline-block; white-space: nowrap; }

/* Project Experience: proof-led routes rather than an unlabelled image gallery */
.aj-experience-intro {
  position: relative;
  overflow: hidden;
  color: var(--aj-ink);
  background: #f2f0eb;
}
.aj-experience-intro::after {
  position: absolute;
  top: -36%;
  right: -8%;
  width: 44vw;
  height: 44vw;
  border: 1px solid rgba(14,31,36,.08);
  border-radius: 50%;
  content: "";
  box-shadow: 0 0 0 72px rgba(14,31,36,.025), 0 0 0 144px rgba(14,31,36,.018);
  pointer-events: none;
}
.aj-experience-intro__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(360px,.75fr);
  gap: clamp(60px,9vw,150px);
  align-items: end;
}
.aj-experience-intro__heading h2,
.aj-experience-routes__heading h2,
.aj-experience-scope__heading h2 {
  margin: 17px 0 0;
  font-size: clamp(42px,5.6vw,78px);
  line-height: .99;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.aj-experience-intro__copy p {
  margin-bottom: 18px;
  color: #5f6c6f;
  font-size: 17px;
  line-height: 1.72;
}
.aj-experience-intro__copy blockquote {
  position: relative;
  margin: 32px 0 0;
  padding: 2px 0 2px 26px;
  color: var(--aj-ink);
  border-left: 3px solid var(--aj-orange);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.48;
}
.aj-experience-proof {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  margin-top: clamp(70px,8vw,120px);
  border-top: 1px solid rgba(14,31,36,.14);
  border-bottom: 1px solid rgba(14,31,36,.14);
}
.aj-experience-proof > div {
  display: flex;
  gap: 22px;
  align-items: center;
  min-height: 128px;
  padding: 24px 38px;
  border-right: 1px solid rgba(14,31,36,.14);
}
.aj-experience-proof > div:first-child { padding-left: 0; }
.aj-experience-proof > div:last-child { border-right: 0; }
.aj-experience-proof strong {
  color: var(--aj-orange);
  font-size: clamp(42px,4vw,62px);
  font-weight: 500;
  line-height: 1;
}
.aj-experience-proof span {
  max-width: 135px;
  color: #536164;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.aj-experience-routes { background: #fff; }
.aj-experience-routes__heading {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(330px,.55fr);
  gap: 70px;
  align-items: end;
  margin-bottom: clamp(55px,7vw,92px);
}
.aj-experience-routes__heading h2 { max-width: 900px; font-size: clamp(40px,5vw,68px); }
.aj-experience-routes__heading > p {
  margin: 0;
  color: #617073;
  font-size: 16px;
  line-height: 1.75;
}
.aj-experience-grid {
  display: grid;
  grid-auto-flow: dense;
  grid-auto-rows: 320px;
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: 18px;
}
.aj-experience-card {
  position: relative;
  grid-column: span 4;
  overflow: hidden;
  background: #0b171d;
  isolation: isolate;
}
.aj-experience-card--feature { grid-column: span 7; grid-row: span 2; }
.aj-experience-card--network,
.aj-experience-card--coss { grid-column: span 5; }
.aj-experience-card--wide { grid-column: span 6; }
.aj-experience-card--banner { grid-column: span 12; }
.aj-experience-card > a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: #fff;
  outline-offset: -7px;
}
.aj-experience-card > a:focus-visible { outline: 4px solid var(--aj-orange); }
.aj-experience-card img {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.72,.2,1), filter .45s ease;
}
.aj-experience-card--feature img { object-position: 57% center; }
.aj-experience-card--network img { object-position: center 64%; }
.aj-experience-card__shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg,rgba(5,13,18,.06) 18%,rgba(5,13,18,.9) 100%);
  transition: background .45s ease;
}
.aj-experience-card__content {
  position: absolute;
  right: 34px;
  bottom: 30px;
  left: 34px;
  padding-right: 56px;
}
.aj-experience-card__content > span {
  display: block;
  margin-bottom: 10px;
  color: #ff7d38;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.aj-experience-card__content h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(25px,2.3vw,38px);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.aj-experience-card__content p {
  max-width: 590px;
  margin: 12px 0 0;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.58;
}
.aj-experience-card__arrow {
  position: absolute;
  z-index: 2;
  top: 26px;
  right: 26px;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  background: rgba(10,22,28,.28);
  backdrop-filter: blur(8px);
  transition: color .35s ease, background .35s ease, border-color .35s ease, transform .35s ease;
}
.aj-experience-card:hover img,
.aj-experience-card:focus-within img { filter: saturate(1.04) contrast(1.03); transform: scale(1.045); }
.aj-experience-card:hover .aj-experience-card__shade,
.aj-experience-card:focus-within .aj-experience-card__shade { background: linear-gradient(180deg,rgba(5,13,18,.13),rgba(5,13,18,.94)); }
.aj-experience-card:hover .aj-experience-card__arrow,
.aj-experience-card:focus-within .aj-experience-card__arrow {
  color: #fff;
  border-color: var(--aj-orange);
  background: var(--aj-orange);
  transform: translate(3px,-3px);
}
.aj-experience-scope {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #0a171d;
}
.aj-experience-scope::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: .14;
  background-image: linear-gradient(115deg,transparent 0 48%,rgba(255,255,255,.12) 48.2% 48.5%,transparent 48.7%), linear-gradient(65deg,transparent 0 54%,rgba(255,255,255,.08) 54.2% 54.5%,transparent 54.7%);
  background-size: 290px 100%;
  pointer-events: none;
}
.aj-experience-scope__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: clamp(65px,9vw,145px);
  align-items: center;
}
.aj-experience-scope__heading h2 { color: #fff; font-size: clamp(40px,4.7vw,66px); }
.aj-experience-scope__heading > p {
  max-width: 540px;
  margin: 26px 0 30px;
  color: rgba(255,255,255,.65);
  font-size: 16px;
  line-height: 1.72;
}
.aj-experience-scope .aj-inline-link { color: #fff; border-color: rgba(255,255,255,.28); }
.aj-experience-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.aj-experience-steps article {
  position: relative;
  min-height: 330px;
  padding: 38px 28px;
  border: 1px solid rgba(255,255,255,.13);
  border-right: 0;
  background: rgba(255,255,255,.035);
  backdrop-filter: blur(5px);
}
.aj-experience-steps article:last-child { border-right: 1px solid rgba(255,255,255,.13); }
.aj-experience-steps article > span {
  position: absolute;
  top: 23px;
  right: 23px;
  color: rgba(255,255,255,.3);
  font-size: 13px;
  letter-spacing: .12em;
}
.aj-experience-steps article > i { color: var(--aj-orange); font-size: 35px; }
.aj-experience-steps h3 { margin: 82px 0 17px; color: #fff; font-size: 22px; }
.aj-experience-steps p { margin: 0; color: rgba(255,255,255,.6); font-size: 14px; line-height: 1.65; }
@media (max-width: 1199px) {
  .aj-experience-grid { grid-auto-rows: 300px; }
  .aj-experience-card { grid-column: span 6; }
  .aj-experience-card--feature { grid-column: span 7; }
  .aj-experience-card--network,
  .aj-experience-card--coss { grid-column: span 5; }
  .aj-experience-card--wide { grid-column: span 6; }
  .aj-experience-card--banner { grid-column: span 12; }
  .aj-experience-scope__grid { grid-template-columns: 1fr; }
}
@media (max-width: 991px) {
  .aj-experience-intro__grid,
  .aj-experience-routes__heading { grid-template-columns: 1fr; gap: 38px; }
  .aj-experience-proof > div { min-height: 110px; padding: 22px; }
  .aj-experience-proof > div:first-child { padding-left: 0; }
  .aj-experience-grid { grid-auto-rows: 330px; }
  .aj-experience-card,
  .aj-experience-card--feature,
  .aj-experience-card--network,
  .aj-experience-card--coss,
  .aj-experience-card--wide { grid-column: span 6; grid-row: auto; }
  .aj-experience-card--feature { grid-column: span 12; min-height: 520px; }
  .aj-experience-card--banner { grid-column: span 12; grid-row: auto; }
  .aj-experience-steps article { min-height: 300px; }
}
@media (max-width: 767px) {
  .aj-experience-intro::after { top: -4%; right: -42%; width: 92vw; height: 92vw; }
  .aj-experience-intro__grid { gap: 28px; }
  .aj-experience-intro__heading h2,
  .aj-experience-routes__heading h2,
  .aj-experience-scope__heading h2 { font-size: clamp(37px,11vw,52px); }
  .aj-experience-intro__copy p { font-size: 15px; }
  .aj-experience-intro__copy blockquote { font-size: 17px; }
  .aj-experience-proof { grid-template-columns: 1fr; margin-top: 55px; }
  .aj-experience-proof > div,
  .aj-experience-proof > div:first-child {
    min-height: 88px;
    padding: 18px 0;
    border-right: 0;
    border-bottom: 1px solid rgba(14,31,36,.12);
  }
  .aj-experience-proof > div:last-child { border-bottom: 0; }
  .aj-experience-proof strong { min-width: 68px; font-size: 40px; }
  .aj-experience-proof span { max-width: none; }
  .aj-experience-grid { display: block; }
  .aj-experience-card,
  .aj-experience-card--feature { min-height: 440px; margin-bottom: 12px; }
  .aj-experience-card--network,
  .aj-experience-card--coss,
  .aj-experience-card--wide,
  .aj-experience-card--banner { min-height: 390px; }
  .aj-experience-card > a { min-height: inherit; }
  .aj-experience-card__content { right: 22px; bottom: 24px; left: 22px; padding-right: 15px; }
  .aj-experience-card__content h3 { font-size: 29px; }
  .aj-experience-card__arrow { top: 18px; right: 18px; width: 46px; height: 46px; }
  .aj-experience-steps { grid-template-columns: 1fr; }
  .aj-experience-steps article,
  .aj-experience-steps article:last-child { min-height: 0; padding: 28px; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 0; }
  .aj-experience-steps article:last-child { border-bottom: 1px solid rgba(255,255,255,.13); }
  .aj-experience-steps h3 { margin: 48px 0 12px; }
}

.works-section-3__area .row > [class*="col-"] { display: flex; }
.works-section-3__item {
  display: flex;
  width: 100%;
  min-height: 390px;
  flex-direction: column;
  padding: 48px 42px 0;
}
.works-section-3__title { margin-top: 42px; }
.works-section-3__dec { min-height: 78px; margin-bottom: 22px; }
.works-section-3__icon { flex: 0 0 106px; margin-top: auto; }
.works-section-3__icon i { color: var(--aj-orange); font-size: 38px; transition: color .3s ease, transform .3s ease; }
.works-section-3__item:hover .works-section-3__icon i { color: #fff; transform: scale(1.08); }

.planning-section-3__area .row { align-items: stretch; }
.planning-section-3__content { display: flex; height: 100%; flex-direction: column; }
.aj-worker-pathway-card {
  display: grid;
  grid-template-columns: 56px minmax(0,1fr) 52px;
  gap: 18px;
  align-items: center;
  margin-top: 30px;
  padding: 22px;
  color: #fff;
  background: linear-gradient(135deg, var(--aj-ink), #1c303a);
  box-shadow: 0 22px 50px rgba(16,26,32,.14);
}
.aj-worker-pathway-card__icon { display: grid; width: 56px; height: 56px; place-items: center; color: #fff; background: var(--aj-orange); font-size: 23px; }
.aj-worker-pathway-card span { color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.aj-worker-pathway-card h3 { margin: 4px 0 5px; color: #fff; font-size: 20px; }
.aj-worker-pathway-card p { margin: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.55; }
.aj-worker-pathway-card > a { display: grid; width: 52px; height: 52px; place-items: center; color: #fff; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.aj-worker-pathway-card > a:hover { color: #fff; border-color: var(--aj-orange); background: var(--aj-orange); transform: translate(2px,-2px); }

.testimonial-section-3__wrapper .row { align-items: stretch !important; }
.testimonial-section-3__wrapper .row > [class*="col-"] { display: flex; }
.testimonial-section-3__card { max-width: none; min-height: 390px; padding: 0; }
.aj-standard-card {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 390px;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: 42px 34px;
}
.aj-standard-card::before {
  content: "";
  position: absolute;
  top: -30px;
  right: -85px;
  width: 210px;
  height: 420px;
  opacity: .1;
  border: 18px solid var(--aj-orange);
  transform: rotate(34deg);
}
.aj-standard-card > * { position: relative; z-index: 1; }
.aj-standard-proof { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: end; margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); text-align: left; }
.aj-standard-proof strong { color: var(--aj-orange); font-family: var(--rr-ff-heading2); font-size: 44px; font-weight: 400; line-height: .8; }
.aj-standard-proof span { color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.35; text-decoration: none; }
.aj-standard-card .testimonial-section-3__button { justify-content: flex-start; margin-top: 25px; }
.aj-standard-card .testimonial-section-3__arrow { color: #fff; border-color: rgba(255,255,255,.17); background: transparent; }
.testimonial-section-3__slider { display: flex; width: 100%; min-height: 390px; align-items: center; }
.testimonial-section-3__active { width: 100%; }
.testimonial-section-3__item { max-width: none; }
.aj-statement-content { min-height: 230px; padding: 18px 0; }
.aj-statement-label { display: inline-block; margin-top: 3px; color: var(--aj-orange); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }

.blog-section-3__area .row > [class*="col-"] { display: flex; }
.blog-section-3__item { display: flex; width: 100%; height: calc(100% - 40px); flex-direction: column; }
.blog-section-3__thumb { aspect-ratio: 16 / 10; }
.blog-section-3__thumb a,
.blog-section-3__thumb img { display: block; width: 100%; height: 100%; }
.blog-section-3__content { display: flex; flex: 1; flex-direction: column; }
.aj-insight-dec { margin: 0 0 24px; color: rgba(25,41,41,.68); font-size: 15px; line-height: 1.6; }
.blog-section-3__btn { margin-top: auto; }

.cta-3__text { display: grid; grid-template-columns: minmax(0, 1.24fr) minmax(390px, .76fr); align-items: stretch; }
.cta-3__left,
.cta-3__right { display: flex; width: 100%; max-width: none; min-height: 84px; align-items: center; padding: 0; }
.cta-3__left::before { display: none; }
.cta-3__left p { width: min(620px, calc(100% - 70px)); margin-left: auto; padding-right: 70px; color: #fff; line-height: 1.2; }
.cta-3__right { background: #2c3c3e; transition: background .3s ease; }
.cta-3__right a { width: 100%; max-width: 500px; justify-content: space-between; gap: 20px; padding: 0 70px; }
.cta-3__right a i { transition: transform .3s ease; }
.cta-3__right:hover { background: #fff; }
.cta-3__right:hover a { color: var(--aj-ink); }
.cta-3__right:hover a i { color: var(--aj-orange); transform: translateX(5px); }

.footer-section-3__area { background: radial-gradient(circle at 14% 0%, rgba(44,70,81,.34), transparent 38%), #071117; }
.footer-section-3__wrapper { border-bottom: 1px solid rgba(255,255,255,.07); }
.footer-section-3__widget { height: 100%; }
.footer-section-3__logo { margin-bottom: 26px; }
.footer-section-3__title { margin-bottom: 25px; font-size: 22px; }
.aj-footer-social { display: flex; gap: 9px; margin-top: 23px; }
.copyright-3__area { padding-bottom: 24px; }
.copyright-3__wrap { border: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.055); }
.aj-site-credits {
  display: flex;
  justify-content: flex-end;
  gap: 12px 30px;
  padding: 17px 24px 0;
  color: rgba(255,255,255,.52);
  font-size: 12px;
}
.aj-site-credits a { display: flex; gap: 9px; align-items: center; color: rgba(255,255,255,.58); }
.aj-site-credits a:hover { color: #fff; }
.aj-site-credits img { width: 22px; height: 22px; object-fit: contain; border-radius: 4px; }
.aj-site-credits strong { color: rgba(255,255,255,.85); font-weight: 600; }

@media (max-width: 1399px) {
  .rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu { width: min(1120px, calc(100vw - 28px)); }
  .rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu .aj-mega-column { padding: 25px 21px; }
  .aj-mega-visual__content { right: 18px; bottom: 20px; left: 18px; }
}
@media (max-width: 1199px) {
  .project-section-3__bottom p { font-size: 16px; }
  .project-section-3__bottom p::before { display: none; }
  .works-section-3__item { padding-right: 26px; padding-left: 26px; }
}
@media (max-width: 991px) {
  .aj-workforce-boundary { white-space: normal; }
  .project-section-3__bottom p { align-items: flex-start; flex-wrap: wrap; }
  .works-section-3__item { min-height: 360px; }
  .planning-section-3__content { height: auto; }
  .cta-3__text { grid-template-columns: 1fr 1fr; }
  .cta-3__left p { width: auto; margin: 0; padding: 0 30px; }
  .cta-3__right a { padding: 0 30px; }
  .aj-site-credits { justify-content: flex-start; }
}
@media (max-width: 767px) {
  .service-section-3_2__content .aj-specialist-copy { margin-top: 22px; }
  .project-section-3__details > span { width: 74px; height: 74px; font-size: 25px; }
  .works-section-3__item { min-height: 330px; }
  .aj-worker-pathway-card { grid-template-columns: 48px minmax(0,1fr); }
  .aj-worker-pathway-card__icon { width: 48px; height: 48px; }
  .aj-worker-pathway-card > a { grid-column: 1 / -1; width: 100%; height: 46px; border-radius: 0; }
  .testimonial-section-3__wrapper .row > [class*="col-"] { display: block; }
  .testimonial-section-3__card,
  .aj-standard-card,
  .testimonial-section-3__slider { min-height: 0; }
  .aj-standard-card { padding: 38px 28px; }
  .testimonial-section-3__slider { padding-top: 20px; }
  .cta-3__text { grid-template-columns: 1fr; }
  .cta-3__left,
  .cta-3__right { min-height: 72px; }
  .cta-3__left p { width: 100%; padding: 0 22px; text-align: center; }
  .cta-3__right a { padding: 0 24px; }
  .aj-site-credits { align-items: flex-start; flex-direction: column; padding-right: 0; padding-left: 0; }
}

/* Refinement pass: sticky navigation, environment menu, service reveal and footer depth */
/*
 * Keep the complete header stacking context above ScrollSmoother. The template
 * gives the outer <header> z-index: 2, so raising only #rr-header-sticky cannot
 * stop transformed image sections in #smooth-wrapper stealing pointer events
 * from an open desktop mega menu.
 */
body > header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 10000 !important;
  pointer-events: none;
}
#rr-header-sticky {
  position: relative;
  z-index: 9998;
  width: 100%;
  pointer-events: auto;
}
body > header.aj-menu-active #rr-header-sticky {
  height: min(560px, 100vh);
}
.offcanvas__area { z-index: 10002 !important; }
.offcanvas__overlay,
.offcanvas__overlay-white { z-index: 10001 !important; }
#rr-header-sticky.rr-sticky {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  animation: aj-sticky-enter .34s cubic-bezier(.2,.7,.2,1) both;
}
#rr-header-sticky.rr-sticky .rr-header__top { display: none !important; }
#rr-header-sticky.rr-sticky .rr-header__main {
  background: #071117;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 15px 42px rgba(0,0,0,.28);
}
@keyframes aj-sticky-enter {
  from { opacity: 0; transform: translateY(-18px); }
  to { opacity: 1; transform: translateY(0); }
}

.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-mega-parent > a::after { top: 54%; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-environment-parent { position: static; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-environment-parent::after { display: none; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-environment-parent > a { padding-right: 17px; }
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-environment-parent > a::after {
  content: "\f107";
  position: absolute;
  top: 54%;
  right: 0;
  color: currentColor;
  font-family: var(--rr-ff-fontawesome);
  font-size: 14px;
  transform: translateY(-50%);
  transition: transform .25s ease;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-environment-parent:hover > a::after,
.rr-header-2 .rr-header__menu__wrapper .main-menu > nav > ul > li.aj-environment-parent:focus-within > a::after {
  transform: translateY(-50%) rotate(180deg);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-environment-menu {
  z-index: 50;
  left: 50%;
  width: min(1260px, calc(100vw - 44px));
  padding: 0;
  overflow: hidden;
  white-space: normal;
  transform: translateX(-50%) translateY(12px);
  border: 1px solid rgba(255,255,255,.09);
  border-top: 3px solid var(--aj-orange);
  background: rgba(12,22,28,.985);
  box-shadow: 0 32px 70px rgba(0,0,0,.34);
  backdrop-filter: blur(18px);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-mega-menu {
  z-index: 50;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li:hover .sub-menu.aj-environment-menu,
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li:focus-within .sub-menu.aj-environment-menu {
  top: 100%;
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu li.aj-environment-grid {
  display: grid;
  width: 100%;
  padding: 12px;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 12px;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu li.aj-environment-grid:hover { margin-left: 0; }
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu a.aj-environment-card {
  position: relative;
  display: block;
  min-height: 272px;
  padding: 0;
  overflow: hidden;
  color: #fff;
  background: #0b151b;
}
.rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu a.aj-environment-card::before { display: none; }
.aj-environment-card > img {
  display: block;
  width: 100%;
  height: 272px;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}
.aj-environment-card__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,14,19,.03) 20%, rgba(6,14,19,.94) 100%); }
.aj-environment-card__content {
  position: absolute;
  right: 22px;
  bottom: 21px;
  left: 22px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 5px 12px;
  align-items: end;
}
.aj-environment-card__content small { grid-column: 1 / -1; color: rgba(255,255,255,.68); font-size: 11px; letter-spacing: .09em; text-transform: uppercase; }
.aj-environment-card__content strong { color: #fff; font-size: 20px; line-height: 1.18; }
.aj-environment-card__content i { color: var(--aj-orange); font-size: 22px; transition: transform .3s ease; }
.aj-environment-card:hover > img { filter: saturate(1.08); transform: scale(1.055); }
.aj-environment-card:hover .aj-environment-card__content i { transform: translate(3px,-3px); }

.service-section-3__thumb {
  z-index: 999;
  overflow: hidden;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  border: 1px solid rgba(243,108,33,.34);
  border-radius: 6px 72px 6px 72px;
  background-color: rgba(7,17,23,.2);
  background-blend-mode: multiply;
  box-shadow: 0 22px 45px rgba(8,18,24,.25);
  filter: saturate(1.18) contrast(1.12);
}
.service-section-3__thumb::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(145deg, rgba(243,108,33,.1), transparent 42%, rgba(7,17,23,.1));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}
.service-section-3__wrap:hover .service-section-3__thumb {
  opacity: 1 !important;
  visibility: visible !important;
}

.works-section-3__item:hover .works-section-3__title,
.works-section-3__item:hover .works-section-3__dec,
.works-section-3__item:hover .opacity_7 { color: #fff !important; opacity: 1 !important; }
.works-section-3__item:hover .works-section-3__dot span { background: rgba(255,255,255,.82) !important; }

@media (min-width: 992px) {
  .planning-section-3__area .row > [class*="col-"] { display: flex; }
  .planning-section-3__thumb { width: 100%; height: 100%; }
  .planning-section-3__thumb img {
    width: 100%;
    height: 100% !important;
    min-height: 100%;
    margin-bottom: 0 !important;
    object-fit: cover;
    transform: none !important;
  }
  .planning-section-3__content { width: 100%; }
  .aj-worker-pathway-card { margin-top: auto; }
}

.cta-3__right:hover {
  background: linear-gradient(115deg, #ce4d09, #ff7a31);
  box-shadow: inset 5px 0 0 rgba(255,255,255,.22);
}
.cta-3__right:hover a,
.cta-3__right:hover a i { color: #fff; }

.footer-section-3__area {
  position: relative;
  background-color: #071117;
  background-image:
    radial-gradient(circle at 14% 0%, rgba(44,70,81,.33), transparent 38%),
    linear-gradient(rgba(7,17,23,.88), rgba(7,17,23,.95)),
    url(../img/aj/footer/footer-rail-pattern.jpg);
  background-position: center, center, center;
  background-size: auto, cover, cover;
  background-repeat: no-repeat;
}
.copyright-3__area { padding-top: 28px; padding-bottom: 15px; }
.copyright-3__wrap { margin-bottom: 0; }
.aj-site-credits { padding-top: 12px; }

@media (max-width: 1399px) {
  .rr-header-2 .rr-header__menu__wrapper .main-menu ul li .sub-menu.aj-environment-menu { width: min(1160px, calc(100vw - 28px)); }
  .aj-environment-card__content { right: 17px; bottom: 18px; left: 17px; }
  .aj-environment-card__content strong { font-size: 18px; }
}
@media (max-width: 991px) {
  .offcanvas__area .mean-nav ul li > ul.aj-mobile-open { display: block !important; }
  .offcanvas__area .mean-nav li.aj-mobile-submenu-open > .mean-expand i { transform: rotate(90deg); }
  #rr-header-sticky.rr-sticky .rr-header__main { padding-top: 16px; padding-bottom: 16px; }
  .offcanvas__area .aj-environment-grid { display: block !important; padding: 0 !important; }
  .offcanvas__area .aj-environment-card { min-height: 0 !important; padding: 12px 0 !important; }
  .offcanvas__area .aj-environment-card > img,
  .offcanvas__area .aj-environment-card__shade,
  .offcanvas__area .aj-environment-card__content small { display: none !important; }
  .offcanvas__area .aj-environment-card__content { position: static; display: flex; justify-content: space-between; }
  .offcanvas__area .aj-environment-card__content strong { color: inherit; font-size: inherit; }
  .planning-section-3__thumb { margin-bottom: 30px; }
  .copyright-3__area { padding-top: 22px; }
}
@media (max-width: 575px) {
  .copyright-3__wrap { padding: 18px 16px; border-radius: 22px; }
  .copyright-3__menu ul { justify-content: center; }
  .aj-site-credits { gap: 10px; padding-top: 13px; }
}

/* Inner-page service media: retain the template transitions at its intended ratios */
.service-section__area .service-section__title {
  max-width: 100%;
  font-size: clamp(30px, 3.1vw, 46px);
  line-height: 1.12;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.service-section__area .service-section__thumb {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 553 / 560;
  overflow: hidden;
}
.service-section__area .service-section__thumb .service-image,
.service-section__area .service-section__thumb .service-image.active {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.service-section__area .service-section__thumb .service-image > a {
  display: block;
  width: 100%;
  height: 100%;
}
.service-section__area .service-section__thumb .service-image > a > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service-details__video-bg {
  width: 100%;
  aspect-ratio: 1760 / 740;
}
.service-details__gallery .service-details__thumb {
  aspect-ratio: 865 / 740;
  overflow: hidden;
}
.service-details__gallery .service-details__thumb:nth-child(3) {
  aspect-ratio: 1760 / 740;
}
.service-details__video-bg > img,
.service-details__gallery .service-details__thumb > img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

@media (max-width: 767px) {
  .service-section__area .service-section__title {
    font-size: clamp(27px, 8vw, 36px);
    line-height: 1.16;
  }
  .service-details__video-bg,
  .service-details__gallery .service-details__thumb,
  .service-details__gallery .service-details__thumb:nth-child(3) {
    aspect-ratio: 4 / 3;
  }
}

/* Final client review pass: static service media, readable process steps and aligned role cards */
.aj-service-list--static .service-section-3__wrap::before { display: none; }
.aj-service-list--static .service-section-3__item {
  display: grid;
  grid-template-columns: minmax(190px, 230px) minmax(0, 1fr) 132px;
  gap: clamp(24px, 3vw, 48px);
  align-items: center;
  padding: 28px 0;
}
.aj-service-static-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 4px 38px 4px 38px;
  background: #0b171d;
}
.aj-service-static-media::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(145deg, rgba(243,108,33,.10), transparent 48%, rgba(7,17,23,.18));
  box-shadow: inset 0 0 0 1px rgba(243,108,33,.28);
}
.aj-service-static-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.96) contrast(1.05);
  transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}
.aj-service-static-media:hover img,
.aj-service-static-media:focus-visible img { filter: saturate(1.08) contrast(1.08); transform: scale(1.045); }
.aj-service-list--static .service-section-3__text {
  display: grid;
  grid-template-columns: minmax(210px, .82fr) minmax(260px, 1fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: center;
}
.aj-service-list--static .service-section-3__title,
.aj-service-list--static .service-section-3__dec { width: auto; max-width: none; margin: 0; }
.aj-service-list--static .aj-service-role-links { grid-column: 2 / -1; margin-top: -24px; }

.aj-final-process .work-process__wrapper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  align-items: stretch;
}
.aj-final-process .work-process__item,
.aj-final-process .work-process__item:first-of-type {
  display: flex;
  width: 100%;
  height: auto;
  min-width: 0;
  aspect-ratio: 1;
  margin: 0 !important;
  padding: clamp(46px, 4vw, 78px);
  flex-direction: column;
  justify-content: center;
}
.aj-final-process .work-process__bg__thumb,
.aj-final-process .work-process__bg__shape { top: 0; left: 0; width: 100%; height: 100%; }
.aj-final-process .work-process__title { margin-top: 24px; }

.aj-service-card--06 .aj-service-card__content { padding-right: 38px; padding-left: 38px; }
.aj-service-card--06 .aj-service-card__content strong { max-width: 255px; }

.aj-role-interface { align-items: stretch; }
.aj-role-interface article { display: flex; height: 100%; flex-direction: column; align-items: flex-start; }
.aj-role-interface h4 { min-height: 36px; }
.aj-role-interface p { margin: 0; }

.aj-terrain-grid article { position: relative; display: flex; height: 100%; flex-direction: column; align-items: flex-start; }
.aj-terrain-grid article > i { display: block; margin-bottom: 58px; color: var(--aj-orange); font-size: 37px; }
.aj-terrain-grid article > span { position: absolute; top: 40px; right: 40px; margin: 0; }
.aj-terrain-grid p { margin: 0; }

.aj-project-experience-grid .row { --bs-gutter-x: 18px; }
.aj-project-experience-grid .project-section-3__thumb { aspect-ratio: 4 / 5; }
.aj-project-experience-grid .project-section-3__title { font-size: clamp(20px, 1.55vw, 28px); line-height: 1.15; }
.aj-project-experience-grid .project-section-3__wrap { right: 14px; bottom: 14px; left: 14px; }

@media (max-width: 1199px) {
  .aj-service-list--static .service-section-3__item { grid-template-columns: 180px minmax(0, 1fr) 112px; gap: 24px; }
  .aj-service-list--static .service-section-3__text { grid-template-columns: 1fr; gap: 7px; }
  .aj-service-list--static .service-section-3__btn .rr-btn_2 { width: 108px; height: 108px; }
  .aj-final-process .work-process__item,
  .aj-final-process .work-process__item:first-of-type { padding: 48px; }
}

@media (max-width: 991px) {
  .aj-service-list--static .service-section-3__item { grid-template-columns: 180px minmax(0, 1fr); }
  .aj-service-list--static .service-section-3__btn { grid-column: 2; }
  .aj-service-list--static .aj-service-role-links { grid-column: 2; margin-top: 0; }
  .aj-final-process .work-process__wrapper { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
  .aj-final-process .work-process__item,
  .aj-final-process .work-process__item:first-of-type { aspect-ratio: auto; min-height: 360px; }
}

@media (max-width: 575px) {
  .aj-service-list--static .service-section-3__item { grid-template-columns: 1fr; gap: 22px; padding: 30px 0; }
  .aj-service-static-media { aspect-ratio: 16 / 9; }
  .aj-service-list--static .service-section-3__btn,
  .aj-service-list--static .aj-service-role-links { grid-column: 1; }
  .aj-service-list--static .service-section-3__btn .rr-btn_2 { width: 102px; height: 102px; }
  .aj-final-process .work-process__item,
  .aj-final-process .work-process__item:first-of-type { min-height: 0; padding: 34px 26px; border-radius: 24px; }
  .aj-service-card--06 .aj-service-card__content { padding-right: 26px; padding-left: 26px; }
  .aj-terrain-grid article > i { margin-bottom: 38px; }
  .aj-terrain-grid article > span { top: 30px; right: 25px; }
}

/* Diana client photography integration: preserve documentary detail and natural framing. */
.aj-client-photo,
.aj-service-card__media img[src*="/aj/client/"],
.aj-environment-panel > img[src*="/aj/client/"],
.aj-project-experience-grid img[src*="/aj/client/"] {
  object-position: center;
  filter: saturate(.96) contrast(1.025);
}
.aj-hero-slide--documentary-2 .aj-hero-panel { background-position: 50% center; }
.aj-hero-slide--documentary-3 .aj-hero-panel { background-position: 54% center; }

.aj-detail--crane-controller-supply .aj-detail__gallery { min-height: 790px; }
.aj-detail--machine-controller-supply .aj-detail__gallery { min-height: 540px; }
.aj-detail--coss-supply .aj-detail__gallery {
  min-height: 620px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 1fr;
}
.aj-detail--coss-supply .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--plant-machine-operator-supply .aj-detail__gallery {
  min-height: 720px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 1fr;
}
.aj-detail--underground .aj-detail__gallery {
  min-height: 640px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 1fr;
}
.aj-detail--underground .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-detail--trust .aj-detail__gallery {
  min-height: 650px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 1fr;
}
.aj-detail--trust .aj-detail__gallery-item--1 { grid-row: auto; }
.aj-project-experience-grid .project-section-3__thumb img[src*="/aj/client/"] { object-position: center 44%; }

@media (max-width: 767px) {
  .aj-hero-slide--documentary-2 .aj-hero-panel { background-position: 58% center; }
  .aj-hero-slide--documentary-3 .aj-hero-panel { background-position: 62% center; }
  .aj-detail--crane-controller-supply .aj-detail__gallery,
  .aj-detail--machine-controller-supply .aj-detail__gallery,
  .aj-detail--coss-supply .aj-detail__gallery,
  .aj-detail--plant-machine-operator-supply .aj-detail__gallery,
  .aj-detail--underground .aj-detail__gallery,
  .aj-detail--trust .aj-detail__gallery {
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, 360px);
  }
  .aj-detail--plant-machine-operator-supply .aj-detail__gallery,
  .aj-detail--trust .aj-detail__gallery { grid-template-rows: repeat(2, 390px); }
  .aj-detail--coss-supply .aj-detail__gallery-item,
  .aj-detail--underground .aj-detail__gallery-item { grid-column: auto; grid-row: auto; }
}

/* Keep the named subject in the existing narrow hero boxes; no size changes. */
.aj-detail--machine-controller-supply .aj-detail__gallery-item--1 img[src*="/aug27/"] { object-position: 20% center; }
@media (max-width: 991px) {
  .aj-detail--machine-controller-supply .aj-detail__hero > img[src*="/aug27/"] { object-position: 14% center; }
  .aj-detail--plant-machine-operator-supply .aj-detail__hero > img[src*="/aug27/"] { object-position: 21% center; }
  .aj-detail--slingers-banksmen-supply .aj-detail__hero > img[src*="/aug27/"] { object-position: 32% center; }
  .aj-hero-slide--video .aj-hero-video { object-position: 38% center; }
  .aj-hero-slide--video .aj-hero-panel { background-position: 38% center; }
}

/* September client photography: retain the portrait RFLI compositions instead of
   forcing the supplied documentary images into the old wide/stacked AI layout. */
.aj-detail--crossrail .aj-detail__gallery {
  min-height: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 600px;
  gap: 18px;
}
.aj-detail--crossrail .aj-detail__gallery-item,
.aj-detail--crossrail .aj-detail__gallery-item--1 {
  grid-column: auto;
  grid-row: auto;
}
.aj-detail--crossrail .aj-detail__gallery-item img[src*="/client/sep01/"] {
  object-position: center;
  filter: saturate(.98) contrast(1.015);
}

@media (max-width: 991px) {
  .aj-detail--crossrail .aj-detail__gallery {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, 390px);
    gap: 12px;
  }
}

@media (max-width: 575px) {
  .aj-detail--crossrail .aj-detail__gallery {
    grid-template-rows: repeat(3, 340px);
  }
}

/* Shared credentials carousel: preserve each supplied mark's natural proportions. */
.aj-credentials {
  position: relative;
  z-index: 2;
  overflow: hidden;
  padding: clamp(58px, 6vw, 88px) 0;
  background:
    linear-gradient(115deg, rgba(243,108,33,.07), transparent 33%),
    #f4f2ed;
}
.aj-credentials__header {
  display: flex;
  gap: 32px;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 34px;
}
.aj-credentials__intro { max-width: 720px; }
.aj-credentials__eyebrow {
  display: block;
  margin-bottom: 11px;
  color: var(--aj-orange);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.2;
  text-transform: uppercase;
}
.aj-credentials__intro h2 {
  margin: 0 0 10px;
  color: #102128;
  font-size: clamp(30px, 3.25vw, 48px);
  line-height: 1.08;
  letter-spacing: -.035em;
}
.aj-credentials__intro p {
  max-width: 630px;
  margin: 0;
  color: #637076;
  font-size: 16px;
  line-height: 1.65;
}
.aj-credentials__controls { display: flex; gap: 10px; flex: 0 0 auto; }
.aj-credentials__controls button {
  display: inline-flex;
  width: 48px;
  height: 48px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(16,33,40,.18);
  border-radius: 50%;
  color: #102128;
  background: transparent;
  transition: color .25s ease, border-color .25s ease, background .25s ease, transform .25s ease;
}
.aj-credentials__controls button:hover,
.aj-credentials__controls button:focus-visible {
  border-color: var(--aj-orange);
  color: #fff;
  background: var(--aj-orange);
  transform: translateY(-2px);
}
.aj-credentials__slider {
  --aj-credentials-inset: clamp(10px, 1.5vw, 22px);
  width: calc(100% - (var(--aj-credentials-inset) * 2));
  margin-inline: var(--aj-credentials-inset);
  overflow: hidden;
}
.aj-credentials__slider .swiper-wrapper {
  transition: none !important;
  will-change: transform;
}
.aj-credentials__slider .swiper-slide { height: auto; }
.aj-credential-card {
  display: flex;
  height: 150px;
  padding: 22px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(16,33,40,.09);
  border-radius: 5px 24px 5px 24px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(12,31,39,.06);
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.aj-credential-card:hover {
  border-color: rgba(243,108,33,.34);
  box-shadow: 0 18px 42px rgba(12,31,39,.11);
  transform: translateY(-4px);
}
.aj-credential-card img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 94px;
  object-fit: contain;
}
.aj-credential-card img[src*="constructionline-gold"],
.aj-credential-card img[src*="london-underground"],
.aj-credential-card img[src*="risqs-audited"] { max-height: 108px; }

@media (max-width: 767px) {
  .aj-credentials { padding: 50px 0; }
  .aj-credentials__header { align-items: center; margin-bottom: 27px; }
  .aj-credentials__intro p { font-size: 15px; }
  .aj-credential-card { height: 138px; padding: 19px; }
}

@media (max-width: 575px) {
  .aj-credentials__header { display: block; }
  .aj-credentials__controls { margin-top: 21px; }
  .aj-credentials__controls button { width: 44px; height: 44px; }
  .aj-credential-card { height: 132px; }
  .aj-credential-card img { max-height: 86px; }
  .aj-credential-card img[src*="constructionline-gold"],
  .aj-credential-card img[src*="london-underground"],
  .aj-credential-card img[src*="risqs-audited"] { max-height: 96px; }
}

@media (prefers-reduced-motion: reduce) {
  .aj-credential-card,
  .aj-credentials__controls button { transition: none; }
}

/* Phone/tablet links are independent of the desktop's positioned image overlays. */
html.aj-menu-open,
body.aj-menu-open { overflow: hidden !important; overscroll-behavior: none; }
#aj-offcanvas-menu {
  max-width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  visibility: hidden;
  background: #101f25;
}
#aj-offcanvas-menu.info-open { visibility: visible; }
#aj-offcanvas-menu .offcanvas__wrapper { height: auto; min-height: 100%; }
#aj-offcanvas-menu .offcanvas__top {
  position: sticky;
  z-index: 3;
  top: 0;
  background: #101f25;
  padding-block: 12px 18px;
  margin-bottom: 18px;
  gap: 18px;
}
#aj-offcanvas-menu .offcanvas-close-icon { width: 44px; height: 44px; display: grid; place-items: center; }
#aj-offcanvas-menu .offcanvas__logo { min-width: 0; }
#aj-offcanvas-menu .offcanvas__logo img { width: min(225px, 100%); height: auto; }
.aj-mobile-nav { margin-bottom: 28px; }
.aj-mobile-nav ul { list-style: none; padding: 0; margin: 0; }
.aj-mobile-nav li { margin: 0; padding: 0; }
.aj-mobile-nav__row { display: flex; align-items: stretch; border-bottom: 1px solid rgba(255,255,255,.12); }
.aj-mobile-nav a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 12px 10px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-decoration: none;
  touch-action: manipulation;
}
.aj-mobile-nav__row > a { flex: 1; min-width: 0; }
.aj-mobile-nav__expand {
  flex: 0 0 48px;
  width: 48px;
  min-height: 48px;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.12);
  color: #fff;
  background: transparent;
  touch-action: manipulation;
}
.aj-mobile-nav__expand i { transition: transform .2s ease; pointer-events: none; }
.aj-mobile-nav__expand[aria-expanded="true"] i { transform: rotate(180deg); }
.aj-mobile-nav a:hover,
.aj-mobile-nav a[aria-current="page"],
.aj-mobile-nav__expand:hover,
.aj-mobile-nav__expand[aria-expanded="true"] { color: #ff914c; background: rgba(255,255,255,.035); }
.aj-mobile-nav__submenu { padding: 8px 0 8px 12px !important; border-left: 2px solid var(--aj-orange); background: rgba(0,0,0,.12); }
.aj-mobile-nav__submenu[hidden] { display: none !important; }
.aj-mobile-nav__submenu a { font-size: 14px; padding-inline: 12px; }
.aj-mobile-nav a:focus-visible,
.aj-mobile-nav button:focus-visible,
#aj-offcanvas-menu a:focus-visible,
#aj-offcanvas-menu button:focus-visible { outline: 2px solid #ff914c; outline-offset: -2px; }
@media (min-width: 1200px) { .aj-mobile-nav { display: none; } }
@media (max-width: 575px) {
  #aj-offcanvas-menu .offcanvas__wrapper { padding: 18px 20px; }
  .contact-page__form.aj-jotform-shell { padding: 0; }
}

/* Keep long contact details and the template's image bleed within their columns. */
.contact-page__address-icon { flex: 0 0 44px; }
.contact-page__address-text { flex: 1; min-width: 0; }
.contact-page__address-text a { overflow-wrap: anywhere; }
.about-section-6__thumb.aj-media-box {
  margin-left: clamp(-277px, calc((1366px - 100vw) / 2 + 30px), 0px);
}
@media (max-width: 1699px) {
  .why-choose-us-3__thumb { margin-right: 0; }
}
@media (max-width: 1199px), (hover: none) {
  /* The same heading and copy sit beside/below this photo; don't obscure it on touch layouts. */
  .about-section-6__thumb .about-section-6__video-wrap { display: none; }
  .project-section-3__content {
    opacity: 1;
    transform: none;
    backdrop-filter: none;
    background: linear-gradient(180deg, rgba(8,18,24,.04) 25%, rgba(8,18,24,.92));
  }
  .project-section-3__details { top: 20px; right: 20px; left: auto; transform: none; }
  .project-section-3__details > span { width: 48px; height: 48px; font-size: 22px; transform: none; }
  .project-section-3__info { left: 20px; right: 20px; bottom: 20px; }
  .project-section-3__title { font-size: clamp(20px, 4vw, 26px); }
}
