/* Final device rules follow every page bundle. */
body.site-unified-font main :is(input, textarea, select, img, video, iframe) { max-width: 100%; }
body.site-unified-font .footer :is(.footer__launchCopy, .footer__launchAction, .footer__col, .footer__connect) { min-width: 0; }
body.site-unified-font .footer :is(.footer__mail, .footer__launchAction a, .footer__col a) { overflow-wrap: anywhere; }

@media (max-width: 1024px) {
  body.site-unified-font { --gutter: clamp(20px, 4vw, 36px); --inner-gutter: clamp(20px, 4vw, 36px); --page-inline-gutter: clamp(20px, 4vw, 36px); }
  body.site-unified-font #main:is(.people, .gallery-editorial, .service-detail, .reach, .journal, .legal-page) { padding-top: 104px; padding-inline: var(--gutter); }
  body.site-unified-font #main :is(h1, h2, h3) { overflow-wrap: anywhere; }
  body.site-unified-font .page-motion-word { max-width: 100%; white-space: normal; }
  body.site-unified-font .site-header { display: flex; justify-content: space-between; height: 60px; inset: 12px 12px auto; padding-inline: 16px; gap: 12px; }
  body.site-unified-font .site-nav { display: none; }
  body.site-unified-font .header-actions { display: flex; align-items: center; flex: 0 0 auto; gap: 12px; }
  body.site-unified-font .brand { min-width: 0; }
  body.site-unified-font .mega { top: 84px; left: 12px; right: 12px; width: auto; max-height: calc(100dvh - 96px); padding: 24px; overflow-y: auto; transform: translateY(-8px); }
  body.site-unified-font .mega.is-open { transform: none; }
  body.site-unified-font .mega__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; }
  body.site-unified-font .mega__card { display: none; }
  body.site-unified-font .mega__links a { min-height: 44px; padding-block: 8px; font-size: 17px; line-height: 1.5; }

  /* Unpinned home scenes keep all copy visible in portrait and landscape. */
  body.site-unified-font .hero { height: auto; padding: 0; }
  body.site-unified-font .hero__pin { position: relative; display: grid; gap: 28px; height: auto; min-height: 0; padding: 104px var(--gutter) 32px; overflow: visible; border-radius: 0; }
  body.site-unified-font .hero__eyebrow { position: static; flex-wrap: wrap; gap: 12px; opacity: 1; transform: none; }
  body.site-unified-font .hero__copy { position: relative; inset: auto; width: 100%; opacity: 1; transform: none !important; }
  body.site-unified-font .hero__title { max-width: 100%; font-size: clamp(44px, 8vw, 76px); line-height: 1; }
  body.site-unified-font .hero__copyFoot { align-items: center; flex-wrap: wrap; margin-top: 24px; gap: 20px; }
  body.site-unified-font .hero__visual { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 16px; box-shadow: none; }
  body.site-unified-font .hero__outcome { position: static; width: auto; opacity: 1; transform: none; pointer-events: auto; }
  body.site-unified-font .hero__outcome h2 { max-width: 100%; font-size: clamp(30px, 5vw, 44px); line-height: 1.2; font-weight: 400; letter-spacing: -.03em; }
  body.site-unified-font .hero__scroll { display: none; }
  body.site-unified-font #main .built__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  body.site-unified-font #main :is(.section-head, .work__head, .ranking__body, .places, .contact) { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font #main .contact { gap: 28px; }
  body.site-unified-font #main .enquiry { width: 100%; max-width: 100%; }
  body.site-unified-font #main .story { height: auto; padding-block: 32px; overflow: visible; }
  body.site-unified-font #main .story__pin { position: static; height: auto; padding: 0; overflow: visible; }
  body.site-unified-font #main .story__track { display: flex; flex-direction: column; width: auto; height: auto; transform: none !important; }
  body.site-unified-font #main .story__panel { position: relative; inset: auto; flex: none; width: auto; height: auto; min-height: 0; padding: 0 var(--gutter) 28px; }
  body.site-unified-font #main .story__panel--intro { margin: 0; padding-block: 16px 28px; }
  body.site-unified-font #main .step { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; opacity: 1; transform: none; }
  body.site-unified-font #main .step__num { font-size: 56px; }
  body.site-unified-font #main .story__progress { display: none; }
  body.site-unified-font #main .awards { height: auto; padding-block: 32px; }
  body.site-unified-font #main .awards__pin { position: static; display: block; height: auto; padding: 0; overflow: visible; }
  body.site-unified-font #main .deck { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; height: auto; min-height: 0; padding-inline: var(--gutter); overflow: visible; }
  body.site-unified-font #main .award { position: relative; inset: auto; width: auto; height: auto; min-height: 0; margin: 0; padding: 24px; opacity: 1; transform: none; }
  body.site-unified-font #main .award h3 { max-width: none; font-size: 26px; line-height: 1.2; }
  body.site-unified-font #main .award__icon { margin-bottom: 20px; }
  body.site-unified-font #main .award h3 { margin-top: 0; }
  body.site-unified-font #main .award p { font-size: 15px; line-height: 1.65; }
  body.site-unified-font #main .awards__progress { display: none; }

  body.site-unified-font #main .people-grid { grid-template-columns: repeat(3, minmax(0, 260px)); gap: 24px 20px; }
  body.site-unified-font #main .people-directory--ceos .people-grid { grid-template-columns: repeat(2, minmax(0, 320px)); }
  body.site-unified-font #main :is(.gallery-story, .service-intro__grid, .journal-feature, .reach-layout) { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font #main .gallery-story__copy { position: static; }
  body.site-unified-font #main .gallery-story__description { max-width: 65ch; }
  body.site-unified-font #main .gallery-story__images > a:first-child:not(:only-child) { grid-column: auto; aspect-ratio: 1; }
  body.site-unified-font #main .journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site-unified-font #main .journal-feature__image { min-height: 0; aspect-ratio: 16 / 9; }
  body.site-unified-font #main .journal-feature__image img { max-height: 360px; }
  body.site-unified-font #main .journal-article__content { max-width: 70ch; }
  body.site-unified-font #main .reach-layout { gap: 0; }
  body.site-unified-font #main .reach-form-panel { border-inline-end: 0; border-bottom: 1px solid #dce5ed; }
  body.site-unified-font #main .reach-form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site-unified-font #main .reach-direct { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; }
  body.site-unified-font #main .reach-direct > .reach-kicker { grid-column: 1 / -1; margin: 0; }
  body.site-unified-font #main .reach-direct__block + .reach-direct__block { margin: 0; }
  body.site-unified-font #main .reach-direct__bottom { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
  body.site-unified-font #main .reach-direct__image { grid-column: 1 / -1; margin: 0; padding: 0; }
  body.site-unified-font #main .reach-direct__image img { height: 160px; }
  body.site-unified-font #main .reach-faq { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.site-unified-font #main .reach-faq .reach-section-head { margin: 0; }

  body.site-unified-font :is(.work-flex, .work-flex3) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.site-unified-font .work-flex { margin-top: 0; }
  body.site-unified-font .work-carousel { width: 100%; min-width: 0; }
  body.site-unified-font .work-flex :is(img, .work-card) { max-width: 100%; width: 100%; height: auto; }
  body.site-unified-font .work-flex1 { flex-wrap: wrap; gap: 12px; }
  body.site-unified-font .work-flex2 { flex-wrap: wrap; gap: 12px; }
  body.site-unified-font .work-flex2 p { width: auto; flex: 1 1 28px; }
  body.site-unified-font .toggle-card { position: static; width: 100%; padding: 20px; z-index: auto; }
  body.site-unified-font .work-flex4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  body.site-unified-font .work-flex4 .gridcard { width: 100%; min-width: 0; padding: 16px; }
  body.site-unified-font .work-flex4 .gridcard :is(img, video) { width: 100%; max-width: 100%; height: auto; }
  body.site-unified-font .work-p { padding: 0; font-size: 17px; line-height: 1.7; }
  body.site-unified-font .work-flex4 .gridcard p { font-size: 16px; }
  body.site-unified-font .growth-section__head { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  body.site-unified-font :is(.growth-service-grid, .growth-process) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site-unified-font :is(.growth-proof__layout, .growth-faq__grid, .growth-cta__inner) { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.site-unified-font :is(.growth-button, .growth-actions) { max-width: 100%; flex-wrap: wrap; }

  body.site-unified-font .footer__cta { grid-template-columns: minmax(0, 1fr); gap: 24px; min-height: 0; }
  body.site-unified-font .footer__launchAction { justify-self: start; max-width: 100%; }
  body.site-unified-font .footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  body.site-unified-font .footer__connect { grid-column: 1 / -1; }
  body.site-unified-font .footer .clocks { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-items: center; gap: 16px; margin-top: 0; overflow: visible; }
  body.site-unified-font .footer__legal { display: flex; flex-wrap: wrap; }
  body.site-unified-font .footer__legal > span:last-child { display: flex; flex-wrap: wrap; gap: 12px; }
  body.site-unified-font .footer__legal a { margin: 0; }
}

@media (max-width: 900px) {
  body.site-unified-font #main .people-grid { grid-template-columns: repeat(2, minmax(0, 260px)); }
  body.site-unified-font #main .innovation-showcase__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  body.site-unified-font #main :is(.service-capability-grid, .service-package-grid) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  body.site-unified-font { --gutter: 20px; --inner-gutter: 20px; --page-inline-gutter: 20px; }
  body.site-unified-font #main:is(.people, .gallery-editorial, .service-detail, .reach, .journal, .legal-page) { padding-top: 92px; padding-inline: 20px; }
  body.site-unified-font.inner-page #main h1 { font-size: clamp(30px, 8vw, 40px) !important; }
  body.site-unified-font .site-header { inset: 10px 10px auto; height: 56px; gap: 8px; padding-inline: 12px; }
  body.site-unified-font .header-cta { display: none; }
  body.site-unified-font .header-actions { gap: 8px; }
  body.site-unified-font .brand__logo { width: 92px !important; }
  body.site-unified-font .menu-btn { flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; padding: 0; justify-content: center; }
  body.site-unified-font .menu-btn__label { display: none; }
  body.site-unified-font .mega { inset: 76px 10px auto; width: auto; max-height: calc(100dvh - 88px); padding: 20px; transform: translateY(-8px); }
  body.site-unified-font .mega.is-open { transform: none; }
  body.site-unified-font .mega__inner { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.site-unified-font .mega__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site-unified-font .mega__links--lg { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font .hero__pin { padding-top: 92px; }
  body.site-unified-font .hero__eyebrow { font-size: 9px; line-height: 1.6; }
  body.site-unified-font .hero__title { font-size: clamp(36px, 10vw, 56px); }
  body.site-unified-font .hero__copyFoot { align-items: flex-start; flex-direction: column; }
  body.site-unified-font .hero__visual { aspect-ratio: 4 / 3; }
  body.site-unified-font .hero__signals { gap: 12px; }
  body.site-unified-font #main .built__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  body.site-unified-font #main .deck { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font #main :is(.section-title, .story__lead) { font-size: clamp(28px, 7.7vw, 38px); }
  body.site-unified-font #main .step { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
  body.site-unified-font #main .step__num { font-size: 42px; }
  body.site-unified-font #main .div__btn { grid-template-columns: 22px minmax(0, 1fr) 36px; gap: 10px; }
  body.site-unified-font #main .div__name { font-size: clamp(22px, 6vw, 28px); overflow-wrap: anywhere; }
  body.site-unified-font #main .div__inner { padding-inline: 0; }
  body.site-unified-font #main .enquiry { padding: 18px; }
  body.site-unified-font #main .people-directory--ceos .people-grid { grid-template-columns: minmax(0, 300px); }
  body.site-unified-font #main .people-grid { gap: 24px 16px; }
  body.site-unified-font #main :is(.people-card h3, .journal-card h3) { font-size: 20px !important; }
  body.site-unified-font #main :is(.journal-grid, .reach-form-row, .reach-direct, .reach-direct__bottom) { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font #main .reach-direct__image img { height: 112px; }
  body.site-unified-font #main :is(.reach-form-panel, .reach-direct, .legal-page__content) { padding: 20px; }
  body.site-unified-font #main .legal-page__toc ol { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font :is(.work-flex4, .growth-service-grid, .growth-process) { grid-template-columns: minmax(0, 1fr); }
  body.site-unified-font .footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 24px 18px; }
  body.site-unified-font .footer__col { grid-column: auto; padding-top: 0; border-top: 0; }
  body.site-unified-font .footer__top > div.footer__col { grid-column: 1 / -1; }
  body.site-unified-font .footer .footer__word { width: auto; max-width: 100%; margin-inline: 12px; font-size: clamp(56px, 16vw, 88px); }
  body.site-unified-font .footer__mail { font-size: 18px; }
  body.site-unified-font .footer__launchAction a { font-size: 18px; }
  body.site-unified-font .footer .clock svg { width: 52px; height: auto; }
  body.site-unified-font .footer__legal { padding-inline: 6px; }
}
@media (max-width: 379px) {
  body.site-unified-font #main .people-grid { grid-template-columns: minmax(0, 260px); }
  body.site-unified-font #main .gallery-story__images { grid-template-columns: minmax(0, 1fr); }
}
