*{box-sizing:border-box}
html,
body,
main{
  width:100%;
}
:root{
  --ink:#0d2b27;
  --green:#103d35;
  --deep:#0a2c28;
  --lime:#93d96d;
  --gold:#d5b360;
  --service-gold:#a9823d;
  --white:#ffffff;
  --ivory:#f5f1e9;
  --page:#f8f5ef;
  --soft-green:#dfeae4;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--page);
  color:var(--ink);
  font-family:'Montserrat',Arial,sans-serif;
  overflow-x:hidden;
}
.hero{
  position:relative;
  width:100%;
  height:500px;
  min-height:500px;
  overflow:visible;
  background:linear-gradient(135deg,#f4efe7 0%,#edf1ec 38%,#f9f6f1 100%);
}
.hero-image{
  position:absolute;
  inset:0;
  background-image:var(--site-hero-image,url("assets/hero.jpg"));
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:saturate(1.08) contrast(1.02) brightness(0.96);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.46),rgba(255,255,255,.12) 42%,rgba(12,30,27,.08));
  pointer-events:none;
}
.hero-content{position:absolute;inset:0;z-index:2;color:var(--ink);overflow:visible}
.lang-switcher{
  position:absolute;
  @media (max-width: 1200px) and (min-width: 1025px){
    .top-nav{
      left:58%;
      gap:clamp(14px,1.8vw,24px);
    }
    .brand-lockup{
      left:4%;
      width:220px;
    }
    .brand-mark{
      width:180px;
    }
  }
  top:2.5%;
  right:3.2%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  z-index:4;
  color:var(--green);
  font-weight:700;
  font-size:12px;
  letter-spacing:0.08em;
}
.lang-option{
  background:none;
  border:none;
  padding:0;
  margin:0;
  color:var(--green);
  font:inherit;
  font-weight:700;
  letter-spacing:0.08em;
  cursor:pointer;
  opacity:.7;
}
.lang-option.active{
  opacity:1;
}
.lang-divider{
  opacity:.7;
}
.lang-flag{
  font-size:18px;
  line-height:1;
  transform:translateY(-1px);
}
.nav-toggle{display:none}
.top-nav{
  position:absolute;
  top:2.5%;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  z-index:3;
}
.top-nav a{
  color:var(--green);
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:none;
  transition:opacity .2s ease;
}
.top-nav a:hover{opacity:.8}
.brand-lockup{
  position:absolute;
  left:6.5%;
  top:2.5%;
  width:270px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  z-index:3;
}
.brand-mark{
  display:block;
  width:210px;
  height:auto;
  max-width:100%;
  object-fit:contain;
  border-radius:0;
  margin:0 auto 0;
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  transform:none;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,0.15));
}
.brand-name,
.brand-sub{
  display:block;
  width:100%;
}
.brand-name{font-size:26px;font-weight:800;letter-spacing:1px;margin:0;line-height:1}
.brand-sub{font-size:11px;font-weight:700;letter-spacing:2px;line-height:1.3;margin:5px 0 0}
.brand-tagline{
  position:absolute;left:28%;top:20%;font-size:clamp(12px, 1.1vw, 18px);
  line-height:1.12;letter-spacing:2.4px;font-weight:900;
  white-space:normal;
  color:var(--green);
  text-shadow:0 1px 0 rgba(255,255,255,0.7);
}
.hero-copy{
  position:absolute;left:1.8%;bottom:10.5%;width:62%;
  min-width:0;
}
.hero-copy h1{
  margin:0 0 12px;font-size:clamp(34px,3vw,58px);
  line-height:.78;letter-spacing:-3px;font-weight:800;
  color:var(--deep);
  -webkit-text-stroke:1.1px rgba(16,30,24,.38);
  text-shadow:0 0 3px rgba(255,255,255,.95), 0 0 8px rgba(255,255,255,.8), 0 0 16px rgba(255,255,255,.55), 0 2px 3px rgba(255,255,255,.45);
  max-width:760px;
  display:block;
  overflow:visible;
  white-space:normal;
  margin-left:4px;
}
.hero-copy p{
  margin:0;font-size:clamp(12px,1.35vw,22px);line-height:1.35;
  font-weight:600;max-width:980px;width:100%;
  color:#ffffff;
  text-shadow:
    0 1px 0 rgba(0,0,0,0.28),
    0 2px 7px rgba(0,0,0,0.42),
    0 6px 18px rgba(0,0,0,0.46),
    0 14px 30px rgba(0,0,0,0.52);
  overflow:visible;
  margin-left:4px;
  white-space:normal;
}
.hero-right{
  position:absolute;right:4.5%;top:20%;font-size:clamp(12px, 1.1vw, 18px);
  line-height:1.12;letter-spacing:2.4px;font-weight:900;text-align:left;
  white-space:nowrap;
  color:var(--deep);
  text-shadow:0 1px 0 rgba(255,255,255,0.4);
}
.hero-right::after{
  content:"";
  display:block;
  width:7em;
  height:4px;
  margin-top:4px;
  background:var(--gold);
  box-shadow:0 0 0 1px rgba(213,179,96,.28);
}
.hero-right .progress-underline{
  display:inline-block;
}
.hero-stronger{
  position:absolute;
  right:4.2%;
  bottom:16%;
  font-size:clamp(11px, 1.15vw, 17px);
  line-height:1.08;
  letter-spacing:2px;
  font-weight:900;
  text-transform:uppercase;
  color:#fffdf9;
  text-shadow:0 0 8px rgba(255,255,255,0.9), 0 0 18px rgba(255,255,255,0.68), 0 2px 8px rgba(0,0,0,0.6);
  white-space:nowrap;
  z-index:3;
}
.service-page,
.about-page,
.contact-page,
.enquiry-page,
.service-page.is-hidden,
.about-page.is-hidden,
.contact-page.is-hidden,
.enquiry-page.is-hidden{
  display:none;
  background:linear-gradient(180deg,#f7f4ee 0%,#f3efe8 100%);
  color:#071113;
  padding:56px 3% 42px;
}
.service-page.is-visible,
.about-page.is-visible,
.contact-page.is-visible,
.enquiry-page.is-visible{
  display:block;
}
.service-wrap{
  max-width:1200px;
  margin:0 auto;
}
.service-header{
  margin-bottom:28px;
}
.service-kicker{
  display:inline-block;
  margin-bottom:10px;
  font-size:12px;
  line-height:1;
  letter-spacing:0.26em;
  font-weight:700;
  color:#103d35;
}
.service-header h2{
  margin:0;
  font-size:clamp(30px, 3vw, 54px);
  line-height:1.08;
  letter-spacing:-0.04em;
  color:#0d2b27;
}
.service-page .service-header{margin-bottom:22px}
.service-page .service-header h2{font-size:clamp(28px,3vw,40px);letter-spacing:0}
.contact-page .service-header h2{
  color:#193b5a;
  font-size:30px;
  line-height:1.14;
  letter-spacing:0;
}
.service-index{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0 0 20px;
  border-top:1px solid rgba(167,135,69,.32);
  border-bottom:1px solid rgba(167,135,69,.32);
}
.service-index a{
  min-width:0;
  min-height:82px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 16px;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  color:#123c35;
  text-decoration:none;
}
.service-index a+a{border-left:1px solid rgba(167,135,69,.28)}
.service-index-icon{
  width:48px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid #b09250;
  border-radius:50%;
  background:#0c4037;
  color:#f7f4ee;
  font-size:22px;
}
.service-index a>span:nth-child(2){display:grid;grid-template-columns:28px 1fr;align-items:baseline;column-gap:8px}
.service-index b,.service-showcase-kicker{color:#a7894f;font-size:12px;font-weight:800;letter-spacing:.12em}
.service-index strong{font-size:16px;line-height:1.2}
.service-index small{grid-column:2;color:#526660;font-size:13px;line-height:1.4}
.service-index i{color:#a7894f;font-size:23px;font-style:normal}
.service-showcase{display:grid;gap:20px;margin-bottom:34px}
.service-showcase h3,.service-showcase h4,.service-showcase p{margin-top:0}
.service-showcase-source{
  display:grid;
  grid-template-columns:minmax(150px,.8fr) minmax(220px,1.15fr) minmax(220px,1.05fr);
  column-gap:20px;
  align-items:start;
  padding:0 0 16px;
  border-bottom:1px solid rgba(167,135,69,.3);
}
.service-source-photo{width:100%;height:184px;display:block;object-fit:cover;object-position:center 55%;border-radius:5px}
.service-showcase-copy{padding:5px 0}
.service-showcase-kicker{margin-bottom:7px}
.service-showcase h3{margin-bottom:8px;color:#123c35;font-size:22px;line-height:1.2}
.service-showcase-copy>p:not(.service-showcase-kicker),.service-build-intro>p:not(.service-showcase-kicker),.service-grow-copy>p:not(.service-showcase-kicker){margin-bottom:9px;color:#53645f;font-size:15px;line-height:1.5}
.service-callout{overflow:hidden;background:#f0ece2;border:1px solid rgba(167,135,69,.18);border-radius:6px}
.service-callout>img{width:100%;height:84px;display:block;object-fit:cover;object-position:center 54%}
.service-callout>div{padding:11px 13px 13px}
.service-showcase h4{margin-bottom:6px;color:#123c35;font-size:16px;line-height:1.3;text-transform:uppercase}
.service-callout p,.service-image-card p,.service-build-note p{margin-bottom:10px;color:#53645f;font-size:14px;line-height:1.5}
.service-callout a,.service-build-note a{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:4px;background:#0c4037;color:#fff;text-decoration:none;font-size:13px;font-weight:700}
.service-process-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid rgba(167,135,69,.22);padding-top:12px}
.service-process-strip>div,.service-grow-capabilities>div{min-width:0;display:grid;justify-items:center;align-content:start;gap:5px;padding:0 8px;color:#a7894f;text-align:center}
.service-process-strip>div+div{border-left:1px solid rgba(167,135,69,.2)}
.service-process-strip span,.service-grow-capabilities span{font-size:19px;line-height:1}
.service-process-strip b,.service-grow-capabilities b{color:#38504a;font-size:12px;font-weight:500;line-height:1.4}
.service-showcase-build{display:grid;grid-template-columns:1.1fr repeat(2,minmax(0,1fr)) .9fr;gap:12px;align-items:stretch}
.service-build-intro,.service-build-note{padding:16px;background:#f0ece2;border-radius:5px}
.service-build-intro h3{font-size:20px}
.service-image-card{overflow:hidden;border:1px solid rgba(167,135,69,.2);border-radius:5px;background:rgba(255,255,255,.42)}
.service-image-card img{width:100%;height:116px;display:block;object-fit:cover;object-position:center 45%}
.service-image-card>div{padding:10px 11px}
.service-build-note{display:flex;flex-direction:column;align-items:flex-start}
.service-build-note>span{margin-bottom:8px;color:#a7894f;font-size:22px}
.service-build-note a{width:100%;margin-top:auto}
.service-showcase-grow{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(200px,1fr) minmax(260px,1.5fr);gap:18px;align-items:center;padding:14px 0;border-top:1px solid rgba(167,135,69,.3);border-bottom:1px solid rgba(167,135,69,.3)}
.service-showcase-grow>img{width:100%;height:126px;display:block;object-fit:cover;object-position:center 40%;border-radius:5px}
.service-grow-copy h3{font-size:21px}
.service-grow-capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 4px}
.service-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px;padding-top:25px;border-top:1px solid rgba(13,43,39,.16)}
.service-details .service-header{grid-column:1/-1}
.detail-block{padding:20px;background:rgba(255,255,255,.55);border:1px solid rgba(13,43,39,.1);border-radius:5px}
.detail-block h3{margin-bottom:12px;color:#0d2b27;font-size:21px;line-height:1.2}
.detail-block p,.detail-block li{color:#364944;font-size:15px;line-height:1.6}
.detail-block ul{padding-left:20px;margin:8px 0 12px}
.about-page .story-block{
  text-align:justify;
}
.about-page{
  padding:48px 3% 32px;
  background:#faf9f5;
  color:#23394a;
}
.contact-page{
  padding:48px 3% 32px;
  background:#faf9f5;
  color:#23394a;
}
.about-wrap{padding-bottom:2px}
.about-team{
  display:grid;
  grid-template-columns:minmax(270px,.85fr) minmax(0,1.35fr);
  align-items:center;
  gap:36px;
  margin-bottom:28px;
}
.about-team-visual{position:relative;isolation:isolate;padding:10px 8px 8px 0}
.about-team-visual::before{
  position:absolute;
  z-index:-1;
  top:0;
  right:2px;
  width:42%;
  aspect-ratio:1;
  border-radius:50%;
  background:#e9dfc9;
  content:"";
}
.about-team-visual img{
  display:block;
  width:100%;
  aspect-ratio:1.32;
  border-radius:44% 46% 42% 40% / 48% 44% 42% 44%;
  object-fit:cover;
  object-position:center 43%;
}
.about-team-copy h2{
  max-width:610px;
  margin:0 0 12px;
  color:#193b5a;
  font-size:30px;
  line-height:1.14;
}
.about-team-copy>p{
  max-width:660px;
  margin:0 0 20px;
  color:#384c59;
  font-size:16px;
  line-height:1.55;
}
.about-expertise{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  border-top:1px solid rgba(25,59,90,.13);
}
.about-expertise>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  padding:12px 7px 0;
  text-align:center;
}
.about-expertise>div+div{border-left:1px solid rgba(25,59,90,.12)}
.about-expertise>div>span{color:#aa8845;font-size:23px;line-height:1}
.about-expertise p{margin:0;color:#3d515e;font-size:13px;line-height:1.4}
.about-understanding{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  align-items:center;
  gap:24px;
  margin:0 0 32px;
  padding:18px 28px;
  border-radius:10px;
  background:#e7f0f6;
}
.about-understanding-mark{
  display:grid;
  min-height:64px;
  place-items:center;
  border-right:1px solid rgba(25,59,90,.35);
  color:#193b5a;
  font-size:42px;
  line-height:1;
}
.about-understanding h3{margin:0 0 6px;color:#193b5a;font-size:17px;line-height:1.25}
.about-understanding p{max-width:760px;margin:0;color:#405462;font-size:16px;line-height:1.5}
.about-business-heading{margin:0 0 16px}
.about-business-heading .service-kicker{margin-bottom:7px;color:#a7894f;font-size:14px}
.about-business-heading h2{margin:0 0 5px;color:#193b5a;font-size:36px;line-height:1.12}
.about-business-heading>p{margin:0;color:#405462;font-size:15px;line-height:1.5}
.about-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.about-cards[data-columns="1"]{grid-template-columns:1fr}
.about-cards[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.about-cards[data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.about-card{min-width:0;overflow:hidden;border-radius:7px;background:#e9f2f8}
.about-card-source{background:#e9f2f8}
.about-card-build{background:#eaf3ef}
.about-card-grow{background:#f4f0e6}
.about-card-visual{position:relative;height:130px}
.about-card-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.about-card-mark{
  position:absolute;
  bottom:-20px;
  left:16px;
  display:grid;
  width:52px;
  aspect-ratio:1;
  place-items:center;
  border:3px solid rgba(255,255,255,.88);
  border-radius:50%;
  background:#234f70;
  color:white;
  font-size:24px;
  font-weight:700;
}
.about-card-build .about-card-mark{background:#28675f}
.about-card-grow .about-card-mark{background:#ae8d4d}
.about-card-content{padding:30px 16px 16px}
.about-card-content h3{margin:0 0 6px;color:#234f70;font-size:20px;line-height:1.2}
.about-card-build .about-card-content h3{color:#28675f}
.about-card-grow .about-card-content h3{color:#9a7939}
.about-card-content>p{min-height:144px;margin:0 0 10px;color:#405462;font-size:16px;line-height:1.5}
.about-card-content ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.about-card-content li{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:7px;color:#344a56;font-size:14px;line-height:1.4}
.about-card-content li>span:first-child{color:#234f70;font-size:16px;line-height:1}
.about-card-build .about-card-content li>span:first-child{color:#28675f}
.about-card-grow .about-card-content li>span:first-child{color:#9a7939}
.enquiry-form{
  max-width:900px;
  display:grid;
  gap:24px;
}
.enquiry-fieldset{
  margin:0;
  padding:0;
  border:0;
}
.enquiry-fieldset legend{
  margin-bottom:12px;
  font-size:18px;
  font-weight:700;
}
.enquiry-audience{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.enquiry-choice,
.requirement-list label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#1d2d2f;
  font-size:15px;
  line-height:1.5;
}
.enquiry-choice{
  padding:15px 16px;
  border:1px solid rgba(7,17,19,.16);
  border-radius:10px;
  background:rgba(255,255,255,.45);
  font-weight:600;
}
.enquiry-choice input,
.requirement-list input{
  flex:0 0 auto;
  margin-top:4px;
  accent-color:#0b5545;
}
.enquiry-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.enquiry-grid label,
.enquiry-message,
.enquiry-category{
  display:grid;
  gap:7px;
  color:#071113;
  font-size:14px;
  font-weight:700;
}
.enquiry-category select{
  width:100%;
  min-height:46px;
  border:1px solid rgba(7,17,19,.2);
  border-radius:8px;
  padding:12px 40px 12px 13px;
  background:#fffefa;
  color:#071113;
  font:inherit;
  font-weight:400;
}
.enquiry-category select:focus-visible{
  outline:2px solid rgba(11,85,69,.3);
  border-color:#0b5545;
}
.enquiry-full{grid-column:1 / -1}
.enquiry-grid input,
.enquiry-message textarea{
  width:100%;
  border:1px solid rgba(7,17,19,.2);
  border-radius:8px;
  padding:12px 13px;
  background:#fffefa;
  color:#071113;
  font:inherit;
  font-weight:400;
}
.enquiry-grid input:focus,
.enquiry-message textarea:focus{
  outline:2px solid rgba(11,85,69,.3);
  border-color:#0b5545;
}
.requirement-list{
  display:grid;
  gap:10px;
}
.requirement-list.is-hidden{display:none}
.enquiry-message textarea{
  min-height:190px;
  resize:vertical;
}
.enquiry-submit{
  justify-self:start;
  border:0;
  border-radius:7px;
  padding:13px 22px;
  background:#0b5545;
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.enquiry-submit:hover{background:#073c32}
.enquiry-status{
  display:none;
  margin:0;
  padding:15px 17px;
  border-radius:8px;
  background:#dcefe3;
  color:#164a33;
  font-size:14px;
  line-height:1.5;
}
.enquiry-status.is-visible{display:block}
.enquiry-status.is-error{
  background:#f8e2df;
  color:#7b241b;
}
.service-details{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
}
.detail-block{
  background:rgba(255,255,255,.45);
  border:1px solid rgba(7,17,19,.12);
  border-radius:18px;
  padding:26px 28px;
  box-shadow:0 12px 24px rgba(0,0,0,.04);
}
.detail-block h3{
  margin:0 0 14px;
  font-size:26px;
  line-height:1.2;
  letter-spacing:-0.03em;
}
.detail-block p,
.detail-block li{
  font-size:16px;
  line-height:1.7;
  color:#1d2d2f;
}
.detail-block ul{
  margin:12px 0 16px 18px;
  padding:0;
}
.detail-block li + li{margin-top:4px}
.services{
  display:grid;
  grid-template-columns:30% 39% 31%;
  min-height:470px;
  padding-bottom:24px;
  background:var(--deep);
}
.home-only[hidden]{display:none}
.service-card{
  --service-photo-height:244px;
  position:relative;display:flex;flex-direction:column;min-height:470px;overflow:hidden;
  container-type:inline-size;
  border-right:1px solid rgba(255,255,255,.5);
  background:var(--deep);
}
.service-card .photo{
  position:absolute;inset:0 0 auto 0;height:var(--service-photo-height);
  background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:brightness(1.22) saturate(1.08);
}
.service-card.source .photo{background-image:var(--service-photo,url("assets/source.jpg"))}
.service-card.build .photo{background-image:var(--service-photo,url("assets/build-operate.jpg"))}
.service-card.grow .photo{background-image:var(--service-photo,url("assets/grow.jpg"))}
.service-card .shade{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,.02) 0%,rgba(0,15,12,.06) 22%,rgba(1,26,21,.72) 63%,#031b17 100%);
}
.service-content{position:relative;flex:1;padding:var(--service-photo-height) 20px 0;display:flex;flex-direction:column}
.number{
  position:absolute;top:25px;left:30px;
  font-size:29px;font-weight:700;letter-spacing:1px;color:var(--service-gold);
  text-shadow:0 -1px 0 rgba(0,0,0,.92),1px -1px 0 rgba(0,0,0,.82),-1px -1px 0 rgba(0,0,0,.82),1px 0 0 rgba(0,0,0,.66),-1px 0 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.42),-1px 1px 0 rgba(0,0,0,.42),0 1px 0 rgba(0,0,0,.3),0 2px 5px #000;
}
.number span{
  color:var(--service-gold);font-size:19px;letter-spacing:2px;margin-left:7px;
  text-shadow:0 -1px 0 rgba(0,0,0,.92),1px -1px 0 rgba(0,0,0,.82),-1px -1px 0 rgba(0,0,0,.82),1px 0 0 rgba(0,0,0,.66),-1px 0 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.42),-1px 1px 0 rgba(0,0,0,.42),0 1px 0 rgba(0,0,0,.3),0 2px 5px #000;
}
.service-main{
  margin-top:0;
  margin-bottom:6px;
  flex:1 1 auto;
  min-height:263px;
  background:#ffffff;
  border-radius:8px 8px 0 0;
  padding:18px 18px 14px;
  box-shadow:inset 0 0 0 1px rgba(7,17,19,.04);
}
.service-main h2{font-size:20px;line-height:1.04;margin:0 0 7px;font-weight:800;letter-spacing:-.5px;color:var(--deep)}
.service-main p{font-size:14px;line-height:1.45;margin:0;max-width:95%;color:#111111}
.process{
  display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr 18px 1fr 18px 1fr;
  align-items:start;gap:2px;min-height:89px;
  margin-top:auto;
  background:#ffffff;
  border-radius:0 0 8px 8px;
  padding:14px 10px 12px;
  box-shadow:inset 0 0 0 1px rgba(7,17,19,.04);
}
.process-6{grid-template-columns:1fr 15px 1fr 15px 1fr 15px 1fr 15px 1fr 15px 1fr}
.process span{
  color:var(--green);font-size:22px;text-align:center;line-height:1;
  min-width:0;
}
.process span b{
  display:block;color:#111111;font-size:9px;line-height:1.25;
  font-weight:500;margin-top:7px;letter-spacing:.2px;
}
.process i{font-style:normal;color:var(--green);font-size:25px;text-align:center;padding-top:1px}
@container (max-width: 580px){
  .process,
  .process-6{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
    gap:8px;
    padding:12px;
  }
  .process i{display:none}
  .process span{
    display:grid;
    grid-template-columns:24px minmax(0,1fr);
    align-items:center;
    gap:6px;
    text-align:center;
  }
  .process span b{
    margin-top:0;
    text-align:left;
    overflow-wrap:anywhere;
  }
}
.footer{
  min-height:88px;padding:60px 3% 18px;
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(180deg,#f7f4ee 0%,#f0efe9 100%);
  border-top:1px solid rgba(13,43,39,0.12);
  letter-spacing:3px;font-size:10px;
  color:#111111;
}
.footer>div:first-child{display:flex;flex-direction:column;gap:3px}
.footer strong{
  color:#0f2d29;
  font-weight:800;
}
.footer-brand{text-align:right;display:flex;flex-direction:column;gap:7px}
.footer-brand strong{font-size:11px;color:#0f2d29}
.footer-brand span{font-size:10px;color:#111111}
.location-map{
  color:var(--white);
  background:var(--deep);
}
.location-map-inner{
  max-width:1440px;
  margin:0 auto;
  padding:40px 3%;
}
.location-map-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.map-kicker{
  margin:0 0 8px;
  color:var(--lime);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
}
.location-map-heading h2{
  margin:0;
  color:var(--white);
  font-size:clamp(22px,2.7vw,36px);
  line-height:1.1;
}
.location-map-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--white);
  font-size:14px;
  font-weight:700;
  text-decoration:none;
}
.location-map-link:hover{text-decoration:underline}
.map-frame{
  width:100%;
  height:clamp(280px,36vw,470px);
  overflow:hidden;
  border-radius:4px;
  background:var(--soft-green);
}
.map-frame iframe{display:block;width:100%;height:100%;border:0}
@media (max-width: 1200px) and (min-width: 981px){
  .top-nav{
    left:58%;
    gap:clamp(14px,1.8vw,24px);
  }
  .brand-lockup{
    left:4%;
    width:200px;
  }
  .brand-mark{
    width:160px;
  }
}
@media (max-width: 1024px){
  .top-nav{
    gap:18px;
  }
  .brand-tagline{
    left:32%;
    top:21%;
    font-size:clamp(11px, 1.25vw, 16px);
  }
  .hero-copy{
    width:58%;
  }
  .hero-right{
    top:21%;
    right:3.2%;
    font-size:clamp(11px, 1.25vw, 16px);
  }
  .hero-stronger{
    right:3.5%;
    bottom:13%;
    font-size:clamp(10px, 1.15vw, 15px);
  }
  .service-main{min-height:315px}
}

@media (max-width: 980px){
  .hero{
    height:520px;
    min-height:520px;
  }
  .top-nav{
    left:58%;
  }
  .brand-lockup{
    left:2%;
    top:2.5%;
    width:170px;
  }
  .brand-mark{
    width:150px;
    height:auto;
    transform:translateX(0);
  }
  .brand-name{font-size:22px}
  .brand-sub{font-size:10px}
  .brand-tagline{
    left:31%;
    top:18%;
    font-size:10px;
    letter-spacing:2.2px;
  }
  .hero-copy{
    left:3%;
    bottom:9%;
    width:60%;
  }
  .hero-copy h1{
    font-size:clamp(28px,6vw,52px);
    line-height:.8;
  }
  .hero-copy p{
    font-size:13px;
    line-height:1.3;
  }
  .hero-right{
    right:4%;
    top:18%;
    font-size:9px;
    letter-spacing:2.2px;
  }
  .hero-stronger{
    right:4%;
    bottom:12%;
    font-size:9px;
    letter-spacing:1.5px;
  }
}

@media (min-width: 981px){
  body{
    min-width:0;
    min-height:100vh;
  }
  main{
    min-height:100vh;
  }
}

@media (max-width: 768px){
  .location-map-inner{padding:32px 14px 36px}
  .location-map-heading{align-items:flex-start;flex-direction:column;gap:12px}
  .map-frame{height:320px}
  .hero{
    height:520px;
    min-height:520px;
  }
  .nav-toggle{
    position:absolute;
    top:12px;
    left:12px;
    right:auto;
    z-index:6;
    display:flex;
    width:42px;
    height:42px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:0;
    border:1px solid rgba(16,61,53,.25);
    border-radius:4px;
    background:rgba(255,255,255,.94);
    cursor:pointer;
  }
  .nav-toggle span{
    width:19px;
    height:2px;
    background:var(--green);
    transition:transform .2s ease,opacity .2s ease;
  }
  .nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}
  .nav-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
  .top-nav{
    display:none;
    top:62px;
    left:auto;
    right:12px;
    transform:none;
    z-index:5;
    width:min(260px,calc(100vw - 24px));
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    padding:6px 0;
    border:1px solid rgba(16,61,53,.16);
    border-radius:4px;
    background:rgba(255,255,255,.97);
    box-shadow:0 12px 28px rgba(13,43,39,.18);
  }
  .top-nav.is-open{
    display:flex;
  }
  .top-nav a{
    padding:12px 16px;
    font-size:12px;
    letter-spacing:0.08em;
  }
  .top-nav a+a{
    border-top:1px solid rgba(16,61,53,.1);
  }
  .brand-lockup{
    left:0.5%;
    top:64px;
    width:135px;
  }
  .brand-mark{
    width:116px;
    height:auto;
    margin-bottom:6px;
  }
  .brand-name{font-size:18px}
  .brand-sub{font-size:8px;letter-spacing:1.4px}
  .brand-tagline{
    left:38%;
    top:96px;
    font-size:7px;
    letter-spacing:1.6px;
    line-height:1.4;
    max-width:130px;
  }
  .hero-copy{
    left:4%;
    bottom:6%;
    width:58%;
  }
  .hero-copy h1{
    font-size:clamp(22px,7.5vw,36px);
    line-height:.82;
    letter-spacing:-2px;
    max-width:90%;
  }
  .hero-copy p{
    font-size:11.4px;
    line-height:1.35;
    max-width:92%;
  }
  .hero-right{
    right:4%;
    top:96px;
    font-size:7px;
    letter-spacing:1.3px;
  }
  .hero-stronger{
    right:4%;
    bottom:12%;
    font-size:8px;
    letter-spacing:1.2px;
  }
}

@media (max-width: 640px){
  .hero{
    height:440px;
    min-height:440px;
  }
  .lang-switcher{
    top:12px;
    right:12px;
    gap:5px;
    font-size:10px;
  }
  .lang-flag{
    font-size:14px;
  }
  .top-nav a{
    font-size:10px;
    letter-spacing:0.08em;
  }
  .brand-lockup{
    left:0.5%;
    top:64px;
    width:120px;
  }
  .brand-mark{
    width:104px;
    height:auto;
    margin-bottom:6px;
  }
  .brand-name{font-size:18px}
  .brand-sub{font-size:8px;letter-spacing:1.4px}
  .brand-tagline{
    left:38%;
    top:90px;
    font-size:6.5px;
    letter-spacing:1.6px;
    line-height:1.4;
    max-width:120px;
  }
  .hero-copy{
    left:4%;
    bottom:4%;
    width:92%;
  }
  .hero-copy h1{
    font-size:clamp(22px,7.5vw,36px);
    line-height:.82;
    letter-spacing:-2px;
    max-width:90%;
  }
  .hero-copy p{
    font-size:11.2px;
    line-height:1.35;
    max-width:92%;
  }
  .hero-right{
    right:4%;
    top:90px;
    font-size:6.5px;
    letter-spacing:1.2px;
  }
  .hero-stronger{
    right:4%;
    top:180px;
    bottom:auto;
    font-size:7.5px;
    letter-spacing:1px;
  }

  .service-page,
  .about-page,
  .contact-page,
  .enquiry-page{
    padding:32px 14px 26px;
    overflow-x:hidden;
  }
  .service-wrap{
    max-width:100%;
  }
  .service-header{
    margin-bottom:18px;
  }
  .service-kicker{
    font-size:10px;
    letter-spacing:0.18em;
    margin-bottom:8px;
  }
  .service-header h2{
    font-size:clamp(26px, 7vw, 38px);
    line-height:1.08;
    letter-spacing:-0.04em;
  }
  .service-details{
    grid-template-columns:1fr;
    gap:16px;
  }
  .detail-block{
    padding:18px 16px;
    border-radius:14px;
  }
  .detail-block h3{
    font-size:20px;
    line-height:1.2;
    margin-bottom:10px;
  }
  .detail-block p,
  .detail-block li{
    font-size:15px;
    line-height:1.6;
  }
  .detail-block ul{
    margin:10px 0 12px 18px;
  }
  .story-block p,
  .story-block li,
  .story-block h3{
    font-size:14px;
    line-height:1.7;
  }
  .story-columns{
    grid-template-columns:1fr;
    gap:16px;
  }

  .services{
    grid-template-columns:1fr;
  }
  .service-card{
    --service-photo-height:180px;
    min-height:360px;
  }
  .service-content{
    padding:var(--service-photo-height) 18px 0;
  }
  .number{top:18px;left:18px}
  .number{font-size:24px}
  .number span{font-size:15px}
  .service-main h2{font-size:18px}
  .service-main p{font-size:12px}
  .service-main{min-height:0}
}

@media (max-width: 980px){
  .service-showcase-source{grid-template-columns:minmax(140px,.72fr) minmax(0,1.28fr)}
  .service-callout{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr)}
  .service-callout>img{height:100%;min-height:130px}
  .service-showcase-build{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-build-intro{grid-column:1/-1}
  .service-image-card img{height:145px}
  .service-showcase-grow{grid-template-columns:minmax(140px,.7fr) minmax(0,1fr)}
  .service-grow-capabilities{grid-column:1/-1}
}

@media (max-width: 640px){
  .service-page{padding:30px 14px 34px}
  .service-page .service-header h2{font-size:30px}
  .service-index{grid-template-columns:1fr}
  .service-index a{min-height:68px;padding:9px 10px}
  .service-index a+a{border-left:0;border-top:1px solid rgba(167,135,69,.22)}
  .service-index-icon{width:42px;font-size:19px}
  .service-showcase{gap:16px}
  .service-showcase-source{grid-template-columns:1fr;gap:12px}
  .service-source-photo{height:210px}
  .service-callout{grid-column:auto;display:block}
  .service-callout>img{height:130px;min-height:0}
  .service-process-strip{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:14px}
  .service-process-strip>div:nth-child(4){border-left:0}
  .service-showcase-build{grid-template-columns:1fr;gap:10px}
  .service-build-intro{grid-column:auto}
  .service-image-card img{height:190px}
  .service-build-note{min-height:190px}
  .service-showcase-grow{grid-template-columns:1fr;gap:12px}
  .service-showcase-grow>img{height:210px}
  .service-grow-capabilities{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 4px}
  .service-grow-capabilities>div:last-child{grid-column:1/-1}
  .service-details{grid-template-columns:1fr;gap:14px;margin-top:25px}
  .detail-block{padding:18px 16px}
}

@media (max-width: 980px){
  .about-team{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:24px}
  .about-expertise{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:10px}
  .about-expertise>div:nth-child(4){border-left:0}
  .about-cards[data-columns="1"]{grid-template-columns:1fr}
  .about-cards[data-columns="2"],
  .about-cards[data-columns="3"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about-card-content>p{min-height:0}
}

@media (max-width: 768px){
  .about-page{padding:32px 14px 24px}
  .contact-page{padding:32px 14px 24px}
  .about-team{grid-template-columns:1fr;gap:18px;margin-bottom:22px}
  .about-team-visual{max-width:460px;margin:0 auto;padding:8px 8px 0 0}
  .about-team-visual img{aspect-ratio:1.55}
  .about-team-copy h2{font-size:26px}
  .contact-page .service-header h2{font-size:26px}
  .about-team-copy>p{margin-bottom:16px;font-size:16px}
  .about-expertise p{font-size:13px}
  .about-understanding{grid-template-columns:64px minmax(0,1fr);gap:14px;margin-bottom:26px;padding:14px}
  .about-understanding-mark{min-height:58px;font-size:34px}
  .about-business-heading h2{font-size:30px}
  .about-cards[data-columns]{grid-template-columns:1fr;gap:13px}
  .about-card-visual{height:150px}
  .about-card-content{padding:29px 16px 17px}
  .about-card-content>p{font-size:16px}
  .about-card-content li{font-size:14px}
}

@media (max-width: 420px){
  .about-expertise{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about-expertise>div:nth-child(3),
  .about-expertise>div:nth-child(5){border-left:0}
  .about-expertise>div:nth-child(4){border-left:1px solid rgba(25,59,90,.12)}
  .about-understanding{grid-template-columns:48px minmax(0,1fr);gap:10px;padding:12px}
  .about-understanding-mark{font-size:28px}
}
