easyorders 0.1.14 → 0.1.16

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 (51) hide show
  1. package/README.md +93 -93
  2. package/dist/bin/cli.js +12 -5
  3. package/dist/template/theme/config.json +113 -95
  4. package/dist/template/theme/home-sections/Tilted-Scrolling-Marque/config.json +107 -0
  5. package/dist/template/theme/home-sections/Tilted-Scrolling-Marque/template.liquid +171 -0
  6. package/dist/template/theme/home-sections/category-mosaic/config.json +89 -4
  7. package/dist/template/theme/home-sections/category-mosaic/template.liquid +84 -69
  8. package/dist/template/theme/home-sections/different-hero/config.json +199 -0
  9. package/dist/template/theme/home-sections/different-hero/template.liquid +219 -0
  10. package/dist/template/theme/home-sections/editorial-feature/config.json +27 -1
  11. package/dist/template/theme/home-sections/editorial-feature/template.liquid +11 -10
  12. package/dist/template/theme/home-sections/newsletter-luxe/config.json +28 -2
  13. package/dist/template/theme/home-sections/newsletter-luxe/template.liquid +19 -13
  14. package/dist/template/theme/home-sections/runway-hero/config.json +87 -30
  15. package/dist/template/theme/home-sections/runway-hero/template.liquid +59 -29
  16. package/dist/template/theme/home-sections/shop-the-look/config.json +93 -1
  17. package/dist/template/theme/home-sections/shop-the-look/template.liquid +41 -19
  18. package/dist/template/theme/home-sections/slider-before-after/config.json +213 -0
  19. package/dist/template/theme/home-sections/slider-before-after/template.liquid +336 -0
  20. package/dist/template/theme/home-sections/test-hero-allbird/config.json +130 -0
  21. package/dist/template/theme/home-sections/test-hero-allbird/template.liquid +149 -0
  22. package/dist/template/theme/home-sections/trust-promise/config.json +76 -2
  23. package/dist/template/theme/home-sections/trust-promise/template.liquid +119 -96
  24. package/dist/template/theme/home-sections/zoom-parallax/config.json +48 -0
  25. package/dist/template/theme/home-sections/zoom-parallax/template.liquid +135 -0
  26. package/dist/template/theme/product-data-schema.json +27 -0
  27. package/dist/template/theme/schema.json +136 -151
  28. package/dist/template/theme/script.js +1095 -586
  29. package/dist/template/theme/sections/breadcrumbs.liquid +17 -17
  30. package/dist/template/theme/sections/categories.liquid +26 -10
  31. package/dist/template/theme/sections/fake-counter.liquid +27 -27
  32. package/dist/template/theme/sections/fake-stock.liquid +6 -6
  33. package/dist/template/theme/sections/fake-visitor.liquid +6 -6
  34. package/dist/template/theme/sections/featured-products.liquid +143 -110
  35. package/dist/template/theme/sections/fixed-buy-button.liquid +51 -46
  36. package/dist/template/theme/sections/footer.liquid +128 -129
  37. package/dist/template/theme/sections/gallery.liquid +65 -61
  38. package/dist/template/theme/sections/header.liquid +232 -152
  39. package/dist/template/theme/sections/home-products-grid.liquid +167 -109
  40. package/dist/template/theme/sections/list-products.liquid +136 -93
  41. package/dist/template/theme/sections/order-invoice.liquid +102 -154
  42. package/dist/template/theme/sections/product-description.liquid +40 -30
  43. package/dist/template/theme/sections/product-details.liquid +48 -63
  44. package/dist/template/theme/sections/products-grid.liquid +134 -86
  45. package/dist/template/theme/sections/related-products.liquid +152 -88
  46. package/dist/template/theme/sections/reviews.liquid +70 -55
  47. package/dist/template/theme/sections/slider.liquid +43 -43
  48. package/dist/template/theme/sections/thanks.liquid +33 -33
  49. package/dist/template/theme/style.css +5617 -3923
  50. package/dist/template/theme/theme-data.json +26 -9
  51. package/package.json +40 -40
@@ -0,0 +1,171 @@
1
+ {% assign tilt_val = "0deg" %}
2
+ {% if section_data.tilt_direction == "right" %}
3
+ {% assign tilt_val = "5deg" %}
4
+ {% elsif section_data.tilt_direction == "left" %}
5
+ {% assign tilt_val = "-5deg" %}
6
+ {% endif %}
7
+ {% assign first_msg = section_data.messages | first %}
8
+ {% assign first_msg_text = "" %}
9
+ {% if first_msg and first_msg.text %}
10
+ {% assign first_msg_text = first_msg.text %}
11
+ {% endif %}
12
+ {% assign marquee_is_arabic = false %}
13
+ {% if section_data.text_language == "ar" %}
14
+ {% assign marquee_is_arabic = true %}
15
+ {% elsif section_data.text_language == "auto" %}
16
+ {% if lang == "ar" or first_msg_text contains "ا" or first_msg_text contains "ب" or first_msg_text contains "ت" or first_msg_text contains "ث" or first_msg_text contains "ج" or first_msg_text contains "ح" or first_msg_text contains "خ" %}
17
+ {% assign marquee_is_arabic = true %}
18
+ {% endif %}
19
+ {% endif %}
20
+ {% assign marquee_repeat_count = 4 %}
21
+ {% if section_data.messages.size <= 1 %}
22
+ {% assign marquee_repeat_count = 8 %}
23
+ {% elsif section_data.messages.size == 2 %}
24
+ {% assign marquee_repeat_count = 6 %}
25
+ {% endif %}
26
+
27
+ <section
28
+ class="ab-marquee-section{% if marquee_is_arabic %} ab-marquee--arabic{% endif %}"
29
+ style="
30
+ --mq-bg: {{ section_data.bg_color | default: '#000' }};
31
+ --mq-color: {{ section_data.text_color | default: '#fff' }};
32
+ --mq-font-size-dt: {{ section_data.desktop_font_size | default: 48 }}px;
33
+ --mq-font-size-mb: {{ section_data.mobile_font_size | default: 24 }}px;
34
+ --mq-lh-dt: {{ section_data.desktop_line_height | default: 68 }}px;
35
+ --mq-lh-mb: {{ section_data.mobile_line_height | default: 48 }}px;
36
+ --mq-weight: {{ section_data.font_weight | default: '700' }};
37
+ --mq-letter-spacing: {{ section_data.letter_spacing | default: 2 }}px;
38
+ --mq-speed-dt: {{ section_data.desktop_speed | default: 20 }}s;
39
+ --mq-speed-mb: {{ section_data.mobile_speed | default: 10 }}s;
40
+ --mq-tilt: {{ tilt_val }};
41
+ "
42
+ >
43
+ <div class="ab-marquee-clip">
44
+ <div class="ab-marquee-band">
45
+ <div class="ab-marquee-wrapper">
46
+ <div class="ab-marquee-track">
47
+ <div class="ab-marquee-content">
48
+ {% for repeat_index in (1..marquee_repeat_count) %}
49
+ {% for item in section_data.messages %}
50
+ <span class="ab-marquee-item">{{ item.text }}</span>
51
+ {% endfor %}
52
+ {% endfor %}
53
+ </div>
54
+
55
+ <div class="ab-marquee-content" aria-hidden="true">
56
+ {% for repeat_index in (1..marquee_repeat_count) %}
57
+ {% for item in section_data.messages %}
58
+ <span class="ab-marquee-item">{{ item.text }}</span>
59
+ {% endfor %}
60
+ {% endfor %}
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </section>
67
+
68
+ <style>
69
+ .ab-marquee-section {
70
+ margin: 20px 0;
71
+ overflow-x: clip;
72
+ overflow-y: visible;
73
+ position: relative;
74
+ margin-left: -10px;
75
+ margin-right: -10px;
76
+ background-color: transparent;
77
+ }
78
+
79
+ .ab-marquee-clip {
80
+ width: 100%;
81
+ }
82
+
83
+ .ab-marquee-band {
84
+ transform: rotate(var(--mq-tilt));
85
+ transform-origin: center;
86
+ width: calc(100% + 160px);
87
+ margin-left: -80px;
88
+ background-color: transparent; /* خلفية الباند شفافة */
89
+ }
90
+
91
+ .ab-marquee-wrapper {
92
+ display: flex;
93
+ align-items: center;
94
+ background-color: transparent;
95
+ direction: ltr;
96
+ }
97
+
98
+ .ab-marquee-track {
99
+ display: flex;
100
+ width: max-content;
101
+ animation: marquee-scroll var(--mq-speed-dt) linear infinite;
102
+ will-change: transform;
103
+ background-color: var(--mq-bg); /* لون الخلفية اتنقل هنا زي ما طلبت */
104
+ }
105
+
106
+ .ab-marquee-content {
107
+ display: flex;
108
+ align-items: center;
109
+ flex-shrink: 0;
110
+ }
111
+
112
+ .ab-marquee-item {
113
+ color: var(--mq-color);
114
+ font-size: var(--mq-font-size-dt);
115
+ font-weight: var(--mq-weight);
116
+ letter-spacing: var(--mq-letter-spacing); /* تحكم تباعد الحروف */
117
+ line-height: var(--mq-lh-dt); /* التحكم في الارتفاع للديسكتوب */
118
+ white-space: nowrap;
119
+ padding: 0 40px;
120
+ text-transform: uppercase;
121
+ display: inline-flex;
122
+ align-items: center;
123
+ }
124
+
125
+ .ab-marquee-item::after {
126
+ content: "•";
127
+ margin-inline-start: 80px;
128
+ opacity: 0.3;
129
+ }
130
+
131
+ .ab-marquee--arabic .ab-marquee-track {
132
+ animation-name: marquee-scroll-ar;
133
+ }
134
+ .ab-marquee--arabic .ab-marquee-item {
135
+ text-transform: none;
136
+ letter-spacing: 0;
137
+ direction: rtl;
138
+ unicode-bidi: plaintext;
139
+ }
140
+
141
+ @keyframes marquee-scroll {
142
+ from { transform: translateX(0); }
143
+ to { transform: translateX(-50%); }
144
+ }
145
+ @keyframes marquee-scroll-ar {
146
+ from { transform: translateX(-50%); }
147
+ to { transform: translateX(0); }
148
+ }
149
+
150
+ /* ريسبونسيف الموبايل */
151
+ @media (max-width: 768px) {
152
+ .ab-marquee-track {
153
+ animation-duration: var(--mq-speed-mb);
154
+ }
155
+ .ab-marquee-item {
156
+ font-size: var(--mq-font-size-mb);
157
+ line-height: var(--mq-lh-mb); /* التحكم في الارتفاع للموبايل */
158
+ padding: 0 20px;
159
+ }
160
+ .ab-marquee-item::after {
161
+ margin-inline-start: 40px;
162
+ }
163
+ }
164
+
165
+
166
+ {% if section_data.tilt_direction != 'straight' %}
167
+ .ab-marquee-section {
168
+ margin-block: 72px;
169
+ }
170
+ {% endif %}
171
+ </style>
@@ -1,5 +1,5 @@
1
1
  {
2
- "icon": "https://api.iconify.design/lucide:grid-3x3.svg",
2
+ "icon": "https://files.easy-orders.net/1778107568557501919.png",
3
3
  "label": "Category mosaic",
4
4
  "section_schema": [
5
5
  {
@@ -14,6 +14,66 @@
14
14
  "default": "Curated drops for work, weekend, and everything between.",
15
15
  "description": "Subheading under the title"
16
16
  },
17
+ {
18
+ "name": "heading_title_color",
19
+ "type": "color",
20
+ "default": "",
21
+ "group": "controls_title",
22
+ "description": "Heading title color (leave empty for default)"
23
+ },
24
+ {
25
+ "name": "heading_title_size",
26
+ "type": "number",
27
+ "group": "controls_title",
28
+ "default": 38,
29
+ "description": "Heading title size (px)"
30
+ },
31
+ {
32
+ "name": "heading_title_weight",
33
+ "type": "select",
34
+ "default": "500",
35
+ "group": "controls_title",
36
+ "description": "Heading title font weight",
37
+ "options": [
38
+ { "label": "Regular 400", "value": "400" },
39
+ { "label": "Medium 500", "value": "500" },
40
+ { "label": "SemiBold 600", "value": "600" },
41
+ { "label": "Bold 700", "value": "700" }
42
+ ]
43
+ },
44
+ {
45
+ "name": "heading_subtitle_color",
46
+ "type": "color",
47
+ "default": "",
48
+ "group": "controls_subtitle",
49
+ "description": "Subtitle color (leave empty for default)"
50
+ },
51
+ {
52
+ "name": "heading_subtitle_size",
53
+ "type": "number",
54
+ "group": "controls_subtitle",
55
+ "default": 16,
56
+ "description": "Subtitle size (px)"
57
+ },
58
+ {
59
+ "name": "heading_subtitle_weight",
60
+ "type": "select",
61
+ "default": "400",
62
+ "group": "controls_subtitle",
63
+ "description": "Subtitle font weight",
64
+ "options": [
65
+ { "label": "Regular 400", "value": "400" },
66
+ { "label": "Medium 500", "value": "500" },
67
+ { "label": "SemiBold 600", "value": "600" },
68
+ { "label": "Bold 700", "value": "700" }
69
+ ]
70
+ },
71
+ {
72
+ "name": "section_background",
73
+ "type": "color",
74
+ "default": "",
75
+ "description": "Section background color (leave empty for default white)"
76
+ },
17
77
  {
18
78
  "name": "columns",
19
79
  "type": "select",
@@ -32,9 +92,34 @@
32
92
  "description": "Use tighter spacing between tiles"
33
93
  },
34
94
  {
35
- "name": "mosaic_category_ids",
36
- "type": "category_multi_select",
37
- "description": "Categories to show as tiles (search and reorder in the picker). Images and titles load from each category."
95
+ "name": "tiles",
96
+ "type": "object_array",
97
+ "description": "Category or collection tiles",
98
+ "fields": [
99
+ {
100
+ "name": "image",
101
+ "type": "image",
102
+ "default": "",
103
+ "description": "صورة القسم"
104
+ },
105
+ {
106
+ "name": "label",
107
+ "type": "string",
108
+ "default": "Dresses",
109
+ "description": "اسم القسم على الصورة"
110
+ },
111
+ {
112
+ "name": "tagline",
113
+ "type": "string",
114
+ "default": "Fluid lines",
115
+ "description": "وصف قصير تحت الاسم"
116
+ },
117
+ {
118
+ "name": "category_id",
119
+ "type": "category_single_select",
120
+ "description": "اختيار القسم (اللينك يتجاب أوتوماتيك)"
121
+ }
122
+ ]
38
123
  }
39
124
  ]
40
125
  }
@@ -1,8 +1,15 @@
1
1
  <section
2
- class="category-mosaic eo-hs{% if section_data.gap_tight %} category-mosaic--tight{% endif %}{% if section_data.mosaic_category_ids == blank or section_data.mosaic_category_ids.size == 0 %} eo-hs--empty{% endif %}"
3
- style="--mosaic-cols: {{ section_data.columns | default: '3' }};"
4
- data-eo-hs-entity="categories"
5
- data-eo-hs-ids="{{ section_data.mosaic_category_ids | join: ',' | strip }}"
2
+ class="eo-home-section category-mosaic{% if section_data.gap_tight %} category-mosaic--tight{% endif %}"
3
+ style="
4
+ --mosaic-cols: {{ section_data.columns | default: '3' }};
5
+ {% if section_data.section_background != blank %}--mosaic-section-bg: {{ section_data.section_background }};{% endif %}
6
+ {% if section_data.heading_title_color != blank %}--mosaic-head-title-color: {{ section_data.heading_title_color }};{% endif %}
7
+ --mosaic-head-title-size: {{ section_data.heading_title_size | default: 38 }}px;
8
+ --mosaic-head-title-weight: {{ section_data.heading_title_weight | default: '500' }};
9
+ {% if section_data.heading_subtitle_color != blank %}--mosaic-head-subtitle-color: {{ section_data.heading_subtitle_color }};{% endif %}
10
+ --mosaic-head-subtitle-size: {{ section_data.heading_subtitle_size | default: 16 }}px;
11
+ --mosaic-head-subtitle-weight: {{ section_data.heading_subtitle_weight | default: '400' }};
12
+ "
6
13
  >
7
14
  <div class="category-mosaic__head">
8
15
  {% if section_data.title != blank %}
@@ -13,21 +20,51 @@
13
20
  {% endif %}
14
21
  </div>
15
22
 
16
- <div class="category-mosaic__grid" data-eo-hs-mount>
17
- {% if section_data.mosaic_category_ids and section_data.mosaic_category_ids.size > 0 %}
18
- {% for id in section_data.mosaic_category_ids %}
19
- <div class="eo-hs-skeleton eo-hs-skeleton--category" aria-hidden="true"></div>
23
+ {% if section_data.tiles and section_data.tiles.size > 0 %}
24
+ <div class="category-mosaic__grid">
25
+ {% for tile in section_data.tiles %}
26
+ <a
27
+ class="category-mosaic__tile"
28
+ href="#"
29
+ {% if tile.category_id != blank %}
30
+ data-eo-hs-cta="1"
31
+ data-eo-hs-cta-entity="categories"
32
+ data-eo-hs-cta-id="{{ tile.category_id }}"
33
+ {% endif %}
34
+ >
35
+ <div class="category-mosaic__visual">
36
+ {% if tile.image != blank %}
37
+ <img
38
+ class="category-mosaic__img"
39
+ src="{{ tile.image }}"
40
+ alt="{{ tile.label }}"
41
+ loading="lazy"
42
+ width="640"
43
+ height="800"
44
+ />
45
+ {% else %}
46
+ <div class="category-mosaic__img-fallback" aria-hidden="true"></div>
47
+ {% endif %}
48
+ <div class="category-mosaic__shade" aria-hidden="true"></div>
49
+ </div>
50
+ <div class="category-mosaic__meta">
51
+ {% if tile.label != blank %}
52
+ <span class="category-mosaic__label">{{ tile.label }}</span>
53
+ {% endif %}
54
+ {% if tile.tagline != blank %}
55
+ <span class="category-mosaic__tagline">{{ tile.tagline }}</span>
56
+ {% endif %}
57
+ </div>
58
+ </a>
20
59
  {% endfor %}
21
- {% else %}
22
- <p class="category-mosaic__placeholder">Choose categories in the section settings to build this mosaic.</p>
23
- {% endif %}
24
- </div>
60
+ </div>
61
+ {% endif %}
25
62
  </section>
26
63
 
27
64
  <style>
28
65
  .category-mosaic {
29
66
  padding: clamp(2.5rem, 5vw, 4rem) 1.25rem 3rem;
30
- background: #fff;
67
+ background: var(--mosaic-section-bg, #fff);
31
68
  color: #141218;
32
69
  }
33
70
  .category-mosaic--tight .category-mosaic__grid {
@@ -41,14 +78,16 @@
41
78
  .category-mosaic__title {
42
79
  margin: 0 0 0.5rem;
43
80
  font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
44
- font-weight: 500;
45
- font-size: clamp(1.75rem, 4vw, 2.35rem);
81
+ font-weight: var(--mosaic-head-title-weight, 500);
82
+ font-size: clamp(1.25rem, 3vw, var(--mosaic-head-title-size, 38px));
83
+ color: var(--mosaic-head-title-color, #141218);
46
84
  }
47
85
  .category-mosaic__subtitle {
48
86
  margin: 0;
49
- font-size: 1rem;
87
+ font-size: var(--mosaic-head-subtitle-size, 16px);
50
88
  line-height: 1.6;
51
- color: #5c5852;
89
+ font-weight: var(--mosaic-head-subtitle-weight, 400);
90
+ color: var(--mosaic-head-subtitle-color, #5c5852);
52
91
  }
53
92
  .category-mosaic__grid {
54
93
  max-width: 1200px;
@@ -57,9 +96,6 @@
57
96
  grid-template-columns: repeat(var(--mosaic-cols, 3), minmax(0, 1fr));
58
97
  gap: 1.25rem;
59
98
  }
60
- .category-mosaic__grid.eo-hs-loading {
61
- opacity: 0.85;
62
- }
63
99
  @media (max-width: 899px) {
64
100
  .category-mosaic__grid {
65
101
  grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -70,26 +106,7 @@
70
106
  grid-template-columns: 1fr;
71
107
  }
72
108
  }
73
- .category-mosaic .eo-hs-skeleton--category {
74
- aspect-ratio: 3 / 4;
75
- border-radius: 6px;
76
- background: linear-gradient(110deg, #ece8e2 8%, #f5f2ee 18%, #ece8e2 33%);
77
- background-size: 200% 100%;
78
- animation: category-mosaic-shimmer 1.2s ease-in-out infinite;
79
- }
80
- .category-mosaic__placeholder {
81
- grid-column: 1 / -1;
82
- margin: 0;
83
- padding: 1.25rem;
84
- text-align: center;
85
- color: #7a7368;
86
- font-size: 0.9rem;
87
- }
88
- .category-mosaic.eo-hs--empty .category-mosaic__grid {
89
- display: flex;
90
- justify-content: center;
91
- }
92
- .category-mosaic .eo-hs-card--category {
109
+ .category-mosaic__tile {
93
110
  position: relative;
94
111
  display: block;
95
112
  text-decoration: none;
@@ -99,57 +116,55 @@
99
116
  background: #ece8e1;
100
117
  transition: transform 0.25s ease, box-shadow 0.25s ease;
101
118
  }
102
- .category-mosaic .eo-hs-card--category:hover {
119
+ .category-mosaic__tile:hover {
103
120
  transform: translateY(-4px);
104
121
  box-shadow: 0 22px 50px rgba(20, 18, 24, 0.18);
105
122
  }
106
- .category-mosaic .eo-hs-card--category .eo-hs-card__media {
107
- display: block;
108
- aspect-ratio: 3 / 4;
109
- background: #ece8e2;
123
+ .category-mosaic__visual {
124
+ position: relative;
125
+ aspect-ratio: 1 / 1;
110
126
  overflow: hidden;
111
127
  }
112
- .category-mosaic .eo-hs-card--category .eo-hs-card__media--empty {
113
- min-height: 200px;
114
- }
115
- .category-mosaic .eo-hs-card--category .eo-hs-card__media img {
128
+ .category-mosaic__img,
129
+ .category-mosaic__img-fallback {
116
130
  width: 100%;
117
131
  height: 100%;
118
132
  object-fit: cover;
119
133
  display: block;
120
134
  transition: transform 0.45s ease;
121
135
  }
122
- .category-mosaic .eo-hs-card--category:hover .eo-hs-card__media img {
136
+ .category-mosaic__img-fallback {
137
+ background: linear-gradient(160deg, #d4cec4, #a39a8f);
138
+ }
139
+ .category-mosaic__tile:hover .category-mosaic__img {
123
140
  transform: scale(1.04);
124
141
  }
125
- .category-mosaic .eo-hs-card--category .eo-hs-card__body {
142
+ .category-mosaic__shade {
143
+ position: absolute;
144
+ inset: 0;
145
+ background: linear-gradient(to top, rgba(12, 10, 14, 0.72), transparent 55%);
146
+ pointer-events: none;
147
+ }
148
+ .category-mosaic__meta {
126
149
  position: absolute;
127
150
  left: 0;
128
151
  right: 0;
129
152
  bottom: 0;
130
153
  padding: 1.25rem 1.1rem 1.1rem;
131
- background: linear-gradient(to top, rgba(12, 10, 14, 0.72), transparent 55%);
154
+ display: flex;
155
+ flex-direction: column;
156
+ gap: 0.2rem;
157
+ color: #fff;
132
158
  }
133
- .category-mosaic .eo-hs-card--category .eo-hs-card__title {
159
+ .category-mosaic__label {
134
160
  font-size: 1.05rem;
135
161
  font-weight: 600;
136
162
  letter-spacing: 0.02em;
137
- color: #fff;
138
- }
139
- .category-mosaic .eo-hs-error {
140
- grid-column: 1 / -1;
141
- margin: 0;
142
- padding: 1rem;
143
- text-align: center;
144
- font-size: 0.88rem;
145
- color: #8b3225;
146
163
  }
147
- @keyframes category-mosaic-shimmer {
148
- 0% {
149
- background-position: 100% 0;
150
- }
151
- 100% {
152
- background-position: -100% 0;
153
- }
164
+ .category-mosaic__tagline {
165
+ font-size: 0.82rem;
166
+ opacity: 0.88;
167
+ letter-spacing: 0.04em;
168
+ text-transform: uppercase;
154
169
  }
155
170
  </style>