/* 1300s Farm Lots — buyer-facing styles.
 * Design tokens live on every wrapper the plugin prints (.sfl), including the modal that JS moves to <body>. */
.sfl {
	--sfl-accent: #0D6B4F;
	--sfl-accent-soft: #E6F2EC;
	--sfl-ink: #1E1B18;
	--sfl-text: #3A3530;
	--sfl-muted: #7A716A;
	--sfl-border: #E4DED7;
	--sfl-surface: #FFFFFF;
	--sfl-surface-2: #F7F4F0;
	--sfl-caution: #C77C0A;
	--sfl-caution-soft: #FBF1E1;
	--sfl-critical: #A32540;
	--sfl-radius: 10px;
	color: var(--sfl-text);
}
.sfl *, .sfl *::before, .sfl *::after { box-sizing: border-box; }
.sfl ul, .sfl ol, .sfl li, .sfl dl, .sfl dd { margin: 0 !important; padding: 0; list-style: none; } /* Flatsome adds ul/li margins. */
.sfl-muted { color: var(--sfl-muted); }
.sfl-h { font-size: 1.15em; margin: 0 0 .8em; color: var(--sfl-ink); }
.sfl-eyebrow { font-size: .78em; letter-spacing: .06em; text-transform: uppercase; color: var(--sfl-muted); margin: 0 0 .3em; }

/* Badges, chips, pills */
.sfl-badge { display: inline-block; font-size: .72em; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; padding: .25em .7em; border-radius: 99px; background: var(--sfl-surface-2); color: var(--sfl-text); vertical-align: middle; }
.sfl-badge-estate { background: var(--sfl-accent); color: #fff; }
.sfl-badge-partner { background: var(--sfl-surface-2); color: var(--sfl-ink); border: 1px solid var(--sfl-border); }
.sfl-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: .4em 0 .8em; }
.sfl-chip { font-size: .8em; padding: .2em .65em; border-radius: 99px; background: var(--sfl-surface-2); border: 1px solid var(--sfl-border); }
.sfl-avail { font-weight: 600; }
.sfl-avail-now { color: var(--sfl-accent); }
.sfl-avail-soon, .sfl-avail-preorder { color: var(--sfl-caution); }
.sfl-avail-soldout { color: var(--sfl-critical); }
.sfl-interest { color: var(--sfl-accent); font-weight: 600; }
.sfl-price { font-weight: 700; color: var(--sfl-ink); }

/* Buttons */
.sfl-btn { margin: 0 8px 8px 0 !important; border-radius: 6px !important; }
.sfl .button.primary, .sfl-btn.primary { background: var(--sfl-accent); border-color: var(--sfl-accent); color: #fff; }
.sfl-btn-ghost { background: transparent !important; color: var(--sfl-ink) !important; border: 1px solid var(--sfl-ink) !important; }
.sfl-btn-ghost:hover { background: var(--sfl-ink) !important; color: #fff !important; }

/* Lot page: facts under the price */
.sfl-facts { margin: .4em 0 1.1em; padding: .9em 1em; border: 1px solid var(--sfl-border); border-radius: var(--sfl-radius); background: var(--sfl-surface-2); }
.sfl-facts-farm { margin: 0 0 .5em; }
.sfl-back { margin: 0 0 .6em; font-size: .88em; }
.sfl-back a { color: var(--sfl-muted); }
.sfl-back a:hover { color: var(--sfl-ink); }
.sfl-farm-page > .sfl-back { margin-bottom: 1.2em; }
.sfl-facts-farm a { font-weight: 700; color: var(--sfl-ink); }
.sfl-facts-list { display: flex; flex-wrap: wrap; gap: .3em 1.4em; }
/* Lot page actions: bag stepper + full-width request buttons */
.sfl-actions { display: flex; flex-direction: column; gap: 15px; width: 100%; margin: .4em 0 1em; font-family: "Manrope", sans-serif; }
.sfl-qty { display: flex; align-items: stretch; width: 100%; border: 2px solid #231F20; background: #fff; }
.sfl .sfl-qty-btn { flex: 0 0 auto; margin: 0; padding: 24px 48px; min-height: 0; border: 0; border-radius: 0; background: transparent; color: #231F20; font: 500 16px/28px "Manrope", sans-serif; cursor: pointer; box-shadow: none; }
.sfl .sfl-qty-btn:hover:not(:disabled) { background: #F4F1EA; }
.sfl .sfl-qty-btn:disabled { color: #B9B4AE; cursor: default; }
.sfl-qty-val { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; padding: 24px 12px; border-left: 2px solid #231F20; border-right: 2px solid #231F20; color: #231F20; font: 500 16px/28px "Manrope", sans-serif; white-space: nowrap; }
.sfl .sfl-req { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; padding: 24px 48px; min-height: 0; border: 2px solid; border-radius: 0; color: #fff; font: 600 14px/24px "Manrope", sans-serif; letter-spacing: 0; text-transform: uppercase; cursor: pointer; box-shadow: none; transition: filter .15s; }
.sfl .sfl-req-sacks { background: #0E5B22; border-color: #0E5B22; }
.sfl .sfl-req-sample { background: #BC5506; border-color: #BC5506; }
.sfl .sfl-req:hover { filter: brightness(1.1); color: #fff; }
.sfl-actions-note { margin: 0; color: #7A7A7A; font: 400 12px/24px "Manrope", sans-serif; }
@media (max-width: 549px) {
	.sfl .sfl-qty-btn { padding: 16px 28px; }
	.sfl-qty-val, .sfl .sfl-req { padding-top: 16px; padding-bottom: 16px; }
}

/* Lot page: specs */
.sfl-lot-specs { margin: 0; }
.sfl-lot-details { margin: 2em 0; padding: 1.5em 0; border-top: 1px solid var(--sfl-border); }
.woocommerce-Tabs-panel .sfl-lot-details, .woocommerce-Tabs-panel .sfl-lot-specs { margin: 0; padding: .5em 0; border-top: 0; }
.sfl-spec-list dt, .sfl-spec-list dd { text-transform: none; letter-spacing: 0; font-size: .95em; }
.sfl-lot-cols { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 2.5em; }
.sfl-spec-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5em; }
.sfl-spec-list > div { display: flex; justify-content: space-between; gap: 1em; padding: .55em 0; border-bottom: 1px solid var(--sfl-border); }
.sfl-spec-list dt { color: var(--sfl-muted); font-weight: 400; }
.sfl-spec-list dd { color: var(--sfl-ink); font-weight: 600; text-align: right; }
.sfl-process-about { margin: 1.6em 0 0; max-width: 760px; }
.sfl .sfl-h-sub { font-size: 1em; margin: 0 0 .5em; }
.sfl-process-about p { margin: 0 0 .8em; }

/* Timeline: month bar + lots under their arrival month (Figma 9421:7594). Min 1200px wide, scrolls sideways below that. */
.sfl-tl { margin: 0 0 1.5em; font-family: "Manrope", sans-serif; }
.sfl-tl-scroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
.sfl .sfl-tl-months { display: grid; grid-template-columns: repeat(var(--sfl-tl-n, 10), minmax(0, 1fr)); min-width: 1200px; margin: 0 !important; padding: 0 !important; list-style: none; }
.sfl-tl-col { display: flex; flex-direction: column-reverse; justify-content: flex-start; align-items: center; min-width: 0; margin: 0 !important; } /* month bar at the bottom, lots above */
.sfl-tl-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; align-self: stretch; height: 40px; padding: 4px 8px; background: #DED8C8; color: #231F20; font: 600 14px/16px "Manrope", sans-serif; text-align: center; text-transform: uppercase; white-space: nowrap; }
.sfl-tl-col.has-arriving .sfl-tl-cell { background: #BC5506; color: #fff; }
.sfl-tl-col.is-now .sfl-tl-cell { background: #0E5B22; color: #fff; }
.sfl-tl-m, .sfl-tl-y { display: block; }
.sfl .sfl-tl-lots { display: flex; flex-direction: column-reverse; align-items: stretch; gap: 8px; width: 100%; margin: 0 !important; padding: 0 6px !important; list-style: none; }
.sfl-tl-lots::before { content: ""; align-self: center; width: 2px; height: 40px; background: #1E1B18; }
.sfl-tl-card { margin: 0 !important; min-width: 0; }
.sfl-tl-card > a { display: flex; flex-direction: column; gap: 1px; padding: 12px; background: #FBFAF4; border: 1px solid transparent; color: #231F20; text-decoration: none; transition: border-color .15s; }
.sfl-tl-card > a:hover { border-color: #583D32; }
.sfl-tl-card.is-current > a { background: #DED8C8; border-color: #583D32; }
.sfl-tl-name { font: 700 16px/20px "Manrope", sans-serif; color: #231F20; overflow-wrap: anywhere; }
.sfl-tl-meta { padding-top: 4px; font: 400 12px/21px "Manrope", sans-serif; color: #231F20; }
.sfl-tl-state { font-weight: 700; letter-spacing: .525px; text-transform: uppercase; }
.sfl-tl-card.is-landed .sfl-tl-state { color: #0E5B22; }
.sfl-tl-card.is-arriving .sfl-tl-state { color: #BC5506; }
.sfl-tl-card.is-soldout .sfl-tl-state { color: #A32540; }
.sfl .sfl-tl-empty { margin: 12px 0 0; font-size: 14px; }

/* Cards: grid uses --sfl-cols (desktop) / --sfl-cols-t (tablet) / --sfl-cols-m (mobile) set by the shortcode */
.sfl-cards { display: grid; grid-template-columns: repeat(var(--sfl-cols, 3), minmax(0, 1fr)); gap: 20px; }
.sfl-card { display: flex; flex-direction: column; border: 1px solid var(--sfl-border); border-radius: var(--sfl-radius); overflow: hidden; background: var(--sfl-surface); }
.sfl-card.is-current { border: 2px solid var(--sfl-accent); }
.sfl-card-media { display: block; aspect-ratio: 4 / 3; background: var(--sfl-surface-2); overflow: hidden; }
.sfl-card-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sfl-card-img-empty { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #EFE7DE, #DCCFC1); }
.sfl-card-body { padding: 1em 1.1em 1.1em; display: flex; flex-direction: column; flex: 1; }
.sfl-card-body > .button { margin-top: auto !important; align-self: flex-start; }
.sfl .sfl-card-title { font-size: 1.25rem !important; line-height: 1.25 !important; margin: .1em 0 .3em; }
.sfl .sfl-card-title a { color: var(--sfl-ink); text-decoration: none; }
.sfl-card-price { margin: .2em 0 .3em; font-weight: 700; color: var(--sfl-ink); }
.sfl-card-meta { font-size: .9em; margin: 0 0 1em; }

/* Filters */
.sfl-filters { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; margin: 0 0 .8em; }
.sfl-filter { display: flex; flex-direction: column; font-size: .85em; min-width: 160px; }
.sfl-filter span { color: var(--sfl-muted); margin-bottom: 4px; }
.sfl-filter select { margin: 0; }
.sfl-reset { font-size: .9em; padding-bottom: .6em; }
.sfl-count { font-size: .9em; color: var(--sfl-muted); margin: 0 0 1em; }
/* Farm tabs (0.2.32, Figma 9439:9414) */
.sfl-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 24px; }
.sfl .sfl-tabs a { display: inline-block; padding: 4px 8px; border: 0; border-radius: 0; background: #E2EEE4; color: #0E5B22; font: 700 14px/24px "Manrope", sans-serif; letter-spacing: 0; text-transform: capitalize; text-decoration: none; white-space: nowrap; transition: background-color .2s, color .2s; }
.sfl .sfl-tabs a:hover { background: #CFE3D3; color: #0E5B22; }
.sfl .sfl-tabs a.is-active, .sfl .sfl-tabs a.is-active:hover { background: #0E5B22; color: #fff; }

/* Farm page */
.sfl-farm-page { padding: 1.5em 0 3em; }
.sfl-farm-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2em; align-items: start; margin-bottom: 2em; }
.sfl-farm-hero-img img { width: 100%; height: auto; border-radius: var(--sfl-radius); display: block; }
.sfl-farm-title { margin: .3em 0 .6em; }
.sfl-farm-hero .sfl-spec-list { grid-template-columns: 1fr; margin-bottom: 1em; }
.sfl-farm-story { max-width: 760px; margin: 0 0 2em; }
.sfl-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 0 0 2.5em; }
.sfl-gallery img { width: 100%; height: 160px; object-fit: cover; border-radius: 8px; display: block; }
.sfl-farm-lots, .sfl-farm-timeline { margin: 0 0 2.5em; }

/* Slider */
.sfl-slider { position: relative; --sfl-gap: 20px; }
.sfl-slider-track { display: flex; gap: var(--sfl-gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px; }
.sfl-slider-track::-webkit-scrollbar { display: none; }
.sfl-slider-track > .sfl-card { flex: 0 0 calc((100% - (var(--sfl-cols, 3) - 1) * var(--sfl-gap)) / var(--sfl-cols, 3)); scroll-snap-align: start; }
.sfl .sfl-slide-btn { position: absolute; top: 35%; z-index: 2; width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0; border-radius: 50%; border: 1px solid var(--sfl-border); background: var(--sfl-surface); color: var(--sfl-ink); font-size: 22px; line-height: 34px; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .12); }
.sfl-slide-prev { left: -12px; }
.sfl-slide-next { right: -12px; }

/* Farm template (UX Block) */
.sfl-farm-template { width: 100%; }

/* Modal */
html.sfl-lock { overflow: hidden; }
.sfl-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: flex-start; justify-content: center; padding: 4vh 16px; overflow-y: auto; }
.sfl-modal[hidden] { display: none; }
.sfl-modal-backdrop { position: fixed; inset: 0; background: rgba(20, 16, 12, .55); }
.sfl-modal-box { position: relative; width: 100%; max-width: 640px; background: var(--sfl-surface); border-radius: 14px; padding: 28px 28px 24px; box-shadow: 0 20px 60px rgba(0, 0, 0, .25); }
.sfl-modal-x { position: absolute; top: 10px; right: 12px; border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--sfl-muted); margin: 0; padding: 4px; min-height: 0; }
.sfl-modal-title { margin: 0 0 .3em; }
.sfl-modal-lead { color: var(--sfl-muted); font-size: .92em; margin: 0 0 1.2em; }
.sfl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.sfl-f { display: flex; flex-direction: column; margin: 0; font-weight: 400; }
.sfl-f[hidden] { display: none; }
.sfl-f span { font-size: .85em; color: var(--sfl-text); margin-bottom: 4px; font-weight: 600; }
.sfl-f input, .sfl-f select, .sfl-f textarea { margin: 0; width: 100%; }
.sfl-wide { grid-column: 1 / -1; }
.sfl-invalid { border-color: var(--sfl-critical) !important; box-shadow: 0 0 0 1px var(--sfl-critical) !important; }
.sfl-consent { display: flex; gap: 8px; align-items: flex-start; margin: 1em 0; font-size: .88em; font-weight: 400; }
.sfl-consent input { margin: 3px 0 0; }
.sfl-form-msg { color: var(--sfl-critical); font-size: .9em; margin: 0 0 .8em; }
.sfl-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sfl [hidden] { display: none !important; }
.sfl-type { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1em; }
.sfl-type label { display: flex; align-items: center; gap: 6px; margin: 0; padding: .45em .9em; border: 1px solid var(--sfl-border); border-radius: 99px; cursor: pointer; font-weight: 600; font-size: .9em; }
.sfl-type input { margin: 0; }
.sfl-type label:has(input:checked) { border-color: var(--sfl-accent); background: var(--sfl-accent-soft); color: var(--sfl-accent); }
.sfl-lines { display: flex; flex-direction: column; gap: 10px; }
.sfl-line { display: grid; grid-template-columns: minmax(0, 1fr) 110px 32px; gap: 6px 10px; align-items: end; padding: 10px 12px; border: 1px solid var(--sfl-border); border-radius: 8px; background: var(--sfl-surface-2); }
.sfl-line select, .sfl-line input { margin: 0; width: 100%; }
.sfl-line-bags { display: flex; flex-direction: column; margin: 0; font-size: .85em; font-weight: 600; }
.sfl-line-bags span { margin-bottom: 4px; }
.sfl .sfl-line-x { width: 32px; height: 32px; min-height: 0; margin: 0 0 4px; padding: 0; border: 0; background: none; font-size: 22px; line-height: 1; color: var(--sfl-muted); cursor: pointer; }
.sfl .sfl-line-x:hover { color: var(--sfl-critical); }
.sfl-line-info { grid-column: 1 / -1; margin: 0; font-size: .85em; color: var(--sfl-muted); }
.sfl-line-info:empty { display: none; }
.sfl-line.is-soldout .sfl-line-info { color: var(--sfl-critical); }
.sfl-lines-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: .6em 0 .2em; }
.sfl .sfl-add-line { margin: 0; padding: 0; min-height: 0; border: 0; background: none; color: var(--sfl-accent); font-weight: 600; text-transform: none; letter-spacing: 0; cursor: pointer; }
.sfl-total { font-weight: 700; color: var(--sfl-ink); font-size: 1.05em; }
.sfl-freight { font-size: .8em; color: var(--sfl-muted); margin: 0 0 1.1em; }
.sfl-terms { font-size: .85em; padding: .7em .9em; margin: 1em 0 0; background: var(--sfl-accent-soft); border-radius: 8px; color: var(--sfl-ink); }
.sfl-request-inline { max-width: 720px; }
.sfl-done-title { font-size: 1.2em; font-weight: 700; color: var(--sfl-accent); margin: .5em 0; }

@media (max-width: 849px) {
	.sfl-lot-cols, .sfl-farm-hero { grid-template-columns: 1fr; }
	.sfl-cards { grid-template-columns: repeat(var(--sfl-cols-t, 2), minmax(0, 1fr)); }
	.sfl-slider-track > .sfl-card { flex-basis: calc((100% - (var(--sfl-cols-t, 2) - 1) * var(--sfl-gap)) / var(--sfl-cols-t, 2)); }
	.sfl-slide-prev { left: 0; }
	.sfl-slide-next { right: 0; }
}
@media (max-width: 549px) {
	.sfl-grid, .sfl-spec-list { grid-template-columns: 1fr; }
	.sfl-modal-box { padding: 22px 16px 18px; }
	.sfl-cards { grid-template-columns: repeat(var(--sfl-cols-m, 1), minmax(0, 1fr)); }
	.sfl-slider-track > .sfl-card { flex-basis: calc((100% - (var(--sfl-cols-m, 1) - 1) * var(--sfl-gap)) / var(--sfl-cols-m, 1)); }
	.sfl-line { grid-template-columns: minmax(0, 1fr) 80px 28px; }
	.sfl-filter { min-width: 0; flex: 1 1 140px; }
}

/* [sfl_collapse]: collapse / expand any content. Without JS (no .is-ready) everything shows. */
.sfl-collapse { position: relative; width: 100%; }
.sfl-collapse-bar { display: none; }
.sfl-collapse.has-more .sfl-collapse-bar { display: flex; justify-content: center; }
.sfl-collapse.is-collapsed .sfl-collapse-body { max-height: var(--sfl-collapse-h, 600px); overflow: hidden; }
.sfl-collapse.is-collapsed .sfl-collapse-bar { position: absolute; left: 0; right: 0; bottom: 0; height: min(300px, 50%); align-items: flex-end; padding: 24px; background: linear-gradient(to top, var(--sfl-collapse-fade, #fff), rgba(255, 255, 255, 0)); background: linear-gradient(to top, var(--sfl-collapse-fade, #fff), transparent); pointer-events: none; }
.sfl-collapse.is-open .sfl-collapse-bar { padding: 12px 0 0; }
.sfl-collapse.is-open.no-less .sfl-collapse-bar { display: none; }
.sfl-collapse .sfl-collapse-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin: 0; padding: 12px; min-height: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #231F20; font: 600 14px/24px "Manrope", sans-serif; letter-spacing: 0; text-transform: none; cursor: pointer; pointer-events: auto; }
.sfl-collapse .sfl-collapse-btn:hover { color: #BC5506; }
.sfl-collapse-icon { flex: 0 0 24px; transition: transform .2s; }
.sfl-collapse.is-open .sfl-collapse-icon { transform: rotate(180deg); }

/* [sfl_lot_farm]: farm card on the lot page. Full width; image always square. */
.sfl-lot-farm { display: grid; grid-template-columns: 34% minmax(0, 1fr); width: 100%; background: #EAE6DE; font-family: "Manrope", sans-serif; }
/* Image column = 34% of the card, portrait 5:6 (1:1 on mobile). Stretches (cover) if the text column is taller, so no gap. */
.sfl-lot-farm__media { position: relative; display: block; width: 100%; aspect-ratio: 5 / 6; align-self: stretch; overflow: hidden; background: #D9D9D9; }
.sfl-lot-farm__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; display: block; margin: 0; }
.sfl-lot-farm__badge { position: absolute; top: 8px; left: 8px; padding: 4px 8px; background: #583D32; color: #fff; font: 600 14px/24px "Manrope", sans-serif; }
.sfl-lot-farm__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; min-width: 0; padding: 24px; }
.sfl .sfl-lot-farm__name { margin: 0; font-family: "Anton", sans-serif; font-size: 28px; font-weight: 400; line-height: 38px; color: #583D32; }
.sfl .sfl-lot-farm__name a { color: inherit; text-decoration: none; }
.sfl .sfl-lot-farm__name a:hover { color: #BC5506; }
.sfl .sfl-lot-farm__row { display: flex; align-items: center; gap: 8px; margin: 0; color: #583D32; font: 600 14px/24px "Manrope", sans-serif; }
.sfl-lot-farm__icon { flex: 0 0 24px; color: #BC5506; }
.sfl .sfl-lot-farm__desc { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; width: 100%; margin: 0; color: #583D32; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-lot-farm__btn { display: flex; align-items: center; justify-content: center; width: 100%; padding: 8px 12px; border: 2px solid #231F20; background: #231F20; color: #fff; font: 600 14px/24px "Manrope", sans-serif; text-decoration: none; transition: background .15s, color .15s; }
.sfl .sfl-lot-farm__btn:hover { background: transparent; color: #231F20; }
@media (max-width: 549px) {
	.sfl-lot-farm { grid-template-columns: 1fr; }
	.sfl-lot-farm__media { align-self: start; aspect-ratio: 1 / 1; }
	.sfl-lot-farm__body { padding: 20px 16px; }
	.sfl .sfl-lot-farm__name { font-size: 24px; line-height: 32px; }
}

/* ===== Lots grid / lot cards — Figma 9411:6858 (31/10) ===== */
.sfl-lots { display: flex; flex-direction: column; gap: 24px; font-family: "Manrope", sans-serif; }
.sfl-lots > * { margin: 0 !important; }

/* Filters */
.sfl .sfl-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 15px; margin: 0; }
.sfl .sfl-filter { flex: 1 1 0; min-width: 160px; display: flex; flex-direction: column; margin: 0; font-size: 14px; }
.sfl .sfl-filter span { margin: 0 0 2px; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-filter select { width: 100%; height: auto; margin: 0; padding: 12px 44px 12px 24px; border: 0; border-radius: 0; box-shadow: none; background-color: var(--sfl-filter-bg, #FBFAF4); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23231F20' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 12px 8px; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; -webkit-appearance: none; appearance: none; cursor: pointer; }
.sfl .sfl-filter select:focus { outline: 2px solid #583D32; outline-offset: -2px; }
.sfl .sfl-count { margin: 0; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-reset { color: #BC5506; font: 600 14px/24px "Manrope", sans-serif; padding: 0 0 12px; }

/* Grid */
.sfl-lots .sfl-cards { gap: 30px; }

/* Card */
.sfl .sfl-lot-card { border: 0; border-top: 4px solid #583D32; border-bottom: 4px solid #583D32; border-radius: 12px; background: var(--sfl-lot-card-bg, #FBFAF4); }
.sfl .sfl-lot-card.is-current { outline: 2px solid #583D32; outline-offset: -2px; }
.sfl-lot-card .sfl-card-media { aspect-ratio: 3 / 1; background: #F7F4F0; }
.sfl-lot-card .sfl-card-body { padding: 24px 18px; }
.sfl .sfl-lot-card .sfl-eyebrow { margin: 0; color: #231F20; font: 400 12px/24px "Manrope", sans-serif; letter-spacing: 0; text-transform: none; }
.sfl .sfl-lot-card .sfl-card-title { margin: 2px 0 6px; font-family: "Anton", sans-serif; font-size: 20px !important; font-weight: 400; line-height: 28px !important; }
.sfl .sfl-lot-card .sfl-card-title a { color: #583D32; }
.sfl .sfl-lot-card .sfl-card-title a:hover { color: #BC5506; }
.sfl .sfl-lot-card .sfl-card-body > .sfl-muted { min-height: 70px; margin: 0; padding: 0 0 12px; color: #BC5506; font: 500 16px/28px "Manrope", sans-serif; }
.sfl .sfl-lot-card .sfl-chips { min-height: 100px; align-content: flex-start; gap: 6px; margin: 0; padding: 8px 0 12px; }
.sfl .sfl-lot-card .sfl-chip { padding: 4px 8px; border: 0; border-radius: 0; background: #E2EEE4; color: #0E5B22; font: 700 14px/24px "Manrope", sans-serif; }
.sfl .sfl-lot-card .sfl-card-price { margin: 0; padding: 2px 0 5px; color: #BC5506; font: 700 14px/24px "Manrope", sans-serif; }
.sfl .sfl-lot-card .sfl-card-meta { margin: 0; padding: 0 0 12px; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-lot-card .sfl-card-meta .sfl-avail { font-weight: 700; }
.sfl .sfl-lot-card .sfl-avail-now { color: #0E5B22; }
.sfl .sfl-lot-card .sfl-avail-preorder { color: #C77C0A; }
.sfl .sfl-lot-card .sfl-avail-soldout { color: #A32540; }
.sfl .sfl-lot-card .sfl-card-meta .sfl-muted { color: #231F20; }
.sfl .sfl-lot-card .sfl-card-meta .sfl-interest { color: #0E5B22; font-weight: 400; }
.sfl .sfl-lot-card .sfl-btn { margin: auto 0 0 !important; padding: 8px 24px; min-height: 0; border: 1px solid #1E1B18 !important; border-radius: 0 !important; background: transparent !important; color: #1E1B18 !important; font: 600 15px/21px "Manrope", sans-serif; letter-spacing: 0; text-transform: none; }
.sfl .sfl-lot-card .sfl-btn:hover { background: #1E1B18 !important; color: #fff !important; }
@media (max-width: 549px) {
	.sfl .sfl-filter { min-width: calc(50% - 8px); }
	.sfl .sfl-lot-card .sfl-chips { min-height: 0; }
	.sfl .sfl-lot-card .sfl-card-body > .sfl-muted { min-height: 0; }
}
.sfl .sfl-lot-card .sfl-card-price .amount, .sfl .sfl-lot-card .sfl-card-price bdi, .sfl .sfl-lot-card .sfl-card-price .woocommerce-Price-currencySymbol { color: inherit; font-weight: inherit; }

/* Lot card: whole card links to the lot (stretched title link); request buttons sit above it */
.sfl .sfl-lot-card { position: relative; cursor: pointer; }
.sfl .sfl-lot-card .sfl-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sfl .sfl-lot-card:hover .sfl-card-title a { color: #BC5506; }
.sfl .sfl-lot-card .sfl-card-title a:focus-visible { outline: none; }
.sfl .sfl-lot-card:focus-within { outline: 2px solid #583D32; outline-offset: 2px; }
.sfl-lot-card .sfl-card-actions { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.sfl .sfl-card-req { display: block; width: 100%; margin: 0; padding: 8px 24px; min-height: 0; border: 0; border-radius: 0; box-shadow: none; color: #fff; font: 600 15px/21px "Manrope", sans-serif; letter-spacing: 0; text-transform: uppercase; text-align: center; cursor: pointer; transition: filter .15s; }
.sfl .sfl-card-req-sacks { background: #0E5B22; }
.sfl .sfl-card-req-sample { background: #BC5506; }
.sfl .sfl-card-req:hover { filter: brightness(1.12); color: #fff; }

/* ===== Request popup / form — Figma 9423:7602 (01/11) ===== */
.sfl-modal-box { max-width: 640px; padding: 30px; border-radius: 0; box-shadow: 0 20px 30px rgba(0, 0, 0, .25); font-family: "Manrope", sans-serif; }
.sfl .sfl-modal-x { top: 10px; right: 12px; color: #7A716A; font: 400 28px/28px Arial, sans-serif; }
.sfl .sfl-modal-x:hover { color: #231F20; }
.sfl .sfl-modal-title { margin: 0 0 8px; font-family: "Anton", sans-serif; font-size: 28px; font-weight: 400; line-height: 38px; color: #583D32; text-transform: none; }
.sfl .sfl-modal-lead { margin: 0 0 8px; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl-form { display: flex; flex-direction: column; gap: 3px; font-family: "Manrope", sans-serif; }
.sfl-form > * { margin: 0 !important; }

/* Type switch: two equal buttons, radio dot hidden */
.sfl .sfl-type { display: flex; flex-wrap: wrap; gap: 8px 15px; padding: 0 0 12px; }
.sfl .sfl-type label { position: relative; flex: 1 1 0; display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 0; padding: 12px 24px; border: 2px solid transparent; border-radius: 0; background: #E9E9E9; color: #231F20; font: 600 14px/24px "Manrope", sans-serif; text-align: center; cursor: pointer; }
.sfl .sfl-type input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.sfl .sfl-type label:has(input:checked) { background: #E6F2EC; border-color: #0E5B22; color: #0E5B22; }
.sfl .sfl-type label:has(input:focus-visible) { outline: 2px solid #583D32; outline-offset: 2px; }

/* Lots box */
.sfl-lines-box { display: flex; flex-direction: column; gap: 12px; padding: 24px; background: #EAE6DE; }
.sfl .sfl-lines { gap: 12px; }
.sfl .sfl-line { display: flex; flex-direction: column; gap: 12px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.sfl-line-row { display: flex; align-items: flex-end; gap: 12px; }
.sfl .sfl-line-lotf { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; margin: 0; }
.sfl .sfl-line-bags { flex: 0 0 100px; display: flex; flex-direction: column; margin: 0; font-weight: 400; }
.sfl .sfl-line-bags[hidden] { display: none !important; }
.sfl-line-label { padding-bottom: 4px; color: #3A3530; font: 400 14px/24px "Manrope", sans-serif; }
.sfl-line + .sfl-line .sfl-line-label { display: none; }
.sfl .sfl-line-lot, .sfl .sfl-line-qty { width: 100%; height: 48px; margin: 0; padding: 12px 24px; border: 1px solid transparent; border-radius: 0; box-shadow: none; background-color: #fff; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-line-qty { padding: 12px 12px 12px 24px; font-weight: 700; }
.sfl .sfl-line-lot { padding-right: 44px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23231F20' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 12px 8px; cursor: pointer; }
.sfl .sfl-line-x { flex: 0 0 48px; width: 48px; height: 48px; margin: 0; padding: 0; border: 0; background: none; color: #231F20; font: 400 22px/22px Arial, sans-serif; cursor: pointer; }
.sfl .sfl-line-x:hover { color: #A32540; }
.sfl .sfl-line-x[hidden] { display: block !important; visibility: hidden; }
.sfl .sfl-line-info { margin: 0; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-line.is-soldout .sfl-line-info { color: #A32540; }
.sfl .sfl-add-line { align-self: flex-start; margin: 0; padding: 0; border: 0; background: none; color: #0E5B22; font: 600 14px/24px "Manrope", sans-serif; text-transform: none; cursor: pointer; }
.sfl .sfl-add-line:hover { color: #BC5506; }
.sfl .sfl-freight { margin: 0; color: #7A7A7A; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-form .sfl-total { display: block; margin: 0; color: #BC5506; font-family: "Anton", sans-serif; font-size: 20px; font-weight: 400; line-height: 28px; }
.sfl .sfl-form .sfl-total:empty { display: none; }

/* Buyer fields */
.sfl .sfl-form .sfl-grid { gap: 15px; padding: 12px 0; }
.sfl .sfl-form .sfl-f span { margin: 0; padding-bottom: 4px; color: #3A3530; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-form .sfl-f input, .sfl .sfl-form .sfl-f select, .sfl .sfl-form .sfl-f textarea { width: 100%; height: 40px; margin: 0; padding: 8px 24px; border: 1px solid transparent; border-radius: 0; box-shadow: none; background-color: #EAE6DE; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-form .sfl-f textarea { height: 90px; min-height: 90px; resize: vertical; }
.sfl .sfl-form .sfl-f select { padding-right: 44px; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23231F20' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 12px 8px; cursor: pointer; }
.sfl .sfl-form ::placeholder { color: #7A7A7A; opacity: 1; }
.sfl .sfl-form input:focus, .sfl .sfl-form select:focus, .sfl .sfl-form textarea:focus { border-color: #583D32 !important; outline: none; box-shadow: none; }
.sfl .sfl-form .sfl-invalid { border-color: #A32540 !important; box-shadow: none !important; }

/* Terms, consent, message, submit */
.sfl .sfl-form .sfl-terms { margin: 0; padding: 10px 12px; border-left: 3px solid #0E5B22; border-radius: 0; background: #E2EEE4; color: #0E5B22; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-form .sfl-consent { display: flex; align-items: center; gap: 12px; margin: 0; padding: 12px 0; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; cursor: pointer; }
.sfl .sfl-form .sfl-consent input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; border: 1px solid #231F20; border-radius: 2.5px; background: #fff; -webkit-appearance: none; appearance: none; cursor: pointer; display: grid; place-content: center; }
.sfl .sfl-form .sfl-consent input:checked { border-color: #0E5B22; background: #0E5B22 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px 10px no-repeat; }
.sfl .sfl-form .sfl-consent input.sfl-invalid { border-color: #A32540 !important; }
.sfl .sfl-form .sfl-consent a { color: #BC5506; }
.sfl .sfl-form .sfl-form-msg { margin: 0 0 8px !important; color: #A32540; font: 600 14px/24px "Manrope", sans-serif; }
.sfl .sfl-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 72px; margin: 0; padding: 24px 48px; border: 2px solid #0E5B22; border-radius: 0; box-shadow: none; background: #0E5B22; color: #fff; font: 600 14px/24px "Manrope", sans-serif; letter-spacing: 0; text-transform: uppercase; cursor: pointer; transition: filter .15s, opacity .15s; }
.sfl .sfl-submit:hover { filter: brightness(1.1); }
.sfl .sfl-submit.is-sending, .sfl .sfl-submit:disabled { opacity: .6; cursor: default; filter: none; }

/* Success message (only when no thank-you page is set) */
.sfl .sfl-done-title { margin: 0 0 8px; font-family: "Anton", sans-serif; font-size: 28px; font-weight: 400; line-height: 38px; color: #583D32; }
.sfl .sfl-done-text { margin: 0 0 16px; font: 400 14px/24px "Manrope", sans-serif; color: #231F20; }

@media (max-width: 549px) {
	.sfl-modal-box { padding: 20px; }
	.sfl-lines-box { padding: 16px; }
	.sfl-line-row { flex-wrap: wrap; }
	.sfl .sfl-line-lotf { flex: 1 1 100%; }
	.sfl .sfl-line-bags { flex: 0 0 100px; }
	.sfl .sfl-line-x { margin-left: auto; }
	.sfl-line + .sfl-line .sfl-line-bags .sfl-line-label { display: none; }
	.sfl .sfl-form .sfl-grid { grid-template-columns: 1fr; }
}
.sfl .sfl-line-info { text-align: left; grid-column: auto; }
.sfl .sfl-line-bags span, .sfl .sfl-line-lotf span { margin: 0; font-size: 14px; font-weight: 400; }
.sfl .sfl-line { align-items: stretch; }

/* [sfl_farm_slider] (0.2.24, Figma 9427:9060): square farm photos, sideways scroll. */
.sfl-farm-slider { position: relative; display: block; width: 100%; max-width: 100%; min-width: 0; overflow: hidden; }
.sfl-fs-track { position: relative; width: 100%; min-width: 0; display: flex; gap: var(--sfl-fs-gap, 30px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; cursor: grab; outline: none; }
.sfl-fs-track::-webkit-scrollbar { display: none; }
.sfl-fs-track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.sfl .sfl-fs-slide { flex: 0 0 min(var(--sfl-fs-size, 705px), 85%); aspect-ratio: 1 / 1; margin: 0; padding: 0; overflow: hidden; scroll-snap-align: start; background: #DED8C8; }
.sfl.sfl-farm-slider.is-center .sfl-fs-slide { scroll-snap-align: center; }
.sfl-farm-slider.is-center:not([data-loop]) .sfl-fs-track { padding-inline: calc((100% - min(var(--sfl-fs-size, 705px), 85%)) / 2); } /* first / last photo can reach the middle */
.sfl .sfl-fs-slide img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.sfl .sfl-fs-btn { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); width: 48px; height: 48px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: #231F20; color: #fff; font-size: 26px; line-height: 48px; cursor: pointer; }
.sfl .sfl-fs-btn:hover { background: #583D32; }
.sfl-fs-prev { left: 12px; }
.sfl-fs-next { right: 12px; }
@media (max-width: 549px) {
	.sfl .sfl-fs-track { gap: 12px; }
	.sfl .sfl-fs-slide { flex-basis: 85%; }
}

/* [sfl_farm_video] (0.2.27): responsive embedded player. */
.sfl-video { position: relative; width: 100%; max-width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #1E1B18; }
.sfl-video iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; margin: 0; border: 0; }

/* Farm card (0.2.29, Figma 9435:9335). Whole card links to the farm (stretched title link). */
.sfl .sfl-fc { position: relative; display: flex; flex-direction: column; border: 0; border-bottom: 4px solid var(--sfl-farm-card-border, #10A210); border-radius: var(--sfl-farm-card-radius, 12px); overflow: hidden; background: var(--sfl-farm-card-bg, #EFF5EF); cursor: pointer; transition: transform .2s ease; }
.sfl .sfl-fc:hover { transform: translateY(-6px); }
.sfl .sfl-fc:focus-within { outline: 2px solid #0E5B22; outline-offset: 2px; }
.sfl-fc-media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #D9D9D9; }
.sfl .sfl-fc-img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.sfl-fc-img-empty { background: #D9D9D9; }
.sfl .sfl-fc-badge { position: absolute; top: 8px; left: 8px; z-index: 1; padding: 4px 8px; background: #583D32; color: #fff; font: 600 14px/24px "Manrope", sans-serif; letter-spacing: 0; text-transform: capitalize; white-space: nowrap; }
.sfl .sfl-fc-badge-estate { background: #0E5B22; }
.sfl-fc-body { display: flex; flex: 1; flex-direction: column; gap: 24px; padding: 24px 18px; }
.sfl .sfl-fc-title { margin: 0; padding: 0; font: 400 20px/28px "Anton", sans-serif !important; letter-spacing: 0; text-transform: none; }
.sfl .sfl-fc-title a { color: #583D32; font: inherit !important; letter-spacing: inherit; text-decoration: none; transition: color .2s; }
.sfl .sfl-fc:hover .sfl-fc-title a { color: #583D32; }
.sfl .sfl-fc-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.sfl .sfl-fc-title a:focus-visible { outline: none; }
.sfl .sfl-fc-loc { margin: 0; color: #231F20; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-fc-facts { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sfl .sfl-fc-facts li { display: flex; align-items: center; gap: 8px; margin: 0; color: #583D32; font: 600 14px/24px "Manrope", sans-serif; }
.sfl .sfl-fc-icon { flex: 0 0 24px; width: 24px; height: 24px; margin: 0; }
.sfl-fc-foot { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.sfl .sfl-fc-count { margin: 0; color: #0E5B22; font: 400 14px/24px "Manrope", sans-serif; }
.sfl .sfl-fc-count strong { font-weight: 700; }
.sfl .sfl-fc-count.is-zero { opacity: 0; }
.sfl .sfl-fc-btn { display: block; width: 100%; padding: 8px 24px; background: #0E5B22; color: #fff; font: 600 15px/21px "Manrope", sans-serif; text-align: center; transition: filter .2s; }
.sfl .sfl-fc:hover .sfl-fc-btn { filter: brightness(1.12); }
.sfl-farms .sfl-cards { gap: 30px; }
.sfl-farms-slider .sfl-slider-track { padding: 8px 2px 18px; }
@media (prefers-reduced-motion: reduce) { .sfl .sfl-fc, .sfl .sfl-fc:hover { transform: none; transition: none; } }
/* Lot card hover: lift a little, no shadow (all lot listings) */
.sfl .sfl-lot-card { transition: transform .2s ease; will-change: transform; }
.sfl .sfl-lot-card:hover { transform: translateY(-6px); box-shadow: none; }
.sfl-slider-track { padding-top: 8px; } /* room for the lift inside the slider's scroll box */
@media (prefers-reduced-motion: reduce) { .sfl .sfl-lot-card, .sfl .sfl-lot-card:hover { transition: none; transform: none; } }
