.skip-link{
  position:fixed;
  left:14px;
  top:12px;
  z-index:100;
  transform:translateY(-180%);
  padding:10px 14px;
  background:var(--forest-deep);
  color:#fff;
  font-size:9px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.skip-link:focus{transform:translateY(0)}

/* The homepage behaves as a landscape story, not an institutional briefing. */
body:has(.hero) .site-header{
  position:absolute;
  inset:0 0 auto;
  background:linear-gradient(180deg,rgba(9,25,17,.68),transparent);
  border-bottom-color:rgba(255,255,255,.22);
  color:#fff;
}
body:has(.hero) .brand,
body:has(.hero) .brand span,
body:has(.hero) .nav-links a{color:#fff}
body:has(.hero) .nav-links a:hover{border-color:#f2b191;color:#fff}
body:has(.hero) .nav-cta{background:var(--cream);color:var(--forest)}
body:has(.hero) .menu{border-color:#fff;color:#fff}

.hero{
  position:relative;
  min-height:900px;
  display:flex;
  align-items:flex-end;
  isolation:isolate;
  background:var(--forest-deep);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(10,27,18,.86) 0,rgba(10,27,18,.45) 46%,rgba(10,27,18,.08) 75%),
    linear-gradient(0deg,rgba(10,27,18,.58),transparent 48%);
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:-2;
}
.hero-copy{
  width:min(760px,calc(100% - 48px));
  margin:0 0 8vh max(24px,calc((100vw - var(--max))/2));
  padding:0;
  justify-content:flex-end;
}
.hero h1{font-size:clamp(70px,9.2vw,138px);max-width:8ch}
.hero p{max-width:560px;font-size:18px;color:#eef2eb}
.hero .actions{margin-top:34px}

.section{padding:112px 0}
.section-head{
  grid-template-columns:minmax(0,1fr) minmax(320px,.62fr);
  gap:7vw;
  border-top-color:var(--forest);
  padding-top:24px;
  margin-bottom:76px;
}
.section-head-single{grid-template-columns:1fr;gap:0}
.section-head>p{padding-bottom:10px}
.section-head h2{font-size:clamp(52px,6.4vw,88px)}

.project-pair{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}
.project-card{
  display:grid;
  grid-template-rows:auto 1fr;
}
.project-card figure{
  height:560px;
  transition:transform .35s ease;
}
.project-card:hover figure{transform:translateY(-5px)}
.project-card .meta{
  display:block;
  margin-top:16px;
  padding-top:18px;
}
.project-card .meta h3{margin:8px 0 8px;font-size:clamp(34px,3.5vw,48px)}
.project-card .meta p{max-width:44ch}

.section.alt{background:#e5dcc9}
.services-preview{
  display:block;
  border:0;
  border-top:1px solid var(--forest);
}
.service-preview,
.service-preview:first-child{
  min-height:0;
  display:grid;
  grid-template-columns:88px .72fr 1fr;
  gap:42px;
  align-items:start;
  padding:42px 0 48px;
  border:0;
  border-bottom:1px solid #b7aa92;
}
.service-preview span{padding-top:8px}
.service-preview h3{
  margin:0;
  font-size:clamp(34px,4vw,52px);
}
.service-preview p{max-width:500px;padding-top:5px;font-size:15px}

.firm-grid{
  grid-template-columns:.78fr 1.22fr;
  gap:9vw;
}
.firm-grid figure{
  height:620px;
  transform:translateY(48px);
}
.firm-copy p:first-of-type{font-size:clamp(42px,5vw,72px);max-width:10ch}

.form-submit{gap:10px}
.form-submit p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}

@media(max-width:900px){
  body:has(.hero) .nav-links{
    background:var(--forest-deep);
    border-color:rgba(255,255,255,.3);
  }
  .hero{min-height:760px}
  .hero-copy{width:calc(100% - 48px);margin:0 24px 64px;padding:0}
  .section-head{grid-template-columns:1fr;gap:24px;margin-bottom:54px}
  .project-pair{grid-template-columns:1fr;gap:52px}
  .project-card figure{height:520px}
  .service-preview,.service-preview:first-child{grid-template-columns:54px 1fr}
  .service-preview p{grid-column:2}
  .firm-grid figure{transform:none}
}

@media(max-width:560px){
  .hero{min-height:700px}
  .hero-copy{width:calc(100% - 28px);margin:0 14px 48px}
  .hero h1{font-size:clamp(58px,17vw,76px)}
  .hero p{font-size:15px}
  .section{padding:76px 0}
  .section-head{margin-bottom:32px}
  .section-head h2{font-size:50px}
  .project-card figure{height:390px}
  .service-preview,.service-preview:first-child{grid-template-columns:42px 1fr;gap:14px;padding:27px 0}
  .service-preview h3{font-size:34px}
  .firm-grid figure{height:400px}
}
