/*
 * Kakalaki Creek — wave + ridge refinement
 * A focused visual layer over main.css. The underlying content/config remains
 * intentionally unchanged so this can still ship as a simple static site.
 */

:root {
  --maxw: 1320px;
  --maxpage: 1680px;
  --pad: clamp(1.25rem, 4.4vw, 4.6rem);
  --paper: #f7f8f4;
  --paper-warm: #fbfaf6;
  --paper-soft: #f6f4ee;
  --sage: #d7ded2;
  --sage-soft: #eef2ec;
  --navy: #203a72;
  --copper: #b07a4a;
  --slate: #738a8d;
}

html {
  scroll-padding-top: 92px;
  background: var(--paper-warm);
}

body {
  background: var(--paper-warm);
}

body::before {
  background: url("../assets/paper-texture.webp") center / cover no-repeat;
  opacity: .1;
}

/* main.css uses body::after twice. Reset it here to one predictable paper-grain
   layer; the individual section SVGs provide the contour artwork. */
body::after {
  inset: 0;
  z-index: 80;
  opacity: .045;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");
  background-position: 0 0;
  background-size: 180px 180px;
  background-repeat: repeat;
  -webkit-mask-image: none;
          mask-image: none;
  pointer-events: none;
}

main { display: block; }

.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 200;
  padding: .75rem 1rem;
  background: #fff;
  color: var(--navy);
  border: 2px solid var(--copper);
  border-radius: 4px;
  transform: translateY(-180%);
}
.skip-link:focus { transform: none; }

:where(a, button, input, textarea):focus-visible {
  outline: 3px solid rgba(176, 122, 74, .78);
  outline-offset: 4px;
}

/* Header ----------------------------------------------------------------- */
.site-chrome { z-index: 70; }

.site-header,
body.header-compact .site-header {
  min-height: 96px;
  padding: .88rem var(--pad) .82rem;
  gap: clamp(1.25rem, 2.8vw, 3.1rem);
  background: var(--navy);
  border-bottom-right-radius: 110px 30px;
}

body.header-compact .site-header {
  min-height: 78px;
  padding-block: .58rem;
  border-bottom-right-radius: 88px 25px;
  box-shadow: 0 12px 34px rgba(24, 41, 76, .18);
}

.intro-logo { flex: 0 1 315px; }
.intro-logo img {
  width: clamp(228px, 22vw, 315px);
  max-height: 72px;
  object-fit: contain;
  object-position: left center;
}
body.header-compact .intro-logo img {
  width: clamp(214px, 19vw, 270px);
  max-height: 58px;
}

.site-nav {
  gap: clamp(.8rem, 1.25vw, 1.35rem);
  flex-wrap: nowrap;
}
.site-nav a,
body:not(.header-compact) .site-nav a,
body.header-compact .site-nav a {
  font-size: clamp(.66rem, .68vw, .76rem);
  letter-spacing: .105em;
  padding: .45rem 0;
  white-space: nowrap;
}
.site-nav .nav-cta,
body:not(.header-compact) .site-nav .nav-cta {
  padding: .64rem .95rem;
  font-size: clamp(.66rem, .68vw, .76rem);
  border-width: 1px;
}

/* Type + global rhythm --------------------------------------------------- */
.section-title {
  font-size: clamp(2rem, 3.15vw, 3.35rem);
  line-height: .96;
}
.section-head {
  grid-template-columns: 1.2fr .8fr;
  gap: 2rem clamp(2.5rem, 7vw, 6rem);
  margin-bottom: clamp(2rem, 3.5vw, 3.2rem);
}
.section-desc { font-size: clamp(.82rem, .9vw, .98rem); }
.eyebrow { margin-bottom: .72rem; }

/* Transition primitives ------------------------------------------------- */
.wave {
  left: -2px;
  right: auto;
  width: calc(100% + 4px);
}
.wave-soft { --wh: clamp(30px, 3.7vw, 58px); overflow: visible; }
.wave-facet { --wh: clamp(42px, 4.8vw, 76px); }
.wave-contact-ridge { --wh: clamp(52px, 6vw, 92px); overflow: visible; }
.wave-footer { --wh: clamp(28px, 3.5vw, 54px); overflow: visible; }
.seam-line { stroke-width: 1.25; opacity: .68; }
.seam-curve { height: clamp(50px, 5.2vw, 82px); }

/* Hero ------------------------------------------------------------------- */
.hero {
  min-height: 0;
  height: clamp(520px, 40vw, 610px);
  background: var(--paper);
}
.hero-photo {
  margin-left: 19%;
  background-position: 43% 49%;
}
.hero-nook {
  width: min(45%, 680px);
  border-radius: 0 48% 48% 0;
  padding-left: clamp(3rem, 7vw, 7rem);
  background: #aebbae;
}
.hero-inner { padding-right: clamp(2rem, 4vw, 3.4rem); }
.hero-inner .display {
  max-width: none;
  font-size: clamp(2.05rem, 3.05vw, 3rem);
  line-height: .98;
}
.hero .display-line { white-space: nowrap; }
.hero-inner .lede {
  max-width: 37ch;
  margin-top: 1.25rem;
  font-size: clamp(.84rem, .94vw, 1rem);
  line-height: 1.62;
}
.hero-cta { margin-top: 1.5rem; }
.hero .wave-lg { --wh: clamp(42px, 5vw, 76px); }

/* Approach --------------------------------------------------------------- */
.approach-band { background: var(--paper); }
.approach-band .band-topo { opacity: .42; }
.affil-bar {
  max-width: none;
  padding: 1.15rem var(--pad) .95rem;
  min-height: 58px;
  border-bottom: 1px solid rgba(115, 138, 141, .12);
  justify-content: center;
}
.affil-list { justify-content: center; }
.affil-label,
.affil-list li { color: rgba(115, 138, 141, .55); }
.approach-inner {
  max-width: var(--maxw);
  padding: clamp(3.2rem, 5vw, 4.6rem) var(--pad) clamp(3.7rem, 5.7vw, 5.2rem);
  grid-template-columns: .86fr 1.5fr;
  gap: clamp(2.5rem, 5vw, 5rem);
}
.approach-title {
  font-size: clamp(2rem, 3.25vw, 3.35rem);
  line-height: .95;
}
.approach-text { margin-bottom: 1.45rem; }
.approach-inner .trust-grid {
  gap: 0;
  padding-left: clamp(1.5rem, 3vw, 3rem);
}
.trust-item {
  min-width: 0;
  padding: .2rem clamp(.8rem, 1.5vw, 1.5rem);
}
.trust-item + .trust-item { border-left: 1px solid rgba(115, 138, 141, .22); }
.trust-icon {
  width: clamp(30px, 2.7vw, 40px);
  height: clamp(30px, 2.7vw, 40px);
  margin-bottom: .7rem;
  color: #82998a;
}
.trust-item strong { margin-bottom: .5rem; font-size: clamp(.7rem, .76vw, .8rem); }
.trust-item span { font-size: clamp(.66rem, .69vw, .74rem); line-height: 1.45; }
.trust-big { font-size: clamp(1.2rem, 1.45vw, 1.55rem); }

/* Services --------------------------------------------------------------- */
.services {
  padding: clamp(4.7rem, 6vw, 6.2rem) var(--pad) clamp(5rem, 7vw, 7rem);
  background:
    linear-gradient(180deg, rgba(247,248,244,.96) 0%, rgba(247,248,244,.88) 48%, rgba(247,248,244,.6) 76%, rgba(247,248,244,.95) 100%),
    url("../assets/bg-svc.webp") center bottom / cover no-repeat;
}
.services::before {
  background: linear-gradient(180deg, rgba(247,248,244,.16), rgba(247,248,244,.02) 65%, rgba(247,248,244,.9));
}
.services .section-head { margin-bottom: clamp(2rem, 3vw, 2.8rem); }
.services .forestry-grid {
  max-width: 1380px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(.75rem, 1.25vw, 1.25rem);
}
.services .forestry-card,
.services .forestry-card:nth-child(4),
.services .forestry-card:nth-child(5) {
  grid-column: auto;
  padding: 0;
  min-width: 0;
}
.services .forestry-card .cloud,
.services .forestry-card:nth-child(2) .cloud,
.services .forestry-card:nth-child(3) .cloud {
  min-height: clamp(255px, 22vw, 300px);
  justify-content: flex-start;
  padding: clamp(1.35rem, 2vw, 1.8rem);
  border-radius: 18px;
  background: rgba(251, 251, 247, .88);
  border: 1px solid rgba(115, 138, 141, .15);
  box-shadow: 0 14px 30px rgba(66, 85, 90, .07);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
}
.services .forestry-card:hover .cloud {
  background: rgba(255, 255, 252, .96);
  box-shadow: 0 20px 40px rgba(66, 85, 90, .12);
}
.forestry-card h3 { font-size: clamp(.68rem, .72vw, .78rem); }
.forestry-card li { font-size: clamp(.66rem, .66vw, .72rem); }
.services-cta { margin-top: clamp(1.8rem, 3vw, 2.7rem); }
.btn-pill { border-radius: 4px; padding: .78rem 1.8rem; }

/* Forest statement + ridges --------------------------------------------- */
.photoband {
  min-height: clamp(400px, 34vw, 480px);
  padding: clamp(5.5rem, 7vw, 7rem) var(--pad);
  filter: none;
  background:
    linear-gradient(180deg, rgba(20, 38, 48, .28), rgba(19, 32, 43, .42)),
    url("../assets/bg-growing.webp") center 55% / cover no-repeat;
}
.photoband-line {
  font-size: clamp(2.3rem, 4.2vw, 4.2rem);
  max-width: 14ch;
}
.photoband-sub {
  max-width: 58ch;
  margin: 1rem auto 1.45rem;
  font-size: clamp(.76rem, .84vw, .9rem);
}

/* Credentials ------------------------------------------------------------ */
.credentials {
  padding: clamp(4.6rem, 6vw, 6rem) var(--pad) clamp(4.7rem, 6vw, 6rem);
  background: var(--sage-soft);
}
.credentials-inner {
  max-width: var(--maxw);
  grid-template-columns: 1.1fr 1fr 1fr .9fr;
  gap: clamp(1.5rem, 3.4vw, 3.2rem);
}
.credentials .section-title {
  font-size: clamp(2rem, 2.8vw, 2.85rem);
  max-width: 10ch;
}
.credentials .section-desc { font-size: .82rem; }
.cred-block ul { gap: .52rem; }
.cred-logos {
  margin-top: clamp(1.4rem, 2.5vw, 2rem);
  padding-top: clamp(1.2rem, 2vw, 1.7rem);
}

/* About ------------------------------------------------------------------ */
.about-page {
  padding: clamp(4.8rem, 6.6vw, 6.5rem) var(--pad) clamp(4.6rem, 6vw, 6rem);
  background: var(--paper-warm);
}
.about-page .section-title { max-width: 13ch; }
.about-page .section-head { margin-bottom: 2rem; }
.about-block + .about-block { margin-top: clamp(2rem, 3vw, 2.8rem); }
.about-block .team-grid { margin-top: 1.2rem; }
.team-grid { gap: clamp(1rem, 2vw, 1.6rem); }
.team-card {
  min-height: 225px;
  padding: clamp(1.35rem, 2.4vw, 2rem);
  border-radius: 16px;
  background: rgba(255, 255, 252, .72);
  border-color: rgba(115, 138, 141, .13);
  box-shadow: 0 12px 28px rgba(66, 85, 90, .05);
}
.team-bio { font-size: clamp(.74rem, .78vw, .83rem); line-height: 1.62; }
.about-cols { gap: clamp(2rem, 5vw, 5rem); }

/* Experience / projects ------------------------------------------------- */
.projects {
  padding: clamp(5rem, 6.5vw, 6.5rem) var(--pad) clamp(5rem, 6.5vw, 6.4rem);
  background: var(--paper-soft);
}
.projects .section-head { margin-bottom: 2.2rem; }
.projects-grid { gap: clamp(1rem, 2vw, 1.7rem); }
.project-img,
.project:hover .project-img {
  margin-bottom: 1rem;
  overflow: hidden;
  border-radius: 16px;
  filter: drop-shadow(0 12px 24px rgba(66, 85, 90, .13));
}
.project-img img,
.project:nth-child(2) .project-img img,
.project:nth-child(3) .project-img img {
  clip-path: none;
  border-radius: inherit;
}
.project h3 { margin-bottom: .45rem; }
.project p { max-width: 38ch; }

/* Contact + footer ------------------------------------------------------- */
.cta {
  padding: clamp(5.4rem, 7vw, 7rem) var(--pad) clamp(5rem, 6.5vw, 6.4rem);
}
.cta-bg { filter: none; }
.cta-grid {
  max-width: 1180px;
  grid-template-columns: .88fr 1.12fr;
  gap: clamp(1.5rem, 3vw, 2.7rem);
  padding: clamp(2rem, 3.4vw, 3rem);
  border-radius: 28px;
  background: rgba(250, 250, 246, .96);
  box-shadow: 0 26px 70px rgba(39, 54, 67, .2);
}
.cta-info { padding-right: clamp(1.25rem, 2.3vw, 2.25rem); }
.cta-title { font-size: clamp(1.85rem, 2.7vw, 2.75rem); }
.cta-note { margin-bottom: 1.4rem; }
.contact-block { gap: .75rem; }
.contact-item a,
.contact-item span { font-size: clamp(.72rem, .76vw, .82rem); }
.quote-form { gap: 1.2rem clamp(1.3rem, 2.4vw, 2rem); }
.quote-form textarea { min-height: 5.6rem; }

.floating-contact {
  position: absolute;
  z-index: 6;
  right: clamp(1.2rem, 3.2vw, 3.5rem);
  bottom: clamp(3rem, 5vw, 5rem);
  width: clamp(92px, 8vw, 118px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 50%;
  color: #f7f8f4;
  background: rgba(69, 88, 77, .92);
  border: 1px solid rgba(247, 248, 244, .58);
  box-shadow: 0 14px 30px rgba(29, 44, 40, .24);
  font-size: clamp(.58rem, .62vw, .68rem);
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.35;
  text-transform: uppercase;
}
.floating-contact b {
  position: absolute;
  right: 16%;
  top: 16%;
  font-size: .9rem;
}

.site-footer {
  padding: clamp(2.6rem, 4vw, 3.5rem) var(--pad) 1rem;
}
.footer-top { grid-template-columns: minmax(220px, 310px) 1fr; }
.footer-logo { width: min(270px, 100%); }
.footer-inner { gap: 1.8rem; }

/* Tablet navigation and layout ----------------------------------------- */
@media (max-width: 1180px) {
  html { scroll-padding-top: 82px; }
  .site-header,
  body.header-compact .site-header {
    min-height: 78px;
    padding: .55rem var(--pad);
  }
  .intro-logo { flex: 1 1 auto; }
  .intro-logo img,
  body.header-compact .intro-logo img {
    width: min(260px, 62vw);
    max-height: 58px;
  }
  .nav-toggle { display: flex; flex-shrink: 0; }
  .site-nav {
    position: fixed;
    top: var(--mobile-nav-top, 78px);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: .65rem var(--pad) 1rem;
    background: var(--navy);
    border-bottom: 1px solid rgba(247, 248, 244, .16);
    transform: translateY(-130%);
    transition: transform .25s var(--ease);
    z-index: 55;
  }
  .site-nav.open { transform: translateY(0); }
  .site-nav a,
  body:not(.header-compact) .site-nav a,
  body.header-compact .site-nav a,
  .site-nav .nav-cta {
    width: 100%;
    padding: .78rem 0;
    border: 0;
    border-bottom: 1px solid rgba(247,248,244,.14);
    font-size: .75rem;
  }
  .services .forestry-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .services .forestry-card .cloud { min-height: 250px; }
  .credentials-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .credentials-copy { grid-column: 1 / -1; }
  .credentials-lists { display: contents; }
  .credentials .cred-logos { grid-column: 1 / -1; }
  .floating-contact { display: none; }
}

@media (max-width: 900px) {
  .section-head { grid-template-columns: 1fr; gap: 1.2rem; }
  .hero-nook { width: 56%; }
  .hero-photo { margin-left: 24%; }
  .approach-inner { grid-template-columns: 1fr; }
  .approach-inner .trust-grid { padding-left: 0; }
  .services .forestry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-grid { grid-template-columns: 1fr; }
  .about-cols { grid-template-columns: 1fr; }
  .projects-grid { grid-template-columns: 1fr; }
  .project { display: grid; grid-template-columns: minmax(220px, .9fr) 1fr; gap: .25rem 1.5rem; align-items: start; }
  .project-img { grid-row: 1 / span 2; margin: 0; }
  .cta-grid { grid-template-columns: 1fr; }
}

/* Phone ------------------------------------------------------------------ */
@media (max-width: 760px) {
  .hero {
    height: auto;
    grid-template-rows: auto auto;
  }
  .hero-photo {
    height: clamp(220px, 58vw, 320px);
    margin-left: 0;
    background-position: 50% center;
  }
  .hero-nook {
    width: 100%;
    border-radius: 0;
    padding: clamp(2.2rem, 8vw, 3rem) var(--pad) clamp(3rem, 11vw, 4rem);
  }
  .hero-inner { padding: 0; }
  .hero-inner .display { font-size: clamp(1.9rem, 8vw, 2.55rem); }
  .hero .wave-lg { --wh: 42px; }
  .affil-bar { justify-content: flex-start; overflow: hidden; }
  .affil-list { justify-content: flex-start; }
  .approach-inner { padding-block: 3.5rem 4.3rem; }
  .approach-inner .trust-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem 0; }
  .trust-item + .trust-item { border-left: 0; }
  .trust-item:nth-child(even) { border-left: 1px solid rgba(115, 138, 141, .22); }
  .services { padding-block: 4.5rem 5.3rem; }
  .services .forestry-grid { grid-template-columns: 1fr; }
  .services .forestry-card .cloud { min-height: 0; border-radius: 15px; }
  .photoband { min-height: 430px; padding-block: 6rem; }
  .credentials-inner { grid-template-columns: 1fr; }
  .credentials-copy { grid-column: auto; }
  .credentials .section-title { max-width: 12ch; }
  .project { display: block; }
  .project-img { margin-bottom: 1rem; }
  .cta { padding-block: 5.5rem 5rem; }
  .cta-grid { border-radius: 20px; }
  .site-footer { padding-top: 2.5rem; }
}

@media (max-width: 520px) {
  .site-header,
  body.header-compact .site-header { border-bottom-right-radius: 54px 20px; }
  .intro-logo img,
  body.header-compact .intro-logo img { width: min(230px, 65vw); }
  .section-title { font-size: clamp(1.9rem, 9.7vw, 2.65rem); }
  .hero-cta .btn { padding-inline: .7rem; font-size: .68rem; }
  .about-page,
  .projects,
  .credentials { padding-inline: 1.2rem; }
  .cta-grid { padding: 1.55rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

/* Premium refinement pass ------------------------------------------------
   The v3 layer sharpens hierarchy and interaction while preserving the
   original editorial forestry language and static-site architecture. */

:root {
  --ink-rich: #34484e;
  --navy-deep: #183264;
  --copper-bright: #c18a56;
}

body { color: var(--ink-rich); }
h1, h2, h3, h4,
.display,
.section-title,
.approach-title,
.photoband-line,
.cta-title { font-optical-sizing: auto; letter-spacing: -.018em; }

.section-desc,
.approach-text,
.about-block-lede,
.cta-note { color: rgba(52, 72, 78, .86); font-weight: 400; }

/* Content is visible by default. JavaScript opts into reveal states only
   after configuration has hydrated successfully. */
.reveal { opacity: 1; transform: none; }
.is-enhanced .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .58s var(--ease), transform .58s var(--ease);
}
.is-enhanced .reveal.in { opacity: 1; transform: none; }

.scroll-progress {
  position: fixed;
  z-index: 180;
  top: 0;
  left: 50%;
  width: min(100%, var(--maxpage));
  height: 3px;
  transform: translateX(-50%);
  pointer-events: none;
}
.scroll-progress span {
  display: block;
  width: var(--page-progress, 0%);
  height: 100%;
  background: linear-gradient(90deg, var(--copper), #d7a06a);
  box-shadow: 0 0 12px rgba(193, 138, 86, .36);
}

/* A stable header rail removes the scroll-state layout snap. */
.site-chrome,
body.header-compact .site-chrome { height: 96px; }
.site-header,
body.header-compact .site-header {
  position: fixed;
  top: 0;
  left: 50%;
  width: min(100%, var(--maxpage));
  transform: translateX(-50%);
}

.site-nav a,
body:not(.header-compact) .site-nav a,
body.header-compact .site-nav a {
  position: relative;
  font-size: clamp(.71rem, .72vw, .79rem);
  letter-spacing: .115em;
}
.site-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .18rem;
  width: 24px;
  height: 1px;
  background: var(--copper-bright);
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  transition: transform .22s var(--ease);
}
.site-nav a:not(.nav-cta):hover::after,
.site-nav a.is-active::after { transform: translateX(-50%) scaleX(1); }
.site-nav a.is-active { color: #fff; }
.site-nav .nav-portal { color: rgba(215, 222, 210, .82); }
.site-nav .nav-portal::before {
  content: "↗";
  margin-right: .28rem;
  color: var(--copper-bright);
  font-size: .76em;
}

/* Hero: asymmetric live edge, stronger type, and a one-time cinematic settle. */
.hero { height: clamp(570px, 43vw, 660px); overflow: hidden; }
.hero-photo {
  align-self: stretch;
  justify-self: end;
  width: 82%;
  height: 100%;
  margin-left: 0;
  object-fit: cover;
  object-position: 43% 49%;
  background: none;
  transform: scale(1.035);
  animation: hero-settle 1.65s var(--ease) .08s forwards;
}
.hero-nook {
  width: min(48%, 710px);
  border-radius: 0 56% 44% 0 / 0 46% 58% 0;
  box-shadow: 18px 0 36px rgba(82, 105, 92, .12);
}
.hero-nook::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: -26px;
  width: 70px;
  height: 100%;
  border-radius: 50%;
  background: linear-gradient(90deg, rgba(174,187,174,.3), transparent);
  filter: blur(10px);
  pointer-events: none;
}
.hero-inner .eyebrow {
  display: flex;
  margin-bottom: .9rem;
  color: rgba(32, 58, 114, .7);
  font-size: clamp(.68rem, .72vw, .78rem);
}
.hero-topo { opacity: .33; }
.hero-topo path {
  stroke-dasharray: 900;
  stroke-dashoffset: 900;
  animation: topo-draw 1.8s var(--ease) .22s forwards;
}
.hero-inner .display {
  max-width: 11.5ch;
  font-size: clamp(2.55rem, 3.65vw, 3.7rem);
  line-height: .93;
  letter-spacing: -.032em;
}
.hero-inner { transform: translateY(-44px); }
.hero-inner .lede {
  max-width: 40ch;
  color: rgba(52, 72, 78, .92);
  font-size: clamp(.9rem, .98vw, 1.03rem);
}

@keyframes hero-settle { to { transform: scale(1); } }
@keyframes topo-draw { to { stroke-dashoffset: 0; } }

/* Raise small copy to an intentionally readable editorial scale. */
.section-desc { font-size: clamp(.9rem, .94vw, 1rem); line-height: 1.72; }
.approach-text { font-size: clamp(.9rem, .94vw, 1rem); line-height: 1.72; }
.trust-item strong { font-size: clamp(.75rem, .8vw, .84rem); }
.trust-item span { font-size: clamp(.76rem, .78vw, .82rem); line-height: 1.58; }
.affil-label,
.affil-list li { color: rgba(80, 101, 105, .68); font-weight: 500; }

/* Services: spacious 3-over-2 composition with varied organic rectangles. */
.services .forestry-grid {
  max-width: 1180px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(1rem, 1.8vw, 1.55rem);
}
.services .forestry-card,
.services .forestry-card:nth-child(4),
.services .forestry-card:nth-child(5) { grid-column: span 2; }
.services .forestry-card:nth-child(4) { grid-column: 2 / span 2; }
.services .forestry-card:nth-child(5) { grid-column: 4 / span 2; }
.services .forestry-card .cloud,
.services .forestry-card:nth-child(2) .cloud,
.services .forestry-card:nth-child(3) .cloud {
  min-height: clamp(270px, 22vw, 310px);
  padding: clamp(1.65rem, 2.4vw, 2.1rem);
  border-radius: 34px 24px 38px 20px;
  background: rgba(253, 253, 249, .93);
  border: 1px solid rgba(115, 138, 141, .16);
  box-shadow: 0 18px 42px rgba(54, 73, 78, .085), inset 0 1px rgba(255,255,255,.86);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}
.services .forestry-card:nth-child(2) .cloud { border-radius: 24px 40px 22px 36px; }
.services .forestry-card:nth-child(3) .cloud { border-radius: 40px 22px 34px 26px; }
.services .forestry-card:nth-child(4) .cloud { border-radius: 26px 38px 22px 42px; }
.services .forestry-card:nth-child(5) .cloud { border-radius: 38px 25px 41px 21px; }
.forestry-top {
  margin-bottom: 1.2rem;
  padding-bottom: .8rem;
  border-bottom: 1px solid rgba(176, 122, 74, .22);
}
.forestry-num { color: rgba(32, 58, 114, .38); font-size: 1rem; }
.forestry-card h3 { font-size: clamp(.79rem, .82vw, .88rem); line-height: 1.32; }
.forestry-card li { font-size: clamp(.77rem, .78vw, .83rem); line-height: 1.55; }
.services .forestry-card:hover .cloud { background: rgba(253, 253, 249, .93); box-shadow: 0 18px 42px rgba(54, 73, 78, .085), inset 0 1px rgba(255,255,255,.86); }
.services-swipe-hint { display: none; }

/* Landscape bands: lazy image layers, depth, and restrained cinematic motion. */
.wave-facet { --wh: clamp(54px, 5.2vw, 82px); }
.photoband {
  isolation: isolate;
  min-height: clamp(450px, 36vw, 520px);
  background: #20323a;
}
.photoband-bg,
.cta-bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.photoband-bg {
  object-position: center 55%;
  filter: saturate(.88) contrast(1.08) sepia(.05);
  transform: scale(1.035);
  transition: transform 1.25s var(--ease);
}
.photoband.media-in .photoband-bg { transform: scale(1); }
.photoband::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    radial-gradient(circle at 50% 48%, rgba(20, 35, 42, .04) 0 19%, rgba(17, 29, 36, .4) 78%),
    linear-gradient(180deg, rgba(16, 31, 40, .38), rgba(18, 33, 40, .22) 35%, rgba(15, 28, 34, .48));
  pointer-events: none;
}
.photoband-inner { position: relative; z-index: 5; }
.photoband-line { font-size: clamp(3rem, 4.8vw, 4.8rem); line-height: .91; }
.photoband-sub { max-width: 52ch; font-size: clamp(.86rem, .9vw, .96rem); line-height: 1.67; }

.credentials .section-desc { font-size: .9rem; }
.cred-block li { color: rgba(52, 72, 78, .84); font-size: clamp(.78rem, .8vw, .84rem); line-height: 1.52; }

/* The team section is deliberately typographic until real portraits exist. */
.team-card {
  position: relative;
  overflow: hidden;
  min-height: 310px;
  padding: clamp(1.7rem, 2.8vw, 2.35rem);
  border-radius: 38px 22px 36px 18px;
  background: linear-gradient(145deg, rgba(255,255,252,.93), rgba(239,243,237,.78));
  border: 1px solid rgba(115, 138, 141, .15);
  box-shadow: inset 3px 0 0 rgba(176,122,74,.62), 0 18px 44px rgba(54,73,78,.07);
}
.team-card:nth-child(2) { border-radius: 22px 40px 19px 37px; }
.team-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.team-monogram {
  width: 62px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgba(176,122,74,.55);
  border-radius: 50%;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.25rem;
  background: rgba(247,248,244,.76);
}
.team-index {
  color: rgba(32,58,114,.12);
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 4vw, 4.2rem);
  line-height: .8;
}
.team-card h3 { font-size: clamp(1.35rem, 1.65vw, 1.65rem); margin-bottom: .25rem; }
.team-role { margin-bottom: .24rem; font-size: .76rem; }
.team-location {
  margin: 0 0 1rem;
  color: rgba(115, 138, 141, .86);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.team-bio { color: rgba(52,72,78,.86); font-size: clamp(.84rem, .88vw, .93rem); line-height: 1.7; }
.team-card:hover { transform: none; box-shadow: inset 3px 0 0 rgba(176,122,74,.62), 0 18px 44px rgba(54,73,78,.07); }

/* Restore the original organic image language and add small editorial labels. */
.project { transform: none; }
.project:hover { transform: none; }
.project-img,
.project:hover .project-img {
  position: relative;
  overflow: visible;
  border-radius: 0;
  filter:
    drop-shadow(1px 0 0 rgba(176,122,74,.5))
    drop-shadow(-1px 0 0 rgba(176,122,74,.5))
    drop-shadow(0 1px 0 rgba(176,122,74,.5))
    drop-shadow(0 -1px 0 rgba(176,122,74,.5))
    drop-shadow(0 18px 30px rgba(54,73,78,.17));
}
.project-img img,
.project:hover .project-img img { border-radius: 0; transform: none; }
.project-img img { clip-path: url(#pebble-1); }
.project:nth-child(2) .project-img img { clip-path: url(#pebble-2); }
.project:nth-child(3) .project-img img { clip-path: url(#pebble-3); }
.project-tag {
  position: absolute;
  z-index: 2;
  left: 8%;
  bottom: 9%;
  padding: .48rem .7rem;
  color: var(--paper);
  background: rgba(24,50,100,.86);
  border: 1px solid rgba(247,248,244,.38);
  border-radius: 999px;
  font-size: .59rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}
.project p { color: rgba(52,72,78,.84); font-size: clamp(.82rem, .86vw, .9rem); line-height: 1.62; }

/* Contact: organic glass-paper panel with honest form targeting. */
.cta { isolation: isolate; }
.cta-bg {
  object-position: center;
  background: none;
  filter: saturate(.86) contrast(1.04) sepia(.06);
}
.cta::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(32,58,114,.13), rgba(32,58,114,.04) 45%, rgba(32,58,114,.18));
  pointer-events: none;
}
.wave-contact-ridge { z-index: 5; }
.cta-grid {
  z-index: 3;
  border-radius: 48px 24px 42px 28px / 34px 46px 30px 52px;
  background: rgba(252,252,248,.9);
  border: 1px solid rgba(255,255,255,.75);
  box-shadow: 0 28px 72px rgba(28,43,54,.22), inset 0 1px 0 rgba(255,255,255,.9);
  -webkit-backdrop-filter: blur(11px);
          backdrop-filter: blur(11px);
}
.contact-item a,
.contact-item span { color: rgba(52,72,78,.88); font-size: clamp(.79rem, .82vw, .87rem); }
.floating-contact {
  color: var(--paper);
  background: linear-gradient(145deg, rgba(32,58,114,.96), rgba(24,50,100,.96));
  border-color: rgba(193,138,86,.82);
  box-shadow: 0 14px 34px rgba(24,50,100,.26), inset 0 0 0 4px rgba(193,138,86,.08);
}
.field:has(:required) > label::after { content: "  *"; color: var(--copper); }
.quote-form :is(input, textarea):focus-visible {
  outline: 2px solid var(--copper);
  outline-offset: 4px;
  border-color: var(--navy);
}
.quote-form :is(input, textarea):user-invalid { border-color: #a74a42; }
.quote-form button:disabled { opacity: .62; cursor: wait; transform: none; }

@media (hover: hover) and (pointer: fine) {
  .btn:hover { transform: translateY(-2px); }
  .floating-contact:hover { transform: translateY(-3px) rotate(2deg); }
}

@media (max-width: 1180px) {
  .site-chrome,
  body.header-compact .site-chrome { height: 78px; }
  .site-nav {
    max-height: calc(100dvh - var(--mobile-nav-top, 78px));
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transition: transform .26s var(--ease), opacity .2s ease, visibility 0s linear .26s;
  }
  .site-nav.open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
    transition-delay: 0s;
  }
  html:not(.is-enhanced) .site-nav {
    position: static;
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
    transform: none;
  }
  .site-nav a:not(.nav-cta)::after { left: 0; bottom: .45rem; transform-origin: left; transform: scaleX(0); }
  .site-nav a:not(.nav-cta):hover::after,
  .site-nav a.is-active::after { transform: scaleX(1); }
}

@media (max-width: 900px) {
  .services .forestry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services .forestry-card,
  .services .forestry-card:nth-child(4),
  .services .forestry-card:nth-child(5) { grid-column: auto; }
  .team-card { min-height: 0; }
}

@media (max-width: 760px) {
  .hero {
    height: auto;
    grid-template-rows: auto auto;
  }
  .hero-photo {
    width: 100%;
    height: clamp(230px, 61vw, 330px);
    margin: 0;
    object-position: 50% center;
  }
  .hero-nook {
    width: 100%;
    padding-bottom: clamp(4.75rem, 16vw, 6rem);
    border-radius: 0;
    box-shadow: none;
  }
  .hero-nook::after { display: none; }
  .hero-inner { transform: none; }
  .hero-inner .display {
    max-width: none;
    font-size: clamp(1.84rem, 7.55vw, 2.15rem);
    line-height: .95;
  }
  .hero .display-line { white-space: nowrap; }
  .hero-inner .lede { max-width: 39ch; font-size: .9rem; line-height: 1.58; }

  .services .forestry-grid {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82vw, 340px);
    gap: 1rem;
    max-width: none;
    margin-inline: calc(var(--pad) * -1);
    padding: .2rem var(--pad) 1rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
    scrollbar-color: rgba(176,122,74,.52) transparent;
  }
  .services .forestry-card,
  .services .forestry-card:nth-child(4),
  .services .forestry-card:nth-child(5) {
    grid-column: auto;
    scroll-snap-align: center;
  }
  .services .forestry-card .cloud { min-height: 310px; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .services-swipe-hint {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .8rem 0 0;
    color: rgba(52,72,78,.66);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .services-swipe-hint span { color: var(--copper); font-size: 1rem; }
  .photoband { min-height: 470px; }
  .project-tag { font-size: .56rem; }
  .cta-grid { border-radius: 30px 18px 28px 20px; }
}

@media (pointer: coarse) {
  .nav-toggle,
  .site-nav a,
  .cta-info a,
  .site-footer a { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-photo,
  .hero-topo path,
  .photoband-bg { animation: none !important; transform: none !important; transition: none !important; }
  .site-nav,
  .btn,
  .floating-contact,
  .project,
  .project-img img,
  .team-card,
  .form-status { transition: none !important; transform: none !important; }
}

/* Final art-direction pass ----------------------------------------------
   The last layer adds proof, process, and restrained landscape motion.
   Every effect falls back to a complete static composition. */

:root { --copper-aa: #9a6235; }

.is-enhanced .reveal:focus-within { opacity: 1; transform: none; }

:is(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--paper);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--navy);
}
.site-header :is(a, button):focus-visible,
.process-panel :is(a, button):focus-visible {
  outline-color: #fff;
  box-shadow: 0 0 0 5px var(--copper-bright);
}

.scroll-progress { overflow: hidden; }
.scroll-progress span {
  width: 100%;
  transform: scaleX(var(--page-progress-scale, 0));
  transform-origin: left center;
  will-change: transform;
}

.btn-primary {
  background: var(--copper-aa);
  border-color: var(--copper-aa);
}
.btn-pill { color: var(--copper-aa); border-color: rgba(154, 98, 53, .76); }
.eyebrow.dark,
.statement-eyebrow,
.about-block-title { color: var(--copper-aa); }
.affil-label,
.affil-list li { color: rgba(52, 72, 78, .78); }
.services-swipe-hint { color: rgba(52, 72, 78, .78); }
.footer-legal { color: rgba(247, 248, 244, .72); }

/* Hero field note and composed, transform-only scroll depth. */
@keyframes hero-settle {
  to { transform: translate3d(0, var(--hero-drift, 0), 0) scale(1.02); }
}
.hero-photo { will-change: transform; }
.hero-settled .hero-photo {
  animation: none;
  transform: translate3d(0, var(--hero-drift, 0), 0) scale(1.02);
}
.hero-nook { transform: translate3d(var(--nook-drift, 0), 0, 0); will-change: transform; }
.hero-topo { transform: translate3d(var(--topo-drift, 0), 0, 0); will-change: transform; }
.hero-fieldnote {
  position: absolute;
  z-index: 3;
  right: clamp(2rem, 4.8vw, 4.8rem);
  bottom: clamp(6.6rem, 8.2vw, 8.6rem);
  width: min(250px, 22vw);
  padding: 1rem 1.1rem .95rem;
  color: #fff;
  background: linear-gradient(145deg, rgba(24, 50, 100, .62), rgba(24, 44, 60, .38));
  border: 1px solid rgba(255, 255, 255, .28);
  border-left-color: rgba(193, 138, 86, .9);
  border-radius: 2px 20px 4px 14px;
  box-shadow: 0 16px 35px rgba(14, 28, 36, .16);
  -webkit-backdrop-filter: blur(9px);
          backdrop-filter: blur(9px);
  text-decoration: none;
  transition: transform .28s var(--ease), background .28s ease;
}
.hero-fieldnote span,
.hero-fieldnote strong,
.hero-fieldnote em { display: block; }
.hero-fieldnote-index {
  margin-bottom: .48rem;
  color: rgba(231, 192, 150, .94);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.hero-fieldnote strong {
  font-family: var(--font-display);
  font-size: clamp(.96rem, 1.15vw, 1.2rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.hero-fieldnote > span:nth-of-type(2) {
  margin-top: .35rem;
  color: rgba(247, 248, 244, .78);
  font-size: .66rem;
  line-height: 1.45;
}
.hero-fieldnote em {
  margin-top: .75rem;
  padding-top: .62rem;
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: #fff;
  font-size: .6rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero-fieldnote em b { float: right; color: var(--copper-bright); font-size: .9rem; }
.hero-cta .btn { white-space: nowrap; }

html:not(.is-enhanced) .nav-toggle { display: none; }

/* Bespoke service art and the specialist capability ledger. */
.services .forestry-card .cloud { position: relative; isolation: isolate; overflow: hidden; }
.forestry-top,
.forestry-card h3,
.forestry-card ul { position: relative; z-index: 2; }
.forestry-art {
  position: absolute;
  z-index: 0;
  right: -7%;
  bottom: -15%;
  width: 49%;
  height: auto;
  opacity: .25;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(135deg, transparent 2%, #000 42%, #000 100%);
          mask-image: linear-gradient(135deg, transparent 2%, #000 42%, #000 100%);
  pointer-events: none;
}
.capability-rail {
  position: relative;
  z-index: 2;
  max-width: 1180px;
  margin: clamp(3rem, 5.5vw, 5rem) auto 0;
  padding: clamp(1.4rem, 2.4vw, 2rem) 0;
  display: grid;
  grid-template-columns: minmax(210px, .72fr) 2fr;
  gap: clamp(2rem, 4vw, 4rem);
  border-block: 1px solid rgba(115, 138, 141, .22);
}
.capability-intro { padding-right: clamp(1rem, 2vw, 2rem); }
.capability-label {
  margin: 0 0 .55rem;
  color: var(--copper-aa);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.capability-intro > p:last-child {
  margin: 0;
  color: rgba(52, 72, 78, .8);
  font-size: .82rem;
  line-height: 1.55;
}
.capability-rail .other-services-grid {
  counter-reset: capability;
  align-items: start;
  gap: 1.2rem clamp(1.2rem, 2.3vw, 2.2rem);
}
.capability-rail .other-service {
  counter-increment: capability;
  position: relative;
  min-height: 104px;
  padding: .15rem 0 0 2.25rem;
}
.capability-rail .other-service::before {
  content: "0" counter(capability);
  position: absolute;
  top: .08rem;
  left: 0;
  color: rgba(32, 58, 114, .38);
  font-family: var(--font-display);
  font-size: .9rem;
}
.capability-rail .other-service strong {
  color: var(--navy);
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.4;
}
.capability-rail .other-service span {
  color: rgba(52, 72, 78, .78);
  font-size: .76rem;
  line-height: 1.52;
}

/* The engagement path is a compact, high-contrast story inside Services. */
.process-panel {
  position: relative;
  z-index: 2;
  isolation: isolate;
  overflow: hidden;
  max-width: 1180px;
  margin: clamp(3rem, 5.5vw, 5rem) auto 0;
  padding: clamp(2.2rem, 4.3vw, 4rem);
  color: var(--paper);
  background:
    radial-gradient(circle at 85% 10%, rgba(115, 138, 141, .22), transparent 34%),
    linear-gradient(145deg, #183264, #1d3c68 52%, #183052);
  border: 1px solid rgba(193, 138, 86, .42);
  border-radius: 54px 25px 48px 29px / 36px 52px 31px 58px;
  box-shadow: 0 26px 62px rgba(32, 58, 114, .18), inset 0 1px 0 rgba(255, 255, 255, .08);
}
.process-contour {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: url("../assets/contours.svg") center / cover no-repeat;
  opacity: .07;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 28%, #000 100%);
          mask-image: linear-gradient(90deg, transparent, #000 28%, #000 100%);
}
.process-head {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
}
.process-head .eyebrow { color: var(--copper-bright); }
.process-title {
  max-width: 12ch;
  margin: 0;
  color: var(--paper);
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 3.5vw, 3.6rem);
  font-weight: 500;
  line-height: .94;
  text-transform: uppercase;
}
.process-title .display-line { display: block; }
.process-lede {
  max-width: 44ch;
  margin: 0 0 .25rem;
  color: rgba(239, 242, 235, .78);
  font-size: clamp(.84rem, .92vw, .96rem);
  line-height: 1.7;
}
.process-panel .process-steps {
  position: relative;
  z-index: 1;
  margin: clamp(2.4rem, 4.8vw, 4.4rem) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(.8rem, 2vw, 1.6rem);
}
.process-panel .process-steps::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 9px;
  left: 9px;
  right: 9px;
  height: 1px;
  background: linear-gradient(90deg, var(--copper-bright), rgba(193, 138, 86, .25));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.05s var(--ease) .16s;
}
.process-panel.edge-in .process-steps::before { transform: scaleX(1); }
.process-panel .process-step {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: 2.2rem clamp(.35rem, .75vw, .7rem) 0 0;
  border: 0;
}
.process-panel .process-step::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  width: 13px;
  height: 13px;
  border: 3px solid #1b3761;
  border-radius: 50%;
  background: var(--copper-bright);
  box-shadow: 0 0 0 1px rgba(231, 192, 150, .7);
}
.process-panel .step-num {
  margin-bottom: .52rem;
  color: rgba(231, 192, 150, .82);
  font-size: .61rem;
}
.process-panel .process-step h3 {
  margin: 0 0 .45rem;
  color: var(--paper);
  font-family: var(--font-display);
  font-size: clamp(1.08rem, 1.35vw, 1.35rem);
  font-weight: 500;
  text-transform: uppercase;
}
.process-panel .process-step p {
  margin: 0;
  color: rgba(239, 242, 235, .69);
  font-size: clamp(.72rem, .75vw, .8rem);
  line-height: 1.58;
}
.process-foot {
  margin-top: clamp(2.2rem, 4vw, 3.5rem);
  padding-top: 1.15rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem 2rem;
  border-top: 1px solid rgba(247, 248, 244, .16);
  color: rgba(239, 242, 235, .62);
  font-size: .68rem;
  letter-spacing: .04em;
}
.process-link {
  color: #fff;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}
.process-link b { margin-left: .35rem; color: var(--copper-bright); }

/* Bespoke proof marks and more scannable team dossiers. */
.credentials-copy { position: relative; isolation: isolate; }
.credentials-copy > :not(.credentials-mark) { position: relative; z-index: 1; }
.credentials-mark {
  position: absolute;
  z-index: 0;
  right: -12%;
  bottom: -30%;
  width: min(230px, 70%);
  height: auto;
  opacity: .12;
  mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(circle, #000 46%, transparent 74%);
          mask-image: radial-gradient(circle, #000 46%, transparent 74%);
  pointer-events: none;
}
.team-card h4 {
  margin: 0 0 .25rem;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 1.65vw, 1.65rem);
  font-weight: 500;
  text-transform: uppercase;
}
.team-location { color: rgba(52, 72, 78, .74); }
.team-proof {
  list-style: none;
  margin: 0 0 1.2rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.team-proof li {
  padding: .42rem .62rem;
  color: rgba(32, 58, 114, .84);
  background: rgba(215, 222, 210, .42);
  border: 1px solid rgba(115, 138, 141, .2);
  border-radius: 999px;
  font-size: .61rem;
  font-weight: 650;
  letter-spacing: .075em;
  line-height: 1.2;
  text-transform: uppercase;
}
.about-location-panel { position: relative; isolation: isolate; min-height: 230px; }
.about-location-panel > :not(.location-mark) { position: relative; z-index: 1; }
.location-mark {
  position: absolute;
  z-index: 0;
  right: 0;
  bottom: -20%;
  width: min(245px, 58%);
  height: auto;
  opacity: .13;
  mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(circle, #000 44%, transparent 74%);
          mask-image: radial-gradient(circle, #000 44%, transparent 74%);
  pointer-events: none;
}

/* Project provenance stays explicit while the photography gets a subtle lift. */
.project-disclosure {
  max-width: 48ch;
  margin: 1rem 0 0;
  padding-left: .85rem;
  border-left: 2px solid rgba(154, 98, 53, .62);
  color: rgba(52, 72, 78, .68);
  font-size: .7rem;
  line-height: 1.55;
}
.project-credit,
.project .project-credit {
  margin: .3rem 0 .72rem;
  color: var(--copper-aa);
  font-size: .61rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.35;
  text-transform: uppercase;
}
.project-img img { transition: transform .72s var(--ease), filter .72s ease; }

/* Form qualification with a native, dependable select control. */
.quote-form select {
  width: 100%;
  min-height: 44px;
  padding: .58rem 1.75rem .58rem 0;
  color: var(--ink-rich);
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(66, 85, 90, .28);
  border-radius: 0;
  font: inherit;
}
.quote-form select:focus-visible {
  outline: 2px solid var(--paper);
  outline-offset: 3px;
  border-color: var(--navy);
  box-shadow: 0 0 0 5px var(--navy);
}

/* One copper survey line now draws through the section transitions. */
.has-edge-motion .wave path[stroke],
.has-edge-motion .seam-curve path[stroke] {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transition: stroke-dashoffset .9s var(--ease) .12s;
}
.has-edge-motion .edge-in .wave path[stroke],
.has-edge-motion .edge-in .seam-curve path[stroke] { stroke-dashoffset: 0; }
.has-edge-motion .photoband:not(.edge-in) :is(.wave-ridge-top, .wave-ridge-bottom) path[fill]:nth-child(1),
.has-edge-motion .cta:not(.edge-in) .wave-contact-ridge path[fill]:nth-child(1) { transform: translateY(10px); }
.has-edge-motion .photoband:not(.edge-in) :is(.wave-ridge-top, .wave-ridge-bottom) path[fill]:nth-child(2),
.has-edge-motion .cta:not(.edge-in) .wave-contact-ridge path[fill]:nth-child(2) { transform: translateY(7px); }
.has-edge-motion .photoband:not(.edge-in) .wave-ridge-top path[fill]:nth-child(3),
.has-edge-motion .cta:not(.edge-in) .wave-contact-ridge path[fill]:nth-child(3) { transform: translateY(4px); }
:is(.wave-ridge-top, .wave-ridge-bottom, .wave-contact-ridge) path[fill] {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .76s var(--ease);
}

/* Cinematic midpoint and finale, using only composited image transforms. */
.photoband { min-height: clamp(540px, 66svh, 700px); overflow: hidden; }
.photoband-bg {
  inset: -32px 0;
  height: calc(100% + 64px);
  transform: translate3d(0, var(--band-drift, 0), 0) scale(1.055);
  will-change: transform;
}
.photoband.media-in .photoband-bg {
  transform: translate3d(0, var(--band-drift, 0), 0) scale(1.025);
}
.cta { overflow: hidden; }
.cta-bg {
  inset: -24px 0;
  height: calc(100% + 48px);
  transform: translate3d(0, var(--cta-drift, 0), 0) scale(1.035);
  transition: transform .12s linear;
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .hero-fieldnote:hover { transform: translateY(-4px); background: rgba(24, 50, 100, .72); }
  .project:hover .project-img img { transform: scale(1.028); filter: saturate(1.04) contrast(1.02); }
  .process-link:hover { color: #e7c096; }
}

@media (max-width: 900px) {
  .hero-cta { gap: .55rem; }
  .hero-cta .btn { padding-inline: 1rem; font-size: .67rem; }
  .capability-rail { grid-template-columns: 1fr; gap: 1.5rem; }
  .capability-intro { max-width: 48ch; }
  .capability-rail .other-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-head { grid-template-columns: 1fr; gap: 1.35rem; }
  .process-lede { max-width: 52ch; }
  .process-panel .process-steps { grid-template-columns: 1fr; gap: 1.3rem; }
  .process-panel .process-steps::before {
    top: 7px;
    bottom: 7px;
    left: 6px;
    right: auto;
    width: 1px;
    height: auto;
    transform: scaleY(0);
    transform-origin: top;
  }
  .process-panel.edge-in .process-steps::before { transform: scaleY(1); }
  .process-panel .process-step { min-height: 88px; padding: 0 0 0 2.15rem; }
  .process-panel .process-step::before { top: 0; }
}

@media (max-width: 760px) {
  body::after { display: none; }
  .hero-fieldnote { display: none; }
  .hero-settled .hero-photo,
  .hero-nook,
  .hero-topo { transform: none; will-change: auto; }
  .services .forestry-grid:focus-visible {
    outline: 2px solid var(--navy);
    outline-offset: -2px;
    box-shadow: inset 0 0 0 4px var(--paper);
  }
  .capability-rail { margin-top: 2.6rem; }
  .capability-rail .other-service { min-height: 92px; }
  .process-panel {
    margin-top: 3rem;
    padding: 2rem 1.35rem 2.2rem;
    border-radius: 34px 17px 31px 22px;
  }
  .process-title { font-size: clamp(2rem, 10vw, 2.7rem); }
  .process-foot { align-items: flex-start; flex-direction: column; }
  .photoband { min-height: 500px; }
  .photoband-bg,
  .photoband.media-in .photoband-bg,
  .cta-bg { transform: none; will-change: auto; }
  .credentials-mark { right: -4%; bottom: -12%; width: 170px; }
  .location-mark { width: 180px; bottom: -8%; }
}

@media (max-width: 520px) {
  .capability-rail .other-services-grid { grid-template-columns: 1fr; }
  .capability-rail .other-service { min-height: 0; padding-bottom: .7rem; }
  .team-proof { gap: .35rem; }
  .team-proof li { font-size: .57rem; }
  .project-disclosure { font-size: .68rem; }
  .process-title { font-size: clamp(1.85rem, 9vw, 2.2rem); }
}

@media (max-height: 520px) and (min-width: 761px) {
  .hero-fieldnote { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-progress { display: none; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
  .hero-photo,
  .hero-nook,
  .hero-topo,
  .hero-fieldnote,
  .photoband-bg,
  .cta-bg,
  .project-img img,
  :is(.wave-ridge-top, .wave-ridge-bottom, .wave-contact-ridge) path,
  .process-panel .process-steps::before { transform: none !important; will-change: auto !important; }
  .has-edge-motion .wave path[stroke],
  .has-edge-motion .seam-curve path[stroke] { stroke-dashoffset: 0 !important; }
}

/* Real people, treated as an editorial field journal rather than stock cards. */
.about-block .team-grid { margin-top: clamp(1.6rem, 2.8vw, 2.5rem); }

.team-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(115, 138, 141, .18);
  border-radius: 38px 20px 34px 18px;
  background:
    radial-gradient(ellipse at 90% 104%, rgba(215, 222, 210, .5), transparent 42%),
    linear-gradient(145deg, rgba(255, 255, 252, .97), rgba(239, 243, 237, .88));
  box-shadow: inset 3px 0 0 rgba(176, 122, 74, .62), 0 22px 52px rgba(54, 73, 78, .1);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}
.team-card:nth-child(2) { border-radius: 20px 40px 19px 36px; }
.team-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 45% -15% -18% 36%;
  opacity: .26;
  background:
    repeating-radial-gradient(ellipse at 100% 100%, transparent 0 22px, rgba(115, 138, 141, .16) 23px 24px, transparent 25px 37px);
  transform: rotate(-8deg);
  pointer-events: none;
}

.team-portrait {
  position: relative;
  z-index: 1;
  aspect-ratio: 4 / 3;
  min-height: 260px;
  margin-bottom: clamp(-3.8rem, -5vw, -2.7rem);
  overflow: hidden;
  background: #526566;
  clip-path: polygon(0 0, 100% 0, 100% 91%, 89% 95%, 76% 88%, 63% 97%, 48% 90%, 33% 97%, 17% 89%, 0 95%);
}
.team-card:nth-child(2) .team-portrait {
  clip-path: polygon(0 0, 100% 0, 100% 95%, 84% 89%, 69% 97%, 53% 88%, 38% 96%, 23% 88%, 10% 94%, 0 91%);
}
.team-photo {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 50% 8%;
  filter: saturate(.82) contrast(1.055) sepia(.035);
  transform: scale(1.018);
  transition: transform 1.1s var(--ease), filter .55s ease;
}
.team-card:nth-child(2) .team-photo {
  object-position: 50% 30%;
  filter: saturate(.76) contrast(1.045) sepia(.055);
}
.team-portrait::before,
.team-portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.team-portrait::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(18, 36, 52, .28), transparent 38%, transparent 72%, rgba(18, 36, 52, .09)),
    linear-gradient(180deg, rgba(17, 33, 46, .15), transparent 42%, rgba(18, 37, 53, .55));
  mix-blend-mode: multiply;
}
.team-portrait::after {
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, .2);
  box-shadow: inset 0 -1px 0 rgba(176, 122, 74, .55);
}

.team-card-head {
  position: absolute;
  z-index: 4;
  top: clamp(1rem, 2vw, 1.4rem);
  right: clamp(1rem, 2vw, 1.4rem);
  left: clamp(1rem, 2vw, 1.4rem);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin: 0;
}
.team-monogram {
  width: 56px;
  border-color: rgba(255, 255, 255, .54);
  color: #fff;
  background: rgba(25, 50, 72, .34);
  box-shadow: 0 8px 22px rgba(17, 31, 43, .16), inset 0 0 0 4px rgba(255, 255, 255, .07);
  text-shadow: 0 1px 10px rgba(15, 29, 40, .32);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}
.team-index {
  color: rgba(255, 255, 255, .78);
  font-size: clamp(3rem, 4.5vw, 4.7rem);
  text-shadow: 0 2px 18px rgba(15, 29, 40, .28);
}
.team-photo-note {
  position: absolute;
  z-index: 4;
  left: clamp(1.2rem, 2.4vw, 1.7rem);
  bottom: clamp(3.25rem, 6.5vw, 4.35rem);
  max-width: calc(100% - 2.5rem);
  margin: 0;
  color: rgba(255, 255, 255, .94);
  font-size: clamp(.58rem, .66vw, .68rem);
  font-weight: 650;
  letter-spacing: .14em;
  line-height: 1.35;
  text-shadow: 0 2px 13px rgba(15, 29, 40, .65);
  text-transform: uppercase;
}
.team-photo-note::before {
  content: "";
  display: inline-block;
  width: 1.3rem;
  height: 1px;
  margin: 0 .55rem .22em 0;
  background: var(--copper-bright);
  box-shadow: 0 1px 6px rgba(15, 29, 40, .4);
}

.team-card-copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: clamp(4.15rem, 6vw, 5rem) clamp(1.5rem, 2.8vw, 2.3rem) clamp(1.8rem, 3vw, 2.45rem);
}
.team-card-copy::before {
  content: "";
  width: 2.4rem;
  height: 2px;
  margin-bottom: 1rem;
  background: var(--copper);
}
.team-card h4 {
  font-size: clamp(1.55rem, 2vw, 1.95rem);
  letter-spacing: .015em;
}
.team-card .team-role { margin-bottom: .3rem; color: var(--copper-aa); }
.team-card .team-location { margin-bottom: 1.15rem; }
.team-card .team-proof { margin-bottom: 1.25rem; }
.team-card .team-bio {
  max-width: 63ch;
  color: rgba(52, 72, 78, .87);
  font-size: clamp(.82rem, .87vw, .91rem);
  line-height: 1.72;
}

@media (hover: hover) and (pointer: fine) {
  .team-card:hover {
    transform: translateY(-4px);
    box-shadow: inset 3px 0 0 rgba(176, 122, 74, .68), 0 30px 68px rgba(54, 73, 78, .14);
  }
  .team-card:hover .team-photo { transform: scale(1.045); filter: saturate(.9) contrast(1.06) sepia(.02); }
}

@media (max-width: 900px) and (min-width: 701px) {
  .team-card {
    display: grid;
    grid-template-columns: minmax(255px, .82fr) minmax(0, 1.18fr);
  }
  .team-portrait,
  .team-card:nth-child(2) .team-portrait {
    min-height: 100%;
    margin: 0 -3.25rem 0 0;
    aspect-ratio: auto;
    clip-path: polygon(0 0, 83% 0, 90% 15%, 84% 32%, 92% 50%, 84% 68%, 91% 84%, 82% 100%, 0 100%);
  }
  .team-card:nth-child(2) .team-portrait {
    clip-path: polygon(0 0, 88% 0, 82% 16%, 91% 33%, 84% 50%, 92% 67%, 84% 84%, 90% 100%, 0 100%);
  }
  .team-photo { object-position: 54% 50%; }
  .team-card:nth-child(2) .team-photo { object-position: 50% 46%; }
  .team-card-copy { padding: 2.65rem 2.25rem 2.65rem 4.15rem; }
  .team-photo-note { right: 3.4rem; bottom: 1.35rem; }
}

@media (max-width: 700px) {
  .team-portrait { min-height: 230px; }
  .team-card-copy { padding-top: clamp(3.75rem, 11vw, 4.5rem); }
}

@media (max-width: 520px) {
  .team-card,
  .team-card:nth-child(2) { border-radius: 28px 16px 26px 15px; }
  .team-portrait { aspect-ratio: 1 / 1; }
  .team-card-head { top: .9rem; right: .9rem; left: .9rem; }
  .team-monogram { width: 48px; font-size: 1.05rem; }
  .team-index { font-size: 3rem; }
  .team-photo-note { bottom: 3.2rem; font-size: .56rem; }
  .team-card-copy { padding-right: 1.25rem; padding-bottom: 1.7rem; padding-left: 1.25rem; }
  .team-card h4 { font-size: 1.48rem; }
  .team-card .team-bio { font-size: .82rem; line-height: 1.67; }
}

/* Copper-banded project stones and labels keyed directly to the primary CTA. */
.project-img,
.project:hover .project-img {
  filter: drop-shadow(0 19px 30px rgba(54, 73, 78, .19));
}
.project-img::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -3px;
  background: var(--copper-aa);
  clip-path: url(#pebble-1);
  pointer-events: none;
  transform: scale(1);
  transition: transform .72s var(--ease), background-color .3s ease;
}
.project:nth-child(2) .project-img::before { clip-path: url(#pebble-2); }
.project:nth-child(3) .project-img::before { clip-path: url(#pebble-3); }
.project-img img {
  position: relative;
  z-index: 1;
}
.project-tag {
  color: #fff;
  background: var(--copper-aa);
  border-color: rgba(255, 255, 255, .46);
  box-shadow: 0 7px 18px rgba(76, 45, 24, .22), inset 0 1px 0 rgba(255, 255, 255, .16);
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}

@media (hover: hover) and (pointer: fine) {
  .project:hover .project-img::before {
    background: var(--copper);
    transform: scale(1.028);
  }
}

@media (prefers-reduced-motion: reduce) {
  .team-photo { transition: none; transform: none; }
  .project-img::before { transition: none; transform: none; }
}

/* A clear, unmistakable form outcome instead of a small inline note. */
.field-submit {
  align-items: flex-start;
}
.form-status {
  flex: 1 0 100%;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: .9rem;
  width: 100%;
  max-height: 0;
  margin: 0;
  padding: 0 1.05rem;
  overflow: hidden;
  visibility: hidden;
  color: var(--ink);
  background: rgba(247, 248, 244, .96);
  border: 1px solid transparent;
  border-radius: 14px;
  box-shadow: none;
  opacity: 0;
  transform: translateY(-7px);
  transition:
    max-height .36s var(--ease),
    padding .3s var(--ease),
    margin .3s var(--ease),
    opacity .24s ease,
    transform .3s var(--ease),
    visibility 0s linear .36s;
}
.form-status.show {
  max-height: 12rem;
  margin-top: .15rem;
  padding: 1rem 1.05rem;
  visibility: visible;
  opacity: 1;
  transform: none;
  transition-delay: 0s;
}
.form-status-icon {
  position: relative;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--slate);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2), 0 7px 16px rgba(32, 58, 114, .13);
}
.form-status-icon::before {
  content: "i";
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
}
.form-status-copy {
  display: block;
  min-width: 0;
}
.form-status-copy strong {
  display: block;
  margin: 0 0 .12rem;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.2;
}
.form-status-copy > span {
  display: block;
  color: rgba(52, 72, 78, .88);
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.55;
}
.form-status[data-state="success"] {
  background: linear-gradient(135deg, rgba(215, 222, 210, .72), rgba(247, 248, 244, .98));
  border-color: rgba(32, 58, 114, .24);
  box-shadow: inset 4px 0 0 var(--copper-aa), 0 13px 28px rgba(32, 58, 114, .1);
}
.form-status[data-state="success"] .form-status-icon { background: var(--navy); }
.form-status[data-state="success"] .form-status-icon::before {
  content: "✓";
  font-family: var(--font-body);
  font-size: 1.25rem;
}
.form-status[data-state="error"] {
  background: rgba(255, 246, 244, .98);
  border-color: rgba(163, 70, 60, .32);
  box-shadow: inset 4px 0 0 #a3463c, 0 12px 26px rgba(103, 43, 37, .08);
}
.form-status[data-state="error"] .form-status-icon { background: #a3463c; }
.form-status[data-state="error"] .form-status-icon::before {
  content: "!";
  font-family: var(--font-body);
  font-size: 1.15rem;
}
.form-status[data-state="sending"] {
  border-color: rgba(176, 122, 74, .32);
  box-shadow: inset 4px 0 0 var(--copper-aa);
}
.form-status[data-state="sending"] .form-status-icon { background: var(--copper-aa); }
.form-status[data-state="sending"] .form-status-icon::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, .42);
  border-top-color: #fff;
  border-radius: 50%;
  animation: form-status-spin .75s linear infinite;
}
.form-status[data-state="info"] {
  border-color: rgba(115, 138, 141, .32);
  box-shadow: inset 4px 0 0 var(--slate);
}
.quote-form.is-sent button[type="submit"] {
  color: #fff;
  background: var(--navy);
  border-color: var(--navy);
  opacity: 1;
}
@keyframes form-status-spin { to { transform: rotate(360deg); } }

@media (max-width: 520px) {
  .form-status {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: .75rem;
    border-radius: 12px;
  }
  .form-status.show { padding: .9rem; }
  .form-status-icon { width: 38px; height: 38px; }
  .form-status-copy strong { font-size: 1rem; }
  .form-status-copy > span { font-size: .76rem; }
}

@media (prefers-reduced-motion: reduce) {
  .form-status[data-state="sending"] .form-status-icon::before { animation: none; }
}
