galali-shoptet 1.0.0 → 1.0.2

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 +2 -1
  2. package/style.css +1323 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "galali-shoptet",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Custom CSS for Galali Shoptet theme (designshop.galali.cz)",
5
5
  "main": "style.css",
6
6
  "style": "style.css",
@@ -23,6 +23,7 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "pixelmatch": "^7.2.0",
26
+ "playwright": "^1.60.0",
26
27
  "pngjs": "^7.0.0"
27
28
  }
28
29
  }
package/style.css CHANGED
@@ -41,6 +41,27 @@ body {
41
41
  .menu-helper { display: none !important; }
42
42
  .navigationActions { display: none !important; }
43
43
 
44
+ /* === Pořadí sekcí homepage: banner → kategorie → produkty (sjednoceno se sqrl) === */
45
+ .overall-wrapper {
46
+ display: flex;
47
+ flex-direction: column;
48
+ }
49
+ /* Header + topnav + user-action default order 0 → zůstávají nahoře */
50
+ .overall-wrapper > .content-wrapper.homepage-box.before-carousel {
51
+ order: 10;
52
+ }
53
+ .overall-wrapper > .content-wrapper.homepage-box.welcome-wrapper {
54
+ order: 20;
55
+ }
56
+ /* Produktový wrapper (Akční zboží + Novinky) — bez id, bez homepage-box class */
57
+ .overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) {
58
+ order: 30;
59
+ }
60
+ /* Prázdný #content-wrapper schovat */
61
+ .overall-wrapper > #content-wrapper.content-wrapper.container {
62
+ display: none;
63
+ }
64
+
44
65
  /* ============================================ */
45
66
  /* === TOP PANEL (ustrip) === */
46
67
  /* ============================================ */
@@ -575,10 +596,318 @@ header#header nav#navigation ul.menu-level-3 > li > a:focus {
575
596
  opacity: 1;
576
597
  }
577
598
 
599
+ /* ============================================ */
600
+ /* === Banner (carousel — kosmetická taštička) === */
601
+ /* ============================================ */
602
+
603
+ /* Wrapper: prolomit Shoptet content max-width, full bleed na page-max */
604
+ .content-wrapper.homepage-box.before-carousel {
605
+ box-sizing: border-box;
606
+ width: 100vw;
607
+ max-width: var(--gl-page-max);
608
+ margin: 0 auto;
609
+ padding: 0;
610
+ position: relative;
611
+ left: 50%;
612
+ right: 50%;
613
+ margin-left: -50vw;
614
+ margin-right: -50vw;
615
+ background: var(--gl-surface-alt);
616
+ }
617
+
618
+ /* Row + wide-carousel: vynulovat Shoptet container, sjednotit šířku */
619
+ .content-wrapper.homepage-box.before-carousel .row.banners-row,
620
+ .content-wrapper.homepage-box.before-carousel .wide-carousel {
621
+ width: 100%;
622
+ max-width: 100%;
623
+ height: 720px;
624
+ margin: 0;
625
+ padding: 0;
626
+ background: var(--gl-surface-alt);
627
+ }
628
+
629
+ /* Bootstrap-style carousel container */
630
+ .content-wrapper.homepage-box.before-carousel #carousel.carousel.slide {
631
+ position: relative;
632
+ width: 100%;
633
+ height: 720px;
634
+ margin: 0;
635
+ padding: 0;
636
+ background: var(--gl-surface-alt);
637
+ overflow: hidden;
638
+ }
639
+
640
+ .content-wrapper.homepage-box.before-carousel .carousel-inner {
641
+ position: relative;
642
+ width: 100%;
643
+ height: 100%;
644
+ margin: 0;
645
+ padding: 0;
646
+ overflow: hidden;
647
+ }
648
+
649
+ /* Slide (item) — grid 2 sloupce */
650
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item {
651
+ position: absolute;
652
+ inset: 0;
653
+ width: 100%;
654
+ height: 720px;
655
+ margin: 0;
656
+ padding: 0;
657
+ transition: opacity .4s;
658
+ opacity: 0;
659
+ pointer-events: none;
660
+ }
661
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item.active {
662
+ opacity: 1;
663
+ pointer-events: auto;
664
+ }
665
+
666
+ /* <a> wrapper: roztáhnout přes celý slide, grid layout copy | photo */
667
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
668
+ display: grid;
669
+ grid-template-columns: 1fr 1fr;
670
+ grid-template-rows: 720px;
671
+ align-items: stretch;
672
+ width: 100%;
673
+ height: 720px;
674
+ margin: 0;
675
+ padding: 0;
676
+ color: var(--gl-fg-1);
677
+ text-decoration: none;
678
+ background: transparent;
679
+ }
680
+
681
+ /* Photo (vpravo) */
682
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > img {
683
+ grid-column: 2;
684
+ grid-row: 1;
685
+ width: 100%;
686
+ height: 720px;
687
+ margin: 0;
688
+ padding: 0;
689
+ background: #dedede;
690
+ object-fit: cover;
691
+ object-position: center;
692
+ display: block;
693
+ }
694
+
695
+ /* Copy (vlevo) — span.extended-banner-texts jako levý sloupec */
696
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
697
+ grid-column: 1;
698
+ grid-row: 1;
699
+ display: flex;
700
+ flex-direction: column;
701
+ align-items: flex-start;
702
+ justify-content: center;
703
+ gap: 30px;
704
+ width: 100%;
705
+ height: 720px;
706
+ margin: 0;
707
+ padding: 0 80px 0 120px;
708
+ box-sizing: border-box;
709
+ background: transparent;
710
+ position: static;
711
+ transform: none;
712
+ text-align: left;
713
+ }
714
+
715
+ /* Carousel-inner: vendor Shoptet padding-top hack pro aspect-ratio → vynulovat */
716
+ .content-wrapper.homepage-box.before-carousel .carousel-inner {
717
+ padding: 0 !important;
718
+ }
719
+
720
+ /* Title — H1 ekvivalent (vendor pozicuje absolute, my static v copy sloupci) */
721
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
722
+ position: static !important;
723
+ display: block;
724
+ width: auto;
725
+ inset: auto;
726
+ margin: 0;
727
+ padding: 0;
728
+ color: var(--gl-fg-1);
729
+ font-family: var(--gl-font-body);
730
+ font-size: 80px;
731
+ font-weight: var(--gl-w-regular);
732
+ line-height: 80px;
733
+ letter-spacing: normal;
734
+ text-transform: none;
735
+ background: transparent;
736
+ }
737
+
738
+ /* Subtitle (taky vendor absolute → static) */
739
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
740
+ position: static !important;
741
+ display: block;
742
+ width: auto;
743
+ inset: auto;
744
+ margin: -10px 0 0;
745
+ padding: 0;
746
+ color: var(--gl-fg-1);
747
+ font-family: var(--gl-font-body);
748
+ font-size: 26px;
749
+ font-weight: var(--gl-w-regular);
750
+ line-height: 30px;
751
+ background: transparent;
752
+ }
753
+
754
+ /* CTA odkaz "Zobrazit produkt" — bílé tlačítko s černým textem (vendor má černý overlay) */
755
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link {
756
+ position: static !important;
757
+ display: inline-flex;
758
+ align-items: center;
759
+ justify-content: center;
760
+ gap: 18px;
761
+ width: auto;
762
+ height: 45px;
763
+ inset: auto;
764
+ padding: 0 40px;
765
+ margin: 0;
766
+ background: var(--gl-white) !important;
767
+ color: var(--gl-fg-1) !important;
768
+ font-family: var(--gl-font-ui);
769
+ font-size: 18px;
770
+ font-weight: var(--gl-w-regular);
771
+ line-height: 18px;
772
+ text-decoration: none;
773
+ border: none;
774
+ border-radius: 0;
775
+ box-shadow: none;
776
+ cursor: pointer;
777
+ transition: background .15s, color .15s, transform .12s;
778
+ }
779
+ /* Šipka → za textem CTA (pseudo-element, SVG inline) */
780
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link::after {
781
+ content: "";
782
+ display: inline-block;
783
+ width: 18px;
784
+ height: 12px;
785
+ background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><path d='M0 6h16'/><path d='M11 1l5 5-5 5'/></svg>") center/contain no-repeat;
786
+ flex-shrink: 0;
787
+ transition: transform .15s, filter .15s;
788
+ }
789
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:hover .extended-banner-link::after,
790
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:focus-visible .extended-banner-link::after {
791
+ filter: invert(1);
792
+ transform: translateX(3px);
793
+ }
794
+
795
+ /* CTA hover/focus — celý <a> je klikací, reagujeme na hover anchor */
796
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:hover .extended-banner-link,
797
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:focus-visible .extended-banner-link {
798
+ background: var(--gl-fg-1);
799
+ color: var(--gl-white);
800
+ transform: translateY(-1px);
801
+ }
802
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:focus-visible {
803
+ outline: 2px solid var(--gl-fg-1);
804
+ outline-offset: -2px;
805
+ }
806
+
807
+ /* Skrýt Shoptet indikátory / ovladače (jen 1 slide) */
808
+ .content-wrapper.homepage-box.before-carousel .carousel-indicators,
809
+ .content-wrapper.homepage-box.before-carousel .carousel-control,
810
+ .content-wrapper.homepage-box.before-carousel .left.carousel-control,
811
+ .content-wrapper.homepage-box.before-carousel .right.carousel-control {
812
+ display: none !important;
813
+ }
814
+
815
+ /* Responsive */
816
+ @media (max-width: 1279px) {
817
+ .content-wrapper.homepage-box.before-carousel .row.banners-row,
818
+ .content-wrapper.homepage-box.before-carousel .wide-carousel,
819
+ .content-wrapper.homepage-box.before-carousel #carousel.carousel.slide,
820
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item,
821
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a,
822
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > img,
823
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
824
+ height: 520px;
825
+ }
826
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
827
+ grid-template-rows: 520px;
828
+ }
829
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
830
+ padding: 0 40px 0 60px;
831
+ gap: 20px;
832
+ }
833
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
834
+ font-size: 56px;
835
+ line-height: 56px;
836
+ }
837
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
838
+ font-size: 20px;
839
+ line-height: 24px;
840
+ }
841
+ }
842
+
843
+ @media (max-width: 767px) {
844
+ .content-wrapper.homepage-box.before-carousel .row.banners-row,
845
+ .content-wrapper.homepage-box.before-carousel .wide-carousel,
846
+ .content-wrapper.homepage-box.before-carousel #carousel.carousel.slide {
847
+ height: auto;
848
+ }
849
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item,
850
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
851
+ height: auto;
852
+ position: static;
853
+ }
854
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
855
+ display: flex;
856
+ flex-direction: column-reverse;
857
+ }
858
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > img {
859
+ width: 100%;
860
+ height: 320px;
861
+ }
862
+ .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
863
+ width: 100%;
864
+ height: auto;
865
+ padding: 32px 16px;
866
+ gap: 16px;
867
+ }
868
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
869
+ font-size: 36px;
870
+ line-height: 38px;
871
+ }
872
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
873
+ font-size: 16px;
874
+ line-height: 20px;
875
+ margin: 0;
876
+ }
877
+ .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link {
878
+ height: 42px;
879
+ font-size: 16px;
880
+ padding: 0 24px;
881
+ }
882
+ }
883
+
578
884
  /* ============================================ */
579
885
  /* === Nakupte podle kategorií (pictos) === */
580
886
  /* ============================================ */
581
887
 
888
+ /* Override Shoptet content/welcome wrapperů (kontejnery omezené na ~800-1418px),
889
+ aby naše sekce mohly vyplnit celou šířku stránky */
890
+ .welcome > div,
891
+ .welcome,
892
+ .welcome-wrapper,
893
+ .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 {
901
+ max-width: none !important;
902
+ width: 100% !important;
903
+ margin: 0 !important;
904
+ padding: 0 !important;
905
+ }
906
+ .content-wrapper.homepage-box.welcome-wrapper {
907
+ padding: 0 !important;
908
+ margin: 0 !important;
909
+ }
910
+
582
911
  /* Sekce wrapper — .gutter section vložená přes HTML blok v adminu */
583
912
  section.gutter {
584
913
  box-sizing: border-box;
@@ -598,6 +927,7 @@ section.gutter .sec-head {
598
927
  margin: 0 0 60px;
599
928
  padding: 0;
600
929
  border: 0;
930
+ flex-wrap: nowrap;
601
931
  }
602
932
 
603
933
  section.gutter .sec-title {
@@ -701,7 +1031,8 @@ section.gutter .picto:focus-visible {
701
1031
 
702
1032
  /* Responsive — odvozeno ze sqrl.dev breakpointů */
703
1033
  @media (max-width: 1279px) {
704
- section.gutter { padding-top: 80px; }
1034
+ section.gutter { padding: 96px 32px 0; }
1035
+ section.gutter .sec-head { margin-bottom: 36px; gap: 16px; flex-wrap: wrap; }
705
1036
  section.gutter .sec-title { font-size: 40px; line-height: 42px; }
706
1037
  section.gutter .sec-link { font-size: 16px; }
707
1038
  section.gutter .pictos { grid-template-columns: repeat(4, 1fr); gap: 12px; }
@@ -711,8 +1042,8 @@ section.gutter .picto:focus-visible {
711
1042
  }
712
1043
 
713
1044
  @media (max-width: 767px) {
714
- section.gutter { padding: 60px 16px 0; }
715
- section.gutter .sec-head { margin-bottom: 32px; }
1045
+ section.gutter { padding: 64px 28px 0; }
1046
+ section.gutter .sec-head { margin-bottom: 24px; gap: 12px; }
716
1047
  section.gutter .sec-title { font-size: 28px; line-height: 30px; }
717
1048
  section.gutter .sec-link { font-size: 14px; gap: 10px; }
718
1049
  section.gutter .sec-link svg { width: 14px; height: 14px; }
@@ -721,3 +1052,992 @@ section.gutter .picto:focus-visible {
721
1052
  section.gutter .picto svg { width: 38px; height: 38px; }
722
1053
  section.gutter .picto .name { font-size: 12px; line-height: 14px; }
723
1054
  }
1055
+
1056
+ /* ============================================ */
1057
+ /* === Akční zboží + Novinky (homepage produkty) === */
1058
+ /* ============================================ */
1059
+
1060
+ /* main.content má 1418px theme limit — rozšířit na page-max */
1061
+ main.content:not(.wide) {
1062
+ box-sizing: border-box;
1063
+ width: 100%;
1064
+ max-width: var(--gl-page-max);
1065
+ margin: 0 auto;
1066
+ padding: 0 var(--gl-gutter);
1067
+ }
1068
+
1069
+ /* Nadpis sekce (Shoptet renderuje jako div.h4) — stylujeme jako h2.sec-title */
1070
+ main.content > .homepage-group-title {
1071
+ margin: 130px 0 60px;
1072
+ padding: 0;
1073
+ font-family: var(--gl-font-ui);
1074
+ font-size: 56px;
1075
+ line-height: 56px;
1076
+ font-weight: var(--gl-w-bold);
1077
+ color: var(--gl-fg-1);
1078
+ letter-spacing: normal;
1079
+ text-transform: none;
1080
+ }
1081
+ /* Druhý nadpis (Novinky) — menší top margin (sqrl má 80px) */
1082
+ main.content > .homepage-products-heading-2 {
1083
+ margin-top: 80px;
1084
+ }
1085
+
1086
+ /* Mřížka produktů — 4 sloupce, gap 50/40 jako sqrl.dev */
1087
+ main.content > .products.products-block {
1088
+ display: grid !important;
1089
+ grid-template-columns: repeat(4, 1fr);
1090
+ column-gap: 40px;
1091
+ row-gap: 50px;
1092
+ margin: 0 0 0;
1093
+ padding: 0;
1094
+ list-style: none;
1095
+ background: transparent;
1096
+ }
1097
+
1098
+ /* Reset jednotlivého produktu — bez bordrů, paddingu, vendor zdobení */
1099
+ main.content > .products.products-block > .product {
1100
+ margin: 0;
1101
+ padding: 0;
1102
+ width: auto;
1103
+ background: transparent;
1104
+ border: 0;
1105
+ box-shadow: none;
1106
+ }
1107
+ main.content > .products.products-block > .product > .p {
1108
+ display: flex;
1109
+ flex-direction: column;
1110
+ gap: 16px;
1111
+ padding: 0;
1112
+ margin: 0;
1113
+ border: 0;
1114
+ background: transparent;
1115
+ box-shadow: none;
1116
+ width: 100%;
1117
+ height: auto;
1118
+ }
1119
+
1120
+ /* Obrázek — kontejner .ph (1:1, paper bg) */
1121
+ main.content > .products.products-block > .product a.image {
1122
+ display: block;
1123
+ width: 100%;
1124
+ aspect-ratio: 1 / 1;
1125
+ background: var(--gl-surface-alt);
1126
+ margin: 0;
1127
+ padding: 0;
1128
+ overflow: hidden;
1129
+ border-radius: 0;
1130
+ position: relative;
1131
+ }
1132
+ main.content > .products.products-block > .product a.image img {
1133
+ width: 100%;
1134
+ height: 100%;
1135
+ object-fit: cover;
1136
+ object-position: center;
1137
+ display: block;
1138
+ margin: 0;
1139
+ padding: 0;
1140
+ transition: transform .4s ease;
1141
+ }
1142
+ main.content > .products.products-block > .product a.image:hover img {
1143
+ transform: scale(1.04);
1144
+ }
1145
+ main.content > .products.products-block > .product a.image:focus-visible {
1146
+ outline: 2px solid var(--gl-fg-1);
1147
+ outline-offset: 2px;
1148
+ }
1149
+
1150
+ /* Vnitřek — .p-in + .p-in-in: reset paddingu, struktura jen pro název */
1151
+ main.content > .products.products-block > .product .p-in,
1152
+ main.content > .products.products-block > .product .p-in-in {
1153
+ padding: 0;
1154
+ margin: 0;
1155
+ border: 0;
1156
+ background: transparent;
1157
+ display: block;
1158
+ }
1159
+
1160
+ /* Název produktu */
1161
+ main.content > .products.products-block > .product a.name {
1162
+ display: block;
1163
+ margin: 0;
1164
+ padding: 0;
1165
+ color: var(--gl-fg-1);
1166
+ text-decoration: none;
1167
+ font-family: var(--gl-font-ui);
1168
+ font-size: 22px;
1169
+ line-height: 26px;
1170
+ font-weight: var(--gl-w-medium);
1171
+ letter-spacing: normal;
1172
+ transition: text-decoration-color .15s;
1173
+ text-decoration-color: transparent;
1174
+ }
1175
+ main.content > .products.products-block > .product a.name span {
1176
+ font-size: inherit;
1177
+ font-weight: inherit;
1178
+ line-height: inherit;
1179
+ color: inherit;
1180
+ text-transform: none;
1181
+ letter-spacing: normal;
1182
+ }
1183
+ main.content > .products.products-block > .product a.name:hover {
1184
+ text-decoration: underline;
1185
+ text-underline-offset: 4px;
1186
+ }
1187
+ main.content > .products.products-block > .product a.name:focus-visible {
1188
+ outline: 2px solid var(--gl-fg-1);
1189
+ outline-offset: 2px;
1190
+ }
1191
+
1192
+ /* Skrýt zbytné prvky (rating, dostupnost, popis, detail btn, kód) — návrh je má pryč */
1193
+ main.content > .products.products-block > .product .ratings-wrapper,
1194
+ main.content > .products.products-block > .product .availability,
1195
+ main.content > .products.products-block > .product .p-desc,
1196
+ main.content > .products.products-block > .product .p-tools,
1197
+ main.content > .products.products-block > .product .p-code,
1198
+ main.content > .products.products-block > .product .flag,
1199
+ main.content > .products.products-block > .product .flags,
1200
+ main.content > .products.products-block > .product .actions {
1201
+ display: none !important;
1202
+ }
1203
+
1204
+ /* Spodní část karty — jen cena, bez bordrů a paddingu */
1205
+ main.content > .products.products-block > .product .p-bottom {
1206
+ margin: 0;
1207
+ padding: 0;
1208
+ border: 0;
1209
+ background: transparent;
1210
+ display: block;
1211
+ }
1212
+ main.content > .products.products-block > .product .prices {
1213
+ margin: 0;
1214
+ padding: 0;
1215
+ display: block;
1216
+ text-align: left;
1217
+ }
1218
+ main.content > .products.products-block > .product .price,
1219
+ main.content > .products.products-block > .product .price-final {
1220
+ display: block;
1221
+ margin: 0;
1222
+ padding: 0;
1223
+ background: transparent;
1224
+ color: var(--gl-fg-1);
1225
+ font-family: var(--gl-font-ui);
1226
+ font-size: 22px;
1227
+ font-weight: var(--gl-w-regular);
1228
+ line-height: 26px;
1229
+ }
1230
+ main.content > .products.products-block > .product .price strong,
1231
+ main.content > .products.products-block > .product .price-final strong {
1232
+ font-weight: var(--gl-w-regular);
1233
+ color: inherit;
1234
+ }
1235
+
1236
+ /* Responsive */
1237
+ @media (max-width: 1279px) {
1238
+ main.content > .homepage-group-title { font-size: 40px; line-height: 42px; margin: 80px 0 32px; }
1239
+ main.content > .homepage-products-heading-2 { margin-top: 60px; }
1240
+ main.content > .products.products-block { grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 36px; }
1241
+ main.content > .products.products-block > .product a.name { font-size: 18px; line-height: 22px; }
1242
+ main.content > .products.products-block > .product .price-final { font-size: 18px; line-height: 22px; }
1243
+ }
1244
+ @media (max-width: 767px) {
1245
+ main.content:not(.wide) { padding: 0 16px; }
1246
+ main.content > .homepage-group-title { font-size: 28px; line-height: 30px; margin: 60px 0 24px; }
1247
+ main.content > .homepage-products-heading-2 { margin-top: 48px; }
1248
+ main.content > .products.products-block { grid-template-columns: repeat(2, 1fr); column-gap: 12px; row-gap: 24px; }
1249
+ main.content > .products.products-block > .product > .p { gap: 10px; }
1250
+ main.content > .products.products-block > .product a.name { font-size: 15px; line-height: 19px; }
1251
+ main.content > .products.products-block > .product .price-final { font-size: 15px; line-height: 19px; }
1252
+ }
1253
+
1254
+ /* ============================================ */
1255
+ /* === Patička (Footer) === */
1256
+ /* ============================================ */
1257
+
1258
+ footer#footer.footer {
1259
+ background: var(--gl-black);
1260
+ color: var(--gl-white);
1261
+ margin: 140px 0 0;
1262
+ padding: 110px 0 40px;
1263
+ font-family: var(--gl-font-body);
1264
+ font-size: 16px;
1265
+ border: 0;
1266
+ /* 2-col flex: brand (rows) | zákaznický servis (links-icons); bottom strip full width */
1267
+ display: flex;
1268
+ flex-wrap: wrap;
1269
+ 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;
1276
+ }
1277
+ footer#footer > .container.footer-rows {
1278
+ flex: 1 1 360px;
1279
+ max-width: 60%;
1280
+ margin: 0;
1281
+ padding-left: var(--gl-gutter);
1282
+ padding-right: 40px;
1283
+ box-sizing: border-box;
1284
+ order: 1;
1285
+ }
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);
1292
+ box-sizing: border-box;
1293
+ order: 2;
1294
+ }
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);
1300
+ 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;
1312
+ border: 0;
1313
+ }
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 {
1319
+ box-sizing: border-box;
1320
+ width: 100%;
1321
+ max-width: var(--gl-page-max);
1322
+ margin: 0 auto;
1323
+ padding: 0 var(--gl-gutter);
1324
+ background: transparent;
1325
+ border: 0;
1326
+ }
1327
+
1328
+ /* --- Brand sloupec: logo nahoře, kontakt pod ním (1-col stack) --- */
1329
+ footer#footer .footer-rows {
1330
+ display: flex;
1331
+ flex-direction: column;
1332
+ gap: 24px;
1333
+ align-items: flex-start;
1334
+ }
1335
+
1336
+ /* Site-name (logo) — col 1, nahoře */
1337
+ footer#footer .footer-rows .site-name {
1338
+ grid-column: 1 / 2;
1339
+ margin: 0;
1340
+ padding: 0;
1341
+ }
1342
+ footer#footer .footer-rows .site-name a {
1343
+ display: inline-block;
1344
+ color: var(--gl-white);
1345
+ text-decoration: none;
1346
+ font-family: var(--gl-font-ui);
1347
+ font-size: 40px;
1348
+ font-weight: var(--gl-w-bold);
1349
+ line-height: 40px;
1350
+ }
1351
+ footer#footer .footer-rows .site-name img {
1352
+ max-width: 220px;
1353
+ height: auto;
1354
+ filter: brightness(0) invert(1);
1355
+ }
1356
+
1357
+ /* Custom footer (kontakt) — pod logem v col 1 */
1358
+ footer#footer .footer-rows .custom-footer {
1359
+ grid-column: 1 / 2;
1360
+ display: flex;
1361
+ flex-direction: column;
1362
+ align-items: stretch; /* fix: stretch children full width (Shoptet default je 'normal') */
1363
+ gap: 18px;
1364
+ margin-top: 8px;
1365
+ width: 100%;
1366
+ color: var(--gl-white);
1367
+ }
1368
+ footer#footer .footer-rows .custom-footer__contact {
1369
+ width: 100%;
1370
+ margin: 0;
1371
+ padding: 0;
1372
+ }
1373
+ footer#footer .footer-rows .custom-footer__contact .pageElement__heading {
1374
+ display: none;
1375
+ }
1376
+ footer#footer .footer-rows .custom-footer__contact .contact-box {
1377
+ display: block;
1378
+ width: 100%;
1379
+ margin: 0;
1380
+ padding: 0;
1381
+ background: transparent;
1382
+ border: 0;
1383
+ color: var(--gl-white);
1384
+ font-family: var(--gl-font-body);
1385
+ font-size: 22px;
1386
+ font-weight: var(--gl-w-regular);
1387
+ line-height: 1.2;
1388
+ }
1389
+ /* UL > li > span > a (Shoptet contact box struktura) */
1390
+ footer#footer .footer-rows .custom-footer__contact .contact-box ul {
1391
+ display: flex;
1392
+ flex-direction: column;
1393
+ gap: 18px;
1394
+ margin: 0;
1395
+ padding: 0;
1396
+ list-style: none;
1397
+ width: 100%;
1398
+ }
1399
+ footer#footer .footer-rows .custom-footer__contact .contact-box li {
1400
+ display: block;
1401
+ margin: 0;
1402
+ padding: 0;
1403
+ list-style: none;
1404
+ }
1405
+ footer#footer .footer-rows .custom-footer__contact .contact-box span {
1406
+ display: inline;
1407
+ }
1408
+ footer#footer .footer-rows .custom-footer__contact .contact-box * {
1409
+ color: inherit;
1410
+ font-size: inherit;
1411
+ font-family: inherit;
1412
+ background: transparent;
1413
+ }
1414
+ footer#footer .footer-rows .custom-footer__contact .contact-box a {
1415
+ color: var(--gl-white);
1416
+ text-decoration: none;
1417
+ display: inline-flex;
1418
+ align-items: center;
1419
+ gap: 14px;
1420
+ transition: opacity .15s;
1421
+ }
1422
+ footer#footer .footer-rows .custom-footer__contact .contact-box a:hover {
1423
+ opacity: .75;
1424
+ text-decoration: underline;
1425
+ text-underline-offset: 4px;
1426
+ }
1427
+ footer#footer .footer-rows .custom-footer__contact .contact-box a:focus-visible {
1428
+ outline: 2px solid var(--gl-white);
1429
+ outline-offset: 4px;
1430
+ }
1431
+
1432
+ /* Instagram blok (sociální) — Shoptet renderuje prázdný container.
1433
+ Skrýt, dokud admin nedoplní social linky. */
1434
+ footer#footer .footer-rows .custom-footer__instagram {
1435
+ display: none;
1436
+ }
1437
+ footer#footer .footer-rows .custom-footer__instagram.has-content {
1438
+ grid-column: 1 / 2;
1439
+ display: flex;
1440
+ gap: 12px;
1441
+ margin-top: 4px;
1442
+ }
1443
+ footer#footer .footer-rows .custom-footer__instagram a {
1444
+ display: inline-grid;
1445
+ place-items: center;
1446
+ width: 44px;
1447
+ height: 44px;
1448
+ border: 1px solid rgba(255, 255, 255, 0.4);
1449
+ color: var(--gl-white);
1450
+ text-decoration: none;
1451
+ transition: background .15s, border-color .15s;
1452
+ }
1453
+ footer#footer .footer-rows .custom-footer__instagram a:hover {
1454
+ background: rgba(255, 255, 255, 0.1);
1455
+ border-color: var(--gl-white);
1456
+ }
1457
+ footer#footer .footer-rows .custom-footer__instagram a:focus-visible {
1458
+ outline: 2px solid var(--gl-white);
1459
+ outline-offset: 2px;
1460
+ }
1461
+ footer#footer .footer-rows .custom-footer__instagram img,
1462
+ footer#footer .footer-rows .custom-footer__instagram svg {
1463
+ width: 20px;
1464
+ height: 20px;
1465
+ filter: brightness(0) invert(1);
1466
+ }
1467
+
1468
+ /* --- Footer-links-icons sloupec (vnitřní layout) --- */
1469
+ footer#footer .footer-links-icons::before {
1470
+ content: "Zákaznický servis";
1471
+ display: block;
1472
+ margin: 0 0 22px;
1473
+ color: var(--gl-fg-2);
1474
+ font-family: var(--gl-font-ui);
1475
+ font-size: 16px;
1476
+ font-weight: var(--gl-w-medium);
1477
+ line-height: 1.2;
1478
+ letter-spacing: 1.28px;
1479
+ text-transform: uppercase;
1480
+ }
1481
+ footer#footer .footer-links-icons ul.footer-links {
1482
+ display: flex;
1483
+ flex-direction: column;
1484
+ gap: 12px;
1485
+ margin: 0;
1486
+ padding: 0;
1487
+ list-style: none;
1488
+ max-width: 349px;
1489
+ }
1490
+ footer#footer .footer-links-icons ul.footer-links li {
1491
+ margin: 0;
1492
+ padding: 0;
1493
+ list-style: none;
1494
+ }
1495
+ footer#footer .footer-links-icons ul.footer-links li a {
1496
+ color: var(--gl-white);
1497
+ text-decoration: none;
1498
+ font-family: var(--gl-font-body);
1499
+ font-size: 20px;
1500
+ font-weight: var(--gl-w-regular);
1501
+ line-height: 1.2;
1502
+ transition: opacity .15s, text-decoration-color .15s;
1503
+ text-decoration-color: transparent;
1504
+ }
1505
+ footer#footer .footer-links-icons ul.footer-links li a:hover {
1506
+ text-decoration: underline;
1507
+ text-underline-offset: 6px;
1508
+ opacity: .92;
1509
+ }
1510
+ footer#footer .footer-links-icons ul.footer-links li a:focus-visible {
1511
+ outline: 2px solid var(--gl-white);
1512
+ outline-offset: 4px;
1513
+ }
1514
+
1515
+ /* --- Spodní strip --- */
1516
+ footer#footer .footer-bottom {
1517
+ display: flex;
1518
+ align-items: center;
1519
+ justify-content: space-between;
1520
+ flex-wrap: wrap;
1521
+ gap: 16px;
1522
+ margin: 60px 0 0;
1523
+ padding: 30px 0 0;
1524
+ border-top: 1px solid rgba(255, 255, 255, 0.15);
1525
+ color: var(--gl-fg-2);
1526
+ font-family: var(--gl-font-ui);
1527
+ font-size: 14px;
1528
+ font-weight: var(--gl-w-regular);
1529
+ line-height: 1.2;
1530
+ }
1531
+ footer#footer .footer-bottom #signature {
1532
+ display: inline-flex;
1533
+ align-items: center;
1534
+ gap: 8px;
1535
+ color: var(--gl-fg-2);
1536
+ }
1537
+ footer#footer .footer-bottom #signature a {
1538
+ color: var(--gl-fg-2);
1539
+ text-decoration: none;
1540
+ transition: color .15s;
1541
+ }
1542
+ footer#footer .footer-bottom #signature a:hover {
1543
+ color: var(--gl-white);
1544
+ }
1545
+ footer#footer .footer-bottom #signature img {
1546
+ height: 14px;
1547
+ width: auto;
1548
+ filter: brightness(0) invert(1);
1549
+ opacity: .6;
1550
+ }
1551
+ footer#footer .footer-bottom .copyright {
1552
+ display: inline-flex;
1553
+ align-items: center;
1554
+ gap: 16px;
1555
+ color: var(--gl-fg-2);
1556
+ }
1557
+ footer#footer .footer-bottom .copyright strong {
1558
+ color: var(--gl-fg-2);
1559
+ font-weight: var(--gl-w-regular);
1560
+ }
1561
+ footer#footer .footer-bottom .copyright a.cookies-settings {
1562
+ color: var(--gl-fg-2);
1563
+ text-decoration: none;
1564
+ cursor: pointer;
1565
+ transition: color .15s;
1566
+ }
1567
+ footer#footer .footer-bottom .copyright a.cookies-settings:hover {
1568
+ color: var(--gl-white);
1569
+ text-decoration: underline;
1570
+ text-underline-offset: 4px;
1571
+ }
1572
+ footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
1573
+ outline: 2px solid var(--gl-white);
1574
+ outline-offset: 4px;
1575
+ }
1576
+
1577
+ /* Responsive footer */
1578
+ @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; }
1583
+ }
1584
+ @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 {
1589
+ flex: 0 0 100%;
1590
+ max-width: 100%;
1591
+ padding: 0 16px;
1592
+ }
1593
+ footer#footer .footer-rows .site-name a { font-size: 28px; line-height: 30px; }
1594
+ footer#footer .footer-rows .custom-footer__contact .contact-box { font-size: 18px; }
1595
+ 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; }
1597
+ }
1598
+
1599
+ /* ============================================ */
1600
+ /* === Nejprodávanější / Novinky (.products-block) === */
1601
+ /* ============================================ */
1602
+
1603
+ /* Heading nadpisů Shoptet (.homepage-group-title) — sjednotit s .sec-title */
1604
+ .homepage-group-title.homepage-products-heading-1,
1605
+ .homepage-group-title.homepage-products-heading-2 {
1606
+ box-sizing: border-box;
1607
+ margin: 0 0 60px;
1608
+ padding: 130px var(--gl-gutter) 0;
1609
+ max-width: var(--gl-page-max);
1610
+ width: 100%;
1611
+ font-family: var(--gl-font-ui);
1612
+ font-size: 56px;
1613
+ line-height: 56px;
1614
+ font-weight: var(--gl-w-bold);
1615
+ color: var(--gl-fg-1);
1616
+ letter-spacing: normal;
1617
+ text-transform: none;
1618
+ text-align: left;
1619
+ }
1620
+
1621
+ /* Wrapper sekce produktů — full-width grid */
1622
+ .products.products-block.homepage-products-1,
1623
+ .products.products-block.homepage-products-2 {
1624
+ box-sizing: border-box;
1625
+ display: grid !important;
1626
+ grid-template-columns: repeat(4, 1fr);
1627
+ column-gap: 40px;
1628
+ row-gap: 50px;
1629
+ width: 100%;
1630
+ max-width: var(--gl-page-max);
1631
+ margin: 0 auto;
1632
+ padding: 0 var(--gl-gutter) 0;
1633
+ background: transparent;
1634
+ list-style: none;
1635
+ }
1636
+
1637
+ /* Skrýt Shoptet extra slidery v homepage-products (carousel) — necháváme grid */
1638
+ .products.products-block.homepage-products-1 .carousel,
1639
+ .products.products-block.homepage-products-2 .carousel,
1640
+ .products.products-block.homepage-products-1 .slick-arrow,
1641
+ .products.products-block.homepage-products-2 .slick-arrow,
1642
+ .products.products-block.homepage-products-1 .slick-dots,
1643
+ .products.products-block.homepage-products-2 .slick-dots {
1644
+ display: none !important;
1645
+ }
1646
+
1647
+ /* Karta produktu */
1648
+ .products.products-block.homepage-products-1 .product,
1649
+ .products.products-block.homepage-products-2 .product {
1650
+ box-sizing: border-box;
1651
+ width: auto !important;
1652
+ margin: 0;
1653
+ padding: 0;
1654
+ border: none;
1655
+ background: transparent;
1656
+ overflow: visible;
1657
+ list-style: none;
1658
+ }
1659
+ .products.products-block .product .p,
1660
+ .products.products-block .product div.p {
1661
+ display: flex;
1662
+ flex-direction: column;
1663
+ gap: 16px;
1664
+ width: 100%;
1665
+ height: auto;
1666
+ margin: 0;
1667
+ padding: 0;
1668
+ background: transparent;
1669
+ border: none;
1670
+ box-shadow: none;
1671
+ }
1672
+
1673
+ /* Obrázek karty — čtverec s šedým pozadím */
1674
+ .products.products-block .product .p .image,
1675
+ .products.products-block .product a.image {
1676
+ display: block;
1677
+ position: relative;
1678
+ width: 100%;
1679
+ aspect-ratio: 1 / 1;
1680
+ margin: 0;
1681
+ padding: 0;
1682
+ background: var(--gl-surface-alt);
1683
+ border: none;
1684
+ border-radius: 0;
1685
+ overflow: hidden;
1686
+ text-decoration: none;
1687
+ }
1688
+ .products.products-block .product .p .image img,
1689
+ .products.products-block .product a.image img {
1690
+ position: absolute;
1691
+ inset: 0;
1692
+ width: 100%;
1693
+ height: 100%;
1694
+ object-fit: cover;
1695
+ transition: transform .35s ease;
1696
+ }
1697
+ .products.products-block .product:hover .p .image img,
1698
+ .products.products-block .product .p:hover .image img,
1699
+ .products.products-block .product .image:hover img {
1700
+ transform: scale(1.04);
1701
+ }
1702
+
1703
+ /* Skrytí Shoptet specifických elementů, které návrh nemá:
1704
+ ratings + dostupnost + popis + tools (Detail tlačítko) */
1705
+ .products.products-block .product .ratings-wrapper,
1706
+ .products.products-block .product .availability,
1707
+ .products.products-block .product .stars-placeholder,
1708
+ .products.products-block .product p.p-desc,
1709
+ .products.products-block .product .p-desc,
1710
+ .products.products-block .product .p-tools,
1711
+ .products.products-block .product .add-to-cart,
1712
+ .products.products-block .product .p-bottom .add-to-cart,
1713
+ .products.products-block .product .variants-wrapper {
1714
+ display: none !important;
1715
+ }
1716
+
1717
+ /* Inner wrapper karty */
1718
+ .products.products-block .product .p-in,
1719
+ .products.products-block .product .p-in-in {
1720
+ display: flex;
1721
+ flex-direction: column;
1722
+ gap: 8px;
1723
+ width: 100%;
1724
+ margin: 0;
1725
+ padding: 0;
1726
+ background: transparent;
1727
+ border: none;
1728
+ box-shadow: none;
1729
+ }
1730
+
1731
+ /* Název produktu */
1732
+ .products.products-block .product .p-in a.name,
1733
+ .products.products-block .product a.name {
1734
+ display: block;
1735
+ margin: 0;
1736
+ padding: 0;
1737
+ color: var(--gl-fg-1);
1738
+ font-family: var(--gl-font-ui);
1739
+ font-size: 22px;
1740
+ font-weight: var(--gl-w-medium);
1741
+ line-height: 26px;
1742
+ text-decoration: none;
1743
+ transition: text-decoration .15s;
1744
+ }
1745
+ .products.products-block .product a.name span,
1746
+ .products.products-block .product a.name span[data-micro="name"] {
1747
+ color: inherit;
1748
+ font: inherit;
1749
+ text-transform: none;
1750
+ text-decoration: inherit;
1751
+ }
1752
+ .products.products-block .product a.name:hover,
1753
+ .products.products-block .product a.name:hover span {
1754
+ text-decoration: underline;
1755
+ text-underline-offset: 4px;
1756
+ color: var(--gl-fg-1);
1757
+ }
1758
+
1759
+ /* Cena */
1760
+ .products.products-block .product .prices,
1761
+ .products.products-block .product .p-bottom .prices {
1762
+ margin: 0;
1763
+ padding: 0;
1764
+ background: transparent;
1765
+ border: none;
1766
+ }
1767
+ .products.products-block .product .price.price-final,
1768
+ .products.products-block .product .price.price-final strong {
1769
+ color: var(--gl-fg-1);
1770
+ font-family: var(--gl-font-ui);
1771
+ font-size: 22px;
1772
+ font-weight: var(--gl-w-regular);
1773
+ line-height: 26px;
1774
+ text-decoration: none;
1775
+ }
1776
+ .products.products-block .product .price-standard,
1777
+ .products.products-block .product .p-bottom .price-standard {
1778
+ color: var(--gl-fg-2);
1779
+ font-family: var(--gl-font-ui);
1780
+ font-size: 16px;
1781
+ font-weight: var(--gl-w-regular);
1782
+ text-decoration: line-through;
1783
+ }
1784
+
1785
+ /* p-bottom — kontejner pro cenu */
1786
+ .products.products-block .product .p-bottom {
1787
+ display: flex;
1788
+ flex-direction: column;
1789
+ gap: 4px;
1790
+ margin: 0;
1791
+ padding: 0;
1792
+ background: transparent;
1793
+ }
1794
+
1795
+ /* Flag/badge "Bestseller" / akce — pokud Shoptet renderuje vendor flag */
1796
+ .products.products-block .product .flags,
1797
+ .products.products-block .product .flag {
1798
+ position: absolute;
1799
+ top: 14px;
1800
+ left: 14px;
1801
+ margin: 0;
1802
+ padding: 4px 10px;
1803
+ background: var(--gl-black);
1804
+ color: var(--gl-white);
1805
+ font-family: var(--gl-font-ui);
1806
+ font-size: 13px;
1807
+ font-weight: var(--gl-w-medium);
1808
+ line-height: 18px;
1809
+ letter-spacing: .04em;
1810
+ border: none;
1811
+ border-radius: 0;
1812
+ text-transform: none;
1813
+ z-index: 2;
1814
+ }
1815
+
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
+ }
1839
+
1840
+ /* Responsive */
1841
+ @media (max-width: 1279px) {
1842
+ .homepage-group-title.homepage-products-heading-1,
1843
+ .homepage-group-title.homepage-products-heading-2 {
1844
+ margin-bottom: 36px;
1845
+ padding: 96px 32px 0;
1846
+ font-size: 40px;
1847
+ line-height: 42px;
1848
+ }
1849
+ .products.products-block.homepage-products-1,
1850
+ .products.products-block.homepage-products-2 {
1851
+ grid-template-columns: repeat(3, 1fr);
1852
+ column-gap: 24px;
1853
+ row-gap: 36px;
1854
+ padding: 0 32px;
1855
+ }
1856
+ .products.products-block .product a.name { font-size: 18px; line-height: 22px; }
1857
+ .products.products-block .product .price.price-final,
1858
+ .products.products-block .product .price.price-final strong { font-size: 18px; line-height: 22px; }
1859
+ }
1860
+
1861
+ @media (max-width: 767px) {
1862
+ .homepage-group-title.homepage-products-heading-1,
1863
+ .homepage-group-title.homepage-products-heading-2 {
1864
+ margin-bottom: 24px;
1865
+ padding: 64px 28px 0;
1866
+ font-size: 28px;
1867
+ line-height: 30px;
1868
+ }
1869
+ .products.products-block.homepage-products-1,
1870
+ .products.products-block.homepage-products-2 {
1871
+ grid-template-columns: repeat(2, 1fr);
1872
+ column-gap: 12px;
1873
+ row-gap: 24px;
1874
+ padding: 0 28px;
1875
+ }
1876
+ .products.products-block .product a.name { font-size: 14px; line-height: 18px; }
1877
+ .products.products-block .product .price.price-final,
1878
+ .products.products-block .product .price.price-final strong { font-size: 14px; line-height: 18px; }
1879
+ }
1880
+
1881
+ /* ============================================ */
1882
+ /* === Cookie banner (.siteCookies) === */
1883
+ /* ============================================ */
1884
+
1885
+ /* Wrapper — fixed bottom bar v Galali stylu.
1886
+ Shoptet má vyšší specificitu na siteCookies--light, takže !important nutné. */
1887
+ .siteCookies,
1888
+ .siteCookies.siteCookies--bottom,
1889
+ .siteCookies.siteCookies--light,
1890
+ .siteCookies.siteCookies--scrolled {
1891
+ position: fixed;
1892
+ bottom: 24px;
1893
+ left: 24px;
1894
+ right: 24px;
1895
+ max-width: 1200px;
1896
+ margin: 0 auto;
1897
+ padding: 0 !important;
1898
+ background: var(--gl-white) !important;
1899
+ border: 1px solid var(--gl-stroke-1) !important;
1900
+ border-radius: 0 !important;
1901
+ box-shadow: 0 12px 32px rgba(0, 0, 0, .08) !important;
1902
+ color: var(--gl-fg-1) !important;
1903
+ font-family: var(--gl-font-ui);
1904
+ font-size: 14px;
1905
+ line-height: 1.5;
1906
+ z-index: 9999;
1907
+ }
1908
+
1909
+ .siteCookies .siteCookies__form {
1910
+ display: flex;
1911
+ align-items: center;
1912
+ justify-content: space-between;
1913
+ gap: 32px;
1914
+ padding: 20px 28px;
1915
+ }
1916
+
1917
+ .siteCookies .siteCookies__content {
1918
+ display: flex;
1919
+ flex-direction: column;
1920
+ gap: 8px;
1921
+ flex: 1;
1922
+ min-width: 0;
1923
+ }
1924
+
1925
+ .siteCookies .siteCookies__text {
1926
+ margin: 0;
1927
+ color: var(--gl-fg-1);
1928
+ font-size: 14px;
1929
+ line-height: 1.5;
1930
+ }
1931
+ .siteCookies .siteCookies__text a {
1932
+ color: var(--gl-fg-1);
1933
+ text-decoration: underline;
1934
+ text-underline-offset: 3px;
1935
+ transition: opacity .15s;
1936
+ }
1937
+ .siteCookies .siteCookies__text a:hover {
1938
+ opacity: .65;
1939
+ color: var(--gl-fg-1);
1940
+ }
1941
+
1942
+ .siteCookies .siteCookies__links {
1943
+ margin: 0;
1944
+ padding: 0;
1945
+ }
1946
+ .siteCookies .siteCookies__link,
1947
+ .siteCookies button.siteCookies__link {
1948
+ background: transparent;
1949
+ border: none;
1950
+ padding: 0;
1951
+ margin: 0;
1952
+ color: var(--gl-fg-2);
1953
+ font-family: var(--gl-font-ui);
1954
+ font-size: 13px;
1955
+ text-decoration: underline;
1956
+ text-underline-offset: 3px;
1957
+ cursor: pointer;
1958
+ transition: color .15s;
1959
+ }
1960
+ .siteCookies .siteCookies__link:hover,
1961
+ .siteCookies button.siteCookies__link:hover {
1962
+ color: var(--gl-fg-1);
1963
+ }
1964
+
1965
+ .siteCookies .siteCookies__buttonWrap {
1966
+ display: flex;
1967
+ align-items: center;
1968
+ gap: 12px;
1969
+ flex-shrink: 0;
1970
+ }
1971
+
1972
+ /* Tlačítka: Odmítnout (ghost) + Souhlasím (primary černé) */
1973
+ .siteCookies button.siteCookies__button,
1974
+ .siteCookies .siteCookies__button {
1975
+ display: inline-flex;
1976
+ align-items: center;
1977
+ justify-content: center;
1978
+ min-width: 140px !important;
1979
+ height: 44px !important;
1980
+ padding: 0 22px !important;
1981
+ background: var(--gl-white) !important;
1982
+ color: var(--gl-fg-1) !important;
1983
+ border: 1px solid var(--gl-stroke-1) !important;
1984
+ border-radius: 0 !important;
1985
+ font-family: var(--gl-font-ui);
1986
+ font-size: 14px;
1987
+ font-weight: var(--gl-w-medium) !important;
1988
+ line-height: 1;
1989
+ text-decoration: none;
1990
+ cursor: pointer;
1991
+ transition: background .15s, color .15s, border-color .15s;
1992
+ box-shadow: none !important;
1993
+ }
1994
+ .siteCookies button.siteCookies__button:hover {
1995
+ background: var(--gl-paper-3) !important;
1996
+ color: var(--gl-fg-1) !important;
1997
+ }
1998
+ /* Primary "Souhlasím" (value="all") — černá výplň */
1999
+ .siteCookies button.siteCookies__button[value="all"] {
2000
+ background: var(--gl-black) !important;
2001
+ color: var(--gl-white) !important;
2002
+ border-color: var(--gl-black) !important;
2003
+ }
2004
+ .siteCookies button.siteCookies__button[value="all"]:hover {
2005
+ background: #1a1a1a !important;
2006
+ border-color: #1a1a1a !important;
2007
+ color: var(--gl-white) !important;
2008
+ }
2009
+
2010
+ /* Focus state */
2011
+ .siteCookies button.siteCookies__button:focus-visible,
2012
+ .siteCookies button.siteCookies__link:focus-visible,
2013
+ .siteCookies .siteCookies__text a:focus-visible {
2014
+ outline: 2px solid var(--gl-fg-1);
2015
+ outline-offset: 4px;
2016
+ }
2017
+
2018
+ /* Mobile */
2019
+ @media (max-width: 767px) {
2020
+ .siteCookies,
2021
+ .siteCookies.siteCookies--bottom,
2022
+ .siteCookies.siteCookies--light,
2023
+ .siteCookies.siteCookies--scrolled {
2024
+ left: 16px;
2025
+ right: 16px;
2026
+ bottom: 16px;
2027
+ }
2028
+ .siteCookies .siteCookies__form {
2029
+ flex-direction: column;
2030
+ align-items: stretch;
2031
+ gap: 16px;
2032
+ padding: 16px;
2033
+ }
2034
+ .siteCookies .siteCookies__buttonWrap {
2035
+ flex-direction: column;
2036
+ gap: 8px;
2037
+ }
2038
+ .siteCookies button.siteCookies__button,
2039
+ .siteCookies .siteCookies__button {
2040
+ width: 100%;
2041
+ min-width: 0;
2042
+ }
2043
+ }