:root{font-family:system-ui,sans-serif;background:#faf1e2;color:#143823;--green:#123c24;--cream:#fff8ec;--line:#e7d7bb}*{box-sizing:border-box}body{margin:0}a{color:inherit}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.pill{border:0;border-radius:2rem;background:var(--green);color:#fff;padding:.7rem 1.15rem;cursor:pointer;min-height:44px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:hover,.pill:hover{background:#255b39}button.secondary{background:#e8eddb;color:var(--green)}input,select,textarea{border:1px solid #b9b49f;border-radius:.75rem;background:#fffcf5;padding:.75rem;color:inherit;width:100%;min-height:44px}input[type=checkbox]{width:auto;min-height:0}textarea{min-height:7rem}img{display:block;max-width:100%;object-fit:cover}.wrap{width:min(92%,72rem);margin-inline:auto}.bar{display:flex;align-items:center;gap:1.5rem;min-height:76px}.brand,h1,h2,h3{font-family:Georgia,serif;letter-spacing:-.045em}.brand{font-size:clamp(1.4rem,4vw,2.2rem);font-weight:700;text-decoration:none;white-space:nowrap;display:flex;align-items:center;gap:.7rem}.orange{display:block;background:#f68120;width:25px;height:25px;border-radius:100%;position:relative;margin-top:8px}.orange:before,.orange:after{content:"";position:absolute;background:#21502e;height:11px;width:18px;top:-12px}.orange:before{left:-4px;border-radius:0 100%;transform:rotate(10deg)}.orange:after{right:-5px;border-radius:100% 0}.tagline{text-transform:uppercase;letter-spacing:.22em;font-size:.7rem;font-weight:750}.bar>.tagline{padding-left:1.5rem;border-left:1px solid #cdbb9f}.bar nav{margin-left:auto;display:flex;gap:1.3rem;align-items:center;font-weight:700}.bar nav a{text-decoration:none}.menu{display:none}.hero{background:linear-gradient(90deg,#172519ce,transparent 90%),url('/hero.webp') center 54%/cover;min-height:clamp(23rem,44vw,37rem);color:#fff8eb;padding:clamp(3.5rem,7vw,6rem) 0 5rem}.hero .tagline{font-size:.88rem;margin-top:1.8rem}.hero h1{font-size:clamp(3.3rem,8.5vw,7.2rem);line-height:.89;margin:0;text-wrap:balance}.hero h1:after{display:block;content:"";height:12px;width:2.4ch;border-top:6px solid #bdcd7d;border-radius:50%;margin:.2em 0 0 2ch}.search{display:grid;grid-template-columns:3fr 1fr auto;gap:.55rem;padding:.55rem;background:var(--cream);border-radius:3rem;box-shadow:0 4px 12px #33200b36;max-width:54rem;margin:-1.95rem auto 2.75rem;position:relative}.search input,.search select{background:transparent;border:0}.search select{border-left:1px solid var(--line);border-radius:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.35rem}.card,.panel{background:var(--cream);border:1px solid var(--line);border-radius:1rem;box-shadow:0 3px 7px #674a1213}.card{overflow:hidden}.card a{text-decoration:none;display:block}.card a:hover h3{text-decoration:underline}.card img,.placeholder{width:100%;aspect-ratio:1.65}.placeholder{display:grid;place-items:center;background:#dbe4c7;font-size:3rem}.card .body,.panel{padding:1.15rem}.card h3{font-size:1.65rem;margin:0 0 .35rem}.card p{margin:.25rem 0}.page{padding-block:2rem}.page h1{font-size:clamp(2.5rem,7vw,4.5rem);line-height:1;margin:.55rem 0 1rem}.page h2,#results h2{font-size:2rem;margin:1.8rem 0 .75rem}.page p,.page li{line-height:1.55}.banner{width:100%;aspect-ratio:3.4;border-radius:1rem}.edit{display:grid;gap:.85rem;max-width:42rem}.edit label{display:grid;gap:.3rem;font-weight:650}.edit button{justify-self:start}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.notice{border-left:4px solid #b96d22;padding:.7rem 1rem;background:#fff2d7}.footer{display:flex;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-block:1.5rem;border-top:1px solid var(--line)}.sr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.gallery img{width:100%;aspect-ratio:1.25;border-radius:1rem}.preview-image{width:min(100%,26rem);aspect-ratio:2}.empty{padding:1rem 0}
@media(max-width:820px){.bar>.tagline{display:none}.bar{min-height:64px}.menu{display:inline-flex;margin-left:auto}.bar nav{display:none}.bar nav.open{display:grid;position:absolute;z-index:2;right:4%;top:62px;background:var(--cream);padding:1rem;border:1px solid var(--line);border-radius:1rem}.hero{background-position:58% center;min-height:21rem}.search{grid-template-columns:1fr;border-radius:1rem;margin-top:-1.6rem;padding:0;background:none;box-shadow:none}.search input,.search select{background:var(--cream);border:1px solid var(--line);border-radius:2rem;box-shadow:0 2px 5px #33200b22;padding-inline:1rem}.banner{aspect-ratio:1.9}.footer{flex-wrap:wrap}}
@media print{header,footer,.no-print{display:none!important}body{background:white;color:black}}
[hidden]{display:none!important}.page section.panel{margin-bottom:1rem}.pick+.pick{border-top:1px solid var(--line);margin-top:1rem;padding-top:.4rem}output{display:block}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #bc660e;outline-offset:3px}


.card a[href^="#market/"] .body {
  padding-top: 0;
}

.card a[href^="#market/"] h3 {
  margin: 0 -1.15rem .65rem;
  padding: .75rem 1.15rem;
  background: var(--green);
  color: #fff;
  font-size: 1.125rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

/* Shared typography, surfaces and spacing */
:root {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  background: #f7f7f0;
  color: #20382a;
  --green: #19452f;
  --cream: #fffef9;
  --line: #dce3d7;
  --muted: #506557;
  --radius: .875rem;
  --shadow: 0 4px 18px #183b2410;
  line-height: 1.55;
}
body { -webkit-text-size-adjust: 100%; }
main { display: flow-root; }
.wrap { width: min(calc(100% - 3rem), 72rem); }
h1, h2, h3, .brand { letter-spacing: -.035em; }
h1, h2, h3 { line-height: 1.12; text-wrap: balance; }
.header { position: relative; z-index: 3; background: var(--cream); border-bottom: 1px solid var(--line); }
.bar { min-height: 72px; gap: 1.15rem; }
.brand { font-size: clamp(1.4rem, 3vw, 1.95rem); }
.bar > .tagline { color: var(--muted); letter-spacing: .13em; padding-left: 1.15rem; border-color: var(--line); }
.bar nav { gap: 1.25rem; font-size: .93rem; font-weight: 650; }
.bar nav a:hover { text-decoration: underline; text-underline-offset: .25em; }
button, .pill { border-radius: .65rem; font-size: .9375rem; font-weight: 650; padding: .65rem 1rem; }
button.secondary { background: #e7eee4; }
button.secondary:hover { background: #dbe8da; }
button:disabled { opacity: .65; cursor: wait; }
input, select, textarea { background: #fff; border-color: #b9c8bb; border-radius: .6rem; padding: .65rem .8rem; font-size: 1rem; }
input[type=checkbox] { accent-color: var(--green); }
textarea:focus-visible, summary:focus-visible { outline: 3px solid #bc660e; outline-offset: 3px; }
.hero { min-height: clamp(22rem, 40vw, 34rem); padding: clamp(3.5rem, 8vw, 6rem) 0 5rem; }
.hero h1 { font-size: clamp(3rem, 8vw, 6.75rem); line-height: .97; }
.hero .tagline { letter-spacing: .16em; }
.search { border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 24px #183b2424; margin-bottom: 1.5rem; }
#near-me { background: #e7eee4; color: var(--green); }
#near-me:hover { background: #dbe8da; }
#home-intro, #results h2, .page h2 { font-size: clamp(1.7rem, 3.5vw, 2.45rem); }
#results section[aria-labelledby] { margin-block: clamp(1.75rem, 4vw, 3.25rem) !important; }
.page { padding-block: clamp(1.5rem, 4vw, 3.25rem); }
.page > p { max-width: 68ch; }
.page > p:first-child { margin-top: 0; font-size: .9rem; color: var(--muted); }
.page h1 { font-size: clamp(2.25rem, 5.5vw, 4rem); line-height: 1.06; overflow-wrap: anywhere; }
.page h2, #results h2 { margin: 2rem 0 .85rem; }
.page p, .page li { line-height: 1.65; }
.page li + li { margin-top: .3rem; }
.grid { gap: clamp(1rem, 2.5vw, 1.5rem); }
.card, .panel { border-radius: var(--radius); box-shadow: var(--shadow); }
.card .body, .panel { padding: 1.2rem; }
.card h3 { font-size: 1.4rem; line-height: 1.2; overflow-wrap: anywhere; }
.card p { color: var(--muted); font-size: .9375rem; }
.card a[href^="#market/"] h3 { margin-inline: -1.2rem; padding-inline: 1.2rem; font-size: 1.125rem; }
.banner, .gallery img { border-radius: var(--radius); }
.edit { gap: 1rem; }
.edit label { font-size: .9375rem; gap: .35rem; }
.edit fieldset { min-width: 0; margin: 0; padding: .8rem 1rem 1rem; border: 1px solid var(--line); border-radius: var(--radius); }
.edit legend { padding-inline: .4rem; font-weight: 650; }
[data-photo-slot] + [data-photo-slot] { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
[data-photo-slot] > strong { display: block; margin-bottom: .35rem; }
[data-photo-slot] > label { margin-top: .35rem; }
[data-photo-slot] input[type=file] { max-width: 100%; }
[data-clear-photo]:not([hidden]) { margin-top: .5rem; }
.photo-size, .save-status { margin-block: .35rem 0; }
.notice { border-radius: .35rem; }
.footer { font-size: .9rem; color: var(--muted); margin-top: clamp(2rem, 5vw, 4rem); }
#nearby { padding: clamp(1rem, 4vw, 2rem); max-height: 90vh; }
#nearby::backdrop { background: #14291db3; }
#nearby h2 { margin-top: .2rem; }
@media (max-width: 820px) {
  .bar { min-height: 62px; }
  .bar nav.open { top: calc(100% - .25rem); right: 1rem; gap: .35rem; padding: .65rem; box-shadow: var(--shadow); }
  .bar nav a { padding: .6rem .8rem; }
  .search { padding: .7rem; margin-top: -1.7rem; background: var(--cream); }
  .search input, .search select { border: 1px solid #b9c8bb; border-radius: .6rem; box-shadow: none; background: #fff; }
}
@media (max-width: 480px) {
  .wrap { width: calc(100% - 2rem); }
  .hero { min-height: 20rem; background-position: 57% center; }
  .panel { padding: 1rem; }
  .edit fieldset { padding-inline: .7rem; }
  .footer { flex-direction: column; gap: .65rem; }
}
