/*
 * Better Foar Letter — Frontend
 * Slate-palet, rounded-xl, soft shadows, Inter. Gescoped op .bfl-scope.
 */

.bfl-scope{
	--slate-50:#f8fafc; --slate-100:#f1f5f9; --slate-200:#e2e8f0; --slate-300:#cbd5e1;
	--slate-400:#94a3b8; --slate-500:#64748b; --slate-600:#475569; --slate-700:#334155;
	--slate-800:#1e293b; --slate-900:#0f172a;
	--emerald-50:#ecfdf5; --emerald-600:#059669;
	--amber-50:#fffbeb; --amber-600:#d97706;
	--rose-50:#fff1f2; --rose-600:#e11d48;
	--brand:#4F7A28; --brand-dk:#3f6120; --brand-soft:#eef4e8;
	--radius:10px; --radius-lg:14px; --radius-xl:18px;
	--shadow-xs:0 1px 2px rgba(15,23,42,.05);
	--shadow-sm:0 1px 2px rgba(15,23,42,.05),0 1px 3px rgba(15,23,42,.03);
	--shadow:0 1px 2px rgba(15,23,42,.04),0 4px 12px rgba(15,23,42,.06);

	font-family:var(--bfl-font,'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif);
	color:var(--slate-900); line-height:1.55; -webkit-font-smoothing:antialiased;
}
.bfl-scope *{box-sizing:border-box;}
.bfl-scope a{color:var(--brand);text-decoration:none;}
.bfl-scope a:hover{color:var(--brand-dk);}
.bfl-scope a.bfl-btn--primary,.bfl-scope a.bfl-btn--ink,.bfl-scope a.bfl-btn--primary:hover,.bfl-scope a.bfl-btn--ink:hover{color:#fff;}
.bfl-scope a.bfl-btn--ghost,.bfl-scope a.bfl-btn--ghost:hover{color:var(--slate-700);}

/* Deadline-banner */
.bfl-deadline{display:flex;align-items:center;gap:8px;background:var(--brand-soft);color:var(--brand-dk);border:1px solid #d4e3c4;border-radius:var(--radius-lg);padding:11px 16px;font-size:14px;margin-bottom:18px;}

/* Notices */
.bfl-notice{border-radius:var(--radius-lg);padding:13px 16px;margin-bottom:16px;font-size:14px;}
.bfl-notice--ok{background:var(--emerald-50);color:var(--emerald-600);border:1px solid #a7f3d0;}
.bfl-notice--warn{background:var(--amber-50);color:var(--amber-600);border:1px solid #fcd9a4;}
.bfl-notice--err{background:var(--rose-50);color:var(--rose-600);border:1px solid #fecdd3;}

/* Layout: main + cart rechts */
.bfl-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start;}
.bfl-main{min-width:0;}

/* Filters */
.bfl-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.bfl-input{border:1px solid var(--slate-300);border-radius:var(--radius);padding:10px 12px;font-size:14px;font-family:inherit;background:#fff;color:var(--slate-900);}
.bfl-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.bfl-input--qty{width:80px;}
.bfl-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--slate-700);}
.bfl-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.bfl-chip{padding:6px 13px;border-radius:999px;border:1px solid var(--slate-300);font-size:13px;color:var(--slate-600);background:#fff;}
.bfl-chip.is-active{background:var(--brand);border-color:var(--brand);color:#fff;}

/* Product grid */
.bfl-grid{display:grid;gap:18px;}
.bfl-grid--2{grid-template-columns:repeat(2,1fr);}
.bfl-grid--3{grid-template-columns:repeat(3,1fr);}
.bfl-grid--4{grid-template-columns:repeat(4,1fr);}
.bfl-card-product{background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s;}
.bfl-card-product:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.bfl-card-product__media{position:relative;display:block;aspect-ratio:4/3;background:var(--slate-100);overflow:hidden;}
.bfl-card-product__media img{width:100%;height:100%;object-fit:cover;display:block;}
.bfl-card-product__noimg{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--slate-100),var(--slate-200));}
.bfl-badge{position:absolute;top:10px;left:10px;background:var(--brand);color:#fff;font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;}
.bfl-badge--inline{position:static;display:inline-block;margin-bottom:10px;}
.bfl-card-product__body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.bfl-card-product__farmer{font-size:12px;color:var(--slate-500);font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
.bfl-card-product__title{font-size:15.5px;font-weight:700;margin:0;line-height:1.3;}
.bfl-card-product__title a{color:var(--slate-900);}
.bfl-card-product__price{font-size:15px;font-weight:700;color:var(--brand-dk);margin-top:auto;}
.bfl-card-product__price span{font-size:12.5px;color:var(--slate-500);font-weight:500;}

/* Buttons */
.bfl-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--radius);padding:10px 16px;font-weight:600;font-size:14px;cursor:pointer;font-family:inherit;transition:all .15s;text-decoration:none;}
.bfl-btn--primary{background:var(--brand);color:#fff;}
.bfl-btn--primary:hover{background:var(--brand-dk);color:#fff;}
.bfl-btn--ghost{background:#fff;border-color:var(--slate-300);color:var(--slate-700);}
.bfl-btn--ghost:hover{background:var(--slate-100);}
.bfl-btn--ink{background:var(--slate-900);color:#fff;}
.bfl-btn--ink:hover{background:var(--slate-700);color:#fff;}
.bfl-btn--block{width:100%;margin-top:4px;}

/* Cart rechterkant */
.bfl-cart{position:sticky;top:24px;}
.bfl-cart__inner{background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:20px;}
.bfl-cart__title{font-size:16px;font-weight:800;margin:0 0 14px;}
.bfl-cart__lines{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}
.bfl-cart__empty{color:var(--slate-500);font-size:13.5px;padding:8px 0;}
.bfl-cart__line{display:flex;gap:10px;align-items:center;}
.bfl-cart__line img{width:42px;height:42px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--slate-100);}
.bfl-cart__line-main{flex:1;min-width:0;}
.bfl-cart__line-title{font-size:13.5px;font-weight:600;line-height:1.25;}
.bfl-cart__line-meta{font-size:12px;color:var(--slate-500);}
.bfl-cart__qty{display:flex;align-items:center;gap:6px;}
.bfl-cart__qty button{width:24px;height:24px;border-radius:6px;border:1px solid var(--slate-300);background:#fff;cursor:pointer;font-weight:700;color:var(--slate-600);line-height:1;}
.bfl-cart__qty span{min-width:18px;text-align:center;font-size:13px;font-weight:600;}
.bfl-cart__totals{border-top:1px solid var(--slate-200);padding-top:12px;margin-bottom:14px;}
.bfl-cart__row{display:flex;justify-content:space-between;font-size:13.5px;color:var(--slate-600);padding:3px 0;}
.bfl-cart__row--total{font-size:16px;font-weight:800;color:var(--slate-900);border-top:1px solid var(--slate-100);margin-top:6px;padding-top:8px;}
.bfl-cart__checkout{display:flex;flex-direction:column;gap:8px;}
.bfl-cart__msg{font-size:13px;color:var(--rose-600);}

/* Single product */
.bfl-back{display:inline-block;margin-bottom:16px;font-size:13.5px;color:var(--slate-500);}
.bfl-single__top{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.bfl-single__hero{aspect-ratio:1;border-radius:var(--radius-xl);overflow:hidden;background:var(--slate-100);}
.bfl-single__hero img{width:100%;height:100%;object-fit:cover;}
.bfl-single__thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.bfl-single__thumbs img{width:64px;height:64px;border-radius:8px;object-fit:cover;border:1px solid var(--slate-200);}
.bfl-single__title{font-size:28px;font-weight:800;margin:6px 0;letter-spacing:-.02em;}
.bfl-single__price{font-size:22px;font-weight:800;color:var(--brand-dk);margin-bottom:14px;}
.bfl-single__price span{font-size:14px;color:var(--slate-500);font-weight:500;}
.bfl-single__desc{color:var(--slate-700);margin-bottom:18px;}
.bfl-single__buy{display:flex;gap:10px;align-items:center;margin-bottom:22px;}
.bfl-supplier{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:var(--radius-lg);padding:16px;}
.bfl-supplier__head{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-500);}
.bfl-supplier__name{font-size:16px;font-weight:700;margin:3px 0;}
.bfl-supplier__meta{font-size:13px;color:var(--slate-500);}
.bfl-supplier__info{font-size:13.5px;color:var(--slate-600);margin:8px 0;}

/* Account */
.bfl-account__title{font-size:24px;font-weight:800;}
.bfl-account__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.bfl-card{background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:22px;}
.bfl-card__h{font-size:16px;font-weight:700;margin:0 0 14px;}
.bfl-reg,.bfl-form{display:flex;flex-direction:column;gap:10px;}
.bfl-reg__msg,.bfl-form__msg{font-size:13.5px;}

/* Portaal */
.bfl-portal__head{margin-bottom:18px;}
.bfl-portal__title{font-size:26px;font-weight:800;margin:2px 0 0;letter-spacing:-.02em;}
.bfl-portal__tabs{display:flex;gap:6px;background:#fff;border:1px solid var(--slate-200);padding:6px;border-radius:var(--radius-lg);margin-bottom:18px;width:fit-content;flex-wrap:wrap;}
.bfl-tab{padding:8px 16px;border:none;background:none;border-radius:var(--radius);font-weight:600;font-size:13.5px;color:var(--slate-600);cursor:pointer;font-family:inherit;}
.bfl-tab:hover{background:var(--slate-100);}
.bfl-tab.is-active{background:var(--brand);color:#fff;}
.bfl-pane{display:none;}
.bfl-pane.is-active{display:block;}
.bfl-form__row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.bfl-media{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.bfl-media__status{font-size:12.5px;color:var(--slate-500);}

/* Tables (gedeeld) */
.bfl-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.bfl-table th{text-align:left;font-weight:600;color:var(--slate-500);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:9px 10px;border-bottom:1px solid var(--slate-200);}
.bfl-table td{padding:11px 10px;border-bottom:1px solid var(--slate-100);}
.bfl-table tfoot th{border-top:2px solid var(--slate-200);color:var(--slate-900);text-transform:none;font-size:13px;}

.bfl-empty{text-align:center;color:var(--slate-500);padding:32px 20px;border:1px dashed var(--slate-300);border-radius:var(--radius-lg);background:var(--slate-50);}
.bfl-eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-500);}
.bfl-link{font-size:13.5px;font-weight:600;display:inline-block;margin-top:8px;}

/* WP login-form binnen account */
.bfl-account .login-username label,.bfl-account .login-password label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--slate-700);}
.bfl-account input[type=text],.bfl-account input[type=password]{width:100%;border:1px solid var(--slate-300);border-radius:var(--radius);padding:10px 12px;font-size:14px;margin-bottom:10px;}
.bfl-account .button{background:var(--brand);color:#fff;border:none;border-radius:var(--radius);padding:10px 18px;font-weight:600;cursor:pointer;}

@media (max-width:900px){
	.bfl-layout{grid-template-columns:1fr;}
	.bfl-cart{position:static;}
	.bfl-single__top{grid-template-columns:1fr;}
	.bfl-account__grid{grid-template-columns:1fr;}
	.bfl-grid--3,.bfl-grid--4{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
	.bfl-grid--2,.bfl-grid--3,.bfl-grid--4{grid-template-columns:1fr;}
	.bfl-form__row{grid-template-columns:1fr;}
}

/* Favorieten-hartje */
.bfl-card-product__open{display:block;width:100%;height:100%;}
.bfl-fav{width:42px;height:42px;border-radius:10px;border:1px solid var(--slate-300);background:#fff;color:var(--slate-400);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;padding:0;}
.bfl-fav:hover{color:#e11d48;border-color:#fecdd3;}
.bfl-fav.is-active{color:#e11d48;border-color:#fecdd3;background:#fff1f2;}
.bfl-fav svg{display:block;}
.bfl-card-product__media .bfl-fav,.bfl-qv__hero .bfl-fav{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:999px;border:none;background:rgba(255,255,255,.92);box-shadow:var(--shadow-xs);z-index:2;}

/* Quick-view pop-up */
.bfl-scope .bfl-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;}
.bfl-scope .bfl-modal[hidden]{display:none;}
.bfl-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);}
.bfl-modal__panel{position:relative;background:#fff;border-radius:var(--radius-xl);max-width:860px;width:calc(100% - 32px);max-height:88vh;overflow:auto;box-shadow:0 20px 50px rgba(15,23,42,.3);padding:24px;}
.bfl-modal__close{position:absolute;top:14px;right:14px;border:none;background:var(--slate-100);width:34px;height:34px;border-radius:9px;cursor:pointer;font-size:15px;color:var(--slate-600);}
.bfl-modal__close:hover{background:var(--slate-200);}
.bfl-qv{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.bfl-qv__hero{position:relative;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;background:var(--slate-100);}
.bfl-qv__hero img{width:100%;height:100%;object-fit:cover;}
.bfl-qv__thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.bfl-qv__thumbs span{display:inline-block;}
.bfl-qv__thumbs img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--slate-200);}
.bfl-qv__title{font-size:24px;font-weight:800;margin:6px 0 4px;letter-spacing:-.02em;}
.bfl-qv__price{font-size:19px;font-weight:800;color:var(--brand-dk);margin-bottom:12px;}
.bfl-qv__price span{font-size:13px;color:var(--slate-500);font-weight:500;}
.bfl-qv__desc{color:var(--slate-700);margin-bottom:16px;}
@media (max-width:680px){.bfl-qv{grid-template-columns:1fr;}}

/* Account: pills, foto-upload, kleine knop, supplier-logo */
.bfl-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;}
.bfl-pill--ok{background:#dcfce7;color:#166534;}
.bfl-pill--open{background:#fef9c3;color:#854d0e;}
.bfl-muted{color:var(--slate-500);font-size:13px;}
.bfl-btn--sm{padding:6px 12px;font-size:13px;}
.bfl-cust-photo{display:flex;align-items:center;gap:14px;margin-bottom:6px;}
.bfl-upload__preview{width:72px;height:72px;border-radius:12px;overflow:hidden;background:var(--slate-100);display:flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid var(--slate-200);}
.bfl-upload__preview img{width:100%;height:100%;object-fit:cover;}
.bfl-upload__preview span{font-size:11px;color:var(--slate-400);text-align:center;}
.bfl-supplier__top{display:flex;align-items:center;gap:12px;}
.bfl-supplier__logo img{width:46px;height:46px;border-radius:10px;object-fit:cover;}

/* Registratieformulieren */
.bfl-reg .bfl-label{display:block;margin-bottom:10px;font-weight:600;font-size:14px;color:var(--slate-700);}
.bfl-reg .bfl-label .bfl-input{margin-top:4px;font-weight:400;}
.bfl-sublabel{display:block;font-size:12px;color:var(--slate-500);margin-top:3px;font-weight:400;}
.bfl-reg__section{margin:18px 0 8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-600);}
.bfl-radios{border:none;padding:0;margin:0 0 14px;}
.bfl-radios legend{font-weight:600;font-size:14px;color:var(--slate-700);margin-bottom:6px;}
.bfl-radio{display:flex;align-items:center;gap:8px;font-size:14px;margin:4px 0;cursor:pointer;}
.bfl-radio input{width:auto;}
