@jxsuite/starters 3.3.2 → 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 (513) 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 +86 -0
  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 +94 -0
  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 +114 -0
  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 +124 -0
  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 +113 -0
  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 +130 -0
  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 +99 -0
  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 +85 -0
  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 +94 -0
  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 +103 -0
  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 +93 -0
  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 +119 -0
  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 +100 -0
  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/blog/project.json +0 -140
  288. package/sites/course/components/co-application.json +0 -225
  289. package/sites/course/components/co-cohort.json +0 -172
  290. package/sites/course/components/co-cta.json +0 -126
  291. package/sites/course/components/co-curriculum-accordion.json +0 -1476
  292. package/sites/course/components/co-faq.json +0 -524
  293. package/sites/course/components/co-footer.json +0 -195
  294. package/sites/course/components/co-hero.json +0 -475
  295. package/sites/course/components/co-instructor-card.json +0 -159
  296. package/sites/course/components/co-mentor.json +0 -65
  297. package/sites/course/components/co-module-card.json +0 -138
  298. package/sites/course/components/co-nav.json +0 -244
  299. package/sites/course/components/co-outcome-card.json +0 -84
  300. package/sites/course/components/co-outcomes.json +0 -248
  301. package/sites/course/components/co-pricing.json +0 -178
  302. package/sites/course/components/co-section-header.json +0 -74
  303. package/sites/course/components/co-testimonial-card.json +0 -109
  304. package/sites/course/layouts/base.json +0 -22
  305. package/sites/course/project.json +0 -141
  306. package/sites/event/components/ev-agenda-tabs.json +0 -828
  307. package/sites/event/components/ev-cta.json +0 -126
  308. package/sites/event/components/ev-feature.json +0 -62
  309. package/sites/event/components/ev-footer.json +0 -197
  310. package/sites/event/components/ev-hero.json +0 -431
  311. package/sites/event/components/ev-nav.json +0 -186
  312. package/sites/event/components/ev-reason.json +0 -64
  313. package/sites/event/components/ev-savedate.json +0 -331
  314. package/sites/event/components/ev-section-header.json +0 -70
  315. package/sites/event/components/ev-session-row.json +0 -132
  316. package/sites/event/components/ev-speaker-card.json +0 -130
  317. package/sites/event/components/ev-sponsors.json +0 -131
  318. package/sites/event/components/ev-stat.json +0 -47
  319. package/sites/event/components/ev-ticket-card.json +0 -214
  320. package/sites/event/components/ev-venue.json +0 -86
  321. package/sites/event/layouts/base.json +0 -22
  322. package/sites/event/project.json +0 -163
  323. package/sites/fitness-studio/components/fs-band.json +0 -149
  324. package/sites/fitness-studio/components/fs-booking.json +0 -147
  325. package/sites/fitness-studio/components/fs-class-card.json +0 -143
  326. package/sites/fitness-studio/components/fs-class-grid.json +0 -36
  327. package/sites/fitness-studio/components/fs-cta.json +0 -106
  328. package/sites/fitness-studio/components/fs-feature.json +0 -56
  329. package/sites/fitness-studio/components/fs-footer.json +0 -178
  330. package/sites/fitness-studio/components/fs-hero.json +0 -375
  331. package/sites/fitness-studio/components/fs-hours.json +0 -109
  332. package/sites/fitness-studio/components/fs-instructor-card.json +0 -136
  333. package/sites/fitness-studio/components/fs-intro.json +0 -294
  334. package/sites/fitness-studio/components/fs-modality.json +0 -171
  335. package/sites/fitness-studio/components/fs-nav.json +0 -128
  336. package/sites/fitness-studio/components/fs-pricing-card.json +0 -243
  337. package/sites/fitness-studio/components/fs-pricing-table.json +0 -458
  338. package/sites/fitness-studio/components/fs-review.json +0 -88
  339. package/sites/fitness-studio/components/fs-schedule.json +0 -1165
  340. package/sites/fitness-studio/components/fs-section-header.json +0 -77
  341. package/sites/fitness-studio/layouts/base.json +0 -22
  342. package/sites/fitness-studio/project.json +0 -175
  343. package/sites/home-services/components/hs-callbar.json +0 -72
  344. package/sites/home-services/components/hs-cta.json +0 -184
  345. package/sites/home-services/components/hs-feature.json +0 -62
  346. package/sites/home-services/components/hs-footer.json +0 -232
  347. package/sites/home-services/components/hs-gallery.json +0 -104
  348. package/sites/home-services/components/hs-hero.json +0 -446
  349. package/sites/home-services/components/hs-intro.json +0 -122
  350. package/sites/home-services/components/hs-nav.json +0 -278
  351. package/sites/home-services/components/hs-reservation.json +0 -225
  352. package/sites/home-services/components/hs-review.json +0 -114
  353. package/sites/home-services/components/hs-section-header.json +0 -70
  354. package/sites/home-services/components/hs-service-card.json +0 -89
  355. package/sites/home-services/components/hs-stat.json +0 -54
  356. package/sites/home-services/components/hs-step.json +0 -80
  357. package/sites/home-services/components/hs-trust-bar.json +0 -256
  358. package/sites/home-services/layouts/base.json +0 -24
  359. package/sites/home-services/project.json +0 -160
  360. package/sites/museum/components/mu-band.json +0 -92
  361. package/sites/museum/components/mu-cta.json +0 -101
  362. package/sites/museum/components/mu-exhibition-card.json +0 -191
  363. package/sites/museum/components/mu-exhibition-row.json +0 -237
  364. package/sites/museum/components/mu-fact.json +0 -64
  365. package/sites/museum/components/mu-footer.json +0 -256
  366. package/sites/museum/components/mu-hero.json +0 -236
  367. package/sites/museum/components/mu-more.json +0 -63
  368. package/sites/museum/components/mu-oculus.json +0 -44
  369. package/sites/museum/components/mu-pagehead.json +0 -105
  370. package/sites/museum/components/mu-quote.json +0 -49
  371. package/sites/museum/layouts/ar.json +0 -29
  372. package/sites/museum/layouts/base.json +0 -329
  373. package/sites/museum/layouts/fr-ca.json +0 -28
  374. package/sites/museum/pages/about.json +0 -378
  375. package/sites/museum/pages/ar/about.json +0 -314
  376. package/sites/museum/pages/ar/exhibitions/[slug].json +0 -211
  377. package/sites/museum/pages/ar/exhibitions/index.json +0 -103
  378. package/sites/museum/pages/ar/index.json +0 -246
  379. package/sites/museum/pages/ar/visit.json +0 -327
  380. package/sites/museum/pages/exhibitions/[slug].json +0 -200
  381. package/sites/museum/pages/exhibitions/index.json +0 -93
  382. package/sites/museum/pages/fr-ca/a-propos.json +0 -313
  383. package/sites/museum/pages/fr-ca/expositions/[slug].json +0 -215
  384. package/sites/museum/pages/fr-ca/expositions/index.json +0 -104
  385. package/sites/museum/pages/fr-ca/index.json +0 -246
  386. package/sites/museum/pages/fr-ca/visite.json +0 -328
  387. package/sites/museum/pages/index.json +0 -236
  388. package/sites/museum/pages/visit.json +0 -317
  389. package/sites/museum/project.json +0 -179
  390. package/sites/nonprofit/components/np-contact-form.json +0 -162
  391. package/sites/nonprofit/components/np-contact-info.json +0 -159
  392. package/sites/nonprofit/components/np-cta.json +0 -203
  393. package/sites/nonprofit/components/np-donate-tier.json +0 -116
  394. package/sites/nonprofit/components/np-feature.json +0 -57
  395. package/sites/nonprofit/components/np-footer.json +0 -257
  396. package/sites/nonprofit/components/np-hero.json +0 -360
  397. package/sites/nonprofit/components/np-impact-band.json +0 -108
  398. package/sites/nonprofit/components/np-intro.json +0 -166
  399. package/sites/nonprofit/components/np-nav.json +0 -216
  400. package/sites/nonprofit/components/np-program-card.json +0 -129
  401. package/sites/nonprofit/components/np-section-header.json +0 -79
  402. package/sites/nonprofit/components/np-stat.json +0 -69
  403. package/sites/nonprofit/components/np-step.json +0 -84
  404. package/sites/nonprofit/components/np-team-member.json +0 -74
  405. package/sites/nonprofit/components/np-testimonial.json +0 -169
  406. package/sites/nonprofit/layouts/base.json +0 -22
  407. package/sites/nonprofit/project.json +0 -147
  408. package/sites/portfolio/components/pv-about-split.json +0 -71
  409. package/sites/portfolio/components/pv-category-pill.json +0 -25
  410. package/sites/portfolio/components/pv-contact-form.json +0 -126
  411. package/sites/portfolio/components/pv-cta.json +0 -80
  412. package/sites/portfolio/components/pv-feature.json +0 -48
  413. package/sites/portfolio/components/pv-footer.json +0 -167
  414. package/sites/portfolio/components/pv-gallery.json +0 -50
  415. package/sites/portfolio/components/pv-hero.json +0 -139
  416. package/sites/portfolio/components/pv-nav.json +0 -100
  417. package/sites/portfolio/components/pv-project-card.json +0 -160
  418. package/sites/portfolio/components/pv-project-grid.json +0 -30
  419. package/sites/portfolio/components/pv-section-header.json +0 -90
  420. package/sites/portfolio/layouts/base.json +0 -22
  421. package/sites/portfolio/pages/[slug].json +0 -260
  422. package/sites/portfolio/project.json +0 -137
  423. package/sites/professional-firm/components/pf-article-header.json +0 -93
  424. package/sites/professional-firm/components/pf-contact-form.json +0 -146
  425. package/sites/professional-firm/components/pf-contact-info.json +0 -147
  426. package/sites/professional-firm/components/pf-cta.json +0 -86
  427. package/sites/professional-firm/components/pf-feature.json +0 -52
  428. package/sites/professional-firm/components/pf-footer.json +0 -231
  429. package/sites/professional-firm/components/pf-hero.json +0 -174
  430. package/sites/professional-firm/components/pf-insight-row.json +0 -144
  431. package/sites/professional-firm/components/pf-intro.json +0 -93
  432. package/sites/professional-firm/components/pf-logo-bar.json +0 -113
  433. package/sites/professional-firm/components/pf-nav.json +0 -135
  434. package/sites/professional-firm/components/pf-section-header.json +0 -77
  435. package/sites/professional-firm/components/pf-service-row.json +0 -104
  436. package/sites/professional-firm/components/pf-statband.json +0 -183
  437. package/sites/professional-firm/components/pf-team-member.json +0 -75
  438. package/sites/professional-firm/layouts/article.json +0 -130
  439. package/sites/professional-firm/layouts/base.json +0 -22
  440. package/sites/professional-firm/pages/insights/[slug].json +0 -129
  441. package/sites/professional-firm/project.json +0 -145
  442. package/sites/real-estate/components/re-agent-band.json +0 -240
  443. package/sites/real-estate/components/re-agent-card.json +0 -93
  444. package/sites/real-estate/components/re-contact-form.json +0 -181
  445. package/sites/real-estate/components/re-cta.json +0 -128
  446. package/sites/real-estate/components/re-detail-row.json +0 -26
  447. package/sites/real-estate/components/re-feature.json +0 -57
  448. package/sites/real-estate/components/re-footer.json +0 -291
  449. package/sites/real-estate/components/re-hero.json +0 -536
  450. package/sites/real-estate/components/re-intro.json +0 -60
  451. package/sites/real-estate/components/re-listing-card.json +0 -286
  452. package/sites/real-estate/components/re-listings-filter.json +0 -454
  453. package/sites/real-estate/components/re-nav.json +0 -216
  454. package/sites/real-estate/components/re-neighborhood.json +0 -135
  455. package/sites/real-estate/components/re-section-header.json +0 -69
  456. package/sites/real-estate/components/re-stat.json +0 -37
  457. package/sites/real-estate/components/re-step.json +0 -58
  458. package/sites/real-estate/components/re-testimonial.json +0 -91
  459. package/sites/real-estate/layouts/base.json +0 -22
  460. package/sites/real-estate/pages/[slug].json +0 -629
  461. package/sites/real-estate/project.json +0 -163
  462. package/sites/restaurant/components/bit-cta.json +0 -140
  463. package/sites/restaurant/components/bit-feature.json +0 -61
  464. package/sites/restaurant/components/bit-footer.json +0 -191
  465. package/sites/restaurant/components/bit-gallery.json +0 -74
  466. package/sites/restaurant/components/bit-hero.json +0 -253
  467. package/sites/restaurant/components/bit-hours.json +0 -183
  468. package/sites/restaurant/components/bit-intro.json +0 -96
  469. package/sites/restaurant/components/bit-menu-group.json +0 -74
  470. package/sites/restaurant/components/bit-menu-item.json +0 -72
  471. package/sites/restaurant/components/bit-nav.json +0 -214
  472. package/sites/restaurant/components/bit-reservation.json +0 -155
  473. package/sites/restaurant/components/bit-review.json +0 -84
  474. package/sites/restaurant/components/bit-section-header.json +0 -98
  475. package/sites/restaurant/layouts/base.json +0 -22
  476. package/sites/restaurant/project.json +0 -145
  477. package/sites/saas/components/sa-check-item.json +0 -40
  478. package/sites/saas/components/sa-contact-form.json +0 -153
  479. package/sites/saas/components/sa-cta.json +0 -102
  480. package/sites/saas/components/sa-faq.json +0 -413
  481. package/sites/saas/components/sa-feature-card.json +0 -69
  482. package/sites/saas/components/sa-feature-split.json +0 -60
  483. package/sites/saas/components/sa-footer.json +0 -145
  484. package/sites/saas/components/sa-hero.json +0 -277
  485. package/sites/saas/components/sa-logo-cloud.json +0 -119
  486. package/sites/saas/components/sa-nav.json +0 -138
  487. package/sites/saas/components/sa-pricing.json +0 -428
  488. package/sites/saas/components/sa-section-header.json +0 -55
  489. package/sites/saas/components/sa-stat.json +0 -44
  490. package/sites/saas/components/sa-testimonial-card.json +0 -57
  491. package/sites/saas/layouts/base.json +0 -22
  492. package/sites/saas/project.json +0 -166
  493. package/sites/shop/components/shp-badge.json +0 -18
  494. package/sites/shop/components/shp-category-tile.json +0 -104
  495. package/sites/shop/components/shp-contact-form.json +0 -156
  496. package/sites/shop/components/shp-cta.json +0 -121
  497. package/sites/shop/components/shp-feature.json +0 -60
  498. package/sites/shop/components/shp-footer.json +0 -411
  499. package/sites/shop/components/shp-hero.json +0 -395
  500. package/sites/shop/components/shp-intro.json +0 -59
  501. package/sites/shop/components/shp-nav.json +0 -358
  502. package/sites/shop/components/shp-newsletter.json +0 -166
  503. package/sites/shop/components/shp-product-card.json +0 -238
  504. package/sites/shop/components/shp-product-filter.json +0 -366
  505. package/sites/shop/components/shp-review.json +0 -54
  506. package/sites/shop/components/shp-section-header.json +0 -75
  507. package/sites/shop/components/shp-service.json +0 -83
  508. package/sites/shop/components/shp-stat.json +0 -37
  509. package/sites/shop/components/shp-trust.json +0 -58
  510. package/sites/shop/components/shp-visit-info.json +0 -132
  511. package/sites/shop/layouts/base.json +0 -22
  512. package/sites/shop/pages/products/[sku].json +0 -482
  513. package/sites/shop/project.json +0 -156
@@ -0,0 +1,119 @@
1
+ /- kdl-version 2
2
+
3
+ fs-band {
4
+ state {
5
+ kicker ""
6
+ heading ""
7
+ text ""
8
+ cta ""
9
+ ctaHref "/contact/"
10
+ image type=string format=image default=""
11
+ }
12
+ style {
13
+ display flex
14
+ alignItems center
15
+ justifyContent center
16
+ position relative
17
+ overflow hidden
18
+ minHeight "clamp(360px, 58vh, 620px)"
19
+ padding "clamp(3.5rem, 8vw, 6rem) 1.5rem"
20
+ textAlign center
21
+ color "#ffffff"
22
+ backgroundColor "var(--duo-shadow)"
23
+ }
24
+ div {
25
+ style position=absolute inset="0" zIndex="0"
26
+ img src="${state.image}" alt="" width="1920" height="1080" loading=lazy {
27
+ style {
28
+ position absolute
29
+ inset "0"
30
+ width "100%"
31
+ height "100%"
32
+ objectFit cover
33
+ objectPosition "center 35%"
34
+ filter "grayscale(100%) contrast(1.12)"
35
+ }
36
+ }
37
+ div {
38
+ style {
39
+ position absolute
40
+ inset "0"
41
+ backgroundColor "var(--duo-shadow)"
42
+ mixBlendMode lighten
43
+ }
44
+ }
45
+ div {
46
+ style {
47
+ position absolute
48
+ inset "0"
49
+ background "linear-gradient(120deg, #d6157a 0%, #ff2e63 52%, #ff8c42 100%)"
50
+ mixBlendMode multiply
51
+ opacity "0.9"
52
+ }
53
+ }
54
+ div {
55
+ style {
56
+ position absolute
57
+ inset "0"
58
+ background "radial-gradient(ellipse 70% 70% at 50% 50%, rgba(20,6,16,0.15), rgba(20,6,16,0.55))"
59
+ }
60
+ }
61
+ }
62
+ div {
63
+ style position=relative zIndex="5" maxWidth="var(--max-width-narrow)"
64
+ p "${state.kicker}" {
65
+ style {
66
+ display "${state.kicker ? 'block' : 'none'}"
67
+ margin "0 0 1.1rem"
68
+ fontFamily "var(--font-heading)"
69
+ textTransform uppercase
70
+ letterSpacing "0.22em"
71
+ fontSize "0.8rem"
72
+ fontWeight "700"
73
+ color "rgba(255,255,255,0.85)"
74
+ }
75
+ }
76
+ p "${state.heading}" {
77
+ style {
78
+ margin "0"
79
+ fontFamily "var(--font-display)"
80
+ fontSize "clamp(2.4rem, 7vw, 5rem)"
81
+ fontWeight "400"
82
+ lineHeight "0.95"
83
+ letterSpacing "0.01em"
84
+ textTransform uppercase
85
+ textShadow "0 14px 40px rgba(20,6,16,0.4)"
86
+ }
87
+ }
88
+ p "${state.text}" {
89
+ style {
90
+ display "${state.text ? 'block' : 'none'}"
91
+ margin "1.4rem auto 0"
92
+ maxWidth "44ch"
93
+ fontSize "1.1rem"
94
+ fontWeight "500"
95
+ lineHeight "1.65"
96
+ color "rgba(255,255,255,0.92)"
97
+ }
98
+ }
99
+ a href="${state.ctaHref}" "${state.cta}" {
100
+ style {
101
+ display "${state.cta ? 'inline-block' : 'none'}"
102
+ marginTop "2rem"
103
+ backgroundColor "#ffffff"
104
+ color "var(--color-ink)"
105
+ padding "1rem 2.3rem"
106
+ borderRadius "999px"
107
+ fontFamily "var(--font-heading)"
108
+ fontSize "0.9rem"
109
+ fontWeight "800"
110
+ textTransform uppercase
111
+ letterSpacing "0.06em"
112
+ textDecoration none
113
+ boxShadow "0 16px 40px -14px rgba(0,0,0,0.5)"
114
+ transition "transform 0.15s, box-shadow 0.15s"
115
+ :hover transform="translateY(-3px)" boxShadow="0 22px 48px -14px rgba(0,0,0,0.55)"
116
+ }
117
+ }
118
+ }
119
+ }
@@ -0,0 +1,92 @@
1
+ /- kdl-version 2
2
+
3
+ fs-booking {
4
+ state heading="Reserve your spot"
5
+ style {
6
+ display block
7
+ backgroundColor "var(--color-bg-white)"
8
+ border "1px solid var(--color-border)"
9
+ borderRadius "var(--radius)"
10
+ padding "clamp(1.6rem, 4vw, 2.4rem)"
11
+ boxShadow "0 18px 44px -30px rgba(26,15,24,0.4)"
12
+ "& input" {
13
+ width "100%"
14
+ padding "0.85rem 1rem"
15
+ border "1px solid var(--color-border)"
16
+ borderRadius "var(--radius-sm)"
17
+ fontSize "1rem"
18
+ fontFamily "var(--font-body)"
19
+ backgroundColor "var(--color-bg-blush)"
20
+ color "var(--color-text-primary)"
21
+ boxSizing border-box
22
+ transition "border-color 0.15s, box-shadow 0.15s"
23
+ }
24
+ "& textarea" {
25
+ width "100%"
26
+ padding "0.85rem 1rem"
27
+ border "1px solid var(--color-border)"
28
+ borderRadius "var(--radius-sm)"
29
+ fontSize "1rem"
30
+ fontFamily "var(--font-body)"
31
+ backgroundColor "var(--color-bg-blush)"
32
+ color "var(--color-text-primary)"
33
+ boxSizing border-box
34
+ resize vertical
35
+ transition "border-color 0.15s, box-shadow 0.15s"
36
+ }
37
+ "& input:focus" {
38
+ outline none
39
+ borderColor "var(--color-primary)"
40
+ boxShadow "0 0 0 3px rgba(255,46,99,0.14)"
41
+ }
42
+ "& textarea:focus" {
43
+ outline none
44
+ borderColor "var(--color-primary)"
45
+ boxShadow "0 0 0 3px rgba(255,46,99,0.14)"
46
+ }
47
+ }
48
+ form action="#" method=post {
49
+ style display=grid gap="0.9rem"
50
+ h3 "${state.heading}" {
51
+ style {
52
+ fontFamily "var(--font-display)"
53
+ fontSize "clamp(1.7rem, 3.5vw, 2.2rem)"
54
+ fontWeight "400"
55
+ textTransform uppercase
56
+ letterSpacing "0.01em"
57
+ margin "0 0 0.4rem"
58
+ }
59
+ }
60
+ input type=text name=name placeholder="Your name" required="true" aria-label="Your name"
61
+ input type=email name=email placeholder="Email address" required="true" aria-label="Email address"
62
+ input type=text name=class placeholder="Which class? e.g. Vinyasa Flow" aria-label="Class you're interested in"
63
+ input type=date name=date aria-label="Preferred date"
64
+ textarea name=message rows="4" placeholder="New to movement? Any injuries or goals we should know about?" aria-label=Message
65
+ button type=submit "Request a spot →" {
66
+ style {
67
+ justifySelf start
68
+ marginTop "0.25rem"
69
+ background "var(--grad-hot)"
70
+ color "#ffffff"
71
+ padding "0.95rem 2.1rem"
72
+ border none
73
+ borderRadius "999px"
74
+ fontFamily "var(--font-heading)"
75
+ fontSize "0.88rem"
76
+ fontWeight "800"
77
+ textTransform uppercase
78
+ letterSpacing "0.06em"
79
+ cursor pointer
80
+ boxShadow "0 14px 32px -14px rgba(255,46,99,0.6)"
81
+ transition "transform 0.15s, box-shadow 0.15s"
82
+ :hover {
83
+ transform "translateY(-2px)"
84
+ boxShadow "0 20px 40px -14px rgba(255,46,99,0.7)"
85
+ }
86
+ }
87
+ }
88
+ p "This is a demo form. Wire it to your booking provider or email in pages/contact.md." {
89
+ style fontSize="0.82rem" color="var(--color-text-muted)" margin="0.25rem 0 0"
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,103 @@
1
+ /- kdl-version 2
2
+
3
+ fs-class-card {
4
+ state name="" level="" time="" instructor="" focus=""
5
+ style {
6
+ display flex
7
+ flexDirection column
8
+ height "100%"
9
+ position relative
10
+ overflow hidden
11
+ padding "1.7rem 1.7rem 1.5rem"
12
+ backgroundColor "var(--color-bg-white)"
13
+ border "1px solid var(--color-border)"
14
+ borderRadius "var(--radius)"
15
+ boxShadow "0 10px 30px -20px rgba(26,15,24,0.28)"
16
+ transition "transform 0.15s, box-shadow 0.15s"
17
+ :hover transform="translateY(-4px)" boxShadow="0 22px 44px -22px rgba(26,15,24,0.4)"
18
+ }
19
+ div {
20
+ style position=absolute top="0" left="0" bottom="0" width="5px" background="var(--grad-hot)"
21
+ }
22
+ div {
23
+ style {
24
+ display flex
25
+ justifyContent space-between
26
+ alignItems center
27
+ gap "0.75rem"
28
+ marginBottom "0.6rem"
29
+ }
30
+ div {
31
+ style {
32
+ display inline-flex
33
+ alignItems center
34
+ gap "0.45rem"
35
+ fontFamily "var(--font-heading)"
36
+ fontWeight "800"
37
+ fontSize "0.86rem"
38
+ color "var(--color-primary)"
39
+ textTransform uppercase
40
+ letterSpacing "0.03em"
41
+ }
42
+ span 🕑
43
+ span "${state.time}"
44
+ }
45
+ span "${state.level}" {
46
+ style {
47
+ display "${state.level ? 'inline-block' : 'none'}"
48
+ flexShrink "0"
49
+ backgroundColor "var(--color-bg-peach)"
50
+ color "var(--color-ember)"
51
+ fontSize "0.68rem"
52
+ fontWeight "800"
53
+ textTransform uppercase
54
+ letterSpacing "0.06em"
55
+ padding "0.3rem 0.7rem"
56
+ borderRadius "999px"
57
+ whiteSpace nowrap
58
+ }
59
+ }
60
+ }
61
+ h3 "${state.name}" {
62
+ style {
63
+ fontFamily "var(--font-display)"
64
+ fontSize "1.7rem"
65
+ fontWeight "400"
66
+ lineHeight "1"
67
+ textTransform uppercase
68
+ letterSpacing "0.01em"
69
+ margin "0 0 0.75rem"
70
+ }
71
+ }
72
+ p "${state.focus}" {
73
+ style {
74
+ display "${state.focus ? 'block' : 'none'}"
75
+ margin "0 0 1.1rem"
76
+ color "var(--color-text-muted)"
77
+ fontSize "0.95rem"
78
+ lineHeight "1.6"
79
+ }
80
+ }
81
+ div {
82
+ style {
83
+ marginTop auto
84
+ paddingTop "1rem"
85
+ borderTop "1px solid var(--color-border)"
86
+ display flex
87
+ alignItems center
88
+ gap "0.6rem"
89
+ }
90
+ span {
91
+ style {
92
+ width "1.7rem"
93
+ height "1.7rem"
94
+ borderRadius "50%"
95
+ background "var(--grad)"
96
+ flexShrink "0"
97
+ }
98
+ }
99
+ span "with ${state.instructor}" {
100
+ style fontSize="0.9rem" fontWeight="600" color="var(--color-text-primary)"
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,23 @@
1
+ /- kdl-version 2
2
+
3
+ fs-class-grid {
4
+ state heading=""
5
+ style display=block maxWidth="var(--max-width)" margin="0 auto"
6
+ h3 "${state.heading}" {
7
+ style {
8
+ display "${state.heading ? 'block' : 'none'}"
9
+ fontFamily "var(--font-heading)"
10
+ fontSize "1.4rem"
11
+ fontWeight "700"
12
+ color "var(--color-primary)"
13
+ margin "0 0 1.25rem"
14
+ }
15
+ }
16
+ div {
17
+ style display=grid gridTemplateColumns="repeat(3, 1fr)" gap="1.25rem" {
18
+ @--lg gridTemplateColumns="repeat(2, 1fr)"
19
+ @--sm gridTemplateColumns="1fr"
20
+ }
21
+ slot
22
+ }
23
+ }
@@ -0,0 +1,81 @@
1
+ /- kdl-version 2
2
+
3
+ fs-cta {
4
+ state eyebrow="" heading="" text="" cta="Book a Class" ctaHref="/contact/"
5
+ style {
6
+ display block
7
+ position relative
8
+ overflow hidden
9
+ backgroundColor "var(--color-ink)"
10
+ color "var(--color-text-white)"
11
+ padding "clamp(3.5rem, 9vw, 6rem) 1.5rem"
12
+ textAlign center
13
+ }
14
+ div {
15
+ style {
16
+ position absolute
17
+ inset "0"
18
+ background "radial-gradient(ellipse 50% 60% at 12% 8%, rgba(255,46,99,0.4), transparent 60%), radial-gradient(ellipse 50% 60% at 90% 100%, rgba(255,140,66,0.32), transparent 60%)"
19
+ pointerEvents none
20
+ }
21
+ }
22
+ div {
23
+ style position=relative zIndex="2" maxWidth="var(--max-width-narrow)" margin="0 auto"
24
+ p "${state.eyebrow}" {
25
+ style {
26
+ display "${state.eyebrow ? 'block' : 'none'}"
27
+ margin "0 0 1rem"
28
+ fontFamily "var(--font-heading)"
29
+ textTransform uppercase
30
+ letterSpacing "0.22em"
31
+ fontSize "0.8rem"
32
+ fontWeight "700"
33
+ color "var(--color-ember)"
34
+ }
35
+ }
36
+ h2 "${state.heading}" {
37
+ style {
38
+ fontFamily "var(--font-display)"
39
+ fontSize "clamp(2.4rem, 6.5vw, 4.6rem)"
40
+ fontWeight "400"
41
+ lineHeight "0.95"
42
+ letterSpacing "0.01em"
43
+ textTransform uppercase
44
+ margin "0 0 1.1rem"
45
+ color "#ffffff"
46
+ }
47
+ }
48
+ p "${state.text}" {
49
+ style {
50
+ display "${state.text ? 'block' : 'none'}"
51
+ fontSize "1.12rem"
52
+ fontWeight "500"
53
+ lineHeight "1.65"
54
+ color "rgba(255,255,255,0.8)"
55
+ margin "0 auto 2rem"
56
+ maxWidth "48ch"
57
+ }
58
+ }
59
+ a href="${state.ctaHref}" "${state.cta}" {
60
+ style {
61
+ display inline-block
62
+ background "var(--grad-hot)"
63
+ color "#ffffff"
64
+ padding "1.05rem 2.6rem"
65
+ borderRadius "999px"
66
+ fontFamily "var(--font-heading)"
67
+ fontSize "0.92rem"
68
+ fontWeight "800"
69
+ textTransform uppercase
70
+ letterSpacing "0.06em"
71
+ textDecoration none
72
+ boxShadow "0 18px 44px -14px rgba(255,46,99,0.65)"
73
+ transition "transform 0.15s, box-shadow 0.15s"
74
+ :hover {
75
+ transform "translateY(-3px)"
76
+ boxShadow "0 24px 52px -14px rgba(255,46,99,0.75)"
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,40 @@
1
+ /- kdl-version 2
2
+
3
+ fs-feature {
4
+ state icon="" title="" text=""
5
+ style {
6
+ display block
7
+ height "100%"
8
+ padding "1.9rem"
9
+ backgroundColor "var(--color-bg-white)"
10
+ borderRadius "var(--radius)"
11
+ border "1px solid var(--color-border)"
12
+ boxShadow "0 10px 30px -22px rgba(26,15,24,0.25)"
13
+ }
14
+ div "${state.icon}" {
15
+ style {
16
+ display inline-flex
17
+ alignItems center
18
+ justifyContent center
19
+ width "3rem"
20
+ height "3rem"
21
+ borderRadius "0.85rem"
22
+ fontSize "1.5rem"
23
+ lineHeight "1"
24
+ marginBottom "1.1rem"
25
+ background "var(--color-bg-peach)"
26
+ }
27
+ }
28
+ h3 "${state.title}" {
29
+ style {
30
+ fontFamily "var(--font-heading)"
31
+ fontSize "1.2rem"
32
+ fontWeight "800"
33
+ letterSpacing "-0.01em"
34
+ margin "0 0 0.5rem"
35
+ }
36
+ }
37
+ p "${state.text}" {
38
+ style margin="0" color="var(--color-text-muted)" fontSize="0.98rem" lineHeight="1.65"
39
+ }
40
+ }
@@ -0,0 +1,116 @@
1
+ /- kdl-version 2
2
+
3
+ fs-footer {
4
+ state {
5
+ brand EMBER
6
+ tagline "Yoga, pilates, HIIT and strength for every body — small classes, big momentum."
7
+ address "412 Willow Avenue, Bridgewater"
8
+ phone "(555) 240-7788"
9
+ }
10
+ style {
11
+ display block
12
+ backgroundColor "var(--color-ink)"
13
+ color "var(--color-text-white)"
14
+ padding "clamp(3rem, 6vw, 4.5rem) 1.5rem 2rem"
15
+ }
16
+ div {
17
+ style {
18
+ maxWidth "var(--max-width)"
19
+ margin "0 auto"
20
+ display grid
21
+ gridTemplateColumns "2fr 1fr 1fr"
22
+ gap "2.5rem"
23
+ @--md gridTemplateColumns="1fr"
24
+ }
25
+ div {
26
+ div {
27
+ style display=flex alignItems=center gap="0.6rem" marginBottom="1rem"
28
+ span {
29
+ style width="1.5rem" height="1.5rem" borderRadius="50%" background="var(--grad)"
30
+ }
31
+ span "${state.brand}" {
32
+ style {
33
+ fontFamily "var(--font-display)"
34
+ fontSize "1.7rem"
35
+ letterSpacing "0.02em"
36
+ color "#ffffff"
37
+ lineHeight "1"
38
+ }
39
+ }
40
+ }
41
+ p "${state.tagline}" {
42
+ style margin="0" opacity="0.72" maxWidth="34ch" lineHeight="1.7"
43
+ }
44
+ }
45
+ div {
46
+ div Visit {
47
+ style {
48
+ fontFamily "var(--font-heading)"
49
+ textTransform uppercase
50
+ letterSpacing "0.12em"
51
+ fontSize "0.72rem"
52
+ fontWeight "700"
53
+ color "var(--color-ember)"
54
+ marginBottom "0.9rem"
55
+ }
56
+ }
57
+ p "${state.address}" {
58
+ style margin="0 0 0.35rem" opacity="0.85"
59
+ }
60
+ p "${state.phone}" {
61
+ style margin="0" opacity="0.85"
62
+ }
63
+ }
64
+ div {
65
+ div Explore {
66
+ style {
67
+ fontFamily "var(--font-heading)"
68
+ textTransform uppercase
69
+ letterSpacing "0.12em"
70
+ fontSize "0.72rem"
71
+ fontWeight "700"
72
+ color "var(--color-ember)"
73
+ marginBottom "0.9rem"
74
+ }
75
+ }
76
+ a href="/classes/" Schedule {
77
+ style {
78
+ display block
79
+ color "#ffffff"
80
+ opacity "0.85"
81
+ textDecoration none
82
+ marginBottom "0.4rem"
83
+ :hover opacity="1" color="var(--color-ember)"
84
+ }
85
+ }
86
+ a href="/pricing/" Pricing {
87
+ style {
88
+ display block
89
+ color "#ffffff"
90
+ opacity "0.85"
91
+ textDecoration none
92
+ marginBottom "0.4rem"
93
+ :hover opacity="1" color="var(--color-ember)"
94
+ }
95
+ }
96
+ a href="/contact/" "Book a Class" {
97
+ style display=block color="#ffffff" opacity="0.85" textDecoration=none {
98
+ :hover opacity="1" color="var(--color-ember)"
99
+ }
100
+ }
101
+ }
102
+ }
103
+ div {
104
+ style {
105
+ maxWidth "var(--max-width)"
106
+ margin "2.75rem auto 0"
107
+ paddingTop "1.5rem"
108
+ borderTop "1px solid rgba(255,255,255,0.14)"
109
+ fontSize "0.85rem"
110
+ opacity "0.55"
111
+ }
112
+ p "© Ember Yoga & Fitness. Built with Jx." {
113
+ style margin="0"
114
+ }
115
+ }
116
+ }