/* ── Two-column narrative block ── */
.farm-narrative {
  background: var(--cream);
  padding: var(--pad-v) var(--pad-x-wide);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: center;
}
.farm-narrative.reverse .farm-narrative-img {
  order: 2;
}
.farm-narrative-text h2 {
  font-family: "Crimson Text", serif;
  font-size: clamp(36px, 3.5vw, 54px);
  font-weight: 400;
  line-height: 1.1;
  color: var(--forest);
  margin: 16px 0 28px;
}
.farm-narrative-text h2 em {
  font-style: italic;
}
.farm-narrative-text p {
  font-size: 16px;
  font-weight: 300;
  line-height: 1.95;
  color: var(--stone);
  max-width: 480px;
}
.farm-narrative-text p + p {
  margin-top: 20px;
}
.farm-narrative-img {
  overflow: hidden;
  max-height: 75vh;
}
.farm-narrative-img.portrait-3-4 {
  aspect-ratio: 3 / 4;
}
.farm-narrative-img.portrait-4-5 {
  aspect-ratio: 4 / 5;
}
.farm-narrative-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Dark variant */
.farm-narrative.dark {
  background: var(--forest);
}
.farm-narrative.dark .farm-narrative-text h2 {
  color: var(--white);
}
.farm-narrative.dark .farm-narrative-text p {
  color: rgba(var(--cream-rgb), 0.6);
}

/* ── Full-bleed image ── */
.full-bleed-bare {
  overflow: hidden;
}
.full-bleed-bare img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.full-bleed-bare.tall {
  height: 80vh;
  min-height: 520px;
}
.full-bleed-bare.medium {
  height: 60vh;
  min-height: 400px;
}

/* ── Timeline ── */
.farm-timeline {
  background: var(--forest);
  padding: var(--pad-v) var(--pad-x-wide);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: center;
}
.farm-timeline-header h2 {
  font-family: "Crimson Text", serif;
  font-size: clamp(36px, 3.5vw, 54px);
  font-weight: 400;
  line-height: 1.1;
  color: var(--white);
  margin: 16px 0 28px;
}
.farm-timeline-header h2 em {
  font-style: italic;
}
.farm-timeline-header p {
  font-size: 16px;
  font-weight: 300;
  line-height: 1.95;
  color: rgba(var(--cream-rgb), 0.6);
}

/* Spine + entries */
.farm-timeline-entries {
  position: relative;
  padding-left: 32px;
}
.farm-timeline-entries::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--amber);
  opacity: 0.35;
}

.timeline-entry {
  position: relative;
  padding: 0 0 36px 32px;
}
.timeline-entry:last-child {
  padding-bottom: 0;
}

.timeline-entry::before {
  content: "";
  position: absolute;
  left: -24px;
  top: 7px;
  width: 16px;
  height: 1px;
  background: var(--amber);
  opacity: 0.5;
}

.timeline-entry::after {
  content: "";
  position: absolute;
  left: -35px;
  top: 3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--amber);
  opacity: 0.8;
}

.timeline-year {
  display: block;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 6px;
}
.timeline-fact {
  display: block;
  font-family: "Crimson Text", serif;
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.4;
  color: rgba(var(--cream-rgb), 0.75);
}

/* ── Pull quotes ── */
.farm-quote {
  margin: 28px 0;
  padding-left: 20px;
  border-left: 1px solid var(--amber);
  max-width: 480px;
}

.farm-quote p {
  font-family: "Crimson Text", serif;
  font-size: clamp(17px, 1.5vw, 20px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.7;
  color: var(--forest);
}

.farm-quote cite {
  display: block;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--amber);
  margin-top: 12px;
}

/* Dark variant — used inside .farm-narrative.dark if ever needed */
.farm-narrative.dark .farm-quote p {
  color: rgba(var(--cream-rgb), 0.75);
}

/* ── Stacked image column ── */
.farm-narrative-img-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Remove max-height constraint on stacked children */
.farm-narrative-img-stack .farm-narrative-img {
  max-height: none;
}

/* Landscape aspect ratios */
.farm-narrative-img.landscape-3-2 {
  aspect-ratio: 3 / 2;
}

.farm-narrative-img.landscape-sketch {
  aspect-ratio: 4 / 3;
}

/* ── Collage stack: tilted middle photo overlapping neighbors ── */
.farm-narrative-img-stack.collage {
  gap: 0;
  padding: 0 12px;
}

.farm-narrative-img-stack.collage .farm-narrative-img {
  position: relative;
  z-index: 0;
}

.farm-narrative-img-stack.collage .farm-narrative-img:nth-child(2) {
  transform: rotate(-2.5deg);
  z-index: 1;
  margin-top: -24px;
  margin-bottom: -24px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

/* ── Timeline historical photo ── */
.farm-timeline-photo {
  margin-top: 48px;
  overflow: hidden;
}

.farm-timeline-photo img {
  width: 100%;
  display: block;
  object-fit: cover;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .farm-narrative {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .farm-narrative.reverse .farm-narrative-img {
    order: 0;
  }
  .farm-narrative-text p {
    max-width: 100%;
  }
  .farm-timeline {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .farm-timeline-entries {
    padding-left: 24px;
  }
  .timeline-entry {
    padding: 0 0 32px 24px;
  }
  .timeline-entry::before {
    left: -16px;
    width: 12px;
  }
  .timeline-entry::after {
    left: -27px;
  }
  .full-bleed-bare.tall {
    height: 56vw;
    min-height: 300px;
  }
  .full-bleed-bare.medium {
    height: 66vw;
    min-height: 260px;
  }
  .farm-narrative-img-stack:not(.collage) {
    gap: 8px;
  }
  .farm-timeline-photo {
    margin-top: 32px;
  }
}

@media (min-width: 600px) and (max-width: 900px) {
  .farm-narrative-img {
    height: 520px;
    max-height: none;
  }
}
