@font-face {
  font-family: "Jaapokki";
  src: url("../fonts/Jaapokki-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Jost";
  src: url("../fonts/jost-latin-300-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Jost";
  src: url("../fonts/jost-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Jost";
  src: url("../fonts/jost-latin-500-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Jost";
  src: url("../fonts/jost-latin-700-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --yellow: #fed41b;
  --ink: #181818;
  --black: #000;
  --paper: #fff;
  --pale: #f3f5fc;
  --pale-strong: #eaecf6;
  --muted: #4d4d4d;
  --line: rgba(24, 24, 24, .26);
  --header-height: clamp(111.5px, calc(68px + 3.4vw), 125px);
  --gutter: 3vw;
  --atgas-font-display: "Jaapokki", "Arial Narrow", sans-serif;
  --atgas-font-body: "Jost", "Helvetica Neue", Arial, sans-serif;
  --atgas-font-interface: Arial, Helvetica, sans-serif;
  --type-base: clamp(15.6px, calc(.36vw + 12px), 18.84px);
  --type-large: clamp(16.051px, calc(.48vw + 12px), 21.12px);
  --type-small: clamp(13.013px, calc(.12vw + 12px), 14.016px);
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--paper);
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--atgas-font-body);
  font-size: var(--type-base);
  font-weight: 300;
  letter-spacing: .01em;
  line-height: 1.2;
  text-rendering: optimizeLegibility;
}

body.menu-lock { overflow: hidden; }

main { padding-top: 0; }

a {
  color: inherit;
  text-decoration: none;
}

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

button,
input,
textarea { font: inherit; }

button,
a { -webkit-tap-highlight-color: transparent; }

h1,
h2,
h3,
h4,
p,
figure,
blockquote { margin-top: 0; }

h1,
h2,
h3,
h4 {
  margin-bottom: .58em;
  font-family: var(--atgas-font-display);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.215;
}

h1 { font-size: clamp(51.6px, calc(3.96vw + 12px), 87.24px); }
h2 { font-size: clamp(32.4px, calc(2.04vw + 12px), 50.76px); line-height: 1.305; }
h3 { font-size: clamp(19.2px, calc(.72vw + 12px), 25.68px); line-height: 1.365; }
h4 { font-size: clamp(21.6px, calc(.96vw + 12px), 30.24px); line-height: 1.355; }

p { margin-bottom: 1.15em; }

::selection {
  background: var(--yellow);
  color: var(--ink);
}

:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  top: -100px;
  left: 18px;
  z-index: 1000;
  padding: 11px 17px;
  background: var(--yellow);
  color: var(--ink);
  font-weight: 700;
}

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

.content-wide,
.service-shell {
  width: calc(100% - (2 * var(--gutter)));
  max-width: 1900px;
  margin-inline: auto;
}

.content-medium {
  width: min(69.7vw, 1325px);
  max-width: calc(100% - (2 * var(--gutter)));
  margin-inline: auto;
}

.centered-copy { text-align: center; }

.page-section {
  padding: clamp(82px, 8.15vw, 155px) var(--gutter);
}

.compact-section {
  padding-top: clamp(68px, 5.7vw, 108px);
  padding-bottom: clamp(55px, 4.8vw, 91px);
}

.pale-section,
.editorial-tinted-section { background: var(--pale); }

.eyebrow,
.service-eyebrow {
  margin-bottom: 1.1rem;
  font-size: clamp(12px, .92vw, 17.5px);
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.large-copy {
  font-size: var(--type-large);
  line-height: 1.22;
}

.button,
.header-cta,
.page-cta-button,
.mobile-booking-cta {
  display: inline-flex;
  width: fit-content;
  min-height: 49px;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 13px 26px;
  border: 0;
  border-radius: 300px;
  cursor: pointer;
  font-size: clamp(14px, 1.05vw, 20px);
  font-weight: 700;
  line-height: 1.2;
  transition: opacity 100ms linear;
}

.button:hover,
.header-cta:hover,
.page-cta-button:hover,
.mobile-booking-cta:hover { opacity: .8; }

.button,
.page-cta-button { letter-spacing: normal; }

.button-yellow,
.header-cta,
.mobile-booking-cta {
  background: var(--yellow);
  color: var(--ink);
}

.button-dark,
.page-cta-button {
  background: var(--ink);
  color: var(--paper);
}

.text-link {
  display: inline-block;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  font-weight: 500;
}

/* Header */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: var(--header-height);
  background: var(--paper);
  transform: translateY(0);
  transition: transform 140ms ease-in-out, background 140ms ease-in-out;
}

.site-header.is-hidden { transform: translateY(-100%); }

.header-inner {
  height: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: clamp(12px, 1.35vw, 26px);
  padding: 1.7vw var(--gutter);
}

.brand-link {
  display: inline-flex;
  align-items: center;
  justify-self: start;
}

.brand-link img {
  width: 182px;
  max-height: 68px;
  object-fit: contain;
}

.brand-link .brand-logo-inverse { display: none; }

.desktop-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  gap: clamp(10px, .9vw, 17px);
  white-space: nowrap;
}

.desktop-nav > a,
.nav-folder > button {
  position: relative;
  border: 0;
  padding: .1em 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: clamp(16.8px, calc(.48vw + 12px), 21.12px);
  font-weight: 300;
  line-height: 1.2;
}

.desktop-nav > a::after,
.nav-folder > button::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: .25em;
  left: 0;
  height: 1px;
  background: var(--ink);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 140ms ease;
}

.desktop-nav > a:hover::after,
.desktop-nav > a.is-active::after,
.nav-folder:hover > button::after,
.nav-folder.is-active > button::after { transform: scaleX(1); }

.nav-folder { position: relative; }

.nav-folder > button span {
  display: inline-block;
  margin-left: 3px;
  font-size: .72em;
  transition: transform 140ms ease;
}

.nav-folder:hover > button span { transform: rotate(180deg); }

.nav-dropdown {
  position: absolute;
  top: calc(100% + 1.3vw);
  right: 0;
  width: max-content;
  min-width: 220px;
  padding: .55em 1em;
  background: var(--paper);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 140ms ease, transform 140ms ease, visibility 140ms;
}

.nav-dropdown a {
  display: block;
  padding: .55em .15em;
  font-size: clamp(14px, 1.08vw, 20.5px);
  font-weight: 300;
}

.nav-dropdown a:hover,
.nav-dropdown a.is-active { text-decoration: underline; text-underline-offset: 4px; }

.nav-folder:hover .nav-dropdown,
.nav-folder:focus-within .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.header-socials {
  display: flex;
  align-items: center;
  gap: 9px;
}

.header-socials a {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
}

.header-socials svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.header-cta {
  min-width: 208px;
  justify-self: end;
  padding-inline: 18px;
  font-family: var(--atgas-font-interface);
  font-size: clamp(14.4px, calc(.24vw + 12px), 16.56px);
  line-height: normal;
  letter-spacing: normal;
  text-transform: none;
}

.menu-toggle,
.mobile-menu { display: none; }

/* Home */
.home-hero {
  position: relative;
  height: 100vh;
  min-height: 620px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #171d36;
  color: var(--paper);
}

.home-hero-image,
.home-hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-hero-image {
  object-fit: cover;
  object-position: 50% 50%;
}

.home-hero-overlay { background: rgba(23, 29, 54, .24); }

.home-hero-copy {
  position: relative;
  z-index: 1;
  width: min(86vw, 1520px);
  padding: 10vw var(--gutter);
  transform: translateY(5.8vh);
}

.home-hero h1 {
  margin: 0 0 24px;
  color: var(--paper);
  font-weight: 400;
}

.home-hero h2 {
  margin: 0;
  color: var(--paper);
  font-weight: 400;
}

.home-intro {
  height: clamp(518px, calc(20vw + 230px), 565px);
  min-height: 0;
  display: flex;
  align-items: center;
}

.home-intro h2 { margin-bottom: 18px; }
.home-intro h4 {
  max-width: 1050px;
  margin-bottom: 18px;
}
.home-intro p {
  max-width: 960px;
  font-size: var(--type-large);
  line-height: 1.2;
}
.home-intro .button {
  min-width: clamp(260px, 20.5vw, 390px);
  min-height: 54px;
  margin-top: 18px;
  font-size: var(--type-large);
  line-height: normal;
}

.editorial-split {
  height: clamp(510px, calc(33.8vw + 23px), 586px);
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, .84fr) minmax(0, 1fr);
  gap: clamp(65px, 7.8vw, 148px);
  padding: clamp(47px, 3.3vw, 63px) clamp(55px, 6.9vw, 131px);
}

.editorial-split-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0;
}

.editorial-split-copy p { max-width: 610px; }
.editorial-split-copy .button { margin-top: 14px; }

.editorial-split > img,
.editorial-split-media {
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  overflow: hidden;
}

.editorial-split > img,
.editorial-split-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.services-heading {
  height: clamp(270px, calc(15.1vw + 52.5px), 304px);
  min-height: 0;
  display: flex;
  align-items: center;
}

.services-heading .content-wide { width: calc(100% - (2 * var(--gutter))); }
.services-heading h2 { margin-bottom: 12px; }
.services-heading p:first-of-type {
  margin-bottom: 9px;
  font-size: clamp(18px, 1.26vw, 24px);
}
.services-heading p:first-of-type strong { font-weight: 500; }
.services-heading p { max-width: 1420px; }
.services-heading p:last-child { margin-bottom: 0; }

.service-strip {
  height: clamp(357px, calc(28vw - 46px), 420px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3.6vw, 68px);
  padding-top: clamp(47px, 3.3vw, 63px);
  padding-bottom: clamp(47px, 3.3vw, 63px);
}

.service-tile { display: block; }

.service-tile img {
  width: 100%;
  aspect-ratio: 1.326 / 1;
  object-fit: cover;
}

.service-tile h3 {
  margin: clamp(20px, 1.65vw, 31px) 0 0;
  font-family: var(--atgas-font-body);
  font-size: clamp(14px, .96vw, 18.2px);
  font-weight: 300;
  line-height: 1.3;
}

.service-tile p {
  margin: 0;
  color: var(--muted);
  font-size: clamp(14px, 1.02vw, 19.4px);
}

.gallery-reel-section {
  position: relative;
  height: 50vh;
  overflow: hidden;
  background: var(--pale);
}

.home-reel-spacer {
  height: clamp(78px, calc(5.625vw + 6px), 87px);
  background: var(--pale);
}

.gallery-reel {
  height: 100%;
  display: flex;
  gap: 2px;
  overflow-x: auto;
  padding: clamp(44px, 5.5vh, 52px) var(--gutter);
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}

.gallery-reel::-webkit-scrollbar { display: none; }

.gallery-reel img {
  width: min(32.15vw, 611px);
  height: calc(100% - clamp(88px, 11vh, 104px));
  flex: 0 0 auto;
  object-fit: cover;
  scroll-snap-align: center;
}

.reel-arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
  transform: translateY(-50%);
  transition: opacity 100ms linear;
}

.reel-arrow:hover { opacity: .8; }
.reel-arrow-prev { left: 1.2vw; }
.reel-arrow-next { right: 1.2vw; }

.editorial-note {
  height: 33vh;
  min-height: 0;
  display: flex;
  align-items: center;
  padding: 60px 0;
}

.editorial-note-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: clamp(45px, 7vw, 133px);
  align-items: start;
}

.editorial-note h2,
.editorial-note h3,
.editorial-note h4 { margin-bottom: 14px; }

.editorial-note p {
  max-width: 760px;
  margin-bottom: 20px;
  font-size: var(--type-large);
  line-height: 1.2;
}

.featured-projects {
  height: clamp(784px, calc(25vw + 464px), 824px);
  min-height: 0;
  padding-top: clamp(84px, calc(12.5vw - 76px), 104px);
  padding-bottom: clamp(84px, calc(12.5vw - 76px), 104px);
}

.featured-heading {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(50px, 8vw, 152px);
  align-items: start;
  margin-bottom: clamp(48px, 5.5vw, 104px);
}

.featured-heading h2,
.featured-heading p { margin-bottom: 0; }

.featured-points {
  margin: 0;
  padding: 0;
  list-style: none;
}

.featured-points li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 18px;
}

.featured-points li::before {
  content: "•";
  position: absolute;
  left: 0;
}

.project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(25px, 4.2vw, 80px);
}

.project-image {
  overflow: hidden;
  aspect-ratio: 3 / 2;
}

.project-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 400ms ease;
}

.project-card:hover .project-image img { transform: scale(1.1); }

.project-card h3 { margin: 18px 0 5px; }
.project-card p { margin: 0; color: var(--muted); }
.project-caption { margin-top: 18px !important; }
.project-caption strong { color: var(--ink); font-weight: 500; }

.testimonial-band,
.reviews-quote-band {
  height: clamp(313px, calc(12.5vw + 153px), 333px);
  min-height: 0;
  display: flex;
  align-items: center;
  padding: clamp(55px, 5.3vw, 101px) 0;
  background: var(--black);
  color: var(--yellow);
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(32px, 5vw, 95px);
}

.testimonial-band { padding-block: 42px; }

.testimonial-title {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--yellow);
}

.testimonial-grid blockquote {
  margin: 0;
  font-family: var(--atgas-font-body);
  font-size: var(--type-small);
  font-style: normal;
  font-weight: 300;
  line-height: 1.2;
}

.testimonial-grid cite {
  display: block;
  margin-top: 25px;
  color: var(--paper);
  font-family: var(--atgas-font-display);
  font-size: clamp(21.6px, calc(.96vw + 12px), 30.24px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.355;
  letter-spacing: normal;
}

/* Standard lead */
.page-hero {
  background: var(--paper);
}

.page-hero-content {
  width: min(900px, calc(100% - (2 * var(--gutter))));
  margin: 0 auto;
  padding: calc(var(--header-height) + clamp(85px, 8vw, 152px)) 0 clamp(58px, 5vw, 95px);
  text-align: center;
}

.page-hero-content > p:not(.eyebrow) {
  max-width: 720px;
  margin: 0 auto 28px;
  font-size: clamp(18px, 1.35vw, 25.7px);
}

.page-hero-content .button { margin-top: 18px; }

.page-hero-media {
  width: 100%;
  height: clamp(460px, 57vw, 1083px);
  overflow: hidden;
}

.page-hero-compact .page-hero-media { height: clamp(420px, 45vw, 855px); }

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

/* Service details */
.service-lead {
  padding: calc(var(--header-height) + clamp(90px, 8vw, 152px)) 0 clamp(60px, 6vw, 114px);
  background: var(--paper);
}

.service-lead-inner {
  max-width: 1004px;
  text-align: center;
}

.service-title { margin-bottom: 18px; }

.service-subtitle {
  margin-bottom: 16px;
  font-family: var(--atgas-font-display);
  font-size: clamp(24px, 2.3vw, 43.7px);
  line-height: 1.3;
}

.service-introduction {
  max-width: 740px;
  margin: 0 auto;
}

.service-lead-cta {
  position: relative;
  z-index: 2;
  margin-top: 29px;
  margin-bottom: -139px;
}

.service-hero-media {
  width: 100%;
  height: clamp(500px, 58vw, 1102px);
  margin: 0;
  overflow: hidden;
}

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

.service-statement {
  padding: clamp(85px, 8vw, 152px) 0;
  background: var(--paper);
}

.service-statement-inner {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(55px, 9vw, 171px);
  align-items: start;
}

.service-statement-title {
  margin-bottom: 0;
  font-size: clamp(49px, 7.5vw, 142px);
  line-height: .98;
}

.service-statement-copy {
  align-self: center;
  margin: 0;
  font-size: clamp(18px, 1.35vw, 25.7px);
}

.service-stages {
  padding: clamp(85px, 8vw, 152px) 0;
  background: var(--paper);
}

.service-section-heading {
  width: min(790px, 100%);
  margin-bottom: clamp(55px, 6vw, 114px);
}

.service-stage-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(26px, 4.2vw, 80px);
}

.service-stage { min-width: 0; }

.service-stage-media {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 25px;
  overflow: hidden;
}

.service-stage-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-stage-number,
.service-audience-number {
  display: block;
  margin-bottom: 22px;
  font-size: 13px;
  font-weight: 700;
}

.service-stage-content h3 { margin-bottom: 13px; }
.service-stage-content > p { color: var(--muted); }

.service-stage-points {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.service-stage-points li {
  padding: 11px 0;
  border-top: 1px solid var(--line);
  font-size: clamp(14px, 1vw, 19px);
}

.service-audience {
  padding: clamp(85px, 8vw, 152px) 0;
  background: var(--pale);
}

.service-audience-layout {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(60px, 9vw, 171px);
}

.service-audience-heading { margin-bottom: 0; }

.service-audience-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.service-audience-item {
  min-height: 325px;
  padding: 8px clamp(22px, 2.3vw, 44px) 0;
  border-left: 1px solid var(--line);
}

.service-audience-item p { color: var(--muted); }

/* Calls to action */
.page-cta {
  position: relative;
  overflow: hidden;
}

.page-cta--yellow {
  min-height: 238px;
  display: flex;
  align-items: center;
  background: var(--yellow);
  color: var(--ink);
}

.page-cta--image {
  height: clamp(258px, calc(24.375vw - 54px), 297px);
  min-height: 0;
  display: flex;
  align-items: center;
  background: #171d36;
  color: var(--paper);
}

.page-cta-image,
.page-cta-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.page-cta-image { object-fit: cover; object-position: center 56%; }
.page-cta-shade { background: rgba(0, 0, 0, .38); }

.page-cta-inner {
  position: relative;
  z-index: 1;
  width: calc(100% - (2 * var(--gutter)));
  max-width: 1900px;
  margin-inline: auto;
}

.page-cta-inner h2 {
  max-width: 950px;
  margin-bottom: 24px;
}

.page-cta--image .page-cta-inner h2 {
  max-width: 1200px;
  margin: 0;
  color: var(--yellow);
}

.page-cta-heading-link { display: block; }
.page-cta-heading-link span { display: block; }
.page-cta-heading-link span + span {
  margin-top: .12em;
  color: var(--paper);
}

.page-cta-eyebrow {
  margin-bottom: 10px;
  font-size: clamp(12px, .9vw, 17px);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.page-cta--image .page-cta-button {
  background: var(--yellow);
  color: var(--ink);
}

/* Footer */
.site-footer {
  min-height: clamp(322px, calc(17.5vw + 98px), 350px);
  background: var(--ink);
  color: var(--paper);
}

.footer-main {
  display: grid;
  grid-template-columns: 270px minmax(230px, .85fr) minmax(320px, 1.35fr);
  gap: clamp(54px, 6.7vw, 127px);
  padding: clamp(48px, 3.45vw, 66px) var(--gutter) 26px;
}

.footer-brand img {
  width: min(270px, 100%);
  height: auto;
}

.footer-brand > p {
  max-width: 390px;
  margin: 22px 0 0;
  color: rgba(255, 255, 255, .72);
  font-size: clamp(13px, .92vw, 17.5px);
}

.footer-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-label {
  margin-bottom: 15px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.footer-column a,
.footer-column > p:not(.footer-label) {
  margin-bottom: 7px;
  font-size: clamp(13px, .93vw, 17.7px);
}

.footer-column a:hover { text-decoration: underline; text-underline-offset: 3px; }

.footer-phone,
.footer-booking-link {
  color: var(--paper);
  font-weight: 300;
}

.footer-phone {
  margin-bottom: 13px !important;
  font-family: var(--atgas-font-body);
  font-size: clamp(27px, 2.16vw, 41px) !important;
  line-height: 1;
}

.footer-booking-link {
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}

.footer-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(38px, 6vw, 114px);
}

.footer-links,
.footer-social-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-links a,
.footer-social-links a {
  margin-bottom: 8px;
  font-size: clamp(13px, .93vw, 17.7px);
  font-weight: 300;
}

.footer-links a:hover,
.footer-social-links a:hover { text-decoration: underline; text-underline-offset: 3px; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  padding: 10px var(--gutter) 25px;
  font-size: clamp(11px, .78vw, 14.8px);
}

.footer-bottom p { margin: 0; }

.footer-legal {
  display: flex;
  gap: 28px;
}

/* Editorial inner pages */
.editorial-page { background: var(--paper); }

.editorial-inset-hero {
  padding: calc(var(--header-height) + 40px) var(--gutter) 0;
}

.editorial-inset-media {
  width: 100%;
  height: clamp(550px, 62vw, 1178px);
  margin: 0;
  overflow: hidden;
}

.editorial-inset-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.editorial-intro {
  min-height: 500px;
  display: flex;
  align-items: center;
  padding: clamp(85px, 8vw, 152px) var(--gutter);
}

.editorial-intro-inner {
  width: min(1004px, 100%);
  margin: 0 auto;
  text-align: center;
}

.editorial-intro-lede {
  font-family: var(--atgas-font-display);
  font-size: clamp(23px, 2vw, 38px);
  line-height: 1.3;
}

.editorial-section-heading {
  width: min(900px, 100%);
  margin-bottom: clamp(55px, 6vw, 114px);
}

.editorial-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 4.15vw, 79px);
}

.editorial-image-card figure {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 25px;
  overflow: hidden;
}

.editorial-image-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.editorial-image-card-copy > span {
  display: block;
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 700;
}

.editorial-image-card-copy h3 { margin-bottom: 13px; }
.editorial-image-card-copy p { color: var(--muted); }

.editorial-wide-section,
.editorial-tinted-section {
  padding: clamp(90px, 8vw, 152px) var(--gutter);
}

.editorial-wide-media {
  position: relative;
  height: clamp(500px, 58vw, 1102px);
  overflow: hidden;
}

.editorial-wide-media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* About */
.about-story {
  height: auto;
  min-height: 590px;
  background: var(--pale);
}

.about-principles {
  background: var(--pale-strong);
}

.about-principles-heading { margin-inline: auto; text-align: center; }

.about-process-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.about-process-item {
  display: grid;
  grid-template-columns: 90px minmax(220px, .72fr) 1.28fr;
  gap: clamp(30px, 4vw, 76px);
  padding: 34px 0;
  border-bottom: 1px solid var(--line);
}

.about-process-item > span {
  font-size: 13px;
  font-weight: 700;
}

.about-process-item h3,
.about-process-item p { margin: 0; }
.about-process-item p { color: var(--muted); }

.about-closing-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(23, 29, 54, .22);
}

.about-closing-copy {
  position: absolute;
  bottom: clamp(45px, 6vw, 114px);
  left: var(--gutter);
  z-index: 1;
  max-width: 950px;
  color: var(--paper);
}

.about-closing-copy h2 {
  margin: 0;
  color: var(--yellow);
}

/* Work and review image-title heroes */
.work-hero,
.reviews-hero {
  position: relative;
  height: clamp(610px, 72vw, 1368px);
  margin-top: var(--header-height);
  overflow: hidden;
}

.work-hero-media,
.reviews-hero-media {
  width: 100%;
  height: 100%;
  margin: 0;
}

.work-hero-media::after,
.reviews-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .06);
}

.work-hero-media img,
.reviews-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.work-hero-title,
.reviews-hero-title {
  position: absolute;
  top: 20px;
  left: var(--gutter);
  z-index: 1;
  margin: 0;
  color: var(--ink);
  font-size: clamp(112px, 11.15vw, 212px);
  line-height: .92;
}

.work-intro { min-height: 430px; }

.work-gallery {
  padding: 0 var(--gutter) clamp(95px, 9vw, 171px);
}

.work-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(45px, 5vw, 95px) clamp(30px, 4.15vw, 79px);
}

.work-card { margin: 0; }

.work-card > img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 400ms ease;
}

.work-card:hover > img { transform: scale(1.025); }

.work-card figcaption {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 15px;
}

.work-card figcaption span { color: var(--muted); }
.work-card figcaption strong { font-family: var(--atgas-font-display); font-size: 22px; font-weight: 400; }

.work-case-study {
  height: auto;
  min-height: 545px;
  background: var(--yellow);
}

.work-case-study-points {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.work-case-study-points li {
  padding: 11px 0;
  border-top: 1px solid rgba(24, 24, 24, .35);
}

.work-principles-heading { max-width: 1004px; }

.work-principles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 4.15vw, 79px);
}

.work-principle {
  aspect-ratio: 3 / 2;
  margin: 0;
  overflow: hidden;
}

.work-principle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Services overview */
.services-hero {
  background: var(--paper);
}

.services-hero-copy {
  width: min(1004px, calc(100% - (2 * var(--gutter))));
  margin: 0 auto;
  padding: calc(var(--header-height) + clamp(90px, 8vw, 152px)) 0 clamp(62px, 6vw, 114px);
  text-align: center;
}

.services-hero-copy > p:not(.eyebrow) {
  max-width: 740px;
  margin-inline: auto;
}

.services-hero-copy .button {
  position: relative;
  z-index: 2;
  margin-top: 20px;
  margin-bottom: -139px;
}

.services-hero-media {
  width: 100%;
  height: clamp(520px, 61vw, 1159px);
  margin: 0;
  overflow: hidden;
}

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

.services-disciplines {
  padding: clamp(90px, 8vw, 152px) var(--gutter);
}

.services-disciplines-heading { margin-inline: auto; text-align: center; }

.services-discipline-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 4.15vw, 79px);
}

.services-discipline-media {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 24px;
  overflow: hidden;
}

.services-discipline-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.services-discipline-copy h3 { margin-bottom: 13px; }
.services-discipline-copy p { color: var(--muted); }

.services-discipline-copy a {
  display: inline-block;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  font-weight: 500;
}

.services-process {
  height: auto;
  min-height: 0;
  background: var(--pale);
}

.services-process-copy {
  padding-top: clamp(75px, 7vw, 133px);
  padding-bottom: clamp(75px, 7vw, 133px);
}

.services-process-copy > h2 {
  font-size: clamp(60px, 8.8vw, 167px);
  line-height: .95;
}

.services-process-list {
  width: 100%;
  margin: 25px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.services-process-list li {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.services-process-list li > span { font-size: 13px; font-weight: 700; }
.services-process-list h3 { margin: 0 0 4px; font-size: 20px; }
.services-process-list p { margin: 0; color: var(--muted); font-size: 15px; }

.services-rates { background: var(--pale-strong); }
.services-rates-heading { max-width: 1004px; }

.services-rate-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
}

.services-rate-card {
  min-height: 315px;
  display: flex;
  flex-direction: column;
  padding: 29px clamp(16px, 1.7vw, 32px);
  border-right: 1px solid var(--line);
}

.services-rate-card:first-child { border-left: 1px solid var(--line); }
.services-rate-card h3 { min-height: 62px; font-size: clamp(18px, 1.32vw, 25px); }
.services-rate-card p { color: var(--muted); font-size: clamp(13px, .9vw, 17px); }
.services-rate-card strong { margin-top: auto; font-family: var(--atgas-font-display); font-size: 19px; font-weight: 400; }
.services-rate-card a { width: fit-content; margin-top: 15px; border-bottom: 1px solid currentColor; font-weight: 500; }

/* Contact */
.contact-opening {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
  column-gap: clamp(10px, 1vw, 20px);
  align-items: start;
  padding: calc(var(--header-height) + clamp(8px, 1vw, 18px)) var(--gutter) clamp(80px, 6.4vw, 122px);
}

.contact-opening-title h1 {
  font-size: clamp(32.4px, calc(2.04vw + 12px), 50.76px);
  line-height: 1.305;
}

.contact-opening-body {
  width: 100%;
  max-width: 665px;
  padding-top: clamp(90px, 7vw, 105px);
}

.contact-opening-lede {
  font-family: var(--atgas-font-display);
  font-size: clamp(19.2px, calc(.72vw + 12px), 25.68px);
  line-height: 1.366;
}

.contact-booking-grid {
  margin-top: clamp(45px, 5vw, 95px);
  border-top: 1px solid var(--ink);
}

.contact-booking-card {
  padding: 31px 0 35px;
  border-bottom: 1px solid var(--ink);
}

.contact-booking-heading {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 20px;
  align-items: baseline;
}

.contact-booking-heading h2 {
  margin-bottom: 11px;
  font-size: clamp(19.2px, calc(.72vw + 12px), 25.68px);
  line-height: 1.366;
}

.contact-booking-price { font-weight: 700; }
.contact-booking-card > p { margin-left: 110px; }
.contact-booking-card .button { margin: 10px 0 0 110px; }

.contact-booking-embed {
  margin-top: clamp(20px, 2vw, 38px);
  border-top: 1px solid var(--line);
  padding-top: clamp(22px, 1.8vw, 34px);
}

.contact-booking-embed-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.contact-booking-embed-heading > div { max-width: 470px; }

.contact-booking-embed-heading .eyebrow { margin-bottom: 8px; }

.contact-booking-embed-heading h2 {
  margin: 0 0 8px;
  font-size: clamp(19.2px, calc(.72vw + 12px), 25.68px);
  line-height: 1.366;
}

.contact-booking-embed-heading > div > p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: var(--type-small);
}

.contact-booking-embed-heading > a:not(.button) {
  flex: 0 0 auto;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  font-size: var(--type-small);
  font-weight: 500;
}

.contact-booking-external { flex: 0 0 auto; }

.contact-booking-frame {
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper);
}

.contact-booking-embed iframe {
  width: 100%;
  height: 680px;
  display: block;
  border: 0;
  background: var(--paper);
}

.contact-booking-fallback {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: var(--type-small);
}

.contact-booking-fallback a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-find {
  min-height: 594px;
  display: grid;
  grid-template-columns: .46fr .54fr;
  background: var(--pale);
}

.contact-find-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(65px, 7vw, 133px) clamp(43px, 6.5vw, 124px) clamp(65px, 7vw, 133px) var(--gutter);
}

.contact-details-list {
  width: 100%;
  margin: 25px 0 25px;
}

.contact-details-list > div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}

.contact-details-list dt { font-weight: 500; }
.contact-details-list dd { margin: 0; }
.contact-details-list a { text-decoration: underline; text-underline-offset: 3px; }

.contact-find-map { min-height: 594px; }

.contact-find-map iframe {
  width: 100%;
  height: 100%;
  min-height: 594px;
  border: 0;
  filter: grayscale(1) contrast(.92);
}

/* Reviews */
.reviews-summary h2 strong {
  color: #c8a300;
  font-size: 1.7em;
  font-weight: 400;
}

.reviews-summary .button { margin-top: 20px; }

.reviews-quote-band {
  height: auto;
  min-height: 0;
  display: block;
  padding: clamp(80px, 7.5vw, 143px) var(--gutter);
}

.reviews-quote-heading {
  width: min(900px, 100%);
  margin-bottom: clamp(50px, 5vw, 95px);
}

.reviews-quote-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(35px, 5vw, 95px);
}

.reviews-quote {
  margin: 0;
  color: var(--yellow);
}

.reviews-quote p {
  font-family: var(--atgas-font-display);
  font-size: clamp(20px, 1.55vw, 29.5px);
  line-height: 1.35;
}

.reviews-quote cite {
  display: block;
  margin-top: 24px;
  color: var(--paper);
  font-size: 13px;
  font-style: normal;
}

.reviews-values-heading { max-width: 1004px; }

.reviews-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.reviews-value {
  min-height: 300px;
  padding: 8px clamp(30px, 4vw, 76px) 0;
  border-left: 1px solid var(--line);
}

.reviews-value > span {
  display: block;
  margin-bottom: 75px;
  font-size: 13px;
  font-weight: 700;
}

.reviews-value p { color: var(--muted); }

@media (min-width: 800px) and (max-width: 1180px) {
  .header-inner {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
  }

  .brand-link img { width: 145px; }
  .header-socials { display: none; }

  .desktop-nav {
    gap: 9px;
  }

  .desktop-nav > a,
  .nav-folder > button { font-size: 14px; }

  .header-cta {
    min-width: 154px;
    padding-inline: 17px;
    font-size: 12px;
  }

  .services-rate-grid { grid-template-columns: repeat(3, 1fr); }
  .services-rate-card:nth-child(4) { border-left: 1px solid var(--line); }
}

@media (max-width: 799px) {
  :root {
    --header-height: 84px;
    --gutter: 6vw;
    --type-base: 15.0384px;
    --type-large: 16.0512px;
    --type-small: 13.0128px;
  }

  body {
    font-size: var(--type-base);
    line-height: 1.2;
  }

  h1 {
    font-size: 45.422px;
    line-height: 1.215;
  }

  h2 {
    font-size: 29.218px;
    line-height: 1.305;
  }

  h3 {
    font-size: 18.077px;
    line-height: 1.366;
  }

  h4 {
    font-size: 20.102px;
    line-height: 1.355;
  }

  .content-wide,
  .service-shell,
  .content-medium {
    width: calc(100% - (2 * var(--gutter)));
    max-width: none;
  }

  .page-section {
    padding-top: 76px;
    padding-bottom: 76px;
  }

  .compact-section {
    padding-top: 68px;
    padding-bottom: 55px;
  }

  .eyebrow,
  .service-eyebrow { font-size: 11px; }

  .large-copy { font-size: 16.051px; }

  .button,
  .header-cta,
  .page-cta-button,
  .mobile-booking-cta {
    min-height: 47px;
    padding: 12px 23px;
    font-size: 16.051px;
  }

  /* Mobile navigation */
  .header-inner {
    position: relative;
    display: flex;
    justify-content: flex-end;
    padding: 0 var(--gutter);
  }

  .brand-link {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 203;
    transform: translate(-50%, -50%);
  }

  .brand-link img {
    width: 150px;
    max-height: 48px;
    transition: filter 200ms ease;
  }

  .desktop-nav,
  .header-socials,
  .header-cta { display: none; }

  .menu-toggle {
    position: relative;
    z-index: 203;
    width: 47px;
    height: 37px;
    display: block;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
  }

  .menu-line {
    position: absolute;
    top: 50%;
    left: 6px;
    width: 35px;
    height: 3px;
    background: var(--ink);
    transform-origin: center;
    transition: transform 250ms cubic-bezier(.2, .6, .3, 1), background 200ms ease, opacity 200ms ease;
  }

  .menu-line:nth-child(1) { transform: translateY(-11px); }
  .menu-line:nth-child(2) { transform: translateY(-1.5px); }
  .menu-line:nth-child(3) { transform: translateY(8px); }

  .site-header.menu-is-open {
    background: var(--ink);
    transform: none;
  }

  .site-header.menu-is-open .brand-logo-default { display: none; }
  .site-header.menu-is-open .brand-logo-inverse { display: block; }

  .site-header.menu-is-open .menu-line { background: var(--paper); }
  .site-header.menu-is-open .menu-line:nth-child(1) { width: 28px; transform: translate(3px, -1.5px) rotate(45deg); }
  .site-header.menu-is-open .menu-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .site-header.menu-is-open .menu-line:nth-child(3) { width: 28px; transform: translate(3px, -1.5px) rotate(-45deg); }

  .mobile-menu {
    position: fixed;
    top: var(--header-height);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 200;
    display: block;
    overflow: hidden;
    background: var(--ink);
    color: var(--paper);
    opacity: 0;
    visibility: hidden;
    transition: opacity 400ms cubic-bezier(.4, 0, .2, 1), visibility 400ms;
  }

  .mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
  }

  .mobile-menu-track {
    width: 200%;
    height: 100%;
    display: grid;
    grid-template-columns: repeat(2, 50%);
    transition: transform 600ms cubic-bezier(.4, 0, .2, 1);
  }

  .mobile-menu-track.is-services { transform: translateX(-50%); }

  .mobile-menu-panel {
    width: 100%;
    min-width: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    padding: 0 var(--gutter) 165px;
  }

  .mobile-menu-panel nav {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .mobile-menu-panel nav > a,
  .mobile-menu-panel nav > button {
    position: relative;
    width: auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    border: 0;
    margin: 3vw 5vw;
    padding: 0;
    background: transparent;
    color: var(--paper);
    cursor: pointer;
    font-family: var(--atgas-font-body);
    font-size: 8.5vw;
    font-weight: 300;
    line-height: 1;
    text-align: center;
    transition: opacity 250ms ease;
  }

  .mobile-menu-panel nav > a:hover,
  .mobile-menu-panel nav > button:hover { opacity: .9; }

  .mobile-menu-panel nav > .is-active { color: var(--paper); }

  .mobile-menu-panel nav > button span {
    font-size: .7em;
  }

  .mobile-menu-services nav > .mobile-back {
    min-width: 0;
    align-self: flex-start;
    justify-content: flex-start;
    border: 1px solid rgba(255, 255, 255, .72);
    margin: 0 0 6vw;
    padding: 9px 15px;
    font-size: 15px;
  }

  .mobile-menu-footer {
    position: absolute;
    right: var(--gutter);
    bottom: 24px;
    left: var(--gutter);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px;
  }

  .mobile-booking-cta {
    min-width: 210px;
    font-family: var(--atgas-font-interface);
    font-size: 14px;
    line-height: normal;
    letter-spacing: normal;
    text-transform: none;
  }

  .mobile-menu-socials {
    display: flex;
    align-items: center;
    gap: 20px;
  }

  .mobile-menu-socials a {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
  }

  .mobile-menu-socials svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
  }

  /* Mobile home */
  .home-hero {
    height: 100svh;
    min-height: 620px;
    align-items: center;
  }

  .home-hero-image { object-position: 52% center; }
  .home-hero-overlay { background: rgba(23, 29, 54, .28); }

  .home-hero-copy {
    width: 100%;
    padding: 10vh var(--gutter);
    transform: translateY(4vh);
  }

  .home-hero h1 {
    margin-bottom: 20px;
    font-size: 45.422px;
  }

  .home-hero h2 {
    font-size: 29.218px;
  }

  .home-intro {
    height: 570px;
    min-height: 570px;
  }

  .home-intro .content-medium {
    width: 100%;
    max-width: none;
  }

  .home-intro .button {
    width: min(310px, 100%);
    min-width: 0;
    min-height: 50px;
    padding-inline: 18px;
    font-size: var(--type-large);
    white-space: nowrap;
  }

  .editorial-split {
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
  }

  .editorial-split-copy {
    padding: 48px var(--gutter);
  }

  .editorial-split > img,
  .editorial-split-media {
    min-height: 0;
    height: 320px;
  }

  .services-heading {
    height: 406px;
    min-height: 406px;
  }

  .service-strip {
    height: auto;
    grid-template-columns: 1fr;
    gap: 80px;
    padding-bottom: 53px;
  }

  .service-tile img {
    aspect-ratio: 1.326 / 1;
  }

  .service-tile h3 { margin-top: 16px; }

  .gallery-reel-section {
    height: 422px;
  }

  .gallery-reel {
    gap: 12px;
    padding: 0 0 0 var(--gutter);
  }

  .gallery-reel img {
    width: 162vw;
    height: 422px;
  }

  .home-reel-spacer { height: 24px; }

  .reel-arrow {
    width: 39px;
    height: 39px;
    font-size: 20px;
  }

  .reel-arrow-prev { left: 9px; }
  .reel-arrow-next { right: 9px; }

  .editorial-note {
    height: 354px;
    min-height: 354px;
    padding: 65px 0;
  }

  .editorial-note-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .featured-projects {
    height: auto;
    min-height: 0;
    padding-top: 112px;
    padding-bottom: 117px;
  }

  .featured-heading {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 80px;
  }

  .project-grid {
    grid-template-columns: 1fr;
    gap: 80px;
  }

  .project-image { aspect-ratio: 3 / 2; }

  .testimonial-band {
    height: 656px;
    min-height: 656px;
    padding: 45px 0;
  }

  .testimonial-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .testimonial-grid cite { font-size: 20.102px; }

  /* Mobile standard page and service details */
  .page-hero-content {
    padding: calc(var(--header-height) + 75px) 0 55px;
  }

  .page-hero-media,
  .page-hero-compact .page-hero-media {
    height: 430px;
  }

  .service-lead {
    padding: calc(var(--header-height) + 75px) 0 54px;
  }

  .service-title { font-size: 36.7px; }
  .service-subtitle { font-size: 22px; }

  .service-lead-cta {
    margin-top: 24px;
    margin-bottom: -101px;
  }

  .service-hero-media { height: 470px; }

  .service-statement {
    padding: 76px 0;
  }

  .service-statement-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .service-statement-title {
    font-size: 55px;
  }

  .service-statement-copy { font-size: 16px; }

  .service-stages,
  .service-audience {
    padding: 78px 0;
  }

  .service-section-heading { margin-bottom: 48px; }

  .service-stage-grid {
    grid-template-columns: 1fr;
    gap: 58px;
  }

  .service-stage-media { margin-bottom: 22px; }

  .service-audience-layout {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .service-audience-list {
    grid-template-columns: 1fr;
  }

  .service-audience-item {
    min-height: 0;
    padding: 28px 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  /* Mobile inner pages */
  .editorial-inset-hero {
    padding: calc(var(--header-height) + 28px) var(--gutter) 0;
  }

  .editorial-inset-media {
    height: 460px;
  }

  .editorial-intro {
    min-height: 0;
    padding-top: 76px;
    padding-bottom: 76px;
  }

  .editorial-intro-lede { font-size: 22px; }

  .editorial-section-heading {
    margin-bottom: 48px;
  }

  .editorial-card-grid {
    grid-template-columns: 1fr;
    gap: 52px;
  }

  .editorial-wide-section,
  .editorial-tinted-section {
    padding: 78px var(--gutter);
  }

  .editorial-wide-media { height: 460px; }

  .about-process-item {
    grid-template-columns: 42px 1fr;
    gap: 17px;
    padding: 25px 0;
  }

  .about-process-item p { grid-column: 2; }

  .about-closing-copy {
    right: var(--gutter);
    bottom: 45px;
  }

  .work-hero,
  .reviews-hero {
    height: 560px;
  }

  .work-hero-title,
  .reviews-hero-title {
    top: 18px;
    left: -4px;
    font-size: 92.9px;
    white-space: nowrap;
  }

  .work-intro { min-height: 0; }

  .work-gallery {
    padding-bottom: 84px;
  }

  .work-grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .work-principles-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .services-hero-copy {
    padding: calc(var(--header-height) + 75px) 0 53px;
  }

  .services-hero-copy h1 { font-size: 36.7px; }

  .services-hero-copy .button {
    margin-bottom: -100px;
  }

  .services-hero-media { height: 470px; }

  .services-disciplines {
    padding: 78px var(--gutter);
  }

  .services-discipline-grid {
    grid-template-columns: 1fr;
    gap: 55px;
  }

  .services-process-copy > h2 {
    font-size: 62px;
  }

  .services-rate-grid {
    grid-template-columns: 1fr;
  }

  .services-rate-card,
  .services-rate-card:first-child,
  .services-rate-card:nth-child(4) {
    min-height: 240px;
    padding: 28px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    border-left: 0;
  }

  .services-rate-card h3 { min-height: 0; }

  .contact-opening {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 28px;
    padding: var(--header-height) var(--gutter) 76px;
  }

  .contact-opening-title h1 { font-size: 29.218px; }
  .contact-opening-body { padding-top: 0; }
  .contact-opening-lede { font-size: 18.077px; }

  .contact-booking-heading {
    grid-template-columns: 72px 1fr;
  }

  .contact-booking-card > p,
  .contact-booking-card .button {
    margin-left: 92px;
  }

  .contact-booking-embed-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact-booking-embed iframe { height: 620px; }

  .contact-find {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .contact-find-copy {
    padding: 76px var(--gutter);
  }

  .contact-find-map,
  .contact-find-map iframe {
    min-height: 420px;
    height: 420px;
  }

  .reviews-quote-grid,
  .reviews-values-grid {
    grid-template-columns: 1fr;
  }

  .reviews-quote-band { height: auto; }

  .reviews-quote-grid { gap: 42px; }

  .reviews-value {
    min-height: 0;
    padding: 28px 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .reviews-value > span { margin-bottom: 28px; }

  /* Mobile CTA and footer */
  .page-cta--yellow,
  .page-cta--image {
    min-height: 279px;
  }

  .page-cta-inner h2 {
    margin-bottom: 20px;
  }

  .site-footer { min-height: 377px; }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 8px var(--gutter) 10px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .footer-brand img { width: 243px; }
  .footer-brand > p { display: none; }

  .footer-contact { grid-column: 1 / -1; }

  .footer-contact > p { display: none; }

  .footer-phone { font-size: 35.4px !important; }

  .footer-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
  }

  .footer-links a:nth-child(-n + 2) { display: none; }

  .footer-column a,
  .footer-links a,
  .footer-social-links a {
    font-size: 13px;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px var(--gutter) 18px;
    font-size: 13px;
    text-align: center;
  }

  .footer-legal {
    flex-direction: column;
    gap: 4px;
  }
}

@media (max-width: 767px) {
  .brand-link img {
    width: 97px;
    max-height: 36px;
  }
}

@media (max-width: 430px) {
  .mobile-menu-panel nav > a,
  .mobile-menu-panel nav > button {
    font-size: 33.15px;
  }

  .contact-booking-heading {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .contact-booking-card > p,
  .contact-booking-card .button {
    margin-left: 0;
  }

  .contact-details-list > div {
    grid-template-columns: 105px 1fr;
  }
}

@media (min-width: 800px) and (max-width: 1050px) {
  .contact-opening {
    grid-template-columns: 1fr;
    gap: 34px;
    padding-top: calc(var(--header-height) + 34px);
  }

  .contact-opening-title,
  .contact-opening-body {
    width: min(665px, 100%);
    max-width: 665px;
    margin-inline: auto;
  }

  .contact-opening-body { padding-top: 0; }

  .footer-main {
    grid-template-columns: minmax(200px, .7fr) minmax(0, 1.3fr);
    gap: 38px;
  }

  .footer-meta { grid-column: 1 / -1; }
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* WordPress and Elementor integration. */
body.admin-bar .site-header { top: 32px; }

.atgas-elementor-page,
.atgas-elementor-page > .elementor,
.atgas-elementor-page > .elementor > .elementor-element {
  width: 100%;
  max-width: none;
}

/* Keep Elementor Kit defaults from replacing the theme's type and link colours. */
.atgas-elementor-page .elementor-widget-html,
.atgas-elementor-page .elementor-widget-html a,
.site-header,
.site-header a,
.site-footer,
.site-footer a {
  font-family: var(--atgas-font-body);
}

.atgas-elementor-page .elementor-widget-html h1,
.atgas-elementor-page .elementor-widget-html h2,
.atgas-elementor-page .elementor-widget-html h3,
.atgas-elementor-page .elementor-widget-html h4 {
  font-family: var(--atgas-font-display) !important;
  font-weight: 400;
}

.atgas-elementor-page .elementor-widget-html a { color: inherit; }

.atgas-elementor-page .elementor-widget-html .button-yellow,
.atgas-elementor-page .elementor-widget-html .header-cta,
.atgas-elementor-page .elementor-widget-html .mobile-booking-cta {
  color: var(--ink);
}

.atgas-elementor-page .elementor-widget-html .button-dark,
.atgas-elementor-page .elementor-widget-html .page-cta-button {
  color: var(--paper);
}

.atgas-elementor-page .e-con.atgas-el-section,
.atgas-elementor-page .elementor-section.atgas-el-section {
  --container-max-width: none;
  --content-width: 100%;
  --width: 100%;
  --min-height: 0px;
  --flex-direction: column;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.atgas-elementor-page .atgas-el-section > .e-con-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.atgas-elementor-page .atgas-section-html,
.atgas-elementor-page .atgas-section-html > .elementor-widget-container,
.atgas-elementor-page .atgas-el-section > .elementor-widget-html,
.atgas-elementor-page .atgas-el-section > .elementor-widget-html > .elementor-widget-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.atgas-elementor-page .elementor-widget-html:has(> .elementor-widget-container:empty) {
  display: none;
}

.site-header ul,
.site-footer ul,
.site-header ol,
.site-footer ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

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