/* Globalco visual experience: film, editorial photography, and scroll scenes. */
@media (min-width: 601px) {
  .table-row--unnumbered { grid-template-columns: 1fr 1.5fr auto; }
  .table-row--unnumbered > h3 { grid-column: 1; }
  .table-row--unnumbered > div,.table-row--unnumbered > p { grid-column: 2; grid-row: auto; }
  .table-row--unnumbered > .link { grid-column: 3; grid-row: auto; }
}
@media (max-width: 600px) {
  .table-row--unnumbered { grid-template-columns: 1fr; }
  .table-row--unnumbered > * { grid-column: 1 !important; grid-row: auto; }
}
.opening-sequence { height: 136svh; padding-top: 80px; position: relative; }
.opening-sequence .hero { position: sticky; top: 80px; margin-top: 0; transform: scale(var(--opening-scale,1)); border-radius: 3px 3px var(--opening-radius,18px) var(--opening-radius,18px); transform-origin: center center; will-change: transform; }
.hero-service-index { display: grid; grid-template-columns: repeat(4,1fr); margin: 0 18px; border-block: 1px solid var(--rule); }
.hero-service-index a { display: flex; align-items: center; gap: 20px; padding: 24px 30px; font-size: 14px; border-right: 1px solid var(--rule); transition: color .25s,background .25s; }
.hero-service-index a:last-child { border-right: 0; }
.hero-service-index a:hover { background: var(--blue-soft); color: var(--blue); }
.hero-service-index span { font-size: 10px; color: var(--ink-3); }
.hero-service-index i { margin-left: auto; font-style: normal; font-size: 18px; }
.home-intro .headline { font-size: clamp(44px,6.1vw,88px); letter-spacing: -.055em; }
.home-intro .headline span { color: var(--blue); }
.motion-ready [data-read-reveal] { --read-progress: 0%; background: linear-gradient(90deg,var(--ink) var(--read-progress),#9ba9bb var(--read-progress)); background-clip: text; -webkit-background-clip: text; color: transparent; }
.motion-ready [data-read-reveal] span { color: var(--blue); }
/* The service sequence has a continuous stage on desktop, a swipeable filmstrip on touch screens. */
.service-theatre { position: relative; background: #071a33; color: #fff; }
.theatre-marker { position: absolute; top: calc((100% - 100svh + 80px) * var(--step)); left: 0; }
.theatre-stage { padding: 0 var(--gutter); max-width: 1600px; margin: auto; }
.theatre-header { display: flex; align-items: center; justify-content: space-between; gap: 35px; min-height: 88px; border-bottom: 1px solid #36516e; }
.theatre-header h2 { font-size: 11px; color: #a7bedb; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }
.theatre-tabs { display: flex; gap: 28px; align-self: stretch; }
.theatre-tabs button { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 15px 0; border: 0; color: #91a8c5; background: none; font-size: 12px; white-space: nowrap; }
.theatre-tabs button > span { font-size: 9px; opacity: .6; }
.theatre-tabs button::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: #8bc1ff; transform: scaleX(0); transition: transform .4s var(--ease); transform-origin: left; }
.theatre-tabs button[aria-pressed="true"] { color: #fff; }
.theatre-tabs button[aria-pressed="true"]::after { transform: scaleX(1); }
.theatre-panel { display: grid; grid-template-columns: 43% 57%; padding-block: 32px; align-items: center; min-width: 0; }
.theatre-copy { padding-right: clamp(24px,4vw,64px); }
.theatre-copy .eyebrow { color: #83b7f5; margin-bottom: 24px; }
.theatre-copy h3 { font-size: clamp(32px,3.8vw,56px); letter-spacing: -.045em; line-height: 1.08; }
.theatre-copy > p:not(.eyebrow) { margin-top: 24px; font-size: 14px; line-height: 1.75; color: #c2d1e4; max-width: 39ch; }
.service-tags { display: flex; flex-wrap: wrap; gap: 7px; padding: 0; margin: 22px 0 28px; list-style: none; }
.service-tags li { padding: 5px 9px; border: 1px solid #3c5674; border-radius: 3px; color: #aac1dd; font-size: 9px; }
.theatre-copy .text-link { font-size: 13px; }
.theatre-media { align-self: stretch; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.theatre-media-window { position: relative; aspect-ratio: 3/2; overflow: hidden; border-radius: 9px; background: #132e4f; }
.theatre-media img,.theatre-media video { width: 100%; height: 100%; object-fit: cover; }
.theatre-media img[src*="team/"] { object-fit: contain; }
.theatre-media figcaption { display: flex; justify-content: space-between; gap: 18px; color: #94accb; font-size: 10px; margin-top: 15px; }
.media-video-control { position: absolute; z-index: 2; right: 16px; bottom: 16px; min-height: 36px; padding: 7px 12px; border: 1px solid #d4dce5; border-radius: 4px; color: #fff; background: rgba(3,16,31,.65); font-size: 10px; backdrop-filter: blur(12px); }
.theatre-footer { min-height: 62px; display: flex; align-items: center; gap: 26px; border-top: 1px solid #36516e; }
.theatre-hint { color: #9eb5d2; font-size: 10px; white-space: nowrap; }
.theatre-progress { width: 150px; height: 1px; background: #36516e; }
.theatre-progress i { display: block; width: 100%; height: 100%; background: #91c4ff; transform: scaleX(var(--service-progress,.03)); transform-origin: left; }
.theatre-arrows { display: flex; gap: 10px; margin-left: auto; }
.theatre-arrows button { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #4c6582; border-radius: 50%; background: transparent; color: #fff; font-size: 18px; }
.theatre-arrows button:hover { background: #173b65; }
.theatre-arrows button:disabled { opacity: .3; cursor: default; }
.theatre-enhanced { height: 330svh; }
.theatre-enhanced .theatre-stage { position: sticky; top: 80px; height: calc(100svh - 80px); min-height: 540px; display: flex; flex-direction: column; }
.theatre-enhanced .theatre-track { flex: 1; display: grid; min-height: 0; }
.theatre-enhanced .theatre-panel { grid-area: 1/1; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .55s ease,visibility .55s; }
.theatre-enhanced .theatre-panel.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.theatre-enhanced .theatre-copy { transform: translateY(25px); transition: transform .85s var(--ease); }
.theatre-enhanced .is-active .theatre-copy { transform: translateY(0); }
.theatre-enhanced .theatre-media-window { max-height: calc(100svh - 330px); width: 100%; clip-path: inset(0 0 0 8% round 9px); transition: clip-path .9s var(--ease); }
.theatre-enhanced .is-active .theatre-media-window { clip-path: inset(0 round 9px); }
.theatre-enhanced .theatre-media img,.theatre-enhanced .theatre-media video { transform: scale(1.1); transition: transform 1.4s var(--ease); }
.theatre-enhanced .is-active .theatre-media img,.theatre-enhanced .is-active .theatre-media video { transform: scale(1.025); }
.theatre-enhanced .theatre-media img[src*="team/"] { transform: none; }
/* An editorial reel made from the company's own photographs. */
.home-people { overflow: hidden; }
.people-reel { margin-top: 42px; }
.people-reel-track { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 26px; }
.people-reel figure { min-width: 0; }
.people-reel img { width: 100%; height: auto; border-radius: 9px; }
.people-reel figcaption { margin-top: 15px; font-size: 10px; color: var(--ink-3); }
.home-model .model-principles article { transition-delay: 80ms; }
.home-model .model-principles article:nth-child(2) { transition-delay: 170ms; }
.home-model .model-principles article:nth-child(3) { transition-delay: 260ms; }
.home-start { padding: 0; display: grid; grid-template-columns: 1fr; background: #075cce; color: #fff; text-align: left; }
.home-start > .container { padding: 64px clamp(30px,5vw,76px); align-self: center; }
.home-start .eyebrow,.home-start p:not(.eyebrow) { color: #d2e5ff; }
.home-start .headline { font-size: clamp(34px,3.6vw,54px); }
.home-start p:not(.eyebrow) { margin-left: 0; }
.home-start .start-actions { align-items: start; justify-content: start; flex-direction: column; gap: 24px; }
.home-start .btn--solid { background: #fff; color: #0751ae; border-color: #fff; }
.start-photo { overflow: hidden; min-height: 100%; }
.start-photo img { width: 100%; height: 100%; object-fit: cover; }
/* Visual mastheads and service images carry the art direction onto interior pages. */
.page-hero--visual { padding-top: 136px; padding-bottom: 56px; }
.page-hero--visual > .g { align-items: center; row-gap: 26px; }
.page-hero--visual .page-hero-title { grid-column: 1/7; grid-row: 1; }
.page-hero--visual .page-hero-title .t-display { font-size: clamp(42px,4.7vw,66px); }
.page-hero--visual .page-hero-aside { grid-column: 1/7; grid-row: 2; align-self: start; }
.page-hero--visual .page-hero-aside .t-body { max-width: 47ch; }
.page-hero-visual { grid-column: 8/13; grid-row: 1/span 2; position: relative; overflow: hidden; border-radius: 10px; background: #dbe5ef; align-self: center; }
.page-hero-visual img,.page-hero-visual video { width: 100%; height: auto; }
.page-hero-visual img,.page-hero-visual video { transform: scale(calc(1 + var(--media-progress,0) * .045)); transform-origin: center; }
.motion-ready .page-hero-visual.rv { opacity: 1; transform: none; clip-path: inset(0 0 0 12% round 10px); transition: clip-path 1.15s var(--ease); }
.motion-ready .page-hero-visual.rv.is-visible { clip-path: inset(0 round 10px); }
.motion-ready .page-hero-title.rv { transition-duration: 1s; }
.motion-ready .page-hero-aside.rv { transition-delay: .12s; }
.motion-ready .table > .rv,.motion-ready .steps > .rv { transition-delay: var(--reveal-delay,0ms); }
.table-row { position: relative; }
.table-row::after { content: ''; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .65s var(--ease); }
.table-row:hover::after,.table-row:focus-visible::after { transform: scaleX(1); }
.page-hero-visual video { aspect-ratio: 16/10; object-fit: cover; }
.page-hero--visual .hero-index { grid-row: 3; margin-top: 12px; }
.service-detail-visual { margin-top: 30px; overflow: hidden; border-radius: 8px; position: relative; background: #142e50; }
.service-detail-visual img,.service-detail-visual video { width: 100%; height: auto; }
.service-detail-visual video { aspect-ratio: 3/2; object-fit: cover; }
@media (min-width: 901px) { .service-detail-head:has(.service-detail-visual) { position: sticky; top: 115px; } }
@media (max-width: 1100px) {
  .theatre-tabs { gap: 18px; }
  .theatre-copy h3 { font-size: 39px; }
  .theatre-copy > p:not(.eyebrow) { font-size: 13px; }
  .theatre-copy .eyebrow { margin-bottom: 18px; }
  .service-tags { margin-block: 17px 22px; }
}
@media (max-width: 900px), (max-height: 620px) {
  .opening-sequence { height: auto; padding-top: 72px; }
  .opening-sequence .hero { position: relative; top: auto; transform: none; }
  .hero-service-index a { padding: 18px 15px; gap: 9px; font-size: 11px; }
  .theatre-enhanced { height: auto; }
  .theatre-enhanced .theatre-stage { position: relative; top: auto; height: auto; min-height: 0; padding-inline: 28px; }
  .theatre-header { display: block; padding-top: 26px; min-height: 0; }
  .theatre-header h2 { margin-bottom: 14px; }
  .theatre-tabs { overflow-x: auto; gap: 24px; scrollbar-width: none; }
  .theatre-tabs button { min-height: 48px; }
  .theatre-enhanced .theatre-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; position: relative; }
  .theatre-enhanced .theatre-panel { flex: 0 0 100%; width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; opacity: 1; visibility: visible; pointer-events: auto; scroll-snap-align: start; }
  .theatre-enhanced .theatre-copy { padding-right: 0; transform: none; }
  .theatre-copy h3 { font-size: 33px; }
  .theatre-enhanced .theatre-media-window { clip-path: none; max-height: none; }
  .theatre-enhanced .theatre-media img,.theatre-enhanced .theatre-media video { transform: none; }
  .theatre-media figcaption { font-size: 9px; }
  .theatre-progress { width: 100px; }
  .theatre-hint { font-size: 0; }
  .theatre-hint::after { content: 'Swipe to explore'; font-size: 10px; }
  .people-reel-track { gap: 18px; }
  .home-start .headline { font-size: 36px; }
  .home-start > .container { padding: 45px 32px; }
  .home-start .start-actions { gap: 22px; }
}
@media (max-width: 600px) {
  .opening-sequence { padding-top: 68px; }
  .opening-sequence .hero { margin-top: 0; }
  .hero-service-index { grid-template-columns: 1fr 1fr; margin-inline: 10px; }
  .hero-service-index a { padding: 16px 12px; font-size: 12px; border-bottom: 1px solid var(--rule); }
  .hero-service-index a:nth-child(2) { border-right: 0; }
  .hero-service-index a:nth-child(n+3) { border-bottom: 0; }
  .home-intro .headline { font-size: 41px; }
  .theatre-enhanced .theatre-stage { padding-inline: 22px; }
  .theatre-tabs { gap: 22px; }
  .theatre-tabs button { font-size: 11px; gap: 7px; }
  .theatre-enhanced .theatre-panel { grid-template-columns: 1fr; padding-block: 24px; gap: 24px; align-content: start; }
  .theatre-media { grid-row: 1; }
  .theatre-media-window { aspect-ratio: 3/2; }
  .theatre-media figcaption { margin-top: 10px; }
  .theatre-copy { grid-row: 2; }
  .theatre-copy .eyebrow { font-size: 10px; margin-bottom: 15px; }
  .theatre-copy h3 { font-size: 36px; }
  .theatre-copy > p:not(.eyebrow) { font-size: 14px; margin-top: 18px; }
  .service-tags { margin-block: 18px 23px; }
  .theatre-footer { min-height: 65px; }
  .people-reel { margin-top: 30px; }
  .people-reel-track { grid-template-columns: 1fr; gap: 26px; }
  .people-reel figcaption { font-size: 9px; }
  .home-start { grid-template-columns: 1fr; }
  .home-start > .container { padding: 46px 25px; }
  .start-photo { max-height: 280px; }
  .start-photo img { height: auto; }
  .page-hero--visual { padding-top: 117px; padding-bottom: 40px; }
  .page-hero--visual > .g { row-gap: 0; }
  .page-hero--visual .page-hero-title,.page-hero--visual .page-hero-aside,.page-hero-visual { grid-column: 1/-1; grid-row: auto; }
  .page-hero--visual .page-hero-title .t-display { font-size: 43px; }
  .page-hero-visual { margin-top: 30px; }
  .page-hero--visual .hero-index { grid-row: auto; margin-top: 28px; }
  .service-detail-visual { margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .page-hero-visual img,.page-hero-visual video { transform: none; }
  .motion-ready .page-hero-visual.rv { clip-path: none; transition: none; }
  .table-row::after { transition: none; }
  .opening-sequence { height: auto; }
  .opening-sequence .hero { position: relative; top: auto; transform: none; }
  .hero-content > * { animation: none; }
  .service-theatre.theatre-enhanced { height: auto; }
  .theatre-enhanced .theatre-stage { position: relative; top: auto; height: auto; }
  .theatre-enhanced .theatre-track { display: block; overflow: visible; }
  .theatre-enhanced .theatre-panel { opacity: 1; visibility: visible; pointer-events: auto; border-bottom: 1px solid #36516e; }
  .theatre-enhanced .theatre-copy,.theatre-enhanced .theatre-media img,.theatre-enhanced .theatre-media video,.people-reel-track { transform: none; }
  .theatre-enhanced .theatre-media-window { clip-path: none; }
  .motion-ready [data-read-reveal] { background: none; color: var(--ink); }
  .theatre-tabs,.theatre-footer { display: none; }
}
