/* All desktop dimensions follow the 1920px design board. */ @font-face {
  font-family:Cinzel;
  src:url('assets/fonts/cinzel.woff2') format('woff2');
  font-weight:400 900;
  font-style:normal;
  font-display:swap
}
@font-face {
  font-family:'Futura (Light)';
  src:url('assets/fonts/futura-light.woff2') format('woff2');
  font-weight:300;
  font-style:normal;
  font-display:swap
}
@font-face {
  font-family:'Savoye LET';
  src:url('assets/fonts/savoye-let.woff2') format('woff2'),local('Savoye LET');
  font-weight:400;
  font-style:normal;
  font-display:swap
}
:root {
  --navy:#021d46;
  --white:#f5f5f5;
  --gold:#b99b50;
  --title:clamp(24px,3.125vw,80px);
  --script-size:clamp(20px,2.083333vw,53.334px);
  --body-size:clamp(14px,1.041667vw,26.667px);
  --serif:Cinzel,Georgia,serif;
  --sans:'Futura (Light)',Futura,Arial,sans-serif;
  --script:'Savoye LET',cursive
}
* {
  box-sizing:border-box
}
html {
  margin:0;
  background:var(--navy);
  scrollbar-width:none;
  scroll-padding-top:0
}
html::-webkit-scrollbar {
  display:none
}
body {
  margin:0;
  background:var(--navy);
  color:var(--white);
  font-family:var(--sans);
  font-weight:300
}
a {
  color:inherit;
  text-decoration:none
}
button {
  color:inherit;
  font:inherit;
  cursor:pointer
}
img,video {
  display:block;
  max-width:100%
}
h1,h2,h3,p,blockquote {
  margin:0
}
h1,h2 {
  font-family:var(--serif);
  font-size:var(--title);
  font-weight:400;
  line-height:1.35
}
h1,h2,.nav-group,.button,.founder-role,.footer-column>a {
  text-transform:uppercase
}
a:focus-visible,button:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:6px
}
.body-copy {
  font:300 var(--body-size)/1.9 var(--sans)
}
.script {
  font:400 var(--script-size)/1.2 var(--script);
  font-synthesis:none
}
.skip-link {
  position:fixed;
  z-index:100;
  top:12px;
  left:12px;
  padding:14px;
  background:var(--white);
  color:var(--navy);
  transform:translateY(-160%)
}
.skip-link:focus {
  transform:none
}
.page-grid {
  position:absolute;
  z-index:6;
  inset:0 0 auto;
  height:100%;
  pointer-events:none
}
.page-grid i {
  position:absolute;
  top:0;
  bottom:0;
  width:1px;
  background:rgba(219,231,245,.13)
}
.page-grid i:nth-child(1) {
  left:13.45%
}
.page-grid i:nth-child(2) {
  left:31.72%
}
.page-grid i:nth-child(3) {
  left:50%
}
.page-grid i:nth-child(4) {
  left:68.28%
}
.page-grid i:nth-child(5) {
  left:86.55%
}
.site-header {
  position:fixed;
  z-index:30;
  inset:0 0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:start;
  padding:3.333333vw 3.125vw 1.6vw;
  transform-origin:top center;
  transition:transform .3s cubic-bezier(.37,0,.63,1),background .4s,backdrop-filter .4s
}
.site-header.is-scrolled {
  background:transparent;
  backdrop-filter:none
}
.site-header.is-hidden {
  transform:translateY(-100%);
  pointer-events:none
}
.brand {
  width:3.44vw;
  min-width:42px;
  justify-self:center
}
.brand img {
  width:100%;
  height:auto
}
.nav-group {
  display:flex;
  align-items:center;
  gap:1.5vw;
  font:400 24px/1.2 var(--serif);
  white-space:nowrap
}
.nav-right {
  justify-content:flex-end;
  gap:1.5vw
}
.nav-group>a,.nav-group>button {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  width:9.4vw;
  min-width:180px;
  min-height:50px;
  padding:10px 8px;
  border:0;
  border-radius:0;
  background:rgba(0,0,0,.28);
  font:inherit;
  text-transform:inherit;
  text-align:center;
  transition:background-color .25s
}
.nav-group>a:hover,.nav-group>button:hover,
.nav-group>a:focus-visible,.nav-group>button:focus-visible {
  background:var(--navy)
}
.menu-toggle,.menu-close,.menu-mobile-links {
  display:none
}
body.menu-open {
  overflow:hidden
}
.navigation-overlay {
  position:fixed;
  z-index:60;
  inset:0;
  visibility:hidden;
  pointer-events:none;
  transition:visibility 0s .8s
}
.navigation-overlay.is-open {
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s
}
.menu-backdrop {
  position:absolute;
  inset:0;
  background:rgba(31,42,68,.3);
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);
  opacity:0;
  transition:opacity .4s
}
.is-open .menu-backdrop {
  opacity:1
}
.menu-card {
  position:absolute;
  top:2.2%;
  bottom:3.6%;
  left:1.17%;
  width:max(520px,37.7%);
  background:#fff;
  color:var(--navy);
  clip-path:inset(0 100% 0 0);
  transition:clip-path .45s cubic-bezier(.76,0,.24,1)
}
.is-open .menu-card {
  clip-path:inset(0 0 0 0)
}
.menu-card-inner {
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  padding:32px 26px 26px;
  opacity:0;
  transform:translateX(-10rem);
  transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .6s ease-out
}
.is-open .menu-card-inner {
  opacity:1;
  transform:translateX(0)
}
.menu-tabs {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  width:90%;
  flex:none
}
.menu-tabs button {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  height:52px;
  padding:8px;
  border:0;
  border-radius:0;
  background:#ccc;
  color:#fff;
  font:400 24px/1.2 var(--serif);
  text-transform:uppercase
}
.menu-tabs button[aria-selected=true],.menu-tabs button:hover {
  background:var(--navy)
}
.menu-scroll {
  flex:1;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#ddd transparent
}
.menu-home {
  display:block;
  padding:38px 18px 42px;
  border-bottom:1px dashed #e7e7e7;
  font:400 24px/1.4 var(--serif);
  text-transform:uppercase
}
.menu-content {
  padding:34px 18px 12px
}
.menu-section+.menu-section {
  margin-top:40px
}
.menu-section h3 {
  margin:0 0 8px;
  color:#999;
  font:400 32px/1.2 var(--script);
  font-synthesis:none
}
.menu-section a {
  display:block;
  width:fit-content;
  max-width:100%;
  padding:5px 0;
  font:300 22px/1.35 var(--sans)
}
.menu-section a:hover,.menu-home:hover,.menu-mobile-links a:hover {
  color:var(--gold)
}
.menu-enquire {
  display:grid;
  place-items:center;
  flex:none;
  min-height:112px;
  margin-top:24px;
  padding:20px;
  border:2px solid var(--gold);
  background:transparent;
  color:var(--navy);
  font:400 24px/1.3 var(--serif);
  text-transform:uppercase;
  transition:background-color .3s
}
.menu-enquire:hover,.menu-enquire:focus-visible {
  background:var(--gold)
}
@media(min-width:901px) and (max-width:1600px) {
  .nav-group { font-size:18px }
  .nav-group>a,.nav-group>button { min-width:136px; min-height:40px }
  .menu-card-inner { padding:26px 22px 22px }
  .menu-tabs { gap:22px; width:95% }
  .menu-tabs button { font-size:18px; height:44px }
  .menu-home { font-size:22px; padding:26px 14px 30px }
  .menu-content { padding:26px 14px 10px }
  .menu-section h3 { font-size:29px }
  .menu-section a { font-size:20px; padding:4px 0 }
  .menu-section+.menu-section { margin-top:30px }
  .menu-enquire { min-height:88px; margin-top:18px; font-size:22px }
}
@media(min-width:901px) and (max-width:1200px) {
  .nav-group { font-size:14px }
  .nav-group>a,.nav-group>button { min-width:112px }
}
.hero {
  height:100svh;
  position:relative;
  overflow:clip;
  background:var(--navy)
}
.hero-media {
  position:absolute;
  inset:0;
  transform:translate3d(0,var(--hero-shift,0px),0);
  will-change:transform
}
.hero-video {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom
}
.hero-wash {
  position:absolute;
  inset:0 0 -100%;
  background:linear-gradient(to bottom,rgba(2,29,70,0) 19%,rgba(2,29,70,.15) 28%,rgba(2,29,70,.75) 42%,var(--navy) 51%,var(--navy) 100%);
  transform:translate3d(0,var(--wash-shift,0%),0);
  will-change:transform;
  pointer-events:none
}
.hero-message {
  position:absolute;
  z-index:2;
  left:10.5%;
  right:16%;
  top:48%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  opacity:var(--hero-copy-opacity,1)
}
.hero-copy {
  width:36.5vw
}
.hero-copy>.script {
  margin-bottom:.42vw
}
.hero-copy .body-copy {
  line-height:2;
  max-width:34vw
}
.reveal-line {
  display:block;
}
.motion-ready .reveal-line {
  opacity:0;
  transform:translate3d(0,1.1em,0);
  will-change:opacity,transform
}
.reveal-line.is-visible {
  opacity:1;
  transform:none
}
.hero-copy > .reveal-line,
.intro .reveal-line,
.difference .reveal-line {
  transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)
}
.hero-copy .reveal-line:nth-child(2),
.intro .reveal-line:nth-child(2),
.difference .reveal-line:nth-child(2) { transition-delay:.12s }
.intro .reveal-line:nth-child(3) { transition-delay:.24s }
.watch-film {
  white-space:nowrap;
  display:inline-flex;
  align-items:baseline;
  gap:1vw;
  margin-top:1.3vw
}
.watch-film svg {
  width:.7vw;
  min-width:9px;
  height:auto;
  transition:transform .35s
}
.watch-film:hover svg {
  transform:translateX(6px)
}
.intro-difference {
  position:relative;
  isolation:isolate
}
.intro-difference::after {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:rgba(2,29,70,.18);
  pointer-events:none
}
.difference-background {
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:auto;
  z-index:-1;
  mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.08) 8%,#000 30%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.08) 8%,#000 30%)
}
.intro {
  height:56.25vw;
  position:relative
}
.intro-label {
  position:absolute;
  top:3.33vw;
  left:7.8125vw
}
.gold-curve {
  display:block;
  width:12.87vw;
  min-width:150px;
  height:auto;
  margin-top:-.26vw;
  margin-left:.9vw;
  overflow:visible
}
.draw-stroke {
  fill:none;
  stroke:#fff;
  stroke-width:22;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:1;
  stroke-dashoffset:var(--draw,0)
}
.intro h1 {
  position:absolute;
  top:9.4vw;
  left:20.65%;
  right:7.5%;
  line-height:1.4
}
.intro h1 span {
  display:block;
  white-space:nowrap
}
.intro h1 span:first-child {
  text-align:right
}
.difference {
  position:relative;
  height:56.25vw;
  isolation:isolate
}
.difference-wash {
  position:absolute;
  inset:-25% 0 0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(to bottom,rgba(2,29,70,0) 0%,rgba(2,29,70,.98) 25%,rgba(2,29,70,.45) 72%,rgba(2,29,70,0) 100%);
  opacity:var(--difference-wash,.0);
  transform:translate3d(0,var(--difference-lift,0%),0)
}
.difference-copy {
  position:absolute;
  top:1.3vw;
  left:7.8125vw;
  right:5vw
}
.difference-copy h2 {
  white-space:nowrap
}
.difference-subtitle {
  max-width:67vw;
  font:400 clamp(18px,1.5625vw,40px)/1.4 var(--serif);
  text-transform:uppercase;
  margin-top:1.3vw
}
.difference-body {
  width:32vw;
  line-height:2;
  margin-top:2.2vw;
  color:rgba(245,245,245,.88)
}
.difference-body p+p {
  margin-top:2.3vw
}
.enquiry-tab {
  position:fixed;
  z-index:20;
  right:0;
  top:50%;
  height:14.25vw;
  width:5.1vw;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:1.2vw 0 0 1.2vw;
  background:var(--gold);
  font:400 clamp(14px,1.25vw,32px) var(--serif);
  text-transform:uppercase;
  writing-mode:vertical-rl;
  visibility:hidden;
  transform:translate3d(0,calc(-50% + var(--enquiry-offset,100vh)),0);
  transition:width .3s
}
.enquiry-tab.is-visible {
  visibility:visible
}
.enquiry-tab:hover {
  width:5.6vw
}
.enquiry-tab--global {
  color:var(--white);
}
body.enquire-modal-open .enquiry-tab,
body.move-plan-open .enquiry-tab {
  visibility:hidden;
  pointer-events:none;
}
.chat-widget {
  position:fixed;
  z-index:45;
  right:2.2vw;
  bottom:2.2vw;
  display:flex;
  align-items:flex-end;
  gap:14px;
  color:var(--navy);
}
.chat-trigger {
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
  font:400 13px/1 var(--serif);
  text-transform:uppercase;
  transition:transform .25s;
}
.chat-trigger img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.chat-trigger:hover,.chat-widget.is-open .chat-trigger {
  transform:translateY(-3px);
}
.chat-panel {
  width:220px;
  padding:14px 14px 16px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 45px rgba(0,0,0,.25);
  opacity:0;
  transform:translate3d(12px,8px,0);
  pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
.chat-widget.is-open .chat-panel {
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.chat-panel img {
  width:100%;
  aspect-ratio:1;
  object-fit:contain;
}
.chat-panel p {
  margin-top:12px;
  font:300 13px/1.45 var(--sans);
}
.chat-panel strong {
  display:block;
  margin-top:3px;
  font:400 12px/1.35 var(--serif);
  text-transform:uppercase;
}
.inspiration-heading {
  height:21.5625vw;
  display:grid;
  place-items:center
}
.accordion {
  --image-width:52vw;
  height:56.25vw;
  width:100%;
  display:flex;
  overflow:hidden
}
.inspiration-panel {
  position:relative;
  display:block;
  flex:1 1 0;
  min-width:0;
  padding:0;
  border:0;
  text-align:left;
  overflow:hidden;
  background:var(--navy);
  transition:flex-grow .85s cubic-bezier(.22,1,.36,1)
}
.inspiration-panel.is-active {
  flex-grow:4.3333333333
}
.inspiration-panel img {
  position:absolute;
  top:0;
  left:50%;
  width:var(--image-width);
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:50% 50%;
  filter:blur(3px) brightness(.53);
  transform:translateX(-50%);
  transition:filter .7s
}
.inspiration-panel.is-active img {
  filter:blur(0) brightness(1)
}
.inspiration-panel::after {
  content:'';
  position:absolute;
  inset:70% 0 0;
  background:linear-gradient(transparent,rgba(2,29,70,.28));
  pointer-events:none
}
.inspiration-panel span {
  position:absolute;
  z-index:1;
  left:3.9vw;
  bottom:3.9vw;
  font:400 var(--title)/1.2 var(--serif);
  text-transform:uppercase;
  max-width:calc(100% - 7.8vw);
  white-space:normal;
  opacity:0;
  transform:translateX(25px);
  transition:opacity .35s,transform .6s
}
.inspiration-panel.is-active span {
  opacity:1;
  transform:none;
  transition-delay:.2s
}
.inspiration-panel:focus-visible {
  outline-offset:-6px;
  z-index:1
}
.founder {
  height:56.25vw;
  position:relative
}
.founder-content {
  position:absolute;
  left:22.75%;
  top:11.5vw;
  width:55%
}
.quote-mark {
  font:400 4.2vw/1 Georgia,serif;
  height:3.3vw
}
.founder blockquote {
  line-height:1.23
}
.founder blockquote p {
  margin:0
}
.founder-signature {
  display:block;
  overflow:visible;
  width:14vw;
  height:auto;
  margin-top:3.5vw
}
.signature-stroke {
  stroke-width:22
}
.founder-role {
  font:400 clamp(16px,1.25vw,32px)/1.4 var(--serif);
  margin-top:1.1vw
}
.services-scroll {
  position:relative
}
.services-sticky {
  height:100svh;
  overflow:clip
}
.services-track {
  display:flex;
  height:100%;
  width:200%
}
.service-slide {
  position:relative;
  flex:0 0 50%;
  height:100%;
  overflow:clip
}
.service-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.cross .service-image {
  transform:scaleX(-1)
}
.service-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(2,29,70,.34),rgba(2,29,70,.06))
}
.cross .service-shade {
  background:linear-gradient(90deg,transparent 15%,rgba(2,29,70,.35) 64%,rgba(2,29,70,.64))
}
.service-copy {
  position:absolute;
  left:9.25%;
  top:32.7%;
  width:42.5%
}
.events .service-copy {
  transform:translate3d(0,var(--events-copy-shift,0px),0);
  will-change:transform
}
.service-copy h2 {
  position:relative;
  line-height:1.38
}
.service-number {
  position:absolute;
  left:-4.2vw;
  top:-10vw;
  font:400 500px/1 var(--script);
  color:rgba(255,255,255,.15);
  pointer-events:none
}
.service-subtitle {
  position:relative;
  color:var(--gold);
  white-space:nowrap;
  margin-top:1vw;
  margin-left:9vw
}
.service-copy>.body-copy {
  margin-top:.3vw;
  line-height:2;
  letter-spacing:.04em
}
.service-copy .reveal-line {
  white-space:nowrap;
  transition:none
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  transition:color .35s,background .35s,border-color .35s;
  font-family:var(--serif);
  font-weight:400
}
.button-outline {
  font-size:clamp(14px,1.145833vw,29.334px);
  border:1px solid rgba(245,245,245,.75);
  min-width:23vw;
  padding:1.2vw 2vw;
  margin-top:2.1vw;
  background:transparent
}
.button-outline:hover {
  background:var(--white);
  color:var(--navy);
  border-color:var(--white)
}
.cross .service-copy {
  left:54.5%;
  top:37.7%;
  width:43%
}
.cross .service-number {
  left:auto;
  right:3vw;
  top:-10vw
}
.cross .service-subtitle {
  margin-left:0;
  white-space:normal
}
.cross .service-copy>.body-copy {
  letter-spacing:.04em;
  white-space:nowrap
}
.cross .button-outline {
  margin-top:3.1vw
}
.motion-ready .services-scroll {
  height:calc(100svh + var(--horizontal-distance,100vw))
}
.motion-ready .services-sticky {
  position:sticky;
  top:0
}
.motion-ready .services-track {
  will-change:transform;
  transform:translate3d(var(--track-x,0px),0,0)
}
.coastline {
  height:56.25vw;
  overflow:clip
}
.coastline img {
  width:100%;
  height:100%;
  object-fit:cover
}
.cta {
  height:29.114583vw;
  position:relative;
  display:grid;
  place-items:center;
  text-align:center;
  overflow:clip
}
.cta>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.cta::after {
  content:'';
  position:absolute;
  inset:0;
  background:rgba(2,29,70,.08)
}
.cta-content {
  position:relative;
  z-index:1
}
.cta h2 {
  margin-bottom:2.2vw
}
.button-solid {
  font-size:clamp(16px,1.25vw,32px);
  background:#fff;
  color:var(--navy);
  min-width:13vw;
  padding:1vw 1.8vw
}
.button-solid:hover {
  background:var(--gold);
  color:#fff
}
.site-footer {
  position:relative;
  display:grid;
  grid-template-columns:47% 21% 18% 14%;
  height:38.020833vw;
  padding:8.8vw 6.67vw 5vw
}
.footer-column {
  padding-left:.8vw
}
.footer-contact h2 {
  font-size:var(--title);
  white-space:nowrap;
  line-height:1.2
}
.social-icons {
  display:flex;
  gap:3.15vw;
  align-items:center;
  margin-top:2.15vw
}
.social-icons>* {
  display:block;
  width:2.25vw;
  height:2.25vw;
  min-width:22px;
  min-height:22px
}
.social-icons svg {
  width:100%;
  height:100%
}
.footer-contact address {
  font-style:normal;
  margin-top:4.5vw;
  line-height:1.5
}
.footer-email {
  display:inline-block;
  margin-top:1.7vw
}
.footer-column h3 {
  margin-bottom:2.35vw
}
.footer-column>a {
  display:block;
  font:400 clamp(12px,.9375vw,24px)/1.4 var(--serif);
  margin-bottom:2.15vw;
  white-space:nowrap
}
.footer-column>a:hover,.footer-email:hover {
  color:var(--gold)
}
.footer-column .agency-label {
  margin-top:3.7vw
}
/* Fallback without JavaScript and for reduced motion: all sections remain reachable. */ html:not(.motion-ready) .services-sticky {
  height:auto;
  overflow:visible
}
html:not(.motion-ready) .services-track {
  display:block;
  width:100%;
  height:auto
}
html:not(.motion-ready) .service-slide {
  height:100svh
}
@media(max-width:900px) {
  :root {
    --title:clamp(28px,5.5vw,40px);
    --script-size:30px;
    --body-size:16px
  }
  .site-header {
    padding:22px 6vw;
    align-items:center;
    grid-template-columns:1fr auto 1fr
  }
  .nav-group {
    display:none
  }
  .brand {
    grid-column:2;
    width:45px
  }
  .menu-toggle {
    grid-column:3;
    display:block;
    justify-self:end;
    background:none;
    border:0;
    padding:10px
  }
  .menu-toggle span {
    display:block;
    width:26px;
    height:1px;
    margin:7px 0;
    background:var(--white);
    transition:transform .3s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(4px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-4px) rotate(-45deg)
  }
  .menu-toggle { background:rgba(0,0,0,.28) }
  .menu-card { inset:12px; width:auto }
  .menu-card-inner { padding:58px 18px 18px }
  .menu-tabs { width:100%; gap:10px }
  .menu-tabs button { height:42px; padding:6px 3px; font-size:14px }
  .menu-close {
    display:block;
    position:absolute;
    right:12px;
    top:10px;
    width:36px;
    height:36px;
    padding:8px;
    background:transparent;
    border:0
  }
  .menu-close span {
    position:absolute;
    top:17px;
    left:8px;
    width:20px;
    height:1px;
    background:var(--navy);
    transform:rotate(45deg)
  }
  .menu-close span:last-child { transform:rotate(-45deg) }
  .menu-home { font-size:22px; padding:26px 8px }
  .menu-content { padding:26px 8px 14px }
  .menu-section h3 { font-size:29px }
  .menu-section a { font-size:20px; padding:5px 0 }
  .menu-section+.menu-section { margin-top:28px }
  .menu-mobile-links {
    display:flex;
    gap:28px;
    padding:24px 8px 12px;
    font:400 18px/1.4 var(--serif)
  }
  .menu-enquire { min-height:72px; margin-top:18px; padding:16px; font-size:22px }
  .hero-message {
    left:8vw;
    right:8vw;
    top:43%;
    display:block
  }
  .hero-copy {
    width:100%
  }
  .hero-copy>.script {
    margin-bottom:8px
  }
  .hero-copy .body-copy {
    max-width:320px;
    line-height:1.7
  }
  .desktop-break {
    display:none
  }
  .watch-film {
    margin-top:28px;
    gap:12px
  }
  .watch-film svg {
    width:10px
  }
  .hero-video {
    object-position:52% center
  }
  .intro {
    height:640px
  }
  .intro-label {
    top:60px;
    left:8vw
  }
  .gold-curve {
    width:180px;
    margin-left:8px;
    margin-top:-2px
  }
  .intro h1 {
    left:8vw;
    right:8vw;
    top:185px;
    line-height:1.45;
    font-size:clamp(26px,5.7vw,40px)
  }
  .intro h1 span {
    white-space:normal
  }
  .intro h1 span:first-child {
    text-align:left
  }
  .difference-background {
    height:900px;
    width:100%;
    object-fit:cover;
    object-position:50% bottom
  }
  .difference {
    height:800px
  }
  .difference-copy {
    left:8vw;
    right:8vw;
    top:32px
  }
  .difference-copy h2 {
    white-space:normal
  }
  .difference-subtitle {
    max-width:none;
    font-size:18px;
    line-height:1.5;
    margin-top:22px
  }
  .difference-body {
    width:88%;
    margin-top:28px;
    font-size:16px;
    line-height:1.8
  }
  .difference-body p+p {
    margin-top:22px
  }
  .enquiry-tab {
    width:42px;
    height:156px;
    border-radius:12px 0 0 12px;
    font-size:14px
  }
  .enquiry-tab:hover {
    width:48px
  }
  .chat-widget {
    right:16px;
    bottom:18px;
    gap:10px
  }
  .chat-trigger {
    width:54px;
    height:54px;
    font-size:12px
  }
  .chat-panel {
    width:190px;
    padding:12px
  }
  .inspiration-heading {
    height:180px
  }
  .accordion {
    --image-width:68vw;
    height:560px
  }
  .inspiration-panel {
    flex-grow:1
  }
  .inspiration-panel.is-active {
    flex-grow:8.5
  }
  .inspiration-panel span {
    left:20px;
    bottom:26px;
    max-width:calc(100% - 40px);
    font-size:22px
  }
  .inspiration-panel img {
    filter:blur(2px) brightness(.5)
  }
  .founder {
    height:auto;
    min-height:760px;
    padding:100px 10vw
  }
  .founder-content {
    position:static;
    width:100%
  }
  .quote-mark {
    font-size:58px;
    height:52px
  }
  .founder blockquote {
    line-height:1.3;
    font-size:29px
  }
  .founder-signature {
    width:180px;
    margin-top:40px
  }
  .founder-role {
    font-size:16px;
    margin-top:14px
  }
  .service-copy,.cross .service-copy {
    left:8%;
    right:8%;
    top:31%;
    width:auto
  }
  .service-copy h2 {
    font-size:clamp(30px,7vw,42px);
    line-height:1.3
  }
  .service-number,.cross .service-number {
    font-size:150px;
    font-family:var(--script);
    left:-12px;
    right:auto;
    top:-90px
  }
  .service-subtitle,.cross .service-subtitle {
    margin:20px 0 0;
    white-space:normal;
    font-size:29px
  }
  .service-copy>.body-copy,.cross .service-copy>.body-copy {
    white-space:normal;
    font-size:16px;
    line-height:1.65;
    margin-top:12px
  }
  .button-outline,.cross .button-outline {
    min-width:250px;
    padding:15px 18px;
    margin-top:26px;
    font-size:14px
  }
  .service-shade {
    background:linear-gradient(90deg,rgba(2,29,70,.57),rgba(2,29,70,.15))
  }
  .cross .service-shade {
    background:rgba(2,29,70,.4)
  }
  .events .service-image {
    object-position:48% center
  }
  .cross .service-image {
    object-position:60% center
  }
  .coastline {
    height:100svh
  }
  .coastline img {
    object-position:52% center
  }
  .cta {
    height:350px
  }
  .cta-content {
    padding:0 8vw
  }
  .cta h2 {
    margin-bottom:28px
  }
  .button-solid {
    font-size:16px;
    padding:14px 22px;
    min-width:170px
  }
  .site-footer {
    height:auto;
    min-height:760px;
    padding:70px 8vw;
    grid-template-columns:1fr 1fr;
    gap:44px 24px
  }
  .footer-column {
    padding-left:0
  }
  .footer-contact {
    grid-column:1/-1
  }
  .footer-contact h2 {
    font-size:28px
  }
  .social-icons {
    gap:28px;
    margin-top:24px
  }
  .social-icons>* {
    width:25px;
    height:25px
  }
  .footer-contact address {
    margin-top:30px;
    font-size:14px
  }
  .footer-email {
    margin-top:20px;
    font-size:14px
  }
  .footer-column h3 {
    margin-bottom:22px
  }
  .footer-column>a {
    font-size:12px;
    margin-bottom:20px;
    white-space:normal
  }
  .footer-column .agency-label {
    margin-top:32px
  }
}
@media(max-width:380px) {
  .menu-tabs { gap:8px; grid-template-columns:1.2fr 1fr 1fr }
  .menu-tabs button { font-size:12px }
}
@media(max-height:650px) and (min-width:901px) {
  .service-copy {
    top:25%
  }
  .cross .service-copy {
    top:28%
  }
  .service-copy h2 {
    font-size:min(var(--title),7vh)
  }
  .service-subtitle {
    margin-top:1vh
  }
  .button-outline,.cross .button-outline {
    margin-top:2vh;
    padding:.8vw 1.5vw
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important
  }
  .hero-media,.hero-wash {
    transform:none!important
  }
  .hero-message {
    opacity:1!important
  }
  .difference-wash {
    opacity:0!important
  }
  .draw-stroke {
    stroke-dashoffset:0!important
  }
  .motion-ready .services-scroll {
    height:auto
  }
  .motion-ready .services-sticky {
    position:relative;
    height:auto;
    overflow:visible
  }
  .motion-ready .services-track {
    display:block;
    width:100%;
    height:auto;
    transform:none!important
  }
  .motion-ready .service-slide {
    height:100svh
  }
}
body {
  position:relative;
  min-height:100vh
}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.25s ease;will-change:opacity}
.hero-photo.is-current{opacity:1}
.navigation-overlay{overflow:clip}
