.gpf-wrap{--gpf-accent:#2d6bff;--gpf-border:#d5d9e0;margin:0 0 24px}
.gpf-wrap *{box-sizing:border-box}
.gpf-blocks{display:grid;grid-template-columns:repeat(var(--gpf-cols,3),minmax(0,1fr));gap:16px}
@media(max-width:1024px){.gpf-blocks{grid-template-columns:repeat(var(--gpf-cols-t,2),minmax(0,1fr))}}
@media(max-width:768px){.gpf-blocks{grid-template-columns:repeat(var(--gpf-cols-m,1),minmax(0,1fr))}}

.gpf-block{border:1px solid var(--gpf-border);border-radius:10px;background:#fff;padding:14px 16px}
.gpf-title{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;padding:0;font-size:15px;font-weight:600;color:#222;cursor:pointer;text-align:left}
.gpf-chev{width:8px;height:8px;border-right:2px solid #333;border-bottom:2px solid #333;transform:rotate(-135deg);margin:4px 4px 0 0;transition:transform .2s}
.gpf-block.is-closed .gpf-chev{transform:rotate(45deg);margin-top:0}
.gpf-block.is-closed .gpf-body{display:none}
.gpf-title+.gpf-body{margin-top:12px}
.gpf-desc{margin:0 0 10px;font-size:13px;color:#666}
.gpf-empty{margin:0;color:#888;font-size:13px}

.gpf-items-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto}
.gpf-items-list .gpf-opt{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}
.gpf-items-grid{display:grid;grid-template-columns:repeat(var(--gpf-item-cols,3),minmax(0,1fr));gap:8px}
@media(max-width:480px){.gpf-items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gpf-items-grid .gpf-opt{position:relative;display:block;cursor:pointer}
.gpf-items-grid .gpf-opt input{position:absolute;opacity:0;pointer-events:none}
.gpf-items-grid .gpf-opt-label{display:flex;align-items:center;justify-content:center;gap:4px;height:100%;min-height:42px;padding:8px 10px;border:1px solid var(--gpf-border);border-radius:8px;font-size:13px;text-align:center;background:#f8f9fb;transition:.15s}
.gpf-items-grid .gpf-opt:hover .gpf-opt-label{border-color:var(--gpf-accent)}
.gpf-items-grid .gpf-opt input:checked+.gpf-opt-label{background:var(--gpf-accent);border-color:var(--gpf-accent);color:#fff}
.gpf-items-grid .gpf-opt input:focus-visible+.gpf-opt-label{outline:2px solid var(--gpf-accent);outline-offset:2px}
.gpf-count{opacity:.7}

.gpf-select{width:100%;height:40px;border:1px solid var(--gpf-border);border-radius:8px;padding:0 10px;background:#fff}
.gpf-price{display:flex;align-items:center;gap:8px}
.gpf-price input{width:100%;min-width:0;height:40px;border:1px solid var(--gpf-border);border-radius:8px;padding:0 10px}

.gpf-actions{display:flex;gap:10px;margin-top:16px}
.gpf-btn{border:1px solid var(--gpf-accent);border-radius:8px;padding:10px 26px;font-size:14px;cursor:pointer;background:#fff;color:var(--gpf-accent)}
.gpf-btn-apply{background:var(--gpf-accent);color:#fff}
.gpf-loading{opacity:.45;pointer-events:none;transition:opacity .15s}

/* ================= Sort by ================= */
.gpf-wrap .gpf-sortbox{display:flex;align-items:center;gap:10px;font-size:14px}
.gpf-wrap .gpf-sortbox label{margin:0;font-weight:400;text-transform:none;white-space:nowrap}
.gpf-wrap .gpf-sort{display:inline-block;width:auto;min-width:150px;height:44px;margin:0;padding:0 36px 0 12px;border:1px solid var(--gpf-border);border-radius:3px;background-color:#fff;color:#222;font-size:14px;font-weight:400;text-transform:none;line-height:42px}
.gpf-mode-grid .gpf-sortbox{margin-top:16px}

/* ================= Dropdown bar layout ================= */
.gpf-wrap.gpf-mode-bar{--gpf-accent:#2b2f33}
.gpf-mode-bar form.gpf-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.gpf-mode-bar .gpf-blocks{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;flex:1 1 auto;grid-template-columns:none}
.gpf-mode-bar .gpf-block{position:relative;border:0;border-radius:0;background:none;padding:0}
.gpf-mode-bar .gpf-dd-btn{display:flex;align-items:center;justify-content:space-between;gap:16px;width:auto;min-width:230px;height:44px;margin:0;padding:0 14px;background:#fff;color:#313131;border:1px solid #313131;border-radius:3px;font-size:14px;font-weight:400;line-height:1.2;text-align:left;text-transform:none;letter-spacing:normal;box-shadow:none;cursor:pointer;-webkit-appearance:none;appearance:none}
.gpf-mode-bar .gpf-dd-btn::after{content:"";flex:none;width:7px;height:7px;margin-top:-3px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.gpf-mode-bar .gpf-dd-btn[aria-expanded=true]::after{margin-top:3px;transform:rotate(-135deg)}
.gpf-mode-bar .gpf-dd-btn:hover,.gpf-mode-bar .gpf-dd.is-active .gpf-dd-btn{background:#fff;color:#313131;border-color:#313131}
.gpf-mode-bar .gpf-dd-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.gpf-mode-bar .gpf-dd-panel{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:max-content;min-width:240px;max-width:min(380px,calc(100vw - 32px));max-height:380px;overflow:auto;margin:0;padding:14px;background:#fff;border:1px solid var(--gpf-border);border-radius:4px;box-shadow:0 12px 32px rgba(0,0,0,.14)}
.gpf-mode-bar .gpf-dd-panel[hidden]{display:none}
.gpf-mode-bar .gpf-title+.gpf-body{margin-top:0}
.gpf-mode-bar .gpf-items-list{max-height:none;overflow:visible}
.gpf-mode-bar .gpf-items-list input,.gpf-mode-bar .gpf-items-grid input{accent-color:var(--gpf-accent)}
.gpf-mode-bar .gpf-actions{margin:0}
.gpf-mode-bar .gpf-btn-reset{height:44px;padding:0 16px;border:0;border-radius:3px;background:#313131;color:#fff;font-size:14px}
.gpf-mode-bar .gpf-sortbox{margin:0 0 0 auto;padding-left:16px;border-left:1px solid var(--gpf-border)}
.gpf-mode-bar .gpf-items-grid .gpf-opt input:checked+.gpf-opt-label{background:var(--gpf-accent);border-color:var(--gpf-accent)}

/* Desktop + tablet (769px and up): the filters, Sort by and Clear all share ONE line with the same gap
   between every item. .gpf-blocks is display:contents so all of them are direct flex items of the form.
   Long term names are cut with "..." instead of widening the row. Mobile (768px and below) is untouched. */
@media(min-width:769px){
	.gpf-wrap.gpf-mode-bar form.gpf-form{flex-wrap:nowrap;align-items:center;gap:12px}
	.gpf-wrap.gpf-mode-bar .gpf-blocks{display:contents}
	.gpf-wrap.gpf-mode-bar .gpf-block{flex:1 1 0;min-width:0;margin:0}
	.gpf-wrap.gpf-mode-bar .gpf-dd-btn{width:100%;min-width:0;max-width:none}
	.gpf-wrap.gpf-mode-bar .gpf-actions{flex:none;width:auto;margin:0}
	.gpf-wrap.gpf-mode-bar .gpf-sortbox{flex:none;width:auto;margin:0}
	.gpf-wrap.gpf-mode-bar .gpf-blocks .gpf-block .gpf-dd-panel{left:0;right:auto;min-width:max(100%,240px)}
	.gpf-wrap.gpf-mode-bar .gpf-blocks .gpf-block:last-child .gpf-dd-panel{left:auto;right:0}
}

/* Tablet only: slightly tighter so everything still fits on the same line */
@media(min-width:769px) and (max-width:1024px){
	.gpf-wrap.gpf-mode-bar form.gpf-form{gap:10px}
	.gpf-wrap.gpf-mode-bar .gpf-dd-btn{gap:8px;padding:0 10px;font-size:13px}
	.gpf-wrap.gpf-mode-bar .gpf-btn-reset{padding:0 14px;font-size:13px}
	.gpf-wrap.gpf-mode-bar .gpf-sortbox{padding-left:10px}
	.gpf-wrap.gpf-mode-bar .gpf-sortbox label{display:none}
	.gpf-wrap.gpf-mode-bar .gpf-sort{min-width:0;padding:0 26px 0 10px;font-size:13px}
}

/* ================= Mobile: bottom "Filter" bar + full-screen drawer ================= */
.gpf-mode-bar .gpf-mobile-trigger,.gpf-mode-bar .gpf-m-close,.gpf-mode-bar .gpf-m-only,.gpf-mode-bar .gpf-actions-m{display:none}

@media(max-width:768px){
	/* bottom bar that opens the drawer */
	.gpf-wrap.gpf-mode-bar .gpf-mobile-trigger{display:flex;align-items:center;justify-content:center;gap:8px;position:fixed;left:12px;right:12px;bottom:12px;z-index:9990;width:auto;height:50px;margin:0;padding:0;background:#000;color:#fff;border:0;border-radius:4px;font-size:16px;font-weight:600;line-height:1;text-transform:none;letter-spacing:normal;box-shadow:none;cursor:pointer}
	.gpf-wrap.gpf-mode-bar .gpf-mobile-trigger svg{flex:none;width:18px;height:18px;fill:currentColor}

	/* the form becomes the full-screen drawer */
	.gpf-wrap.gpf-mode-bar form.gpf-form{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:100000;margin:0;padding:0 15px 40px;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff}
	.admin-bar .gpf-wrap.gpf-mode-bar form.gpf-form{top:46px}
	.gpf-wrap.gpf-mode-bar.gpf-open form.gpf-form{display:block}
	html.gpf-lock{overflow:hidden}
	.gpf-wrap.gpf-mode-bar .gpf-m-close{display:block;width:44px;height:44px;margin:0 -8px 0 auto;padding:0;background:none!important;border:0;box-shadow:none;color:#5f7a8e!important;font-size:30px;font-weight:300;line-height:44px;text-align:center;cursor:pointer}

	/* accordion list */
	.gpf-wrap.gpf-mode-bar .gpf-blocks{display:block;width:auto;margin:0;padding:6px 12px 14px;background:#fafafa}
	.gpf-wrap.gpf-mode-bar .gpf-block{display:block;width:100%;border-bottom:1px solid #cfd2d6}
	.gpf-wrap.gpf-mode-bar .gpf-dd-btn,.gpf-wrap.gpf-mode-bar .gpf-dd-btn:hover,.gpf-wrap.gpf-mode-bar .gpf-dd-btn:focus,.gpf-wrap.gpf-mode-bar .gpf-dd-btn:active,.gpf-wrap.gpf-mode-bar .gpf-dd.is-active .gpf-dd-btn{width:100%!important;min-width:0!important;height:auto!important;min-height:46px;padding:14px 0!important;background:transparent!important;color:#5f7a8e!important;border:0!important;border-radius:0!important;box-shadow:none!important;font-size:15px;font-weight:700}
	.gpf-wrap.gpf-mode-bar .gpf-dd-label{font-weight:700}
	.gpf-wrap.gpf-mode-bar .gpf-dd-btn::after,.gpf-wrap.gpf-mode-bar .gpf-dd-btn[aria-expanded=true]::after{content:"+";width:auto;height:auto;margin:0;border:0;transform:none;font-size:22px;font-weight:300;line-height:1}
	.gpf-wrap.gpf-mode-bar .gpf-dd-btn[aria-expanded=true]::after{content:"\2212"}
	.gpf-wrap.gpf-mode-bar .gpf-dd-panel{position:static;width:auto;min-width:0;max-width:none;max-height:none;overflow:visible;padding:0 0 16px;background:transparent;border:0;border-radius:0;box-shadow:none}
	.gpf-wrap.gpf-mode-bar .gpf-dd-panel[hidden]{display:none}
	.gpf-wrap.gpf-mode-bar .gpf-items-list{gap:12px}
	.gpf-wrap.gpf-mode-bar .gpf-items-list .gpf-opt{font-size:14px;color:#3d4348}

	/* sort by (if enabled) sits under the accordions */
	.gpf-wrap.gpf-mode-bar .gpf-sortbox{width:auto;margin:20px 0 0;padding:0;border:0}
	.gpf-wrap.gpf-mode-bar .gpf-sort{flex:1}

	/* Clear all / Apply filter */
	.gpf-wrap.gpf-mode-bar .gpf-actions,.gpf-wrap.gpf-mode-bar .gpf-actions-m{display:flex;gap:24px;margin:28px 0 0}
	.gpf-wrap.gpf-mode-bar .gpf-m-only{display:block}
	.gpf-wrap.gpf-mode-bar .gpf-actions .gpf-btn{flex:1 1 0;height:40px;padding:0 12px;border:0;border-radius:3px;box-shadow:none;font-size:14px;font-weight:500;letter-spacing:.2px;text-transform:uppercase}
	.gpf-wrap.gpf-mode-bar .gpf-actions .gpf-btn-reset{background:#eceef0;color:#6b7b88}
	.gpf-wrap.gpf-mode-bar .gpf-actions .gpf-btn-apply{background:var(--gpf-accent);color:#fff}
}

/* ================= theme-proof: titles, selects, sort cell ================= */
.gpf-wrap .gpf-title,.gpf-wrap .gpf-title:hover,.gpf-wrap .gpf-title:focus,.gpf-wrap .gpf-title:active{background:none!important;color:#222!important;text-transform:none;letter-spacing:normal;box-shadow:none;border:0;text-shadow:none}
.gpf-wrap .gpf-select{display:block;width:100%;height:44px;margin:0;padding:0 36px 0 12px;border:1px solid var(--gpf-border);border-radius:3px;background-color:#fff;color:#222;font-size:14px;font-weight:400;line-height:42px;text-transform:none}
.gpf-mode-grid .gpf-sortbox.gpf-block{display:block;margin:0}
.gpf-mode-grid .gpf-sortbox.gpf-block label{display:block;margin:0 0 12px;font-size:15px;font-weight:600;color:#222}
.gpf-mode-grid .gpf-sortbox.gpf-block .gpf-sort{display:block;width:100%}

/* ================= Selected filters chips (#wpf-active-filters) ================= */
#wpf-active-filters{align-items:center;gap:10px}
#wpf-active-filters .gpf-chip{display:inline-flex;align-items:center;gap:8px;height:auto;margin:0;padding:6px 14px;background:#f1f1f1;color:inherit;border:0;border-radius:20px;box-shadow:none;font-size:13px;font-weight:600;line-height:1.3;text-transform:none;letter-spacing:normal;white-space:nowrap;cursor:pointer}
#wpf-active-filters .gpf-chip:hover,#wpf-active-filters .gpf-chip:focus{background:#e4e4e4;color:inherit}
#wpf-active-filters .gpf-chip i{font-style:normal;font-size:16px;line-height:1}
