:root{
  --sky: #F2ECD8;
  --canopy-deep: #14301F;
  --canopy: #1F5136;
  --leaf: #3C8858;
  --leaf-light: #8CB43E;
  --sand: #F5EFDD;
  --cream: #F5F1E2;
  --ink: #22301F;
  --ink-soft: #52604B;
  --line: rgba(34,48,31,0.14);
  --line-dark: rgba(245,241,226,0.16);
  --radius: 14px;
  --shadow: 0 20px 44px -22px rgba(20,48,31,0.45);
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Work Sans", "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
  --maxw: 1040px;
}

*,*::before,*::after{ box-sizing:border-box; }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

body{
  margin:0; background:var(--sand); color:var(--ink); font-family:var(--font-body);
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

h1,h2{ font-family:var(--font-display); color:var(--canopy-deep); margin:0 0 .45em; line-height:1.1; font-weight:600; }
h1{ font-size:clamp(2.2rem, 5vw, 3.3rem); }
h2{ font-size:clamp(1.5rem, 2.6vw, 1.9rem); }
p{ margin:0 0 1em; color:var(--ink-soft); }
a{ color:var(--leaf); }

/* Topbar */
.topbar{ background:var(--canopy-deep); padding:14px 0; }
.topbar-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.brand{ display:flex; align-items:center; gap:10px; }
.brand-mark svg{ width:26px; height:26px; fill:var(--leaf-light); }
.brand-text{ font-family:var(--font-display); font-weight:600; color:var(--cream); font-size:1rem; }
.topbar-tag{ font-family:var(--font-mono); font-size:.76rem; color:rgba(245,241,226,0.55); letter-spacing:.03em; }

/* Hero */
.hero{ position:relative; overflow:hidden; background:linear-gradient(180deg, var(--sky) 0%, var(--sky) 55%, #E4E4C4 100%); padding:90px 0 240px; }
.landscape-art{ position:absolute; left:0; right:0; bottom:0; z-index:0; height:210px; opacity:.9; pointer-events:none; }
.landscape-art svg{ width:100%; height:100%; display:block; }
.sun{ fill:var(--leaf-light); opacity:.5; }
.ridge-far{ fill:#DCE0BE; }
.canopy-line circle{ fill:var(--canopy); opacity:.85; }
.paddy-block{ fill:#CFDBA0; }
.paddy-rows path{ stroke:#B9C787; stroke-width:2; opacity:.7; }
.birds path{ fill:none; stroke:var(--canopy-deep); stroke-width:2.5; opacity:.4; stroke-linecap:round; }

.hero-inner{ position:relative; z-index:1; max-width:640px; text-align:left; }
.seal-badge{ display:inline-flex; margin-bottom:22px; }
.seal-badge svg{ width:44px; height:44px; fill:var(--canopy); }
.eyebrow{ font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; color:var(--leaf); font-weight:500; margin:0 0 .8em; }
.hero-lede{ font-size:1.08rem; max-width:540px; }

.focus-tags{ display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 28px; }
.focus-tags span{
  font-family:var(--font-mono); font-size:.78rem; padding:8px 15px; border-radius:999px;
  background:rgba(20,48,31,0.06); border:1px solid var(--line); color:var(--canopy-deep);
}

.btn{
  display:inline-block; text-decoration:none; font-weight:600; font-size:.98rem;
  padding:14px 28px; border-radius:999px; background:var(--canopy-deep); color:var(--cream);
  transition:background .2s ease, transform .2s ease;
}
.btn:hover{ background:var(--canopy); transform:translateY(-1px); }

/* Locate section */
.locate{ padding:70px 0 80px; background:var(--sand); }
.locate-inner{ display:grid; grid-template-columns:1fr 1.15fr; gap:48px; align-items:center; }
.locate-note{ font-size:.92rem; color:var(--ink-soft); }
.map-frame{
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow);
  aspect-ratio:4/3; background:var(--sky);
}
.map-frame iframe{ width:100%; height:100%; border:0; display:block; filter:saturate(0.9) contrast(1.02); }

/* Footer */
.site-footer{ background:var(--canopy-deep); padding:26px 0; }
.footer-legal{ font-family:var(--font-mono); font-size:.72rem; line-height:1.8; color:rgba(245,241,226,0.5); margin:0; text-align:center; }

@media (max-width: 800px){
  .locate-inner{ grid-template-columns:1fr; }
  .hero{ padding:70px 0 160px; }
  .landscape-art{ height:150px; }
  .locate{ padding:50px 0 60px; }
}

@media (max-width: 480px){
  .hero{ padding:60px 0 120px; }
  .landscape-art{ height:110px; }
}

@media (max-width: 480px){
  body{ font-size:16px; }
  .topbar-inner{ flex-direction:column; align-items:flex-start; }
}
