/* New Hampshire U-pick farms
   Page-specific stylesheet
   /alpaca-farm/states/new-hampshire/u-pick-farms/style/u-pick-farms.css
*/

.nh-upick-page {
  --pick-ink: #20312b;
  --pick-deep: #294a3f;
  --pick-leaf: #4f765d;
  --pick-blue: #486d83;
  --pick-berry: #8b3f55;
  --pick-flower: #b86d5c;
  --pick-gold: #c9963b;
  --pick-cream: #fbf8ef;
  --pick-paper: #f5f0e5;
  --pick-line: #d8d0be;
  --pick-white: #fffefa;
  background: var(--pick-cream);
  color: var(--pick-ink);
}

.nh-upick-page h1,
.nh-upick-page h2,
.nh-upick-page h3 {
  font-family: "Fraunces", Georgia, serif;
  color: var(--pick-ink);
}

.nh-upick-page p,
.nh-upick-page a,
.nh-upick-page span,
.nh-upick-page b,
.nh-upick-page strong,
.nh-upick-page small,
.nh-upick-page dt,
.nh-upick-page dd,
.nh-upick-page button {
  font-family: "DM Sans", Arial, sans-serif;
}

.pick-hero {
  position: relative;
  min-height: 620px;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: #294a3f;
}

.pick-hero-media,
.pick-hero-wash {
  position: absolute;
  inset: 0;
}

.pick-hero-media picture,
.pick-hero-media img {
  width: 100%;
  height: 100%;
  display: block;
}

.pick-hero-media img {
  object-fit: cover;
  object-position: center center;
}

.pick-hero-wash {
  background:
    linear-gradient(90deg, rgba(18, 35, 31, .7) 0%, rgba(18, 35, 31, .3) 39%, rgba(18, 35, 31, .02) 70%),
    linear-gradient(0deg, rgba(16, 30, 27, .6) 0%, rgba(16, 30, 27, 0) 48%);
}

.pick-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-bottom: 2.8rem;
}

.pick-title-card {
  width: min(680px, 68%);
  background: rgba(255, 254, 250, .94);
  padding: 2rem 2.2rem 2.1rem;
  border-left: 7px solid var(--pick-berry);
  box-shadow: 0 22px 52px rgba(20, 35, 31, .2);
  backdrop-filter: blur(3px);
}

.pick-crumb {
  margin: 0 0 1rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .035em;
  color: #52655f;
}

.pick-crumb a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.pick-eyebrow {
  margin: 0 0 .55rem;
  color: var(--pick-berry);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.pick-title-card h1 {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(2.5rem, 5.5vw, 5.3rem);
  line-height: .94;
  letter-spacing: -.045em;
}

.pick-title-card > p:last-child {
  margin: 1.2rem 0 0;
  max-width: 56ch;
  font-size: 1.05rem;
  line-height: 1.65;
  color: #42564f;
}

.crop-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: min(860px, 82%);
  margin-left: auto;
  margin-top: -1.25rem;
  background: var(--pick-deep);
  color: white;
  box-shadow: 0 16px 36px rgba(20, 35, 31, .22);
}

.crop-strip div {
  padding: 1rem 1.15rem;
  border-right: 1px solid rgba(255,255,255,.16);
}

.crop-strip div:last-child {
  border-right: 0;
}

.crop-strip span {
  display: block;
  color: #dbe8df;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.crop-strip b {
  display: block;
  margin-top: .25rem;
  font-size: .86rem;
  line-height: 1.35;
}

.pick-intro-band {
  background: var(--pick-paper);
  border-top: 1px solid #e2dbc9;
  border-bottom: 1px solid #d7ceba;
}

.pick-intro-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.pick-intro-grid > div {
  padding: 1.25rem 1.7rem;
  border-right: 1px solid #d7ceba;
}

.pick-intro-grid > div:last-child {
  border-right: 0;
}

.pick-intro-grid strong {
  display: block;
  font-size: .95rem;
  color: var(--pick-deep);
}

.pick-intro-grid span {
  display: block;
  margin-top: .25rem;
  color: #6a7068;
  font-size: .82rem;
  line-height: 1.45;
}

.pick-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 305px;
  gap: clamp(2rem, 4vw, 4.25rem);
  padding-top: 4.4rem;
  padding-bottom: 4rem;
  align-items: start;
}

.pick-directory-head {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(220px, .85fr);
  gap: 2rem;
  align-items: end;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--pick-line);
}

.pick-directory-head h2 {
  margin: 0;
  font-size: clamp(2rem, 3.3vw, 3.5rem);
  line-height: 1;
  letter-spacing: -.035em;
}

.pick-directory-head > p {
  margin: 0;
  color: #67716b;
  font-size: .93rem;
  line-height: 1.65;
}

.crop-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.1rem;
  margin: 1.25rem 0 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid #e6dfcf;
  color: #5c675f;
  font-size: .75rem;
  font-weight: 600;
}

.crop-legend span {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
}

.crop-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  display: inline-block;
}

.crop-dot.berry { background: var(--pick-berry); }
.crop-dot.fruit { background: var(--pick-gold); }
.crop-dot.flower { background: var(--pick-flower); }
.crop-dot.fall { background: var(--pick-deep); }

.pick-directory {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: pickFarm;
}

.pick-directory .farm {
  counter-increment: pickFarm;
  border-bottom: 1px solid var(--pick-line);
  background: transparent;
}

.pick-directory .farm:first-child {
  border-top: 1px solid var(--pick-line);
}

.pick-directory .farm-trigger {
  width: 100%;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto 22px;
  gap: 1rem;
  align-items: center;
  padding: 1.15rem .35rem;
  border: 0;
  background: transparent;
  color: var(--pick-ink);
  text-align: left;
  cursor: pointer;
}

.pick-directory .farm-trigger::before {
  content: counter(pickFarm, decimal-leading-zero);
  color: #9e8e73;
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.pick-directory .farm-trigger:hover .farm-name,
.pick-directory .farm-trigger:focus-visible .farm-name {
  color: var(--pick-berry);
}

.pick-directory .farm-name {
  min-width: 0;
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.22rem;
  font-weight: 600;
  line-height: 1.2;
  transition: color .16s ease;
}

.pick-directory .farm-town {
  color: #6c756f;
  font-size: .78rem;
  font-weight: 600;
  white-space: nowrap;
}

.pick-directory .chev {
  width: 9px;
  height: 9px;
  border-right: 1.5px solid #68756d;
  border-bottom: 1.5px solid #68756d;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .18s ease;
}

.pick-directory .farm-trigger[aria-expanded="true"] .chev {
  transform: rotate(225deg) translate(-1px, -1px);
}

.pick-directory .farm-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .22s ease;
}

.pick-directory .farm-panel > div {
  overflow: hidden;
}

.pick-directory .farm-trigger[aria-expanded="true"] + .farm-panel {
  grid-template-rows: 1fr;
}

.pick-directory .farm-body {
  padding: .2rem 1.15rem 1.55rem 4.6rem;
}

.pick-directory .farm-body > p {
  max-width: 72ch;
  margin: .65rem 0;
  color: #4e5b55;
  font-size: .91rem;
  line-height: 1.7;
}

.pick-directory .farm-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 1.2rem 0 0;
  border-top: 1px solid #e3dccd;
  border-left: 1px solid #e3dccd;
}

.pick-directory .farm-meta > div {
  padding: .85rem .95rem;
  border-right: 1px solid #e3dccd;
  border-bottom: 1px solid #e3dccd;
  background: rgba(255, 254, 250, .66);
}

.pick-directory dt {
  margin-bottom: .22rem;
  color: #8b7658;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.pick-directory dd {
  margin: 0;
  color: #33473f;
  font-size: .82rem;
  line-height: 1.52;
}

.pick-directory dd a {
  color: var(--pick-deep);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.pick-rail {
  position: sticky;
  top: 6.5rem;
  display: grid;
  gap: 1.15rem;
}

.pick-rail-card {
  background: var(--pick-white);
  border: 1px solid var(--pick-line);
}

.outing-card {
  padding: 1.45rem;
}

.rail-kicker {
  margin: 0 0 .5rem;
  color: var(--pick-berry);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.outing-card h2 {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.08;
}

.rail-copy {
  margin: .75rem 0 1.1rem;
  color: #6a726d;
  font-size: .8rem;
  line-height: 1.55;
}

.outing-links {
  display: grid;
  border-top: 1px solid #e2dbc9;
}

.outing-links a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: .15rem .65rem;
  padding: .9rem .1rem;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid #e2dbc9;
}

.outing-links a:hover b,
.outing-links a:focus-visible b {
  color: var(--pick-berry);
}

.outing-num {
  grid-row: 1 / span 2;
  color: #a08e70;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  padding-top: .12rem;
}

.outing-links b {
  font-size: .86rem;
  line-height: 1.25;
}

.outing-links small {
  color: #77807a;
  font-size: .71rem;
  line-height: 1.35;
}

.harvest-note {
  position: relative;
  padding: 2rem 1.45rem 1.45rem;
  background: var(--pick-deep);
  border-color: var(--pick-deep);
  color: #edf4ee;
}

.note-label {
  position: absolute;
  top: 0;
  left: 1.45rem;
  transform: translateY(-50%);
  padding: .35rem .55rem;
  background: var(--pick-gold);
  color: #2f382e;
  font-size: .61rem;
  font-weight: 800;
  letter-spacing: .11em;
}

.harvest-note h3 {
  margin: 0;
  color: white;
  font-size: 1.28rem;
  line-height: 1.12;
}

.harvest-note p {
  margin: .75rem 0 0;
  color: #d7e2da;
  font-size: .8rem;
  line-height: 1.62;
}

.season-guide {
  padding-top: 3.7rem;
  padding-bottom: 4rem;
  border-top: 1px solid var(--pick-line);
}

.season-guide-head {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 1rem 3rem;
  align-items: end;
  margin-bottom: 1.6rem;
}

.season-guide-head .pick-eyebrow {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.season-guide-head h2 {
  margin: 0;
  max-width: 13ch;
  font-size: clamp(2rem, 3.5vw, 3.8rem);
  line-height: 1;
  letter-spacing: -.035em;
}

.season-guide-head > p:last-child {
  margin: 0;
  max-width: 58ch;
  color: #657069;
  line-height: 1.7;
}

.season-track {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--pick-line);
  border-bottom: 1px solid var(--pick-line);
}

.season-track article {
  position: relative;
  min-height: 215px;
  padding: 1.5rem 1.7rem 1.6rem;
  border-right: 1px solid var(--pick-line);
}

.season-track article:last-child {
  border-right: 0;
}

.season-track article:nth-child(1) { background: #faf7ef; }
.season-track article:nth-child(2) { background: #f2f3e9; }
.season-track article:nth-child(3) { background: #f8eee7; }

.season-month {
  display: inline-block;
  color: var(--pick-berry);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .13em;
}

.season-track h3 {
  margin: 2rem 0 .55rem;
  font-size: 1.45rem;
}

.season-track p {
  margin: 0;
  color: #626d67;
  font-size: .84rem;
  line-height: 1.6;
}

.pick-related {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 4rem;
  border: 1px solid var(--pick-line);
  background: var(--pick-white);
}

.pick-related a {
  padding: 1.2rem 1.3rem;
  color: inherit;
  text-decoration: none;
  border-right: 1px solid var(--pick-line);
}

.pick-related a:last-child {
  border-right: 0;
}

.pick-related span {
  display: block;
  margin-bottom: .22rem;
  color: #8a7d69;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pick-related b {
  font-size: .85rem;
}

.pick-related a:hover b,
.pick-related a:focus-visible b {
  color: var(--pick-berry);
}

.pick-finder {
  margin-bottom: 4rem;
}

@media (max-width: 980px) {
  .pick-hero {
    min-height: 560px;
  }

  .pick-title-card {
    width: min(720px, 82%);
  }

  .crop-strip {
    width: 88%;
  }

  .pick-layout {
    grid-template-columns: minmax(0, 1fr) 265px;
    gap: 2rem;
  }

  .pick-directory .farm-trigger {
    grid-template-columns: 42px minmax(0, 1fr) auto 20px;
  }

  .pick-directory .farm-body {
    padding-left: 3.7rem;
  }
}

@media (max-width: 820px) {
  .crop-strip {
    width: 100%;
    margin-top: 1rem;
  }

  .pick-layout {
    grid-template-columns: 1fr;
  }

  .pick-rail {
    position: static;
    grid-template-columns: 1.2fr .8fr;
  }

  .pick-directory-head {
    grid-template-columns: 1fr;
    gap: .8rem;
  }
}

@media (max-width: 700px) {
  .pick-hero {
    min-height: 650px;
    align-items: end;
  }

  .pick-hero-media img {
    object-position: center center;
  }

  .pick-hero-wash {
    background:
      linear-gradient(0deg, rgba(19, 38, 33, .82) 0%, rgba(19, 38, 33, .18) 70%, rgba(19, 38, 33, .02) 100%);
  }

  .pick-hero-inner {
    padding: 0 0 1.15rem;
  }

  .pick-title-card {
    width: auto;
    margin-inline: 1rem;
    padding: 1.35rem 1.2rem 1.45rem;
    border-left-width: 5px;
  }

  .pick-title-card h1 {
    max-width: none;
    font-size: clamp(2.35rem, 11vw, 4.2rem);
  }

  .pick-title-card > p:last-child {
    font-size: .92rem;
    line-height: 1.55;
  }

  .crop-strip {
    width: auto;
    margin: .8rem 1rem 0;
    grid-template-columns: repeat(2, 1fr);
  }

  .crop-strip div {
    padding: .75rem .8rem;
    border-right: 1px solid rgba(255,255,255,.15);
    border-bottom: 1px solid rgba(255,255,255,.15);
  }

  .crop-strip div:nth-child(2n) {
    border-right: 0;
  }

  .crop-strip div:nth-last-child(-n+2) {
    border-bottom: 0;
  }

  .pick-intro-grid {
    grid-template-columns: 1fr;
  }

  .pick-intro-grid > div {
    padding: .9rem 1rem;
    border-right: 0;
    border-bottom: 1px solid #d7ceba;
  }

  .pick-intro-grid > div:last-child {
    border-bottom: 0;
  }

  .pick-layout {
    width: auto;
    margin-inline: 1rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .pick-directory-head h2 {
    font-size: 2.25rem;
  }

  .crop-legend {
    gap: .5rem .8rem;
  }

  .pick-directory .farm-trigger {
    grid-template-columns: 34px minmax(0, 1fr) 18px;
    gap: .65rem;
    padding: 1rem 0;
  }

  .pick-directory .farm-town {
    grid-column: 2;
    font-size: .72rem;
    white-space: normal;
    margin-top: -.35rem;
  }

  .pick-directory .chev {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .pick-directory .farm-body {
    padding: .2rem 0 1.3rem 2.55rem;
  }

  .pick-directory .farm-meta {
    grid-template-columns: 1fr;
  }

  .pick-rail {
    grid-template-columns: 1fr;
  }

  .season-guide {
    width: auto;
    margin-inline: 1rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .season-guide-head {
    grid-template-columns: 1fr;
    gap: .8rem;
  }

  .season-guide-head .pick-eyebrow {
    grid-column: auto;
  }

  .season-track {
    grid-template-columns: 1fr;
  }

  .season-track article {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--pick-line);
  }

  .season-track article:last-child {
    border-bottom: 0;
  }

  .season-track h3 {
    margin-top: 1rem;
  }

  .pick-related {
    width: auto;
    margin-inline: 1rem;
    grid-template-columns: 1fr;
    margin-bottom: 3rem;
  }

  .pick-related a {
    border-right: 0;
    border-bottom: 1px solid var(--pick-line);
  }

  .pick-related a:last-child {
    border-bottom: 0;
  }

  .pick-finder {
    width: auto;
    margin-inline: 1rem;
  }
}

@media (max-width: 430px) {
  .pick-title-card {
    margin-inline: .75rem;
  }

  .crop-strip {
    margin-inline: .75rem;
  }

  .pick-layout,
  .season-guide,
  .pick-related,
  .pick-finder {
    margin-inline: .75rem;
  }

  .pick-directory .farm-name {
    font-size: 1.08rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pick-directory .farm-panel,
  .pick-directory .chev,
  .pick-directory .farm-name {
    transition: none;
  }
}
