@jxsuite/starters 3.4.0 → 3.5.0

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 (500) hide show
  1. package/package.json +5 -5
  2. package/sites/blog/components/bl-author-bio.jxn +64 -0
  3. package/sites/blog/components/bl-contact-form.jxn +77 -0
  4. package/sites/blog/components/bl-contact-info.jxn +32 -0
  5. package/sites/blog/components/bl-cta.jxn +52 -0
  6. package/sites/blog/components/bl-footer.jxn +85 -0
  7. package/sites/blog/components/bl-masthead.jxn +111 -0
  8. package/sites/blog/components/bl-nav.jxn +62 -0
  9. package/sites/blog/components/bl-newsletter-cta.jxn +104 -0
  10. package/sites/blog/components/bl-post-card.jxn +106 -0
  11. package/sites/blog/components/bl-post-list.jxn +11 -0
  12. package/sites/blog/components/bl-prose.jxn +67 -0
  13. package/sites/blog/components/bl-section-header.jxn +52 -0
  14. package/sites/blog/components/bl-tag-pill.jxn +19 -0
  15. package/sites/blog/document.schema.json +11 -2
  16. package/sites/blog/layouts/base.jxn +17 -0
  17. package/sites/blog/layouts/post.jxn +13 -0
  18. package/sites/blog/package.json +3 -3
  19. package/sites/blog/pages/[slug].jxn +107 -0
  20. package/sites/blog/project.jxn +1 -1
  21. package/sites/course/components/co-application.jxn +106 -0
  22. package/sites/course/components/co-cohort.jxn +132 -0
  23. package/sites/course/components/co-cta.jxn +95 -0
  24. package/sites/course/components/co-curriculum-accordion.jxn +917 -0
  25. package/sites/course/components/co-faq.jxn +348 -0
  26. package/sites/course/components/co-footer.jxn +138 -0
  27. package/sites/course/components/co-hero.jxn +354 -0
  28. package/sites/course/components/co-instructor-card.jxn +128 -0
  29. package/sites/course/components/co-mentor.jxn +51 -0
  30. package/sites/course/components/co-module-card.jxn +101 -0
  31. package/sites/course/components/co-nav.jxn +172 -0
  32. package/sites/course/components/co-outcome-card.jxn +57 -0
  33. package/sites/course/components/co-outcomes.jxn +179 -0
  34. package/sites/course/components/co-pricing.jxn +145 -0
  35. package/sites/course/components/co-section-header.jxn +55 -0
  36. package/sites/course/components/co-testimonial-card.jxn +69 -0
  37. package/sites/course/document.schema.json +11 -2
  38. package/sites/course/layouts/base.jxn +17 -0
  39. package/sites/course/package.json +3 -3
  40. package/sites/course/project.jxn +1 -1
  41. package/sites/event/components/ev-agenda-tabs.jxn +663 -0
  42. package/sites/event/components/ev-cta.jxn +93 -0
  43. package/sites/event/components/ev-feature.jxn +46 -0
  44. package/sites/event/components/ev-footer.jxn +135 -0
  45. package/sites/event/components/ev-hero.jxn +323 -0
  46. package/sites/event/components/ev-nav.jxn +142 -0
  47. package/sites/event/components/ev-reason.jxn +50 -0
  48. package/sites/event/components/ev-savedate.jxn +268 -0
  49. package/sites/event/components/ev-section-header.jxn +51 -0
  50. package/sites/event/components/ev-session-row.jxn +103 -0
  51. package/sites/event/components/ev-speaker-card.jxn +104 -0
  52. package/sites/event/components/ev-sponsors.jxn +110 -0
  53. package/sites/event/components/ev-stat.jxn +39 -0
  54. package/sites/event/components/ev-ticket-card.jxn +169 -0
  55. package/sites/event/components/ev-venue.jxn +61 -0
  56. package/sites/event/document.schema.json +11 -2
  57. package/sites/event/layouts/base.jxn +12 -0
  58. package/sites/event/package.json +3 -3
  59. package/sites/event/project.jxn +1 -1
  60. package/sites/fitness-studio/components/fs-band.jxn +119 -0
  61. package/sites/fitness-studio/components/fs-booking.jxn +92 -0
  62. package/sites/fitness-studio/components/fs-class-card.jxn +103 -0
  63. package/sites/fitness-studio/components/fs-class-grid.jxn +23 -0
  64. package/sites/fitness-studio/components/fs-cta.jxn +81 -0
  65. package/sites/fitness-studio/components/fs-feature.jxn +40 -0
  66. package/sites/fitness-studio/components/fs-footer.jxn +116 -0
  67. package/sites/fitness-studio/components/fs-hero.jxn +290 -0
  68. package/sites/fitness-studio/components/fs-hours.jxn +78 -0
  69. package/sites/fitness-studio/components/fs-instructor-card.jxn +104 -0
  70. package/sites/fitness-studio/components/fs-intro.jxn +231 -0
  71. package/sites/fitness-studio/components/fs-modality.jxn +133 -0
  72. package/sites/fitness-studio/components/fs-nav.jxn +95 -0
  73. package/sites/fitness-studio/components/fs-pricing-card.jxn +190 -0
  74. package/sites/fitness-studio/components/fs-pricing-table.jxn +322 -0
  75. package/sites/fitness-studio/components/fs-review.jxn +59 -0
  76. package/sites/fitness-studio/components/fs-schedule.jxn +714 -0
  77. package/sites/fitness-studio/components/fs-section-header.jxn +55 -0
  78. package/sites/fitness-studio/document.schema.json +11 -2
  79. package/sites/fitness-studio/layouts/base.jxn +17 -0
  80. package/sites/fitness-studio/package.json +3 -3
  81. package/sites/fitness-studio/project.jxn +1 -1
  82. package/sites/home-services/components/hs-callbar.jxn +60 -0
  83. package/sites/home-services/components/hs-cta.jxn +139 -0
  84. package/sites/home-services/components/hs-feature.jxn +43 -0
  85. package/sites/home-services/components/hs-footer.jxn +169 -0
  86. package/sites/home-services/components/hs-gallery.jxn +51 -0
  87. package/sites/home-services/components/hs-hero.jxn +308 -0
  88. package/sites/home-services/components/hs-intro.jxn +97 -0
  89. package/sites/home-services/components/hs-nav.jxn +207 -0
  90. package/sites/home-services/components/hs-reservation.jxn +125 -0
  91. package/sites/home-services/components/hs-review.jxn +84 -0
  92. package/sites/home-services/components/hs-section-header.jxn +56 -0
  93. package/sites/home-services/components/hs-service-card.jxn +68 -0
  94. package/sites/home-services/components/hs-stat.jxn +40 -0
  95. package/sites/home-services/components/hs-step.jxn +67 -0
  96. package/sites/home-services/components/hs-trust-bar.jxn +183 -0
  97. package/sites/home-services/document.schema.json +11 -2
  98. package/sites/home-services/layouts/base.jxn +22 -0
  99. package/sites/home-services/package.json +3 -3
  100. package/sites/home-services/project.jxn +1 -1
  101. package/sites/museum/components/mu-band.jxn +63 -0
  102. package/sites/museum/components/mu-cta.jxn +76 -0
  103. package/sites/museum/components/mu-exhibition-card.jxn +118 -0
  104. package/sites/museum/components/mu-exhibition-row.jxn +142 -0
  105. package/sites/museum/components/mu-fact.jxn +40 -0
  106. package/sites/museum/components/mu-footer.jxn +206 -0
  107. package/sites/museum/components/mu-hero.jxn +165 -0
  108. package/sites/museum/components/mu-more.jxn +30 -0
  109. package/sites/museum/components/mu-oculus.jxn +33 -0
  110. package/sites/museum/components/mu-pagehead.jxn +76 -0
  111. package/sites/museum/components/mu-quote.jxn +36 -0
  112. package/sites/museum/document.schema.json +11 -2
  113. package/sites/museum/layouts/ar.jxn +31 -0
  114. package/sites/museum/layouts/base.jxn +227 -0
  115. package/sites/museum/layouts/fr-ca.jxn +30 -0
  116. package/sites/museum/package.json +3 -3
  117. package/sites/museum/pages/about.jxn +228 -0
  118. package/sites/museum/pages/ar/about.jxn +232 -0
  119. package/sites/museum/pages/ar/exhibitions/[slug].jxn +150 -0
  120. package/sites/museum/pages/ar/exhibitions/index.jxn +82 -0
  121. package/sites/museum/pages/ar/index.jxn +206 -0
  122. package/sites/museum/pages/ar/visit.jxn +270 -0
  123. package/sites/museum/pages/exhibitions/[slug].jxn +146 -0
  124. package/sites/museum/pages/exhibitions/index.jxn +78 -0
  125. package/sites/museum/pages/fr-ca/a-propos.jxn +233 -0
  126. package/sites/museum/pages/fr-ca/expositions/[slug].jxn +151 -0
  127. package/sites/museum/pages/fr-ca/expositions/index.jxn +83 -0
  128. package/sites/museum/pages/fr-ca/index.jxn +206 -0
  129. package/sites/museum/pages/fr-ca/visite.jxn +271 -0
  130. package/sites/museum/pages/index.jxn +202 -0
  131. package/sites/museum/pages/visit.jxn +266 -0
  132. package/sites/museum/project.jxn +1 -1
  133. package/sites/nonprofit/components/np-contact-form.jxn +97 -0
  134. package/sites/nonprofit/components/np-contact-info.jxn +104 -0
  135. package/sites/nonprofit/components/np-cta.jxn +163 -0
  136. package/sites/nonprofit/components/np-donate-tier.jxn +103 -0
  137. package/sites/nonprofit/components/np-feature.jxn +46 -0
  138. package/sites/nonprofit/components/np-footer.jxn +194 -0
  139. package/sites/nonprofit/components/np-hero.jxn +275 -0
  140. package/sites/nonprofit/components/np-impact-band.jxn +83 -0
  141. package/sites/nonprofit/components/np-intro.jxn +130 -0
  142. package/sites/nonprofit/components/np-nav.jxn +157 -0
  143. package/sites/nonprofit/components/np-program-card.jxn +95 -0
  144. package/sites/nonprofit/components/np-section-header.jxn +63 -0
  145. package/sites/nonprofit/components/np-stat.jxn +51 -0
  146. package/sites/nonprofit/components/np-step.jxn +73 -0
  147. package/sites/nonprofit/components/np-team-member.jxn +60 -0
  148. package/sites/nonprofit/components/np-testimonial.jxn +120 -0
  149. package/sites/nonprofit/document.schema.json +11 -2
  150. package/sites/nonprofit/layouts/base.jxn +17 -0
  151. package/sites/nonprofit/package.json +3 -3
  152. package/sites/nonprofit/project.jxn +1 -1
  153. package/sites/portfolio/components/pv-about-split.jxn +53 -0
  154. package/sites/portfolio/components/pv-category-pill.jxn +19 -0
  155. package/sites/portfolio/components/pv-contact-form.jxn +72 -0
  156. package/sites/portfolio/components/pv-cta.jxn +62 -0
  157. package/sites/portfolio/components/pv-feature.jxn +28 -0
  158. package/sites/portfolio/components/pv-footer.jxn +113 -0
  159. package/sites/portfolio/components/pv-gallery.jxn +40 -0
  160. package/sites/portfolio/components/pv-hero.jxn +109 -0
  161. package/sites/portfolio/components/pv-nav.jxn +76 -0
  162. package/sites/portfolio/components/pv-project-card.jxn +118 -0
  163. package/sites/portfolio/components/pv-project-grid.jxn +29 -0
  164. package/sites/portfolio/components/pv-section-header.jxn +65 -0
  165. package/sites/portfolio/document.schema.json +11 -2
  166. package/sites/portfolio/layouts/base.jxn +12 -0
  167. package/sites/portfolio/package.json +3 -3
  168. package/sites/portfolio/pages/[slug].jxn +177 -0
  169. package/sites/portfolio/project.jxn +1 -1
  170. package/sites/professional-firm/components/pf-article-header.jxn +60 -0
  171. package/sites/professional-firm/components/pf-contact-form.jxn +74 -0
  172. package/sites/professional-firm/components/pf-contact-info.jxn +101 -0
  173. package/sites/professional-firm/components/pf-cta.jxn +63 -0
  174. package/sites/professional-firm/components/pf-feature.jxn +32 -0
  175. package/sites/professional-firm/components/pf-footer.jxn +171 -0
  176. package/sites/professional-firm/components/pf-hero.jxn +139 -0
  177. package/sites/professional-firm/components/pf-insight-row.jxn +111 -0
  178. package/sites/professional-firm/components/pf-intro.jxn +68 -0
  179. package/sites/professional-firm/components/pf-logo-bar.jxn +90 -0
  180. package/sites/professional-firm/components/pf-nav.jxn +93 -0
  181. package/sites/professional-firm/components/pf-section-header.jxn +53 -0
  182. package/sites/professional-firm/components/pf-service-row.jxn +67 -0
  183. package/sites/professional-firm/components/pf-statband.jxn +135 -0
  184. package/sites/professional-firm/components/pf-team-member.jxn +53 -0
  185. package/sites/professional-firm/document.schema.json +11 -2
  186. package/sites/professional-firm/layouts/article.jxn +88 -0
  187. package/sites/professional-firm/layouts/base.jxn +12 -0
  188. package/sites/professional-firm/package.json +3 -3
  189. package/sites/professional-firm/pages/insights/[slug].jxn +106 -0
  190. package/sites/professional-firm/project.jxn +1 -1
  191. package/sites/real-estate/components/re-agent-band.jxn +165 -0
  192. package/sites/real-estate/components/re-agent-card.jxn +78 -0
  193. package/sites/real-estate/components/re-contact-form.jxn +119 -0
  194. package/sites/real-estate/components/re-cta.jxn +98 -0
  195. package/sites/real-estate/components/re-detail-row.jxn +18 -0
  196. package/sites/real-estate/components/re-feature.jxn +41 -0
  197. package/sites/real-estate/components/re-footer.jxn +219 -0
  198. package/sites/real-estate/components/re-hero.jxn +367 -0
  199. package/sites/real-estate/components/re-intro.jxn +43 -0
  200. package/sites/real-estate/components/re-listing-card.jxn +210 -0
  201. package/sites/real-estate/components/re-listings-filter.jxn +371 -0
  202. package/sites/real-estate/components/re-nav.jxn +162 -0
  203. package/sites/real-estate/components/re-neighborhood.jxn +101 -0
  204. package/sites/real-estate/components/re-section-header.jxn +55 -0
  205. package/sites/real-estate/components/re-stat.jxn +26 -0
  206. package/sites/real-estate/components/re-step.jxn +42 -0
  207. package/sites/real-estate/components/re-testimonial.jxn +66 -0
  208. package/sites/real-estate/document.schema.json +11 -2
  209. package/sites/real-estate/layouts/base.jxn +17 -0
  210. package/sites/real-estate/package.json +3 -3
  211. package/sites/real-estate/pages/[slug].jxn +452 -0
  212. package/sites/real-estate/project.jxn +1 -1
  213. package/sites/restaurant/components/bit-cta.jxn +105 -0
  214. package/sites/restaurant/components/bit-feature.jxn +38 -0
  215. package/sites/restaurant/components/bit-footer.jxn +142 -0
  216. package/sites/restaurant/components/bit-gallery.jxn +50 -0
  217. package/sites/restaurant/components/bit-hero.jxn +194 -0
  218. package/sites/restaurant/components/bit-hours.jxn +145 -0
  219. package/sites/restaurant/components/bit-intro.jxn +75 -0
  220. package/sites/restaurant/components/bit-menu-group.jxn +51 -0
  221. package/sites/restaurant/components/bit-menu-item.jxn +50 -0
  222. package/sites/restaurant/components/bit-nav.jxn +145 -0
  223. package/sites/restaurant/components/bit-reservation.jxn +90 -0
  224. package/sites/restaurant/components/bit-review.jxn +54 -0
  225. package/sites/restaurant/components/bit-section-header.jxn +73 -0
  226. package/sites/restaurant/document.schema.json +11 -2
  227. package/sites/restaurant/layouts/base.jxn +17 -0
  228. package/sites/restaurant/package.json +3 -3
  229. package/sites/restaurant/project.jxn +1 -1
  230. package/sites/saas/components/sa-check-item.jxn +25 -0
  231. package/sites/saas/components/sa-contact-form.jxn +94 -0
  232. package/sites/saas/components/sa-cta.jxn +68 -0
  233. package/sites/saas/components/sa-faq.jxn +347 -0
  234. package/sites/saas/components/sa-feature-card.jxn +57 -0
  235. package/sites/saas/components/sa-feature-split.jxn +43 -0
  236. package/sites/saas/components/sa-footer.jxn +106 -0
  237. package/sites/saas/components/sa-hero.jxn +217 -0
  238. package/sites/saas/components/sa-logo-cloud.jxn +98 -0
  239. package/sites/saas/components/sa-nav.jxn +108 -0
  240. package/sites/saas/components/sa-pricing.jxn +317 -0
  241. package/sites/saas/components/sa-section-header.jxn +43 -0
  242. package/sites/saas/components/sa-stat.jxn +32 -0
  243. package/sites/saas/components/sa-testimonial-card.jxn +37 -0
  244. package/sites/saas/document.schema.json +11 -2
  245. package/sites/saas/layouts/base.jxn +17 -0
  246. package/sites/saas/package.json +3 -3
  247. package/sites/saas/project.jxn +1 -1
  248. package/sites/shop/components/shp-badge.jxn +17 -0
  249. package/sites/shop/components/shp-category-tile.jxn +79 -0
  250. package/sites/shop/components/shp-contact-form.jxn +84 -0
  251. package/sites/shop/components/shp-cta.jxn +85 -0
  252. package/sites/shop/components/shp-feature.jxn +44 -0
  253. package/sites/shop/components/shp-footer.jxn +311 -0
  254. package/sites/shop/components/shp-hero.jxn +311 -0
  255. package/sites/shop/components/shp-intro.jxn +42 -0
  256. package/sites/shop/components/shp-nav.jxn +273 -0
  257. package/sites/shop/components/shp-newsletter.jxn +119 -0
  258. package/sites/shop/components/shp-product-card.jxn +187 -0
  259. package/sites/shop/components/shp-product-filter.jxn +263 -0
  260. package/sites/shop/components/shp-review.jxn +38 -0
  261. package/sites/shop/components/shp-section-header.jxn +61 -0
  262. package/sites/shop/components/shp-service.jxn +58 -0
  263. package/sites/shop/components/shp-stat.jxn +27 -0
  264. package/sites/shop/components/shp-trust.jxn +39 -0
  265. package/sites/shop/components/shp-visit-info.jxn +82 -0
  266. package/sites/shop/document.schema.json +11 -2
  267. package/sites/shop/layouts/base.jxn +17 -0
  268. package/sites/shop/package.json +3 -3
  269. package/sites/shop/pages/products/[sku].jxn +351 -0
  270. package/sites/shop/project.jxn +1 -1
  271. package/sites/blog/components/bl-author-bio.json +0 -86
  272. package/sites/blog/components/bl-contact-form.json +0 -114
  273. package/sites/blog/components/bl-contact-info.json +0 -54
  274. package/sites/blog/components/bl-cta.json +0 -68
  275. package/sites/blog/components/bl-footer.json +0 -122
  276. package/sites/blog/components/bl-masthead.json +0 -134
  277. package/sites/blog/components/bl-nav.json +0 -90
  278. package/sites/blog/components/bl-newsletter-cta.json +0 -134
  279. package/sites/blog/components/bl-post-card.json +0 -132
  280. package/sites/blog/components/bl-post-list.json +0 -10
  281. package/sites/blog/components/bl-prose.json +0 -89
  282. package/sites/blog/components/bl-section-header.json +0 -70
  283. package/sites/blog/components/bl-tag-pill.json +0 -29
  284. package/sites/blog/layouts/base.json +0 -22
  285. package/sites/blog/layouts/post.json +0 -15
  286. package/sites/blog/pages/[slug].json +0 -148
  287. package/sites/course/components/co-application.json +0 -225
  288. package/sites/course/components/co-cohort.json +0 -172
  289. package/sites/course/components/co-cta.json +0 -126
  290. package/sites/course/components/co-curriculum-accordion.json +0 -1476
  291. package/sites/course/components/co-faq.json +0 -524
  292. package/sites/course/components/co-footer.json +0 -195
  293. package/sites/course/components/co-hero.json +0 -475
  294. package/sites/course/components/co-instructor-card.json +0 -159
  295. package/sites/course/components/co-mentor.json +0 -65
  296. package/sites/course/components/co-module-card.json +0 -138
  297. package/sites/course/components/co-nav.json +0 -244
  298. package/sites/course/components/co-outcome-card.json +0 -84
  299. package/sites/course/components/co-outcomes.json +0 -248
  300. package/sites/course/components/co-pricing.json +0 -178
  301. package/sites/course/components/co-section-header.json +0 -74
  302. package/sites/course/components/co-testimonial-card.json +0 -109
  303. package/sites/course/layouts/base.json +0 -22
  304. package/sites/event/components/ev-agenda-tabs.json +0 -828
  305. package/sites/event/components/ev-cta.json +0 -126
  306. package/sites/event/components/ev-feature.json +0 -62
  307. package/sites/event/components/ev-footer.json +0 -197
  308. package/sites/event/components/ev-hero.json +0 -431
  309. package/sites/event/components/ev-nav.json +0 -186
  310. package/sites/event/components/ev-reason.json +0 -64
  311. package/sites/event/components/ev-savedate.json +0 -331
  312. package/sites/event/components/ev-section-header.json +0 -70
  313. package/sites/event/components/ev-session-row.json +0 -132
  314. package/sites/event/components/ev-speaker-card.json +0 -130
  315. package/sites/event/components/ev-sponsors.json +0 -131
  316. package/sites/event/components/ev-stat.json +0 -47
  317. package/sites/event/components/ev-ticket-card.json +0 -214
  318. package/sites/event/components/ev-venue.json +0 -86
  319. package/sites/event/layouts/base.json +0 -22
  320. package/sites/fitness-studio/components/fs-band.json +0 -149
  321. package/sites/fitness-studio/components/fs-booking.json +0 -147
  322. package/sites/fitness-studio/components/fs-class-card.json +0 -143
  323. package/sites/fitness-studio/components/fs-class-grid.json +0 -36
  324. package/sites/fitness-studio/components/fs-cta.json +0 -106
  325. package/sites/fitness-studio/components/fs-feature.json +0 -56
  326. package/sites/fitness-studio/components/fs-footer.json +0 -178
  327. package/sites/fitness-studio/components/fs-hero.json +0 -375
  328. package/sites/fitness-studio/components/fs-hours.json +0 -109
  329. package/sites/fitness-studio/components/fs-instructor-card.json +0 -136
  330. package/sites/fitness-studio/components/fs-intro.json +0 -294
  331. package/sites/fitness-studio/components/fs-modality.json +0 -171
  332. package/sites/fitness-studio/components/fs-nav.json +0 -128
  333. package/sites/fitness-studio/components/fs-pricing-card.json +0 -243
  334. package/sites/fitness-studio/components/fs-pricing-table.json +0 -458
  335. package/sites/fitness-studio/components/fs-review.json +0 -88
  336. package/sites/fitness-studio/components/fs-schedule.json +0 -1165
  337. package/sites/fitness-studio/components/fs-section-header.json +0 -77
  338. package/sites/fitness-studio/layouts/base.json +0 -22
  339. package/sites/home-services/components/hs-callbar.json +0 -72
  340. package/sites/home-services/components/hs-cta.json +0 -184
  341. package/sites/home-services/components/hs-feature.json +0 -62
  342. package/sites/home-services/components/hs-footer.json +0 -232
  343. package/sites/home-services/components/hs-gallery.json +0 -104
  344. package/sites/home-services/components/hs-hero.json +0 -446
  345. package/sites/home-services/components/hs-intro.json +0 -122
  346. package/sites/home-services/components/hs-nav.json +0 -278
  347. package/sites/home-services/components/hs-reservation.json +0 -225
  348. package/sites/home-services/components/hs-review.json +0 -114
  349. package/sites/home-services/components/hs-section-header.json +0 -70
  350. package/sites/home-services/components/hs-service-card.json +0 -89
  351. package/sites/home-services/components/hs-stat.json +0 -54
  352. package/sites/home-services/components/hs-step.json +0 -80
  353. package/sites/home-services/components/hs-trust-bar.json +0 -256
  354. package/sites/home-services/layouts/base.json +0 -24
  355. package/sites/museum/components/mu-band.json +0 -92
  356. package/sites/museum/components/mu-cta.json +0 -101
  357. package/sites/museum/components/mu-exhibition-card.json +0 -191
  358. package/sites/museum/components/mu-exhibition-row.json +0 -237
  359. package/sites/museum/components/mu-fact.json +0 -64
  360. package/sites/museum/components/mu-footer.json +0 -256
  361. package/sites/museum/components/mu-hero.json +0 -236
  362. package/sites/museum/components/mu-more.json +0 -63
  363. package/sites/museum/components/mu-oculus.json +0 -44
  364. package/sites/museum/components/mu-pagehead.json +0 -105
  365. package/sites/museum/components/mu-quote.json +0 -49
  366. package/sites/museum/layouts/ar.json +0 -29
  367. package/sites/museum/layouts/base.json +0 -329
  368. package/sites/museum/layouts/fr-ca.json +0 -28
  369. package/sites/museum/pages/about.json +0 -378
  370. package/sites/museum/pages/ar/about.json +0 -314
  371. package/sites/museum/pages/ar/exhibitions/[slug].json +0 -211
  372. package/sites/museum/pages/ar/exhibitions/index.json +0 -103
  373. package/sites/museum/pages/ar/index.json +0 -246
  374. package/sites/museum/pages/ar/visit.json +0 -327
  375. package/sites/museum/pages/exhibitions/[slug].json +0 -200
  376. package/sites/museum/pages/exhibitions/index.json +0 -93
  377. package/sites/museum/pages/fr-ca/a-propos.json +0 -313
  378. package/sites/museum/pages/fr-ca/expositions/[slug].json +0 -215
  379. package/sites/museum/pages/fr-ca/expositions/index.json +0 -104
  380. package/sites/museum/pages/fr-ca/index.json +0 -246
  381. package/sites/museum/pages/fr-ca/visite.json +0 -328
  382. package/sites/museum/pages/index.json +0 -236
  383. package/sites/museum/pages/visit.json +0 -317
  384. package/sites/nonprofit/components/np-contact-form.json +0 -162
  385. package/sites/nonprofit/components/np-contact-info.json +0 -159
  386. package/sites/nonprofit/components/np-cta.json +0 -203
  387. package/sites/nonprofit/components/np-donate-tier.json +0 -116
  388. package/sites/nonprofit/components/np-feature.json +0 -57
  389. package/sites/nonprofit/components/np-footer.json +0 -257
  390. package/sites/nonprofit/components/np-hero.json +0 -360
  391. package/sites/nonprofit/components/np-impact-band.json +0 -108
  392. package/sites/nonprofit/components/np-intro.json +0 -166
  393. package/sites/nonprofit/components/np-nav.json +0 -216
  394. package/sites/nonprofit/components/np-program-card.json +0 -129
  395. package/sites/nonprofit/components/np-section-header.json +0 -79
  396. package/sites/nonprofit/components/np-stat.json +0 -69
  397. package/sites/nonprofit/components/np-step.json +0 -84
  398. package/sites/nonprofit/components/np-team-member.json +0 -74
  399. package/sites/nonprofit/components/np-testimonial.json +0 -169
  400. package/sites/nonprofit/layouts/base.json +0 -22
  401. package/sites/portfolio/components/pv-about-split.json +0 -71
  402. package/sites/portfolio/components/pv-category-pill.json +0 -25
  403. package/sites/portfolio/components/pv-contact-form.json +0 -126
  404. package/sites/portfolio/components/pv-cta.json +0 -80
  405. package/sites/portfolio/components/pv-feature.json +0 -48
  406. package/sites/portfolio/components/pv-footer.json +0 -167
  407. package/sites/portfolio/components/pv-gallery.json +0 -50
  408. package/sites/portfolio/components/pv-hero.json +0 -139
  409. package/sites/portfolio/components/pv-nav.json +0 -100
  410. package/sites/portfolio/components/pv-project-card.json +0 -160
  411. package/sites/portfolio/components/pv-project-grid.json +0 -30
  412. package/sites/portfolio/components/pv-section-header.json +0 -90
  413. package/sites/portfolio/layouts/base.json +0 -22
  414. package/sites/portfolio/pages/[slug].json +0 -260
  415. package/sites/professional-firm/components/pf-article-header.json +0 -93
  416. package/sites/professional-firm/components/pf-contact-form.json +0 -146
  417. package/sites/professional-firm/components/pf-contact-info.json +0 -147
  418. package/sites/professional-firm/components/pf-cta.json +0 -86
  419. package/sites/professional-firm/components/pf-feature.json +0 -52
  420. package/sites/professional-firm/components/pf-footer.json +0 -231
  421. package/sites/professional-firm/components/pf-hero.json +0 -174
  422. package/sites/professional-firm/components/pf-insight-row.json +0 -144
  423. package/sites/professional-firm/components/pf-intro.json +0 -93
  424. package/sites/professional-firm/components/pf-logo-bar.json +0 -113
  425. package/sites/professional-firm/components/pf-nav.json +0 -135
  426. package/sites/professional-firm/components/pf-section-header.json +0 -77
  427. package/sites/professional-firm/components/pf-service-row.json +0 -104
  428. package/sites/professional-firm/components/pf-statband.json +0 -183
  429. package/sites/professional-firm/components/pf-team-member.json +0 -75
  430. package/sites/professional-firm/layouts/article.json +0 -130
  431. package/sites/professional-firm/layouts/base.json +0 -22
  432. package/sites/professional-firm/pages/insights/[slug].json +0 -129
  433. package/sites/real-estate/components/re-agent-band.json +0 -240
  434. package/sites/real-estate/components/re-agent-card.json +0 -93
  435. package/sites/real-estate/components/re-contact-form.json +0 -181
  436. package/sites/real-estate/components/re-cta.json +0 -128
  437. package/sites/real-estate/components/re-detail-row.json +0 -26
  438. package/sites/real-estate/components/re-feature.json +0 -57
  439. package/sites/real-estate/components/re-footer.json +0 -291
  440. package/sites/real-estate/components/re-hero.json +0 -536
  441. package/sites/real-estate/components/re-intro.json +0 -60
  442. package/sites/real-estate/components/re-listing-card.json +0 -286
  443. package/sites/real-estate/components/re-listings-filter.json +0 -454
  444. package/sites/real-estate/components/re-nav.json +0 -216
  445. package/sites/real-estate/components/re-neighborhood.json +0 -135
  446. package/sites/real-estate/components/re-section-header.json +0 -69
  447. package/sites/real-estate/components/re-stat.json +0 -37
  448. package/sites/real-estate/components/re-step.json +0 -58
  449. package/sites/real-estate/components/re-testimonial.json +0 -91
  450. package/sites/real-estate/layouts/base.json +0 -22
  451. package/sites/real-estate/pages/[slug].json +0 -629
  452. package/sites/restaurant/components/bit-cta.json +0 -140
  453. package/sites/restaurant/components/bit-feature.json +0 -61
  454. package/sites/restaurant/components/bit-footer.json +0 -191
  455. package/sites/restaurant/components/bit-gallery.json +0 -74
  456. package/sites/restaurant/components/bit-hero.json +0 -253
  457. package/sites/restaurant/components/bit-hours.json +0 -183
  458. package/sites/restaurant/components/bit-intro.json +0 -96
  459. package/sites/restaurant/components/bit-menu-group.json +0 -74
  460. package/sites/restaurant/components/bit-menu-item.json +0 -72
  461. package/sites/restaurant/components/bit-nav.json +0 -214
  462. package/sites/restaurant/components/bit-reservation.json +0 -155
  463. package/sites/restaurant/components/bit-review.json +0 -84
  464. package/sites/restaurant/components/bit-section-header.json +0 -98
  465. package/sites/restaurant/layouts/base.json +0 -22
  466. package/sites/saas/components/sa-check-item.json +0 -40
  467. package/sites/saas/components/sa-contact-form.json +0 -153
  468. package/sites/saas/components/sa-cta.json +0 -102
  469. package/sites/saas/components/sa-faq.json +0 -413
  470. package/sites/saas/components/sa-feature-card.json +0 -69
  471. package/sites/saas/components/sa-feature-split.json +0 -60
  472. package/sites/saas/components/sa-footer.json +0 -145
  473. package/sites/saas/components/sa-hero.json +0 -277
  474. package/sites/saas/components/sa-logo-cloud.json +0 -119
  475. package/sites/saas/components/sa-nav.json +0 -138
  476. package/sites/saas/components/sa-pricing.json +0 -428
  477. package/sites/saas/components/sa-section-header.json +0 -55
  478. package/sites/saas/components/sa-stat.json +0 -44
  479. package/sites/saas/components/sa-testimonial-card.json +0 -57
  480. package/sites/saas/layouts/base.json +0 -22
  481. package/sites/shop/components/shp-badge.json +0 -18
  482. package/sites/shop/components/shp-category-tile.json +0 -104
  483. package/sites/shop/components/shp-contact-form.json +0 -156
  484. package/sites/shop/components/shp-cta.json +0 -121
  485. package/sites/shop/components/shp-feature.json +0 -60
  486. package/sites/shop/components/shp-footer.json +0 -411
  487. package/sites/shop/components/shp-hero.json +0 -395
  488. package/sites/shop/components/shp-intro.json +0 -59
  489. package/sites/shop/components/shp-nav.json +0 -358
  490. package/sites/shop/components/shp-newsletter.json +0 -166
  491. package/sites/shop/components/shp-product-card.json +0 -238
  492. package/sites/shop/components/shp-product-filter.json +0 -366
  493. package/sites/shop/components/shp-review.json +0 -54
  494. package/sites/shop/components/shp-section-header.json +0 -75
  495. package/sites/shop/components/shp-service.json +0 -83
  496. package/sites/shop/components/shp-stat.json +0 -37
  497. package/sites/shop/components/shp-trust.json +0 -58
  498. package/sites/shop/components/shp-visit-info.json +0 -132
  499. package/sites/shop/layouts/base.json +0 -22
  500. package/sites/shop/pages/products/[sku].json +0 -482
@@ -0,0 +1,311 @@
1
+ /- kdl-version 2
2
+
3
+ shp-hero {
4
+ state {
5
+ eyebrow "Featured build"
6
+ heading ""
7
+ subheading ""
8
+ price ""
9
+ oldPrice ""
10
+ badge ""
11
+ rating "4.9"
12
+ cta "Add to cart"
13
+ ctaHref "/products/"
14
+ cta2 "Shop all bikes"
15
+ cta2Href "/products/"
16
+ imageAlt "Featured bike"
17
+ image type=string format=image default=""
18
+ }
19
+ style {
20
+ display block
21
+ position relative
22
+ overflow hidden
23
+ borderBottom "1px solid var(--color-border)"
24
+ backgroundColor "var(--color-bg-cream)"
25
+ backgroundImage "radial-gradient(circle at 82% 12%, rgba(38,208,124,0.16), transparent 46%), radial-gradient(circle at 8% 90%, rgba(13,17,23,0.05), transparent 40%)"
26
+ }
27
+ div {
28
+ style {
29
+ position absolute
30
+ inset "0"
31
+ backgroundImage "radial-gradient(circle, rgba(13,17,23,0.05) 1px, transparent 1px)"
32
+ backgroundSize "26px 26px"
33
+ opacity "0.5"
34
+ pointerEvents none
35
+ }
36
+ }
37
+ div {
38
+ style {
39
+ position relative
40
+ zIndex "2"
41
+ maxWidth "var(--max-width)"
42
+ margin "0 auto"
43
+ padding "clamp(2.75rem, 6vw, 5rem) 1.5rem clamp(3rem, 6vw, 5.5rem)"
44
+ display grid
45
+ gridTemplateColumns "1.02fr 0.98fr"
46
+ gap "clamp(2rem, 5vw, 4rem)"
47
+ alignItems center
48
+ @--md gridTemplateColumns="1fr" gap="2.5rem"
49
+ }
50
+ div {
51
+ p {
52
+ style {
53
+ display inline-flex
54
+ alignItems center
55
+ gap "0.5rem"
56
+ padding "0.38rem 0.85rem 0.38rem 0.7rem"
57
+ borderRadius "999px"
58
+ backgroundColor "var(--color-ink)"
59
+ color "var(--color-text-white)"
60
+ fontSize "0.72rem"
61
+ fontWeight "700"
62
+ textTransform uppercase
63
+ letterSpacing "0.12em"
64
+ margin "0 0 1.5rem"
65
+ }
66
+ span {
67
+ style {
68
+ width "0.45rem"
69
+ height "0.45rem"
70
+ borderRadius "999px"
71
+ backgroundColor "var(--color-brand-bright)"
72
+ }
73
+ }
74
+ span "${state.eyebrow}"
75
+ }
76
+ h1 "${state.heading}" {
77
+ style {
78
+ fontFamily "var(--font-heading)"
79
+ fontSize "clamp(2.7rem, 6vw, 4.6rem)"
80
+ fontWeight "800"
81
+ lineHeight "0.98"
82
+ letterSpacing "-0.035em"
83
+ margin "0 0 1.25rem"
84
+ color "var(--color-text-primary)"
85
+ maxWidth "13ch"
86
+ }
87
+ }
88
+ p "${state.subheading}" {
89
+ style {
90
+ fontSize "clamp(1.05rem, 1.6vw, 1.22rem)"
91
+ lineHeight "1.6"
92
+ color "var(--color-text-secondary)"
93
+ margin "0 0 1.85rem"
94
+ maxWidth "44ch"
95
+ }
96
+ }
97
+ div {
98
+ style {
99
+ display flex
100
+ alignItems baseline
101
+ gap "0.85rem"
102
+ marginBottom "1.75rem"
103
+ flexWrap wrap
104
+ }
105
+ span "${state.price}" {
106
+ style {
107
+ fontFamily "var(--font-heading)"
108
+ fontSize "clamp(2rem, 3.5vw, 2.7rem)"
109
+ fontWeight "800"
110
+ letterSpacing "-0.02em"
111
+ color "var(--color-text-primary)"
112
+ fontVariantNumeric tabular-nums
113
+ }
114
+ }
115
+ span "${state.oldPrice}" {
116
+ style {
117
+ display "${state.oldPrice ? 'inline' : 'none'}"
118
+ fontSize "1.25rem"
119
+ fontWeight "600"
120
+ color "var(--color-text-muted)"
121
+ textDecoration line-through
122
+ fontVariantNumeric tabular-nums
123
+ }
124
+ }
125
+ span {
126
+ style {
127
+ display inline-flex
128
+ alignItems center
129
+ gap "0.35rem"
130
+ padding "0.3rem 0.7rem"
131
+ borderRadius "999px"
132
+ backgroundColor "var(--color-gold-tint)"
133
+ color "var(--color-gold)"
134
+ fontSize "0.75rem"
135
+ fontWeight "800"
136
+ textTransform uppercase
137
+ letterSpacing "0.05em"
138
+ }
139
+ span "★ "
140
+ span "${state.rating} rider rating"
141
+ }
142
+ }
143
+ div {
144
+ style display=flex gap="0.75rem" flexWrap=wrap
145
+ a href="${state.ctaHref}" {
146
+ style {
147
+ display inline-flex
148
+ alignItems center
149
+ gap "0.5rem"
150
+ backgroundColor "var(--color-primary)"
151
+ color "var(--color-text-white)"
152
+ padding "0.95rem 2rem"
153
+ borderRadius "999px"
154
+ fontSize "1.02rem"
155
+ fontWeight "700"
156
+ textDecoration none
157
+ boxShadow "0 14px 30px -12px rgba(10,157,84,0.75)"
158
+ transition "transform 0.15s, background-color 0.15s"
159
+ :hover {
160
+ backgroundColor "var(--color-primary-hover)"
161
+ transform "translateY(-2px)"
162
+ }
163
+ }
164
+ span "${state.cta}"
165
+ span →
166
+ }
167
+ a href="${state.cta2Href}" "${state.cta2}" {
168
+ style {
169
+ display "${state.cta2 ? 'inline-flex' : 'none'}"
170
+ alignItems center
171
+ border "1px solid var(--color-line-strong)"
172
+ backgroundColor "var(--color-bg-white)"
173
+ color "var(--color-text-primary)"
174
+ padding "0.95rem 1.75rem"
175
+ borderRadius "999px"
176
+ fontSize "1.02rem"
177
+ fontWeight "700"
178
+ textDecoration none
179
+ transition "border-color 0.15s"
180
+ :hover borderColor="var(--color-primary)"
181
+ }
182
+ }
183
+ }
184
+ div {
185
+ style {
186
+ display flex
187
+ alignItems center
188
+ gap "1.25rem"
189
+ marginTop "1.75rem"
190
+ flexWrap wrap
191
+ fontSize "0.86rem"
192
+ fontWeight "600"
193
+ color "var(--color-text-muted)"
194
+ }
195
+ span {
196
+ style display=inline-flex alignItems=center gap="0.4rem"
197
+ span ✓ {
198
+ style color="var(--color-primary)"
199
+ }
200
+ span "Free shipping over $50"
201
+ }
202
+ span {
203
+ style display=inline-flex alignItems=center gap="0.4rem"
204
+ span ✓ {
205
+ style color="var(--color-primary)"
206
+ }
207
+ span "Fitted in-store, ready to ride"
208
+ }
209
+ }
210
+ }
211
+ div {
212
+ style position=relative
213
+ div {
214
+ style {
215
+ position absolute
216
+ inset "8% -4% -6% 10%"
217
+ borderRadius "var(--radius-lg)"
218
+ background "linear-gradient(150deg, var(--color-brand-bright), var(--color-primary))"
219
+ opacity "0.16"
220
+ filter "blur(6px)"
221
+ }
222
+ }
223
+ div {
224
+ style {
225
+ position relative
226
+ borderRadius "var(--radius-lg)"
227
+ overflow hidden
228
+ backgroundColor "var(--color-bg-white)"
229
+ border "1px solid var(--color-border)"
230
+ boxShadow "var(--shadow-float)"
231
+ }
232
+ div {
233
+ style position=relative aspectRatio="4 / 3" backgroundColor="var(--color-panel)"
234
+ img src="${state.image}" alt="${state.imageAlt}" loading=eager {
235
+ style {
236
+ position absolute
237
+ inset "0"
238
+ width "100%"
239
+ height "100%"
240
+ objectFit cover
241
+ display block
242
+ }
243
+ }
244
+ span {
245
+ style {
246
+ display "${state.badge ? 'inline-flex' : 'none'}"
247
+ position absolute
248
+ top "1rem"
249
+ left "1rem"
250
+ alignItems center
251
+ gap "0.35rem"
252
+ padding "0.4rem 0.8rem"
253
+ borderRadius "999px"
254
+ backgroundColor "var(--color-gold)"
255
+ color "var(--color-text-white)"
256
+ fontSize "0.74rem"
257
+ fontWeight "800"
258
+ textTransform uppercase
259
+ letterSpacing "0.06em"
260
+ boxShadow "0 8px 20px -8px rgba(232,137,12,0.7)"
261
+ }
262
+ span "★ "
263
+ span "${state.badge}"
264
+ }
265
+ }
266
+ div {
267
+ style {
268
+ display flex
269
+ alignItems center
270
+ justifyContent space-between
271
+ gap "1rem"
272
+ padding "1.15rem 1.35rem"
273
+ }
274
+ div {
275
+ div "In stock now" {
276
+ style {
277
+ fontSize "0.72rem"
278
+ fontWeight "700"
279
+ textTransform uppercase
280
+ letterSpacing "0.1em"
281
+ color "var(--color-primary)"
282
+ }
283
+ }
284
+ div "Ships assembled" {
285
+ style {
286
+ fontFamily "var(--font-heading)"
287
+ fontSize "1.15rem"
288
+ fontWeight "700"
289
+ color "var(--color-text-primary)"
290
+ marginTop "0.15rem"
291
+ }
292
+ }
293
+ }
294
+ span 🚲 {
295
+ style {
296
+ display inline-flex
297
+ alignItems center
298
+ justifyContent center
299
+ width "2.6rem"
300
+ height "2.6rem"
301
+ borderRadius "999px"
302
+ backgroundColor "var(--color-brand-tint)"
303
+ color "var(--color-primary)"
304
+ fontSize "1.2rem"
305
+ }
306
+ }
307
+ }
308
+ }
309
+ }
310
+ }
311
+ }
@@ -0,0 +1,42 @@
1
+ /- kdl-version 2
2
+
3
+ shp-intro {
4
+ state {
5
+ image type=string format=image default=""
6
+ imageAlt ""
7
+ reverse #false
8
+ }
9
+ style display=block padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"
10
+ div {
11
+ style {
12
+ maxWidth "var(--max-width)"
13
+ margin "0 auto"
14
+ display grid
15
+ gridTemplateColumns "1fr 1fr"
16
+ gap "clamp(2rem, 5vw, 4rem)"
17
+ alignItems center
18
+ @--md gridTemplateColumns="1fr"
19
+ }
20
+ div {
21
+ style order="${state.reverse ? '2' : '1'}"
22
+ img src="${state.image}" alt="${state.imageAlt}" loading=lazy {
23
+ style {
24
+ width "100%"
25
+ height auto
26
+ borderRadius "var(--radius)"
27
+ display block
28
+ boxShadow "0 12px 40px rgba(15,23,42,0.14)"
29
+ }
30
+ }
31
+ }
32
+ div {
33
+ style {
34
+ order "${state.reverse ? '1' : '2'}"
35
+ fontSize "1.08rem"
36
+ lineHeight "1.8"
37
+ color "var(--color-text-primary)"
38
+ }
39
+ slot
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,273 @@
1
+ /- kdl-version 2
2
+
3
+ shp-nav {
4
+ state brand=Cadence cartCount="2"
5
+ style display=block position=sticky top="0" zIndex="50"
6
+ div {
7
+ style backgroundColor="var(--color-bg-dark)" color="var(--color-text-white)"
8
+ div {
9
+ style {
10
+ maxWidth "var(--max-width)"
11
+ margin "0 auto"
12
+ padding "0.5rem 1.5rem"
13
+ display flex
14
+ alignItems center
15
+ justifyContent center
16
+ gap "1.4rem"
17
+ fontSize "0.72rem"
18
+ fontWeight "600"
19
+ textTransform uppercase
20
+ letterSpacing "0.14em"
21
+ }
22
+ span {
23
+ style {
24
+ display inline-flex
25
+ alignItems center
26
+ gap "0.5rem"
27
+ color "var(--color-brand-bright)"
28
+ }
29
+ span {
30
+ style {
31
+ width "0.42rem"
32
+ height "0.42rem"
33
+ borderRadius "999px"
34
+ backgroundColor "var(--color-brand-bright)"
35
+ boxShadow "0 0 0 3px rgba(38,208,124,0.22)"
36
+ }
37
+ }
38
+ span "Free shipping over $50"
39
+ }
40
+ span • {
41
+ style opacity="0.32" {
42
+ @--sm display=none
43
+ }
44
+ }
45
+ span "Free first tune-up on every new bike" {
46
+ style opacity="0.82" {
47
+ @--sm display=none
48
+ }
49
+ }
50
+ span • {
51
+ style opacity="0.32" {
52
+ @--md display=none
53
+ }
54
+ }
55
+ span "48-hour service turnaround" {
56
+ style opacity="0.82" {
57
+ @--md display=none
58
+ }
59
+ }
60
+ }
61
+ }
62
+ div {
63
+ style {
64
+ backgroundColor "rgba(255,255,255,0.92)"
65
+ backdropFilter "blur(12px)"
66
+ borderBottom "1px solid var(--color-border)"
67
+ }
68
+ div {
69
+ style {
70
+ maxWidth "var(--max-width)"
71
+ margin "0 auto"
72
+ padding "0.85rem 1.5rem"
73
+ display flex
74
+ alignItems center
75
+ gap "1.5rem"
76
+ }
77
+ a href="/" aria-label="Cadence Cycles home" {
78
+ style {
79
+ display inline-flex
80
+ alignItems center
81
+ gap "0.6rem"
82
+ textDecoration none
83
+ flexShrink "0"
84
+ }
85
+ span ◎ {
86
+ style {
87
+ display inline-flex
88
+ alignItems center
89
+ justifyContent center
90
+ width "2.15rem"
91
+ height "2.15rem"
92
+ borderRadius "0.6rem"
93
+ background "linear-gradient(150deg, var(--color-brand-bright), var(--color-primary))"
94
+ color "var(--color-text-white)"
95
+ fontSize "1.2rem"
96
+ fontWeight "800"
97
+ boxShadow "0 8px 18px -8px rgba(10,157,84,0.7)"
98
+ }
99
+ }
100
+ span {
101
+ style display=flex flexDirection=column lineHeight="1"
102
+ span "${state.brand}" {
103
+ style {
104
+ fontFamily "var(--font-heading)"
105
+ fontSize "1.28rem"
106
+ fontWeight "800"
107
+ letterSpacing "-0.03em"
108
+ color "var(--color-text-primary)"
109
+ }
110
+ }
111
+ span "Cycles Co." {
112
+ style {
113
+ fontSize "0.58rem"
114
+ fontWeight "700"
115
+ letterSpacing "0.28em"
116
+ textTransform uppercase
117
+ color "var(--color-primary)"
118
+ marginTop "0.24rem"
119
+ }
120
+ }
121
+ }
122
+ }
123
+ nav {
124
+ style display=flex alignItems=center gap="1.35rem" {
125
+ @--lg display=none
126
+ }
127
+ a href="/products/" Road {
128
+ style {
129
+ color "var(--color-text-secondary)"
130
+ textDecoration none
131
+ fontWeight "600"
132
+ fontSize "0.9rem"
133
+ transition "color 0.15s"
134
+ :hover color="var(--color-primary)"
135
+ }
136
+ }
137
+ a href="/products/" Mountain {
138
+ style {
139
+ color "var(--color-text-secondary)"
140
+ textDecoration none
141
+ fontWeight "600"
142
+ fontSize "0.9rem"
143
+ transition "color 0.15s"
144
+ :hover color="var(--color-primary)"
145
+ }
146
+ }
147
+ a href="/products/" Gravel {
148
+ style {
149
+ color "var(--color-text-secondary)"
150
+ textDecoration none
151
+ fontWeight "600"
152
+ fontSize "0.9rem"
153
+ transition "color 0.15s"
154
+ :hover color="var(--color-primary)"
155
+ }
156
+ }
157
+ a href="/products/" Kids {
158
+ style {
159
+ color "var(--color-text-secondary)"
160
+ textDecoration none
161
+ fontWeight "600"
162
+ fontSize "0.9rem"
163
+ transition "color 0.15s"
164
+ :hover color="var(--color-primary)"
165
+ }
166
+ }
167
+ a href="/products/" Sale {
168
+ style {
169
+ display inline-flex
170
+ alignItems center
171
+ gap "0.35rem"
172
+ color "var(--color-sale)"
173
+ textDecoration none
174
+ fontWeight "700"
175
+ fontSize "0.9rem"
176
+ transition "opacity 0.15s"
177
+ :hover opacity="0.75"
178
+ }
179
+ }
180
+ }
181
+ label {
182
+ style {
183
+ marginLeft auto
184
+ display flex
185
+ alignItems center
186
+ gap "0.55rem"
187
+ flex "0 1 320px"
188
+ padding "0 0.9rem"
189
+ height "2.5rem"
190
+ borderRadius "999px"
191
+ backgroundColor "var(--color-bg-cream)"
192
+ border "1px solid var(--color-border)"
193
+ transition "border-color 0.15s"
194
+ @--md display=none
195
+ :focus-within borderColor="var(--color-primary)"
196
+ }
197
+ span ⌕ {
198
+ style color="var(--color-text-muted)" fontSize="0.95rem"
199
+ }
200
+ input type=search name=q placeholder="Search bikes, gear…" aria-label="Search products" {
201
+ style {
202
+ flex "1"
203
+ minWidth "0"
204
+ border none
205
+ outline none
206
+ background transparent
207
+ fontFamily inherit
208
+ fontSize "0.9rem"
209
+ color "var(--color-text-primary)"
210
+ }
211
+ }
212
+ }
213
+ a href="/products/" aria-label="Search products" ⌕ {
214
+ style {
215
+ display none
216
+ marginLeft auto
217
+ alignItems center
218
+ justifyContent center
219
+ width "2.5rem"
220
+ height "2.5rem"
221
+ borderRadius "999px"
222
+ border "1px solid var(--color-border)"
223
+ color "var(--color-text-primary)"
224
+ textDecoration none
225
+ fontSize "1.05rem"
226
+ @--md display=inline-flex
227
+ }
228
+ }
229
+ a href="/contact/" aria-label="View cart" {
230
+ style {
231
+ position relative
232
+ display inline-flex
233
+ alignItems center
234
+ gap "0.55rem"
235
+ flexShrink "0"
236
+ padding "0.55rem 1.1rem 0.55rem 0.95rem"
237
+ borderRadius "999px"
238
+ backgroundColor "var(--color-ink)"
239
+ color "var(--color-text-white)"
240
+ textDecoration none
241
+ fontWeight "700"
242
+ fontSize "0.9rem"
243
+ transition "transform 0.15s, background-color 0.15s"
244
+ :hover transform="translateY(-1px)" backgroundColor="#000000"
245
+ }
246
+ span 🛒 {
247
+ style fontSize="1.1rem"
248
+ }
249
+ span Cart {
250
+ style {
251
+ @--sm display=none
252
+ }
253
+ }
254
+ span "${state.cartCount}" {
255
+ style {
256
+ display inline-flex
257
+ alignItems center
258
+ justifyContent center
259
+ minWidth "1.25rem"
260
+ height "1.25rem"
261
+ padding "0 0.35rem"
262
+ borderRadius "999px"
263
+ backgroundColor "var(--color-brand-bright)"
264
+ color "var(--color-ink)"
265
+ fontSize "0.72rem"
266
+ fontWeight "800"
267
+ fontVariantNumeric tabular-nums
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }