/* Pitchcombe Fresh. Built from src/ by build.mjs. */


@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/assets/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --cream:       #fbf6e9;
  --cream-deep:  #f3ebd6;
  --card:        #fffdf7;
  --line:        #e2d8bf;

  --forest:      #347451;
  --forest-dark: #285d40;
  --forest-deep: #215314;
  --pine-night:  #1b3a27;

  --sage:        #668050;
  --sage-text:   #556b42;
  --sage-bar:    #4f6640;

  --ink:         #23291f;
  --ink-soft:    #55604e;
  --on-dark:     #ffffff;
  --on-dark-soft:#dfe7d6;

  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:  'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

  --step--1: 0.875rem;
  --step-0:  clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --step-1:  clamp(1.15rem, 1.08rem + 0.35vw, 1.3rem);
  --step-2:  clamp(1.4rem, 1.25rem + 0.7vw, 1.8rem);
  --step-3:  clamp(1.75rem, 1.45rem + 1.4vw, 2.6rem);
  --step-4:  clamp(2.2rem, 1.6rem + 3vw, 3.9rem);

  --wrap: 1120px;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --section: clamp(3.5rem, 7vw, 6rem);
  --radius: 6px;
  --masthead-h: 76px;

  --focus: 0 0 0 3px var(--cream), 0 0 0 6px var(--forest-deep);
  --shadow: 0 18px 40px -24px rgba(27, 58, 39, 0.45);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--masthead-h) + 1rem);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  overflow-x: clip;
  font-family: var(--sans);
  font-size: var(--step-0);
  line-height: 1.65;
  color: var(--ink);
  background: var(--cream);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  margin: 0 0 0.5em;
  font-family: var(--serif);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--forest-deep);
  text-wrap: balance;
}
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-1); line-height: 1.3; }
p { margin: 0 0 1em; text-wrap: pretty; }
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--forest); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--forest-deep); text-decoration-thickness: 2px; }
ul, ol { padding-left: 1.2em; }
[role="list"] { list-style: none; padding: 0; margin: 0; }
blockquote { margin: 0; }
button { font: inherit; color: inherit; }

:focus-visible { outline: none; box-shadow: var(--focus); border-radius: 3px; }

.wrap {
  width: 100%;
  max-width: calc(var(--wrap) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.band { padding-block: var(--section); }
.band--cream { background: var(--cream); }
.band--deep { background: var(--cream-deep); }
.band--forest { background: var(--forest-deep); color: var(--on-dark); }
.band--forest h2, .band--forest h3 { color: var(--on-dark); }

.eyebrow {
  margin: 0 0 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sage-text);
}

.lede { font-size: var(--step-1); line-height: 1.55; max-width: 60ch; color: var(--ink-soft); }

.section-head { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.section-head--centre { margin-inline: auto; text-align: center; }
.section-head--centre .lede { margin-inline: auto; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  padding: 0.75rem 1rem; border-radius: var(--radius);
  background: var(--forest-deep); color: var(--on-dark); font-weight: 600;
}
.skip-link:focus { top: 1rem; color: var(--on-dark); }

.nowrap { white-space: nowrap; }

.icon { display: inline-block; flex: none; max-width: none; vertical-align: -0.2em; }

.topbar { background: var(--sage-bar); color: var(--on-dark); font-size: 0.86rem; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 38px; }
.topbar__line { margin: 0; letter-spacing: 0.02em; }
.topbar__phone { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--on-dark); font-weight: 600; text-decoration: none; }
.topbar__phone:hover { color: var(--on-dark); text-decoration: underline; }
@media (max-width: 540px) { .topbar__phone { display: none; } .topbar__inner { justify-content: center; } }

.masthead {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--cream) 95%, transparent);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.masthead__inner { display: flex; align-items: center; gap: 1.5rem; min-height: 72px; }

.wordmark { display: flex; flex-direction: column; text-decoration: none; margin-right: auto; line-height: 1.1; }
.wordmark__name { font-family: var(--serif); font-weight: 600; font-size: 1.45rem; color: var(--forest-deep); letter-spacing: -0.005em; }
.wordmark__tag { font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sage-text); font-weight: 600; margin-top: 0.2rem; }
.wordmark:hover .wordmark__name { color: var(--forest); }

.masthead__nav ul { display: flex; gap: 0.4rem; }
.masthead__nav a {
  display: block; padding: 0.5rem 0.8rem; border-radius: var(--radius);
  font-size: 0.95rem; font-weight: 500; color: var(--ink); text-decoration: none;
}
.masthead__nav a:hover { color: var(--forest); background: var(--cream-deep); }
.masthead__nav a[aria-current="page"] { color: var(--forest-deep); box-shadow: inset 0 -2px 0 var(--sage); border-radius: 0; }

.masthead__call { padding: 0.6rem 1rem; }
.masthead__toggle {
  display: none; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--card); cursor: pointer; align-items: center; justify-content: center;
}
.masthead__bars { display: grid; gap: 5px; width: 20px; }
.masthead__bars span { display: block; height: 2px; background: var(--forest-deep); border-radius: 2px; transition: transform .2s, opacity .2s; }
.masthead__toggle[aria-expanded="true"] .masthead__bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.masthead__toggle[aria-expanded="true"] .masthead__bars span:nth-child(2) { opacity: 0; }
.masthead__toggle[aria-expanded="true"] .masthead__bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
  .masthead__nav { display: none; }
  .masthead__toggle { display: inline-flex; }
  .masthead__inner { gap: 0.6rem; min-height: 64px; }
  .masthead__call-text { display: none; }
  .masthead__call { width: 46px; height: 46px; padding: 0; justify-content: center; }
  .wordmark__name { font-size: 1.25rem; }
}

.mobilemenu {
  position: fixed; inset: var(--menu-top, var(--masthead-h)) 0 0 0; z-index: 49;
  background: var(--cream); padding: 1.5rem var(--gutter) 2rem; overflow-y: auto;
  display: flex; flex-direction: column; gap: 1.5rem;
}
.mobilemenu[hidden] { display: none; }
.mobilemenu nav a {
  display: block; padding: 0.9rem 0; border-bottom: 1px solid var(--line);
  font-family: var(--serif); font-size: 1.5rem; font-weight: 600; color: var(--forest-deep); text-decoration: none;
}
.mobilemenu nav a[aria-current="page"] { color: var(--forest); }
.mobilemenu__actions { display: grid; gap: 0.75rem; }

.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 46px; padding: 0.75rem 1.4rem; border: 2px solid var(--forest); border-radius: var(--radius);
  background: var(--forest); color: var(--on-dark);
  font-family: var(--sans); font-size: 0.95rem; font-weight: 600; letter-spacing: 0.01em;
  text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
.button:hover { background: var(--forest-dark); border-color: var(--forest-dark); color: var(--on-dark); text-decoration: none; }
.button--outline { background: transparent; color: var(--forest-deep); }
.button--outline:hover { background: var(--forest); color: var(--on-dark); }
.button--light { background: var(--cream); border-color: var(--cream); color: var(--forest-deep); }
.button--light:hover { background: #ffffff; border-color: #ffffff; color: var(--forest-deep); }
.button--ghost { background: transparent; border-color: rgba(255, 255, 255, 0.75); color: var(--on-dark); }
.button--ghost:hover { background: rgba(255, 255, 255, 0.14); border-color: #ffffff; color: var(--on-dark); }
.button-row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }

.sitefoot { background: var(--pine-night); color: var(--on-dark-soft); font-size: 0.95rem; padding-top: clamp(3rem, 6vw, 4.5rem); }
.sitefoot a { color: var(--on-dark); }
.sitefoot a:hover { color: var(--on-dark); }
.sitefoot__inner { display: grid; gap: 2.5rem; grid-template-columns: 1.3fr 1fr 0.7fr; }
@media (max-width: 800px) { .sitefoot__inner { grid-template-columns: 1fr; gap: 2rem; } }
.sitefoot__name { font-family: var(--serif); font-size: 1.5rem; font-weight: 600; color: var(--on-dark); margin-bottom: 0.25rem; }
.sitefoot__family { font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: #c9d6bb; }
.sitefoot__label { font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: #c9d6bb; margin-bottom: 0.9rem; }
.sitefoot__contact li, .sitefoot__links li { margin-bottom: 0.55rem; }
.sitefoot__contact a { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; word-break: break-word; }
.sitefoot__contact a:hover, .sitefoot__links a:hover { text-decoration: underline; }
.sitefoot__links a { text-decoration: none; }
.sitefoot__hours { margin-top: 1rem; }
.sitefoot__base {
  margin-top: 2.5rem; padding: 1.4rem 0 2rem; border-top: 1px solid rgba(223, 231, 214, 0.18);
  display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem; font-size: 0.85rem;
}
.sitefoot__base p { margin: 0; }
.linkish { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font-size: inherit; }

.photo-to-come {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.3rem;
  width: 100%; padding: 1.25rem; text-align: center; border-radius: var(--radius);
  border: 1px dashed var(--sage);
  background: repeating-linear-gradient(135deg, var(--card), var(--card) 11px, var(--cream-deep) 11px, var(--cream-deep) 12px);
  color: var(--ink-soft);
}
.photo-to-come span { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--sage-text); }
.photo-to-come small { font-size: 0.85rem; }
.ratio-4x3 { aspect-ratio: 4 / 3; }
.ratio-1x1 { aspect-ratio: 1 / 1; }
.ratio-4x5 { aspect-ratio: 4 / 5; }

.faq { display: grid; gap: 0.75rem; }
.faq__item { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); }
.faq__item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.1rem 1.25rem; cursor: pointer; list-style: none;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: ""; flex: none; width: 12px; height: 12px; margin-right: 4px;
  border-right: 2px solid var(--forest); border-bottom: 2px solid var(--forest);
  transform: rotate(45deg) translateY(-3px); transition: transform .2s;
}
.faq__item[open] summary::after { transform: rotate(225deg) translateY(-3px); }
.faq__item summary h3 { margin: 0; font-size: var(--step-1); }
.faq__a { padding: 0 1.25rem 1.1rem; color: var(--ink-soft); }
.faq__a p:last-child { margin-bottom: 0; }

.cb-consent { position: fixed; inset: 0; z-index: 200; display: flex; align-items: flex-end; justify-content: center; padding: 1rem; pointer-events: none; }
.cb-consent__scrim { position: absolute; inset: 0; background: rgba(27, 58, 39, 0.35); pointer-events: auto; }
.cb-consent__panel {
  position: relative; pointer-events: auto; width: min(640px, 100%);
  display: grid; gap: 1.1rem; padding: 1.5rem;
  background: var(--card); color: var(--ink); border-radius: 10px;
  box-shadow: 0 30px 60px -20px rgba(27, 58, 39, 0.55);
}
.cb-consent__panel:focus { outline: none; box-shadow: 0 30px 60px -20px rgba(27, 58, 39, 0.55), var(--focus); }
.cb-consent__title { font-size: 1.3rem; margin-bottom: 0.4rem; padding-right: 2.5rem; }
.cb-consent__body { margin: 0; font-size: 0.95rem; color: var(--ink-soft); }
.cb-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }

.cb-consent__choice {
  min-height: 48px; padding: 0.7rem 1rem; border: 2px solid var(--forest); border-radius: var(--radius);
  background: var(--forest); color: var(--on-dark); font-weight: 600; cursor: pointer;
}
.cb-consent__choice:hover { background: var(--forest-dark); }
.cb-consent__close {
  position: absolute; top: 0.75rem; right: 0.75rem; width: 40px; height: 40px;
  border: 0; border-radius: 50%; background: transparent; font-size: 1.5rem; line-height: 1; cursor: pointer; color: var(--ink);
}
.cb-consent__close:hover { background: var(--cream-deep); }
@media (max-width: 480px) { .cb-consent__actions { grid-template-columns: 1fr; } }

.lightbox {
  width: min(1100px, 96vw); max-height: 96vh; padding: 0; border: 0; border-radius: 8px;
  background: var(--pine-night); color: var(--on-dark); overflow: hidden;
}
.lightbox::backdrop { background: rgba(17, 30, 21, 0.9); }
.lightbox__figure { margin: 0; }
.lightbox__figure img { width: 100%; max-height: 80vh; object-fit: contain; }
.lightbox__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.8rem 1rem; }
.lightbox__caption { margin: 0; font-weight: 600; }
.lightbox__nav { display: flex; gap: 0.5rem; }
.lightbox__btn {
  min-width: 44px; min-height: 44px; padding: 0.4rem 0.9rem; border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: var(--radius); background: transparent; color: var(--on-dark); cursor: pointer; font-weight: 600;
}
.lightbox__btn:hover { background: rgba(255, 255, 255, 0.12); }

.wordmark__tag { white-space: nowrap; }
@media (max-width: 400px) {
  .wordmark__name { font-size: 1.15rem; }
  .wordmark__tag { font-size: 0.64rem; letter-spacing: 0.1em; }
}

.sitefoot__who { display: block; font-size: 0.78rem; letter-spacing: 0.06em; color: #c9d6bb; }

.parallax {
  background-color: var(--pine-night);
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
@media (hover: none), (max-width: 900px), (prefers-reduced-motion: reduce) {
  .parallax { background-attachment: scroll; }
}

.hero { color: var(--on-dark); }
.hero__shade {
  min-height: min(86vh, 760px);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-top: clamp(4rem, 12vh, 8rem);
  background:
    linear-gradient(90deg, rgba(17, 33, 22, 0.86) 0%, rgba(17, 33, 22, 0.6) 50%, rgba(17, 33, 22, 0.25) 100%),
    linear-gradient(0deg, rgba(17, 33, 22, 0.75) 0%, rgba(17, 33, 22, 0) 45%);
}
.hero__inner { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2rem; padding-bottom: 2.5rem; }
.hero__text { max-width: 640px; }
.hero h1 { color: var(--on-dark); margin-bottom: 0.9rem; }
.hero__lede { font-size: var(--step-1); line-height: 1.55; color: var(--on-dark-soft); max-width: 54ch; }
.eyebrow--light { color: #d9e6c9; }

.seal {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 168px; height: 168px; margin: 0; border-radius: 50%;
  border: 2px solid rgba(251, 246, 233, 0.8); outline: 1px solid rgba(251, 246, 233, 0.35); outline-offset: 5px;
  background: rgba(27, 58, 39, 0.55); text-align: center; line-height: 1;
}
.seal__n { font-family: var(--serif); font-size: 3.4rem; font-weight: 600; color: var(--on-dark); }
.seal__word { font-family: var(--serif); font-size: 1.1rem; color: var(--on-dark); margin-top: 0.15rem; }
.seal__sub { font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: #d9e6c9; margin-top: 0.5rem; line-height: 1.35; }

.infobar {
  display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 2rem;
  border-top: 1px solid rgba(251, 246, 233, 0.3); padding-top: 1.1rem;
}
.infobar div { padding-right: 1.25rem; }
.infobar div + div { padding-left: 1.25rem; border-left: 1px solid rgba(251, 246, 233, 0.3); }
.infobar dt { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: #d9e6c9; }
.infobar dd { margin: 0.2rem 0 0; font-weight: 500; color: var(--on-dark); }

.hero__phone { display: none; }

@media (max-width: 900px) {
  .hero { position: relative; color: var(--ink); }
  .hero.bg-hero { background: var(--cream); }
  .hero__phone { display: block; }
  .hero__phone-photo img {
    width: 100%; aspect-ratio: 5 / 4; max-height: 36svh; object-fit: cover; object-position: 50% 40%;
  }
  .hero__shade { min-height: 0; padding-top: 0; background: none; }
  .hero__inner { display: block; padding-top: 1.4rem; padding-bottom: 0; }
  .hero__text { display: flex; flex-direction: column; max-width: none; }
  .hero .eyebrow--light { color: var(--sage-text); margin-bottom: 0.6rem; }
  .hero h1 { color: var(--forest-deep); margin-bottom: 1.2rem; }
  .hero .button-row { order: 3; flex-direction: column; gap: 0.7rem; margin-top: 0; }
  .hero .button { width: 100%; min-height: 54px; }
  .hero .button--light { background: var(--forest); border-color: var(--forest); color: var(--on-dark); }
  .hero .button--ghost { background: transparent; border-color: var(--forest); color: var(--forest-deep); }
  .hero__lede { order: 4; margin: 1.5rem 0 0; font-size: var(--step-0); color: var(--ink-soft); }

  .seal {
    position: absolute; right: var(--gutter); top: calc(min(80vw, 36svh) - 108px);
    width: 96px; height: 96px; outline-offset: 3px; background: rgba(27, 58, 39, 0.82);
  }
  .seal__n { font-size: 2rem; }
  .seal__word { font-size: 0.8rem; }
  .seal__sub { font-size: 0.5rem; margin-top: 0.3rem; }

  .infobar {
    grid-template-columns: 1fr; gap: 0.8rem; margin: 1.6rem 0 2.4rem; padding-top: 1.2rem;
    border-top: 1px solid var(--line);
  }
  .infobar div, .infobar div + div { padding: 0; border: 0; }
  .infobar dt { color: var(--sage-text); }
  .infobar dd { color: var(--ink); }
}

.pagebanner { background: var(--cream-deep); border-bottom: 1px solid var(--line); padding-block: clamp(2.75rem, 6vw, 4.5rem); }
.pagebanner h1 { margin-bottom: 0.6rem; }
.pagebanner .lede { margin-bottom: 0; }

.split { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.split--flip .split__media { order: -1; }
.split__media picture img, .split__media .photo-to-come { border-radius: var(--radius); box-shadow: var(--shadow); }
.split__media img { width: 100%; }
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; }
  .split--flip .split__media { order: 0; }
}

.trees { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.tree-card {
  display: grid; grid-template-columns: 170px 1fr; gap: 1.25rem; align-items: center;
  padding: 1rem; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
}
.tree-card__media img, .tree-card__media .photo-to-come { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 4px; }
.tree-card__media .photo-to-come { padding: 0.5rem; }
.tree-card__tag { margin: 0 0 0.3rem; font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--sage-text); }
.tree-card h3 { margin-bottom: 0.4rem; }
.tree-card p:last-child { margin: 0; color: var(--ink-soft); font-size: 0.97rem; }
.note { margin: 1.75rem 0 0; color: var(--ink-soft); }
@media (max-width: 860px) { .trees { grid-template-columns: 1fr; } }
@media (max-width: 460px) { .tree-card { grid-template-columns: 110px 1fr; gap: 1rem; } }

.howto { display: grid; gap: 1.2rem; margin-top: 1.5rem; }
.howto__step { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; align-items: start; }
.howto__n {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--forest); color: var(--on-dark); font-family: var(--serif); font-weight: 600; font-size: 1.2rem;
}
.howto__step h3 { margin: 0.45rem 0 0.2rem; }
.howto__step p { margin: 0; color: var(--ink-soft); }

.photo-band { color: var(--on-dark); }
.photo-band__shade { background: rgba(17, 33, 22, 0.58); padding-block: clamp(5rem, 14vw, 9rem); }
.photo-band__inner { text-align: center; max-width: 760px; }
.photo-band h2 { color: var(--on-dark); }
.photo-band p { font-size: var(--step-1); color: var(--on-dark-soft); }
.photo-band .button { margin-top: 0.75rem; }

.faq-wrap { max-width: calc(820px + 2 * var(--gutter)); }
.faq__more { margin: 1.75rem 0 0; text-align: center; color: var(--ink-soft); }

.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 960px) { .gallery { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gallery { grid-template-columns: 1fr; } }
.gallery__open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--radius); overflow: hidden; }
.gallery__open img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .3s; }
.gallery__open:hover img { transform: scale(1.03); }
.gallery__cap { margin: 0.6rem 0 0; font-size: 0.93rem; color: var(--ink-soft); }

.story p { color: var(--ink-soft); }
.pledge {
  margin-top: 1.75rem; padding: 1.25rem 1.5rem;
  background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--sage); border-radius: var(--radius);
}
.pledge p { margin: 0; font-family: var(--serif); font-size: var(--step-1); line-height: 1.45; color: var(--forest-deep); }

.timeline { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; counter-reset: none; }
.timeline__item { position: relative; padding: 1.5rem 1.25rem 1.25rem; background: var(--card); border: 1px solid var(--line); border-top: 4px solid var(--forest); border-radius: var(--radius); }
.timeline__when { margin: 0 0 0.4rem; font-family: var(--serif); font-size: 1.6rem; font-weight: 600; color: var(--forest); line-height: 1; }
.timeline__item h3 { margin-bottom: 0.35rem; }
.timeline__item p:last-child { margin: 0; color: var(--ink-soft); }
@media (max-width: 760px) { .timeline { grid-template-columns: 1fr; } }

.contact { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
@media (max-width: 860px) { .contact { grid-template-columns: 1fr; } }
.contact__cards { display: grid; gap: 1rem; }
.contact-card {
  display: grid; grid-template-columns: 48px 1fr; grid-template-rows: auto auto; column-gap: 1rem; align-items: center;
  padding: 1.1rem 1.25rem; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s;
}
.contact-card:hover { border-color: var(--forest); box-shadow: var(--shadow); color: var(--ink); }
.contact-card .icon {
  grid-row: 1 / 3; width: 48px; height: 48px; padding: 12px; border-radius: 50%;
  background: var(--forest); color: var(--on-dark);
}
.contact-card__label { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--sage-text); }
.contact-card__value { font-family: var(--serif); font-size: clamp(1.05rem, 0.95rem + 0.6vw, 1.35rem); font-weight: 600; color: var(--forest-deep); overflow-wrap: anywhere; }
.contact__h { font-size: var(--step-2); margin-top: 2.25rem; }
.visit { display: grid; grid-template-columns: max-content 1fr; gap: 0.75rem 1.5rem; margin: 0 0 1.75rem; }
.visit dt { font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--sage-text); padding-top: 0.2rem; }
.visit dd { margin: 0; }
@media (max-width: 460px) { .visit { grid-template-columns: 1fr; gap: 0.2rem; } .visit dd { margin-bottom: 0.7rem; } }
.contact__side img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow); }
.goodtoknow .contact__h { margin-top: 1.75rem; }
.ticks li { position: relative; padding-left: 1.75rem; margin-bottom: 0.55rem; }
.ticks li::before {
  content: ""; position: absolute; left: 0.2rem; top: 0.35em; width: 0.55rem; height: 0.95rem;
  border-right: 2px solid var(--forest); border-bottom: 2px solid var(--forest); transform: rotate(40deg);
}

.visit-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
.visit-cta h2 { margin-bottom: 0.3rem; }
.visit-cta p { margin: 0; color: var(--on-dark-soft); }
.visit-cta .button-row { margin-top: 0; }

.contact-card__value--email { font-family: var(--sans); font-size: clamp(0.95rem, 0.9rem + 0.4vw, 1.15rem); }

.legal { max-width: calc(760px + 2 * var(--gutter)); }
.legal h2 { font-size: var(--step-2); margin-top: 2.25rem; }
.legal h2:first-child { margin-top: 0; }
.legal dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.4rem 1.25rem; margin: 0 0 1em; }
.legal dt { font-weight: 600; }
.legal dd { margin: 0; }
@media (max-width: 560px) { .legal dl { grid-template-columns: 1fr; } .legal dd { margin-bottom: 0.5rem; } }
.legal code { font-size: 0.92em; background: var(--cream-deep); padding: 0.1em 0.35em; border-radius: 3px; }

.prices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 760px) { .prices { grid-template-columns: 1fr; } }
.price-card { display: flex; flex-direction: column; padding: clamp(1.25rem, 3vw, 2rem); background: var(--card); border: 1px solid var(--line); border-top: 4px solid var(--forest); border-radius: var(--radius); }
.price-card__tag { margin: 0 0 0.35rem; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--sage-text); }
.price-card h2 { font-size: var(--step-2); margin-bottom: 0.6rem; }
.price-card__text { color: var(--ink-soft); }
.price-table { width: 100%; border-collapse: collapse; margin: 0.5rem 0 1rem; font-variant-numeric: tabular-nums; }
.price-table thead th { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--sage-text); text-align: left; padding: 0 0 0.5rem; border-bottom: 2px solid var(--line); }
.price-table thead th:last-child, .price-table td { text-align: right; }
.price-table tbody th, .price-table td { padding: 0.75rem 0; border-bottom: 1px solid var(--line); }
.price-table tbody th { text-align: left; font-weight: 500; }
.price-table td { font-family: var(--serif); font-weight: 600; font-size: 1.15rem; color: var(--forest-deep); }
.price-card__note { margin: auto 0 0; padding-top: 0.25rem; font-size: 0.95rem; color: var(--ink-soft); }
.prices__why { margin: 2rem 0 0.75rem; color: var(--ink-soft); }
.prices__why strong { color: var(--forest-deep); }
.prices__more { margin: 0; color: var(--ink-soft); }

.mapbox { margin: 0 0 1rem; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); aspect-ratio: 4 / 3; background: var(--card); }
.mapbox__load {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;
  width: 100%; height: 100%; padding: 1.25rem; border: 0; cursor: pointer; text-align: center;
  background: repeating-linear-gradient(135deg, var(--card), var(--card) 11px, var(--cream-deep) 11px, var(--cream-deep) 12px);
  color: var(--ink-soft);
}
.mapbox__load .icon { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--forest); color: var(--on-dark); }
.mapbox__title { font-family: var(--serif); font-size: var(--step-1); font-weight: 600; color: var(--forest-deep); }
.mapbox__note { font-size: 0.9rem; }
.mapbox__load:hover .mapbox__title { text-decoration: underline; }
.mapbox__frame { display: block; width: 100%; height: 100%; border: 0; }
.contact__main .button-row { margin-top: 0; }

.bulk__head { max-width: 760px; }
.display-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin-top: 0.5rem; }
@media (max-width: 900px) { .display-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }
.display-card figure { margin: 0; }
.display-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.display-card figcaption { margin-top: 0.6rem; font-size: 0.93rem; color: var(--ink-soft); }

.signs-note {
  display: flex; gap: 0.9rem; align-items: flex-start; margin: 0 0 1.5rem; padding: 1rem 1.15rem;
  background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--forest); border-radius: var(--radius);
}
.signs-note .icon { width: 32px; height: 32px; padding: 7px; border-radius: 50%; background: var(--forest); color: var(--on-dark); }
.signs-note strong { color: var(--forest-deep); }

.bg-hero { background-image: url("/assets/img/hero-960.jpg?v=204617b1"); background-image: image-set(url("/assets/img/hero-960.webp?v=204617b1") type("image/webp"), url("/assets/img/hero-960.jpg?v=204617b1") type("image/jpeg")); background-position: center top; }
@media (min-width: 961px) { .bg-hero { background-image: url("/assets/img/hero-1200.jpg?v=204617b1"); background-image: image-set(url("/assets/img/hero-1200.webp?v=204617b1") type("image/webp"), url("/assets/img/hero-1200.jpg?v=204617b1") type("image/jpeg")); } }
.bg-band { background-image: url("/assets/img/band-960.jpg?v=80571544"); background-image: image-set(url("/assets/img/band-960.webp?v=80571544") type("image/webp"), url("/assets/img/band-960.jpg?v=80571544") type("image/jpeg")); background-position: center top; }
@media (min-width: 961px) { .bg-band { background-image: url("/assets/img/band-1440.jpg?v=80571544"); background-image: image-set(url("/assets/img/band-1440.webp?v=80571544") type("image/webp"), url("/assets/img/band-1440.jpg?v=80571544") type("image/jpeg")); } }
@media (min-width: 1441px) { .bg-band { background-image: url("/assets/img/band-1536.jpg?v=80571544"); background-image: image-set(url("/assets/img/band-1536.webp?v=80571544") type("image/webp"), url("/assets/img/band-1536.jpg?v=80571544") type("image/jpeg")); } }
