:root {
  --paper:#f8f7f3;
  --ink:#202623;
  --muted:#70746e;
  --line:#dddfd7;
  --orange:#ed743c;
  --dark:#182826;
  --type-body:16px;
  --type-lead:18px;
  --type-meta:13px;
  --type-small:14px;
  --type-h1:clamp(64px,5.3vw,76px);
  --type-h2:clamp(38px,3.3vw,48px);
  --type-h3:26px;
  --type-card:22px;
  --font:'DM Sans',sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font);
  font-size:var(--type-body);
  line-height:1.7;
}
body.modal-open {
  overflow:hidden;
}
body.menu-open {
  overflow:hidden;
}
button,input,select,textarea {
  font:inherit;
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent;
}
button,a {
  touch-action:manipulation;
}
button {
  cursor:pointer;
}
a {
  color:inherit;
  text-decoration:none;
}
button {
  color:inherit;
}
img {
  display:block;
  max-width:100%;
  object-fit:cover;
}
button {
  border:0;
}
h1,h2,h3,p {
  margin:0;
}
h1,h2,h3 {
  font-family:'Manrope',sans-serif;
  line-height:1.2;
  letter-spacing:-.045em;
}
h2 {
  font-size:var(--type-h2);
  font-weight:600;
}
h3 {
  font-size:var(--type-h3);
  font-weight:650;
  letter-spacing:-.03em;
}
p {
  color:var(--muted);
}
:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px;
}
::selection {
  background:#ed743c;
  color:#fff;
}
[hidden] {
  display:none!important;
}
.shell {
  width:min(1360px,calc(100% - 96px));
  margin-inline:auto;
}
.section {
  padding-block:96px;
}
.accent,.brand-dot {
  color:var(--orange);
}
.eyebrow {
  font-size:12px;
  font-weight:600;
  letter-spacing:.19em;
  line-height:1.6;
  text-transform:uppercase;
  color:#e4e9e3;
  margin-bottom:22px;
}
.eyebrow.dark {
  color:#777d70;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  min-height:58px;
  padding:14px 24px;
  background:var(--orange);
  color:#151d19;
  font-size:var(--type-body);
  font-weight:700;
  border:1px solid var(--orange);
  border-radius:3px;
  transition:background .2s,transform .2s;
}
.button:hover {
  background:#ff945e;
  transform:translateY(-2px);
}
.button span {
  font-size:20px;
  line-height:1;
}
.button-small {
  min-height:48px;
  padding:10px 19px;
}
.button-outline {
  background:transparent;
  border-color:#ffffff70;
  color:#fff;
}
.button-outline:hover {
  background:#ffffff14;
}
.button-row {
  display:flex;
  flex-wrap:wrap;
  gap:13px;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:36px;
  border-bottom:1px solid #a9aea4;
  padding:7px 0;
  font-size:var(--type-body);
  font-weight:600;
  background:none;
}
.text-link span {
  font-size:20px;
}
.text-link:hover {
  color:#aa461c;
  border-color:var(--orange);
}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:45px;
  margin-bottom:40px;
}
.heading-aside {
  max-width:390px;
  font-size:var(--type-lead);
}
.heading-aside .text-link {
  margin-top:17px;
}
.skip-link {
  position:fixed;
  z-index:100;
  top:-100px;
  left:20px;
  background:var(--paper);
  padding:12px;
}
.skip-link:focus {
  top:15px;
}
.site-header {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  z-index:30;
  color:#fff;
  border-bottom:1px solid #ffffff26;
}
.site-header.scrolled {
  position:fixed;
  background:var(--dark);
  box-shadow:0 1px 0 #ffffff20;
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:98px;
  gap:35px;
}
.scrolled .header-inner {
  height:76px;
}
.brand {
  display:flex;
  align-items:center;
  gap:11px;
  white-space:nowrap;
  font-family:'Manrope',sans-serif;
  font-size:27px;
  font-weight:800;
  letter-spacing:-1.3px;
  line-height:1.2;
}
.brand-mark {
  font-size:45px;
  font-weight:400;
  line-height:1;
  color:var(--orange);
}
.brand small {
  display:block;
  font-size:7px;
  font-family:var(--font);
  letter-spacing:1px;
  font-weight:500;
  margin-top:7px;
  color:#ddd;
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:15px;
}
.site-header nav>a:not(.button):hover {
  color:#ffac80;
}
.nav-item { position:relative; display:flex; align-items:center; }
.nav-item>a, .site-header nav>a:not(.button) { transition:color .18s ease; }
.site-header nav .is-current { color:#ffac80; }
.submenu-toggle { width:28px; height:36px; padding:0; margin-left:-3px; background:transparent; color:#fff; font-size:18px; line-height:1; }
.submenu-toggle span { display:block; transition:transform .2s ease; }
.nav-submenu { position:absolute; top:calc(100% + 18px); left:-100px; width:min(680px,calc(100vw - 40px)); padding:22px; display:grid; grid-template-columns:1fr 1fr; gap:2px 24px; background:#f4f3ed; color:#142724; border:1px solid #d8dbd1; box-shadow:0 24px 60px rgba(5,20,18,.2); opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .18s ease,transform .18s ease,visibility .18s; }
.nav-submenu::before { content:''; position:absolute; left:0; right:0; top:-20px; height:20px; }
.nav-submenu-title { grid-column:1/-1; padding:0 10px 12px; margin-bottom:7px; color:#6a756f; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid #d8dbd1; }
.nav-submenu a { min-height:46px; padding:11px 10px; display:flex; align-items:center; justify-content:space-between; gap:14px; font-size:14px; font-weight:600; border-bottom:1px solid #dde0d7; }
.nav-submenu a:hover, .nav-submenu a[aria-current=page] { color:#e9622d; }
.nav-has-submenu:hover .nav-submenu, .nav-has-submenu:focus-within .nav-submenu, .nav-has-submenu.is-open .nav-submenu { opacity:1; visibility:visible; transform:none; }
.nav-has-submenu:hover .submenu-toggle span, .nav-has-submenu:focus-within .submenu-toggle span, .nav-has-submenu.is-open .submenu-toggle span { transform:rotate(180deg); }
.menu-toggle {
  display:none;
  background:none;
  width:44px;
  height:44px;
  padding:9px;
}
.menu-toggle span {
  height:2px;
  background:#fff;
  display:block;
  margin-block:7px;
}
.hero {
  position:relative;
  min-height:760px;
  height:min(900px,95svh);
  color:#fff;
  background:var(--dark);
  isolation:isolate;
}
.hero-image,.hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-3;
}
.hero-image {
  object-position:center 54%;
}
.hero-video {
  z-index:-2;
}
.hero:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,29,29,.8),rgba(6,29,29,.24)),linear-gradient(0deg,#10272280,transparent 45%);
  z-index:-1;
}
.hero-content {
  padding-top:clamp(195px,22vh,260px);
}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:11px;
}
.status-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--orange);
}
h1 {
  font-size:var(--type-h1);
  font-weight:500;
  line-height:1.05;
  letter-spacing:-.045em;
  max-width:850px;
}
.hero-description {
  color:#e0e6e4;
  max-width:550px;
  font-size:var(--type-lead);
  margin-top:25px;
  line-height:1.85;
}
.hero .button-row {
  margin-top:31px;
}
.hero-trust {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:var(--type-meta);
  color:#dae3dd;
  margin-top:27px;
}
.hero-trust i {
  width:3px;
  height:3px;
  background:#c5cec7;
  border-radius:50%;
}
.hero-bottom {
  position:absolute;
  bottom:29px;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #ffffff38;
  padding-top:23px;
  font-size:11px;
  letter-spacing:.13em;
  color:#dfe7e2;
}
.crosshair {
  font-size:19px;
  margin-right:7px;
}
.hero-bottom a span {
  margin-left:25px;
  font-size:16px;
}
.hero-counter {
  font-size:17px;
  font-weight:500;
  letter-spacing:0;
}
.hero-counter span {
  color:#c6d4ce;
  font-size:13px;
  margin-left:10px;
}
.portfolio-grid {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  grid-template-rows:330px 280px;
  gap:22px;
}
.portfolio-item {
  position:relative;
  overflow:hidden;
  text-align:left;
  background:var(--dark);
  color:white;
  padding:0;
  border-radius:3px;
  isolation:isolate;
}
.portfolio-item img {
  width:100%;
  height:100%;
  transition:transform .6s;
  position:absolute;
  inset:0;
  z-index:-2;
}
.portfolio-item:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#0e201fdb,transparent 75%);
  z-index:-1;
}
.portfolio-item:hover img {
  transform:scale(1.035);
}
.portfolio-0 {
  grid-row:span 2;
}
.portfolio-caption {
  display:flex;
  flex-direction:column;
  position:absolute;
  bottom:28px;
  left:29px;
  right:29px;
}
.portfolio-caption .eyebrow {
  font-size:12px;
  margin-bottom:9px;
}
.portfolio-caption strong {
  font-family:'Manrope',sans-serif;
  font-size:28px;
  letter-spacing:-.04em;
  font-weight:500;
  margin-bottom:8px;
}
.portfolio-0 .portfolio-caption strong {
  font-size:36px;
}
.portfolio-caption>span:last-child {
  font-size:var(--type-meta);
  color:#e0e6e1;
}
.sample-tag {
  position:absolute;
  left:20px;
  top:20px;
  background:#162923b3;
  border:1px solid #ffffff60;
  padding:3px 8px;
  font-size:11px;
  letter-spacing:.13em;
  color:#fff;
}
.project-arrow {
  position:absolute;
  right:20px;
  top:20px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid #ffffff70;
  border-radius:50%;
  color:#fff;
  font-size:20px;
}
.project-view {
  float:right;
  opacity:0;
  transition:opacity .2s;
}
.portfolio-item:hover .project-view,.portfolio-item:focus-visible .project-view {
  opacity:1;
}
.sample-note {
  font-size:var(--type-meta);
  margin-top:15px;
}
.services-section {
  background:#eeeee7;
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:46px 32px;
}
.service-photo {
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:3px;
  margin-bottom:21px;
}
.service-photo img {
  width:100%;
  height:265px;
  transition:transform .5s;
}
.service-photo:hover img {
  transform:scale(1.04);
}
.service-photo>span {
  position:absolute;
  bottom:12px;
  left:15px;
  color:white;
  font-size:13px;
  background:#172521a6;
  padding:4px 8px;
}
.service-item h3 {
  font-size:var(--type-card);
  margin-bottom:10px;
}
.service-item p {
  font-size:var(--type-body);
  max-width:38ch;
  margin-bottom:12px;
}
.service-item .text-link {
  border:none;
  padding:5px 0;
  gap:20px;
}
.section-bottom {
  border-top:1px solid #d5d8cf;
  padding-top:23px;
  margin-top:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:var(--type-body);
  color:var(--muted);
}
.quote-section {
  background:var(--dark);
  color:#fff;
}
.quote-layout {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:100px;
}
.quote-layout h2 {
  font-size:var(--type-h2);
}
.quote-layout>div>p:not(.eyebrow) {
  color:#bdc8c1;
  max-width:33ch;
  margin-top:23px;
}
.quote-footnote {
  border-top:1px solid #ffffff25;
  margin-top:62px;
  padding-top:20px;
  font-size:var(--type-small);
  color:#cbd3cc;
}
.quote-footnote span {
  margin-right:15px;
  font-size:22px;
}
fieldset {
  min-width:0;
  border:0;
  padding:0;
  margin:0 0 22px;
}
legend,label {
  font-size:var(--type-small);
  font-weight:500;
}
legend {
  margin-bottom:10px;
}
.type-options {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.type-options label {
  position:relative;
  cursor:pointer;
}
.type-options input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
}
.type-options span {
  display:block;
  padding:11px 16px;
  border:1px solid #ffffff40;
  border-radius:2px;
  font-size:var(--type-small);
  color:#d6dfd9;
}
.type-options input:checked+span {
  background:var(--orange);
  color:#18231f;
  border-color:var(--orange);
}
.type-options input:focus-visible+span {
  outline:3px solid white;
  outline-offset:2px;
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px;
}
.quote-form>label,.form-grid>label {
  display:block;
  margin-bottom:17px;
}
input:not([type=radio]):not([type=checkbox]),select,textarea {
  display:block;
  width:100%;
  min-width:0;
  padding:12px 14px;
  border:1px solid #ffffff35;
  background:#20312e;
  color:#fff;
  border-radius:3px;
  font-size:var(--type-body);
  margin-top:7px;
  min-height:54px;
}
textarea {
  resize:vertical;
}
input::placeholder,textarea::placeholder {
  color:#9eaea5;
}
select option {
  background:var(--dark);
  color:white;
}
.optional {
  font-weight:400;
  color:#a8b9ae;
}
.form-note {
  font-size:var(--type-meta);
  color:#bccac0;
  margin-top:14px;
}
.quote-form .button {
  width:100%;
}
.form-result {
  border:1px solid #9dad94;
  padding:18px;
  margin-top:18px;
  color:#d9e5d9;
  font-size:var(--type-body);
  white-space:pre-line;
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:85px;
  align-items:center;
}
.about-image {
  position:relative;
  overflow:hidden;
  border-radius:3px;
}
.about-image img {
  width:100%;
  height:540px;
  border-radius:3px;
}
.image-label {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  background:#132c27de;
  color:#fff;
  padding:22px;
  font-size:var(--type-meta);
  letter-spacing:.17em;
}
.about-copy>p:not(.eyebrow) {
  font-size:var(--type-lead);
  margin-top:22px;
}
.feature-list {
  list-style:none;
  margin:28px 0 22px;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  font-size:var(--type-body);
}
.feature-list span {
  color:#be531f;
  margin-right:9px;
}
.process-section {
  background:#eeeee7;
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
}
.process-grid article {
  border-top:1px solid #cdd1c5;
  padding-top:27px;
  position:relative;
}
.process-grid article:before {
  content:'';
  position:absolute;
  top:-4px;
  left:0;
  width:7px;
  height:7px;
  background:var(--orange);
  border-radius:50%;
}
.process-number {
  display:block;
  font-size:78px;
  line-height:1;
  font-family:'Manrope',sans-serif;
  color:#a7afa0;
  letter-spacing:-3px;
  margin-bottom:28px;
}
.process-grid h3 {
  font-size:var(--type-h3);
  margin-bottom:13px;
}
.process-grid p {
  max-width:34ch;
  font-size:var(--type-body);
}
.regions-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:85px;
  align-items:center;
}
.regions-grid h2 {
  max-width:470px;
}
.regions-grid p:not(.eyebrow) {
  margin-top:22px;
  font-size:var(--type-body);
}
.region-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 25px;
  margin-top:26px;
}
.region-links a {
  display:flex;
  justify-content:space-between;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  font-size:var(--type-body);
}
.region-links a:hover {
  color:#b5471d;
}
.region-visual {
  position:relative;
  border-radius:3px;
  overflow:hidden;
  min-height:500px;
  background:var(--dark);
  color:#fff;
}
.region-visual img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:.48;
}
.region-visual-label {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding:20px;
  background:linear-gradient(0deg,#0d272aaa,transparent);
}
.region-visual-label strong {
  font-family:'Manrope',sans-serif;
  font-size:65px;
  font-weight:500;
  letter-spacing:-4px;
}
.region-visual-label>span:last-child {
  font-size:var(--type-small);
  margin-top:8px;
}
.map-placeholder {
  position:absolute;
  bottom:20px;
  left:0;
  right:0;
  text-align:center;
  font-size:var(--type-meta);
  color:#e2e9e0;
}
.showreel {
  position:relative;
  isolation:isolate;
  background:var(--dark);
  color:#fff;
  text-align:center;
  padding:90px 0;
}
.showreel>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:-2;
}
.showreel:after {
  content:'';
  position:absolute;
  inset:0;
  background:#0d2429a3;
  z-index:-1;
}
.showreel h2 {
  font-size:clamp(38px,4vw,56px);
}
.play-button {
  display:grid;
  place-items:center;
  width:79px;
  height:79px;
  background:#ffffff12;
  border:1px solid #ffffffaa;
  color:#fff;
  border-radius:50%;
  margin:29px auto 20px;
  font-size:20px;
}
.play-button:hover {
  background:var(--orange);
  border-color:var(--orange);
}
.play-button span {
  margin-left:4px;
}
.reel-label {
  font-size:var(--type-meta);
  letter-spacing:.16em;
  color:#fff;
}
.reel-label span {
  margin:0 12px;
}
.pricing-section {
  background:#eeeee7;
}
.price-form {
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  gap:20px;
  align-items:end;
  border-block:1px solid #d4d8cc;
  padding:27px 0;
}
.price-form select {
  background:var(--paper);
  color:var(--ink);
  border-color:#cfd4c8;
}
.price-form .button {
  min-height:54px;
}
.price-detail {
  margin-top:18px;
}
.latest-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.latest-image {
  width:100%;
  padding:0;
  display:block;
  position:relative;
  border-radius:3px;
  overflow:hidden;
  background:var(--dark);
}
.latest-image img {
  height:285px;
  width:100%;
  transition:transform .5s;
}
.latest-image:hover img {
  transform:scale(1.04);
}
.latest-grid .eyebrow {
  margin:22px 0 9px;
  font-size:var(--type-meta);
}
.latest-grid h3 {
  font-size:var(--type-card);
}
.latest-grid article>p:last-child {
  font-size:var(--type-body);
  margin-top:10px;
}
.references {
  border-top:1px solid var(--line);
  padding-block:35px 65px;
  display:flex;
  justify-content:space-between;
  gap:40px;
  align-items:center;
}
.references h2 {
  font-size:22px;
  letter-spacing:-.03em;
}
.references p {
  font-size:var(--type-small);
  margin-top:8px;
}
.reference-placeholders {
  display:flex;
  gap:30px;
}
.reference-placeholders span {
  display:grid;
  place-items:center;
  border:1px dashed #cbd0c4;
  padding:18px 25px;
  font-size:var(--type-meta);
  letter-spacing:.15em;
  color:#73796c;
}
.faq-section {
  background:#eeeee7;
}
.faq-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:85px;
}
.faq-grid>div>p:not(.eyebrow) {
  font-size:var(--type-body);
  margin-top:25px;
}
.faq-grid .text-link {
  margin-top:14px;
}
.faq-list details {
  border-bottom:1px solid #cfd5c9;
}
.faq-list summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:var(--type-lead);
  cursor:pointer;
  list-style:none;
  padding:20px 0;
  font-weight:500;
}
.faq-list summary::-webkit-details-marker {
  display:none;
}
.faq-list summary span {
  font-size:22px;
  font-weight:400;
  transition:transform .2s;
}
.faq-list details[open] summary span {
  transform:rotate(45deg);
  color:#b74a1c;
}
.faq-list details p {
  font-size:var(--type-body);
  padding:0 25px 22px 0;
  max-width:560px;
}
.contact-section {
  position:relative;
  isolation:isolate;
  background:var(--dark);
  color:#fff;
  padding:90px 0;
}
.contact-section>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:-2;
}
.contact-section:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#0d2527e8,#0d25277a);
  z-index:-1;
}
.contact-content h2 {
  font-size:clamp(48px,4.8vw,72px);
}
.contact-content>p:not(.eyebrow) {
  max-width:430px;
  color:#d2ded6;
  margin:23px 0 29px;
  font-size:var(--type-lead);
}
.site-footer {
  background:#14211f;
  color:#e1e5df;
  padding:65px 0 0;
}
.footer-grid {
  display:grid;
  grid-template-columns:1.7fr 1.3fr .8fr .8fr;
  gap:45px;
  padding-bottom:45px;
}
.footer-brand p {
  color:#abb8ae;
  font-size:var(--type-body);
  max-width:260px;
  margin:23px 0;
}
.footer-location {
  font-size:var(--type-meta);
  color:#c1ccbe;
}
.footer-grid h2 {
  font-size:16px;
  font-weight:600;
  letter-spacing:0;
  margin-bottom:19px;
}
.footer-region-list { display:grid; grid-template-columns:1fr 1fr; column-gap:16px; }
.footer-region-list a { min-width:0; }
.footer-grid>div:not(.footer-brand)>a,.footer-grid>div>button {
  display:block;
  padding:7px 0;
  font-size:var(--type-small);
  color:#acbaaf;
  background:none;
  text-align:left;
  line-height:1.8;
}
.footer-grid a:hover,.footer-grid button:hover {
  color:white;
}
.footer-grid .contact-heading {
  margin-top:24px;
  margin-bottom:10px;
}
.footer-bottom {
  border-top:1px solid #ffffff20;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding:24px 0;
  color:#a7b5a9;
  font-size:var(--type-meta);
}
.footer-bottom>div {
  display:flex;
  gap:22px;
}
.footer-bottom button {
  background:none;
  font-size:var(--type-meta);
  padding:6px 0;
}
.footer-bottom>a {
  font-size:22px;
}
dialog {
  border:0;
  border-radius:4px;
  background:var(--paper);
  color:var(--ink);
  padding:0;
  max-width:720px;
  width:calc(100% - 32px);
  max-height:90svh;
  overflow:auto;
  margin:auto;
}
dialog::backdrop {
  background:#061513d9;
  backdrop-filter:blur(5px);
}
.dialog-close {
  position:absolute;
  right:14px;
  top:14px;
  z-index:2;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--paper);
  color:var(--ink);
  font-size:18px;
  box-shadow:0 0 0 1px #ccc;
}
.dialog-copy {
  padding:35px;
}
.dialog-copy h2 {
  font-size:30px;
  padding-right:20px;
}
.dialog-copy p:last-child {
  margin-top:18px;
  font-size:var(--type-body);
}
.dialog-copy .eyebrow {
  margin-bottom:12px;
}
.dialog-copy:first-child {
  padding-top:55px;
}
#dialog-media img,#dialog-media video {
  width:100%;
  max-height:420px;
  object-fit:cover;
}
.video-toggle {
  position:absolute;
  right:30px;
  top:120px;
  z-index:2;
  background:#10251ddb;
  color:#fff;
  padding:10px;
  font-size:12px;
}
.noscript-note {
  padding:15px;
  background:#ffe5c5;
  color:#222;
  text-align:center;
  font-size:var(--type-meta);
}
@media(min-width:1500px) {
  .hero-content {
    padding-top:240px;
  }
}
@media(max-width:1100px) {
  .shell {
    width:calc(100% - 64px);
  }
  .site-header nav {
    gap:19px;
  }
  .brand {
    font-size:24px;
  }
  .brand-mark {
    font-size:37px;
  }
  .quote-layout,.about-grid,.regions-grid,.faq-grid {
    gap:45px;
  }
  .service-photo img {
    height:230px;
  }
  .footer-grid {
    gap:25px;
  }
  .reference-placeholders {
    gap:12px;
  }
  .reference-placeholders span {
    padding:18px;
  }
  .portfolio-grid {
    grid-template-rows:290px 250px;
  }
}
@media(max-width:800px) {
  .shell {
    width:calc(100% - 40px);
  }
  .section {
    padding-block:64px;
  }
  .header-inner {
    height:80px;
  }
  .menu-toggle {
    display:block;
  }
  .site-header nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    padding:20px;
    background:var(--dark);
    flex-direction:column;
    align-items:stretch;
    gap:0;
    border-top:1px solid #ffffff20;
    max-height:calc(100svh - 80px);
    overflow:auto;
  }
  .site-header nav.is-open {
    display:flex;
  }
  .site-header nav>a:not(.button) {
    padding:13px 5px;
    font-size:var(--type-body);
  }
  .site-header nav .button {
    margin-top:12px;
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(4.5px) rotate(45deg);
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-4.5px) rotate(-45deg);
  }
  .hero {
    height:800px;
    min-height:700px;
    max-height:none;
  }
  .hero-content {
    padding-top:185px;
  }
  .hero h1 {
    font-size:var(--type-h1);
  }
  .hero-bottom {
    font-size:11px;
  }
  .hero-bottom>a {
    display:none;
  }
  .section-heading {
    gap:25px;
    margin-bottom:30px;
  }
  .heading-aside {
    max-width:260px;
    font-size:var(--type-lead);
  }
  .portfolio-grid {
    grid-template-rows:250px 230px;
    gap:15px;
  }
  .portfolio-caption {
    left:20px;
    right:20px;
    bottom:20px;
  }
  .portfolio-0 .portfolio-caption strong {
    font-size:36px;
  }
  .portfolio-caption strong {
    font-size:28px;
  }
  .service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .quote-layout {
    grid-template-columns:1fr;
    gap:35px;
  }
  .quote-layout h2 br {
    display:none;
  }
  .quote-layout>div>p:not(.eyebrow) {
    max-width:none;
  }
  .quote-footnote {
    display:none;
  }
  .about-grid,.regions-grid {
    gap:35px;
  }
  .about-image img {
    height:510px;
  }
  .feature-list {
    grid-template-columns:1fr;
  }
  .region-visual {
    min-height:480px;
  }
  .region-visual-label strong {
    font-size:50px;
  }
  .price-form {
    grid-template-columns:1fr 1fr;
  }
  .latest-grid {
    gap:18px;
  }
  .latest-image img {
    height:230px;
  }
  .latest-grid h3 {
    font-size:var(--type-card);
  }
  .references {
    align-items:flex-start;
    flex-direction:column;
    gap:25px;
    padding-bottom:45px;
  }
  .faq-grid {
    grid-template-columns:1fr;
    gap:25px;
  }
  .faq-grid h2 {
    max-width:500px;
  }
  .footer-grid {
    grid-template-columns:1.3fr 1fr;
  }
  .footer-bottom {
    flex-wrap:wrap;
  }
  .footer-bottom>div {
    order:3;
    width:100%;
  }
}
@media(max-width:540px) {
  .hero {
    height:760px;
    min-height:760px;
  }
  .hero-image {
    object-position:61% center;
  }
  .hero:after {
    background:linear-gradient(90deg,#0a232cda,#0a232c66),linear-gradient(0deg,#0a232c8a,transparent);
  }
  .hero-content {
    padding-top:166px;
  }
  .hero .eyebrow {
    font-size:12px;
    letter-spacing:.14em;
  }
  .hero h1 {
    font-size:var(--type-h1);
  }
  .hero-description {
    font-size:var(--type-lead);
    max-width:340px;
    margin-top:24px;
  }
  .hero .button-row {
    flex-direction:column;
    align-items:stretch;
    max-width:330px;
    gap:10px;
    margin-top:27px;
  }
  .button {
    font-size:var(--type-body);
    min-height:51px;
    padding-inline:19px;
  }
  .hero-trust {
    gap:9px;
    font-size:var(--type-meta);
    flex-wrap:wrap;
    margin-top:22px;
  }
  .hero-bottom {
    bottom:24px;
    padding-top:18px;
    letter-spacing:.07em;
  }
  .hero-bottom>span:first-child {
    max-width:240px;
    font-size:11px;
  }
  .hero-counter {
    font-size:14px;
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:19px;
  }
  .heading-aside {
    max-width:100%;
    font-size:var(--type-lead);
  }
  .eyebrow {
    font-size:12px;
    margin-bottom:17px;
  }
  .heading-aside .text-link {
    margin-top:10px;
  }
  .portfolio-grid {
    grid-template-columns:1fr;
    grid-template-rows:380px 255px 255px;
  }
  .portfolio-0 {
    grid-row:auto;
  }
  .portfolio-0 .portfolio-caption strong {
    font-size:36px;
  }
  .portfolio-caption strong {
    font-size:28px;
  }
  .sample-note {
    font-size:var(--type-meta);
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .service-photo img {
    height:285px;
  }
  .service-item h3 {
    font-size:var(--type-card);
  }
  .service-item p {
    max-width:none;
  }
  .section-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    margin-top:29px;
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:0;
  }
  .type-options {
    gap:7px;
  }
  .type-options span {
    padding:11px 14px;
    font-size:var(--type-small);
  }
  .quote-layout h2 {
    font-size:var(--type-h2);
  }
  .about-grid,.regions-grid {
    grid-template-columns:1fr;
  }
  .about-image img {
    height:380px;
  }
  .about-copy h2 {
    font-size:var(--type-h2);
  }
  .feature-list {
    grid-template-columns:1fr 1fr;
    gap:13px;
    font-size:var(--type-body);
  }
  .process-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  .process-grid article {
    padding-left:67px;
    padding-top:22px;
  }
  .process-number {
    position:absolute;
    top:23px;
    left:0;
    font-size:50px;
  }
  .process-grid h3 {
    font-size:var(--type-h3);
  }
  .process-grid p {
    max-width:none;
  }
  .region-visual {
    min-height:350px;
  }
  .showreel {
    padding-block:65px;
  }
  .showreel h2 {
    font-size:33px;
  }
  .price-form {
    grid-template-columns:1fr;
    gap:17px;
  }
  .latest-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .latest-image img {
    height:285px;
  }
  .latest-grid h3 {
    font-size:var(--type-card);
  }
  .latest-grid .eyebrow {
    margin-top:17px;
  }
  .reference-placeholders {
    width:100%;
    gap:8px;
  }
  .reference-placeholders span {
    padding:18px 5px;
    flex:1;
    font-size:var(--type-meta);
    letter-spacing:.09em;
  }
  .faq-list summary {
    font-size:var(--type-lead);
    padding:18px 0;
    gap:12px;
  }
  .faq-list summary span {
    flex-shrink:0;
  }
  .contact-section {
    padding-block:65px;
  }
  .contact-content h2 {
    font-size:43px;
  }
  .contact-content .button-row {
    flex-direction:column;
    max-width:330px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 20px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-brand p {
    max-width:310px;
  }
  .footer-grid>div:last-child {
    grid-column:1/-1;
  }
  .footer-grid>div:last-child>a,.footer-grid>div:last-child>button {
    display:inline-block;
    margin-right:18px;
  }
  .footer-bottom>span {
    font-size:var(--type-meta);
  }
  .footer-bottom>div {
    gap:18px;
    flex-wrap:wrap;
  }
  .dialog-copy {
    padding:27px;
  }
  .dialog-copy h2 {
    font-size:25px;
  }
  .dialog-copy .eyebrow {
    padding-right:30px;
  }
  .dialog-close {
    width:38px;
    height:38px;
  }
  .project-view {
    display:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
}
@media(scripting:none) {
  .menu-toggle {
    display:none;
  }
  .site-header nav {
    display:flex;
    position:static;
    flex-direction:row;
    flex-wrap:wrap;
    padding:10px;
    max-height:none;
  }
  .header-inner {
    height:auto;
    flex-wrap:wrap;
    padding:15px 0;
  }
  .hero-content {
    padding-top:260px;
  }
}
.quote-layout>* {
  min-width:0;
}
/* Follow each section's content; stacked and short viewports keep normal flow. */
@media (min-width:801px) and (min-height:650px) {
  .quote-intro, .faq-intro {
    position:sticky;
    top:100px;
    align-self:start;
  }
}

/* Video references and service pricing retain the existing editorial layout. */
.references { display:block; padding-block:50px 80px; }
.references h2 { font-size:var(--type-h2); }
.references .heading-aside { font-size:var(--type-body); }
.reference-films { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.reference-film { position:relative; overflow:hidden; aspect-ratio:16/10; width:100%; padding:0; color:#fff; background:var(--dark); text-align:left; border-radius:3px; isolation:isolate; }
.reference-film > img { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.reference-film::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#102923e8,transparent 85%); z-index:-1; }
.film-play { position:absolute; left:26px; top:26px; display:grid; place-items:center; width:52px; height:52px; border:1px solid #ffffffaa; border-radius:50%; font-size:18px; }
.reference-film:hover .film-play { background:var(--orange); color:var(--ink); border-color:var(--orange); }
.film-caption { position:absolute; left:26px; right:26px; bottom:26px; display:flex; flex-direction:column; gap:8px; }
.film-caption small { font-size:11px; letter-spacing:.15em; }
.film-caption strong { font-size:30px; font-family:Manrope,sans-serif; font-weight:500; }
.film-caption > span { font-size:14px; }
.sample-note a { text-decoration:underline; text-underline-offset:3px; }
.showreel-credit { color:#d0dad4; font-size:13px; margin-top:14px; }
#dialog-media iframe { display:block; width:100%; aspect-ratio:16/9; border:0; background:#101c1a; }
.youtube-source { margin:16px 30px 0; }
.pricing-table { width:100%; border-collapse:collapse; font-size:16px; }
.pricing-table caption { text-align:left; font-size:14px; padding-bottom:18px; color:var(--muted); }
.pricing-table thead { background:#e4e7dd; }
.pricing-table th, .pricing-table td { text-align:left; padding:23px 20px; border-bottom:1px solid #d1d7c9; }
.pricing-table thead th { font-size:13px; font-weight:600; }
.pricing-table tbody th { font-weight:600; width:25%; }
.price-scope { color:var(--muted); max-width:290px; }
.price-range { font-weight:600; font-size:19px; white-space:nowrap; }
.price-whatsapp { white-space:nowrap; min-height:48px; font-size:14px; padding:11px 16px; gap:20px; }
.pricing-note { font-size:14px; max-width:92ch; margin-top:24px; }
.mobile-price-label { display:none; }
.type-options input[type=checkbox]:checked + span::before { content:'✓'; margin-right:8px; font-weight:700; }
.hero-counter { font-size:12px; letter-spacing:.08em; }
.hero-counter span { font-size:11px; }
@media(max-width:1000px) {
  .pricing-table th, .pricing-table td { padding:20px 12px; }
  .price-range { font-size:17px; }
  .price-whatsapp { font-size:13px; gap:9px; }
}
@media(max-width:700px) {
  .reference-films { grid-template-columns:1fr; gap:20px; }
  .pricing-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .pricing-table tbody, .pricing-table tr { display:block; }
  .pricing-table tr { padding:22px 0; border-top:1px solid #d1d7c9; }
  .pricing-table th, .pricing-table td { display:block; padding:6px 0; border:0; width:100%; max-width:none; }
  .pricing-table tbody th { width:100%; font-size:20px; }
  .mobile-price-label { display:block; font-size:13px; font-weight:400; color:var(--muted); margin-top:8px; }
  .price-range { font-size:23px; }
  .price-whatsapp { width:100%; font-size:15px; margin-top:10px; }
  .hero-bottom .hero-counter { display:none; }
  .film-caption strong { font-size:26px; }
}

/* Shared, responsive reading scale. Layout and original colour palette are retained. */
.quote-layout > div > p:not(.eyebrow) { font-size:var(--type-lead); }
.heading-aside, .section-heading > div { min-width:0; }
.section-heading > .heading-aside { flex:0 0 32%; max-width:40ch; }
.about-copy > p, .regions-grid > div > p { max-width:56ch; line-height:1.8; }
.service-item p, .process-grid p, .faq-list details p { line-height:1.75; }
.quote-layout h2 { font-size:clamp(40px,3.7vw,54px); }
.quote-form .button { min-height:60px; }
.type-options span { min-height:46px; display:flex; align-items:center; }
.price-form .button { min-height:54px; }
.footer-brand p { max-width:31ch; }
.footer-grid { grid-template-columns:1.3fr 1.4fr .8fr .8fr; }
.footer-grid > div { min-width:0; }
.process-grid article { padding-bottom:12px; }
.process-grid article:not(:last-child)::after { content:'↗'; position:absolute; right:0; top:34px; color:#788471; font-size:28px; }
.process-number { font-weight:500; color:#899580; }
.hero-video { opacity:0; pointer-events:none; }
.hero-video.is-playing { opacity:1; }
.portfolio-open { position:absolute; inset:0; width:100%; height:100%; padding:0; background:transparent; color:inherit; text-align:left; }
.portfolio-open:focus-visible { outline-offset:-5px; }
.portfolio-item:focus-within .project-view { opacity:1; }
.preview-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; pointer-events:none; }
.preview-video.is-playing { opacity:1; }
.portfolio-item .preview-video { z-index:-2; }
.region-visual .preview-video.is-playing { opacity:.48; }
.video-toggle { min-height:44px; padding:10px 15px; font-size:14px; background:#142b26e8; color:#fff; border:1px solid #ffffff65; border-radius:3px; }
.image-label, .map-placeholder { z-index:2; }
.region-visual-label { pointer-events:none; }
.video-toggle { top:auto; bottom:110px; right:max(24px,calc((100vw - 1360px)/2)); }
.dialog-copy { padding-top:48px; }
#dialog-media video { background:#182826; aspect-ratio:16/9; object-fit:contain; }
.dialog-action { margin:24px 35px 0; }
@media (min-width:801px) and (max-width:1100px) {
  .site-header nav { gap:16px; }
  .brand { font-size:23px; }
  .quote-layout { gap:40px; grid-template-columns:.8fr 1.2fr; }
  .quote-layout h2 { font-size:40px; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .feature-list { grid-template-columns:1fr; }
}
@media (max-width:1024px) {
  .menu-toggle { display:block; flex-shrink:0; }
  .site-header nav { display:none; position:absolute; top:100%; left:0; width:100%; padding:20px; background:var(--dark); flex-direction:column; align-items:stretch; gap:0; border-top:1px solid #ffffff20; max-height:calc(100svh - 80px); overflow:auto; }
  .site-header nav.is-open { display:flex; }
  .site-header nav > a:not(.button) { padding:13px 5px; font-size:16px; }
  .nav-item { display:grid; grid-template-columns:1fr 44px; border-bottom:1px solid #ffffff18; }
  .nav-item>a { padding:13px 5px; font-size:16px; }
  .submenu-toggle { width:44px; height:48px; margin:0; justify-self:end; }
  .nav-submenu { position:static; grid-column:1/-1; width:100%; max-height:0; padding:0 10px; display:grid; grid-template-columns:1fr 1fr; gap:0 20px; overflow:hidden; background:#12231f; color:#fff; border:0; box-shadow:none; opacity:1; visibility:visible; transform:none; transition:max-height .25s ease,padding .25s ease; }
  .nav-has-submenu:hover .nav-submenu, .nav-has-submenu:focus-within .nav-submenu { max-height:0; padding-block:0; }
  .nav-has-submenu.is-open .nav-submenu { max-height:560px; padding-block:10px 18px; }
  .nav-submenu-title { border-color:#ffffff1c; color:#aeb9b4; }
  .nav-submenu a { border-color:#ffffff14; font-size:14px; }
  .site-header nav .button { margin-top:12px; }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4.5px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4.5px) rotate(-45deg); }
}
@media (max-width:800px) {
  :root { --type-h1:60px; --type-h2:36px; --type-h3:26px; --type-lead:17px; }
  .about-grid, .regions-grid { grid-template-columns:1fr; }
  .about-image img { height:460px; }
  .about-copy { max-width:64ch; }
  .feature-list { grid-template-columns:1fr 1fr; }
  .region-visual { min-height:400px; }
  .section-heading > .heading-aside { flex:0 1 40%; }
  .process-grid { gap:24px; }
  .process-grid h3 { font-size:23px; }
  .footer-grid { grid-template-columns:1.3fr 1fr; }
  .hero-trust { max-width:100%; }
}
@media (max-width:540px) {
  :root { --type-h1:clamp(42px,11.8vw,48px); --type-h2:clamp(30px,8.2vw,36px); --type-h3:24px; --type-card:22px; --type-lead:16px; }
  .hero { height:auto; min-height:800px; padding-bottom:145px; }
  .hero-content { padding-top:155px; }
  .hero-description { max-width:36ch; }
  .hero .eyebrow { font-size:11px; letter-spacing:.11em; }
  .hero .button-row, .contact-content .button-row { max-width:100%; }
  .button { min-height:56px; }
  .hero-trust { column-gap:10px; row-gap:6px; }
  .hero-trust span { white-space:nowrap; }
  .hero-bottom { align-items:flex-start; gap:16px; }
  .hero-bottom > span:first-child { max-width:220px; font-size:10px; }
  .hero-counter { white-space:nowrap; }
  .section-heading > .heading-aside { flex:auto; max-width:40ch; }
  .quote-layout h2 { font-size:var(--type-h2); }
  .portfolio-caption strong { font-size:26px; }
  .portfolio-0 .portfolio-caption strong { font-size:30px; }
  .portfolio-caption > span:last-child { font-size:14px; }
  .about-image img { height:400px; }
  .feature-list { grid-template-columns:1fr; font-size:16px; }
  .process-grid article { padding-left:76px; }
  .process-grid article:not(:last-child)::after { content:''; left:24px; top:90px; bottom:0; width:1px; background:#cdd1c5; }
  .process-grid h3 { font-size:24px; }
  .process-number { font-size:50px; }
  .showreel h2 { font-size:var(--type-h2); }
  .contact-content h2 { font-size:clamp(36px,10vw,44px); }
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px 24px; }
  .footer-region-list { grid-template-columns:1fr; }
  .nav-submenu { grid-template-columns:1fr; }
  .footer-bottom button { min-height:44px; }
  .image-label { font-size:11px; letter-spacing:.12em; }
  .reference-placeholders span { font-size:10px; }
  .dialog-close { width:44px; height:44px; }
  .dialog-copy { padding:55px 24px 28px; }
  .dialog-action { margin-inline:24px; }
}
@media (scripting:none) and (max-width:1024px) {
  .site-header nav { display:flex; position:static; flex-direction:row; flex-wrap:wrap; padding:10px 0; max-height:none; }
  .header-inner { height:auto; flex-wrap:wrap; padding:15px 0; }
  .menu-toggle { display:none; }
}
