/* FarmFinder Option C components.
   Reference: docs/design/option-c/css/option-c.css and the boards beside it.
   Every class is namespaced ff-, so rebuilt pages take their whole
   presentation from here and the legacy feature stylesheets never apply to
   them. One phone breakpoint at 760px. */

:root {
  --paper:#FBF9F4; --white:#FFFFFF; --ink:#15231B; --text:#4F5F55;
  --line:#E3E0D6; --line2:#D5D2C6; --hair:#EFEDE6; --leaf:#78B448;
  --orchard:#2E6B2B; --tint:#EEF5E4; --apricot:#F2A74B; --atint:#FDF1E0;
  --onink:#C9D6C9; --danger:#B23A2B; --danger-tint:#FBE9E5;
  --display:"Bricolage Grotesque","Figtree",sans-serif;
  --body:"Figtree","Segoe UI",Helvetica,Arial,sans-serif;
  --shadow-lift:0 1px 2px rgba(21,35,27,.04);
  --shadow-float:0 20px 50px rgba(21,35,27,.16);
}

/* Page frame ------------------------------------------------------------ */

.ff-page { background:var(--paper); color:var(--ink); font:400 16px/1.55 var(--body); }
.ff-page :where(h1,h2,h3,h4,p,ul,ol,dl,dd,figure) { margin:0; }
.ff-wrap { width:100%; max-width:1200px; margin:0 auto; padding:0 24px; }
.ff-wrap--narrow { max-width:860px; }
.ff-sr { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Type ------------------------------------------------------------------ */

.ff-h1 { font:800 clamp(34px,4.4vw,52px)/1.02 var(--display); letter-spacing:-.025em; text-wrap:balance; color:inherit; }
.ff-h1--md { font-size:clamp(32px,4vw,48px); }
.ff-h2 { font:700 clamp(26px,3vw,34px)/1.1 var(--display); letter-spacing:-.02em; text-wrap:balance; color:inherit; }
.ff-h3 { font:700 21px/1.2 var(--display); letter-spacing:-.015em; text-wrap:balance; color:inherit; }
.ff-h4 { font:700 16px/1.3 var(--body); color:inherit; }
.ff-title { font:700 24px/1.15 var(--display); letter-spacing:-.015em; color:inherit; }
.ff-lead { font-size:18px; line-height:1.5; color:var(--text); max-width:640px; text-wrap:balance; }
.ff-lead--sm { font-size:17px; max-width:620px; }
.ff-p { color:var(--text); }
.ff-small { font-size:14px; line-height:1.5; color:var(--text); }
.ff-xs { font-size:13px; line-height:1.45; color:var(--text); }
.ff-num { font-family:var(--display); font-weight:700; letter-spacing:-.02em; }
.ff-strong { font-weight:600; color:var(--ink); }

/* Icons ----------------------------------------------------------------- */

.ff-page .ff-icon { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; padding:0; background:none; border-radius:0; color:inherit; }
.ff-icon--sm { width:16px !important; height:16px !important; }
.ff-icon--lg { width:22px !important; height:22px !important; }

/* Links and buttons ----------------------------------------------------- */

.ff-link { display:inline-flex; align-items:center; gap:6px; font-weight:600; color:var(--orchard); text-decoration:none; }
.ff-link:hover { color:var(--ink); }
.ff-back { display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--orchard); text-decoration:none; }
.ff-back:hover { color:var(--ink); }
.ff-back .ff-icon { transform:rotate(90deg); }

.ff-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 22px; border:1px solid transparent; border-radius:12px; font:600 15px/1.2 var(--body); text-align:center; text-decoration:none; white-space:nowrap; cursor:pointer; box-shadow:none; }
.ff-btn:focus-visible { outline:3px solid var(--orchard); outline-offset:3px; }
.ff-btn[disabled], .ff-btn[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
.ff-btn--primary { background:var(--orchard); color:#fff; }
.ff-btn--primary:hover { background:#255823; color:#fff; }
.ff-btn--leaf { background:var(--leaf); color:var(--ink); }
.ff-btn--leaf:hover { background:#6AA63D; color:var(--ink); }
.ff-btn--dark { background:var(--ink); color:#fff; }
.ff-btn--dark:hover { background:#0E1812; color:#fff; }
.ff-btn--secondary { background:#fff; border-color:var(--line2); color:var(--ink); }
.ff-btn--secondary:hover { border-color:var(--ink); color:var(--ink); }
.ff-btn--ghost { background:transparent; border-color:#5B6D5E; color:#fff; }
.ff-btn--ghost:hover { background:rgba(255,255,255,.08); color:#fff; }
.ff-btn--sm { min-height:40px; padding:0 16px; border-radius:10px; font-size:14px; }
.ff-btn--md { min-height:44px; padding:0 18px; }
.ff-btn--block { width:100%; }
.ff-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }

/* Surfaces and layout --------------------------------------------------- */

.ff-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px; }
.ff-card--tint { background:var(--tint); border-color:#DCE5CF; }
.ff-card--ink { background:var(--ink); border-color:var(--ink); color:#fff; }
.ff-card--ink :is(.ff-p,.ff-small,.ff-lead) { color:var(--onink); }
.ff-stack { display:flex; flex-direction:column; gap:16px; min-width:0; }
.ff-stack--xs { gap:4px; }
.ff-stack--sm { gap:10px; }
.ff-stack--lg { gap:24px; }
.ff-stack--xl { gap:36px; }
.ff-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.ff-between { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.ff-grid { display:grid; gap:20px; }
.ff-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ff-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ff-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ff-split-side { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:32px; align-items:start; }
.ff-sticky { position:sticky; top:96px; }
.ff-section { padding:56px 0; }
.ff-section--white { background:#fff; border-block:1px solid var(--line); }
.ff-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.ff-divider { border:0; border-top:1px solid var(--line); margin:0; }

/* Page heads ------------------------------------------------------------ */

.ff-page-head { background:var(--ink); color:#fff; padding:56px 0 52px; }
.ff-page-head .ff-lead { color:var(--onink); }
.ff-page-head--paper { background:var(--paper); color:var(--ink); border-bottom:1px solid var(--line); padding:44px 0 40px; }
.ff-page-head--paper .ff-lead { color:var(--text); }
.ff-page-head--plain { background:transparent; color:var(--ink); padding:36px 0 20px; }
.ff-page-head--plain .ff-lead { color:var(--text); }
.ff-crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:14px; color:var(--onink); }
.ff-crumbs a { color:inherit; text-decoration:none; }
.ff-crumbs a:hover { text-decoration:underline; }
.ff-page-head--paper .ff-crumbs, .ff-page-head--plain .ff-crumbs { color:var(--text); }

/* Badges, dots, tiles --------------------------------------------------- */

.ff-tag { display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:4px 10px; border-radius:8px; background:var(--tint); color:var(--orchard); font-size:13px; font-weight:600; line-height:1.25; text-decoration:none; }
.ff-tag--apricot { background:var(--atint); color:#8A4F0B; }
.ff-tag--muted { background:#F1EFE8; color:var(--text); }
.ff-tag--dark { background:rgba(21,35,27,.78); color:#fff; }
a.ff-tag:hover { background:#E1EED3; color:var(--ink); }
.ff-tags { display:flex; flex-wrap:wrap; gap:6px; }
.ff-pill { display:inline-flex; align-items:center; min-height:26px; padding:0 10px; border-radius:999px; background:var(--tint); color:var(--orchard); font-size:13px; font-weight:600; white-space:nowrap; }
.ff-pill--apricot { background:var(--atint); color:#8A5A14; }
.ff-pill--muted { background:#F1EFE8; color:var(--text); }
.ff-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--leaf); flex:none; }
.ff-dot--muted { background:#B9B5A8; }
.ff-tile { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; flex:none; border-radius:12px; background:var(--tint); color:var(--orchard); }
.ff-tile--sm { width:32px; height:32px; border-radius:10px; }
.ff-tile .ff-icon { width:20px; height:20px; }
.ff-tile--sm .ff-icon { width:16px; height:16px; }

/* Forms ----------------------------------------------------------------- */

.ff-field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.ff-label { font-size:14px; font-weight:600; color:var(--ink); }
.ff-hint { font-size:13px; color:var(--text); }
.ff-input, .ff-select { width:100%; min-height:48px; padding:10px 14px; border:1px solid var(--line2); border-radius:12px; background:#fff; color:var(--ink); font:inherit; font-size:15px; line-height:1.3; }
.ff-input::placeholder { color:#7D8A82; }
.ff-input:focus, .ff-select:focus { outline:2px solid var(--leaf); outline-offset:1px; border-color:var(--orchard); }
.ff-select { appearance:none; -webkit-appearance:none; padding-right:40px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2315231B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.ff-select--sm { min-height:44px; }
.ff-select.is-set { border:2px solid var(--orchard); background-color:var(--tint); font-weight:600; padding:9px 39px 9px 13px; }
.ff-search { display:flex; align-items:center; gap:10px; min-height:48px; padding:0 14px; border:1px solid var(--line2); border-radius:12px; background:#fff; color:var(--text); }
.ff-search:focus-within { outline:2px solid var(--leaf); outline-offset:1px; border-color:var(--orchard); }
.ff-search input { flex:1; min-width:0; min-height:46px; padding:0; border:0; outline:0; background:transparent; color:var(--ink); font:inherit; font-size:15px; }
.ff-search input::placeholder { color:#7D8A82; }

/* Notices and lists ----------------------------------------------------- */

.ff-notice { display:flex; align-items:flex-start; gap:10px; padding:14px 16px; border-radius:12px; font-size:14px; line-height:1.45; color:var(--ink); }
.ff-notice .ff-icon { margin-top:1px; }
.ff-notice--info { background:var(--tint); }
.ff-notice--warn { background:var(--atint); color:#5A3A0A; }
.ff-notice--neutral { background:#F1EFE8; }
.ff-list { list-style:none; padding:0; display:flex; flex-direction:column; gap:10px; }
.ff-list li { display:flex; align-items:flex-start; gap:10px; font-size:15px; color:var(--text); }
.ff-list li .ff-icon { margin-top:3px; color:var(--orchard); }
.ff-kv { display:grid; gap:14px; }
.ff-kv > div { display:flex; flex-direction:column; gap:2px; }
.ff-kv dt { font-size:13px; color:var(--text); }
.ff-kv dd { font-size:15px; font-weight:600; color:var(--ink); }

/* Images ---------------------------------------------------------------- */

.ff-ph { position:relative; overflow:hidden; border-radius:12px; background:var(--tint); }
.ff-ph img { display:block; width:100%; height:100%; object-fit:cover; }
.ff-ph-empty { display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:var(--orchard); }
.ff-ph-empty .ff-icon { width:24px; height:24px; }
.ff-ph-tag { position:absolute; left:10px; bottom:10px; padding:4px 8px; border-radius:8px; background:rgba(21,35,27,.78); color:#fff; font-size:12px; font-weight:600; line-height:1.3; }
.ff-ph-tag--right { left:auto; right:10px; }

/* Pager ----------------------------------------------------------------- */

.ff-pager { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; font-size:14px; color:var(--text); }

/* Footer: the slim variant used across the shopper journey -------------- */

.site-footer--slim { display:block; padding:0; background:#fff; color:var(--ink); border-top:1px solid var(--line); }
.site-footer--slim .site-footer-slim { max-width:1200px; margin:0 auto; padding:24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; font-size:13px; color:var(--text); }
.site-footer--slim .site-footer-slim a { color:var(--text); text-decoration:none; }
.site-footer--slim .site-footer-slim a:hover { color:var(--ink); }
.site-footer--slim .site-footer-slim-brand { display:inline-flex; align-items:center; gap:10px; }
.site-footer--slim .site-footer-slim-brand img { width:auto; height:28px; }
.site-footer--slim .site-footer-slim-links { display:flex; flex-wrap:wrap; gap:16px; }

/* Directory ------------------------------------------------------------- */

.ff-dir-head { padding:36px 0 20px; }
.ff-dir-filters { padding-bottom:28px; }
.ff-filter-card { display:block; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-lift); }
.ff-filter-card > summary { display:none; }
.ff-filter-content { display:grid; grid-template-rows:1fr; }
.ff-filter-body { display:flex; flex-direction:column; gap:16px; min-height:0; overflow:hidden; padding:20px; }
.ff-filter-search { display:flex; flex-wrap:wrap; gap:10px; }
.ff-filter-search .ff-search { flex:1 1 320px; }
.ff-filter-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.ff-filter-foot { display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; }
.ff-filter-chip { display:inline-flex; align-items:center; gap:8px; min-height:32px; padding:4px 10px 4px 12px; border-radius:8px; background:var(--tint); color:var(--orchard); font-size:13px; font-weight:600; text-decoration:none; }
.ff-filter-chip:hover { background:#E1EED3; color:var(--ink); }
.ff-filter-chip span[aria-hidden] { font-size:16px; line-height:1; }
.ff-dir-results { padding-bottom:56px; }
.ff-results-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.ff-results-title { display:flex; flex-wrap:wrap; align-items:baseline; gap:12px; }
.ff-farm-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.ff-farm-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ff-farm-card { display:flex; flex-direction:column; gap:12px; min-width:0; padding:18px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.ff-farm-card .ff-ph { height:140px; border-radius:10px; }
.ff-farm-card-name { font-size:17px; font-weight:700; letter-spacing:-.01em; line-height:1.3; color:var(--ink); }
.ff-farm-card-note { font-size:14px; line-height:1.45; color:var(--text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ff-farm-card-actions { margin-top:auto; display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.ff-farm-card-actions .ff-link { font-size:14px; }
.ff-dir-pager { margin-top:32px; }
.ff-empty { display:flex; flex-direction:column; align-items:center; gap:14px; padding:48px 24px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:16px; }
.ff-empty .ff-tile { width:56px; height:56px; border-radius:16px; }
.ff-empty .ff-tile .ff-icon { width:26px; height:26px; }
.ff-empty .ff-p { max-width:520px; }

/* Farm profile ---------------------------------------------------------- */

.ff-farm-top { padding:20px 0 0; }
.ff-farm-hero { position:relative; height:clamp(220px,28vw,340px); margin-top:14px; border-radius:16px; overflow:hidden; background:var(--tint); }
.ff-farm-hero img { display:block; width:100%; height:100%; object-fit:cover; }
.ff-farm-hero .ff-ph-tag { left:auto; right:12px; bottom:12px; text-decoration:none; }
.ff-farm-hero a.ff-ph-tag:hover { background:var(--ink); color:#fff; }
.ff-farm-title { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:16px 24px; padding:24px 0 0; }
.ff-farm-title > .ff-stack { flex:1 1 520px; }
.ff-farm-title .ff-actions { flex:none; padding-top:6px; }
.ff-farm-body { padding:32px 0 56px; }
.ff-farm-section { display:flex; flex-direction:column; gap:14px; }
.ff-farm-section + .ff-farm-section { margin-top:36px; }
.ff-farm-section-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.ff-icon-title { display:inline-flex; align-items:center; gap:10px; }
.ff-icon-title .ff-icon { width:20px; height:20px; color:var(--orchard); }
.ff-offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ff-buy-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ff-buy-card { display:flex; flex-direction:column; gap:6px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.ff-buy-card strong { font-size:15px; }
.ff-facts { display:flex; flex-direction:column; gap:18px; }
.ff-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:#fff; }
.ff-table { width:100%; min-width:520px; border-collapse:collapse; font-size:14px; }
.ff-table th { padding:12px 16px; border-bottom:1px solid var(--line); background:var(--paper); font-size:13px; font-weight:600; color:var(--text); text-align:left; white-space:nowrap; }
.ff-table tbody th { background:none; font-size:14px; color:var(--ink); white-space:normal; }
.ff-table td { padding:14px 16px; border-bottom:1px solid var(--hair); vertical-align:top; }
.ff-table tr:last-child :is(td,th) { border-bottom:0; }
.ff-quest-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ff-quest-card { display:flex; flex-direction:column; gap:12px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.ff-quest-card img { display:block; width:100%; aspect-ratio:5/7; object-fit:cover; border-radius:10px; }
.ff-ph--card { aspect-ratio:5/7; }
.ff-table-note { display:block; margin-top:2px; font-weight:400; }

/* Product cards, shared by the farm profile and the marketplace --------- */

.ff-product-card { position:relative; display:flex; flex-direction:column; gap:10px; min-width:0; padding:10px 10px 14px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.ff-product-card .ff-ph { aspect-ratio:3/2; border-radius:10px; }
.ff-product-card-body { display:flex; flex:1; flex-direction:column; gap:6px; padding:0 4px; }
.ff-product-card-title { font-size:15px; font-weight:700; line-height:1.3; color:var(--ink); }
.ff-product-card-title a { color:inherit; text-decoration:none; }
.ff-product-card-title a::after { content:""; position:absolute; inset:0; border-radius:16px; }
.ff-product-card-title a:focus-visible { outline:none; }
.ff-product-card:has(.ff-product-card-title a:focus-visible) { outline:3px solid var(--orchard); outline-offset:2px; }
.ff-product-card-meta { font-size:13px; line-height:1.4; color:var(--text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ff-product-card-price { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-top:auto; padding-top:6px; }
.ff-product-card-price strong { font:700 18px/1.2 var(--display); letter-spacing:-.01em; color:var(--ink); }
.ff-product-card-price span { font-size:13px; color:var(--text); }
.ff-product-card-stock { font-size:13px; font-weight:600; color:var(--orchard); }
.ff-product-card-stock--low { color:#8A4F0B; }
.ff-product-card-action { pointer-events:none; margin-top:4px; }

/* Steppers, accordions, toast ----------------------------------------- */

.ff-stepper { display:inline-flex; align-items:center; overflow:hidden; border:1px solid var(--line2); border-radius:12px; background:#fff; }
.ff-stepper button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--ink); font:600 18px/1 var(--body); cursor:pointer; }
.ff-stepper button:hover:not(:disabled) { background:var(--tint); }
.ff-stepper button:disabled { color:#B9B5A8; cursor:not-allowed; }
.ff-stepper button:focus-visible { outline:3px solid var(--orchard); outline-offset:-3px; }
.ff-stepper > span, .ff-stepper input { min-width:40px; text-align:center; font-weight:700; }
.ff-stepper input { width:52px; height:44px; padding:0; border:0; border-inline:1px solid var(--hair); background:transparent; color:var(--ink); font:700 15px/1 var(--body); -moz-appearance:textfield; }
.ff-stepper input::-webkit-outer-spin-button, .ff-stepper input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.ff-stepper--block { display:flex; justify-content:space-between; width:100%; }
.ff-stepper--sm button { width:36px; height:36px; font-size:16px; }
.ff-acc { border-top:1px solid var(--line); }
.ff-acc:last-child { border-bottom:1px solid var(--line); }
.ff-acc > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; font-weight:600; font-size:15px; cursor:pointer; list-style:none; }
.ff-acc > summary::-webkit-details-marker { display:none; }
.ff-acc > summary::after { content:""; width:8px; height:8px; margin-right:4px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; }
.ff-acc[open] > summary::after { transform:rotate(225deg) translate(-1px,-1px); }
.ff-acc > summary:focus-visible { outline:3px solid var(--orchard); outline-offset:2px; border-radius:6px; }
.ff-acc > p { padding:0 0 16px; }
.ff-toast-wrap { position:fixed; left:0; right:0; bottom:24px; z-index:70; display:flex; justify-content:center; padding:0 16px; pointer-events:none; }
.ff-toast { display:flex; align-items:center; gap:14px; max-width:560px; padding:12px 12px 12px 16px; border-radius:12px; background:var(--ink); color:#fff; font-size:14px; font-weight:600; box-shadow:0 10px 30px rgba(21,35,27,.25); pointer-events:auto; }
.ff-toast-action { min-height:36px; padding:0 12px; border:0; border-radius:8px; background:rgba(255,255,255,.1); color:var(--leaf); font:600 14px/1 var(--body); cursor:pointer; }
.ff-toast-action:hover { background:rgba(255,255,255,.18); }

/* Header cart button --------------------------------------------------- */

.site-header-inner .site-nav { order:1; }
.site-header-inner .ff-cart-pill { order:2; }
.site-header-inner .nav-toggle { order:3; }
@media (min-width: 761px) {
  .site-header--shop .site-nav .nav-cta { min-height:44px; padding:0 4px; background:none; color:var(--ink); }
  .site-header--shop .site-nav .nav-cta:hover { background:none; color:var(--orchard); }
}
.ff-cart-pill { display:inline-flex; align-items:center; gap:8px; flex:none; min-height:44px; padding:0 16px; border:0; border-radius:12px; background:var(--ink); color:#fff; font:600 15px/1 var(--body); cursor:pointer; }
.ff-cart-pill:hover { background:#0E1812; }
.ff-cart-pill:focus-visible { outline:3px solid var(--orchard); outline-offset:3px; }
.ff-cart-pill .ff-icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; color:var(--leaf); }
.ff-cart-pill small { font-size:13px; font-weight:500; color:var(--onink); }
.ff-cart-pill[aria-expanded="true"] { box-shadow:0 0 0 3px rgba(120,180,72,.45); }

/* Marketplace ---------------------------------------------------------- */

.ff-store [hidden] { display:none !important; }
.ff-store { overflow-x:clip; }
.ff-store img { max-width:100%; }
.ff-store-hero-wrap { padding-top:24px; }
.ff-store-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:300px; overflow:hidden; border-radius:24px; background:var(--tint); }
.ff-store-hero-copy { justify-content:center; padding:40px 40px 40px; }
.ff-h1--store { font-size:clamp(32px,4vw,46px); }
.ff-store-hero-media { position:relative; }
.ff-store-hero-media img { display:block; width:100%; height:100%; object-fit:cover; }
.ff-hero-facts { display:grid; grid-template-columns:repeat(2,minmax(0,max-content)); gap:12px 32px; margin-top:4px; }
.ff-hero-facts > div, .ff-inline-facts > div { display:flex; flex-direction:column; gap:2px; }
.ff-hero-facts dt, .ff-inline-facts dt { font-size:13px; color:var(--text); }
.ff-hero-facts dd, .ff-inline-facts dd { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--ink); }
.ff-hero-facts dd time { font-weight:500; color:var(--text); }
.ff-store-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; align-items:start; padding-top:28px; padding-bottom:56px; }
.ff-store-side { position:sticky; top:96px; display:flex; flex-direction:column; gap:22px; }
.ff-order-card { display:flex; flex-direction:column; gap:12px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.ff-order-lines { display:flex; flex-direction:column; gap:8px; }
.ff-order-line { display:flex; justify-content:space-between; gap:10px; font-size:14px; color:var(--text); }
.ff-order-line span:last-child { font-weight:600; color:var(--ink); white-space:nowrap; }
.ff-order-subtotal { display:flex; justify-content:space-between; gap:12px; padding-top:10px; border-top:1px solid var(--hair); font-weight:600; }
.ff-cats { display:flex; flex-direction:column; gap:2px; min-width:0; margin:0; padding:0; border:0; }
.ff-cats legend { margin-bottom:8px; padding:0; }
.ff-cat { position:relative; display:block; cursor:pointer; }
.ff-cat input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.ff-cat span { display:block; padding:8px 10px; border-radius:8px; font-size:14px; color:var(--ink); }
.ff-cat:hover span { background:#F1EFE8; }
.ff-cat input:checked + span { background:var(--tint); color:var(--orchard); font-weight:600; }
.ff-cat input:focus-visible + span { outline:3px solid var(--orchard); outline-offset:1px; }
.ff-store-clear { align-self:flex-start; padding:0; border:0; background:none; cursor:pointer; font:600 15px/1.3 var(--body); }
.ff-store-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; margin-bottom:16px; }
.ff-sort { display:flex; align-items:center; gap:10px; }
.ff-sort .ff-label { white-space:nowrap; font-weight:500; color:var(--text); }
.ff-sort .ff-select { width:auto; min-width:190px; }
.ff-store-main .marketplace-sandbox-notice { margin-bottom:20px; }
.ff-store-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ff-product-card :is(button, a.ff-btn, .ff-stepper) { position:relative; z-index:1; }
.ff-product-card.is-in-cart { border-color:#BFD9A6; box-shadow:inset 0 0 0 1px #BFD9A6; }
.ff-store-pager { margin-top:28px; }

/* Item page */

.ff-pdp-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; padding-top:20px; }
.ff-inline-facts { display:flex; flex-wrap:wrap; gap:8px 28px; }
.ff-inline-facts > div { flex-direction:row; align-items:baseline; gap:8px; }
.ff-pdp { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; padding-top:20px; padding-bottom:16px; }
.ff-pdp-gallery { display:flex; flex-direction:column; gap:12px; }
.ff-pdp-image { aspect-ratio:4/3; border-radius:16px; }
.ff-pdp-thumbs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ff-pdp-thumbs .ff-ph { aspect-ratio:1/1; border-radius:10px; }
.ff-pdp-info { display:flex; flex-direction:column; gap:24px; min-width:0; }
.ff-pdp-title { font-size:clamp(30px,3.6vw,42px); line-height:1.04; }
.marketplace-options .ff-h4 { font:700 19px/1.25 var(--display); letter-spacing:-.01em; }
.ff-variants { display:flex; flex-direction:column; gap:10px; margin:0; padding:0; border:0; min-width:0; }
.ff-variant { display:flex; align-items:center; gap:12px; padding:14px 16px; background:#fff; border:1px solid var(--line); border-radius:12px; cursor:pointer; }
.ff-variant:hover { border-color:var(--line2); }
.ff-variant input { width:20px; height:20px; margin:0; flex:none; accent-color:var(--orchard); }
.ff-variant:has(input:checked) { border-color:var(--orchard); background:var(--tint); box-shadow:inset 0 0 0 1px var(--orchard); }
.ff-variant:has(input:focus-visible) { outline:3px solid var(--orchard); outline-offset:2px; }
.ff-variant.is-in-cart .ff-variant-copy > span::after { content:" In your order."; color:var(--orchard); font-weight:600; }
.ff-variant-copy { display:flex; flex:1; flex-direction:column; gap:2px; min-width:0; }
.ff-variant-copy strong { font-size:15px; }
.ff-variant-copy > span { font-size:13px; color:var(--text); }
.ff-variant-price { font:700 17px/1.2 var(--display); white-space:nowrap; }
.ff-buybox { display:flex; flex-direction:column; gap:8px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.ff-buybox-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.ff-buybox-row .marketplace-add { flex:1 1 220px; }
.ff-accordions { display:flex; flex-direction:column; }
.ff-pdp-more { padding-top:32px; }

/* Cart drawer */

.ff-cart-backdrop { position:fixed; inset:0; z-index:60; display:none; width:100%; height:100%; padding:0; border:0; background:rgba(21,35,27,.45); cursor:pointer; }
.ff-cart-backdrop.is-open { display:block; }
.ff-cart { position:fixed; top:0; right:0; bottom:0; z-index:61; display:flex; flex-direction:column; width:min(420px,100%); background:#fff; box-shadow:-20px 0 60px rgba(21,35,27,.2); overscroll-behavior:contain; }
.ff-cart:focus { outline:none; }
.ff-cart .marketplace-cart-handle { display:none; }
.ff-cart-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 20px 12px; border-bottom:1px solid var(--hair); }
.ff-close { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex:none; padding:0; border:1px solid var(--line2); border-radius:10px; background:#fff; color:var(--ink); cursor:pointer; }
.ff-close:hover { border-color:var(--ink); }
.ff-close .ff-icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; }
.ff-cart-body { flex:1 1 auto; display:flex; flex-direction:column; gap:18px; min-height:0; padding:16px 20px 24px; overflow-y:auto; overscroll-behavior:contain; }
.ff-cart-body > * { flex-shrink:0; }
.ff-cart-order { display:flex; flex-direction:column; gap:18px; }
.ff-cart-lines { flex:0 0 auto; display:flex; flex-direction:column; }
.ff-cart-line { display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:12px; align-items:start; padding:12px 0; border-bottom:1px solid var(--hair); }
.ff-cart-line:first-child { padding-top:0; }
.ff-cart-line .ff-ph { width:52px; height:52px; border-radius:10px; }
.ff-cart-line-copy { display:flex; flex-direction:column; gap:6px; min-width:0; }
.ff-cart-line-copy strong { font-size:15px; line-height:1.3; }
.ff-cart-line-price { display:flex; flex-direction:column; align-items:flex-end; gap:6px; font:700 15px/1.2 var(--display); white-space:nowrap; }
.ff-cart-remove { padding:0; border:0; background:none; color:var(--text); font:600 13px/1.2 var(--body); text-decoration:underline; cursor:pointer; }
.ff-cart-remove:hover { color:var(--ink); }
.ff-cart-section { display:flex; flex-direction:column; gap:12px; min-width:0; margin:0; padding:0; border:0; }
.ff-cart-section legend { margin-bottom:10px; padding:0; }
.ff-cart-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ff-cart-repeat { display:flex; flex-direction:column; gap:8px; padding:14px 16px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.ff-check { display:flex; align-items:flex-start; gap:10px; font-size:15px; line-height:1.4; cursor:pointer; }
.ff-check input { width:20px; height:20px; margin:1px 0 0; flex:none; accent-color:var(--orchard); }
.ff-cart-totals { display:flex; flex-direction:column; gap:6px; padding-top:14px; border-top:1px solid var(--line); }
.ff-cart-total { font-size:22px; }
.ff-cart-status:empty { display:none; }
.ff-cart-status { margin:0; padding:12px 14px; border-radius:12px; background:#F1EFE8; font-size:14px; line-height:1.45; }
.ff-cart-status.is-error { background:var(--danger-tint); color:#7A2E1F; }
.ff-cart-pay { display:flex; flex-direction:column; gap:12px; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.ff-cart-demo { display:flex; flex-direction:column; gap:10px; }
.ff-cart.is-complete .ff-cart-order, .ff-cart.is-complete .ff-cart-pay, .ff-cart.is-complete .ff-cart-status { display:none; }
.ff-cart-done { display:flex; flex-direction:column; gap:18px; }
.ff-done-hero { display:flex; flex-direction:column; gap:12px; padding:24px; border-radius:16px; background:var(--ink); color:#fff; }
.ff-done-hero .ff-tile { background:var(--leaf); color:var(--ink); border-radius:50%; }
.ff-done-hero p { color:var(--onink); font-size:15px; }
.ff-done-lines { display:flex; flex-direction:column; }
.ff-done-lines div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--hair); font-size:14px; }
.ff-done-lines div span:last-child { font-weight:600; white-space:nowrap; }
.ff-done-steps { display:flex; flex-direction:column; gap:12px; padding:0; list-style:none; counter-reset:ffdone; }
.ff-done-steps li { display:grid; grid-template-columns:32px minmax(0,1fr); gap:12px; align-items:start; font-size:14px; color:var(--text); counter-increment:ffdone; }
.ff-done-steps li::before { content:counter(ffdone); display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:var(--tint); color:var(--orchard); font-weight:700; }
.ff-done-steps strong { display:block; color:var(--ink); }
html.marketplace-cart-open { overflow:hidden; }

/* Landing (OptionC-Landing.html) ------------------------------------------ */

.ff-btn--lg { min-height:52px; padding:0 24px; font-size:16px; }
.ff-btn--leaf.ff-btn--lg { font-weight:700; }
.ff-btn--outline { background:transparent; border-color:var(--ink); color:var(--ink); }
.ff-btn--outline:hover { background:rgba(21,35,27,.07); color:var(--ink); }

.ff-home-hero { background:var(--ink); color:#fff; }
.ff-home-hero-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; align-items:center; padding-top:64px; padding-bottom:56px; }
.ff-home-hero-copy { display:flex; flex-direction:column; gap:24px; min-width:0; }
.ff-home-hero h1 { font:800 clamp(40px,5vw,62px)/1.02 var(--display); letter-spacing:-.025em; text-wrap:balance; color:#fff; }
.ff-home-lead { max-width:520px; font-size:19px; line-height:1.5; color:var(--onink); text-wrap:balance; }
.ff-home-stats { display:flex; flex-wrap:wrap; margin-top:10px; border-top:1px solid #2E3F33; }
.ff-home-stats > div { display:flex; flex-direction:column; gap:2px; padding:18px 28px 0; border-left:1px solid #2E3F33; }
.ff-home-stats > div:first-child { padding-left:0; border-left:0; }
.ff-home-stats > div:last-child { padding-right:0; }
.ff-home-stats dt { font:700 32px/1 var(--display); letter-spacing:-.02em; color:var(--leaf); }
.ff-home-stats dd { font-size:14px; color:var(--onink); }

.ff-hub-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; background:#fff; color:var(--ink); border-radius:16px; box-shadow:0 24px 60px rgba(0,0,0,.35); }
.ff-hub-card-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line); }
.ff-hub-card-head h2 { font:700 17px/1.3 var(--display); letter-spacing:-.01em; }
.ff-hub-rows { list-style:none; padding:0; }
.ff-hub-rows li + li { border-top:1px solid var(--hair); }
.ff-hub-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; min-height:72px; padding:14px 20px; color:inherit; text-decoration:none; }
.ff-hub-row:hover { background:var(--paper); }
.ff-hub-row:focus-visible { outline:3px solid var(--orchard); outline-offset:-3px; }
.ff-hub-row img { display:block; width:44px; height:44px; object-fit:cover; border-radius:10px; }
.ff-hub-row-copy { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ff-hub-row-copy strong { font-size:15px; font-weight:600; line-height:1.35; }
.ff-hub-row-copy span { font-size:13px; line-height:1.4; color:var(--text); }
.ff-hub-row-go { color:var(--orchard); font-weight:700; }
.ff-hub-empty { padding:20px; color:var(--text); }
.ff-hub-card-foot { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 16px; padding:16px 20px; border-top:1px solid var(--line); background:var(--paper); font-size:13px; line-height:1.45; color:var(--text); }
.ff-hub-card-foot > span { flex:1 1 220px; }

.ff-home-head p { max-width:400px; font-size:15px; line-height:1.55; color:var(--text); }
.ff-home-head h2 { max-width:460px; }

.ff-path-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.ff-path-card { display:flex; flex-direction:column; gap:8px; padding:20px; background:#fff; border:1px solid var(--line); border-radius:16px; color:inherit; text-decoration:none; }
.ff-path-card:hover { border-color:#BFD9A6; box-shadow:0 10px 24px rgba(21,35,27,.08); }
.ff-path-card:focus-visible { outline:3px solid var(--orchard); outline-offset:3px; }
.ff-path-card .ff-tile { margin-bottom:8px; }
.ff-path-card strong { font:700 20px/1.25 var(--display); letter-spacing:-.01em; }
.ff-path-copy { font-size:14px; line-height:1.5; color:var(--text); }
.ff-path-card .ff-link { margin-top:auto; padding-top:8px; font-size:14px; }

.ff-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding:0; list-style:none; }
.ff-steps li { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.ff-step-num { display:inline-grid; place-items:center; width:32px; height:32px; border-radius:999px; background:var(--orchard); color:#fff; font-size:14px; font-weight:700; }
.ff-steps h3 { font:700 20px/1.25 var(--display); letter-spacing:-.01em; }
.ff-steps p { max-width:340px; font-size:14px; line-height:1.55; color:var(--text); }

.ff-home-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }

.ff-home-map-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:48px; }
.ff-home-map-list { display:flex; flex-direction:column; gap:10px; padding:0; list-style:none; font-size:15px; }
.ff-home-map-list li { display:flex; align-items:flex-start; gap:10px; }
.ff-page .ff-home-map-list .ff-icon { margin-top:3px; color:var(--orchard); }
.ff-map-preview { position:relative; display:block; width:100%; min-width:0; aspect-ratio:7/5; overflow:hidden; border:1px solid #DCE5CF; border-radius:16px; background-color:var(--tint); background-image:linear-gradient(rgba(46,107,43,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(46,107,43,.09) 1px, transparent 1px); background-size:40px 40px; color:var(--ink); text-decoration:none; }
.ff-map-preview:hover { border-color:#BFD9A6; }
.ff-map-preview:focus-visible { outline:3px solid var(--orchard); outline-offset:3px; }
.ff-map-preview-pin { position:absolute; display:inline-flex; align-items:center; gap:6px; max-width:calc(100% - 24px); padding:6px 10px; border-radius:10px; background:#fff; box-shadow:0 6px 18px rgba(21,35,27,.12); font-size:13px; font-weight:600; white-space:nowrap; }
.ff-map-preview-pin > span { overflow:hidden; text-overflow:ellipsis; }
.ff-page .ff-map-preview-pin .ff-icon { width:14px; height:14px; color:var(--orchard); }
.ff-map-preview-pin--1 { left:12%; top:30%; }
.ff-map-preview-pin--2 { right:8%; top:18%; }
.ff-map-preview-pin--3 { left:26%; top:60%; }
.ff-map-preview-count { position:absolute; right:14px; bottom:14px; padding:6px 10px; border-radius:8px; background:var(--ink); color:#fff; font-size:13px; font-weight:600; }

/* CTA band and full footer, shared by every page that is not a shop page. */
.ff-cta { background:var(--leaf); color:var(--ink); font-family:var(--body); }
.ff-cta :where(h2,p) { margin:0; }
.ff-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-top:64px; padding-bottom:64px; }
.ff-cta .ff-h2 { max-width:440px; font-size:clamp(30px,4vw,46px); }
.ff-cta p { max-width:460px; font-size:17px; line-height:1.55; color:#22331F; }
.ff-cta .ff-actions { display:flex; flex-wrap:wrap; gap:12px; flex:none; }

.ff-footer { background:#fff; color:var(--ink); border-top:1px solid var(--line); font:400 15px/1.55 var(--body); }
.ff-footer :where(p) { margin:0; }
.ff-footer-grid { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; padding-top:44px; padding-bottom:36px; }
.ff-footer-brand { display:flex; flex-direction:column; align-items:flex-start; gap:14px; max-width:360px; }
.ff-footer-logo img { display:block; width:72px; height:auto; }
.ff-footer-brand p { font-size:14px; color:var(--text); }
.ff-footer-partner { display:inline-flex; align-items:center; gap:10px; font-size:13px; color:var(--text); text-decoration:none; }
.ff-footer-partner img { width:28px; height:28px; object-fit:contain; }
.ff-footer-nav { display:grid; grid-template-columns:repeat(3,auto); gap:48px; }
.ff-footer-nav nav { display:flex; flex-direction:column; gap:8px; }
.ff-footer-nav strong { margin-bottom:4px; font-size:14px; font-weight:700; color:var(--ink); }
.ff-footer-nav a { font-size:14px; color:var(--text); text-decoration:none; }
.ff-footer a:hover { color:var(--orchard); text-decoration:underline; }
.ff-footer a:focus-visible { outline:3px solid var(--orchard); outline-offset:2px; border-radius:4px; }
.ff-footer-base { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; padding-top:4px; padding-bottom:28px; }
.ff-footer-base p { font-size:13px; color:var(--text); }
.ff-footer-base a { font-size:13px; color:var(--text); text-decoration:none; }

/* Phone ----------------------------------------------------------------- */

@media (max-width: 1080px) {
  .ff-farm-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ff-filter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ff-home-hero-grid, .ff-home-map-grid { grid-template-columns:minmax(0,1fr); }
  .ff-hub-card { max-width:620px; }
  .ff-path-grid, .ff-home-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ff-footer-grid { grid-template-columns:minmax(0,1fr); }
}

@media (max-width: 760px) {
  .ff-wrap { padding:0 16px; }
  .ff-home-hero-grid { gap:32px; padding-top:48px; padding-bottom:48px; }
  .ff-home-lead { font-size:18px; }
  .ff-home-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ff-home-stats > div, .ff-home-stats > div:first-child { padding:18px 8px 0 0; border-left:0; }
  .ff-home-stats dt { font-size:26px; }
  .ff-home-stats dd { font-size:13px; }
  .ff-hub-row { padding:14px 16px; }
  .ff-hub-card-foot { padding:16px; }
  .ff-path-grid, .ff-home-product-grid, .ff-steps, .ff-home-map-grid { grid-template-columns:minmax(0,1fr); }
  .ff-steps, .ff-home-map-grid { gap:28px; }
  .ff-map-preview { min-height:260px; aspect-ratio:auto; }
  .ff-map-preview-pin { font-size:12px; }
  .ff-cta-inner { flex-direction:column; align-items:stretch; gap:24px; padding-top:48px; padding-bottom:48px; }
  .ff-cta .ff-actions .ff-btn { flex:1 1 auto; }
  .ff-footer-grid { gap:32px; padding-top:36px; padding-bottom:32px; }
  .ff-footer-base { padding-top:4px; padding-bottom:28px; }
  .ff-footer-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px; }
  .ff-h1 { font-size:34px; }
  .ff-h2 { font-size:26px; }
  .ff-section { padding:40px 0; }
  .ff-section-head { flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:20px; }
  .ff-page-head { padding:36px 0 32px; }
  .ff-grid--2, .ff-grid--3, .ff-grid--4, .ff-split-side { grid-template-columns:minmax(0,1fr); }
  .ff-sticky { position:static; }
  .ff-actions > .ff-btn { flex:1 1 0; min-width:0; padding-inline:12px; white-space:normal; }

  .ff-dir-head { padding:28px 0 16px; }
  .ff-filter-card > summary { display:flex; align-items:center; gap:12px; min-height:52px; padding:0 16px; font-weight:600; cursor:pointer; list-style:none; }
  .ff-filter-card > summary strong { margin-left:auto; font-size:14px; color:var(--text); }
  .ff-filter-card > summary::after { content:""; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .24s ease; }
  .ff-filter-card[open] > summary::after { transform:rotate(225deg) translate(-1px,-1px); }
  .ff-filter-content { grid-template-rows:0fr; opacity:0; visibility:hidden; transition:grid-template-rows .28s ease, opacity .2s ease, visibility 0s linear .28s; }
  .ff-filter-card[open] > .ff-filter-content { grid-template-rows:1fr; opacity:1; visibility:visible; transition-delay:0s; }
  .ff-filter-card > summary::-webkit-details-marker { display:none; }
  .ff-filter-card > summary:focus-visible { outline:3px solid var(--orchard); outline-offset:2px; border-radius:16px; }
  .ff-filter-card[open] > summary { border-bottom:1px solid var(--line); }
  .ff-filter-card .farm-filter-summary-open { display:none; }
  .ff-filter-card[open] .farm-filter-summary-open { display:inline; }
  .ff-filter-card[open] .farm-filter-summary-closed { display:none; }
  .ff-filter-body { padding:16px; }
  .ff-filter-card[open] .ff-filter-body { overflow:visible; }
  .ff-filter-grid { grid-template-columns:minmax(0,1fr); }
  .ff-filter-search .ff-btn { flex:1 1 100%; }
  .ff-farm-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
  .ff-results-head { flex-direction:column; align-items:flex-start; }

  .ff-farm-title .ff-actions { width:100%; }
  .ff-offer-grid, .ff-buy-grid, .ff-quest-grid { grid-template-columns:minmax(0,1fr); }
  .site-footer--slim .site-footer-slim { padding:24px 16px; }
  .ff-cart-pill { min-height:44px; padding:0 12px; gap:6px; font-size:14px; }
  .ff-cart-pill small { display:none; }
  .ff-store-hero-wrap { padding-top:16px; }
  .ff-store-hero { grid-template-columns:minmax(0,1fr); border-radius:20px; }
  .ff-store-hero-copy { padding:28px 20px; }
  .ff-store-hero-media { height:200px; }
  .ff-hero-facts { grid-template-columns:minmax(0,1fr); }
  .ff-store-layout { grid-template-columns:minmax(0,1fr); gap:24px; padding-top:20px; }
  .ff-store-side { position:static; }
  .ff-store-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr)); gap:12px; }
  .ff-store-grid .ff-product-card { padding:8px 8px 12px; }
  .ff-store-grid .ff-product-card .ff-ph { aspect-ratio:4/3; }
  .ff-store-grid .ff-product-card-price { flex-direction:column; align-items:flex-start; gap:2px; }
  .ff-sort { width:100%; }
  .ff-sort .ff-select { flex:1; min-width:0; }
  .ff-pdp { grid-template-columns:minmax(0,1fr); gap:24px; }
  .ff-pdp-top { flex-direction:column; align-items:flex-start; }
  .ff-cart { top:auto; left:0; width:100%; max-height:calc(90dvh - env(safe-area-inset-top)); border-radius:24px 24px 0 0; box-shadow:0 -20px 60px rgba(21,35,27,.25); }
  .ff-cart .marketplace-cart-handle { display:block; width:44px; height:5px; margin:10px auto 0; border-radius:3px; background:var(--line2); }
  .ff-cart-head { padding:12px 16px; }
  .ff-cart-body { padding:16px 16px max(24px, env(safe-area-inset-bottom)); }
  .ff-cart-fields { grid-template-columns:minmax(0,1fr); }
  .ff-toast-wrap { bottom:16px; }
  .ff-toast { width:100%; justify-content:space-between; }
}

@media (min-width: 761px) and (max-width: 1080px) {
  .ff-split-side { grid-template-columns:minmax(0,1fr) 300px; gap:24px; }
  .ff-store-layout { grid-template-columns:200px minmax(0,1fr); gap:24px; }
  .ff-store-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ff-store-hero-copy { padding:32px 28px; }
  .ff-offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .ff-filter-content, .ff-filter-card > summary::after, .ff-acc > summary::after { transition:none !important; }
}
