:root {
  --paper: #f3f0e9;
  --white: #fbfaf7;
  --ink: #20221f;
  --muted: #666962;
  --line: #d7d2c8;
  --sand: #e8dfcf;
  --dark: #22251f;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
.wrap { width: min(calc(100% - 56px), var(--max)); margin-inline: auto; }
.skip-link { position: fixed; left: 14px; top: -70px; z-index: 100; padding: 10px 14px; background: #111; color: #fff; }
.skip-link:focus { top: 14px; }

.site-header { height: 74px; background: rgba(251,250,247,.98); border-bottom: 1px solid rgba(32,34,31,.09); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: flex; align-items: baseline; gap: 7px; white-space: nowrap; text-decoration: none; font-size: 23px; line-height: 1; letter-spacing: -.025em; }
.brand strong { font-weight: 650; }
.brand span { font-weight: 380; color: #74766f; }
.site-header nav { display: flex; gap: 32px; align-items: center; }
.site-header nav a { text-decoration: none; font-size: 14px; color: #30322f; }
.site-header nav a:hover, .site-header nav a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }

.hero { min-height: 610px; display: flex; align-items: flex-end; position: relative; overflow: hidden; color: #fff; background: #6b6458; }
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(18,20,17,.67) 0%, rgba(18,20,17,.42) 38%, rgba(18,20,17,.12) 70%, rgba(18,20,17,.02) 100%),
    url('/assets/woodstock-sunrise.jpg.jpg');
  background-size: cover;
  background-position: center 53%;
}
.hero-inner { position: relative; z-index: 1; padding-block: 92px 82px; }
.hero-location { margin: 0 0 18px; color: rgba(255,255,255,.79); font-size: 11px; font-weight: 650; letter-spacing: .15em; text-transform: uppercase; }
.hero h1 { max-width: 790px; margin: 0 0 22px; font-size: clamp(48px, 5.6vw, 72px); line-height: 1.04; letter-spacing: -.042em; font-weight: 440; text-wrap: balance; }
.hero-copy { max-width: 620px; margin: 0; color: rgba(255,255,255,.92); font-size: clamp(18px, 1.55vw, 22px); line-height: 1.5; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 31px; }
.button { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; padding: 11px 21px; border: 1px solid currentColor; border-radius: 1px; text-decoration: none; font-size: 14px; font-weight: 600; }
.hero .button-light { background: var(--sand); border-color: var(--sand); color: var(--ink); }
.hero .button-light:hover, .hero .button-light:focus-visible { background: #f2eadc; }
.button-outline { color: #fff; border-color: rgba(255,255,255,.74); background: rgba(20,22,19,.16); }
.button-outline:hover, .button-outline:focus-visible { background: #fff; color: var(--ink); }

.intro { padding: 108px 0; background: var(--white); }
.intro-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(350px,.92fr); gap: 88px; align-items: center; }
.eyebrow { margin: 0 0 19px; color: #867b68; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
h2, h3 { margin-top: 0; }
h2 { margin-bottom: 24px; font-size: clamp(36px, 4vw, 54px); line-height: 1.09; letter-spacing: -.035em; font-weight: 450; text-wrap: balance; }
.intro-copy > h2 { max-width: 650px; }
.lead { max-width: 625px; margin: 0; color: #5f625d; font-size: 18px; line-height: 1.62; }
.values { display: grid; grid-template-columns: repeat(3,1fr); gap: 25px; margin-top: 54px; padding-top: 24px; border-top: 1px solid var(--line); }
.values article > span { display: block; margin-bottom: 13px; color: #9a8d77; font-size: 11px; }
.values h3 { margin-bottom: 8px; font-size: 14px; line-height: 1.3; font-weight: 650; }
.values p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.local-photo { width: 100%; aspect-ratio: 4 / 5; min-height: 500px; object-fit: cover; object-position: 42% center; }

.work { padding: 106px 0 114px; background: #ece9e2; }
.section-top { display: grid; grid-template-columns: .8fr 2fr; gap: 60px; margin-bottom: 60px; }
.section-top .eyebrow { padding-top: 9px; }
.section-top h2 { max-width: 760px; margin-bottom: 0; }
.project-row { display: grid; grid-template-columns: 54px minmax(230px,.82fr) minmax(320px,1.18fr); gap: 38px; padding: 42px 0 47px; border-top: 1px solid #c9c5bb; }
.project-row:last-child { border-bottom: 1px solid #c9c5bb; }
.project-number { padding-top: 4px; color: #8b8b85; font-size: 12px; }
.project-status { margin: 0 0 9px; color: #857a68; font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.project-title h3 { margin: 0; font-size: clamp(26px,2.5vw,36px); line-height: 1.14; letter-spacing: -.03em; font-weight: 500; }
.project-detail > p:first-child { margin-top: 0; color: #4f514d; font-size: 17px; line-height: 1.58; }
.project-meta { margin: 21px 0 16px; color: #777973; font-size: 12px; line-height: 1.65; }
.text-link { display: inline-block; text-decoration: none; border-bottom: 1px solid #888981; padding-bottom: 2px; font-size: 14px; }
.text-link:hover, .text-link:focus-visible { border-color: var(--ink); }

.ownership { padding: 100px 0; background: var(--paper); }
.ownership-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 96px; align-items: start; }
.ownership h2 { max-width: 640px; margin-bottom: 0; }
.ownership-grid > div:last-child { padding-top: 31px; color: #5c5f59; font-size: 18px; line-height: 1.62; }
.ownership-grid > div:last-child p:first-child { margin-top: 0; }
.ownership-grid > div:last-child p:last-child { margin-bottom: 0; color: var(--ink); }

.contact { padding: 92px 0 98px; background: var(--dark); color: #f5f2eb; }
.contact-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 88px; align-items: end; }
.contact .eyebrow { color: #c0b49f; }
.contact h2 { max-width: 610px; margin-bottom: 0; }
.contact-copy > p:first-child { margin-top: 0; max-width: 510px; color: #c7cac4; font-size: 18px; line-height: 1.58; }
.contact .button-light { margin-top: 13px; color: #f5f2eb; border-color: #f5f2eb; }
.contact .button-light:hover, .contact .button-light:focus-visible { background: #f5f2eb; color: var(--dark); }
.small { margin-top: 20px; color: #989c95 !important; font-size: 12px !important; }

.site-footer { background: var(--white); }
.footer-inner { min-height: 116px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 28px; align-items: center; color: #777973; font-size: 12px; }
.brand-footer { color: var(--ink); font-size: 17px; }
.footer-inner p { margin: 0; }
.footer-inner p:last-child { text-align: right; }

@media (max-width: 900px) {
  .wrap { width: min(calc(100% - 40px), var(--max)); }
  .intro-grid, .section-top, .ownership-grid, .contact-grid { grid-template-columns: 1fr; }
  .intro-grid { gap: 54px; }
  .local-photo { aspect-ratio: 16 / 10; min-height: 0; object-position: center 46%; }
  .section-top { gap: 7px; }
  .project-row { grid-template-columns: 42px minmax(195px,.8fr) 1.2fr; gap: 23px; }
  .ownership-grid, .contact-grid { gap: 32px; }
  .ownership-grid > div:last-child { padding-top: 0; }
}

@media (max-width: 680px) {
  .wrap { width: min(calc(100% - 34px), var(--max)); }
  .site-header { height: 66px; }
  .header-inner { gap: 14px; }
  .brand { font-size: 18px; gap: 5px; }
  .site-header nav { gap: 18px; }
  .site-header nav a { font-size: 12px; }
  .site-header nav a:nth-child(2) { display: none; }

  .hero { min-height: 570px; }
  .hero::before {
    background-image:
      linear-gradient(180deg, rgba(15,17,14,.08) 0%, rgba(15,17,14,.18) 38%, rgba(15,17,14,.72) 100%),
      url('/assets/woodstock-sunrise.jpg.jpg');
    background-position: 41% center;
  }
  .hero-inner { padding-block: 56px 50px; }
  .hero-location { margin-bottom: 14px; font-size: 10px; }
  .hero h1 { max-width: 345px; margin-bottom: 17px; font-size: clamp(38px,10.2vw,44px); line-height: 1.06; letter-spacing: -.034em; }
  .hero-copy { max-width: 350px; font-size: 17px; line-height: 1.5; }
  .hero-actions { margin-top: 25px; gap: 10px; }
  .button { min-height: 46px; padding: 10px 15px; font-size: 13px; }

  .intro, .work, .ownership { padding-block: 74px; }
  h2 { font-size: clamp(30px,8.6vw,37px); line-height: 1.12; letter-spacing: -.028em; }
  .lead { font-size: 17px; line-height: 1.6; }
  .values { grid-template-columns: 1fr; gap: 0; margin-top: 38px; }
  .values article { padding: 18px 0 21px; border-bottom: 1px solid var(--line); }
  .values article > span { margin-bottom: 7px; }
  .local-photo { aspect-ratio: 4 / 3; object-position: 45% center; }

  .project-row { grid-template-columns: 31px 1fr; gap: 12px; padding-block: 32px; }
  .project-detail { grid-column: 2; }
  .project-title h3 { font-size: 27px; }
  .project-detail > p:first-child { font-size: 16px; }

  .contact { padding-block: 72px; }
  .footer-inner { grid-template-columns: 1fr; gap: 7px; padding-block: 26px; }
  .footer-inner p:last-child { text-align: left; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
