:root {
  --forest: #173f32;
  --forest-dark: #0d2b22;
  --sage: #dfe9df;
  --straw: #dcae55;
  --earth: #7c4f2e;
  --cream: #faf7ef;
  --paper: #ffffff;
  --ink: #1b2c25;
  --muted: #5b6d64;
  --line: #d8dfd8;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Segoe UI", Arial, sans-serif;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 100; padding: .75rem 1rem; color: #fff; background: var(--forest-dark); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(23,63,50,.12); backdrop-filter: blur(14px); }
.header-inner { width: min(calc(100% - 3rem), var(--max)); min-height: 82px; margin: 0 auto; display: flex; align-items: center; gap: 2rem; }
.main-nav { display: flex; align-items: center; gap: 2rem; }
.main-nav a { color: var(--muted); font-size: .94rem; font-weight: 700; text-decoration: none; text-underline-offset: .35rem; }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--forest); text-decoration: underline; text-decoration-color: var(--straw); text-decoration-thickness: 3px; }
.brand { margin-left: auto; display: inline-flex; align-items: center; }
.brand img { width: 142px; height: auto; }
.menu-button { display: none; width: 46px; height: 46px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; }
.menu-button > span:not(.sr-only) { width: 19px; height: 2px; margin: 4px auto; display: block; background: var(--forest); border-radius: 999px; }

.hero { width: min(calc(100% - 3rem), 1320px); margin: 0 auto; padding: clamp(3.5rem,7vw,7rem) 0; display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.25fr); align-items: center; gap: clamp(2.5rem,5vw,5rem); }
.eyebrow { margin: 0 0 1rem; color: var(--earth); font-size: .77rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
h1,h2,h3,p { overflow-wrap: break-word; }
h1,h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.035em; line-height: 1.06; }
h1 { max-width: 12ch; font-size: clamp(3.05rem,5.7vw,6rem); }
h2 { font-size: clamp(2.25rem,4vw,4.35rem); }
h3 { margin: .55rem 0 .45rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 500; }
.hero-lead { max-width: 40rem; margin: 1.6rem 0 0; color: var(--muted); font-size: clamp(1.05rem,1.4vw,1.2rem); }
.hero-actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.3rem; border: 1px solid transparent; border-radius: .45rem; font-weight: 800; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform 180ms ease, background 180ms ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-primary { color: #fff; background: var(--forest); box-shadow: 0 12px 28px rgba(23,63,50,.18); }
.button-primary:hover, .button-primary:focus-visible { background: var(--forest-dark); }
.button-quiet { color: var(--forest); background: #fff; border-color: var(--forest); }
.trust-line { margin: 1.25rem 0 0; padding-left: 1rem; color: var(--muted); border-left: 3px solid var(--straw); font-size: .92rem; }
.image-frame { position: relative; margin: 0; overflow: hidden; background: var(--sage); }
.image-frame img { width: 100%; height: auto; object-fit: contain; }
.image-frame figcaption { position: absolute; right: .65rem; bottom: .55rem; padding: .3rem .5rem; color: #fff; background: rgba(13,43,34,.82); border-radius: .2rem; font-size: .7rem; line-height: 1.1; }
.hero-image { clip-path: polygon(8% 0,100% 0,100% 92%,92% 100%,0 100%,0 8%); }

.field-section { padding: clamp(5rem,9vw,9rem) max(1.5rem,calc((100% - var(--max))/2)); background: var(--cream); }
.section-heading { max-width: 820px; }
.section-heading > p:last-child { max-width: 720px; margin: 1.6rem 0 0; color: var(--muted); font-size: 1.08rem; }
.field-cards { margin-top: 3rem; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.field-cards article { padding: 2rem; border-right: 1px solid var(--line); }
.field-cards article:first-child { padding-left: 0; }
.field-cards article:last-child { padding-right: 0; border-right: 0; }
.field-cards article > span { color: var(--earth); font-size: .75rem; font-weight: 800; letter-spacing: .15em; }
.field-cards p { margin: 0; color: var(--muted); }
.field-note { margin-top: 3.5rem; padding: 2rem 0 0; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(2rem,6vw,6rem); border-top: 4px solid var(--straw); }
.field-note h3 { max-width: 18ch; margin-top: 0; font-size: clamp(1.65rem,2.5vw,2.4rem); }
.field-note p { margin: 0 0 1rem; color: var(--muted); }

.perspective-section { width: min(calc(100% - 3rem),var(--max)); margin: 0 auto; padding: clamp(5rem,10vw,10rem) 0; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); align-items: center; gap: clamp(3rem,7vw,7rem); }
.conversation-image { border-radius: 0 5.5rem 0 0; }
.perspective-copy > p:not(.eyebrow) { margin: 1.6rem 0 0; color: var(--muted); font-size: 1.07rem; }
.fact-row { margin-top: 2rem; border-top: 1px solid var(--line); }
.fact-row div { padding: .9rem 0; display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; border-bottom: 1px solid var(--line); }
.fact-row strong { color: var(--earth); }
.fact-row span { color: var(--muted); }

.search-section { padding: clamp(5rem,9vw,8rem) max(1.5rem,calc((100% - var(--max))/2)); display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem,8vw,8rem); color: #fff; background: var(--forest); }
.search-section .eyebrow { color: #e9c778; }
.search-copy p { margin: 0 0 1rem; color: #e0ece6; font-size: 1.06rem; }
.text-link { display: inline-flex; gap: .65rem; margin-top: .8rem; color: #fff; font-weight: 800; text-underline-offset: .3rem; }
.work-strip { padding: 2rem max(1.5rem,calc((100% - var(--max))/2)); display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: var(--sage); }
.work-strip p { margin: 0; }
.work-strip a { color: var(--forest); font-weight: 800; white-space: nowrap; text-underline-offset: .25rem; }

.contact-section { padding: clamp(5rem,9vw,9rem) max(1.5rem,calc((100% - var(--max))/2)); display: grid; grid-template-columns: minmax(0,1fr) 320px; align-items: start; gap: clamp(2rem,5vw,5rem); background: #fff; }
.form-panel { min-width: 0; }
.form-panel h2 { margin-bottom: 2.4rem; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
legend { margin-bottom: .8rem; font-weight: 800; }
.choice-row { display: flex; flex-wrap: wrap; gap: .65rem; }
.choice-row label { cursor: pointer; }
.choice-row input { position: absolute; opacity: 0; }
.choice-row span { min-height: 46px; display: inline-flex; align-items: center; padding: .65rem 1rem; color: var(--muted); background: var(--cream); border: 1px solid var(--line); border-radius: .45rem; font-weight: 700; }
.choice-row input:checked + span { color: #fff; background: var(--forest); border-color: var(--forest); }
.choice-row input:focus-visible + span { outline: 3px solid rgba(220,174,85,.55); outline-offset: 3px; }
.field-grid { margin-top: 1.6rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.field-grid label { display: grid; gap: .45rem; font-weight: 750; }
.field-grid small { color: var(--muted); font-size: .78rem; font-weight: 500; }
.field-grid input,.field-grid textarea { width: 100%; color: var(--ink); background: var(--cream); border: 1px solid var(--line); border-radius: .45rem; outline: none; }
.field-grid input { min-height: 52px; padding: 0 .9rem; }
.field-grid textarea { min-height: 150px; padding: .9rem; resize: vertical; }
.field-grid input:focus,.field-grid textarea:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(23,63,50,.12); }
.message-field { grid-column: 1/-1; }
.personal-details { margin-top: 1.2rem; padding: .85rem 1rem 1rem; border: 1px solid var(--line); border-radius: .45rem; background: var(--cream); }
.personal-details summary { cursor: pointer; color: var(--forest); font-weight: 750; }
.personal-details .field-grid { margin-top: 1rem; }
.honeypot { position: absolute; left: -10000px; }
.privacy-check { margin: 1.2rem 0; display: flex; align-items: flex-start; gap: .7rem; color: var(--muted); font-size: .92rem; }
.privacy-check input { width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--forest); }
.privacy-check a { color: var(--forest); font-weight: 750; }
.button-submit { color: #fff; background: var(--earth); border: 0; }
.button-submit:hover,.button-submit:focus-visible { background: #5f3b23; }
.form-status { min-height: 1.5rem; margin: 1rem 0 0; color: var(--forest); font-weight: 700; }
.personal-contact { position: sticky; top: 112px; padding: 2rem; color: #fff; background: var(--forest); border-left: 7px solid var(--straw); }
.personal-contact .contact-kicker { margin: 0 0 1rem; color: #d8e9df; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.personal-contact h2 { margin: 0; font-size: 2.2rem; }
.personal-contact p { margin: .5rem 0 1.3rem; color: #dce9e3; }
.personal-contact a { display: block; width: fit-content; margin: .5rem 0; color: #fff; font-weight: 800; text-underline-offset: .22rem; }
.personal-contact .contact-note { margin: 1.5rem 0 0; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.25); font-family: Georgia,"Times New Roman",serif; font-size: 1.08rem; }
.site-footer { min-height: 110px; padding: 1.5rem max(1.5rem,calc((100% - var(--max))/2)); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; color: #d8e9df; background: var(--forest-dark); font-size: .9rem; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.site-footer a { color: #fff; text-underline-offset: .25rem; }
:focus-visible { outline: 3px solid rgba(220,174,85,.7); outline-offset: 4px; }

@media (max-width:900px) {
  .header-inner { width: min(calc(100% - 2rem),var(--max)); min-height: 72px; }
  .menu-button { display: block; }
  .main-nav { position: absolute; top: 72px; right: 1rem; left: 1rem; padding: 1rem; display: none; align-items: stretch; flex-direction: column; gap: 0; background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 36px rgba(23,63,50,.14); }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: .8rem; }
  .hero,.perspective-section,.search-section,.contact-section,.field-note { grid-template-columns: 1fr; }
  .hero-image { order: -1; }
  .hero-copy,.perspective-copy { max-width: 700px; }
  .field-cards { grid-template-columns: 1fr; }
  .field-cards article,.field-cards article:first-child,.field-cards article:last-child { padding: 1.4rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .field-cards article:last-child { border-bottom: 0; }
  .personal-contact { position: static; max-width: 520px; }
}

@media (max-width:620px) {
  .header-inner { width: calc(100% - 1.5rem); }
  .brand img { width: 120px; }
  .hero,.perspective-section { width: calc(100% - 2rem); }
  .hero { gap: 2rem; padding: 1.4rem 0 4rem; }
  .hero-image,.conversation-image { clip-path: none; border-radius: .65rem; }
  h1 { font-size: clamp(2.55rem,13vw,4rem); }
  h2 { font-size: clamp(2.05rem,10vw,3.15rem); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .fact-row div { grid-template-columns: 1fr; gap: .2rem; }
  .work-strip { align-items: flex-start; flex-direction: column; }
  .work-strip a { white-space: normal; }
  .field-grid { grid-template-columns: 1fr; }
  .choice-row { display: grid; grid-template-columns: 1fr 1fr; }
  .choice-row label:last-child { grid-column: 1/-1; }
  .choice-row span { width: 100%; justify-content: center; text-align: center; }
  .contact-section { padding-right: 1rem; padding-left: 1rem; }
  .form-panel,.personal-contact { width: 100%; }
  .site-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition-duration: .01ms !important; }
}
