:root { --page:#b3f5a1; --green:#245f31; --green-dark:#173f21; --ink:#121212; --muted:rgba(18,18,18,.68); --line:rgba(18,18,18,.18); --soft:rgba(255,255,255,.28); }
* { box-sizing:border-box; }
body { margin:0; color:rgba(18,18,18,.75); background:var(--page); font:16px/1.55 Inter,Arial,Helvetica,sans-serif; }
img { display:block; max-width:100%; }
a { color:inherit; }
.wrap { width:min(1080px,calc(100% - 2rem)); margin:0 auto; }
.skip { position:absolute; top:-4rem; left:1rem; padding:.7rem 1rem; background:#fff; z-index:20; }
.skip:focus { top:1rem; }
header { border-bottom:1px solid var(--line); }
.header-inner { min-height:94px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.logo { display:flex; align-items:center; gap:.85rem; color:var(--ink); font-size:1.15rem; font-weight:500; text-decoration:none; }
.logo img { width:72px; height:72px; object-fit:contain; }
.back { color:var(--ink); font-weight:500; text-decoration:none; }
.back:hover, .back:focus-visible { text-decoration:underline; }


.breadcrumb { display:flex; flex-wrap:wrap; gap:.5rem; padding:1.4rem 0; color:var(--muted); font-size:.9rem; }
.breadcrumb a { color:var(--green); }
.detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.85fr); gap:clamp(2rem,6vw,5rem); align-items:start; padding:1rem 0 4.5rem; }
.photo { position:relative; overflow:hidden; border-radius:16px; background:var(--soft); }
.photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.origin-badge { position:absolute; right:.65rem; bottom:.65rem; display:inline-flex; align-items:center; gap:.35rem; padding:.28rem .46rem; border-radius:.35rem; background:rgba(255,255,255,.88); color:#252525; font-size:.72rem; font-weight:600; }
.eyebrow { margin:0 0 .55rem; color:var(--green); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
h1 { margin:0 0 1rem; color:var(--ink); font-size:clamp(2.4rem,6vw,4.1rem); font-weight:400; line-height:1; }
.description { margin:0 0 2rem; color:#3d4942; font-size:1.08rem; }
h2 { margin:0 0 .85rem; color:var(--ink); font-size:1.15rem; font-weight:400; }
.availability { margin:1.6rem 0 0; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.18); color:#3d4942; }
.visit { border-top:1px solid var(--line); background:rgba(255,255,255,.14); }
.visit-inner { display:grid; grid-template-columns:1fr 1fr; gap:2rem; padding:2rem 0; }
.visit h2 { margin-bottom:.35rem; }
.visit p { margin:.2rem 0; }
footer { padding:1.5rem 1rem; border-top:1px solid var(--line); color:var(--ink); background:var(--page); text-align:center; font-size:.9rem; }
@media (max-width:720px) {
  .header-inner { min-height:76px; }
  .logo img { width:56px; height:56px; }
  .detail { grid-template-columns:1fr; padding-bottom:3rem; }
  .visit-inner { grid-template-columns:1fr; gap:1.25rem; }

}

.product-notes { max-width:68ch; }
.product-notes p { margin:0 0 1.2rem; }
.unavailable-product { max-width:800px; padding:1rem 0 3.5rem; }
.product-copy { min-width:0; }
.product-copy h1 { overflow-wrap:anywhere; }
.product-subtitle { margin:0 0 1rem; color:var(--green-dark); font-size:1.15rem; font-weight:500; }
.local-hook { margin:0 0 1.5rem; color:var(--muted); }
.recipe { margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--line); }
.recipe p { margin:0; }
.unavailable-banner { display:flex; align-items:baseline; flex-wrap:wrap; gap:.25rem .75rem; margin:1rem 0 1.5rem; padding:.65rem .85rem; border:1px solid #b54848; border-left:4px solid #a32c2c; border-radius:8px; color:#702222; background:#fff0f0; font-size:.9rem; }
.unavailable-banner a { color:inherit; text-underline-offset:.2rem; }
.catalog-button { display:inline-block; padding:.75rem 1rem; border:1px solid #173f21; border-radius:999px; background:#173f21; color:#fff; font-weight:600; text-decoration:none; text-align:center; }
.catalog-button:focus-visible, .product-directory a:focus-visible { outline:3px solid #121212; outline-offset:4px; }
.all-products-link { display:inline-block; margin-left:.65rem; text-underline-offset:.2rem; }
.directory { padding-bottom:3rem; }
.directory > p { max-width:68ch; }
.product-directory { list-style:none; padding:0; margin:2rem 0 0; display:grid; grid-template-columns:1fr; gap:.5rem; }
.product-directory a { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.35rem 1rem; padding:.7rem 1rem; border:1px solid var(--line); border-radius:8px; text-decoration:none; background:var(--soft); }
.product-directory a:hover { border-color:var(--green-dark); }
.stock-state { font-size:.9rem; }
.in-stock { color:#173f21; }
.out-of-stock { color:#702222; }
@media (max-width:720px) {
  .header-inner { flex-wrap:wrap; padding-block:.75rem; gap:.75rem; }
  .logo { min-width:0; }
  .logo img { flex-shrink:0; }
  .back { font-size:.95rem; }
  .product-directory { grid-template-columns:1fr; }
  .all-products-link { display:block; margin:.5rem 0 0; }
}


.photo.no-photo { display:grid; place-items:center; aspect-ratio:4/3; background:#e5e9df; color:#56634f; font-size:1rem; }

.product-media { display:grid; gap:1rem; min-width:0; }
.product-media .photo img { aspect-ratio:auto; }
