:root {
  --ink: #11110f;
  --paper: #f4f2ed;
  --muted: #77736b;
  --line: rgba(17, 17, 15, 0.18);
  --accent: #b52127;
  --shell: min(100% - 48px, 1480px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, select, input, textarea { font: inherit; }
.content-shell { width: var(--shell); margin-inline: auto; }
.site-main { min-height: 70vh; }
.eyebrow {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  padding: 0 24px;
  background: rgba(244, 242, 237, .92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
}
.site-brand { display: inline-flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; }
.site-brand__mark { display: grid; width: 34px; height: 34px; color: #fff; background: var(--accent); place-items: center; font-size: 14px; }
.site-nav__list { display: flex; align-items: center; gap: clamp(18px, 2.3vw, 40px); margin: 0; padding: 0; list-style: none; }
.site-nav a { position: relative; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.site-nav a::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 1px; background: currentColor; content: ''; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.site-nav a:hover::after, .site-nav .current-menu-item a::after { transform: scaleX(1); transform-origin: left; }
.nav-toggle { display: none; width: 42px; height: 42px; padding: 10px; border: 0; background: transparent; }
.nav-toggle span { display: block; height: 1px; margin: 6px 0; background: currentColor; }
.mobile-nav { display: none; }

body.home .site-header {
  position: absolute;
  width: 100%;
  color: #fff;
  background: linear-gradient(rgba(8, 8, 7, .46), transparent);
  border-bottom-color: rgba(255, 255, 255, .2);
  backdrop-filter: none;
}

.home-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: #fff;
  background: #262927;
}
.home-hero__media {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
}
.home-hero__slide { position: absolute; z-index: 0; inset: -2%; background-position: center; background-size: cover; opacity: 0; filter: saturate(.9) contrast(.98); transform: scale(1.04); will-change: opacity, transform, filter; transition: opacity 2.35s cubic-bezier(.45,0,.2,1), filter 2.35s ease; }
.home-hero__slide.is-active { z-index: 2; opacity: 1; filter: saturate(1) contrast(1); }
.home-hero__slide.is-leaving { z-index: 1; opacity: 0; filter: saturate(.94) contrast(.99); }
.home-hero__slide--fit { inset: 0; background-color: #171715; background-repeat: no-repeat; background-size: cover, contain; }
.home-hero__slide--motion-left.is-running { animation: hero-drift-left 7.8s linear both; }
.home-hero__slide--motion-out.is-running { animation: hero-zoom-out 7.8s linear both; }
.home-hero__slide--motion-up.is-running { animation: hero-drift-up 7.8s linear both; }
.home-hero__slide--motion-in.is-running { animation: hero-zoom-in 7.8s linear both; }
.home-hero__slide--motion-right.is-running { animation: hero-drift-right 10.5s linear both; }
.home-hero__network { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; cursor: crosshair; touch-action: pan-y; }
.home-hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; width: min(100% - 48px, 1480px); min-height: 100svh; margin: auto; padding: 120px 0 72px; pointer-events: none; }
.home-hero__content > * { pointer-events: auto; }
.home-hero .eyebrow { color: rgba(255,255,255,.7); }
.home-hero__text-block { width: max-content; max-width: 100%; }
.home-hero__lockup { width: 100%; }
.home-hero__eyebrow { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-bottom: 2px; letter-spacing: .08em; }
.home-hero h1 { width: 100%; max-width: none; margin: 0; font-family: 'Barlow Condensed', 'Arial Narrow', 'Aptos Narrow', sans-serif; font-size: clamp(38px, 3.25vw, 52px); font-weight: 400; letter-spacing: .015em; line-height: .8; }
.home-hero__title-line { display: flex; align-items: center; width: max-content; max-width: 100%; }
.home-hero__title-line--local { justify-content: flex-end; width: 100%; margin-top: .04em; margin-left: 0; font-size: .84em; letter-spacing: .015em; line-height: .88; }
.home-hero__title-accent { flex: 0 0 auto; width: clamp(26px, 2.2vw, 36px); height: 3px; margin-right: clamp(10px, 1.2vw, 18px); background: #c4262e; }
.home-hero__copy-line { display: block; }
.home-hero__intro { max-width: 100%; margin: 8px 0 24px; font-size: clamp(16px, 1.35vw, 20px); }
.text-link { display: inline-flex; align-items: center; align-self: flex-start; gap: 16px; padding-bottom: 6px; border-bottom: 1px solid currentColor; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.home-hero__controls { position: absolute; z-index: 3; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 12px; }
.home-hero__controls > button { display: grid; width: 40px; height: 40px; padding: 0; color: #fff; background: rgba(12,12,11,.4); border: 1px solid rgba(255,255,255,.55); border-radius: 50%; cursor: pointer; place-items: center; transition: background .2s ease; }
.home-hero__controls > button:hover, .home-hero__controls > button:focus-visible { background: rgba(12,12,11,.72); }
.home-hero__dots { display: flex; gap: 7px; }
.home-hero__dots button { width: 7px; height: 7px; padding: 0; background: rgba(255,255,255,.42); border: 0; border-radius: 50%; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.home-hero__dots button[aria-current="true"] { background: #fff; transform: scale(1.45); }
.home-hero__captions { position: absolute; z-index: 2; inset: 0; display: grid; padding: 110px 24px 92px; pointer-events: none; place-items: center; text-align: center; }
.home-hero__caption { position: absolute; max-width: min(90vw, 1100px); margin: 0; color: #fff; font-family: 'Barlow Condensed', 'Arial Narrow', 'Aptos Narrow', sans-serif; font-size: clamp(42px, 5.5vw, 88px); font-weight: 400; letter-spacing: .025em; line-height: .92; opacity: 0; filter: blur(10px); transform: translateY(18px) scale(.985); transition: opacity .9s ease, filter 1.1s ease, transform 1.25s cubic-bezier(.22,.8,.26,1); }
.home-hero__caption:first-child { max-width: min(92vw, 1250px); font-size: clamp(28px, 3.2vw, 52px); letter-spacing: .1em; }
.home-hero__caption:nth-child(n+4) { max-width: min(92vw, 1350px); font-size: clamp(26px, 2.8vw, 44px); letter-spacing: .01em; }
.home-hero__caption:nth-child(5) { display: grid; width: 100vw; height: 100svh; max-width: none; padding: 110px 5vw 92px; place-items: center; }
.home-hero__caption > span { position: relative; z-index: 1; }
.home-hero__caption:nth-child(5)::before { position: absolute; z-index: 0; left: 50%; top: 50%; color: rgba(255,255,255,.11); content: 'C5'; font-size: clamp(240px, 50vw, 780px); font-weight: 500; letter-spacing: -.14em; line-height: .7; text-shadow: 0 0 50px rgba(255,255,255,.08); transform: translate(-52%,-50%) skewX(-4deg) scaleX(.94); animation: c5-fluid-mark 3s ease-in-out infinite alternate; }
.home-hero__caption.is-active { opacity: 1; filter: blur(0); transform: translateY(0) scale(1); transition-delay: .55s; }
.c5-word-sequence { position: relative; display: block; width: min(94vw, 1400px); height: clamp(100px, 16vw, 230px); }
.c5-word-sequence__word { position: absolute; inset: 50% 0 auto; display: block; color: #fff; font-size: clamp(74px, 12vw, 190px); font-weight: 500; letter-spacing: .035em; line-height: .82; opacity: 0; filter: blur(14px); text-align: center; text-transform: uppercase; transform: translateY(-35%) scale(.92); }
.home-hero__caption.is-active .c5-word-sequence__word { animation: c5-word-reveal 1.34s cubic-bezier(.2,.7,.25,1) both; }
.home-hero__caption.is-active .c5-word-sequence__word:nth-child(1) { animation-delay: .7s; }
.home-hero__caption.is-active .c5-word-sequence__word:nth-child(2) { animation-delay: 2.02s; }
.home-hero__caption.is-active .c5-word-sequence__word:nth-child(3) { animation-delay: 3.34s; }
.home-hero__caption.is-active .c5-word-sequence__word:nth-child(4) { animation-delay: 4.66s; }
.home-hero__caption.is-active .c5-word-sequence__word:nth-child(5) { animation-delay: 5.98s; }
.home-hero__meta { position: absolute; z-index: 3; bottom: 28px; left: 24px; display: flex; align-items: center; gap: clamp(24px, 4vw, 64px); color: rgba(255,255,255,.82); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.home-hero__meta a { padding-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,.6); }
@keyframes c5-fluid-mark {
  0% { transform: translate(-54%,-48%) skewX(-5deg) scaleX(.9) rotate(-1deg); }
  50% { transform: translate(-50%,-52%) skewX(3deg) scaleX(1.04) rotate(.5deg); }
  100% { transform: translate(-47%,-49%) skewX(-2deg) scaleX(.96) rotate(1deg); }
}
@keyframes c5-word-reveal {
  0% { opacity: 0; filter: blur(14px); transform: translateY(-30%) scale(.92); }
  24%, 72% { opacity: 1; filter: blur(0); transform: translateY(-50%) scale(1); }
  100% { opacity: 0; filter: blur(10px); transform: translateY(-68%) scale(1.035); }
}
@keyframes hero-drift-left {
  from { transform: scale(1.105) translate3d(1.8%,0,0); }
  to { transform: scale(1.045) translate3d(-1.2%,0,0); }
}
@keyframes hero-zoom-out {
  from { transform: scale(1.045); }
  to { transform: scale(1); }
}
@keyframes hero-drift-up {
  from { transform: scale(1.095) translate3d(0,1.4%,0); }
  to { transform: scale(1.045) translate3d(0,-1.1%,0); }
}
@keyframes hero-zoom-in {
  from { transform: scale(1.025); }
  to { transform: scale(1.085); }
}
@keyframes hero-drift-right {
  from { transform: scale(1.105) translate3d(-1.7%,0,0); }
  to { transform: scale(1.045) translate3d(1.1%,0,0); }
}

.statement { padding: clamp(100px, 15vw, 220px) 0; }
.statement h2 { max-width: 1200px; margin: 0; font-size: clamp(38px, 6vw, 90px); font-weight: 500; letter-spacing: -.05em; line-height: 1.02; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.section-heading a { font-size: 12px; font-weight: 700; text-transform: uppercase; }
.featured-projects { padding-bottom: 140px; }

.project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 22px; }
.project-grid--featured { padding-top: 24px; }
.project-card[hidden] { display: none; }
.project-card__media { position: relative; aspect-ratio: 1.3 / 1; overflow: hidden; background: #ddd9d1; }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.65,.25,1); }
.project-card__link:hover img { transform: scale(1.035); }
.project-card__overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 24px; color: #fff; background: rgba(12,12,11,.5); opacity: 0; text-align: center; pointer-events: none; transition: opacity .3s ease; }
.project-card__link:hover .project-card__overlay, .project-card__link:focus-visible .project-card__overlay { opacity: 1; }
.project-card__overlay-country { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.project-card__overlay-name { max-width: 90%; font-size: clamp(22px, 2.4vw, 38px); font-weight: 500; letter-spacing: -.035em; line-height: 1.05; }
.project-card__body { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-top: 14px; border-top: 1px solid transparent; }
.project-card__body h2 { margin: 0; font-size: clamp(18px, 1.7vw, 27px); font-weight: 500; letter-spacing: -.03em; }
.project-card__body p { max-width: 45%; margin: 4px 0 0; color: var(--muted); font-size: 11px; text-align: right; text-transform: uppercase; }
.home-studio { display: grid; grid-template-columns: 1fr 3fr; gap: 30px; padding: 130px 0; border-top: 1px solid var(--line); }
.home-studio h2 { max-width: 1000px; margin: 0 0 40px; font-size: clamp(36px, 5vw, 76px); font-weight: 500; letter-spacing: -.05em; line-height: 1.05; }

.archive-hero { padding: 64px 0 32px; }
.archive-hero h1 { margin: 0; font-size: clamp(52px, 7vw, 96px); font-weight: 500; letter-spacing: -.065em; line-height: .92; }
.standard-page h1 { margin: 0; font-size: clamp(70px, 12vw, 180px); font-weight: 500; letter-spacing: -.075em; line-height: .9; }
.archive-hero > p:last-child { max-width: 560px; margin: 20px 0 0 auto; color: var(--muted); font-size: 17px; }
.project-browser { padding-bottom: 130px; }
.project-filters { display: grid; grid-template-columns: minmax(180px, 300px) minmax(180px, 300px) auto 1fr; align-items: end; gap: 20px; padding: 25px 0 50px; border-top: 1px solid var(--line); }
.project-filters label { color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.project-filters select { width: 100%; margin-top: 9px; padding: 13px 34px 13px 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; font-size: 15px; font-weight: 600; text-transform: none; }
.filter-reset { padding: 13px 18px; background: transparent; border: 1px solid var(--ink); cursor: pointer; }
.filter-count { justify-self: end; margin: 0; color: var(--muted); font-size: 12px; text-transform: uppercase; }
.filter-empty { padding: 90px 0; text-align: center; }

.project-detail__header { display: grid; grid-template-columns: 2fr 1fr; align-items: end; gap: 50px; padding: 68px 0 38px; }
.project-detail__header h1 { max-width: 900px; margin: 0; font-size: clamp(46px, 7vw, 100px); font-weight: 500; letter-spacing: -.065em; line-height: .92; }
.project-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line); }
.project-facts div { padding: 14px 0; border-bottom: 1px solid var(--line); }
.project-facts dt { color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.project-facts dd { margin: 3px 0 0; font-size: 13px; }
.project-detail__hero { width: var(--shell); margin: 0 auto; overflow: hidden; background: #ddd9d1; }
.project-detail__hero img { width: 100%; max-height: 74vh; object-fit: cover; }
.project-detail__story { display: grid; grid-template-columns: 1fr 3fr; gap: 30px; padding: 76px 0; }
.prose { max-width: 800px; font-size: clamp(18px, 1.65vw, 26px); letter-spacing: -.018em; line-height: 1.45; }
.prose p:first-child { margin-top: 0; }
.prose h2 { margin: 2.2em 0 .7em; font-size: 1.12em; }
.project-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.project-gallery__item { min-width: 0; margin: 0; overflow: hidden; background: #ddd9d1; }
.project-gallery__item--wide { grid-column: auto; }
.project-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .45s ease, filter .45s ease; }
.project-gallery > .project-video--inline { grid-column: 1 / -1; width: 100%; padding-top: 48px; margin: 24px 0 40px; }
.project-lightbox-trigger { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; color: inherit; background: transparent; border: 0; cursor: zoom-in; }
.project-lightbox-trigger::after { position: absolute; right: 14px; bottom: 14px; display: grid; width: 34px; height: 34px; color: #fff; background: rgba(17,17,15,.72); border-radius: 50%; content: '+'; font-size: 22px; font-weight: 300; line-height: 1; opacity: 0; place-items: center; transition: opacity .25s ease; }
.project-lightbox-trigger:hover::after, .project-lightbox-trigger:focus-visible::after { opacity: 1; }
.project-lightbox-trigger:hover img { filter: brightness(.9); transform: scale(1.018); }
.project-lightbox-trigger:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
body.c5-lightbox-open { overflow: hidden; }
.c5-lightbox[hidden] { display: none; }
.c5-lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; grid-template-columns: 72px minmax(0, 1fr) 72px; align-items: center; color: #fff; }
.c5-lightbox__backdrop { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; padding: 0; background: rgba(8,8,8,.96); border: 0; cursor: zoom-out; }
.c5-lightbox__figure { display: flex; align-items: center; justify-content: center; flex-direction: column; min-width: 0; height: 100vh; height: 100dvh; margin: 0; padding: 38px 10px 22px; }
.c5-lightbox__image { max-width: 100%; max-height: calc(100dvh - 96px); object-fit: contain; box-shadow: 0 16px 60px rgba(0,0,0,.28); }
.c5-lightbox__caption { display: flex; justify-content: space-between; gap: 24px; width: min(100%, 1100px); padding-top: 12px; color: rgba(255,255,255,.7); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.c5-lightbox__close, .c5-lightbox__arrow { display: grid; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.28); border-radius: 50%; cursor: pointer; place-items: center; transition: background .2s ease; }
.c5-lightbox__close:hover, .c5-lightbox__arrow:hover { background: rgba(255,255,255,.18); }
.c5-lightbox__close:focus-visible, .c5-lightbox__arrow:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.c5-lightbox__close { position: absolute; z-index: 2; top: 20px; right: 20px; width: 44px; height: 44px; font-size: 28px; font-weight: 300; line-height: 1; }
.c5-lightbox__arrow { position: relative; z-index: 1; width: 48px; height: 48px; margin: auto; font-size: 21px; }
.project-video { padding-top: 100px; }
.video-frame { position: relative; padding-top: 56.25%; background: #000; }
.video-frame iframe,
.video-frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-frame video { object-fit: contain; background: #000; }
.project-presentation { padding-top: 50px; }
.button-link { display: inline-block; padding: 15px 20px; color: #fff; background: var(--ink); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.client-reviews { margin-top: 110px; padding: 48px 0 58px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.client-reviews__header { display: grid; grid-template-columns: 1.15fr 1fr; align-items: end; gap: 50px; }
.client-reviews__header h2 { margin: 0; font-size: clamp(38px, 4.4vw, 68px); font-weight: 500; letter-spacing: -.055em; line-height: .95; }
.client-reviews__header > p { max-width: 570px; margin: 0; color: var(--muted); font-size: 15px; }
.client-reviews__notice { margin: 30px 0 0; padding: 14px 16px; background: rgba(22,124,58,.09); border-left: 3px solid #167c3a; font-size: 14px; }
.client-reviews__notice--invalid, .client-reviews__notice--bad_photo, .client-reviews__notice--rate_limited, .client-reviews__notice--expired, .client-reviews__notice--error { background: rgba(181,33,39,.08); border-left-color: var(--accent); }
.client-reviews__list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 38px; }
.client-review { display: flex; flex-direction: column; min-width: 0; padding: 24px; background: rgba(255,255,255,.48); border: 1px solid var(--line); }
.client-review blockquote { margin: 0; font-size: 17px; letter-spacing: -.012em; }
.client-review blockquote p { margin: 0 0 .8em; }
.client-review footer { display: flex; justify-content: space-between; gap: 18px; margin-top: auto; padding-top: 22px; color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.client-review footer strong { color: var(--ink); }
.client-review__photo { display: block; margin-top: 20px; overflow: hidden; }
.client-review__photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .35s ease; }
.client-review__photo:hover img { transform: scale(1.025); }
.client-review-form { margin-top: 38px; }
.client-review-form summary { display: flex; align-items: center; justify-content: space-between; padding: 19px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: .08em; list-style: none; text-transform: uppercase; }
.client-review-form summary::-webkit-details-marker { display: none; }
.client-review-form[open] summary span { transform: rotate(45deg); }
.client-review-form summary span { font-size: 21px; font-weight: 300; transition: transform .2s ease; }
.client-review-form form { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 940px; padding: 34px 0 4px; }
.client-review-form label { display: block; }
.client-review-form label > span { display: block; margin-bottom: 8px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.client-review-form label small { font-size: inherit; font-weight: 400; letter-spacing: .02em; text-transform: none; }
.client-review-form input[type="text"], .client-review-form input[type="email"], .client-review-form textarea { width: 100%; padding: 13px 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; outline: none; }
.client-review-form input:focus, .client-review-form textarea:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.client-review-form textarea { resize: vertical; }
.client-review-form__message, .client-review-form__photo, .client-review-form__privacy, .client-review-form button { grid-column: 1 / -1; }
.client-review-form input[type="file"] { width: 100%; padding: 12px; background: rgba(255,255,255,.5); border: 1px solid var(--line); }
.client-review-form__privacy { max-width: 650px; margin: 0; color: var(--muted); font-size: 11px; }
.client-review-form button { justify-self: start; padding: 14px 20px; color: #fff; background: var(--ink); border: 0; cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.client-review-form button:hover { background: var(--accent); }
.client-review-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.review-stars { display: inline-block; color: #d59500; font-size: 17px; letter-spacing: .12em; line-height: 1; white-space: nowrap; }
.review-stars--large { font-size: clamp(20px,2.2vw,30px); }
.global-reviews { padding: 64px 0 130px; }
.global-reviews__hero { display: grid; grid-template-columns: 2fr 1fr; align-items: end; gap: 50px; padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.global-reviews__hero h1 { margin: 0; font-size: clamp(58px,8vw,118px); font-weight: 500; letter-spacing: -.07em; line-height: .88; }
.review-score { display: grid; justify-items: start; }
.review-score > strong { font-size: clamp(42px,5vw,72px); font-weight: 500; letter-spacing: -.06em; line-height: 1; }
.review-score > span:last-child { margin-top: 9px; color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.global-reviews__list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding-top: 38px; }
.client-review--global .review-stars { margin-bottom: 20px; }
.client-review__project { align-self: flex-start; margin-top: 16px; padding-bottom: 3px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.global-reviews__empty { margin: 38px 0; color: var(--muted); }
.client-review-form--global { margin-top: 55px; }
.client-review-form__rating { grid-column: 1 / -1; margin: 0; padding: 0 0 8px; border: 0; }
.client-review-form__rating legend { margin-bottom: 9px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.star-rating { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 3px; }
.star-rating input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.star-rating label { color: #c9c5bc; cursor: pointer; font-size: 34px; line-height: 1; transition: color .15s ease, transform .15s ease; }
.star-rating label:hover, .star-rating label:hover ~ label, .star-rating input:checked ~ label { color: #d59500; }
.star-rating input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 4px; }
.star-rating label:hover { transform: translateY(-2px); }
.client-review-form__project { grid-column: 1 / -1; }
.client-review-form select { width: 100%; padding: 13px 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; }
.project-nav { display: flex; justify-content: space-between; margin-top: 120px; padding: 30px 0 120px; border-top: 1px solid var(--line); font-size: 12px; font-weight: 700; text-transform: uppercase; }

.standard-page { padding: 120px 0 150px; }
.standard-page header { padding-bottom: 70px; border-bottom: 1px solid var(--line); }
.prose--page { max-width: 1050px; margin: 70px 0 0 auto; font-size: clamp(20px, 2.5vw, 38px); }
.prose--page h2 { margin-top: 2em; font-size: 1.5em; }
.prose--page img { margin: 45px 0; }
.c5-about-page .standard-page, .c5-studio-page .standard-page { padding: 36px 0 42px; }
.c5-about-page .standard-page h1, .c5-studio-page .standard-page h1 { font-size: clamp(48px, 6vw, 82px); letter-spacing: -.06em; line-height: .94; }
.c5-about-page .standard-page header, .c5-studio-page .standard-page header { padding-bottom: 28px; }
.c5-about-page .prose--page, .c5-studio-page .prose--page { max-width: 900px; margin-top: 30px; font-size: clamp(16px, 1.35vw, 20px); line-height: 1.5; }
.c5-about-page .prose--page h2, .c5-studio-page .prose--page h2 { margin: 1.35em 0 .45em; font-size: clamp(21px, 2vw, 28px); letter-spacing: -.025em; line-height: 1.2; }
.c5-about-page .prose--page h2:first-child, .c5-studio-page .prose--page h2:first-child { margin-top: 0; }
.c5-about-page .prose--page p, .c5-studio-page .prose--page p { margin: 0 0 .9em; }
.c5-contact-page .standard-page { padding-top: 80px; }
.c5-contact-page .standard-page h1 { font-size: clamp(56px, 8vw, 112px); }
.c5-contact-page .standard-page header { padding-bottom: 48px; }
.c5-contact-page .prose--page { margin-top: 52px; font-size: clamp(20px, 2vw, 32px); }
.c5-contact-page .prose--page h2 { margin-top: 0; }
.c5-contact-page .contact-phone { margin-bottom: 18px; }
.c5-contact-page .contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.contact-location { display: grid; grid-template-columns: minmax(280px,.85fr) minmax(0,1.65fr); gap: 48px; margin-top: 68px; padding-top: 42px; border-top: 1px solid var(--line); }
.contact-location__details h2 { margin: 0 0 28px; font-size: clamp(30px,3vw,48px); font-weight: 500; letter-spacing: -.045em; line-height: 1; }
.contact-location__details address { margin: 0; font-size: clamp(18px,1.6vw,24px); font-style: normal; line-height: 1.45; }
.contact-location__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 30px; }
.contact-location__map { min-height: 380px; overflow: hidden; background: #ddd9d1; }
.contact-location__map iframe { display: block; width: 100%; height: 100%; min-height: 380px; border: 0; filter: grayscale(1) contrast(.94); transition: filter .3s ease; }
.contact-location__map:hover iframe { filter: grayscale(.2); }
.contact-enquiry { display: grid; grid-template-columns: minmax(260px,.85fr) minmax(0,1.15fr); gap: clamp(36px,6vw,92px); margin-top: 64px; padding: clamp(34px,5vw,72px); color: #f5f2eb; background: #171717; }
.contact-enquiry__intro h2 { max-width: 680px; margin: 12px 0 24px; font-size: clamp(34px,4.4vw,72px); font-weight: 500; letter-spacing: -.05em; line-height: .98; }
.contact-enquiry__intro > p:not(.eyebrow) { max-width: 560px; color: #c9c5bc; font-size: clamp(16px,1.35vw,21px); line-height: 1.55; }
.contact-enquiry__intro .text-link { display: inline-block; margin-top: 24px; color: #fff; }
.c5-contact-enquiry__form { align-self: start; gap: 18px; padding: 0; }
.c5-contact-enquiry__form label > span { color: #d7d2c8; }
.c5-contact-enquiry__form input, .c5-contact-enquiry__form select, .c5-contact-enquiry__form textarea { width: 100%; padding: 14px 15px; color: #111; background: #fff; border: 1px solid #fff; border-radius: 7px; outline: none; font: 15px/1.4 Arial,Helvetica,sans-serif; }
.c5-contact-enquiry__form .c5-enquiry__submit { justify-self: start; min-width: 170px; padding: 14px 24px; font-size: 13px; }
.c5-contact-page .c5-enquiry { display: none; }
.products-coming-soon { padding: 64px 0 130px; }
.products-coming-soon__header { padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.products-coming-soon__header h1 { margin: 0; font-size: clamp(58px,8vw,118px); font-weight: 500; letter-spacing: -.07em; line-height: .88; }
.products-coming-soon__intro { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(45px,8vw,130px); padding: clamp(75px,10vw,150px) 0; }
.products-coming-soon__mark { color: var(--accent); font-size: clamp(64px,9vw,142px); font-weight: 500; letter-spacing: -.08em; line-height: .7; text-transform: uppercase; }
.products-coming-soon__mark span { display: block; }
.products-coming-soon__mark span:last-child { margin-left: .55em; color: transparent; -webkit-text-stroke: 1.5px var(--accent); }
.products-coming-soon__copy h2 { max-width: 760px; margin: 0 0 28px; font-size: clamp(34px,4vw,62px); font-weight: 500; letter-spacing: -.05em; line-height: 1; }
.products-coming-soon__copy > p:not(.eyebrow) { max-width: 720px; margin: 0 0 20px; font-size: clamp(17px,1.55vw,23px); line-height: 1.48; }
.product-demand { padding: 56px 0 10px; border-top: 1px solid var(--line); }
.product-demand > header { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 50px; }
.product-demand > header h2 { margin: 0; font-size: clamp(38px,4.4vw,68px); font-weight: 500; letter-spacing: -.055em; line-height: .95; }
.product-demand > header > p { max-width: 560px; margin: 0; color: var(--muted); }
.product-demand__notice { margin: 30px 0 0; padding: 14px 16px; background: rgba(22,124,58,.09); border-left: 3px solid #167c3a; font-size: 14px; }
.product-demand__notice--invalid, .product-demand__notice--rate_limited, .product-demand__notice--expired, .product-demand__notice--error { background: rgba(181,33,39,.08); border-left-color: var(--accent); }
.product-demand form { position: relative; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; margin-top: 42px; }
.product-demand label { display: block; }
.product-demand label > span { display: block; margin-bottom: 8px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.product-demand label small { font-size: inherit; font-weight: 400; letter-spacing: .02em; text-transform: none; }
.product-demand input, .product-demand select, .product-demand textarea { width: 100%; padding: 13px 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; outline: none; }
.product-demand input:focus, .product-demand select:focus, .product-demand textarea:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.product-demand textarea { resize: vertical; }
.product-demand__message, .product-demand__privacy, .product-demand button { grid-column: 1 / -1; }
.product-demand__privacy { max-width: 720px; margin: 0; color: var(--muted); font-size: 11px; }
.product-demand button { justify-self: start; padding: 14px 20px; color: #fff; background: var(--ink); border: 0; cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.product-demand button:hover { background: var(--accent); }
.product-demand__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Interior Mart */
.interior-mart { padding: 64px 0 130px; }
.interior-mart__hero { padding-bottom: clamp(70px,10vw,140px); border-bottom: 1px solid var(--line); }
.interior-mart__hero h1 { margin: 0; font-size: clamp(58px,8vw,118px); font-weight: 500; letter-spacing: -.07em; line-height: .88; }
.interior-mart__hero-copy { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: clamp(35px,8vw,130px); margin-top: clamp(70px,10vw,150px); }
.interior-mart__hero-copy h2 { max-width: 730px; margin: 0; font-size: clamp(42px,5vw,78px); font-weight: 500; letter-spacing: -.06em; line-height: .94; }
.interior-mart__hero-copy p { max-width: 680px; margin: 0; color: var(--muted); font-size: clamp(17px,1.5vw,22px); line-height: 1.55; }
.interior-mart__services { padding: clamp(70px,9vw,130px) 0; }
.interior-mart__services > header { display: grid; grid-template-columns: .7fr 1.3fr; align-items: end; gap: 40px; margin-bottom: 55px; }
.interior-mart__services h2 { max-width: 760px; margin: 0; font-size: clamp(38px,4.4vw,68px); font-weight: 500; letter-spacing: -.055em; line-height: .95; }
.interior-mart__service-grid { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--ink); }
.interior-mart__service-grid article { min-height: 310px; padding: 25px 22px; border-right: 1px solid var(--line); }
.interior-mart__service-grid article:last-child { border-right: 0; }
.interior-mart__service-grid span { color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.interior-mart__service-grid h3 { margin: 75px 0 18px; font-size: clamp(21px,1.8vw,30px); font-weight: 500; letter-spacing: -.035em; line-height: 1.05; }
.interior-mart__service-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.interior-mart__request { padding: clamp(55px,7vw,100px); background: #171717; color: #f5f2eb; }
.interior-mart__request > header { display: grid; grid-template-columns: 1.05fr .95fr; align-items: end; gap: 55px; }
.interior-mart__request > header h2 { margin: 0; font-size: clamp(40px,4.8vw,72px); font-weight: 500; letter-spacing: -.055em; line-height: .96; }
.interior-mart__request > header > p { max-width: 560px; margin: 0; color: #c9c5bc; }
.interior-mart__notice { margin: 32px 0 0; padding: 14px 16px; color: #d7f4df; background: rgba(31,162,79,.16); border-left: 3px solid #31a24f; }
.interior-mart__notice--invalid,.interior-mart__notice--rate_limited,.interior-mart__notice--expired,.interior-mart__notice--file_error,.interior-mart__notice--error { color: #ffd9da; background: rgba(181,33,39,.18); border-left-color: #e5484d; }
.interior-mart-form { position: relative; margin-top: 48px; }
.interior-mart-form__services { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; margin: 0; padding: 0; border: 0; }
.interior-mart-form__services legend { margin-bottom: 12px; color: #d7d2c8; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.interior-mart-form__services label { position: relative; cursor: pointer; }
.interior-mart-form__services input { position: absolute; opacity: 0; }
.interior-mart-form__services label > span { display: flex; min-height: 110px; padding: 18px; border: 1px solid #4c4b48; flex-direction: column; justify-content: space-between; transition: border-color .2s, background .2s; }
.interior-mart-form__services strong { font-size: 15px; line-height: 1.2; }
.interior-mart-form__services small { color: #aaa69e; }
.interior-mart-form__services input:checked + span { background: #b52127; border-color: #b52127; }
.interior-mart-form__services input:checked + span small { color: #fff; }
.interior-mart-form__services input:focus-visible + span { outline: 2px solid #fff; outline-offset: 3px; }
.interior-mart-form__details { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; margin-top: 40px; }
.interior-mart-form__details[hidden] { display: none; }
.interior-mart-form__details label > span { display: block; margin-bottom: 8px; color: #d7d2c8; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.interior-mart-form__details label small { font-size: 9px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.interior-mart-form__details input,.interior-mart-form__details select,.interior-mart-form__details textarea { width: 100%; padding: 14px 15px; color: #111; background: #fff; border: 1px solid #fff; border-radius: 0; outline: none; font: 15px/1.4 Arial,Helvetica,sans-serif; }
.interior-mart-form__details input:focus,.interior-mart-form__details select:focus,.interior-mart-form__details textarea:focus { border-color: #d9575c; box-shadow: 0 0 0 3px rgba(181,33,39,.3); }
.interior-mart-form__details textarea { resize: vertical; }
.interior-mart-form__full { grid-column: 1/-1; }
.interior-mart-form__upload { padding: 22px; border: 1px dashed #77736c; }
.interior-mart-form__upload[hidden],.interior-mart-form__details label[hidden] { display: none; }
.interior-mart-form__upload input[type="file"] { padding: 12px; background: #f4f1eb; }
.interior-mart-form__privacy { max-width: 760px; margin: 0; color: #aaa69e; font-size: 11px; }
.interior-mart-form button { justify-self: start; padding: 15px 22px; color: #111; background: #fff; border: 0; cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.interior-mart-form button:hover { color: #fff; background: var(--accent); }
.interior-mart-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px 22px; padding-top: 60px; }
.journal-grid article img { width: 100%; aspect-ratio: 1.3 / 1; object-fit: cover; margin-bottom: 18px; }
.journal-grid h2 { margin: 0; font-size: 27px; font-weight: 500; }
.journal-grid article > a > p:last-child { color: var(--muted); }

.site-footer { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 30px; padding: 70px 24px; color: #fff; background: var(--ink); font-size: 13px; }
.site-footer p { margin: 0; }
.site-footer__brand { font-size: 24px; font-weight: 700; }
.site-footer > p:last-child { align-self: end; color: rgba(255,255,255,.55); text-align: right; }

/* WhatsApp enquiry */
.c5-enquiry, .wa-chat { display: none !important; }
.wa-chat { position: fixed; z-index: 900; right: 24px; bottom: 24px; display: flex; align-items: flex-end; flex-direction: column; gap: 12px; pointer-events: none; font-family: Arial, Helvetica, sans-serif; }
.wa-chat__panel { width: min(370px, calc(100vw - 32px)); overflow: hidden; background: #fff; border: 1px solid rgba(18,18,18,.12); border-radius: 16px; box-shadow: 0 22px 65px rgba(0,0,0,.24); opacity: 0; pointer-events: none; transform: translateY(12px) scale(.98); transform-origin: bottom right; transition: opacity .2s ease, transform .2s ease; }
.wa-chat.is-open .wa-chat__panel { opacity: 1; pointer-events: auto; transform: none; }
.wa-chat__panel header { display: flex; align-items: center; justify-content: space-between; padding: 18px 18px 16px; color: #fff; background: #111; }
.wa-chat__panel header > div { display: flex; align-items: center; gap: 10px; }
.wa-chat__panel header strong { font-size: 16px; letter-spacing: .01em; }
.wa-chat__panel header button { display: grid; width: 32px; height: 32px; padding: 0; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; cursor: pointer; font-size: 22px; line-height: 1; place-items: center; }
.wa-chat__status { width: 9px; height: 9px; background: #25d366; border-radius: 50%; box-shadow: 0 0 0 4px rgba(37,211,102,.17); }
.wa-chat__intro { padding: 18px 18px 12px; }
.wa-chat__intro p { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
.wa-chat__intro span { display: block; color: #666; font-size: 12px; line-height: 1.45; }
.wa-chat__services { display: block; padding: 0 10px 10px; }
.wa-chat__services a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 10px; border-top: 1px solid #eceae5; font-size: 13px; font-weight: 700; transition: color .18s ease, background .18s ease; }
.wa-chat__services a:hover, .wa-chat__services a:focus-visible { color: #075e54; background: #f4fbf7; }
.wa-chat__services b { color: #25a95b; font-size: 17px; }
.wa-chat__toggle { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 18px 8px 8px; color: #fff; background: #111; border: 0; border-radius: 999px; box-shadow: 0 12px 32px rgba(0,0,0,.25); cursor: pointer; pointer-events: auto; font-size: 13px; font-weight: 700; letter-spacing: .01em; }
.wa-chat__mark { display: grid; width: 40px; height: 40px; color: #fff; background: #25d366; border-radius: 50%; font-size: 11px; font-weight: 800; place-items: center; }
.wa-chat__toggle:focus-visible, .wa-chat__panel button:focus-visible, .wa-chat__services a:focus-visible { outline: 3px solid rgba(37,211,102,.45); outline-offset: 3px; }

/* Direct email enquiry */
.c5-enquiry { position: fixed; z-index: 899; right: 24px; bottom: 92px; display: flex; align-items: flex-end; flex-direction: column; gap: 12px; font-family: Arial, Helvetica, sans-serif; }
.c5-enquiry__panel { width: min(370px, calc(100vw - 32px)); overflow: hidden; background: #fff; border: 1px solid rgba(18,18,18,.12); border-radius: 16px; box-shadow: 0 22px 65px rgba(0,0,0,.24); opacity: 0; pointer-events: none; transform: translateY(12px) scale(.98); transform-origin: bottom right; transition: opacity .2s ease, transform .2s ease; }
.c5-enquiry.is-open .c5-enquiry__panel { opacity: 1; pointer-events: auto; transform: none; }
.c5-enquiry__panel header { display: flex; align-items: center; justify-content: space-between; padding: 18px; color: #fff; background: #111; }
.c5-enquiry__panel header > div { display: flex; align-items: center; gap: 10px; }
.c5-enquiry__panel header strong { font-size: 16px; }
.c5-enquiry__close { display: grid; width: 32px; height: 32px; padding: 0; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; cursor: pointer; font-size: 22px; line-height: 1; place-items: center; }
.c5-enquiry__status { width: 9px; height: 9px; background: #b52127; border-radius: 50%; box-shadow: 0 0 0 4px rgba(181,33,39,.17); }
.c5-enquiry__form { display: grid; gap: 13px; padding: 18px; }
.c5-enquiry__form > p { margin: 0 0 2px; color: #666; font-size: 12px; line-height: 1.45; }
.c5-enquiry__form label > span { display: block; margin-bottom: 5px; color: #555; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.c5-enquiry__form label > span small { font-size: 9px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.c5-enquiry__form input, .c5-enquiry__form textarea { width: 100%; padding: 10px 11px; color: #111; background: #fafafa; border: 1px solid #d9d6cf; border-radius: 7px; outline: none; font: 13px/1.4 Arial, Helvetica, sans-serif; }
.c5-enquiry__form input[type="file"] { padding: 8px; font-size: 11px; }
.c5-enquiry__form input:focus, .c5-enquiry__form textarea:focus { border-color: #b52127; box-shadow: 0 0 0 3px rgba(181,33,39,.1); }
.c5-enquiry__form textarea { resize: vertical; }
.c5-enquiry__submit { padding: 12px 16px; color: #fff; background: #b52127; border: 0; border-radius: 7px; cursor: pointer; font-size: 12px; font-weight: 700; }
.c5-enquiry__submit:disabled { cursor: wait; opacity: .65; }
.c5-enquiry__feedback { display: none; padding: 9px 10px; border-radius: 6px; font-size: 12px; line-height: 1.4; }
.c5-enquiry__feedback.is-success, .c5-enquiry__feedback.is-error { display: block; }
.c5-enquiry__feedback.is-success { color: #075e36; background: #eaf8ef; }
.c5-enquiry__feedback.is-error { color: #8e171c; background: #fbecee; }
.c5-enquiry__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.c5-enquiry__toggle { display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 6px 14px 6px 6px; color: #fff; background: #b52127; border: 0; border-radius: 999px; box-shadow: 0 10px 26px rgba(0,0,0,.2); cursor: pointer; font-size: 12px; font-weight: 700; }
.c5-enquiry__mark { display: grid; width: 30px; height: 30px; color: #b52127; background: #fff; border-radius: 50%; font-size: 15px; place-items: center; }
.c5-enquiry__toggle:focus-visible, .c5-enquiry__close:focus-visible { outline: 3px solid rgba(181,33,39,.35); outline-offset: 3px; }

@media (max-width: 980px) {
  :root { --shell: min(100% - 32px, 1480px); }
  .site-header { padding-inline: 16px; }
  .site-nav--desktop { display: none; }
  .mobile-nav { display: block; }
  .mobile-nav__toggle { position: relative; z-index: 1002; display: block; width: 44px; height: 44px; padding: 10px; color: currentColor; cursor: pointer; list-style: none; }
  .mobile-nav__toggle::-webkit-details-marker { display: none; }
  .mobile-nav__toggle::marker { content: ''; }
  .mobile-nav__toggle span { display: block; width: 24px; height: 1px; margin: 7px 0; background: currentColor; transition: transform .2s ease; }
  .mobile-nav[open] .mobile-nav__toggle span:first-child { transform: translateY(4px) rotate(45deg); }
  .mobile-nav[open] .mobile-nav__toggle span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .mobile-nav .site-nav { position: fixed; z-index: 1001; inset: 76px 0 auto; display: block; max-height: calc(100dvh - 76px); overflow-y: auto; padding: 25px 16px 40px; color: var(--ink); background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 18px 35px rgba(0,0,0,.16); }
  .site-nav__list { align-items: stretch; flex-direction: column; gap: 0; }
  .site-nav li { border-bottom: 1px solid var(--line); }
  .site-nav a { display: block; padding: 16px 0; font-size: 15px; }
  .project-grid { grid-template-columns: repeat(2, 1fr); }
  .project-filters { grid-template-columns: 1fr 1fr; }
  .filter-count { justify-self: start; }
  .project-detail__header { grid-template-columns: 1fr; }
  .home-studio, .project-detail__story { grid-template-columns: 1fr; }
  .client-reviews__list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .global-reviews__list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-location { grid-template-columns: 1fr; }
  .contact-enquiry { grid-template-columns: 1fr; }
  .products-coming-soon__intro { grid-template-columns: 1fr; }
  .product-demand form { grid-template-columns: 1fr 1fr; }
  .interior-mart__service-grid { grid-template-columns: repeat(2,1fr); }
  .interior-mart__service-grid article { border-bottom: 1px solid var(--line); }
  .interior-mart-form__services { grid-template-columns: repeat(2,1fr); }
  .project-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-gallery__item--wide { grid-column: auto; }
  .client-reviews { margin-top: 75px; padding-block: 38px 45px; }
  .client-reviews__header { grid-template-columns: 1fr; gap: 20px; }
  .client-reviews__list { grid-template-columns: 1fr; }
  .client-review-form form { grid-template-columns: 1fr; gap: 18px; }
  .client-review-form__message, .client-review-form__photo, .client-review-form__privacy, .client-review-form button { grid-column: auto; }
  .global-reviews { padding-top: 52px; }
  .global-reviews__hero { grid-template-columns: 1fr; gap: 28px; }
  .global-reviews__list { grid-template-columns: 1fr; }
  .client-review-form__rating, .client-review-form__project { grid-column: auto; }
  .contact-location { margin-top: 48px; gap: 30px; }
  .contact-enquiry { margin-top: 44px; padding: 30px 22px; }
  .contact-location__map, .contact-location__map iframe { min-height: 320px; }
  .products-coming-soon { padding-top: 52px; }
  .products-coming-soon__intro { gap: 55px; padding-block: 70px; }
  .products-coming-soon__mark { font-size: clamp(62px,22vw,105px); }
  .product-demand > header { grid-template-columns: 1fr; gap: 20px; }
  .product-demand form { grid-template-columns: 1fr; gap: 19px; }
  .product-demand__message, .product-demand__privacy, .product-demand button { grid-column: auto; }
  .interior-mart { padding-top: 52px; }
  .interior-mart__hero-copy,.interior-mart__services > header,.interior-mart__request > header { grid-template-columns: 1fr; }
  .interior-mart__service-grid { grid-template-columns: 1fr; }
  .interior-mart__service-grid article { min-height: 220px; border-right: 0; }
  .interior-mart__service-grid h3 { margin-top: 48px; }
  .interior-mart__request { padding: 42px 22px; }
  .interior-mart-form__services,.interior-mart-form__details { grid-template-columns: 1fr; }
  .interior-mart-form__full { grid-column: auto; }
  .site-footer { grid-template-columns: 1fr 1fr; }
}

/* Keep the site header below WordPress' logged-in admin bar on phones. */
@media screen and (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  body.admin-bar .mobile-nav .site-nav { inset: 122px 0 auto; max-height: calc(100dvh - 122px); }
}

@media (max-width: 620px) {
  .wa-chat { right: 16px; bottom: 16px; }
  .c5-enquiry { right: 16px; bottom: 84px; }
  .c5-enquiry__panel { max-height: calc(100dvh - 160px); overflow-y: auto; }
  .wa-chat__toggle { min-height: 54px; }
  .wa-chat__panel { max-height: calc(100dvh - 94px); overflow-y: auto; }
  .home-hero__content { width: calc(100% - 32px); padding-bottom: 55px; }
  .home-hero h1 { font-size: clamp(36px, 10vw, 46px); }
  .home-hero__text-block { width: 100%; }
  .home-hero__lockup { width: min(100%, 390px); }
  .home-hero__title-line--local { margin-top: .04em; margin-left: 0; font-size: .84em; }
  .home-hero__title-accent { width: 24px; height: 3px; margin-right: 12px; }
  .home-hero__controls { right: 16px; bottom: 14px; }
  .home-hero__controls > button { width: 36px; height: 36px; }
  .home-hero__captions { padding-inline: 18px; }
  .home-hero__caption { font-size: clamp(38px, 13vw, 60px); }
  .home-hero__meta { bottom: 18px; left: 16px; display: block; max-width: 150px; line-height: 1.5; }
  .home-hero__meta a { display: inline-block; margin-top: 7px; }
  .statement { padding-block: 90px; }
  .project-grid { grid-template-columns: 1fr; row-gap: 38px; }
  .project-card__body { display: block; }
  .project-card__body p { max-width: none; text-align: left; }
  .project-card__overlay { top: auto; align-items: flex-start; justify-content: flex-end; gap: 2px; min-height: 42%; padding: 18px 16px 14px; background: linear-gradient(transparent, rgba(10,10,9,.82)); opacity: 1; text-align: left; }
  .project-card__overlay-country { font-size: 9px; }
  .project-card__overlay-name { font-size: 19px; }
  .project-filters { grid-template-columns: 1fr; }
  .filter-reset { justify-self: start; }
  .archive-hero { padding-top: 52px; }
  .archive-hero h1 { font-size: 56px; }
  .standard-page h1 { font-size: 64px; }
  .c5-about-page .standard-page, .c5-studio-page .standard-page { padding: 30px 0 38px; }
  .c5-about-page .standard-page h1, .c5-studio-page .standard-page h1 { font-size: 52px; }
  .c5-about-page .standard-page header, .c5-studio-page .standard-page header { padding-bottom: 22px; }
  .c5-about-page .prose--page, .c5-studio-page .prose--page { margin-top: 25px; font-size: 16px; }
  .archive-hero > p:last-child { margin-left: 0; }
  .project-detail__header { padding: 48px 0 30px; }
  .project-detail__header h1 { font-size: 48px; }
  .project-facts { grid-template-columns: 1fr; }
  .project-detail__hero { width: 100%; }
  .project-detail__hero img { max-height: 68vh; }
  .project-detail__story { padding-block: 55px; }
  .prose { font-size: 18px; }
  .project-gallery { grid-template-columns: 1fr; gap: 12px; }
  .project-gallery__item--wide { grid-column: auto; }
  .project-lightbox-trigger::after { right: 9px; bottom: 9px; width: 30px; height: 30px; opacity: 1; font-size: 19px; }
  .c5-lightbox { grid-template-columns: 54px minmax(0, 1fr) 54px; }
  .c5-lightbox__figure { padding: 62px 4px 20px; }
  .c5-lightbox__image { max-height: calc(100dvh - 130px); }
  .c5-lightbox__close { top: 12px; right: 12px; width: 40px; height: 40px; }
  .c5-lightbox__arrow { width: 42px; height: 42px; font-size: 18px; }
  .c5-lightbox__caption { padding-inline: 8px; }
  .journal-grid { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer > p:last-child { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .wa-chat__panel { transition: none; }
  .home-hero__caption:nth-child(5)::before { animation: none; }
  .home-hero__slide.is-running { animation: none; }
  .home-hero__caption.is-active .c5-word-sequence__word { animation: none; }
  .home-hero__caption.is-active .c5-word-sequence__word:first-child { opacity: 1; filter: none; transform: translateY(-50%); }
}
