galali-shoptet 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/style.css +374 -114
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "galali-shoptet",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Custom CSS for Galali Shoptet theme (designshop.galali.cz)",
5
5
  "main": "style.css",
6
6
  "style": "style.css",
package/style.css CHANGED
@@ -20,6 +20,7 @@
20
20
  --gl-gutter: 60px;
21
21
  --gl-page-max: 1920px;
22
22
  --gl-content-max: 1800px;
23
+ --gl-section-gap: 130px;
23
24
  --gl-font-body: "Neue Haas Grotesk Text Pro", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
24
25
  --gl-font-ui: "Inter", "Neue Haas Grotesk Text Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
25
26
  --gl-size-ui: 20px;
@@ -125,6 +126,12 @@ body {
125
126
  opacity: 1;
126
127
  text-decoration: none;
127
128
  }
129
+ .top-navigation-bar .top-navigation-contacts a:focus-visible,
130
+ .top-navigation-bar ul.top-navigation-bar-menu > li > a:focus-visible,
131
+ .top-navigation-bar .top-navigation-tools button.top-nav-button-login:focus-visible {
132
+ outline: 2px solid var(--gl-fg-1);
133
+ outline-offset: 4px;
134
+ }
128
135
  .top-navigation-bar .top-navigation-contacts a span {
129
136
  display: inline;
130
137
  }
@@ -195,8 +202,9 @@ body {
195
202
  padding: 0;
196
203
  flex-shrink: 0;
197
204
  }
205
+ /* Desktop: responsive-tools skrytý (mobile burger nepotřebný) */
198
206
  .top-navigation-bar .top-navigation-tools .responsive-tools {
199
- display: none !important;
207
+ display: none;
200
208
  }
201
209
  .top-navigation-bar .top-navigation-tools button.top-nav-button-login,
202
210
  .top-navigation-bar .top-navigation-tools .top-nav-button {
@@ -245,6 +253,20 @@ header#header {
245
253
  margin: 0;
246
254
  padding: 0;
247
255
  height: auto;
256
+ transition: box-shadow .25s ease;
257
+ }
258
+ /* Sticky shadow při scrollu — animation-timeline: scroll() je supported v Chromium 115+
259
+ (designshop primárně desktop Chrome) */
260
+ @supports (animation-timeline: scroll()) {
261
+ header#header {
262
+ animation: gl-header-shadow linear both;
263
+ animation-timeline: scroll(root);
264
+ animation-range: 0 200px;
265
+ }
266
+ @keyframes gl-header-shadow {
267
+ from { box-shadow: 0 0 0 rgba(0,0,0,0); }
268
+ to { box-shadow: 0 2px 16px rgba(0,0,0,.08); }
269
+ }
248
270
  }
249
271
 
250
272
  header#header .container.navigation-wrapper {
@@ -382,6 +404,16 @@ header#header .navigation-buttons a[data-target="cart"]:hover {
382
404
  background: #1a1a1a;
383
405
  color: var(--gl-white);
384
406
  }
407
+ header#header .navigation-buttons a.cart-count:focus-visible,
408
+ header#header .navigation-buttons a[data-target="cart"]:focus-visible {
409
+ outline: 2px solid var(--gl-fg-1);
410
+ outline-offset: 3px;
411
+ }
412
+ /* Search input focus state — bez tohoto user neví že tam je */
413
+ header#header .search-form:focus-within {
414
+ border-color: var(--gl-fg-1);
415
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08);
416
+ }
385
417
  header#header .navigation-buttons a.cart-count::before {
386
418
  content: "";
387
419
  width: 22px;
@@ -436,6 +468,15 @@ header#header nav#navigation ul.menu-level-1 {
436
468
  padding: 0;
437
469
  list-style: none;
438
470
  background: transparent;
471
+ visibility: visible !important;
472
+ }
473
+ /* Vendor Shoptet skrývá menu položky přes visibility: hidden (na li úrovni) → force visible */
474
+ header#header nav#navigation ul.menu-level-1 > li,
475
+ header#header nav#navigation ul.menu-level-1 > li > a,
476
+ header#header nav#navigation ul.menu-level-2,
477
+ header#header nav#navigation ul.menu-level-2 > li,
478
+ header#header nav#navigation ul.menu-level-2 > li > a {
479
+ visibility: visible !important;
439
480
  }
440
481
  header#header nav#navigation ul.menu-level-1 > li {
441
482
  display: flex;
@@ -474,6 +515,11 @@ header#header nav#navigation ul.menu-level-1 > li > a:focus {
474
515
  background: transparent;
475
516
  color: var(--gl-black);
476
517
  }
518
+ header#header nav#navigation ul.menu-level-1 > li > a:focus-visible {
519
+ outline: 2px solid var(--gl-fg-1);
520
+ outline-offset: 4px;
521
+ opacity: 1;
522
+ }
477
523
  header#header nav#navigation ul.menu-level-1 > li > a > b {
478
524
  font-weight: var(--gl-w-medium);
479
525
  }
@@ -505,12 +551,18 @@ header#header nav#navigation ul.menu-level-1 > li > a .submenu-arrow {
505
551
  transition: transform .2s;
506
552
  }
507
553
 
508
- /* --- Dropdown (menu-level-2 ≙ sqrl.dev .dd) --- */
554
+ /* --- Dropdown (menu-level-2 ≙ sqrl.dev .dd) ---
555
+ POZOR: nepřepisuj display! Shoptet JS přepíná display:none/flex přes aria-expanded.
556
+ Když je menu otevřené, vendor dá display:flex → my jen převrátíme na column stack. */
509
557
  header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
558
+ flex-direction: column !important;
559
+ flex-wrap: nowrap !important;
510
560
  position: absolute;
511
561
  top: 100%;
512
562
  left: 0;
513
- min-width: 240px;
563
+ min-width: 260px;
564
+ width: max-content;
565
+ max-width: 360px;
514
566
  padding: 18px 22px;
515
567
  margin: 0;
516
568
  background: var(--gl-white);
@@ -520,7 +572,12 @@ header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
520
572
  box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
521
573
  list-style: none;
522
574
  z-index: 60;
523
- /* viditelnost řídí Shoptet (aria-expanded / hover) — tady jen vzhled */
575
+ }
576
+
577
+ /* Skrýt menu-level-3 (vnořené pod-kategorie) — sqrl design má jen 2 úrovně */
578
+ header#header nav#navigation ul.menu-level-3,
579
+ header#header nav#navigation ul.menu-level-2 .has-more-items {
580
+ display: none !important;
524
581
  }
525
582
 
526
583
  /* Skrýt Shoptet "menu-image" placeholder (folder.svg) — sqrl.dev návrh nemá */
@@ -530,7 +587,9 @@ header#header nav#navigation ul.menu-level-2 .menu-image {
530
587
  }
531
588
 
532
589
  header#header nav#navigation ul.menu-level-2 > li {
533
- display: block;
590
+ display: block !important;
591
+ width: 100% !important;
592
+ flex: 0 0 100% !important;
534
593
  margin: 0;
535
594
  padding: 0;
536
595
  background: none;
@@ -704,7 +763,7 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
704
763
  width: 100%;
705
764
  height: 720px;
706
765
  margin: 0;
707
- padding: 0 80px 0 120px;
766
+ padding: 0 var(--gl-gutter);
708
767
  box-sizing: border-box;
709
768
  background: transparent;
710
769
  position: static;
@@ -717,7 +776,7 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
717
776
  padding: 0 !important;
718
777
  }
719
778
 
720
- /* Title — H1 ekvivalent (vendor pozicuje absolute, my static v copy sloupci) */
779
+ /* Title — H1 ekvivalent (vendor pozicuje absolute + dává bílý border + box-shadow → odstraň všechno) */
721
780
  .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
722
781
  position: static !important;
723
782
  display: block;
@@ -732,10 +791,12 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
732
791
  line-height: 80px;
733
792
  letter-spacing: normal;
734
793
  text-transform: none;
735
- background: transparent;
794
+ background: transparent !important;
795
+ border: none !important;
796
+ box-shadow: none !important;
736
797
  }
737
798
 
738
- /* Subtitle (taky vendor absolute → static) */
799
+ /* Subtitle (taky vendor absolute → static + vendor border/shadow off) */
739
800
  .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
740
801
  position: static !important;
741
802
  display: block;
@@ -748,7 +809,9 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
748
809
  font-size: 26px;
749
810
  font-weight: var(--gl-w-regular);
750
811
  line-height: 30px;
751
- background: transparent;
812
+ background: transparent !important;
813
+ border: none !important;
814
+ box-shadow: none !important;
752
815
  }
753
816
 
754
817
  /* CTA odkaz "Zobrazit produkt" — bílé tlačítko s černým textem (vendor má černý overlay) */
@@ -827,7 +890,7 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
827
890
  grid-template-rows: 520px;
828
891
  }
829
892
  .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
830
- padding: 0 40px 0 60px;
893
+ padding: 0 32px;
831
894
  gap: 20px;
832
895
  }
833
896
  .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
@@ -885,27 +948,27 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
885
948
  /* === Nakupte podle kategorií (pictos) === */
886
949
  /* ============================================ */
887
950
 
888
- /* Override Shoptet content/welcome wrapperů (kontejnery omezené na ~800-1418px),
889
- aby naše sekce mohly vyplnit celou šířku stránky */
951
+ /* Override Shoptet vnějších wrapperů (rozlomit theme max-width 1418px do full bleed).
952
+ POZOR: neaplikovat na `main.content` to musí mít vlastní gutter + page-max centering. */
890
953
  .welcome > div,
891
954
  .welcome,
892
955
  .welcome-wrapper,
893
956
  .container.welcome-wrapper,
894
- div.container,
895
- .content-wrapper.container,
896
- div.content-wrapper.container,
897
- body .content-wrapper.container,
898
- .content-wrapper-in,
899
- main.content,
900
- main.content.content-wrapper-in {
957
+ .content-wrapper.homepage-box.welcome-wrapper,
958
+ .overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) {
901
959
  max-width: none !important;
902
960
  width: 100% !important;
903
961
  margin: 0 !important;
904
962
  padding: 0 !important;
905
963
  }
906
- .content-wrapper.homepage-box.welcome-wrapper {
907
- padding: 0 !important;
964
+ /* Vnitřní content-wrapper-in uvnitř welcome / content-wrapper.container — taky full width */
965
+ .content-wrapper.homepage-box.welcome-wrapper > .content-wrapper-in,
966
+ .overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) > .content-wrapper-in {
967
+ max-width: none !important;
968
+ width: 100% !important;
908
969
  margin: 0 !important;
970
+ padding: 0 !important;
971
+ display: block;
909
972
  }
910
973
 
911
974
  /* Sekce wrapper — .gutter section vložená přes HTML blok v adminu */
@@ -914,9 +977,19 @@ section.gutter {
914
977
  width: 100%;
915
978
  max-width: var(--gl-page-max);
916
979
  margin: 0 auto;
917
- padding: 130px var(--gl-gutter) 0;
980
+ padding: var(--gl-section-gap) var(--gl-gutter) 0;
918
981
  background: transparent;
919
982
  }
983
+ /* Vendor Shoptet .welcome > div > * dostává max-width: 800px → roztrhat */
984
+ section.gutter .sec-head,
985
+ section.gutter .pictos,
986
+ section.gutter .sec-title,
987
+ section.gutter .sec-link {
988
+ max-width: none !important;
989
+ width: 100%;
990
+ }
991
+ section.gutter .sec-link { width: auto; }
992
+ section.gutter .sec-title { width: auto; }
920
993
 
921
994
  /* Hlavička sekce: nadpis vlevo, "Všechny kategorie" odkaz vpravo */
922
995
  section.gutter .sec-head {
@@ -1029,9 +1102,10 @@ section.gutter .picto:focus-visible {
1029
1102
  outline-offset: 4px;
1030
1103
  }
1031
1104
 
1032
- /* Responsive — odvozeno ze sqrl.dev breakpointů */
1105
+ /* Responsive — odvozeno ze sqrl.dev breakpointů, --gl-section-gap se zmenšuje */
1033
1106
  @media (max-width: 1279px) {
1034
- section.gutter { padding: 96px 32px 0; }
1107
+ :root { --gl-section-gap: 96px; }
1108
+ section.gutter { padding: var(--gl-section-gap) 32px 0; }
1035
1109
  section.gutter .sec-head { margin-bottom: 36px; gap: 16px; flex-wrap: wrap; }
1036
1110
  section.gutter .sec-title { font-size: 40px; line-height: 42px; }
1037
1111
  section.gutter .sec-link { font-size: 16px; }
@@ -1042,7 +1116,8 @@ section.gutter .picto:focus-visible {
1042
1116
  }
1043
1117
 
1044
1118
  @media (max-width: 767px) {
1045
- section.gutter { padding: 64px 28px 0; }
1119
+ :root { --gl-section-gap: 64px; }
1120
+ section.gutter { padding: var(--gl-section-gap) 20px 0; }
1046
1121
  section.gutter .sec-head { margin-bottom: 24px; gap: 12px; }
1047
1122
  section.gutter .sec-title { font-size: 28px; line-height: 30px; }
1048
1123
  section.gutter .sec-link { font-size: 14px; gap: 10px; }
@@ -1057,18 +1132,19 @@ section.gutter .picto:focus-visible {
1057
1132
  /* === Akční zboží + Novinky (homepage produkty) === */
1058
1133
  /* ============================================ */
1059
1134
 
1060
- /* main.content má 1418px theme limit — rozšířit na page-max */
1135
+ /* main.content má 1418px theme limit — rozšířit na page-max, ale s gutter L/R */
1136
+ main.content,
1061
1137
  main.content:not(.wide) {
1062
1138
  box-sizing: border-box;
1063
1139
  width: 100%;
1064
1140
  max-width: var(--gl-page-max);
1065
1141
  margin: 0 auto;
1066
- padding: 0 var(--gl-gutter);
1142
+ padding: 0 var(--gl-gutter) !important;
1067
1143
  }
1068
1144
 
1069
1145
  /* Nadpis sekce (Shoptet renderuje jako div.h4) — stylujeme jako h2.sec-title */
1070
1146
  main.content > .homepage-group-title {
1071
- margin: 130px 0 60px;
1147
+ margin: var(--gl-section-gap) 0 60px;
1072
1148
  padding: 0;
1073
1149
  font-family: var(--gl-font-ui);
1074
1150
  font-size: 56px;
@@ -1078,9 +1154,9 @@ main.content > .homepage-group-title {
1078
1154
  letter-spacing: normal;
1079
1155
  text-transform: none;
1080
1156
  }
1081
- /* Druhý nadpis (Novinky) — menší top margin (sqrl 80px) */
1157
+ /* Druhý nadpis (Novinky) — stejný gap jako ostatní sekce */
1082
1158
  main.content > .homepage-products-heading-2 {
1083
- margin-top: 80px;
1159
+ margin-top: var(--gl-section-gap);
1084
1160
  }
1085
1161
 
1086
1162
  /* Mřížka produktů — 4 sloupce, gap 50/40 jako sqrl.dev */
@@ -1258,69 +1334,63 @@ main.content > .products.products-block > .product .price-final strong {
1258
1334
  footer#footer.footer {
1259
1335
  background: var(--gl-black);
1260
1336
  color: var(--gl-white);
1261
- margin: 140px 0 0;
1337
+ margin: var(--gl-section-gap) 0 0;
1262
1338
  padding: 110px 0 40px;
1263
1339
  font-family: var(--gl-font-body);
1264
1340
  font-size: 16px;
1265
1341
  border: 0;
1266
- /* 2-col flex: brand (rows) | zákaznický servis (links-icons); bottom strip full width */
1342
+ /* Jednoduchý flex: brand (60%) + servis (40%) + bottom strip plné šířky.
1343
+ Vše v jednom inner wrapperu se 60px gutter. */
1267
1344
  display: flex;
1268
1345
  flex-wrap: wrap;
1269
1346
  align-items: flex-start;
1270
- row-gap: 40px;
1271
- }
1272
- /* Sloupcové přiřazení sourozenců — footer.footer je flex parent */
1273
- footer#footer > h2.sr-only {
1274
- flex: 0 0 100%;
1275
- order: 0;
1347
+ row-gap: 60px;
1348
+ column-gap: 0;
1276
1349
  }
1277
- footer#footer > .container.footer-rows {
1278
- flex: 1 1 360px;
1279
- max-width: 60%;
1350
+ /* sr-only schovat (bere row v flexu jinak) */
1351
+ footer#footer.footer > h2.sr-only,
1352
+ footer#footer .sr-only {
1353
+ position: absolute !important;
1354
+ width: 1px !important;
1355
+ height: 1px !important;
1356
+ overflow: hidden;
1357
+ clip: rect(0 0 0 0);
1358
+ white-space: nowrap;
1359
+ border: 0;
1280
1360
  margin: 0;
1281
- padding-left: var(--gl-gutter);
1282
- padding-right: 40px;
1283
- box-sizing: border-box;
1284
- order: 1;
1361
+ padding: 0;
1362
+ flex: 0 0 0 !important;
1285
1363
  }
1286
- footer#footer > .container.footer-links-icons {
1287
- flex: 1 1 280px;
1288
- max-width: 40%;
1289
- margin: 0;
1290
- padding-left: 40px;
1291
- padding-right: var(--gl-gutter);
1364
+ /* Brand sloupec — 60% šířky, padding-left = gutter, padding-right = vnitřní gap */
1365
+ footer#footer.footer > .container.footer-rows {
1366
+ flex: 0 1 60%;
1292
1367
  box-sizing: border-box;
1293
- order: 2;
1368
+ width: 100% !important;
1369
+ max-width: none !important;
1370
+ margin: 0 !important;
1371
+ padding: 0 40px 0 var(--gl-gutter) !important;
1372
+ background: transparent;
1373
+ border: 0;
1294
1374
  }
1295
- footer#footer > .container.footer-bottom {
1296
- flex: 0 0 100%;
1297
- margin: 0;
1298
- padding-left: var(--gl-gutter);
1299
- padding-right: var(--gl-gutter);
1375
+ /* Zákaznický servis — 40%, padding-right = gutter */
1376
+ footer#footer.footer > .container.footer-links-icons {
1377
+ flex: 0 1 40%;
1300
1378
  box-sizing: border-box;
1301
- order: 3;
1302
- }
1303
-
1304
- /* Reset Shoptet sr-only nadpisu */
1305
- footer#footer .sr-only {
1306
- position: absolute;
1307
- width: 1px;
1308
- height: 1px;
1309
- overflow: hidden;
1310
- clip: rect(0 0 0 0);
1311
- white-space: nowrap;
1379
+ width: 100% !important;
1380
+ max-width: none !important;
1381
+ margin: 0 !important;
1382
+ padding: 0 var(--gl-gutter) 0 40px !important;
1383
+ background: transparent;
1312
1384
  border: 0;
1313
1385
  }
1314
-
1315
- /* Wrapper kontejnerů — full width až do page-max, padding 60px */
1316
- footer#footer .container.footer-rows,
1317
- footer#footer .container.footer-links-icons,
1318
- footer#footer .container.footer-bottom {
1386
+ /* Spodní strip — plná šířka, gutter L/R */
1387
+ footer#footer.footer > .container.footer-bottom {
1388
+ flex: 0 0 100%;
1319
1389
  box-sizing: border-box;
1320
- width: 100%;
1321
- max-width: var(--gl-page-max);
1322
- margin: 0 auto;
1323
- padding: 0 var(--gl-gutter);
1390
+ width: 100% !important;
1391
+ max-width: none !important;
1392
+ margin: 0 !important;
1393
+ padding: 30px var(--gl-gutter) 0 !important;
1324
1394
  background: transparent;
1325
1395
  border: 0;
1326
1396
  }
@@ -1574,26 +1644,32 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1574
1644
  outline-offset: 4px;
1575
1645
  }
1576
1646
 
1577
- /* Responsive footer */
1647
+ /* Responsive footer — používá `footer#footer.footer` selektor stejné specificity */
1578
1648
  @media (max-width: 1279px) {
1579
- footer#footer { padding: 80px 0 60px; margin-top: 100px; }
1580
- footer#footer > .container.footer-rows { padding-left: var(--gl-gutter); padding-right: 32px; }
1581
- footer#footer > .container.footer-links-icons { padding-left: 32px; padding-right: var(--gl-gutter); }
1582
- footer#footer > .container.footer-bottom { margin-top: 32px; }
1649
+ footer#footer.footer { padding: 80px 0 40px; margin-top: 100px; row-gap: 40px; }
1650
+ footer#footer.footer > .container.footer-rows { padding: 0 24px 0 32px !important; }
1651
+ footer#footer.footer > .container.footer-links-icons { padding: 0 32px 0 24px !important; }
1652
+ footer#footer.footer > .container.footer-bottom { padding: 24px 32px 0 !important; }
1583
1653
  }
1584
1654
  @media (max-width: 767px) {
1585
- footer#footer { padding: 60px 0 40px; margin-top: 80px; row-gap: 32px; }
1586
- footer#footer > .container.footer-rows,
1587
- footer#footer > .container.footer-links-icons,
1588
- footer#footer > .container.footer-bottom {
1655
+ footer#footer.footer {
1656
+ padding: 60px 0 32px;
1657
+ margin-top: 80px;
1658
+ row-gap: 32px;
1659
+ flex-direction: column;
1660
+ }
1661
+ footer#footer.footer > .container.footer-rows,
1662
+ footer#footer.footer > .container.footer-links-icons,
1663
+ footer#footer.footer > .container.footer-bottom {
1589
1664
  flex: 0 0 100%;
1590
- max-width: 100%;
1591
- padding: 0 16px;
1665
+ max-width: 100% !important;
1666
+ padding: 0 20px !important;
1592
1667
  }
1668
+ footer#footer.footer > .container.footer-bottom { padding: 24px 20px 0 !important; }
1593
1669
  footer#footer .footer-rows .site-name a { font-size: 28px; line-height: 30px; }
1594
1670
  footer#footer .footer-rows .custom-footer__contact .contact-box { font-size: 18px; }
1595
1671
  footer#footer .footer-links-icons ul.footer-links li a { font-size: 18px; }
1596
- footer#footer .footer-bottom { flex-direction: column; align-items: flex-start; margin-top: 24px; padding: 24px 16px 0; font-size: 12px; }
1672
+ footer#footer .footer-bottom { flex-direction: column; align-items: flex-start; font-size: 12px; }
1597
1673
  }
1598
1674
 
1599
1675
  /* ============================================ */
@@ -1605,7 +1681,7 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1605
1681
  .homepage-group-title.homepage-products-heading-2 {
1606
1682
  box-sizing: border-box;
1607
1683
  margin: 0 0 60px;
1608
- padding: 130px var(--gl-gutter) 0;
1684
+ padding: var(--gl-section-gap) var(--gl-gutter) 0;
1609
1685
  max-width: var(--gl-page-max);
1610
1686
  width: 100%;
1611
1687
  font-family: var(--gl-font-ui);
@@ -1813,29 +1889,9 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1813
1889
  z-index: 2;
1814
1890
  }
1815
1891
 
1816
- /* Generované badges přes CSS ::before na image kontejneru.
1817
- Sekce 1 (Akční zboží) → "Bestseller", sekce 2 (Novinky) "Novinka". */
1818
- .products.products-block.homepage-products-1 .product a.image::before,
1819
- .products.products-block.homepage-products-2 .product a.image::before {
1820
- content: "Bestseller";
1821
- position: absolute;
1822
- top: 14px;
1823
- left: 14px;
1824
- z-index: 2;
1825
- padding: 4px 10px;
1826
- background: var(--gl-black);
1827
- color: var(--gl-white);
1828
- font-family: var(--gl-font-ui);
1829
- font-size: 13px;
1830
- font-weight: var(--gl-w-regular);
1831
- line-height: 16px;
1832
- letter-spacing: .04em;
1833
- text-transform: none;
1834
- pointer-events: none;
1835
- }
1836
- .products.products-block.homepage-products-2 .product a.image::before {
1837
- content: "Novinka";
1838
- }
1892
+ /* Pseudo-badges odstraněny: dekorovat všechny karty stejnou nálepkou ztrácí informační hodnotu.
1893
+ Pokud chce admin označit produkt, použije Shoptet vendor flag (.flag/.flags) ten je již
1894
+ nastylovaný výše (.products.products-block .product .flag). */
1839
1895
 
1840
1896
  /* Responsive */
1841
1897
  @media (max-width: 1279px) {
@@ -2041,3 +2097,207 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
2041
2097
  min-width: 0;
2042
2098
  }
2043
2099
  }
2100
+
2101
+ /* ============================================ */
2102
+ /* === Mobile menu (hamburger) === */
2103
+ /* ============================================ */
2104
+ /* Desktop: hide responsive-tools (mobile burger irrelevant) — definováno výše.
2105
+ Mobile: skryj desktop nav + topnav menu/contacts, ukáš hamburger + search/login ikonky. */
2106
+
2107
+ @media (max-width: 1023px) {
2108
+ /* Mobile drawer pro nav#navigation. Shoptet JS přidá body.navigation-window-visible
2109
+ po kliku na hamburger → drawer se vysune zleva.
2110
+ NEDÁVEJ `display: none !important` — přebíjí Shoptet show stav. */
2111
+ header#header nav#navigation {
2112
+ display: block !important;
2113
+ position: fixed !important;
2114
+ top: 0;
2115
+ left: 0;
2116
+ bottom: 0;
2117
+ width: 320px;
2118
+ max-width: 85vw;
2119
+ height: 100vh;
2120
+ max-height: 100vh;
2121
+ background: var(--gl-white);
2122
+ box-shadow: 4px 0 20px rgba(0, 0, 0, .12);
2123
+ transform: translateX(-100%);
2124
+ transition: transform .3s ease;
2125
+ z-index: 200;
2126
+ overflow-y: auto;
2127
+ padding: 64px 0 24px;
2128
+ }
2129
+ body.navigation-window-visible header#header nav#navigation {
2130
+ transform: translateX(0);
2131
+ }
2132
+ /* Drawer obsah — vertical stack */
2133
+ header#header nav#navigation .navigation-in,
2134
+ header#header nav#navigation .navigation-in.menu {
2135
+ display: block !important;
2136
+ width: 100% !important;
2137
+ height: auto !important;
2138
+ max-width: none !important;
2139
+ padding: 0 !important;
2140
+ }
2141
+ header#header nav#navigation ul.menu-level-1 {
2142
+ display: flex !important;
2143
+ flex-direction: column !important;
2144
+ align-items: stretch !important;
2145
+ gap: 0 !important;
2146
+ height: auto !important;
2147
+ width: 100% !important;
2148
+ }
2149
+ header#header nav#navigation ul.menu-level-1 > li {
2150
+ display: block !important;
2151
+ width: 100% !important;
2152
+ padding: 0 !important;
2153
+ border-bottom: 1px solid var(--gl-divider);
2154
+ }
2155
+ header#header nav#navigation ul.menu-level-1 > li > a {
2156
+ height: auto !important;
2157
+ padding: 16px 24px !important;
2158
+ font-size: 18px !important;
2159
+ width: 100%;
2160
+ justify-content: space-between;
2161
+ }
2162
+ /* Drawer dropdown — static (nikoli absolute) — nested */
2163
+ header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
2164
+ position: static !important;
2165
+ box-shadow: none !important;
2166
+ border: none !important;
2167
+ border-top: 1px solid var(--gl-divider) !important;
2168
+ background: var(--gl-surface-alt) !important;
2169
+ padding: 8px 24px 12px !important;
2170
+ width: 100% !important;
2171
+ max-width: none !important;
2172
+ min-width: 0 !important;
2173
+ }
2174
+ /* Drawer backdrop (Shoptet vendor pridava .user-action-visible) */
2175
+ body.navigation-window-visible::before {
2176
+ content: "";
2177
+ position: fixed;
2178
+ inset: 0;
2179
+ background: rgba(0, 0, 0, .4);
2180
+ z-index: 150;
2181
+ pointer-events: none;
2182
+ }
2183
+ /* Skryj topnav contacts (telefon/email) — moc info na mobil */
2184
+ .top-navigation-bar .top-navigation-contacts {
2185
+ display: none !important;
2186
+ }
2187
+ /* Skryj topnav menu (Jak nakupovat / OP / Kontakty) — zařadí se do drawer */
2188
+ .top-navigation-bar .top-navigation-menu {
2189
+ display: none !important;
2190
+ }
2191
+ /* Skryj topnav desktop login button (nahradí ho login ikonka v responsive-tools) */
2192
+ .top-navigation-bar .top-navigation-tools > button.top-nav-button-login {
2193
+ display: none !important;
2194
+ }
2195
+ /* Top-navigation-tools — force flex (vendor přebíjí na block) */
2196
+ .top-navigation-bar .top-navigation-tools {
2197
+ display: flex !important;
2198
+ align-items: center;
2199
+ justify-content: flex-end;
2200
+ gap: 14px;
2201
+ margin-left: auto;
2202
+ }
2203
+ /* Force responsive-tools display — vendor `.desktop .responsive-tools { display: none }` přebít */
2204
+ .top-navigation-bar .top-navigation-tools .responsive-tools,
2205
+ body.desktop .top-navigation-bar .top-navigation-tools .responsive-tools {
2206
+ display: inline-flex !important;
2207
+ align-items: center;
2208
+ gap: 14px;
2209
+ margin-left: auto;
2210
+ position: static !important;
2211
+ }
2212
+ /* Toggle-window <a> elementy — explicitní rozměry (vendor je dělá 0×0) */
2213
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window {
2214
+ display: inline-block !important;
2215
+ width: 28px !important;
2216
+ height: 28px !important;
2217
+ padding: 0 !important;
2218
+ margin: 0;
2219
+ background: transparent center/22px 22px no-repeat;
2220
+ text-decoration: none;
2221
+ color: var(--gl-fg-1);
2222
+ cursor: pointer;
2223
+ position: static !important;
2224
+ transition: opacity .15s;
2225
+ font-size: 0;
2226
+ line-height: 0;
2227
+ text-indent: -9999px;
2228
+ overflow: hidden;
2229
+ }
2230
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window:hover,
2231
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window:focus-visible {
2232
+ opacity: .65;
2233
+ }
2234
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window:focus-visible {
2235
+ outline: 2px solid var(--gl-fg-1);
2236
+ outline-offset: 4px;
2237
+ }
2238
+ /* Hamburger ikona (data-target="navigation") */
2239
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window[data-target="navigation"] {
2240
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='square'><path d='M4 8h20M4 14h20M4 20h20'/></svg>") !important;
2241
+ }
2242
+ /* Search ikona (data-target="search") */
2243
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window[data-target="search"] {
2244
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8'><circle cx='12' cy='12' r='7'/><path d='m24 24-6-6'/></svg>") !important;
2245
+ }
2246
+ /* Login ikona (data-target="login") */
2247
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window[data-target="login"] {
2248
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8'><circle cx='14' cy='10' r='4'/><path d='M6 24c0-4 4-7 8-7s8 3 8 7'/></svg>") !important;
2249
+ }
2250
+ /* Topnav container layout fix */
2251
+ .top-navigation-bar .container {
2252
+ display: flex;
2253
+ align-items: center;
2254
+ justify-content: flex-end;
2255
+ padding: 0 16px;
2256
+ height: 56px;
2257
+ }
2258
+ /* Topnav bar — fixed nahoře (Shoptet vendor) → kompenzace */
2259
+ .top-navigation-bar {
2260
+ height: 56px;
2261
+ }
2262
+ /* Hide search bar v headeru — search se otevře přes ikonu */
2263
+ header#header .search {
2264
+ display: none;
2265
+ }
2266
+ /* Header layout: logo + cart only (search hidden, nav hidden) */
2267
+ header#header .header-top {
2268
+ grid-template-columns: auto 1fr auto;
2269
+ gap: 12px;
2270
+ height: 64px;
2271
+ padding: 0 16px;
2272
+ }
2273
+ header#header .site-name img {
2274
+ height: 36px;
2275
+ max-width: 180px;
2276
+ }
2277
+ /* Cart pill smaller na mobile */
2278
+ header#header .navigation-buttons a.cart-count,
2279
+ header#header .navigation-buttons a[data-target="cart"] {
2280
+ height: 40px;
2281
+ padding: 8px 12px;
2282
+ font-size: 14px;
2283
+ }
2284
+ header#header .navigation-buttons a.cart-count::before {
2285
+ width: 18px;
2286
+ height: 18px;
2287
+ }
2288
+ header#header .navigation-buttons a.cart-count .cart-price {
2289
+ display: none;
2290
+ }
2291
+ }
2292
+
2293
+ @media (max-width: 767px) {
2294
+ /* Mobil: ještě menší padding, max compact */
2295
+ .top-navigation-bar .container { padding: 0 12px; height: 52px; }
2296
+ .top-navigation-bar .top-navigation-tools .responsive-tools { gap: 10px !important; }
2297
+ .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window {
2298
+ width: 24px !important;
2299
+ height: 24px !important;
2300
+ }
2301
+ header#header .header-top { padding: 0 12px; height: 56px; }
2302
+ header#header .site-name img { height: 32px; max-width: 140px; }
2303
+ }