:root {
  /* 2560px is the canonical EN/FR desktop width. All smaller viewports keep the same geometry and scale by width only. */
  --layout-section-gap: min(50px, 1.953125vw);
  --layout-section-max-height: min(1380px, 53.90625vw);
  --layout-home-section-1-height: var(--layout-section-max-height);
  --layout-home-section-1-padding: min(5px, 0.1953125vw);
  --layout-home-section-2-label-size: min(30px, 1.171875vw);
  --layout-home-section-3-height: min(652.7px, 25.49609375vw);
  --layout-home-section-3-frame: min(559.815778px, 21.8678038281vw);
  --layout-home-section-3-padding: min(46.442111px, 1.8141449609vw);
  --layout-home-section-3-frame-offset-y: min(113px, 4.4140625vw);
  --layout-home-section-3-frame-padding: min(40px, 1.5625vw);
  --layout-home-section-3-title-size: min(42px, 1.640625vw);
  --layout-home-section-5-height: min(1280px, 50vw);
  --layout-home-section-5-padding: min(110px, 4.296875vw);
  --layout-home-section-5-display-size: min(150.880829px, 5.8937823828vw);
  --layout-home-section-5-body-size: min(36px, 1.40625vw);
  --layout-home-section-5-body-frame-width: min(1216px, 47.5vw);
  --layout-home-section-5-body-frame-height: min(121.6px, 4.75vw);
  --layout-home-section-5-body-frame-right: min(76.8px, 3vw);
  --layout-home-section-5-link-size: min(26.943005px, 1.0524611328vw);
  --layout-home-section-5-gap: min(28.444444px, 1.1111110938vw);
  --layout-home-section-5-view-padding: min(14.222222px, 0.5555555469vw);
  --layout-home-section-5-content-offset-y: min(100px, 3.90625vw);
  --layout-inline-cta-size: min(28.4px, 1.109375vw);

  --reference-nav-size: min(30px, 1.171875vw);
  --reference-cta-size: min(38.4px, 1.5vw);
  --reference-control-gap: min(25px, 0.9765625vw);
  --reference-language-size: min(18.333333px, 0.7161458203vw);
  --reference-wordmark-height: min(80px, 3.125vw);
  --reference-header-padding: min(33px, 1.2890625vw);
  --reference-header-height: min(146px, 5.703125vw);
  --reference-richtext-size: min(76.8px, 3vw);
  --reference-richtext-desktop-size: min(76.8px, 3vw);
  --reference-inline-cta-size: min(28.4px, 1.109375vw);
  --reference-service-display-size: min(179.2px, 7vw);
  --reference-service-size: min(146px, 5.703125vw);
  --reference-service-link-size: min(32px, 1.25vw);
  --reference-display-size: min(264px, 10.3125vw);
  --reference-display-level-size: min(264px, 10.3125vw);
  --page-x: min(51.2px, 2vw);
  --header-h: min(209.3312px, 8.177vw);
}

body[data-page="home"] main > section:not(:last-child) {
  margin-block-end: var(--layout-section-gap);
}

body[data-page="home"] main > section.bg-black2:not(:last-child) {
  box-shadow: 0 var(--layout-section-gap) 0 0 var(--ink);
}

body[data-page="home"] main > section.bg-lightGrey:not(:last-child) {
  box-shadow: 0 var(--layout-section-gap) 0 0 var(--field);
}

body[data-page="home"] main > section.bg-red:not(:last-child),
body[data-page="home"] main > section.bg-Blue:not(:last-child) {
  box-shadow: 0 var(--layout-section-gap) 0 0 var(--variant-blue);
}

body[data-page="home"] main > section:not(.hme_gallery_sec):not(.hmeSrvc):not(.hmeSticky_sect),
body[data-page="home"] .galleryGridBox,
body[data-page="home"] .hmeSrvcBox,
body[data-page="home"] .hmeStickyBoxes {
  max-block-size: var(--layout-section-max-height);
}

body :where(h1, h2, h3, p),
body .navigation a,
body .startPrjctLnk a,
body .variant-language button,
body .hero_heading_style,
body .view_srvBtn a,
body .footer ul li,
body .footer ul li a {
  font-weight: 500;
  font-synthesis: weight;
}

/* One visible layout across Desktop, Laptop, Tablet and Mobile. */
.header {
  min-height: var(--reference-header-height);
  height: var(--reference-header-height);
  display: block;
  padding: var(--reference-header-padding) 0;
}

.header__inner {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0;
}

.logo {
  height: var(--reference-wordmark-height);
  width: auto;
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  max-width: 18vw;
}

.brand-wordmark {
  width: auto;
  min-width: 0;
  max-width: 100%;
  height: var(--reference-wordmark-height);
  object-fit: contain;
  object-position: left center;
}

.nav-toggle,
.navigation-mbl,
.socialHdr {
  display: none !important;
}

.header_right,
.header_rightRow {
  position: static !important;
  inset: auto !important;
  width: auto;
  flex: 1 1 auto;
  display: flex !important;
  align-items: center;
  background: transparent !important;
  padding: 0 !important;
}

.header_rightRow {
  height: auto;
  justify-content: center;
  gap: 0;
}

.navigation {
  position: absolute !important;
  top: 50%;
  left: 50%;
  width: min(960px, 37.5vw);
  display: flex !important;
  transform: translate(-50%, -50%);
}

.navigation .menu {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  gap: min(50px, 1.953125vw);
}

.navigation .menu li {
  display: flex;
  justify-content: center;
  min-width: 0;
}

.navigation a {
  font-size: var(--reference-nav-size);
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.header_end {
  position: absolute !important;
  top: 50%;
  right: calc(var(--page-x) + min(8px, 0.3125vw));
  transform: translateY(-50%);
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: var(--reference-control-gap);
  max-width: 28vw;
}

.startPrjctLnk {
  position: static;
  width: auto;
  min-width: 0;
  transform: none;
  display: flex;
  justify-content: flex-end;
  order: 1;
}

.startPrjctLnk a {
  gap: min(26.6752px, 1.042vw);
  font-size: var(--reference-cta-size);
  line-height: 1;
  letter-spacing: min(0.5632px, 0.022vw);
  white-space: nowrap;
}

.variant-language {
  position: static;
  transform: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--reference-language-gap);
  margin: 0;
  order: 2;
}

.variant-language button {
  display: block;
  padding: 0;
  font-size: var(--reference-language-size);
  line-height: 0.78;
  letter-spacing: 0;
}

.masked-link__arrow {
  width: min(65px, 2.5390625vw);
  height: min(11px, 0.4296875vw);
  min-width: min(65px, 2.5390625vw);
}

.masked-link--large .masked-link__arrow,
.form-submit .masked-link__arrow {
  width: min(98px, 3.828125vw);
  height: min(16px, 0.625vw);
  min-width: min(98px, 3.828125vw);
}

.HeaderPad,
body[data-page="home"] > .HeaderPad {
  height: auto;
  padding-top: var(--reference-header-height);
  background: var(--ink);
}

body[data-page="home"] .Hmebanner#top {
  box-sizing: border-box;
  height: var(--layout-home-section-1-height);
  min-height: var(--layout-home-section-1-height);
  max-height: var(--layout-home-section-1-height);
  padding-block: var(--layout-home-section-1-padding);
  background: var(--ink);
  color: var(--reference-light);
}

body[data-page="home"] .Hmebanner__inner {
  height: 100%;
  min-height: 0;
  display: block;
  padding-top: 0;
  padding-bottom: 0;
}

body[data-page="home"] .HmebannerRow {
  position: relative;
  width: 100%;
  display: block;
}

body[data-page="home"] .hme_hero_title {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0;
}

body[data-page="home"] .hme_hero_title:last-of-type {
  position: static;
}

body[data-page="home"] .hero_heading_style {
  font-size: min(291.84px, 11.4vw);
  line-height: 1.1;
  letter-spacing: min(1.1264px, 0.044vw);
  color: var(--reference-light);
  white-space: nowrap;
}

body[data-page="home"] .Hmebanner#top .hero_paragrph_style {
  max-width: min(1480.1664px, 57.819vw);
  padding: 0 min(60px, 2.34375vw);
  font-size: min(30.5px, 1.19140625vw);
  line-height: 1.66;
  letter-spacing: min(-0.033px, -0.0012890625vw);
  text-align: justify;
}

body[data-page="home"] .hero-paragraph--desktop,
html[lang="fr-CA"] body[data-page="home"] .hero-paragraph--desktop,
html[lang="en-GB"] body[data-page="home"] .hero-paragraph--desktop {
  position: absolute;
  top: min(866.0992px, 33.832vw);
  right: 0;
  bottom: auto;
  left: 49.87%;
  z-index: 3;
  display: block !important;
  width: auto;
  height: min(203.9808px, 7.968vw);
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  font-size: min(30.5px, 1.19140625vw);
  line-height: 1.66;
  text-align: justify;
  text-align-last: justify;
  text-box: trim-both cap alphabetic;
  visibility: visible;
  opacity: 1;
}

.HmebannerRow01 {
  display: none !important;
}

body[data-page="home"] .studio-work-section > .richtext {
  padding-block: min(150px, 5.859375vw);
}

body[data-page="home"] #studio .richtextWrap {
  max-width: 78vw;
}

body[data-page="home"] #studio .richtextWrap > h2 {
  position: absolute;
  top: 0.6em;
  left: 0;
  margin: 0;
  font-size: var(--layout-home-section-2-label-size);
  line-height: 1.2;
  white-space: nowrap;
}

body[data-page="home"] #studio .richtextWrap > p {
  font-size: min(76px, 2.96875vw);
  line-height: 1.08;
  letter-spacing: -0.05em;
  text-indent: 26vw;
  text-align: justify;
}

body[data-page="home"] .studio-work-section > .hme_gallery_sec {
  margin-block-start: var(--layout-section-gap);
}

body[data-page="home"] .hme_gallery_sec#work {
  box-sizing: border-box;
  height: var(--layout-home-section-3-height);
  min-height: var(--layout-home-section-3-height);
  max-height: var(--layout-home-section-3-height);
  padding-block: var(--layout-home-section-3-padding);
  overflow: visible;
}

body[data-page="home"] .hme_gallery_sec#work > .container-fluid {
  box-sizing: border-box;
  height: 100%;
}

body[data-page="home"] .hme_gallery_sec#work .galleryGrid {
  height: 100%;
  display: grid;
  grid-template-columns: repeat(4, var(--layout-home-section-3-frame));
  align-items: center;
  justify-content: space-between;
  gap: 0;
  transform: translateY(calc(0px - var(--layout-home-section-3-frame-offset-y)));
}

body[data-page="home"] .hme_gallery_sec#work .galleryGridrow {
  display: contents;
}

body[data-page="home"] .hme_gallery_sec#work .galleryGridBox {
  width: var(--layout-home-section-3-frame);
  height: var(--layout-home-section-3-frame);
  max-block-size: none;
  aspect-ratio: 1;
  margin-top: 0 !important;
}

body[data-page="home"] .hme_gallery_sec#work .galleryGridBoxDes {
  padding: var(--layout-home-section-3-frame-padding);
}

body[data-page="home"] .hme_gallery_sec#work .galleryGridBoxDes h2,
body[data-page="home"] .hme_gallery_sec#work .galleryGridBoxDes h3 {
  font-size: var(--layout-home-section-3-title-size);
}

body[data-page="home"] .richtext---who .richtextWrap,
body[data-page="home"] .fit-section .richtextWrap {
  width: 100%;
  max-width: 100%;
}

body[data-page="home"] .richtext---who h2,
body[data-page="home"] .fit-section h2 {
  position: absolute;
  top: 0.15em;
  left: 0;
  margin: 0;
  font-size: var(--layout-inline-cta-size);
  line-height: normal;
  letter-spacing: 0;
  white-space: nowrap;
}

body[data-page="home"] .richtext---who h2 a,
body[data-page="home"] .fit-section h2 a {
  font-size: inherit;
}

body[data-page="home"] .richtext---who p,
body[data-page="home"] .fit-section p {
  width: 100%;
  max-width: 100%;
  font-size: var(--reference-richtext-desktop-size);
  line-height: 1.21;
  letter-spacing: normal;
  text-indent: 30vw;
  text-align: justify;
}

body[data-page="home"] .fit-section {
  min-height: min(1079.12px, 42.153125vw);
  display: flex;
  align-items: center;
}

body[data-page="home"] .hmeSrvc#services {
  box-sizing: border-box;
  height: var(--layout-home-section-5-height);
  min-height: var(--layout-home-section-5-height);
  max-height: var(--layout-home-section-5-height);
  padding-block: var(--layout-home-section-5-padding);
  overflow: hidden;
}

body[data-page="home"] .hmeSrvc#services .services-stack {
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: var(--layout-home-section-5-gap);
  overflow: hidden;
  transform: translateY(var(--layout-home-section-5-content-offset-y));
}

body[data-page="home"] .hmeSrvc#services .hero_heading_style {
  font-size: var(--layout-home-section-5-display-size);
  font-weight: 580;
}

body[data-page="home"] .hmeSrvc#services .hme_hero_title_indent {
  padding-left: 18vw;
}

body[data-page="home"] .hmeSrvc#services .services-desktop-line {
  display: flex !important;
}

body[data-page="home"] .hmeSrvc#services .services-mobile-line {
  display: none !important;
}

body[data-page="home"] .hmeSrvc#services .hmeSrvcBox .hme_hero_title {
  position: static;
}

body[data-page="home"] .hmeSrvc#services .hmeSrvcBox .hero_paragrph_style {
  position: absolute;
  top: 50%;
  right: var(--layout-home-section-5-body-frame-right);
  width: var(--layout-home-section-5-body-frame-width);
  height: var(--layout-home-section-5-body-frame-height);
  max-width: none;
  padding: 0;
  display: flex;
  align-items: center;
  transform: translateY(-50%);
  overflow: hidden;
  font-size: var(--layout-home-section-5-body-size);
  line-height: 1.6;
  text-align: justify;
  text-justify: inter-word;
}

body[data-page="home"] .hmeSrvc#services .view_srvBtn {
  padding-top: var(--layout-home-section-5-view-padding);
  text-align: center;
}

body[data-page="home"] .hmeSrvc#services .view_srvBtn a {
  font-size: var(--layout-home-section-5-link-size);
  white-space: pre;
  transition: color 160ms ease;
}

body[data-page="home"] .hmeSrvc#services .view_srvBtn a:hover,
body[data-page="home"] .hmeSrvc#services .view_srvBtn a:focus-visible {
  color: var(--slate);
}

body[data-page="home"] .hmeSticky_sect {
  padding-block: min(204.8px, 8vw) min(153.6px, 6vw);
}

body[data-page="home"] .sticky-stack {
  display: grid;
  gap: min(140.8px, 5.5vw);
  padding-inline: 2.8vw;
}

body[data-page="home"] .hmeStickyBoxes {
  position: sticky;
  top: calc(var(--header-h) + min(16px, 0.625vw));
  min-height: min(670px, 26.171875vw);
  padding: min(64px, 2.5vw) min(36px, 1.40625vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  text-align: center;
}

body[data-page="home"] .hmeStickyBoxes:nth-child(2) {
  top: calc(var(--header-h) + min(105.28px, 4.1125vw));
}

body[data-page="home"] .hmeStickyBoxes:nth-child(3) {
  top: calc(var(--header-h) + min(210.56px, 8.225vw));
}

body[data-page="home"] .hmeStickyBoxes h2,
body[data-page="home"] .hmeStickyBoxes h3 {
  font-size: var(--reference-service-size);
  line-height: 1.08;
  letter-spacing: min(-1.1px, -0.04296875vw);
  text-align: center;
}

body[data-page="home"] .sticky-arrow {
  width: min(98px, 3.828125vw);
  height: min(16px, 0.625vw);
  min-width: min(98px, 3.828125vw);
  font-size: 0;
  line-height: 0;
}

.footer {
  padding: min(15px, 0.5859375vw) 0;
}

.footer__inner {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: min(35px, 1.3671875vw);
}

.footer ul {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: min(35px, 1.3671875vw);
  min-width: 0;
}

.footer ul li,
.footer ul li a {
  font-size: min(24.0128px, 0.938vw);
  line-height: 1.38;
  letter-spacing: -0.044vw;
  white-space: nowrap;
}

body[data-page="contact"] .contact-hero {
  padding-block: min(100px, 3.90625vw);
}

body[data-page="contact"] .contact-hero__grid,
body[data-page="contact"] .contact-brand-panel {
  grid-template-columns: 1.1fr 0.9fr;
}

body[data-page="contact"] .contact-hero h1 {
  max-width: 100%;
  font-size: min(144.666667px, 5.6510416797vw);
  line-height: 0.933;
}

body[data-page="contact"] .contact-hero p {
  width: 100%;
  max-width: 100%;
  font-size: min(40px, 1.5625vw);
  line-height: 0.95;
}

body[data-page="contact"] .contact-form-section .hero_heading_style {
  font-size: var(--reference-display-size);
  white-space: nowrap;
}

body[data-page="contact"] .contact-form {
  grid-template-columns: 1fr 1fr;
}

body[data-page="contact"] .field--full,
body[data-page="contact"] .form-actions {
  grid-column: 1 / -1;
}

body[data-page="contact"] .form-actions {
  align-items: center;
  flex-direction: row;
}