PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.7
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.7
2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
blockenberg / blocks / product-showcase / style.css

style.css in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.7, at blocks/product-showcase/style.css

434 lines 16.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 .bkbg-ps-wrapper {
2 box-sizing: border-box;
3 width: 100%;
4 }
5
6 /* ── Outer layout ───────────────────────────────────────────────── */
7 .bkbg-ps-outer {
8 display: flex;
9 gap: 40px;
10 align-items: flex-start;
11 }
12 .bkbg-ps-outer--reverse { flex-direction: row-reverse; }
13 .bkbg-ps-outer--image-top {
14 flex-direction: column;
15 }
16 .bkbg-ps-outer--image-top .bkbg-ps-gallery-col,
17 .bkbg-ps-outer--image-top .bkbg-ps-info-col { width: 100%; }
18
19 /* ── Gallery column ─────────────────────────────────────────────── */
20 .bkbg-ps-gallery-col {
21 flex: 0 0 var(--bkbg-ps-gallery-w, 50%);
22 max-width: var(--bkbg-ps-gallery-w, 50%);
23 }
24 .bkbg-ps-main-image-wrap {
25 border-radius: var(--bkbg-ps-img-r, 16px);
26 overflow: hidden;
27 background: var(--bkbg-ps-badge-bg, #f3f4f6);
28 aspect-ratio: 1 / 1;
29 position: relative;
30 }
31 .bkbg-ps-main-image-wrap img {
32 width: 100%;
33 height: 100%;
34 object-fit: cover;
35 display: block;
36 transition: transform 0.35s ease;
37 }
38 .bkbg-ps-main-image-wrap img:hover { transform: scale(1.04); }
39
40 .bkbg-ps-placeholder {
41 position: absolute;
42 inset: 0;
43 display: flex;
44 flex-direction: column;
45 align-items: center;
46 justify-content: center;
47 color: #9ca3af;
48 font-size: 14px;
49 gap: 8px;
50 background: #f9fafb;
51 }
52
53 /* Thumbnails row */
54 .bkbg-ps-thumbs {
55 display: flex;
56 gap: 8px;
57 flex-wrap: wrap;
58 margin-top: 12px;
59 }
60 .bkbg-ps-thumb-btn {
61 width: 64px;
62 height: 64px;
63 border-radius: 10px;
64 overflow: hidden;
65 border: 2px solid transparent;
66 cursor: pointer;
67 padding: 0;
68 background: none;
69 flex-shrink: 0;
70 transition: border-color 0.15s;
71 }
72 .bkbg-ps-thumb-btn.is-active,
73 .bkbg-ps-thumb-btn:hover { border-color: var(--bkbg-ps-price-color, #6c3fb5); }
74 .bkbg-ps-thumb-btn img {
75 width: 100%;
76 height: 100%;
77 object-fit: cover;
78 display: block;
79 }
80
81 /* ── Info column ────────────────────────────────────────────────── */
82 .bkbg-ps-info-col { flex: 1; min-width: 0; }
83
84 /* Brand */
85 .bkbg-ps-brand {
86 font-size: 12px;
87 font-weight: 700;
88 letter-spacing: 0.12em;
89 text-transform: uppercase;
90 color: var(--bkbg-ps-price-color, #6c3fb5);
91 margin-bottom: 6px;
92 display: block;
93 }
94
95 /* Typography — product name (h2 heading specificity >= (0,2,0), Rule 8: no inherit) */
96 .bkbg-ps-wrap h2.bkbg-ps-name,
97 .bkbg-ps-wrap .bkbg-ps-name {
98 font-family: var(--bkbg-ps-nm-font-family);
99 font-size: var(--bkbg-ps-nm-font-size-d, 28px);
100 font-weight: var(--bkbg-ps-nm-font-weight, 800);
101 font-style: var(--bkbg-ps-nm-font-style, normal);
102 text-transform: var(--bkbg-ps-nm-text-transform, none);
103 text-decoration: var(--bkbg-ps-nm-text-decoration, none);
104 line-height: var(--bkbg-ps-nm-line-height-d, 1.2);
105 letter-spacing: var(--bkbg-ps-nm-letter-spacing-d, normal);
106 word-spacing: var(--bkbg-ps-nm-word-spacing-d, normal);
107 color: var(--bkbg-ps-name-color, #111827);
108 margin: 0 0 10px;
109 }
110
111 /* Typography — tagline */
112 .bkbg-ps-tagline {
113 font-family: var(--bkbg-ps-tg-font-family, inherit);
114 font-size: var(--bkbg-ps-tg-font-size-d, 15px);
115 font-weight: var(--bkbg-ps-tg-font-weight, 400);
116 font-style: var(--bkbg-ps-tg-font-style, normal);
117 text-transform: var(--bkbg-ps-tg-text-transform, none);
118 text-decoration: var(--bkbg-ps-tg-text-decoration, none);
119 line-height: var(--bkbg-ps-tg-line-height-d, 1.65);
120 letter-spacing: var(--bkbg-ps-tg-letter-spacing-d, normal);
121 word-spacing: var(--bkbg-ps-tg-word-spacing-d, normal);
122 color: var(--bkbg-ps-tagline-color, #6b7280);
123 margin: 0 0 12px;
124 }
125
126 /* Rating row */
127 .bkbg-ps-rating-row {
128 display: flex;
129 align-items: center;
130 gap: 8px;
131 margin-bottom: 14px;
132 }
133 .bkbg-ps-stars { color: #f59e0b; font-size: 16px; line-height: 1; }
134 .bkbg-ps-rating-count { font-size: 13px; color: var(--bkbg-ps-desc-color, #6b7280); }
135
136 /* Price row */
137 .bkbg-ps-price-row {
138 display: flex;
139 align-items: baseline;
140 gap: 10px;
141 margin-bottom: 18px;
142 }
143 /* Typography — price */
144 .bkbg-ps-price {
145 font-family: var(--bkbg-ps-pr-font-family, inherit);
146 font-size: var(--bkbg-ps-pr-font-size-d, 36px);
147 font-weight: var(--bkbg-ps-pr-font-weight, 900);
148 font-style: var(--bkbg-ps-pr-font-style, normal);
149 text-transform: var(--bkbg-ps-pr-text-transform, none);
150 text-decoration: var(--bkbg-ps-pr-text-decoration, none);
151 line-height: var(--bkbg-ps-pr-line-height-d, 1);
152 letter-spacing: var(--bkbg-ps-pr-letter-spacing-d, normal);
153 word-spacing: var(--bkbg-ps-pr-word-spacing-d, normal);
154 color: var(--bkbg-ps-price-color, #6c3fb5);
155 }
156 .bkbg-ps-price-original {
157 font-size: 18px;
158 color: #9ca3af;
159 text-decoration: line-through;
160 }
161 .bkbg-ps-price-note { font-size: 13px; color: #9ca3af; }
162
163 /* Variants */
164 .bkbg-ps-variants { margin-bottom: 16px; }
165 .bkbg-ps-variant-label {
166 font-size: 13px;
167 font-weight: 700;
168 color: var(--bkbg-ps-title-color, #111827);
169 margin-bottom: 8px;
170 display: block;
171 }
172 .bkbg-ps-variant-pills {
173 display: flex;
174 flex-wrap: wrap;
175 gap: 8px;
176 }
177 .bkbg-ps-variant-pill {
178 padding: var(--bkbg-ps-pill-pad, 7px 16px);
179 border-radius: var(--bkbg-ps-pill-r, 99px);
180 border: 1.5px solid var(--bkbg-ps-badge-border, #e5e7eb);
181 background: transparent;
182 font-family: inherit;
183 font-size: var(--bkbg-ps-meta-sz, 14px);
184 font-weight: 600;
185 color: var(--bkbg-ps-desc-color, #374151);
186 cursor: pointer;
187 transition: all 0.15s;
188 }
189 .bkbg-ps-variant-pill.is-active,
190 .bkbg-ps-variant-pill:hover {
191 background: var(--bkbg-ps-price-color, #6c3fb5);
192 color: #fff;
193 border-color: var(--bkbg-ps-price-color, #6c3fb5);
194 }
195
196 /* Sizes */
197 .bkbg-ps-sizes { margin-bottom: 16px; }
198 .bkbg-ps-size-label {
199 font-size: 13px;
200 font-weight: 700;
201 color: var(--bkbg-ps-title-color, #111827);
202 margin-bottom: 8px;
203 display: block;
204 }
205 .bkbg-ps-size-pills { display: flex; flex-wrap: wrap; gap: 6px; }
206 .bkbg-ps-size-pill {
207 width: 40px;
208 height: 40px;
209 display: flex;
210 align-items: center;
211 justify-content: center;
212 border-radius: 8px;
213 border: 1.5px solid var(--bkbg-ps-badge-border, #e5e7eb);
214 background: transparent;
215 font-family: inherit;
216 font-size: 13px;
217 font-weight: 700;
218 cursor: pointer;
219 transition: all 0.15s;
220 }
221 .bkbg-ps-size-pill.is-active,
222 .bkbg-ps-size-pill:hover {
223 background: var(--bkbg-ps-price-color, #6c3fb5);
224 color: #fff;
225 border-color: var(--bkbg-ps-price-color, #6c3fb5);
226 }
227
228 /* CTA buttons */
229 .bkbg-ps-cta-row {
230 display: flex;
231 gap: 12px;
232 flex-wrap: wrap;
233 margin-bottom: 20px;
234 }
235 /* Typography — CTA buttons (Rule 12: text-decoration via var) */
236 .bkbg-ps-cta {
237 font-family: var(--bkbg-ps-ct-font-family, inherit);
238 font-size: var(--bkbg-ps-ct-font-size-d, 15px);
239 font-weight: var(--bkbg-ps-ct-font-weight, 700);
240 font-style: var(--bkbg-ps-ct-font-style, normal);
241 text-transform: var(--bkbg-ps-ct-text-transform, none);
242 text-decoration: var(--bkbg-ps-ct-text-decoration, none);
243 line-height: var(--bkbg-ps-ct-line-height-d, 1);
244 letter-spacing: var(--bkbg-ps-ct-letter-spacing-d, normal);
245 word-spacing: var(--bkbg-ps-ct-word-spacing-d, normal);
246 display: inline-block;
247 cursor: pointer;
248 box-sizing: border-box;
249 text-align: center;
250 }
251
252 .bkbg-ps-cta--primary {
253 flex: 1 1 auto;
254 padding: var(--bkbg-ps-btn-pad, 14px 28px);
255 border-radius: var(--bkbg-ps-btn-r, 10px);
256 border: none;
257 background: var(--bkbg-ps-btn-bg, #6c3fb5);
258 color: var(--bkbg-ps-btn-color, #fff);
259 transition: filter 0.2s;
260 }
261 .bkbg-ps-cta--primary:hover { filter: brightness(1.1); }
262
263 .bkbg-ps-cta--secondary {
264 padding: var(--bkbg-ps-btn-pad, 14px 20px);
265 border-radius: var(--bkbg-ps-btn-r, 10px);
266 border: 2px solid var(--bkbg-ps-btn-bg, #6c3fb5);
267 background: transparent;
268 color: var(--bkbg-ps-btn-bg, #6c3fb5);
269 transition: background 0.2s, color 0.2s;
270 white-space: nowrap;
271 }
272 .bkbg-ps-cta--secondary:hover {
273 background: var(--bkbg-ps-btn-bg, #6c3fb5);
274 color: #fff;
275 }
276
277 .bkbg-ps-btn-primary {
278 flex: 1 1 auto;
279 padding: var(--bkbg-ps-btn-pad, 14px 28px);
280 border-radius: var(--bkbg-ps-btn-r, 10px);
281 border: none;
282 background: var(--bkbg-ps-btn-bg, #6c3fb5);
283 color: var(--bkbg-ps-btn-color, #fff);
284 font-family: inherit;
285 font-size: var(--bkbg-ps-btn-sz, 16px);
286 font-weight: 800;
287 cursor: pointer;
288 transition: filter 0.2s;
289 text-align: center;
290 text-decoration: none;
291 display: inline-block;
292 line-height: 1;
293 box-sizing: border-box;
294 }
295 .bkbg-ps-btn-primary:hover { filter: brightness(1.1); }
296
297 .bkbg-ps-btn-secondary {
298 padding: var(--bkbg-ps-btn-pad, 14px 20px);
299 border-radius: var(--bkbg-ps-btn-r, 10px);
300 border: 2px solid var(--bkbg-ps-btn-bg, #6c3fb5);
301 background: transparent;
302 color: var(--bkbg-ps-btn-bg, #6c3fb5);
303 font-family: inherit;
304 font-size: var(--bkbg-ps-btn-sz, 16px);
305 font-weight: 800;
306 cursor: pointer;
307 transition: background 0.2s, color 0.2s;
308 white-space: nowrap;
309 }
310 .bkbg-ps-btn-secondary:hover {
311 background: var(--bkbg-ps-btn-bg, #6c3fb5);
312 color: #fff;
313 }
314
315 /* Trust badges */
316 .bkbg-ps-badges {
317 display: flex;
318 flex-wrap: wrap;
319 gap: 12px;
320 margin-bottom: 20px;
321 }
322 .bkbg-ps-badge {
323 display: inline-flex;
324 align-items: center;
325 gap: 6px;
326 padding: 5px 12px;
327 border-radius: 99px;
328 background: var(--bkbg-ps-badge-bg, #f3f4f6);
329 border: 1px solid var(--bkbg-ps-badge-border, #e5e7eb);
330 font-size: var(--bkbg-ps-meta-sz, 13px);
331 font-weight: 600;
332 color: var(--bkbg-ps-desc-color, #374151);
333 }
334 .bkbg-ps-badge-icon { font-size: 15px; line-height: 1; }
335
336 /* ── Tabs (description/specs/reviews) ───────────────────────────── */
337 .bkbg-ps-tabs { margin-top: 24px; }
338
339 .bkbg-ps-tab-nav {
340 display: flex;
341 border-bottom: 2px solid var(--bkbg-ps-badge-border, #e5e7eb);
342 gap: 4px;
343 }
344 .bkbg-ps-tab-btn {
345 padding: 9px 18px;
346 border: none;
347 background: transparent;
348 font-family: inherit;
349 font-size: var(--bkbg-ps-meta-sz, 14px);
350 font-weight: 700;
351 color: var(--bkbg-ps-desc-color, #6b7280);
352 cursor: pointer;
353 border-bottom: 3px solid transparent;
354 margin-bottom: -2px;
355 transition: color 0.15s, border-color 0.15s;
356 }
357 .bkbg-ps-tab-btn.is-active,
358 .bkbg-ps-tab-btn:hover {
359 color: var(--bkbg-ps-price-color, #6c3fb5);
360 border-bottom-color: var(--bkbg-ps-price-color, #6c3fb5);
361 }
362
363 .bkbg-ps-tab-panel { display: none; padding: 16px 0; }
364 .bkbg-ps-tab-panel.is-active { display: block; }
365
366 .bkbg-ps-tab-content {
367 font-size: var(--bkbg-ps-desc-sz, 15px);
368 color: var(--bkbg-ps-desc-color, #374151);
369 line-height: 1.7;
370 }
371
372 /* Specs table */
373 .bkbg-ps-specs-table {
374 width: 100%;
375 border-collapse: collapse;
376 font-size: var(--bkbg-ps-meta-sz, 14px);
377 }
378 .bkbg-ps-specs-table tr:nth-child(even) td { background: #f9fafb; }
379 .bkbg-ps-specs-table td {
380 padding: 8px 12px;
381 border-bottom: 1px solid var(--bkbg-ps-badge-border, #e5e7eb);
382 vertical-align: top;
383 }
384 .bkbg-ps-specs-table td:first-child {
385 font-weight: 700;
386 color: var(--bkbg-ps-title-color, #111827);
387 width: 40%;
388 }
389
390 /* Typography — feature list items */
391 .bkbg-ps-feature-list li {
392 font-family: var(--bkbg-ps-ft-font-family, inherit);
393 font-size: var(--bkbg-ps-ft-font-size-d, 14px);
394 font-weight: var(--bkbg-ps-ft-font-weight, 400);
395 font-style: var(--bkbg-ps-ft-font-style, normal);
396 text-transform: var(--bkbg-ps-ft-text-transform, none);
397 text-decoration: var(--bkbg-ps-ft-text-decoration, none);
398 line-height: var(--bkbg-ps-ft-line-height-d, 1.5);
399 letter-spacing: var(--bkbg-ps-ft-letter-spacing-d, normal);
400 word-spacing: var(--bkbg-ps-ft-word-spacing-d, normal);
401 }
402 .bkbg-ps-feature-icon svg { width: 1em; height: 1em; fill: currentColor; }
403 .bkbg-ps-feature-icon .dashicons { font-size: inherit; width: 1em; height: 1em; line-height: 1; }
404 .bkbg-ps-feature-icon .bkbg-icon-img { width: 1em; height: 1em; object-fit: contain; }
405 .bkbg-ps-trust-icon svg { width: 1em; height: 1em; fill: currentColor; }
406 .bkbg-ps-trust-icon .dashicons { font-size: inherit; width: 1em; height: 1em; line-height: 1; }
407 .bkbg-ps-trust-icon .bkbg-icon-img { width: 1em; height: 1em; object-fit: contain; }
408
409 /* Tablet responsive typography */
410 @media(max-width:1024px){
411 .bkbg-ps-wrap h2.bkbg-ps-name,.bkbg-ps-wrap .bkbg-ps-name{font-size:var(--bkbg-ps-nm-font-size-t,var(--bkbg-ps-nm-font-size-d,28px));line-height:var(--bkbg-ps-nm-line-height-t,var(--bkbg-ps-nm-line-height-d,1.2));letter-spacing:var(--bkbg-ps-nm-letter-spacing-t,var(--bkbg-ps-nm-letter-spacing-d,normal));word-spacing:var(--bkbg-ps-nm-word-spacing-t,var(--bkbg-ps-nm-word-spacing-d,normal));}
412 .bkbg-ps-tagline{font-size:var(--bkbg-ps-tg-font-size-t,var(--bkbg-ps-tg-font-size-d,15px));line-height:var(--bkbg-ps-tg-line-height-t,var(--bkbg-ps-tg-line-height-d,1.65));letter-spacing:var(--bkbg-ps-tg-letter-spacing-t,var(--bkbg-ps-tg-letter-spacing-d,normal));word-spacing:var(--bkbg-ps-tg-word-spacing-t,var(--bkbg-ps-tg-word-spacing-d,normal));}
413 .bkbg-ps-price{font-size:var(--bkbg-ps-pr-font-size-t,var(--bkbg-ps-pr-font-size-d,36px));line-height:var(--bkbg-ps-pr-line-height-t,var(--bkbg-ps-pr-line-height-d,1));letter-spacing:var(--bkbg-ps-pr-letter-spacing-t,var(--bkbg-ps-pr-letter-spacing-d,normal));word-spacing:var(--bkbg-ps-pr-word-spacing-t,var(--bkbg-ps-pr-word-spacing-d,normal));}
414 .bkbg-ps-feature-list li{font-size:var(--bkbg-ps-ft-font-size-t,var(--bkbg-ps-ft-font-size-d,14px));line-height:var(--bkbg-ps-ft-line-height-t,var(--bkbg-ps-ft-line-height-d,1.5));letter-spacing:var(--bkbg-ps-ft-letter-spacing-t,var(--bkbg-ps-ft-letter-spacing-d,normal));word-spacing:var(--bkbg-ps-ft-word-spacing-t,var(--bkbg-ps-ft-word-spacing-d,normal));}
415 .bkbg-ps-cta{font-size:var(--bkbg-ps-ct-font-size-t,var(--bkbg-ps-ct-font-size-d,15px));line-height:var(--bkbg-ps-ct-line-height-t,var(--bkbg-ps-ct-line-height-d,1));letter-spacing:var(--bkbg-ps-ct-letter-spacing-t,var(--bkbg-ps-ct-letter-spacing-d,normal));word-spacing:var(--bkbg-ps-ct-word-spacing-t,var(--bkbg-ps-ct-word-spacing-d,normal));}
416 }
417
418 /* Mobile responsive typography */
419 @media(max-width:767px){
420 .bkbg-ps-wrap h2.bkbg-ps-name,.bkbg-ps-wrap .bkbg-ps-name{font-size:var(--bkbg-ps-nm-font-size-m,var(--bkbg-ps-nm-font-size-t,var(--bkbg-ps-nm-font-size-d,28px)));line-height:var(--bkbg-ps-nm-line-height-m,var(--bkbg-ps-nm-line-height-t,var(--bkbg-ps-nm-line-height-d,1.2)));letter-spacing:var(--bkbg-ps-nm-letter-spacing-m,var(--bkbg-ps-nm-letter-spacing-t,var(--bkbg-ps-nm-letter-spacing-d,normal)));word-spacing:var(--bkbg-ps-nm-word-spacing-m,var(--bkbg-ps-nm-word-spacing-t,var(--bkbg-ps-nm-word-spacing-d,normal)));}
421 .bkbg-ps-tagline{font-size:var(--bkbg-ps-tg-font-size-m,var(--bkbg-ps-tg-font-size-t,var(--bkbg-ps-tg-font-size-d,15px)));line-height:var(--bkbg-ps-tg-line-height-m,var(--bkbg-ps-tg-line-height-t,var(--bkbg-ps-tg-line-height-d,1.65)));letter-spacing:var(--bkbg-ps-tg-letter-spacing-m,var(--bkbg-ps-tg-letter-spacing-t,var(--bkbg-ps-tg-letter-spacing-d,normal)));word-spacing:var(--bkbg-ps-tg-word-spacing-m,var(--bkbg-ps-tg-word-spacing-t,var(--bkbg-ps-tg-word-spacing-d,normal)));}
422 .bkbg-ps-price{font-size:var(--bkbg-ps-pr-font-size-m,var(--bkbg-ps-pr-font-size-t,var(--bkbg-ps-pr-font-size-d,36px)));line-height:var(--bkbg-ps-pr-line-height-m,var(--bkbg-ps-pr-line-height-t,var(--bkbg-ps-pr-line-height-d,1)));letter-spacing:var(--bkbg-ps-pr-letter-spacing-m,var(--bkbg-ps-pr-letter-spacing-t,var(--bkbg-ps-pr-letter-spacing-d,normal)));word-spacing:var(--bkbg-ps-pr-word-spacing-m,var(--bkbg-ps-pr-word-spacing-t,var(--bkbg-ps-pr-word-spacing-d,normal)));}
423 .bkbg-ps-feature-list li{font-size:var(--bkbg-ps-ft-font-size-m,var(--bkbg-ps-ft-font-size-t,var(--bkbg-ps-ft-font-size-d,14px)));line-height:var(--bkbg-ps-ft-line-height-m,var(--bkbg-ps-ft-line-height-t,var(--bkbg-ps-ft-line-height-d,1.5)));letter-spacing:var(--bkbg-ps-ft-letter-spacing-m,var(--bkbg-ps-ft-letter-spacing-t,var(--bkbg-ps-ft-letter-spacing-d,normal)));word-spacing:var(--bkbg-ps-ft-word-spacing-m,var(--bkbg-ps-ft-word-spacing-t,var(--bkbg-ps-ft-word-spacing-d,normal)));}
424 .bkbg-ps-cta{font-size:var(--bkbg-ps-ct-font-size-m,var(--bkbg-ps-ct-font-size-t,var(--bkbg-ps-ct-font-size-d,15px)));line-height:var(--bkbg-ps-ct-line-height-m,var(--bkbg-ps-ct-line-height-t,var(--bkbg-ps-ct-line-height-d,1)));letter-spacing:var(--bkbg-ps-ct-letter-spacing-m,var(--bkbg-ps-ct-letter-spacing-t,var(--bkbg-ps-ct-letter-spacing-d,normal)));word-spacing:var(--bkbg-ps-ct-word-spacing-m,var(--bkbg-ps-ct-word-spacing-t,var(--bkbg-ps-ct-word-spacing-d,normal)));}
425 }
426
427 @media (max-width: 768px) {
428 .bkbg-ps-outer { flex-direction: column !important; }
429 .bkbg-ps-gallery-col { max-width: 100%; flex: none; }
430 .bkbg-ps-cta-row { flex-direction: column; }
431 .bkbg-ps-btn-primary,
432 .bkbg-ps-btn-secondary { width: 100%; }
433 }
434