:root{
  --green:#7C8B63;
  --green-deep:#5E6E48;
  --green-darkest:#3E4A2E;
  --paper:#FBF7EC;
  --ink:#2C2A24;
  --honey:#D4820A;
  --measure:62ch;
}

*,*::before,*::after{box-sizing:border-box;}
html,body{max-width:100%;overflow-x:hidden;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:20px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:break-word;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block;}
a{color:inherit;}

.section-label{
  font-family:"Jost",sans-serif;
  text-transform:uppercase;
  letter-spacing:0.3em;
  font-size:0.72rem;
  font-weight:400;
  color:var(--green-deep);
  margin:0 0 1.4rem;
}
.section-label.light{color:var(--paper);opacity:.9;}

/* ---------- HEADER ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(251,247,236,0);
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
}
.site-header.scrolled{
  background:rgba(251,247,236,.96);
  box-shadow:0 1px 0 rgba(94,110,72,.18), 0 8px 30px rgba(62,74,46,.06);
}
.header-inner{
  max-width:1200px;margin:0 auto;
  padding:1.15rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.wordmark{
  font-family:"Jost",sans-serif;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:0.28em;
  font-size:1.02rem;
  font-weight:400;
  color:#fff;
  white-space:nowrap;
  transition:color .35s ease;
  min-width:0;
}
.site-header.scrolled .wordmark{color:var(--green-deep);}
.primary-nav ul{
  list-style:none;margin:0;padding:0;
  display:flex;gap:2.1rem;
}
.primary-nav a{
  font-family:"Jost",sans-serif;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:0.22em;
  font-size:0.72rem;
  color:rgba(255,255,255,.92);
  padding:.3rem 0;
  position:relative;
  transition:color .3s ease;
}
.site-header.scrolled .primary-nav a{color:var(--green-deep);}
.primary-nav a::after{
  content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;
  background:var(--honey);transition:width .3s ease;
}
.primary-nav a:hover::after,.primary-nav a:focus-visible::after{width:100%;}
.primary-nav a[aria-current="page"]::after{width:100%;background:currentColor;}

.menu-toggle{
  display:none;background:none;border:0;cursor:pointer;
  width:44px;height:44px;flex-direction:column;justify-content:center;gap:5px;padding:8px;
}
.menu-toggle span{display:block;height:2px;width:26px;background:#fff;transition:background .35s ease;}
.site-header.scrolled .menu-toggle span{background:var(--green-deep);}

/* ---------- MOBILE MENU ---------- */
.mobile-menu{
  position:fixed;top:0;right:0;height:100%;width:min(84%,340px);
  background:var(--green-deep);color:var(--paper);
  z-index:90;transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);
  padding:5rem 2rem 2rem;display:flex;flex-direction:column;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu ul{list-style:none;margin:0;padding:0;}
.mobile-menu li{border-bottom:1px solid rgba(251,247,236,.16);}
.mobile-menu a{
  display:block;padding:1.05rem 0;text-decoration:none;
  font-family:"Jost",sans-serif;text-transform:uppercase;letter-spacing:0.22em;font-size:0.82rem;
  color:var(--paper);
}
.menu-ig{
  margin-top:auto;font-family:"Jost",sans-serif;letter-spacing:0.18em;font-size:0.8rem;
  color:var(--honey);text-decoration:none;padding-top:1.5rem;
}
.menu-close{
  position:absolute;top:1.1rem;right:1.3rem;background:none;border:0;color:var(--paper);
  font-size:2.4rem;line-height:1;cursor:pointer;width:44px;height:44px;
}
.menu-backdrop{
  position:fixed;inset:0;background:rgba(62,74,46,.5);z-index:80;
  opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease;
}
.menu-backdrop.show{opacity:1;visibility:visible;}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  height:100vh;min-height:560px;max-height:900px;
  margin-top:-84px;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:42% 45%;}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(to right, rgba(30,43,20,.74) 0%, rgba(30,43,20,.38) 45%, rgba(30,43,20,.1) 75%),
    linear-gradient(to top, rgba(30,43,20,.72) 0%, rgba(30,43,20,0) 42%);
}
.hero-content{
  position:relative;z-index:2;
  max-width:1200px;width:100%;margin:0 auto;
  padding:0 1.5rem 13vh;
}
.hero-eyebrow{
  font-family:"Jost",sans-serif;text-transform:uppercase;letter-spacing:0.42em;
  font-size:0.82rem;color:rgba(251,247,236,.9);margin:0 0 1.1rem;
}
.hero-line{
  font-family:"Cormorant Garamond",serif;
  color:#fff;font-weight:500;font-style:italic;
  font-size:clamp(2.6rem,7vw,5.4rem);
  line-height:1.03;margin:0;
  text-shadow:0 2px 24px rgba(30,43,20,.4);
  overflow-wrap:normal;
  word-break:keep-all;
  hyphens:none;
}
.hero-sub{
  margin:1.4rem 0 0;
  max-width:36ch;
  font-size:clamp(1.05rem,2.4vw,1.35rem);
  color:rgba(251,247,236,.92);
  line-height:1.5;
  text-shadow:0 1px 12px rgba(30,43,20,.4);
}
.scroll-cue{
  position:absolute;left:50%;bottom:2rem;transform:translateX(-50%);
  z-index:3;text-decoration:none;color:var(--paper);
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  font-family:"Jost",sans-serif;letter-spacing:0.32em;font-size:0.66rem;
}
.scroll-cue svg{animation:bob 2s ease-in-out infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}

/* ---------- LETTER ---------- */
.letter-section{
  position:relative;
  padding:clamp(4.5rem,11vw,9rem) 1.5rem;
  background:
    radial-gradient(1200px 600px at 50% -10%, rgba(124,139,99,.10), transparent 70%),
    var(--paper);
}
.letter-section::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}
.letter{
  position:relative;z-index:1;
  max-width:var(--measure);margin:0 auto;
  text-align:left;
}
.letter .section-label{text-align:center;}
.letter p{margin:0 0 1.6rem;font-size:1.28rem;color:#38352c;}
.letter-lead{font-size:1.42rem !important;}
.dropcap{
  float:left;
  font-family:"Cormorant Garamond",serif;
  font-size:5.4rem;line-height:.78;
  font-weight:600;color:var(--green-deep);
  padding:.35rem .55rem 0 0;
}
.signature{
  font-style:italic;font-size:2rem !important;
  color:var(--green-deep);
  margin-top:2.4rem !important;margin-bottom:.4rem !important;
}
.signature span{font-size:1.4rem;color:#6b6a5c;}
.in-gratitude{
  font-family:"Jost",sans-serif;text-transform:uppercase;
  letter-spacing:0.28em;font-size:0.66rem !important;color:var(--honey);
  margin-top:1.4rem !important;
}

/* ---------- GALLERY ---------- */
.gallery-section{
  padding:clamp(2rem,5vw,4rem) 1.5rem clamp(4rem,9vw,7rem);
  max-width:1200px;margin:0 auto;
}
.gallery-head{text-align:center;margin-bottom:2.6rem;}
.gallery{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:120px;
  gap:18px;
}
.g{
  margin:0;position:relative;overflow:hidden;border-radius:3px;background:#e7e2d2;min-width:0;
  box-shadow:0 14px 34px rgba(62,74,46,.14);
}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.2,1);}
.g:hover img{transform:scale(1.05);}
.g figcaption{
  position:absolute;left:0;bottom:0;right:0;
  padding:1.4rem 1.1rem .95rem;
  font-family:"Jost",sans-serif;text-transform:uppercase;letter-spacing:0.28em;
  font-size:0.72rem;color:#fff;
  background:linear-gradient(to top,rgba(30,43,20,.82),transparent);
}
.g-mary{grid-column:span 2;grid-row:span 3;}
.g-mary img{object-position:center;}
.g-roosters{grid-column:span 2;grid-row:span 3;}
.g-turkeys{grid-column:span 2;grid-row:span 6;}
.g-turkeys img{object-position:55% 62%;}
.g-tractor{grid-column:span 4;grid-row:span 4;}
.g-tractor img{object-position:30% 48%;}
.g-houses{grid-column:span 3;grid-row:span 3;}
.g-honey{grid-column:span 3;grid-row:span 3;}
.g-honey img{object-position:68% 42%;}

/* ---------- CONTACT ---------- */
.contact-band{
  background:var(--green);
  color:var(--paper);
  padding:clamp(4rem,9vw,7rem) 1.5rem clamp(2.5rem,5vw,4rem);
}
.contact-inner{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.address{
  font-style:normal;font-size:1.5rem;line-height:1.6;margin:0 0 1.8rem;
}
.contact-list{list-style:none;margin:0 0 1.8rem;padding:0;}
.contact-list li{margin-bottom:.5rem;}
.contact-list a{
  color:var(--paper);text-decoration:none;font-size:1.18rem;
  border-bottom:1px solid rgba(251,247,236,.35);padding-bottom:2px;
  transition:border-color .3s ease;
}
.contact-list a:hover{border-color:var(--paper);}
.ig-link{
  display:inline-flex;align-items:center;gap:.6rem;
  color:var(--honey);text-decoration:none;
  font-family:"Jost",sans-serif;letter-spacing:0.18em;font-size:0.9rem;
  background:rgba(251,247,236,.06);
  border:1px solid rgba(212,130,10,.55);
  padding:.7rem 1.2rem;border-radius:40px;
  transition:background .3s ease,transform .3s ease;
}
.ig-link:hover{background:rgba(212,130,10,.15);transform:translateY(-2px);}
.stay-note{
  margin:1.6rem 0 0;max-width:34ch;
  font-size:1.14rem;line-height:1.55;font-style:italic;
  color:rgba(251,247,236,.86);
}
.location-card{
  background:var(--paper);color:var(--ink);
  border-radius:4px;padding:2rem;
  box-shadow:0 20px 50px rgba(30,43,20,.25);
}
.card-eyebrow{
  font-family:"Jost",sans-serif;text-transform:uppercase;letter-spacing:0.28em;
  font-size:0.66rem;color:var(--green-deep);margin:0 0 1rem;
}
.card-title{font-size:1.7rem;margin:0 0 .4rem;color:var(--green-deep);}
.card-addr{font-size:1.2rem;margin:0 0 1.4rem;line-height:1.5;}
.directions{
  font-family:"Jost",sans-serif;letter-spacing:0.12em;font-size:0.82rem;
  color:var(--honey);text-decoration:none;font-weight:500;
}
.directions:hover{text-decoration:underline;}
.footer-wordmark{
  text-align:center;margin:clamp(3rem,7vw,5rem) 0 0;
  font-family:"Jost",sans-serif;text-transform:uppercase;letter-spacing:0.4em;
  font-size:clamp(1rem,3.5vw,1.6rem);color:rgba(251,247,236,.85);
}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease;}
.reveal.in{opacity:1;transform:none;}

/* ---------- FOCUS ---------- */
a:focus-visible,button:focus-visible{
  outline:2px solid var(--honey);outline-offset:3px;border-radius:2px;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .primary-nav{display:none;}
  .menu-toggle{display:flex;}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}
  .g-mary{grid-column:span 1;grid-row:span 2;}
  .g-roosters{grid-column:span 1;grid-row:span 2;}
  .g-turkeys{grid-column:span 2;grid-row:span 3;}
  .g-tractor{grid-column:span 2;grid-row:span 3;}
  .g-houses{grid-column:span 1;grid-row:span 2;}
  .g-honey{grid-column:span 1;grid-row:span 2;}
  .contact-inner{grid-template-columns:1fr;}
}
@media (max-width:560px){
  body{font-size:18px;}
  .header-inner{padding:1rem 1.1rem;}
  .wordmark{font-size:0.82rem;letter-spacing:0.2em;}
  .hero{margin-top:-72px;}
  .hero-content{padding-bottom:15vh;}
  .letter p{font-size:1.16rem;}
  .letter-lead{font-size:1.26rem !important;}
  .gallery{grid-template-columns:1fr;grid-auto-rows:auto;}
  .gallery .g{grid-column:auto !important;grid-row:auto !important;aspect-ratio:4/3;}
  .g-turkeys,.g-tractor{aspect-ratio:3/4;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  .scroll-cue svg{animation:none;}
  .g:hover img{transform:none;}
}