
:root{--brown:#695049;--ink:#302c2a;--cream:#f7f4f1;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-family:Arial,Helvetica,sans-serif;line-height:1.7}header{height:112px;display:flex;align-items:center;justify-content:space-between;padding:18px 6vw;background:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid #eee9e5}header img{width:190px;display:block}nav{display:flex;gap:28px}nav a,.text-link{color:var(--ink);text-decoration:none;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.hero{text-align:center;padding:105px 24px 85px}.eyebrow{color:var(--brown);font-size:11px;letter-spacing:.24em;font-weight:700;margin:0 0 22px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--brown);line-height:1.12}h1{font-size:clamp(42px,6vw,76px);margin:0 auto 28px;max-width:950px}h2{font-size:clamp(36px,4vw,55px);margin:0 0 28px}h3{font-size:30px;margin:24px 0 12px}.tagline{font-family:Georgia,'Times New Roman',serif;font-size:20px;margin:0 auto 38px;max-width:720px}.button{display:inline-block;border:1px solid var(--brown);padding:13px 23px;color:var(--brown);text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.feature-image{width:min(1050px,88vw);margin:0 auto 120px}.feature-image img{width:100%;height:min(78vh,800px);object-fit:cover;object-position:center 45%;display:block}.split{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;background:var(--cream);padding:100px 8vw}.split .copy{max-width:570px;margin-left:auto}.split img{width:100%;height:650px;object-fit:cover}.projects{padding:120px 7vw}.projects>h2,.projects>.eyebrow{text-align:center}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin-top:60px}.project-grid img{width:100%;height:620px;object-fit:cover}.project-grid article p{max-width:560px}.about{padding:120px 8vw;background:var(--cream)}.about>div{max-width:760px;margin:auto;text-align:center}.cta{padding:125px 24px;text-align:center;background:var(--brown);color:white}.cta h2{color:white;max-width:850px;margin:0 auto 28px}.cta .eyebrow{color:white}.cta>p:not(.eyebrow):not(.note){max-width:660px;margin:0 auto 34px}.button.light{border-color:white;color:white}.note{font-size:11px;opacity:.7;margin-top:24px}footer{text-align:center;padding:60px 24px 45px}footer img{width:220px}footer p{font-size:12px;margin:5px 0}@media(max-width:760px){header{height:auto;padding:14px 20px;align-items:flex-start}header img{width:145px}nav{display:none}.hero{padding:70px 22px 60px}.desktop{display:none}.feature-image{width:88vw;margin-bottom:75px}.feature-image img{height:auto}.split{grid-template-columns:1fr;padding:70px 7vw}.split .copy{order:2}.split img{height:auto;max-height:650px}.project-grid{grid-template-columns:1fr;gap:65px}.project-grid img{height:auto}.projects,.about{padding:80px 7vw}.cta{padding:85px 24px}}

/* Keep the philosophy heading on one line on desktop/tablet. */
.split .copy h2 { white-space: nowrap; font-size: clamp(2rem, 3.2vw, 3.65rem); }
@media (max-width: 520px) { .split .copy h2 { white-space: normal; } }


    /* About page */
    .about-page { display:none; }
    .about-page.active { display:block; }
    .home-page.hidden { display:none; }
    .about-hero { padding: 92px 6vw 55px; text-align:center; display:flex; flex-direction:column; align-items:center; }
    .about-hero h1 { font-family: Georgia, 'Times New Roman', serif; font-weight:400; font-size:clamp(3rem,6vw,5.7rem); line-height:1.12; margin:12px auto 20px; color:var(--brown); text-align:center; }
    .about-story { max-width:1180px; margin:0 auto; padding:35px 6vw 105px; display:grid; grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr); gap:8vw; align-items:start; }
    .about-story-photo { position:sticky; top:145px; }
    .about-story-photo img { width:100%; display:block; aspect-ratio:4/5; object-fit:cover; }
    .about-story-copy { max-width:650px; color:var(--ink); }
    .about-story-copy h2 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.25rem,4vw,4rem); font-weight:400; line-height:1.08; margin:8px 0 30px; }
    .about-story-copy h3 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.9rem,3vw,2.8rem); font-weight:400; margin:58px 0 22px; color:var(--brown); }
    .about-story-copy p { font-size:1.05rem; line-height:1.9; margin:0 0 22px; }
    .about-story-copy .closing { font-family:inherit; font-size:1.05rem; line-height:1.9; margin-top:22px; margin-bottom:22px; color:var(--ink); font-weight:400; }
    @media (max-width:760px) {
      .about-hero { padding-top:65px; }
      .about-story { grid-template-columns:1fr; gap:45px; padding-bottom:75px; }
      .about-story-photo { position:static; max-width:520px; margin:auto; }
    }


    .about-story-copy strong { color:var(--brown); font-weight:700; }
    .about-story-copy .closing strong { color:var(--brown); font-weight:700; }


    /* Working Together page */
    .working-page { display:none; }
    .working-page.active { display:block; }
    .working-hero { max-width:900px; margin:0 auto; padding:92px 6vw 58px; text-align:center; }
    .working-hero h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.6rem,4.5vw,4.5rem); font-weight:400; line-height:1.12; color:var(--brown); margin:12px auto 28px; }
    .working-hero p { max-width:610px; margin:0 auto 20px; font-size:1.05rem; line-height:1.9; color:var(--ink); }
    .working-hero strong { color:var(--brown); }
    .process-section { background:var(--cream); padding:85px 6vw 95px; }
    .process-inner { max-width:1120px; margin:0 auto; }
    .process-inner > h2 { text-align:center; font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.4rem,4vw,4rem); font-weight:400; color:var(--brown); margin:0 0 55px; }
    .process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
    .process-step .number { font-size:.78rem; letter-spacing:.16em; color:var(--brown); margin-bottom:15px; }
    .process-step h3 { font-family:Georgia,'Times New Roman',serif; font-size:1.8rem; font-weight:400; color:var(--brown); margin:0 0 16px; }
    .process-step p { font-size:1rem; line-height:1.85; margin:0; color:var(--ink); }
    .working-cta { text-align:center; padding:95px 6vw 105px; }
    .working-cta h2 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.4rem,4.5vw,4.5rem); font-weight:400; line-height:1.1; color:var(--brown); margin:0 auto 20px; }
    .working-cta p { font-size:1.05rem; margin:0 0 30px; color:var(--ink); }
    @media (max-width:760px) {
      .working-hero { padding-top:65px; }
      .process-grid { grid-template-columns:1fr; gap:40px; }
      .process-section { padding-top:65px; padding-bottom:70px; }
    }


    /* Portfolio page */
    .portfolio-page { display:none; }
    .portfolio-page.active { display:block; }
    .portfolio-hero { padding:92px 6vw 68px; text-align:center; }
    .portfolio-hero h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(3rem,6vw,5.7rem); font-weight:400; color:var(--brown); margin:12px 0 18px; }
    .portfolio-hero p { max-width:600px; margin:0 auto; font-size:1.05rem; line-height:1.85; color:var(--ink); }
    .portfolio-list { max-width:1180px; margin:0 auto; padding:10px 6vw 105px; }
    .portfolio-project { margin-bottom:95px; }
    .portfolio-project img { width:100%; display:block; aspect-ratio:16/10; object-fit:cover; }
    .portfolio-project-copy { max-width:720px; padding-top:28px; }
    .portfolio-project:nth-child(even) .portfolio-project-copy { margin-left:auto; text-align:right; }
    .portfolio-project .number { font-size:.76rem; letter-spacing:.16em; color:var(--brown); margin-bottom:10px; }
    .portfolio-project h2 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.1rem,3.8vw,3.7rem); font-weight:400; color:var(--brown); margin:0 0 15px; }
    .portfolio-project p { font-size:1.02rem; line-height:1.85; color:var(--ink); margin:0; }
    @media (max-width:760px) {
      .portfolio-hero { padding-top:65px; }
      .portfolio-project { margin-bottom:65px; }
      .portfolio-project:nth-child(even) .portfolio-project-copy { margin-left:0; text-align:left; }
    }


    .portfolio-project-copy,
    .portfolio-project:nth-child(even) .portfolio-project-copy {
      margin-left:auto;
      margin-right:auto;
      text-align:center;
    }
    .portfolio-gallery {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:22px;
      margin-top:34px;
    }
    .portfolio-gallery img {
      width:100%;
      height:100%;
      min-height:420px;
      aspect-ratio:4/5;
      object-fit:cover;
      display:block;
    }
    .portfolio-gallery .wide {
      grid-column:1 / -1;
      aspect-ratio:16/9;
      min-height:0;
    }
    @media (max-width:760px) {
      .portfolio-gallery { grid-template-columns:1fr; gap:16px; }
      .portfolio-gallery .wide { grid-column:auto; aspect-ratio:4/5; }
      .portfolio-gallery img { min-height:0; }
      .portfolio-project:nth-child(even) .portfolio-project-copy { text-align:center; }
    }


/* Version 24 Portfolio refinements */
.portfolio-hero,
.portfolio-project-copy {
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.portfolio-list {
  margin-left:auto !important;
  margin-right:auto !important;
}
.portfolio-project-copy {
  max-width:720px;
  padding-top:0 !important;
  padding-bottom:34px;
}
.portfolio-project + .portfolio-project {
  padding-top:90px;
  border-top:1px solid rgba(105,80,73,.18);
}
.portfolio-main-natural {
  display:block;
  width:min(100%, 900px);
  height:auto !important;
  margin:0 auto;
  aspect-ratio:auto !important;
  object-fit:contain !important;
}
.rustic-project .natural-gallery {
  align-items:start;
}
.rustic-project .natural-gallery img,
.rustic-project .natural-gallery img.wide-natural {
  width:100%;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  display:block;
}
.rustic-project .natural-gallery img.wide-natural {
  grid-column:1 / -1;
  width:min(100%, 900px);
  margin-left:auto;
  margin-right:auto;
}
@media (max-width:760px) {
  .rustic-project .natural-gallery img.wide-natural {
    grid-column:auto;
    width:100%;
  }
}

/* Version 25 Wyatt Run sequence */
.portfolio-gallery-sequence {
  max-width:900px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:start;
}
.portfolio-gallery-sequence img {
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  object-fit:contain;
}
.portfolio-gallery-sequence img:nth-child(1),
.portfolio-gallery-sequence img:nth-child(4) {
  grid-column:1 / -1;
  width:min(100%, 900px);
  margin:0 auto;
}
@media (max-width:760px) {
  .portfolio-gallery-sequence { grid-template-columns:1fr; gap:16px; }
  .portfolio-gallery-sequence img:nth-child(1),
  .portfolio-gallery-sequence img:nth-child(4) { grid-column:auto; width:100%; }
}

/* Version 26: force Portfolio title and intro to true page center */
.portfolio-hero {
  width:100%;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.portfolio-hero .eyebrow,
.portfolio-hero h1,
.portfolio-hero p {
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}




/* Version 31 portfolio photo-order and crop fixes */
.rustic-project .portfolio-gallery-sequence img {
  order: initial !important;
}
.farm-project .portfolio-gallery {
  align-items:start;
}
.farm-project .portfolio-gallery img.farm-hero-full {
  grid-column:1 / -1;
  display:block;
  width:min(100%, 760px);
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  margin:0 auto;
}
.farm-project .portfolio-gallery img.kitchen-wide {
  grid-column:1 / -1;
  width:100%;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
}
@media (max-width:760px) {
  .farm-project .portfolio-gallery img.farm-hero-full,
  .farm-project .portfolio-gallery img.kitchen-wide {
    grid-column:auto;
    width:100%;
    height:auto !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
  }
}



/* Version 33 Farmhouse lead-photo layout */
.farm-project .portfolio-gallery img.farm-horizontal {
  grid-column:1 / -1 !important;
  display:block;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  margin:0 auto;
}



/* Version 34 approved Willow Creek layout */
.farm-project .portfolio-gallery img.farm-lead {
  grid-column: 1 / -1 !important;
  display: block;
  width: min(100%, 900px) !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin: 0 auto;
}



/* Version 37 Contact Page */
.contact-page {
  display:none;
  background:#fff;
  min-height:70vh;
}
.contact-page.active {
  display:block;
}
.contact-hero {
  max-width:820px;
  margin:0 auto;
  padding:92px 6vw 46px;
  text-align:center;
}
.contact-hero .eyebrow {
  color:var(--brown);
  letter-spacing:.22em;
  font-size:.78rem;
  margin-bottom:16px;
}
.contact-hero h1 {
  margin:0 0 18px;
  color:var(--brown);
  font-family:Georgia, 'Times New Roman', serif;
  font-size:clamp(2.8rem,5vw,5rem);
  font-weight:400;
  line-height:1.05;
}
.contact-hero p {
  max-width:620px;
  margin:0 auto;
  color:var(--ink);
  font-size:1.05rem;
  line-height:1.9;
}
.contact-content {
  max-width:1080px;
  margin:0 auto;
  padding:28px 6vw 100px;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:72px;
  align-items:start;
}
.contact-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 20px;
}
.form-field {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.form-field-full {
  grid-column:1 / -1;
}
.contact-form label {
  color:var(--brown);
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(105,80,73,.35);
  background:#fff;
  padding:13px 14px;
  font:inherit;
  color:var(--ink);
  border-radius:0;
  outline:none;
}
.contact-form textarea {
  resize:vertical;
  min-height:150px;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color:var(--brown);
}
.contact-submit {
  grid-column:1 / -1;
  justify-self:start;
  border:1px solid var(--brown);
  background:#fff;
  color:var(--brown);
  padding:13px 24px;
  font-size:.9rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.contact-submit:hover {
  background:var(--brown);
  color:#fff;
}
.contact-details {
  background:var(--cream);
  padding:36px 34px;
}
.contact-details h2 {
  margin:0 0 18px;
  color:var(--brown);
  font-family:Georgia, 'Times New Roman', serif;
  font-size:2rem;
  font-weight:400;
  line-height:1.2;
}
.contact-details p {
  color:var(--ink);
  line-height:1.8;
  margin:0 0 16px;
}
.contact-note {
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid rgba(105,80,73,.2);
  color:#7b6d67;
  font-size:.92rem;
  line-height:1.6;
}
@media (max-width:780px) {
  .contact-content {
    grid-template-columns:1fr;
    gap:42px;
  }
  .contact-form {
    grid-template-columns:1fr;
  }
  .form-field-full,
  .contact-submit {
    grid-column:auto;
  }
}



/* Version 42 Portfolio intro */
.portfolio-hero .portfolio-intro-line {
  max-width: 900px !important;
  white-space: nowrap;
}
@media (max-width: 760px) {
  .portfolio-hero .portfolio-intro-line {
    max-width: 620px !important;
    white-space: normal;
  }
}



/* Version 44 Farmhouse closing layout */
.farm-project .portfolio-gallery img.kitchen-wide {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}


html{scroll-behavior:smooth}#inquiry-form{scroll-margin-top:110px}@media(max-width:760px){nav,.nav{gap:12px!important;flex-wrap:wrap;justify-content:center}.portfolio-hero .portfolio-intro-line{white-space:normal!important;max-width:560px!important}.contact-hero{padding-top:68px}}
/* Inquiry form delivery states */
.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.form-status {
  grid-column: 1 / -1;
  min-height: 0;
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
}

.form-status.success {
  margin-bottom: 4px;
  color: var(--brown);
}

.form-status.error {
  margin-bottom: 4px;
  color: #7a3f39;
}

.contact-submit:disabled {
  cursor: wait;
  opacity: 0.7;
}


/* Final QA: responsive navigation and keyboard focus */
.nav-toggle {
  display: none;
  border: 0;
  background: transparent;
  color: var(--brown);
  font: inherit;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 10px 0 10px 14px;
  cursor: pointer;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--brown);
  outline-offset: 3px;
}

@media (max-width:760px) {
  header {
    position: sticky;
    align-items: center;
  }

  .nav-toggle {
    display: block;
  }

  header nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0 !important;
    padding: 10px 20px 18px;
    background: #fff;
    border-top: 1px solid #eee9e5;
    border-bottom: 1px solid #eee9e5;
    box-shadow: 0 10px 24px rgba(48,44,42,.06);
  }

  header nav.open {
    display: flex;
  }

  header nav a {
    display: block;
    padding: 10px 0;
    text-align: right;
  }
}
