galali-shoptet 1.0.0 → 1.0.1

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