@jxsuite/starters 3.4.0 → 3.6.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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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,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
+ }