galali-shoptet 1.0.1 → 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 +420 -131
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "galali-shoptet",
3
- "version": "1.0.1",
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;
@@ -41,6 +42,27 @@ body {
41
42
  .menu-helper { display: none !important; }
42
43
  .navigationActions { display: none !important; }
43
44
 
45
+ /* === Pořadí sekcí homepage: banner → kategorie → produkty (sjednoceno se sqrl) === */
46
+ .overall-wrapper {
47
+ display: flex;
48
+ flex-direction: column;
49
+ }
50
+ /* Header + topnav + user-action default order 0 → zůstávají nahoře */
51
+ .overall-wrapper > .content-wrapper.homepage-box.before-carousel {
52
+ order: 10;
53
+ }
54
+ .overall-wrapper > .content-wrapper.homepage-box.welcome-wrapper {
55
+ order: 20;
56
+ }
57
+ /* Produktový wrapper (Akční zboží + Novinky) — bez id, bez homepage-box class */
58
+ .overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) {
59
+ order: 30;
60
+ }
61
+ /* Prázdný #content-wrapper schovat */
62
+ .overall-wrapper > #content-wrapper.content-wrapper.container {
63
+ display: none;
64
+ }
65
+
44
66
  /* ============================================ */
45
67
  /* === TOP PANEL (ustrip) === */
46
68
  /* ============================================ */
@@ -104,6 +126,12 @@ body {
104
126
  opacity: 1;
105
127
  text-decoration: none;
106
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
+ }
107
135
  .top-navigation-bar .top-navigation-contacts a span {
108
136
  display: inline;
109
137
  }
@@ -174,8 +202,9 @@ body {
174
202
  padding: 0;
175
203
  flex-shrink: 0;
176
204
  }
205
+ /* Desktop: responsive-tools skrytý (mobile burger nepotřebný) */
177
206
  .top-navigation-bar .top-navigation-tools .responsive-tools {
178
- display: none !important;
207
+ display: none;
179
208
  }
180
209
  .top-navigation-bar .top-navigation-tools button.top-nav-button-login,
181
210
  .top-navigation-bar .top-navigation-tools .top-nav-button {
@@ -224,6 +253,20 @@ header#header {
224
253
  margin: 0;
225
254
  padding: 0;
226
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
+ }
227
270
  }
228
271
 
229
272
  header#header .container.navigation-wrapper {
@@ -361,6 +404,16 @@ header#header .navigation-buttons a[data-target="cart"]:hover {
361
404
  background: #1a1a1a;
362
405
  color: var(--gl-white);
363
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
+ }
364
417
  header#header .navigation-buttons a.cart-count::before {
365
418
  content: "";
366
419
  width: 22px;
@@ -415,6 +468,15 @@ header#header nav#navigation ul.menu-level-1 {
415
468
  padding: 0;
416
469
  list-style: none;
417
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;
418
480
  }
419
481
  header#header nav#navigation ul.menu-level-1 > li {
420
482
  display: flex;
@@ -453,6 +515,11 @@ header#header nav#navigation ul.menu-level-1 > li > a:focus {
453
515
  background: transparent;
454
516
  color: var(--gl-black);
455
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
+ }
456
523
  header#header nav#navigation ul.menu-level-1 > li > a > b {
457
524
  font-weight: var(--gl-w-medium);
458
525
  }
@@ -484,12 +551,18 @@ header#header nav#navigation ul.menu-level-1 > li > a .submenu-arrow {
484
551
  transition: transform .2s;
485
552
  }
486
553
 
487
- /* --- 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. */
488
557
  header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
558
+ flex-direction: column !important;
559
+ flex-wrap: nowrap !important;
489
560
  position: absolute;
490
561
  top: 100%;
491
562
  left: 0;
492
- min-width: 240px;
563
+ min-width: 260px;
564
+ width: max-content;
565
+ max-width: 360px;
493
566
  padding: 18px 22px;
494
567
  margin: 0;
495
568
  background: var(--gl-white);
@@ -499,7 +572,12 @@ header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
499
572
  box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
500
573
  list-style: none;
501
574
  z-index: 60;
502
- /* 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;
503
581
  }
504
582
 
505
583
  /* Skrýt Shoptet "menu-image" placeholder (folder.svg) — sqrl.dev návrh nemá */
@@ -509,7 +587,9 @@ header#header nav#navigation ul.menu-level-2 .menu-image {
509
587
  }
510
588
 
511
589
  header#header nav#navigation ul.menu-level-2 > li {
512
- display: block;
590
+ display: block !important;
591
+ width: 100% !important;
592
+ flex: 0 0 100% !important;
513
593
  margin: 0;
514
594
  padding: 0;
515
595
  background: none;
@@ -683,7 +763,7 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
683
763
  width: 100%;
684
764
  height: 720px;
685
765
  margin: 0;
686
- padding: 0 80px 0 120px;
766
+ padding: 0 var(--gl-gutter);
687
767
  box-sizing: border-box;
688
768
  background: transparent;
689
769
  position: static;
@@ -696,7 +776,7 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
696
776
  padding: 0 !important;
697
777
  }
698
778
 
699
- /* 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) */
700
780
  .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
701
781
  position: static !important;
702
782
  display: block;
@@ -711,10 +791,12 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
711
791
  line-height: 80px;
712
792
  letter-spacing: normal;
713
793
  text-transform: none;
714
- background: transparent;
794
+ background: transparent !important;
795
+ border: none !important;
796
+ box-shadow: none !important;
715
797
  }
716
798
 
717
- /* Subtitle (taky vendor absolute → static) */
799
+ /* Subtitle (taky vendor absolute → static + vendor border/shadow off) */
718
800
  .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
719
801
  position: static !important;
720
802
  display: block;
@@ -727,7 +809,9 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
727
809
  font-size: 26px;
728
810
  font-weight: var(--gl-w-regular);
729
811
  line-height: 30px;
730
- background: transparent;
812
+ background: transparent !important;
813
+ border: none !important;
814
+ box-shadow: none !important;
731
815
  }
732
816
 
733
817
  /* CTA odkaz "Zobrazit produkt" — bílé tlačítko s černým textem (vendor má černý overlay) */
@@ -806,14 +890,14 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
806
890
  grid-template-rows: 520px;
807
891
  }
808
892
  .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
809
- padding: 0 40px 0 60px;
893
+ padding: 0 32px;
810
894
  gap: 20px;
811
895
  }
812
- .content-wrapper.homepage-box.before-carousel .extended-banner-title {
896
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
813
897
  font-size: 56px;
814
898
  line-height: 56px;
815
899
  }
816
- .content-wrapper.homepage-box.before-carousel .extended-banner-text {
900
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
817
901
  font-size: 20px;
818
902
  line-height: 24px;
819
903
  }
@@ -844,18 +928,19 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
844
928
  padding: 32px 16px;
845
929
  gap: 16px;
846
930
  }
847
- .content-wrapper.homepage-box.before-carousel .extended-banner-title {
931
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
848
932
  font-size: 36px;
849
933
  line-height: 38px;
850
934
  }
851
- .content-wrapper.homepage-box.before-carousel .extended-banner-text {
935
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
852
936
  font-size: 16px;
853
937
  line-height: 20px;
854
938
  margin: 0;
855
939
  }
856
- .content-wrapper.homepage-box.before-carousel .extended-banner-link {
940
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link {
857
941
  height: 42px;
858
942
  font-size: 16px;
943
+ padding: 0 24px;
859
944
  }
860
945
  }
861
946
 
@@ -863,27 +948,27 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
863
948
  /* === Nakupte podle kategorií (pictos) === */
864
949
  /* ============================================ */
865
950
 
866
- /* Override Shoptet content/welcome wrapperů (kontejnery omezené na ~800-1418px),
867
- 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. */
868
953
  .welcome > div,
869
954
  .welcome,
870
955
  .welcome-wrapper,
871
956
  .container.welcome-wrapper,
872
- div.container,
873
- .content-wrapper.container,
874
- div.content-wrapper.container,
875
- body .content-wrapper.container,
876
- .content-wrapper-in,
877
- main.content,
878
- main.content.content-wrapper-in {
957
+ .content-wrapper.homepage-box.welcome-wrapper,
958
+ .overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) {
879
959
  max-width: none !important;
880
960
  width: 100% !important;
881
961
  margin: 0 !important;
882
962
  padding: 0 !important;
883
963
  }
884
- .content-wrapper.homepage-box.welcome-wrapper {
885
- 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;
886
969
  margin: 0 !important;
970
+ padding: 0 !important;
971
+ display: block;
887
972
  }
888
973
 
889
974
  /* Sekce wrapper — .gutter section vložená přes HTML blok v adminu */
@@ -892,9 +977,19 @@ section.gutter {
892
977
  width: 100%;
893
978
  max-width: var(--gl-page-max);
894
979
  margin: 0 auto;
895
- padding: 130px var(--gl-gutter) 0;
980
+ padding: var(--gl-section-gap) var(--gl-gutter) 0;
896
981
  background: transparent;
897
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; }
898
993
 
899
994
  /* Hlavička sekce: nadpis vlevo, "Všechny kategorie" odkaz vpravo */
900
995
  section.gutter .sec-head {
@@ -1007,9 +1102,10 @@ section.gutter .picto:focus-visible {
1007
1102
  outline-offset: 4px;
1008
1103
  }
1009
1104
 
1010
- /* Responsive — odvozeno ze sqrl.dev breakpointů */
1105
+ /* Responsive — odvozeno ze sqrl.dev breakpointů, --gl-section-gap se zmenšuje */
1011
1106
  @media (max-width: 1279px) {
1012
- section.gutter { padding: 96px 32px 0; }
1107
+ :root { --gl-section-gap: 96px; }
1108
+ section.gutter { padding: var(--gl-section-gap) 32px 0; }
1013
1109
  section.gutter .sec-head { margin-bottom: 36px; gap: 16px; flex-wrap: wrap; }
1014
1110
  section.gutter .sec-title { font-size: 40px; line-height: 42px; }
1015
1111
  section.gutter .sec-link { font-size: 16px; }
@@ -1020,7 +1116,8 @@ section.gutter .picto:focus-visible {
1020
1116
  }
1021
1117
 
1022
1118
  @media (max-width: 767px) {
1023
- section.gutter { padding: 64px 28px 0; }
1119
+ :root { --gl-section-gap: 64px; }
1120
+ section.gutter { padding: var(--gl-section-gap) 20px 0; }
1024
1121
  section.gutter .sec-head { margin-bottom: 24px; gap: 12px; }
1025
1122
  section.gutter .sec-title { font-size: 28px; line-height: 30px; }
1026
1123
  section.gutter .sec-link { font-size: 14px; gap: 10px; }
@@ -1035,18 +1132,19 @@ section.gutter .picto:focus-visible {
1035
1132
  /* === Akční zboží + Novinky (homepage produkty) === */
1036
1133
  /* ============================================ */
1037
1134
 
1038
- /* 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,
1039
1137
  main.content:not(.wide) {
1040
1138
  box-sizing: border-box;
1041
1139
  width: 100%;
1042
1140
  max-width: var(--gl-page-max);
1043
1141
  margin: 0 auto;
1044
- padding: 0 var(--gl-gutter);
1142
+ padding: 0 var(--gl-gutter) !important;
1045
1143
  }
1046
1144
 
1047
1145
  /* Nadpis sekce (Shoptet renderuje jako div.h4) — stylujeme jako h2.sec-title */
1048
1146
  main.content > .homepage-group-title {
1049
- margin: 130px 0 60px;
1147
+ margin: var(--gl-section-gap) 0 60px;
1050
1148
  padding: 0;
1051
1149
  font-family: var(--gl-font-ui);
1052
1150
  font-size: 56px;
@@ -1056,9 +1154,9 @@ main.content > .homepage-group-title {
1056
1154
  letter-spacing: normal;
1057
1155
  text-transform: none;
1058
1156
  }
1059
- /* Druhý nadpis (Novinky) — menší top margin (sqrl 80px) */
1157
+ /* Druhý nadpis (Novinky) — stejný gap jako ostatní sekce */
1060
1158
  main.content > .homepage-products-heading-2 {
1061
- margin-top: 80px;
1159
+ margin-top: var(--gl-section-gap);
1062
1160
  }
1063
1161
 
1064
1162
  /* Mřížka produktů — 4 sloupce, gap 50/40 jako sqrl.dev */
@@ -1236,70 +1334,73 @@ main.content > .products.products-block > .product .price-final strong {
1236
1334
  footer#footer.footer {
1237
1335
  background: var(--gl-black);
1238
1336
  color: var(--gl-white);
1239
- padding: 110px 0 100px;
1240
- margin: 140px 0 0;
1337
+ margin: var(--gl-section-gap) 0 0;
1338
+ padding: 110px 0 40px;
1241
1339
  font-family: var(--gl-font-body);
1242
1340
  font-size: 16px;
1243
1341
  border: 0;
1244
- /* grid overlay: footer-rows + footer-links-icons sdílí row 1, footer-bottom row 2 */
1245
- display: grid;
1246
- grid-template-columns: 1fr;
1247
- grid-template-rows: auto auto;
1248
- row-gap: 0;
1342
+ /* Jednoduchý flex: brand (60%) + servis (40%) + bottom strip plné šířky.
1343
+ Vše v jednom inner wrapperu se 60px gutter. */
1344
+ display: flex;
1345
+ flex-wrap: wrap;
1346
+ align-items: flex-start;
1347
+ row-gap: 60px;
1348
+ column-gap: 0;
1249
1349
  }
1250
-
1251
- /* Reset Shoptet sr-only nadpisu */
1350
+ /* sr-only schovat (bere row v flexu jinak) */
1351
+ footer#footer.footer > h2.sr-only,
1252
1352
  footer#footer .sr-only {
1253
- position: absolute;
1254
- width: 1px;
1255
- height: 1px;
1353
+ position: absolute !important;
1354
+ width: 1px !important;
1355
+ height: 1px !important;
1256
1356
  overflow: hidden;
1257
1357
  clip: rect(0 0 0 0);
1258
1358
  white-space: nowrap;
1259
1359
  border: 0;
1360
+ margin: 0;
1361
+ padding: 0;
1362
+ flex: 0 0 0 !important;
1260
1363
  }
1261
-
1262
- /* Wrapper kontejnerů — full width až do page-max, padding 60px */
1263
- footer#footer .container.footer-rows,
1264
- footer#footer .container.footer-links-icons,
1265
- footer#footer .container.footer-bottom {
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%;
1266
1367
  box-sizing: border-box;
1267
- width: 100%;
1268
- max-width: var(--gl-page-max);
1269
- margin: 0 auto;
1270
- padding: 0 var(--gl-gutter);
1368
+ width: 100% !important;
1369
+ max-width: none !important;
1370
+ margin: 0 !important;
1371
+ padding: 0 40px 0 var(--gl-gutter) !important;
1271
1372
  background: transparent;
1272
1373
  border: 0;
1273
1374
  }
1274
-
1275
- /* Grid overlay: rows + links-icons share row 1; bottom = row 2 */
1276
- footer#footer > .container.footer-rows {
1277
- grid-row: 1;
1278
- grid-column: 1;
1279
- }
1280
- footer#footer > .container.footer-links-icons {
1281
- grid-row: 1;
1282
- grid-column: 1;
1283
- justify-self: end;
1284
- width: auto;
1285
- pointer-events: none; /* aby brand klikable elementy nepřekrývaly */
1286
- }
1287
- footer#footer > .container.footer-links-icons * {
1288
- pointer-events: auto;
1375
+ /* Zákaznický servis — 40%, padding-right = gutter */
1376
+ footer#footer.footer > .container.footer-links-icons {
1377
+ flex: 0 1 40%;
1378
+ box-sizing: border-box;
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;
1384
+ border: 0;
1289
1385
  }
1290
- footer#footer > .container.footer-bottom {
1291
- grid-row: 2;
1292
- grid-column: 1;
1386
+ /* Spodní strip — plná šířka, gutter L/R */
1387
+ footer#footer.footer > .container.footer-bottom {
1388
+ flex: 0 0 100%;
1389
+ box-sizing: border-box;
1390
+ width: 100% !important;
1391
+ max-width: none !important;
1392
+ margin: 0 !important;
1393
+ padding: 30px var(--gl-gutter) 0 !important;
1394
+ background: transparent;
1395
+ border: 0;
1293
1396
  }
1294
1397
 
1295
- /* --- Horní mřížka: brand block + custom-footer + footer-links ---
1296
- 2-col layout (Shoptet renderuje jen 2 obsahové bloky, ne sqrl 4) */
1398
+ /* --- Brand sloupec: logo nahoře, kontakt pod ním (1-col stack) --- */
1297
1399
  footer#footer .footer-rows {
1298
- display: grid;
1299
- grid-template-columns: minmax(360px, 1.4fr) minmax(0, 1fr);
1300
- column-gap: 80px;
1301
- row-gap: 40px;
1302
- align-items: start;
1400
+ display: flex;
1401
+ flex-direction: column;
1402
+ gap: 24px;
1403
+ align-items: flex-start;
1303
1404
  }
1304
1405
 
1305
1406
  /* Site-name (logo) — col 1, nahoře */
@@ -1359,7 +1460,7 @@ footer#footer .footer-rows .custom-footer__contact .contact-box {
1359
1460
  footer#footer .footer-rows .custom-footer__contact .contact-box ul {
1360
1461
  display: flex;
1361
1462
  flex-direction: column;
1362
- gap: 14px;
1463
+ gap: 18px;
1363
1464
  margin: 0;
1364
1465
  padding: 0;
1365
1466
  list-style: none;
@@ -1398,8 +1499,12 @@ footer#footer .footer-rows .custom-footer__contact .contact-box a:focus-visible
1398
1499
  outline-offset: 4px;
1399
1500
  }
1400
1501
 
1401
- /* Instagram blok (sociální) */
1502
+ /* Instagram blok (sociální) — Shoptet renderuje prázdný container.
1503
+ Skrýt, dokud admin nedoplní social linky. */
1402
1504
  footer#footer .footer-rows .custom-footer__instagram {
1505
+ display: none;
1506
+ }
1507
+ footer#footer .footer-rows .custom-footer__instagram.has-content {
1403
1508
  grid-column: 1 / 2;
1404
1509
  display: flex;
1405
1510
  gap: 12px;
@@ -1430,15 +1535,7 @@ footer#footer .footer-rows .custom-footer__instagram svg {
1430
1535
  filter: brightness(0) invert(1);
1431
1536
  }
1432
1537
 
1433
- /* --- Footer-links-icons — pravý sloupec (Zákaznický servis) ---
1434
- Pozicováno přes grid overlay (justify-self: end). Vlastní šířka, padding pravý. */
1435
- footer#footer .footer-links-icons {
1436
- margin: 0;
1437
- padding: 0 var(--gl-gutter);
1438
- width: auto;
1439
- max-width: 460px;
1440
- box-sizing: border-box;
1441
- }
1538
+ /* --- Footer-links-icons sloupec (vnitřní layout) --- */
1442
1539
  footer#footer .footer-links-icons::before {
1443
1540
  content: "Zákaznický servis";
1444
1541
  display: block;
@@ -1492,8 +1589,8 @@ footer#footer .footer-bottom {
1492
1589
  justify-content: space-between;
1493
1590
  flex-wrap: wrap;
1494
1591
  gap: 16px;
1495
- margin: 60px auto 0;
1496
- padding: 30px var(--gl-gutter) 0;
1592
+ margin: 60px 0 0;
1593
+ padding: 30px 0 0;
1497
1594
  border-top: 1px solid rgba(255, 255, 255, 0.15);
1498
1595
  color: var(--gl-fg-2);
1499
1596
  font-family: var(--gl-font-ui);
@@ -1547,24 +1644,32 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1547
1644
  outline-offset: 4px;
1548
1645
  }
1549
1646
 
1550
- /* Responsive footer */
1647
+ /* Responsive footer — používá `footer#footer.footer` selektor stejné specificity */
1551
1648
  @media (max-width: 1279px) {
1552
- footer#footer { padding: 80px 0 60px; margin-top: 100px; }
1553
- footer#footer .footer-rows { grid-template-columns: 1fr 1fr; row-gap: 32px; column-gap: 32px; }
1554
- footer#footer .footer-links-icons { margin-top: 32px; padding-left: var(--gl-gutter); padding-right: var(--gl-gutter); }
1555
- footer#footer .footer-bottom { margin-top: 40px; }
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; }
1556
1653
  }
1557
1654
  @media (max-width: 767px) {
1558
- footer#footer { padding: 60px 0 40px; margin-top: 80px; }
1559
- footer#footer .container.footer-rows,
1560
- footer#footer .container.footer-links-icons,
1561
- footer#footer .container.footer-bottom { padding: 0 16px; }
1562
- footer#footer .footer-rows { grid-template-columns: 1fr; row-gap: 24px; }
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 {
1664
+ flex: 0 0 100%;
1665
+ max-width: 100% !important;
1666
+ padding: 0 20px !important;
1667
+ }
1668
+ footer#footer.footer > .container.footer-bottom { padding: 24px 20px 0 !important; }
1563
1669
  footer#footer .footer-rows .site-name a { font-size: 28px; line-height: 30px; }
1564
1670
  footer#footer .footer-rows .custom-footer__contact .contact-box { font-size: 18px; }
1565
- footer#footer .footer-links-icons { margin-top: 24px; padding-left: 16px; padding-right: 16px; }
1566
1671
  footer#footer .footer-links-icons ul.footer-links li a { font-size: 18px; }
1567
- footer#footer .footer-bottom { flex-direction: column; align-items: flex-start; margin-top: 32px; padding: 24px 16px 0; font-size: 12px; }
1672
+ footer#footer .footer-bottom { flex-direction: column; align-items: flex-start; font-size: 12px; }
1568
1673
  }
1569
1674
 
1570
1675
  /* ============================================ */
@@ -1576,7 +1681,7 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1576
1681
  .homepage-group-title.homepage-products-heading-2 {
1577
1682
  box-sizing: border-box;
1578
1683
  margin: 0 0 60px;
1579
- padding: 130px var(--gl-gutter) 0;
1684
+ padding: var(--gl-section-gap) var(--gl-gutter) 0;
1580
1685
  max-width: var(--gl-page-max);
1581
1686
  width: 100%;
1582
1687
  font-family: var(--gl-font-ui);
@@ -1784,29 +1889,9 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1784
1889
  z-index: 2;
1785
1890
  }
1786
1891
 
1787
- /* Generované badges přes CSS ::before na image kontejneru.
1788
- Sekce 1 (Akční zboží) → "Bestseller", sekce 2 (Novinky) "Novinka". */
1789
- .products.products-block.homepage-products-1 .product a.image::before,
1790
- .products.products-block.homepage-products-2 .product a.image::before {
1791
- content: "Bestseller";
1792
- position: absolute;
1793
- top: 14px;
1794
- left: 14px;
1795
- z-index: 2;
1796
- padding: 4px 10px;
1797
- background: var(--gl-black);
1798
- color: var(--gl-white);
1799
- font-family: var(--gl-font-ui);
1800
- font-size: 13px;
1801
- font-weight: var(--gl-w-regular);
1802
- line-height: 16px;
1803
- letter-spacing: .04em;
1804
- text-transform: none;
1805
- pointer-events: none;
1806
- }
1807
- .products.products-block.homepage-products-2 .product a.image::before {
1808
- content: "Novinka";
1809
- }
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). */
1810
1895
 
1811
1896
  /* Responsive */
1812
1897
  @media (max-width: 1279px) {
@@ -2012,3 +2097,207 @@ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
2012
2097
  min-width: 0;
2013
2098
  }
2014
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
+ }