@font-face{font-family:Lato;src:url('fonts/lato-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Lato;src:url('fonts/lato-bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--paper:#f7f6ef;--ink:#243e30;--muted:#657063;--olive:#b7bd8f;--line:#dddfd1;--white:#fffefb;font-family:Lato,Arial,sans-serif;color:var(--ink);background:var(--paper);color-scheme:light}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #64793f;outline-offset:5px}[hidden]{display:none!important}svg{width:24px;height:24px;flex-shrink:0}img{display:block;max-width:100%}
.preview-notice{background:#e9ebdc;color:#435237;text-align:center;font-size:12px;line-height:1.5;padding:8px 18px}.header,main,footer{width:min(100% - 40px,1060px);margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;padding-block:22px;border-bottom:1px solid var(--line)}.brand{display:block;width:146px}.brand img{width:100%;height:auto}.bag-button{border:1px solid var(--line);background:transparent;display:grid;place-items:center;width:48px;height:48px;border-radius:50%}.bag-button:hover{background:#e9ebdc}.intro{padding:38px 0 30px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.7;margin:0 0 16px}.eyebrow>span{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#809553}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(40px,7.5vw,68px);font-weight:400;letter-spacing:-.045em;line-height:1.06;margin:0 0 20px}h1 em{color:#768449;font-weight:400}.intro-copy{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 26px}.search{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--white);border-radius:12px;padding:0 16px;max-width:500px}.search svg{width:20px;color:#7a836d}.search input{min-width:0;width:100%;padding:16px 0;border:0;background:transparent;color:var(--ink);font-size:16px}.search input:focus-visible{outline-offset:0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading h2{font-size:21px;letter-spacing:-.02em;margin:0}.section-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.category-card{min-width:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden;text-decoration:none;transition:box-shadow .18s,border-color .18s}.category-card:hover,.category-card.is-selected{border-color:#7c8b57;box-shadow:0 5px 16px #243e3012}.card-image{position:relative;background:#e7e8db;aspect-ratio:4/3;overflow:hidden}.card-image>img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.card-image--illustration{display:grid;place-items:center;background:radial-gradient(circle at 50% 55%,#d5dcc0 0 28%,transparent 28.5%),#eceee2;color:#63774f}.card-image--illustration>svg{width:54px;height:54px;stroke-width:1.1}.card-tag{position:absolute;top:10px;left:10px;background:var(--white);font-size:10px;padding:5px 9px;border-radius:20px;font-weight:700}.card-copy{position:relative;flex:1;padding:14px 12px 43px}.card-copy h3{font-size:16px;line-height:1.25;margin:0 0 7px;overflow-wrap:anywhere;letter-spacing:-.015em}.card-copy p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.card-arrow{position:absolute;bottom:11px;right:12px;display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:#586f43}.card-arrow svg{width:15px;height:15px}.contact-strip{margin:34px 0 26px;padding:23px 0;border-block:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center}.contact-strip strong{font-size:15px}.contact-strip p{font-size:13px;color:var(--muted);margin:8px 0 0}.contact-strip a{min-height:44px;display:flex;align-items:center;gap:12px;text-decoration:none;font-size:15px;font-weight:700}footer{padding-bottom:max(24px,env(safe-area-inset-bottom));font-size:12px;line-height:1.7;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;color:var(--muted)}footer p{width:100%;font-size:11px;margin:2px 0 0}.selection{margin:0 0 28px;background:#e9eddd;border:1px solid #c8d2b1;border-radius:14px;padding:22px}.selection .eyebrow{margin-bottom:6px}.selection h2{margin:0;font-family:Georgia,serif;font-weight:400;font-size:30px;overflow-wrap:anywhere}.selection p:not(.eyebrow){font-size:14px;line-height:1.6}.selection a{display:inline-flex;min-height:44px;align-items:center;gap:12px;font-size:14px;font-weight:700}.selection a svg{width:18px}.no-results{padding:26px 0;line-height:1.6;color:var(--muted)}dialog{width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--line);padding:30px;border-radius:20px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#15241ccc}dialog h2{font-family:Georgia,serif;font-size:30px;font-weight:400}dialog p{font-size:15px;line-height:1.7;color:var(--muted)}.dialog-close{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;background:transparent;font-size:30px;color:var(--ink)}.dialog-icon svg{width:36px;height:36px}.primary-button{border:0;border-radius:10px;padding:14px 20px;background:var(--ink);color:white;min-height:48px;width:100%}.sr-only{position:absolute;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;top:-100px;left:16px;padding:12px;background:white;z-index:10}.skip-link:focus{top:10px}.wide-only{display:none}
@media(min-width:600px){.header,main,footer{width:min(100% - 64px,1060px)}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.intro{padding:46px 0 36px}.wide-only{display:initial}.card-copy{padding:18px 16px 46px}.card-copy h3{font-size:18px}.card-copy p{font-size:13px}.eyebrow{font-size:12px}.brand{width:170px}}
@media(min-width:1000px){.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.intro{padding-top:50px}.header{padding-block:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Read-only product list: the BB card is the first connected category. */
.product-intro { padding: 26px 0 20px; }
.back-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; text-decoration: none; margin-bottom: 22px; }
.back-link span { font-size: 23px; }
.product-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.product-heading > div { min-width: 0; }
.product-heading h1 { font-size: clamp(38px, 6.5vw, 58px); margin-bottom: 16px; }
.product-heading .eyebrow { margin-bottom: 12px; }
.product-heading .intro-copy { margin-bottom: 0; }
.category-photo { display: none; width: 190px; height: 140px; object-fit: cover; border-radius: 18px; }
.product-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.product-sections { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 0 28px; }
.product-sections a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 15px; border: 1px solid var(--line); background: var(--white); border-radius: 25px; text-decoration: none; font-size: 13px; }
.product-sections a:hover { background: #e9eddd; border-color: #9fac86; }
.product-group { margin-bottom: 30px; scroll-margin-top: 20px; }
.product-list { display: grid; gap: 12px; }
.product { min-width: 0; display: flex; align-items: flex-start; gap: 14px; padding: 18px 16px; border: 1px solid var(--line); background: var(--white); border-radius: 14px; }
.product--unavailable { background: #f0f0e9; }
.product-image { width: 64px; height: 64px; object-fit: contain; background: white; border-radius: 10px; flex-shrink: 0; }
.product-copy { flex: 1; min-width: 0; }
.product-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.product-title-row h3 { font-size: 17px; line-height: 1.35; margin: 0; overflow-wrap: anywhere; }
.product-price { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; line-height: 1.4; font-size: 16px; font-weight: 700; white-space: nowrap; }
.product-price del { color: var(--muted); font-size: 12px; font-weight: 400; }
.product-price .price-unknown { max-width: 85px; white-space: normal; font-size: 12px; text-align: right; }
.product-description { color: #586454; font-size: 14px; line-height: 1.65; margin: 8px 0 0; overflow-wrap: anywhere; }
.product-allergens { color: #697061; font-size: 12px; line-height: 1.6; margin: 8px 0 0; overflow-wrap: anywhere; }
.product-allergens strong { font-weight: 700; }
.product-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.badge { display: inline-block; margin-top: 8px; padding: 4px 7px; background: #e9eddd; border-radius: 5px; color: #425b32; font-size: 10px; line-height: 1.4; font-weight: 700; }
.badge--unavailable { background: #f0e3d6; color: #7a4825; }
.catalog-message { padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); line-height: 1.6; }
.catalog-message h2 { font-size: 20px; }
.catalog-message .primary-button { display: inline-flex; justify-content: center; text-decoration: none; width: auto; }
@media (max-width: 359px) {
  .product { padding: 14px 12px; gap: 10px; flex-wrap: wrap; }
  .product-title-row { flex-wrap: wrap; }
  .product-image { width: 50px; height: 50px; }
  .product-copy { flex-basis: 160px; }
}
@media (min-width: 600px) {
  .category-photo { display: block; }
  .product { padding: 22px; }
  .product-image { width: 88px; height: 88px; }
  .product-title-row h3 { font-size: 19px; }
  .product-description { font-size: 15px; }
}
@media (min-width: 1000px) {
  .product-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
